/*****************************************************************************************************
* 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;
                        case "password":
                        	return checkpasswordlength(value);
                        	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"), "");
}






function onkeycheckentryemail(e)
{ 
    var valid = " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-_@";
    var ok = "yes";
    var temp;
    var validchars="";
    var dot = 0;
    for (var i=0; i<e.value.length; i++)
    {
        temp = "" + e.value.substring(i,i+1);
        if (valid.indexOf(temp) == "-1") 
        {
            ok = "no";          
            break;                      
        }
        else
        {
            validchars=validchars+temp;
        }
    }   
    if (ok == "no")
    {
        alert("Only Alpha Numeric Characters Are Accepted");
        e.value = validchars;
        e.focus();      
        return false;
    }   
    return true;
   
}


function emailvalidation(strentered)
{           
    if (strentered.length!=0)
    {
        var alerttext="Entered Email is incorrect.";
        
        if (strentered.indexOf("@")<=0)
    {
                alert(alerttext);
                return false;
        }
        
        if (strentered.indexOf(".")<=0)
    {
        alert(alerttext);
        return false;
        }
        
        if (strentered.indexOf("@")==0)
        {
                alert(alerttext);
                return false;
        }
        if (strentered.indexOf(".")==0)
    {
            alert(alerttext);
            return false;
        }
        if (strentered.lastIndexOf("-")==strentered.length-1)
    {
                alert(alerttext);
                return false;
    }
    if (strentered.lastIndexOf("_")==strentered.length-1)
    {
                alert(alerttext);
                return false;
        }
        
        if (strentered.lastIndexOf(".")==strentered.length-1)
    {
         alert(alerttext);
         return false;
        }
        
        if (strentered.indexOf("-")>=0 && strentered.indexOf("-")<1)
    {
                alert(alerttext);
               return false;
    }
    if (strentered.indexOf("_")>=0 && strentered.indexOf("_")<1)
    {
                alert(alerttext);
                return false;
        }
        if (strentered.lastIndexOf("@")==strentered.length-1)
    {
                alert(alerttext);
                return false;
        }
        if (strentered.indexOf("..")>=0)
    {
                alert(alerttext);
                return false;
        }
        if (strentered.indexOf("@@")>=0)
    {
        alert(alerttext);
        return false;
        }
        if (strentered.indexOf("--")>=0)
    {
        alert(alerttext);
        return false;
        }
        if (strentered.indexOf("__")>=0)
    {
        alert(alerttext);
        return false;
        }
           
        if (strentered.indexOf(".@")>=0)
    {
                alert(alerttext);
                return false;
        }
        if (strentered.indexOf("@.")>=0)
    {
                alert(alerttext);
                return false;
        }
        if (strentered.indexOf("-@")>=0)
    {
          alert(alerttext);
          return false;
        }
        if (strentered.indexOf("@-")>=0)
    {
        alert(alerttext);
        return false;
        }
        if (strentered.indexOf("@_")>=0)
    {
        alert(alerttext);
        return false;
        }
        if (strentered.indexOf("_@")>=0)
    {
        alert(alerttext);
        return false;
        }
        if (strentered.indexOf("@")!=strentered.lastIndexOf("@"))
    {
          alert(alerttext);
          return false;
       }
        if (strentered.indexOf("-")!=strentered.lastIndexOf("-"))
    {
        alert(alerttext);
        return false;
        }
        if (strentered.indexOf("_")!=strentered.lastIndexOf("_"))
    {
        alert(alerttext);
        return false;
        }
        
    }
    
}


//--------------------------general script that validates url-----------------------------------------------
function urlvalidation(strentered)
{
    if (strentered.length!=0)
    {
        var alerttext="Entered URL is incorrect.";
        if (strentered.indexOf("http://")!=0)
        {
            alert(alerttext);
            return false;
        }
        if (strentered.indexOf(".")<8)
        {
            alert(alerttext);
            return false;
        }
        if (strentered.indexOf(".")==0)
        {
            alert(alerttext);
            return false;
        }
        if (strentered.lastIndexOf(".")<=strentered.indexOf("."))
        {
            alert(alerttext);
            return false;
        }
        if (strentered.indexOf("/.")>=0)
        {
            alert(alerttext);
            return false;
        }
        if (strentered.lastIndexOf(":")>5)
        {
            alert(alerttext);
            return false;
        }
        if (strentered.indexOf("///")>=0)
        {
            alert(alerttext);
            return false;
        }
        if (strentered.indexOf("..")>=0)
        {
            alert(alerttext);
            return false;
        }
        if (strentered.indexOf("-")>0 && strentered.indexOf("-")<=7)
        {
            alert(alerttext);
            return false;
        }
        if (strentered.indexOf("_")>0 && strentered.indexOf("_")<=7)
        {
            alert(alerttext);
            return false;
        }
        if (strentered.lastIndexOf(".")==strentered.length-1)
        {
            alert(alerttext);
            return false;
        }
        if (strentered.lastIndexOf("/")==strentered.length-1)
        {
            alert(alerttext);
            return false;
        }
        if (strentered.lastIndexOf("-")==strentered.length-1)
        {
            alert(alerttext);
            return false;
        }
        if (strentered.lastIndexOf("_")==strentered.length-1)
        {
            alert(alerttext);
            return false;
        }
        
    }
    
}

// -------------------- only for numeric entry  -----------------------------
function onkeyNumeric(e)
{
    var key = window.event ? e.keyCode : e.which;
    var keychar = String.fromCharCode(key);
    reg = /\d/;
    return reg.test(keychar);

}

//---------------------------------check length of password----------------------
function checkpasswordlength(password)
{   
    if (password.length<6 )
    {
	    return false;
    } 
    return true; 
}




