	function handleDivTag(divtag){
	   var divtag;
	   return divtag;
	}
	
   function createRequestObject() {
        var req;
        if(window.XMLHttpRequest){
            req = new XMLHttpRequest();
        } else if(window.ActiveXObject) {
            req = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
            alert("There was a problem creating the XMLHttpRequest object");
        }
        return req;
    }
    
    // Make the XMLHttpRequest object
    var http = createRequestObject();
	var divhandler = new handleDivTag(null);
    var add_request_number = 0;
	var timeoutID = new Array();
	var timeoutID1 = new Array();
    function sendRequest(more,divtag) {
		if (divtag == "mini_cart") {
			document.getElementById(divtag).innerHTML = "Loading...";
			http.open("get", "mini_cart.php?"+more);
		}
		else if (divtag == "mini_account") {
			divtag = "mini_cart";
			document.getElementById(divtag).innerHTML = "Loading...";
			http.open("get", "mini_account.php?"+more);
		}
		/*if (divtag == "check_email") {
			//document.getElementById(divtag).innerHTML = "Loading...";
			http.open("get", "validate_email.php?"+more);
		}
		if (divtag  == "shipping_div") {
			document.getElementById(divtag).innerHTML = "Loading...";
			http.open("get", "shipping_forms.php?"+more);
		}
		if (divtag  == "view_orders") {
			document.getElementById(divtag).innerHTML = "Loading...";
			http.open("get", "view_orders.php?"+more);
		}
		if (divtag  == "ajax_account") {
			document.getElementById(divtag).innerHTML = "Loading...";
			http.open("get", "mini_account.php?"+more);
		}*/
        http.onreadystatechange = handleResponse;
		divhandler.divtag = divtag;
        http.send(null);
    }

    function handleResponse() {
		//alert("in handle: "+http.readyState);
        if(http.readyState == 4 && http.status == 200){
            // Text returned FROM PHP script
            var response = http.responseText;
            if(response) {
                document.getElementById(divhandler.divtag).innerHTML = response;
				setTimeout("update_view()",50);
				if (response == "&nbsp;not valid" && divhandler.divtag == "check_email") {
					document.getElementById("submit").disabled = true;
				}
				if (response == "&nbsp;" && divhandler.divtag == "check_email") {
					document.getElementById("submit").disabled = false;
				}
            }
        }
    }
	//cart functions:
	function update_product(mc_cart_product_id) {
		var more = "action=update&";
		more += "mc_cart_product_id="+document.getElementById("prod_"+mc_cart_product_id).value;
		more += "&qty="+document.getElementById("qty_"+mc_cart_product_id).value;
		setTimeout("sendRequest('"+more+"', 'mini_cart')",50);
		//sendRequest(more,'mini_cart');
		//sendRequest('action=display','cart_total');
	}
	function remove_product(mc_cart_product_id) {
		var more = "action=remove&";
		more += "mc_cart_product_id="+document.getElementById("prod_"+mc_cart_product_id).value;
		setTimeout("sendRequest('"+more+"', 'mini_cart')",50);
		//sendRequest(more,'mini_cart');
	}
	function validateInteger( strValue ) {
	  var objRegExp  = /(^-?\d\d*$)/;
	  return objRegExp.test(strValue);
	}
	function add_product(product_id,discount) {
		var more = "action=add_product&product_id="+product_id;
		if (discount=="Yes") more+="&discount=Yes";
		if (validateInteger(document.getElementById("qty_"+product_id).value)) {
			if (document.getElementById("qty_"+product_id).value <= 1000000) {
			//For var and objects
			var form_obj = document.getElementById("form_"+product_id);
			var var_line = "";
			for(i=0;i<form_obj.length;i++) {
				//alert(number[i].value);
				if (form_obj[i].name == "product_vo") {
					if (form_obj[i].value != "") var_line += form_obj[i].value +",";
					//alert(form_obj[i].value);
					//k++;
				}
			}
			if (var_line != "") {
				var length = var_line.length;
				var_line = var_line.substring(0, length-1);
				more += "&product_vo="+var_line;
			}
				more += "&qty="+document.getElementById("qty_"+product_id).value;
				if (document.getElementById("gift_wrap_"+product_id)) {
					if (document.getElementById("gift_wrap_"+product_id).checked == true) more += "&gift_wrap=Yes";
					else more += "&gift_wrap=No";
				}
				else {
					more += "&gift_wrap=No";
				}
				//+"&gift_message="+document.getElementById("gift_message_"+product_id).value;
				//alert(more);
				document.getElementById("current_add_id").value = product_id;
				document.getElementById("add_"+product_id).value = "Adding ...";
				document.getElementById("add_"+product_id).disabled = true;
				//document.getElementById("add_flag_"+product_id).innerHTML = "Adding Product ...";
				//alert(add_request_number);
				//setTimeout("sendRequest('"+more+"', 'mini_cart')",100);
				//alert(more);
				sendRequest(more, 'mini_cart');
			}
			else {
				document.getElementById("qty_"+product_id).style.color = 'red';
			}
		}
		else {
			document.getElementById("qty_"+product_id).style.color = 'red';
		}
	}
	function change_zip() {
		var more = "action=zip&zip="+document.getElementById("zip").value;
		//setTimeout("sendRequest('"+more+"', 'mini_cart')",100);
		sendRequest(more,'mini_cart');
	}
	
	function clear_cart() {
		var more = "action=clear_cart";
		sendRequest(more,'mini_cart');
	}
	
	function update_shipping() {
		var more = "action=shipping&shipping="+document.getElementById("shipping").value;
		//setTimeout("sendRequest('"+more+"', 'mini_cart')",100);
		sendRequest(more,'mini_cart');
	}
	function display_cart() {
		if (document.getElementById("mini_cart").style.display == "none") document.getElementById("mini_cart").style.display='block';
		else document.getElementById("mini_cart").style.display='none';
		//update_view();
	}
	function add_coupon() {
		if (document.getElementById("coupon").value != "") {
			var more = "action=coupon&coupon="+document.getElementById("coupon").value;
			sendRequest(more, "mini_cart");
		}
	}
	function update_view() {
		http.open("get", "cart_total.php");
		http.onreadystatechange = handleResponse1;
		http.send(null);
	}
	function handleResponse1() {
	   if(http.readyState == 4 && http.status == 200){
		  var response = http.responseText;
		  if(response) {
			 // UPDATE ajaxTest content
			 document.getElementById("cart_total").innerHTML = response;
			 if (document.getElementById("current_add_id").value != "") {
			 	document.getElementById("add_"+document.getElementById("current_add_id").value).value = "Add";
			 	document.getElementById("add_"+document.getElementById("current_add_id").value).disabled = false;
				//document.getElementById("add_flag_"+document.getElementById("current_add_id").value).innerHTML = "product added :)";
				document.getElementById("current_add_id").value = "";
				alert("The product has been added to your cart.");
			 }
		  }
	
	   }
	
	}
