var windowMe = null;

function validateShippingInfo(form)
{
   var errorMessage = "";
   var fieldValue = "";


   fieldValue = Alltrim(form._shippinginfo__shippingFirstName.value);
   form._shippinginfo__shippingFirstName.value = fieldValue;
   if (fieldValue.length == 0)
   {
	  errorMessage = errorMessage + "- First name.\n";
   }	

   fieldValue = Alltrim(form._shippinginfo__shippingLastName.value);
   form._shippinginfo__shippingLastName.value = fieldValue;
   if (fieldValue.length == 0)
   {
	  errorMessage = errorMessage + "- Last name.\n";
   }

   fieldValue = Alltrim(form._shippinginfo__shippingAddress.value);
   form._shippinginfo__shippingAddress.value = fieldValue;
   if (fieldValue.length == 0)
   {
	  errorMessage = errorMessage + "- Shipping address.\n";
   }	
    
   fieldValue = Alltrim(form._shippinginfo__shippingCity.value);
   form._shippinginfo__shippingCity.value = fieldValue;
   if (fieldValue.length == 0)
   {
	  errorMessage = errorMessage + "- City.\n";
   }

   fieldValue = Alltrim(form._shippinginfo__shippingZip.value);
   form._shippinginfo__shippingZip.value = fieldValue;
   if (fieldValue.length == 0)
   {
	  errorMessage = errorMessage + "- Zip.\n";
   }
   else if (fieldValue.length != 5 || isNum(fieldValue)==false) {
	  errorMessage = errorMessage + "- Valid zip.\n";
   }

   fieldValue = Alltrim(form._shippinginfo__shippingEmail.value);
   form._shippinginfo__shippingEmail.value = fieldValue;
   if (fieldValue.length > 0 && checkEmail(fieldValue)==false) {
	  errorMessage = errorMessage + "- Valid email.\n";
   }

   if (errorMessage != '')
   {
	  errorMessage = "For shipping information, please enter:\n\n" + errorMessage;
   	  alert(errorMessage);
      return false;
   }
   
   return true;
   
}

function validateBillingInfo(form)
{
   var errorMessage = "";
   var fieldValue = "";

   fieldValue = Alltrim(form._billinginfo__creditCardNumber.value);
   form._billinginfo__creditCardNumber.value = fieldValue;
   if (fieldValue.length == 0) {
	  errorMessage = errorMessage + "- Credit card number.\n";
   }
   else {
	  fieldValue = ValidateCard(form._billinginfo__creditCardNumber);
	  if (fieldValue.length > 0) {
		 errorMessage = errorMessage + "- " + fieldValue + "\n";
	  }
   }

   var value = form._billinginfo__expMonth.selectedIndex;
   if (value < 1) {
	  errorMessage = errorMessage + "- Credit card expiration month.\n";
   }
   var value1 = form._billinginfo__expYear.selectedIndex;
   if (value1 < 1) {
	  errorMessage = errorMessage + "- Credit card expiration year.\n";
   }
   if (value > 0 && value1 > 0) {
	  var dy = form._billinginfo__expYear.options[value1].value + "" + form._billinginfo__expMonth.options[value].value
	  var thedate = new Date();
	  var mm = thedate.getMonth() + 1;
	  mm = "" + mm;
	  if (mm.length==1)
	     mm = "0" + mm;
	  var yy = thedate.getYear();
	  if (thedate.getYear()<"1000")
	     yy = thedate.getYear() + 1900;
	  var thetoday = yy + "" + mm;
	  if (dy < thetoday) {
		 errorMessage = errorMessage + "- Credit card date expired.\n";
	  }
   }

   fieldValue = Alltrim(form._billinginfo__billingFirstName.value);
   form._billinginfo__billingFirstName.value = fieldValue;
   if (fieldValue.length == 0)
   {
	  errorMessage = errorMessage + "- First name.\n";
   }	

   fieldValue = Alltrim(form._billinginfo__billingLastName.value);
   form._billinginfo__billingLastName.value = fieldValue;
   if (fieldValue.length == 0)
   {
	  errorMessage = errorMessage + "- Last name.\n";
   }

   fieldValue = Alltrim(form._billinginfo__billingAddress.value);
   form._billinginfo__billingAddress.value = fieldValue;
   if (form._billinginfo__sameAsShipping.checked==false && fieldValue.length == 0)
   {
	  errorMessage = errorMessage + "- Billing address.\n";
   }	
    
   fieldValue = Alltrim(form._billinginfo__billingCity.value);
   form._billinginfo__billingCity.value = fieldValue;
   if (form._billinginfo__sameAsShipping.checked==false && fieldValue.length == 0)
   {
	  errorMessage = errorMessage + "- City.\n";
   }

   fieldValue = Alltrim(form._billinginfo__billingZip.value);
   form._billinginfo__billingZip.value = fieldValue;
   if (form._billinginfo__sameAsShipping.checked==false) {
	  if (fieldValue.length == 0)
	  {
	     errorMessage = errorMessage + "- Zip.\n";
	  }
	  else if (fieldValue.length != 5 || isNum(fieldValue)==false) {
	     errorMessage = errorMessage + "- Valid zip.\n";
	  }
   }

   var getShippingEmail = false;
   fieldValue = Alltrim(form._billinginfo__billingEmail.value);
   form._billinginfo__billingEmail.value = fieldValue;
   if (fieldValue.length == 0)
   {
	  if (form._billinginfo__sameAsShipping.checked==true && form.shippingEmail != null) {
		  getShippingEmail = true;
	  }
	  else {
		 errorMessage = errorMessage + "- Email.\n";
	  }
   }
   else if (fieldValue.length > 0 && checkEmail(fieldValue)==false) {
	  errorMessage = errorMessage + "- Valid email.\n";
   }

   if (errorMessage != '')
   {
	  errorMessage = "For billing information, please enter:\n\n" + errorMessage;
   	  alert(errorMessage);
      return false;
   }

   if (getShippingEmail==true) {
	  form._billinginfo__billingEmail.value = form.shippingEmail.value;
   }
									
   //document.Form1._checkout.value = "Processing"

   return true;
   
   
}

