function validateEmail(email)
{
// a very simple email validation checking. 
// you can add more complex email checking if it helps 
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\?[\w-_\.]*\?$/;
      if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
      }// if
      return true;
    }
return false;
}

function checkEmail(email)
{
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(email))
		return true;
	else
		return false;
}
/*
    Checks whether phone number is valid.
    phone is allowed to have numeric data 
    and '-' as part of its value
*/

function isValidPhone(val)
{
  var values = "1234567890-";
  for (var i=0; i < val.length; i++) 
    if (values.indexOf(val.charAt(i)) < 0) 
       return false;
  return true;
}
/**********************************************************************/
/*Function name :isDigit(theDigit) */
/*Usage of this function :test for an digit */
/*Input parameter required:thedata=string for test whether is digit */
/*Return value :if is digit,return true */
/* else return false */
/**********************************************************************/
function isDigit(theDigit)
{
    var digitArray = new Array('0','1','2','3','4','5','6','7','8','9'),j;

    for (j = 0; j < digitArray.length; j++)
    {
        if (theDigit == digitArray[j])
            return true
    }
    return false
}

/*************************************************************************/
/*Function name :isPositiveInteger(theString) */
/*Usage of this function :test for an +ve integer */
/*Input parameter required:thedata=string for test whether is +ve integer*/
/*Return value :if is +ve integer,return true */
/* else return false */
/*function require :isDigit */
/*************************************************************************/

function isPositiveInteger(theString)
{
    var theData = new String(theString)

    if (!isDigit(theData.charAt(0)))
        if (!(theData.charAt(0)== '+'))
            return false
    
    for (var i = 1; i < theData.length; i++)
        if (!isDigit(theData.charAt(i)))
            return false
    return true
}

/**********************************************************************/
/*Function name :isDate(s,f) */
/*Usage of this function :To check s is a valid format */
/*Input parameter required:s=input string */
/* f=input string format */
/* =1,in mm/dd/yyyy format */
/* else in dd/mm/yyyy */
/*Return value :if is a valid date return 1 */
/* else return 0 */
/*Function required :isPositiveInteger() */
/**********************************************************************/
function isDate(s,f)
{
 	var a1=s.split("/");
    var a2=s.split("-");
    var e=true;
    if ((a1.length!=3) && (a2.length!=3))
    {
        e=false;
    }
    else
    {
        if (a1.length==3)
            var na=a1;
        if (a2.length==3)
            var na=a2;
        if (isPositiveInteger(na[0]) && isPositiveInteger(na[1]) && isPositiveInteger(na[2]))
        { 
            if (f==1)
            {
                var d=na[1],m=na[0];
            }
            else
            {
                var d=na[0],m=na[1];
            }
            var y=na[2];
            if ((e) && (y<1000))
                e=false
            if (e)
            {
                v=new Date(m+"/"+d+"/"+y);
                if (v.getMonth()!=m-1)
                    e=false;
            }
        }
        else
        {
            e=false;
        }
    }
    return e
}




/* function validateData 
*  Checks each field in a form 
*  Called from validateForm function 
*/ 

