//---- checkform version 1.0

/*
fN  : form name
fIN : form item name
fIU : form item user name
fIC : 0=optional, 1=compulsory
fIT : "E"=e-mail address, "X"=text
fIm : minimum length
fIM : maximum length
fIP : prefix
fIS : suffix
*/ 
function fI (fN,fIN,fIU,fIC,fIT,fIm,fIM,fIP,fIS) {
    this.fN=fN;
    this.fIN=fIN;
    this.fIU=fIU;
    this.fIC=fIC;
    this.fIT=fIT;
    this.fIm=fIm;
    this.fIM=fIM;
    this.fIP=fIP;
    this.fIS=fIS;
}
function formItem (fN,fIN,fIU,fIC,fIT,fIm,fIM,fIP,fIS) {//alert(formItems);
    formItems++;
    fI[formItems]=new fI(fN,fIN,fIU,fIC,fIT,fIm,fIM,fIP,fIS);
}
function checkForm (thisForm) {
    //alert("form : "+thisForm.name);
    for (x=0;x<=thisForm.elements.length-1;x++) {//alert("x="+x);
        //alert("element : "+thisForm.elements[x].name);
        for (y=1;y<=formItems;y++) {//alert("y="+y);
            if (fI[y].fN==thisForm.name&&thisForm.elements[x].name==fI[y].fIN) {
                //alert("checking : "+fI[y].fIN);
                len = thisForm.elements[x].value.length
//------------------------------ check that compulsory field filled
                if (fI[y].fIC==1) {
                    if (len<1) {
                        alert("The field \""+fI[y].fIU+"\" must be filled in");
                        return false;
                    }
                }
//------------------------------ check minimum field length
                if (fI[y].fIm!=0) {
                    if (len<fI[y].fIm) {
                        alert("The field \""+fI[y].fIU+"\" must contain at least " + fI[y].fIm + " characters");
                        return false;
                    }
                }
//------------------------------ check maximum field length
                if (fI[y].fIM!=0) {
                    if (len>fI[y].fIM) {
                        alert("The field \""+fI[y].fIU+"\" may not contain more than " + fI[y].fIM + " characters");
                        return false;
                    }
                }
//------------------------------ validate e-mail address
                if (fI[y].fIT=="E"&&thisForm.elements[x].value.length>0) {
                    xa = thisForm.elements[x].value.indexOf("@")
                    xb = thisForm.elements[x].value.lastIndexOf("@")
                    xc = thisForm.elements[x].value.lastIndexOf(".")
                    if (xa<1|xa!=xb|xc<xa|len-xc<3) {
                        alert("\"" + thisForm.elements[x].value + "\" is not a valid e-mail address");
                        return false;
                    }
                }
                thisForm.elements[x].value=fI[y].fIP + thisForm.elements[x].value + fI[y].fIS
                //alert(fI[y].fIN+" = "+thisForm.elements[x].value)
            }
        }
    }
}


