////////////////////////////////////////////////////////////////////////////////////
// POSITION HANDLERS
////////////////////////////////////////////////////////////////////////////////////
document.onmousemove = sliderOnMouseMove
document.onmouseup = sliderOnMouseUp
var browserType = navigator.userAgent.toLowerCase();
var IsIE = (browserType.indexOf("msie") != -1);
var IsGecko = (browserType.indexOf("gecko") != -1);
var IsFirefox = (browserType.indexOf("firefox") != -1);
var currVersion = parseInt(navigator.appVersion);
/*** IE 7 FIX **/
if( browserType.indexOf( "msie 7" ) != -1 ) {
    IsIE = false;
}

////////////////////////////////////////////////////////////////////////////////////
// POSITION VARS
////////////////////////////////////////////////////////////////////////////////////
// Store a value from 0 to 100 related to the slider's position
sldValue=0;

// Slider's head left and top
sldTop=0;
sldLeft=0;

// Drag action is on going if set to true
doDrag=false;

// Mouse cursor position relatively to the slider's head
sldMouseLeft=0;
sldMouseTop=0;

// Slider A left and top boundaries
var sliderAMinLeft=0;
var sliderAMaxLeft=100;

// Slider B left and top boundaries
var sliderBMinLeft=0;
var sliderBMaxLeft=100;

var currElementADefaultLeft = 0;
var currElementBDefaultLeft = 100;
var lastPos = null;

// Specify global elements
var currElementA = null
var currElementB = null
var currSlider = null;
var currAWidth = null
var currBWidth = null;
var currContainerName = null;

// Search button url
var searchButtonUrl = null
var searchingAnimUrl = null

var isRefine = false;
var resultsAreXml = false;

var aIsMaxed = false;
var bIsMaxed = false;

// Slider elements
var sliderArray = new Array();

function SetSliderGlobalImages( searchUrl, searchAnimUrl )
{
    searchButtonUrl = searchUrl;
    searchingAnimUrl = searchAnimUrl;
}

function InitializeSliderBar( sliderName, currWidth, currHeight, valueFormat, hasToolTips )
{
    //if( SliderExists( sliderName ) ) { return; }
    sliderArray[ sliderName ] = new Array();
    sliderArray[ sliderName ][ "currContainerName"] = sliderName;
    sliderArray[ sliderName ][ "width"] = currWidth;
    sliderArray[ sliderName ][ "height"] = currHeight;
    sliderArray[ sliderName ][ "startRange"] = null;
    sliderArray[ sliderName ][ "endRange"] = null;
    sliderArray[ sliderName ][ "hasToolTips"] = hasToolTips;
    sliderArray[ sliderName ][ "offset" ] = null;
    sliderArray[ sliderName ][ "valueFormat" ] = valueFormat;
    sliderArray[ sliderName ][ "leftPadDisplay" ] = "";
    sliderArray[ sliderName ][ "rightPadDisplay" ] = "";
    sliderArray[ sliderName ][ "topBgImage" ] = "";
    sliderArray[ sliderName ][ "bottomBgImage" ] = "";
    sliderArray[ sliderName ][ "hasAbsoluteSteps" ] = false;
    sliderArray[ sliderName ][ "notSelectedBgImageR" ] = "";
    sliderArray[ sliderName ][ "notSelectedBgImageL" ] = "";
    sliderArray[ sliderName ][ "leftSliderImage" ] = "";
    sliderArray[ sliderName ][ "rightSliderImage" ] = "";
    sliderArray[ sliderName ][ "listAbsoluteKeys" ] = "";
    sliderArray[ sliderName ][ "listAbsoluteVals" ] = "";
    sliderArray[ sliderName ][ "a_position"] = "";
    sliderArray[ sliderName ][ "b_position"] = "";
    sliderArray[ sliderName ][ "a_value"] = "";
    sliderArray[ sliderName ][ "b_value"] = "";  
    sliderArray[ sliderName ][ "tooltipTextClass"] = "text9px";
    sliderArray[ sliderName ][ "tooltipAlignA"] = "left";
    sliderArray[ sliderName ][ "tooltipAlignB"] = "right";
    sliderArray[ sliderName ][ "leftSliderImageW" ] = "";
    sliderArray[ sliderName ][ "rightSliderImageW" ] = "";
    sliderArray[ sliderName ][ "leftSliderImageH" ] = "";
    sliderArray[ sliderName ][ "rightSliderImageH" ] = "";
    sliderArray[ sliderName ][ "listAbsoluteDivInfo" ] = "";
}

function InitializeSliderBar_Range( sliderName, startRange, endRange )
{
    if( ! SliderExists( sliderName ) ) { return; }
    
    sliderArray[ sliderName ][ "startRange"] = startRange;
    sliderArray[ sliderName ][ "endRange"] = endRange;
}

function InitializeSliderBar_DisplayPad( sliderName, leftPad, rightPad )
{
    sliderArray[ sliderName ][ "leftPadDisplay"] = leftPad;
    sliderArray[ sliderName ][ "rightPadDisplay"] = rightPad;
}
    
function InitializeSliderBar_TopBgImage( sliderName, imageUrl )
{
    sliderArray[ sliderName ][ "topBgImage"] = imageUrl;
}

function InitializeSliderBar_BottomBgImage( sliderName, imageUrl )
{
    sliderArray[ sliderName ][ "bottomBgImage" ] = imageUrl;
}

function InitializeSliderBar_NotSelectedBgImageR( sliderName, imageUrl )
{
    sliderArray[ sliderName ][ "notSelectedBgImageR"] = imageUrl;
}

function InitializeSliderBar_NotSelectedBgImageL( sliderName, imageUrl )
{
    sliderArray[ sliderName ][ "notSelectedBgImageL"] = imageUrl;
}

function InitializeSliderBar_LeftSliderImage( sliderName, imageUrl, w, h )
{
    sliderArray[ sliderName ][ "leftSliderImage" ] = imageUrl;
    sliderArray[ sliderName ][ "leftSliderImageW" ] = w;
    sliderArray[ sliderName ][ "leftSliderImageH" ] = h;
}

function InitializeSliderBar_RightSliderImage( sliderName, imageUrl, w, h )
{
    sliderArray[ sliderName ][ "rightSliderImage" ] = imageUrl;
    sliderArray[ sliderName ][ "rightSliderImageW" ] = w;
    sliderArray[ sliderName ][ "rightSliderImageH" ] = h;
}    
function InitializeSliderBar_DrawContainer( sliderName )
{
    BuildSliderBarContainer( sliderName, sliderArray[ sliderName ][ "width"], sliderArray[ sliderName ][ "height"] );
}

function InitializeSliderBar_SetToolTipTextClass( sliderName, textClass )
{
    sliderArray[ sliderName ][ "tooltipTextClass" ] = textClass;
}

function InitializeSliderBar_SetSearchButton( sliderName, textClass )
{
    sliderArray[ sliderName ][ "tooltipTextClass" ] = textClass;
}

function InitializeSliderBar_SetAbsoluteSteps( sliderName, stepString )
{
    sliderArray[ sliderName ][ "hasAbsoluteSteps" ] = true;
    absoluteArray = stepString.split( "," );
    
    keyArray = new Array(absoluteArray.length);
    valArray = new Array(absoluteArray.length);
    for( var i = 0; i < absoluteArray.length; i++ )
    {
        tempArray = absoluteArray[i].split( ":" );
        keyArray[ i ] = tempArray[0];
        valArray[ i ] = tempArray[1];
    }

            
    sliderArray[ sliderName ][ "listAbsoluteKeys" ] = keyArray.join( "," );
    sliderArray[ sliderName ][ "listAbsoluteVals" ] = valArray.join( "," );
}

function InitializeSliderBar_SetAbsoluteStepDivInfo( sliderName, infoString )
{
    sliderArray[ sliderName ][ "listAbsoluteDivInfo" ] = infoString;
}    

function InitializeSliderBar_SetIsRefine()
{
    //isRefine = true;
}

function InitializeSliderBar_SetResultsAreXml()
{
    resultsAreXml = true;
}    

function SliderExists( sliderName )
{
    for (var i in sliderArray)
    { 
        if( i == sliderName ) { return( true ); }
    }
    
    return( false );
}    

function GetSliderValue( sliderName, sliderTab )
{
    if( sliderArray[ sliderName ] )
    {
        if( sliderTab == "a" )
        {
            return( sliderArray[ sliderName ][ "a_value" ] );
        }
        else
        {
            return( sliderArray[ sliderName ][ "b_value" ] );
        }
    }        
}

function GetSliderPosValue( sliderName, sliderTab )
{
    if( sliderArray[ sliderName ] )
    {
        if( sliderTab == "a" )
        {
            return( sliderArray[ sliderName ][ "a_position" ] );
        }
        else
        {
            return( sliderArray[ sliderName ][ "b_position" ] );
        }
    }        
}

function GetSliderAbsoluteKey( sliderName, currVal, currTab )
{
    var currTabCheck = "";
    
    if( currTab == "a" ) { currTabCheck = "a_position"; currMaxLeft = sliderAMaxLeft;}
    else { currTabCheck = "b_position" ; currMaxLeft = sliderBMaxLeft; }
    
    absoluteArrayKeys = sliderArray[ sliderName ][ "listAbsoluteKeys" ].split( "," );
    absoluteArrayVals = sliderArray[ sliderName ][ "listAbsoluteVals" ].split( "," );
    
     
    for( var i = 0; i < absoluteArrayVals.length; i++ )
    {
        if( parseInt( absoluteArrayVals[ i ] ) == parseInt( sliderArray[ sliderName ][ currTabCheck ] ) ) {
            return( absoluteArrayKeys[ i ] );
        }
    }
    
    // Check for singleValue
    if( currTab == "a" )
    {
        for( var i = 0; i < absoluteArrayVals.length; i++ )
        {
            if( parseInt( absoluteArrayVals[ i ] ) > parseInt( sliderArray[ sliderName ][ currTabCheck ] ) ) {
                return( absoluteArrayKeys[ i ] );
            }
        }            
    }
    else
    {
        for( var i = absoluteArrayVals.length - 1; i >= 0; i-- )
        {
            if( parseInt( absoluteArrayVals[ i ] ) < parseInt( sliderArray[ sliderName ][ currTabCheck ] ) ) {
                return( absoluteArrayKeys[ i ] );
            }
        }
    }   
    
    // Check for max value
    if( parseInt( sliderArray[ sliderName ][ currTabCheck ] ) > absoluteArrayVals[ absoluteArrayVals.length - 2 ] )
    {
        currVal = absoluteArrayKeys[ absoluteArrayKeys.length - 1 ];
        return( currVal );
    }     
}

