/*****************************************************************************************************
* Easy Javascript Validation by Daniel Boorn
* Copyright 2006, All Rights reserved by Daniel Boorn
* Contact: daniel.boorn@gmail.com - wwww.dboorn.com
* In any form element add the following form attributes to validate
* required ="yes"
* validate = { "int", "float", "text", "email" }
* message = "Error Message for Element"
* Example: <input type="text" validate="int" message="Please enter valid zip code" name="zip">
*
* It is required that you add the following to any submit button
******************************************************************************************************/

	function validate(form){
		var error = "";
		//for each form element
		for(var i=0; i<form.length; i++){
			var element = form[i];
			//if required
			if(element.getAttribute("required") == "yes"){
				//if form element if empty
				if(!valid(element.value,element.getAttribute("validate"),element))
					error += element.getAttribute("message") + "\r\n";	
			}
			else if(element.getAttribute("validate") != ""){
				//if validation is need by not required
				if(element.value != ""){
					if(!valid(element.value,element.getAttribute("validate"),element))
						error += element.getAttribute("message") + "\r\n";
				}
			}
		}
		
		

		if(error != ""){
			alert(error);
			document.formSubmit = false;
		}
		else
			document.formSubmit = true;
			
			
	}	
	
	function valid(value,type,element){
		if(value == "")
			return false;
			
		switch(type){
			case "int":
				if(isNaN(parseInt(value)))
					return false;
				break;
			case "float":
				if(isNaN(parseFloat(value)))
					return false;
				break;
			case "email":					
				var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
				if (!filter.test(value))
					return false;
				break;
			case "date(YYYY-MM-DD)":
				var filter  = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/;
				if (!filter.test(value))
					return false;
				break;				
			case "checked":
				if(!element.checked)
					return false;
				break;
			case "phone":// 555-555-5555
				var filter  = /^[2-9]\d{2}-\d{3}-\d{4}$/;
				if (!filter.test(value))
					return false;
				break;			
			case "creditcard": // 4444-4444-4444-4444
				var filter  = /^(\d{4}[- ]){3}\d{4}|\d{16}$/;
				if (!filter.test(value))
					return false;
				break;
			case "expdate": // MM/YY
				var filter  = /^((0[1-9])|(1[0-2]))\/(\d{2})$/;
				if (!filter.test(value))
					return false;
				break;				
				
			default://string
				break;
		}
		return true;
	}	

    function check_length(maxchars,message,div_id)
    {
    	var len = message.value.length;

        if(len > maxchars){
        	message.value = message.value.substr(0,maxchars);
        	len = maxchars;
        }

        document.getElementById(div_id).innerHTML = maxchars - len;
    }

