
//FUNZIONE CHE INIZIALIZZA AJAX

function initAjax() {
	
var	ajax = null;
var browser = navigator.userAgent.toUpperCase();

if (typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")

ajax = new XMLHttpRequest();

else if (window.ActiveXObject && browser.indexOf("MSIE 4") < 0) {

if (browser.indexOf("MSIE 5") < 0)
ajax = new ActiveXObject("Msxml2.XMLHTTP");
else
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}

return ajax;
}



//FUNZIONE CHE RICEVE DA UN DIV CON ID UNIVOCO

function getElement(id_element) {

var elemento;

if (document.getElementById)
elemento = document.getElementById(id_element).value;
else
elemento = document.all[id_element];

return elemento;

}


//Verifica che un indirizzo e-mail sia valido
function checkEmail(email) {
if (email.search(/^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/) != -1)
return true;
else
return false;
}

//Verifica la validità di una url
function checkUrl(url) {
var v = new RegExp();
v.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&#+-\?\/.=]+$");
if (!v.test(url)) return false; 
else return true;
}


//FUNZIONE CHE INSERISCE HTML IN UN DIV CON ID UNIVOCO

function insertDiv(id_element,elemento) {

document.getElementById(id_element).innerHTML = elemento;

}


//FUNZIONE CHE AGGIUNGE DEL TESTO IN CODA AD UN DIV

function add_text(div,str) {

if (document.getElementById && document.createTextNode) {
	
	stringa = document.createTextNode(str);

    document.getElementById(div).appendChild(stringa);
  }
  else alert("metodi Ajax non supportati!");
  
}


//FUNZIONE CHE AGGIUNGE UN IMMAGINE IN CODA A UN DIV

function add_image(div,image,alt,title) {
	
  if (document.getElementById && document.createElement) {

    immagine = document.createElement("IMG");
    immagine.setAttribute("src",image);
    immagine.setAttribute("alt",alt);
	immagine.setAttribute("title",title);

    document.getElementById(div).appendChild(immagine);
  }
  else alert("metodi Ajax non supportati!");
  
}

//FUNZIONE CHE MOSTRA/NASCONDE UN DIV

function hideshow(div) {
	
    var element = document.getElementById(div);
    if (element.style.visibility == 'hidden') {
        element.style.visibility = 'visible';
        element.style.display = 'block';
    } else {
        element.style.visibility = 'hidden';
        element.style.display = 'none';
    }
	
}


//FUNZIONE CHE NASCONDE UN DIV

function hide(div) {

var element = document.getElementById(div);

element.style.visibility = 'hidden';
element.style.display = 'none';	
	
}


//FUNZIONE CHE MOSTRA UN MESSAGGIO IN UN DIV PER TOT SECONDI

function temporary(div,msg) {
    var string = document.getElementById(div).innerHTML=msg;
    var myHandler = function() {
        document.getElementById(div).innerHTML="";
    };
    setTimeout(myHandler, 3000);
}



//FUNZIONE CHE MOSTRA UN DIV

function show(div) {

var element = document.getElementById(div);

element.style.visibility = 'visible';
element.style.display = 'block';	
	
}


//FUNZIONE ajaxGet

function ajaxGet(file,div) {

var ajax = initAjax();

ajax.open("get",file, true);
ajax.setRequestHeader("connection", "close");

ajax.onreadystatechange = function() {

var response="";

if (ajax.readyState == 0) insertDiv(div,"Inizializzazione in corso...");
if (ajax.readyState == 1) insertDiv(div,"Connessione avviata...");
if (ajax.readyState == 2) insertDiv(div,"Invio dati in corso...");
if (ajax.readyState == 3) insertDiv(div,"Ricezione dati in corso...");

if (ajax.readyState == 4 && ajax.status==200) {
insertDiv(div,ajax.responseText);
}

if (ajax.readyState == 4 && ajax.status!=200) {
insertDiv(div,ajax.responseText);
}

}

ajax.send(null);

	
}


//FUNZIONE ajaxPost

function ajaxPost(file,dati,id,type,loader) {
	
var ajax = initAjax();

ajax.open("post",file, true);
ajax.setRequestHeader("connection", "close");

ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");

ajax.onreadystatechange = function() {

add_image(loader,"img/loader.gif","","");

if (type=="div") {
if (ajax.readyState == 0) insertDiv(id,"Inizializzazione in corso...");
if (ajax.readyState == 1) insertDiv(id,"Connessione avviata...");
if (ajax.readyState == 2) insertDiv(id,"Invio dati in corso...");
if (ajax.readyState == 3) insertDiv(id,"Ricezione dati in corso...");
}

if (type=="input") {
if (ajax.readyState == 0) document.getElementById(id).value = "Inizializzazione in corso...";
if (ajax.readyState == 1) document.getElementById(id).value = "Connessione avviata...";
if (ajax.readyState == 2) document.getElementById(id).value = "Invio dati in corso...";
if (ajax.readyState == 3) document.getElementById(id).value = "Ricezione dati in corso...";
}

if (ajax.readyState == 4 && ajax.status==200) {

document.getElementById(loader).innerHTML = "";
if (type=="div") insertDiv(id,ajax.responseText);
if (type=="input") document.getElementById(id).value = ajax.responseText;

}

if (ajax.readyState == 4 && ajax.status!=200) {

document.getElementById(loader).innerHTML = "";
if (type=="div") insertDiv(id,"Error!");
if (type=="input") document.getElementById(id).value = "Error!";

}

}

ajax.send(dati); 
	
}


//Visualizza un messaggio per tot secondi
function temporary(id,msg,temp) {
document.getElementById(id).innerHTML=msg;
    var myHandler = function() {
        document.getElementById(id).innerHTML="";
    };
    setTimeout(myHandler, temp);
}

//CONTROLLA SE I COOKIE SONO ABILITATI
function checkCookie() {
var cookie=navigator.cookieEnabled;
return(cookie);
}

//CONTROLLA SE JAVA E' ABILITATO
function checkJava() {
var java=navigator.javaEnabled();
return(java);
}

//IMPOSTA IL COLORE DEL TESTO DEL DIV SPECIFICATO
function color(id,color) {
document.getElementById(id).style.color = color;
}


//Voto in ajax
function ajaxVote(file,dati,div) {
	
var ajax = initAjax();

ajax.open("post",file, true);
ajax.setRequestHeader("connection", "close");

ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");

ajax.onreadystatechange = function() {

if (ajax.readyState == 0) insertDiv(div,"Loading...");
if (ajax.readyState == 1) insertDiv(div,"Registrazione voto in corso...");
if (ajax.readyState == 2) insertDiv(div,"Registrazione voto in corso...");
if (ajax.readyState == 3) insertDiv(div,"Registrazione voto in corso...");

if (ajax.readyState == 4 && ajax.status==200) insertDiv(div,ajax.responseText);

if (ajax.readyState == 4 && ajax.status!=200) insertDiv(div,ajax.responseText);

}

ajax.send(dati); 
	
}