function GetSliderAbsoluteValue( sliderName, currVal, currTab )
{
    var absoluteArrayKeys = sliderArray[ sliderName ][ "listAbsoluteKeys" ].split( "," );
    var absoluteArrayVals = sliderArray[ sliderName ][ "listAbsoluteVals" ].split( "," );

    var containerElement = document.getElementById( sliderName + "_container" );     
    for( var locali = 0; locali < absoluteArrayKeys.length; locali++ )
    {
        if( absoluteArrayKeys[locali] == currVal ) 
        {
            return(  parseInt( absoluteArrayVals[locali] ) + parseInt( sliderArray[ sliderName ][ "offset" ] ) );
        }   
    }
    
    return( "not found: " + currVal );
}

function GetMinSliderAbsoluteKey( sliderName )
{
    var absoluteArray = sliderArray[ sliderName ][ "listAbsoluteKeys" ].split( "," );
    return( absoluteArray[0] );
}

function GetMaxSliderAbsoluteKey( sliderName )
{
    var absoluteArray = sliderArray[ sliderName ][ "listAbsoluteKeys" ].split( "," );
    return( absoluteArray[absoluteArray.length-1] );
}

function GetSliderRangeValue( sliderName, currVal, currTab )
{
    var absoluteArrayKeys = sliderArray[ sliderName ][ "listAbsoluteKeys" ].split( "," );
    var absoluteArrayVals = sliderArray[ sliderName ][ "listAbsoluteVals" ].split( "," );

    var containerElement = document.getElementById( sliderName + "_container" );     
    for( var i = 0; i < absoluteArrayKeys.length - 1; i++ )
    {
        if( absoluteArrayKeys[i] == currVal ) {
            return(  parseInt( absoluteArrayVals[ i ] ) + parseInt( sliderArray[ sliderName ][ "offset" ] ) );
        }   
    }
    
    return( currVal );
}

////////////////////////////////////////////////////////////////////////////////////
// EVENT HANDLERS
////////////////////////////////////////////////////////////////////////////////////
function sliderOnMouseDown( e, localElement )
{
    // Get event object for IE
    if (!e) {e = window.event}
    	
	// Drag action begins
	doDrag=true
	
	currContainerName = localElement.id;
    currContainerName = currContainerName.replace( "_a", "" );
    currContainerName = currContainerName.replace( "_b", "" );
	containerElement = document.getElementById( currContainerName + "_container" );
    
	// Get elements for this container
	currElementA=document.getElementById( currContainerName + "_a" );
	currElementB=document.getElementById( currContainerName + "_b" );
	
	currALeft = getElementLeft( currElementA );
    currAWidth = getElementWidth( currElementA )
	currBLeft = getElementLeft( currElementB );
    currBWidth = getElementWidth( currElementB );
    
	if( localElement.id.indexOf( "_a" ) > 0 )
	{
	    currSlider = "a";
	    
	    if( sliderArray[ currContainerName ][ "listAbsoluteDivInfo" ] != "" )
        {              
	        ShowDivHelp( currContainerName, "a" );
	    }
	    
	    // Get slider's left boundary
	    sliderAMinLeft = getElementLeft( containerElement );
	    
	    // Get slider's right boundry
	    sliderAMaxLeft = currBLeft - currBWidth;
	    
	    // Get slider's head position
	    sldLeft=getElementLeft( currElementA );
	    sldTop=getElementTop( currElementA );
        
	    // Get mouse cursor position relatively to the slider's head
	    sldMouseLeft=e.clientX-sldLeft;
	    sldMouseTop=e.clientY-sldTop;
	}
	else 
	{
	    currSlider = "b";
        
        if( sliderArray[ currContainerName ][ "listAbsoluteDivInfo" ] != "" )
        {              
	        ShowDivHelp( currContainerName, "b" );
	    }
        
	    // Get slider's left boundary
        sliderBMinLeft = parseInt( currALeft ) + parseInt( currAWidth );
        
        // Get slider's right boundary
        sliderBMaxLeft = getElementLeft( containerElement ) + getElementWidth( containerElement ) - getElementWidth( currElementB );
	    
	    // Get slider's head position
	    sldLeft=getElementLeft( currElementB );
	    sldTop=getElementTop( currElementB )
        
	    // Get mouse cursor position relatively to the slider's head
	    sldMouseLeft=e.clientX-sldLeft
	    sldMouseTop=e.clientY-sldTop
	}
	
	DoExtrasOnMouseDown();
}

function ShowDivHelp( sliderName, currSlider )
{
    if( ! document.getElementById( "helpDisplayDiv" ) ) { return; }
    
	if( sliderArray[ sliderName ][ "listAbsoluteDivInfo" ] != "" )
    {              
        var absoluteStepPosList = sliderArray[ sliderName ][ "listAbsoluteKeys" ];
        var absoluteStepPosArray = absoluteStepPosList.split( "," );
        var absoluteStepMoreInfoList = sliderArray[ sliderName ][ "listAbsoluteDivInfo" ];
        var absoluteStepInfoArray = absoluteStepMoreInfoList.split( "," );
        
        if( currSlider == "a" ) {
            currValue = sliderArray[ sliderName ][ "a_value" ];
        }
        else {
            currValue = sliderArray[ sliderName ][ "b_value" ];
        }
                
        if( absoluteStepInfoArray.length == absoluteStepPosArray.length )
        {
            for( var i = 0; i < absoluteStepPosArray.length; i++ ) 
            {   
                if( absoluteStepPosArray[ i ] == currValue )
                {    
                    document.getElementById( "helpDisplayDiv" ).style.backgroundImage = "url('" + absoluteStepInfoArray[ i ] + "')";   
                    document.getElementById( "helpDisplayDiv" ).style.left = ( getElementLeft( document.getElementById( sliderName + "_container" ) ) + 150 ) + "px";
                    document.getElementById( "helpDisplayDiv" ).style.top = ( getElementTop( document.getElementById( sliderName + "_container" ) ) - document.getElementById( "helpDisplayDiv" ).offsetHeight - 4 ) + "px";
                    document.getElementById( "helpDisplayDiv" ).style.visibility = "visible";
                }
            }
        }
    }
}
    
