//------------------------------------------------------------------------------
function validateValue( strValue, strMatchPattern ) 
{
	var objRE = new RegExp( strMatchPattern);
 	//check if string matches pattern
	return objRegExp.test(strValue);
}
//------------------------------------------------------------------------------
function isEmpty(eltObj)
{
	strValue	=	trimAll(eltObj.value);
	if(strValue.length > 0)
	{
		return false;
    }
	return true;
}
//------------------------------------------------------------------------------
function isAlpha(eltObj)
{
	strValue	=	eltObj.value;
	pattern		=	'^[a-zA-Z]+$';
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue))
	{
		return false;
	}
	return true;
}
//------------------------------------------------------------------------------
function isAlpha1(eltObj)
{
	strValue	=	eltObj.value;
	pattern		=	'^[a-zA-Z ]+$';
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue))
	{
		return false;
	}
	return true;
}
//------------------------------------------------------------------------------
function isNumeric(eltObj)
{
	strValue	=	eltObj.value;
	var pattern		=	'^[0-9]+$';
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue))
	{
		return false;
	}
	return true;
}
//------------------------------------------------------------------------------
function isAlphaNumeric(eltObj)
{
	strValue	=	eltObj.value;	
	pattern		=	'^[a-zA-Z0-9 ]+$';
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue))
	{
		return false;
	}
	return true;
}
//------------------------------------------------------------------------------
function isPhone(eltObj)
{
	strValue	=	eltObj.value;
	pattern		=	'^[0-9\-()+ ]+$';
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue) || strValue.length < 10)
	{
		return false;
	}
	return true;
}
//------------------------------------------------------------------------------
function isEmailAddl(eltObj)
{
	strValue	=	eltObj.value;
	var objRE	=	/^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i;
	if(!objRE.test(strValue))
	{
		return false;
	}
	return true;
}
//------------------------------------------------------------------------------
function isAmount(eltObj)
{
	strValue	=	eltObj.value;
	var pattern = /^[0-9]+(.){0,1}([0-9]*)$/i;
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue))
	{
		return false;
	}
	return true;
}
//------------------------------------------------------------------------------
function isAmountOld(fld, Label)
{
 var ValidChars = "0123456789.";
 var Char;
 if(fld.value == ".") { alert('Invalid Chars in '+ Label + ' field'); fld.focus(); return false; }
 for (i = 0; i < fld.value.length; i++)
 {
    Char = fld.value.charAt(i);
    if(ValidChars.indexOf(Char) == -1)
    {
       alert('Invalid Chars in '+ Label + ' field');
       fld.focus();
       return false;
    }
 }
 return true;
}
//------------------------------------------------------------------------------
//returns the no of check boxes checked in a form
function BoxesChecked(form, eltname)
{
  a = 0;
  for(var i = 0; i < form.elements.length; i++)
  {
   var e = form.elements[i];
   if(e.type == "checkbox" && e.name == eltname && e.checked)
   {
    a++;
   }
  }
  return a;
}
//------------------------------------------------------------------------------
//returns the no of radio boxes checked
function RadioCheck(form, eltname)
{
  a = 0;
  for(var i = 0; i < form.elements.length; i++)
  {
   var e = form.elements[i];
   if(e.type == "radio" && e.name == eltname && e.checked)
   {
    a++;
   }
  }
  return a;
}
//------------------------------------------------------------------------------
//  Check / Un Check all Check boxes
//  onclick="Checkall(this, document.form, 'cbox[]');"
function Checkall(chk, form, eltname)
{
 for (var i=0; i < form.elements.length; i++)
 {
  var e = form.elements[i];
  if (e.type == "checkbox" && e.name == eltname){ e.checked = chk.checked;}
 }
}
//------------------------------------------------------------------------------
//alerts an error if the first item is selected or none selected in a listbox
function chkListbox(item, Label)
{
  if(item.options.selectedIndex == 0 || item.options.selectedIndex == -1)
  {
    alert('Please select ' + Label);
    item.focus();
    return false;
  }
  return true;
}
//------------------------------------------------------------------------------
//if(form.elements['toinv[]'].options.selectedIndex == -1) { alert('Pls select atleast one item'); return false; }
//alerts to chk at least one item from a listbox which has multiple atrrib
function chkListboxMultiple(form, eltname, Label)
{
 for(var i = 0; i < form.elements.length; i++)
 {
  var e = form.elements[i];
  if(e.type == "select-multiple" && e.name == eltname)
  {
   if(e.options.selectedIndex == -1)
   {
     alert('Please select atleast one ' + Label);
     return false;
   }
   else
   {
    return true;
   }
  }
 }
}
//------------------------------------------------------------------------------
//returns the no of items selected from a listbox which has multiple attrib
function itemsSelected(form, eltname)
{
  a = 0;
  for(var i = 0; i < form.elements.length; i++)
  {
   var e = form.elements[i];
   if(e.type == "select-multiple" && e.name == eltname)
   {
    for(j = 0; j < e.options.length; j++)
    {
      if(e.options[j].selected)
      {
        a++;
      }
    }
   }
  }
  return a;
}
//------------------------------------------------------------------------------
function makeItemsSelected(form, eltname)
{
  for(var i = 0; i < form.elements.length; i++)
  {
   var e = form.elements[i];
   if(e.type == "select-multiple" && e.name == eltname)
   {
    for(j = 0; j < e.options.length; j++)
    {
      e.options[j].selected	=	true;
    }
   }
  }
}
//------------------------------------------------------------------------------
//returns the radio box value of an element
function getRadioValue(radio)
{
 for (var i = 0; i < radio.length; i++)
 {
 	if (radio[i].checked) { break; }
 }
 return radio[i].value;
}
//------------------------------------------------------------------------------
function getSelectedItemText(item)
{
	return item.options[item.selectedIndex].text;
}
//------------------------------------------------------------------------------
function trimAll(strValue)
{
   var objRegExp = /^(\s*)$/;

   //check for all spaces
   if(objRegExp.test(strValue)) 
   {
       strValue = strValue.replace(objRegExp, '');
       if( strValue.length == 0)
          return strValue;
   }
    
   //check for leading & trailing spaces
   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
   if(objRegExp.test(strValue)) 
   {
       //remove leading and trailing whitespace characters
       strValue = strValue.replace(objRegExp, '$2');
   }
   return strValue;
}
//------------------------------------------------------------------------------
function rTrim( strValue ) 
{
	var objRegExp = /^([\w\W]*)(\b\s*)$/;
 
    if(objRegExp.test(strValue)) 
	{
       //remove trailing a whitespace characters
       strValue = strValue.replace(objRegExp, '$1');
    }
	return strValue;
}
//------------------------------------------------------------------------------
function lTrim( strValue ) 
{
	var objRegExp = /^(\s*)(\b[\w\W]*)$/;
 
    if(objRegExp.test(strValue)) 
	{
       //remove leading a whitespace characters
       strValue = strValue.replace(objRegExp, '$2');
    }
	return strValue;
}
//------------------------------------------------------------------------------
function selectAll(fld)
{
	for(i=0;i<fld.length;i++)
		fld[i].checked=true;
}
//------------------------------------------------------------------------------
function selectNone(fld)
{
	for(i=0;i<fld.length;i++)
		fld[i].checked=false;
}
//------------------------------------------------------------------------------
function isPositiveInt(fld)
{
	if(parseInt(fld.value)>0)
		return true;
	return false;
}
//------------------------------------------------------------------------------
function isPositiveFloat(fld)
{
	return isNotNegativeFloat(fld)&& (parseFloat(fld.value)>0);	
}
//------------------------------------------------------------------------------
function isNotNegativeFloat(fld)
{
	var r1=new RegExp("^[0-9]*[.]{0,1}[0-9]*$")
	return r1.test(fld.value);
}
//------------------------------------------------------------------------------
function isNotNegativeInt(fld)
{
	var r1=new RegExp("^[0-9]*$")
	return r1.test(fld.value);
}
//------------------------------------------------------------------------------
function isPincode(fld)
{
	var r1 = new RegExp("^[1-9][0-9]{5}$")
	return r1.test(fld.value);
}
//------------------------------------------------------------------------------
function isPeriod(fld)
{
	var r1 = new RegExp("^[1-9][0-9]{2}$")
	return r1.test(fld.value);
}
//------------------------------------------------------------------------------
function isFloat(fld)
{
	var r1=new RegExp("^[\-\+]{0,1}[0-9]*[.]{0,1}[0-9]*$")
	return r1.test(fld.value);
}
//------------------------------------------------------------------------------
function isInt(fld)
{
	i=parseInt(fld.value);
	if(i>0 ||i==0 || i<0)
		return true;
	return false;
}
//------------------------------------------------------------------------------
function isSpace(fld)
{
	var r1 = new RegExp("^[ ]+$");
	return r1.test(fld.value);
}
//------------------------------------------------------------------------------


