﻿function showContentPage(contentId) {
    window.open('contentlink.aspx?contentid=' + contentId + '&from=link', '', 'width=800,height=600,top=50,left=200,screenX=0,screenY=0,scrollbars=yes,menubar=no,location=no,status=yes,toolbar=no,resizable=yes');
}
function fnDisplayColumnList() {
    var objDiv = document.getElementById("divDisplayColumnList");
    if (objDiv != null) {
        if (objDiv.style.display == '') {
            objDiv.style.display = "none";
        }
        else {
            //Set Add/Remove Columns
            var objDivColumn = document.getElementById("divDisplayColumnList");
            o = document.getElementById("tdDisplayColumnList");
            objDivColumn.style.left = getAbsLeft(o) + o.offsetWidth - 243 + 'px';
            objDiv.style.display = '';
        }
    }
    return true;
}
function columnCloseClick(obj) {
    var ObjId = obj.substring(0, obj.lastIndexOf("_"));
    document.getElementById(ObjId + "_chkShape").Checked = arrcheck['shape'];
    document.getElementById(ObjId + "_chkCarat").Checked = arrcheck['carat'];
    document.getElementById(ObjId + "_chkClarity").Checked = arrcheck['clarity'];
    document.getElementById(ObjId + "_chkColor4").Checked = arrcheck['color'];
    document.getElementById(ObjId + "_chkCut1").Checked = arrcheck['cut'];
    document.getElementById(ObjId + "_chkDepth").Checked = arrcheck['depth'];
    document.getElementById(ObjId + "_chkPolish").Checked = arrcheck['polish'];
    document.getElementById(ObjId + "_chkFluorescence").Checked = arrcheck['fluorescence'];
    document.getElementById(ObjId + "_chkCulet").Checked = arrcheck['culet'];
    document.getElementById(ObjId + "_chkReport").Checked = arrcheck['report'];
    document.getElementById(ObjId + "_chkMeasur").Checked = arrcheck['measure'];
    document.getElementById(ObjId + "_chkRatio").Checked = arrcheck['ratio'];
    document.getElementById(ObjId + "_chkPrice4").Checked = arrcheck['price'];
    document.getElementById(ObjId + "_chkDiamondCmp").Checked = arrcheck['cmp'];
}
window.onresize = fnWinResize;
var intOptimize = 0,TimeOptimizeId,ShapeWisePrices,dvCaratPrices,dvCutPrices,dvColorPrices,dvClarityPrices;
var intPrevDiamondCount = 0,intDiamondCount = 0, Shape,MinCarat,MaxCarat,ColorMin = 1,ColorMax = 11;
var CutPriority = 0, flgColorLess = true, Clarity, PriceSorting, NewPrice, MinPrice = 0, MaxPrice = 0;
var MinPriceNew = 0, MaxPriceNew = 0, flgPrice = false, flgCarat = false, PrevTdCarat = 1, doPriceDrag = false;
//Color Slider's variables
var dosldColorLeftDrag = false, sldColorLeftMinLeft = 0, sldColorLeftMaxLeft = 0;
var dosldColorRightDrag = false, sldColorRightMinLeft = 0, sldColorRightMaxLeft = 0;

//new price slider
//Price Slider's variables
var dosldPriceLeftDrag = false, sldPriceLeftMinLeft = 0, sldPriceLeftMaxLeft = 0;
var dosldPriceRightDrag = false, sldPriceRightMinLeft = 0, sldPriceRightMaxLeft = 0;

var divDiamond, divWait, divDiamondCarat, divDiamondCut, divDiamondPrice, tdDiamondShape, tdDiamondShapePrice;
var tdDiamondCaratShape, tdDiamondCutShape, divDiamondColor, tdDiamondColorShape, tdDiamondColorCarat;
var tdDiamondColorPrice, tdDiamondCaratShape, tdDiamondCaratCarat, tdDiamondCaratPrice, divDiamondClarity;
var tdDiamondClarityCarat, tdDiamondClarityPrice, tdDiamondClarityShape, tdDiamondPriceShape, tdDiamondPricePrice;
var tdDiamondPriceCarat, divCaratSlider, tdMinPrice, tdMaxPrice, tdDiamondCutCarat, tdDiamondCutPrice;
var o1;
var o;

