// Ajax Functions
// Written by David Ian Bennett
// http://www.voyagerweb.co.uk

var xmlHttp = createXmlHttpRequestObject();

function createXmlHttpRequestObject() {
  var xmlHttp;
  if (window.ActiveXObject) {
    try {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(e) {
      xmlHttp = false;
    }
  } else {
    try {
      xmlHttp = new XMLHttpRequest();
    }
    catch(e) {
      var xmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0',
                                      'MSXML2.XMLHTTP.5.0',
                                      'MSXML2.XMLHTTP.4.0',
                                      'MSXML2.XMLHTTP.3.0',
                                      'MSXML2.XMLHTTP',
                                      'Microsoft.XMLHTTP');
      for (var i=0; i<xmlHttpVersions.length && !xmlHttp; i++) {
        try {
          xmlHttp = new ActiveXObject(xmlHttpVersions[i]);
        }
        catch (e) {}
      }                                
      xmlHttp = false;
    }
  }

  if (!xmlHttp) {
    alert('Error Creating XMLHttpRequest Object');
  } else {
    return xmlHttp;
  }
}

function checkTerms() {
  if (!document.getElementById('accept').checked) { 
    alert('Do you accept our rates for this rate card?\n\nPlease acknowledge by checking box..');
    return false;
  }
}

function checkTerms2() {
  if (!document.getElementById('accept').checked) { 
    alert('Do you accept our terms and conditions?\n\nPlease acknowledge by checking box..');
    return false;
  }
}

function checkRateCode() {
  if (xmlHttp.readyState==4 || xmlHttp.readyState==0) {
    try {
        rateCardCode = document.getElementById('Rate_Card').value;
        xmlHttp.open("GET","open_account.php?checkCode="+rateCardCode+"&isForm=yes",true);
        xmlHttp.setRequestHeader('Content-Type', 
                                 'application/x-www-form-urlencoded; charset=UTF-8');
        xmlHttp.onreadystatechange = handleServerResponse;
        xmlHttp.send(null);
    }
    catch (e) {
      alert("Can`t connect to server:"+e.toString());
    }
  } else {
    setTimeout('checkRateCode()',1000);
  }
}

function checkRateCodeLink() {
  if (xmlHttp.readyState==4 || xmlHttp.readyState==0) {
    try {
        rateCardCode = document.getElementById('Rate_Card').value;
        xmlHttp.open("GET","open_account.php?checkCode="+rateCardCode+"&isForm=no",true);
        xmlHttp.setRequestHeader('Content-Type', 
                                   'application/x-www-form-urlencoded; charset=UTF-8');
        xmlHttp.onreadystatechange = handleServerResponse;
        xmlHttp.send(null);
    }
    catch (e) {
      alert("Can`t connect to server:"+e.toString());
    }
  } else {
    setTimeout('checkRateCodeLink()',1000);
  }
}

function responseHeaderMessage(msg) {
  switch (msg) {
    case 'ok':
    msg    = 'Code: '+document.getElementById('Rate_Card').value+'\n\nRate Card Code is VALID!';
    alert(msg);
    break;
    case 'wrong':
    msg    = 'Code: '+document.getElementById('Rate_Card').value+'\n\nRate Card Code is INVALID';
    alert(msg);
    break;
    case 'nocode':
    msg    = 'Please enter a valid rate card code..';
    alert(msg);
    break;
  }
  return false;
}

function handleServerResponse() {
  if (xmlHttp.readyState==4) {
    if (xmlHttp.status==200) {
      try {
        var xmlResponse  = xmlHttp.responseXML;
        var rootNodeName = xmlResponse.documentElement.nodeName;
        if (!xmlResponse || !xmlResponse.documentElement) {
          throw("Invalid XML Structure:\n"+xmlHttp.responseText);
        } else if (rootNodeName=='parsererror') {
          throw("Invalid XML Structure:\n"+xmlHttp.responseText);
        } else {
          xmlDoc      = xmlResponse.documentElement;
          msg         = xmlDoc.getElementsByTagName('message')[0].firstChild.data;
          responseHeaderMessage(msg);
        }
      }
      catch(e) {
        alert('Error reading response: '+e.toString());
      }
    } else {
      alert('There was a problem accessing the server:'+xmlHttp.statusText);
    }
  }
}