function sliderOnMouseMove(e)
{
    // If drag action is on going...
    if (doDrag)
    {	
		clearSelection();
        if( ! resultsAreXml )
        {
            if( document.getElementById( "numResults" ).innerHTML.indexOf( searchingAnimUrl ) == -1 ) 
            {
                document.getElementById( "numResults" ).innerHTML = "<img src=\"" + searchingAnimUrl + "\">";
                if( document.getElementById( "numResults2" ) ) { document.getElementById( "numResults2" ).innerHTML = "<img src=\"" + searchingAnimUrl + "\">"; }
                if( searchButtonUrl.search( ".swf" ) == -1 ) {
                	document.getElementById( "viewResults" ).innerHTML = '&nbsp;';
                	if( document.getElementById( "viewResults2" ) ) { document.getElementById( "viewResults2" ).innerHTML = '&nbsp;'; }
                }
                else {
                	document.getElementById( "viewResults" ).style.visibility = "hidden";
                	if( document.getElementById( "viewResults2" ) ) { document.getElementById( "viewResults" ).style.visibility = "hidden"; }
                }
            }
        }            
                    
        currContainerName = currElementA.id;
        currContainerName = currContainerName.replace( "_a", "" );
        currContainerName = currContainerName.replace( "_b", "" );
        containerElement = document.getElementById( currContainerName + "_container" );
        currElementA = document.getElementById( currContainerName + "_a" );
        currElementB = document.getElementById( currContainerName + "_b" );
        
        // Get event object for IE
        if (!e) {e = window.event}
    
    	// Get slider's head new position
    	newPos = e.clientX-sldMouseLeft;
    	
    	if( currSlider == "a" )
    	{
    	    // Check slider's container boundaries
    	    if(newPos<=sliderAMinLeft){newPos=sliderAMinLeft}
    	    if(newPos>=sliderAMaxLeft) {
    	        newPos=sliderAMaxLeft
    	    }
    	    
    	    // SET RANGE
    	    if( isRefine ) 
    	    { 
    	        var startRange = sliderArray[ currContainerName ][ "startRange" ];
    	        var endRange = sliderArray[ currContainerName ][ "endRange" ];
    	        var stepVal = ( endRange - startRange )/( containerElement.offsetWidth - ( getElementWidth( currElementA ) + getElementWidth( currElementB ) ) );
    	        var currOffset = newPos - getElementLeft( containerElement );
    	        var sldValue = startRange + ( currOffset * stepVal );       
    	        var sldValueFormatted = FormatValue( sliderArray[ currContainerName ], sldValue );
    	    }
    	    else 
            {
    	        var startRange = sliderArray[ currContainerName ][ "startRange" ];
    	        var endRange = sliderArray[ currContainerName ][ "endRange" ];
    	        var stepVal = ( endRange - startRange )/( containerElement.offsetWidth - ( getElementWidth( currElementA ) + getElementWidth( currElementB ) ) );
    	        var currOffset = newPos - getElementLeft( containerElement );
    	        var totalRange = getElementWidth( containerElement ) - ( getElementWidth( currElementA ) + getElementWidth( currElementB ) );
    	        var sldValue = startRange + ( currOffset * ( stepVal * ( currOffset/totalRange ) ) );
    	        var sldValueFormatted = FormatValue( sliderArray[ currContainerName ], sldValue );
    	    }
    	    
    	    if( sliderArray[ currContainerName ][ "hasToolTips" ] ) 
    	    {
    	        var currDisplay = FormatDisplay( sliderArray[ currContainerName ], sldValue, newPos );
    	        if( sliderArray[ currContainerName ][ "valueFormat" ].search( "currency" ) == 0 ) {
    	            currDisplay = "$" + currDisplay;
    	        }
    	        document.getElementById( currContainerName + "_a_display").innerHTML = currDisplay;
    	    }
    	    
    	    if( sliderArray[ currContainerName ][ "hasAbsoluteSteps" ] ) {
    	        sliderArray[ currContainerName ][ "a_value"] = GetSliderAbsoluteKey( currContainerName, newPos, "a" );
    	        //document.getElementById( "testing").innerHTML = "testing: " + sliderArray[ currContainerName ][ "a_value"];
    	    }
    	    else {
    	        if( sldValue <= sliderArray[ currContainerName ][ "startRange" ] ) 
    	        {
    	            if( currContainerName == "sliderbar1" ) {
    	                document.getElementById( "isMinPrice" ).value = sldValueFormatted;
    	            }
    	            else if( currContainerName == "sliderbar2" ) {
    	                document.getElementById( "isMinCarat" ).value = sldValueFormatted;
    	            }
    	        }
    	        else {
    	            if( currContainerName == "sliderbar1" ) {
    	                document.getElementById( "isMinPrice" ).value = "0";
    	            }
    	            else if( currContainerName == "sliderbar2" ) {
    	                document.getElementById( "isMinCarat" ).value = "0";
    	            }
    	        }
    	        
    	        sliderArray[ currContainerName ][ "a_value"] = sldValueFormatted;
    	    }
    	    
    	    // Set slider's head new position
    	    setPosition(newPos,currContainerName,currSlider);
    	}
    	else
    	{
    	    // Check slider's container boundaries
    	    if(newPos<=sliderBMinLeft)
    	    {
    	        newPos=sliderBMinLeft;
    	    }
    	    
    	    if(newPos>=sliderBMaxLeft) 
    	    {
    	        newPos=sliderBMaxLeft;
    	    }
    	    
    	    // SET RANGE
    	    if( isRefine ) {
    	        var startRange = sliderArray[ currContainerName ][ "startRange" ];
    	        var endRange = sliderArray[ currContainerName ][ "endRange" ];
    	        var stepVal = ( endRange - startRange )/( containerElement.offsetWidth - ( getElementWidth( currElementA ) + getElementWidth( currElementB ) ) );
    	        var currOffset = newPos - containerElement.offsetLeft - getElementWidth( currElementB );
    	        var sldValue = ( startRange + ( currOffset * stepVal ) );
                var sldValueFormatted = FormatValue( sliderArray[ currContainerName ], sldValue );
            }
            else
            {
        	    var startRange = sliderArray[ currContainerName ][ "startRange" ];
        	    var endRange = sliderArray[ currContainerName ][ "endRange" ];
        	    var stepVal = ( endRange - startRange )/( containerElement.offsetWidth - ( getElementWidth( currElementA ) + getElementWidth( currElementB ) ) );
        	    var currOffset = newPos - containerElement.offsetLeft - getElementWidth( currElementB );
        	    var totalRange = getElementWidth( containerElement ) - ( getElementWidth( currElementA ) + getElementWidth( currElementB ) );
        	    var sldValue = startRange + ( currOffset * ( stepVal * ( currOffset/totalRange ) ) );
                var sldValueFormatted = FormatValue( sliderArray[ currContainerName ], sldValue );
            }
    	    
    	    if( sliderArray[ currContainerName ][ "hasToolTips" ] ) 
    	    {
    	        var currDisplay = FormatDisplay( sliderArray[ currContainerName ], sldValue );
    	        if( sliderArray[ currContainerName ][ "valueFormat" ].search( "currency" ) == 0 ) {
    	            currDisplay = "$" + currDisplay;
    	        }
    	        document.getElementById( currContainerName + "_b_display").innerHTML = currDisplay;
    	    }
    	    
    	     if( sliderArray[ currContainerName ][ "hasAbsoluteSteps" ] ) {
    	        sliderArray[ currContainerName ][ "b_value"] = GetSliderAbsoluteKey( currContainerName, newPos, "b" );
    	    }
    	    else {
    	        if( sldValue >= sliderArray[ currContainerName ][ "endRange" ] ) {
    	            if( currContainerName == "sliderbar1" ) {
    	                document.getElementById( "isMaxPrice" ).value = sldValueFormatted;
    	            }
    	            else if( currContainerName == "sliderbar2" ) {
    	                document.getElementById( "isMaxCarat" ).value = sldValueFormatted;
    	            }
    	        }
    	        else {
    	            if( currContainerName == "sliderbar1" ) {
    	                document.getElementById( "isMaxPrice" ).value = "0";
    	            }
    	            else if( currContainerName == "sliderbar2" ) {
    	                document.getElementById( "isMaxCarat" ).value = "0";
    	            }
    	        }
    	        
    	        sliderArray[ currContainerName ][ "b_value"] = sldValueFormatted;
    	    }
    	    
    	    // Set slider's head new position
    	    setPosition(newPos,currContainerName,currSlider);
    	}       
    	
    	// Stop event propagation
    	return false
    }
}

// Generic mouse up handler
function sliderOnMouseUp(e,localElement)
{   
    if( doDrag )
    {
        // Drag action stops
	    doDrag=false
		clearSelection();
	    currElementA = null
        currElementB = null
        currSlider = null;
        currAWidth = null
        currBWidth = null;
        currContainerName = null;
        HideDivHelp();  
        if( ! resultsAreXml ) { XMLGetTotal(); }
        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" );
        DoExtrasOnMouseUp();
    }
}

function HideDivHelp()
{
    if( document.getElementById( "helpDisplayDiv" ) ) {
        document.getElementById( "helpDisplayDiv" ).style.visibility = "hidden";
    }
}

function DoExtrasOnMouseDown() {
	return;
}

function DoExtrasOnMouseUp() {
	return;
}

