﻿/// <reference path="../_includes/jquery-1.5.js" />


var sort = "1 ASC,"; var active = 0; var moreOp = 0; var strMsg = ""; var gCid = 130; var gHA = false; var gIsPairSearch = false;
var gMinStoper = 1; var gMaxStoper = 267; var gSliderGup = 271;
var gSearchType = 'Loose'; // Loose /Ring   
var gST = 'Loose';
var coockie = new Coockie("", 1);
var ijas = "http://static1.jamesallen.com/Slider2/";
var jas = "Slider2/";
var gDomain = "";
var gAdmin = '0';
var gTabIndex = 1;
var gLastPageSize = 10;
var gCenterDiamondID = null;
var gImgExt = "png";
var gVisitedDiamonds = ',';

function $(v) { return document.getElementById(v); };
function no$(v) { var sv = new String(v); return sv.replace(/,/g, "").replace("$", ""); };
/********************************************************/


if (j$.browser.msie && j$.browser.version == '6.0') {
    gImgExt = "gif";
}
/********************************************************
LI
********************************************************/
function LI(name, title, btnClass, imgClass) {
    this.IsSlctd = false;
    this.IsOver = false;
    this.IsEnabled = true;
    this.Name = name;
    this.Title = title;
    this.ImgClass = imgClass;

    this.btnOnClass = btnClass + "On";
    this.btnOffClass = btnClass + "Off";
    this.btnHoverClass = btnClass + "Over";
    this.btnDisClass = btnClass + "Dis";
    this.ListName = "";
    this.ItemNum = 0;
    this.Width = 20;
};
LI.prototype.SetIsSlctd = function (isSlctd) {
    this.IsSlctd = isSlctd;
    this.Refresh();
};

LI.prototype.Over = function (IsOver) {
    this.IsOver = IsOver;
    this.Refresh();
};

LI.prototype.SetDisable = function () {
    var id = this.ListName + this.ItemNum;
    this.IsEnabled = false;
    this.SetIsSlctd(false);
    $(id + 'C').className = "BtnCenterDis";
    $(id + 'L').className = this.btnDisClass + 'L';
    $(id + 'R').className = this.btnDisClass + 'R';
    if (this.ImgClass) {
        $(this.ListName + this.ItemNum + 'Img').className = this.ImgClass + "Dis";
    }
    else {
        $(id + 'Text').className = 'Blue';
        $(id + 'Shadow').className = 'White';
    }
}
LI.prototype.Refresh = function () {
    if (!this.IsEnabled) {
        return;
    };
    var id = this.ListName + this.ItemNum;
    if (this.IsOver) {
        $(id + 'C').className = "BtnCenterOver";
        $(id + 'L').className = this.btnHoverClass + 'L';
        $(id + 'R').className = this.btnHoverClass + 'R';
        if (this.ImgClass) {
            $(this.ListName + this.ItemNum + 'Img').className = this.ImgClass + "Over";
        }
        else {
            $(id + 'Text').className = 'Blue';
            $(id + 'Shadow').className = 'White';
            $(id + 'Text').style.zIndex = 11;
            $(id + 'Shadow').style.zIndex = 10;
        };
        if (this.ListName == "Shape") {
            $('ToolTip').innerHTML = this.Name;

            $('TT' + this.ItemNum).appendChild($('ToolTip'));
            $('ToolTip').style.display = 'block';
        }
    }
    else {
        $(id + 'C').className = (this.IsSlctd) ? 'BtnCenterOn' : 'BtnCenterOff';
        $(id + 'R').className = (this.IsSlctd) ? this.btnOnClass + 'R' : this.btnOffClass + 'R';
        $(id + 'L').className = (this.IsSlctd) ? this.btnOnClass + 'L' : this.btnOffClass + 'L';
        if (this.ImgClass) {
            $(this.ListName + this.ItemNum + 'Img').className = (this.IsSlctd) ? this.ImgClass + 'On' : this.ImgClass + "Off";
        }
        else {
            // $(id + 'Text').className = (this.IsSlctd) ? 'White' : 'Black';
            // $(id + 'Shadow').className = (this.IsSlctd) ? 'Black' : 'White';
            $(id + 'Text').style.zIndex = (this.IsSlctd) ? 10 : 11;
            $(id + 'Shadow').style.zIndex = (this.IsSlctd) ? 11 : 10;
            $(id + 'Text').className = 'Black';
            $(id + 'Shadow').className = 'White';
        };
        if (this.ListName == "Shape") {
            $('ToolTip').style.display = 'none';
        };
    }
}
LI.prototype.Toggle = function () {
    this.SetIsSlctd(!this.IsSlctd);
};

LI.prototype.GetHtml = function () {
    var html = '<td  style=" width:' + this.Width + 'px; text-align:left; vertical-align:middle;" onmouseover="' + this.ListName + '.Over(' + this.ItemNum + ',true);" onmouseout="' + this.ListName + '.Over(' + this.ItemNum + ',false);">';
    var height = eval(this.ListName + ".Height");
    if (!this.ImgClass) {
        html += '<div style="margin-top:0px;  vertical-align:middle; padding-top:3px; height:' + height + 'px; text-align:center; position:absolute; z-index:10; width:' + this.Width + 'px;" align="center" onmouseover="' + this.ListName + '.Over(' + this.ItemNum + ',true);" onmouseout="' + this.ListName + '.Over(' + this.ItemNum + ',false);" onclick="' + this.ListName + '.Click(' + this.ItemNum + ')" class="White" id="' + this.ListName + this.ItemNum + 'Shadow"><span style=" position:relative ; top:1px;">' + this.Title + '</span></div>';
        html += '<div style="margin-top:0px; vertical-align:middle; padding-top:3px; height:' + height + 'px; text-align:center; position:absolute; z-index:11; width:' + this.Width + 'px;" align="center" onmouseover="' + this.ListName + '.Over(' + this.ItemNum + ',true);" onmouseout="' + this.ListName + '.Over(' + this.ItemNum + ',false);" onclick="' + this.ListName + '.Click(' + this.ItemNum + ')"  class="Black" id="' + this.ListName + this.ItemNum + 'Text"><span>' + this.Title + '</span></div>';
    }
    //  if (this.ListName == "Shape")
    //      html += '<div style="position:absolute; display:none; border:solid 1px red;" id="' + this.ListName + this.ItemNum + 'TT"><div class="ToolTip">' + this.Name + '</div></div>'

    html += '<table cellspacing="0" border="0" cellpadding="0"  onclick="' + this.ListName + '.Click(' + this.ItemNum + ')"  id="' + this.ListName + this.ItemNum + '"  style=" width:' + this.Width + 'px; height:' + height + 'px; empty-cells:show;">';
    html += '<tr><td id="' + this.ListName + this.ItemNum + 'L" class="' + this.btnOffClass + 'L" style="width:5px;"></td>';
    html += '<td id="' + this.ListName + this.ItemNum + 'C" class="BtnCenterOff" style="text-align:left; vertical-align:middle; width:' + (this.Width - 10) + 'px;">';

    if (this.ImgClass) {
        html += '<div class="' + this.ImgClass + 'Off" id="' + this.ListName + this.ItemNum + 'Img"></div>';
    }

    html += '</td><td id="' + this.ListName + this.ItemNum + 'R" class="' + this.btnOffClass + 'R" style="width:5px;"></td></tr></table>';

    html += '</td>';
    return html;
};

