
function searchPageClass()
{
    this.parameters={Color:"",Clarity:"",Cut:"",MinPrice:"",MaxPrice:"",MinCarat:"",MaxCarat:""};
    this.load=function()
    {
	    //this.reloadafterback();
            this.parameters = this.getUrl();
	        this.setForm();
			this.search();
    }

    this.reloadafterback=function()
    {
	var x = readCookie('refreshed');
	//alert(x);
	if(x=="no")
		{
		
			console.log('inside if: '+x);
			createCookie('refreshed','yes',7)
		
		}
		else
		{
			console.log('inside else: '+x);
			createCookie('refreshed','no',7)
			
			console.log('inside else: Before reload');
			window.location.reload();
			console.log('inside else: After reload');
			
		}	
	
	
    }
    //MANUALLY ASSIGN THE CHECKBOXES ET AL...
	this.search = function()
	{
		refreshDisplay();
	}
    this.setForm = function()
    {
		var colorboxes = document.getElementsByName('frmStoneColor');
		
		for (i = 0; i < colorboxes.length; i++){

			for(var j=0; j < this.parameters.Color.split(",").length; j++) {
				//if(colorboxes[i].value == "'"+this.parameters.Color.split(",")[j]+"'" )
				if(colorboxes[i].value == this.parameters.Color.split(",")[j] )
				{
					colorboxes[i].checked = true;
				}
			}

		}

		var cutboxes = document.getElementsByName('frmstoneCut');
		
		for (i = 0; i < cutboxes.length; i++){

			for(var j=0; j < this.parameters.Cut.split(",").length; j++) {
				//if(cutboxes[i].value == "'"+this.parameters.Cut.split(",")[j]+"'" )
				if(cutboxes[i].value == this.parameters.Cut.split(",")[j] )
				{
					cutboxes[i].checked = true;
				}
			}

		}

		
		var clarityboxes = document.getElementsByName('frmstoneClarity');
		
		for (i = 0; i < clarityboxes.length; i++){

			for(var j=0; j < this.parameters.Clarity.split(",").length; j++) {
				//if(clarityboxes[i].value == "'"+this.parameters.Clarity.split(",")[j]+"'" )
				if(clarityboxes[i].value == this.parameters.Clarity.split(",")[j] )
				{
					clarityboxes[i].checked = true;
				}
			}

		}

		/*
		new slider(A_INITCL, L_TPL,'sliderRegionCaratLeft');
		new slider(A_INITCR, R_TPL,'sliderRegionCaratRight');
		new slider(A_INITPL, L_TPL,'sliderRegionPriceLeft');
		new slider(A_INITPR, R_TPL,'sliderRegionPriceRight');		

		document.getElementById('txtFrom').value = this.parameters.MinCarat;
		document.getElementById('txtTo').value = this.parameters.MaxCarat;
		document.getElementById('frmFromprice').value = this.parameters.MinPrice;
		document.getElementById('frmToprice').value = this.parameters.MaxPrice;
		*/
		if (this.parameters.MinCarat!='')
			this.setSliderValue(0,this.parameters.MinCarat,270,.5,18);
		if (this.parameters.MaxCarat!='')
			this.setSliderValue(1,this.parameters.MaxCarat,270,.5,-1);
		if (this.parameters.MinPrice!='')
			this.setSliderValue(2,this.parameters.MinPrice,270,.5,18);
		if (this.parameters.MaxPrice!='')
			this.setSliderValue(3,this.parameters.MaxPrice,270,.5,-1);
		}
    this.setParameter = function(name,value,append)
    {
		if (typeof append == 'undefined')
			append = true;
			
        //SET THE parameters object
		this.parameters = this.getUrl();
		//alert(this.parameters[name]);
		//CHECK FOR APPEND, WHEN TRUE - DO THE FOLLOWING, WHEN FALSE, REMOVE IT
		if(append)
		{
			if(this.parameters[name] != "" && this.parameters[name].indexOf(value) == -1)
			{
				this.parameters[name] = this.parameters[name] + ',' + value;
			}
			else if(this.parameters[name] == "")
			{
				this.parameters[name] = value;
			}
		}
		else
		{
			if(this.parameters[name] != "" && this.parameters[name].indexOf(value) >=0)
			{
				if(this.parameters[name].indexOf(','+value) >= 0)
				{
					value = ','+ value;
					this.parameters[name] = this.parameters[name].replace(value,'');
				}
				else if(this.parameters[name].indexOf(value+',') >= 0)
				{
					value = value + ',';
					this.parameters[name] = this.parameters[name].replace(value,'');
				}
				else
				{
					this.parameters[name] = this.parameters[name].replace(value,'');
				}
				
			}
		}
		this.setUrl();
    }

	this.setSliderValue=function(index,value,width,p,fix)
	{
		var o_slider = window.A_SLIDERS[index];
	
		var val = positionSlope(value,o_slider.n_minValue,o_slider.n_maxValue,7,p);
		var valpos = val * width - fix;
		 o_slider.f_setValue(o_slider.n_minValue + (valpos - o_slider.n_pathLeft) / o_slider.n_pix2value); 
	}
	
	this.setSlider = function(name,value)
	{
		this.parameters = this.getUrl();
		this.parameters[name] = value;
		this.setUrl();
	}

    this.setUrl = function()
    {
        //var str = window.location.href;
		//str = str.replace(window.location.hash,'');

		var str = window.location+'';
		var pIndex = str.indexOf('#');
		if (pIndex > 0)
		{
			str = str.substring(0,pIndex);
		}
		
		//alert(window.location.href);
		//alert(window.location.hash);
		//alert(str);

		window.location.replace(str+'#search/'+'Cut='+this.parameters.Cut+'&Clarity='+this.parameters.Clarity+'&Color='+this.parameters.Color+'&MinPrice='+this.parameters.MinPrice+'&MaxPrice='+this.parameters.MaxPrice+'&MinCarat='+this.parameters.MinCarat+'&MaxCarat='+this.parameters.MaxCarat);
        //BUILD THE STR TO CONTAIN THE PARAMETERS
       // window.location.replace('#')
	   
    }
    this.getUrl = function()
    {
        //USE THE CURRENT URL TO GET THE PARAMETERS
        var params = {Color:"",Clarity:"",Cut:"",MinPrice:"",MaxPrice:"",MinCarat:"",MaxCarat:""};
        //POPULATE THE parameters...
		var str = window.location+'';
		var pIndex = str.indexOf('#search/');
		
		if (pIndex>0)
        {
            var searchString = str.substring(pIndex+8,str.length);
		    var page = new PageQuery(searchString);

			params.Cut = unescape(page.getValue('Cut'));
			params.Clarity = unescape(page.getValue('Clarity'));
			params.Color = unescape(page.getValue('Color'));
			params.MinPrice = unescape(page.getValue('MinPrice'));
			params.MaxPrice = unescape(page.getValue('MaxPrice'));
			params.MinCarat = unescape(page.getValue('MinCarat'));
			params.MaxCarat = unescape(page.getValue('MaxCarat'));  

        }
        return params; 
    } 
}


function PageQuery(q) {
if(q.length > 1) this.q = q.substring(0, q.length);
else this.q = null;
this.keyValuePairs = new Array();
if(q) {
for(var i=0; i < this.q.split("&").length; i++) {
this.keyValuePairs[i] = this.q.split("&")[i];
//alert(this.keyValuePairs[i]);
}
}
this.getKeyValuePairs = function() { return this.keyValuePairs; }
this.getValue = function(s) {
for(var j=0; j < this.keyValuePairs.length; j++) {
if(this.keyValuePairs[j].split("=")[0] == s)
return this.keyValuePairs[j].split("=")[1];
}
return "";
}
this.getParameters = function() {
var a = new Array(this.getLength());
for(var j=0; j < this.keyValuePairs.length; j++) {
a[j] = this.keyValuePairs[j].split("=")[0];
}
return a;
}
this.getLength = function() { return this.keyValuePairs.length; }
}