//
	function register_form() {
		var err = "";
		if (!validateNotEmpty(document.getElementById("fname").value)) err += "First Name is missing.\n";
		if (!validateNotEmpty(document.getElementById("lname").value)) err += "Last Name is missing.\n";
		if (!validateNotEmpty(document.getElementById("password_reg").value)) err += "Password is missing.\n";
		if (!validateNotEmpty(document.getElementById("email_reg").value)) err += "Email is missing.\n";
		if (err == "") {
			return true;
		}
		else {
			alert(err);
			return false;
		}
	}
	function validateNotEmpty( strValue ) {
	   var strTemp = strValue;
	   strTemp = trimAll(strTemp);
	   if(strTemp.length > 0){
		 return true;
	   }
	   return false;
	}
	function trimAll( strValue ) {
	 var objRegExp = /^(\s*)$/;
		//check for all spaces
		if(objRegExp.test(strValue)) {
		   strValue = strValue.replace(objRegExp, '');
		   if( strValue.length == 0)
			  return strValue;
		}
	   //check for leading & trailing spaces
	   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
	   if(objRegExp.test(strValue)) {
		   //remove leading and trailing whitespace characters
		   strValue = strValue.replace(objRegExp, '$2');
		}
	  return strValue;
	}
	function validate_email() {
		var more = "email="+document.getElementById("email_reg").value;
		sendRequest(more,'check_email');
	}
	function clear_check() {
		document.getElementById("check_email").innerHTML = "&nbsp;";
	}