/********************************************************
Buttonlist
********************************************************/
function Buttonlist(name, itemWidth, height) {
    this.List = new Array();
    this.Count = 0;
    this.Name = name;
    this.DisplayNAme = name;
    this.SlctdItem = null;
    this.ItemWidth = itemWidth;
    this.Height = height;
    this.Mode = "Redio";
};
Buttonlist.prototype.Select = function (ItemNum) {
    if (this.SlctdItem != null)
        this.SlctdItem.SetIsSlctd(false);
    this.List[ItemNum].SetIsSlctd(true);
    this.SlctdItem = this.List[ItemNum];
};
Buttonlist.prototype.SelectRange = function (values) {
    var vals = "," + values + ",";
    for (var i = 0; i < this.List.length; i++) {
        if (vals.indexOf("," + this.List[i].Name + ",") > -1)
            if (this.Mode == "Redio") {
                this.Select(i);
            }
            else {
                this.List[i].SetIsSlctd(true);
            }
    }
};
Buttonlist.prototype.SelectKeyRange = function (Keys) {
    for (var i = 0; i < this.List.length; i++) {
        if (Keys.indexOf(i.toString()) > -1)
            this.List[i].SetIsSlctd(true);
    }
};
Buttonlist.prototype.Toggle = function (ItemNum) {
    this.List[ItemNum].Toggle();
};
Buttonlist.prototype.Click = function (ItemNum) {
    if (this.List[ItemNum].IsEnabled) {
        if (this.Mode == "Redio")
            this.Select(ItemNum);
        else
            this.Toggle(ItemNum);

        coockie.Set(gSearchType + "_" + this.Name, this.GetSlctdValues());
        if (active == 1) {
            GetData(1);
        }
    }
};
Buttonlist.prototype.Over = function (ItemNum, IsOver) {
    this.List[ItemNum].Over(IsOver);
};
Buttonlist.prototype.LoadFromCoockie = function () {
    if (coockie.Get(gSearchType + "_" + this.Name))
        this.SelectRange(coockie.Get(gSearchType + "_" + this.Name));
};
Buttonlist.prototype.SetEnabled = function (values) {
    values = "," + values + ",";
    for (var i = 0; i < this.List.length; i++) {
        if (values.indexOf("," + this.List[i].Name + ",") > -1)
            this.List[i].IsEnabled = true;
        else {
            this.List[i].SetDisable();
        }
    }
};
Buttonlist.prototype.Add = function (listItem) {
    listItem.ListName = this.Name;
    listItem.ItemNum = this.Count;
    listItem.Width = this.ItemWidth;
    this.List[this.Count] = listItem;
    this.Count += 1;
};
Buttonlist.prototype.GetHtml = function () {
    var html = "<table class=\"Pane\" cellpadding=\"0\" cellspacing=\"0\"><tr>";
    html += "<td class=\"LableText\" style=\"height:" + this.Height + "px; width: 48px;\"><nobr>";
    html += this.DisplayNAme;

    id = this.DisplayNAme.toLowerCase() + 'Help';
    html += ':<div class="Help" id="' + id + '"></div>';
    html += "</nobr></td>";
    for (var i = 0; i < this.Count; i++) {
        html += this.List[i].GetHtml();
    }
    html += "</tr></table>";
    return html;
};
Buttonlist.prototype.GetSlctdValues = function () {
    var sv = "", f = false;
    for (var i = 0; i < this.Count; i++) {
        if (this.List[i].IsSlctd) {
            if (f)
                sv += ",";
            sv += this.List[i].Name;
            f = true;
        }
    }
    return sv;
};

function eraseCookie() { createCookie("", -1); };
function createCookie(value, days, name) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    if (name == undefined)
        name = "R2SearchClient";
    document.cookie = name + "=" + value + expires; //+ "; domain=dev.jamesallen.com"//  + ";domain=jamesallen.com";
};

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) {
            return c.substring(nameEQ.length, c.length);
        }
    }
    return null;
};

function Coockie() { this.Dict = new Array(); };
Coockie.prototype.Save = function () {
    var coockieStr = "";
    for (key in this.Dict) {
        coockieStr += key + "|" + this.Dict[key] + "&";
    }
    createCookie(escape(coockieStr), 1);
};
Coockie.prototype.Load = function (forceClient) {
    var coockieClient = unescape(readCookie("R2SearchClient"));
    var coockieServer = unescape(readCookie("R2SearchServer"));
    if (!forceClient) {
        if (coockieClient == null) {
            coockieClient = coockieServer;
        }
        else {
            var clientTime = coockieClient.substring(coockieClient.indexOf("Now", 0), coockieClient.indexOf("TimeEnd", 0));
            var ServerTime = coockieServer.substring(coockieServer.indexOf("Now", 0), coockieServer.indexOf("TimeEnd", 0));
            if (clientTime != ServerTime) {
                coockieClient = coockieServer;
            };
        }
    }
    var keyValuePairs = coockieClient.split('&');
    for (var i = 0; i < keyValuePairs.length; i++) {
        var kv = keyValuePairs[i].split('|');
        this.Dict[kv[0]] = kv[1];
    }
    //strMsg += "<hr/>coockieClient=" + coockieClient +"<hr/>coockieServer=" +  coockieServer;
};
Coockie.prototype.Set = function (key, value) { this.Dict[key] = value; };
Coockie.prototype.Get = function (key) { return this.Dict[key]; };

/********************************************************
Sliders
********************************************************/
function SliderItem(title, visible, minRange, maxRange) {
    this.Title = title;
    this.Visible = visible;
    this.MinRange = minRange;
    this.MaxRange = maxRange;
    this.FromValue = minRange;
    this.ToValue = maxRange;
}

