    function newPopUp(newurl,newname,param) 
    {
        apopup = window.open(newurl,newname,param);
    }



/******************************************
********** Start function checkForm ******
******************************************/

function checkForm(formName){
        if(isEmail(formName)){
            return false;
        }
        if(isFull(formName)){
            return false;
        }
        if(isNumeric(formName)){
            return false;
        }
        if(isData(formName)){
            return false;
        }
        if (Obbligatori_Yes (formName)){
           return false;
        }
        nomeForm = eval ("document.all."+formName);
        nomeForm.submit();
}

// funzione che verifica, in un radiobox, se ho selezionato quello con valore "si" (nelle impostazioni del radio[0] devo mettere "si" e nel radio[1] "no")
function Obbligatori_Yes (formName)
{
   var strErr = '';
   for (i=0; i<ElencoCampiObbligatori_Yes.length; i++){
       with(eval("document.forms['" + formName + "']")){
            if (ifExist(formName, ElencoCampiObbligatori_Yes[i])){
               myObj = eval("elements." + ElencoCampiObbligatori_Yes[i]);
               // se è selezionato il no
               if (myObj[1].checked)
               {
                   strErr += "\n" + ElencoCampiObbligatori_YesDes[i];
               }

            }
       }
   }
   if (strErr!='') {
        alert(strErrObbligatori_Yes);
        return true;
    }
    else{
        return false;
    }
}



/*
 *Problema con gli oggetti SELECT
 * SELECT.length restituisce un numero uguale al numero di OPTION
 * quindi viene interpretata come una collectio. x questo all'interno 
 * del ciclo -->for(j=0;j<myObj.length;j++)<-- viene gestita l'eccezione
 */

 