////////////////////////////////////////////////////////////////////////////////////
// POSITION FUNCTIONS
////////////////////////////////////////////////////////////////////////////////////
function setLeft(oLeft,currSlider,currContainerName) 
{
	var otherElementDisplay;
	var otherElementWidth;
	var otherElementOffset;
	var displayElement = null;
	var displayElementWidth = null;
	var containerElement = document.getElementById( currContainerName + "_container" )
	var currElement = document.getElementById( currContainerName + "_" + currSlider )
	var containerElementOffset = getElementLeft( containerElement );
	var containerElementWidth = getElementWidth( containerElement );
	var currElementWidth = getElementWidth( currElement );
	var currElementOffset = getElementLeft( currElement );

    if( currSlider == "a" ) {
        otherElement = document.getElementById( currContainerName + "_b" );
        otherElementWidth = getElementWidth( otherElement );
        otherElementOffset = getElementLeft( otherElement );
    }
    else {
        otherElement = document.getElementById( currContainerName + "_a" );
        otherElementWidth = getElementWidth( otherElement );
        otherElementOffset = getElementLeft( otherElement );
    }
        	
	if( sliderArray[ currContainerName ][ "hasToolTips" ] ) 
	{
	    PositionToolTips( currContainerName, currSlider, oLeft );
    }
    
    if( sliderArray[ currContainerName ][ "hasAbsoluteSteps" ] && sliderArray[ currContainerName ][ "listAbsoluteVals" ] )
    {   
        // Calculate step range
        var absoluteStepPosList = sliderArray[ currContainerName ][ "listAbsoluteVals" ];
        var absoluteStepPosArray = absoluteStepPosList.split( "," );
        var absoluteStepMoreInfoList = "";
        if( sliderArray[ currContainerName ][ "listAbsoluteDivInfo" ] != "" )
        {
            var absoluteStepMoreInfoList = sliderArray[ currContainerName ][ "listAbsoluteDivInfo" ];
            var absoluteStepInfoArray = absoluteStepMoreInfoList.split( "," );
            if( absoluteStepInfoArray.length != absoluteStepPosArray.length )
            {
                absoluteStepMoreInfoList = "";
            }
        }
        
        // Set the ACTUAL position values based on container element here
        for( var i = 0; i < absoluteStepPosArray.length; i++ ) {
            absoluteStepPosArray[ i ] = Math.round( parseFloat( containerElementOffset ) + parseFloat( absoluteStepPosArray[ i ] ) );
        }
        
        
        if( lastPos < oLeft ) // MOVE FROM LEFT TO RIGHT
        {   
            if( currSlider == "a" ) 
            {     
                for( var i = 0; i < absoluteStepPosArray.length; i++ )
                {
                    
                    if( absoluteStepPosArray[ i ] >= sliderAMaxLeft )
                    {
                        absoluteStepPosArray[ i ] = sliderAMaxLeft;
                    }
                    
                    if( otherElementOffset == absoluteStepPosArray[ i ] )
                    {
                        absoluteStepPosArray[ i ] -= ( currElementWidth );
                    }
                }               
                
                for( i = 0; i < absoluteStepPosArray.length; i++ )
                {
                    if( oLeft >= absoluteStepPosArray[ i + 1 ] )
                    {
                        // MOVE TO NEXT STEP
                        var newPosition = absoluteStepPosArray[ i + 1 ];
    		            currElement.style.left = newPosition + "px";
    		            sliderArray[ currContainerName ][ "a_position"] = newPosition - getElementLeft( containerElement );
    		            sliderArray[ currContainerName ][ "a_value"] = GetSliderAbsoluteKey( currContainerName, newPosition, "a" );
    		            
    		            if( absoluteStepMoreInfoList != "" ) {
    		                ShowDivHelp( currContainerName, currSlider );
                        }
                    }
                }
                
                if( newPosition > 0 && sliderArray[ currContainerName ][ "notSelectedBgImageL"] != "" ) 
                {
                    document.getElementById( currContainerName + "_a_bg2" ).style.width = ( newPosition - getElementLeft( containerElement ) +( getElementWidth( currElementA )/2 ) ) + "px";
                    document.getElementById( currContainerName + "_a_bg2" ).style.height = sliderArray[ currContainerName ][ "height"] + "px";
                    document.getElementById( currContainerName + "_a_bg2" ).style.left = getElementLeft( containerElement ) + "px";
                    document.getElementById( currContainerName + "_a_bg2" ).style.top = getElementTop( containerElement ) + "px";
                }
            }
            else
            { 
                for( var i = 0; i < absoluteStepPosArray.length; i++ )
                {   
                    if( absoluteStepPosArray[ i ] >= sliderBMaxLeft )
                    {
                        absoluteStepPosArray[ i ] = sliderBMaxLeft;
                    }
                    
                    if( otherElementOffset == absoluteStepPosArray[ i ] ){
                        absoluteStepPosArray[ i ] += ( currElementWidth );
                    }
                }
                
                var newPosition = 0;
                for( var i = 0; i < absoluteStepPosArray.length; i++ )
                {
                    if( oLeft >= absoluteStepPosArray[ i + 1 ] )
                    {
                        // MOVE TO NEXT STEP
                        newPosition = absoluteStepPosArray[ i + 1 ];
    		            currElement.style.left = newPosition + "px";
    		            sliderArray[ currContainerName ][ "b_position"] = newPosition - getElementLeft( containerElement );
    		            sliderArray[ currContainerName ][ "b_value"] = GetSliderAbsoluteKey( currContainerName, newPosition, "b" );
    		            if( absoluteStepMoreInfoList != "" ) {
                            ShowDivHelp( currContainerName, currSlider );
                        }
                    }
                }
                    
                if( sliderArray[ currContainerName ][ "notSelectedBgImageR"] ) 
                {
                    var totalRange = getElementWidth( containerElement ) - getElementWidth( otherElement );
                    var newWidth = ( totalRange - ( newPosition - getElementLeft( containerElement ) ) + ( getElementWidth( currElementA )/2 ) );
                    if( ! newWidth ) { newWidth = 0; }
                    if( newWidth < sliderBMaxLeft ) {
                    	document.getElementById( currContainerName + "_b_bg2" ).style.width = newWidth + "px";
                    	document.getElementById( currContainerName + "_b_bg2" ).style.height = sliderArray[ currContainerName ][ "height"] + "px";                    
                    	document.getElementById( currContainerName + "_b_bg2" ).style.left = ( getElementLeft( currElement ) + getElementWidth( currElement ) - ( getElementWidth( currElementA )/2 ) ) + "px";
                    	document.getElementById( currContainerName + "_b_bg2" ).style.top = getElementTop( containerElement ) + "px";
                    }
                }
            }
        }
        else 
        {
            if( currSlider == "a" ) 
            {   
                for( var i = 0; i < absoluteStepPosArray.length; i++ )
                {   
                    if( absoluteStepPosArray[ i ] <= sliderAMinLeft )
                    {
                        absoluteStepPosArray[ i ] = sliderAMinLeft;
                    }
                    
                    if( otherElementOffset == absoluteStepPosArray[ i ] && oLeft >= sliderAMinLeft )
                    {
                        absoluteStepPosArray[ i ] -= currElementWidth;
                    } 
                }
                
                for( i = absoluteStepPosArray.length - 1; i > 0; i-- )
                {
                    if( oLeft <= absoluteStepPosArray[ i - 1 ] ) {
                        newPosition = absoluteStepPosArray[ i - 1 ];
                        currElement.style.left = absoluteStepPosArray[ i - 1 ] + "px";
                        
                        sliderArray[ currContainerName ][ "a_position"] = newPosition - getElementLeft( containerElement );
                        sliderArray[ currContainerName ][ "a_value"] = GetSliderAbsoluteKey( currContainerName, newPosition, "a" );
                        
                        if( absoluteStepMoreInfoList != "" ) {
                            ShowDivHelp( currContainerName, currSlider );
                        }
                        
                    }
                }
                
                if( sliderArray[ currContainerName ][ "notSelectedBgImageL"] != "" ) 
                {
                	if( newPosition )
                	{
                    	document.getElementById( currContainerName + "_a_bg2" ).style.width = ( newPosition - getElementLeft( containerElement ) + ( getElementWidth( currElementB )/2 ) ) + "px";
                    	document.getElementById( currContainerName + "_a_bg2" ).style.height = sliderArray[ currContainerName ][ "height"] + "px";
                    	document.getElementById( currContainerName + "_a_bg2" ).style.left = getElementLeft( containerElement ) + "px";
                    	document.getElementById( currContainerName + "_a_bg2" ).style.top = getElementTop( containerElement ) + "px";
                    }
                }
            }
            else if( currSlider == "b" )
            {   
                
                 for( var i = 0; i < absoluteStepPosArray.length; i++ )
                {      
                    if( absoluteStepPosArray[ i ] <= sliderBMinLeft )
                    {
                        absoluteStepPosArray[ i ] = sliderBMinLeft;
                    }
                    
                    
                    if( otherElementOffset == absoluteStepPosArray[ i ] && oLeft >= sliderBMinLeft )
                    {
                        absoluteStepPosArray[ i ] += currElementWidth;
                    } 
                }
                
                var newPosition = 0;
                for( i = absoluteStepPosArray.length - 1; i > 0; i-- )
                {
                    if( oLeft <= absoluteStepPosArray[ i - 1 ] ) 
                    {
                        newPosition = absoluteStepPosArray[ i - 1 ];
                        currElement.style.left = newPosition + "px";
                        
                        sliderArray[ currContainerName ][ "b_position"] = newPosition - getElementLeft( containerElement );
                        sliderArray[ currContainerName ][ "b_value"] = GetSliderAbsoluteKey( currContainerName, newPosition, "b" );
                        if( absoluteStepMoreInfoList != "" ) {
                            ShowDivHelp( currContainerName, currSlider );
                        }
                    }
                }
                
                if( sliderArray[ currContainerName ][ "notSelectedBgImageR"] != "" ) 
                {
                    var totalRange = getElementWidth( containerElement ) - getElementWidth( otherElement );
                    var newWidth = ( totalRange - ( newPosition - getElementLeft( containerElement ) ) ) + ( getElementWidth( currElementB )/2 );
                    if( ! newWidth ) { newWidth = 0; }
                	if( newWidth < sliderBMaxLeft ) 
                	{
                    	document.getElementById( currContainerName + "_b_bg2" ).style.width = newWidth + "px";
                    	document.getElementById( currContainerName + "_b_bg2" ).style.height = sliderArray[ currContainerName ][ "height"] + "px";                    
                    	document.getElementById( currContainerName + "_b_bg2" ).style.left = getElementLeft( currElement ) + getElementWidth( currElement ) - + ( getElementWidth( currElementB )/2 ) + "px";
                    	document.getElementById( currContainerName + "_b_bg2" ).style.top = getElementTop( containerElement ) + "px";
                    }
                }
            }
        }
    }
    else
    {   
        currElement.style.left = oLeft + "px";
        if( currSlider == "a" ) 
        {
            sliderArray[ currContainerName ][ "a_position"] = Math.round( parseFloat( oLeft ) - parseFloat( containerElementOffset ), 2 );
            // Draw div here for changing background
            document.getElementById( currContainerName + "_a_bg2" ).style.width = sliderArray[ currContainerName ][ "a_position"]  + ( getElementWidth( currElementA )/2 ) + "px";
            document.getElementById( currContainerName + "_a_bg2" ).style.height = sliderArray[ currContainerName ][ "height"] + "px";
            document.getElementById( currContainerName + "_a_bg2" ).style.left = getElementLeft( containerElement ) + "px";
            document.getElementById( currContainerName + "_a_bg2" ).style.top = getElementTop( containerElement ) + "px";
        }
        else {
            var totalRange = getElementWidth( containerElement ) - ( getElementWidth( currElementA ) + getElementWidth( currElementB ) );
            sliderArray[ currContainerName ][ "b_position"] = parseInt( oLeft ) - parseInt( containerElementOffset ) - currElementWidth;
            document.getElementById( currContainerName + "_b_bg2" ).style.width = ( totalRange - sliderArray[ currContainerName ][ "b_position"] ) + ( ( getElementWidth( currElementB )/2 )  ) + "px";
            document.getElementById( currContainerName + "_b_bg2" ).style.height = sliderArray[ currContainerName ][ "height"] + "px";
            document.getElementById( currContainerName + "_b_bg2" ).style.left = getElementLeft( currElementB ) + ( getElementWidth( currElementB )/2 ) + "px";
            document.getElementById( currContainerName + "_b_bg2" ).style.top = getElementTop( containerElement ) + "px";
        }
    }
    
    lastPos = oLeft;
}
 
function setTop(oTop) {
	currElementA.style.top = oTop + "px"
}

function setPosition(oLeft,currContainerName,currSlider) {
    currElement = document.getElementById( currContainerName + "_" + currSlider );
	setLeft(oLeft,currSlider,currContainerName);
	if( currContainerName == "sliderbar3" ) { SetLabelSelected( "sliderbar3" ); }
	if( currContainerName == "sliderbar4" ) { SetLabelSelected( "sliderbar4" ); }
}

