// --------------------- 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++) 
       {
            if (campi[ArrayCampi[l]].type=="select-one"){
               var indice=campi[ArrayCampi[l]].selectedIndex;
               SetCookie(ArrayCampi[l],campi[ArrayCampi[l]].options[indice].value,expdate);
            }
            else {
               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);    
            }
         if (campi[l].type=="select-one"){
               var indice=campi[l].selectedIndex;
               SetCookie(campi[l].name,campi[l].options[indice].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+=nome+"\n";
   }
   if (nome.toLowerCase()=="email" && campi[i].value!=""
       && !convalida_email(campi[i].value)) {
       errati+=nome+"\n";    
   }
}
  if (errati != "")
  {
    alert("Inserire un valore per i seguenti campi:\n\n"+errati);
    return (false);
  }
 
  return (true);
}


function convalida_email (strEmail) {
  var flag=true;
  if (strEmail.indexOf("\@")==-1) flag=false;
  if (strEmail.indexOf("\.")==-1) flag=false;
  if (strEmail.indexOf("\'")!=-1) flag=false;
  return (flag);
}


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 = "";  
  }
}

// -------------- AGGIUNGE PAGINA A PREFERITI ---------------
function AddPreferiti () {
   window.external.AddFavorite(top.location.href,document.title);
}

// -------------- GESTIONE CAMPO SELECT ---------------
function Add2Select (fldSelect,optName,optValue) {
  var t=fldSelect.options.length;     
  var lastoption = new Option();
  fldSelect.options[t]=lastoption;
  fldSelect.options[t].text=optName;
  if (optValue!=""){fldSelect.options[t].value=optValue;}
//  lastoption=null;
}

function AzzeraSelect(fldSelect) {
   var t2=fldSelect.length;
   for (var i=0;i<t2;i++){fldSelect.options[0]=null; }
}

function CancellaSelect(fldSelect) {
   if (fldSelect.selectedIndex>-1){
      fldSelect.options[fldSelect.selectedIndex]=null; 
   }
}

function CercaSelect(fldSelect,daCercare) {
   var t2=fldSelect.length;
   for (var i=0;i<t2;i++){
     if (fldSelect.options[i].text==daCercare){
        return true;
      }
    }
    return false;
}

// -------------- APERTURA FINESTRA ---------------
function NuovaFinestra(strUrl,larghezza,altezza,barre,centrata){
    var win9;
    if (centrata){
       var posizione=",left="+((screen.width/2)-(larghezza/2));
       posizione+=",top="+((screen.height/2)-(altezza/2));
    }
    else {
       var posizione=",left=10,top=10"
    }
    win9=window.open(strUrl,
    "proprieta",
    "toolbar=no,directories=no,menubar=no,scrollbars="+barre+",width="+larghezza+",height="+altezza+posizione);
    win9.focus();
    return win9;
};

// ------------------- GESTIONE LIVELLI MULTIBROWSER
var isNetscape=(navigator.appName=="Netscape");
var layerRef="";
var styleRef="";

if (isNetscape){
  layerRef=".layers";
  styleRef="";
}
else {
  layerRef=".all";
  styleRef=".style";
}

function livello(id,stato,testo){
  eval("document"+layerRef+"[\'"+id+"\']"+styleRef+".visibility=\'"+stato+"\'");
  if (testo!=null){
    if (isNetscape) {
     eval("document."+id+".document.write(testo)");
     eval("document."+id+".document.close()");
     }
    else {
     eval(id+".innerHTML=testo");
     }
   }
}


// ------------------- FORMATTAZIONE IMPORTO IN EURO
function ImportoEuro (n) {
  var i='';
  var d='';
  var s='';
  n=n+'';
  var p=n.indexOf('.');
  if (p>0){i=n.substr(0,p);d=n.substr(p+1,2);d=d+'00';d=d.substr(0,2)}
  else    {i=n;d='00'}
  s=i+'.'+d;
  return s;
};


// ------------------- SOSTITUZIONE CARATTERI
function replace (testo,vecchio,nuovo) {
  var d=testo.split(vecchio);
  var i;
  var t="";
  if (d.length>0){
    for (i=0;i<d.length;i++){
      if (t!=""){t+=nuovo}
      t+=d[i];
    }
   }
  else{
    t=testo;
   }
  return t;
}