/* 

readyState Codes:
	0 = uninitialized
	1 = loading
	2 = loaded
	3 = interactive
	4 = complete

*/

function XmlHttpPost(oEvent) {

	var Request;  

	try {
		// Opera 8.0+, Firefox, Safari
		Request = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			Request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				Request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				alert("Use the button for adding to shopping cart.");
				return false;
			}
		}
	}
	
	// Create a function that will receive data sent from the server


	var Url = "formcatcher.php?"
		  + "DataString=" + GetFormData(oEvent.name) 
			+ "&EventName=" + oEvent.name 
			+ "&EventId=" + oEvent.id
			+ "&PageName=" + window.location;

	Request.open("POST", Url, true);

	Request.onreadystatechange = function() {
		if(Request.readyState == '4'){
			ProcessResult(Request);
		}
	}

	Request.send(null); 

}

function ProcessResult(Request) {

	if (Request.responseText != "" && Request.responseText != null) {
		// debugging - very usefull
	// alert(Request.responseText);
		eval(Request.responseText);
	}

}

function GetFormData(EventName) {

	var oForm = document.tmp_form;
  var FormData = "";
	var Identifier = "";
	
		if (EventName.indexOf("ajax_sort") != -1) {
			oEventName = EventName.split("__");
			Identifier = oEventName[(oEventName.length-1)];
		} 
		
   for(i=0; i<oForm.elements.length; i++){
	
		if ((oForm.elements[i].name).indexOf("ajax_")) {
			continue;
		}

		if ((oForm.elements[i].name).indexOf("ajax_sort") != -1) {
			oEventName = (oForm.elements[i].name).split("__");
			if (oEventName.length == 3 || oEventName.length == 4) {
				if (Identifier != oEventName[(oEventName.length-1)]) {
					continue;
				} 
			}
		}
	
   FormData += "Type_:_" + oForm.elements[i].type + "*~*"
   FormData += "Name_:_" + oForm.elements[i].name + "*~*"

      if(oForm.elements[i].type == "text" || oForm.elements[i].type == "textarea" || oForm.elements[i].type == "button"){
      FormData += "Value_:_ " + escape(oForm.elements[i].value) + "*~*"
      }
      else if(oForm.elements[i].type == "checkbox"){
      FormData += "Checked_:_" + oForm.elements[i].checked + "*~*"
      }
      else if(oForm.elements[i].type == "select-one"){
      FormData += "Selected_:_ " + oForm.elements[i].options[oForm.elements[i].selectedIndex].text + "*~*"
      }
      FormData += "_*_";
   }

return FormData += "_*_";

}