function fnCheckSelectedBox() {
    var i = 0, chk = false;
    len = document.getElementsByName("chkCompare").length;
    var i = 0;
    for (i = 0; i < len; i++) {
        chkCompare = document.getElementsByName("chkCompare");
        if (chkCompare[i].checked) {
            chk = true;break;
        }
    }
    if (chk == false) {
        alert("Select atleast one Diamond");return false;
    }
    return true;
}
//Start Funcitons for Shape Division
function fnDiamondShape(obj) {
    //debugger
    divDiamond = document.getElementById('divDiamond');
    tdDiamondShape = document.getElementById('tdDiamondShape');
    tdDiamondShapePrice = document.getElementById('tdDiamondShapePrice');
    tdDiamondShape.innerHTML = obj.value;
    var o = document.getElementById("img_" + Shape);
    var o1 = document.getElementById("dv" + Shape);
    if (o != null) { o1.className = "loose_diamonds_text"; }
    Shape = obj.value;
    o = document.getElementById("img_" + Shape);
    o1 = document.getElementById("dv" + Shape);
    o1.className = "loose_diamonds_text_active";
    for (var i = 0; i < ShapeWisePrices.length; ++i) {
        if (ShapeWisePrices[i].txtShape == obj.value) {
            tdDiamondShapePrice.innerHTML = "<b>$" + parseMoney(ShapeWisePrices[i].fltMinPrice) + " to $" + parseMoney(ShapeWisePrices[i].fltMaxPrice) + "</b>";
        }
    }
}
function SetCarat() {
    //****** Color Slider ******
    //Slider Color Left Arrow Variables
    var o, o1;
    o = document.getElementById("sldColorLeft");
    o1 = document.getElementById("tblColorSlider");
    sldColorLeftMinLeft = getAbsLeft(o1);
    sldColorLeftMaxLeft = getAbsLeft(o1) + o1.offsetWidth - 40;
    sldColorTop = getAbsTop(o1);
    setTop(o, sldColorTop);
    setPosition(o, sldColorLeftMinLeft, sldColorTop);
    //Slider Color Right Arrow Variables
    o = document.getElementById("sldColorRight");
    sldColorRightMinLeft = sldColorLeftMinLeft + 20;
    sldColorRightMaxLeft = getAbsLeft(o1) + o1.offsetWidth - 20;
    setTop(o, sldColorTop);
    setPosition(o, sldColorRightMaxLeft, sldColorTop);
    o = document.getElementById("sldColorMiddle");
    o.style.top = sldColorTop + 1 + 'px';
    o.style.left = sldColorLeftMinLeft + 'px';
    o.style.width = sldColorRightMaxLeft - sldColorLeftMinLeft + 'px';
}
function fnDiamondCarat() {
    divDiamond = document.getElementById('divDiamond');
    divWait = document.getElementById('divWait');
    tdDiamondCaratShape = document.getElementById('tdDiamondCaratShape');

    divDiamond.style.display = 'none';
    divWait.style.display = '';
    tdDiamondCaratShape.innerHTML = Shape;
    flgCarat = true;
    diamondadvisor.GetMinMaxCarat(Shape, LoadCarat_CallBack);
}
function LoadCarat_CallBack(response) {
    divDiamond = document.getElementById('divDiamond');
    divWait = document.getElementById('divWait');
    divDiamondCarat = document.getElementById('divDiamondCarat');
    //if the server side code threw an exception
    if (response.error != null) {
        alert(response.error); //we should probably do better than this
        return;
    }
    var varObject = response.value;
    if (varObject == null || typeof (varObject) != "object") {
        alert("Response Unexpected"); return;
    }
    dvCaratPrices = IdentifyResponse(response);
    divWait.style.display = 'none';
    divDiamondCarat.style.display = '';
    fnLoadDiamond();
}
function fnDiamondCaratBack() {
    divDiamond = document.getElementById('divDiamond');
    divWait = document.getElementById('divWait');
    divDiamondCarat = document.getElementById('divDiamondCarat');

    divDiamondCarat.style.display = 'none';
    divDiamond.style.display = '';
    flgCarat = false;
}
function fnGetMinMaxPrice(tdNo) {
    tdDiamondCaratCarat = document.getElementById('tdDiamondCaratCarat');
    tdDiamondCaratPrice = document.getElementById('tdDiamondCaratPrice');
    switch (tdNo) {
        case 2:
            MinCarat = 0.50; MaxCarat = 0.69;
            break;
        case 3:
            MinCarat = 0.70; MaxCarat = 0.99;
            break;
        case 4:
            MinCarat = 1.00; MaxCarat = 1.19;
            break;
        case 5:
            MinCarat = 1.20; MaxCarat = 1.49;
            break;
        case 6:
            MinCarat = 1.50; MaxCarat = 1.69;
            break;
        case 7:
            MinCarat = 1.70; MaxCarat = 1.99;
            break;
        case 8:
            MinCarat = 2.00; MaxCarat = 2.19;
            break;
        case 9:
            MinCarat = 2.20; MaxCarat = 2.49;
            break;
        case 10:
            MinCarat = 2.50; MaxCarat = 2.69;
            break;
        case 11:
            MinCarat = 2.70; MaxCarat = 2.99;
            break;
        case 12:
            MinCarat = 3.00; MaxCarat = 15;
            break;
    }
    tdDiamondCaratCarat.innerHTML = formatCurrency1(MinCarat) + " to " + formatCurrency1(MaxCarat);
    intDiamondCount = 0; minPrice = 0; maxPrice = 0;
    if (dvCaratPrices != null) {
        for (var i = 0; i < dvCaratPrices.length; i++) {
            if (dvCaratPrices[i].fltCarat >= MinCarat && dvCaratPrices[i].fltCarat <= MaxCarat) {
                if (intDiamondCount == 0) {
                    minPrice = dvCaratPrices[i].fltPrice; maxPrice = dvCaratPrices[i].fltPrice;
                }
                intDiamondCount++;
                if (dvCaratPrices[i].fltPrice < minPrice) {
                    minPrice = dvCaratPrices[i].fltPrice;
                }
                if (dvCaratPrices[i].fltPrice > maxPrice) {
                    maxPrice = dvCaratPrices[i].fltPrice;
                }
            }
        }
    }
    if (intDiamondCount != 0) {
        tdDiamondCaratPrice.innerHTML = "<table cellspacing='0' cellpadding='0'><tr><td width='190px'><b>" + formatCurrency(minPrice) + " to " + formatCurrency(maxPrice) + "</b></td><td class='diamondadvisor_noofDiamond'>(" + intDiamondCount + " Diamonds)</td></tr></table>";
    }
    else {
        tdDiamondCaratPrice.innerHTML = "No Diamonds Available";
    }
}
function fnDiamondCaratNext() {
    divDiamond = document.getElementById('divDiamond');
    divWait = document.getElementById('divWait');
    divDiamondCarat = document.getElementById('divDiamondCarat');
    if (intDiamondCount == 0) {
        alert("There is no diamond for this Carat Range");
        return;
    }
    intPrevDiamondCount = intDiamondCount;
    flgCarat = false;
    divDiamondCarat.style.display = 'none';
    divWait.style.display = '';
    diamondadvisor.GetMinMaxCut(Shape, MinCarat, MaxCarat, LoadCut_CallBack);
}
function LoadCut_CallBack(response) {
    divDiamondCut = document.getElementById('divDiamondCut');
    divDiamond = document.getElementById('divDiamond');
    divWait = document.getElementById('divWait');
    divDiamondCarat = document.getElementById('divDiamondCarat');
    tdDiamondCutShape = document.getElementById('tdDiamondCutShape');
    tdDiamondCutCarat = document.getElementById('tdDiamondCutCarat');
    //if the server side code threw an exception
    if (response.error != null) {
        alert(response.error); //we should probably do better than this
        return;
    }
    var varObject = response.value;
    if (varObject == null || typeof (varObject) != "object") {
        alert("Response Unexpected");
        return;
    }
    dvCutPrices = IdentifyResponse(response);
    divWait.style.display = 'none';
    divDiamondCut.style.display = '';
    tdDiamondCutShape.innerHTML = Shape;
    tdDiamondCutCarat.innerHTML = formatCurrency1(MinCarat) + " to " + formatCurrency1(MaxCarat);
    document.getElementById("chkCutIdeal").checked = true;
    fnchkCut_Click(document.getElementById("chkCutIdeal"));
}
function fnchkCut_Click(obj) {
    tdDiamondCutPrice = document.getElementById('tdDiamondCutPrice');
    for (var i = 0; i < dvCutPrices.length; i++) {
        if (dvCutPrices[i].intCutPriority == obj.value) {
            tdDiamondCutPrice.innerHTML = "<table cellspacing='0' cellpadding='0'><tr><td width='190px'><b>$" + parseMoney(dvCutPrices[i].fltMinPrice) + " to $" + parseMoney(dvCutPrices[i].fltMaxPrice) + "</b></td><td class='diamondadvisor_noofDiamond'>(" + dvCutPrices[i].intNoDiamonds + " Diamonds)</td></tr></table>";
            CutPriority = obj.value;
            intDiamondCount = dvCutPrices[i].intNoDiamonds;
            return;
        }

    }
    tdDiamondCutPrice.innerHTML = "No Diamonds Available";
    intDiamondCount = 0;
}
function fnDiamondCutBack() {
    divDiamondCut = document.getElementById('divDiamondCut');
    divDiamondCarat = document.getElementById('divDiamondCarat');

    divDiamondCut.style.display = 'none';
    divDiamondCarat.style.display = '';
    intDiamondCount = intPrevDiamondCount;
    flgCarat = true;
}
function fnDiamondCutNext() {
    divDiamondCut = document.getElementById('divDiamondCut');
    divWait = document.getElementById('divWait');
    divDiamondCarat = document.getElementById('divDiamondCarat');
    if (intDiamondCount == 0) {
        alert("There is no diamond for this Cut"); return;
    }
    intPrevDiamondCount = intDiamondCount;
    divDiamondCut.style.display = 'none';
    divWait.style.display = '';
    diamondadvisor.GetMinMaxColor(Shape, MinCarat, MaxCarat, CutPriority, LoadColor_CallBack);
}
function LoadColor_CallBack(response) {
    divDiamondColor = document.getElementById('divDiamondColor');
    divWait = document.getElementById('divWait');
    divDiamondCarat = document.getElementById('divDiamondCarat');
    tdDiamondColorShape = document.getElementById('tdDiamondColorShape');
    tdDiamondColorCarat = document.getElementById('tdDiamondColorCarat');
    if (response.error != null) {
        alert(response.error); //we should probably do better than this
        return;
    }
    var varObject = response.value;
    if (varObject == null || typeof (varObject) != "object") {
        alert("Response Unexpected");
        return;
    }
    dvColorPrices = IdentifyResponse(response);
    divWait.style.display = 'none';
    divDiamondColor.style.display = '';
    tdDiamondColorShape.innerHTML = Shape;
    tdDiamondColorCarat.innerHTML = formatCurrency1(MinCarat) + " to " + formatCurrency1(MaxCarat);
    document.getElementById("chkColor1").checked = true;
    fnchkColor_Click(document.getElementById("chkColor1"));
}
function fnchkColor_Click(obj) {
    tdDiamondColorPrice = document.getElementById('tdDiamondColorPrice');

    var TempMinPrice = 0, TempMaxPrice = 0, intDiamondCount = 0;
    for (var i = 0; i < dvColorPrices.length; i++) {
        if (obj.value == "true") {
            if (dvColorPrices[i].intColorPriority >= 68 && dvColorPrices[i].intColorPriority <= 72) {
                if (intDiamondCount == 0) {
                    TempMinPrice = dvColorPrices[i].fltMinPrice; TempMaxPrice = dvColorPrices[i].fltMaxPrice;
                }
                if (dvColorPrices[i].fltMinPrice < TempMinPrice) {
                    TempMinPrice = dvColorPrices[i].fltMinPrice;
                }
                if (TempMaxPrice < dvColorPrices[i].fltMaxPrice) {
                    TempMaxPrice = dvColorPrices[i].fltMaxPrice;
                }
                flgColorLess = obj.value;
                intDiamondCount += dvColorPrices[i].intNoDiamonds;
            }
        }
        else {
            if (dvColorPrices[i].intColorPriority >= 73 && dvColorPrices[i].intColorPriority <= 75) {
                if (intDiamondCount == 0) {
                    TempMinPrice = dvColorPrices[i].fltMinPrice; TempMaxPrice = dvColorPrices[i].fltMaxPrice;
                }
                if (dvColorPrices[i].fltMinPrice < TempMinPrice) {
                    TempMinPrice = dvColorPrices[i].fltMinPrice;
                }
                if (TempMaxPrice < dvColorPrices[i].fltMaxPrice) {
                    TempMaxPrice = dvColorPrices[i].fltMaxPrice;
                }
                flgColorLess = obj.value;
                intDiamondCount += dvColorPrices[i].intNoDiamonds;
            }
        }
    }
    if (intDiamondCount != 0) {
        tdDiamondColorPrice.innerHTML = "<table cellspacing='0' cellpadding='0'><tr><td width='190px'><b>" + formatCurrency(TempMinPrice) + " to " + formatCurrency(TempMaxPrice) + "</b></td><td class='diamondadvisor_noofDiamond'>(" + intDiamondCount + " Diamonds)</td></tr></table>";
    }
    else {
        tdDiamondColorPrice.innerHTML = "No Diamonds Available";
        intDiamondCount = 0;
    }
}

