	var spacer="         -";
	function setfocus(objField){
		blnflag=false;
		objField.focus();
		if(objField.type!="select-one")
			objField.select();
		
	}
	function onlydigitsandchars(str){
		var re = new RegExp("([A-Za-z0-9]+)");
		return (re.exec(str)!=null && RegExp.$1==str);
	}
	function ValidPassword(objField1,objField2){
		
		var val = trim(objField1.value);
		msg = "";
		if (val.length  == 0)
		{
			objField1.focus();
			return msg += spacer + "New Password cannot be empty.\n";
		}
		if (!onlydigitsandchars(val))
		{
			msg += spacer + "Passwords must contain only letters and digits.\n";
		}
		if (objField1.value != objField2.value)
		{
			msg += spacer + "Passwords don't match.\n";
		}
		if (val.length < 6)
		{
			msg += spacer + "Passwords must be at least 6 characters long.\n";
		}
		reA = new RegExp("[A-Za-z]");
	
		reD = new RegExp("[0-9]");
	
		if (msg.length > 0)
			return msg;
		else 
			return "";
		
	}
	function ValidDate(objFieldValue,date_format){
		var str_date=objFieldValue;			
		if(str_date=="")
			return "";
		var i,j;		
		var RE_NUM = /^\-?\d+$/;
		var NUM_CENTYEAR = 30;
		
		var arr_date = str_date.split('/');
		
		if (arr_date.length != 3) return spacer + " - Invalid date format: '" + str_date + "'.\n" + spacer + " - Format accepted is " + date_format + ".\n";
		i = date_format!="mm/dd/yyyy" ? 1 : 0;
		j = i > 0 ? 0 : 1;
		if (!arr_date[j]) return spacer + " - Invalid date format: '" + str_date + "'.\n" + spacer + " - No day of month value can be found.\n";
		if (!RE_NUM.exec(arr_date[j])) return spacer + " - Invalid day of month value: '" + arr_date[j] + "'.\n" + spacer + " - Allowed values are unsigned integers.\n";
		if (!arr_date[i]) return spacer + " - Invalid date format: '" + str_date + "'.\n" + spacer + " - No month value can be found.\n";
		if (!RE_NUM.exec(arr_date[i])) return spacer + " - Invalid month value: '" + arr_date[i] + "'.\n" + spacer + " - Allowed values are unsigned integers.\n";
		if (!arr_date[2]) return spacer + " - Invalid date format: '" + str_date + "'.\n" + spacer + " - No year value can be found.\n";
		if (!RE_NUM.exec(arr_date[2])) return spacer + " - Invalid year value: '" + arr_date[2] + "'.\n" + spacer + " - Allowed values are unsigned integers.\n";
	
		var dt_date = new Date();
		dt_date.setDate(1);
	
		if (arr_date[i] < 1 || arr_date[i] > 12) return spacer + " - Invalid month value: '" + arr_date[i] + "'.\n" + spacer + " - Allowed range is 01-12.\n";
		dt_date.setMonth(arr_date[i]-1);
		 
		if (arr_date[2] < 100) arr_date[2] = Number(arr_date[2]) + (arr_date[2] < NUM_CENTYEAR ? 2000 : 1900);
		dt_date.setFullYear(arr_date[2]);
	
		var dt_numdays = new Date(arr_date[2], arr_date[i], 0);
		dt_date.setDate(arr_date[j]);
		if (dt_date.getMonth() != (arr_date[i]-1)) return spacer + " - Invalid day of month value: '" + arr_date[j] + "'.\n" + spacer + " - Allowed range is 01-"+dt_numdays.getDate()+".\n";
		//return (dt_date)
		return "";
	}
	function ValidEmail(objFieldValue){		
	
		var validFormatRegExp=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		
		var isValid=validFormatRegExp.test(objFieldValue);
		
		return isValid;		
			
	}
	function ValidInteger(objFieldValue){
	
	  var validFormatRegExp = /^((\+|-)\d)?\d*$/;
	
	  var isValid = validFormatRegExp.test(objFieldValue);
	
	  return isValid;
	}
	function ValidFloat(objFieldValue){

	  var validFormatRegExp = /^\d*(\.\d+)?$/;
	
	  var isValid = validFormatRegExp.test(objFieldValue);
	
	  return isValid;
	
	}	
	function ValidLength(objFieldValue,objMaxLength){

	 	if(objFieldValue.length > objMaxLength)
			 return  false;
		else
			 return true;		
	  
	}	
	function validate_me(objField,error_msg,checkingfor)
	{
		
		error_msg= spacer + error_msg;
		
		if(checkingfor!="checkboxrequired")
			var objFieldValue=objField.value;
		
		if(checkingfor=="" || checkingfor==0){ 
			if(objFieldValue==checkingfor){		 
				if (blnflag){				
					setfocus(objField)
				}					
				return error_msg + "\n";
			}
			else
				return "";
		}		
		else if(checkingfor=="email"){
			if(objFieldValue=="")
				return "";
			if(ValidEmail(objFieldValue))
				  return ""; 	 	 
			else{
				if(blnflag){
					setfocus(objField)
			   }
			   return  error_msg + "\n";	
			}  			
		}
		else if(checkingfor=="integer")
		{
			if(ValidInteger(objFieldValue))
				  return ""; 	 	 
			else{
				if(blnflag){
					setfocus(objField)
			   }
			   return  error_msg + "\n";	
			}  			
		}
		else if(checkingfor=="float")
		{
			if(ValidFloat(objFieldValue))
				  return ""; 	 	 
			else{
				if(blnflag){
					setfocus(objField)
			   }
			   return  error_msg + "\n";	
			}  			
		}
		else if(checkingfor=="mm/dd/yyyy" || checkingfor=="dd/mm/yyyy")
		{	
			var date_msg = ValidDate(objFieldValue,checkingfor);  
			if(date_msg.length==0)
				  return ""; 	 	 
			else{
				if(blnflag){
					setfocus(objField)
			   }
			   return  error_msg +  "\n" + date_msg ;	
			}
		}
		else if(checkingfor=="password")
		{
			if(objFieldValue.length==0)  return "";	
			
			error_msg=ValidPassword(validate_me[0],validate_me[1])
			if(error_msg == "")  
				return "";				  	 	 
			else{
				if(blnflag){
					setfocus(objField)
			   }
			return  error_msg + "\n";	
			}  					
		}
		
		else if(checkingfor=="checklength")
		{			
			if(objFieldValue.length==0)  return "";
			var objMaxLength=validate_me.arguments[3];			
			if(ValidLength(objFieldValue,objMaxLength)) 
				return "";				   	 	 
			else if(blnflag)
				setfocus(objField)			   
  		    return  error_msg + " : Current Length is - " + objFieldValue.length + " characters\n";	
		}	
		else if(checkingfor=="checkboxrequired")
		{
			for(var cnt=0;cnt < objField.length ; cnt++)
			{
				if(objField[cnt].checked)
					return "";					
			}
			if(blnflag)
				setfocus(objField[0])
				return  error_msg + "\n";	
		}
	}
