﻿function StartBuilder()
{

    if( document.getElementById( "loadbuilderminimized" ).value == "0" ) { 
        rbAbazias.startRBPreload( document.getElementById("preSelectedRing").value, document.getElementById("preSelectedDiamond").value );
    }        
    else {
        rbAbazias.startMinimizedRBPreload();
    }
    
    if( document.getElementById( "currDivShown" ).value == "diamond" ) 
    {
        rbAbazias.showDiamondContainer();
        SelectShapeOnLoad( document.getElementById("Shape").value);
    }
    else if( document.getElementById( "currDivShown" ).value == "simple" ) 
    {    
        rbAbazias.showSimpleSearchDiv();
    }
    else 
    {    
        StartJewelrySearch();    
        rbAbazias.showRingContainer();
    }        
    
    var nothingSelected = new Image();
    nothingSelected.src = "/images/builder_none_selected.jpg";
}

function preLoadSliders()
{
    preLoadElement( "sliderbar1", document.getElementById("minprice").value, document.getElementById("maxprice").value );    
    preLoadElement( "sliderbar2", document.getElementById("mincarat").value, document.getElementById("maxcarat").value );    
	preLoadElement( "sliderbar3", document.getElementById("mincolor").value, document.getElementById("maxcolor").value );    
	preLoadElement( "sliderbar4", document.getElementById("minclarity").value, document.getElementById("maxclarity").value );
}   
    
function SetShapeValue( currShape )
{  
    document.getElementById( "Shape" ).value = currShape;
    SelectedShape = currShape;
    DoSearch();
}

function DoSearch()
{
    DoExtrasOnMouseDown();
    DoExtrasOnMouseUp();
}


function DoSearchOnDelay()
{
	var func = function() {
	    DoExtrasOnMouseDown();
    	DoExtrasOnMouseUp();
	}
	setTimeout( func, 500 );
}
    
function StartSliderPreloadProcess()
{	
    InitializeSliderBar_DrawContainer( 'sliderbar1' );
    InitializeSliderBar_DrawContainer( 'sliderbar2' );
    InitializeSliderBar_DrawContainer( 'sliderbar3' );
    InitializeSliderBar_DrawContainer( 'sliderbar4' );
    preLoadSliders();
}       

function SelectRadioOnImage( currShape )    
{   
    if( document.getElementById("shape" + currShape ).checked ) { return; }
    
    if( document.getElementById("shape" + currShape ) ) {
        document.getElementById("shape" + currShape ).checked = true
    }
    
    SetShapeValue( currShape );
}

function DoXMLSearch()
{
    if( document.getElementById( "numResults" ).innerHTML.indexOf( searchingAnimUrl ) == -1 ) {
        document.getElementById( "numResults" ).innerHTML = "<img src=\"" + searchingAnimUrl + "\">";
    }
    
    //setTimeout( "XMLGetTotal()", 1000 );
    
}    

function GenerateSoapVarDiamondCount()
{	
    var currMinPrice = GetSliderValue( "sliderbar1", "a" );
    var currMaxPrice = GetSliderValue( "sliderbar1", "b" );
    var currMinCarat = GetSliderValue( "sliderbar2", "a" );
    var currMaxCarat = GetSliderValue( "sliderbar2", "b" );
    var currShape = document.getElementById( "Shape" ).value;
    if( currMinPrice == 200 ) { currMinPrice = "min"; }
    if( currMaxPrice == 100000 ) { currMaxPrice = "max"; }
    if( currMinCarat == .1 ) { currMinCarat = "min"; }
    if( currMaxCarat == 10 ) { currMaxCarat = "max"; }
    
    var colorString = "D,E,F,G,H,I,J,K";
    var colorArray = colorString.split( "," );
    var clarityString = "IF,VVS1,VVS2,VS1,VS2,SI1,SI2,I1,I2,I3";
    var clarityArray = clarityString.split( "," );
    var searchColorArray = colorArray;
    var searchClarityArray = clarityArray;
    
    // Set color possible ranges
    var startColor = GetSliderValue( "sliderbar3", "a" );
    var endColor = GetSliderValue( "sliderbar3", "b" );
    for( var i = 0; i < colorArray.length; i++ )
    {
        if( colorArray[i] == startColor ) {
            startIndex = i;
        }
        
        if( colorArray[i] == endColor ) {
            endIndex = i;
        }
    }
    
    searchColorArray = new Array();
    for( var i = startIndex; i <= endIndex; i++ )
    {
        searchColorArray.length++;
        searchColorArray[ searchColorArray.length - 1 ] = colorArray[i];
    }
        
    // Set clarity possible ranges            
    var startClarity = GetSliderValue( "sliderbar4", "a" );
    var endClarity = GetSliderValue( "sliderbar4", "b" );
    for( var i = 0; i < clarityArray.length; i++ )
    {
        if( clarityArray[i] == startClarity ) {
            startIndex = i;
        }
        
        if( clarityArray[i] == endClarity ) {
            endIndex = i;
        }
    }
    
    searchClarityArray = new Array();
    for( var i = startIndex; i <= endIndex; i++ )
    {
        searchClarityArray.length++;
        searchClarityArray[ searchClarityArray.length - 1 ] = clarityArray[i];
    }
    
    var currColor = searchColorArray.join( "," );
    var currClarity = searchClarityArray.join( "," );
    var stockNum = document.getElementById("stock_num").value;
    
    var sXml  =  "";
	sXml += "<shape>" + currShape + "</shape>";
	sXml += "<minCarat>" + currMinCarat + "</minCarat>";
	sXml += "<maxCarat>" + currMaxCarat + "</maxCarat>";
	sXml += "<minPrice>" + currMinPrice + "</minPrice>";
	sXml += "<maxPrice>" + currMaxPrice + "</maxPrice>";
	sXml += "<colorString>" + currColor + "</colorString>";
	sXml += "<clarityString>" + currClarity + "</clarityString>";
	sXml += "<minDepth></minDepth>";
	sXml += "<maxDepth></maxDepth>";
	sXml += "<minTable></minTable>";
	sXml += "<maxTable></maxTable>";
	sXml += "<certString></certString>";
	sXml += "<stocknum> " + stockNum + "</stocknum>";
	sXml += "<couplesOnly>1</couplesOnly>";
    return( sXml );                  
}