/*pages*/

function validate(frm)
{
	
	if(frm.fname.value==""){
		alert("Please enter your First Name");
		frm.fname.focus();
		return false;
	}	
	if(frm.lname.value==""){
		alert("Please enter your Last Name");
		frm.lname.focus();
		return false;
	}
	if(frm.street.value==""){
		alert("Please enter your Street Address");
		frm.street.focus();
		return false;
	}
	if(frm.city.value==""){
		alert("Please enter your City");
		frm.city.focus();
		return false;
	}
	if(frm.state.value==""){
		alert("Please enter your State/ Province");
		frm.state.focus();
		return false;
	}
	if(frm.zipcode.value==""){
		alert("Please enter your Postal Code");
		frm.zipcode.focus();
		return false;
	}
	if(frm.zipcode.value!="")
	{
		if(isNaN(frm.zipcode.value))
		{
			alert("Please enter valid Postal Code");
			frm.zipcode.focus();
			frm.zipcode.select();
			return false;
		}
	}
	if(frm.phone.value==""){
		alert("Please enter your Phone Number");
		frm.phone.focus();
		return false;
	}
	if(frm.phone.value!="")
	{
		if(!isNum(frm.phone))
		{
			alert("Please enter valid Phone Number");
			frm.phone.focus();
			return false;
		}
	}
	if(frm.email.value==""){
		alert("Please enter your E-Mail id");
		frm.email.focus();
		return false;
	}
	else{
		if(!isEmail(frm.email.value)){
			alert("Please enter valid E-Mail id")
			frm.email.focus();
			return false;
		}	
	}

}

