var aa = new Object;
var codeMaxLen = 8;
var v = {
  pageReq: false,
  url: "validate.aspx",
  dCode: "",
  response: "",
  complete: false,
  code: "",
  msg: "",
  timeoutVal: 9,
  timeoutID: 0,
  timeoutMessage: function() {
    alert("There appears to be network or server problems.\nPlease check your code and click 'Validate' again.");
  },

  validateCode: function() {
    var code = document.getElementById('discountCode').value;
    if (code.length > codeMaxLen)
    	code = code.substring(0, codeMaxLen);
    if (code == "")
      code = "x";
    v.dCode = code.toLowerCase();
    v.createReq();

    if (v.pageReq)
      v.sendReq();
  },

  createReq: function() {
    if (window.XMLHttpRequest) {
      v.pageReq = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
      var classes = ["MSXML2.XmlHttp.5.0",
					"MSXML2.XmlHttp.4.0", "MSXML2.XmlHttp.3.0",
					"MSXML2.XmlHttp", "Microsoft.XmlHttp"];
      for (var i = 0; i < classes.length; i++) {
        try {
          v.pageReq = new ActiveXObject(classes[i]);
          break;
        }
        catch (e) { }
      }
    }
  },

  sendReq: function() {
    v.msg = "discountCode=" + v.dCode;
    v.pageReq.onreadystatechange = v.returnReq;
    v.pageReq.open("POST", v.url, true);
    v.pageReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    v.pageReq.setRequestHeader("Content-length", v.msg.length);
    v.timeoutID = setTimeout('v.timeoutMessage()', v.timeoutVal * 1000);
    v.pageReq.send(v.msg);
  },

  returnReq: function() {
    if (v.pageReq.readyState == 4 &&
			  v.pageReq.status == 200) {
      v.response = v.pageReq.responseText;
      v.complete = true;
      clearTimeout(v.timeoutID);

      var valMessage;
      var valMsgEl = document.getElementById('valMsg');

      if (v.response == "X") {
        valMsgEl.style.color = "Red";
        valMessage = "Sorry, this code is not valid.";
      }
      else {
        d = true;
        valMsgEl.style.color = "Green";
        valMessage = "Code is valid for a 10% discount.";
      }

      if (document.all)
        valMsgEl.innerText = valMessage;
      else
        valMsgEl.textContent = valMessage;

      if (d) baa();
    }
  }
}
function baa() {
  var rCodesStr =
        "n8446403," +   /* Black */
        "n8447605," +   /* White */
        "n8789667," +   /* Antique Gold */
        "n8789631," +   /* Yellow */
        "n8789620," +   /* Silver */
        "n8789605," +   /* Gray */
        "n8789594," +   /* Copper */
        "n8789575," +   /* Brown */
        "n8789480," +   /* Orange */
        "n8789474," +   /* Amber */
        "n8789462," +   /* Red */
        "n8789449," +   /* Maroon */
        "n8789441," +   /* Magenta */
        "n8789430," +   /* Hot Pink */
        "n8789424," +   /* Light Pink */
        "n8789408," +   /* Navy Blue */
        "n8789389," +   /* Royal Blue */
        "n8758022," +   /* Electric Blue */
        "n8757944," +   /* Light Blue */
        "n8757928," +   /* Peacock Blue */
        "n8757895," +   /* Deep Purle */
        "n8757862," +   /* Indigo */
        "n8757837," +   /* Violet */
        "n8757815," +   /* Green */
        "n8757788," +   /* Light Green */
        "n8757759," +   /* Dark Green */
        "n8757483," +   /* Peridot */
        "n8851041," +   /* Off-White */
        "n8757446," +   /* Gold */
        "n8757415," +   /* Antique Bronze */
        "n8710445," +   /* Titanium */
        "n8365340," +   /* Red, White & Blue */
        "n8447877," +   /* Tri-color Gold */
        "n8710390," +   /* Green, Yellow & Black */
        "n10316035";    /* Orange & Blue */

  var rCodes = rCodesStr.split(",");
  var dCodes = v.response.split(",");
  
  for(i in rCodes) {
    aa[rCodes[i]] = dCodes[i];    
  }
}


