//--------------- Controllo Codice Fiscale -----
//--------------- Inizio

function CheckCF(myCode, myArgs) {
  var regExp;
  var Codice;
  var retVal;

  regExp = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
  Codice = myArgs.Value.toUpperCase();
  retVal = regExp.test(Codice);

  if (retVal) {
    retVal = CheckSum(Codice);
  }

  myArgs.IsValid = retVal;
  return retVal;
}

function CheckSum(myCode) {
  var TotDispari;
  var TotPari;
  var myCheckSum;

  TotDispari = Dispari(myCode.substring(0, 1)) + Dispari(myCode.substring(2, 3)) + Dispari(myCode.substring(4, 5)) + Dispari(myCode.substring(6, 7)) + Dispari(myCode.substring(8, 9)) + Dispari(myCode.substring(10, 11)) + Dispari(myCode.substring(12, 13)) + Dispari(myCode.substring(14, 15));
  TotPari = Pari(myCode.substring(1, 2)) + Pari(myCode.substring(3, 4)) + Pari(myCode.substring(5, 6)) + Pari(myCode.substring(7, 8)) + Pari(myCode.substring(9, 10)) + Pari(myCode.substring(11, 12)) + Pari(myCode.substring(13, 14));
  myCheckSum = String.fromCharCode(((TotDispari + TotPari) % 26) + 65);

  if (myCode.substring(15, 16) == myCheckSum) {
    return true;
  }
  else {
    return false;
  }
}

function Pari(myChar) {
  var retVal;

  if (myChar.charCodeAt(0) >= 65 && myChar.charCodeAt(0) <= 90) {
    retVal = myChar.charCodeAt(0) - 65;
  }
  else {
    retVal = eval(myChar);
  }
  return retVal;
}

function Dispari(myChar) {
  var retVal;

  switch (myChar) {
    case "0":
      retVal = 1;
      break;
    case "1":
      retVal = 0;
      break;
    case "2":
      retVal = 5;
      break;
    case "3":
      retVal = 7;
      break;
    case "4":
      retVal = 9;
      break;
    case "5":
      retVal = 13;
      break;
    case "6":
      retVal = 15;
      break;
    case "7":
      retVal = 17;
      break;
    case "8":
      retVal = 19;
      break;
    case "9":
      retVal = 21;
      break;
    case "A":
      retVal = 1;
      break;
    case "B":
      retVal = 0;
      break;
    case "C":
      retVal = 5;
      break;
    case "D":
      retVal = 7;
      break;
    case "E":
      retVal = 9;
      break;
    case "F":
      retVal = 13;
      break;
    case "G":
      retVal = 15;
      break;
    case "H":
      retVal = 17;
      break;
    case "I":
      retVal = 19;
      break;
    case "J":
      retVal = 21;
      break;
    case "K":
      retVal = 2;
      break;
    case "L":
      retVal = 4;
      break;
    case "M":
      retVal = 18;
      break;
    case "N":
      retVal = 20;
      break;
    case "O":
      retVal = 11;
      break;
    case "P":
      retVal = 3;
      break;
    case "Q":
      retVal = 6;
      break;
    case "R":
      retVal = 8;
      break;
    case "S":
      retVal = 12;
      break;
    case "T":
      retVal = 14;
      break;
    case "U":
      retVal = 16;
      break;
    case "V":
      retVal = 10;
      break;
    case "W":
      retVal = 22;
      break;
    case "X":
      retVal = 25;
      break;
    case "Y":
      retVal = 24;
      break;
    case "Z":
      retVal = 23;
      break;
  }
  return retVal;
}

//--------------- Controllo Codice Fiscale -----
//--------------- Fine

//--------------- Controllo ActiveX -----
//--------------- Inizio

function StampaPDF(Path, UrlPDF, Stampante, Formato) {
  var Esito;
  var PrinterObj;

  Esito = false;

  PrinterObj = GetPrinterObj();
  if (PrinterObj != null) {
    if (Formato != "") try { PrinterObj.SetFormato(Formato, Stampante); } catch (e) { }
    Esito = PrinterObj.PrintFiles(Path, UrlPDF, Stampante);
    if (!Esito) alert(PrinterObj.CurrentError);
  }

  return Esito;
  //alert("ciao");

}

function GetPrinterObj(Silent) {
  var PrinterObj;
  try {
    PrinterObj = new ActiveXObject("TesiPDFPrinter.clsPDFPrinter");
  }
  catch (e) { }
  if (PrinterObj == null && !Silent) {
    //alert("Oggetto ActiveX non installato su questa stazione!");
  }
  return PrinterObj;
}

function GetMacAddress() {
  var PrinterObj;
  var Mac;
  Mac = "";
  PrinterObj = GetPrinterObj();
  if (PrinterObj != null) {
    try { Mac = GetCookie("MacAddress"); } catch (e) { Mac = ""; }
    if (Mac == "") { Mac = PrinterObj.MacAddress; }
    if (Mac != "") SetCookie("MacAddress", Mac);

  }
  return Mac;
}

function FillElencoStampanti(ControlName, Default) {
  var PrinterObj;
  var Control;
  var OStampante;
  var sStampanti;
  var Stampanti;
  var i;

  PrinterObj = GetPrinterObj();
  if (PrinterObj != null) {
    Control = document.all[ControlName];
    if (typeof (Control) != "undefined") {
      sStampanti = PrinterObj.FormatPrinterList();
      Stampanti = sStampanti.split(",");
      OStampante = document.createElement("OPTION");
      OStampante.text = "";
      OStampante.value = "";
      Control.add(OStampante);

      for (i = 0; i < Stampanti.length; i++) {
        OStampante = document.createElement("OPTION");
        OStampante.text = Stampanti[i];
        OStampante.value = Stampanti[i];
        OStampante.selected = (Stampanti[i] == Default);
        Control.add(OStampante);
      }
      //try{Control.value=Default;}catch(e){}
    }
  }
}

function CheckActiveX() {
  var RetValue;
  PrinterObj = GetPrinterObj(true);
  if (PrinterObj != null) RetValue = true;
  else RetValue = false;

  return RetValue;
}



function SetCookie(sName, sValue) {
  date = new Date();
  document.cookie = sName + "=" + escape(sValue) + ";"
}


function GetCookie(sName) {
  // cookies are separated by semicolons
  var aCookie = document.cookie.split("; ");
  for (var i = 0; i < aCookie.length; i++) {
    // a name/value pair (a crumb) is separated by an equal sign
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0])
      return unescape(aCrumb[1]);
  }

  // a cookie with the requested name does not exist
  return "";
}

//--------------- Controllo ActiveX -----
//--------------- Fine


function ChkSecureSSLSession()
{

  // Questa porzione da http a https 
  var CurrentUrl;
  CurrentUrl=window.location.href;
  if (CurrentUrl.indexOf("https",0)==-1)
  {
    //alert("Warning! you are entering a secure connection.");
    window.location.href=CurrentUrl.replace("http","https"); 
  }     



  // Questa porzione da https a http (per eventuali problemi di certificato)
//  var CurrentUrl;
//  CurrentUrl=window.location.href;
//  if (CurrentUrl.indexOf("https",0)!=-1)
//  {
//    //alert("Warning! you are entering a secure connection.");
//    window.location.href=CurrentUrl.replace("https","http"); 
//  }     


}

