﻿
var sort = "1 ASC,"; var active = 0; var moreOp = 0; var strMsg = ""; var gSliderGup = 256; var gCid = 130; var gHA = false;
var gSearchType = 'Loose'; // Loose /Ring   
var gST = 'Loose';
var coockie = new Coockie();
var jas = "slider2/";
var gAdmin = '0';
function $(v) { return document.getElementById(v); };
function no$(v) { var sv = new String(v); return sv.replace(/,/g, "").replace("$", ""); };
/********************************************************
LI
********************************************************/
function LI(name, title, centerImg, slctdImage, notSlctdImg, selectedClass, notSelectedClass, disableClass) {
    this.IsSlctd = false;
    this.IsEnabled = true;
    this.Name = name;
    this.Title = title;
    if (centerImg != null) { this.CenterImg = centerImg; };
    this.SlctdImage = slctdImage;
    this.NotSlctdImg = notSlctdImg;
    this.ListName = "";
    this.ItemNum = 0;
    this.Width = 20;
    this.IsStrip = false;
    this.SelectedClass = selectedClass;
    this.NotSelectedClass = notSelectedClass;
    this.DisableClass = disableClass;
};
LI.prototype.SetIsSlctd = function(isSlctd) {
    this.IsSlctd = isSlctd;
    var e = $(this.ListName + this.ItemNum);
    if (this.IsStrip) {
        if (this.IsEnabled == true)
            e.className = (isSlctd) ? this.SelectedClass : this.NotSelectedClass;
        else
            e.className = this.DisableClass;
    }
    else
        e.style.backgroundImage = (isSlctd) ? 'url(' + this.SlctdImage.src + ')' : 'url(' + this.NotSlctdImg.src + ')';

};
LI.prototype.Toggle = function() {
    this.SetIsSlctd(!this.IsSlctd);
};
LI.prototype.GetHtml = function() {
    var html = '<td  style="text-align:left; vertical-align:top;">';
    var height = eval(this.ListName + ".Height");
    html += '<table cellspacing="0" cellpadding="0" onclick="' + this.ListName + '.Click(' + this.ItemNum + ')" id="' + this.ListName + this.ItemNum + '"';

    if (this.IsStrip == false)
        html += ' style="background-image: url(' + this.NotSlctdImg.src + ');  width:' + this.Width + 'px; height:' + height + 'px;"';
    else {
        if (this.IsEnabled)
            html += ' class="' + this.NotSelectedClass + '" ';
        else
            html += ' class="' + this.disableClass + '" ';
    }
    html += '><tr><td style="text-align:center; vertical-align:middel;">';
    if (this.CenterImg != null && this.CenterImg != 'undefined')
        html += '<img style="visibility:visible;" src="' + this.CenterImg + '" width="' + this.Width + '" height="' + height +'" alt="' + this.Name + '"/>';
    else
        html += '<span style="visibility:visible;">' + this.Title + '</span>';
    html += '</td></tr></table>';
    html += '</td>';
    //alert(html);
    return html;
};

