var loadstatustext="<img src='/images/loading.gif' /> "; 
var bustcachevar=1; //Prevent potential caching of external pages after initial request? (1=Yes, 0=No)

function loadpage(page_request, containerid) {
  if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) {
    var rt = page_request.responseText;
    if (rt.substr(0,9) !== 'redirect:') {
      //alert(rt.substr(0,8));
      if (rt.substr(0,8) == 'refresh:') {
        //alert(rt.substr(8));
        loadreport(rt.substr(8),containerid,'');
      } else {
        if (rt.substr(0,16) == 'Invalid Password') {
          document.getElementById(containerid).innerHTML='';
          alert(rt.substr(0,16));
          if (!isNaN(rt.substr(16,1))) {
            document.getElementById(containerid).innerHTML=rt.substr(16);
          }
        } else {
          document.getElementById(containerid).innerHTML=page_request.responseText;
        }
      }
    } else {
      var nurl = rt.substr(9);
      window.location.href=nurl;
    }
  }
}

function loadreport(url,containerid,loadtext) {
  var page_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari etc
    page_request = new XMLHttpRequest();
  } else if (window.ActiveXObject) { // IE
    try {
      page_request = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
      try {
        page_request = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e) {alert("Failed");}
    }
  } else {
    alert("Failed");
    return false;
  }
  if (loadtext !== '') {    
    document.getElementById(containerid).innerHTML = loadstatustext + loadtext.substr(0,8);
  }
  page_request.onreadystatechange=function() {
    loadpage(page_request, containerid);
  };
  var bustcacheparameter = '';
  if (bustcachevar) {
    bustcacheparameter=(url.indexOf("?") != -1) ? "&"+new Date().getTime() : "?"+new Date().getTime();
  }
  page_request.open('GET',url+bustcacheparameter,true);
  page_request.send(null); 
}

