//Standard Rules
var  objVarcharWithSpace 	= ".0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz ";
var objUsername 		= ".0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";
var objAlphaNumeric 	= "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";
var objNumber   		= ".0123456789";
var objWholeNumber   = "0123456789";
var objWholeNumberNonZero   = "123456789";
var objTelephone     = "-()0123456789";
var objName     		= " .0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'-";
var objAlpha 			="ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";
var objSpecialChar 		= "@&$#()=/!*ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz0123456789,'- :.+%/";
var objZipCode 				= "0123456789 ";
var objOnlyAlpha 			= "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz ";
var objTime 			= "0123456789:.- ";
var objUrl					= "/:.-\ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
var objEmail		=".@-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";
var usernameMaxLength=20;
var varSMaxLength=50;
var varMMaxLength=100;
var varLMaxLength=250;
var objSeatingCapacity		=	"0123456789";
var seatingcapacityLength	=	3;
function isRule(oComp, sRule, nLength, fdecimal, minLength,fieldName,maxLength)
{
	if(fdecimal == "" || typeof(fdecimal) == "undefined")
	{
		fdecimal = false;
	}

	//If the object is not specified return false
	if (typeof(oComp) == 'undefined' || oComp == null || oComp == '')
	{
		alert('Error: Input object not specified.');
		return false;
	}
	//If neither rule nor max length is specified, return false
	else if (typeof(sRule) == 'undefined' && typeof(nLength) == 'undefined')
	{
		alert('Error: No rule/maximum length for input object specified.');
		return false;
	}

	var noErrorFlg = true;

	//If object is specified and either of rule is specified,
	if(typeof(sRule) != 'undefined' && sRule != null)
	{
		var temp;
		sRule = sRule + "";
		var discardChars = false;
		if(sRule.length > 0 && sRule.charAt(0) == "~")
		{
			sRule = sRule.substring(1);
			discardChars = true;
		}

		if(typeof(oComp) == "undefined" || typeof(sRule) == "undefined")
			return false;

		for (var i = 0;i < oComp.value.length;i++)
		{
			temp = oComp.value.charAt(i);

			if((!discardChars && sRule.indexOf(temp) == -1) || (discardChars && sRule.indexOf(temp) >= 0))
			{
//				alert("Field disobeys entry rule.  Following are the valid characters:\n" + sRule);
				alert("Invalid Character!");
				oComp.value = oComp.value.substring(0,i);// + (oComp.value.length > i ? oComp.value.substring(i+1):"");
				noErrorFlg = false;
				break;
			}
		}
	}
	if(nLength)
	{
		if(fdecimal)
		{
			nLength -= fdecimal;
			var dp = oComp.value.indexOf(".");
			var p1;
			var p2 = "";;
			if(dp >= 0)
			{
				p1 = oComp.value.substring(0,dp);
				p2 = oComp.value.substring(dp+1);
			}
			else
			{
				p1 = oComp.value;
			}
			if(p1.length > nLength)
			{
				oComp.value = oComp.value.substring(0,nLength);
				return noErrorFlg;
			}
			for(var i = 0;i < p2.length;i++)
			{
				var ch = p2.charAt(i);
				if(ch < '0' || ch > '9')
				{
					oComp.value = p1 + "." + p2.substring(0,i);
					return noErrorFlg;
				}
			}
			if(p2.length > fdecimal)
			{
				oComp.value = p1 + "." + p2.substring(0,fdecimal);
			}
		}
		else if(oComp.value.length > nLength)
		{
			oComp.value = oComp.value.substring(0,nLength);
		}
		else if(minLength && oComp.value.length < minLength)
		{
			alert("Please Enter atleast "+minLength +" Characters "+ "for "+fieldName+ "!");
			oComp.focus();
			noErrorFlg = false;
		}
		else if(maxLength && oComp.value.length >= maxLength)
		{
			alert("Please Enter less then "+maxLength +" Characters "+ "for "+fieldName+ "!");
			oComp.focus();
			noErrorFlg = false;
		}
	}
	return noErrorFlg;
}
//+--------------------------------------------------------------------------

function isEmail(newstr)
{
	var emailexp = /^[a-z][a-z_0-9\-\.]+@[a-z_0-9\-\.]+\.[a-z]{2,5}$/i

	//Check that the email entry is valid
	if (!emailexp.test(newstr) || newstr.indexOf("..") >= 0)
	{
		return false;
	}
	return true;
}

String.prototype.trim = function()
{
	var retstr = this.replace(/^\s+/,"");
	retstr = retstr.replace(/\s+$/,"");
	return retstr;
}
function clearValue(elementobj)
{
	if(elementobj && elementobj.value!="")
		elementobj.value="";
}
function trimText(strComp)
{
	ltrim = /^\s+/
	rtrim = /\s+$/
	strComp = strComp.replace(ltrim,'');
	strComp = strComp.replace(rtrim,'');
	return strComp;
}
function checkDecimals(frmObj) {
	
	fieldValue=frmObj.value;
	
	decallowed = 4;  // how many decimals are allowed?
	if (isNaN(fieldValue) || fieldValue == "") {
	alert("Please Enter Valid Value.");
	frmObj.value="";	
	frmObj.name.focus();
	return false;
	}
	else {
	if (fieldValue.indexOf('.') == -1) fieldValue += ".";
	dectext = fieldValue.substring(fieldValue.indexOf('.')+1, fieldValue.length);
	
	if (dectext.length > decallowed)
	{
	alert ("Please Enter Valid Value.");
	frmObj.value="";
	
	frmObj.name.focus();
	return false;
		  }
	else {
				return true;
		  }
	   }
	}

function newWindow(mypage,myname,w,h,features) {
  if(screen.width){
  var winl = (screen.width-w)/2;
  var wint = (screen.height-h)/2;
  }else{winl = 0;wint =0;}
  if (winl < 0) winl = 0;
  if (wint < 0) wint = 0;
  var settings = 'height=' + h + ',';
  settings += 'width=' + w + ',';
  settings += 'top=' + wint + ',';
  settings += 'left=' + winl + ',';
  settings += features;
  win = window.open(mypage,myname,settings);
  win.window.focus();
}