/********************************************************
Buttonlist
********************************************************/
function Buttonlist(name, itemWidth, height, space) {
    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";
    this.IsStrip = false;
    this.Space = space;
};
Buttonlist.prototype.SelectedItemChanged = function() { };
Buttonlist.prototype.Select = function(ItemNum) {
    if (this.SlctdItem != null)
        this.SlctdItem.SetIsSlctd(false);
    this.List[ItemNum].SetIsSlctd(true);
    this.SlctdItem = this.List[ItemNum];
    this.SelectedItemChanged();
};
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.LoadFromCoockie = function() {
    if (coockie.Get(gSearchType + "_" + this.Name))
        this.SelectRange(coockie.Get(gSearchType + "_" + this.Name));
};
Buttonlist.prototype.SetEnabled = function(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].IsEnabled = false;
            if (this.IsStrip == false) {
                this.List[i].NotSlctdImg = new Image();
                this.List[i].NotSlctdImg.src = jas + 'Images/Titlebgl.gif';
                this.List[i].RightImg = new Image();
                this.List[i].RightImg.src = jas + 'Images/DisableRight.gif';
            }
            else {
                // alert($(this.Name + this.List[i].ItemNum ).className );
                var e = $(this.List[i].ListName + this.List[i].ItemNum);
                e.className = this.List[i].DisableClass;
            }
            this.List[i].SetIsSlctd(false);
        }
    }
};
Buttonlist.prototype.Add = function(listItem) {
    listItem.ListName = this.Name;
    listItem.ItemNum = this.Count;
    listItem.Width = this.ItemWidth;
    listItem.IsStrip = this.IsStrip
    this.List[this.Count] = listItem;
    this.Count += 1;
};
Buttonlist.prototype.GetHtml = function() {
    var html = "<table style=\"width:100%;\" class=\"Pane\" cellpadding=\"0\" cellspacing=\"0\"><tr>";
    html += "<td class=\"LableText\" style=\"height:" + this.Height + "px; width: 42px;\">";
    html += "<span style=\"visibility:visible;\" title=\"Click button to select\">" + this.DisplayNAme + "</span>";
    html += "</td>";
    for (var i = 0; i < this.Count; i++) {
        if (this.Space > 0 && i != 0)
            html += "<td style=\"width:" + this.Space + "px; \"></td>";
        html += this.List[i].GetHtml();
    }
    html += "</tr></table>";
    // alert(html);
    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) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = ";expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = "R2SearchClient=" + value + expires + ";domain=jared-diamonds.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\"><tr>" +
            "<td class=\"LableText\" style=\"width: 37px;\">" +
             "<span style=\"visibility:visible;\">" + this.Title + "</span></td>" +
            "<td>" +
            "<div  style=\"width:314px; padding-left:9px; background-image:url('" + jas + "Images/trak.png'); background-repeat:no-repeat;\">";
    if (N) s += "<div style=\"margin-left: 1px;\" >";
    s += " <div style=\"position: absolute; width: 296px; visibility:visible;\">" +
                    "<div id=\"SliderTrackMin\" class=\"TrackShadow\" style=\"float: left;\"></div> " +
                    "<div id=\"SliderTrackMax\" class=\"TrackShadow\" style=\"float: right;\"></div>" +
                "</div>" +
                "<div style=\"position: absolute; width: 296px; visibility:visible;\">" +
                       "<img id=\"SliderThumbMinImg\"  src=\"" + jas + "Images/sliderMin.png\" width=\"22\" height=\"18\" alt=\"\" style=\"z-index: 200; cursor:pointer; position: relative; left: 0px; display: inline;\" />" +
                   "    <img id=\"SliderThumbMaxImg\"  src=\"" + jas + "Images/sliderMax.png\" width=\"22\" height=\"18\" alt=\"\" style=\"z-index: 200; cursor:pointer; position: relative; left: 248px; display: inline;\" />" +
                "</div>" +
                "<div style=\"position: absolute; width: 296px; z-index:1000; visibility:visible; \">" +
                       "<img id=\"SliderThumbMin\" src=\"" + jas + "Images/sliderTT.gif\" width=\"22\" height=\"18\" alt=\"\" style=\"z-index: 200; cursor:pointer; position: relative; left: 0px; display: inline;\" />" +
                   "    <img id=\"SliderThumbMax\" src=\"" + jas + "Images/sliderTT.gif\" width=\"22\" height=\"18\" alt=\"\" style=\"z-index: 200; cursor:pointer; position: relative; left: 248px; display: inline;\" />" +
                "</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: 296px; font-size: 10px; text-align:center; margin-top:3px;  visibility:visible;\">" + this.FromValue + " - " + this.ToValue + "</div>" +
                "<img name=\"Track\" src=\"" + jas + "Images/blank.gif\" width=\"296px\" height=\"18px\" alt=\"\">";
    if (N) s += "</div>";
    s += "<div></td></tr></table>";
    //alert(s);
    s = s.replace(/Slider/g, this.Title);
    ////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) + 5;
    if (fromVal < this.CalcValue(min))
        min = min - 1;
    var max = parseInt(this.CalcNormal(toVal) * gSliderGup) - 16;
    if (toVal > this.CalcValue(max))
        max = max + 1;
    SetSliderValues(this.Title, min, max);
}
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);
};
/********************************************************
Drag & Drop
********************************************************/
var N = (document.all) ? 0 : 1;
var ob, X, Y, offsetX, offsetY, thambType, curSlider;
function MD(e) {
    var thumb = (N) ? 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/, "")
        // cancel out any text selections
        document.body.focus();
        // prevent text selection in IE
        document.onselectstart = function() { return false; };

        ob = thumb.style;
        offsetX = parseInt(thumb.style.left);
        offsetY = parseInt(thumb.style.top);
        thambType = tmbType;
        curSlider = Sliders[sliderName];
        if (N) { X = e.pageX; Y = e.pageY; }
        else { X = event.clientX; Y = event.clientY; }
        return false;
    }
};