function fnDiamondColorBack() {
    divDiamondColor = document.getElementById('divDiamondColor');
    divDiamondCut = document.getElementById('divDiamondCut');
    divDiamondCarat = document.getElementById('divDiamondCarat');

    divDiamondColor.style.display = 'none';
    divDiamondCut.style.display = '';
    intDiamondCount = intPrevDiamondCount;
}

function fnDiamondColorNext() {
    divDiamond = document.getElementById('divDiamond');
    divWait = document.getElementById('divWait');
    divDiamondCarat = document.getElementById('divDiamondCarat');
    if (intDiamondCount == 0) {
        alert("There is no diamond for this Color");
        return;
    }
    intPrevDiamondCount = intDiamondCount;
    divDiamondColor.style.display = 'none';
    divWait.style.display = '';
    diamondadvisor.GetMinMaxClarity(Shape, MinCarat, MaxCarat, CutPriority, flgColorLess, LoadClarity_CallBack);
}
function LoadClarity_CallBack(response) {
    divDiamondClarity = document.getElementById('divDiamondClarity');
    divWait = document.getElementById('divWait');
    divDiamondCarat = document.getElementById('divDiamondCarat');

    tdDiamondClarityCarat = document.getElementById('tdDiamondClarityCarat');
    tdDiamondClarityShape = document.getElementById('tdDiamondClarityShape');
    //if the server side code threw an exception
    if (response.error != null) {
        alert(response.error); //we should probably do better than this
        return;
    }
    var varObject = response.value;
    if (varObject == null || typeof (varObject) != "object") {
        alert("Response Unexpected");
        return;
    }
    dvClarityPrices = IdentifyResponse(response);
    divWait.style.display = 'none';
    divDiamondClarity.style.display = '';
    tdDiamondClarityShape.innerHTML = Shape;
    tdDiamondClarityCarat.innerHTML = formatCurrency1(MinCarat) + " to " + formatCurrency1(MaxCarat);
    document.getElementById("chkClarity1").checked = true;
    fnchkClarity_Click(document.getElementById("chkClarity1"));
}
function fnchkClarity_Click(obj) {
    tdDiamondClarityPrice = document.getElementById('tdDiamondClarityPrice');
    var TempMinPrice = 0, TempMaxPrice = 0, intDiamondCount = 0;
    for (var i = 0; i < dvClarityPrices.length; i++) {
        Clarity = obj.value;
        if (obj.value == "1") {
            if (dvClarityPrices[i].intClarityPriority <= 11 && dvClarityPrices[i].intClarityPriority >= 9) {
                if (intDiamondCount == 0) {
                    TempMinPrice = dvClarityPrices[i].fltMinPrice; TempMaxPrice = dvClarityPrices[i].fltMaxPrice;
                }
                if (dvClarityPrices[i].fltMinPrice < TempMinPrice) {
                    TempMinPrice = dvClarityPrices[i].fltMinPrice;
                }
                if (TempMaxPrice < dvClarityPrices[i].fltMaxPrice) {
                    TempMaxPrice = dvClarityPrices[i].fltMaxPrice;
                }
                intDiamondCount += dvClarityPrices[i].intNoDiamonds;
            }
        }
        else if (obj.value == "2") {
            if (dvClarityPrices[i].intClarityPriority <= 8 && dvClarityPrices[i].intClarityPriority >= 6) {
                if (intDiamondCount == 0) {
                    TempMinPrice = dvClarityPrices[i].fltMinPrice; TempMaxPrice = dvClarityPrices[i].fltMaxPrice;
                }
                if (dvClarityPrices[i].fltMinPrice < TempMinPrice) {
                    TempMinPrice = dvClarityPrices[i].fltMinPrice;
                }
                if (TempMaxPrice < dvClarityPrices[i].fltMaxPrice) {
                    TempMaxPrice = dvClarityPrices[i].fltMaxPrice;
                }
                intDiamondCount += dvClarityPrices[i].intNoDiamonds;
            }
        }
        else {
            if (dvClarityPrices[i].intClarityPriority <= 5 && dvClarityPrices[i].intClarityPriority >= 3) {
                if (intDiamondCount == 0) {
                    TempMinPrice = dvClarityPrices[i].fltMinPrice; TempMaxPrice = dvClarityPrices[i].fltMaxPrice;
                }
                if (dvClarityPrices[i].fltMinPrice < TempMinPrice) {
                    TempMinPrice = dvClarityPrices[i].fltMinPrice;
                }
                if (TempMaxPrice < dvClarityPrices[i].fltMaxPrice) {
                    TempMaxPrice = dvClarityPrices[i].fltMaxPrice;
                }
                intDiamondCount += dvClarityPrices[i].intNoDiamonds;
            }
        }
    }
    MinPrice = TempMinPrice; MaxPrice = TempMaxPrice;
    if (intDiamondCount != 0) {
        tdDiamondClarityPrice.innerHTML = "<table cellspacing='0' cellpadding='0'><tr><td width='190px'><b>" + formatCurrency(TempMinPrice) + " to " + formatCurrency(TempMaxPrice) + "</b></td><td class='diamondadvisor_noofDiamond'>(" + intDiamondCount + " Diamonds)</td></tr></table>";
    }
    else {
        tdDiamondClarityPrice.innerHTML = "No Diamonds Available";
        intDiamondCount = 0;
    }
}
function fnDiamondClarityBack() {
    divDiamondClarity = document.getElementById('divDiamondClarity');
    divWait = document.getElementById('divWait');
    divDiamondColor = document.getElementById('divDiamondColor');

    divDiamondClarity.style.display = 'none';
    divDiamondColor.style.display = '';
    intDiamondCount = intPrevDiamondCount;
}
function fnDiamondClarityNext() {
    divDiamond = document.getElementById('divDiamond');
    divWait = document.getElementById('divWait');
    divDiamondCarat = document.getElementById('divDiamondCarat');
    divDiamondClarity = document.getElementById('divDiamondClarity');
    divDiamondPrice = document.getElementById('divDiamondPrice');
    tdDiamondPriceShape = document.getElementById('tdDiamondPriceShape');
    tdDiamondPriceCarat = document.getElementById('tdDiamondPriceCarat');
    tdDiamondPricePrice = document.getElementById('tdDiamondPricePrice');
    tdMinPrice = document.getElementById('tdMinPrice');
    tdMaxPrice = document.getElementById('tdMaxPrice');
    if (intDiamondCount == 0) {
        alert("There is no diamond for this Clarity");
        return;
    }
    intPrevDiamondCount = intDiamondCount;
    divDiamondClarity.style.display = 'none';
    divDiamondPrice.style.display = '';
    tdDiamondPriceShape.innerHTML = Shape;
    tdDiamondPriceCarat.innerHTML = formatCurrency1(MinCarat) + " to " + MaxCarat;
    tdDiamondPricePrice.innerHTML = "<table cellspacing='0' cellpadding='0'><tr><td width='190px'><b>" + formatCurrency(MinPrice) + " to " + formatCurrency(MaxPrice) + "</b></td><td class='diamondadvisor_noofDiamond'>(" + intDiamondCount + " Diamonds)</td></tr></table>";
    tdMinPrice.innerHTML = formatCurrency(MinPrice);
    tdMaxPrice.innerHTML = formatCurrency(MaxPrice);
    flgPrice = true;

    if (MinPrice == MaxPrice) {
        var ob1 = document.getElementById("tblSliderParent");
        var ob2 = document.getElementById("tdEqualPrice");
        ob2.style.display = '';
        ob2.innerHTML = "<b>&nbsp;" + formatCurrency(MaxPrice) + "</b>";
        ob1.style.display = 'none';
        MinPriceNew = MinPrice; MaxPriceNew = MaxPrice;
    }
    else {
        o1 = document.getElementById("tblSliderParent");
        o1.style.display = '';
        var ob2 = document.getElementById("tdEqualPrice");
        ob2.style.display = 'none';
        fnSetSliderPosition();
    }
}
function fnSetSliderPosition() {
    var o;
    divDiamond = document.getElementById('divDiamond');
    divWait = document.getElementById('divWait');
    divDiamondCarat = document.getElementById('divDiamondCarat');
    if (MinPrice != MaxPrice) {
        //****** Price Slider ******
        //Slider Price Left Arrow Variables
        o = document.getElementById("sldPriceLeft");
        o1 = document.getElementById("tblPriceSlider");
        sldPriceLeftMinLeft = getAbsLeft(o1);
        sldPriceLeftMaxLeft = getAbsLeft(o1) + o1.offsetWidth - 40;
        sldPriceTop = getAbsTop(o1);
        setTop(o, sldPriceTop);
        setPosition(o, sldPriceLeftMinLeft, sldPriceTop);
        //Slider Price Right Arrow Variables
        o = document.getElementById("sldPriceRight");
        sldPriceRightMinLeft = sldPriceLeftMinLeft + 20;
        sldPriceRightMaxLeft = getAbsLeft(o1) + o1.offsetWidth - 20;
        setTop(o, sldPriceTop);
        setPosition(o, sldPriceRightMaxLeft, sldPriceTop);
        o = document.getElementById("sldPriceMiddle");
        o.style.top = sldPriceTop + 1;
        o.style.left = sldPriceLeftMinLeft + 'px';
        o.style.width = (sldPriceRightMaxLeft - sldPriceLeftMinLeft) + 'px';

        MinPriceNew = MinPrice; MaxPriceNew = MaxPrice;
        fnFetchDiamondPrice(true);
    }
}
// Generic mouse up handler
function sldPriceLeftMouseDown(e) {
    if (!e) { e = window.event }
    dosldPriceLeftDrag = true;
    o1 = document.getElementById("sldPriceLeft");
    sldMouseLeft = e.clientX - o1.offsetLeft;
}
function sldPriceRightMouseDown(e) {
    if (!e) { e = window.event }
    dosldPriceRightDrag = true;
    o1 = document.getElementById("sldPriceRight");
    sldMouseLeft = e.clientX - o1.offsetLeft;
}
function fnDiamondPriceBack() {
    divDiamondClarity = document.getElementById('divDiamondClarity');
    divDiamondPrice = document.getElementById('divDiamondPrice');

    flgPrice = false;
    intOptimize = 0;
    divDiamondPrice.style.display = 'none';
    divDiamondClarity.style.display = '';
}
function fnchkPrice_Click(obj) {
    PriceSorting = obj.value;
}
function fnViewDiamonds() {
    if (intDiamondCount == 0) {
        alert("There is no diamond for this Price range");
        return false;
    }
    document.getElementById('ctl00_ContentPlaceHolder1_hdnShape').value = Shape;
    document.getElementById('ctl00_ContentPlaceHolder1_hdnMinCarat').value = MinCarat;
    document.getElementById('ctl00_ContentPlaceHolder1_hdnMaxCarat').value = MaxCarat;
    document.getElementById('ctl00_ContentPlaceHolder1_hdnCutPriority').value = CutPriority;
    document.getElementById('ctl00_ContentPlaceHolder1_hdnflgColorless').value = flgColorLess;
    document.getElementById('ctl00_ContentPlaceHolder1_hdnClarity').value = Clarity;
    document.getElementById('ctl00_ContentPlaceHolder1_hdnPriceSorting').value = PriceSorting;
    document.getElementById('ctl00_ContentPlaceHolder1_hdnMinPrice').value = MinPriceNew.toFixed(2);
    document.getElementById('ctl00_ContentPlaceHolder1_hdnMaxPrice').value = MaxPriceNew.toFixed(2);
    return true;
}
//Slider variables
var doDrag = false;
sldTop = 0
sldLeft = 0
doDrag = false
sldMouseLeft = 0
sldMouseTop = 0
minLeft = 0
maxLeft = 0
//Slider Functions
function fnLoadDiamond() {
    divDiamond = document.getElementById('divDiamond');
    divWait = document.getElementById('divWait');
    divDiamondCarat = document.getElementById('divDiamondCarat');
    divDiamondPrice = document.getElementById('divDiamondPrice');
    divCaratSlider = document.getElementById('divCaratSlider');
    divWait.style.display = 'none';
    divCaratSlider.style.display = '';
    // Initial variables' value settings
    o = document.getElementById("divCaratSlider")
    o1 = document.getElementById("tblCaratSlider")
    o2 = document.getElementById("tblCaratSlider")
    o3 = document.getElementById("tdCarat_12")
    minLeft = getAbsLeft(o2);
    //maxLeft = o2.offsetLeft + o2.offsetWidth;
    maxLeft = getAbsLeft(o2) + o2.offsetWidth - 40;
    sldTop = getAbsTop(o2) - 10;
    setTop(o, sldTop + 5);
    setPosition(o, minLeft + 10, maxLeft);
    fnCheck(minLeft + 10);
}
function getAbsLeft(o) {
    oLeft = o.offsetLeft
    while (o.offsetParent != null) {
        oParent = o.offsetParent
        oLeft += oParent.offsetLeft
        o = oParent
    }
    return oLeft
}
function getAbsTop(o) {
    oTop = o.offsetTop
    while (o.offsetParent != null) {
        oParent = o.offsetParent
        oTop += oParent.offsetTop
        o = oParent
    }
    return oTop
}
function setLeft(o, oLeft) {
    o.style.left = oLeft + "px"
}
function setTop(o, oTop) {
    o.style.top = oTop + "px"
}
function setPosition(o, oLeft, oTop) {
    setLeft(o, oLeft);
}
// Generic mouse move handler
function sldMouseMove(e) {
    // Get event object for IE
    if (!e) { e = window.event }
    // If drag action is on going
    if (doDrag) {
        o = document.getElementById("divCaratSlider");
        o2 = document.getElementById("tblCaratSlider");
        minLeft = getAbsLeft(o2);
        // Get slider's head new position
        newPos = e.clientX - sldMouseLeft;
        // Check slider's container boundaries
        if (newPos <= minLeft) { newPos = minLeft; }
        if (newPos >= maxLeft) { newPos = maxLeft; }
        // Set slider's head new position
        setPosition(o, newPos, sldTop);
        fnCheck(newPos);
        return false;
    }
    else if (dosldPriceLeftDrag)	// If drag action is on going
    {
        o = document.getElementById("sldPriceLeft");
        var newPos = e.clientX - sldMouseLeft; // Get slider's head new position
        if (newPos <= sldPriceLeftMinLeft) { newPos = sldPriceLeftMinLeft }; // Check slider's container boundaries
        if (newPos >= sldPriceLeftMaxLeft) { newPos = sldPriceLeftMaxLeft };
        sldPriceRightMinLeft = newPos + 20;
        setPosition(o, newPos, sldPriceTop); // Set slider's head new position
        fnPriceLeftCheck(newPos);
        o = document.getElementById("sldPriceMiddle");
        o.style.left = newPos + 'px';
        o.style.width = (sldPriceLeftMaxLeft + 20 - newPos) + 'px';
        return false;
    }
    else if (dosldPriceRightDrag) {
        o = document.getElementById("sldPriceRight");
        var newPos = e.clientX - sldMouseLeft; // Get slider's head new position
        if (newPos <= sldPriceRightMinLeft) { newPos = sldPriceRightMinLeft }; // Check slider's container boundaries
        if (newPos >= sldPriceRightMaxLeft) { newPos = sldPriceRightMaxLeft };
        sldPriceLeftMaxLeft = newPos - 20;
        setPosition(o, newPos, sldPriceTop); // Set slider's head new position
        fnPriceRightCheck(newPos);
        o = document.getElementById("sldPriceMiddle");
        o.style.width = (newPos - sldPriceRightMinLeft + 20) + 'px';
        return false;
    }
    else if (dosldColorLeftDrag) {
        o = document.getElementById("sldColorLeft");
        var newPos = e.clientX - sldMouseLeft; // Get slider's head new position
        if (newPos <= sldColorLeftMinLeft) { newPos = sldColorLeftMinLeft }; // Check slider's container boundaries
        if (newPos >= sldColorLeftMaxLeft) { newPos = sldColorLeftMaxLeft };
        sldColorRightMinLeft = newPos + 20;
        setPosition(o, newPos, sldColorTop); // Set slider's head new position
        fnColorLeftCheck(newPos);
        o = document.getElementById("sldColorMiddle");
        o.style.left = newPos + 'px';
        o.style.width = (sldColorLeftMaxLeft + 20 - newPos) + 'px';
        return false;
    }
    else if (dosldColorRightDrag) {
        o = document.getElementById("sldColorRight");
        var newPos = e.clientX - sldMouseLeft; // Get slider's head new position
        if (newPos <= sldColorRightMinLeft) { newPos = sldColorRightMinLeft }; // Check slider's container boundaries
        if (newPos >= sldColorRightMaxLeft) { newPos = sldColorRightMaxLeft };
        sldColorLeftMaxLeft = newPos - 20;
        setPosition(o, newPos, sldColorTop); // Set slider's head new position
        fnColorRightCheck(newPos);
        o = document.getElementById("sldColorMiddle");
        o.style.width = (newPos - sldColorRightMinLeft + 20) + 'px';
        return false;
    }
}
function sldMouseDown(e) {
    // Get event object for IE
    if (!e) { e = window.event }
    // Drag action begins
    doDrag = true
    o1 = document.getElementById("divCaratSlider")
    o2 = document.getElementById("tblCaratSlider")
    // Get slider's head position
    sldLeft = o1.offsetLeft
    sldTop = o2.offsetTop
    // Get mouse cursor position relatively to the slider's head
    sldMouseLeft = e.clientX - sldLeft
    sldMouseTop = e.clientY - sldTop
}
function fnColorLeftCheck(Pos)	//Change Color Range
{
    var Old_ColorMin = ColorMin;
    for (var i = 1; i <= 11; i++) {
        o = document.getElementById("tdColor_" + i);
        if (Pos + 20 >= getAbsLeft(o) && Pos + 20 <= getAbsLeft(o) + o.offsetWidth) {
            ColorMin = i;
            fnGetMinMaxPrice(ColorMin, ColorMax);
        }
        if (i >= ColorMin && i <= ColorMax) {
            o.className = "caps_10Font_align_center_active";
        }
        else {
            o.className = "caps_10Font_align_center";
        }

    }
}
function fnColorRightCheck(Pos)	//Change Color Range
{
    var Old_ColorMax = ColorMax;
    for (var i = 1; i <= 11; i++) {
        o = document.getElementById("tdColor_" + i);
        if (Pos >= getAbsLeft(o) && Pos <= getAbsLeft(o) + o.offsetWidth) {
            ColorMax = i;
            fnGetMinMaxPrice(ColorMin, ColorMax);
        }
        if (i >= ColorMin && i <= ColorMax) {
            o.className = "caps_10Font_align_center_active";
        }
        else {
            o.className = "caps_10Font_align_center";
        }
    }
}
//set position of color sider(Left) when mouse up.
function sldColorLeftMouseUp() {
    setLeftColorSlider(); setRightColorSlider();
}
//set position of color sider(Right) when mouse up.
function sldColorRightMouseUp() {
    setRightColorSlider(); setLeftColorSlider();
}
function sldColorLeftMouseDown(e) {
    if (!e) { e = window.event }
    dosldColorLeftDrag = true;
    o1 = document.getElementById("sldColorLeft");
    sldMouseLeft = e.clientX - o1.offsetLeft;
}
function sldColorRightMouseDown(e) {
    if (!e) { e = window.event }
    dosldColorRightDrag = true;
    o1 = document.getElementById("sldColorRight");
    sldMouseLeft = e.clientX - o1.offsetLeft;
}
function setLeftColorSlider()	// Set Left color slider
{
    var Pos;
    o = document.getElementById("tdColor_" + ColorMin);
    Pos = (getAbsLeft(o) + o.offsetWidth / 2) - 10;

    if (ColorMin == 1)
        Pos = sldColorLeftMinLeft;
    else if (ColorMin == ColorMax && ColorMin != 11)
        Pos = Pos - 10;
    setPosition(document.getElementById("sldColorLeft"), Pos, sldColorTop);
    sldColorRightMinLeft = Pos + 20;
    o = document.getElementById("sldColorMiddle");
    o.style.left = Pos + 'px';
    o.style.width = sldColorLeftMaxLeft + 25 - Pos + 'px';

    for (var i = 1; i <= 11; i++) {
        o = document.getElementById("tdColor_" + i);
        if (i >= ColorMin && i <= ColorMax) {
            o.className = "caps_10Font_align_center_active";
        }
        else {
            o.className = "caps_10Font_align_center";
        }
    }
}
function setRightColorSlider() // Set Right color slider
{
    var Pos;
    o = document.getElementById("tdColor_" + ColorMax);
    Pos = (getAbsLeft(o) + o.offsetWidth / 2) - 10;
    if (ColorMax == 11)
        Pos = sldColorRightMaxLeft;
    else if (ColorMin == ColorMax && ColorMin != 1)
        Pos = Pos + 10;

    setPosition(document.getElementById("sldColorRight"), Pos, sldColorTop);
    sldColorLeftMaxLeft = Pos - 20;
    o = document.getElementById("sldColorMiddle");
    o.style.width = Pos - sldColorRightMinLeft + 25 + 'px';

    for (var i = 1; i <= 11; i++) {
        o = document.getElementById("tdColor_" + i);
        if (i >= ColorMin && i <= ColorMax) {
            o.className = "caps_10Font_align_center_active";
        }
        else {
            o.className = "caps_10Font_align_center";
        }
    }
}
// Generic mouse up handler
function sldMouseUp(e) {
    doPriceDrag = false; doDrag = false; dosldPriceLeftDrag = false; dosldPriceRightDrag = false; 
    dosldColorLeftDrag = false; dosldColorRightDrag = false;
}
function fnCheck(LeftPos)	//Change Carat Range
{
    for (var i = 2; i <= 12; i++) {
        o = document.getElementById("tdCarat_" + i);
        if (LeftPos <= getAbsLeft(o) + 20 && LeftPos + 40 >= getAbsLeft(o) + 20) {
            if (document.getElementById("tdCarat_" + PrevTdCarat)) {
                document.getElementById("tdCarat_" + PrevTdCarat).className = "griditem";
            }
            o.className = "boldgriditem";
            PrevTdCarat = i;
            fnGetMinMaxPrice(i);
        }
    }
}
function fnPriceCheck(pos) {
    var newpos = getAbsLeft(document.getElementById("divPriceSlider")) - minLeft;
    var percentage = Math.round(newpos * 100 / (maxLeft - minLeft));
    NewPrice = Math.round((percentage * (MaxPrice - MinPrice)) / 100) + MinPrice;
    tdCurrentPrice.innerHTML = formatCurrency(NewPrice);
    document.Form1.hdnNewPrice.value = NewPrice;
}
//*********** New Price ***************
function fnPriceLeftCheck(Pos)	//Change Price Range
{
    var percentage = Math.round((Pos - sldPriceLeftMinLeft) * 100 / (sldPriceRightMaxLeft - sldPriceLeftMinLeft));
    var NewPrice = Math.round((percentage * (MaxPrice - MinPrice)) / 100) + MinPrice;
    tdMinPrice.innerHTML = formatCurrency(NewPrice);
    MinPriceNew = NewPrice;
    fnFetchDiamondPrice(false);
}
function fnPriceRightCheck(Pos)	//Change Price Range
{
    var percentage = Math.round((Pos - sldPriceLeftMinLeft) * 100 / (sldPriceRightMaxLeft - sldPriceLeftMinLeft));
    var NewPrice = Math.round((percentage * (MaxPrice - MinPrice)) / 100) + MinPrice;
    tdMaxPrice.innerHTML = formatCurrency(NewPrice);
    MaxPriceNew = NewPrice;
    fnFetchDiamondPrice(false);
}
function fnFetchDiamondPrice(flgOptimized) {
    window.clearTimeout(TimeOptimizeId);
    if (flgOptimized) {
        TimeOptimizeId = window.setInterval("fnFetchOptimize();", 1);
    }
    else {
        TimeOptimizeId = window.setInterval("fnFetchOptimize();", 300);
    }
}
function fnFetchOptimize() {
    intOptimize++;
    diamondadvisor.GetMinMaxNewPrice(Shape, MinCarat, MaxCarat, CutPriority, flgColorLess, Clarity, MinPriceNew, MaxPriceNew, intOptimize, LoadNewPrice_CallBack);
    window.clearTimeout(TimeOptimizeId);
}
function LoadNewPrice_CallBack(response) {
    divDiamond = document.getElementById('divDiamond');
    divWait = document.getElementById('divWait');
    divDiamondCarat = document.getElementById('divDiamondCarat');
    divDiamondPrice = document.getElementById('divDiamondPrice');

    tdDiamondPricePrice = document.getElementById('tdDiamondPricePrice');
    if (response.error != null) {
        alert(response.error); //we should probably do better than this
        return;
    }
    var varObject = response.value;
    if (varObject == null || typeof (varObject) != "object") {
        alert("Response Unexpected");
        return;
    }
    var dvNewPrice = IdentifyResponse(response);
    if (dvNewPrice.length != 0) {
        if (dvNewPrice[0].intOptimize != intOptimize) {
            return;
        }
        tdDiamondPricePrice.innerHTML = "<table cellspacing='0' cellpadding='0'><tr><td width='190px'><b>" + formatCurrency(MinPriceNew) + " to " + formatCurrency(MaxPriceNew) + "</b></td><td class='diamondadvisor_noofDiamond'>(" + dvNewPrice[0].intNoDiamonds + " Diamonds)</td></tr></table>";
        intDiamondCount = dvNewPrice[0].intNoDiamonds;
    }
    else {
        intDiamondCount = 0;
    }
    divWait.style.display = 'none';
    divDiamondPrice.style.display = '';
}
//*********** New Price **************
function fnWinResize() {
    if (flgPrice) {
        fnSetSliderPosition();
    }
    else if (flgCarat) {
        fnLoadDiamond();
    }
}
function parseMoney(parseString) {
    if (parseInt(parseString / 1000) >= 1) {
        var modString = parseInt(parseString % 1000);
        if (modString < 100) {
            if (modString < 10)
                modString = "00" + modString;
            else
                modString = "0" + modString;
        }
        parseString = parseMoney(parseInt(parseString / 1000)) + "," + modString;
        return parseString;
    }
    else
        return parseString;
}
//Identify server Response Structure
function IdentifyResponse(response) {
    if (response.value.Rows != null) {
        return response.value.Rows;
    }
    else {
        return response.value;
    }
}
function LoadPrice_CallBack(response) {
    divWait = document.getElementById('divWait');
    divDiamondCarat = document.getElementById('divDiamondCarat');
    divDiamondPrice = document.getElementById('divDiamondPrice');
    //if the server side code threw an exception
    divDiamond = document.getElementById("divDiamond");
    if (response.error != null) {
        alert(response.error); //we should probably do better than this
        return;
    }
    var Prices = response.value;
    //if the response wasn't what we expected  
    if (Prices == null || typeof (Prices) != "object") {
        return;
    }
    ShapeWisePrices = IdentifyResponse(response);
    divDiamond.style.display = '';
    divWait.style.display = 'none';
    //Check Shape Availability
    var flgShape = false;
    var objSh = document.getElementsByName("optShape");

    for (var i = 0; i < document.getElementsByName("optShape").length; i++) {
        flgShape = false;

        for (var j = 0; j < ShapeWisePrices.length; j++) {
            if (ShapeWisePrices[j].txtShape == objSh[i].value) {
                flgShape = true;
            }
        }
        if (!flgShape) {
            objSh[i].disabled = true;
        }
    }
    fnDiamondShape(objSh[0]);
}
function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + ',' +
				num.substring(num.length - (4 * i + 3));
    return (((sign) ? '' : '-') + '$' + num + '.' + cents);
}
function formatCurrency1(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) +
				num.substring(num.length - (4 * i + 3));
    return (((sign) ? '' : '-') + num + '.' + cents);
}
function ChangeMasterWidth(countcheck) {
    var wth = countcheck * 64;
    wth = wth + 200;

    if (wth > 1000) {
        var top = document.getElementById("top"); top.style.width = wth + 'px';
        var toplinks = document.getElementById("toplinks"); toplinks.style.width = wth + 'px';
        var middle = document.getElementById("middle"); middle.style.width = wth + 'px';
        var btm = document.getElementById("bottom"); btm.style.width = wth + 'px';
        var footerlogo = document.getElementById("footerlogo"); footerlogo.style.width = wth + 'px';
    }
    else {
        var top = document.getElementById("top"); top.style.width = 1003 + 'px';
        var toplinks = document.getElementById("toplinks"); toplinks.style.width = 1003 + 'px';
        var middle = document.getElementById("middle"); middle.style.width = 1003 + 'px';
        var btm = document.getElementById("bottom"); btm.style.width = 1003 + 'px';
        var footerlogo = document.getElementById("footerlogo"); footerlogo.style.width = 1003 + 'px';
    }
    o1 = document.getElementById("loign_streep");
    var wt = getAbsLeft(o1) + o1.offsetWidth + 18;
    var rgt = document.getElementById("right");
    rgt.style.position = 'absolute';
    rgt.style.left = wt + 'px';
    rgt.style.top = 105 + 'px';
    rgt.style.width = 198 + 'px';
}
