/*****************************************************************************************************
* Easy Javascript Validation
* Copyright 2006, All Rights reserved by Daniel Boorn
* 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;   alert(error);"
******************************************************************************************************/

	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,element.getAttribute("minlength")))
				{
					element.style.border="1px solid #FF0000"
					error += element.getAttribute("message") + "\r\n";}
				else{
					element.style.border="1px solid #009900"
				}
			}
		}
		if(error != ""){
		    error  = rtrim(error);
		    if ( error.substring(error.length-1,error.length) ==","){
		        error = error.substring(0,error.length-1);
		    };
			document.getElementById('writetolayer').innerHTML = "Please complete the following fields: " + error;
			javascript:scroll(0,0);
			return false;
		}
		else
			return true;
	}	
	
	function valid(value,type,element,minlen)
	{
		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":
	   			  return checkEmail(value);
  				  break;
			case "checked":
				if(!element.checked)
					return false;
				break;
			default://string
				break;
		}

		if (minlen !=""){
			if (value.length<minlen){
				return false;
			}
		}	
		return true;
	}	
	
	
function checkEmail(email) 
{
  var str = new String(email);
  var isOK = true;
  rExp = /[!\"£$%\^&*()-+=<>,\'#?\\|¬`\/\[\]]/
  if( rExp.test(str) )
    isOK = false;
  if( str.indexOf('.') == -1 || str.indexOf('@') == -1 )
    isOK = false;
  if( str.slice(str.lastIndexOf('.')+1,str.length).length < 2 )
    isOK = false;
  if( str.slice(0,str.indexOf('@')).length < 1 )
    isOK = false;
  if( str.slice(str.indexOf('@')+1,str.lastIndexOf('.')).length < 1 )
    isOK = false;

  if( !isOK )
    return false;

  return true;
}
	
function trim(str, chars)
{
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars)
{
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) 
{
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