function PositionToolTips( currContainerName, currSlider, currSliderPos )
{
    var containerElement = document.getElementById( currContainerName + "_container" )
	var currElement = document.getElementById( currContainerName + "_" + currSlider )
	var containerElementOffset = getElementLeft( containerElement );
	var containerElementWidth = getElementWidth( containerElement );
	var currElementWidth = getElementWidth( currElement );
	var currElementOffset = getElementLeft( currElement );
	var displayElement;
	var displayElementWidth;
	var dispalyElementPos;
	var displayElementOffset;
	var oDisplayElement;
    var oDisplayElementPos;
    var oDisplayElementWidth;
    var maxPos;
    var minPos;
    var displayGap = 4;

    if( currSlider == "a" ) 
    {   
        otherElement = document.getElementById( currContainerName + "_b" );
        otherElementWidth = getElementWidth( otherElement );
        otherElementOffset = getElementLeft( otherElement );
        displayElement = document.getElementById( currContainerName + "_a_display" );
        displayElementWidth = getElementWidth( displayElement );
        displayElementPos = currSliderPos + getElementWidth( displayElement );
        displayElementOffset = getElementLeft( displayElement );
        oDisplayElement = document.getElementById( currContainerName + "_b_display" );
        oDisplayElementOffset = getElementLeft( oDisplayElement );
        oDisplayElementWidth = getElementWidth( oDisplayElement );
        
        if( sliderArray[ currContainerName ][ "tooltipAlignB" ] == "right" ) {
            oDisplayElementOrigPos = otherElementOffset - oDisplayElementWidth + otherElementWidth;
        }
        else 
        {
            oDisplayElementOrigPos = otherElementOffset + oDisplayElementWidth;
        }
            
        maxPos = oDisplayElementOffset - displayElementWidth - 4;
        minPos = sliderAMinLeft;
        
        if( currSliderPos < maxPos ) 
        {
            if( oDisplayElementOffset > oDisplayElementOrigPos ) {
                //oDisplayElement.style.left = ( displayElementOffset + displayGap + oDisplayElementWidth ) + "px";
                oDisplayElement.style.left = oDisplayElementOrigPos + "px";    
            }
            else 
            {
                oDisplayElement.style.left = oDisplayElementOrigPos + "px";    
            }
             
            displayElement.style.left = currSliderPos + "px";
        }
        else
        {    
             displayElement.style.left = maxPos + "px";
             
             if( ( maxPos - minPos ) < 0 ) 
             {
                displayElement.style.left = minPos + "px";
                oDisplayElement.style.left = getElementLeft( displayElement ) + displayElementWidth + displayGap + "px";
             }
        }
        
    }
    else 
    {
        otherElement = document.getElementById( currContainerName + "_a" );
        displayElement = document.getElementById( currContainerName + "_b_display" );
        oDisplayElement = document.getElementById( currContainerName + "_a_display" );
        
        otherElementWidth = getElementWidth( otherElement );
        otherElementOffset = getElementLeft( otherElement );
        
        displayElementWidth = getElementWidth( displayElement );
        displayElementOffset = getElementLeft( displayElement );
        
        oDisplayElementWidth = getElementWidth( oDisplayElement );
        oDisplayElementOffset = getElementLeft( oDisplayElement );
        
        oDisplayElementOrigPos = otherElementOffset;
        
        displayElementPos = ( currSliderPos - displayElementWidth + currElementWidth );
        minPos = oDisplayElementOffset + oDisplayElementWidth + displayGap + displayElementWidth - currElementWidth;
        maxPos = sliderBMaxLeft;
        
        //ShowDebugText( "" );
        
        if( currSliderPos > minPos ) 
        {
            ShowDebugText( oDisplayElementOffset + "," + oDisplayElementOrigPos );
            if( oDisplayElementOffset < oDisplayElementOrigPos ) {
                //oDisplayElement.style.left = ( displayElementOffset - displayGap - oDisplayElementWidth ) + "px";
                oDisplayElement.style.left = otherElementOffset + "px";    
            }
            else 
            {
                oDisplayElement.style.left = otherElementOffset + "px";    
            }
             
            if( ( ( maxPos + currElementWidth ) - ( otherElementOffset + oDisplayElementWidth ) ) >= displayElementWidth ) {
                displayElement.style.left = currSliderPos - displayElementWidth + currElementWidth + "px";
            }
            else {
                displayElement.style.left = maxPos - displayElementWidth + currElementWidth + "px";
            }
        }
        else
        {    
            if( ( maxPos - minPos ) > 0 ) {
                displayElement.style.left = minPos - displayElementWidth + currElementWidth + "px";
            }
            else
            {
                displayElement.style.left = maxPos - displayElementWidth + currElementWidth + "px";
                oDisplayElement.style.left = getElementLeft( displayElement ) - oDisplayElementWidth - displayGap + "px";
            }
        }
    }
}

function BuildSliderBarContainer( sliderName, containerWidth, containerHeight )
{
    var containerHTML = "";
    var bgPosition = "";
    bgPosition = "top";
    
    if( sliderArray[ sliderName ][ "notSelectedBgImageL" ] != "" ) 
    {
        var img1 = new Image();
        img1.src = sliderArray[sliderName]["notSelectedBgImageL"];
        containerHTML += '<div id="' + sliderName + '_a_bg2" style="z-index: 102; position:absolute; height: 0px; width:0px; background: url(' + sliderArray[sliderName]["notSelectedBgImageL"] + ') repeat-x; background-position: 0% 0%;"></div>';
    }
    
    if( sliderArray[ sliderName ][ "notSelectedBgImageR"] != "" ) 
    {
        var img2 = new Image();
        img2.src = sliderArray[sliderName]["notSelectedBgImageR"];
        containerHTML += '<div id="' + sliderName + '_b_bg2" style="z-index: 102; margin: 0px 0px 0px 0px; padding: 0px 0px 0px 0px; position:absolute; height: 0px; width:0px; background: url(' + sliderArray[sliderName]["notSelectedBgImageR"] + ') repeat-x; background-position: right top;"></div>';
    }
    
    if( sliderArray[ sliderName ]["topBgImage"] != "" ) {
        containerHTML += '<div style="z-index: 101; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; position: relative; width:' + containerWidth + 'px; height: ' + containerHeight + 'px;  background: url(\'' + sliderArray[ sliderName ]["topBgImage"] + '\') repeat-x; background-position: top left;" id="' + sliderName + '_container"></div>\n';
    }
    else {
        containerHTML += '<div style="z-index: 101; padding: 0px 0px 0px 0px; position: relative; width:' + containerWidth + 'px; height: ' + containerHeight + 'px;" id="' + sliderName + '_container"></div>\n';
    }
    
    if( sliderArray[ sliderName ][ "listAbsoluteDivInfo" ] != "" )
    {
        containerHTML += "<div style=\"visibility: hidden; z-index: 105; height:" + sliderArray[ sliderName ]["leftSliderImageH"] + "px; width:" + sliderArray[ sliderName ]["leftSliderImageW"] + "px;\"  id=\"" + sliderName + "_a\" class=\"sliderHorizontal\"  onmousedown=\"sliderOnMouseDown(event,this);\" onmouseup=\"sliderOnMouseUp(event,this);\" onmouseover=\"javascript:ShowDivHelp( '" + sliderName + "','a' );\" onmouseout=\"javascript:HideDivHelp();\"><div style=\"cursor: w-resize; width: 100%; height: 100%; background-image: url( '" + sliderArray[ sliderName ][ "leftSliderImage" ] + "')\"></div></div>\n";
        containerHTML += "<div style=\"visibility: hidden; z-index: 105; height:" + sliderArray[ sliderName ]["rightSliderImageH"] + "px; width:" + sliderArray[ sliderName ]["rightSliderImageW"] + "px;\"  id=\"" + sliderName + "_b\" class=\"sliderHorizontal\"  onmousedown=\"sliderOnMouseDown(event,this);\" onmouseup=\"sliderOnMouseUp(event,this);\" onmouseover=\"javascript:ShowDivHelp( '" + sliderName + "','b' );\" onmouseout=\"javascript:HideDivHelp();\"><div style=\"cursor: w-resize; width: 100%; height: 100%; background-image: url( '" + sliderArray[ sliderName ][ "rightSliderImage" ] + "')\"></div></div>\n";
    }
    else
    {
        containerHTML += "<div style=\"visibility: hidden; z-index: 105; height:" + sliderArray[ sliderName ]["leftSliderImageH"] + "px; width:" + sliderArray[ sliderName ]["leftSliderImageW"] + "px;\"  id=\"" + sliderName + "_a\" onmousedown=\"sliderOnMouseDown(event,this);\" onmouseup=\"sliderOnMouseUp(event,this);\"><div style=\"z-index: 110; cursor: w-resize; width: 100%; height: 100%; background: url( '" + sliderArray[ sliderName ][ "leftSliderImage" ] + "')\"></div></div>\n";
        containerHTML += "<div style=\"visibility: hidden; z-index: 105; height:" + sliderArray[ sliderName ]["rightSliderImageH"] + "px; width:" + sliderArray[ sliderName ]["rightSliderImageW"] + "px;\"  id=\"" + sliderName + "_b\" class=\"sliderHorizontal\"  onmousedown=\"sliderOnMouseDown(event,this);\" onmouseup=\"sliderOnMouseUp(event,this);\"><div style=\"z-index: 110; cursor: w-resize; width: 100%; height: 100%; background: url( '" + sliderArray[ sliderName ][ "rightSliderImage" ] + "')\"></div></div>\n";
    }

    /* FOR SHOWING/HIDING SLIDER TOOL TIPS*/
    if( sliderArray[ sliderName ][ "hasToolTips"] )
    {
        containerHTML += '<span id="' + sliderName + '_a_display" style="z-index: 106; position: absolute; height: 20px;" class="' + sliderArray[ sliderName ][ "tooltipTextClass" ] + '"></span><span id="' + sliderName + '_b_display" style="z-index: 106; position: absolute; height: 20px;" class="' + sliderArray[ sliderName ][ "tooltipTextClass" ] + '"></span>';
    }
    
    document.getElementById( sliderName ).innerHTML = containerHTML;
    
}    

