  var nvit=0;
  var flagvit=0;
  var reg = 0;
  var oldmes = 1;
  var vittoria=0;
  var boxmex = 0;
  var boxnum = 0;
  var nvincitaattiva=0;
  
  function newXMLHttpRequest(){
				var xmlreq = false;
				if(window.XMLHttpRequest){
					xmlreq = new XMLHttpRequest();
				}else if(window.ActiveXObject){
					try{
						xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
					}catch(e1){ 
						try{
							xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
						}catch(e2){ 
							xmlreq = false;
						}
					}
				}
				return xmlreq;
			}

  function clicky(opt){
				document.getElementById("click_butt").style.visibility = 'hidden';
				document.getElementById("click_loader").style.visibility = 'visible';
				document.getElementById("click_loader").style.display = 'block';
				
				var req = newXMLHttpRequest();
                if (escape(opt)=='win'){
				var vitform = document.getElementById("vit");
				if(vitform.elements[0].value=="" ||vitform.elements[2].value==""){
						Effect.Appear('mexform');
						new Effect.Highlight('mexform',{ startcolor: '#ffff99', endcolor: '#ffffff' });
						return false;
					}}
				                //seleziono il form della vittoria
				
                                stringa = "";
		if (escape(opt)=='win'){
                                var numeroElementi = vitform.elements.length;
                                //non so se ci conviene inviare il valore di tutti gli elementi del form o solo alcuni ma con questo codice se decidiamo di aggiungere qualcosa non dobbiamo fare nulla.
                                for(var i = 0; i < numeroElementi; i++){
                                        if(i < numeroElementi-1){
                                              stringa += vitform.elements[i].name+"="+encodeURIComponent(vitform.elements[i].value)+"&";
                                        }else{
                                              stringa += vitform.elements[i].name+"="+encodeURIComponent(vitform.elements[i].value);
                                        } 
                                }}
				//POSTo la richiesta al file gest1 passando i parametri what, tutti quelli del form e un parametro random necessario per una corretta risposta in opera e ie
				//bclick.Attributes.Item("onclick") = "this.disabled=true";
				req.open("POST", "gest1.php", true);
				req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				req.send("what="+escape(opt)+"&"+stringa+"&vittoria="+vittoria+"&num_vittoria="+nvit+"&rand="+escape(Math.random()) );
				
				//Gestore dell'evoluzione dello stato dell'oggetto req
				req.onreadystatechange = handleResponse(req, updatePage);
			}

  function handleResponse(req, XMLHandler){
				return function(){
					//Controllo se l'oggetto req ha raggiunto lo stato finale
					if(req.readyState == 4){
						if (req.status == 200){
							//A questo punto richiamo la funzione che gestira' il risultato XML
							XMLHandler(req.responseXML);
						}
					}
				}
			}
  
  function updatePage(XMLResult){
				//Gestisco il documento XML ricevuto
				var dati = XMLResult.getElementsByTagName('dati');
				
				
        			var item = dati[0];
            			document.getElementById("numero").innerHTML = item.firstChild.nodeValue;
				var work = 0.0026*item.firstChild.nodeValue;
				var coff = 0.0074*work;
				var tmwaste = 0.41*item.firstChild.nodeValue;
				var spacemouse = 0.0012*item.firstChild.nodeValue;
				var fagioli = 0.00028 * item.firstChild.nodeValue;
				var nvit = item.firstChild.nodeValue;
				//da controllare le statistiche
				
				document.getElementById("work").innerHTML = " <b>Energia buttata in click: </b>"+ work.toFixed(1)+" J";
				
				document.getElementById("coffe").innerHTML = " <b>Espresso che si sarebbero potuti preparare: </b> "+ coff.toFixed(1);
				
				document.getElementById("times").innerHTML = " <b>Tempo perso per cliccare: </b>" + tmwaste.toFixed(1) +" s";
				
				document.getElementById("space").innerHTML = " <b>Spazio percorso dal pulsante del mouse: </b>"+ spacemouse.toFixed(1)+" m";
				
				document.getElementById("peso").innerHTML = " <b>Chili di fagioli che si sarebbero potuti contare: </b>" + fagioli.toFixed(2) + " Kg";
				var item = dati[1];
				//item.firstChild.nodeValue = "true";
				
				if (item.firstChild.nodeValue == "true"){
					/*e = document.getElementById("nonwin");
					e.style.visibility = 'hidden';
        				          e.style.display = 'none';
					e = document.getElementById("vittoria");
					e.style.visibility = 'visible';
					e.style.display = 'block';*/
					vittoria=1;
					flagvit=1;
					
					new Effect.Opacity("sinistra", { from: 1.0, to: 0.4, duration: 0.5} );
					new Effect.Opacity("destra", { from: 1.0, to: 0.4, duration: 0.5 });
					new Effect.Opacity("nonwin", { from: 1.0, to: 0.4, duration: 0.5 });
					
					document.getElementById("overlay").style.visibility = 'visible';
					document.getElementById("overlay").style.display = 'block';
					center('vittoria');
					
					
				}
				else if(flagvit){
					/*e = document.getElementById("nonwin");
					e.style.visibility = 'visible';
        				e.style.display = 'block';
					e = document.getElementById("vittoria");
					e.style.visibility = 'hidden';
        				e.style.display = 'none';*/
					vittoria=0;
					flagvit=0;
					Effect.Fade('vittoria', { duration: 3.0 });
					Effect.Fade("overlay");
					new Effect.Opacity("sinistra", { from: 0.4, to: 1.0, duration: 0.5 });
					new Effect.Opacity("destra", { from: 0.4, to: 1.0, duration: 0.5 });
					new Effect.Opacity("nonwin", { from: 0.4, to: 1.0, duration: 0.5 });
					
				}
				if (nvincite>-1){				
				Effect.Fade("vittoria_"+nvincitaattiva, { duration: 0 });
				nvincitaattiva = Math.floor(Math.random()*(nvincite+1));
				Effect.Appear("vittoria_"+nvincitaattiva, { duration: 0});
				}


				e = document.getElementById("click_loader");
				e.style.visibility = 'hidden';
				e.style.display = 'none';
				e = document.getElementById("click_butt");
				e.style.visibility = 'visible';
                                
	}




	
