
var ajaxXHR;
var ajaxRHP;

var ajaxFRM;

var ajaxLI;

function ajaxRequestSender(form, target, qs, dom, resHandler, resHandlerParam, method, async,loadingIndicator) {
  ajaxRHP = resHandlerParam;
  ajaxFRM = form;
  ajaxLI = loadingIndicator;
  try {
    if (window.XMLHttpRequest){
      ajaxXHR = new XMLHttpRequest();
    } else {
      ajaxXHR = new ActiveXObject('Microsoft.XMLHTTP');
    }
    ajaxXHR.onreadystatechange = resHandler;
    
    //	2010.09.06@SO Fix per Url Semantiche. Se non c'è aggiungo la Contex Root...
    if (target.indexOf('/') != 0) {
    	target = '/' + window.w3gContex + '/' + target;
    }
    
    ajaxXHR.open(method, target + qs, async);
    if (method=='POST')
    	 ajaxXHR.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    ajaxXHR.send(dom);
  } catch(e) {
    alert(e.message);
  }
}

function StdQueryString(form, target, param, resHandler, resHandlerParam, method) {
  qs = '';
  nvp = param.split(',');
  i = 0;
  while (i < nvp.length) {
    if (qs == '')  { qs += '?'; }
    if (qs != '?') { qs += '&'; }
    nav = nvp[i].split('=');
    if (nav[1].charAt(0) == '\'') {
      fe = nav[1].substring(1, nav[1].length - 1);
    } else {
      fe = eval('document.' + form.name + '.' + nav[1]);
      fe = fe.value;
    }
    qs += nav[0] + '=' + escape(fe);
    i++;
  }
  ajaxRequestSender(form, target, qs, null, resHandler, resHandlerParam, method, true);
}
/**
	A differenza di StdQueryString il parametro "param" deve contenere gia' la query string
	completa di punto di domanda ed &.
	Inoltre rende visibile l'elemento con id  indicato dal parametro loadingIndicator"
*/
function StartIndicatorQueryString(target, param, resHandler, resHandlerParam, method,loadingIndicator) {
  setElementVisibility(loadingIndicator,true);
  ajaxRequestSender(null, target, param, null, resHandler, resHandlerParam, method, true,loadingIndicator);
}


/**
	A differenza di StdQueryString il parametro "param" deve contenere gia' la query string
	SENZA punto di domanda ed &.
	Inoltre rende visibile l'elemento con id  indicato dal parametro loadingIndicator"
*/
function StartIndicatorPostQueryString(target, param, resHandler, resHandlerParam, loadingIndicator) {
  setElementVisibility(loadingIndicator,true);
  ajaxRequestSender(null, target, null, param, resHandler, resHandlerParam, "POST", true,loadingIndicator);
}

function StdInnerHTML() {
  if (ajaxXHR.readyState == 4) {
    if (ajaxXHR.status == 200) {
      document.getElementById(ajaxRHP).innerHTML = ajaxXHR.responseText;
    } else {
      alert(ajaxXHR.status);
    }
  }
}
/**
	Come StdInnerHTML solo che rende nascosto l'elemento con id presente nella variabile
	globale ajaxLI.
*/
function StopIndicatorInnerHTML() {
  if (ajaxXHR.readyState == 4) {
    if (ajaxXHR.status == 200) {
   	  editMode=false;
      document.getElementById(ajaxRHP).innerHTML = ajaxXHR.responseText;
      setElementVisibility(ajaxLI,false);
      recallAfterAjax();
    } else {
      alert(ajaxXHR.status);
    }
  }
}




