	//-------------------------------------------------------------------
// getElementIndex(input_object)
//   Pass an input object, returns index in form.elements[] for the object
//   Returns -1 if error
//-------------------------------------------------------------------


function trimAll(sString)
	{
		while (sString.substring(0,1) == ' ')
		{
		sString = sString.substring(1, sString.length);
		}
		
		while (sString.substring(sString.length-1, sString.length) == ' ')
		{
		sString = sString.substring(0,sString.length-1);
		}
		return sString;
	}
	

function isRule(oComp, sRule, nLength, fdecimal)
{
 if(fdecimal == "" || typeof(fdecimal) == "undefined")
 {
  fdecimal = false;
 }
 //alert(document.form3.qty141);
 //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);
  }
 }
 return noErrorFlg;
}


function trimText(strComp)
{
 var ltrim = /^\s+/
 var rtrim = /\s+$/
 strComp = strComp.replace(ltrim,'');
 strComp = strComp.replace(rtrim,'');
 return strComp;
}
function isValidEMail(str)
{
 var emailexp = /^[a-z][a-z_0-9\-\.]+@[a-z_0-9\-\.]+\.[a-z]{2,4}$/i

 //Check that the email entry is valid
 if (!emailexp.test(str) || str.indexOf("..") >= 0)
 {
  return false;
 }
 return true;
}
function trim(s)
{
 while (s.substring(0,1) == ' ') {
 s = s.substring(1,s.length);
 }
 while (s.substring(s.length-1,s.length) == ' ') {
 s = s.substring(0,s.length-1);
 }
 return s;
}
function IsNumeric(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++)
   {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
         IsNumber = false;
   }
   return IsNumber;
}

function IsPrice(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++)
   {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
         IsNumber = false;
   }
   return IsNumber;
}

function getElementIndex(obj) 
	{
	var theform = obj.form;
	for (var i=0; i<theform.elements.length; i++) 
		{
		if (obj.name == theform.elements[i].name) 
			{return i;}
		}
		
	return -1;
	}

// -------------------------------------------------------------------
// tabNext(input_object)
//   Pass an form input object. Will focus() the next field in the form
//   after the passed element.
//   a) Will not focus to hidden or disabled fields
//   b) If end of form is reached, it will loop to beginning
//   c) If it loops through and reaches the original field again without
//      finding a valid field to focus, it stops
// -------------------------------------------------------------------
function tabNext(obj) 
	{
	if (navigator.platform.toUpperCase().indexOf("SUNOS") != -1) 
		{obj.blur(); return; }

	var theform = obj.form;
	var i = getElementIndex(obj);
	var j=i+1;

	if (j >= theform.elements.length) 
		{ j=0; }
	if (i == -1) 
		{ return; }
		
	while (j != i) 
		{
		if ((theform.elements[j].type!="hidden") && 
		    (theform.elements[j].name != theform.elements[i].name) && 
			(!theform.elements[j].disabled)) 
			{
			theform.elements[j].focus();
			break;
			}
		
		j++;
		
		if (j >= theform.elements.length) 
			{ j=0; }
		}
	}

function jump(obj)
	{
	if(obj.value.length == obj.maxLength)
		{ tabNext(obj); }
	}
//======= Auto Tab Ends =========================================================================
//-------------------------------------------------------------------------------------------------
//---> Alltrim an Expression
//-------------------------------------------------------------------------------------------------

// Function trim : deletes the leading and ending blank spaces
function trim(strComp)
	{
	ltrim = /^\s+/
	rtrim = /\s+$/
	strComp = strComp.replace(ltrim,'');
	strComp = strComp.replace(rtrim,'');
	return strComp;
	}

//-------------------------------------------------------------------------------------------------
//---> Required Fields
//-------------------------------------------------------------------------------------------------

// Function to require fields
function isRequired(formObject, fieldDescription) 
	{
	var tempFormValue ;
	var strError ="";	
	var iFocus =-1;

	for (var i =0; i< isRequired.arguments.length;i=i+2)
	{
	if(typeof(isRequired.arguments[i]) == 'undefined')
		{
		//alert('IsRequired-Error: Parameter no.'+(i+1)+' is not an object.')
		return false;
		}
		
	tempFormValue =trim(isRequired.arguments[i].value);
	
	if (tempFormValue.length < 15)
		{deleteLoop = tempFormValue.length}
	else
		{deleteLoop = 15}
		for (var j = 0; j < deleteLoop; j++) 
			{tempFormValue = tempFormValue.replace(/ / , "");
		}

	if (tempFormValue.length == 0)
		{	
		strError = strError+ isRequired.arguments[i+1] + "\n"
		if (iFocus ==-1)
			iFocus = i;
		}
	}

	if (strError.length != 0){	
		alert('- Following Fields Are Required.\n\n' + strError)
		
		isRequired.arguments[iFocus].focus()
		return(false)
	}
	else
		return(true)
	}

