function isEmpty(field,comment) {
        var inputStr = field.value
        if (inputStr == "" || inputStr == null) {
                alert(comment + " field is empty!")
                field.focus()
                field.select()
                return false
        }
        return true
}

function isEqual(field1,field2,comment) {

    if (field2.value!=field1.value) {
                 alert(comment + " password is different!")
                 field2.focus()
                 field2.select()
                 return false
    }
    return true
}

function isNumber(field,comment,total) {
    if (isEmpty(field,comment)) {
        var inputStr = field.value
	if(inputStr.length < total){
                 alert(comment + " field requires " + total + " digit!")
                 field.focus()
                 field.select()
                 return false
	}else{
	  for (var i = 0; i < inputStr.length; i++) {
             var oneChar = inputStr.substring(i, i + 1)
             if (oneChar < "0" || oneChar > "9") {
                 alert(comment + " field requires digit!")
                 field.focus()
                 field.select()
                 return false
             }
          }
          return true
	}
    }
    return false
}



function check_email(e) {
	ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";

	for(i=0; i < e.length ;i++){
		if(ok.indexOf(e.charAt(i))<0){ 
			return false;
		}	
	} 

	re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
	re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;

	if (!e.match(re) && e.match(re_two)) {
		return (-1);		
	} 
}

function checkEmail(field){
        var inputStr = field.value
	if(!check_email(inputStr)){
		alert("Invalid email detected.");
		field.focus(); 
                field.select()
		return false;
	}
	return true;
}

function makeChoice(choice,msg) {
   if (choice=="" || choice=="Please select" || choice=="none"){
        alert("Please choose " + msg)
        return false
   }else{
        return true
   }
}

function checkTimes() {
   start_t=document.formnu.start_time1.selectedIndex;
   end_t=document.formnu.end_time1.selectedIndex;
   if (end_t <= start_t){
        alert("End time should be more than start time!")
        return false
   }else{
        return true
   }
}

function TestInputType(objValue,strRegExp,strError,strDefaultError)
{
   var ret = true;

    var charpos = objValue.value.search(strRegExp); 
    if(objValue.value.length > 0 &&  charpos >= 0) 
    { 
     if(!strError || strError.length ==0) 
      { 
        strError = strDefaultError;
      }//if 
      alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
      ret = false; 
    }//if 
 return ret;
}


function checkPR(field, no_field, i){
   if(i==0){
       if(field.checked==true){
                no_field.checked=false;
       }
   }
   if(i==1){
       if(no_field.checked==true){
                field.checked=false;
       }
   }
}
function chooseCommute(){
   choice1 = document.formnu.ride.checked;
   choice2 = document.formnu.drive.checked;
   if (choice1==false && choice2==false){
        alert("Are you ride or drive?")
        return false
   }else{
        return true
   }
}

function chooseAgreeTerm(){
   choice1 = document.formnu.agree.checked;
   if (choice1==false){
        alert("Are you agree to terms and conditions?")
        return false
   }else{
        return true
   }
}

function finalize() {

        var proceed = true

        proceed = isEmpty(document.formnu.first_name,"First_name")
        if (!proceed) return false

        proceed = isEmpty(document.formnu.last_name,"Last_name")
        if (!proceed) return false


        proceed = makeChoice(document.formnu.school_type.selectedIndex," school type")
        if (!proceed) return false

        proceed = makeChoice(document.formnu.district.selectedIndex," district")
        if (!proceed) return false

        proceed = chooseCommute()
        if (!proceed) return false

        proceed = isEmpty(document.formnu.start_address,"Start address")
        if (!proceed) return false

        proceed = isEmpty(document.formnu.end_address,"End address")
        if (!proceed) return false

        proceed = makeChoice(document.formnu.start_address_str_type.selectedIndex," start address street type")
        if (!proceed) return false

        proceed = makeChoice(document.formnu.end_address_str_type.selectedIndex," end address street type")
        if (!proceed) return false

        proceed = isEmpty(document.formnu.city1,"start city")
        if (!proceed) return false

        proceed = isEmpty(document.formnu.city2,"end city")
        if (!proceed) return false

        proceed = makeChoice(document.formnu.zip1.selectedIndex," start zip")
        if (!proceed) return false

        proceed = makeChoice(document.formnu.zip2.selectedIndex," end zip")
        if (!proceed) return false


        proceed = isNumber(document.formnu.area_code,"First part of the phone","3")
        if (!proceed) return false

        proceed = isNumber(document.formnu.phonesecond,"Second part of the phone","3")
        if (!proceed) return false

        proceed = isNumber(document.formnu.phonethird,"Last part of the phone","4")
        if (!proceed) return false

        proceed = makeChoice(document.formnu.phone_release.selectedIndex," phone release")
        if (!proceed) return false

	proceed = isEmpty(document.formnu.email,"Email")
        if (!proceed) return false

        proceed = checkEmail(document.formnu.email)
        if (!proceed) return false

        proceed = makeChoice(document.formnu.email_release.selectedIndex," email release")
        if (!proceed) return false

        proceed = makeChoice(document.formnu.start_time1.selectedIndex," start time")
        if (!proceed) return false

        proceed = makeChoice(document.formnu.end_time1.selectedIndex," end time")
        if (!proceed) return false

        proceed = checkTimes()
        if (!proceed) return false


        proceed = makeChoice(document.formnu.start_time_flex.selectedIndex," start time flexibility")
        if (!proceed) return false

        proceed = makeChoice(document.formnu.end_time_flex.selectedIndex," end time flexibility")
        if (!proceed) return false

        proceed = isEmpty(document.formnu.logon_name,"Logon name")
        if (!proceed) return false

        proceed = TestInputType(document.formnu.logon_name,"[^A-Za-z0-9]","", "Logon name: Only alpha-numeric characters allowed ");
        if (!proceed) return false

        proceed = isEmpty(document.formnu.pass1,"Password")
        if (!proceed) return false

        proceed = TestInputType(document.formnu.pass1,"[^A-Za-z0-9]","", "Password: Only alpha-numeric characters allowed ");
        if (!proceed) return false

        proceed = isEmpty(document.formnu.pass2,"Password again")
        if (!proceed) return false

        proceed = isEqual(document.formnu.pass1,document.formnu.pass2,"Confirm")
        if (!proceed) return false

        proceed = chooseAgreeTerm()
        if (!proceed) return false

}



