// --------------------- ROUTINES DI GESTIONE COOKIE ------------------------
var CampiDaSalvare;

function FixCookieDate (date) {
  var base = new Date(0);
  var skew = base.getTime();
  if (skew > 0)
    date.setTime (date.getTime() - skew);
}

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}


function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
  }
  return "";
}


function SetCookie (name, value) {
  var argv = SetCookie.arguments;
  var argc = SetCookie.arguments.length;
  var expires = (argc > 2) ? argv[2] : null;
  var path = (argc > 3) ? argv[3] : null;
  var domain = (argc > 4) ? argv[4] : null;
  var secure = (argc > 5) ? argv[5] : false;
if (expires!=null) FixCookieDate(expires); 
  document.cookie = name + "=" + escape (value) +
    ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
    ((path == null) ? "" : ("; path=" + path)) +
    ((domain == null) ? "" : ("; domain=" + domain)) +
    ((secure == true) ? "; secure" : "");
}


function DeleteCookie (name) {
  var exp = new Date();
  FixCookieDate (exp);
  exp.setTime (exp.getTime() - 1);  
  var cval = GetCookie (name);
  if (cval != null)
    document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
// --------------------- FINE ROUTINES DI GESTIONE COOKIE --------------------


// --------------------- CARICA VALORI COOKIE IN FORM ------------------------
function carica (){
   var l;
   var campi=document.forms[0].elements;
   
    if (CampiDaSalvare != "" && CampiDaSalvare != null){
       var ArrayCampi=CampiDaSalvare.split(",");
       for (l=0;l<ArrayCampi.length;l++) 
         {
            campi[ArrayCampi[l]].value=GetCookie(ArrayCampi[l]);
    	  }
    }
    else {
      for (l=0;l<campi.length;l++) 
       {
          if (campi[l].type == "text") {
             campi[l].value=GetCookie(campi[l].name);
             }
       }
    }
    
    // document.forms[0].elements[5].value=CampiDaSalvare;

}


// --------------------- SALVA VALORI FORM IN COOKIE ------------------------
function salva (){
   // 10 years from now the cookie will expire
   var l;
   var expdate = new Date ();
   var ArrayCampi;
   expdate.setTime (expdate.getTime() + (3600 * 24 * 60 * 60 * 1000));

   var campi=document.forms[0].elements;
  
   if (CampiDaSalvare != "" && CampiDaSalvare != null){
     var ArrayCampi=CampiDaSalvare.split(",");
     for (l=0;l<ArrayCampi.length;l++) 
       {
          SetCookie(ArrayCampi[l],campi[ArrayCampi[l]].value,expdate);    
    	}
    }
    else {
     for (l=0;l<campi.length;l++) 
       {
         if (campi[l].type == "text") {
           SetCookie(campi[l].name,campi[l].value,expdate);    
            }
       }
    }
}



// --------------------- CONVALIDA VALORI FORM ------------------------
function convalida(theForm2,obbligatori)
{
var i=0;
var campi=theForm2.elements;
var errati="";
var campi_obbligatori=obbligatori.toLowerCase();

for (i=0;i<campi.length;i++) {
   var nome=campi[i].name;
   if (campi_obbligatori.indexOf(nome.toLowerCase())!= -1 
       && campi[i].value==""){
       errati+=campi[i].name+"\n";
   }
}
  if (errati != "")
  {
    alert("Inserire un valore per i seguenti campi:\n\n"+errati);
    return (false);
  }
 
  return (true);
}

function convalida_carta_credito(tipo,numero,scadenza,titolare) {
 var risult;
 var num=numero.toString();

 tipo=tipo.toUpperCase();

 if (tipo=="VISA" || tipo=="AMEX") {
 
    if (num=="" || titolare=="" || scadenza==""){
          risult=0;
     }
    
    else {
    
	var s=new String(num);
	var r=new String();
	for(var i=0;i<s.length;i++) {
		if((!isNaN(s.charAt(i))) && (s.charAt(i)!=" "))
			r+=s.charAt(i);
	}
	num = r;
	var i,len,x=0,y=0,v=0;
	var s=new String(num);
	if(s.length<12) v=0;
	else {
		len=s.length;
		if(odd(len)) {
			for(i=(len-2);i>=0;--i) {
				if(odd(i)) y=((s.charAt(i)-'0')*2);
				else y=(s.charAt(i)-'0');
				if(y>=10) y=((y-10)+1);
				x+=y;
			}
		}
		else {
			for(i=(len-2);i>=0;--i) {
				if(odd(i)) y=(s.charAt(i)-'0');
				else y=((s.charAt(i)-'0')*2);
				if(y>=10) y=((y-10)+1);
				x+=y;
			}
		}
		x=(10-(x%10));
		if(x==10) x=0;
		if(x==(s.charAt(s.length-1)-'0')) v=s.charAt(0);
		else v=0;
	}
   	risult=parseInt(v);
    }
    
    if (risult==0) {
       alert("Verificare la correttezza dei dati della carta di credito fornita !!");
     }
    
    return (risult>0);
    
   }
  
 else {    
    
    return true;
    
 }   

}	

function odd(n) {
if(n & 0x0001) return(1);
	else return(0);
}	

// --------------------- STAMPA PAGINA ------------------------
function stampa () {
  safeIEstring=navigator.appVersion;
  if (document.layers || (safeIEstring.indexOf ("MSIE 5.0") != -1)) {
  // se si tratta di netscape dalla versione 4 usa il metodo print() di window  
    	print();
  }  
  else if (document.all) {
  // se invece il browser non è MSIE 5.0, ma ad esempio un browser 4.0 usa l'activex per stampare
   	var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
    	document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
    	WebBrowser1.ExecWB(6, 2);
		WebBrowser1.outerHTML = "";  
  }
}