function preLoadElement(currContainerName, aVal, bVal) 
{
    // Get container of element
    containerElement = document.getElementById( currContainerName + "_container" );
    sliderArray[ currContainerName ][ "offset" ] = getElementLeft( containerElement );
    
    // Get elements for this container
	currElementA=document.getElementById( currContainerName + "_a" );
	currElementB=document.getElementById( currContainerName + "_b" );
	
    // Set slider a position
	currElementA.style.top = getElementTop( containerElement ) + "px";
	var aValRaw = aVal;
	var bValRaw = bVal;
	
	if( sliderArray[ currContainerName ][ "hasAbsoluteSteps" ] )
	{
	    ShiftToStep( currContainerName, aVal, "a" );
	}
	else
	{
        /* THIS CODE WILL MOVE THE SLIDER BASED ON A STARTING VAL (i.e. carat or price) **/
	    var startRange =  sliderArray[ currContainerName ][ "startRange" ];
        var endRange = sliderArray[ currContainerName ][ "endRange" ];
        var stepVal = ( endRange - startRange )/( getElementWidth( containerElement ) - ( getElementWidth( currElementA ) + getElementWidth( currElementB ) ) );
        var totalRange = getElementWidth( containerElement ) - ( getElementWidth( currElementA ) + getElementWidth( currElementB ) );
        
        aValRaw = aVal;
        if( aVal <= startRange ) 
        { 
            aValRaw = startRange;
            aVal = 0; 
        }
        else {
            aVal = Math.sqrt( ( totalRange * ( aVal - startRange ) ) / stepVal );
        }
        
        var moveSliderTo = getElementLeft( containerElement ) + aVal;
	    setLeft( moveSliderTo, "a", currContainerName );
	}
	
	if( aValRaw <= sliderArray[ currContainerName ][ "startRange" ] ) {
        if( currContainerName == "sliderbar1" ) {
    	    document.getElementById( "isMinPrice" ).value = FormatValue( sliderArray[ currContainerName ], aValRaw );
    	}
    	else if( currContainerName == "sliderbar2" ) {
    	    document.getElementById( "isMinCarat" ).value = FormatValue( sliderArray[ currContainerName ], aValRaw );
    	}
    }
    
    sliderArray[ currContainerName ][ "a_value" ] = FormatValue( sliderArray[ currContainerName ], aValRaw );
   
    // Set slider b position
	currElementB.style.top = getElementTop( containerElement ) + "px";  
	if( sliderArray[ currContainerName ][ "hasAbsoluteSteps" ] )
	{
	    ShiftToStep( currContainerName, bVal, "b" );
	}
	else
	{   
        var startRange = sliderArray[ currContainerName ][ "startRange" ];
        var endRange = sliderArray[ currContainerName ][ "endRange" ];
        var totalRange = getElementWidth( containerElement ) - ( getElementWidth( currElementA ) + getElementWidth( currElementB ) );
        var stepVal = ( endRange - startRange )/( getElementWidth( containerElement ) - ( getElementWidth( currElementA ) + getElementWidth( currElementB ) ) );
        
        if( bVal > endRange || bVal == -1 ) 
        {
            bVal = totalRange;
            bValRaw = endRange;
        }
        else {
            bValRaw = bVal;
            bVal = Math.sqrt( ( totalRange * ( bValRaw - startRange ) ) / stepVal );
        }
        
        /* THIS CODE WILL MOVE THE SLIDER BASED ON A STARTING VAL (i.e. carat or price) **/
        var moveSliderTo = getElementLeft( containerElement ) + getElementWidth( currElementA ) + bVal;
	    setLeft( moveSliderTo, "b", currContainerName );
	}

    if( bValRaw >= sliderArray[ currContainerName ][ "endRange" ] ) {
        if( currContainerName == "sliderbar1" ) {
    	    document.getElementById( "isMaxPrice" ).value = FormatValue( sliderArray[ currContainerName ], bValRaw );
    	}
    	else if( currContainerName == "sliderbar2" ) {
    	    document.getElementById( "isMaxCarat" ).value = FormatValue( sliderArray[ currContainerName ], bValRaw );
    	}
    }
    
	sliderArray[ currContainerName ][ "b_value" ] =  FormatValue( sliderArray[ currContainerName ], bValRaw );
	
	if( sliderArray[ currContainerName ][ "hasToolTips" ] )
	{	
	    // set initial position of elements
	    aDisplayElement = document.getElementById( currContainerName + "_a_display" );
	    bDisplayElement = document.getElementById( currContainerName + "_b_display" );
	    
	    // Set displays
	    currDisplay = FormatDisplay( sliderArray[ currContainerName ], aValRaw, aValRaw );
	    if( sliderArray[ currContainerName ][ "valueFormat" ].search( "currency" ) == 0 ) {
    	    currDisplay = "$" + currDisplay;
    	}
	    aDisplayElement.innerHTML = currDisplay;
	    
	    currDisplay = FormatDisplay( sliderArray[ currContainerName ], bValRaw, bValRaw );
	    if( sliderArray[ currContainerName ][ "valueFormat" ].search( "currency" ) == 0 ) {
    	    currDisplay = "$" + currDisplay;
    	}
	    bDisplayElement.innerHTML = currDisplay;
	    
	    if( sliderArray[ currContainerName ]["tooltipAlignB"] == "right" ) {
	        bDisplayElement.style.left = ( getElementLeft( currElementB ) - getElementWidth( bDisplayElement ) + getElementWidth( currElementB ) ) + "px";
	    }
	    else {
	        bDisplayElement.style.left = getElementLeft( currElementB ) + "px";
        }
        	        
	    aDisplayElement.style.top = ( getElementTop( containerElement ) + sliderArray[ currContainerName ]["leftSliderImageH"] + 4 ) + "px";
	    bDisplayElement.style.top = ( getElementTop( containerElement ) + sliderArray[ currContainerName ]["rightSliderImageH"] + 4 ) + "px";
	    aDisplayElement.style.left = ( sliderArray[ currContainerName ][ "a_position"] + getElementLeft( containerElement ) ) + "px";
	        
	    // shift elements
	    if( ( getElementLeft( aDisplayElement ) + getElementWidth( aDisplayElement ) + 2 ) > getElementLeft( bDisplayElement ) )
	    {
	        var midPoint = Math.abs( sliderArray[ currContainerName ]["endRange"] - sliderArray[ currContainerName ]["startRange"] )/2 + sliderArray[ currContainerName ]["startRange"];

	        if( aVal <= midPoint ) {
	            bDisplayElement.style.left = ( getElementLeft( aDisplayElement ) + getElementWidth( aDisplayElement ) + 4 ) + "px";
	        }
	        else {
	            aDisplayElement.style.left = ( getElementLeft( bDisplayElement ) - getElementWidth( aDisplayElement ) - 4 ) + "px";
	        }
	    }
	    
    }
    
    currElementA.style.visibility = "visible";
    currElementA.className = "sliderHorizontal";
    currElementB.style.visibility = "visible";
    currElementB.className = "sliderHorizontal";
    SetLabelSelected( currContainerName );
}

function getElementLeft(currElement)	
{
    var currOffsetLeft=0;
    if( ! currElement ) return( 0 );
    
    currOffsetLeft = currElement.offsetLeft;
    var parentObj = currElement.offsetParent; 
    
    while( parentObj != null ) 
    {
        if( IsIE && parentObj.tagName != "TABLE" && parentObj.tagName != "BODY" ) {
            currOffsetLeft += parentObj.clientLeft; 
        }
        else if( parentObj.tagName == "TABLE" ) 
        {
            if( isNaN( parseInt( parentObj.border ) ) ) 
            { 
                var parentFrame = parentObj.getAttribute('frame');
                if(parentFrame != null) {
                    currOffsetLeft += 1;
                }
            } 
        }
        
        currOffsetLeft += parentObj.offsetLeft;      
        parentObj = parentObj.offsetParent; 
    }
    
    return currOffsetLeft;
}


function getElementWidth( currElement )
{
    var currWidth = 0;
    
    if( currElement ) 
    {
        if( currElement.offsetWidth )
        {
            currWidth = currElement.offsetWidth;
        } 
        else if( currElement.clip && currElement.clip.width )
        {
            currWidth = currElement.clip.width;
        } 
        else if( currElement.style && currElement.style.pixelWidth ) 
        {
            currWidth = currElement.style.pixelWidth;
        }
    }
    
    return( currWidth );
}

function getElementTop( currElement )
{
    var currElementTop =0;
    
    if (currElement) 
    {
        currElementTop = currElement.offsetTop;         
        var parentObj = currElement.offsetParent;  
        
        while( parentObj != null )
        {
            if(IsIE && parentObj.tagName != "TABLE" && parentObj.tagName != "BODY" ) {
                currElementTop += parentObj.clientTop; 
            }
            else if(parentObj.tagName == "TABLE") 
            {
                var parentBorder = parseInt(parentObj.border);
                
                if(isNaN(parentBorder)) 
                { 
                    if(parentObj.getAttribute('frame') != null)
                        currElementTop += 1;
                } 
                else if(parentBorder > 0) {
                    currElementTop += parentBorder;        
                }
            }
            
            currElementTop += parentObj.offsetTop;      
            parentObj = parentObj.offsetParent; 
        }
    }
    
    return currElementTop;                           
}  

