/**
 * basic json functions
 *
 * [2007-10-01 as] created
 *
 * $Rev: 480 $ Revision of last commit
 * $Author: stengel $ Author of last commit
 * $Date: 2008-09-26 08:30:09 +0200 (Fr, 26 Sep 2008) $ Date of last commit
 */
 function getRequestObject()
{
  var requestObject = null;
  try
  {
    // non IE
    requestObject = new XMLHttpRequest();
  }
  catch ( Exception )
  {
    try
    {
      // IE
      requestObject = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch ( Exception )
    {
      throw new Error("XMLHttpRequest not supported");
    }
  }

  return requestObject;
}


function JSONRequest( $request, $callback)
{
  var requestObject, query, host;
  
  try
  {   	 
    requestObject = getRequestObject();

    // url-parse in host/query
    var pos = $request.indexOf("?");
    host = $request.substring(0, pos);    
    query = $request.substring((pos+1), $request.length);    

    requestObject.open("POST", host, true);
    requestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");      
    requestObject.setRequestHeader("charset", "utf-8");
    requestObject.send(query);    
         
    requestObject.onreadystatechange = function() {
      switch( requestObject.readyState ) {
        case 4:        
          if(requestObject.status == 200) {
          if ( $callback )
          {
            $callback (requestObject);   
          }
          }
        break;
      }
    }
  }
  catch ( Exception )
  {
    alert( "Error occured:" + Exception );
  }
}


