// JavaScript Document
var request;
var queryString;
var frmID;
var frmID2;
var img = false;
var server = false;
var aform = false;
//var ok;

/*function stopimm()
    {
     document.images['indicatore_caricamento'].style.visibility = "hidden";
    }*/
    
function ControllaCF(cf)
    {
     var validi, i, s, set1, set2, setpari, setdisp;
     
     cf = cf.value;
     cf = cf.toUpperCase();
     
     if( cf.length != 16 )
         {
          alert("Lunghezza del codice fiscale non "
                +"corretta: il codice fiscale dovrebbe essere lungo "
                +"esattamente 16 caratteri.");
          return "0";
         }
        
     validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
     for( i = 0; i < 16; i++ )
        {
         if( validi.indexOf( cf.charAt(i) ) == -1 )
            {
             alert("Il codice fiscale contiene un carattere non valido `" +
                    cf.charAt(i) +
                    "'. I caratteri validi sono le lettere e le cifre.");
             return "0";
            }
            
        }
     set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
     set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
     setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
     setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
     s = 0;
     for( i = 1; i <= 13; i += 2 )
        s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
     for( i = 0; i <= 14; i += 2 )
        s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
     if( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
         {
          alert("Codice fiscale non corretto: il codice di controllo non corrisponde.");
          return "0";
         }
    }
    
function ControllaPIVA(pi)
    {
     pi = pi.value;
     if( pi == '' )
         {
          alert('Paritta IVA non inserita');
          return '0';
         }
     if( pi.length != 11 )
         {
          alert("Lunghezza della partita IVA non corretta: la partita IVA dovrebbe essere lunga esattamente 11 caratteri.");
          return "0";
         }
        
    validi = "0123456789";
    for( i = 0; i < 11; i++ )
        {
         if( validi.indexOf( pi.charAt(i) ) == -1 )
             {
              alert("La partita IVA contiene un carattere non valido '" + pi.charAt(i) + "'. I caratteri validi sono le cifre.");
              return "0";
             }
            
            
        }
    s = 0;
    for( i = 0; i <= 9; i += 2 )
        s += pi.charCodeAt(i) - '0'.charCodeAt(0);
    for( i = 1; i <= 9; i += 2 ){
        c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
        if( c > 9 )  c = c - 9;
        s += c;
    }
    if( ( 10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0) )
        {
         alert("Partita IVA non valida:\n" +
            "il codice di controllo non corrisponde.\n");
         return "0";
        }
    }

function handleResponse()
    {
     if (request.readyState == 4)
 	{
	 if (request.status == 200) 
            {
             switch (frmID)
            	{
		 case "contenuto": contenuto.innerHTML = request.responseText;
		 break;
		 case "promo": promo.innerHTML = request.responseText;
		 break;
		 case "lato": xxxx = request.responseText.replace('::',''); lato.innerHTML = xxxx.replace('::','');
		 break;
		 case "nessuno": x=0;
		 break;
		 case "alert": alert(request.responseText);
		 break;
		 case "multi": multi(frmID,request.responseText);
		 break;
		 default: contenuto.innerHTML = request.responseText;
		 break;
		}
	 //stopimm();
	}
     else
 	{
	 switch (request.status)
            {
             case 400: error = "Bad Request";
             break;
             case 401: error = "Unauthorized";
             break;
             case 402: error = "Payment Required";
             break;
             case 403: error = "Forbidden";
             break;
             case 404: error = "Not Found";
             break;
             case 405: error = "Method Not Allowed";
             break;
             case 406: error = "Not Acceptable";
             break;
             case 407: error = "Proxy Authentication Required";
             break;
             case 408: error = "Request Timeout";
             break;
             case 409: error = "Conflict";
             break;
             case 410: error = "Gone";
             break;
             case 411: error = "Length Required";
             break;
             case 412: error = "Precondition Failed";
             break;
             case 413: error = "Request Entity Too Large";
             break;
             case 414: error = "Request-URI Too Long";
             break;
             case 415: error = "Unsupported Media Type";
             break;
             case 416: error = "Requested Range Not Satisfiable";
             break;
             case 417: error = "Expectation Failed";
             break;
             case 500: error = "Internal Server Error";
             break;
             case 501: error = "Not Implemented";
             break;
             case 502: error = "Bad Gateway";
             break;
             case 503: error = "Service Unavailable";
             break;
             case 504: error = "Gateway Timeout";
             break;
             case 505: error = "HTTP Version Not Supported";
             break;
             default: error = "Sconosciuto";
             break;
            }
	 if (server) { alert("errore server: (" + request.status + ') '+ error + " "); }
	}
    }
}

function setQueryString(form_id)
	{
	 if (form_id == 0) {queryString = "";}
	 else
	 	 {
		  queryString = "";
		  frm = document.getElementById(form_id);
		  numberElements = frm.elements.length;
		  for ( i = 0; i < numberElements; i++ )
				{
				 if (i < (numberElements - 1) ) 
				 	{ 
					 if (frm.elements[i].type == "radio" || frm.elements[i].type == "checkbox")
					 	{
						 if (frm.elements[i].checked) { queryString += frm.elements[i].name + "=" + encodeURIComponent(frm.elements[i].value) + "&"; }
						}
					 else   { queryString += frm.elements[i].name + "=" + encodeURIComponent(frm.elements[i].value) + "&"; }
					}
				 else 
				 	{
					 if (frm.elements[i].type == "radio" || frm.elements[i].type == "checkbox")
					 	{
						 if (frm.elements[i].checked) { queryString += frm.elements[i].name + "=" + encodeURIComponent(frm.elements[i].value); }
						}
					 else { queryString += frm.elements[i].name + "=" + encodeURIComponent(frm.elements[i].value); }
					}
				}
		}
	if (aform) { alert('Form: ' + form_id + ' Stringa: ' + queryString); }
	}

function sendData(url,type,met,id,frm,ct,wo)
	{
         ok=1;
         if (ct==1)
             {
              ok = ControllaCF(document.getElementById('cf'));
              ok = ControllaPIVA(document.getElementById('pi'));
              alert(ok);
             }
              
         if (ok!=0)
             {
              /*document.images['indicatore_caricamento'].style.visibility = "visible";
              setTimeout('stopimm()',300000);*/

              frmID = id;
              frmID2 = frm;

              if (type == 'form') {setQueryString(frm);}
              
              httpRequest(met,url,true);
              
              if (wo) {window.open(wo,'test');}
             }
	}
	
function initReq(reqType,url,isAsynch)
	{
	 request.onreadystatechange=handleResponse;
	 request.open(reqType,url,isAsynch);
	 request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
	 request.send(queryString);
	 queryString="";
         
	}

function httpRequest(reqType,url,asynch)
	{
	 if (window.XMLHttpRequest) { request = new XMLHttpRequest(); }
	 else 
	 	{
		 if (window.ActiveXObject) { request = new ActiveXObject("Msxml2.XMLHTTP"); }
		 if (!request) { request = new ActiveXObject("Microsoft.XMLHTTP"); }
		}
	 if (request) { initReq(reqType,url,asynch); }
	 else { alert("Ajax non permesso"); }
         
	}

function multi(form_id,response)
	{

	 var valore = response.split("::");
	 
	 lato.innerHTML = valore[0];
	 princ.innerHTML = valore[1];
	 alto.innerHTML = valore[2];
	}

function riempiform(form_id,response)
	{

	 //alert('riempiform');
	 var valore = response.split("::");
	 frm2 = document.getElementById(frmID2);
	 
	 if (valore[0]!=0)
	 	{
		 numberElements = frm2.elements.length;
		 for ( ii = 1; ii < (numberElements); ii++ )	
		 	{
			 iii = ii + 1;
			 //alert('ii: ' + iii + ' valore: ' + valore[ii] + '');
			 if (valore[ii]) { frm2.elements[iii].value = valore[ii]; }
			 else { if (ii==1) {frm2.elements[ii].value = "";} frm2.elements[iii].value = ""; }
			}
		 //alert('Articolo trovato in magazzino');
		}
	 else 
	 	{
		 alert('Articolo non trovato in magazzino controllare il codice!'); 
		 for ( ii = 1; ii < numberElements; ii++ )	{ iii = ii + 1; frm2.elements[iii].value = ""; }
		}
	 //alert('fine riempiform');
	}
		
function printContent(id)
	{
	 str=document.getElementById(id).innerHTML
	 newwin=window.open('','printwin','left=100,top=100,width=400,height=400')
	 newwin.document.write('<HTML>\n<HEAD>\n')
	 newwin.document.write('<TITLE>Print Page</TITLE>\n')
	 newwin.document.write('<script>\n')
	 newwin.document.write('function chkstate(){\n')
	 newwin.document.write('if(document.readyState=="complete"){\n')
	 newwin.document.write('window.close()\n')
	 newwin.document.write('}\n')
	 newwin.document.write('else{\n')
	 newwin.document.write('setTimeout("chkstate()",2000)\n')
	 newwin.document.write('}\n')
	 newwin.document.write('}\n')
	 newwin.document.write('function print_win(){\n')
	 newwin.document.write('window.print();\n')
	 newwin.document.write('chkstate();\n')
	 newwin.document.write('}\n')
	 newwin.document.write('<\/script>\n')
	 newwin.document.write('</HEAD>\n')
	 newwin.document.write('<BODY onload="print_win()">\n')
	 newwin.document.write(str)
	 newwin.document.write('</BODY>\n')
	 newwin.document.write('</HTML>\n')
 	 newwin.document.close()
	}