function GetStateChange()
{           
    // if xmlhttp shows "loaded"
    if (xmlhttp.readyState==4)
    {      
        // if "OK"
        if (xmlhttp.status==200)
        {
            resultText = xmlhttp.responseXML;
        }
    }
}

function AddCommas( nStr )
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function ToggleCert( currObj )
{
    if( currObj.checked ) 
    {
        switch( currObj.id ) 
        {
            case "cert_GIA": document.getElementById( "grading_GIA" ).value = 1; break;
            case "cert_AGS": document.getElementById( "grading_AGS" ).value = 1; break;
            case "cert_EGL": document.getElementById( "grading_EGL" ).value = 1; break;
            case "cert_HRD": document.getElementById( "grading_HRD" ).value = 1; break;
        }
	
        
        DoSearch();
    }
    else 
    {
        switch( currObj.id ) 
        {
            case "cert_GIA": document.getElementById( "grading_GIA" ).value = 0; break;
            case "cert_AGS": document.getElementById( "grading_AGS" ).value = 0; break;
            case "cert_EGL": document.getElementById( "grading_EGL" ).value = 0; break;
            case "cert_HRD": document.getElementById( "grading_HRD" ).value = 0; break;
        }
        
        DoSearch();
    }
    alert(document.getElementById( "grading_GIA" ).value);
}

function HideAdvancedFilters()
{
    document.getElementById("advancedFilterDiv").style.visibility = "hidden";
    document.getElementById("advancedFilterDiv").style.position = "absolute";
    document.getElementById("advancedFilterDiv").style.top = "-400px";
    document.getElementById("advancedFilterDiv").style.left = "-400px";
    document.getElementById("showHideFiltersLink").innerHTML = '<a href="javascript:ShowAdvancedFilters();" class="fff">Show Advanced Filters&nbsp;&raquo;</a>';
    document.getElementById("advancedFilters").value= "";
    
    // Move search results div up
    document.getElementById("diamondSearchContainer").style.top = "700px";
    
    // Move all lower request divs into place
    diamondSearch1.adjustAllRequestDivs( "up" );
}

function ShowAdvancedFilters()
{
    document.getElementById("advancedFilterDiv").style.position = "relative";
    document.getElementById("advancedFilterDiv").style.visibility = "visible";
    document.getElementById("advancedFilterDiv").style.width = "100%";
    document.getElementById("advancedFilterDiv").style.top = "0";
    document.getElementById("advancedFilterDiv").style.left = "0";
    document.getElementById("showHideFiltersLink").innerHTML = '<a href="javascript:HideAdvancedFilters();" class="fff">Hide Advanced Filters&nbsp;&raquo;</a>';
    document.getElementById("advancedFilters").value= "1";
    
    // Move search results div down
    document.getElementById("diamondSearchContainer").style.top = "790px";
    
    diamondSearch1.adjustAllRequestDivs( "down" );
}

