function getXmlHttpRequestObject() {
   if (window.XMLHttpRequest) {
      // code for IE7+, Firefox, Chrome, Opera, Safari
      return new XMLHttpRequest();
   } else if(window.ActiveXObject) {
      // code for IE6, IE5
      return new ActiveXObject("Microsoft.XMLHTTP");
   } else {
      alert("Your browser does not support XMLHTTP!");
   }
}

var searchReq = getXmlHttpRequestObject();

function getCountryRates() {

   if (searchReq.readyState == 4 || searchReq.readyState == 0) {
      var str = escape(document.getElementById('countrytxt').value);

      searchReq.open("GET", 'countryRates.php?c=' + str, true);
      searchReq.onreadystatechange = handleCountryRates;
      searchReq.send(null);
   }

}

function handleCountryRates() {

   if(searchReq.readyState == 4) {

      var wrapper = document.getElementById('ir_wrapper');
      var ss = document.getElementById('ir_rates');
      var str = searchReq.responseText;

      if(str.length > 0) {

         ss.innerHTML = str;
         wrapper.style.display = 'block'
         document.getElementById('search_suggest').style.display = 'none';

      } else {
         document.getElementById('search_suggest').style.display = 'none';
         var cstr = document.getElementById('countrytxt').value.toString();
         var c = cstr.substring(0,1);
         var fl = c.toUpperCase();
         var newc = fl.concat(cstr.substr(1,50));
         alert("A match was not found. Please be sure to check your spelling of '" +
             newc + "'.");
          

      }

   }

}

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest() {
   if (searchReq.readyState == 4 || searchReq.readyState == 0) {
      var str = escape(document.getElementById('countrytxt').value);

      searchReq.open("GET", 'countrySuggest.php?c=' + str, true);
      searchReq.onreadystatechange = handleSearchSuggest;
      searchReq.send(null);
   }
}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
   if (searchReq.readyState == 4) {
      var ss = document.getElementById('search_suggest');
      ss.innerHTML = '';
      var searchbox = document.getElementById('countrytxt');
      //get position of txt field
      var pos = findPosition(searchbox);
      //set position of search_suggest
      ss.style.left = pos[0] + 'px';
      ss.style.top = pos[1] + 'px';

      if(!navigator.appName.search(/microsoft/i) > 0) {
         ss.style.marginLeft = '-1px';
      }
      ss.style.display = 'block';
        
      var str = searchReq.responseText.split("\n");

      if(str.length == 1) {;
         document.getElementById('search_suggest').style.display = 'none';
      } else {
         for(i=0; i < str.length - 1; i++) {
            //Build our element string.  This is cleaner using the DOM, but
            //IE doesn't support dynamically added attributes.
            var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
            suggest += 'onmouseout="javascript:suggestOut(this);" ';
            suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
            suggest += 'class="suggest_link">' + str[i] + '</div>';
            ss.innerHTML += suggest;
         }
      }
   }
}

//Mouse over function
function suggestOver(div_value) {
   div_value.className = 'suggest_link_over';
}

//Mouse out function
function suggestOut(div_value) {
   div_value.className = 'suggest_link';
}

//Click function
function setSearch(value) {
   document.getElementById('countrytxt').value = value;
   document.getElementById('search_suggest').innerHTML = '';
   document.getElementById('search_suggest').style.display = 'none';
}

function findPosition( oElement ) {
   if( typeof( oElement.offsetParent ) != 'undefined' ) {
      for( var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent ) {
         posX += oElement.offsetLeft;
         posY += oElement.offsetTop;
      }
      return [ posX, posY ];
   } else {
      return [ oElement.x, oElement.y ];
   }
}

function hideRateTable() {
   document.getElementById('ir_wrapper').style.display = 'none';
   document.getElementById('search_suggest').style.display = 'none';
}