var xmlHttp;
var capCallForPrice='Call for Price';
// fetch xmlhttp object
function GetXmlHttpObject() {
	var xmlHttp=null;
	try {
	 	xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
	} catch (e) { //Internet Explorer	 
			try	{
	  			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	  		} catch (e) {
	  			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	  		}
	}
	return xmlHttp;
}
// Set ajax event parameters
function setajaxeventparms(name, ajaxvar1, ajaxvar2) {
	
	ajaxvar1 = ajaxvar1 || 0; // optional parameter. param = 0 if no value assigned (required to fix an IE ajax issue)
	ajaxvar2 = ajaxvar2 || 0; // optional parameter. param = 0 if no value assigned (required to fix an IE ajax issue)	
	
	switch (name) {
		case 'login': //login user			
			document.getElementById('ajaxeventname').value=name;			
			submitform('frmlogin');
			break;
		case 'logout':
			document.getElementById('ajaxeventname').value=name;
			document.getElementById('ajaxreturl').value=ajaxvar1;			
			logoutuser();
			break;
		case 'resetpassword':
			document.getElementById('ajaxeventname').value=name;
			resetpassword('frmresetpassword');
			break;
		case 'changepassword':
			document.getElementById('lblspinnerpassword').style.display='';
			document.getElementById('ajaxeventname').value=name;
			changepassword('frmchangepassword');
			break;
		case 'profile':
			document.getElementById('lblspinnerprofile').style.display='';
			document.getElementById('ajaxeventname').value=name;			
			updateprofile('frmprofile');
			break;
		case 'addtocart':
			document.getElementById('lblspinnerproducts').style.display='';
			document.getElementById('ajaxeventname').value=name;
			document.getElementById('ajaxvar').value=ajaxvar1; //ajaxvar1 = productid
			addtocart('frmcart');
			break;
		case 'updatecart':
			document.getElementById('lblspinnercart').style.display='';
			document.getElementById('ajaxeventname').value=name;
			document.getElementById('ajaxvar').value=ajaxvar1; //ajaxvar1 = cartid
			updatecart('frmcart');
			break;
		case 'deletecartitem':
			document.getElementById('lblspinnercart').style.display='';
			document.getElementById('ajaxeventname').value=name;
			document.getElementById('ajaxvar').value=ajaxvar1; //ajaxvar1 = cart itemid			
			deletecartitem();			
			break;
		case 'countcartitems':
			document.getElementById('ajaxeventname').value=name;
			countcartitems();
			break;
		case 'submitorder':
			document.getElementById('lblspinnercart').style.display='';
			document.getElementById('ajaxeventname').value=name;
			submitorder();
			break;
		case 'showorderdetails':
			document.getElementById('ajaxeventname').value=name;
			document.getElementById('ajaxvar').value=ajaxvar1; //ajaxvar1 = order code
			showorderdetails();
			document.getElementById('lblspinnerorders').style.display='';			
			break;
	}
}
//submit login form
function submitform(formname) {	
	
	if (this.isvalidform(formname)) {
		
		//showspinner();
		xmlHttp=GetXmlHttpObject();	
		if (xmlHttp==null) {
			alert ("Browser does not support HTTP Request");
			return
		}
		var un=document.getElementById('txtusername').value;
		var pw=document.getElementById('txtpassword').value;
   		var returl=document.getElementById('returl').value;		
		
		var url="includes/ajaxevents.php";	
		url=url+"?action=login";
		url=url+"&un="+un+"&pw="+pw+"&returl="+returl;
		url=url+"&sid="+Math.random();
		
		xmlHttp.onreadystatechange=stateChanged;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);	
	}
}
//logs out user
function logoutuser(returl) {	
	xmlHttp=GetXmlHttpObject();	
	if (xmlHttp==null) {
		alert ("Browser does not support HTTP Request");
		return
	}	
	var url="includes/ajaxevents.php";
	url=url+"?action=logout";
	url=url+"&sid="+Math.random();	
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);	
}
//resets password
function resetpassword(formname) {	
	if (this.isvalidform(formname)) {
		var email=document.getElementById('txtemail').value;   		
		//showspinner();
		xmlHttp=GetXmlHttpObject();	
		if (xmlHttp==null) {
			alert ("Browser does not support HTTP Request");
			return
		}
		var url="includes/ajaxevents.php";	
		url=url+"?action=resetpassword";
		url=url+"&email="+email;
		url=url+"&sid="+Math.random();
		xmlHttp.onreadystatechange=stateChanged;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);	
	}	
}
//change password
function changepassword(formname) {	
	if (this.isvalidform(formname)) {		
		var txtcurrentpassword=document.getElementById('txtcurrentpassword').value;
		currentpassword=md5(txtcurrentpassword);
		var txtnewpassword=document.getElementById('txtnewpassword').value;
		//showspinner();
		xmlHttp=GetXmlHttpObject();	
		if (xmlHttp==null) {
			alert ("Browser does not support HTTP Request");
			return
		}
		var url="includes/ajaxevents.php";	
		url=url+"?action=changepassword";
		url=url+"&currentpassword="+currentpassword+"&newpassword="+txtnewpassword;
		url=url+"&sid="+Math.random();
		xmlHttp.onreadystatechange=stateChanged;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);	
	} else document.getElementById('lblspinnerpassword').style.display='none';
}
//update profile information
function updateprofile(formname) {	
	if (this.isvalidform(formname)) {
		//showspinner();
		xmlHttp=GetXmlHttpObject();	
		if (xmlHttp==null) {
			alert ("Browser does not support HTTP Request");
			return
		}
		var userid    	   =document.getElementById('userid').value;
		var username       =document.getElementById('username').value;	
		var email	  	   =document.getElementById('txtemail').value;
		var firstname 	   =document.getElementById('txtfirstname').value;
		var lastname       =document.getElementById('txtlastname').value;
		var contactno      =document.getElementById('txtcontactno').value;	
		var faxno          =document.getElementById('txtfaxno').value;	
		var street         =document.getElementById('txtstreet').value;	
		var citytown	   =document.getElementById('txtcitytown').value;
		var stateprovince  =document.getElementById('txtstateprovince').value;
		var zipcode	       =document.getElementById('txtzipcode').value;
		var country        =document.getElementById('ddlcountry').value;	
		var companyname    =document.getElementById('txtcompanyname').value;	
		var companyaddress =document.getElementById('txtcompanyaddress').value;	
		var position       =document.getElementById('txtposition').value;	
		
		var url="includes/ajaxevents.php";	
		url=url+"?action=updateprofile";
		url=url+"&userid="+userid+"&username="+username+"&email="+email+"&firstname="+firstname+"&lastname="+lastname+"&contactno="+contactno+"&faxno="+faxno;
		url=url+"&street="+street+"&citytown="+citytown+"&stateprovince="+stateprovince+"&zipcode="+zipcode+"&country="+country;
		url=url+"&companyname="+companyname+"&companyaddress="+companyaddress+"&position="+position;		
		url=url+"&sid="+Math.random();
		xmlHttp.onreadystatechange=stateChanged;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);	
	} else document.getElementById('lblspinnerprofile').style.display='none';
}
//delete an item from cart
function deletecartitem() {	
	//showspinner();
	xmlHttp=GetXmlHttpObject();	
	if (xmlHttp==null) {
		alert ("Browser does not support HTTP Request");
		return
	}
	var itemid=document.getElementById('ajaxvar').value; //id of added product
	var url="includes/ajaxevents.php";	
	url=url+"?action=deletecartitem&itemid="+itemid;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);	
}
//adds an item to cart
function addtocart(formname) {
	if (this.isvalidform(formname)) {
		//showspinner();
		xmlHttp=GetXmlHttpObject();	
		if (xmlHttp==null) {
			alert ("Browser does not support HTTP Request");
			return
		}
		var pid=document.getElementById('ajaxvar').value; //id of added product
		var qty=document.getElementById('txtquantity_'+pid).value; //get quantity
		var url="includes/ajaxevents.php";	
		url=url+"?action=addtocart&pid="+pid+"&qty="+qty;
		url=url+"&sid="+Math.random();
		xmlHttp.onreadystatechange=stateChanged;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	} else document.getElementById('lblspinnerproducts').style.display='none';
}
//updates item quantity, item cost & total cost of all items
function updatecart(formname) {
	if (this.isvalidform(formname)) {
		//showspinner();
		xmlHttp=GetXmlHttpObject();	
		if (xmlHttp==null) {
			alert ("Browser does not support HTTP Request");
			return
		}
		var itemid=document.getElementById('ajaxvar').value; //cart item id
		var qty=document.getElementById('txtquantity_'+itemid).value; //get quantity
		var price=document.getElementById('lblprice_'+itemid).innerHTML; //get cost
		if (common.trimStr(price)==capCallForPrice) {
			price=0;
		}
		var url="includes/ajaxevents.php";		
		url=url+"?action=updatecart&itemid="+itemid+"&qty="+qty+"&price="+price;
		url=url+"&sid="+Math.random();
		xmlHttp.onreadystatechange=stateChanged;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	} else document.getElementById('lblspinnercart').style.display='none';
}
//counts number of items in cart
function countcartitems() {
	xmlHttp=GetXmlHttpObject();	
	if (xmlHttp==null) {
		alert ("Browser does not support HTTP Request");
		return
	}
	//var userid=document.getElementById('ajaxvar').value; //userid
	var url="includes/ajaxevents.php";
	url=url+"?action=countcartitems";
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}
//updates total cost of an item 
function updatecost(itemid) {
	var qty=document.getElementById('txtquantity_'+itemid).value;	
	var price=document.getElementById('lblprice_'+itemid).innerHTML;
	if (common.trimStr(price)==capCallForPrice) {
		price=0;
	}
	var product=(qty*price);	
	document.getElementById('lblcost_'+itemid).innerHTML=product.toFixed(2);
}
//submit items in shopping cart
function submitorder() {
	xmlHttp=GetXmlHttpObject();	
	if (xmlHttp==null) {
		alert ("Browser does not support HTTP Request");
		return
	}
	var totalcost=document.getElementById('lbltotalcost').innerHTML;
	var comments=document.getElementById('txtcomments').value;
	var url="includes/ajaxevents.php";
	url=url+"?action=submitorder&totalcost="+totalcost+'&comments='+comments;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}