SliderItem.prototype.GetHtml = function () {
    this.FromValue = this.CalcValue(0);
    this.ToValue = this.CalcValue(1);
    var s = "<table cellpadding=\"0\" cellspacing=\"0\" class=\"SildePane\" style=\"margin-top:7px;\"><tr>" +
            "<td class=\"LableText\" style=\"width: 48px; padding-top:1px;\">" + this.Title;
    if (this.Title == "Price") {
        s += " $";
    };
    s += ":<div class=\"Help\" id=\"" + this.Title.toLowerCase() + "Help" + "\"></div></td><td>";
    var margin = (NIE1) ? 7 : 2;
    s += " <div style=\"position: absolute; width: 300px; visibility:visible;\">" +
                    "<div id=\"SliderTrackMin\" class=\"TrackShadow\" style=\"float: left; height:5px; margin-top:" + margin + "px;\"></div>" +
                    "<div id=\"SliderTrackMax\" class=\"TrackShadow\"  style=\"float: right; margin-top:" + margin + "px;\"></div>" +
                "</div>" +

                "<div style=\"position: absolute; width: 300px; visibility:visible;\">" +
                       "<div id=\"SliderThumbMinBox\" class=\"SlideBoxDiv\" alt=\"\" style=\"left: 0px;\"/><input tabindex=\"" + (gTabIndex++) + "\" id=\"SliderMinValue\" onfocus=\"StartType(this);\" onblur=\"setValueFromBox('Slider'); disableSelect(); GetData(1);\" onkeypress=\"return submitenter(this,event);\"  class=\"SlideBox\" type=\"text\"/></div>" +
                   "    <div id=\"SliderThumbMaxBox\" class=\"SlideBoxDiv\" alt=\"\" style=\"left: 300px;\"/><input tabindex=\"" + (gTabIndex++) + "\" id=\"SliderMaxValue\" onfocus=\"StartType(this);\" onblur=\"setValueFromBox('Slider'); disableSelect(); GetData(1);\"  onkeypress=\"return submitenter(this,event);\"  class=\"SlideBox\" type=\"text\"/></div>" +
                "</div>" +

                "<div style=\"position: relative;left:-3px;\"><div style=\"position: absolute; width: 308px; z-index:1000; visibility:visible;\">" +
                       "<img id=\"SliderThumbMin\" src=\"iJAS~Images/handle." + gImgExt + "\" width=\"19\" height=\"19\" alt=\"\" style=\"z-index: 200; cursor:pointer; position: relative; left: 0px; display: inline;\" />" +
                   "<img id=\"SliderThumbMax\" src=\"iJAS~Images/handle." + gImgExt + "\" width=\"19\" height=\"19\" alt=\"\" style=\"z-index: 200; cursor:pointer; position: relative; left: 300px; display: inline;\" />" +
                "</div></div>" +
    // "<div id=\"SliderValueDisplay\" onmouseover=\"document.onselectstart = function () { return false; };\" onmouseout=\"document.onselectstart=null;\" style=\"color: black; position: absolute; z-index: 100; cursor: default;font-family: Verdana; width: 216px; font-size: 10px; text-align:center; margin-top:3px;  visibility:visible;\">" + this.FromValue + " - " + this.ToValue + "</div>" +
                "<img name=\"Track\" src=\"iJAS~Images/~liderScala.gif\" style=\"margin-top:7px;\" width=\"300px\" height=\"5px\" width=\"300\" height=\"5\" alt=\"\">";
    //  if (NIE1) s += "</div>";
    s += "</td></tr></table>";
    s = s.replace(/Slider/g, this.Title);
    s = s.replace(/iJAS~/g, ijas);
    s = s.replace(/~lider/g, "Slider");
    ////strMsg += "<hr/><textarea>" + s + "</textarea>";
    return s;
};
SliderItem.prototype.CalcValue = function (inputVal) {
    return (this.MinRange + (inputVal * (this.MaxRange - this.MinRange))).toFixed(1);
}
function number_format(a, b, c, d) {
    // number_format(number, decimals, comma, formatSeparator)
    a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
    e = a + '';
    f = e.split('.');
    if (!f[0]) f[0] = '0';
    if (!f[1]) f[1] = '';
    if (f[1].length < b) {
        g = f[1];
        for (i = f[1].length + 1; i <= b; i++) {
            g += '0';
        }
        f[1] = g;
    }
    if (d != '' && f[0].length > 3) {
        h = f[0];
        f[0] = '';
        for (j = 3; j < h.length; j += 3) {
            i = h.slice(h.length - j, h.length - j + 3);
            f[0] = d + i + f[0] + '';
        }
        j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
        f[0] = j + f[0];
    }
    c = (b <= 0) ? '' : c;
    return f[0] + c + f[1];
};
SliderItem.prototype.CalcNormal = function (value) { return (value - this.MinRange) / (this.MaxRange - this.MinRange); }
SliderItem.prototype.SetValues = function (fromVal, toVal) {
    var min = parseInt(this.CalcNormal(fromVal) * gSliderGup);
    if (fromVal < this.CalcValue(min)) {
        min = min - 1;
    };
    var max = parseInt(this.CalcNormal(toVal) * gSliderGup);
    if (toVal > this.CalcValue(max)) {
        max = max + 1;
    };
    //Jump
    SetSliderValues(this.Title, min + 1, max - 4);
}
SliderItem.prototype.LoadFromCoockie = function() {
    var from = coockie.Get(gSearchType + "_" + this.Title + "From");
    
    if (!from) {
        from = this.MinRange;
    };
    var to = coockie.Get(gSearchType + "_" + this.Title + "To");
    if (!to) {
        to = this.MaxRange;
    };
    this.SetValues(from, to);
};

function submitenter(myfield, e) {
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;

    if (keycode == 13) {
        myfield.blur();
        return false;
    }
    else {
        return true;
    };
}
var gOldBoxValue;
function StartType(box) {
    gOldBoxValue = box.value.replace(/$/g, '');
    box.value = '';
}

function setValueFromBox(silderTitle) {
    var maxVal = $(silderTitle + 'MaxValue').value.replace(/$/g, '');
    var minVal = $(silderTitle + 'MinValue').value.replace(/$/g, '');
    if (!IsNumeric(maxVal))
        maxVal = Sliders[silderTitle].MaxRange;
    if (!IsNumeric(minVal))
        minVal = Sliders[silderTitle].MinRange;
    Sliders[silderTitle].SetValues(minVal, maxVal);
    return true;
}
/********************************************************
Drag & Drop
********************************************************/
var NIE1 = (document.all) ? 0 : 1;
var ob1, X, Y, offsetX, offsetY, thambType, curSlider;

function enableSelect() {
    // cancel out any text selections
    document.body.focus();
    // prevent text selection in IE
    document.onselectstart = function () { return true; };
}
function disableSelect() {
    // cancel out any text selections
    document.body.focus();
    // prevent text selection in IE
    document.onselectstart = function () { return true; };
}
function IsNumeric(input) {
    return (input - 0) == input && input.length > 0;
}


function MD(e) {

    var thumb = (NIE1) ? e.target : event.srcElement;
    if (thumb.id.indexOf("Thumb") > -1) {
        var tmbType = (thumb.id.indexOf("Max") > -1) ? "Max" : "Min";
        var sliderName = thumb.id.replace(/Min/, "").replace(/Max/, "").replace(/Thumb/, "");
        //disableSelect();

        ob1 = thumb.style;
        offsetX = parseInt(thumb.style.left);
        offsetY = parseInt(thumb.style.top);
        thambType = tmbType;
        curSlider = Sliders[sliderName];
        if (NIE1) { X = e.pageX; Y = e.pageY; }
        else { X = event.clientX; Y = event.clientY; };

        return false;
    }
};
var testMMEventCounter = 0;
//Jump
function MM(e) {
    if (curSlider) {
        var sliderName = curSlider.Title;
        var l = (NIE1) ? e.pageX : event.clientX;
        l += -X + offsetX;
        if (thambType == "Min") {

            if (l >= gMinStoper) {
                if (l < parseInt($(sliderName + 'ThumbMax').style.left) + 4) {
                    SetSliderValues(sliderName, l, null);
                }
                else {
                    SetSliderValues(sliderName, parseInt($(sliderName + 'ThumbMax').style.left) + 4, null)
                }
            } else if (parseInt($(sliderName + 'ThumbMin').style.left) > gMinStoper) {
                SetSliderValues(sliderName, gMinStoper, null);
            }

        }
        else {
            if (l <= gMaxStoper) {
                if (l > parseInt($(sliderName + 'ThumbMin').style.left) - 4)
                    SetSliderValues(sliderName, null, l);
                else
                    SetSliderValues(sliderName, null, parseInt($(sliderName + 'ThumbMin').style.left) - 4);
            }
            else if (l > gMaxStoper && parseInt($(sliderName + 'ThumbMax').style.left) < gMaxStoper) {
                SetSliderValues(sliderName, null, gMaxStoper);
            }
        }

        return false;
    }
};
//Jump
function SetSliderValues(sliderTitle, min, max) {
    var boxLeftOffset = (NIE1) ? 77 : 80;
    var boxRightOffset = (NIE1) ? 19 : 21;
    if (min) {
        $(sliderTitle + 'ThumbMin').style.left = min;
        if (min > 42 + gMinStoper) {
            if ((min - 48) < (parseInt($(sliderTitle + 'ThumbMaxBox').style.left.replace(/px/g, "")) + 9)) {
                $(sliderTitle + 'ThumbMinBox').style.left = min - 48;
            }
            else
                $(sliderTitle + 'ThumbMinBox').style.left = (parseInt($(sliderTitle + 'ThumbMaxBox').style.left.replace(/px/g, "")) + 9);
        }
        else {
            $(sliderTitle + 'ThumbMinBox').style.left = min + 12;
            maxi = parseInt($(sliderTitle + 'ThumbMax').style.left);
            if (min + 3 > (maxi - boxRightOffset))
                $(sliderTitle + 'ThumbMaxBox').style.left = min + 3;
        }
        if (parseInt($(sliderTitle + 'ThumbMin').style.left.replace(/px/g, "")) >= 44 && parseInt($(sliderTitle + 'ThumbMaxBox').style.left.replace(/px/g, "")) < 150) {
            $(sliderTitle + 'ThumbMaxBox').style.left = parseInt($(sliderTitle + 'ThumbMax').style.left.replace(/px/g, "")) - boxRightOffset;
        }
        $(sliderTitle + 'TrackMin').style.width = min + 4;
        var f = Sliders[sliderTitle].CalcValue((min - 1) / gSliderGup);
        Sliders[sliderTitle].FromValue = (f < Sliders[sliderTitle].MinRange) ? Sliders[sliderTitle].MinRange : f;
    }
    if (max) {

        $(sliderTitle + 'ThumbMax').style.left = max;
        if ((max > gMaxStoper - 42)) {
            $(sliderTitle + 'ThumbMaxBox').style.left = max - boxLeftOffset;
            mini = parseInt($(sliderTitle + 'ThumbMin').style.left);
            //  $('msg1').innerHTML = (mini ) + " > " + (max - boxRightOffset);
            if ((mini) > (max - boxRightOffset))
                $(sliderTitle + 'ThumbMinBox').style.left = max - boxLeftOffset + 8;
        }
        else {
            if ((parseInt($(sliderTitle + 'ThumbMinBox').style.left.replace(/px/g, "")) - 9) < (max - boxRightOffset))
                $(sliderTitle + 'ThumbMaxBox').style.left = max - boxRightOffset;
            else
                $(sliderTitle + 'ThumbMaxBox').style.left = parseInt($(sliderTitle + 'ThumbMinBox').style.left.replace(/px/g, "")) - 9;
        }

        if (parseInt($(sliderTitle + 'ThumbMax').style.left.replace(/px/g, "")) <= 225 && parseInt($(sliderTitle + 'ThumbMinBox').style.left.replace(/px/g, "")) > 100) {
            $(sliderTitle + 'ThumbMinBox').style.left = parseInt($(sliderTitle + 'ThumbMin').style.left.replace(/px/g, "")) - 48;
        }
        //$('msg1').innerHTML = max; //parseInt($(sliderTitle + 'ThumbMin').style.left.replace(/px/g, ""));
        $(sliderTitle + 'TrackMax').style.width = (gSliderGup + 10 - max);
        var t = Sliders[sliderTitle].CalcValue((max + 4) / gSliderGup);
        Sliders[sliderTitle].ToValue = (t > Sliders[sliderTitle].MaxRange) ? Sliders[sliderTitle].MaxRange : t;
    }

    if (min)
        $(sliderTitle + 'MinValue').value = Sliders[sliderTitle].FromValue;
    if (max)
        $(sliderTitle + 'MaxValue').value = Sliders[sliderTitle].ToValue;
};

