// =============================================================================
// /////////////////////// Written By Ahmad J Hamad ////////////////////////////
// =============================================================================

var xhr = createXMLHttpRequest();
var xro;
var xto;
// XMLHttpRquest Timeout object
var params = '';

// xhr object status
var NOT_INITIALIZED = 0;
var OPEN = 1;
var SEND = 2;
var RECEIVED = 3;
var COMPLETE = 4;


// Http reponse status
var OK = 200;
var NOT_FOUND = 404;

// =============================================================================
//
// =============================================================================
function createXMLHttpRequest()
{
   var xhr = false;
   try {
      xhr  = new ActiveXObject( "Microsoft.XMLHTTP" );
   }
   catch( e ) {
      try {
         xhr = new XMLHttpRequest();
      }
      catch( ex ) {
      }
   }
   return xhr;
}


// =============================================================================
//
// =============================================================================
function submitGet( url, params, handler )
{
   if( !xhr ){
      return;
   }
   xhr.open( 'GET', url + '?' + params, true );
   xhr.setRequestHeader( "X-Requested-With", "XMLHttpRequest" );
   xhr.onreadystatechange = handler;
   xhr.send( null );
}

// =============================================================================
//
// =============================================================================
function submitPost( url, params, handler )
{
   if( !xhr ){
      return;
   }
   xhr.open( 'POST', url, true );
   xhr.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
   xhr.setRequestHeader( "Content-length", params.length );
   xhr.setRequestHeader( "Connection", "close" );
   xhr.setRequestHeader( "X-Requested-With", "XMLHttpRequest" );
   xhr.onreadystatechange = handler;
   xhr.send( params );
}
