/* This file can be used as validation file at our site.One has to call 
validation function from the file where he/she needs to implement validations 
for a particular field. */

function Init()
{
	len=0;
	spaces=0;
	i=0;
	Arg="";
	ss1="";
	strtrail="";
	strlead="";
	str="";
	chr="";
}


// Find The Length of a String
function LengthOf(Arg)
{
	str=Arg+"NullluN"
	len=str.lastIndexOf("NullluN");
	return len;
}



// Trim Function   (Not provided in Javascipt)
function Trim(Arg)
{

	//alert("U R in function trim")
	len=LengthOf(Arg+"");
	//alert(len)
	if(len>0)
	{
		str=Arg+"";
		strlead="";
		strtrail="";
		while(str.charAt(i)==' ')
		{
			if(i<len)	i++;
			else     	break;
		}
		strlead=str.substring(i,len);
		i=LengthOf(strlead)-1;
		while(strlead.charAt(i)==' ')
		{
			if(i>0)		i-=1;
			else		break;
		}
		strtrail=strlead.substring(0,i+1);
		return(strtrail);
	}
	else
		return ("null");
}

function AllTrim(StrToTrim)
{
	StrToTrim+=" "
	TrimCtr=0
	SpaceL=0
	SpaceR=0
	StrLen=StrToTrim.length
	TrimStr=""
			
	while(StrToTrim.charAt(TrimCtr)==" " && TrimCtr<StrLen)
	{
		SpaceL++ 
		TrimCtr++
	}
	if(SpaceL==StrLen)
		return ""
	TrimCtr=StrLen-1
	while(StrToTrim.charAt(TrimCtr)==" " && TrimCtr>=0)
	{
		SpaceR++
		TrimCtr--
	}
	SpaceR=TrimCtr+1
	for(TrimCtr=SpaceL; TrimCtr<SpaceR; TrimCtr++)
		TrimStr+=StrToTrim.charAt(TrimCtr)+""
	return TrimStr
}

function keepletter(val,letter)

{

if (val.length=='') return false;
   for(x=0;x<val.length;x++)
   {	
     if(letter.indexOf(val.charAt(x)) == -1) return false;
   }
    return true;
}

/* This function can be used to implement validations on different fields in different files.The funtion contains various cases which depends on validation 
   requrement for a particular field.*/ 