function FormatValue( sliderArray, currValue )
{
    if( sliderArray["valueFormat"] == "float" || sliderArray["valueFormat"] == "currencyfloat" )
    {
        currValue = parseFloat( currValue ).toFixed(2);
    }
    else if( ( sliderArray["valueFormat"] == "int" || sliderArray["valueFormat"] == "currencyint" ) && parseInt( currValue ) )
    {
        currValue =  Math.round( currValue, 0 );
        
        if( parseInt( currValue ) )
        {
            stringVal = new String( currValue );
            if( stringVal.length > 3 )  
            {   
                newString = stringVal;
                newValue = parseInt( stringVal );
                var roundingValue = true;
                while( roundingValue )
                {
                    var last2 = newString.substr( newString.length - 2, newString.length );
                    //if( last2 == "25" ) { roundingValue = false; }
                    if( last2 == "50" ) { roundingValue = false; }
                    //else if( last2 == "75" ) { roundingValue = false; }
                    else if( last2 == "00" ) { roundingValue = false; }
                    else {
                        newValue++;
                        newString = new String( newValue );
                    }
                }
                
                currValue = newString;
            }
        }
    }
        
    return( currValue );
}

function FormatDisplay( sliderArray, currValue )
{
    currStartRange = sliderArray[ "startRange"];
    currEndRange = sliderArray[ "endRange" ];
    rawValue = currValue;
    
    if( sliderArray["valueFormat"] == "float" || sliderArray["valueFormat"] == "currencyfloat" )
    {
        currValue = parseFloat( currValue ).toFixed(2);
        
        if( parseFloat( currValue ) )
        {
            stringVal = new String( currValue );
            if( stringVal.length > 6 )  {
                if( stringVal.length < 10 ) {
                    currValue = stringVal.substr( 0, stringVal.length - 5 ) + "," + stringVal.substr( stringVal.length - 5, stringVal.length );
                }
            } 
        }
        rawValue = currValue;
    }
    else if( sliderArray["valueFormat"] == "int" || sliderArray["valueFormat"] == "currencyint" )
    {
        currValue =  Math.round( currValue, 0 );
            
        if( parseInt( currValue ) )
        {
            stringVal = new String( currValue );
            if( stringVal.length > 3 )  
            {   
                newString = stringVal;
                newValue = parseInt( stringVal );
                var roundingValue = true;
                while( roundingValue )
                {
                    var last2 = newString.substr( newString.length - 2, newString.length );
                    //if( last2 == "25" ) { roundingValue = false; }
                    if( last2 == "50" ) { roundingValue = false; }
                    //else if( last2 == "75" ) { roundingValue = false; }
                    else if( last2 == "00" ) { roundingValue = false; }
                    else {
                        newValue++;
                        newString = new String( newValue );
                    }
                }
                
                stringVal = newString;
                rawValue = stringVal;
                    
                if( stringVal.length < 7 ) {
                    currValue = stringVal.substr( 0, stringVal.length - 3 ) + "," + stringVal.substr( stringVal.length - 3, stringVal.length );
                }
            } 
        }
    }
    
    currValue = sliderArray[ "leftPadDisplay" ] + currValue + sliderArray[ "rightPadDisplay" ];
    
    if( rawValue >= currEndRange ) {
        currValue += "&nbsp;or&nbsp;more";
    }
    else if( rawValue == currStartRange ) {
        currValue += "&nbsp;or&nbsp;less";
    }
    
    return( currValue );
}         

function ShiftToStep( sliderName, currVal, currTab )
{
    containerElement = document.getElementById( sliderName + "_container" );
    currElement = document.getElementById( sliderName + "_" + currTab );
    if( currTab == "a" ) {
        oElement = document.getElementById( sliderName + "_b" );
    }
    else {
        oElement = document.getElementById( sliderName + "_a" );        
    }        
    
    // Load fixed values
    var newPos = GetSliderAbsoluteValue( sliderName, currVal, currTab);
    var addLeft = 0;
    var minVal = GetMinSliderAbsoluteKey( sliderName );
    var maxVal = GetMaxSliderAbsoluteKey( sliderName );
    
    
    if( sliderArray[ sliderName ]["b_value"] == sliderArray[ sliderName ]["a_value"] )
    {
        if( currTab == "a" && maxVal == currVal )
        {
            newPos -= getElementWidth( currElement );
        }
        else if( currTab == "b" && maxVal != currVal )
        {            
            newPos += getElementWidth( currElement );
        }            
    }    
    currElement.style.left = newPos + "px";
    
    // Draw div here for changing background
    if( currTab == "a" && sliderArray[ sliderName ][ "notSelectedBgImageL"] != "" )
    {
        document.getElementById( sliderName + "_a_bg2" ).style.width = ( newPos - getElementLeft( containerElement ) + ( getElementWidth( currElement )/2 ) ) + "px";
        document.getElementById( sliderName + "_a_bg2" ).style.height = sliderArray[ sliderName ][ "height"] + "px";
        document.getElementById( sliderName + "_a_bg2" ).style.left = ( getElementLeft( containerElement ) ) + "px";
        document.getElementById( sliderName + "_a_bg2" ).style.top = getElementTop( containerElement )+ "px";
    }        
    else if( currTab == "b" && sliderArray[ sliderName ][ "notSelectedBgImageR"] != "" ) 
    {
        var currElementA = document.getElementById( sliderName + "_a" );
        var totalRange = getElementWidth( containerElement ) - sliderArray[sliderName]["b_position"];
        var result = getElementWidth( containerElement ) + getElementLeft( containerElement ) - newPos - getElementWidth( currElement ) + ( getElementWidth( currElement )/2 );
        
        if( result < 0 ) { result = 0; }
        document.getElementById( sliderName + "_b_bg2" ).style.width = result + "px";
        document.getElementById( sliderName + "_b_bg2" ).style.height = sliderArray[ sliderName ][ "height"] + "px";
        document.getElementById( sliderName + "_b_bg2" ).style.left = ( newPos + getElementWidth( currElement ) - ( getElementWidth( currElement )/2 ) ) + "px";
        document.getElementById( sliderName + "_b_bg2" ).style.top = getElementTop( containerElement ) + "px";
    }
}

function ShiftToPosition( sliderName, currVal, currTab )
{
    // Get current absolute position based on value
    var currOffset = sliderArray[ sliderName ][ "offset" ];
    var currWidth = sliderArray[ sliderName ][ "width" ];
    var startRange = sliderArray[ sliderName ][ "startRange" ];
    var endRange = sliderArray[ sliderName ][ "endRange" ];
    var stepVal = 1;
    
    if( currTab == "a" )
    {
        stepVal = ( endRange - startRange )/( currWidth - ( getElementWidth( currElementA ) + getElementWidth( currElementB ) ) );
        currOffset = currOffset + ( ( currVal - startRange )/stepVal );
    }
    else
    {
        stepVal = ( endRange - startRange )/( currWidth - ( getElementWidth( currElementA ) + getElementWidth( currElementB ) ) );
        currOffset = currOffset + getElementWidth( currElementA ) + ( ( currVal - startRange )/stepVal );
    }

    currOffset = Math.round( currOffset, 0 );
    setLeft(currOffset,currTab,sliderName);
}

////////////////////////////////////////////////////////////////////////////////////
// SEARCH FUNCTIONS
function TranslateSearchData()
{
	var currShape = document.getElementById( "Shape" ).value;
    var minprice = GetSliderValue( "sliderbar1", "a" );
    var maxprice = GetSliderValue( "sliderbar1", "b" );
    var mincarat = GetSliderValue( "sliderbar2", "a" );
    var maxcarat = GetSliderValue( "sliderbar2", "b" );
    var mincolor = "";
    var maxcolor = "";
    var minclarity = "";
    var maxclarity = "";
    
    // Set color possible ranges
    if( SliderExists( "sliderbar3" ) )
    {
        mincolor = GetSliderValue( "sliderbar3", "a" );
        maxcolor = GetSliderValue( "sliderbar3", "b" );
    }
    
    // Set clarity possible ranges
    if( SliderExists( "sliderbar4" ) )
    {
        minclarity = GetSliderValue( "sliderbar4", "a" );
        maxclarity = GetSliderValue( "sliderbar4", "b" );
	}
    
    var searchParams = currShape
    				+ "|" + minprice + "," + maxprice
    				+ "|" + mincarat + "," + maxcarat
    				+ "|" + mincolor + "," + maxcolor
    				+ "|" + minclarity + "," + maxclarity;
    
   SetSearchCookie(searchParams);
}

function SetSearchCookie( cookieVal )
{
	var expiration = new Date();
	expiration.setTime(expiration.getTime() + (365*24*60*60*1000));
	document.cookie = "builderSearchParams=" + cookieVal + ";PATH=/;EXPIRES="+ expiration.toGMTString();
	location.href = '/builder/builder.asp';
}
	
function SaveRBData(currShape,currSize,currPrice,currColor,currClarity)
{
	
	var postString = "function=UpdateCustomerBuilderData&"
					 + "&currShape=" + currShape
					 + "&currSize=" + currSize
					 + "&currPrice=" + currPrice
					 + "&currColor=" + currColor
					 + "&currClarity=" + currClarity;

	var xmlhttp;
 	if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); }
    else if (window.ActiveXObject) { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP") }    
    xmlhttp.open("POST",'/webserv-20/jsonBuilder.ashx',false);
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xmlhttp.send(postString);
    resultString = xmlhttp.responseText;
    alert(postString);  
}