function MU() {
    ob1 = null; thambType = null;
    if (curSlider) {
        coockie.Set(gSearchType + "_" + curSlider.Title + "From", curSlider.FromValue);
        coockie.Set(gSearchType + "_" + curSlider.Title + "To", curSlider.ToValue);
        coockie.Save();
        GetData(1);
    }
    curSlider = null;  //document.onselectstart=null;

};
document.onmousedown = MD;
document.onmousemove = MM;
document.onmouseup = MU;
/********************************************************
Get Data & Display It
********************************************************/
var pageSize = 10;
function GetXmlUrl(PageNum) {
    coockie.Set("pageSize", pageSize);
    coockie.Set("moreOp", moreOp);
    var qs = "PS=" + pageSize + "&PN=" + PageNum + "&S=" + Shape.GetSlctdValues();
    qs += "&C=" + Cut.GetSlctdValues();
    qs += "&Col=" + Color.GetSlctdValues();
    qs += "&Cla=" + Clarity.GetSlctdValues();
    qs += "&CrtF=" + Sliders["Carat"].FromValue;
    qs += "&CrtT=" + Sliders["Carat"].ToValue;
    qs += "&PrF=" + no$(Sliders["Price"].FromValue);
    qs += "&PrT=" + no$(Sliders["Price"].ToValue);
    if (moreOp == 1) {
        qs += "&Pol=" + Polish.GetSlctdValues();
        qs += "&Sym=" + Symmetry.GetSlctdValues();
        if (Sliders["Depth"].FromValue != Sliders["Depth"].MinRange)
            qs += "&DptF=" + Sliders["Depth"].FromValue;
        if (Sliders["Depth"].ToValue != Sliders["Depth"].MaxRange)
            qs += "&DptT=" + Sliders["Depth"].ToValue;
        if (Sliders["Table"].FromValue != Sliders["Table"].MinRange)
            qs += "&TblF=" + Sliders["Table"].FromValue;
        if (Sliders["Table"].ToValue != Sliders["Table"].MaxRange)
            qs += "&TblT=" + Sliders["Table"].ToValue;
        qs += "&Lab=" + Lab.GetSlctdValues();

        qs += "&Fluor=" + Fluor.GetSlctdValues();
    }
    qs += "&OrderBy=" + sort.substring(0, sort.length - 1);
    qs += "&MOP=" + (moreOp == 1).toString();
    qs += "&IsPairSearch=" + gIsPairSearch;
    if (gCenterDiamondID != null)
        qs += "&CenterDiamondID=" + gCenterDiamondID;
    qs = jas + "Search.ashx?" + qs;
    strMsg += "<br/> " + qs;
    return qs;
};

function sendRequest(url, callback, postData) {
    var req = createXMLHTTPObject();
    if (!req) return;
    var method = (postData) ? "POST" : "GET";
    req.open(method, url, true);
    req.setRequestHeader('User-Agent', 'XMLHTTP/1.0');
    if (postData)
        req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    req.onreadystatechange = function () {
        if (req.readyState != 4) return;
        if (req.status != 200 && req.status != 304) {
            //			alert('HTTP error ' + req.status);
            return;
        }
        callback(req);
    }
    if (req.readyState == 4) return;
    req.send(postData);
};

var XMLHttpFactories = [
	        function () { return new XMLHttpRequest() },
	        function () { return new ActiveXObject("Msxml2.XMLHTTP") },
	        function () { return new ActiveXObject("Msxml3.XMLHTTP") },
	        function () { return new ActiveXObject("Microsoft.XMLHTTP") }
        ];

function createXMLHTTPObject() {
    var xmlhttp = false;
    for (var i = 0; i < XMLHttpFactories.length; i++) {
        try {
            xmlhttp = XMLHttpFactories[i]();
        } catch (e) { continue; }
        break;
    }
    return xmlhttp;
};

