function isCreditCard( cc ) 
{
  var firstdig = cc.value.substring(0,1)
  if( (cc.value.length == 0) || (cc.value.length > 16)|| (cc.value.length < 13) )
    {
     alert("Card Number is invalid.");
     cc.focus();
     return false;
     }  

  if (!((firstdig == 3) || (firstdig == 4)|| (firstdig == 5)|| (firstdig == 6)))
    {
     alert("Card Number is invalid.");
     cc.focus();
     return false;
     }

  if(!isNumberValue(cc, "Credit Card")  )   
      return false;

  if(!checkCC(cc.value))
  {
     alert("Card Number is invalid.");
     cc.focus();
     return false;
  }
   
   return true;
}

function checkCC(s) {

  var i, n, c, r, t;

  // First, reverse the string and remove any non-numeric characters.

  r = "";
  for (i = 0; i < s.length; i++) {
    c = parseInt(s.charAt(i), 10);
    if (c >= 0 && c <= 9)
      r = c + r;
  }

  // Check for a bad string.

  if (r.length <= 1)
    return false;

  // Now run through each single digit to create a new string. Even digits
  // are multiplied by two, odd digits are left alone.

  t = "";
  for (i = 0; i < r.length; i++) {
    c = parseInt(r.charAt(i), 10);
    if (i % 2 != 0)
      c *= 2;
    t = t + c;
  }

  // Finally, add up all the single digits in this string.

  n = 0;
  for (i = 0; i < t.length; i++) {
    c = parseInt(t.charAt(i), 10);
    n = n + c;
  }

  // If the resulting sum is an even multiple of ten (but not zero), the
  // card number is good.

  if (n != 0 && n % 10 == 0)
    return true;
  else
    return false;
}



function IsFloat( number )
{
   var val = parseFloat( number );
   return (isNaN( val ) == false);
}
function checkFloat(field,ident)
{ 
     
   if(!IsFloat(field.value) )
   {
      alert(ident + " should be an integer field.");
      field.focus();
      return false;
   }
    return true;
}
function IsInteger( field )
   {
      return (isNaN( field.value ) == false);
   }
function isNumberValue(field,ident)
{  var x=field.value           
   var anum=/(^\d+$)/
     if (anum.test(x))
       testresult=true
     else{
        alert(ident + " should be an integer field.");
        field.focus();
        return false;
        }
   return true;
}

function validPassword( password, message )
{
   var validPassword= /^[0-9A-Za-z\._]+$/;
   if (!validPassword.test( password.value ))
   {
      alert(message);
      return false;
   }
   return true;
}

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 )
{  
   if( field.selectedIndex == 0 )
   {
      alert( msg + " is a required field." );
      field.focus();
      return false;
   }
   return true;
}