function Drowser() {
	this.oDrowserXmlHttp = null;
	this.aLoaded = new Array();
}
	Drowser.prototype.reOpen   = /Open: ([^\.]+)/;
	Drowser.prototype.reTarget = /Target: ([^\.]+)/;
	Drowser.prototype.doit = function(oEvent) {
		var oButton = fGEOBJ(oEvent);
		var sArgs   = new String(oButton.title);
		aOpen   = sArgs.match(this.reOpen);
		aTarget = sArgs.match(this.reTarget);

		if(aOpen.length < 2 | aTarget.length < 2)
			return(true); //Make browser open default link
		sOpen   = aOpen[1];
		sTarget = aTarget[1];
		
		if(isset(this.aLoaded[sTarget]))
			return(false);
		
		if(!isset(oElem = document.getElementById(sTarget)))
			return(true);
		
		oElem.innerHTML = "<h3>Loading</h3>Please wait...";

		this.aLoaded[oElem.id] = true;
		return(this.open(sOpen, oElem, oButton));
	}
	
	Drowser.prototype.open = function(sLink, oElem, oButton) {
		if(this.oDrowserXmlHttp == null)
			this.oDrowserXmlHttp = zXmlHttp.createRequest();
		sLink = sLink.replace(' ', '_');
		sLink += '/display:xontemp';
		
		oSelf = this;
		
		this.oDrowserXmlHttp.onreadystatechange = function() {
			if(oSelf.oDrowserXmlHttp.readyState == 4) {
				httpstatus = 300;
				try {
					httpstatus = oSelf.oDrowserXmlHttp.status;
				} catch(exception) {
					httpstatus = 300
				};
				if(httpstatus == 200) {
					var textToDisplay = oSelf.oDrowserXmlHttp.responseText;
					oElem.innerHTML = textToDisplay;
					oSelf.oDrowserXmlHttp.abort();
				};
				
			};
			return(false);
		};
		this.oDrowserXmlHttp.open("get", sLink, true);
		if(this.oDrowserXmlHttp.readyState == 1)
			this.oDrowserXmlHttp.send(null);
		return(false);
	}
	
function DrowserExec(oEvent) {
	return(oDrowser.doit(oEvent));	
}

function DrowserInit() {
	aElems = fGEOBJLI('a', 'drowser');
	for(i in aElems) {
    	eventMouseClick(aElems[i], DrowserExec);
	};
}

var oDrowser = new Drowser();
WindowOnload(DrowserInit);