var orderBy = ',';
function GetData(pageNumber, order) {
    if (!pageNumber || pageNumber + '' == 'undefined') {
        if (coockie.Get("PageNumber"))
            pageNumber = coockie.Get("PageNumber");
        else
            pageNumber = 1;
    }

    ShowUpdatingStatus();
    if (order != 'SAME') {
        if (order == '' || order == null || order == 'undefined') {
            if (coockie.Get("Sort"))
                sort = coockie.Get("Sort");
            else
                sort = '';
            orderBy = ',';
        }
        else {
            var so = order + " DESC,";
            if (sort.indexOf(so, 0) >= 0)
                sort = order + " ASC," + sort.replace(so, "");
            else
                sort = so + sort.replace(order + " ASC,", "");
            orderBy += order + ',';
        }
    }
    sendRequest(GetXmlUrl(pageNumber), GotData);
    coockie.Set("Sort", sort);
    coockie.Set("PageNumber", pageNumber);
    coockie.Save();



};
var xslDom;
sendRequest(jas + "Search.xsl", setXsl);
function setXsl(req) {
    //strMsg +=  "<hr/>setXsl(req)";
    if (NIE1)
        xslDom = getDomFromXml(req.responseText);
    else {
        xslDom = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.3.0");
        xslDom.async = false;
        xslDom.loadXML(req.responseText);
    }
};
function GotData(req) {
    var xml = req.responseText;
    if (gST != "Loose") {
        var url = document.location.toString();
        url = url.substring(0, url.indexOf("?"));
        xml = xml.replace(/NoLink/, url);
        //strMsg = xml;
    }
    else
    { xml = xml.replace(/NoLink/, ''); }
    $('SearchResults').innerHTML = xslt(getDomFromXml(xml), xslDom);
    gvDetailsData = tbSearchResults();
    HideUpdatingStatus();
    ShowInfo();
    //j$("#sPageSize").styleSelect({ styleClass: "selectJA" });
    j$("#SearchResults").find('.ui-mb-expandLink').bind("click", onShowInfoHandler);
    SelectDiamonds();
    gLastPageSize = pageSize;
    jQuery("#SearchResults").css("height", "auto");
};
function ShowInfo() {
    $('TopBound').innerHTML = "We have " + number_format($('SNOR').innerHTML, 0, '.', ',') + " <b>" + Shape.GetSlctdValues() +
        "</b> diamonds between <b>" + Sliders["Carat"].FromValue + "-" + Sliders["Carat"].ToValue +
        "</b> carat";
    if (no$(Sliders["Price"].FromVlue) != Sliders["Price"].MinRange || no$(Sliders["Price"].ToValue) != Sliders["Price"].MaxRange)
        $('TopBound').innerHTML += ", <b>" + Sliders["Price"].FromValue + "-" + Sliders["Price"].ToValue + "</b>";
    if (Color.GetSlctdValues() != '')
        $('TopBound').innerHTML += ", <b>" + Color.GetSlctdValues() + "</b> color";
    if (Clarity.GetSlctdValues() != '')
        $('TopBound').innerHTML += ", <b>" + Clarity.GetSlctdValues() + "</b> clarity";
    if (Cut.GetSlctdValues() != '')
        $('TopBound').innerHTML += ", <b>" + Cut.GetSlctdValues().replace(/HA/, "H&A") + "</b> cut";

    if (moreOp == 1) {
        if (Polish.GetSlctdValues() != '')
            $('TopBound').innerHTML += ", <b>" + Polish.GetSlctdValues() + "</b> polish";
        if (Symmetry.GetSlctdValues() != '')
            $('TopBound').innerHTML += ", <b>" + Symmetry.GetSlctdValues() + "</b> symmetry";
        if (Sliders["Depth"].FromVlue != Sliders["Depth"].MinRange || Sliders["Depth"].ToValue != Sliders["Depth"].MaxRange)
            $('TopBound').innerHTML += ", <b>" + Sliders["Depth"].FromValue + "-" + Sliders["Depth"].ToValue + "</b> depth";
        if (Sliders["Table"].FromVlue != Sliders["Table"].MinRange || Sliders["Table"].ToValue != Sliders["Table"].MaxRange)
            $('TopBound').innerHTML += ", <b>" + Sliders["Table"].FromValue + "-" + Sliders["Table"].ToValue + "</b> table";
        if (Lab.GetSlctdValues() != '')
            $('TopBound').innerHTML += ", <b>" + Lab.GetSlctdValues() + "</b> certificate";
        if (Fluor.GetSlctdValues() != '')
            $('TopBound').innerHTML += ", <b>" + Fluor.GetSlctdValues() + "</b> Fluor";
    }
    $('TopBound').innerHTML += ".";

};
function ShowUpdatingStatus() {

    /*
    $("Loading").style.left = findPosX($('SearchResults')) + "px";
    $("Loading").style.top = (findPosY($('SearchResults')) + 29) + "px";
    $("Loading").style.display = 'block';
    var height = gLastPageSize * 25 * (gIsPairSearch ? 2 : 1) + 27;
    $("SearchResults").style.height = height + 27;
    $("Loading").style.height = height;

*/
    var height = gLastPageSize * 25 * (gIsPairSearch ? 2 : 1) + 60;
    var updateAnimation = jQuery("#Loading");
    if( updateAnimation.size() == 0)
    jQuery("<div id='Loading'><h2>Updating Results...</h2></div>").appendTo(jQuery("#ajax-case" ));

    updateAnimation.css("height", height).show();
    
};

function HideUpdatingStatus() {
    jQuery("#Loading").hide();
   /* $("Loading").style.display = 'none';
    $("SearchResults").style.height = pageSize * 25 * (gIsPairSearch ? 2 : 1) + 54; */
};
function getDomFromXml(xml) {
    if (typeof ActiveXObject != 'undefined') {
        var dom = new ActiveXObject("Microsoft.XMLDOM");
        dom.async = false;
        dom.loadXML(xml);
    }
    else {
        parser = new DOMParser();
        dom = parser.parseFromString(xml, "text/xml");
    }
    return dom;
};


function xslt(xmlDoc, xslDoc) {
    var transform;
    if (typeof ActiveXObject != 'undefined') {
        var template = new ActiveXObject("MSXML2.XSLTemplate.3.0")
        template.stylesheet = xslDoc;
        var xslProc = template.createProcessor()
        xslProc.input = xmlDoc;
        xslProc.addParameter("Admin", gAdmin);
        xslProc.addParameter("IsPairSearch", gIsPairSearch);
        xslProc.addParameter("OrderBy", ',' + sort);
        xslProc.addParameter("VisitedDiamonds", gVisitedDiamonds);

        xslProc.transform();
        transform = xslProc.output;
    }
    else {
        var xsl = new XSLTProcessor();
        xsl.importStylesheet(xslDoc);
        xsl.setParameter(null, "Admin", gAdmin);
        xsl.setParameter(null, "IsPairSearch", gIsPairSearch);
        xsl.setParameter(null, "OrderBy", ',' + sort);
        xsl.setParameter(null, "VisitedDiamonds", gVisitedDiamonds);
        var fragment = xsl.transformToFragment(xmlDoc, document);
        if (fragment.childNodes.length > 0)
            transform = fragment.childNodes[0].innerHTML;
        else
            alert("error");
    }
    return transform;
};

function ShowAdvance(mode) {
    $('advance1').style.display = mode;
    $('advance2').style.display = mode;
    $('advance3').style.display = mode;
    $('spacer1').style.display = mode;
    $('spacer2').style.display = mode;
    $('spacer3').style.display = mode;

    moreOp = (mode == 'none') ? 0 : 1;
    if (moreOp == 0) {
        $('AdvanceLink').style.display = '';
        $('BasicLink').style.display = 'none';
        $('scRight').className = 'BasicRight';
        $('scMid').className = 'BasicMid';
        $('scLeft').className = 'BasicLeft';

    }
    else {
        $('AdvanceLink').style.display = 'none';
        $('BasicLink').style.display = '';
        $('scRight').className = 'AdvanceRight';
        $('scMid').className = 'AdvanceMid';
        $('scLeft').className = 'AdvanceLeft';
    }


    if (active == 1)
        GetData(1, '');
};
/********************************************************
Imaplamentation
********************************************************/
var loaded = 0
function ReportLoaded() {
    loaded++;

    if (loaded > 5) {

        LoadSearch();
    }

};

var Shape = new Buttonlist("Shape", 30, 25);
Shape.Mode = "Redio";