function validateData(strValidateStr,objValue,strError) 
{ 
var pass;
   //ssss alert(objValue.value);
	 ///alert(objValue.value.length);
	var epos = strValidateStr.search("="); 
	var  command  = ""; 
	var  cmdvalue = ""; 
	if(epos >= 0) 
	{ 
		command  = strValidateStr.substring(0,epos); 
		cmdvalue = strValidateStr.substr(epos+1); 
	} 
	else 
	{ 
		command = strValidateStr; 
	} 

	switch(command) 
	{ 
		case "req": 
		case "required": 
		{ 
			if(eval(objValue.value.length) == 0) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name + " : Required Field"; 
				}//if 
				alert(strError); 
				return false; 
			}//if 
			break;             
		}//case required 
		case "maxlength": 
		case "maxlen": 
		{ 
			if(eval(objValue.value.length) >  eval(cmdvalue)) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name + " : "+cmdvalue+" characters maximum "; 
				}//if 
				alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 
				return false; 
			}//if 
			break; 
		}//case maxlen 
		case "minlength": 
		case "minlen": 
		{ 
			if(eval(objValue.value.length) <  eval(cmdvalue)) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name + " : " + cmdvalue + " characters minimum  "; 
				}//if               
				alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 
				return false;                 
			}//if 
			break; 
		}//case minlen 
		case "stringmatch": 
		{ 
			if(!(objValue.value ==  cmdvalue)) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name + " : " + " entries did not match"; 
				}//if               
				alert(strError); 
				return false;                 
			}//if 
			break; 
		}//case stringmatch 		
		case "alnum": 
		case "alphanumeric": 
		{ 
			var charpos = objValue.value.search("[^A-Za-z0-9]"); 
			if(objValue.value.length > 0 &&  charpos >= 0) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Only alpha-numeric characters allowed "; 
				}//if 
				alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
				return false; 
			}//if 
			break; 
		}//case alphanumeric 
		case "alphanumericunderscore": 
		{ 
			var charpos = objValue.value.search("[^A-Za-z0-9_]"); 
			if(objValue.value.length > 0 &&  charpos >= 0) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Only alpha-numeric characters allowed "; 
				}//if 
				alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
				return false; 
			}//if 
			break; 
		}//case alphanumericunderscore 
		case "alphanumericunderscorespacedashslash": 
		{ 
			var charpos = objValue.value.search("[^A-Za-z0-9_/ -]"); 
			if(objValue.value.length > 0 &&  charpos >= 0) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Only alpha-numeric space underscore & dash characters are allowed "; 
				}//if 
				alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
				return false; 
			}//if 
			break; 
		}//case alphanumericunderscorespacedash 	
		case "alphanumericunderscoredashdotatrate": 
		{ 
			var charpos = objValue.value.search("[^A-Za-z0-9_.@-]"); 
			if(objValue.value.length > 0 &&  charpos >= 0) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Only alpha-numeric space underscore & dash characters . @ are allowed "; 
				}//if 
				alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
				return false; 
			}//if 
			break; 
		}//case alphanumericunderscorespacedashdotatrate
		case "num": 
		case "numeric": 
		{ 
			var charpos = objValue.value.search("[^0-9]"); 
			if(objValue.value.length > 0 &&  charpos >= 0) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Only digits allowed "; 
				}//if               
				alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
				return false; 
			}//if 
			break;               
		}//numeric 
		case "numericcomma": 
		{ 
			var charpos = objValue.value.search("[^0-9,]"); 
			if(objValue.value.length > 0 &&  charpos >= 0) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Only digits seprated with comma are allowed "; 
				}//if               
				alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
				return false; 
			}//if 
			break;               
		}//numeric 
		case "alphabetic": 
		case "alpha": 
		{ 
			var charpos = objValue.value.search("[^A-Za-z]"); 
			if(objValue.value.length > 0 &&  charpos >= 0) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Only alphabetic characters allowed "; 
				}//if                             
				alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
				return false; 
			}//if 
			break; 
		}//alpha 
		case "alphaspaceunderscoredash": 
		{ 
			var charpos = objValue.value.search("[^A-Za-z_ -]"); 
			if(objValue.value.length > 0 &&  charpos >= 0) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Only alphabet space underscore dash are allowed "; 
				}//if                             
				alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
				return false; 
			}//if 
			break; 
		}//alphaspaceunderscoredash 	
		case "alphaunderscoredash": 
		{ 
			var charpos = objValue.value.search("[^A-Za-z_-]"); 
			if(objValue.value.length > 0 &&  charpos >= 0) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Only alphabet underscore dash are allowed "; 
				}//if                             
				alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
				return false; 
			}//if 
			break; 
		}//alphaunderscoredash 		
		case "alphaunderscore": 
		{ 
			var charpos = objValue.value.search("[^A-Za-z_]"); 
			if(objValue.value.length > 0 &&  charpos >= 0) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Only alphabet underscore are allowed "; 
				}//if                             
				alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
				return false; 
			}//if 
			break; 
		}//alphaunderscore 			
		case "email": 
		{ 	
			if (strError == "@NxXnNxXnnxx@")
			{
				if (objValue.value == "")
				{	
					return true;	
				}
				else
				{
					strError="";	
				}
			}
			
			if(!checkEmail(objValue.value)) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Enter a valid Email address "; 
				}//if                                               
				alert(strError); 
				return false; 
			}//if 
			break; 
		}//case email 
		case "lt": 
		case "lessthan": 
		{ 
			if(isNaN(objValue.value)) 
			{ 
				alert(objValue.name+": Should be a number "); 
				return false; 
			}//if 
			if(eval(objValue.value) >=  eval(cmdvalue)) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name + " : value should be less than "+ cmdvalue; 
				}//if               
				alert(strError); 
				return false;                 
			}//if             
			break; 
		}//case lessthan 
		case "gt": 
		case "greaterthan": 
		{ 
			if(isNaN(objValue.value)) 
			{ 
				alert(objValue.name+": Should be a number "); 
				return false; 
			}//if 
			if(eval(objValue.value) <=  eval(cmdvalue)) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name + " : value should be greater than "+ cmdvalue; 
				}//if               
				alert(strError); 
				return false;                 
			}//if             
			break; 
		}//case greaterthan 
		case "regexp": 
		{ 
			if(!objValue.value.match(cmdvalue)) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Invalid characters found "; 
				}//if                                                               
				alert(strError); 
				return false;                   
			}//if 
			break; 
		}//case regexp 
		case "dontselect": 
		{ 
			if(objValue.selectedIndex == null) 
			{ 
				alert("BUG: dontselect command for non-select Item"); 
				return false; 
			} 
			if(objValue.selectedIndex == eval(cmdvalue)) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Please Select one option "; 
				}//if                                                               
				alert(strError); 
				return false;                                   
			} 
			break; 
		}//case dontselect 
		case "date":
		{
			if(!isDate(objValue.value,1))     //2nd Parameter -> 1 for mm/dd/yyyy and 0 for dd/mm/yyyy
			{
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Enter a valid Date"; 
				}//if 
				alert(strError);
				return false;
			}
			break;
		}//case date
		case "phone":
		{
			if(!isValidPhone(objValue.value))    
			{
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Enter a valid phone"; 
				}//if 
				alert(strError);
				return false;
			}
			break;
		}//case phone		
		case "confirmpassword":
			{ 
	        	alert(str);
			if(objValue.value)
			 {
				alert("password doesn't match");
			 }			  
			break;
		}
		case "Password":
		{ 
			pass=objValue.value;
		 	break;
		}
		case "checkbox":
		{
			if(objValue.checked == false)    
			{
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Please Tickmark Check Box Option"; 
				}//if 
				alert(strError);
				return false;
			}
			
			break;
		}//case checkbox
		case "radio":
		{
			
			if(objValue.checked == false)    
			{
				if(!strError || strError.length ==1) 
				{ 
					strError = objValue.name+": Please Tickmark Radio Box Option"; 
				}//if 
				alert(strError);
				return false;
			}
			
			break;
		}//case radio
	   case "blankspace":
	   {
	//   alert("wrwere"+objValue.value.length);
	   objValue.value = objValue.value.replace(/\r/g, " ");

	

  //There are regex switchs for printing /nonprinting characters 

  //but they stripped some characters either needed or left some not wanted,

  //thats why the following replacement exists.

  objValue.value = objValue.value.replace(/[^ A-Za-z0-9`~!@#\$%\^&\*\(\)-_=\+\\\|\]\[\}\{'";:\?\/\.>,<]/g, "");

 

  objValue.value = objValue.value.replace(/'/g, "");

  

  objValue.value = objValue.value.replace(/ +/g, " ");  

	

  objValue.value = objValue.value.replace(/^\s/g, "");

  objValue.value = objValue.value.replace(/\s$/g, "");	

 // alert(objValue.value)
//alert(objValue.value.length);
 if(objValue.value.length==0)
 {
 alert('plz enter the value');
 return false; 
 }
	
	
	   }
	}//switch 
    return true; 
} 

/* 
* function validateForm 
* the function that can be used to validate any form 
* returns false if the validation fails; true if success 
* arguments : 
*   objFrm     : the form object 
*   arrObjDesc : an array of objects describing the validations to conduct on each 
*        input item. 
*          The array should consist of one object per input item in the order the input 
*          elements are present in the form. Each object consist of zero or more validation 
*          objects. Each of these validation object is a pair consisting of the validation 
*          descriptor string and an optional Error message. 
*/ 

function validateForm(objFrm,arrObjDesc) 
{ 

for(var itrobj=0; itrobj < arrObjDesc.length; itrobj++) 
 { 
   if(objFrm.elements.length <= itrobj) 
   { 
        alert("BUG: Obj descriptor for a non existent form element"); 
        return false; 
   }//if 
   for(var itrdesc=0; itrdesc < arrObjDesc[itrobj].length ;itrdesc++) 
   { 
      if(validateData(arrObjDesc[itrobj][itrdesc][0], 
                 objFrm[itrobj],arrObjDesc[itrobj][itrdesc][1]) == false) 
       { 
	     objFrm[itrobj].focus();
         return false; 
       }//if 
   }//for 
 }//for 
} 


function changeLogo()
{
}