function MM(e) {
    if (ob) {
        if (curSlider) {
            var sliderName = curSlider.Title;
            var l = (N) ? e.pageX : event.clientX;
            l += -X + offsetX;
            if (thambType == "Min") {
                if (l > 0 && l < parseInt($(sliderName + 'ThumbMax').style.left) + 8)
                    SetSliderValues(sliderName, l, null);
            }
            else {
                if (l > parseInt($(sliderName + 'ThumbMin').style.left) - 7 && l < 252)
                    SetSliderValues(sliderName, null, l);
            }
            return false;
        }
    }
};

function SetSliderValues(sliderTitle, min, max) {
    if (min) {
        $(sliderTitle + 'ThumbMin').style.left = min - 0;
        $(sliderTitle + 'ThumbMinImg').style.left = min - 0;
        $(sliderTitle + 'TrackMin').style.width = min + 9;
        var f = Sliders[sliderTitle].CalcValue((min - 0) / gSliderGup);
        Sliders[sliderTitle].FromValue = (f < Sliders[sliderTitle].MinRange) ? Sliders[sliderTitle].MinRange : f;
    }
    if (max) {
        $(sliderTitle + 'ThumbMax').style.left = max - 2;
        $(sliderTitle + 'ThumbMaxImg').style.left = max - 2;
        $(sliderTitle + 'TrackMax').style.width = (265 - max - 8);
        strMsg += max + "<br/>";
        var t = Sliders[sliderTitle].CalcValue((max + 5) / gSliderGup);
        Sliders[sliderTitle].ToValue = (t > Sliders[sliderTitle].MaxRange) ? Sliders[sliderTitle].MaxRange : t;
    }
    if (sliderTitle == 'Carat')
        $(sliderTitle + 'ValueDisplay').innerHTML = ' &nbsp; &nbsp; &nbsp; &nbsp; '
    else
        $(sliderTitle + 'ValueDisplay').innerHTML = ''
    $(sliderTitle + 'ValueDisplay').innerHTML += Sliders[sliderTitle].FromValue;
    $(sliderTitle + 'ValueDisplay').innerHTML += " - " + Sliders[sliderTitle].ToValue;
};
function MU() {
    ob = 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 += "&OrderBy=" + sort.substring(0, sort.length - 1);
    qs += "&MOP=" + (moreOp == 1).toString();
    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;
};

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 = '';
        }
        else {
            var so = order + " DESC,";
            if (sort.indexOf(so, 0) >= 0)
                sort = order + " ASC," + sort.replace(so, "");
            else
                sort = so + sort.replace(order + " ASC,", "");
        }
    }
    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 (N)
        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();
};
function ShowInfo() {
    $('TopBound').innerHTML = "We have " + number_format($('NOR').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";
    }
    $('TopBound').innerHTML += ".";
};
function ShowUpdatingStatus() {
    $("Loading").style.left = (findPosX($('TopBound')) + 345 - parseInt($("Loading").style.width) / 2) + "px";
    $("Loading").style.top = (findPosY($('TopBound')) + 50) + "px"; ;
    $("Loading").style.display = 'block';
};