function LoadShape() {
    Shape.Add(new LI("Round", "", "BtnTopLeft", "Round"));
    Shape.Add(new LI("Princess", "", "Btn", "Princess"));
    Shape.Add(new LI("Emerald", "", "Btn", "Emerald"));
    Shape.Add(new LI("Square", "", "Btn", "Square"));
    Shape.Add(new LI("Oval", "", "Btn", "Oval"));
    Shape.Add(new LI("Radiant", "", "Btn", "Radiant"));
    Shape.Add(new LI("Pear", "", "Btn", "Pear"));
    Shape.Add(new LI("Heart", "", "Btn", "Heart"));
    Shape.Add(new LI("Marquise", "", "Btn", "Marquise"));
    Shape.Add(new LI("Cushion", "", "BtnTopRight", "Cushion"));
    ReportLoaded()
};
var Cut = new Buttonlist("Cut", 65, 25);
Cut.Mode = "Toggle";
function LoadCut() {
    Cut.Add(new LI("HA", "", "BtnTopLeft", "TrueHearts"));
    Cut.List[Cut.Count - 1].Width = 105;
    Cut.Add(new LI("Ideal", "Ideal", "Btn"));
    Cut.Add(new LI("Premium", "Premium", "Btn"));
    Cut.Add(new LI("Good", "Good", "BtnTopRight"));
    ReportLoaded()
};
var imgS = new Image(); var imgNS = new Image(); var imgR = new Image(); var imgRS = new Image();
var iSHR = new Image(); var iSH = new Image(); var iNSHR = new Image(); var iNSH = new Image();
var irb = new Image();
var Color = new Buttonlist("Color", 38, 25);
Color.Mode = "Toggle";
function LoadColor() {
    var ics = new Image();

    Color.Add(new LI("D", "D", "Btn"));
    Color.Add(new LI("E", "E", "Btn"));
    Color.Add(new LI("F", "F", "Btn"));
    Color.Add(new LI("G", "G", "Btn"));
    Color.Add(new LI("H", "H", "Btn"));
    Color.List[Color.Count - 1].Width = 37;
    Color.Add(new LI("I", "I", "Btn"));
    Color.List[Color.Count - 1].Width = 37;
    Color.Add(new LI("J", "J", "Btn"));
    Color.List[Color.Count - 1].Width = 37;
    Color.Add(new LI("K", "K", "Btn"));
    Color.List[Color.Count - 1].Width = 37;

    ReportLoaded()
};
var Clarity = new Buttonlist("Clarity", 38, 25);
Clarity.Mode = "Toggle";
function LoadClarity() {
    Clarity.Add(new LI("IF", "IF", "BtnBottomLeft"));
    Clarity.Add(new LI("VVS1", "VVS1", "Btn"));
    Clarity.Add(new LI("VVS2", "VVS2", "Btn"));
    Clarity.Add(new LI("VS1", "VS1", "Btn"));
    Clarity.Add(new LI("VS2", "VS2", "Btn"));
    Clarity.List[Clarity.Count - 1].Width = 37;
    Clarity.Add(new LI("SI1", "SI1", "Btn"));
    Clarity.List[Clarity.Count - 1].Width = 37;
    Clarity.Add(new LI("SI2", "SI2", "Btn"));
    Clarity.List[Clarity.Count - 1].Width = 37;
    Clarity.Add(new LI("I1", "I1", "BtnBottomRight"));
    Clarity.List[Clarity.Count - 1].Width = 37;
    ReportLoaded();
};

var Polish = new Buttonlist("Polish", 100, 25);
Polish.Mode = "Toggle";
var Symmetry = new Buttonlist("Symmetry", 100, 25);
var Lab = new Buttonlist("Lab", 100, 25);
var Fluor = new Buttonlist("Fluor", 75, 25);

Symmetry.Mode = "Toggle";
Lab.Mode = "Toggle";
Fluor.Mode = "Toggle";
function LoadPolishSymmetry() {
    //imgNS.src = "img/polish.gif";
    Polish.Add(new LI("EX,ID", "Excellent", "BtnTopLeft"));
    Polish.Add(new LI("VG", "Very Good", "Btn"));
    Polish.Add(new LI("GD", "Good", "BtnTopRight"));

    Symmetry.DisplayNAme = "Symm";
    Symmetry.Add(new LI("EX,ID", "Excellent", "Btn"));
    Symmetry.Add(new LI("VG", "Very Good", "Btn"));
    Symmetry.Add(new LI("GD", "Good", "Btn"));


    Lab.DisplayNAme = "Lab";
    Lab.Add(new LI("GIA", "GIA", "BtnBottomLeft"));
    Lab.Add(new LI("AGS", "AGS", "Btn"));
    Lab.Add(new LI("IGI", "IGI", "BtnBottomRight"));

    Fluor.DisplayNAme = "Fluor";
    Fluor.Add(new LI("NN", "None", "BtnBottomLeft"));
    Fluor.Add(new LI("Ft", "Faint", "Btn"));
    Fluor.Add(new LI("MB", "Medium", "Btn"));
    Fluor.Add(new LI("S", "Strong", "BtnBottomRight"));

    ReportLoaded();
};
var Sliders = new Array();
function LoadSliders() {
    Sliders["Carat"] = new SliderItem("Carat", true, 0.20, 10.00);   //Carat
    Sliders["Carat"].CalcValue = CaratCalcValue;
    Sliders["Carat"].SetValues = SetValues;
    Sliders["Price"] = new SliderItem("Price", true, 400, 999000);   //Price
    Sliders["Price"].CalcValue = PriceCalcValue;
    Sliders["Price"].SetValues = SetValues;
    Sliders["Depth"] = new SliderItem("Depth", true, 55.0, 80.0);   //Depth
    Sliders["Table"] = new SliderItem("Table", true, 52.0, 80.0);   //Table  
};
function CaratCalcValue(inputVal) {
    var max = this.MaxRange;
    if (inputVal <= 0.5)
        var val = (this.MinRange + (inputVal / 0.5 * (1.50 - this.MinRange))).toFixed(2);
    else {
        if (inputVal < 1)
            max = 5; // slide beteewn 0.2 to 5 carat and only the last pixel is 10.00 carat

        var n = inputVal - 0.5;
        var val = (1.50 + (((n * n * 0.5) + (n * 0.5)) * (max - 1.50) * (1 / 0.375))).toFixed(2);
    }
    return val;
}
//Jump
function SetValues(fromVal, toVal) {
    var min = 1; var max = 267;
    if (fromVal != this.MinRange)
        min = FindPixel(fromVal, min, gSliderGup, this.Title, -1); //-1
    if (toVal != this.MaxRange)
        max = FindPixel(toVal, min - 4, gSliderGup, this.Title, 4); //1
    SetSliderValues(this.Title, min, max);
};

function FindPixel(value, min, max, sn, offset) {
    var x, mid;
    var val = parseFloat(no$(value));
    while (max - min > 1) {
        mid = parseInt((min + max) / 2);
        x = parseFloat(no$(Sliders[sn].CalcValue((mid + offset) / gSliderGup)));
        if (val == x)
            return mid;
        else if (val > x)
            min = mid;
        else
            max = mid;
    };
    if (max - min == 1) {
        if (offset < 1)
            return min;
        else
            return max;
    }
    return mid;
};
function PriceCalcValue(inputVal) {
    //  $('Msg1').innerHTML = inputVal;
    var priceVal = 0
    if (inputVal <= 0.50) {
        priceVal = inputVal * inputVal * (10000 - this.MinRange) * (1 / 0.25);
        priceVal = parseInt((this.MinRange + priceVal) / 10) * 10;
    } else if (inputVal <= 0.80) {
        priceVal = 10000 + (inputVal - 0.50) * (20000 - this.MinRange) * (1 / (0.80 - 0.50));
        priceVal = parseInt((this.MinRange + priceVal) / 100) * 100;
    } else {
        if (inputVal <= 0.95) {
            var adjInterval = inputVal - 0.80
            priceVal = (0.5 * adjInterval * (100000 - 30000) * (1 / 0.15)) + (0.5) * Math.pow(adjInterval, 2) * (100000 - 30000) * (1 / Math.pow(0.15, 2));
            priceVal = parseInt((30000 + priceVal) / 1000) * 1000;
        } else {
            inputVal = (inputVal > 1) ? 1 : inputVal;
            var adjInterval = inputVal - 0.95
            priceVal = (0.5 * adjInterval * (this.MaxRange - 100000) * (1 / 0.05)) + (0.5) * Math.pow(adjInterval, 2) * (this.MaxRange - 100000) * (1 / Math.pow(0.05, 2));
            priceVal = parseInt((100000 + priceVal) / 1000) * 1000;
        }
    }
    return number_format(priceVal, 0, '.', ',');
};



