﻿  // function to create an XMLHttpClient in a cross-browser manner
  function initXMLHttpClient() {
      var xmlhttp;
      try {
          // Mozilla / Safari / IE7
          xmlhttp = new XMLHttpRequest();
      } catch (e) {
           // IE
           var XMLHTTP_IDS = new Array('MSXML2.XMLHTTP.5.0',
                                     'MSXML2.XMLHTTP.4.0',
                                     'MSXML2.XMLHTTP.3.0',
                                     'MSXML2.XMLHTTP',
                                     'Microsoft.XMLHTTP' );
          var success = false;
          for (var i=0;i < XMLHTTP_IDS.length && !success; i++) {
              try {
                   xmlhttp = new ActiveXObject(XMLHTTP_IDS[i]);
                      success = true;
                } catch (e) {}
          }
          if (!success) {
              throw new Error('Unable to create XMLHttpRequest.');
          }
     }
     return xmlhttp;
 }

 function calculatePremium(guid, newTip, newBop) {
         
     var xmlhttp = initXMLHttpClient();
     xmlhttp.open("get", "calcpremium.aspx?guid=" + guid + "&newtip=" + newTip + "&newbop=" + newBop, false);
     xmlhttp.send();
     var result = xmlhttp.responseText;
     if (result.substring(0, 6) != "status") {
         alert("It seems we are experiencing problems with our calculator. Please try again later.");
         return;
     }
     
     var aryResults = result.split("|");
     //the message we get back should look like
     //status:error|message:Blah blah blah
     //OR
     //status:success|message:120.00,12.45,132.45 - depicting the tip, bop and total
     if (aryResults[0].split(":")[1] == "error") {
         //we have an error
         alert("Error: " + aryResults[1].split(":")[1]);
         document.getElementById("tdCalcPremium").innerHTML = "N/A";
         return;
     };
     if (aryResults[0].split(":")[1] == "success") {
         //we have received the new premium
         document.getElementById("spnTipPremium").innerHTML = "R" + aryResults[1].split(":")[1].split(",")[0];
         document.getElementById("spnBopPremium").innerHTML = "R" + aryResults[1].split(":")[1].split(",")[1];
         document.getElementById("tdCalcPremium").innerHTML = "R" + aryResults[1].split(":")[1].split(",")[2];
     };
     
 }