function isRequired1(formObject, fieldDescription) 
	{
	var tempFormValue ;
	var strError ="";	
	
	for (var i =0; i< isRequired1.arguments.length;i=i+2)
	{
	if(typeof(isRequired1.arguments[i]) == 'undefined')
		{
			return false;
		}
		
	tempFormValue =trim(isRequired1.arguments[i].value);
	
	if (tempFormValue.length < 15)
		{deleteLoop = tempFormValue.length}
	else
		{deleteLoop = 15}
		for (var j = 0; j < deleteLoop; j++) 
			{tempFormValue = tempFormValue.replace(/ / , "");
		}

		if (tempFormValue.length == 0)
		{	
			strError = strError+ isRequired1.arguments[i+1] + "\n"
		}
	}

	if (strError.length != 0){	
		alert('- Following Fields Are Required.\n\n' + strError)
			return(false)
	}
	else
		return(true)
	}

//-------------------------------------------------------------------------------------------------
//---> Validate SElection boxes
//-------------------------------------------------------------------------------------------------

// validate the select 
function chkSel(obj,strMsg)
{
	var iFocus =-1;
	var strError="";

	for(var i=0;i<chkSel.arguments.length;i=i+2)
	{
			if(chkSel.arguments[i].value=="" || chkSel.arguments[i].value=="-1")
			{
				
				strError = strError+chkSel.arguments[i+1] + "\n"
					if (iFocus ==-1)
							iFocus = i;					

			}
	}
	if (strError.length != 0)
	{	
		alert('- Following Fields Are Required.\n\n' + strError);
		chkSel.arguments[iFocus].focus()
		return false;

	}
	else
		return true;

}

// Function isEmail: Validates if the value of 'IsItReal' is a valid email address
function isEmail(IsItReal,IsItRealval,name)
	{
		if (IsItRealval != "")
		{
			var valEmail = IsItRealval;
			var reg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
			if(reg.test(valEmail))
				return true;
			else
			{
				alert('- Invalid '+name+'.')
				IsItReal.focus();
				return false;
			}
		
		}
		else
		{
			alert('- '+name+' is required.')
			IsItReal.focus();
			return false;
		}
			
	}

function isDate(IsItReal)
	{
		if (IsItReal.value != "")
		{
			var valDate = IsItReal.value;
			var reg = /^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.]((19|20)[0-9][0-9]+)$/;
			if(reg.test(valDate))
				return true;
			else
			{
				alert('- Invalid Date Format\n\nPlease Enter Date in mm/dd/yyyy Format, e.g."07/28/2006"')
				IsItReal.focus();
				IsItReal.select();
				return false;
			}
		}
		else
		{	
			return true;
		}
	}

function datecompare(date1,date2)
	{
		//datecompare function compare date1 >= date2 then true or false
		var datefrom;
		var dateto;

		datefrom = date1.split("/");
		dateto = date2.split("/");
		if (datefrom[2] < dateto[2])
		{	
			return false;
		}
		else 
		{
			if (datefrom[2] > dateto[2])
			{
				return true;
			}
			else
			{
				// year same then compare month
				if (datefrom[0] < dateto[0])
				{	
					return false;
				}
				else
				{
					if (datefrom[0] > dateto[0])
					{
						return true;
					}
					else
					{
						// month same then compare day
						if (datefrom[1] < dateto[1])
						{	
							return false;
						}
						else
						{
							/*if (datefrom[1] > dateto[1])
							{	
								return true;
							}
							else
							{
								return false;
							}*/
							return true;
						}
					}
				}
			}
		}
	}
	
function validatekey()
	{
		if((window.event.keyCode < 46) || (window.event.keyCode >57) || (window.event.keyCode == 47))
			window.event.keyCode=null;
	}
	
function noenter()
	{
		if(window.event.keyCode == 13)
			window.event.keyCode=null;
	}

function checknum(obj)
	{
	
		if( isNaN(obj.value) || (trimAll(obj.value) == "" && obj.value != ""))
		{
			alert("- Please enter numeric value!");
			obj.value="";
			obj.focus();
		}
		else if(obj.value < 0)
		{
			alert("- Minus value not allow!");
			obj.value="";
			obj.focus();
		}
		else
		{
			return true;
		}
		
	}

function isWholenum()
	{
	 
		if((window.event.keyCode < 48) || (window.event.keyCode >57))
		{
			//alert('Invalid Number!')
			window.event.keyCode=null;
		}
	}	
	
