// JScript source code

function chkmail(em) {
var the_at=em.indexOf("@");
var the_dot=em.lastIndexOf(".");
var a_space=em.indexOf(" ");
if ((the_at!=-1) &&		// non manca la @
	(the_at !=0) &&		// non è all'inizio
	(the_dot!=-1) &&	// non manca il .
	(the_dot>the_at+1) &&	// tra @ e . c'è qualcosa
	(the_dot<em.length-1) &&	// dopo il punto c'è qualcosa
	(a_space==-1))		// non ci sono spazi
	{ return true; }
	else { return false; }
}

function capitalize(s) {
var s1="";
var cambia=true;
var lettere="abcdefghjkilmnopqrstuvwyxzABCDEFGHJKILMNOPQRSTUVWYXZ";
for (var i=0; i<s.length; i++) {
    if (lettere.indexOf(s.substring(i,i+1))!=-1) {
    // è una lettera
    if (cambia==true) {
        s1=s1+s.substring(i,i+1).toLocaleUpperCase();
        cambia=false;
    } else { 
    s1=s1+s.substring(i,i+1).toLocaleLowerCase();
    }
    } else { 
    s1=s1+s.substring(i,i+1);
    cambia=true;
    }
}
return s1;
}

function chkdate(the_date) {
var date_array=the_date.split("-");
if ((date_array.length==3) &&
    (date_array[1]>0) && (date_array[1]<13) &&
    (date_array[0]>0) && (date_array[0]<32) &&
    (date_array[2]>1900)) { return true;}
    else { return false;} 
}

function chktele(em) {
var temp="";
for (var i=0; i<em.length; i++) {
 if (em.substring(i,i+1) != " ") 
 { 
    temp=temp+em.substring(i,i+1);
 }
}
//alert(temp);
var the_line=temp.indexOf("-");
// controlla telefono nella forma pref-telefono

if ((the_line!=-1) &&   // c'è -
    (the_line>1)   && // non è all'inizio
    (the_line<temp.length-3) && // non è alla fine
    (isNum(temp.substring(0,the_line))) &&  // prefisso numerico
    (isNum(temp.substring(the_line+1,temp.length))))  // telefono numerico
	{ return true; }
	else { return false; } 
}

function isNum(x) {
var ok=true;
if (x.length==0) { return false; } else {
for (var i=0; i<x.length; i++) {
    if ((x.substr(i,1)>"9") || (x.substr(i,1)<"0")) {
    ok=false;
    }
}
return ok;
}
}

function checkblank(campo) {
if (campo.length==0) { return false; }
for (var i=0; i<campo.length; i++) {
    if (campo.charAt(i)!=' ' && campo.charAt(i)!='\t') { 
        return true; 
        }
}
return false;
}

function checkblen(campo, lung) {
// controlla che un campo contenga almeno lung caratteri significativi
if (campo.length==0) { return false; }
var q=0;
for (var i=0; i<campo.length; i++) {
    if (campo.charAt(i)!=' ' && campo.charAt(i)!='\t') { 
        q++; 
        }
}
if (q<lung) {
return false; }
else { return true; }
}


function checkblanktele(campo) {
// considera vuoto anche un campo che contiene solo "-", usato per
// controllo di telefoni e date
if (campo.length==0) { return false; }
for (var i=0; i<campo.length; i++) {
    if (campo.charAt(i)!=' ' && campo.charAt(i)!='\t' && campo.charAt(i)!='-') { 
        return true; 
        }
}
return false;
}


function checkcf(campo) {
    var lett="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var nums="0123456789";
    v1 = new Array(1,0,5,7,9,13,15,17,19,21,2,4,18,20,11,3,6,8,12,14,16,10,22,25,24,23);
    v2 = new Array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25);
    var k=-1;
    var c=0;
    if (campo.length<16) { return "Il codice fiscale è corto (meno di 16 caratteri)\n";}
    for (var i=0;i<15;i+=2) {
        k=lett.indexOf(campo.charAt(i));
        if (k==-1) { k=nums.indexOf(campo.charAt(i));}
        c+=v1[k];
    } 
    for (var i=1;i<14;i+=2) {
        k=lett.indexOf(campo.charAt(i));
        if (k==-1) { k=nums.indexOf(campo.charAt(i));}
        c+=v2[k];
    }   
    c=c%26; 
    if (campo.charAt(15)==lett.charAt(c)) { return "OK";}
    else { return "Il codice fiscale è errato (carattere di controllo)\n"} 
}

