function validate(frm,fun)

{



	var num=frm.elements.length;

	for(var i=0;i<num;i++)

	{



		hidname=frm.elements[i].name+"_hidden";

		hid_obj="document."+frm.name+"."+hidname+".value";



		for(var k=0;k<num;k++)

		{

			hid=frm.elements[k].name;

		//	alert(hid);alert(hidname);			

			if(hidname==hid)

			{

				

				hid_obj=eval(hid_obj);

				

				strarr=hid_obj.split("~");

				str_valid=strarr[0].split("|");

				str_alert=strarr[1].split("|");

				

				for(var atype=0;atype<str_valid.length-1;atype++)

				{					

					if(frm.elements[i].type.toUpperCase()=="TEXT" || frm.elements[i].type.toUpperCase()=="TEXTAREA" || frm.elements[i].type.toUpperCase()=="PASSWORD")

					{					

						value=removeSpace(frm.elements[i].value);

						frm.elements[i].value=value;						



						if(str_valid[atype]=="B")

						{

							if(navigator.appName=="Netscape" || frm.elements[i].disabled==false)

							{

								if(!blankValidation(frm.elements[i],frm.elements[i].value,str_alert[atype]))

								{

									return false;

								}

							}

						}  //end if

						else

						if(str_valid[atype]=="E" && frm.elements[i].value!="")

						{

							if(!emailValidation(frm.elements[i],frm.elements[i].value,str_alert[atype]))

							{

								return false;

							}

						} //end if

						else

						if(str_valid[atype]=="N" && frm.elements[i].value!="")

						{

							if(!numericValidation(frm.elements[i],frm.elements[i].value,str_alert[atype]))

							{

								return false;

							}

						} //end if

						else

						if(str_valid[atype]=="P" && frm.elements[i].value!="")

						{

							if(!positiveValidation(frm.elements[i],frm.elements[i].value,str_alert[atype]))

							{

								return false;

							}

						} //end if

						else

						if(str_valid[atype]=="I" && frm.elements[i].value!="")

						{

							if(!integerValidation(frm.elements[i],frm.elements[i].value,str_alert[atype]))

							{

								return false;

							}

						} //end if

						else

						if(str_valid[atype]=="S" && frm.elements[i].value!="")

						{

							if(!stringValidation(frm.elements[i],frm.elements[i].value,str_alert[atype]))

							{

								return false;

							}

						} //end if

						/*else

						if(str_valid[atype]=="D" && frm.elements[i].value!="")

						{

							if(!dateValidation(frm.elements[i],frm.elements[i].value,str_alert[atype]))

							{

								return false;

							}

						} *///end if

					} // end if of textortextarea



					else

					if(frm.elements[i].type.toUpperCase()=="SELECT-ONE" )

					{

						if(str_valid[atype]=="B")

						{

							if(!comboValidation(frm.elements[i],frm.elements[i][frm.elements[i].selectedIndex].value,str_alert[atype]))

							{

								return false;

							}

						}

					} //end if of select-one

					else

					if(frm.elements[i].type.toUpperCase()=="SELECT-MULTIPLE")

					{	

						if(str_valid[atype]=="B")

						{

							if(!comboValidation(frm.elements[i],frm.elements[i].options[0].value,str_alert[atype]))

							{

								return false;

							}

						}

					} //end if of select-multiple

					

				}  //foratype



				break;



			} //end if of (hidname=hid)

			

		}  // endfor (kloop)

			

	}  //--- endFor elements



	if(fun!="")

	{

		if(!eval(fun))

		{

			return false;

		}

	}

	return true;

}



//=== Remove space

function removeSpace(str)

{

	var s="";

	s=str;

	var i

	var strr=s;

	for (i=0;i<s.length;i++)

	{

		if (s.charAt(i)==" ")

		{

			strr=s.substring(i+1,s.length)

		}

		else 

		{

			strr=strr;

			break;

		}	

	} 

	return strr

}





//=== Blank validation

function blankValidation(formElement,value,alertMsg)

{

	if(!value)

	{

		alert(alertMsg);

		formElement.focus();

		return false;

	}

	else return true;

}



//=== Email validation

function emailValidation(formElement,value,alertMsg)

{



	emailad=value;

	var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;

	var check=/@[\w\-]+\./;

	var checkend=/\.[a-zA-Z]{2,3}$/;

	if(((emailad.search(exclude) != -1)||(emailad.search(check)) == -1)||(emailad.search(checkend) == -1))

	{

		alert(alertMsg);

		formElement.value="";

	        formElement.focus();

		return false;

	}

	else return true;

}





//=== String validation

function stringValidation(formElement,value,alertMsg)

{



	var alpha=/[^a-zA-Z\ \.\-\,]/;

	if(value.search(alpha) != -1)

	{

		alert(alertMsg);

		formElement.value="";

	       	formElement.focus();

		return false;

	}

	else return true;

}



//=== Numeric validation

function numericValidation(formElement,value,alertMsg)

{

	if(isNaN(value))

	{

		alert(alertMsg);

		formElement.value="";

		formElement.focus();

		return(false);

	}

	else return true;

}



//=== Positive validation

function positiveValidation(formElement,value,alertMsg)

{



	if(isNaN(value)||value<0)

	{

		alert(alertMsg);

		formElement.value="";

		formElement.focus();

		return(false);

	}

	else

	{

		if(value.charAt(0)=="+")

		{

			value=value.substring(1,value.length);

			formElement.value=value;

		}		

	 return true;

	}

}





//=== Integer Validation

function integerValidation(formElement,value,alertMsg)

{

	flag=0;

	if(isNaN(value))

	{

		alert(alertMsg);

		formElement.focus();

		formElement.value="";

		return(false);

	}

	for(var j=0; j<value.length; j++)

	{

		if(value.charAt(j)==".")

		{

			alert(alertMsg);

			formElement.value="";

			formElement.focus();

			flag=1;

		}

	}

	if(flag==1)

	{

		return false;

	}

	else

	{

		return true;

	} 

}



//=== Combo box validation

function comboValidation(formElement,value,alertMsg)

{



	if(value=="0" || value=="")

	{

		alert(alertMsg);

		formElement.focus();

		return(false);

	}

	else return true;

}



//=== Date Validation



function dateValidation(formElement,value,alertMsg)

{

	var alpha=/\d{2}[/]\d{2}[/]\d{4}/;

	if(value.search(alpha) != -1)

	{

		dtarr=value.split("/");

		yr=dtarr[2];

		mr=dtarr[1];

		dr=dtarr[0];

		if(yr.length>4 || mr.length>2 || dr.length>2 || parseInt(mr)>12 || parseInt(mr)<1 || parseInt(dr)<1)

		{

			alert(alertMsg);

			//formElement.value="";

			formElement.focus();

			return false;

		}

		fmdate=new Date(yr,mr,'');

		day=fmdate.getDate();

		if(parseInt(dr) > parseInt(day))

		{

			alert(alertMsg);

			formElement.focus();

			return false;

		}

		else return true;

	}

	else

	{

		alert(alertMsg);

		return false;

	}

	return true;

}