function checklen(obj,intlen)
	{
		if (obj.value.length>intlen)
		{
			alert("- Total Character Should Be Less Then " + intlen + "!");
			obj.focus();
		}
	}	
	
function isImage(obj)
	{
		if (obj.value.length>0)
		{
			if (obj.value.length>4)
			{
				var ext = obj.value.substring(obj.value.length-3,obj.value.length);
				if (ext == 'jpg' || ext == 'JPG' || ext == 'jpeg' || ext == 'JPEG' || ext == 'gif' || ext == 'GIF' || ext == 'png' || ext == 'PNG')
				{
					return true;
				}
				else
				{
					alert('- Upload Only .jpg,.gif Or .png File!')
					obj.value="";
					obj.focus();
					obj.select();
					return false;
				}
			}
			else
			{
				alert('- Upload Only .jpg,.gif Or .png File!')
				obj.value="";
				obj.focus();
				obj.select();
				return false;
			}
		}
	}
function isPDF(obj)
	{
		if (obj.value.length>0)
		{
			if (obj.value.length>4)
			{
				var ext = obj.value.substring(obj.value.length-3,obj.value.length);
				if (ext == 'pdf' || ext == 'PDF')
				{
					return true;
				}
				else
				{
					alert('- Upload Only .pdf File!')
					obj.value="";
					obj.focus();
					obj.select();
					return false;
				}
			}
			else
			{
				alert('- Upload Only .pdf File!')
				obj.value="";
				obj.focus();
				obj.select();
				return false;
			}
		}
		else
			return true;
	}
function isPhone(IsItReal,strErr)
	{

		if (IsItReal.value != "")
		{
			var valPhone = IsItReal.value;
			var reg = /^((\(\d{3,4}\)|\d{3,4}[-()])\d{4,9}([-()]\d{1,5}|\d{0}))|(\d{4,12})$/;
			if(reg.test(valPhone))
				return true;
			else
			{
				alert('- Invalid Phone No!')
				IsItReal.focus();
				IsItReal.select();
				return false;
			}
		}
		else
		{	
			return true;
		}
	}
	
function isZip(IsItReal)
{
	if (IsItReal.value != "")
	{
		var valZip = IsItReal.value;
		//var reg = /^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$/;
		var reg = /^\d{5}[- ]\d{4}|\d{5,6}$/;
		if(reg.test(valZip))
			return true;
		else
		{
			alert('- Invalid Zip Code!')
			IsItReal.focus();
			IsItReal.select();
			return false;
		}
	}
	else
	{
		return true;
	}
}
function isPrice(IsPrice)
{
	
	if (IsPrice.value != "")
	{
		var valPrice = IsPrice.value;
		//var reg = /^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$/;
		var reg = /^\d+(\.\d{2})?$/;
		if(reg.test(valPrice))
			return true;
		else
		{
			alert('- Invalid Price!')
			IsPrice.focus();
			IsPrice.select();
			return false;
		}
	}
	else
	{	
		return true;
	}
}
function isBlank(obj,objval,msg)
{
	if(objval == "")
	{
		alert("- " + msg + " is required.");
//		alert(msg + " is Required.");
		obj.focus();
		return false;
	}
	else
	return true;
}

// new added - for postal code in add restaurant
function isAlphaNumeric(IsItReal,msg)
{
	IsItReal = eval(IsItReal);	
	var valNum = IsItReal.value;
	if(valNum!='')
	{
		var reg = /[^0-9a-zA-Z]/;
		if(reg.test(valNum))
		{
			alert('- Invalid Postal Code!');
			IsItReal.focus();
			IsItReal.select();
			return false;
		}
		else
		{		
			return true;
		}
	}
	else
	{
		alert("- " + msg + " is required.");
		IsItReal.focus();
		return false;
	}	
}

function alphaNumericCheck(sText,obj,type){
	var regex=/^[0-9A-Za-z_]+$/; //^[a-zA-z]+$/
	if(regex.test(sText))
	{
		//alert("good");
		return true;
	} else {
		//alert("Username should contain only alphanumerics (0-9) or characters (a-z) or underscore( _ ).");
		message = "- Username should contain only alphanumerics (0-9) or characters (a-z) or underscore( _ ).";
		strobjid = obj.id;
		if(type == 'admin')
		{
			displayStaticMessage("<h1>"+title+"</h1><p>"+message+"</p><p align = center><a href='javascript:;' onclick='closeMess(strobjid);'>Close</a>",false);
		}
		else
		{
			displayStaticMessage("<h1>"+title+"</h1>&nbsp;"+message+" <br><p align = 'center'><a href='javascript:;' onclick='closeMess(strobjid);'>Close</a></p>",false);
		}
		return false;
	}
}
