﻿   var isLoggedin = false;
   var markup = 1.0;
   var t;
   var stones = [];

   function imgClickHandler() 
   {
         $(".StoneBox img").click( function() {       
            var elem = $(this).siblings('input');
            if (elem.attr('checked') === true)
               $(elem).attr('checked', false);
            else
               $(elem).attr('checked', true);
            SetStonePic(elem.attr('id'));            
         });
   }   
   
   function CheckBoxClickHandler()
   {
      var evt = $.browser.msie ? "click" : "change";         
      $(".StoneCheck").bind(evt, function() {
          SetStonePic(this.id);
        });
        
      $(".SetsCheck").bind(evt, function() {
         $('#curPage').val('1');
         GetStones();
      });       
   }

   function SubmitPage()
   {
      $('#curPage').val(1);
      GetStones();
   }
   
   function PrintHandler()
   {
      $('#hrefPriceList').click( function () {
         PrintStones();
      });
   }
   
   function PrintStones()
   {
         
      var lowPrice = (50000*(Math.pow(2.71828, (-0.00106*$('#PriceSliderRailBody').slider("value", 1))))).toFixed(0);
      var highPrice = (50000*(Math.pow(2.71828, (-0.00106*$('#PriceSliderRailBody').slider("value", 0))))).toFixed(0);
      var lowCarat = (7 * (Math.pow(2.71828, (-0.02*$('#CaratSliderRailBody').slider("value", 1))))).toFixed(2);
      var highCarat = (7 * (Math.pow(2.71828, (-0.02*$('#CaratSliderRailBody').slider("value", 0))))).toFixed(2);
      var lowClrty = Math.round(($('#ClaritySliderRailBody').slider("value", 0) / 20));
      var highClrty = Math.round(($('#ClaritySliderRailBody').slider("value", 1) / 20));
      var lowColor = Math.round($('#ColorSliderRailBody').slider("value", 0) / 20);
      var highColor = Math.round($('#ColorSliderRailBody').slider("value", 1) / 20);
      var lowCut = Math.round(($('#CutSliderRailBody').slider("value", 0) / 25));
      var highCut = Math.round(($('#CutSliderRailBody').slider("value", 1) / 25));                  
      var sList = GetShapeList();    
      var cList = GetCertList();

      var url = [];
      url.push('/private/stonepricelist.aspx?step=serializedresults&class=serializeddiamond&variety=Diamond');
      url.push('colormin=' + lowColor);
      url.push('colormax=' + highColor);
      url.push('shape='+sList);
      url.push('claritymin='+lowClrty);
      url.push('claritymax='+highClrty);
      url.push('weightmin='+lowCarat);
      url.push('weightmax='+highCarat);
      url.push('pricemin='+lowPrice);
      url.push('pricemax='+highPrice);
      url.push('certification='+cList);
      url.push('cutmin='+lowCut);      
      url.push('cutmax='+highCut);
      
      var loc = url.join('&');
      
      openWinPrintable('DiamondList', loc, 800,500);     
   }
   
   function LoadSliders()
   {
      LoadCaratSlider();
      LoadCutSlider();
      LoadColorSlider();
      LoadClaritySlider();
      //GetLoginAttr();
      LoadPriceSlider();
   }

   function LoadCaratSlider()
   {
      $('#CaratSliderRailBody').slider({handle: '.dualSliderHandleStyle',                     
                                                     range: true,                  
                                                     min: 0,
                                                     max: 183,
                                                     slide: function(e,ui){ updateSlider(e,ui);}
                                                     });               
      
   }
     
   function LoadCutSlider()
   {
      $('#CutSliderRailBody').slider({handle: '.dualSliderHandleStyle', 
                                                     range: true,                                                                 
                                                     max: 100,
                                                     slide: function(e,ui){ updateSlider(e,ui);},
                                                     change: function(e,ui) { 
                                                         SnapCut(e,ui);}                                                         
                                                     });               
   }
   
   function SnapCut(e,ui)
   {
      if (((parseInt(ui.value) % 25) != 0) && (ui.range > 5)) {
         var lsat = Math.round(ui.value/25);
         lsat = lsat * 25;
         $('#CutSliderRailBody').slider("moveTo", lsat, ui.handle[0]);
      }
   }