function HideUpdatingStatus() { $("Loading").style.display = 'none'; };
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.transform()
        transform = xslProc.output;

    }
    else {
        var xsl = new XSLTProcessor();
        xsl.importStylesheet(xslDoc);
        xsl.setParameter(null, "Admin", gAdmin);
        var fragment = xsl.transformToFragment(xmlDoc, document);
        if (fragment.childNodes.length > 0)
            transform = fragment.childNodes[0].innerHTML;
        else
            alert("error");
    }
    return transform;
};

function TogelAdvanceOp() {
    var cn = $('MoreOptions').className;
    if (cn == 'MoreOptions') {
        $('MoreOptions').className = 'CloseMoreOptions';
        ShowAdvance('block');
    }
    else {
        $('MoreOptions').className = 'MoreOptions';
        ShowAdvance('none');
    }
}
function ShowAdvance(mode) {
    $('PolishPane').style.display = mode;
    $('DepthPane').style.display = mode;
    $('SymmetryPane').style.display = mode;
    $('TablePane').style.display = mode;
    moreOp = (mode == 'none') ? 0 : 1;
    if (active == 1)
        GetData(1, '');
};
/********************************************************
Implamentation
********************************************************/
var loaded = 0
function ReportLoaded() {
    loaded++;
    if (loaded > 5)
        LoadSearch();
};

var Shape = new Buttonlist("Shape", 30, 34);
Shape.Mode = "Redio";

function LoadShape() {
    Shape.IsStrip = true;
    Shape.Add(new LI("Round", "", jas + "/images/blank.gif", null, null, "RoundOn", "RoundOff", "RoundDis"));
    Shape.Add(new LI("Princess", "", jas + "/images/blank.gif", null, null, "PrincessOn", "PrincessOff", "PrincessDis"));
    Shape.Add(new LI("Emerald", "", jas + "/images/blank.gif", null, null, "EmeraldOn", "EmeraldOff", "EmeraldDis"));
    Shape.Add(new LI("Square Emerald", "", jas + "/images/blank.gif", null, null, "AsscherOn", "AsscherOff", "AsscherDis"));
    Shape.Add(new LI("Oval", "", jas + "/images/blank.gif", null, null, "OvalOn", "OvalOff", "OvalDis"));
    Shape.Add(new LI("Radiant", "", jas + "/images/blank.gif", null, null, "RadiantOn", "RadiantOff", "RadiantDis"));
    Shape.Add(new LI("Pear", "", jas + "/images/blank.gif", null, null, "PearOn", "PearOff", "PearDis"));
    Shape.Add(new LI("Heart", "", jas + "/images/blank.gif", null, null, "HeartOn", "HeartOff", "HeartDis"));
    Shape.Add(new LI("Marquise", "", jas + "/images/blank.gif", null, null, "MarquiseOn", "MarquiseOff", "MarquiseDis"));
    Shape.Add(new LI("Cushion", "", jas + "/images/blank.gif", null, null, "CushionOn", "CushionOff", "CushionDis"));

    ReportLoaded()
};
var Cut = new Buttonlist("Cut", 56, 26);
Cut.Mode = "Toggle";
function LoadCut() {
    Cut.IsStrip = true;
    Cut.Add(new LI("Leo", "", null, null, null, "LeoOn", "LeoOff"));
    Cut.Add(new LI("Peerless", "", null, null, null, "PeerlessOn", "PeerlessOff"));
    Cut.Add(new LI("Ideal", "", null, null, null, "IdealOn", "IdealOff"));
    Cut.Add(new LI("Premium", "", null, null, null, "PremiumOn", "PremiumOff"));
    Cut.Add(new LI("Good", "", null, null, null, "GoodOn", "GoodOff"));
    //strMsg = "<textarea>"+ Cut.GetHtml() +"</textarea>";
    ReportLoaded()
};
var iSbOff = new Image(); var iSbOn = new Image();
var iSb2Off = new Image(); var iSb2On = new Image();
var iBbOff = new Image(); var iBbOn = new Image();

