///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////  A J A X    S U P P O R T    //////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

var ajax_http_request = false;
var ajax_post_obj_message = null;
var ajax_get_obj_message = null;

var ajax_call_func = null;
var ajax_result_obj = null;

///////////////////////////////////////////////////////////////////////////////////////////
////////////////    G E T    //////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

function ajax_makeGETRequest(url, parameters, func, result) {

      ajax_http_request = false;
	ajax_call_func = func;
	ajax_result_obj = result;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         ajax_http_request = new XMLHttpRequest();
         if (ajax_http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            ajax_http_request.overrideMimeType('text/html');
         }
      }
      else
      if (window.ActiveXObject) { // IE

         try {
            ajax_http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               ajax_http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!ajax_http_request)
         return false;
      ajax_http_request.onreadystatechange = ajax_alertGet;

	// 23.11.2008 changed parameter from false to to true to make it work also in firefox
      ajax_http_request.open("GET", url, true);
      ajax_http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");	
      //ajax_http_request.setRequestHeader("Content-length", parameters.length);
      ajax_http_request.setRequestHeader("Connection", "close");
      ajax_http_request.send(parameters);
}

///////////////////////////////////////////////////////////////////////////////////////////

function ajax_alertGet() {

	//alert("ajax_http_request.readyState: " + ajax_http_request.readyState);
      if (ajax_http_request.readyState == 4) {
		//alert("ajax_http_request.status: " + ajax_http_request.status);
         if (ajax_http_request.status == 200) {		
             var result = ajax_http_request.responseText;
		//alert(result);
		 if (ajax_call_func != null) {
			ajax_result_obj.value = result;
			var stat = ajax_call_func();
		 }
         } else {
			ajax_result_obj.value = "ERROR";
	   }
      }
}

///////////////////////////////////////////////////////////////////////////////////////////

function ajax_makeGETRequestSync(url, parameters, func, obj) {

      ajax_http_request = false;

	ajax_call_func = func;

	ajax_get_obj_message = obj;

      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         ajax_http_request = new XMLHttpRequest();
         if (ajax_http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            ajax_http_request.overrideMimeType('text/html');
         }
      }
      else
      if (window.ActiveXObject) { // IE
         try {
            ajax_http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               ajax_http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }

      if (!ajax_http_request)
         return false;

      ajax_http_request.open("GET", url, false);

      ajax_http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");	
      ajax_http_request.setRequestHeader("Content-length", parameters.length);

      ajax_http_request.setRequestHeader("Connection", "close");

      ajax_http_request.send(parameters);

      var result = ajax_http_request.responseText;

	if (ajax_get_obj_message != null)
		 ajax_get_obj_message.value = result;

	if (ajax_call_func != null) {
	 	var stat = ajax_call_func();
	}

}

///////////////////////////////////////////////////////////////////////////////////////////
////////////////    P O S T    ////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

function ajax_makePOSTRequest(url, parameters, obj) {

      ajax_http_request = false;

	ajax_post_obj_message = obj;

      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         ajax_http_request = new XMLHttpRequest();
         if (ajax_http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            ajax_http_request.overrideMimeType('text/html');
         }
      }
      else
      if (window.ActiveXObject) { // IE

         try {
            ajax_http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               ajax_http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }

      if (!ajax_http_request)
         return false;

      ajax_http_request.onreadystatechange = ajax_alertPost;
      ajax_http_request.open("POST", url, true);
      ajax_http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");	
      ajax_http_request.setRequestHeader("Content-length", parameters.length);
      ajax_http_request.setRequestHeader("Connection", "close");
      ajax_http_request.send(parameters);
}

///////////////////////////////////////////////////////////////////////////////////////////

function ajax_alertPost() {

      if (ajax_http_request.readyState == 4) {
         if (ajax_http_request.status == 200) {		
             var result = ajax_http_request.responseText;
		 if (ajax_post_obj_message != null)
			 ajax_post_obj_message.value = "1";
         } else {
		 if (ajax_post_obj_message != null)
			 ajax_post_obj_message.value = "0";
         }
      }
}

///////////////////////////////////////////////////////////////////////////////////////////

function ajax_makePOSTRequestSync(url, parameters, func, obj) {

      ajax_http_request = false;

	ajax_call_func = func;

	ajax_post_obj_message = obj;

      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         ajax_http_request = new XMLHttpRequest();
         if (ajax_http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            ajax_http_request.overrideMimeType('text/html');
         }
      }
      else
      if (window.ActiveXObject) { // IE
         try {
            ajax_http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               ajax_http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }

      if (!ajax_http_request)
         return false;

      ajax_http_request.open("POST", url, false);

      ajax_http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");	
      ajax_http_request.setRequestHeader("Content-length", parameters.length);

      ajax_http_request.setRequestHeader("Connection", "close");

      ajax_http_request.send(parameters);

      var result = ajax_http_request.responseText;

	if (ajax_post_obj_message != null)
		 ajax_post_obj_message.value = result;

	if (ajax_call_func != null) {
	 	var stat = ajax_call_func();
	}

}

///////////////////////////////////////////////////////////////////////////////////////////
