function RefineSearch(cnt,theForm,page,SortBy,SubCat)
{
	var PageNo 			= (page != undefined)?page:"1";
	var RefreshContent	= (cnt != 'category')?false:true;
	var RefreshSubCat	= (SubCat == undefined)?false:SubCat;
	_Do(theForm,RefreshContent,PageNo,cnt,SortBy,RefreshSubCat);
	return true;
}

function _Do(theForm,RefreshContent,PageNo,cnt,SortBy,RefreshSubCat)
{
	if (RefreshContent == false)
	{
		theForm.submit();
		return false;
	} else {
		var content_div	= "rightCntr";
		var sortfld		= (SortBy != undefined && SortBy != "")?SortBy:"";
		if (sortfld == "") {
			sortfld = (document.getElementById("SortBy") && document.getElementById("SortBy").value != "")?document.getElementById("SortBy").value:"";
		}
		var filterSaleItemsOnly = (document.getElementById("saleItemsOnly") && document.getElementById("saleItemsOnly").checked)? 1 : 0;

		var mypostrequest	= new xmlhttpfun();
		if (typeof mypostrequest == "object")
		{
			mypostrequest.onreadystatechange=function() {
				if (mypostrequest.readyState==4) {
					if (mypostrequest.status==200 || window.location.href.indexOf("http")==-1) 
					{
						document.getElementById(content_div).innerHTML	= "";
						document.getElementById(content_div).innerHTML	= mypostrequest.responseText;
						equalHeight(jQuery(".productCntr"));
						if (RefreshSubCat) _SubCat('SubCat');
						BindEvents(cnt,sortfld);
						document.body.style.cursor = "default";
						return false;
					}
				}
			}
			var parameters = "";
			if (theForm != "" && theForm != null) {
			    var parameters = GenerateParametersForAjax(theForm);
				parameters += '&js=1&SortBy='+sortfld+'&saleItemsOnly='+filterSaleItemsOnly;
				pagename = theForm.action+"?page="+PageNo;
				mypostrequest.open("POST",pagename, true);
				mypostrequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				mypostrequest.send(parameters);
				document.body.style.cursor = "wait";
				if (document.getElementById("loader_div")){
					document.getElementById(content_div).innerHTML = document.getElementById("loader_div").innerHTML;
				}
			}
		}
	}
}

function GenerateParametersForAjax(frm)
{
	var objForm;
	var submitDisabledElements = false;
	
	objForm = frm;
	
	var sXml = "?1=1";
	if (objForm && objForm.tagName == 'FORM')
	{
		var formElements = objForm.elements;
		for( var i=0; i < formElements.length; i++)
		{
			if (formElements[i].type && (formElements[i].type == 'radio' || formElements[i].type == 'checkbox') && formElements[i].checked == false) continue;
			if (formElements[i].disabled && formElements[i].disabled == true && submitDisabledElements == false) continue;
			var name = formElements[i].name;
			if (name)
			{
				if (sXml != '1=1') sXml += '&';
				if(formElements[i].type=='select-multiple')
				{
					for (var j = 0; j < formElements[i].length; j++)
					{
						if (formElements[i].options[j].selected == true)   sXml += name+"="+encodeURIComponent(formElements[i].options[j].value)+"&";
					}
				}
				else
				{
					sXml += name+"="+encodeURIComponent(formElements[i].value);
				}
			} 
		}
	}
	return sXml;
}

function BindEvents(cnt,sortfld)
{
	jQuery('a.p_pagina').click(function (event) {
		event.preventDefault();
		var url 		= jQuery(this).attr('href');
		var start_from	= url.lastIndexOf('?');
		var q_str		= url.substr(start_from+1);
		location.hash 	= q_str;
		RefineSearch(cnt,document.FormRefineResults,this.name,sortfld);
		return false;
	});
	jQuery('#SortBy').change(function () {
		return RefineSearch(cnt,document.FormRefineResults,1,this.value);
	});
}

function addHashtoURL()
{
	var cat_length		= document.getElementsByName("category[]").length;
	var checkedArray	= new Array();
	var newHashStr		= '';
	
	var i	= 0;
	var j	= 0;
	var cnt	= 0;
	
	for(i=0;i < cat_length;i++)
	{
		if(document.getElementsByName("category[]").item(i).checked == true)
		{
			checkedArray[cnt] = document.getElementsByName("category[]").item(i).value;
			cnt++;
		}
	}
	if(checkedArray.length > 0)
	{
		for(j=0;j<checkedArray.length;j++)
		{
			if(j==0){	newHashStr = "category="+checkedArray[j];	}
			else	{	newHashStr += "&category="+checkedArray[j];	}
		}
	}
	return newHashStr;
}