var Color = new Buttonlist("Color", 39, 24, 1);
Color.Mode = "Toggle";

function LoadColor() {
    Color.Add(new LI("D", "D", null, iSbOn, iSbOff));
    Color.Add(new LI("E", "E", null, iSbOn, iSbOff));
    Color.Add(new LI("F", "F", null, iSbOn, iSbOff));
    Color.Add(new LI("G", "G", null, iSbOn, iSbOff));
    Color.Add(new LI("H", "H", null, iSbOn, iSbOff));
    Color.Add(new LI("I", "I", null, iSbOn, iSbOff));
    Color.Add(new LI("J", "J", null, iSbOn, iSbOff));

    ReportLoaded()
};
var Clarity = new Buttonlist("Clarity", 35, 24);
Clarity.Mode = "Toggle";
function LoadClarity() {
    Clarity.Add(new LI("IF", "IF", null, iSb2On, iSb2Off));
    Clarity.Add(new LI("VVS1", "VVS1", null, iSb2On, iSb2Off));
    Clarity.Add(new LI("VVS2", "VVS2", null, iSb2On, iSb2Off));
    Clarity.Add(new LI("VS1", "VS1", null, iSb2On, iSb2Off));
    Clarity.Add(new LI("VS2", "VS2", null, iSb2On, iSb2Off));
    Clarity.Add(new LI("SI1", "SI1", null, iSb2On, iSb2Off));
    Clarity.Add(new LI("SI2", "SI2", null, iSb2On, iSb2Off));
    Clarity.Add(new LI("I1", "I1", null, iSb2On, iSb2Off));
    ReportLoaded();
};

var Polish = new Buttonlist("Polish", 64, 24, 10);
Polish.Mode = "Toggle";
var Symmetry = new Buttonlist("Symmetry", 64, 24, 10);
Symmetry.Mode = "Toggle";
function LoadPolishSymmetry() {
    //iSbOn.src = "Slider2/Images/Polish.gif";
    Polish.Add(new LI("EX,ID", "Excellent", null, iBbOn, iBbOff));
    Polish.Add(new LI("VG", "Very Good", null, iBbOn, iBbOff));
    Polish.Add(new LI("GD", "Good", null, iBbOn, iBbOff));
    Polish.Add(new LI("FR", "Fair", null, iBbOn, iBbOff));

    Symmetry.DisplayNAme = "Symm'";
    Symmetry.Add(new LI("EX,ID", "Excellent", null, iBbOn, iBbOff));
    Symmetry.Add(new LI("VG", "Very Good", null, iBbOn, iBbOff));
    Symmetry.Add(new LI("GD", "Good", null, iBbOn, iBbOff));
    Symmetry.Add(new LI("FR", "Fair", null, iBbOn, iBbOff));
    ReportLoaded();
};
var Sliders = new Array();
function LoadSliders() {
    Sliders["Carat"] = new SliderItem("Carat", true, 0.20, 5.99);   //Carat
    Sliders["Carat"].CalcValue = CaratCalcValue;
    Sliders["Carat"].SetValues = SetValues;
    Sliders["Price"] = new SliderItem("Price", true, 500, 550000);   //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) {
    //return (this.MinRange + (((inputVal * inputVal * 0.5) + (Math.pow(inputVal, 4) * 0.5)) * (this.MaxRange - this.MinRange))).toFixed(2);
    var max = this.MaxRange;
    if (inputVal < 1)
        max = 6;
    return (this.MinRange + (((inputVal * inputVal * 0.9) + (Math.pow(inputVal, 4) * 0.1)) * (max - this.MinRange))).toFixed(2);
}
function SetValues(fromVal, toVal) {
    var min = 1; var max = 251;
    if (fromVal != this.MinRange)
        min = FindPixel(fromVal, 1, 251, this.Title, -1); //-1
    if (toVal != this.MaxRange)
        max = FindPixel(toVal, min - 1, 251, this.Title, 1); //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 +1 + 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) {

    var caratval = inputVal * inputVal * (10000 - this.MinRange) * (1 / 0.16);
    caratval = parseInt((this.MinRange + caratval) / 10) * 10;
    if (inputVal > 0.40) {
        caratval = inputVal * (20000 - this.MinRange) * (1 / 0.70);
        caratval = parseInt((this.MinRange + caratval) / 100) * 100;
    }
    if (inputVal > 0.70) {
        caratval = Math.pow(inputVal, 4) * (100000 - this.MinRange) * (1 / 0.81450625);
        caratval = parseInt((this.MinRange + caratval) / 1000) * 1000;
    }
    if (inputVal > 0.95) {
        var n = (1 - inputVal) / 0.05;
        caratval *= n;
        caratval += Math.pow(inputVal, 6) * (1 - n) * (this.MaxRange - this.MinRange)
        caratval = parseInt((this.MinRange + caratval) / 10000) * 10000;
    }
    return "$" + number_format(caratval, 0, '.', ',');
};