function HideFullFilterWin()
{   
    // Clear sliders out and store current values
    ResetMinMaxValues();
    document.getElementById("sliderbar1").innerHTML = "";
    document.getElementById("sliderbar2").innerHTML = "";
    document.getElementById("sliderbar3").innerHTML = "";
    document.getElementById("sliderbar4").innerHTML = "";
    
    // Hide the maximized filter window
    document.getElementById("showFilterDiv").style.visibility = "hidden";
    document.getElementById("showHideAllFiltersLink").innerHTML = '<a href="javascript:ShowFullFilterWin();" class="fff">Show Basic Filters&nbsp;&raquo;</a>';
    HideAdvancedFilters();
    
    // Show the minimized version
    document.getElementById("showFilterDivMinimized").style.position = "relative";
    document.getElementById("showFilterDivMinimized").style.top = "0px";
    document.getElementById("showFilterDivMinimized").style.left = "0px";
    document.getElementById("showFilterDivMinimized").style.visibility = "visible";
    /*document.getElementById("hideFilterDiv").style.width = "692px";*/
    
    // Log hide filter status for form posts
    document.getElementById("hidePane").value = "1";
    
    // Move search results div up
    document.getElementById("diamondSearchContainer").style.top = "470px";
    document.getElementById("diamondSearchContainer").style.zIndex = "1";
    
    // Shrink the placeholder
    //document.getElementById( "diamondSearchPlaceholder" ).style.height = "200px";
}

function ShowFullFilterWin()
{
    // Hide the minimzed filter window
    document.getElementById("showFilterDivMinimized").style.visibility = "hidden";
    document.getElementById("showFilterDivMinimized").style.position = "absolute";
    document.getElementById("showFilterDivMinimized").style.top = "-400px";
    document.getElementById("showFilterDivMinimized").style.left = "-400px";
 
    // Enlarge the placeholder
    //document.getElementById( "diamondSearchPlaceholder" ).style.height = "465px";
    
    // Show the maximized filter window
    document.getElementById("showHideAllFiltersLink").innerHTML = '<a href="javascript:HideFullFilterWin();" class="fff">Hide Basic Filters&nbsp;&raquo;</a>';
    document.getElementById("showFilterDiv").style.visibility = "visible";
       
    // Log hide filter status for form posts
    document.getElementById("hidePane").value = "";
    
    // Move search results div down
    if( document.getElementById("advancedFilters").value == "1" ) {
        document.getElementById("diamondSearchContainer").style.top = "790px";
    }
    else {
        document.getElementById("diamondSearchContainer").style.top = "700px";
    }
    
    // Put sliders back
    StartSliderPreloadProcess();
}

function ResetMinMaxValues()
{
    document.getElementById("minprice").value = GetSliderValue( "sliderbar1", "a" );
    document.getElementById("maxprice").value = GetSliderValue( "sliderbar1", "b" );
    document.getElementById("mincarat").value = GetSliderValue( "sliderbar2", "a" );
    document.getElementById("maxcarat").value = GetSliderValue( "sliderbar2", "b" );
    document.getElementById("mincolor").value = GetSliderValue( "sliderbar3", "a" );
    document.getElementById("maxcolor").value = GetSliderValue( "sliderbar3", "b" );
    document.getElementById("minclarity").value = GetSliderValue( "sliderbar4", "a" );
    document.getElementById("maxclarity").value = GetSliderValue( "sliderbar4", "b" );
}

function DoExtrasOnMouseDown()
{
    HideSliderAnime();
    diamondSearch1.showLoadingScreen();
    diamondSearch1.clearSelectedDiamond();
}

function HideSliderAnime()
{
    if( document.getElementById( "sliderAnime" ) )
    {
        document.getElementById( "sliderAnime" ).style.visibility = "hidden";
    }        
}


function DoExtrasOnMouseUp()
{
    rbAbazias.saveSliderInfo();
    diamondSearch1.resetDiamondSearch();
}

function DoXmlSortBy( sortBy )
{
    if( document.getElementById( "currDivShown" ).value == "simple" )
    {
        DoSimpleSortBy( sortBy );
    }
    else
   {
        SubmitClickEventAsync( 'sort_' + sortBy ); 
        document.getElementById( "SortBy" ).value = sortBy;
        DoSearch();
    }        
}   

function SelectShapeOnLoad( currShape )
{
    ResetShapeImages();
    document.getElementById( "shapeDiv_" + currShape ).className = "shapeSelected";
    document.getElementById( "Shape" ).value = currShape;
}

function SelectShape( currShape )
{
    ResetShapeImages();
    document.getElementById( "shapeDiv_" + currShape ).className = "shapeSelected";
    SubmitClickEventAsync( 'selectshape_' + currShape );
    SetShapeValue( currShape );
}

