
var clientKey='4RBZX29sSgWGmQ1q23492zvD6xoCSHDK';var stoneRange={priceMin:0,priceMax:1000000,caratMin:0.0,caratMax:15};var pagedItemsPerPage=10;var pagedArea=null;var itemsPerLoad=100;var lastPage=0;var currentPage=PREFS.get('stones','stonesPage')||0;var loadingPages={};var loadingDiv=null;var autoLoad=true;var stoneMemory=new StoneContainer();var diamondDetailsTemplate=null;var diamondMeasurementsTemplate=null;var selectedStone=null;var selectedStyle=null;var sortBy=null;var sortReverse=false;var sortByMulti=null;var sortReverseMulti=null;var previewArea=null;var sliders=['carat','price','radio','priceBoxes','cut','color','clarity'];var sliderProperties={'carat':{'title':'Carat','defaults':[0,1]},'cut':{'title':'Cut','defaults':['Ideal','Excellent','Very Good','Good']},'color':{'title':'Color','defaults':['D','E','F','G','H','I','J']},'clarity':{'title':'Clarity','defaults':['FL,IF','VVS1','VVS2','VS1','VS2','SI1','SI2','SI3,I1']},'price':{'title':'Price','defaults':[0,1]}};var compareIconTemplate=null;var compareDetailsTemplate=null;var checkedStones=new StoneContainer();var shapes=['Round','Princess','Emerald','Asscher','Oval','Radiant','Pear','Heart','Marquise','Cushion'];var shapeProperties={'Round':{'selected':false,'title':'Round'},'Princess':{'selected':false,'title':'Princess'},'Emerald':{'selected':false,'title':'Emerald'},'Asscher':{'selected':false,'title':'Asscher'},'Oval':{'selected':false,'title':'Oval'},'Radiant':{'selected':false,'title':'Radiant'},'Pear':{'selected':false,'title':'Pear'},'Heart':{'selected':false,'title':'Heart'},'Marquise':{'selected':false,'title':'Marquise'},'Cushion':{'selected':false,'title':'Cushion'}};var cutElements=[];var colorElements=[];var clarityElements=[];var triggerFLV=true;Event.observe(window,'load',function(){setTimeout(init,100);});function init(){checkIncoming();var step=PREFS.get('progress','step');progress=setProgress(step,1);if(step=='3'){$('completeButton').innerHTML='Complete Your Ring';}
sortBy=PREFS.get('stones','sortBy');if(!sortBy)sortBy='carat';sortReverse=PREFS.get('stones','sortReverse');Element.addClassName('header_'+sortBy,'sorted');if(sortReverse)Element.addClassName('header_'+sortBy,'reverse');initShapes();compareIconTemplate=$('compareIconTemplate');compareIconTemplate.parentNode.removeChild(compareIconTemplate);compareDetailsTemplate=$('compareDetailsTemplate');compareDetailsTemplate.parentNode.removeChild(compareDetailsTemplate);var styleId=getSelectedStyleId();if(styleId){loadStyle(styleId,populateStyle);}
else{clearStyle();}
diamondDetailsTemplate=$('diamondDetailsTemplate').innerHTML;diamondMeasurementsTemplate=$('diamondMeasurementsTemplate').innerHTML;var stoneId=getRecentStoneId();if(stoneId){loadStone(stoneId,selectStone);toggleShapes();}
var checkedStoneIds=PREFS.get('stones','checked');if(!checkedStoneIds)checkedStoneIds=[];if(checkedStoneIds.length>0){loadStones(checkedStoneIds,populateCheckedStones);}}
function populateCheckedStones(stones){for(var t=0;t<stones.length;t++){var stone=stones[t];addChecked(stone);}
var compare=PREFS.get('stones','showCompare');if(compare&&checkedStones.length>1){showCompare();}}
function clearStyle(){setSelectedStyleId(false);setRecentStyleId(false);selectedStyle=null;$('completeButton').innerHTML='Add to a Ring';tabEnable('tabSaved',false);tabEnable('tabSettings',false);PREFS.set('progress','step','1');}
function checkStone(element,stoneId,event){var stone=stoneMemory.byId(stoneId);if(!stone)return(false);if(element.checked){var success=addChecked(stone);if(!success){alert("You have already checked 9 items to compare, please uncheck some items before adding more.")
element.checked=false;return(false);}}
else removeChecked(stone);return(false);}
var allowPulse=PREFS.get('stones','allowPulse');if(allowPulse==undefined)allowPulse=true;function addChecked(stone){if(checkedStones.length>=9)return(false);stoneMemory.addStone(stone);checkedStones.addStone(stone);PREFS.set('stones','checked',checkedStones.ids);var id='stoneCheckbox_'+stone.stoneId;var element=$(id);if(element){element.checked=true;}
if(allowPulse&&checkedStones.length>=2){$('compare').style.backgroundImage='url(stones/accordian_pulse.gif)';}
else{$('compare').style.backgroundImage='';}
return(true);}
function removeChecked(stone){checkedStones.removeStone(stone);PREFS.set('stones','checked',checkedStones.ids);var id='stoneCheckbox_'+stone.stoneId;var element=$(id);if(element){element.checked=false;}
return(true);}
var caratSlider=null;var cutSlider=null;var colorSlider=null;var claritySlider=null;var priceSlider=null;var caratLabel=null;var priceLabel=null;function getSavedCarats(){var carats=PREFS.get('stones','sliderCarat');if(!carats)return(false);var values=[];values[0]=carat2value(carats[0],0);values[1]=carat2value(carats[1],2);return(values);}
function setSavedCarats(min,max){var carats=[];carats[0]=value2carat(min);carats[1]=value2carat(max);PREFS.set('stones','sliderCarat',carats);}
function getSavedPrices(){var prices=PREFS.get('stones','sliderPrice');if(!prices)return(false);var values=[];values[0]=price2value(prices[0],0);values[1]=price2value(prices[1],2);return(values);}
function setSavedPrices(min,max){var prices=[];prices[0]=value2price(min);prices[1]=value2price(max);PREFS.set('stones','sliderPrice',prices);}
function getSavedCuts(){}
function balanceSliders(){if(!priceSlider||!caratSlider)return(false);var priceMin=null;var priceMax=null;var caratMin=null;var caratMax=null;var selectedShapes=PREFS.get('stones','shapes');for(var t=0;t<selectedShapes.length;t++){var shape=selectedShapes[t];var limits=byoSliderLimits[clientKey][shape];if(!limits)continue;limits.price[0]=Math.floor(limits.price[0]);limits.price[1]=Math.ceil(limits.price[1])+100;if(priceMin==null)priceMin=limits.price[0];else if(limits.price[0]<priceMin)priceMin=limits.price[0];if(priceMax==null)priceMax=limits.price[1];else if(limits.price[1]>priceMax)priceMax=limits.price[1];if(caratMin==null)caratMin=limits.carat[0];else if(limits.carat[0]<caratMin)caratMin=limits.carat[0];if(caratMax==null)caratMax=limits.carat[1];else if(limits.carat[1]>caratMax)caratMax=limits.carat[1];}
currentPriceMin=value2price(priceSlider.values[0]);currentPriceMax=value2price(priceSlider.values[2]);currentCaratMin=value2carat(caratSlider.values[0]);currentCaratMax=value2carat(caratSlider.values[2]);stoneRange.priceMin=priceMin;stoneRange.priceMax=priceMax;stoneRange.caratMin=caratMin;stoneRange.caratMax=caratMax;var min=price2value(currentPriceMin,0);var max=price2value(currentPriceMax,2);priceSlider.setValue(max,2);priceSlider.setValue(min,0);var min=carat2value(currentCaratMin,0);var max=carat2value(currentCaratMax,2);caratSlider.setValue(max,2);caratSlider.setValue(min,0);}
var slidersInited=false;function initSliders(){caratLabel=document.getElementById('caratLabel');priceLabel=document.getElementById('priceLabel');var initPresets=false;if(!PREFS.get('stones','sliderCarat')&&!PREFS.get('stones','sliderCut')&&!PREFS.get('stones','sliderColor')&&!PREFS.get('stones','sliderClarity')&&!PREFS.get('stones','sliderPrice')){initPresets=true;}
var min=sliderProperties.carat.defaults[0];var max=sliderProperties.carat.defaults[1];if(queryPrice){min=0;max=1;}
var mid=(min+max)/2;carats=[min,mid,max];caratSlider=new Control.Slider(['caratHandle1','caratHandle','caratHandle2'],'caratSlider',{handlesAlign:['left','center','right'],axis:'horizontal',sliderValue:carats,restricted:true,onSlide:updateCarat,onChange:changeCarat,minSpan:0.2});var cuts=PREFS.get('stones','sliderCut');if(!cuts)cuts=sliderProperties.cut.defaults;var t=0;do{var temp=document.getElementById('cut_'+t);if(temp){cutElements.push(temp);if(cuts.indexOf(temp.value)!=-1)temp.checked=true;else temp.checked=false;}
t++;}while(temp);var colors=PREFS.get('stones','sliderColor');if(!colors)colors=sliderProperties.color.defaults;var t=0;do{var temp=document.getElementById('color_'+t);if(temp){colorElements.push(temp);if(colors.indexOf(temp.value)!=-1)temp.checked=true;else temp.checked=false;}
t++;}while(temp);var clarities=PREFS.get('stones','sliderClarity');if(!clarities)clarities=sliderProperties.clarity.defaults;var t=0;do{var temp=document.getElementById('clarity_'+t);if(temp){clarityElements.push(temp);if(clarities.indexOf(temp.value)!=-1)temp.checked=true;else temp.checked=false;}
t++;}while(temp);var min=sliderProperties.price.defaults[0];var max=sliderProperties.price.defaults[1];var mid=(min+max)/2;prices=[min,mid,max];priceSlider=new Control.Slider(['priceHandle1','priceHandle','priceHandle2'],'priceSlider',{handlesAlign:['left','center','right'],axis:'horizontal',sliderValue:prices,restricted:true,onSlide:updatePrice,onChange:changePrice,minSpan:0.2});var preset=PREFS.get('stones','preset');var carats=PREFS.get('stones','sliderCarat');var prices=PREFS.get('stones','sliderPrice');var queryPrice=PREFS.get('stones','queryPrice');if(queryPrice&&(queryPrice[0]||queryPrice[1])){sliderProperties.carat.defaults[0]=0;sliderProperties.carat.defaults[1]=1;}
balanceSliders();if(carats){caratSlider.setValue(carat2value(carats[0],0),0);caratSlider.setValue(carat2value(carats[1],2),2);caratSlider.setValue(carat2value(carats[0],0),0);}
else{caratSlider.setValue(sliderProperties.carat.defaults[0],0);caratSlider.setValue(sliderProperties.carat.defaults[1],2);caratSlider.setValue(sliderProperties.carat.defaults[0],0);}
if(queryPrice){setPriceValues(queryPrice,sliderProperties.price.defaults[0],sliderProperties.price.defaults[1]);}
else if(prices){priceSlider.setValue(price2value(prices[0],0),0);priceSlider.setValue(price2value(prices[1],2),2);priceSlider.setValue(price2value(prices[0],0),0);}
else{priceSlider.setValue(sliderProperties.price.defaults[0],0);priceSlider.setValue(sliderProperties.price.defaults[1],2);priceSlider.setValue(sliderProperties.price.defaults[0],0);}
slidersInited=true;openTutorial();}
function setPriceValues(queryPrice,min,max){if(queryPrice[0]!=null&&queryPrice[0]!=undefined){min=price2value(queryPrice[0],0);if(queryPrice[1]==null||queryPrice[1]==undefined){max=1;}}
priceSlider.setValue(min,0);if(queryPrice[1]!=null&&queryPrice[1]!=undefined){max=price2value(queryPrice[1],2);if(queryPrice[0]==null||queryPrice[0]==undefined){min=0;priceSlider.setValue(0,1);}}
priceSlider.setValue(max,2);}
function setMinMaxPrice(minPrice,maxPrice){var min=0;var max=1;var mid=(min+max)/2;prices=[min,mid,max];if(minPrice=='')minPrice=null;if(maxPrice=='')maxPrice=null;var queryPrice=[minPrice,maxPrice];setPriceValues(queryPrice,min,max);}
function value2carat(value){value=compressValue(caratSlider,value);var range=stoneRange.caratMax-stoneRange.caratMin;var value=stoneRange.caratMin+(Math.pow(value,2)*range);value=Math.round(value*100)/100;return(value);}
function carat2value(carat,handle){if(!caratSlider)return(false);var range=stoneRange.caratMax-stoneRange.caratMin;carat-=stoneRange.caratMin;value=carat/range;if(value<0)value=0;else if(value>1)value=1;else value=Math.pow(value,(1/2));var value=uncompressValue(caratSlider,value,handle);return(value);}
function sliderValues(slider,possibles){var min=slider.values[0].toFixed(3);var max=slider.values[2].toFixed(3);var values=slider.allowedValues;var minValue=null;var maxValue=null;for(var t=0;t<values.length;t++){var value=values[t].toFixed(3);if(min==value)minValue=t;if(max==value)maxValue=t;}
var possibles=possibles.slice(minValue,maxValue);return(possibles);}
function setSliderValues(slider,min,max){slider.setValue(slider.allowedValues[min],0);slider.setValue(slider.allowedValues[max+1],2);}
function showEmptyCheckedError(prop){pagedArea.setTotalItems(0);pagedArea.drawPage();Element.hide('searchTable');Element.hide('searchHeader');Element.show('noResults');var popup=new Sticky('noResults','west',"Please select a "+prop+" value and try again.",{hspace:15,vspace:0,timeout:3000});}
function changeCut(){var values=getCutValues();PREFS.set('stones','sliderCut',values);var checkProps=checkPropertyBoxes();if(!checkProps){return false;}
clearSearch(true);}
function changeClarity(){var values=getClarityValues();PREFS.set('stones','sliderClarity',values);var checkProps=checkPropertyBoxes();if(!checkProps){return false;}
clearSearch(true);}
function changeColor(){var values=getColorValues();PREFS.set('stones','sliderColor',values);var checkProps=checkPropertyBoxes();if(!checkProps){return false;}
clearSearch(true);}
function updateCarat(values){var min=value2carat(values[0]);var max=value2carat(values[2]);if(min==max)caratLabel.innerHTML=min+'ct';else caratLabel.innerHTML=min+'-'+max+'ct';removeSliderTip();}
function changeCarat(values){setSavedCarats(values[0],values[2]);updateCarat(values);var checkProps=checkPropertyBoxes();if(!checkProps){return false;}
clearSearch(true);}
function compressValue(slider,value){var minSpan=slider.minSpan;var halfRange=minSpan/2;var realValue=value;var offsetValue=value;if(value==slider.values[0]){offsetValue=realValue;}
else if(value==slider.values[2]){offsetValue=realValue-minSpan;}
else if(value==slider.values[1]){offsetValue=realValue-halfRange;}
var compValue=offsetValue/(1-minSpan);return(compValue);}
function uncompressValue(slider,value,handle){var minSpan=slider.minSpan;var halfRange=minSpan/2;var realValue=value;var offsetValue=value;var compValue=(value*(1-minSpan))+halfRange;if(!handle){for(var t=0;t<slider.values.length;t++){if(value==slider.values[t]){handle=t;break;}}}
if(handle==0)offsetValue=compValue-halfRange;else if(handle==2)offsetValue=compValue+halfRange;else offsetValue=compValue;return(offsetValue);}
function value2price(value){var original=value;value=compressValue(priceSlider,value);var range=stoneRange.priceMax-stoneRange.priceMin;var price=stoneRange.priceMin+Math.round(Math.pow(value,3)*range);if(price<stoneRange.priceMin)price=stoneRange.priceMin;if(price>stoneRange.priceMax)price=stoneRange.priceMax;price=Math.round(price/100)*100;return(price);}
function price2value(price,handle){if(!priceSlider)return(value);var priceIn=price;var range=stoneRange.priceMax-stoneRange.priceMin;price-=stoneRange.priceMin;value=price/range;if(value<0)value=0;else if(value>1)value=1;else value=Math.pow(value,(1/3));var value=uncompressValue(priceSlider,value,handle);return(value);}
function updatePrice(values){var min=value2price(values[0]);var max=value2price(values[2]);if(min==max)priceLabel.innerHTML='$'+addCommas(min);else priceLabel.innerHTML='$'+addCommas(min)+'-$'+addCommas(max);removeSliderTip();}
function changePrice(values){setSavedPrices(values[0],values[2]);updatePrice(values);PREFS.set('stones','queryPrice');var checkProperties=checkPropertyBoxes();if(!checkProperties){return false;}
clearSearch(true);}
function checkPropertyBoxes(){var values=getCutValues();if(values.length==0){showEmptyCheckedError("cut");return false;}
var values=getColorValues();if(values.length==0){showEmptyCheckedError("color");return false;}
var values=getClarityValues();if(values.length==0){showEmptyCheckedError("clarity");return false;}
return true;}
function initShapes(){var html='';var selectedShapes=PREFS.get('stones','shapes');for(var t=0;t<shapes.length;t++){var shape=shapes[t];var properties=shapeProperties[shape];html+='<div class="shape '+shape;if(selectedShapes&&selectedShapes.indexOf(shape)!=-1){html+=' selected';shapeProperties[shape]['selected']=true;}
html+='" title="'+properties["title"]+'" onclick="toggleShape(\''+shape+'\',this);">';html+='<div class="inner">';html+='<div class="image"></div>';html+='<div class="text">'+properties['title']+'</div>';html+='</div>';html+='</div>';}
html+='<div style="clear:both;height:1px;overflow:hidden;"></div>'
$('shapes').innerHTML=html;if(selectedShapes&&selectedShapes.length>0){showSearch(false,true);}}
function toggleShape(shape,element){var startTime=(new Date()).getTime();var selectedShapesCount=0;for(var t=0;t<shapes.length;t++){if(shapeProperties[shapes[t]]['selected'])selectedShapesCount++;}
$('greeting').innerHTML="Select your Diamond or Refine your Search.";if(shapeProperties[shape]['selected']){shapeProperties[shape]['selected']=false;Element.removeClassName(element,'selected');}
else{shapeProperties[shape]['selected']=true;Element.addClassName(element,'selected');}
var selectedShapes=new Array();for(var t=0;t<shapes.length;t++){var shape=shapes[t];if(shapeProperties[shape]['selected'])selectedShapes.push(shape);}
PREFS.set('stones','shapes',selectedShapes);if(selectedShapesCount==0&&selectedShapes.length==1)toggleShapes();balanceSliders();clearSearch(true);showSearch();}
function getStone(pos){var stone=stoneMemory.byReference(pos);if(stone)return(stone);loadData();return(false);}
function sort(field,reverse){Element.removeClassName('header_'+sortBy,'sorted');Element.removeClassName('header_'+sortBy,'reverse');Element.addClassName('header_'+field,'sorted');if(reverse!=undefined)sortReverse=reverse;else if(sortBy==field){if(sortReverse)sortReverse=false;else sortReverse=true;}
else{if(reverse!=undefined)sortReverse=reverse;sortReverse=false;}
if(sortReverse)Element.addClassName('header_'+field,'reverse');else Element.removeClassName('header_'+field,'reverse');sortBy=field;PREFS.set('stones','sortBy',sortBy);PREFS.set('stones','sortReverse',sortReverse);clearSearch(false);sortByMulti=null;sortReverseMulti=null;}
function clearSearch(resetPage){if(resetPage){currentPage=0;lastPage=0;if(pagedArea)pagedArea.page=0;}
loadingPages={};stoneMemory=new StoneContainer();loadData();}
function getCutValues(){var cuts=[];for(var t=0;t<cutElements.length;t++){if(cutElements[t].checked)cuts.push(cutElements[t].value);}
return cuts;}
function getColorValues(){var colors=[];for(var t=0;t<colorElements.length;t++){if(colorElements[t].checked)colors.push(colorElements[t].value);}
return colors;}
function getClarityValues(){var clarities=[];for(var t=0;t<clarityElements.length;t++){if(clarityElements[t].checked)clarities.push(clarityElements[t].value);}
return clarities;}
function loadData(){if(!autoLoad){return(false);}
if(!pagedArea){return(false);}
var page=pagedArea.page;if(loadingPages[page]){return(false);}
if(!loadingDiv){var searchResults=$('searchResults');loadingDiv=document.createElement('div');loadingDiv.id='loadingDiv';searchResults.appendChild(loadingDiv);}
var startPos=page*pagedArea.itemsPerPage;if(lastPage>page)startPos-=itemsPerLoad-(pagedArea.itemsPerPage*2);if(startPos<0)startPos=0;var url=dyoConfig.diamondsUrl;var selectedShapes=[];for(var t=0;t<shapes.length;t++){var shape=shapes[t];if(shapeProperties[shape]['selected'])selectedShapes.push(shape);}
var params='';params+='s='+startPos;params+='&sh='+selectedShapes.join(',');if(caratSlider){params+='&ca_min='+value2carat(caratSlider.values[0]);params+='&ca_max='+value2carat(caratSlider.values[2]);}
if(priceSlider){params+='&min='+value2price(priceSlider.values[0]);params+='&max='+value2price(priceSlider.values[2]);}
if(cutElements){var cuts=getCutValues();params+='&cut='+escape(cuts.join(','));}
if(colorElements){var colors=getColorValues();params+='&co='+escape(colors.join(','));}
if(clarityElements){var clarities=getClarityValues();params+='&cl='+escape(clarities.join(','));}
if(sortByMulti){for(var t=0;t<sortByMulti.length;t++){var o=sortByMulti[t];var r=sortReverseMulti[o];params+='&o'+t+'='+o;if(r)params+='&r'+t+'=true';}}
else{params+='&o='+sortBy;if(sortReverse)params+='&r=true';}
var myAjax=new Ajax.Request(url,{method:'get',parameters:params,onComplete:saveData,onlyLatestOfClass:'stoneLoader'});loadingPages[page]=true;}
function saveData(originalRequest){if(loadingDiv){loadingDiv.parentNode.removeChild(loadingDiv);loadingDiv=null;}
var data=eval(originalRequest.responseText);var stoneIds=[];for(pos in data){if(pos*0!=0)continue;var diamondId=data[pos]['stone_id'];stoneIds.push(pos);var tempStone=new Diamond(diamondId,data[pos]);stoneMemory.addStone(tempStone,pos);}
pagedArea.setTotalItems(data['resultsCount']);pagedArea.drawPage();if(data["resultsCount"]<1){Element.hide('searchTable');Element.hide('searchHeader');Element.show('noResults');var popup=new Sticky('noResults','west',"Please adjust the sliders and try again.",{hspace:15,vspace:0,timeout:3000});}
else{Element.show('searchTable');Element.show('searchHeader');Element.hide('noResults');}}
function pagedHTML(itemId,element,pageArea){var diamond=getStone(itemId);if(!diamond)return(document.createElement('div'));var div=document.createElement('div');div.id='pagedStone_'+diamond.diamondId;div.className='pagedItem';var recent=getRecentStoneId();if(recent&&diamond.diamondId==recent)div.className+=' selected';var html='';html+='<div class="column shape" title="'+diamond.shape+'" style="background-image: url(stones/shape_mini_'+diamond.shape.toLowerCase()+'.png);"></div>';html+='<div class="column carat">'+diamond.carat+'</div>';html+='<div class="column cut">'+diamond.cut+'</div>';html+='<div class="column color">'+diamond.color+'</div>';html+='<div class="column clarity">'+diamond.clarity+'</div>';html+='<div class="column price">$'+addCommas(diamond.price)+'</div>';html+='<div class="column compareCheck"><input type="checkbox" id="stoneCheckbox_'+diamond.diamondId+'" value="'+itemId+'" onclick="removeCompareTip(); checkStone(this,'+diamond.diamondId+',event);"  onmouseover="showCompareTip(this);"';if(checkedStones.byId(diamond.diamondId))html+=' checked';html+='></div>';div.innerHTML=html;return(div);}
function pagedPages(itemStart,itemEnd,itemCount,page,pageCount){var html='';lastPage=currentPage;currentPage=page;PREFS.set('stones','stonesPage',page);if(itemCount>0)html+='<div style="text-align: left">Showing <b>'+(itemStart+1)+'</b> to <b>'+(itemEnd+1)+'</b> of ';html+=itemCount+' results</div>';return(html);}
function pagedSelect(itemId,element,event){var children=document.getElementsByClassName('pagedItem');for(var t=0;t<children.length;t++)Element.removeClassName(children[t],'selected');Element.addClassName(element,'selected');flipperClick(itemId,event);}
function showSearch(warn,suppressHide){var selectedCount=0;for(var t=0;t<shapes.length;t++){var shape=shapes[t];if(shapeProperties[shape]['selected'])selectedCount++;}
if(selectedCount<1){if(warn)alert("Please select at least one shape first")
Accordian.contract('search');return(false);}
if(warn&&Accordian.expanded('search')){Accordian.contract('search');return(true);}
if(Accordian.expanded('compare')){Accordian.contract('compare');}
Element.show('search');Element.show('compare');Element.show('sliderTutorial');Accordian.expand('search');if(!priceSlider)initSliders();if(!pagedArea){pagedArea=new PagedArea('searchTable',{formatter:pagedHTML,pageFormatter:pagedPages,page:currentPage,itemsPerPage:pagedItemsPerPage,pageDiv:new Array('searchPages'),onClick:searchClick,browseText:true});loadData();}
if(!suppressHide){hideCompare();}}
function showCompare(){if(checkedStones.length<2){alert("Please check at least two diamonds before comparing");return(false);}
allowPulse=false;PREFS.set('stones','allowPulse',false);$('compare').style.backgroundImage='';drawCompare();Accordian.toggle('compare');if(!Accordian.expanded('compare'))return(true);if(Accordian.expanded('search')){Accordian.contract('search');}
Element.show('compareToggle');Element.hide('shapesToggle');Element.hide('detailsToggle');Element.hide('sliderTutorial')
$('greeting').innerHTML='Select two diamonds to compare them';Element.show('greeting');PREFS.set('stones','showCompare',true);}
function hideCompare(){Element.hide('compareToggle');Element.show('shapesToggle');Element.show('detailsToggle');Element.show('sliderTutorial')
$('greeting').innerHTML='Select your Diamond or Refine your Search.';PREFS.set('stones','showCompare',false);}
var compareDetails1=null;var compareDetails2=null;function selectCompare(stoneId){if(compareDetails2)removeCompare(compareDetails2);compareDetails2=compareDetails1;compareDetails1=stoneId;var stone=checkedStones.byId(stoneId);var div=compareDetailsTemplate.cloneNode(true);var step=PREFS.get('progress','step');if(step==3){div.innerHTML=template(div.innerHTML,'complete','Complete Your Ring');}
else{div.innerHTML=template(div.innerHTML,'complete','Add to a Ring');}
templateStone(div,stone);div.id='compareDetails_'+stone.stoneId;$('compareContainer').insertBefore(div,$('compareContainer').firstChild);Element.addClassName('compareIcon_'+stoneId,'selected');PREFS.set('stones','compare',[compareDetails1,compareDetails2]);}
function clickCompare(stoneId){if(compareDetails1==stoneId||compareDetails2==stoneId){removeCompare(stoneId);}
else{selectCompare(stoneId);}}
function removeCompare(stoneId){if(compareDetails1==stoneId){compareDetails1=compareDetails2;compareDetails2=null;}
if(compareDetails2==stoneId){compareDetails2=null;}
var div=$('compareDetails_'+stoneId);if(div)$('compareContainer').removeChild(div);Element.removeClassName('compareIcon_'+stoneId,'selected');PREFS.set('stones','compare',[compareDetails1,compareDetails2]);}
function closeCompare(stoneId){removeCompare(stoneId);var stone=checkedStones.byId(stoneId);checkedStones.removeStone(stone);var div=$('compareIcon_'+stoneId);if(div)$('compareItems').removeChild(div);removeChecked(stone);drawCompareOne();if(checkedStones.length<1)showSearch();}
function drawCompareOne(stone){var div=compareIconTemplate.cloneNode(true);if(stone){templateStone(div,stone);div.onclick=function(){clickCompare(stone.stoneId);};div.id='compareIcon_'+stone.stoneId;}
else{div.innerHTML='';div.style.cursor='default';}
$('compareItems').appendChild(div);}
function drawCompare(){$('compareItems').innerHTML='';for(var t=0;t<9;t++){if(t<checkedStones.length){var stone=checkedStones.byPosition(t);drawCompareOne(stone);}
else{drawCompareOne();}}
var selectedCompare=PREFS.get('stones','compare');if(!selectedCompare)selectedCompare=[];if(selectedCompare.length<1&&checkedStones.length==2){var stone1=checkedStones.byPosition(0);var stone2=checkedStones.byPosition(1);selectedCompare=[stone1.stoneId,stone2.stoneId];}
var newSelected=[];for(var t=0;t<selectedCompare.length;t++){var stoneId=selectedCompare[t];if(checkedStones.byId(stoneId)){newSelected.push(stoneId);selectCompare(stoneId);}}
selectedCompare=newSelected;PREFS.set('stones','compare',selectedCompare);}
function toggleShapes(){Accordian.contract('diamondShapes');}
function realToggleShapes(){Accordian.toggle('diamondShapes');}
function searchClick(itemId,element,event){var stone=stoneMemory.byReference(itemId);if(!stone)return(false);selectStone(stone);}
function selectStone(stone){if(!stone){showNotAvailable();PREFS.set('stones','selected',null);PREFS.set('stones','recent',null);return(false);}
if(selectedStyle&&selectedStyle.settings[1]&&!selectedStyle.settings[1].checkRules(stone)){var remove=confirm(selectedStyle.settings[1].dropzoneError+"\nWould you like to remove your selected setting?");if(!remove){PREFS.set('stones','selected',null);PREFS.set('progress','step',1);tabEnable('tabSettings',false);tabEnable('tabSaved',false);return(false);}
clearStyle();}
if($('hideDetails').innerHTML=="Hide"){var displayDetails=true;}else{var displayDetails=false;}
stoneMemory.addStone(stone);$('diamondDetailsTemplate').innerHTML=diamondDetailsTemplate;templateStone('diamondDetailsTemplate',stone);$('diamondMeasurementsTemplate').innerHTML=diamondMeasurementsTemplate;templateStone('diamondMeasurementsTemplate',stone);showDetails();if(displayDetails){toggleSections('hideDetails','section1','section2','section3');}
setRecentStoneId(stone.stoneId);PREFS.set('stones','selected',stone.stoneId);var children=document.getElementsByClassName('selected',$('searchTable'));for(var t=0;t<children.length;t++){Element.removeClassName(children[t],'selected');}
var element=$('pagedStone_'+stone.stoneId);if(element)Element.addClassName(element,'selected');closeNotAvailable();return(true);}
function showDetails(){toggleShapes();Element.show('diamondDetails');}
function showSliderHelp(sliderClick){for(var t=0;t<sliders.length;t++){var slider=sliders[t];if(slider==sliderClick)continue;Element.hide(slider+'Container');}
Element.hide('searchResults');Element.show(sliderClick+'Help');}
function closeHelp(){for(var t=0;t<sliders.length;t++){var slider=sliders[t];Element.show(slider+'Container');Element.hide(slider+'Help');}
Element.show('searchResults');}
function togglePresetRadios(){var radios=document.getElementById('presetRadios');var link=document.getElementById('advancedSearch');if(radios.style.display=='none'){radios.style.display='inline';Element.removeClassName(link,'helpLink');Element.addClassName(link,'helpLinkDeact');link.onclick='';}else{radios.style.display='none';Element.removeClassName(link,'helpLinkDeact');Element.addClassName(link,'helpLink');link.onclick=togglePresetRadios;}}
function populateStyle(style){if(!style){clearStyle();return(false);}
selectedStyle=style;if(selectedStyle&&selectedStyle.settings[1]&&!selectedStyle.settings[1].checkRules(stone)){clearStyle();}else{$('completeButton').innerHTML='Complete Your Ring';}}
function toggleSettingDetails(){Accordian.toggle('settingDetails');previewArea.drawPreview();}
function saveStone(stoneId){saveStoneId(stoneId);if(!Accordian.expanded('compare')){var popup=new Sticky('stickyAlign','east',"We've saved your diamond in your Saved Items.",{hspace:-50,vspace:0,timeout:3000});}else{var popup=new Sticky('compareContainer','west',"We've saved your diamond in your Saved Items.",{hspace:0,vspace:0,timeout:3000});}}
function completeRing(stoneId){var stone=stoneMemory.byId(stoneId);if(!stone){return(false);}
setSelectedStoneId(stoneId);var step=PREFS.get('progress','step');if(step=='3'){location.href='completed.php';}
else{PREFS.set('progress','step','2');location.href='settings.php';}}
var allowSliderTip=PREFS.get('stones','sliderTip');if(allowSliderTip==undefined)allowSliderTip=true;var sliderTip=null;function showSliderTip(element){if(!allowSliderTip)return(false);if(sliderTip)sliderTip.destroy();sliderTip=new Sticky(element,'northeast','Drag bar end to expand/narrow search range.',{timeout:4000,className:'sliderHint'});}
function removeSliderTip(){if(!slidersInited)return(false);if(!allowSliderTip)return(false);if(sliderTip)sliderTip.destroy();sliderTip=null;allowSliderTip=false;PREFS.set('stones','sliderTip',false);}
var allowCompareTip=PREFS.get('stones','compareTip');if(allowCompareTip==undefined)allowCompareTip=true;var compareTip=null;function showCompareTip(element){if(!allowCompareTip)return(false);if(compareTip)compareTip.destroy();compareTip=new Sticky(element,'west','To compare items, check boxes then click "Compare Diamonds" below.',{timeout:4000,className:'compareHint'});}
function removeCompareTip(){if(!slidersInited)return(false);if(!allowCompareTip)return(false);if(compareTip)compareTip.destroy();compareTip=null;allowCompareTip=false;PREFS.set('stones','compareTip',false);}
function toggleTutorial(){if(Accordian.expanded('sliderTutorial')){closeTutorial();}else{openTutorial();}}
function openTutorial(){Accordian.expand('sliderTutorial');var flash=document.getElementById('playFlash');flash.style.display='none';if(document.all){var movie=window.document['flashTutorialObject'];movie.Play();}}
function closeTutorial(){Accordian.contract('sliderTutorial');var flash=document.getElementById('playFlash');flash.style.display='inline';}