setTimeout("load()", 1);
function load() {
    LoadSliders(); setTimeout("LoadShape()", 1); setTimeout("LoadCut()", 1); setTimeout("LoadColor()", 500); setTimeout("LoadClarity()", 1); setTimeout("LoadPolishSymmetry()", 1);
};
function LoadSearch() {
    $("CaratPane").innerHTML = Sliders["Carat"].GetHtml();
    $("PricePane").innerHTML = Sliders["Price"].GetHtml();
    $("ShapePane").innerHTML = Shape.GetHtml();
    $("CutPane").innerHTML = Cut.GetHtml();
    $("ColorPane").innerHTML = Color.GetHtml();
    $("ClarityPane").innerHTML = Clarity.GetHtml();

    $("PolishPane").innerHTML = Polish.GetHtml();
    $("SymmetryPane").innerHTML = Symmetry.GetHtml();

    $("LabPane").innerHTML = Lab.GetHtml();
    $("FluorPane").innerHTML = Fluor.GetHtml();
    $("DepthPane").innerHTML = Sliders["Depth"].GetHtml();
    $("TablePane").innerHTML = Sliders["Table"].GetHtml();
    InitDetailpanel();
    InitSearchValues();

    (moreOp == 0) ? ShowAdvance('none') : ShowAdvance('');
    active = 1;
    GetData();
};

function LoadFromCoockie(forceClient, searchType) {
    gST = searchType;
    coockie.Load(forceClient);
    //strMsg += "<hr/> coockie.Load";
    Shape.LoadFromCoockie();
    //strMsg += "<hr/> Shape.LoadFromCoockie();";
    Color.LoadFromCoockie();
    //strMsg += "<hr/>  Color.LoadFromCoockie();";
    Clarity.LoadFromCoockie();
    //strMsg += "<hr/> Clarity.LoadFromCoockie();";
    Cut.LoadFromCoockie();
    //strMsg += "<hr/>Cut.LoadFromCoockie();";
    Polish.LoadFromCoockie();
    //strMsg += "<hr/>  Polish.LoadFromCoockie();";
    Symmetry.LoadFromCoockie();
    //strMsg += "<hr/> Symmetry.LoadFromCoockie();";
    Sliders["Carat"].LoadFromCoockie();
    //strMsg += "<hr/> Sliders[\"Carat\"].LoadFromCoockie();";
    Sliders["Price"].LoadFromCoockie();
    //strMsg += "<hr/> Sliders[\"Price\"].LoadFromCoockie();";
    Sliders["Depth"].LoadFromCoockie();
    //strMsg += "<hr/> Sliders[\"Depth\"].LoadFromCoockie();";
    Sliders["Table"].LoadFromCoockie();
    //strMsg += "<hr/> Sliders[\"Table\"].LoadFromCoockie();";
    if (coockie.Get("pageSize"))
        pageSize = coockie.Get("pageSize");
    if (coockie.Get("moreOp"))
        moreOp = coockie.Get("moreOp");
    //strMsg += "<hr/> Load Done";

};
function StartSliders() { ReportLoaded(); }

/*****************************************************************************************/
var oDet; // details panel object
//alert (IsOverPannel +' : lri=' + lastRowIndx + ' ,ri='+ rowIndx);
var sp; var goDetails; var goPointer; var IsOverPannel = false; var lastRowIndx;
function ShowDetailsPanel(e, link) {

    lastRowIndx = e.rowIndex;
    var ind = e.rowIndex;
    var s = GetDetailsData(ind, link);
    oDet = new DetailsPanel(s, e);


    jQuery(oDet).css({ left: 0 });

    oDet.show();
    initDropDownMenu("#btnAddDiamond");

}


function HideDetailsPanel() { try { oDet.hide(); } catch (e) { }; }
function InitDetailpanel() {
    //sp = $("ajax-case");    // placeholder
    //sp = document.body.appendChild();


    if (jQuery("#spDetObj").size() == 0 )
        jQuery("<div id='spDetObj' />").appendTo( document.body);

    var sp = $("spDetObj");

    goDetails = document.createElement("div");
    
     // details panel span
    sp.appendChild(goDetails);
    var si = "<img src='img/blank.gif'/>";
    goDetails.style.width = "193px";
    goDetails.style.height = "194px";
    //goDetails.setAttribute("style","position:absolute;display:none;border:1px solid green");
    //style='filter:progid:DXImageTransform.Microsoft.Shadow(color=gray,direction=135,strength=4);'    
    //    goDetails.innerHTML = "<div onmouseover=\"goDetails.style.display = 'block'; goPointer.style.display = 'block';\"  style=\"width:160px; z-index:5;\"><table  width='160px;' height='100%' cellpadding='0' cellspacing='0' border='0' style='filter:progid:DXImageTransform.Microsoft.Shadow(color=gray,direction=135,strength=4);' >" +
    //                "<tr height='2px'><td  onmouseout=\"HideDetailsPanel();\">" + si + "</td><td onmouseout=\"HideDetailsPanel();\">" + si + "</td><td onmouseout=\"HideDetailsPanel();\">" + si + "</td><td  onmouseout=\"HideDetailsPanel();\">" + si + "</td><td  onmouseout=\"HideDetailsPanel();\">" + si + "</td></tr>" +
    //                "<tr height='1px'><td width='1px' onmouseout=\"HideDetailsPanel();\">" + si + "</td><td width='1px' onmouseout=\"HideDetailsPanel();\">" + si + "</td><td bgcolor='#6F6F6F' onmouseout=\"HideDetailsPanel();\">" + si + "</td><td width='1px' onmouseout=\"HideDetailsPanel();\">" + si + "</td><td width='1px' onmouseout=\"HideDetailsPanel();\">" + si + "</td></tr>" +
    //                "<tr height='1px'><td onmouseout=\"HideDetailsPanel();\">" + si + "</td><td bgcolor='#6F6F6F'>" + si + "</td><td bgcolor='#727272'>" + si + "</td><td bgcolor='#6F6F6F'>" + si + "</td><td>" + si + "</td></tr>" +
    //                "<tr><td bgcolor='#6F6F6F' onmouseout=\"HideDetailsPanel();\">" + si + "</td><td bgcolor='#727272'>" + si + "</td><td bgcolor='#727272' valign='top' style='padding:5' id='tdDetails'></td><td bgcolor='#727272'>" + si + "</td><td bgcolor='#6F6F6F'>" + si + "</td></tr>" +
    //                "<tr height='1px'><td onmouseout=\"HideDetailsPanel();\">" + si + "</td><td bgcolor='#6F6F6F'>" + si + "</td><td>" + si + "</td><td bgcolor='#6F6F6F'>" + si + "</td><td>" + si + "</td></tr>" +
    //                "<tr height='1px' ><td width='1px' onmouseout=\"HideDetailsPanel();\">" + si + "</td><td width='1px' onmouseout=\"HideDetailsPanel();\">" + si + "</td><td bgcolor='#6F6F6F' onmouseout=\"HideDetailsPanel();\">" + si + "</td><td width='1px' onmouseout=\"HideDetailsPanel();\">" + si + "</td><td width='1px'>" + si + "</td></tr>" +
    //                "</table><div style=\"width:170px; height:5px;\"  onmouseover=\"HideDetailsPanel();\" onmouseout=\"HideDetailsPanel();\"></div></div>";
    //    goDetails.style.display = "none";

    var s = '<div class="sl-diamond-info"><div id="tdDetails"></div>';
         s += '<a id="btnAddDiamond" class="sl-btnAdd"></a>';
         s += '<div id="PopupDiv"></div></div>';
    goDetails.innerHTML = s;
    goDetails.style.position = "absolute";
    goDetails.style.display = "none";
    // triangular pointer
    // goPointer  = $('imgPointer');
    goPointer = document.createElement("img");  //pointer image
    sp.appendChild(goPointer);
    goPointer.src = ijas + "Images/InfoArrow.png";
    goPointer.style.position = "absolute";
    goPointer.style.display = "none";
    goPointer.style.zIndex = 50;


};
function DetailsPanel(s, e) {
    this.ofY = findPosY(e);
    this.s = s;
    this.show = ShowDetails;
    this.hide = HideDetails;
};
// methods functions
function ShowDetails() {
    var t = this.ofY - 110;
    var topY = findPosY($('TopBound'));
    var buttonY = findPosY($('BottomBound'));
    var ofX = findPosX($('BottomBound'));
    if (t <= topY + 60)
        t = topY + 60;
    var os = (NIE1) ? 170 : 194;
    if (t >= buttonY - os)
        t = buttonY - os;
    SetPosition(goPointer, this.ofY + 5, ofX - 10);
    SetPosition(goDetails, t, ofX - 191);
    $('tdDetails').innerHTML = this.s;
};
function HideDetails() {
    goDetails.style.display = "none";
    goPointer.style.display = "none";
};
function SetPosition(element, top, left) {
    element.style.top = top;
    element.style.left = left
    element.style.display = "block";
    element.style.position = 'absolute';
};
function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent)
        while (1) {
            curleft += obj.offsetLeft;
            if (!obj.offsetParent) {
                break;
            };
            obj = obj.offsetParent;
        }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
};
function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent)
        while (1) {
            curtop += obj.offsetTop;
            if (!obj.offsetParent) {
                break;
            };
            obj = obj.offsetParent;
        }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
};