function XMLGetTotal()
{
    // Set price and carat
    var minPrice = GetSliderValue( "sliderbar1", "a" );
    var maxPrice = GetSliderValue( "sliderbar1", "b" );
    var minCarat = GetSliderValue( "sliderbar2", "a" );
    var maxCarat = GetSliderValue( "sliderbar2", "b" );
    var currShape = document.getElementById( "Shape" ).value;
    
    if( document.getElementById( "isMinPrice" ).value != "0" ) {
        minPrice = "min";
    }
    
    if( document.getElementById( "isMaxPrice" ).value != "0" ) {
        maxPrice = "max";
    }
    
    if( document.getElementById( "isMinCarat" ).value != "0" ) {
        minCarat = "min";
    }
    
    if( document.getElementById( "isMaxCarat" ).value != "0" ) {
        maxCarat = "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";             
    var clarityArray = clarityString.split( "," );
    var cutGradeString = "Good,VeryGood,Excellent,Premium,Ideal";
    var cutGradeArray = cutGradeString.split( "," );
        
    var searchColorArray = colorArray;
    var searchClarityArray = clarityArray;
    var searchCutArray = cutGradeArray;
    
    // Set color possible ranges
    if( SliderExists( "sliderbar3" ) )
    {   
        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 ) {
                endIndex4 = i;
            }
        }
        
        searchColorArray = new Array();
        for( var i = startIndex; i <= endIndex4; i++ )
        {
            searchColorArray.length++;
            searchColorArray[ searchColorArray.length - 1 ] = colorArray[i];
        }
    }
            
    
    // Set clarity possible ranges
    if( SliderExists( "sliderbar4" ) )
    {
        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 ) {
                endIndex5 = i;
            }
        }
        
        searchClarityArray = new Array();
        for( var i = startIndex; i <= endIndex5; i++ )
        {
            searchClarityArray.length++;
            searchClarityArray[ searchClarityArray.length - 1 ] = clarityArray[i];
        }
    }
    
    // Set cut grade possible ranges
    if( SliderExists( "sliderbar5" ) )
    {
        var startCut = GetSliderValue( "sliderbar5", "a" );
        var endCut = GetSliderValue( "sliderbar5", "b" );
        for( var i = 0; i < cutGradeArray.length; i++ )
        {
            if( cutGradeArray[i] == startCut ) {
                startIndex = i;
            }
            
            if( cutGradeArray[i] == endCut ) {
                endIndex = i;
            }
        }
        
        searchCutArray = new Array();
        for( var i = startIndex; i <= endIndex; i++ )
        {
            searchCutArray.length++;
            searchCutArray[ searchCutArray.length - 1 ] = cutGradeArray[i];
        }
    }
    
    var certString = new Array();
    if( document.getElementById( "grading_GIA" ).value != "1" ) {
        certString[ certString.length++ ] = "'GIA'";
    }
    
    if( document.getElementById( "grading_AGS" ).value != "1" ) {
        certString[ certString.length++ ] = "'AGS'";
    }
    
    if( document.getElementById( "grading_EGL" ).value != "1" ) {
        certString[ certString.length++ ] = "'EGL'";
    }
    
    if( document.getElementById( "grading_HRD" ).value != "1" ) {
        certString[ certString.length++ ] = "'HRD'";
    }
    
    if( certString.length > 0 ) {
        currCertString = certString.join( "," );
    }
    else {
        currCertString = "";
    }
    
    var isCouples = 0
    if( document.getElementById( "IsCouples" ) ) {
        isCouples = document.getElementById( "IsCouples" ).value;
    }
    
    var minDepth = document.getElementById( "mindepth" ).value;
    var maxDepth = document.getElementById( "maxdepth" ).value;
    var minTable = document.getElementById( "mintable" ).value;
    var maxTable = document.getElementById( "maxtable" ).value;
    var stockNum = "";
    
    if( document.getElementById( "stock_num" ) ) {
        stockNum = document.getElementById( "stock_num" ).value;
    }
    
    // Post slider results
    var currColor = "'" + searchColorArray.join( "','" ) + "'";
    var currClarity = "'" + searchClarityArray.join( "','" ) + "'";
    var currCut = "'" + searchCutArray.join( "','" ) + "'";
    var result = SubmitTotalQuery( currShape, minPrice, maxPrice, minCarat, maxCarat, currColor, currClarity, currCut, currCertString, minDepth, maxDepth, minTable, maxTable, isCouples, stockNum );
    if( ! result ) { result = "SERVER ERROR"; }
    else if( parseInt( result ) ) { result = FormatInt( result ); }
    
    result = new String( result );
    if( result.indexOf( "ERROR" ) == -1 ) {
        document.getElementById( "numResults" ).innerHTML = result;
        if( document.getElementById( "numResults2" ) ) { document.getElementById( "numResults2" ).innerHTML = result; }
        if( ! isRefine ) { 
            document.getElementById( "numResults" ).innerHTML += " Diamonds Found"; 
            if( document.getElementById( "numResults2" ) ) { document.getElementById( "numResults2" ).innerHTML += " Diamonds Found"; }
        }
        if( result != 0 ) 
        {
        	if( searchButtonUrl.search( ".swf" ) == -1 )
        	{
            	document.getElementById( "viewResults" ).innerHTML = '<a href="javascript:TranslateSearchData();"><img src="' + searchButtonUrl + '" border="0"></a>';
            	if( document.getElementById( "viewResults2" ) ) { document.getElementById( "viewResults2" ).innerHTML = '<a href="javascript:TranslateSearchData();"><img src="' + searchButtonUrl + '" border="0"></a>'; }
            }
            else
            {
            	/*
				var swfVersion = GetSwfVer();
				swfVersion.replace( "WIN ", "" );
				swfVersion.replace( "MAC ", "" );
				if( swfVersion.substr( 0, 1 ) == "8" || swfVersion.substr( 0, 1 ) == "9" ) {
					searchButtonUrl = searchButtonUrl;
				}
				else {
					searchButtonUrl = searchButtonUrl;
				}
				
				flashCode = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="121" height="35" title="View Results">'
							  + '      <param name="movie" value="' + searchButtonUrl + '" />'
                    		  + '      <param name="quality" value="high" />'
					          + '      <embed src="' + searchButtonUrl + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="121" height="35"></embed>'
				      		  + '</object>'
				*/				      		  
				document.getElementById( "viewResults" ).style.visibility = "visible";
				if( document.getElementById( "viewResults2" ) ) { document.getElementById( "viewResults2" ).style.visibility = "visible"; }
			}
        }
    }
    else 
    { 
        document.getElementById( "numResults" ).innerHTML = result; 
        if( document.getElementById( "numResults2" ) ) { document.getElementById( "numResults2" ).innerHTML = result;  }
    }
}

function FormatInt( currValue )
{
    currValue =  Math.round( currValue, 0 );
    
    if( parseInt( currValue ) )
    {
        stringVal = new String( currValue );
        if( stringVal.length > 3 )  {
            if( stringVal.length < 7 ) {
                currValue = stringVal.substr( 0, stringVal.length - 3 ) + "," + stringVal.substr( stringVal.length - 3, stringVal.length );
            }
        } 
    }
        
    return( currValue );
}

function ShowDebugText( currText )
{
    if( document.getElementById( "debugtext" ) )
    {
        document.getElementById( "debugtext" ).innerHTML = currText;
    }
}    

function SetLabelSelected( currSlider )
{
    // Set color possible ranges
    if( currSlider == "sliderbar3" ) 
    {
        // Set color possible ranges
        if( SliderExists( "sliderbar3" ) )
        {
            var colorString = "label_D,label_E,label_F,label_G,label_H,label_I,label_J,label_K";
            var colorArray = colorString.split( "," );
            for( var i = 0; i < colorArray.length; i++ )
            {
                document.getElementById( colorArray[ i ] ).style.color = "#666";
            }            
            
            var startColor = GetSliderValue( "sliderbar3", "a" );
            var endColor = GetSliderValue( "sliderbar3", "b" );            
                
            if( startColor == endColor ) 
            {
                document.getElementById( "label_" + startColor ).style.color = "#fff";
                //document.getElementById( colorArray[ i ] ).style.fontWeight = "bold";
            }
            else
            {                    
                for( i = 0; i < colorArray.length; i++ )
                {
                    if( colorArray[i].search( "label_" + startColor ) != -1 ) {
                        startIndex = i;
                    }
                    
                    if( colorArray[i].search( "label_" + endColor ) != -1 ) {
                        endIndex1 = i;
                    }
                }
                
                for( var i = startIndex; i <= endIndex1; i++ )
                {
                    document.getElementById( colorArray[ i ] ).style.color = "#fff";
                    //document.getElementById( colorArray[ i ] ).style.fontWeight = "bold";
                }
            }            
        }
    }
    // Set color possible ranges
    if( currSlider == "sliderbar4" ) 
    {
        // Set color possible ranges
        if( SliderExists( "sliderbar4" ) )
        {
            var clarityString = "label_IF,label_VVS1,label_VVS2,label_VS1,label_VS2,label_SI1,label_SI2,label_I1";
            var clarityArray = clarityString.split( "," );
            for( var i = 0; i < clarityArray.length; i++ )
            {
                document.getElementById( clarityArray[ i ] ).style.color = "#666";
                //document.getElementById( clarityArray[ i ] ).style.fontWeight = "normal";
            }
            
            
            var startClarity = GetSliderValue( "sliderbar4", "a" );
            var endClarity = GetSliderValue( "sliderbar4", "b" );            
                
            if( startClarity == endClarity ) 
            {
                document.getElementById( "label_" + startClarity ).style.color = "#fff";
                //document.getElementById( "label_" + startClarity ).style.fontWeight = "bold";
            }
            else
            {                    
                for( i = 0; i < clarityArray.length; i++ )
                {
                    if( clarityArray[i].search( "label_" + startClarity ) != -1 ) {
                        startIndex = i;
                    }
                    
                    if( clarityArray[i].search( "label_" + endClarity ) != -1 ) {
                        endIndex1 = i;
                    }
                }
                
                for( var i = startIndex; i <= endIndex1; i++ )
                {
                    document.getElementById( clarityArray[ i ] ).style.color = "#fff";
                    //document.getElementById( clarityArray[ i ] ).style.fontWeight = "bold";
                }
            }            
        }
    }
}    

function clearSelection() 
{
	var sel;
	if(document.selection && document.selection.empty)
	{
		document.selection.empty();
	} 
	else if(window.getSelection) 
	{
		sel=window.getSelection();
		if(sel && sel.removeAllRanges)
		sel.removeAllRanges() ;
	}
}