function SortField()
{			
		var arrControls = SortField.arguments;
		var arrLen = arrControls.length;
		var frm = eval(arrControls[0])
		var strFld = arrControls[1]
		
		var strUrl;
		var ctr,imgSrc;
		if(frm.txtCtr.value==""){ctr=0;}else{ctr=frm.txtCtr.value;}
		ctr++; 
		var sortOrder;
		if(ctr%2==1)
		{
			sortOrder="Desc";
			//imgSrc="../images/up_arrow.gif"
		}	
		else{
			sortOrder="Asc";
			//imgSrc="../images/down_arrow.gif"
		}
		if(strFld!=""){
			frm.txtSortFld.value=strFld + " " + sortOrder;
			frm.txtCtr.value=ctr;
			//frm.txtImgSrc.value=imgSrc;
			frm.submit(); 
		}

}
function selectbox(ctr,val)
{
	for(var i=0;i<ctr.options.length;++i)
	{
		if(ctr.options[i].value == val)
		{				
			ctr.options[i].selected=true;
			break;
		}
	}
}

function toTitleCase(field)
{
	var cd= field.value;
	var len=cd.length;
	if(len==0)
	{
		return;
	}
	var str="";
    var	count=0;
	for(i=0;i<len;i++)
	{
		var p=cd.charAt(i);
		if((p>=0 && p<=9)||(p>='a' && p<='z')||(p>='A' && p<='Z')||p=='_'||p=='&'||p=='.'||p==' '||p=='-')
		{
			if(p== ' ') count++;
			else count=0;
			if(!(str=="" && p==' ') && count<2)
				str=str+p;
		}
	}

	var ar1=new Array();
	ar1=str.split(" ");
	for(i=0;i<ar1.length;i++)
	{
		var st=ar1[i].charAt(0).toUpperCase();
		var st1=ar1[i].substring(1,ar1[i].length);
		ar1[i]=st+st1;
	}
	str=ar1.join(" ");
	field.value = str;
}

function toLoginCase(field)
{
	var cd= field.value;
	var len=cd.length;
	if(len==0)
	{
		return;
	}
	var str="";
    var	count=0;
	for(i=0;i<len;i++)
	{
		var p=cd.charAt(i);
		if((p>=0 && p<=9)||(p>='a' && p<='z')||(p>='A' && p<='Z')||p=='_'||p=='-')
		{
			if(p== ' ') count++;
			else count=0;
			if(!(str=="" && p==' ') && count<2)
				str=str+p;
		}
	}

	var ar1=new Array();
	ar1=str.split(" ");
	for(i=0;i<ar1.length;i++)
	{
		var st=ar1[i].charAt(0);
		var st1=ar1[i].substring(1,ar1[i].length);
		ar1[i]=st+st1;
	}
	str=ar1.join('');
	field.value = str;
}
function emailCase(field)
{
	var cd= field.value;
	var len=cd.length;
	if(len==0)
	{
		return;
	}
	var str="";
    var	count=0;
	for(i=0;i<len;i++)
	{
		var p=cd.charAt(i);
		if((p>=0 && p<=9)||(p>='a' && p<='z')||(p>='A' && p<='Z')||p=='_'||p=='@'||p=='.'||p==' '||p=='-')
		{
			if(p== ' ') count++;
			else count=0;
			if(!(str=="" && p==' ') && count<2)
				str=str+p;
		}
	}

	var ar1=new Array();
	ar1=str.split(" ");
	for(i=0;i<ar1.length;i++)
	{
		var st=ar1[i].charAt(0);
		var st1=ar1[i].substring(1,ar1[i].length);
		ar1[i]=st+st1;
	}
	str=ar1.join(" ");
	field.value = str;
}

function trim(str)
{

	var trimmedString = new String(str);

	if ((0 < str.length) && ((str.charCodeAt(0) <= 32) || (str.charCodeAt(str.length-1) <= 32)))
	{
		
		var startSlice = 0;
		var endSlice   = -1;


		for (var i = 0; i < str.length-1; i++)
		{
			if (str.charCodeAt(i) > 32)
			{
				startSlice = i;
				break;
			}
		}
		
		for (var i = str.length-1; startSlice <= i; i--)
		{
			if (str.charCodeAt(i) > 32)
			{
				endSlice = i;
				break;
			}
		}
		
		trimmedString = str.slice(startSlice, endSlice+1);
	}
	return trimmedString;
}