//////////////////////////////////////////////////////////////////////////////////////// 

var gvDetailsData;
function tbSearchResults() {
    if ($("tblSearchResults")) {
        var tb = $("tblSearchResults");
        var ar = tb.childNodes[0].childNodes;
        var res = new Array();
        res[0] = new Array();
        var strData = [];
        var columnsList = $('thDetailsObjColumns');

        var strColumnsData = SplitAndReturnTable(columnsList.innerHTML);
        res[0][0] = 'Item #';
        for (var j = 1; j < strColumnsData.length; j++) {
            res[0][j] = strColumnsData[j];
        };

        var tdData = [];
        tdData = document.getElementsByName('flDetailsObj');
        var k = 1;
        for (var i = 0; i < tdData.length; i++) {
            res[k] = new Array();
            strData = SplitAndReturnTable(tdData[i].innerHTML);

            for (var j = 0; j < strData.length; j++) {
                res[k][j] = strData[j];
            };
            k++;
        };
        return res;
    }
};

function SplitAndReturnTable(nStr) { return table = nStr.split('|'); };

function GetDetailsData(n, link) {
    var s = "<table  cellpadding='0' cellspacing='0'>" +
              "<tr><td colspan=\"2\"><b>Diamond Info</b></td></tr>";

    s += "<tr><td>" + gvDetailsData[0][0] + ":</td><td><a href=\"" + link + "\">" + gvDetailsData[n][0] + "</a></td></tr>";
    for (var i = 1; i < gvDetailsData[0].length; i++) {
        s += "<tr><td>" + gvDetailsData[0][i] + ":</td><td>" + gvDetailsData[n][i] + "</td></tr>";
    };

    var sn = gvDetailsData[n][0];
    var btn = "";
    if (gST == "Loose" || gHA == true) {
        btn += "<div id=\"dropmenu1\" style=\"z-index:5; display:none; position:absolute; background-color:#ffffff; background-image:url('slider2/Images/action_but_bkg.gif');  border:solid 1px #b8b8b8; width:153px; padding:5px 0px 5px 0px; margin:0px auto 5px 20px;  \">";
        btn += "<div class=\"InPopup\"><a href=\"update_ring.asp?cid=130&cmb=1&stoneID=" + sn + "\">To a ring</a></div>";
        btn += "<div class=\"InPopup\"><a href=\"update_ring.asp?cid=130&toshop=1&StoneID=" + sn + "\">To shopping cart</a></div>";
        btn += "<div class=\"InPopup\"><a href=\"javascript:add_to_wish('" + sn + ",')\">To wish list</a></div>";
        btn += "<div class=\"InPopup\"><a href=\"javascript:diamond_to_compare('130'," + sn + ")\"";
        if ($('SelectedDiamonds')) {
            var selc = $('SelectedDiamonds').innerHTML;
            if (selc.indexOf(',' + sn + ',') > 0) {
                btn += "disabled=\"disabled\"";
            }

        }
        btn += ">To comparison</a></div></div>";
        $('btnAddDiamond').href = 'javascript://';
        $('PopupDiv').innerHTML = btn;
    }
    else {
        $('btnAddDiamond').onmouseover = "";
        $('btnAddDiamond').href = 'update_ring.asp?cid=' + gCid + '&cmb=1&stoneID=' + sn;
    }


    return s;
};
//var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
//var myDays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];

//function formatString(date, inc) {
//    var dd1 = date.getUTCDate();
//    date.setUTCDate(dd1 + inc);
//    n_month = date.getUTCMonth();
//    n_year = date.getUTCFullYear();
//    n_day = date.getUTCDate();
//    var thisDay = date.getDay();
//    return (myDays[thisDay] + ' ' + m_names[n_month] + ' ' + n_day + 'th ' + n_year);
//};

//function GetDiamondShippingInfo() {
//    var DiamondDetails, ShipInfo = "";
//    var DayAdd = "";
//    var DayName = "";
//    var now = new Date();
//    if (now.getDay() == 1)
//        DayAdd = 2;
//    if (now.getDay() == 5)
//        DayAdd = 4;
//    if (now.getDay() == 6)
//        DayAdd = 3;

//    var d = new Date();
//    var curr_date = d.getDate();
//    var curr_month = d.getMonth();
//    curr_month++;
//    var curr_year = d.getFullYear();
//    var newdt = curr_month + "/" + curr_date + "/" + curr_year;
//    var ff = new Date(newdt);

//    if ((DayAdd != "") && (now > ff))
//        ShipInfo = ShipInfo + "Order By 4:00pm EST Monday and receive on ";
//    else if (now > ff)
//        ShipInfo = ShipInfo + "Order By 4:00pm EST today and receive on ";
//    else
//        ShipInfo = ShipInfo + "Order By 4:00pm EST today and receive on ";

//    var newd = new Date();
//    if (DayAdd != "") {
//        var newd = new Date();
//        ShipInfo = ShipInfo + formatString(now, DayAdd);
//    }
//    else {
//        if (now > ff) {
//            if (now.getUTCDay() == 4)
//                ShipInfo = ShipInfo + formatString(now, 5);
//            else
//                ShipInfo = ShipInfo + formatString(now, 1);
//        }
//        else
//            ShipInfo = ShipInfo + formatString(now, 1);
//    };
//    ShipInfo = ShipInfo + " as a loose diamond.";
//    return ShipInfo;
//};

function UnCheck() {
    j$('input:checkbox').each(function () { this.checked = false; });
    if ($('SelectedDiamonds')) {
        $('SelectedDiamonds').innerHTML = '';
    }
}

function CompareIt(IsAddTo, cid, itemID) {
    if (IsAddTo) {
        document.frm_search.target = "_parent";
        compareView = 1;
        ShowCloseWindowTitle = 0;
        //document.getElementById("frmWrap").innerHTML = "<iframe scrolling='no' frameborder='0'  id='main_ifrm' src=''></iframe>";
        ChangeDiamondTabData("dc", cid, itemID, '');
    }
    else {
        rem_compare(cid, itemID);
    }
}

function CheckSelectedDiaomnds(selectedDiamonds) {
    alert(selectedDiamonds);
}

function SelectDiamonds() {
    var s = "";
    if ($('SelectedDiamonds')) {
        s = $('SelectedDiamonds').innerHTML;
    }

    j$('input:checkbox').each(function () {
        //     alert(s + " ; " + s.indexOf("," + this.value + ",") + " ; " + this.value);
        if (s.indexOf("," + this.value + ",") > -1) {
            this.checked = true;
        }
    }
    );
}


function VisitDiamond(id) {
    gVisitedDiamonds += id + ',';

    createCookie(gVisitedDiamonds, 1, 'VisitedDiamonds');

    $('tr_' + id).style.backgroundColor = '#e5ebf2';

}

if (readCookie('VisitedDiamonds') != undefined) {
    gVisitedDiamonds = readCookie('VisitedDiamonds');
}


function RowMouseOut(r) {
    if (r.style.backgroundColor != '#e5ebf2') {
        r.style.backgroundColor = '';
    }
}