function validate1(frm)
{
	if(frm.email.value==""){
		alert("Please enter your E-Mail id");
		frm.email.focus();
		return false;
	}
	else{
		if(!isEmail(frm.email.value)){
			alert("Please enter valid E-Mail id")
			frm.email.focus();
			return false;
		}	
	}
	if(frm.reemail.value==""){
		alert("Please Re-enter your E-Mail id");
		frm.reemail.focus();
		return false;
	}
	else{
		if(!isEmail(frm.reemail.value)){
			alert("Please Re-enter valid E-Mail id")
			frm.reemail.focus();
			return false;
		}	
	}
	if(frm.email.value!=frm.reemail.value)
	{
	
		alert("Please enter same E-Mail id")
		frm.reemail.focus();
		return false;
	}

}
function validate2(frm)
{
	if(frm.ccname.value==""){
		alert("Please enter your name on credit card");
		frm.ccname.focus();
		return false;
	}
	if(frm.cctype.value==""){
		alert("Please select your credit card type");
		frm.cctype.focus();
		return false;
	}
	if(frm.ccnumber.value==""){
		alert("Please enter your credit card number");
		frm.ccnumber.focus();
		return false;
	}
	if(frm.ccnumber.value!="")
	{
		if(isNaN(frm.ccnumber.value))
		{
			alert("Please enter valid credit card number");
			frm.ccnumber.focus();
			frm.ccnumber.select();
			return false;
		}
	}
	if(frm.seccode.value==""){
		alert("Please enter your security code");
		frm.seccode.focus();
		return false;
	}
	if(frm.expdate.value==""){
		alert("Please select your expiration date");
		frm.expdate.focus();
		return false;
	}
	
	
	if(frm.fname.value==""){
		alert("Please enter your First Name");
		frm.fname.focus();
		return false;
	}	
	if(frm.lname.value==""){
		alert("Please enter your Last Name");
		frm.lname.focus();
		return false;
	}
	if(frm.street.value==""){
		alert("Please enter your Street Address");
		frm.street.focus();
		return false;
	}
	if(frm.city.value==""){
		alert("Please enter your City");
		frm.city.focus();
		return false;
	}
	if(frm.state.value==""){
		alert("Please enter your State/ Province");
		frm.state.focus();
		return false;
	}
	if(frm.zipcode.value==""){
		alert("Please enter your Postal Code");
		frm.zipcode.focus();
		return false;
	}
	if(frm.zipcode.value!="")
	{
		if(isNaN(frm.zipcode.value))
		{
			alert("Please enter valid Postal Code");
			frm.zipcode.focus();
			frm.zipcode.select();
			return false;
		}
	}
}

function isNum(fld)
	{
		return checkfld(fld,"0123456789- ");
	}

	function checkfld(fld,str1)
	{
		str=new String(str1);
		if (fld.value.length==0) return true;
		for (var i=0;i<fld.value.length;i++)
		{
			found=false;
			for (var j=0;j<str.length;j++)
				if((fld.value.substring(i,i+1))==(str.substring(j,j+1)))
				{
					found=true;
					break;
				}
			if (!found)
			{
				return false;
			}
		}
		return true;
	}

	function isEmail (s)
	{
		var i = 1;
		var sLength = s.length;

		while ((i < sLength) && (s.charAt(i) != "@"))
		{ i++
		}
		if ((i >= sLength) || (s.charAt(i) != "@")) return false;
		else i += 2;
		while ((i < sLength) && (s.charAt(i) != "."))
		{ i++
		}
		if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
		else return true;
	}



