function getOhsoBrowser() {
	var browser;

	if (navigator.userAgent.indexOf("Opera")!=-1 && document.getElementById) 
		browser = new ohsoOperaBrowser();

	if (document.all) 
		browser = new ohsoIEBrowser();

	if (document.layers) 
		browser = new ohsoNNBrowser();

	if (!document.all && document.getElementById) 
		browser = new ohsoMOBrowser();
	
	return browser;
	
}

/* Opera */
function ohsoOperaBrowser() {
	this.getLayer = getMOLayer;
	this.setLayerContent = setMOLayerContent;
	this.setLayerStyleProperty = setMOLayerStyleProperty;
}

/* IE 4+ */
function ohsoIEBrowser() {
	this.getLayer = getIELayer;
	this.setLayerContent = setIELayerContent;
	this.setLayerStyleProperty = setIELayerStyleProperty;
}

/* Netscape 4 */
function ohsoNNBrowser() {
	this.getLayer = getNNLayer;
	this.setLayerContent = setNNLayerContent;
	this.setLayerStyleProperty = setNNLayerStyleProperty;
}

/* Mozilla. Netscape 6 + */
function ohsoMOBrowser() {
	this.getLayer = getMOLayer;
	this.setLayerContent = setMOLayerContent;
	this.setLayerStyleProperty = setMOLayerStyleProperty;
}


/* 
	Browser specific functions 
	reference only by generic browser object functions.
	
	i.e do not call getLayer();
	
	call
	
	browserObj = getOhsoBrowser();
	browserObj.getLayer("div");
	
	
*/

function getIELayer(layerName) {
	return document.all[layerName];
}

function setIELayerContent(layerName, content) {
	getIELayer(layerName).innerHTML = content;
}

function setIELayerStyleProperty(layerName, attribute, value) {
	var layer = getIELayer(layerName);
	layer.style[attribute] = value;
}

function getNNLayer(layerName) {
	return document.layers[layerName];
}

function setNNLayerContent(layerName, content) {
	var layer = getNNLayer(layerName);
	layer.document.open();
	layer.document.write(content);
	layer.documnet.close();
}

function setNNLayerStyleProperty(layerName, attribute, value) {
	var layer = getNNLayer(layerName);
	layer[attribute] = value;
}


function getMOLayer(layerName) {
	return document.getElementById(layerName);
}

function setMOLayerContent(layerName, content) {
	getMOLayer(layerName).innerHTML = content;
}

function setMOLayerStyleProperty(layerName, attribute, value) {
	var layer = getMOLayer(layerName);
	layer.style[attribute] = value;
}
