function toggleBox( myLayer, iState ){ // 1 visible, 0 hidden
  if( document.layers ){  //NN4+
    document.layers[myLayer].visibility = iState ? "show" : "hide";
  } else if( document.getElementById ){  //gecko(NN6) + IE 5+
    var obj = document.getElementById(myLayer);
    obj.style.visibility = iState ? "visible" : "hidden";
    obj.style.visibility = iState ? "visible" : "hidden";
  } else if( document.all ){  // IE 4
    document.all[myLayer].style.visibility = iState ? "visible" : "hidden";
  }
}

function loadurl( dest, myDiv, silent ){
  var silent = (silent == null) ? 0 : silent;
  
  //alert( silent );

  if( silent != 1 ){
    toggleBox( "statusbox", 1 );
  }
  
  //alert( dest );
  //alert( myDiv );
  divLoc = myDiv;
  
  try {
    // Moz supports XMLHttpRequest. IE uses ActiveX.
    // browser detction is bad. object detection works for any browser
    xmlhttp = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
  } catch( e ){
    // browser doesn't support ajax. handle however you want
  }
  
  // the xmlhttp object triggers an event everytime the status changes
  // triggered() function handles the events
  xmlhttp.onreadystatechange = triggered;
  
  // open takes in the HTTP method and url.
  xmlhttp.open( "GET", dest );
  
  // send the request. if this is a POST request we would have
  // sent post variables: send("name=aleem&gender=male)
  // Moz is fine with just send(); but
  // IE expects a value here, hence we do send(null);
  xmlhttp.send( null );

}

function triggered(){
  // if the readyState code is 4 (Completed)
  // and http status is 200 (OK) we go ahead and get the responseText
  // other readyState codes:
  // 0=Uninitialised 1=Loading 2=Loaded 3=Interactive
  if( ( xmlhttp.readyState == 4 ) && ( xmlhttp.status == 200 ) ){
    // xmlhttp.responseText object contains the response.
    document.getElementById( divLoc ).innerHTML = xmlhttp.responseText;
    toggleBox( "statusbox", 0 );
  }
}