var fnamemin=2;
var fnamemax=50;

var lnamemin=2;
var lnamemax=50;

var namemin=2;
var namemax=50;

var phmin=4;
var phmax=15;

var faxmin=4;
var faxmax=15;

var mailmin=5;
var mailmax=125;

var streetmin=0;
var streetmax=150;

var areamin=0;
var areamax=150;

var citymin=3;
var citymax=100;

var statemin=0;
var statemax=100;

var countrymin=0;
var countrymax=100;

var mobilemin=10;
var mobilemax=15;

var pwdhintmin=5;
var pwdhintmax=50;

var salmin=3;
var salmax=5;

var compmin=2;
var compmax=250;

var desigmin=4;
var desigmax=100;

var workmin=4;
var workmax=250;

var hobbymin=0;
var hobbymax=250;

var commentmin=0;
var commentmax=250;

var degreemin=2;
var degreemax=50;

var institutemin=5;
var institutemax=250;

var universitymin=5;
var universitymax=150;

var classmin=5;
var classmax=6;

var sectmin=3;
var sectmax=50;

var periodmin=8;
var periodmax=17;

var loginmin=5;
var loginmax=12;

var flen=0;

var winModalWindow;

var monarray=new Array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC");

function indexinarray(sstring,marray)
{
   nstr=sstring.toUpperCase(); 
   for(i=0;i<marray.length;i++)
   {
    if (nstr==marray[i]) return i+1;
   } 
   return -1;
}  



function IgnoreEvents(e)
{
  return false
}
function ShowWindow(astr)
{
  if (window.showModalDialog)
 {
   window.showModalDialog("err.html?errstr="+astr,astr,"dialogWidth=350px;dialogHeight=150px;dialogTop=100,dialogLeft=100;status=no;scroll=no");
 }
  else
  {
    window.top.captureEvents (Event.CLICK|Event.FOCUS);
    window.top.onclick=IgnoreEvents;
    window.top.onfocus=HandleFocus;
winModalWindow=window.open("err.html?errstr="+astr,"ModalChild","dependent=yes,width=350,height=140,top=225,left=200");
    winModalWindow.focus();
  }
}
 
function HandleFocus()
{
  if (winModalWindow)
  {
    if (!winModalWindow.closed)
    {
      winModalWindow.focus()
    }
    else
    {
      window.top.releaseEvents (Event.CLICK|Event.FOCUS)
    }
  }
  return false
}


var reAlphabetic = /^[a-zA-Z]+$/;
var reNumber = /^[0-9]+$/;
var rePrice =  /^[0-9]+((x2E)[0-9]{2})?$/;

// date is of form 15-jan-2002
reDATE=/^\d{2}-[a-zA-Z]{3}-\d{4}$/    

//var reEMailID=/^([a-zA-Z])+[0-9a-zA-Z]*((.|-)[0-9a-zA-Z]+)*@([0-9a-zA-Z])+.([a-zA-Z]){2,3}$/

//var reEMailID=/^[0-9a-zA-Z]*((.|-)[0-9a-zA-Z]+)*((@).)([0-9a-zA-Z])+((.).)(([a-zA-Z]){2,4}){1,2}$/

// email id to accept more than 1 domain component after @
var reEMailID=/^[0-9a-zA-Z]+((\x2E|_)?[a-zA-Z0-9]+)*(@){1}[a-zA-Z0-9\-]+((\x2E){1}[a-zA-Z0-9]+){1,4}$/

var reName= /^[a-zA-Z]+[.\sa-zA-Z]*$/;
var reFname = /^[a-zA-Z]+$/;
var reLname = /^[a-zA-Z]+$/;

