<!--- begin
function validEmail( email )
{   
   var reEmail = /^[0-9A-Za-z\._-]+\@[0-9A-Za-z\._-]+\.[A-Za-z]+$/;
   return reEmail.test( email );
}
function checkField( field, msg )
{
   if( field.value == "" )
   {
      alert( msg + " is a required field." );
      field.focus();
      return false;
   }
   return true;
}
function checkSelect( field, msg )
{
   // To make it easier, just check to see if the index is 0

   if( field.selectedIndex == 0 )
   {
      alert( msg + " is a required field." );
      field.focus();
      return false;
   }
   return true;
}
function checkPaymentForm( form )
{
   if( form.PAYTYPE != null )
   {
      var cardType = form.PAYTYPE[form.PAYTYPE.selectedIndex].value;
      if( cardType == "" )
      {
         alert( "Please select payment method." );
         form.PAYTYPE.focus();
         return false;
      }

      if( cardType == "COD" ) 
         return true;

      if( cardType == "AMEX" )       cardType=1;
      if( cardType == "VISA" )       cardType=2;
      if( cardType == "MASTERCARD" ) cardType=3;
      if( cardType == "DINERS" )     cardType=4;
      if( cardType == "ENROUTE" )    cardType=5;

      if( !checkField( form.CardName, "Credit Card Name" ) )
         return false;
      if( !checkField( form.CardNum, "Credit Card Number" ) )
         return false;
  
      return checkCreditCard( cardType, form.CardNum.value );
   }
   return true;
}

function IsInteger( number )
{
   var val = parseInt( number );
   return (isNaN( val ) == false);
}

function checkCreditCard( index, cardNo )
{
   var st = "";
   for( i=0; i<cardNo.length; i++ )
   {
      digit = cardNo.substring( i, i+1 );
      if( IsInteger( digit ) )
         st += digit;
   }
   cardNo = st;

   if( (index == 1) && isAmericanExpress( cardNo ) )
      return true;
   if( (index == 2) && isVisa( cardNo ) )
      return true;
   if( (index == 3) && isMasterCard( cardNo ) )
      return true;
   if( (index == 4) && isDinersClub( cardNo ) )
      return true;
   if( (index == 5) && isEnRoute( cardNo ) )
      return true;

   alert( "Credit card number is not valid.\nPlease verify your card number." );
   return false;
}

function isCreditCard( st ) 
{
  if( (st.length == 0) || (st.length > 19) )
    return false;

  sum = 0; mul = 1; l = st.length;
  for( i = 0; i < l; i++ ) 
  {
    digit = st.substring( l-i-1, l-i );
    tproduct = parseInt( digit ,10 ) * mul;
    if( tproduct >= 10 )
       sum += (tproduct % 10) + 1;
    else
       sum += tproduct;
    if( mul == 1 )
       mul++;
    else
       mul--;
  }
  return true;
}

function isVisa(cc)
{
  if( ((cc.length == 16) || (cc.length == 13)) && (cc.substring(0,1) == 4))
    return isCreditCard(cc);
  return false;
}  // END FUNCTION isVisa()

function isMasterCard(cc)
{
  firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 16) && (firstdig == 5) && ((seconddig >= 1) && (seconddig <= 5)))
    return isCreditCard(cc);
  return false;

} // END FUNCTION isMasterCard()

function isAmericanExpress(cc)
{
  firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 15) && (firstdig == 3) && ((seconddig == 4) || (seconddig == 7)))
    return isCreditCard(cc);
  return false;

} // END FUNCTION isAmericanExpress()

function isDinersClub(cc)
{
  firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 14) && (firstdig == 3) && ((seconddig == 0) || (seconddig == 6) || (seconddig == 8)))
    return isCreditCard(cc);
  return false;
}

function isEnRoute(cc)
{
  first4digs = cc.substring(0,4);
  if ((cc.length == 15) && ((first4digs == "2014") || (first4digs == "2149")))
    return isCreditCard(cc);
  return false;
}
// End -->

