//_____________________________________________________________________________
function isEmpty(inputStr) {
	return (inputStr == "" || inputStr == null);
}
//_____________________________________________________________________________
function inRange(inputStr, lo, hi) {
	var num = parseInt(inputStr, 10);
	var ok=!(num < lo || num > hi);
	if(!ok) alert("Please, choose rating value by clicking on a star.");
	return ok;
}
//_____________________________________________________________________________
function isValidRadio(radio) {
    var valid = false;
    for (var i = 0; i < radio.length; i++) {
        if (radio[i].checked) {
            return true;
        }
    }
    alert("Make a choice from the radio buttons.");
    return false;
}
//_____________________________________________________________________________
function focusIt(theForm, elem) {
    var elem = theForm.elements[elem];
    elem.focus();
	if(elem.type != "text") elem.select();
}
//_____________________________________________________________________________
function minLen(theForm, theField, len) {
	var num = theField.value.length;
	if(num < len){
        elem="td_"+theField.name;
        td=ToObj(elem);
		td.color='red';
		alert("The length of this field must be "+len+" caracters at least.");
		focusIt(theForm,theField.name);
		return false;
	}
	td.color='#333333';
	return true;
}
//_____________________________________________________________________________
function eCheckChosen(sel) {
    return (sel.selectedIndex != 0);
}
//_____________________________________________________________________________
function CheckChosen(theForm){
   for(var i=1; i<arguments.length; i++){
        elem="td_"+arguments[i].name;
        td=ToObj(elem);
        if (!eCheckChosen(arguments[i])){
            td.color='red';
	        alert("Please make a choice from this list.");
			focusIt(theForm,arguments[i].name);
            return false;
        }
        else td.color='#333333';
   }
   return true;
}
//_____________________________________________________________________________
function eCheckSpecialChar(sn){
    var tofind='àâôèéêëçîïùûü';
    var n = tofind.length;
    for(var i=0;i<n;i++){ 
        var ch=tofind.charAt(i);
        var ind=sn.value.indexOf(ch);
        if(ind!=-1) return false;
    }
    return true;
}
//_____________________________________________________________________________
function CheckSpecialChar(theForm){
   for(var i=1; i<arguments.length; i++){
        elem="td_"+arguments[i].name;
        td=ToObj(elem);
        if (!eCheckSpecialChar(arguments[i])){
            td.color='red';
            alert("Field entry is not valid (Specials caraters)");
			focusIt(theForm,arguments[i].name);
            return false;
        }
        else td.color='#333333';
   }
   return true;
}
//_____________________________________________________________________________
function eCheckDate(sn) {
	if(sn.value=="") return true;
    y1=1900;
    y2=2100;
    m=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    vdate= sn.value;
    yyyy=vdate.substring(0,4);
    mm=vdate.substring(5,7);
    dd=vdate.substring(8,10);
    sep1=vdate.substring(4,5);
    sep2=vdate.substring(7,8);
    if(yyyy%4==0) m[1]++;
    if((sep1==sep2) && (sep1=='-' || sep1=='/'))
        if(yyyy>y1 && yyyy<y2)
            if(mm>0 && mm<13)
                if(dd>0 && dd<=m[mm-1])
                    return true;
    return false;
}
//_____________________________________________________________________________
function CheckDate(theForm){
   for(var i=1; i<arguments.length; i++){
        elem="td_"+arguments[i].name;
        td=ToObj(elem);
        if (!eCheckDate(arguments[i])){
            td.color='red';
            alert("Field entry is not valid (Date)");
			arguments[i].focusIt(theForm,arguments[i]);
            return false;
        }
        else td.color='#333333';
   }
   return true;
}
//_____________________________________________________________________________
function eCheckEMail(sn){
	if(sn.value=="") return true;
    pattern = /(.*){1,}@(.*){2,}\.(.*){2,}/;
    return (pattern.test(sn.value));
}
//_____________________________________________________________________________
function CheckEMail(theForm){
   for(var i=1; i<arguments.length; i++){
        elem="td_"+arguments[i].name;
        td=ToObj(elem);
        if (!eCheckEMail(arguments[i])){
            td.color='red';
            alert("Field entry is not valid (Mail)");
			focusIt(theForm,arguments[i].name);
            return false;
        }
        else td.color='#333333';
   }
   return true;
}
//_____________________________________________________________________________
function eCheckAlphaNum(sn){
    pattern = /^[A-Za-z0-9_&nbsp;]/;
    return pattern.test(sn.value);
}
//_____________________________________________________________________________
function CheckAlphaNum(theForm){
   for(var i=1; i<arguments.length; i++){
        elem="td_"+arguments[i].name;
        td=ToObj(elem);
        if (!eCheckAlphaNum(arguments[i])){
            td.color='red';
            alert("Field entry is not valid (AN)");
			focusIt(theForm,arguments[i].name);
            return false;
        }
        else td.color='#333333';
   }
   return true;
}
//_____________________________________________________________________________
function eCheckAlpha(sn){
    pattern = /^[A-Za-z_]/;
    return pattern.test(sn.value);
}
//_____________________________________________________________________________
function CheckAlpha(theForm){
   for(var i=1; i<arguments.length; i++){
        elem="td_"+arguments[i].name;
        td=ToObj(elem);
        if (!eCheckAlpha(arguments[i])){
            td.color='red';
            alert("Field entry is not valid (Alphabetique)");
			focusIt(theForm,arguments[i].name);
            return false;
        }
        else td.color='#333333';
   }
   return true;
}
//_____________________________________________________________________________
function eCheckNum(sn){
    pattern = /^[0-9]*$/;
    return pattern.test(sn.value);
}
//_____________________________________________________________________________
function CheckNum(theForm){
   for(var i=1; i<arguments.length; i++){
        elem="td_"+arguments[i].name;
        td=ToObj(elem);
        if (!eCheckNum(arguments[i])){
            td.color='red';
            alert("Invalid number");
			focusIt(theForm,arguments[i].name);
            return false;
        }
        else td.color='#333333';
   }
   return true;
}
//_____________________________________________________________________________
function CheckRequiredFields(theForm){
   var re = /.+/;
   for(var i=1; i<arguments.length; i++){
        elem="td_"+arguments[i].name;
        td=ToObj(elem);
		if(!arguments[i].value.match(re)){
            td.color='red';
            alert("This field is required");
			focusIt(theForm,arguments[i].name);
            return false;
        }
        else td.color='#333333';
   }
   return true;
}
//_____________________________________________________________________________
function CheckPasswords(theForm){
    if(arguments[1].value!=arguments[2].value){
        alert("Passwords don't matchs");
        arguments[2].value="";
		focusIt(theForm,arguments[2].name);
        return false;
    }
    return true;
}
//_____________________________________________________________________________
function CheckChecked(theForm){
   for(var i=0; i<arguments.length; i++){
        if(arguments[i].type != "checkbox") continue;
        elem="td_"+arguments[i].name;
        td=ToObj(elem);
        if(arguments[i].checked==false){
            td.color='red';
            alert("The Checkbox "+arguments[i].name+" must be checked.");
            return false;
        }
   }
   return true;
}
//_____________________________________________________________________________
function CheckForm_info(theForm){
	 if(CheckRequiredFields(theForm, theForm.First_Name,theForm.Last_Name,theForm.ul_ans,theForm.ul_heures,theForm.ul_fac,theForm.diplome,theForm.specia,theForm.diplomeur,theForm.ddate,theForm.Login))
     if(CheckChosen(theForm, theForm.Sexe))
	 if(CheckNum(theForm,theForm.ul_ans,theForm.ul_heures))
	 if(CheckDate(theForm,theForm.Birthday,theForm.ddate))
	 if(CheckAlphaNum(theForm, theForm.Login))
     if(CheckSpecialChar(theForm, theForm.Login))
     if(CheckEMail(theForm, theForm.Email))
	 if(CheckPasswords(theForm,theForm.Password,theForm.Password1))
     //if(CheckChecked(theForm, theForm.public))
     return true;
     return false;
}
//_____________________________________________________________________________
function CheckForm_sug(theForm){
	 if(CheckRequiredFields(theForm, theForm.nom, theForm.email, theForm.comment))
     if(CheckEMail(theForm, theForm.email))
	 if(minLen(theForm,theForm.comment, 25))
     return true;
     return false;
}
//_____________________________________________________________________________
function CheckForm_qr(theForm){
	 if(CheckRequiredFields(theForm, theForm.nom, theForm.email, theForm.quest))
     if(CheckEMail(theForm, theForm.email))
	 if(minLen(theForm,theForm.quest, 25))
     return true;
     return false;
}
//_____________________________________________________________________________
//_____________________________________________________________________________
//_____________________________________________________________________________
//_____________________________________________________________________________

