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

/** FUNZIONI */

	// 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 chiudiCategoria(id_univoco, pagina)
{
	var tag_div = prendiElementoDaId("tag_div"+id_univoco),
		tag_img = prendiElementoDaId("tag_img"+id_univoco),
		tag_link = prendiElementoDaId("tag_link"+id_univoco);
	
		
	tag_div.innerHTML = "<span id=\"tag_div"+id_univoco+"\"></div>";
	
	tag_img.innerHTML = "<span id=\"tag_img"+id_univoco+"\"><a href=\"/lib/subcat.php?id_cat="+id_univoco+"&page="+pagina+"\" onclick=\"return caricaTesto(this.href, "+id_univoco+");\" onkeypress=\"return this.onclick();\" tabindex='"+id_univoco+"' ><img src=\"/img/open.gif\" alt=\"Apri categoria\" /></a> </span>";
	
	tag_link.innerHTML = "";
	
	return false;
}

function selectCategoria(id_univoco, nome_categoria)
{
	var select_categoria = prendiElementoDaId("select_categoria");
	
		
	select_categoria.innerHTML = "<span id=\"select_categoria\">"+nome_categoria+"<input type=\"hidden\" name=\"categoria\" value=\""+id_univoco+"\" /></span>";
	
	
	return false;
}


// funzione di caricamento testo,
// accetta una stringa contenente
// il nome di un file da leggere
function caricaTesto(nomeFile, id_univoco) {

  // variabili di funzione
  var
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
    tag_link = prendiElementoDaId("tag_link"+id_univoco),
	
	tag_img = prendiElementoDaId("tag_img"+id_univoco),
    // risultato booleano di funzione
    usaLink = true;
  
  // se l'oggetto XMLHttpRequest non è nullo
  if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;

    // impostazione richiesta asincrona in GET
    // del file specificato
    ajax.open("get", nomeFile, true);

    // rimozione dell'header "connection" come "keep alive"
    ajax.setRequestHeader("connection", "close");

    // impostazione controllo e stato della richiesta
    ajax.onreadystatechange = function() {
		
		if(ajax.readyState === readyState.INIZIALIZZATO) {
			tag_link.innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;<img src='/icone/loading.gif' alt='Caricamento...' />";
		}
      
      // verifica dello stato
      if(ajax.readyState === readyState.COMPLETATO) {
        // verifica della risposta da parte del server
        if(statusText[ajax.status] === "OK")
		{
          // operazione avvenuta con successo
          tag_link.innerHTML = ajax.responseText;
		  
		  //tag_img.innerHTML = "<span id=\"tag_img" + id_genitore + "\"><a href=\"#\" onclick=\"return chidiCategoria("+id_univoco+");\" onkeypress=\"return this.onclick();\" ><img src=\"/img/close.gif\" alt=\"Chiudi categoria\" /> </a><span>";
		  
		  
		  
		  tag_img.innerHTML = "<span id=\"tag_img" + id_univoco + "\"><a href=\"#\" onclick=\"return chiudiCategoria("+id_univoco+");\" onkeypress=\"return this.onclick();\"  ><img src=\"/img/close.gif\" alt=\"Chiudi categoria\" /></a> <span>";
		}
        else {
          // errore di caricamento
          tag_link.innerHTML = "Impossibile effettuare l'operazione richiesta. ";
          tag_link.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
        }
      } 
    }

    // invio richiesta
    ajax.send(null);
  }
   
  return usaLink;
}


