 function toggle_it(itemID){ 
      // Toggle visibility between none and inline 
      if ((document.getElementById(itemID).style.display == 'none')) 
      { 
        document.getElementById(itemID).style.display = 'inline'; 
      } else { 
        document.getElementById(itemID).style.display = 'none'; 
      } 
  } 
//If our user enters data in the username input, then we need to enable our button
function OnChangedUsername()
{
if(document.qcasrtdetail.MBUserName.value == "")
{
document.qcasrtdetail.btnCheckAvailability.disabled = true;
}
else
{
document.qcasrtdetail.btnCheckAvailability.disabled = false;
}
}

function OnCheckAvailability()
{
if(window.XMLHttpRequest)
{
oRequest = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
oRequest = new ActiveXObject("Microsoft.XMLHTTP");
}

oRequest.open("POST", "usercheck.asp", true);
oRequest.onreadystatechange = UpdateCheckAvailability;

oRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
oRequest.send("strCmd=availability&strUsername=" + document.qcasrtdetail.MBUserName.value);
}

function UpdateCheckAvailability()
{
if(oRequest.readyState == 4)
{ 
if(oRequest.status == 200)
{
document.getElementById("Available").innerHTML = oRequest.responseText;
}
else
{
document.getElementById("Available").innerHTML = "Error - Invalid please try again";
}
}
}
function switch_MBUserName(MBUserName) {
		document.getElementById('MBUserName').value = MBUserName;
	}
	
//Affiliate checking ---------------------------------------------------------------------
function OnChangedaffiliate()
{
if(document.afillsign.affusername.value == "")
{
document.afillsign.btnCheckAvailability.disabled = true;
}
else
{
document.afillsign.btnCheckAvailability.disabled = false;
}
}

function OnCheckAvailabilityaffil()
{
if(window.XMLHttpRequest)
{
oRequest = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
oRequest = new ActiveXObject("Microsoft.XMLHTTP");
}

oRequest.open("POST", "affiliatecheck.asp", true);
oRequest.onreadystatechange = UpdateCheckAvailability;

oRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
oRequest.send("strCmd=availability&strUsername=" + document.afillsign.affusername.value);
}

function UpdateCheckAvailability()
{
if(oRequest.readyState == 4)
{ 
if(oRequest.status == 200)
{
document.getElementById("Available").innerHTML = oRequest.responseText;
}
else
{
document.getElementById("Available").innerHTML = "Error - Invalid please try again";
}
}
}
function switch_affusername(affusername) {
		document.getElementById('affusername').value = affusername;
	}
	
//promo code checking ---------------------------------------------------------------------
function OnChangedpromo()
{
if(document.codepromo.promocode.value == "")
{
document.codepromo.btncheckavailpromo.disabled = true;
}
else
{
document.codepromo.btncheckavailpromo.disabled = false;
}
}

function oncheckavailpromo()
{
if(window.XMLHttpRequest)
{
oRequest = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
oRequest = new ActiveXObject("Microsoft.XMLHTTP");
}

oRequest.open("POST", "promcodecheck.asp", true);
oRequest.onreadystatechange = updatecheckavailpromo;

oRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
oRequest.send("strCmd=availability&strUsername=" + document.codepromo.promocode.value);
}

function updatecheckavailpromo()
{
if(oRequest.readyState == 4)
{ 
if(oRequest.status == 200)
{
document.getElementById("Available").innerHTML = oRequest.responseText;
}
else
{
document.getElementById("Available").innerHTML = "Error - Invalid please try again";
}
}
}
function switch_promocode(promocode) {
		document.getElementById('promocode').value = promocode;
	}
//check for county on contry select
function OnCheckAvailabilitycounty()
{
if(window.XMLHttpRequest)
{
oRequest = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
oRequest = new ActiveXObject("Microsoft.XMLHTTP");
}

oRequest.open("POST", "findthecounty.asp", true);
oRequest.onreadystatechange = UpdateCheckAvailabilitycounty;

oRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
oRequest.send("strCmd=availability&wh=2&strUsername=" + document.qcasrtdetail.MBcountry.value);
}

function UpdateCheckAvailabilitycounty()
{
if(oRequest.readyState == 4)
{ 
if(oRequest.status == 200)
{
document.getElementById("Availablecounty").innerHTML = oRequest.responseText;
}
else
{
document.getElementById("Availablecounty").innerHTML = "Error - Invalid please try again";
}
}
}
function switch_MBcountry(MBcountry) {
		document.getElementById('MBcountry').value = MBcountry;
	}
//check for county on contry select ------------------ cart only
function OnCheckAvailabilitycountyct()
{
if(window.XMLHttpRequest)
{
oRequest = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
oRequest = new ActiveXObject("Microsoft.XMLHTTP");
}

oRequest.open("POST", "findthecounty.asp", true);
oRequest.onreadystatechange = UpdateCheckAvailabilitycountyct;

oRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
oRequest.send("strCmd=availability&wh=1&strUsername=" + document.qcasrtdetail.qccountry.value);
}

function UpdateCheckAvailabilitycountyct()
{
if(oRequest.readyState == 4)
{ 
if(oRequest.status == 200)
{
document.getElementById("Availablecountyinv").innerHTML = oRequest.responseText;
}
else
{
document.getElementById("Availablecountyinv").innerHTML = "Error - Invalid please try again";
}
}
}
function switch_qccountry(qccountry) {
		document.getElementById('qccountry').value = qccountry;
	}
