//Author: ZhiJian Ye
//Date: Oct 10,2007
//AjaxConnector: used for establishing XMLHttp object for client - server communication

function AjaxConnector()
{
			// Create function is used privately inside Ajax Connector class to create an XMLHttpRequest object
			var create  = function(){
       							 try{
										return new XMLHttpRequest();
									}catch(error){
													try{ return new ActiveXObject("Microsoft.XMLHTTP");}catch(error){alert(error)} 
											 	};
        	
			}
			
			//initiate an xmlhttp object creation
			// Connect: connect to server side script for performing certain task
			//url: server script url
			//callbackFunction : function to be called after ready stage 
			//args: passing argments 
			//async: specification on how the call function reactor after issuing a call, default: async
			
			this.connect = function(url, callbackFunction, method, args, async){       
			var ajaxObject = create() // local variable created by private function
			if(ajaxObject)
			{
           			 	ajaxObject.onreadystatechange = function(){
                				if(ajaxObject.readyState==4 ||ajaxObject.readyState=="complete")
                    			callbackFunction(ajaxObject.responseText)
							}
           
      			 if(!method) method = "GET";
            	 if(!args) args = null;
            	 if(async == null) async = true;
               	 ajaxObject.open(method, url, async);
                 if(method == "POST")
                 ajaxObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                 ajaxObject.send(args);
        	}
		}
}




