var global_divid;
var glob_url;
var glob_passdata;
var glob_id;
var glob_passdata2;
var OLD_RESPONSE;
var glob_frm;

/* custom function for Javascript same as PHP trim function */
function Trim(s) 
{
	
	if(s != null && s != ''  && s.length > 0) //&& s != ' '
	{		
		// Remove leading spaces and carriage returns
		while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
		{
		s = s.substring(1,s.length);
		}
		// Remove trailing spaces and carriage returns
		while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
		{
		s = s.substring(0,s.length-1);
		}
		
	}
	return s;
}

/* custom function for Javascript to check In Array  same as PHP in_array function */
function inArray(arr,value)
{
	if(arr != '' && arr != null)
	{
		for(i=0;i<arr.length;i++)
		{
			if(arr[i] == value)
			{
				return true;
			}
		}
	}
	return false;
}

function unique(a) {
	tmp = new Array(0);
	for(i=0;i<a.length;i++){
		if(!contains(tmp, a[i])){
			tmp.length+=1;
			tmp[tmp.length-1]=a[i];
		}
	}
	return tmp;
}


function contains(a, e) {
	for(j=0;j<a.length;j++)if(a[j]==e)return true;
	return false;
}

function resetCall(frm,passdata,divid,pageURL) {
	var available_attributes = new Array();
	var children = document.getElementById('filter').getElementsByTagName('*');
	
	for (x in children) {
		var child_name = ""+children[x].name+ "";
		if (child_name.indexOf('_search') != -1) {
			available_attributes.push(child_name);
		}
	}
	
	available_attributes = unique(available_attributes);
	
	for (x in available_attributes) {
		var myArr = document.getElementsByName(""+available_attributes[x]+"");
		var arrlen = myArr.length;
		var j= 0;
		for(var i=0;i<arrlen;i++) {
			myArr[i].disabled = false;
			if(myArr[i].checked) {
				myArr[i].checked = false;
				j++;
			}
		}
	}
	 
	passdata = passdata;

	FireAjax(frm,passdata,divid,pageURL);
}

function onclikCall(frm,passdata,divid,pageURL) {
	
	var myArr=new Array();
	var My=new Array();
	var Myall=new Array();
	
	var available_attributes = new Array();
	
	var cldata = "";
	var cldataall = "";
	
	var szdata = "";
	var szdataall = "";
	
	var children = document.getElementById('filter').getElementsByTagName('*');
	
	for (x in children) {
        // For some reason, IE has trouble reading the name attribute when looping through
        // these child elements. To get around this, we do a check to see if element.name is 
        // undefined (i.e. we're in IE), and if so, use x instead. 
        if(children[x].name != undefined) { var child_name = ""+children[x].name+""; }
		else { var child_name = ""+x+ ""; }
		if (child_name.indexOf('_search') != -1) {
			available_attributes.push(child_name);
		}
	}
	
	var available_attributes = unique(available_attributes);
	for (x in available_attributes) {
		if (available_attributes[x] == 'color_search') {
			myArr = document.getElementsByName("color_search");
			
			var arrlen = myArr.length;
			var j= 0;
			
			for(var i=0;i<arrlen;i++) {
				Myall[i] = myArr[i].value;
				if(myArr[i].checked) {
					My[j] = myArr[i].value;
					j++;
				}
			}
			
			cldata  = My.join(",");
			cldataall = Myall.join(",");


			passdata += "&colordata="+cldata+"&colordataall="+cldataall;
			
		} else {
			var myArr2 = document.getElementsByName(""+available_attributes[x]+"");
			
			var My2=new Array();
			var My2all=new Array();
			var arrlen2 = myArr2.length;
			var j = 0;
			
			for(var i=0;i<arrlen2;i++) {
				My2all[i] = myArr2[i].value;
				if(myArr2[i].checked) {
					My2[j] = myArr2[i].value;
					j++;
				}
			}
			
			var tempdata = My2.join(",");
			var tempdataall = My2all.join(",");
			
			if (szdata == '') {
				szdata = tempdata;
			} else {
				if (tempdata != '') {
					szdata += ","+tempdata;	
				}
			}
			
			if (szdataall == '') {
				szdataall = tempdataall;
			} else {
				if(tempdataall != '') {
					szdataall += ","+tempdataall;
				}
			}
		}
	}
	
	passdata += "&sizedata="+szdata+"&sizedataall="+szdataall;
	
	for (x in available_attributes) {
		if (cldata == '') { 
			var myArr2 = document.getElementsByName(""+available_attributes[x]+"");
			for(var i=0;i<myArr2.length;i++) {
				myArr2[i].disabled = false;
			}
		}
		if (szdata == '' ) {
			myArr = document.getElementsByName("color_search");
			for(var i=0;i<myArr.length;i++) {
				myArr[i].disabled = false;
			}
		}
	}
	
	FireAjax(frm,passdata,divid,pageURL);
}

