var err_01="is required field";
var err_02="&nbsp;&nbsp;Please enter valid email id";
var err_03="&nbsp;&nbsp;Email id & confirmed email id must be same";
var err_04="&nbsp;&nbsp;Please select";
var err_05="&nbsp;&nbsp;Password must be more than 5 charater long";
var err_06="should be integer";
var err_08="&nbsp;&nbsp;New Password  & Re-typed New Password must be same";
var err_09="&nbsp;&nbsp;Select user agreement ";
var err_10="&nbsp;&nbsp;Blank Spaces are not allowed in password ";
var err_12="Invalid entry in user name ( only letters, numbers, underscores, and one dot (.))";
var err_13="Invalid ";
var err_14="(Only letters,spaces,hyphens and apostrophes are allowed)";



 function checkforInterger(string)
 {
   var flag=isNaN(string); 
  return flag;
 }


function IsIntegerss(s) 
	{
      for (var i = 0; i < s.length; i++) 
	  {
		  var c = s.charAt(i);
		  if (!((c >= 0) && (c <= 9) || c=='-') )
		   {
		    return true; 
		   }
	   }	  
	return false;
   }


 function IsProperUserName(strng) 
  { 

	 var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]\'\#\$\^\&\*\(\)\+\"\`\~\|\+\-\!]/
     if (strng.match(illegalChars))
     {
  	   return false; 
     }  
   return true;
  }

function IsProperName(strng) 
  { 

     var illegalChars= /[\(\)\<\>\,\;\:\\\/\[\]\#\$\^\&\*\(\)\+\`\~\|\+1234567890\=]/
     if (strng.match(illegalChars))
     {
  	   return false; 
     }  
   return true;
  }

function validate(x,y)
{ 
    y.style.backgroundColor="#FFAEAE";
    y.style.borderColor="#FFFFFF";
    var errormsg = "";
    var style = "";

    if(y=="" || y == undefined)
    {
        errormsg=document.getElementsByTagName('errormsg');
        style = errormsg.style;
    }
    else
    {
        errormsg = y;
        style = y.style;
    }

for (var i=0;i<x.length;i++)
{
    sRules = x.elements[i].title.split(' ');
    sRules1 = sRules[1]; //determines if field is required or not
    sRules2 = sRules[2]; //typecheck are additional validation rules (ie.Email)
    sRules3 = sRules[3]; //confirm
    sRules4 = sRules[4];    
if(x.elements[i].type=="text" || x.elements[i].type=="textarea" || x.elements[i].type=="password"|| x.elements[i].type=="radio")
{
    if(sRules1=="required")
      {
       
        if(x.elements[i].value=="")
          {            
            var myNewString = sRules2.replace("_"," ");
            style.display = "block";
            errormsg.innerHTML="";
            if(sRules3=="confirm")
                errormsg.innerHTML="Please verify your password";
            else
                errormsg.innerHTML="&nbsp;&nbsp;&nbsp;"+myNewString+"&nbsp;"+err_01;

            x.elements[i].focus();

            return false;
          }

        if(sRules2=="Email")
          {
            if (echeck(x.elements[i].value)==false)
            {
                style.display = "block";
                errormsg.innerHTML="&nbsp;&nbsp;&nbsp;"+err_02;
                x.elements[i].focus();
                return false;
            }
           if(sRules3=="confirm")
            {
                if(x.elements[i].value!=x.elements[i-1].value)
                {
                    style.display = "block";
                    errormsg.innerHTML="&nbsp;&nbsp;&nbsp;"+err_03;
                    x.elements[i].focus();
                    return false;
                }
            }
         }

        if(sRules2=="name")
        {
            myNewString = sRules2.replace("_"," ");
            if((IsProperName(x.elements[i].value)==false) )
            {
                style.display = "block";
                errormsg.innerHTML="&nbsp;&nbsp;&nbsp;"+err_13+" "+myNewString+"  "+err_14;
                x.elements[i].focus();
                return false;
            }
        }

        if(sRules2=="User_name")
        {
            if((IsProperUserName(x.elements[i].value)==false) )
            {
            style.display = "block";
            errormsg.innerHTML="&nbsp;&nbsp;&nbsp;"+err_12;
            x.elements[i].focus();
            return false;
            }
        }


        if((sRules2=="Password"))
        {
            var passstring=trimAll(x.elements[i].value)
            if(passstring=="")
            {
                style.display = "block";
                errormsg.innerHTML="&nbsp;&nbsp;&nbsp;"+err_10;
                x.elements[i].focus();
                return false;
             }


            if(x.elements[i].value.length<5)
            {
                style.display = "block";
                errormsg.innerHTML="&nbsp;&nbsp;&nbsp;"+err_05;
                x.elements[i].focus();
                return false;
            }

            if(sRules3=="confirm")
            {
                if(x.elements[i].value!=x.elements[i-1].value)
                {
                    style.display = "block";
                    errormsg.innerHTML="&nbsp;&nbsp;&nbsp;"+err_08;
                    x.elements[i].focus();
                    return false;
                }
            }
        }

        if(sRules2=="city")
        {
            if((IsIntegerss(x.elements[i].value)==false) )
            {
                errormsg.innerHTML="";
                style.display = "block";
                errormsg.innerHTML="&nbsp;&nbsp;&nbsp;"+sRules2+" is invalid ";
                x.elements[i].focus();
                return false;
            }
        }

       if(sRules2=="Zip-code")
        {
            if(checkforInterger(x.elements[i].value)==true)
            {
                errormsg.innerHTML="";
                style.display = "block";
                errormsg.innerHTML="&nbsp;&nbsp;&nbsp;"+sRules2+"&nbsp should be integer ";
                x.elements[i].focus();
                return false;
            }
        }

        if(sRules2=="Phone-code"||sRules2=="Phone-number"||sRules2=="Mobile-code"||sRules2=="Mobile-number" || sRules2=="office-Phone-number" || sRules2=="Fax-number" || sRules2=="phone")
        {
            if(checkPoneNumber(x.elements[i].value)==false)
            {
                errormsg.innerHTML="";
                style.display = "block";
                errormsg.innerHTML="&nbsp;&nbsp;&nbsp; Phone number &nbsp;is invalid (only numbers,hyphens, brackets and plus sign are allowed)";
                x.elements[i].focus();
                return false;
            }
        }

        if(sRules2=="selectRadio")
        {
            if((x.elements[i].checked==false)&&(x.elements[i+1].checked==false))
            {
                errormsg.innerHTML="";
                style.display = "block";
                errormsg.innerHTML="&nbsp;&nbsp;&nbsp;Please select anonymously options";
                x.elements[i].focus();
                return false;
            }
        }

        if(sRules2=="User_Agreement")
        {
            if(x.elements[i].checked==false)
            {
                errormsg.innerHTML="";
                style.display = "block";
                errormsg.innerHTML="&nbsp;&nbsp;&nbsp"+err_09;
                x.elements[i].focus();
                return false;
            }
        }
  }

if(sRules1=="notrequired")
  {
        myNewString = sRules2.replace("_"," ");
        if(sRules3=="name")
        {
            if((IsProperName(x.elements[i].value)==false) )
            {
                style.display = "block";
                errormsg.innerHTML="&nbsp;&nbsp;&nbsp;"+err_13+" "+myNewString+" "+err_14 ;
                x.elements[i].focus();
                return false;
            }
        }
   }

}

if(x.elements[i].type=="select-one")
{
    if(sRules1=="required")
    {
        if(x.elements[i].selectedIndex==0)
        {
            style.display = "block";
            errormsg.innerHTML="&nbsp;&nbsp;&nbsp;"+err_04+"&nbsp;"+sRules2;
            x.elements[i].focus();
            return false;
        }
    }

}

    if(x.elements[i].type=="file")
    {
        if(sRules1=="required")
        {
            if(x.elements[i].value=="")
            {
                style.display = "block";
                errormsg.innerHTML="&nbsp;&nbsp;Please enter image for upload";
                x.elements[i].focus();
                return false;
            }
        }
    }
}
style.display = "none";
return true;
}

function echeck(str) 
{

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		 return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		   return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		   return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		   return false
		 }

 		 return true					
}