function verificaNome(nome_utente, pagina, id_univoco) {
	
	var
    ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
    tag_link = prendiElementoDaId(id_univoco);
	  
  // se l'oggetto XMLHttpRequest non è nullo
  if(ajax) {
    // il link al file non deve essere usato

    // impostazione richiesta asincrona in GET
    // del file specificato
    ajax.open("get", "/lib/verifica.php?"+pagina+"="+nome_utente, true);

    // rimozione dell'header "connection" come "keep alive"
    ajax.setRequestHeader("connection", "close");

    // impostazione controllo e stato della richiesta
    ajax.onreadystatechange = function() {
		
		if(ajax.readyState === readyState.INIZIALIZZATO) {
			tag_link.innerHTML = "<span id=\""+id_univoco+"\" style='color:blue'>Verifica in corso...</span>";
		}
      
      // verifica dello stato
      if(ajax.readyState === readyState.COMPLETATO) {
        // verifica della risposta da parte del server
        if(statusText[ajax.status] === "OK")
		{
          // operazione avvenuta con successo
          tag_link.innerHTML = ajax.responseText;  
		  
		  
		}
        else {
          // errore di caricamento
          tag_link.innerHTML = "Impossibile effettuare l'operazione richiesta. ";
          tag_link.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
        }
      } 
    }

    // invio richiesta
    ajax.send(null);
  }
   
//   return false;
}

function confrontaPassword(pass1, pass2) {
	
	var same_pass = prendiElementoDaId('same_pass');
	
	if(pass1 !== pass2) {
		same_pass.innerHTML = "<span id=\"same_pass\" style='color:red'>Le password non coincidono</span>";
	}
	else
	{
		same_pass.innerHTML = "<span id=\"same_pass\" style='color:green'>Ok</span>";
	}
}

function sfoto(linkfoto)
{
	da_sostituire = prendiElementoDaId('foto');
		
	da_sostituire.innerHTML = "<div id=\"foto\"><input type=\"file\" size=\"55\" name=\"foto\" /><br /><input type=\"radio\" name=\"ruota\" value=\"0\" checked=\"checked\" />Non ruotare<br /> <input type=\"radio\" name=\"ruota\" value=\"-90\"  />90&deg; in senso orario<br /><input type=\"radio\" name=\"ruota\" value=\"90\"  />90&deg; in senso antiorario<br /><input type=\"radio\" name=\"ruota\" value=\"180\"  />180&deg;<br /><button type=\"button\" onclick=\"lfoto('"+linkfoto+"')\">Lascia foto precedente</button></div>";
}

function lfoto(linkfoto)
{
	da_sostituire = prendiElementoDaId('foto');
	
	da_sostituire.innerHTML = "<div id=\"foto\"><img src=\"/foto/"+linkfoto+"t.jpg\" /><br /><button type=\"button\" onclick=\"sfoto('"+linkfoto+"')\" >Cambia</button></div>";
}

function conferma(testo, destinazione)
{
	
	if(confirm(testo))
	{
		location.href = destinazione;
	}
}


function confermaForm(testo, nomeForm)
{
	
	if(confirm(testo))
	{
		nomeForm.submit();
	}
}





function CheckAll(v) {
	var ck = document.getElementById("messaggi").getElementsByTagName("input");
	for(var i = 0; i < ck.length; i++)
		if(ck[i].type == 'checkbox') ck[i].checked = v.checked;

	
}

function disableForm(id) {
	
/*	var ck = document.getElementById("login").getElementsByTagName("input");
	for(var i = 0; i < ck.length; i++)
		 ck[i].disabled = "disabled";

		 
*/	var form = document.getElementById(id);
	
	var inp = form.getElementsByTagName('input');


	for(var i = 0; i < inp.length; i++)
		inp[i].disabled = "disabled";
}

function caricaText(nomeFile, id_univoco) {

  // variabili di funzione
  var
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
    tag_link = prendiElementoDaId(id_univoco),
	
    // risultato booleano di funzione
    usaLink = true;
  
  // se l'oggetto XMLHttpRequest non è nullo
  if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;

    // impostazione richiesta asincrona in GET
    // del file specificato
    ajax.open("get", nomeFile, true);

    // rimozione dell'header "connection" come "keep alive"
    ajax.setRequestHeader("connection", "close");

    // impostazione controllo e stato della richiesta
    ajax.onreadystatechange = function() {
		
		if(ajax.readyState === readyState.INIZIALIZZATO) {
			tag_link.innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;<img src='/icone/loading.gif' alt='Caricamento...' />";
		}
      
      // verifica dello stato
      if(ajax.readyState === readyState.COMPLETATO) {
        // verifica della risposta da parte del server
        if(statusText[ajax.status] === "OK")
		{
          // operazione avvenuta con successo
          tag_link.innerHTML = ajax.responseText;
		  
		}
        else {
          // errore di caricamento
          tag_link.innerHTML = "Impossibile effettuare l'operazione richiesta. ";
          tag_link.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
        }
      } 
    }

    // invio richiesta
    ajax.send(null);
  }
   
  return usaLink;
}