var reSubject=/^[0-9a-zA-Z\s.'-+=;,]{1,40}$/;
//var reStreet=/^([#-.,\s\(\)\/0-9a-zA-Z])([^&*<>])+$/;
var reStreet=/^[#(\)\/]?[-.,\s\/]?[0-9]+[\sa-zA-Z]+$/;
var reArea=/^([0-9a-zA-Z.,\s])+$/;
var reCity=/^([ a-zA-Z])+$/;
var rePincode=/^([0-9]{6})+$/;
var reZipcode= /^\d{5}$|^\d{5}[\-\s]?\d{4}$/;
//zipcode format is 
//a)5 Digit Number eg:44521
//b)5 Digit Number followed by four digit No. seperated by space or hypen eg:12347-4121

var reState=/^([a-zA-Z\s])+$/;
//var reCountry=/^([a-zA-Z\s])+$/;
var reCountry=/^([a-zA-Z])+[\s]+$/;

//Phone can be in 2 formats
//1) +Country code - Area Code - Phone No eg : +91-44-475 1245
//2) Area Code - Phone No  eg  : 044-525 4412
// consists of digits and dashes

var rePhone=/^[0-9-]{5,20}$/;

//var rePhone=/^([0-9]{1,4}-)?([0-9]{2,5}-)?([0-9]{5,8})$/

var reFax=/^\x2b?(([0-9]){1,2})*(-|\()?(([0-9]){2,5})(-|\))?(([0-9]){5,8})$/;
var rePager=/^\d{4}((-|\s){1})+(\d{6})+$|^\d{10}$/;
//Pager Format is
//a)9628-421410
//b)9628 441210 or 10digit no.

var reMobile=/^(\x2b?(\d{1,5}(-|\s){1})?(\d{10}))?$/;
//Mobile Format is
//91-9840044121 or 9840044121

var rePassword=/^([a-zA-Z]{4,6})(\d{2,4})$|^([a-zA-Z]{6})(\d{2})$/;
//Passford can be 6 to 8 chars
//format can be 4 alphabets followed by either 2 or 4 digit ie abcd12 or abcd1234
// 5-6 alpahbets followed by 2 digits ie abcdef12

var rePwdhint=/^[0-9a-zA-Z\,\-\s]+$/;

var reSalary=/^\d{3,5}$/;
var reCompany=/^[a-zA-Z\s\(\).\x26]+$/;
var reDesignation=/^[a-zA-Z\s\(\)-.][^&*<>]+$/;
var reWorknature=/^[0-9a-zA-Z\s,-]+$/;
var reHobbies=/^[a-zA-Z\s-,]+$/;
var reComments=/^[a-zA-Z\s.,]+$/;
var reDegree=/^[a-zA-Z\s\(\).]+$/;
var reDiploma=/^[a-zA-Z\s\(\).]+$/;
var reInstitute=/^[a-zA-Z\s.']+$/;
var reUniversity=/^[a-zA-Z\s.']+$/;
var reClass=/^[a-zA-Z]+$/
var reWeight=/^\d{2,3}$/;
var reSect=/^[a-zA-Z\s]+$/

var rePeriod=/^([a-zA-z]{3})-(\d{4})$|^(([a-zA-z]{3})(-){1}(\d{4})(\s{1})([a-zA-z]{3})(-{1})(\d{4}))$/;
//Format is
//a)mon-yyyy mon-yyyy eg: Mar-1995 Apr-1998
//b)mon-yyyy	eg: Dec-1999

var reLogin=/^([a-zA-Z]{5,12})$|^(([a-zA-Z]{5,12})(\d{1,4}))$/;
//Login can be 5 to 12 chars
//format can be min 5 to max 12 alphabets
//OR min 5 alphabets followed by 1 to 4 digits  with max length 12 chars



function isEmpty(strname)
{
	strname=allTrim(strname);
	if(strname.length==0 || strname=="")
		return true;
	return false;
}

function isDecimal(str)
{
var digits="1234567890.";
len=str.length;
	for(i=0; i<len; i++)
	{
                var c=str.charAt(i);
                if(digits.indexOf(c) == -1)
		{
		
			return false;
		}
	}

return true;   
}

function numberBetween(strnum,min, max)
{
	var num = parseInt(strnum);
    	if(num>=min && num<=max)
       return true;
    else
    	 return false;
}

function endsWith(mainstr, sstr)
{
	var l=sstr.length;
	var startc=mainstr.length - l;
	var endc = mainstr.length;
	var newstr = mainstr.slice( startc, endc);
	//alert("newstr is " + newstr);

	if ( newstr ==  sstr )	
	{
		return true;
	}
	else
		return false;
}
function rTrim(strname)
{
	var len = strname.length;
	if(len>0)
	{
		while(strname.charAt(strname.length-1)== ' ' )
			strname=strname.substr(0,strname.length-1);
	}
	return strname;	
}

function lTrim(strname)
{
	var len = strname.length;
	if(len>0)
	{
		while(strname.charAt(0)== ' ' )
			strname=strname.substr(1);
	}
	return strname;	
}

function allTrim(strname)
{
	return rTrim(lTrim(strname) );
}
function isAlpha(astr)
{
	var res=astr.match(reAlphabetic,"i");
	if(res==null)
	{
		return false;
	}
	return true;	 
}


function validNumber(astr)
{
	astr=allTrim(astr);
	var res=astr.match(reNumber,"i");
					//var res=isDecimal(astr);
	if(res==null)
	{
		return "This is Numeric Field.\nOnly Numbers allowed";
	}
	return "OK";	 
}
function validDigitNumber(astr,sdig)
{
	var adstr=" digits";	
        var nlen=astr.length;	
	//alert("Len is " +nlen);	
        num=parseInt(astr);
	  if(sdig==1)
		adstr=" digit";	
	
        if(nlen!=sdig)
	  {
		return "Only " +(sdig) + adstr +" is accepted";
	  }
	return "OK";
}
function validAmaxQty(astr)
{
        qty=parseInt(astr);
        if(!numberBetween(qty,1,20))
	{
		return "You can order maximum of 20 pieces only";
	}
	return "OK";
}

function validSubject(astr)
{
	flen=astr.length;
	var res=astr.match(reSubject,"i");
	if(res==null)
	{
		return "Invalid Subject.It should be maximum 40 characters containing letters,digits,space, ' ; , . - + = ";
	}
   	return "OK";	 

}

function validName(astr)
{
	flen=astr.length;
	var res=astr.match(reName,"i");
	if(res==null)
	{
		return "Invalid Name. Name can contain alphabets,spaces and fullstop.\nOnly " + namemin + " to " +namemax + " characters allowed";
	}
	
	if(flen<namemin || flen>namemax)
	{
		return "Invalid Name. Name should be " + namemin + " to " +namemax + " Characters only";
	}
	return "OK";	 
}

function validFirstName(astr)
{
	flen=astr.length;
	var res=astr.match(reFname ,"i");
	if(res==null)
	{
		return "First Name can contain only " + fnamemin + " to " +fnamemax + " alphabets";
	}
	if(flen<fnamemin || flen>fnamemax)
	{
		return "First Name should be " + fnamemin + " to " +fnamemax + " Characters only";
	}
	return "OK";	 
}

function validLastName(astr)
{
	flen=astr.length;
	var res=astr.match(reLname ,"i");
	if(res==null)
	{
		return "Last Name can contain only " + lnamemin + " to " +lnamemax + " alphabets";
	}
	if(flen<lnamemin || flen>lnamemax)
	{
		return "Last Name should be " + lnamemin + " to " +lnamemax + " Characters only";
	}
	return "OK";	 
}

function validEmail(astr)
{
	
	var res=astr.match(reEMailID,"i");
	if(res==null)
	{
		return "Invalid EMail.";
	}
	return "OK";
}



function validPhone(astr)
{

   var pres=null;
   pres=astr.match(rePhone,"i")
   if (pres==null)
   {
      return "A Phone must  be 5 - 20 characters  with optional country & Area Code separated by hyphen";
   } 
   return "OK";
}



function validFax(astr)
{
	flen=astr.length;
	var res=astr.match(reFax ,"i");
	if(res==null)
	{
		return "Fax can contain digits,+,(,) and hipen.\rOnly " + faxmin + " to " +faxmax + " characters allowed";

	}
	if(flen<faxmin || flen>faxmax)
	{
		return "Fax should be " + faxmin + " to " +faxmax + " Characters only";
	}
	return "OK";	 
}


function validStreet(astr)
{
	flen=astr.length;
	if(flen>0)
	{
		var res=astr.match(reStreet ,"i");
		if(res==null)
		{
		return "Street can contain alphabets,digits,comma,#,(,),spaces and hipen.\rOnly maximum of " +streetmax + " characters allowed";
		}
		if(flen>streetmax)
		{
			return "Street should be " +streetmax + " Characters only";
		}
	}
	return "OK";	 
}

function validArea(astr)
{
	flen=astr.length;
	if(flen>0)
	{
		var res=astr.match(reArea ,"i");
		if(res==null)
		{
		return "Area can contain alphabets,digits,comma, spaces and dot.\rOnly maximum of " +areamax + " characters allowed";
		}
		if(flen>streetmax)
		{
			return "Area should be " +areamax + " Characters only";
		}
	}
	return "OK";	 
}

function validCity(astr)
{
	flen=astr.length;
	var res=astr.match(reCity ,"i");
	if(res==null)
	{
		return "City can contain alpahbets and white psaces.\nonly " + citymin + " to " +citymax+ " characters";
	}
	if(flen<citymin || flen>citymax)
	{
		return "City should be " + citymin + " to " +citymax + " Characters only";
	}
	return "OK";	 
}

function validPincode(astr)
{
	flen=astr.length;
	var res=astr.match(rePincode ,"i");
	if(res==null)
	{
		return "Pincode Should contain 6 digits only";

	}
	if(flen<6 || flen>6)
	{
		return "Pincode should be 6 digits";
	}
	return "OK";	 
}

function validZipcode(astr)
{
	flen=astr.length;
	var res=astr.match(reZipcode ,"i");
	if(res==null)
	{
		return "Zipcode can cantain 5 or 9 digits only.\nDigits, spaces or hipen allowed";

	}
	if(flen<5 || flen>10)
	{
		return "Zipcode should be 5 or 9 digit number";
	}
	return "OK";	 
}

function validState(astr)
{
	flen=astr.length;
	if(flen>0)
	{
		var res=astr.match(reState ,"i");
		if(res==null)
		{
		return "State can contain alphabets and spaces.\nOnly maximum of " +statemax + " characters allowed";
		}
		if(flen>statemax)
		{
			return "State should be " +stateamax + " Characters only";
		}
	}
	return "OK";	 
}

function validCountry(astr)
{
	flen=astr.length;
	if(flen>0)
	{
		var res=astr.match(reCountry ,"i");
		if(res==null)
		{
		return "Country can contain alphabets and spaces.\nOnly maximum of " +countrymax + " characters allowed";
		}
		if(flen>countrymax)
		{
			return "Country should be " +countrymax + " Characters only";
		}
	}
	return "OK";	 
}
function validPrice(astr)
{
  var res=astr.match(rePrice);
  if (res==null)
  {
	return "Invalid price. Price to contain numbers followed by optional . and 2 digits. Example:10245  or 10245.70" ;
   }
 return "OK";
}

function validPager(astr)
{
	flen=astr.length;
	var res=astr.match(rePager ,"i");
	if(res==null)
	{
		return "Invalid Pager No. It can be like 9628-441201 or 9628441201";

	}
	return "OK";	 
}

function validMobile(astr)
{
	flen=astr.length;
	var res=astr.match(reMobile ,"i");
	if(res==null)
	{
		return "Mobile format should be (+)(country code)(-)(phone number) where phone number must have " +mobilemin+ " digits";

	}
	return "OK";	 
}


function validPassword(astr)
{
	flen=astr.length;
	var res=astr.match(rePassword ,"i");
	if(res==null)
	{
		return "Password should be 6 to 8 characters only.\nIt must start with atleast 4 alphabets followed by atleast 2 digits.";

	}
	if(flen<6|| flen>8)
	{
		return "Password must be 6 to 8 characters only";
	}
	return "OK";	 
}

function validPasswordhint(astr)
{
	flen=astr.length;
	var res=astr.match(rePwdhint ,"i");
	if(res==null)
	{
		return "Password Hint can contain alphabets,digits,coma,spaces and hypen only.\nOnly "+pwdhintmin+ " to "+pwdhintmax + " characters allowed";

	}
	if(flen<pwdhintmin || flen>pwdhintmax)
	{
		return "Password hint can contain " + pwdhintmin + " to "+pwdhintmax + " characters only";
	}
	return "OK";	 
}

function validSalary(astr)
{
	flen=astr.length;
	var res=astr.match(reSalary ,"i");
	if(res==null)
	{
		return "Salary can cantain "+salmin+ " to " + salmax + " digits only.";

	}
	if(flen<salmin || flen>salmax)
	{
		return "Salary should be " + salmin + " to " + salmax + " digit number";
	}
	return "OK";	 
}

function validCompany(astr)
{
	flen=astr.length;
	var res=astr.match(reCompany ,"i");
	if(res==null)
	{
		return "Company can cantain alphabets,spaces,(,) and dot.\nIt can be "+compmin+ " to " + compmax + " characters only.";

	}
	if(flen<compmin || flen>compmax )
	{
		return "Company can contain " + compmin+ " to " + compmax + " Characters only";
	}
	return "OK";	 
}

function validDesignation(astr)
{
	if (validNonHtmlText(astr)=="OK")
		return "OK";
	else
		return "Invalid Designation. Please type proper words";
}

function validWorknature(astr)
{
	flen=astr.length;
	var res=astr.match(reWorknature ,"i");
	if(res==null)
	{
		return "Work nature can cantain alphabets,digits,spaces, and hypen.\nIt can be "+workmin+ " to " + workmax+ " characters only.";

	}
	if(flen<workmin|| flen>workmax)
	{
		return "Workn ature can contain " + workmin+ " to " + workmax+ " Characters only";
	}
	return "OK";	 
}


function validHobbies(astr)
{
	flen=astr.length;
	if(flen>0)
	{
		var res=astr.match(reHobbies ,"i");
		if(res==null)
		{
		return "Hobbies can contain alphabets,comma,hypen and spaces.\nOnly maximum of " +hobbymax + " characters allowed";
		}
		if(flen>hobbymax )
		{
			return "Hobbies should be " + hobbymax + " Characters only";
		}
	}
	return "OK";	 
}

function validComments(astr)
{
	flen=astr.length;
	if(flen>0)
	{
		var res=astr.match(reComments,"i");
		if(res==null)
		{
		return "Comments can contain alphabets,comma,dot and spaces.\nOnly maximum of " +commentmax + " characters allowed";
		}
		if(flen>commentmax)
		{
			return "Comments should be " + commentmax + " Characters only";
		}
	}
	return "OK";	 
}

function validDegree(astr)
{
	flen=astr.length;
	var res=astr.match(reDegree,"i");
	if(res==null)
	{
		return "Degree can cantain alphabets,spaces,(,) and dot.\nIt can be "+degreemin+ " to " + degreemax + " characters only.";

	}
	if(flen<degreemin || flen>degreemax)
	{
		return "Degree can contain " + degreemin + " to " + degreemax + " Characters only";
	}
	return "OK";	 
}

function validDiploma(astr)
{
	flen=astr.length;
	var res=astr.match(reDiploma,"i");
	if(res==null)
	{
		return "Diploma can cantain alphabets,spaces,(,) and dot.\nIt can be "+degreemin+ " to " + degreemax + " characters only.";

	}
	if(flen<degreemin || flen>degreemax)
	{
		return "Diploma can contain " + degreemin + " to " + degreemax + " Characters only";
	}
	return "OK";	 
}

function validInstitute(astr)
{
	flen=astr.length;
	var res=astr.match(reInstitute,"i");
	if(res==null)
	{
		return "Institute can cantain alphabets,spaces and dot.\nIt can be "+institutemin+ " to " + institutemax + " characters only.";

	}
	if(flen<institutemin || flen>institutemax)
	{
		return "Institute can contain " + institutemin + " to " + institutemax + " Characters only";
	}
	return "OK";	 
}

function validUniversity(astr)
{
	flen=astr.length;
	var res=astr.match(reUniversity,"i");
	if(res==null)
	{
		return "University can cantain alphabets,spaces and dot.\nIt can be "+universitymin+ " to " + universitymax+ " characters only.";

	}
	if(flen<universitymin || flen>universitymax)
	{
		return "University can contain " + universitymin + " to " + universitymax + " Characters only";
	}
	return "OK";	 
}

function validClass(astr)
{
	flen=astr.length;
	var res=astr.match(reClass,"i");
	if(res==null)
	{
		return "Class can cantain alphabets only.\nIt can be "+classmin+ " to " + classmax+ " characters only.";

	}
	if(flen<classmin|| flen>classmax)
	{
		return "Class can contain " + classmin+ " to " + classmax+ " Characters only";
	}
	return "OK";	 
}

function validWeight(astr)
{
	flen=astr.length;
	var intwt=parseInt(astr);
	var res=astr.match(reWeight,"i");
	if(res==null)
	{
		return "Weight can cantain 2 to 3 digits only.";
	}
	if(intwt<30 || intwt>300)
	{
		return "Weight must be above 30Kgs and below 300Kgs.";		
	}
	return "OK";	 
}
function validSect(astr)
{
	flen=astr.length;
	var res=astr.match(reSect,"i");
	if(res==null)
	{
		return "Sect can cantain alphabets and spaces only.\nIt can be "+sectmin+ " to " + sectmax+ " characters only.";

	}
	if(flen<sectmin|| flen>sectmax)
	{
		return "Sect can contain " + sectmin+ " to " + sectmax+ " Characters only";
	}
	return "OK";	 
}

function validPeriod(astr)
{
	flen=astr.length;
	var alertmsg="Period can cantain alphabets,digits,hypen and spaces only.";
	alertmsg=alertmsg+"\nIt can be "+periodmin+ " to " + periodmax + " characters only.";
	alertmsg=alertmsg+"\nFormat is \'MON-YYYY\' or \'MON-YYYY MON-YYYY\'";

	var res=astr.match(rePeriod,"i");
	if(res==null)
	{
		return alertmsg;

	}
	if(flen<periodmin|| flen>periodmax )
	{
		return "Period can contain " + periodmin+ " to " + periodmax + " Characters only";
	}
	return "OK";	 
}

function validLogin(astr)
{
	flen=astr.length;
	var alertmsg="Login can cantain alphabets and digits only.";
	alertmsg=alertmsg+"\nIt can be "+loginmin+ " to " + loginmax+ " characters only.";
	alertmsg=alertmsg+"\nAllowed Format is \'Min 5 to Max 12 alphabets\'";
	alertmsg=alertmsg+"\n                            OR    "; 
	alertmsg=alertmsg+"\n\'Min 5 alphabets followed by 1 to 4 digits with Max 12 chars\'";

	var res=astr.match(reLogin,"i");
	if(res==null)
	{
		return alertmsg;

	}
	if(flen<loginmin|| flen>loginmax)
	{
		return "Login can contain " + loginmin+ " to " + loginmax + " Characters only";
	}
	return "OK";	 
}

function validHeight(hstr)
{
	if(isEmpty(hstr) || !isDecimal(hstr) )
		return "Height must be 3 to 4 digit Number.\nFormat is \"Foot.Inches\" Eg: \"5.11\" or \"6.5\"";	
	hstr =allTrim(hstr);
	var len=hstr.length;
	if(len>4 || len<3)
		return "Height must be 3 to 4 digit Number.\nFormat is \"Foot.Inches\" Eg: \"5.11\" or \"6.5\"";
	
	var dot=hstr.indexOf(".");

	if(dot!=1)
		return "Invalid Height";	
	var fc=hstr.charAt(0);//first char

	if(!numberBetween(fc,4,6))
		return "Invalid Height.\nValid Height should be in 4 to 6 feet range";
	
	var subhstr=hstr.substr(dot+1,len-1)
	var subfc=parseInt(subhstr.charAt(0));
	
	var numsubhstr=parseInt(subhstr);
	var sublen=subhstr.length;

	if(sublen==2 && subfc!=0 && numsubhstr>11)
		return "Invalid Height.\nInch part should be 0 to 11";
	
	var lc=parseInt(subhstr.charAt(sublen-1) );//last char/digit		
		
	if(sublen==2 && subfc==0 && lc!=0)
		return "Invalid Height";
	if(sublen>2)
		return "Invalid Height";		
	
	return "OK";
}

function validExperience(hstr)
{
	if(isEmpty(hstr) || !isDecimal(hstr) )
		return "Experience must be 4 to 5 digit Number.\nFormat is \"YY.MM\" Eg: \"05.11\" or \"YY.M\" Eg: \"10.6\"";	
	hstr =allTrim(hstr);
	var len=hstr.length;

	var exparr=hstr.split(".");
	var monthpart=exparr[1];
	//alert("Month is "+monthpart);
	var mlen=monthpart.length;
	
	if(len>5 || len<4)
		return "Experience must be 4 to 5 digit Number.\nFormat is \"YY.MM\" Eg: \"05.11\" or \"YY.M\" Eg: \"10.6\"";
	
	var dot=hstr.indexOf(".");

	if(dot!=2)
		return "Invalid Experience.\nExperience must be 4 to 5 digit Number.\nFormat is \"YY.MM\" Eg: \"05.11\" or \"YY.M\" Eg: \"10.6\"";	
	
	if(mlen==2 && parseInt(monthpart)>11)
	{
		return "Invalid Experience.\nMonth part should be 0 to 11";
	}
	return "OK";
}

function validNonHtmlText( tatxt )
{
   if ( tatxt.indexOf('>')==-1 &&   tatxt.indexOf('<')==-1 && tatxt.indexOf('&gt;')==-1 && tatxt.indexOf('&lt;')==-1)
       return "OK";
   else
	return " <  > &gt; &lt; not allowed."
}

function validDate(fobjd,fobjm,fobjy)
{
	var stryr=fobjy.options[fobjy.selectedIndex].value;
	var yr=parseInt(stryr);
	var mon=fobjm.selectedIndex;
		var leap = false;
           if (yr%400==0 || (yr%100!=0 && yr%4==0))
		 leap=true;
	var x=fobjd.options[fobjd.selectedIndex].value;
	
	if(mon==3 || mon==5 || mon==8 || mon==10)
	{
		if(x>30)
		{
			return("Invalid Date for the month selected.\r\n Selected month has only 30 days");
			
		}
	}	
	if(mon==1 &&	leap)
	{
		if(x>29)	if(yr%400 == 0 || yr%100 !=0 && yr%4 == 0)
		{
			return("Invalid Date for the month selected.\r\n Selected month has only 29 days");
		}
	}	
	if(mon==1 &&	!leap)
	{
		if(x>28)
		{
			return("Invalid Date for the month selected.\r\n Selected month has only 28 days");
		}	
	}	
	return "OK";
}

function validstrdate(strname)
{ 
  strname=strname.toUpperCase();

  res=strname.match(reDATE,"i");
  if (res==null)
  {
    return "Invalid Date. Date can only be of the format DD-MON-YYYY";
  }
  idd=parseInt(strname.substring(0,2));
  //alert(strname.substring(0,2));
  imm=indexinarray(strname.substring(3,6),monarray);
  if (imm==-1) return "Invalid Month Name";
  iyy=parseInt(strname.substring(7,11));
  //alert(strname.substring(7,11));
  maxfeb=((iyy % 400 == 0) || ((iyy %100 !=0)&&(iyy%4==0)))?29:28;

  valid=true;
  if (idd<1 || idd>31 || iyy<1 || imm<1 || imm>12) valid=false;
  if ((imm==4 || imm==6 || imm==9 || imm==11) && idd>30) valid=false;
  if ((imm==2)&&(idd>maxfeb)) valid=false; 

  if (valid) return "OK";
  else return "Invalid Date."
}




function validgeneralmemo(strname,canempty)
{
   res=validcleantext(strname)
   if (res!='OK')
   { 
      return res;
   }
   minlen=(canempty)?0:1;   
   lenvalue=strname.length;
   if (lenvalue<minlen)
   {
        return "must not be empty" ;   
   }
   return "OK";
}

function validcleantext( tatxt )
{
   if ( tatxt.indexOf('>')==-1 &&   tatxt.indexOf('<')==-1 && tatxt.indexOf('&gt;')==-1 && tatxt.indexOf('&lt;')==-1)
       return "OK";
   else
	return " <  > &gt; &lt; not allowed."
}