function validation(formname,fldname,type,value,showcase)
		{ 
		var element='document.'+formname+'.'+fldname
		var element1='document.'+formname+'.'+fldname+'.value'  
		var showcase=showcase  
		switch (type)
              {
	
//case zero for 'userID'
	
	case 0	:    
	          
	           if (eval(element1+'.length') < 4)
				    {
							alert("Enter valid "+showcase+" Of atleast 4 alphanumeric Characters");
							eval(element+'.focus()');
							return false;
							
					}
			         else
	          
	              {          
	                  var temp=keepletter(value,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@-._")
		                if (!temp)
						{
								alert("Please Enter alphanumeric value for "+showcase); 
								eval(element+'.focus()');
								return false;
						
						}
			   	   }      
				break;
	
//Case one for 'password'
	
	case 1  :
		         if (eval(element1+'.length') < 4)
					{
							alert("Enter valid "+showcase+" Of atleast 4 alphanumeric Characters");
							eval(element+'.focus()');
							return false;
							
					}
		          else
	          
	              {          
	                  var temp=keepletter(value,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")
		                if (!temp)
						{
								alert("Please Enter alphanumeric value for "+showcase); 
								eval(element+'.focus()');
								return false;
						
						}
			   	   }    
				break;
				
//Case two for 'Email address doesnot chk if its empty'	
   
   case 2:        
   
   					 if (eval(element1+'.length')=='')
					{}
					else
					{
					check=value.split('@')
					if (check.length > 2)
					{
						alert("@ is appearing more than once");
						eval(element+'.focus()');
						return false;
					}
				
temp=keepletter(value,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._-@")
					if(!temp)
					{
							alert("Please Enter valid email ID")
							eval(element+'.focus()');
							return false;
					}
					var pattern, sw, regexpTest;
					var ReturnFlag=true;
					var Error=""
					var Expr = value.substring(1, value.length);
					sw="gi";
					pattern="^[a-z0-9_]{1,}[a-z0-9._-]{0,}@[a-z0-9_-]{1,}[.]{1}[a-z]{2,3}";
					regexpTest = new RegExp( pattern, sw );
					ReturnFlag=regexpTest.test(value);
					if (!ReturnFlag)
					{
						alert ("Enter valid Email ID");
						eval(element+'.focus()');
						return false;
					}
					}
					break;
					
//Case two for 'Email address chks if its empty'	
   
   case 23:        
   
   					 if (eval(element1+'.length')=='')
					{
							alert(showcase+" "+"field can not be left blank");
							eval(element+'.focus()');
							return false;
					}
					else
					{
					check=value.split('@')
					if (check.length > 2)
					{
						alert("@ is appearing more than once");
						eval(element+'.focus()');
						return false;
					}
				
temp=keepletter(value,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._-@")
					if(!temp)
					{
							alert("Please Enter valid email ID")
							eval(element+'.focus()');
							return false;
					}
					var pattern, sw, regexpTest;
					var ReturnFlag=true;
					var Error=""
					var Expr = value.substring(1, value.length);
					sw="gi";
					pattern="^[a-z0-9_]{1,}[a-z0-9._-]{0,}@[a-z0-9_-]{1,}[.]{1}[a-z]{2,3}";
					regexpTest = new RegExp( pattern, sw );
					ReturnFlag=regexpTest.test(value);
					if (!ReturnFlag)
					{
						alert ("Enter valid Email ID");
						eval(element+'.focus()');
						return false;
					}
					}
					break;
						
	
//Case three for 'Firstname','Middlename','Lastname', doesnot check if its empty	  
	
	case 3:   
	
	   					 if (eval(element1+'.length')=='')
					{}
					else
					{    
		        
temp=keepletter(value,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ")
	             if(!temp)
	              {
						alert("Please enter valid "+showcase) 
						eval(element+'.focus()');
						return false;
				  } 
				  }	
 	                   break;
 	              
				  
 //Case 20 for 'Firstname','Middlename','Lastname', checks if its empty	  
	
	case 20:   
	
	         if (eval(element1+'.length')=='')
					{
							alert(showcase+" "+"field can not be left blank");
							eval(element+'.focus()');
							return false;
							
					}
			     else
	          
              {        
		        
temp=keepletter(value,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ")
	             if(!temp)
	              {
						alert("Please enter valid "+showcase) 
						eval(element+'.focus()');
						return false;
				  } 
				  }	
 	                   break;
					   
					   
//Case 22 for 'CompanyName' doesnot check if its empty	  
	
	case 22:       
		       	 if (eval(element1+'.length')=='')
					{}
					else
					{  
temp=keepletter(value,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ")
	             if(!temp)
	              {
						alert("Please enter valid "+showcase) 
						eval(element+'.focus()');
						return false;
				  } 
				  }	
 	                   break;
					  
//Case 25 for 'CompanyName' check if its empty	  
	
	case 25:       
		       	 if (eval(element1+'.length')=='')
					{
							alert(showcase+" "+"field can not be left blank");
							eval(element+'.focus()');
							return false;
					
					}
					else
					{  
temp=keepletter(value,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ")
	             if(!temp)
	              {
						alert("Please enter valid "+showcase) 
						eval(element+'.focus()');
						return false;
				  } 
				  }	
 	                   break;
	  
//Case four for 'alphanumeric only'
 	
 	case 4:
 	            if (eval(element1+'.length')=='')
				{}
				else
				{
					temp=keepletter(value,"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ, .?|\/':;~!@#$%^&*{}[\"]?")
					if(!temp)
					{	
						alert("Please enter valid "+showcase);
						eval(element+'.focus()');
						return false;
					}
				}
 	                    break;
 	                    
//Case five for 'Street'                    
    
    case 5:
 	               if (eval(element1+'.length')=='')
					{
							alert(showcase+" "+" can not be left blank");
							eval(element+'.focus()');
							return false;
							
					}
			     else
	          
	              {          
	                  var temp=keepletter(value,"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,. '#")
		              if(!temp)
						{
							alert("Please Enter valid value for"+" "+showcase); 
							eval(element+'.focus()');
							return false;
						
						}
			   	   }      
 	            break;
 	            
 //Case six for 'city','state' checks if its empty
 	
 	case 6:           
 	                   if (eval(element1+'.length')=='')
					{
							alert(fldname+" "+"field can not be left blank");
							eval(element+'.focus()');
							return false;
							
					}
			     else
	          
              {          
	                  var temp=keepletter(value,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ,.-'")
                    if(!temp)
						{
							alert("Please Enter valid value for"+" "+fldname); 
							eval(element+'.focus()');
							return false;
						
						}
			   	   }      
 	            break; 
 //Case 19 for 'city','state' does not check if its empty
 
   case 19:
   
   				 if (eval(element1+'.length')=='')
					{
					}
			       else
	          
	              {          
 
 				     var temp=keepletter(value,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ,.-'")
                    if(!temp)
						{
							alert("Please Enter valid value for"+" "+showcase); 
							eval(element+'.focus()');
							return false;
						
						}
			   	   }      
 	            break; 
				
		            
 //Case seven for 'Zip' 
 	
 	case 7:
 	                   
 	                   if (eval(element1+'.length')=='')
					{
							alert(fldname+" "+"field can not be left blank");
							eval(element+'.focus()');
							return false;
							
					}
			     else
	          
	              {          
	                 
temp=keepletter(value,"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-")
		              if(!temp)
						{
							alert("Please Enter valid"+" "+fldname); 
							eval(element+'.focus()');
							return false;
						
						}
			   	   }      
 	            break;   
 	                   
//Case eight for 'countrycode','areacode','countrycodefax','areacodefax'
   
   case 8:
 	               if (eval(element1+'.length')=='')
					{

					}
			     else
	          
	              {          
	                  var temp=keepletter(value,"1234567890 -+")
		              if(!temp)
						{
							alert("Please Enter valid"+" "+showcase); 
							eval(element+'.focus()');
							return false;
						
						}
			   	   }      
 	            break;
 	            
// Case nine for 'Phone','Fax'
  
   case 9:
 	                 
 	                   if (eval(element1+'.length')=='')
					{
					}
			       else
	          
	              {          
	                  var temp=keepletter(value,"1234567890")
		              
		              if(!temp)
						{
							alert("Please Enter valid"+" "+showcase); 
							eval(element+'.focus()');
							return false;
						
						}
			   	  }      
 	            break;
				
// Case 21 for 'Phone','Fax' checks if its empty
  
   case 21:
 	                 
    if (eval(element1+'.length')=='')
					{
							alert(showcase+" "+"field can not be left blank");
							eval(element+'.focus()');
							return false;
							
					}
			     else
	          
              {           
	                  var temp=keepletter(value,"1234567890")
		              
		              if(!temp)
						{
							alert("Please Enter valid"+" "+showcase); 
							eval(element+'.focus()');
							return false;
						
						}
			   	  }      
 	            break;
				
 // case ten for Language
  
  case 10:          
              // alert("this is case ten ")
                 if (eval(element1+'.length')=='')
					{
					} 
                   else
                   {          
	                  var temp=keepletter(value,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,.-' ")
		                 if(!temp)
						{
							alert("Please Enter valid"+" "+fldname); 
							eval(element+'.focus()');
							return false;
						
						}
			   	  }      
 	            break;
 
 case 11:
                if (eval(element1+'.length')=='')
					{
							alert(fldname+" "+"can not be left blank");
							eval(element+'.focus()');
							return false;
							
					}
			     else
	          
	              {          
	                  var temp=keepletter(value,"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-,.()&'\"#")
						   if(!temp)
						{
							alert("Please Enter valid"+" "+fldname); 
							eval(element+'.focus()');
							return false;
						
						}
			   	   }      
 	            break;
 	
 	   case 12:
 				  if (eval(element1+'.length')=='')
				{
				}
			     else
	              {          
					temp=keepletter(value,"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-,.()&%#?|\/<>?{}[]~`!@$^*")
					if(!temp)
						{
						    alert("Please Enter valid value"); 
							  eval(element+'.focus()');
							  return false;
								          					
					   	}	
				}
 	                    break;   
 //Case thirteen for Warranty	                    
 	   case 13:
 	              if (eval(element1+'.length')=='')
					{
							alert(showcase+" "+"can not be left blank");
							eval(element+'.focus()');
							return false;
							
					}
			     else
	          
	              {          
	                  var temp=keepletter(value,"1234567890")
						   if(!temp)
						{
							alert("Please Enter valid"+" "+showcase); 
							eval(element+'.focus()');
							return false;
						
						}
			   				}      
 	            break;
                 
  // Case 14 For Keywords	                             
   
   case 14:
 	              if (eval(element1+'.length')=='')
					{
							alert(showcase+" "+"can not be left blank");
							eval(element+'.focus()');
							return false;
							
					}
			          
 	          break; 
	
	// Case 15 For Reserve price,Min opening Bidprice ,BidIncrement	          
 		
   case 15:
		if (eval(element1+'.length')=='')
		{}
		else
		{
 	         check=value.split('.')
					if (check.length > 2)
							{
								alert(". is appearing more than once");
								eval(element+'.focus()');
								return false;
							}
					temp=keepletter(value,"0123456789.")
					if(!temp)
							{
									alert("Please Enter valid"+" "+showcase+".\nOnly numeric values are allowed.")
									eval(element+'.focus()');
									return false;
							}
					else
						{
							 if(parseInt(value,10)<0)
							 {
								alert("Please Enter valid"+" "+showcase+".\nValue cannot be less than 0.")
								eval(element+'.focus()');
								return false;
							 }
						}
		}			
					break;
					
		// Case 15 For Reserve price,Min opening Bidprice ,BidIncrement checks if its empty	           
 		
   case 24:
		if (eval(element1+'.length')=='')
		{
				alert(showcase+" "+"field can not be left blank");
							eval(element+'.focus()');
							return false;
		}
		else
		{
 	         check=value.split('.')
					if (check.length > 2)
							{
								alert(". is appearing more than once");
								eval(element+'.focus()');
								return false;
							}
					temp=keepletter(value,"0123456789.")
					if(!temp)
							{
									alert("Please Enter valid"+" "+showcase+".\nOnly numeric values are allowed.")
									eval(element+'.focus()');
									return false;
							}
					else
						{
							 if(parseInt(value,10)<0)
							 {
								alert("Please Enter valid"+" "+showcase+".\nValue cannot be less than 0.")
								eval(element+'.focus()');
								return false;
							 }
						}
		}			
					break;
					
	case 16:
                if (eval(element1+'.length')=='')
					{
							alert(showcase+" "+"can not be left blank");
							eval(element+'.focus()');
							return false;
							
					}
			     else
	          
	              {          
	                  var temp=keepletter(value,"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
						   if(!temp)
						{
							alert("Please Enter valid"+" "+showcase); 
							eval(element+'.focus()');
							return false;
						
						}
			   	   }      				
				
	//Case 17 for 'age'
   
   case 17:
 	               if (eval(element1+'.length')=='')
					{
							alert(fldname+" "+" "+"field can not be left blank");
							eval(element+'.focus()');
							return false;
							
					}
			     else
	          
	              {          
	                  var temp=keepletter(value,"1234567890")
		              if(!temp)
						{
							alert("Please Enter valid"+" "+fldname); 
							eval(element+'.focus()');
							return false;
						
						}
			   	   }      
 	            break;			
 	 //Case 18 for 'general'
   
   case 18:
 	               if (eval(element1+'.length')=='')
					{
							alert(fldname+" "+" "+"field can not be left blank");
							eval(element+'.focus()');
							return false;
							
					}
			     else
	          
	              {          
	                  var temp=keepletter(value,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
		              if(!temp)
						{
							alert("Please Enter valid"+" "+fldname); 
							eval(element+'.focus()');
							return false;
						
						}
			   	   }      
 	            break;
	}             
			return true;
		}	                   
				
//	The following function restricts the Maximum Length of a Field.
//	This function had to be written because of the <Textarea> type fields actually, 
//	but is generalised enough to work for any text input also or in fact for any input element which
//	has a <value> property

function checkTextArea(frmName, frmVar, Str, Len)
{
	var Val = eval('document.'+frmName+'.'+frmVar+'.value')
	var Name = eval('document.'+frmName+'.'+frmVar)
	if (Val.length > parseInt(Len))
	{
		alert ('Maximum length exceeded for '+Str+'. Only '+Len+' characters allowed.');
		Name.focus();
		return false;
	}
	return true;
}