function ResetShapeImages()
{
    var currShapes = new Array();
    currShapes[0] = "shapeDiv_B";
    currShapes[1] = "shapeDiv_PR";
    currShapes[2] = "shapeDiv_E";
    currShapes[3] = "shapeDiv_R";
    currShapes[4] = "shapeDiv_M";
    currShapes[5] = "shapeDiv_O";
    currShapes[6] = "shapeDiv_AS";
    currShapes[7] = "shapeDiv_H";
    currShapes[8] = "shapeDiv_T";
    currShapes[9] = "shapeDiv_C";
    currShapes[10] = "shapeDiv_P";
    for( i = 0; i < currShapes.length; i++ ) 
    {
        if( document.getElementById( currShapes[i] ) )
        {
            document.getElementById( currShapes[i] ).className = "shape";
            document.getElementById( currShapes[i] ).style.backgroundColor ="";
        }
    }
}

function StartDiamondSearch()
{
    diamondSearch1 = new diamondSearch("diamondSearch1", true);
    if( diamondSearch1.error == "" )  
    {
        diamondSearch1.updatePageNumber(document.getElementById( "selectPage" ).value);
        diamondSearch1.loadCurrentDiamondSearch();
    }
    else { alert( diamondSearch1.error ); } 
}

function StartJewelrySearch()
{
    jewelrySearch1 = new jewelrySearch("jewelrySearch1", true);
    if( jewelrySearch1.error == "" )  
    {
        jewelrySearch1.setCategory( document.getElementById( "filterstart" ).value );
        jewelrySearch1.updatePageNumber(document.getElementById( "jewelrySelectPage" ).value);
        jewelrySearch1.runSearch();
    }
    else { alert( jewelrySearch1.error ); } 
}

function AddRingToBasket()
{
    var ringId = document.getElementById( "engagementRingId" ).value;
    var diamondId = document.getElementById( "diamondId" ).value; 
    var sizeSelect = document.getElementById( "size" ); 
    var addToBasket = false;
    
    if( ringId != "" )
    {
        if( sizeSelect.value == "" ) {
        	alert( "Please select a size for the engagement ring you have selected." );
        	sizeSelect.focus();
	    }
	    // Check for diamond
	    else
	    {   	
        	if( diamondId == "" ) 
        	{
        	    var confirmMsg = "You have not chosen a diamond for your ring.\n\n"
        	                   + "Would you like to purchase this engagement ring\n"
        	                   + "without a diamond?";
        	                   
        	    if( confirm( confirmMsg ) ) {
        	        addToBasket = true;
        	    }
        	}
        	else {
        	    addToBasket = true;
        	}
	    }    	
    }
    else if( diamondId != "" )
    {
        var confirmMsg = "You have not chosen a setting for your diamond.\n\n"
                       + "Would you like to purchase this diamond\n"
                       + "without a setting?";
    
        if( confirm( confirmMsg ) ) {
            addToBasket = true;
        }   
    }
    else {
        alert( "You have not selected a diamond or a setting yet!" );
    }
    
    if( addToBasket ) 
    {
        document.getElementById("doBasket").value = "1";
        SubmitClickEvent( 'addtobasket' );    
        document.ringBuilderForm.submit();
    }
}

function AddIndividualDiamondToBasket( currDiamondId )
{

    document.getElementById( "diamondId" ).value = currDiamondId;
    document.getElementById("doBasket").value = "1";
    SubmitClickEvent( 'adddiamondtobasket' );    
    document.ringBuilderForm.submit();
}

function ShowDemo()
{
    SubmitClickEventAsync( 'showdemo' );
    var demo = '<div><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="671" height="511" ID="Captivate1"><param name="movie" value="/images/builder2_demo.swf"><param name="quality" value="high"><param name="menu" value="false"><param name="loop" value="0"><embed src="/images/builder2_demo.swf" width="671" height="511" loop="0" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" menu="false"></embed></object><br><br>';
    document.getElementById( "demoPlaceholder" ).innerHTML = demo;
}


function DoSimpleSortBy( sortBy )
{
    SubmitClickEventAsync( 'simplesort_' + sortBy ); 
    document.getElementById( "SortBy" ).value = sortBy;
    rbAbazias.sortBy = sortBy;
    simpleSearch1.showLoadingScreen();
    simpleSearch1.doSearch();
}

function ConvertBuilderToDiamondTab()
{
    SubmitClickEvent( 'showdiatab' ); 
    rbAbazias.currDivShown = "diamond";
    rbAbazias._saveRBData();
    location.href='/builder/builder.asp';
    return;
}    