function GetXmlHttpObject(handler)
{ 
	var objXMLHttp=null
	if (window.XMLHttpRequest)
	{
		objXMLHttp = new XMLHttpRequest()
	}
	else if (window.ActiveXObject)
	{
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
	}
	return objXMLHttp
}



function FireAjax(frm,passdata,divid,pageURL)
{
		glob_frm = frm;
		global_divid=divid;
		glob_url=pageURL;
		
		glob_passdata=passdata;
	
		var queryStr=passdata;
		queryStr = queryStr+'&sid='+Math.random();
		xmlHttp4=GetXmlHttpObject()
		if (xmlHttp4==null)
		{
			alert ("Browser does not support HTTP Request")
			return false;
		} 
		
		if(document.getElementById(divid)!=null)
		{
			document.getElementById(divid).style.display='block';
		}
		//alert(frm);
		if(document.getElementById(divid) != null) 
		{
			document.getElementById(divid).style.display = 'block';
			OLD_RESPONSE = document.getElementById(divid).innerHTML;
			document.getElementById(divid).innerHTML="<div align='center'><img src='../images/loader2.gif' ></div>"; //<span class='loader'><b>Loading...</b></span>
		}
		
		var url = pageURL;
		//alert(queryStr);
		glob_passdata2=queryStr;
		xmlHttp4.onreadystatechange= processAjax
		xmlHttp4.open("POST", url, true);
  		xmlHttp4.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  		xmlHttp4.send(queryStr);		
		//return false;
}

function processAjax()
{
	if (xmlHttp4.readyState==4 || xmlHttp4.readyState=="complete")
	{			
				
		if(document.getElementById(global_divid) != null)
		{
			//document.getElementById("load").style.display = 'none';
			document.getElementById(global_divid).innerHTML= '';
		}
		//alert(xmlHttp4.responseText);
		mydata = xmlHttp4.responseText.split('@@@');
		//alert(mydata[1]);
		tempresponse = Trim(mydata[1]);
		
		tempresponse = tempresponse.split('#@#@#');
		disidarr = Trim(tempresponse[0]);
		frmelementName = tempresponse[1];
		comma_sep = disidarr.split(',');
		
		if(frmelementName != '' ) {
			disableCheckboxes(comma_sep,frmelementName);
		}
	
		finalResponse = mydata[0];
		//alert(glob_frm);
		
		if(finalResponse.indexOf("&$&NO-PRODUCT&$&") >= 0) {
			
			temparr = finalResponse.split('&$&NO-PRODUCT&$&');
			//alert(Trim(finalResponse));
			document.getElementById(global_divid).innerHTML = OLD_RESPONSE;
			if(glob_frm.checked == true) glob_frm.checked = false;
			else if(glob_frm.checked == false) glob_frm.checked = true;  
			
			
			document.getElementById('lightboxData').innerHTML= temparr[1];
			document.getElementById('light').style.display='block';
			document.getElementById('fade').style.display='block';  
			//alert(document.body.clientHeight);
			document.getElementById('fade').style.height = document.body.clientHeight+'px';
			
			return false;
		} else {
			document.getElementById(global_divid).innerHTML = Trim(finalResponse);
		}
			
	}
}

function disableCheckboxes(idarr,frmelementName) {
	 myArr2=document.getElementsByName(frmelementName);
	 var arrlen2 = myArr2.length;
	 var j= 0;
	 var chkval = '';
	 for(var i=0;i<arrlen2;i++) {
	 	
	 	chkval = myArr2[i].value;
	 	if( inArray(idarr,chkval) ) {
	 		myArr2[i].disabled = false;
	 		
	 	} else {
	 		myArr2[i].checked = false;
	 		myArr2[i].disabled = true;
	 		
	 	}
	}
}