var i1 = new Image();
i1.src = jas + "Images/sliderMin.png";
var i2 = new Image();
i2.src = jas + "Images/sliderMax.png";
var i3 = new Image();
i3.src = jas + "Images/trakShadow.png";
var i4 = new Image();
i4.src = jas + "Images/ShapesBG.gif";
var i5 = new Image();
i5.src = jas + "Images/SliderBG.gif";
var i6 = new Image();
i6.src = jas + "Images/view.gif";
setTimeout("load()", 1);
function load() {
    LoadSliders();
    iSbOff.src = jas + "Images/small_off.png";
    iSbOn.src = jas + "Images/small_on.png";
    iSb2Off.src = jas + "Images/small2_off.png";
    iSb2On.src = jas + "Images/small2_on.png";

    iBbOff.src = jas + "Images/big_off.png";
    iBbOn.src = jas + "Images/big_on.png";

    setTimeout("LoadShape()", 1); setTimeout("LoadCut()", 1); setTimeout("LoadColor()", 500); setTimeout("LoadClarity()", 1); setTimeout("LoadPolishSymmetry()", 1);
};
function LoadSearch() {
    //$('topBack').style.height = (N) ? '20px' : '17px';
    //strMsg += "<hr/> LoadSearch()";

    $("CaratPane").innerHTML = Sliders["Carat"].GetHtml();
    //strMsg += "<hr/> Sliders[Carat].GetHtml() Done";
    $("PricePane").innerHTML = Sliders["Price"].GetHtml();
    //strMsg += "<hr/> Sliders[Price].GetHtml() Done";
    $("ShapePane").innerHTML = Shape.GetHtml();
    //strMsg += "<hr/> Shape.GetHtml() Done";
    $("CutPane").innerHTML = Cut.GetHtml();
    //strMsg += "<hr/> Cut.GetHtml() Done";
    $("ColorPane").innerHTML = Color.GetHtml();
    //strMsg += "<hr/>  Color.GetHtml() Done";
    $("ClarityPane").innerHTML = Clarity.GetHtml();
    //strMsg += "<hr/> Clarity.GetHtml() Done";

    $("PolishPane").innerHTML = Polish.GetHtml();
    //strMsg += "<hr/> Polish.GetHtml() Done";
    $("SymmetryPane").innerHTML = Symmetry.GetHtml();
    //strMsg += "<hr/> Symmetry.GetHtml() Done";
    $("DepthPane").innerHTML = Sliders["Depth"].GetHtml();
    //strMsg += "<hr/> Depth Done";
    $("TablePane").innerHTML = Sliders["Table"].GetHtml();
    //strMsg += "<hr/> Table Done";
    //Shape.Select(0);

    InitDetailpanel();

    //strMsg += "<hr/> InitDetailpanel() Done";
    // try {
    InitSearchValues();


    // } catch (e) {;}
    (moreOp == 0) ? ShowAdvance('none') : ShowAdvance('');
    active = 1;
    GetData();


};