//check for county on contry select ------------------ shipping cart only
function OnCheckAvailabilitycountyct1()
{
if(window.XMLHttpRequest)
{
oRequest = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
oRequest = new ActiveXObject("Microsoft.XMLHTTP");
}

oRequest.open("POST", "findthecounty.asp", true);
oRequest.onreadystatechange = UpdateCheckAvailabilitycountyct1;

oRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
oRequest.send("strCmd=availability&wh=3&strUsername=" + document.qcasrtdetail.qcshipcountry.value);
}

function UpdateCheckAvailabilitycountyct1()
{
if(oRequest.readyState == 4)
{ 
if(oRequest.status == 200)
{
document.getElementById("Availablecountyinv1").innerHTML = oRequest.responseText;
}
else
{
document.getElementById("Availablecountyinv1").innerHTML = "Error - Invalid please try again";
}
}
}
function switch_qcshipcountry(qcshipcountry) {
		document.getElementById('qcshipcountry').value = qcshipcountry;
	}
var ccErrorNo = 0;
var ccErrors = new Array ()

ccErrors [0] = "Unknown card type";
ccErrors [1] = "No card number provided";
ccErrors [2] = "Credit card number is in invalid format";
ccErrors [3] = "Credit card number is invalid";
ccErrors [4] = "Credit card number has an inappropriate number of digits";

function chkcc (qccno, cardname) {
     
  var cards = new Array();

  cards [0] = {name: "Visa", 
               length: "13,16", 
               prefixes: "4",
               checkdigit: true};
  cards [1] = {name: "MasterCard", 
               length: "16", 
               prefixes: "51,52,53,54,55",
               checkdigit: true};
  cards [2] = {name: "DinersClub", 
               length: "14,16", 
               prefixes: "300,301,302,303,304,305,36,38,55",
               checkdigit: true};
  cards [3] = {name: "CarteBlanche", 
               length: "14", 
               prefixes: "300,301,302,303,304,305,36,38",
               checkdigit: true};
  cards [4] = {name: "AmEx", 
               length: "15", 
               prefixes: "34,37",
               checkdigit: true};
  cards [5] = {name: "Discover", 
               length: "16", 
               prefixes: "6011,650",
               checkdigit: true};
  cards [6] = {name: "JCB", 
               length: "15,16", 
               prefixes: "3,1800,2131",
               checkdigit: true};
  cards [7] = {name: "enRoute", 
               length: "15", 
               prefixes: "2014,2149",
               checkdigit: true};
  cards [8] = {name: "Solo", 
               length: "16,18,19", 
               prefixes: "6334,6767",
               checkdigit: true};
  cards [9] = {name: "Switch", 
               length: "16,18,19", 
               prefixes: "4903,4905,4911,4936,564182,633110,6333,6759",
               checkdigit: true};
  cards [10] = {name: "Maestro", 
               length: "16,18", 
               prefixes: "5020,6",
               checkdigit: true};
  cards [11] = {name: "VisaElectron", 
               length: "16", 
               prefixes: "417500,4917,4913",
               checkdigit: true};
               
  var qccdtyp = -1;
  for (var i=0; i<cards.length; i++) {

    if (cardname.toLowerCase () == cards[i].name.toLowerCase()) {
      qccdtyp = i;
      break;
    }
  }
  
  if (qccdtyp == -1) {
     ccErrorNo = 0;
     return false; 
  }
   
  if (qccno.length == 0)  {
     ccErrorNo = 1;
     return false; 
  }
    
  qccno = qccno.replace (/\s/g, "");
  
  var cardNo = qccno
  var cardexp = /^[0-9]{13,19}$/;
  if (!cardexp.exec(cardNo))  {
     ccErrorNo = 2;
     return false; 
  }
       
  if (cards[qccdtyp].checkdigit) {
    var checksum = 0;                                 
    var mychar = "";                                  
    var j = 1;                                         
  
    var calc;
    for (i = cardNo.length - 1; i >= 0; i--) {
    
      calc = Number(cardNo.charAt(i)) * j;
    
      if (calc > 9) {
        checksum = checksum + 1;
        calc = calc - 10;
      }
    
      checksum = checksum + calc;
    
      if (j ==1) {j = 2} else {j = 1};
    } 
  
    if (checksum % 10 != 0)  {
     ccErrorNo = 3;
     return false; 
    }
  }  

  var LengthValid = false;
  var PrefixValid = false; 
  var undefined; 

  var prefix = new Array ();
  var lengths = new Array ();
    
  prefix = cards[qccdtyp].prefixes.split(",");
      
  for (i=0; i<prefix.length; i++) {
    var exp = new RegExp ("^" + prefix[i]);
    if (exp.test (cardNo)) PrefixValid = true;
  }
      
  if (!PrefixValid) {
     ccErrorNo = 3;
     return false; 
  }
    
  lengths = cards[qccdtyp].length.split(",");
  for (j=0; j<lengths.length; j++) {
    if (cardNo.length == lengths[j]) LengthValid = true;
  }
  
  if (!LengthValid) {
     ccErrorNo = 4;
     return false; 
  };   
  
  return true;
}
