//---- V A L I D A T I O N    F U N T I O N 
function js_validation(obj,type,msg,div_obj,foc_obj,opt)
{
	
	if(opt==1)
	{
		
 			if (type=="B")
			{
				 
				
				if(obj.value=="")
				{ 
					alert(msg);
					obj.focus();
					return false;
				}
				else if(obj.value.substring(0,1)==" ")
				{
					alert("First letter should not be blank!");
					obj.select();
					obj.focus();
					return false;
				}
			} // end if type B
			
			if (type=="P")
			{
		        var minlen=3;
				var val=obj.value;
				var len=val.length;
				if(obj.value==""  || len < minlen)
				{
					alert(msg);
					obj.focus();
					return false;
				}
			}//end if type P
			if (type=="CP")
			{
		        //var minlen=6;
				if(obj.value=="")
				{
					alert(msg);
					obj.focus();
					return false;
				}
			}//end if type CP
			
			//alert(gender);
			if(type=="G")
			{
				var i;
				var val=obj.value;
				
				//var len=val.length;
				for(i=0;i<val.len;i++)
				{
					if(val[i].checked)
					{
						val=val[i];
					}
				}
				if(!val)
				{
					alert(msg);
					return false;
				}
			}
			
			if(type=="R")
			{
			
					mygender = -1;
		
					for (i=obj.length-1; i > -1; i--) 
					{
						if (obj[i].checked) 
						{
							mygender = i;
						}
					}
					if(isNaN(obj.length))
					{
						alert(msg);
						obj.focus();
						return false;
					}
					else
					{
						if (mygender == -1) 
						{
							alert(msg);
							obj[0].focus();
							return false;
						}	
					}
			}
			
			
			
			if(type=="I")
			{
			
										///////////////////////Validation for Image//////////////////////
					thumbimg=obj.value;
					if(thumbimg=="")
					{
						alert(msg);
						return false;
					}
					if(thumbimg!="")
					{
							var pattern=/(GIF|JPG|gif|jpg|jpeg|bmp|BMP)/;
							var thumb1=obj.value;
							var thumb2=thumb1.split(".");
							var no=thumb2.length;
							
							var pat=thumb2[no-1];
								var matchval=pat.match(pattern);
								if(matchval==null)
								{
								alert("Invalid image format !");
								obj.value="";
								obj.focus();
								return false;
								}
								
					}		
			}
			
			if(type=="F")
			{
			
										///////////////////////Validation for Files//////////////////////
					thumbimg=obj.value;
					if(thumbimg=="")
					{
						alert(msg);
						return false;
					}
					
			}
			
			
										///////////////////////Validation URL//////////////////////
			
			if(type=="U")
			{
					if(obj.value!="")
					{
						
						if(obj.value.substring(0,1)==" ")
						{
							alert("First letter should not be blank!");
							obj.focus();
							return false;
						}
						var pattern=/^(http|https):\/\/\w+([\.-]?\w+)*.\w+([\.-]?\w+)*(\.\w{2,3})+\.[A-Za-z0-9-_%&\?\/.=]+$/;
						var pat=obj.value;
						var matchval=pat.match(pattern);
						if(matchval==null)
						{
							alert("Invalid format !");
							obj.focus();
							return false;
						}
								
					}		
					else
					{
								alert(msg);
								obj.value="";
								obj.focus();
								return false;
					}
			}
			
			if (type=="N")
			{
				if(obj.value=="")
				{
					alert(msg);
					obj.focus();
					return false;
				}
				else
				{
					if(obj.value<=0 || isNaN(obj.value)==true)
					{
						alert("Enter the valid numeric value");
						obj.value="";
						obj.focus();
						return false;
					}
				}

			} // end if type N
			
			
			if (type=="N")
			{
				if(obj.value=="")
				{
					alert(msg);
					obj.focus();
					return false;
				}
				else
				{
					if(obj.value<=0 || isNaN(obj.value)==true)
					{
						alert("Enter the valid numeric value");
						obj.value="";
						obj.focus();
						return false;
					}
				}

			} // end if type N

			if (type=="E")
			{
 				if(obj.value=="")
					{
						alert(msg);
						obj.focus();
					}
					else
					{
						if(emailCheck(obj.value)==false)
							{
								alert('Invalid Email-ID');
								obj.focus();
								return false;
							}
					}
			} // end if type E
	}
	if(opt==2)
	{
 			if (type=="B")
			{
				//alert(foc_obj);
				if(obj.value=="")
				{ 
					document.getElementById(foc_obj).focus();
					//alert(obj.type)
					if(obj.type!='hidden')
						obj.focus();
					document.getElementById(div_obj).innerHTML = msg;
					return false;
				}
				else if(obj.value.substring(0,1)==" ")
				{
					document.getElementById(foc_obj).focus();
					obj.focus();
					document.getElementById(div_obj).innerHTML = "First letter should not be blank!";
					return false;
				}
			} // end if type B
			if (type=="C")
			{
				//alert(foc_obj);
				
				if(obj.value=="-1")
				{ 
					document.getElementById(foc_obj).focus();
					obj.focus();
					document.getElementById(div_obj).innerHTML = msg;
					return false;
				}
				 
			} // end if type B
			if (type=="P")
			{
		        var minlen=3;
				var val=obj.value;
				var len=val.length;
				if(obj.value==""  || len < minlen)
				{
					document.getElementById(foc_obj).focus();
					obj.focus();
					document.getElementById(div_obj).innerHTML = msg;
					return false;
				}
			}//end if type P
			if (type=="CP")
			{
		        //var minlen=6;
				if(obj.value=="")
				{
					document.getElementById(foc_obj).focus();
					obj.focus();
					document.getElementById(div_obj).innerHTML = msg;
					return false;
				}
			}//end if type CP
			
			//alert(gender);
			if(type=="G")
			{
				var i;
				var val=obj.value;
				
				//var len=val.length;
				for(i=0;i<val.len;i++)
				{
					if(val[i].checked)
					{
						val=val[i];
					}
				}
				if(!val)
				{
					document.getElementById(foc_obj).focus();
					obj.focus();
					document.getElementById(div_obj).innerHTML = msg;
					return false;
				}
			}
			
			if(type=="R")
			{
			
					mygender = -1;
		
					for (i=obj.length-1; i > -1; i--) 
					{
						if (obj[i].checked) 
						{
							mygender = i;
						}
					}
					if(isNaN(obj.length))
					{
						document.getElementById(foc_obj).focus();
						obj.focus();
						document.getElementById(div_obj).innerHTML = msg;
						return false;
					}
					else
					{
						if (mygender == -1) 
						{
							document.getElementById(foc_obj).focus();
							obj[0].focus();
							document.getElementById(div_obj).innerHTML = msg;
							return false;
						}	
					}
			}
			
			
			
			if(type=="I")
			{
			
										///////////////////////Validation for Image//////////////////////
					thumbimg=obj.value;
					if(thumbimg=="")
					{
						document.getElementById(foc_obj).focus();
						obj.focus();
						document.getElementById(div_obj).innerHTML = msg;
						return false;
					}
					if(thumbimg!="")
					{
							var pattern=/(GIF|JPG|gif|jpg|jpeg|bmp|BMP)/;
							var thumb1=obj.value;
							var thumb2=thumb1.split(".");
							var no=thumb2.length;
							
							var pat=thumb2[no-1];
								var matchval=pat.match(pattern);
								if(matchval==null)
								{
									document.getElementById(foc_obj).focus();
									obj.focus();
									document.getElementById(div_obj).innerHTML = "Invalid image format !";
									obj.value="";
									return false;
								}
								
					}		
			}
			
			if(type=="M")
			{
			
										///////////////////////Validation for Image//////////////////////
					thumbimg=obj.value;
					if(thumbimg=="")
					{
						document.getElementById(foc_obj).focus();
						obj.focus();
						document.getElementById(div_obj).innerHTML = msg;
						return false;
					}
					if(thumbimg!="")
					{
							var pattern=/(asf|mpg|mpeg|avi|wmv|mp4|mpe|mov|flv|ASF|MPG|MPEG|AVI|WMV|MP4|MPE|MOV|FLV)/;
							var thumb1=obj.value;
							var thumb2=thumb1.split(".");
							var no=thumb2.length;
							
							var pat=thumb2[no-1];
								var matchval=pat.match(pattern);
								if(matchval==null)
								{
									document.getElementById(foc_obj).focus();
									obj.focus();
									document.getElementById(div_obj).innerHTML = "Invalid video file format !";
									//obj.value="";
									return false;
								}
								
					}		
			}
			
			if(type=="F")
			{
			
										///////////////////////Validation for Files//////////////////////
					thumbimg=obj.value;
					if(thumbimg=="")
					{
						document.getElementById(foc_obj).focus();
						obj.focus();
						document.getElementById(div_obj).innerHTML = msg;
						return false;
					}
					
			}
			
			
										///////////////////////Validation URL//////////////////////
			
			if(type=="U")
			{
					if(obj.value!="")
					{
						
						if(obj.value.substring(0,1)==" ")
						{
							document.getElementById(foc_obj).focus();
							obj.focus();
							document.getElementById(div_obj).innerHTML = "First letter should not be blank!";
							return false;
						}
							var pattern=/^(http|https):\/\/\w+([\.-]?\w+)*.\w+([\.-]?\w+)*(\.\w{2,3})+\.[A-Za-z0-9-_%&\?\/.=]+$/;
							var pat=obj.value;
								var matchval=pat.match(pattern);
								if(matchval==null)
								{
									document.getElementById(foc_obj).focus();
									obj.focus();
									document.getElementById(div_obj).innerHTML ="Invalid format !";
									return false;
								}
								
					}		
					else
					{
								obj.value="";
								document.getElementById(foc_obj).focus();
								obj.focus();
								document.getElementById(div_obj).innerHTML = msg;
								return false;
					}
			}
			
			
			
			
			if (type=="N")
			{
				if(obj.value=="")
				{
					document.getElementById(foc_obj).focus();
					obj.focus();
					document.getElementById(div_obj).innerHTML = msg;
					return false;
				}
				else
				{
					if(obj.value<=0 || isNaN(obj.value)==true)
					{
						document.getElementById(foc_obj).focus();
						obj.value="";
						obj.focus();
						document.getElementById(div_obj).innerHTML = "Enter the valid numeric value";
						return false;
					}
				}

			} // end if type N

			if (type=="E")
			{
 				if(obj.value=="")
					{
						document.getElementById(foc_obj).focus();
						if(obj.type!='hidden')
							obj.focus();
						document.getElementById(div_obj).innerHTML = msg;
						return false;
					}
					else
					{
						if(emailCheck(obj.value)==false)
							{
								document.getElementById(foc_obj).focus();
								if(obj.type!='hidden')
									obj.focus();
								document.getElementById(div_obj).innerHTML ="Invalid Email-ID";
								return false;
							}
					}
			} // end if type E
	}

} // END FUNCTION 
//END  V A L I D A T I O N    F U N T I O N 

// --- E M A I L  F U N C T I O N 
function emailCheck (emailStr) 
{
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
	if(emailStr=="")
	{ 
		return true
	}
	if (matchArray==null) 
	{
		//alert("Email address seems incorrect (check @ and .'s)")
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null) 
	{
		// alert("The username doesn't seem to be valid.")
		return false
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) 
	{
		  for (var i=1;i<=4;i++)
		  {
				if (IPArray[i]>255) 	
				{
					//alert("Destination IP address is invalid!")
				return false
				}
		 }
		 return true	
	}
	
	var domainArray=domain.match(domainPat)
	if (domainArray==null) 
	{
		//alert("The domain name doesn't seem to be valid.")
		return false
	}
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>7) 
	{
	   //alert("The address must end in a valid domain, or two letter country.")
	   return false
	}
	if (len<2) 
	{
	   var errStr="This address is missing a hostname!"
	  // alert(errStr)
	   return false
	}
	return true;
}
//  --- end  E M A I L  F U N C T I O N 

