function setfocus(field)
{
	blnflg=false;
	field.focus();
}
/* This function is use to check whether new and confirm password is same or not */

function checklength(str1,str2)
{
	var newlength=str1.length;
	var confirmlength=str2.length;
	if(newlength!=confirmlength)
	{
			return false;
	}
	else
	{
			return true;;
	}
}
function checkOldAndNewPassword(newpassword,confirmpassword)
{
		for(var count=0;count<newpassword.length;count++)
		{
				if(newpassword.charAt(count)!=confirmpassword.charAt(count))
				{
						return "You Must Give Newpassword and Confirmpassword same\n";
				}
		}
		return "";
}
function checkpassword(newpwd,confirmpwd,msg)
{
	var newpassword=newpwd.value;
	var confirmpassword=confirmpwd.value;
	
	newpassword=trim(newpassword);
	confirmpassword=trim(confirmpassword);
	msg+=checklength(newpassword,confirmpassword);

	if(msg!="")
	{
			if(blnflg)
			{
					setfocus(newpwd);
			}
			return msg;
	}
	else
	{
		msg+=checkOldAndNewPassword(newpassword,confirmpassword);
		if(msg!="")
		{
			if(blnflg)
			{
					setfocus(newpwd);
			}
			return msg;
		}
	}
	return "";
}
/* End of password checking */
/* This function allow to enter only digits and characters */
function onlydigitsandchars(str)
{
		var re = new RegExp("([A-Za-z0-9]+)");
		return (re.exec(str)!=null && RegExp.$1==str);
}
	
function checkName(val,defaultvalue)
{
	var number='0123456789.';
	var char,isnumber=false;
	if(val=="")
	{
		return false;
	}
	if(val==defaultvalue)
	{
			return false;
	}
	
}
function validate_object_field(field,msg,checkingfor)
{
	if(checkingfor=="radio")
	{
		isselect=checkradiovalidation(field);
		if(isselect==false)
		{
			return msg+="\n";
		}
		else
		{
				return "";
		}
	}
	var fieldValue=field.value;				
	if(checkingfor!="checkboxrequired")
	{
		fieldValue=trim(fieldValue);
	}
	if(checkingfor=="dropdown")
	{
		if(fieldValue==0 && fieldValue!="")
		{
			if(blnflg)
			{
				setfocus(field);	
			}
			return msg+="\n";
		}
		else
		{
			return "";
		}
	}
	if(checkingfor=="Startwithcharacter")
	{			
		defaultvalue=validate_object_field.arguments[3];
		isvalid=checkName(fieldValue,defaultvalue);
		if(isvalid==false)
		{
			if(blnflg)
			{
				setfocus(field);	
			}
			return msg+="\n";
		}
		else
		{
				return "";
		}
	}	
	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")
	{		
		if(fieldValue=="")
		{
			if(blnflg)
			{
				setfocus(field);	
			}
			return msg+="\n";
		}
			isvalid=ValidInteger(fieldValue);
			if(isvalid)
			{
					return "";
			}
			else
			{
				if(blnflg)
				{
					setfocus(field);	
				}
				return msg+="\n";
			}
	}
	else if(checkingfor=="date")
	{
			if(checkingfor!=fieldValue)
			{
					isvalid=validateDate(fieldValue);
					alert(isvalid);
			}
	}
	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";
			}
	}
}

/* This function check whether mailid and confirm mailid are same or not*/

function match_email(Email_addressfield,confirm_emailfield,msg)
{
	var mailid=Email_addressfield.value;
	var confirmmailid=confirm_emailfield.value;
	mailid=trim(mailid);
	confirmmailid=trim(confirmmailid);
	isvalid=checklength(mailid,confirmmailid)
	if(!isvalid)
	{
		if(blnflg)
		{
			setfocus(Email_addressfield);	
		}
		return "Email and Confirm email must match\n";
	}
	else
	{
		for(var count=0;count<mailid.length;count++)
		{
				if(mailid.charAt(count)!=confirmmailid.charAt(count))
				{
					if(blnflg)
					{
						setfocus(Email_addressfield);	
					}
					return "Email and Confirm email must match\n";
				}
		}
	}
		return "";
}

/* this function will check radio button checked or not*/
function checkradiovalidation(field)
{
		var x=field.length;
		for(i=0;i<x;i++)
		{
				if(field[i].checked==true)
				{
						return true;
				}
		}
		return false;
}
function validateDate(fieldValue)
{

	var str=fieldValue;
	var str=str.split('-');
	var year=str[0];
	var month=str[1];
	var day=str[2];
	if(year.length<4 || year.length>4)
	{
			return false;
	}
	else if(month.length<2 || month.length>2)
	{
			return false;
	}
	else if(day.length<2 || day.length>2)
	{
			return false;
	}
	else
	{
		if(ValidInteger(year) && ValidInteger(month) && ValidInteger(day))
		{
				return true;
		}
		else
		{
				return false;
		}
	}
}

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;
}