/*****************************************************************************************************

* 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

*     onClick="validate(this.form); return document.formSubmit;"

******************************************************************************************************/



	function validate(form){

		
		var error = "";

		//for each form element
		for(var i=0; i<form.length; i++){

			var element = form[i];
			//alert(element);
			//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;
			return false;

		}

		else

			document.formSubmit = true;
			return true;

	}	

	

	function valid(value,type,element){

		if(trim(value) == "")

			return false;

			

		switch(type){

			case "int":

				if(isNaN((value)))

					return false;

				break;

			case "float":

				if(isNaN(parseFloat(value)))

					return false;

				break;

			case "email":

				var p = value.indexOf('@');

				if(p<1 || p==(value.length-1))

					return false;
				
				var p1 = value.indexOf('.');

				if(p1<1 || p1==(value.length-1))

					return false;
				
				break;

			case "checked":

				if(!element.checked)

					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;

    }

// Removes leading whitespaces
function LTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

// Removes ending whitespaces
function RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	
	return LTrim(RTrim(value));
	
}