function center(element){
    try{
        element = $(element);
    }catch(e){
        return;
    }

    var my_width  = 0;
    var my_height = 0;

    if ( typeof( window.innerWidth ) == 'number' ){
        my_width  = window.innerWidth;
        my_height = window.innerHeight;
    }else if ( document.documentElement && ( document.documentElement.clientWidth ||
               document.documentElement.clientHeight ) ){
        my_width  = document.documentElement.clientWidth;
        my_height = document.documentElement.clientHeight;
    }
    else if ( document.body &&  
            ( document.body.clientWidth || document.body.clientHeight ) ){
        my_width  = document.body.clientWidth;
        my_height = document.body.clientHeight;
    }

    element.style.position = 'absolute';
    element.style.zIndex   = 99;

    var scrollY = 0;

    if ( document.documentElement && document.documentElement.scrollTop ){
        scrollY = document.documentElement.scrollTop;
    }else if ( document.body && document.body.scrollTop ){
        scrollY = document.body.scrollTop;
    }else if ( window.pageYOffset ){
        scrollY = window.pageYOffset;
    }else if ( window.scrollY ){
        scrollY = window.scrollY;
    }

    var elementDimensions = Element.getDimensions(element);

    var setX = ( my_width  - elementDimensions.width  ) / 2;
    var setY = ( my_height - elementDimensions.height ) / 2 + scrollY;

    setX = ( setX < 0 ) ? 0 : setX;
    setY = ( setY < 0 ) ? 0 : setY;

    element.style.left = setX + "px";
    element.style.top  = setY + "px";
	Effect.Appear(element, { duration: 3.0 });
}



function animate_parallel_r(){
			if (boxnum>boxmex){			
			new Effect.Fade('mexold'+boxmex, { duration: 0.1 });
			boxmex++;
			new Effect.Appear('mexold'+boxmex, { duration: 0.1 });}
			if (boxmex==boxnum) {
				new Effect.Fade('switch_r', { duration: 0 });
				}
			if (boxmex==1){
				new Effect.Appear('switch_l', { duration: 0 });
				}
			
}

function animate_parallel_l(){
			if (boxnum>0){
			new Effect.Fade('mexold'+boxmex, { duration: 0.1 });
			boxmex--;
			new Effect.Appear('mexold'+boxmex, { duration: 0.1 });
                        if (boxmex==0) {new Effect.Fade('switch_l', { duration: 0 });}
			if (boxmex==boxnum-1){ new Effect.Appear('switch_r', { duration: 0 });}

			}
}
				
