/**
* Validate Javascript.
* For web programming CSci
* October 02, 2004
*/
function checkForEmpty(){
	
	for(var i=0; i<document.form.length;i++) {
		var e = document.getElementById('required'+i);
        if(e.value == ''){
                return invalid("Please enter the " + e.name);
        } else if(e.name == 'zipcode' && e.length != 5) {
			  return invalid("Please enter 5 digits for " + e.name);
		}else if (e.name == 'user_name' && e.length < 5) {
			  return invalid("Please enter 5+ characters for " + e.name);
		} else if(e.name == 'password') {
			if(! checkPassword()) {
					return;
			}
		} else if(e.name == 'email') {
			if(! checkEmail()) { 
				return;
			}
		} 
  }
  return true;
      
}
	function checkEmail(){
        var email = document.form.email.value;
        //var pattern = /^([a-zA-Z0-9_\-])*\@(([a-zA-Z0-9\-])*\.)+([a-zA-Z0-9]) $/;
        //var pattern = /\w+@\w+\.\w/;
        //regex expression from http://www.virtualpromote.com/tools/javascript-regex/validator.js
        var pattern = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
   		 if(! pattern.test(email)){
                return invalid("Please enter valid email.(domain@name.end)")
        }
        var indexAt = email.indexOf("@");
        var indexDot = email.indexOf(".");
        //document.write(indexDot);
        if (indexAt == -1 || indexDot == -1){
                return invalid("invalid email address");
        }
			return true;
		}

function checkPassword(){
        pwd1 = document.form.password.value;
        pwd2 = document.form.password2.value;
      if(pwd1 != pwd2){
                return invalid("Please type the same password twice.");
        }else if(pwd1.length < 6){
                return invalid("Your password is too short. Please enter one with 6+ characters");
        }
        return true;
}

function invalid($msg){
        alert($msg);
        return false;
}

function validate(){
  if(! checkForEmpty()) return false;
  return true;

}