function caricamento(id, width, height)
{
		
	tag = document.getElementById(id);
	
	tag.innerHTML = "<div id=\"loading_\" style=\"width:"+width+"px; height:"+height+"px\"></div>";
	
	
}
	
function chiudi_menu(id)
{
	tag = prendiElementoDaId('vediutente'+id);
	
	tag.innerHTML = '<div id=\"menu$id\"></div>';
	
	return false;
}
	
function more_text(id)
{
	var tag = prendiElementoDaId(id);
	
	tag.rows = tag.rows + 3;
	
	return false;
}

function AddFormat(formattazione, nome_form, nome_textarea) 
{ 


txtdaformattare=prompt('Inserire il testo:');
if(txtdaformattare == null) exit;
if (formattazione=='url')
{
url=prompt('Iinserire l\'indirizzo:');
txt="["+formattazione+"="+url+"]"+txtdaformattare+"[/"+formattazione+"]"; 
if(url == null) exit;
}
else
txt="["+formattazione+"]"+txtdaformattare+"[/"+formattazione+"]"; 
document.nome_form.nome_textarea.value+=txt; 


}

function antForm(nome_form, nome_textarea)
{

	var txt = window.document.nome_form.nome_textarea.value;
	
	document.anteprima.ant.value = txt;
	
	window.open('', 'anteprima', 'width=570,height=600 ,toolbar=no, location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
	
	document.anteprima.submit();
}

function extralink_over(id)
{
	image = prendiElementoDaId('ex'+id);
	div = prendiElementoDaId('sub'+id);
	if(div.style.display != 'none')
	{
		image.src = '/images/extralinkopenover.gif';
	}
	else
	{
		image.src = '/images/extralinkover.gif';
	}

}

function extralink_out(id)
{
	image = prendiElementoDaId('ex'+id);
	div = prendiElementoDaId('sub'+id);
	if(div.style.display != 'none')
	{
		image.src = '/images/extralinkopenopen.gif';
	}
	else
	{
		image.src = '/images/extralink.gif';
	}
}

function extralink_close_All(tot)
{
	for(a=1;a<=tot;a++)
	{
		div = prendiElementoDaId('sub'+a);
		div.style.display = 'none';
	}
}
	
function extralink_switch(id)
{
	div = prendiElementoDaId('sub'+id);
	image = prendiElementoDaId('ex'+id);
	
	if(div.style.display == 'none')
	{
		div.style.display = '';
		image.src = '/images/extralinkopen.gif';
	}
	else
	{
		div.style.display = 'none';
		image.src = '/images/extralinkclose.gif';		
	}
	
	return false;
}
	
function tendina(id)
{
         tendina = prendiElementoDaId(id);
         linkservizi = prendiElementoDaId('linkservizi');
         
         tendina.innerHTML = '<div id="servizi" style="position:absolute; margin-left:420px;line-height:15px; border: solid 1px #000; background-color:#333; width:110px; padding:5px"><a href="/web_design.html" title="Web Design">Web Design</a><br /><a href="/applicazioni_web.html" title="Applicazioni Web">Web Applications</a><br /><a href="/web_marketing.html" title="Web Marketing">Web Maketing</a></div>';
         
         return false;
}
	
function insert_tag(id,tag)
{
     tarea = prendiElementoDaId(id);
     
     tarea.value += tag + ', ';
     
     return false;
}
	
function closeBanner()
{
	var banner = prendiElementoDaId('right_banner');
	
	banner.style.display = 'none';
	
	return false;
}
	
	
	
	