function LoadFromCoockie(forceClient, searchType) {
    gST = searchType;
    coockie.Load(forceClient);
    Shape.LoadFromCoockie();
    Color.LoadFromCoockie();
    Clarity.LoadFromCoockie();
    Cut.LoadFromCoockie();
    Polish.LoadFromCoockie();
    Symmetry.LoadFromCoockie();
    Sliders["Carat"].LoadFromCoockie();
    Sliders["Price"].LoadFromCoockie();
    Sliders["Depth"].LoadFromCoockie();
    Sliders["Table"].LoadFromCoockie();
    if (coockie.Get("pageSize"))
        pageSize = coockie.Get("pageSize");
    if (coockie.Get("moreOp"))
        moreOp = coockie.Get("moreOp")
};
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) {
    lastRowIndx = e.rowIndex; var ind = e.rowIndex; var s = GetDetailsData(ind); oDet = new DetailsPanel(s, e);
    oDet.show();
}


function HideDetailsPanel() { try { oDet.hide(); } catch (e) { }; }
function InitDetailpanel() {
    sp = $("spDetObj");    // placeholder
    goDetails = document.createElement("span");  // details panel span
    sp.appendChild(goDetails);
    var si = "<img src='" + jas + "Images/blank.gif'/>";
    goDetails.style.width = "160px";
    goDetails.style.height = "220px";
    //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>" + si + "</td><td bgcolor='#6F6F6F'>" + si + "</td><td bgcolor='#FBFCF6'>" + si + "</td><td bgcolor='#6F6F6F'>" + si + "</td><td onmouseout=\"HideDetailsPanel();\">" + si + "</td></tr>" +
                "<tr><td bgcolor='#6F6F6F'>" + si + "</td><td bgcolor='#FBFCF6'>" + si + "</td><td bgcolor='#FBFCF6' valign='top' style='padding:5' id='tdDetails'></td><td bgcolor='#FBFCF6'>" + si + "</td><td bgcolor='#6F6F6F' onmouseout=\"HideDetailsPanel();\">" + si + "</td></tr>" +
                "<tr height='1px'><td>" + si + "</td><td bgcolor='#6F6F6F'>" + si + "</td><td>" + si + "</td><td bgcolor='#6F6F6F'>" + si + "</td><td onmouseout=\"HideDetailsPanel();\">" + si + "</td></tr>" +
                "<tr height='1px' ><td width='1px'>" + 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>" +
                "</table><div style=\"width:170px; height:5px;\"  onmouseover=\"HideDetailsPanel();\" onmouseout=\"HideDetailsPanel();\"></div></div>";
    goDetails.style.display = "none";
    goDetails.style.position = "absolute";
    // triangular pointer
    // goPointer  = $('imgPointer');
    goPointer = document.createElement("img");  //pointer image
    sp.appendChild(goPointer);
    goPointer.src = jas + "Images/tria.gif";
    goPointer.style.position = "absolute";
    goPointer.style.display = "none";
    //   
    if (!N)
        goPointer.style.zIndex = 10;
    else
        goPointer.style.zIndex = 10;
    // details object constructor

};
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 + 20)
        t = topY + 20;
    if (t >= buttonY - 265)
        t = buttonY - 265;
    SetPosition(goPointer, this.ofY + 5, ofX + 723);
    SetPosition(goDetails, t, ofX + 730);
    $('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 ($("tbSearchResults")) {
        var tb = $("tbSearchResults");
        var ar = tb.childNodes[0].childNodes;
        var res = new Array();
        res[0] = new Array();
        var strData = [];
        var columnsList = $('thDetailsObjColumns');

        var strColumnsData = SplitAndReturnTable(columnsList.innerHTML);
        for (var j = 0; 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) {
    var s = "<table width='100%' cellpadding='1' cellspacing='0' border='0'>" +
              "<tr><td height='22px'><b style='color:#000000'>Diamond Info</b></td></tr>";
    for (var i = 0; i < gvDetailsData[0].length; i++) {
        s += "<tr><td class='detUnderlined'><b>" + gvDetailsData[0][i] + ": </b>" + gvDetailsData[n][i] + "</td></tr>";
    };
    var sn = gvDetailsData[n][0];
    if (gST == "Loose" || gHA == true) {
        s += "<tr><td height='22px' id=\"addThis\"><a href=\"javascript://\" onmouseover=\"$('dropmenu1').style.display='block'\" style=\"color:#0000cc;\">Add this diamond to<span style=\"text-decoration:none; font-size:14px;\"> >></span></a>&nbsp;";
        s += "<br/><div id=\"dropmenu1\" style=\"z-index:5; display:none; position:absolute; background-color:#F6F6F6; border:solid 1px black; padding:5px 5px 5px 5px; margin:5px 5px 5px 5px; \">";
        s += "<div class=\"InPopup\"><a href=\"update_ring.asp?cid=130&cmb=1&stoneID=" + sn + "\">To a ring</a></div>";
        s += "<div class=\"InPopup\"><a href=\"update_ring.asp?cid=130&toshop=1&StoneID=" + sn + "\">To shopping cart</a></div>";
        s += "<div class=\"InPopup\"><a href=\"javascript:add_to_wish('" + sn + "')\">To wish list</a></div>"
        s += "<div class=\"InPopup\"><a href=\"javascript:diamond_to_compare('130'," + sn + ")\">To comparison</a></div></div>";
        s += "</td></tr>";
    }
    else {
        s += "<tr><td height='22px' id=\"addThis\"><a href=\"update_ring.asp?cid=" + gCid + "&cmb=1&stoneID=" + sn + "\" style=\"color:#0000cc;\">Add this diamond</a>&nbsp;";
        s += "</td></tr>";
    }
    s += "<tr><td height='22px'><b style='color:#000000'>Shipping Info</b></td></tr>";
    s += "<tr><td class='detUnderlined'>" + GetDiamondShippingInfo() + "</td></tr>";
    s += "</table>";
    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 GetDayInc(date,inc){
	var date_temp = new Date(date);
	var retVal = 0;
	var dd1 = date_temp.getUTCDate();
	date_temp.setUTCDate(dd1 + 4);
	if((date_temp.getDay() == 0)) retVal = 1;
	if((date_temp.getDay() == 6)) retVal = 2;
	return retVal

}

function GetDiamondShippingInfo() {
    var DiamondDetails, ShipInfo = "";
    var DayAdd = 4;
    var DayName = "";
    var now = new Date();

    if (now.getDay() < 2 || now.getDay() > 6)
        DayAdd = 4;
    DayAdd = DayAdd + GetDayInc(now,DayAdd);

	

    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 today, ship by ";
    else if (now > ff)
        ShipInfo = ShipInfo + "Order By 4:00pm EST today, ship by ";
    else
        ShipInfo = ShipInfo + "Order By 4:00pm EST today, ship by ";


    var newd = new Date();
    if (DayAdd != "") {
        var newd = new Date();
        ShipInfo = ShipInfo + formatString(now, DayAdd);
    }
    else {
        ShipInfo = ShipInfo + formatString(now, DayAdd);
    };
    ShipInfo = ShipInfo + " as a loose diamond.";
    return ShipInfo;
};