var urlLast = "";
var xhr1, xhr2;
var url = "";
		
function ajaxCall( urlLast, reloadMenuBool ) {

	    var reloadMenuBool = reloadMenuBool || true;
	 	
	    try {
			xhr1 = new ActiveXObject('Msxml2.XMLHTTP');
		}
	    catch (e) 
	    {
	        try {
				xhr1 = new ActiveXObject('Microsoft.XMLHTTP');
			}
	        catch (e2) 
	        {
	          try {
	          	xhr1 = new XMLHttpRequest();
	          }
	          catch (e3) {
				xhr1 = false;
			  }
	        }
	     }
	  
	   var urlFirst = window.location.href.substring(0, window.location.href.lastIndexOf("/")) + "/";
	   url = urlFirst + urlLast;
	   
	   	xhr1.onreadystatechange  = function()
	    { 
	         if(xhr1.readyState  == 4)
	         {
	              if(xhr1.status  == 200) { 
	                  reloadMenu( reloadMenuBool );
	              } else {
	                  //alert("Error in saving the cart.");
	              }
	         }
	    }; 
	    

	   xhr1.open("GET", url,  true); 
	   xhr1.send(null); 
	   
	   	
	}
	
	function reloadMenu( reloadMenuBool ) {
	    try {
			xhr2 = new ActiveXObject('Msxml2.XMLHTTP');
		}
	    catch (e) 
	    {
	        try {
				xhr2 = new ActiveXObject('Microsoft.XMLHTTP');
			}
	        catch (e2) 
	        {
	          try {
	          	xhr2 = new XMLHttpRequest();
	          }
	          catch (e3) {
				xhr2 = false;
			  }
	        }
	     }
	
		xhr2.onreadystatechange  = function()
	    { 
	         if(xhr2.readyState  == 4)
	         {
	              if(xhr2.status  == 200) { 

					if( reloadMenuBool ) {
		              		window.setTimeout( "writeMenuOnPage()", 200 );
		              	}
		              
	              } else {
	                 document.getElementById("hcart").innerHTML = "Error in saving cart.";
	              }
	         }
	    }; 
			       
//		url = urlFirst + "IllyUS/include/ViewCartMenu.jsp";
		url = window.location.href.split("#")[0];
	   
		xhr2.open("GET", url,  true); 
		xhr2.send(null);    
	}
	
	
	
	
	function writeMenuOnPage( ) {

               //alert( "writeMenu" );

	  var documentString = xhr2.responseText;
	              
	  var startIndex = documentString.indexOf( "<!-- start view cart menu -->" );
	  var endIndex = documentString.indexOf( "<!-- end view cart menu -->" );
	  
	  documentString = documentString.substring(startIndex, endIndex);
	  
	  document.getElementById("hcart").innerHTML = documentString;
	  
	  _h_cartLayer();

	}
	
	
function xmlhttpPost(strURL,formname, loading) {
    var xmlHttpReq = false;
    var self = this;
    try {
				self.xmlHttpReq = new ActiveXObject('Microsoft.XMLHTTP');
	}
	catch (e){   
		try {
			self.xmlHttpReq = new ActiveXObject('Msxml2.XMLHTTP');
		}
	    catch (e2) {
	        try {
		self.xmlHttpReq = new XMLHttpRequest();
			}
			catch (e3) {
				self.xmlHttpReq = false;
			}
	    }
	}
	     
    var urlFirst = window.location.href.substring(0, window.location.href.lastIndexOf("/")) + "/";
    var URL= urlFirst+strURL+'?'+getquerystring(formname);
    window.scrollTo(0,0);

   	self.xmlHttpReq.open('GET', URL, true);
   	self.xmlHttpReq.setRequestHeader("connection", "close"); 
	
	var content = document.getElementById("contentCartElement");
	if(content == null){
		content = document.createElement("ul");
		content.setAttribute("id", "contentCartElement");
		document.getElementById("hcart").appendChild(content);
	}
	var wait = document.createElement("ul");
	content.innerHTML = "<li><div><form action=\"#\" method=\"post\"><fieldset><div style=\"background: #FFFFFF url("+loading+") no-repeat center center; height: 150px\"/></fieldset></form></div></li>";
	self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
			// Quando pronta, visualizzo la risposta del form
			var documentString = self.xmlHttpReq.responseText;     
			var startIndex = documentString.indexOf( "<!-- start view cart menu -->" );
			var endIndex = documentString.indexOf( "<!-- end view cart menu -->" ); 
			var documentStringCart = documentString.substring(startIndex, endIndex);
            document.getElementById("hcart").innerHTML = documentStringCart;
            
       	  _show_cart_menu();
       	  _h_cartLayer();
           
        }
		else{
			// In attesa della risposta del form visualizzo il msg di attesa
			_show_cart_menu();
			
		}
    }

    self.xmlHttpReq.send(null);
	
}

function getquerystring(formname) {
    var form = document.forms[formname];
	var qstr = "";
	
    function GetElemValue(name, value) {
        qstr += (qstr.length > 0 ? "&" : "")
            + escape(name).replace(/\+/g, "%2B") + "="
            + escape(value ? value : "").replace(/\+/g, "%2B");
			//+ escape(value ? value : "").replace(/\n/g, "%0D");
    }
	
	var elemArray = form.elements;
    
    for (var i = 0; i < elemArray.length; i++) {
    	var element = elemArray[i];
        if (element.name != null) {
        	var elemName = element.name;
	       	var elemType = element.type.toUpperCase();
			 
	        if (elemName) {
	        	
	            if (elemType == "TEXT"
	                    || elemType == "TEXTAREA"
	                    || elemType == "PASSWORD"
						|| elemType == "BUTTON"
						|| elemType == "RESET"
						|| elemType == "SUBMIT"
						|| elemType == "FILE"
						|| elemType == "IMAGE"
	                    || elemType == "HIDDEN")
	                GetElemValue(elemName, element.value);
	            else if (elemType == "CHECKBOX" && element.checked)
	                GetElemValue(elemName, 
	                    element.value ? element.value : "On");
	            else if (elemType == "RADIO" && element.checked)
	                GetElemValue(elemName, element.value);
	            else if (elemType.indexOf("SELECT") != -1)
	                for (var j = 0; j < element.options.length; j++) {
	                    var option = element.options[j];
	                    if (option.selected)
	                        GetElemValue(elemName,
	                            option.value ? option.value : option.text);
	                }
	        }
	    }
       
    }
    return qstr;
}