//show order details
function showorderdetails() {
	xmlHttp=GetXmlHttpObject();	
	if (xmlHttp==null) {
		alert ("Browser does not support HTTP Request");
		return
	}
	var ordercode=document.getElementById('ajaxvar').value; //order code
	var url="includes/ajaxevents.php";
	url=url+"?action=showorderdetails&ordercode="+ordercode;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}
// Called when ajax event has completed (xmlHttp.onreadystatechange=stateChanged)
function stateChanged() {
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {		 	 		
		var ajaxeventname=document.getElementById('ajaxeventname').value;
		 switch(ajaxeventname) {
			case 'login':				
			 	document.getElementById("divlogin").innerHTML=xmlHttp.responseText;				
				if (xmlHttp.responseText == 'Redirecting...') {
					returl=document.getElementById('ajaxreturl').value;
					if (returl) window.location=returl;
					else window.location='myaccount.php';
				}
			 	break;
			case 'logout':
			 	returl=document.getElementById('ajaxreturl').value;
				window.location=returl;
			 	break;
			case 'resetpassword':
			 	document.getElementById("divreset").innerHTML=xmlHttp.responseText;
				break;	
			case 'changepassword':
			 	document.getElementById("divchangepw").innerHTML=xmlHttp.responseText;
				document.getElementById("txtcurrentpassword").value='';
				document.getElementById("txtnewpassword").value='';
				document.getElementById("txtcnewpassword").value='';
				document.getElementById('lblspinnerpassword').style.display='none';
				break;	
			case 'profile':
			 	document.getElementById('divprofile').innerHTML         =xmlHttp.responseText;
				document.getElementById('_lblfirstname').innerHTML      =document.getElementById('txtfirstname').value;
				document.getElementById('_lbllastname').innerHTML       =document.getElementById('txtlastname').value;
				document.getElementById('_lblemail').innerHTML          =document.getElementById('txtemail').value;
				document.getElementById('_lblcontactno').innerHTML      =document.getElementById('txtcontactno').value;
				document.getElementById('_lblfaxno').innerHTML          =document.getElementById('txtfaxno').value;
				document.getElementById('_lblstreet').innerHTML         =document.getElementById('txtstreet').value;
				document.getElementById('_lblcitytown').innerHTML       =document.getElementById('txtcitytown').value;
				document.getElementById('_lblstateprovince').innerHTML  =document.getElementById('txtstateprovince').value;
				document.getElementById('_lblzipcode').innerHTML        =document.getElementById('txtzipcode').value;
				document.getElementById('_lblcountry').innerHTML        =document.getElementById('ddlcountry').value;
				document.getElementById('_lblcompanyname').innerHTML    =document.getElementById('txtcompanyname').value;
				document.getElementById('_lblcompanyaddress').innerHTML =document.getElementById('txtcompanyaddress').value;
				document.getElementById('_lblposition').innerHTML       =document.getElementById('txtposition').value;
				seteditform(false);
				document.getElementById('lblspinnerprofile').style.display='none';
				break;
			case 'addtocart':				
				var pid=document.getElementById('ajaxvar').value;				
				var divname='divproduct_'+pid;				
				document.getElementById(divname).innerHTML=''; //clear div
			 	document.getElementById(divname).innerHTML='<img src="images/added_to_list.jpg" height="22" width="113" alt="Add to WishList" border="0" />';
				document.getElementById('lblheadercounter').innerHTML=xmlHttp.responseText;
				document.getElementById('ajaxvar').value='';
				document.getElementById('lblspinnerproducts').style.display='none';
				break;
			case 'updatecart':
				var itemid=document.getElementById('ajaxvar').value;				
				document.getElementById('lblproduct_'+itemid).innerHTML='* Qty updated.';
				document.getElementById('lbltotalcost').innerHTML=xmlHttp.responseText;
				document.getElementById('ajaxvar').value='';
				updatecost(itemid);	
				document.getElementById('lblspinnercart').style.display='none';
				break;
			case 'deletecartitem':				
				var itemid=document.getElementById('ajaxvar').value;				
				document.getElementById('rowcartitem_'+itemid).style.display='none';
				var quantity_totalcost=xmlHttp.responseText;
				var arr_quantity_totalcost=quantity_totalcost.split("_");
				document.getElementById('lblcartcounter').innerHTML=arr_quantity_totalcost[0];   //cart page cart item counter
				document.getElementById('lblheadercounter').innerHTML=arr_quantity_totalcost[0]; //header cart item counter				
				document.getElementById('lbltotalcost').innerHTML=arr_quantity_totalcost[1]; //total cost
				if (arr_quantity_totalcost[1]=='0.00') document.getElementById('btnsubmitorder').disabled=true;
				else document.getElementById('btnsubmitorder').disabled=false;
				document.getElementById('ajaxvar').value='';
				document.getElementById('lblspinnercart').style.display='none';
				break;
			case 'countcartitems':
				document.getElementById('lblcartcounter').innerHTML=xmlHttp.responseText;
				document.getElementById('ajaxvar').value='';
				break;
			case 'submitorder':
				var ordercode=xmlHttp.responseText;
				document.getElementById('ajaxvar').value='';
				alert('Your Wish List (ID: '+ordercode+') has been successfully submitted! We will be contacting you as soon as possible. Thank you!');
				document.getElementById('lblspinnercart').style.display='none';
				window.location='myaccount.php?c=orders';
				break;
			case 'showorderdetails':
				document.getElementById('divorderdetails').innerHTML=xmlHttp.responseText;
				document.getElementById('ajaxvar').value='';
				document.getElementById('lblspinnerorders').style.display='none';			
				break;
		 }
		 document.getElementById('ajaxeventname').value=''; //clear tag value		 
	}
	
}