function isFull(formName){
    var strErr = '';
    var skipName = '';//gestione SELECT
    var normalCycle = true;
    
    strErr = isFullGetName();
    
    for (i=0; i<ElencoCampiObbligatori.length; i++){
//      myObj =ElencoCampiObbligatori[i];
        
        
        with(eval("document.forms['" + formName + "']")){
            if (ifExist(formName, ElencoCampiObbligatori[i])){
                //cerco di inserire in myObj la collection dei campi con lo stesso nome
                myObj = eval("elements." + ElencoCampiObbligatori[i]);
                //se nn è una collection 
                if(myObj.length==undefined){
                    //alert(myObj.length + " " + myObj.name + " " + myObj.type);
                    if(myObj.type=='checkbox'){
                        if(!checkReqCheckBox(formName,ElencoCampiObbligatori[i])){
                            strErr += "\n" + ElencoCampiObbligatoriDes[i];
                        }
                    }
                    else{   
                        if ((eval(ElencoCampiObbligatori[i] + ".value == ''")) || (eval(ElencoCampiObbligatori[i] + ".value == '-1'"))){
                            strErr += "\n" + ElencoCampiObbligatoriDes[i];
                            changeColor(formName,ElencoCampiObbligatori[i],'ERROR');
                        }
                        else{
                            changeColor(formName,ElencoCampiObbligatori[i],'OK');
                        }   
                    }
                }
                
                //altrimenti itero x tutti gli elementi
                else{
                    //alert(myObj.length + " " + myObj[0].name + " " + myObj[0].type);
                    if(myObj[0].type=='checkbox'){
                        if(!checkReqCheckBox(formName,ElencoCampiObbligatori[i])){
                            strErr += "\n" + ElencoCampiObbligatoriDes[i];
                        }
                    }
                    else{
                        for(j=0;j<myObj.length;j++){
                            //se l'elemento è "SELECT"
                            if(myObj.type == 'select-one'){
                                normalCycle = false;
                                oText = myObj.options[myObj.selectedIndex].value;
                                //alert(oText);
                            }
                            else{
                                normalCycle = true;
                                oText = myObj[j].value;
                            }
                            //fine gestione SELECT
                            
                            if(myObj.name!=skipName || normalCycle){
                                //alert(oText);
                                skipName = myObj.name;
                                if ((oText == '') || (oText == '-1')){
                                    if(strErr=='' || (strErr!='' && myObj.type == 'select-one')){
                                        strErr += "\n" + ElencoCampiObbligatoriDes[i];
                                    }
                                    changeColor(formName,"elements." + ElencoCampiObbligatori[i] + "[" + j + "]",'ERROR');
                                }
                                else{
                                    changeColor(formName,"elements." + ElencoCampiObbligatori[i] + "[" + j + "]",'OK');
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    if (strErr!='') {
        alert(strErrObbligatori + strErr);
        return true;
    }
    else{
        return false;
    }
}


function isFullGetName(){
    var strErr = '';
    for (i=0; i<ElencoCampiGetName.length; i++){
        if(!checkReqCheckBoxGetName(ElencoCampiGetName[i])){
            strErr += "\n" + ElencoCampiGetNameDes[i];
        }
    }
    /*
    if (strErr!='') {
        alert(strErrObbligatori + strErr);
        return true;
    }
    else{
        return false;
    }
    */
    return strErr;
}




function isNumeric(formName){
    
    var strErr = '';
    for (i=0; i<ElencoCampiNumerici.length; i++){
        with(eval("document.forms['" + formName + "']")){

            if (ifExist(formName, ElencoCampiNumerici[i])){
                //cerco di inserire in myObj la collection dei campi con lo stesso nome
                myObj = eval("elements." + ElencoCampiNumerici[i]);
                //se nn è una collection ma ho un solo campo myObj=undefined
                if(myObj.length==undefined){
                    if (isNaN(eval(ElencoCampiNumerici[i]+ ".value.replace('.', ',')")) && isNaN(eval(ElencoCampiNumerici[i]+ ".value.replace(',', '.')"))){
                        strErr += "\n" + ElencoCampiNumericiDes[i];
                        changeColor(formName,ElencoCampiNumerici[i],'ERROR');
                    }
                    else{
                        changeColor(formName,ElencoCampiNumerici[i],'OK');
                    }   
                }
                //altrimenti itero x tutti gli elementi
                else{
                    for(j=0;j<myObj.length;j++){
                        if (isNaN(myObj[j].value.replace('.', ',')) && isNaN(myObj[j].value.replace(',', '.'))){
                            if(strErr==''){
                                strErr += "\n" + ElencoCampiNumericiDes[i];
                            }
                            changeColor(formName,"elements." + ElencoCampiNumerici[i] + "[" + j + "]",'ERROR');
                        }
                        else{
                            changeColor(formName,"elements." + ElencoCampiNumerici[i] + "[" + j + "]",'OK');
                        }
                    }
                }
            }
        }
    } 
    if (strErr!='') {
        alert(strErrNumerici + strErr);
        return true;
    }
    else{
        return false;
    }
}

function isData(formName){
    var strErr = '';
    for (i=0; i<ElencoCampiData.length; i++){
        with(eval("document.forms['" + formName + "']")){
            if (ifExist(formName, ElencoCampiData[i])){
                //cerco di inserire in myObj la collection dei campi con lo stesso nome
                myObj = eval("elements." + ElencoCampiData[i]);
                //se nn è una collection ho un solo campo 
                if(myObj.length==undefined){
                    if(!checkData(eval(ElencoCampiData[i]+ ".value"))){
                        strErr += "\n" + ElencoCampiDataDes[i];
                        changeColor(formName,ElencoCampiData[i],'ERROR');
                    }
                    else{
                        changeColor(formName,ElencoCampiData[i],'OK');
                    }
                }
                //altrimenti itero x tutti gli elementi
                else{
                    for(j=0;j<myObj.length;j++){
                        if(!checkData(myObj[j].value)){
                            if(strErr==''){
                                strErr += "\n" + ElencoCampiDataDes[i];
                            }
                            changeColor(formName,"elements." + ElencoCampiData[i] + "[" + j + "]",'ERROR');
                        }
                        else{
                            changeColor(formName,"elements." + ElencoCampiData[i] + "[" + j + "]",'OK');
                        }
                    }
                }
            }
        }   
    }
    if (strErr!='') {
        alert(strErrData + strErr);
        return true;
    }
    else{
        return false;
    }
}

function checkData(obj){
    if (obj != ''){
        gg=obj.substr(0,2);
        mm=obj.substr(3,2);
        aa=obj.substr(6,2);
        strdata=gg+"/"+mm+"/"+aa;
        data = new Date(aa,mm-1,gg);
        daa=data.getYear().toString();
        dmm=(data.getMonth()+1).toString();
        dmm=dmm.length==1?"0"+dmm:dmm;
        dgg=data.getDate().toString();
        dgg=dgg.length==1?"0"+dgg:dgg;
        dddata=dgg+"/"+dmm+"/"+daa;
        if (dddata!=strdata){
            return false;
        }
        else{
            return true;
        }
    }
    else{
        return true;    
    }
}


function isEmail(formName) {
    var strErr = '';
    for (i=0; i<ElencoCampiMail.length; i++){
        with(eval("document.forms['" + formName + "']")){

            if (ifExist(formName, ElencoCampiMail[i])){
                //cerco di inserire in myObj la collection dei campi con lo stesso nome
                myObj = eval("elements." + ElencoCampiMail[i]);
                //se nn è una collection ma ho un solo campo myObj=undefined
                if(myObj.length==undefined){
                    mailText = eval(ElencoCampiMail[i]+ ".value");
                    if(mailText!=""){
                        if (checkMail(mailText)){
                            strErr += "\n" + ElencoCampiMailDes[i];
                            changeColor(formName,ElencoCampiMail[i],'ERROR');
                        }
                        else{
                            changeColor(formName,ElencoCampiMail[i],'OK');
                        }   
                    }
                }
                //altrimenti itero x tutti gli elementi
                else{
                    for(j=0;j<myObj.length;j++){
                        mailText = eval(myObj[j]+ ".value");
                        if(mailText!=""){
                            if (checkMail(mailText)){
                                if(strErr==''){
                                    strErr += "\n" + ElencoCampiMailDes[i];
                                }
                                changeColor(formName,"elements." + ElencoCampiMail[i] + "[" + j + "]",'ERROR');
                            }
                            else{
                                changeColor(formName,"elements." + ElencoCampiMail[i] + "[" + j + "]",'OK');
                            }
                        }
                    }
                }
            }
        }
    } 
    if (strErr!='') {
        alert(strErrMail + strErr);
        return true;
    }
    else{
        return false;
    }   
}

/*
 * controllo se la mail è valida
 */
function checkMail(obj){
    if(obj.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
        return false;
    else
        return true;
}




/*
 * controllo se ALMENO un checkBox è selezionato
 */
function checkReqCheckBox(formName,checkBox){
    with(eval("document.forms['" + formName + "']")){
        myObj = eval("elements." + checkBox);
        //se nn è una collection 
        if(myObj.length==undefined){
            //alert(eval(checkBox + ".checked"));
            if (eval(checkBox + ".checked")){
                return true;
            }
        }
        else{
            for(j=0;j<myObj.length;j++){
                if (eval(checkBox + "[j].checked")){
                    return true;
                }
            }
        }
    }
    return false;
}

/*
 * controllo se ALMENO un checkBox è selezionato [dedicata a getElementByName()]
 */
function checkReqCheckBoxGetName(checkBox){
    //referenza all'oggetto
    //il tag getElementsByName restituisce una collection
    myObj = document.getElementsByName(checkBox);
    //se nn è una collection 
    if(myObj.length==undefined){
        if (myObj.checked){
            return true;
        }
    }
    else{
        for(j=0;j<myObj.length;j++){
            if (myObj[j].checked){
                return true;
            }
        }
    }
    return false;
}


function ifExist(formName, fieldName){
    var numCont;
    var myItemsLength = eval("document.forms['" + formName + "'].elements.length");
    for (numCont = 0; numCont < myItemsLength; numCont ++){
        if (eval("document.forms['" + formName + "'].elements[numCont].name") == fieldName){
            return true;
        }
    }
}
function deleteRow(QueryString){
    if (confirm(strAreYouSure)){
        return true;
    }
    else{
        return false;
    }
}
function changeColor(formName, formField, event){
    //alert("document.forms['" + formName + "']." + formField + ".style.backgroundColor='#75A1D0'");
    if(event=='ERROR'){
        eval("document.forms['" + formName + "']." + formField + ".style.backgroundColor='#75A1D0'");
    }
    else{
        eval("document.forms['" + formName + "']." + formField + ".style.backgroundColor='#a8d8e6'");
    }
}
/******************************************
********** End function checkform ******
******************************************/

//CONFERMA X CANCELLAZIONE RECORD
function deleteRow()
    {
    if(confirm("Sei sicuro di voler cancellare questo record?")){
        return true;
    }
    else
    {
        return false;
    }
}




function verifica_data_garanzia()
{
  mese=""
  giorno=""
  mese2=""
  giorno2=""
  errore=""
  if ((cerca.DaData.value.length==10) || (cerca.DaData.value.length==6) || (cerca.DaData.value.length==4) || (cerca.DaData.value.length==8) || (cerca.DaData.value ==""))
  {
      if (cerca.DaData.value.length==10)
      {
           mese = cerca.DaData.value.substring (3,5)
           giorno = cerca.DaData.value.substring(0,2)
      }
      else if (cerca.DaData.value.length==6)
      {
           mese = cerca.DaData.value.substring (2,4)
           giorno = cerca.DaData.value.substring(0,2)
      }
      else if ((cerca.DaData.value.length==8)&&((cerca.DaData.value.substring (2,3)=="/")||(cerca.DaData.value.substring (2,3)=="-")))
      {
           mese = cerca.DaData.value.substring (3,5)
           giorno = cerca.DaData.value.substring(0,2)
      }
      else if (cerca.DaData.value.length==8)
      {
           mese = cerca.DaData.value.substring (2,4)
           giorno = cerca.DaData.value.substring(0,2)
      }
      else if (cerca.DaData.value.length==4)
      {
           mese = cerca.DaData.value.substring (2,4)
           giorno = cerca.DaData.value.substring(0,2)
      }
      if (cerca.DaData.value !="")
      {
        if ((mese>12)||(mese<1))
        {
           errore = "- Data non corretta nel campo 'Da Data'\n";
        }
        else if ((giorno<1)||(giorno>31))
        {
           errore = "- Data non corretta nel campo 'Da Data'\n";
        }
      }
  }
  else
  {
      errore = "- Data non corretta nel campo 'Da Data'\n";
  }
  if ((cerca.AData.value.length==10) || (cerca.AData.value.length==6) || (cerca.AData.value.length==4) || (cerca.AData.value.length==8) || (cerca.AData.value ==""))
  {
      if (cerca.AData.value.length==10)
      {
           mese2 = cerca.AData.value.substring (3,5)
           giorno2 = cerca.AData.value.substring(0,2)
      }
      else if (cerca.AData.value.length==6)
      {
           mese2 = cerca.AData.value.substring (2,4)
           giorno2 = cerca.AData.value.substring(0,2)
      }
      else if ((cerca.AData.value.length==8)&&((cerca.AData.value.substring (2,3)=="/")||(cerca.AData.value.substring (2,3)=="-")))
      {
           mese2 = cerca.AData.value.substring (3,5)
           giorno2 = cerca.AData.value.substring(0,2)
      }
      else if (cerca.AData.value.length==8)
      {
           mese2 = cerca.AData.value.substring (2,4)
           giorno2 = cerca.AData.value.substring(0,2)
      }
      else if (cerca.AData.value.length==4)
      {
           mese2 = cerca.AData.value.substring (2,4)
           giorno2 = cerca.AData.value.substring(0,2)
      }
      if (cerca.AData.value !="")
      {
        if ((mese2>12)||(mese2<1))
        {
           errore = "- Data non corretta nel campo 'A Data'\n";
        }
        else if ((giorno2<1)||(giorno2>31))
        {
           errore = "- Data non corretta nel campo 'A Data'\n";
        }
      }
  }
  else
  {
      errore += "- Data non corretta nel campo 'A Data'\n";
  }
  if (errore!="")
  {
      errore +="\n (accettati i formati ggmm, ggmmaa, gg/mm/aa, gg/mm/aaaa, gg-mm-aa, gg-mm-aaaa, ggmmaaaa)\n\n"
  }
  if(IsNumeric(cerca.n_garanzia.value)==false)
  {
     errore += "- Il campo Numero Garanzia deve essere numerico"
  }



  if ((errore != ""))
  {
      alert ("Si sono verificati i seguenti errori: \n\n" +errore );
      return false;
  }


}
function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}
