//interazione client server
var http_request = false;
var elementoIDGen = null;
//getElementById universale
function prendiElementoDaId(id_elemento) {
	var elemento;
	if(document.getElementById){
		elemento = document.getElementById(id_elemento);
	}else{
		elemento = document.all[id_elemento];
	}
		return elemento;
};
/*
operazioni loadContents()
ascolta l'oggetto http_request e ad ogni cambio di stato esegue un'operazione
elementoIDGen è inizializzato nella funzione makeRequest(url,elementoID) è l'elemento contenente i contenuti caricati
statoDiv è il contenitore del messaggio di attesa
*/
function loadContents() {
	elemento = prendiElementoDaId(elementoIDGen);
	stato = prendiElementoDaId("statoDiv");
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			elemento.innerHTML = http_request.responseText;
			//stato.innerHTML = "loaded : "+http_request.status
			stato.style.display = "none"
		} else {
			elemento.innerHTML = "Ci sono dei problemi col server, la preghiamo di riprovare tra qualche istante."
			stato.style.display = "inline"
			stato.innerHTML = "loaded : "+http_request.status
		}
	}else if(http_request.readyState == 3){
			stato.style.display = "inline"
		//stato.innerHTML = "interattivo"
	}else if(http_request.readyState == 2){
			stato.style.display = "inline"
		//stato.innerHTML = "caricamento completato"
	}else if(http_request.readyState == 1){
			stato.style.display = "inline"
		//stato.innerHTML = "caricamento"
	}else if(http_request.readyState == 0){
			stato.style.display = "inline"
		//stato.innerHTML = "non inizializzato"
	}

}
/*
operazioni makeRequest(url,elementoID)
verifica del supporto all'oggetto HTTP_Request
richiama la funzione loadContents() -> in questo caso lo status è diverso da 200
apre la pagina con i contenuti da caricare -> una volta caricati i contenuti loadContents() inserisce i contenuti nell'elementoID
*/
function makeRequest(url,elementoID) {
	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('Il browser che stai utilizzando non è compatibile con questo sito.');
		return false;
	}
	elementoIDGen = elementoID
	http_request.onreadystatechange = loadContents;
	http_request.open('GET', url, true);
	http_request.setRequestHeader("connection", "close");
	http_request.send(null);
}
/*
come makeRequest(url,elementoID)
con la differenza che non restituisce contenuti alla pagina attuale
utile in casi nei quali aggiorno un db o dei cookie
*/
function sendParam(url) {
	http_request = false;
	elemento = prendiElementoDaId("numProd");
	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('Il browser che stai utilizzando non è compatibile con questo sito.');
		return false;
	}
	http_request.open('GET', url, true);
	http_request.setRequestHeader("connection", "close");
	http_request.send(null);
}

//funzioni per il carrello
function addCarrello(prodotto){
	sendRequest('/addCarrello.asp?'+prodotto+'='+document.getElementById(prodotto).value)
	prendiElementoDaId(prodotto).disabled=true
}
/*animazione della scritta "Loading"*/
function mostraAttesa(testo) {
  var
    puntini = 0,
    testoIntrattenimento = prendiElementoDaId("statoDiv"),
    animaTesto = function() {
      var testoAggiunto = "";
      for(var a = 0; a < puntini; a++)
        testoAggiunto += ".";
      testoIntrattenimento.nodeValue = testo + testoAggiunto;
      if(puntini < 4)
        puntini++;
      else
        puntini = 0;
      setTimeout(animaTesto, 300);
    };
  if(testoIntrattenimento.firstChild) {
    animaTesto = function(){};
    testoIntrattenimento.removeChild(testoIntrattenimento.firstChild);
  }
  else {
    testoIntrattenimento = document.createTextNode(testo);
    prendiElementoDaId("statoDiv").appendChild(testoIntrattenimento);
    animaTesto();
  };
};             

//posizionamento loader accanto al mouse
var docLayers = (document.layers) ? true:false;
var ns6=document.getElementById&&!document.all
function PosizioneCursore(){
    var asse_x = event.clientX;
    var asse_y = event.clientY;
}
function showKisser(x,y) {
	statoVivContX = prendiElementoDaId("statoDiv");
	statoVivContX.style.left = x+"px";
	statoVivContX.style.top = y+"px";
}
function getMouseXPos(e) {
	if (document.layers||ns6) {
		return parseInt(e.pageX+15);
	} else {
		return (parseInt(event.clientX+15) + parseInt(document.documentElement.scrollLeft));
	}
}
function getMouseYPos(e) {
	if (document.layers||ns6) {
		return parseInt(e.pageY+8);
	} else {
		return (parseInt(event.clientY+8) + parseInt(document.documentElement.scrollTop));
	}
}
function doKisser(e) {
	posX = getMouseXPos(e);
	posY = getMouseYPos(e);
	showKisser(posX,posY);
}
function kissbegin(){
	elemento = prendiElementoDaId("statoDiv")
	elemento.style.display = "none"
	elemento.style.vertical_align = "middle"
	elemento.style.position = "absolute"
	elemento.style.color = "#FF0000"
	elemento.style.fontWeight = "bold"
	elemento.style.width = "70px"
	
	if (docLayers) {
		document.captureEvents(Event.MOUSEMOVE);
		document.onMouseMove = doKisser;
	} else {
		document.onmousemove = doKisser;
	}
}


/*
    <div id="paragrafo">&nbsp;</div>

    <a href="javascript:makeRequest('prova.asp?prova=1','paragrafo')">carica</a><br>
*/