function validate_desiredQty()
{
  with(window.document.forms[0]) {
    if (parseInt(DesiredQty.value) < 1) {
      alert("The Quantity must be at least 1.");
      return false;
    }
  }
  return true;
}

function validateCardNum(card)
{
	var valid_digits=0;
	
	if (card == '') return true;
	
 	for (i = 0; i < card.length; i++ ) {
    ch = card.substring(i, i+1);
		
		if (ch >= "0" && ch <= "9") {
		  valid_digits ++;
			continue;
		}
		
		if (ch == " ") {
		  continue;
		}
		
		/* An invalid character was found */
		valid_digits = 0;
		break;
	}

	if (card.length < 16) invalid = 1;
	
	if (valid_digits != 16) {
      alert("Please Enter a valid Card Number");
      return false;
	}
	return true;
}

// Validates the form data for checkout
function
validateCheckout(theform)
{
	var bMissingFields = false;
	var strFields = "";
	
	if (theform.b_first.value == '' ){
		bMissingFields = true;
		strFields += "     Billing: First Name\n";
	}
	if (theform.b_last.value == '' ){
		bMissingFields = true;
		strFields += "     Billing: Last Name\n";
	}
	if (theform.b_addr1.value == '' ){
		bMissingFields = true;
		strFields += "     Billing: Address\n";
	}
	if (theform.b_city.value == '' ){
		bMissingFields = true;
		strFields += "     Billing: City\n";
	}
//	if( theform.b_state.value == '' ){
//		bMissingFields = true;
//		strFields += "     Billing: State\n";
//	}
	if (theform.b_zip.value == '' ){
		bMissingFields = true;
		strFields += "     Billing: Zip Code\n";
	}
	if (theform.b_phone.value == '' ){
		bMissingFields = true;
		strFields += "     Billing: Phone\n";
	}
	if (! theform.ship_to_billing.checked) {
	  if (theform.s_first.value == '') {
		  bMissingFields = true;
		  strFields += "     Shipping: First Name\n";
	  }
	  if (theform.s_last.value == '') {
		  bMissingFields = true;
		  strFields += "     Shipping: Last Name\n";
	  }
	  if (theform.s_addr1.value == '') {
		  bMissingFields = true;
		  strFields += "     Shipping: Address\n";
	  }
	  if (theform.s_city.value == '') {
		  bMissingFields = true;
		  strFields += "     Shipping: City\n";
	  }
	  if (theform.s_zip.value == '') {
		  bMissingFields = true;
		  strFields += "     Shipping: Zip Code\n";
	  }
	  if (theform.s_phone.value == '') {
		  bMissingFields = true;
		  strFields += "     Shipping: Phone\n";
	  }
	}
	if (theform.email.value == '' ){
		bMissingFields = true;
		strFields += "     Email Address\n";
	}
	
	// Check Visa/MC data
	if (theform.payment_type.selectedIndex == 1 || theform.payment_type.selectedIndex == 2) {
	  if (theform.cardholder.value == '') {
		  bMissingFields = true;
		  strFields += "     Card Holder Name\n";
		}
	  if (theform.card_number.value == '') {
		  bMissingFields = true;
		  strFields += "     Card Number\n";
		}
	}
	
	if (bMissingFields ) {
		alert( "I'm sorry, but you must provide the following field(s) before continuing:\n" + strFields );
		return false;
	}
	
	return true;
}

// Toggle state of the ship to fields
function 
toggle_shipping()
{
  disabled = document.checkout.ship_to_billing.checked;
  if (disabled) {
    bgcolor = "#666666";
  } else {
    bgcolor = "#ffffff";
  }

  field_disable(document.checkout.s_first, disabled, bgcolor);
  field_disable(document.checkout.s_last, disabled, bgcolor);
  field_disable(document.checkout.s_addr1, disabled, bgcolor);
  field_disable(document.checkout.s_addr2, disabled, bgcolor);
  field_disable(document.checkout.s_city, disabled, bgcolor);
  field_disable(document.checkout.s_state, disabled, bgcolor);
  field_disable(document.checkout.s_zip, disabled, bgcolor);
  field_disable(document.checkout.s_phone, disabled, bgcolor);
}

// Modify field object to be enabled/disabled
function
field_disable(field, disabled, bgcolor)
{
  field.disabled = disabled;
  field.style.backgroundColor = bgcolor;
}