/*   function CutLookup(cutCode)
   {
         var cut="NA";         
         switch(cutCode) {
            case 0 :
               cut = "Ideal";
               break;
            case 1 : 
               cut = "Excellent";
               break;
            case 2 :           
               cut = "Very Good";
               break;
            case 3 :
               cut = "Good";
               break;
            case 4 :
               cut = "Fair";
               break;
         }
         return cut;
   }*/
  
   function LoadColorSlider()
   {
      $('#ColorSliderRailBody').slider({handle: '.dualSliderHandleStyle', 
                                                     range: true,                                                                       
                                                     max: 160,                                                     
                                                     slide: function(e,ui){ updateSlider(e,ui);},
                                                     change: function(e,ui) {
                                                         SnapColor(e,ui);}
                                                     });               
   }
   
   function SnapColor(e, ui)
   {
      if (((parseInt(ui.value) % 20) != 0) && (ui.range > 5)) {
         var lsat = Math.round(ui.value/20);
         lsat = lsat * 20;
         $('#ColorSliderRailBody').slider("moveTo", lsat, ui.handle[0]);
      }
   }
   
   function ColorLookup(colorCode)
      {
         var color="NA";         
         switch(colorCode) {
            case 0 :
               color = "D";
               break;
            case 1 :
               color = "E";
               break;
            case 2 :
               color = "F";
               break;
            case 3 :
               color = "G";
               break;
            case 4 :
               color = "H";
               break;
            case 5 :
               color = "I";
               break;
            case 6 :
               color = "J";
               break;
            case 7 :
               color = "K-O";
               break;
         }
         return color;
      }

   function LoadClaritySlider()
   {
      $('#ClaritySliderRailBody').slider({handle: '.dualSliderHandleStyle', 
                                                     range: true,                                                                       
                                                     max: 200,                                                     
                                                     slide: function(e,ui){ updateSlider(e,ui);},
                                                     change: function(e,ui) {
                                                         SnapClarity(e,ui);}
                                                     });   
   }
   
   function SnapClarity(e, ui)
   {
      if (((parseInt(ui.value) % 20) != 0) && (ui.range > 5)) {
         var lsat = Math.round(ui.value/20);
         lsat = lsat * 20;
         $('#ClaritySliderRailBody').slider("moveTo", lsat, ui.handle[0]);
      }
   }
   
   function LoadPriceSlider()
   {   
      if ($('#ctl00_content_loggedin').val() == "True")
         isLoggedin = true;
      else
         isLoggedin = false;
         
      markup = parseFloat($('#ctl00_content_markup').val());
      var highPrc = (50000 * markup).toFixed(0);
      var lowPrc = (250 * markup).toFixed(0);
      
      $('#highPrice').text(highPrc);
      $('#lowPrice').text(lowPrc);
      
                  $('#PriceSliderRailBody').slider({handle: '.dualSliderHandleStyle',                     
                                                     range: true,                  
                                                     min: 0,
                                                     max: 5000,
                                                     slide: function(e,ui){ updateSlider(e,ui);}
                                                     });               
      if (isLoggedin == false)
         $('#PriceSliderWrapper').hide();
      else
         $('#PriceSliderWrapper').show();
                                                     
   }
   
   function updateSlider(e, ui)
   {
      var id = ui.handle[0].id;
      var lsat=0;
      
      switch(id) {
         case 'CaratLeftHandle' :
            //lsat = (100/(ui.value + 6)).toFixed(2) + ' ct';
            lsat = (7 * (Math.pow(2.71828, (-0.02*ui.value)))).toFixed(2);
            $('#highCarat').text(lsat);            
            break;
         case 'CaratRightHandle' :
            //lsat = (100/(ui.value + 6)).toFixed(2) + ' ct';
            lsat = (7 * (Math.pow(2.71828, (-0.02*ui.value)))).toFixed(2);
            $('#lowCarat').text(lsat);
            break;
         case 'PriceLeftHandle' :            
            //lsat = '$' + ((15000 * markup) - (((Math.pow((16 * markup), (ui.value/100))*1000))-1000)).toFixed(0);
            lsat = (50000*(Math.pow(2.71828, (-0.00106*ui.value)))).toFixed(0);
            $('#highPrice').text(lsat * markup);
            break;
         case 'PriceRightHandle' :
            //lsat = '$' + ((15000 * markup) - (((Math.pow((16 * markup), (ui.value/100))*1000))-1000)).toFixed(0);
            lsat = (50000*(Math.pow(2.71828, (-0.00106*ui.value)))).toFixed(0);
            $('#lowPrice').text(lsat * markup);
            break;
       }       
/*                case 'CutLeftHandle' :
            lsat = ui.value / 25;
            $('#lowCut').text(CutLookup(lsat));
            break;
         case 'CutRightHandle' :
            lsat = ui.value / 25;
            $('#highCut').text(CutLookup(lsat));
            break;
         case 'ColorLeftHandle' :
            lsat = ui.value / 20;
            $('#lowColor').text(ColorLookup(lsat));
            break;
         case 'ColorRightHandle' :
            lsat = ui.value / 20;
            $('#highColor').text(ColorLookup(lsat));
            break;
         case 'ClarityLeftHandle' :
            lsat = ui.value / 20;
            $('#lowClarity').text(ClarityLookup(lsat));
            break;
         case 'ClarityRightHandle' :
            lsat = ui.value / 20;
            $('#highClarity').text(ClarityLookup(lsat));
            break;*/
   }
   
  	function chkShape_Click(id)
  	{
  	   SetStonePic(id);	            
   }

   function select_stone(id) {
      if ($('#' + id).attr('checked') == true)
         $('#' + id).attr('checked', false);	   
      else
         $('#' + id).attr('checked', true);	   
     SetStonePic(id);     
   } 

   function SetStonePic(id)
   {
     	var imgid = $('#' + id).siblings().get(0);
     	var tmpId;
     	if (id == 'baguettes')     	
     	   tmpId = 'straightbaguette';
     	else
     	   tmpId = id;
  	   if ($('#' + id).attr('checked') == true)
  	      $(imgid).attr('src', '/images/diamonds/' + tmpId + '.png');
  	   else
  	      $(imgid).attr('src','/images/diamonds/outlines/' + tmpId + '.png');  	      
   }
   
   function CheckStonePics(){
      var CheckBoxIDs = $('.StoneCheck');
  	   for (var i = 0;i < CheckBoxIDs.length; i++) {
    	   SetStonePic(CheckBoxIDs[i].id);
      }
   }
   
   function GetShapeList()
    	{    	
    	   var CheckBoxIDs = $('.StoneCheck');
   	   var shapelist = [];
    	   var strArr;
    	   var tmpshape;
    	   var shape;
    	   for (var i = 0;i < CheckBoxIDs.length; i++) {
    	         if (CheckBoxIDs[i].checked == true){
    	            tmpshape = CheckBoxIDs[i].id;
    	            switch(tmpshape)
    	            {
    	               case "baguettes":
    	                  shapelist.push("tapered baguette");
    	                  shapelist.push("straight baguette");
    	                  break;
    	               case "pear":
                        shapelist.push("pear shape");
                        break;
                     case "heart":
                        shapelist.push("heart shape");
                        break;
                     case "emerald":                     
                        shapelist.push("emerald cut");
                        break;
                     case "princess":
                        shapelist.push("square");
                        break;
                     case "triangle":
                        shapelist.push("trillion");
                        break;
                     default:
                        shapelist.push(tmpshape);
                  }
/*    	            if (shapelist == '')
    	               shapelist = shape;
    	            else
    	               shapelist = shapelist + ', ' + shape;*/
    	         }
    	      }    	      
    	   var str = shapelist.join(',');
    	   return str;    	   
    	}
    	
   function GetCertList()
   {
      var CheckBoxIDs = $('.ReportChk');
   	var reptlist = [];
  	   for (var i = 0;i < CheckBoxIDs.length; i++) {
  	      if (CheckBoxIDs[i].checked == true) {
  	          reptlist.push(CheckBoxIDs[i].id);
  	      }
  	   }  	   
  	   var str = reptlist.join(',');
  	   return str;
   } 
   
   function GetStonesDelay()
   {
      clearTimeout(t);
      t = setTimeout("GetStones()", 400);
   }
   
   function GetStones()
   {
      if (isLoggedin) {
         var lowPrice = (50000*(Math.pow(2.71828, (-0.00106*$('#PriceSliderRailBody').slider("value", 1))))).toFixed(0);
         var highPrice = (50000*(Math.pow(2.71828, (-0.00106*$('#PriceSliderRailBody').slider("value", 0))))).toFixed(0);
      }
      else {
         var lowPrice = 250;
         var highPrice = 50000;
      }
       
      //var lowPrice = ((15000) - (((Math.pow((16), ($('#PriceSliderRailBody').slider("value", 1)/100))*1000))-1000)).toFixed(0);
      //var highPrice = ((15000) - (((Math.pow((16), ($('#PriceSliderRailBody').slider("value", 0)/100))*1000))-1000)).toFixed(0);                                   
      var lowCarat = (7 * (Math.pow(2.71828, (-0.02*$('#CaratSliderRailBody').slider("value", 1))))).toFixed(2);
      var highCarat = (7 * (Math.pow(2.71828, (-0.02*$('#CaratSliderRailBody').slider("value", 0))))).toFixed(2);
      //var lowCarat = (100/($('#CaratSliderRailBody').slider("value", 1) + 6)).toFixed(2);
      //var highCarat = (100/($('#CaratSliderRailBody').slider("value", 0) + 6)).toFixed(2);
      var lowClrty = Math.round(($('#ClaritySliderRailBody').slider("value", 0) / 20));
      var highClrty = Math.round(($('#ClaritySliderRailBody').slider("value", 1) / 20));
      var lowColor = Math.round($('#ColorSliderRailBody').slider("value", 0) / 20);
      var highColor = Math.round($('#ColorSliderRailBody').slider("value", 1) / 20);
/*      if (highColor == 'K-O')
         highColor = 'O';*/
      var lowCut = Math.round(($('#CutSliderRailBody').slider("value", 0) / 25));
      var highCut = Math.round(($('#CutSliderRailBody').slider("value", 1) / 25));
                   
      var sList = GetShapeList();    
      var cList = GetCertList();
      var pageSize = $('#pagesize option:selected').text();
      var sortField = $('#sortField').val();
      var sortDir = $('#sortDir').val();
      var pageNum = $('#curPage').val();
      var pricetype = $('#pricetype option:selected').text();
      var sets = $("input[@name='rdoMatched']:checked").val();
      if (sets == undefined || sets.length == 0)
         sets = false;
      
      //$('#ctl00_content_hidShapes').text(sList);     
      
      var parmString = "{'pageNum':'" + pageNum + "','shapes':'" + sList + "','lowPrice':'" + lowPrice + "','highPrice':'" + highPrice + "','lowCarat':'" + lowCarat
                     + "','highCarat':'" + highCarat + "','lowClrty':'" + lowClrty + "','highClrty':'" + highClrty + "','lowColor':'" + lowColor 
                     + "','highColor':'" + highColor + "','lowCut':'" + lowCut + "','highCut':'" + highCut + "','reports':'" + cList  
                     + "','sortField':'" + sortField + "','sortDir':'" + sortDir + "','pricetype':'" + pricetype + "','pagesize':'" + pageSize + "', 'sets':'" + sets + "'}";
     /* 
      var wid = $('#grdSerializedResults').width();
      var hgt = $('#grdSerializedResults').height();
      
     if (wid == null) {
         //$('#Loading').css('top', '575px');
         $('#Loading').css('left', '625px');
      }
      else {
         //$('#Loading').css('top', '700px');
         var newwid = ((wid/2) - 145 + $('#grdSerializedResults').offset().left).toFixed(0);
         $('#Loading').css('left', newwid + 'px');
      }*/
      $('#Loading').show();      
      
      /*$('#Loading').ajaxStart(function(){         
            $(this).css('top', '700px');
            //$(this).css('left', '650px');
            $(this).css('margin-left', 'auto');
            $(this).css('margin-right', 'auto');
            $(this).show();                     
        });*/
        
      /*$('#Loading').ajaxComplete(function(){         
         $(this).hide();                     
       });*/
     
     //kpr 2/2/09 - if the shape list or the cert list is 0 then there's no point in making a server trip
     if ((sList.length > 0) && (cList.length > 0)) 
         $.diamondAjax({           
            type: "POST",
            url: "/products/serializeddiamonds.aspx/GetStones",          
            data: parmString,
            contentType: "application/json; charset=utf-8",
            dataType: "json",            
            error: function(req, msg, err) { ShowError(req, msg, err, 'GetStones(' + parmString + ')'); },
            success: function(msg) {
               ApplyTemplate(msg);            
            }
          });
     else {
        $('#StonesContainer').empty('');  
        $('#pagelist').hide();
        if (sList.length == 0) {
           $('#loadingtext').html('Select a shape to begin');
           $('#loadingbg span').css('left', '32px');
           $('#loadingbg span').css('top', '24px');
           $('#indicator').hide();
        }
        else {
           $('#loadingtext').html('Select a Report type');
           $('#loadingbg span').css('left', '50px');
           $('#loadingbg span').css('top', '24px');
           $('#indicator').hide();
        }     
     }    
     //error: function(req, msg, err) { ShowError(req, msg, err);}, 
   }
   
   function ShowError(req, msg, err, caller)
   {
      if (req.responseText.length > 0) 
     	   var xml = '<?xml version="1.0"?>\n' +
   		   '<error>\n' +
	   	   '<name>' + req.status + '</name>\n' +
		      '<message>' +
		      '<![CDATA[' + 
		      req.responseText + 
		      '\n\n' +		      
            ']]>\n' +
		      '</message>\n' +
		      '<location>' + caller + '</location>\n' +
		      '</error>';	
       else
     	   var xml = '<?xml version="1.0"?>\n' +
   		   '<error>\n' +
	   	   '<name>' + req.status + '</name>\n' +
		      '<message>' +
		      '<![CDATA[' + 
		         'Response Text is nothing' + 
		      '\n\n' +		      
            ']]>\n' +
		      '</message>\n' +
		      '<location>' + caller + '</location>\n' +
		      '</error>';	
         
            $.ajax({
               type: "POST",
               url: "/err/JSError.aspx",
               data: xml,
               contentType: "text/xml"
            });
      //$('#errMsg').html(req.responseText);
      //$('#divError').show();
   }
   
   function ApplyTemplate(msg) {     
     //console.time('Empty Container');
     $('#StonesContainer>table').remove();
     $('#pagelist').hide();
     //$('#StonesContainer').empty('');  
     //document.getElementById('StonesContainer').innerHTML = '';
     //console.timeEnd('Empty Container');   
     ///console.time('ApplyTemplate');
     $('#stoneCount').html(msg.d.count.toString());
     
     if (msg.d.count == 0) {
        if ($('.StoneCheck:checked').length == 0) {
           $('#loadingtext').html('Select a shape to begin');
           $('#loadingbg span').css('left', '32px');
           $('#loadingbg span').css('top', '24px');
        }
        else {
           $('#loadingtext').html('No results found.');
           $('#loadingbg span').css('left', '58px');
           $('#loadingbg span').css('top', '24px');
        }
        $('#Loading').show();
        $('#indicator').hide();
        $('#pagelist').hide();
        $('#StonesContainer').css('height', '250px');
     }
     else {
        $('#loadingtext').html('Retrieving Diamonds...');
        $('#loadingbg span').css('top', '10px');
        $('#loadingbg span').css('left', '50px');
        $('#indicator').show();        
        $('#StonesContainer').css('height', 'auto');   
        $('#divSerialNum').show();           
        stones = msg.d.stones;
     }       
        if (msg.d.isloggedin == false)
          $('#PriceSliderWrapper').hide();
        else
          $('#PriceSliderWrapper').show();

      var sets = $("input[@name='rdoMatched']:checked").val();
         
      if (sets == 'true') {
        $('#StonesContainer').setTemplateURL('jtemplates/MatchedSetTable.htm', null, {filter_data:false, clone_data:false});        
        $('#setsorstones').html('Sets Found: ');
      }
      else {
        $('#StonesContainer').setTemplateURL('jtemplates/DiamondTable.htm', null, {filter_data:false, clone_data:false});
        $('#setsorstones').html('Stones Found: ');
     }
     
        // We need to send in the logged in status so we can hide prices/add to cart if necessary    
        $('#StonesContainer').setParam('loggedin', msg.d.isloggedin);  
        $('#StonesContainer').setParam('markup', msg.d.markup);   
        
        $('#StonesContainer').processTemplate(msg);
        SetSortArrow();
        SetPaging();
        if (msg.d.count > 0)      
            $('#Loading').hide();  
        Shadowbox.setup();
       //console.timeEnd('ApplyTemplate');
   }
   function ChangePageSize()
   {
      $('#curPage').val(1);
      GetStones();
   }
   
   function ChangePage(page)
   {
      $('#curPage').val(page);
      GetStones();
   }
   
   function SetPaging()
   {
      var stonecount = $('#stoneCount').html();
      var pageSize = $('#pagesize option:selected').text();
      var curPage = $('#curPage').val();
      
      stonecount = parseInt(stonecount);
      pageSize = parseInt(pageSize);
      curPage = parseInt(curPage);
      
      var totalpages = Math.floor(stonecount / pageSize) + 1;
      //last display page = ldp
      var ldp = Math.min(curPage + Math.floor(10/2), totalpages);
      if (ldp < Math.min(totalpages, 10))
         ldp = Math.min(totalpages, 10);
      //first display page = fdp
      var fdp = Math.max(ldp - (10 -1), 1);
      if (fdp == 2)
         fdp = 1;
      
      var pgdata = {
         curpage: curPage,
         fdp: fdp,
         ldp: ldp,
         totalpages: totalpages};
               
      $('#pagelist').setTemplateURL('jtemplates/jspager.htm');
      $('#pagelist').processTemplate(pgdata);
      $('#pagelist').show();  
   }
   
   function ImgError(source)
   {    
      source.src = "/images/image_not_found.png";    
      source.onerror = "";    
      return true;
   }
      
   function popCompare()   
   {
      var compList = $('.CompareCheck');
      var serNumList = [];
      var NumList=[];
      for (var i=0;i < compList.length;i++){
         if (compList[i].checked == true)
            serNumList.push(compList[i].id);
      }
      ResetCompare();
      var idx = 0;
      var pagenum = parseInt($('#curPage').val());
      var pageSize = parseInt($('#pagesize option:selected').text());
      for (i=0;i<serNumList.length;i++)
      {            
            idx = (serNumList[i] - (pageSize * (pagenum - 1))) - 1;
            $('#cmp_image').append('<td align="center" style="width: 150px;"><img alt="stone image" height="150" style="display:block;" src="/apps/images/diamonds/thumb/' + stones[idx].serialnumber + '.jpg" onerror="ImgError(this);"/>');            
            $('#cmp_serialnum').append('<td>' + stones[idx].serialnumber + '</td>');
            NumList.push(stones[idx].serialnumber);
            if (isLoggedin === true && stones[idx].onPriceList == 'True') {
               $('#cmp_totalprice').append('<td>' + formatcurrency(stones[idx].totalprice * markup) + '</td>');
               $('#cmp_caratprice').append('<td>' + formatcurrency(stones[idx].pricepercarat * markup) + '</td>');
               if (markup > 1)
                  $('#cmp_rappaport').append('<td>&nbsp;</td>');
               else
                  $('#cmp_rappaport').append('<td>' + ((stones[idx].percentoffrapp < 0) ? 'N/A' : stones[idx].percentoffrapp + '%') + '</td>');
            }
            else {
               $('#cmp_totalprice').append('<td><span style="color:#CC0000">Restricted</span></td>');
               $('#cmp_caratprice').append('<td><span style="color:#CC0000">Restricted</span></td>');
               $('#cmp_rappaport').append('<td><span style="color:#CC0000">Restricted</span></td>');
            }
                       
            $('#cmp_shape').append('<td>' + stones[idx].shape + '</td>');
            $('#cmp_weight').append('<td>' + stones[idx].weight + '</td>');
            $('#cmp_cut').append('<td>' + stones[idx].cut + '</td>');
            $('#cmp_color').append('<td>' + stones[idx].color + '</td>');
            $('#cmp_clarity').append('<td>' + stones[idx].clarity + '</td>');
            $('#cmp_depthpct').append('<td>' + stones[idx].depthpercent + '</td>');
            $('#cmp_tablepct').append('<td>' + stones[idx].tablepercent + '</td>');
            $('#cmp_mmsize').append('<td>' + stones[idx].calibratedsize + '</td>');
            $('#cmp_report').append('<td>' + stones[idx].report + '</td>');
            $('#cmp_symmetry').append('<td>' + stones[idx].symmetry + '</td>');
            $('#cmp_girdle').append('<td>' + stones[idx].Girdle + '</td>');
            $('#cmp_mindia').append('<td>' + stones[idx].MinDiameter + '</td>');
            $('#cmp_maxdia').append('<td>' + stones[idx].MaxDiameter + '</td>');
            $('#cmp_culet').append('<td>' + stones[idx].Culet + '</td>');
            $('#cmp_agta').append('<td>' + stones[idx].agta + '</td>');
            if (stones[idx].ideal == true)
               $('#cmp_ideal').append('<td>Yes</td>');
            else
               $('#cmp_ideal').append('<td>No</td>');         
            if (stones[idx].russian == true)
               $('#cmp_russian').append('<td>Yes</td>');
            else
               $('#cmp_russian').append('<td>No</td>');
            $('#cmp_notes').append('<td>' + stones[idx].Comments + '</td>');
      }   
      $('#printcompare').attr('href', '/products/serializedcompare.aspx?serialnums='+NumList.join(','));   
   }
   
   function ResetCompare()
   {
            $('#cmp_image td').remove();
            $('#cmp_serialnum td').remove();
            $('#cmp_totalprice td').remove();
            $('#cmp_caratprice td').remove();
            $('#cmp_rappaport td').remove();
            $('#cmp_shape td').remove();
            $('#cmp_weight td').remove();
            $('#cmp_cut td').remove();
            $('#cmp_color td').remove();
            $('#cmp_clarity td').remove();
            $('#cmp_depthpct td').remove();
            $('#cmp_tablepct td').remove();
            $('#cmp_mmsize td').remove();
            $('#cmp_report td').remove();
            $('#cmp_symmetry td').remove();
            $('#cmp_girdle td').remove();
            $('#cmp_mindia td').remove();
            $('#cmp_maxdia td').remove();
            $('#cmp_culet td').remove();
            $('#cmp_agta td').remove();
            $('#cmp_ideal td').remove();
            $('#cmp_russian td').remove();
            $('#cmp_notes td').remove();
   }

   function changeSort(field)
   {
      if ($('#sortField').val() == field){
         if ($('#sortDir').val() == 'desc')
            $('#sortDir').val('asc');
         else
            $('#sortDir').val('desc');
      }
      else {
         $('#sortField').val(field);
         $('#sortDir').val('asc');
      }
      $('#curPage').val(1);
      GetStones();      
   }
   
   function SetSortArrow() {
      $('.sortarrow').addClass('hide');
      var id = $('#sortField').val();
      $('#' + id).children().removeClass('hide');            
      /*$('#sortarrow').remove();
      var imgHTML = '<img id="sortarrow" src="/img/';*/
      var imgHTML;
      if ($('#sortDir').val() == 'asc')
         imgHTML = '/img/sort_asc.gif';
      else
         imgHTML = '/img/sort_desc.gif';
                  
      $('#' + id).children().attr('src', imgHTML);
   }
   
   function popDialog(sernum, flourescence, girdle, mindia, maxdia, culet, agta, ideal, russian, comments, pctoffrapp, rownum)
   {
      $('#StoneImg').attr('src','/apps/images/diamonds/' + sernum + '.jpg');
      if (isLoggedin === true) 
         $('#pctoffrapp').html(parseFloat(pctoffrapp).toFixed(2));
      else
         $('#pctoffrapp').html('Restricted');
      $('#detailpage').attr('href', '/products/largediamonddetails.aspx?sn=' + sernum);
      $('#flourescence').html(flourescence);
      $('#girdle').html(girdle);
      $('#mindiameter').html(mindia);
      $('#maxdiameter').html(maxdia);
      $('#culet').html(culet);
      $('#agta').html(agta);
      if (ideal == true)
         $('#ideal').html('Yes');
      else
         $('#ideal').html('No');
      if (russian == true)
         $('#russian').html('Yes');
      else
         $('#russian').html('No');         
      $('#comments').html(comments);
      HighLightRow(rownum);
   }
   
   function popATC(serialnumber, InventoryItemID, calibratedsize, shape, cut, clarity, color, setid, button)
   {
      $('#aj_item_id').val(InventoryItemID);
      $('#aj_description').html(shape + ' ' + cut + ' ' + clarity + ' quality ' + color + ' color diamond');
      $('#aj_size').html(calibratedsize);
      $('#aj_item').html(serialnumber);
      if (setid > 0) {
         $('#aj_set_id').val(setid);
        $('#div_chk_set').css('display', 'block');
      }
      else {
        $('#div_chk_set').css('display', 'none');
      }       
      moveWindowRelative('ajax_add', button, 0, 5, false);
   }
   
   function AddToCart()
   {  
      var items = 0; 
      var setid =  $('#aj_set_id').val();  
      var buySet = $('#aj_chk_set').attr('checked');
      if (buySet === true) {
         var notes = $('#aj_AddRemarks').val();
         var memo = $('#aj_chk_memo').attr('checked');

         var parmString = "{'Set_Id':'" + setid + "','memo':'" + memo + "','notes':'" + notes + "'}";
          $.ajax({
             type: "POST",
             url: "/products/serializeddiamonds.aspx/AddSetToCart",          
             data: parmString,
             contentType: "application/json; charset=utf-8",
             dataType: "json",         
             error: function(req, msg, err) { ShowError(req, msg, err, 'AddSetToCart');}, 
             success: function(msg) {             
               AddFinish(msg);
             }
        });
      }         
      else {
         var itemid = $('#aj_item_id').val();
         var sernum = $('#aj_item').html();
         var notes = $('#aj_AddRemarks').val();
         var memo = $('#aj_chk_memo').attr('checked');
         
         var parmString = "{'Inventory_Item_Id':'" + itemid + "','serialnumber':'" + sernum + "','memo':'" + memo + "','notes':'" + notes + "'}";
         
         $.ajax({
             type: "POST",
             url: "/products/serializeddiamonds.aspx/AddStoneToCart",          
             data: parmString,
             contentType: "application/json; charset=utf-8",
             dataType: "json",         
             error: function(req, msg, err) { ShowError(req, msg, err, 'AddStoneToCart');},  
             success: function(msg) {
               AddFinish(msg);
             }
        });
      }
     //error: function(req, msg, err) { ShowError(req, msg, err);},
   }
   
   function AddFinish(msg)
   {
      closePopup('ajax_add');
      if (msg.d.success == true)
         $('#cartNum').html(msg.d.items);
      GetStones();
   }
   
   function changePriceSlider()
   {
      checkSliderCss();
      GetStones();
   }
   
   function checkSliderCss()
   {
      var pricetype = $('#pricetype option:selected').text();
      if (pricetype == 'carat') {
         $('#divLowPrice').css('border', 'solid 1px #54b27f');
         $('#divHighPrice').css('border', 'solid 1px #54b27f');
         $('#PriceLeftHandle').css('background-image', 'url(/images/diamonds/slider/greenhandle.gif)');
         $('#PriceRightHandle').css('background-image', 'url(/images/diamonds/slider/greenhandle.gif)');         
      }
      else {
         $('#divLowPrice').css('border', 'solid 1px #D67275');
         $('#divHighPrice').css('border', 'solid 1px #D67275');
         $('#PriceLeftHandle').css('background-image', 'url(/images/diamonds/slider/sliderArrow.gif)');
         $('#PriceRightHandle').css('background-image', 'url(/images/diamonds/slider/sliderArrow.gif)');
      }
   }
   
   function keySlider(elem)
   {      
      var xval;
      switch(elem.id) {
         case "lowPrice":
           if (elem.value > 250 && elem.value < 50000) {
               xval = (Math.log(elem.value/50000)/-0.00106).toFixed(0);
               if (xval < $('#PriceSliderRailBody').slider("value", 0))
                  $('#PriceSliderRailBody').slider("moveTo", $('#PriceSliderRailBody').slider("value", 0)-237, 1);
               else
                  $('#PriceSliderRailBody').slider("moveTo", xval, 1);
           }  
           break;
         case "highPrice": 
            if (elem.value < 50000 && elem.value > 250) {
               xval = (Math.log(elem.value/50000)/-0.00106).toFixed(0);
               if (xval > $('#PriceSliderRailBody').slider("value", 1))
                  $('#PriceSliderRailBody').slider("moveTo", $('#PriceSliderRailBody').slider("value", 1)+237, 0);
               else
                  $('#PriceSliderRailBody').slider("moveTo", xval, 0);
            }  
            break;          
         case "lowCarat":
            if (elem.value > 0.18 && elem.value < 7.00) {
               xval = (Math.log(elem.value/7)/-0.02).toFixed(2);
               if (xval < $('#CaratSliderRailBody').slider("value", 0))
                  $('#CaratSliderRailBody').slider("moveTo", $('#CaratSliderRailBody').slider("value", 0)-8, 1);
               else
                  $('#CaratSliderRailBody').slider("moveTo", xval, 1);
            }
            break;
         case "highCarat":
            if (elem.value > 0.18 && elem.value < 7.00) {
               xval = (Math.log(elem.value/7)/-0.02).toFixed(2);
               if (xval > $('#CaratSliderRailBody').slider("value", 1))
                  $('#CaratSliderRailBody').slider("moveTo", $('#CaratSliderRailBody').slider("value", 0)+8, 0);
               else
                  $('#CaratSliderRailBody').slider("moveTo", xval, 0);
            }
            break;
       }            
   }

   
   function showExtraCriteria()
   {
      if ($('#btnCriteria').html() == 'Standard Search Criteria') {
         $('#divExtraCriteria').slideDown();
         $('#divExtraCriteria').hide();
         $('#divCriteria').show();
         $('#btnCriteria').html('Advanced Search Criteria');
      }
      else {
         $('#divCriteria').slideUp();
         $('#divExtraCriteria').show();
         $('#btnCriteria').html('Standard Search Criteria');
      }
   }
   
   function Reset()
   {
      //Reset Stone shapes - only round is clicked
      var StoneBoxIDs = $('.StoneCheck');
      for (var i = 0;i < StoneBoxIDs.length; i++) {
    	   //if (StoneBoxIDs[i].id == 'round')
    	     // StoneBoxIDs[i].checked = true;
    	   //else
    	   StoneBoxIDs[i].checked = false;
    	   SetStonePic(StoneBoxIDs[i].id);
      }
      
      //Reset Report checkboxes - all should be checked
      var ReportBoxIDs = $('.ReportCheck');
      for (i = 0;i < ReportBoxIDs.length; i++) {
         ReportBoxIDs[i].checked = true;
      }
      
      //Reset sliders to min and max
      $('#CaratSliderRailBody').slider("moveTo", 0, 0);
      $('#CaratSliderRailBody').slider("moveTo", 160, 1);
      $('#CutSliderRailBody').slider("moveTo", 0, 0);
      $('#CutSliderRailBody').slider("moveTo", 100, 1);
      $('#ColorSliderRailBody').slider("moveTo", 0, 0);
      $('#ColorSliderRailBody').slider("moveTo", 160, 1);
      $('#ClaritySliderRailBody').slider("moveTo", 0, 0);
      $('#ClaritySliderRailBody').slider("moveTo", 200, 1);
      $('#PriceSliderRailBody').slider("moveTo", 0, 0);
      $('#PriceSliderRailBody').slider("moveTo", 5000, 1);
      
   }
   
   function CheckQueryString()
   {      
      var itemnumber = $.query.get('itemnumber');
      if (itemnumber.length > 0)
         GetStonesByItem(itemnumber);
         
   }
   
   function GetStonesByItem(itemnumber)
   {
      var parmString =  "{'itemnumber':'" + itemnumber + "'}";
            $.diamondAjax({           
            type: "POST",
            url: "/products/serializeddiamonds.aspx/GetStonesByItem",          
            data: parmString,
            contentType: "application/json; charset=utf-8",
            dataType: "json",            
            error: function(req, msg, err) { ShowError(req, msg, err, 'GetStonesByItem(' + parmString + ')'); },
            success: function(msg) {
               ApplyTemplate(msg);            
            }
          });
   }
   
      function ReversColorLookup(color)
      {         
         var val;
         switch(color) {
            case "D" :
               val = 0;
               break;
            case "E" :
               val = 20;
               break;
            case "F" :
               val = 40;
               break;
            case "G" :
               val = 60;
               break;
            case "H" :
               val = 80;
               break;
            case "I" :
               val = 100;
               break;
            case "J" :
               val = 120;
               break;
            case "K-O" :
               val = 140;
               break;
         }
         return val;
      }
      
      function HighLightRow(row)
      {
         var rows = $('#grdSerializedResults tr');
         for (var i = 0;i < rows.length;i++)
            $('#' + rows[i].id).removeClass('highlight');
         
         $('#' + row).addClass('highlight');
      }
     
      function formatlink(sernum, cert)
      {
         var target = '/apps/images/diamonds/diamond_certs/PDF/' + sernum + '.pdf';         
         var link = '<a href="#" alt="View Cert" onclick="javascript:openWinFull(\'' + target + '\');">' + cert + '</a>';
      
         return link;
      }
      
  	   function SearchSN()
	   {
	      var sn = $('#serialnumber').val();
	      if (sn.length > 0)
	         window.location = "/products/largediamonddetails.aspx?sn=" + sn;
	   }
