/* This function is focus on particular field */
function setfocus(field)
{
	blnflg=false;
	field.focus();
}

/* This function is use to compare two field value and check whether it is same or not */
function checklength(newvalue,confirmvalue)
{
	var newlength=newvalue.length;
	var confirmlength=confirmvalue.length;
	if(newlength!=confirmlength)
	{
			return false;
	}
	else
	{
			return true;
	}
}
function checkComparision(newvalue,confirmvalue)
{
		for(var count=0;count<newvalue.length;count++)
		{
				if(newvalue.charAt(count)!=confirmvalue.charAt(count))
				{
						return false;
				}
		}
		return true;
}
function checkpassword(newpwd,confirmpwd,msg)
{
	var newpassword=newpwd.value;
	var confirmpassword=confirmpwd.value;
	
	newpassword=trim(newpassword);
	confirmpassword=trim(confirmpassword);
	isvalid=checklength(newpassword,confirmpassword);

	if(!isvalid)
	{
			if(blnflg)
			{
					setfocus(newpwd);
			}
			return "You Must Give Newpassword and Confirmpassword same\n";
	}
	else
	{
		isvalid=checkComparision(newpassword,confirmpassword);
		if(!isvalid)
		{
			if(blnflg)
			{
					setfocus(newpwd);
			}
			return "You Must Give Newpassword and Confirmpassword same\n";
		}
	}
	return "";
}
/* End of password checking */

function validate_object_field(field,msg,checkingfor)
{
	var fieldValue=field.value;
	if(checkingfor!="checkboxrequired")
	{
		fieldValue=trim(fieldValue);
	}
	if(checkingfor=="" || checkingfor==0)
	{			
		if(fieldValue!=checkingfor)
		{
				return "";
		}
		if(blnflg)
		{
			setfocus(field);	
		}
		return msg+="\n";
	}
	else if(checkingfor=="float")
	{			
			if(ValidFloat(fieldValue))
			{
				return "";
			}
			else
			{
				if(blnflg)
				{
					setfocus(field);	
				}
			}
			return msg+="\n";
	}
	else if(checkingfor=="integer")
	{		
			isvalid=ValidInteger(fieldValue);
			if(isvalid)
			{
					return "";
			}
			else
			{
				if(blnflg)
				{
					setfocus(field);	
				}
				return msg+="\n";
			}
	}
	else if(checkingfor=="date")
	{
			isvalid=validateDate(fieldValue);
			if(isvalid)
			{
				var date=fieldValue.split("/");
				if(validate_object_field.arguments[3]=="mm/dd/yyyy")
				{
					var month=date[0];
					var day=date[1];
					var year=date[2];
				}
				else if(validate_object_field.arguments[3]=="dd/mm/yyyy")
				{
					var month=date[1];
					var day=date[0];
					var year=date[2];
				}
				if(month>12 || month<0)
				{
						return "month must be in 0-12 range";
				}				
				if(month==4 || month==6 || month==9 ||month==11)
				{
						if(day>30 || day<0)
						{
								return "day must be in range 0-30"
						}						
				}
				else if(month==2)
				{
					febdays=daysInFebruary (year);	
					if(day>febdays || day<0)
						{
								return "day must be in range 0-" +febdays;
						}
				}
				else
				{
						if(day>31 || day<0)
						{
								return "day must be in range 0-31"
						}
				}
				if(year<1970 || year>2011)
				{
						return "Year must be in range 1970-2011";
				}				
			}
			else
			{					
					return msg+="\n";
			}
			return true;
	}
	else if(checkingfor=="email")
	{
		isvalid=ValidEmail(fieldValue);
		if(isvalid)
		{
				return "";
		}
		else
		{
			if(blnflg)
			{
				setfocus(field);	
			}
			return msg+="\n";
		}
	}
	else if(checkingfor=="checklength")
	{
			var maxlength=validate_object_field.arguments[3];
			isvalid=Validlength(fieldValue,maxlength);
			if(isvalid)
			{
					return "";
			}
			else
			{
				if(blnflg)
				{
					setfocus(field);	
				}
				return msg+="\n";
			}
	}
}
/*date validation start*/
function validateDate(fieldValue)
{
	var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;
	var isvalid=objRegExp.test(fieldValue);
	if(isvalid)return true;
	else return false;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
/*date validation is complete */

function Validlength(fieldValue,maxlength)
{
	if(fieldValue.length>maxlength)
	{
			return false;
	}
	else
	{
			return true;
	}
}
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 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;
}