/*
ritorna un elemento 
*/
function getID(id_elemento) {
	var elemento;
	if (document.getElementById)
		elemento = document.getElementById(id_elemento);
	else
		elemento = document.all[id_elemento];
	return elemento;
};
	
// assegna un oggetto XMLHttpRequest
function assegnaXMLHttpRequest() {
	var
		XHR = null,
		browserUtente = navigator.userAgent.toUpperCase();
	if (typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
		XHR = new XMLHttpRequest();
	else if (window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) {
		if (browserUtente.indexOf("MSIE 5") < 0)
			XHR = new ActiveXObject("Msxml2.XMLHTTP");
		else
			XHR = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return XHR;
};

// apertura/chiusura ID
function openDiv(divName) { getID(divName).style.display='block';}
function closeDiv(divName) { getID(divName).style.display='none';}

// apertura/chiusura ID=overlay
function openOverlay(optionBox) {
	if (typeof optionBox == "undefined") optionBox = true;
	openDiv('overlay');
	if (optionBox) openDiv('overlay_box');
}
function closeOverlay() {
	closeDiv('overlay');
	closeDiv('overlay_box');
}



function loadDati(divName, scriptName) {
  var
    ajax = assegnaXMLHttpRequest(),
    elemento = getID(divName),
    usaLink = true;
  if(ajax && elemento) {
    usaLink = false;
		elemento.innerHTML=imgAttesa;
    ajax.open("get", scriptName, true);
    ajax.setRequestHeader("connection", "close");
    ajax.onreadystatechange = function() {
      if(ajax.readyState === readyState.COMPLETATO) {
        if(statusText[ajax.status] === "OK")
          elemento.innerHTML = ajax.responseText;
        else {
          elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />";
          elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
        }
      } 
    }
    ajax.send(null);
  }
  return usaLink;
}


function inviaDati(objForm, scriptName, ctype){
	var
		sendPost='',
		ajax = assegnaXMLHttpRequest(),
		usaForm = true,
		numeroElementi = objForm.elements.length;

	// elabora i dati del form per l'invio POST
	// ATTENZIONE: NON vengono parsati i campi multipli (array)
  for (var i = 0; i < numeroElementi; i++) {
		switch(objForm.elements[i].type) {
			case "text":
			case "password":
			case "textarea":
			case "hidden":
			case "file":
			case "button":
			case "select-one":
			case "submit":
				sendPost += objForm.elements[i].name+'='+encodeURIComponent(objForm.elements[i].value)+'&';
				break;
			case "checkbox":
			case "radio":
				sendPost += (objForm.elements[i].checked==true) ? objForm.elements[i].name+'='+encodeURIComponent(objForm.elements[i].value)+'&' :'';
				break;
		}
  }
	sendPost=sendPost.substring(0,sendPost.length-1); // toglie l'ultimo carattere '&'
	//alert(sendPost);
	
  if (ajax) {
		usaForm = false;
    ajax.open("post", scriptName, true);
	  ajax.setRequestHeader('Content-Type', ctype + '; charset=UTF-8');
		//ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
    ajax.onreadystatechange = function() {
      if(ajax.readyState === readyState.COMPLETATO) {
        if(statusText[ajax.status] === "OK") {
          if (!ajax.responseText)
						alert('Errore nei dati inviati.\n' + sendPost + '\n' + ajax.responseText);
						//objForm.innerHTML='Errore nei dati inviati.<br />' + sendPost + '<br />' + ajax.responseText;
        } else {
          alert("Impossibile effettuare l'operazione richiesta.\nErrore riscontrato: " + statusText[ajax.status]);
        }
      } 
    }
    ajax.send(sendPost);
  }
	//pause(delay_post); // ritardo per dare il tempo a postgres di eseguire l'SQL
  return usaForm;
	//return setTimeout("returnPause("+usaForm+")",300);
}

function returnPause(bool) {
	return bool;
}

// accende spegne un div
function onoff(divName, evn) {
	var obj=getID(divName);
	if (evn) {
		var point=getXY(evn);
		obj.style.left = point[0] + 'px';
		obj.style.top = point[1] - 70 + 'px';
	}
	obj.style.display=(obj.style.display=='block') ? obj.style.display='none' : obj.style.display='block';
}


function getPos(theObj){
  x = y = 0;
  h = theObj.offsetHeight;
  w = theObj.offsetWidth;
	if (theObj){
    x += theObj.offsetLeft;
    y += theObj.offsetTop;
    theObj = theObj.offsetParent;
  }
  return {height:h,width:w,x:x,y:y}
}

// boh? funziona?
function pause(numberMillis) {
    var now = new Date();
    var exitTime = now.getTime() + numberMillis;
    while (true) {
        now = new Date();
        if (now.getTime() > exitTime)
            return;
    }
}

// chiude l'oggetto alla pressione di ESC
function escToClose(e, elem) {
	if (e.keyCode == 27 || e.which == 27) {
		closeOverlay();
		closePopUpInfo();
	}
}
