
//http://www.shiningstar.net/articles/articles/javascript/javascriptvalidations.asp?ID=aw 

function viewBillAdd(){
document.getElementById('billAddress').style.display="block";
}

function hideBillAdd(){
document.getElementById('billAddress').style.display="none";
}

function showBox(nmdiv) {
if (document.getElementById(nmdiv).style.display=="none") { 
document.getElementById(nmdiv).style.display="block";
} else {  document.getElementById(nmdiv).style.display="none"; }
}


function clearText() {
if(document.getElementById('giftMessage').value=='write gift card message here') {
  document.getElementById('giftMessage').value='';
  document.getElementById('giftMessage').style.color='#222222';
  }
}

function ValidccNum(cardNumber,cardType) {
  var isValid = false;
  var ccCheckRegExp = /[^\d ]/;
  isValid = !ccCheckRegExp.test(cardNumber);

  if (isValid) {
    var cardNumbersOnly = cardNumber.replace(/ /g,"");
    var cardNumberLength = cardNumbersOnly.length;
    var lengthIsValid = false;
    var prefixIsValid = false;
    var prefixRegExp;

    switch(cardType)
    {
      case "mastercard":
        lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^5[1-5]/;
        break;

      case "visa":
        lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
        prefixRegExp = /^4/;
        break;

      case "amex":
        lengthIsValid = (cardNumberLength == 15);
        prefixRegExp = /^3(4|7)/;
        break;

      default:
        prefixRegExp = /^$/;
        alert("Card type not found");
    }

    prefixIsValid = prefixRegExp.test(cardNumbersOnly);
    isValid = prefixIsValid && lengthIsValid;
  }

  return isValid;
}


function validate_required(field,alerttxt)
{
with (field) { if (value==null || value=="") { alert(alerttxt); return false; } else {return true;} }
}

function min_ten(field,alerttxt)
{
with (field) { if (value<10) { alert(alerttxt); return false; } else {return true;} }
}

//------------------------------------------------------------------------------------------------

function validate_form_order(thisform)
{ 

with (thisform)
{
	
var numbersOnly = /[^\d-]/;

if (validate_required(sFName,"Please enter a First Name.")==false)
  {sFName.focus(); return false}
  
if (validate_required(sLName,"Please enter a Last Name.")==false)
  {sLName.focus();return false}
  
if (validate_required(sAddress,"Please enter an Address.")==false)
  {sAddress.focus();return false}
  
if (validate_required(sCity,"Please enter a City.")==false)
  {sCity.focus();return false}  
  
if (validate_required(sState,"Please choose a State.")==false)
  {sState.focus();return false}

var sZipGood = !numbersOnly.test(sZip.value);
if (!sZipGood || sZip.value.length<5) {alert("Please enter a Valid Zip"); return false; }
 
  } // end with this form

}

//------------------------------------------------------------------------------------------------

function validate_form_order_w(thisform)
{ 

with (thisform)
{
	
var numbersOnly = /[^\d-]/;

var sQuantity = !numbersOnly.test(quantity.value);
if (min_ten(quantity,"Minimum Order of 10.")==false || !sQuantity)
  {quantity.focus(); return false}
  
if (validate_required(sFName,"Please enter a Name.")==false)
  {sFName.focus(); return false}
    
if (validate_required(sAddress,"Please enter an Address.")==false)
  {sAddress.focus();return false}
  
if (validate_required(sCity,"Please enter a City.")==false)
  {sCity.focus();return false}  
  
if (validate_required(sState,"Please choose a State.")==false)
  {sState.focus();return false}

var sZipGood = !numbersOnly.test(sZip.value);
if (!sZipGood || sZip.value.length<5) {alert("Please enter a Valid Zip"); return false; }
 
  } // end with this form

}

//------------------------------------------------------------------------------------------------

function validate_form_credit(thisform)
{
var currentTime = new Date();
var dcm = currentTime.getMonth()+1;
var dcy = currentTime.getFullYear()-2000;
 
 

with (thisform)
{
	
var numbersOnly = /[^\d]/;
var cardVal=card_number.value;
var cardType=card_type.value;
  
if (ValidccNum(cardVal,cardType)==false) { alert("Invalid Card Number"); card_number.focus(); return false; }

var ccvGood = !numbersOnly.test(ccv.value);
if (!ccvGood || ccv.value.length<3) {
alert("Please enter your Credit Card \"ccv\" number \n - 3 or 4 digit # on back of card.");
return false; 
}
  

var expyear=xp_year.value;

if (xp_month.value < dcm && expyear <= dcy) { 
var message='Please select later Expiration Date.';
//var message='Please select later Expiration Date.';
alert(message); 
return false; }s
  

if (notSameAsShip[1].checked===true) { //validate the billing info fields
 
if (validate_required(bFName,"Please enter a Billing First Name.")==false) 
{bFName.focus(); return false;}
  
if (validate_required(bLName,"Please enter a Billing Last Name.")==false) 
{bLName.focus(); return false;}
  
if (validate_required(bAddress,"Please enter a Billing Address.")==false) 
{bAddress.focus(); return false;}
  
if (validate_required(bCity,"Please enter a Billing City.")==false) 
{bCity.focus(); return false;}  
  
if (validate_required(bState,"Please choose a Billing State.")==false) 
{bState.focus(); return false;}
  
var bZipGood = !numbersOnly.test(bZip.value);
if (!bZipGood || bZip.value.length<5) { alert("Please enter a Valid Billing Zip."); return false; }

} // end checking billing info
 
  } // end with this form

}