var request = null;

try {
  request = new XMLHttpRequest();
} catch (trymicrosoft) {
  try {
    request = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (othermicrosoft) {
    try {
      request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (failed) {
      request = null;
    }
  }
}

if (request == null) {
  alert("Sorry, there was an error.");
}

var postalcode = "";
var pcprefix = "";
var oldpostalcode = "";
var zoneprices = "";
var text_isin = "";
var text_isnt = "";
var text_notv = "";
var text_free = "";
var text_contact = "";
var requestreceived = false;

function getZone() {
  postalcode = document.getElementById("postalcode").value;
  if (postalcode != oldpostalcode) {
    postalcode = postalcode.replace(/[^a-z0-9]/gi,'');
    postalcode = postalcode.toUpperCase();
    document.getElementById("postalcode").value = postalcode;
    oldpostalcode = postalcode;
  }
  if (postalcode.search(/[A-CEGHJ-NPR-TV-Z][0-9][A-CEGHJ-NPR-TV-Z][0-9][A-CEGHJ-NPR-TV-Z][0-9]/gi)==0) {
    if (requestreceived) {
    replaceText(document.getElementById("mpc"), "   "+postalcode);
    //if (zoneprices.getElementsByTagName("a-reg")[0].firstChild.nodeValue == "Y") {
    var price_a_reg = "";
    var price_b_reg = "";
    var price_c_reg = "";
    var price_d_reg = "";
    var price_e_reg = "";
    var price_f_reg = "";
    var price_g_reg = "";
    var price_h_reg = "";
    var price_a_del = "";
    var price_b_del = "";
    var price_c_del = "";
    var price_d_del = "";
    var price_e_del = "";
    var price_f_del = "";
    var price_g_del = "";
    var price_h_del = "";
    if ((postalcode.search(/[A-CEGHJ-NPR-TV-Z]0[A-CEGHJ-NPR-TV-Z]0[A-CEGHJ-NPR-TV-Z][0-9]/gi)==0) && (postalcode != "L0S1J0")) {
      replaceText(document.getElementById("pcerror"), postalcode + text_isnt);
	} else if ((postalcode.search(/[A-CEGHJ-NPR-TV-Z]0[A-CEGHJ-NPR-TV-Z][0-9][A-CEGHJ-NPR-TV-Z]0/gi)==0) && (postalcode != "L0S1J0")) {
      replaceText(document.getElementById("pcerror"), postalcode + text_isnt);
	} else if ((postalcode.search(/[A-CEGHJ-NPR-TV-Z][0-9][A-CEGHJ-NPR-TV-Z]0[A-CEGHJ-NPR-TV-Z]0/gi)==0) && (postalcode != "L0S1J0")) {
      replaceText(document.getElementById("pcerror"), postalcode + text_isnt);
	} else if ((postalcode.search(/[A-CEGHJ-NPR-TV-Z]0[A-CEGHJ-NPR-TV-Z]0[A-CEGHJ-NPR-TV-Z]0/gi)==0) && (postalcode != "L0S1J0")) {
      replaceText(document.getElementById("pcerror"), postalcode + text_isnt);
	} else {
      switch(zoneprices.getElementsByTagName("valid")[0].firstChild.nodeValue) {
        case "Y":
          price_a_reg = zoneprices.getElementsByTagName("a-reg")[0].firstChild.nodeValue;
          price_b_reg = zoneprices.getElementsByTagName("b-reg")[0].firstChild.nodeValue;
          price_c_reg = zoneprices.getElementsByTagName("c-reg")[0].firstChild.nodeValue;
          price_d_reg = zoneprices.getElementsByTagName("d-reg")[0].firstChild.nodeValue;
          price_e_reg = zoneprices.getElementsByTagName("e-reg")[0].firstChild.nodeValue;
          price_f_reg = zoneprices.getElementsByTagName("f-reg")[0].firstChild.nodeValue;
          price_g_reg = zoneprices.getElementsByTagName("g-reg")[0].firstChild.nodeValue;
          price_h_reg = zoneprices.getElementsByTagName("h-reg")[0].firstChild.nodeValue;
          price_a_del = zoneprices.getElementsByTagName("a-del")[0].firstChild.nodeValue;
          price_b_del = zoneprices.getElementsByTagName("b-del")[0].firstChild.nodeValue;
          price_c_del = zoneprices.getElementsByTagName("c-del")[0].firstChild.nodeValue;
          price_d_del = zoneprices.getElementsByTagName("d-del")[0].firstChild.nodeValue;
          price_e_del = zoneprices.getElementsByTagName("e-del")[0].firstChild.nodeValue;
          price_f_del = zoneprices.getElementsByTagName("f-del")[0].firstChild.nodeValue;
          price_g_del = zoneprices.getElementsByTagName("g-del")[0].firstChild.nodeValue;
          price_h_del = zoneprices.getElementsByTagName("h-del")[0].firstChild.nodeValue;
          replaceText(document.getElementById("pcoutput"), postalcode);
          clearText(document.getElementById("pcerror"));
          break;
        case "X":
          replaceText(document.getElementById("pcerror"), postalcode + text_isnt);
          break;
        case "N":
          replaceText(document.getElementById("pcerror"), postalcode + text_notv);
          break;
        case "0":
          replaceText(document.getElementById("pcerror"), 'Server error.');
          break;
        default:
      }
	}
    if (price_a_reg.length == 0) price_a_reg = "--"; else if (price_a_reg == "null") price_a_reg = "n/a"; else if (price_a_reg == "0") price_a_reg = text_free; else price_a_reg = "$"+price_a_reg;
	if (price_b_reg.length == 0) price_b_reg = "--"; else if (price_b_reg == "null") price_b_reg = "n/a"; else if (price_b_reg == "0") price_b_reg = text_free; else price_b_reg = "$"+price_b_reg;
	if (price_c_reg.length == 0) price_c_reg = "--"; else if (price_c_reg == "null") price_c_reg = "n/a"; else if (price_c_reg == "0") price_c_reg = text_free; else price_c_reg = "$"+price_c_reg;
	if (price_d_reg.length == 0) price_d_reg = "--"; else if (price_d_reg == "null") price_d_reg = "n/a"; else if (price_d_reg == "0") price_d_reg = text_free; else price_d_reg = "$"+price_d_reg;
	if (price_e_reg.length == 0) price_e_reg = "--"; else if (price_e_reg == "null") price_e_reg = "n/a"; else if (price_e_reg == "0") price_e_reg = text_free; else price_e_reg = "$"+price_e_reg;
	if (price_f_reg.length == 0) price_f_reg = "--"; else if (price_f_reg == "null") price_f_reg = "n/a"; else if (price_f_reg == "0") price_f_reg = text_free; else if (price_f_reg == "-1") price_f_reg = text_contact; else price_f_reg = "$"+price_f_reg;
	if (price_g_reg.length == 0) price_g_reg = "--"; else if (price_g_reg == "null") price_g_reg = "n/a"; else if (price_g_reg == "0") price_g_reg = text_free; else if (price_g_reg == "-1") price_g_reg = text_contact; else price_g_reg = "$"+price_g_reg;
	if (price_h_reg.length == 0) price_h_reg = "--"; else if (price_h_reg == "null") price_h_reg = "n/a"; else if (price_h_reg == "0") price_h_reg = text_free; else if (price_h_reg == "-1") price_h_reg = text_contact; else price_h_reg = "$"+price_h_reg;
	if (price_a_del.length == 0) price_a_del = "--"; else if (price_a_del == "null") price_a_del = "n/a"; else if (price_a_del == "0") price_a_del = text_free; else price_a_del = "$"+price_a_del;
	if (price_b_del.length == 0) price_b_del = "--"; else if (price_b_del == "null") price_b_del = "n/a"; else if (price_b_del == "0") price_b_del = text_free; else price_b_del = "$"+price_b_del;
	if (price_c_del.length == 0) price_c_del = "--"; else if (price_c_del == "null") price_c_del = "n/a"; else if (price_c_del == "0") price_c_del = text_free; else price_c_del = "$"+price_c_del;
	if (price_d_del.length == 0) price_d_del = "--"; else if (price_d_del == "null") price_d_del = "n/a"; else if (price_d_del == "0") price_d_del = text_free; else price_d_del = "$"+price_d_del;
	if (price_e_del.length == 0) price_e_del = "--"; else if (price_e_del == "null") price_e_del = "n/a"; else if (price_e_del == "0") price_e_del = text_free; else price_e_del = "$"+price_e_del;
	if (price_f_del.length == 0) price_f_del = "--"; else if (price_f_del == "null") price_f_del = "n/a"; else if (price_f_del == "0") price_f_del = text_free; else if (price_f_del == "-1") price_f_del = text_contact; else price_f_del = "$"+price_f_del;
	if (price_g_del.length == 0) price_g_del = "--"; else if (price_g_del == "null") price_g_del = "n/a"; else if (price_g_del == "0") price_g_del = text_free; else if (price_g_del == "-1") price_g_del = text_contact; else price_g_del = "$"+price_g_del;
	if (price_h_del.length == 0) price_h_del = "--"; else if (price_h_del == "null") price_h_del = "n/a"; else if (price_h_del == "0") price_h_del = text_free; else if (price_h_del == "-1") price_h_del = text_contact; else price_h_del = "$"+price_h_del;
    replaceText(document.getElementById("a_reg"), price_a_reg);
    replaceText(document.getElementById("b_reg"), price_b_reg);
    replaceText(document.getElementById("c_reg"), price_c_reg);
    replaceText(document.getElementById("d_reg"), price_d_reg);
    replaceText(document.getElementById("e_reg"), price_e_reg);
    replaceText(document.getElementById("f_reg"), price_f_reg);
    replaceText(document.getElementById("g_reg"), price_g_reg);
    replaceText(document.getElementById("h_reg"), price_h_reg);
    replaceText(document.getElementById("a_del"), price_a_del);
    replaceText(document.getElementById("b_del"), price_b_del);
    replaceText(document.getElementById("c_del"), price_c_del);
    replaceText(document.getElementById("d_del"), price_d_del);
    replaceText(document.getElementById("e_del"), price_e_del);
    replaceText(document.getElementById("f_del"), price_f_del);
    replaceText(document.getElementById("g_del"), price_g_del);
    replaceText(document.getElementById("h_del"), price_h_del);
	}
  } else if (postalcode.length==6) {
    replaceText(document.getElementById("pcerror"), postalcode + text_notv);
  }
  var postalcodeprefix = postalcode.substr(0,3);
  if (pcprefix != postalcodeprefix) {
    pcprefix = postalcodeprefix;
    if (postalcodeprefix.search(/[A-CEGHJ-NPR-TV-Z][0-9][A-CEGHJ-NPR-TV-Z]/gi)==0) {
      clearText(document.getElementById("pcerror"));
      clearText(document.getElementById("pcoutput"));
      replaceText(document.getElementById("a_reg"), "--");
      replaceText(document.getElementById("b_reg"), "--");
      replaceText(document.getElementById("c_reg"), "--");
      replaceText(document.getElementById("d_reg"), "--");
      replaceText(document.getElementById("e_reg"), "--");
      replaceText(document.getElementById("f_reg"), "--");
      replaceText(document.getElementById("g_reg"), "--");
      replaceText(document.getElementById("h_reg"), "--");
      replaceText(document.getElementById("a_del"), "--");
      replaceText(document.getElementById("b_del"), "--");
      replaceText(document.getElementById("c_del"), "--");
      replaceText(document.getElementById("d_del"), "--");
      replaceText(document.getElementById("e_del"), "--");
      replaceText(document.getElementById("f_del"), "--");
      replaceText(document.getElementById("g_del"), "--");
      replaceText(document.getElementById("h_del"), "--");
      var url = "mpc2z.php?pcp=" + escape(postalcodeprefix);
      request.open("GET",url,true);
      request.onreadystatechange = updatePage;
      request.send(null);
    }
  }
}

function updatePage() {
  if ((request.readyState == 4) && (request.status == 200)) {
    requestreceived = true;
    zoneprices = request.responseXML;
    if (postalcode.length == 6) {
      getZone();
    }
  }
}

function noEnter() {
  return !(window.event && window.event.keyCode == 13);
}

