/** (C) HTML.IT - insieme di funzioni ed oggetti utili per interagire con ajax */

/** FUNZIONI */

function reset(){
	prendiElementoDaId('nick').value="";
	prendiElementoDaId('email').value="";
	prendiElementoDaId('log').value="";
	prendiElementoDaId('pass1').value="";
	prendiElementoDaId('pass2').value="";
}

var pas1;
var nick;
var email;
var log;
	// funzione per prendere un elemento con id univoco
		function prendiElementoDaId(id_elemento) {
			var elemento;
			if(document.getElementById)
				elemento = document.getElementById(id_elemento);
			else
				elemento = document.all[id_elemento];
			return elemento;
		};
	
	// funzione per assegnare 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;
		};



/** OGGETTI / ARRAY */

	// oggetto di verifica stato
		var readyState = {
			INATTIVO:	0,
			INIZIALIZZATO:	1,
			RICHIESTA:	2,
			RISPOSTA:	3,
			COMPLETATO:	4
		};

	// array descrittivo dei codici restituiti dal server
	// [la scelta dell' array è per evitare problemi con vecchi browsers]
		var statusText = new Array();
		statusText[100] = "Continue";
		statusText[101] = "Switching Protocols";
		statusText[200] = "OK";
		statusText[201] = "Created";
		statusText[202] = "Accepted";
		statusText[203] = "Non-Authoritative Information";
		statusText[204] = "No Content";
		statusText[205] = "Reset Content";
		statusText[206] = "Partial Content";
		statusText[300] = "Multiple Choices";
		statusText[301] = "Moved Permanently";
		statusText[302] = "Found";
		statusText[303] = "See Other";
		statusText[304] = "Not Modified";
		statusText[305] = "Use Proxy";
		statusText[306] = "(unused, but reserved)";
		statusText[307] = "Temporary Redirect";
		statusText[400] = "Bad Request";
		statusText[401] = "Unauthorized";
		statusText[402] = "Payment Required";
		statusText[403] = "Forbidden";
		statusText[404] = "Not Found";
		statusText[405] = "Method Not Allowed";
		statusText[406] = "Not Acceptable";
		statusText[407] = "Proxy Authentication Required";
		statusText[408] = "Request Timeout";
		statusText[409] = "Conflict";
		statusText[410] = "Gone";
		statusText[411] = "Length Required";
		statusText[412] = "Precondition Failed";
		statusText[413] = "Request Entity Too Large";
		statusText[414] = "Request-URI Too Long";
		statusText[415] = "Unsupported Media Type";
		statusText[416] = "Requested Range Not Satisfiable";
		statusText[417] = "Expectation Failed";
		statusText[500] = "Internal Server Error";
		statusText[501] = "Not Implemented";
		statusText[502] = "Bad Gateway";
		statusText[503] = "Service Unavailable";
		statusText[504] = "Gateway Timeout";
		statusText[505] = "HTTP Version Not Supported";
		statusText[509] = "Bandwidth Limit Exceeded";
		
		
function visualizza(div) {
    var e = document.getElementById(div);
    if (e.style.visibility == 'visible') {
        e.style.visibility = 'hidden';
        e.style.display = 'none';
    } else {
        e.style.visibility = 'visible';
        e.style.display = 'block';
    }
}
function visualizza2(div) {
    var e = document.getElementById(div);
    if (e.style.visibility == 'visible') {
        e.style.visibility = 'hidden';
        e.style.display = 'none';
        prendiElementoDaId('visualizzaNascondi').innerHTML="<img src='images/co12.jpg' align='top'><a href=\"#?\" onClick=\"visualizza2('box')\"><span style=\"color:#4aaf24\"> Visualizza tutti i commenti</span></a>";
    } else {
        e.style.visibility = 'visible';
        e.style.display = 'block';
        prendiElementoDaId('visualizzaNascondi').innerHTML="<img src='images/co13.jpg' align='top'><a href=\"#?\" onClick=\"visualizza2('box')\"><span style=\"color:#4aaf24\"> Nascondi tutti i commenti</span></a>";
    }
}
	function controlla(){
		nick=prendiElementoDaId('nick').value;
		email=prendiElementoDaId('email').value;
		log=prendiElementoDaId('log').value;
		pas1=prendiElementoDaId('pass1').value;
		var pas2=prendiElementoDaId('pass2').value;
		
		if (nick=="" || nick == "undefined"){
        	alert("Il campo nick è obbligatorio.");
          prendiElementoDaId('nick').focus();
           return false;
        }
        if (nick.length<6){
        	alert("Il campo nick deve essere almeno di 6 caratteri.");
          prendiElementoDaId('nick').focus();
           return false;
        }
        else if (!controllomail(email)){
        	alert("Il campo email non è valido. formato nome@meddle.tv");
          prendiElementoDaId('email').focus();
           return false;
        }
        else if (log=="" || log == "undefined"){
        	alert("Il campo Login è obbligatorio.");
           prendiElementoDaId('log').focus();
           return false;
        }
         if (log.length<6){
        	alert("Il campo login deve essere almeno di 6 caratteri.");
          prendiElementoDaId('login').focus();
           return false;
        }
        else if (pas1.length<6){
        	alert("Il campo Password deve essere almeno di 6 caratteri.");
          prendiElementoDaId('pass1').focus();
           return false;
        }
        else if (pas1=="" || pas1 == "undefined"){
        	alert("Il campo Password è obbligatorio.");
           prendiElementoDaId('pass1').focus();
           return false;
        }
        else if (pas1!= pas2){
        	alert("Password errata");
           prendiElementoDaId('pass2').focus();
           return false;
        }
        else {
          checkWait();
        }
	}
	function controllomail(mail){
		var espressione = /^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$/;
		if (!espressione.test(mail))
		    return false;
		else return true;
}

