// uses only textarea for text count
function textCounter( field, maxlimit )
{
         if ( field.value.length > maxlimit )
	{
		field.value = field.value.substring( 0, maxlimit );
		var msg="";
		msg="Number of characters exceeded the limit (";
		msg+=maxlimit;
		msg+=").";
		alert(msg);
		return false;
         }
}

function isblank(s)
{
        for(var i=0; i<s.length; i++)
        var c = s.charAt(i);
        if((c !='')&&(c !='\n')&&(c !='\t')) return false;
}
// uses text/textarea for checking blank space
function blankSpaceCheck(fld,e)
{
	if(fld.value.charAt(0)==' ')
         {
         	fld.value=fld.value.replace(' ','');
         }
}
//uses text field value for checking number
function chkNumber(str)
{
         for(var i=0; i<str.length; i++)
	{
	         if(str.charAt(i)>=0 && str.charAt(i)<=9)
	         {
                  }
	         else
	         {
	                return false;
	         }
	}
	return true;
}
// uses text field value for checking valid date
function chkDate(jdate)
{
	var length = 0;
         length = jdate.length;
         if(length == 10)
	{
	         var str1 = jdate.substring(0,4);// Year Section

                  if(!chkNumber(str1))
                  {
                  	return false;
                  }

	         var str2 = jdate.substring(4,5);// "-" sign after Year
	         if(str2 != "-")
	         {
	         	return false;
	         }
	         var str3 = jdate.substring(5,7); // Month Section
	         if(!chkNumber(str3))
                  {
                  	return false;
		 }

		 if(str3<=0 || str3>12)
		 {
                          return false;
                  }

	         var str4 = jdate.substring(7,8);// "-" sign after Year
	         if(str4 != "-")
	         {
	            	return false;
	         }
	         var str5 = jdate.substring(8,10);// Day Section
	         if(!chkNumber(str5))
                  {
                  	return false;
                  }
         	if(str5<=0 || str5>31)
                	{
            		return false;
	 	}

         	return true;
         }
	else
        	{
		return false;
        	}

}
// uses text field for checking valid email address name
function validEmail(email)
{
	invalidChars = " /:,;"
	if(email == ""){
		return false;
	}

	for(i=0;i<invalidChars.length;i++){
		badChar = invalidChars.charAt(i)
		if(email.indexOf(badChar,0) > -1 ){
			return false;
		}
	}

	atPos = email.indexOf("@",1)
	if(atPos == -1){
		return false;
	}

	if(email.indexOf("@",atPos+1) > -1) {
		return false;
	}

	periodPos = email.indexOf(".",atPos)
	if(periodPos == -1){
		return false;
	}

	if(periodPos+3 > email.length){
		return false;
	}
	return true;
}
// main fuction
function verify(k)



{
         var msg = "";
         var message = "";
         var empty_fields = "";
         var errors = "";
//k.select();
//k.focus();
//window.alert("Test");
         var id = "";//text,textarea,select object's ID properties
         //var fname = f.name;
         for(var i=0; i< k.length; i++)
         {
		id = "";
                 var e = k.elements[i];//object of a Form
                 id = e.id;
                 var word = id.split(":");//put value in word array
		var datatype = word[0];
               	var iname = word[1];//object name
               	var iflag = word[2];//required field cheking variable;holds "Y" or "N"
               	var iresrv = word[3];//it holds string like "Enter" or "Select"
                 var iresrv1 = word[4];
				
                 //alert("Form Name="+fname+" Data type= "+datatype+"\n iname="+iname+"\n iflag="+iflag+"\n iresrv="+iresrv+"\n evalue="+e.value);
		//**Required field checking**//
                 if(((e.type == "text")||(e.type == "textarea")||(e.type == "select-one")) && iflag=='y')
                 {
			if((e.value == null)||(e.value == "")|| (e.value == " "))
                         {
                         	empty_fields  += "\n   " + "   "+iresrv+" "+iresrv1;
                         }
                         if(isblank(e.value))
			{
                         	empty_fields  += "\n   " + "Robin o  "+iresrv+" "+iresrv1;
                         }
                 }
		if(empty_fields)
         	{
         		msg+= "Please specify the following field(s):\n"
                                        + empty_fields + "\n";
                 	alert(msg);
					document.getElementById(id).focus()
                 	return false;
         	}

                 var evalue = e.value;//object's input value

                 //**Date input value Checking**//
                 if(datatype == "DT" && evalue!="")
                 {
                         if(!chkDate(evalue))
                         {
                         	alert("Date Format "+evalue+" is not correct!");
                         	document.getElementById(id).focus()	
							return false;
                         }
                 }
                 //**Short Name input value checking**//
                 else if(datatype == "SN" && evalue!="")
                 {
                         if(evalue.indexOf(" ")!=-1)
                         {
				alert("Short Name Format "+evalue+" is not correct!");
                         document.getElementById(id).focus()
						 	return false;
                         }
                 }
                 //**Integer Number input value checking**//
		else if(datatype == "NI" && evalue!="")
                 {
			if(!chkNumber(evalue))
                         {
				alert("Integer Number Format "+evalue+" is not correct!");
                                 //f.iname.focus();
                         document.getElementById(id).focus()
						 	return false;
                         }
                 }
                 //**Email input value checking**//
		else if(datatype == "E" && evalue!="")
                 {
			if(!validEmail(evalue))
                         {
				alert("Email addrss Format "+evalue+" is not correct!");
	                       document.getElementById(id).focus()
						    return false;
    			}
                 }
                 //**Decimal Number value checking**//
		else if(datatype == "ND")
                 {
			var nd = evalue.split(".");
                         var nl = nd.length;

                         if(nd.length>2)
                         {
                         	alert("Decimal Number Format "+evalue+" is not correct");
                               document.getElementById(id).focus()
							     return false;
                         }
                         for(var j=0; j<nl; j++)
                         {
				var ndecimal = nd[j];
                                 if(!chkNumber(ndecimal))
                                 {
					alert("Decimal Number Format "+evalue+" is not correct");
                                        document.getElementById(id).focus()
										 return false;
                                 }
                         }
                 }
         }
	return true;
}