function Rtrim(thestring){

	var locstring = thestring;
	var curlength = thestring.length;
	
	while (curlength > 0)
	{

		if (locstring.lastIndexOf(" ") == curlength-1)
		{
			locstring = locstring.substring(0,curlength-1);
			curlength = curlength - 1;
		}
		else	
			break;
	}
	return (locstring);
			

}


function Ltrim(thestring) {

	var locstring = thestring;
	var curlength = thestring.length;
	
	while (curlength > 0)
	{
	
		if (locstring.indexOf(" ") == 0)
		{
			locstring = locstring.substring(1,curlength);
			curlength = curlength - 1;
		}
		else	
			break;
	}
	return (locstring);
			

}

function Alltrim(thestring) {

	return (Rtrim(Ltrim(thestring)));
	
}


function isgoodemail(emailaddr) {

   var locemail = emailaddr;
   var addrlength = locemail.length;
   var location_at = -1;
   var location_dot = -1;
   
   for (i=0; i < addrlength; i++)
   {
     if ( locemail.charAt(i) == "@" )
     {
        location_at = i;
     }
     if ( locemail.charAt(i) == "." )
     {
        location_dot = i;
     }
   }
   
   if (location_at < 1 )
   {
      return false;
   }
   
   if (location_dot != addrlength-4)      
   {
      return false;
   }

   if (location_at > location_dot )
   {
      return false;
   }
   
   return true;

}

function isNum(argvalue) {
  argvalue = argvalue.toString();

  if (argvalue.length == 0)
    return false;

  for (var n = 0; n < argvalue.length; n++)
    if (argvalue.substring(n, n+1) < "0" || argvalue.substring(n, n+1) > "9")
    return false;

  return true;
}

function isMoney(argvalue) {
  argvalue = Alltrim(argvalue.toString());

  if (argvalue.length == 0)
    return false;

	var numDecimal = 0
  for (var n = 0; n < argvalue.length; n++)
  {
    if (argvalue.substring(n, n+1)==".")
		numDecimal = numDecimal + 1
    else if (argvalue.substring(n, n+1) < "0" || argvalue.substring(n, n+1) > "9")
		return false;
  }
  
  if (numDecimal > 1)
     return false;

  return true;
}

function checkEmail(field)
{
        var i = 1;
        var sLength = field.length;

// Look for \@
        while (( i < sLength) && (field.charAt(i) != "\@")) {
                i++;
        }
        if ((i >= sLength) || field.charAt(i) != "\@"){
                return false;
        }
        else {
                i += 2;
        }
// Look for .
        while ((i < sLength) && (field.charAt(i) != ".")) {
                i++;
        }
// There must be at lease on character after the .
        if ((i >= sLength - 1) || (field.charAt(i) != ".")) {
                return false;
        }
        else {
                return true;
        }
}

function stringReplace(inputString, findchar)
{
  var originalString = inputString;
  var pos = 0;
  pos = originalString.indexOf(findchar);
  while (pos != -1)  {
     preString = originalString.substring(0,pos);
     len = 1;
     postString = originalString.substring(pos+len, originalString.length);
     originalString = preString + postString;
     pos = originalString.indexOf(findchar);
   }
   return originalString;
}

function ValidateCard(creditcard)
{
  var checkStr = "";
  var checkOK = "0123456789";
  
  var checkStr = stringReplace(creditcard.value," ");
  
  var CrValid = true;
  var checksum=0;
  var ddigit=0;
  var kdig = 0;
  if (checkStr.length < 13)
  {
   return ('A valid card number. The credit card number you entered is too short.');
  }
  for (i = checkStr.length-1;  i >= 0;  i--)
  {
    kdig++;
    ch = checkStr.charAt(i);

// check if it is a digit
    
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    

    if (j == checkOK.length)
    {
      return('A valid card number.  Your credit card number should contain only numbers.');
    }
    

// check if it pass the mod 10 test
    
    if ((kdig % 2) != 0)
       checksum=checksum+parseInt(ch);
    else {
          ddigit=parseInt(ch)*2;
          if (ddigit >= 10)
             checksum=checksum+1+(ddigit-10);
          else
             checksum=checksum+ddigit;
    }
    
  }
  if ((checksum % 10) != 0)
  {
       return('A valid card number.  You entered an invalid credit card number.');
  }
  else
  {
       return('');
  }
  
}

function popMe(url)
{
   if (windowMe && ! windowMe.closed) { windowMe.close(); } 

   windowMe = window.open('http://' + url, 'sameMe', 'scrollbars=yes, width=570, height=390');
   return false;
}