var myRequest = null;

function CreateXmlHttpReq(handler) {
  var xmlhttp = null;
  try {
    xmlhttp = new XMLHttpRequest();
  } catch(e) {
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  xmlhttp.onreadystatechange = handler;
  return xmlhttp;
}

function myHandler() {
    if (myRequest.readyState == 4 && myRequest.status == 200) {
        e = document.getElementById("disp");
        e.innerHTML = myRequest.responseText;
    }
}
function disp(){
	document.getElementById("disp").innerHTML="<object type='application/x-shockwave-flash' data='images/verifica.swf' width='100' height='22' > <param name='movie' value='images/verifica.swf'/> <param name='quality' value='high' /><param name='wmode' value='transparent' /></object>";;
	setTimeout("disponibilita()",1600);
}
function disponibilita() {
    var nome = document.getElementById("nick").value;
    myRequest = CreateXmlHttpReq(myHandler);
    myRequest.open("POST","verifica.php",true);
	myRequest.setRequestHeader("content-type", "application/x-www-form-urlencoded");
	myRequest.send("nick="+escape(nome)); 
}

function myHandler2() {
    if (myRequest.readyState == 4 && myRequest.status == 200) {
        e = document.getElementById("registrati");
        e.innerHTML = myRequest.responseText;
    }
}

function checkWait(){
	document.getElementById("registrati").innerHTML+="<object type='application/x-shockwave-flash' data='images/indicator.swf' width='15' height='15' > <param name='movie' value='images/indicator.swf'/> <param name='quality' value='high' /><param name='wmode' value='transparent' /></object>";;
	setTimeout("check()",300);
}
function check() {
    myRequest = CreateXmlHttpReq(myHandler2);
    myRequest.open("POST","registra.php",true);
	myRequest.setRequestHeader("content-type", "application/x-www-form-urlencoded");
	myRequest.send("nick="+escape(nick)+"&email="+escape(email)+"&login="+escape(log)+"&pass="+escape(pas1));
}

function myHandler3() {
    if (myRequest.readyState == 4 && myRequest.status == 200) {
        e = document.getElementById("block_login");
        e.innerHTML = myRequest.responseText;
    }
}
var pass;
var log;
function loginWait(){
	pass=prendiElementoDaId('password').value;
	log=prendiElementoDaId('login').value;
	document.getElementById("loginWait").innerHTML="<object type='application/x-shockwave-flash' data='images/indicator.swf' width='15' height='15' > <param name='movie' value='images/indicator.swf'/> <param name='quality' value='high' /><param name='wmode' value='transparent' /></object>";
	setTimeout("login()",300);
}
function login() {
    myRequest = CreateXmlHttpReq(myHandler3);
    myRequest.open("POST","login.php",true);
	myRequest.setRequestHeader("content-type", "application/x-www-form-urlencoded");
	myRequest.send("login="+escape(log)+"&password="+escape(pass));
}
function myHandler4() {
    if (myRequest.readyState == 4 && myRequest.status == 200) {
        e = document.getElementById("voto");
        e.innerHTML = myRequest.responseText;
    }
}
var v;
var id;
var page;
function votaWait(n){
	v=prendiElementoDaId("selVoto").value;
	id=n;
	document.getElementById("boxVoto").innerHTML="<object type='application/x-shockwave-flash' data='images/indicator.swf' width='15' height='15' > <param name='movie' value='images/indicator.swf'/> <param name='quality' value='high' /><param name='wmode' value='transparent' /></object>";
	setTimeout("vota()",300);
}
function vota() {
    myRequest = CreateXmlHttpReq(myHandler4);
    myRequest.open("POST","verifica.php",true);
	myRequest.setRequestHeader("content-type", "application/x-www-form-urlencoded");
	myRequest.send("voto="+escape(v)+"&id="+escape(id));
}

function myHandler5() {
    if (myRequest.readyState == 4 && myRequest.status == 200) {
        e = document.getElementById("commenti");
        e.innerHTML = myRequest.responseText;
    }
}
var comm;
function commentaWait(n,p){
	comm=prendiElementoDaId("commArea").value;
	id=n;
	page=p;
	document.getElementById("formComm").innerHTML="<object type='application/x-shockwave-flash' data='images/indicator.swf' width='15' height='15' > <param name='movie' value='images/indicator.swf'/> <param name='quality' value='high' /><param name='wmode' value='transparent' /></object>";
	setTimeout("commenta()",300);
}
function commenta() {
    myRequest = CreateXmlHttpReq(myHandler5);
    myRequest.open("POST","verifica.php",true);
	myRequest.setRequestHeader("content-type", "application/x-www-form-urlencoded");
	myRequest.send("commento="+escape(comm)+"&id="+escape(id)+"&p="+escape(page));
}

function myHandler6() {
    if (myRequest.readyState == 4 && myRequest.status == 200) {
        e = document.getElementById("output");
        e.innerHTML = myRequest.responseText;
    }
}
var val;
function segnalaWait(){
	val=prendiElementoDaId("urlsegnala").value;
	alert(val);
	document.getElementById("output").innerHTML="<object type='application/x-shockwave-flash' data='images/indicator.swf' width='15' height='15' > <param name='movie' value='images/indicator.swf'/> <param name='quality' value='high' /><param name='wmode' value='transparent' /></object>";
	setTimeout("segnala()",300);
}
function segnala() {
    myRequest = CreateXmlHttpReq(myHandler6);
    myRequest.open("POST","verifica.php",true);
	myRequest.setRequestHeader("content-type", "application/x-www-form-urlencoded");
	myRequest.send("segnala="+escape(val));
}

