var GHM = {
    DOM:        Object,
    AJAX:       Object,
    Collection: Object
};

GHM.DOM.isInternetExplorer = (navigator.userAgent.indexOf("MSIE") >= 0);
GHM.DOM.isMozilla = (navigator.userAgent.indexOf("Gecko") >= 0);
GHM.DOM.isOpera = (navigator.userAgent.indexOf("Opera") >= 0);

GHM.AJAX = function(){

    //private method for returning an ajax enabled
    //object specific to a browser
    var ajaxObject = function(){
        try{return new XMLHttpRequest();}catch(ex){};
        try{return new ActiveXObject("Microsoft.XMLHTTP");}catch(ex){};
        try{return new SOAPCall();}catch(ex){};
    }//end ajaxObject()

    this.onError = function(error){
        alert(error);
    }//end onError()

    /// ajax.callPage("myPage.html", ajaxCallback); //call myPage.html and pass the contents to ajaxCallback.</example>
    this.callPage = function(url, callbackFunction, method, divid,readyStateOne, args, async){        
        try{
		
            	
            var ao = ajaxObject();
               
            ao.onreadystatechange = function(){
				if (ao.readyState==1) {
					showLoading();
					if(readyStateOne){readyStateOne();}
				}
                if(ao.readyState==4 || ao.readyState=="complete"){
					 
                    callbackFunction(ao.responseText,divid);
					hideLoading();
					//open_add();
                }
            };

          
                
            if(!method) method = "GET";
            if(!args) args = null;
            if(async == null) async = true;
                
            ao.open(method, url, async);
             if(method == "POST")
                ao.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                
            ao.send(args);
        }
        catch(ex){
            this.onError(ex);
        }
    }
}