function validateForgotPass(x,y)
{
	
	
	 
   //alert("validate");
     	  y.style.backgroundColor="#FFAEAE"; 
     y.style.borderColor="#FFFFFF";
    if(y=="" || y==undefined)
    { 
		var errormsg=document.getElementsByTagName('errormsg');
		var style = errormsg.style;
	
	}
	else
	{
        var errormsg=y;
		var style =y.style;
	}
	var x=x;
	for (var i=0;i<x.length;i++)
	{
		sRules = x.elements[i].title.split(' ');
		sRules1 = sRules[1]; //determines if field is required or not
		sRules2 = sRules[2]; //typecheck are additional validation rules (ie.Email)
		if(x.elements[i].type=="text" )
			{
				if(sRules1=="required")
					{
						if(x.elements[i].value=="")
							{
								style.display = "block";
								errormsg.innerHTML="";
								errormsg.innerHTML="&nbsp;&nbsp;&nbsp;"+sRules2+"&nbsp;"+err_01;
								x.elements[i].focus();
								return false;
							}
						if(sRules2=="Email")
							{
							   if (echeck(x.elements[i].value)==false)
									{
										style.display = "block";
										errormsg.innerHTML="&nbsp;&nbsp;&nbsp;"+err_02;
										x.elements[i].focus();
										return false;
									}
								
							}
							
					 }

			}
		
	}
   style.display = "none";
   return true;
}
function trimAll(sString)
{
  while (sString.substring(0,1) == ' ')
  {
   sString = sString.substring(1, sString.length);
  }
  while (sString.substring(sString.length-1, sString.length) == ' ')
  {
   sString = sString.substring(0,sString.length-1);
  }
return sString;
}

 // a new function for interger or not
 function isInteger1111(s)
 {
     return Math.ceil(s) == Math.floor(s);
 }
 
 function checkforInterger(string)
 {
   var flag=isNaN(string); 
  return flag;
 }

  function checkPoneNumber(string)
  {
    for (var i = 0; i < string.length; i++) 
	  {
		  var c = string.charAt(i);      
	      var flag=isNaN(c);            
		   if(flag==true)
          {
		  
		    if(c=="-")
            set=true;
			else if(c=="(")
            set=true;
			else if(c==")")
            set=true;
			else if(c=="+")
            set=true;
			else
            set=false;
  
 		  }
		  else		  
          set=true;		 
      }	
   return set;
  }
