// JavaScript Document
var http_request = false;

/**
 * Submits a form using POST method to specified url
 * params:
 * form 			- HTML form object for submit. Note action property of form is ignored, 
 *					instead of that we use url param
 * url 				- URL where this form should be posted to
 * responseHandler 	- javascript method which wil be called when this request is 
 * 					responsed by server
 *
 */
function submitForm( form , url, responseHandler ) {
	
	var requestData="";
	var elements = form.elements;
	for (var i = 0; i < elements.length;i++){
		var element = elements[i];
		if ( !((element.type == "checkbox" || element.type == "radio") && !element.checked))
		{
			// only befor first elmenet we don't need & 
			if (i > 0 ) {
				requestData+= "&" ;
			}
			requestData+= element.name + "=" + encodeURI( element.value);
		}
	}
	makePOSTRequest(url, requestData, responseHandler);
}

function makePOSTRequest(url, parameters, responseHandler) {
  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 http_request = new XMLHttpRequest();
	 if (http_request.overrideMimeType) {
		http_request.overrideMimeType('text/xml');
	 }
  } else if (window.ActiveXObject) { // IE
	 try {
		http_request = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
  }
  if (!http_request) {
	 alert('Cannot create XMLHTTP instance');
	 return false;
  }
  http_request.onreadystatechange = responseHandler;
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
}

