function sniffer() {
	ua=navigator.userAgent.toLowerCase();
	this.linux = (ua.indexOf("linux")>0) ? true : false;
	this.win = (ua.indexOf("win")>0) ? true : false;
	this.win = (ua.indexOf("win")>0) ? true : false;
	this.win95 = ((ua.indexOf("win95")!=-1) || (ua.indexOf("windows 95")!=-1));
	this.win98 = ((ua.indexOf("win98")!=-1) || (ua.indexOf("windows 98")!=-1));
	this.winme = ((ua.indexOf("win 9x 4.90")!=-1));
	this.win2k = ((ua.indexOf("windows nt 5.0")!=-1));
	this.winnt = ((ua.indexOf("winnt")!=-1) || (ua.indexOf("windows nt")!=-1));
	this.mac = (ua.indexOf("mac")>0) ? true : false;
	this.msd = (document.all) ? true : false;
	this.w3d = (document.getElementById) ? true : false;
	b=navigator.appName;
	if (b=="Netscape") this.b="ns";
	else if ((b=="Opera") || (navigator.userAgent.indexOf("Opera")>0)) this.b = "op";
	else if (b=="Microsoft Internet Explorer") this.b="ie";
	//if (!b) alert('Unidentified browser./nThis browser is not supported,');
	this.version=navigator.appVersion;
	this.v=parseInt(this.version);
	this.v10=parseInt(parseFloat(this.version)*10);
	this.ns=(this.b=="ns" && this.v>=4) ? true : false;
	this.ns4=(this.b=="ns" && this.v==4) ? true : false;
	this.ns40=(this.b=="ns" && this.v10==40) ? true : false;
	this.ns45=(this.b=="ns" && this.v10==45) ? true : false;
	this.ns6=(this.b=="ns" && this.v==5) ? true : false;
	this.ie=(this.b=="ie" && this.v>=4) ? true : false;
	this.ie4=(this.version.indexOf('MSIE 4')>0 || (this.ie && this.mac)) ? true : false;
	this.ie45=(this.version.indexOf('MSIE 4.5')>0) ? true : false;
	this.ie5=(this.version.indexOf('MSIE 5')>0) ? true : false;
	this.ie55=(this.version.indexOf('MSIE 5.5')>0) ? true : false;
	this.ie6=(this.version.indexOf('MSIE 6')>0) ? true : false;
	this.op=(this.b=="op" && this.v>=3) ? true : false;
	this.op4=(this.b=="op" && this.v==4) ? true : false;
	this.op5=(this.b=="op" && this.v==5) ? true : false;
}
var is = new sniffer();


function getObject(id) {
	var d = document;
	var ret = false;
	if (arguments.length > 0 && typeof(is) != "undefined") {
		if (is.ns4) {
			if (typeof(d.all) == "undefined") {
				d.all = [];
				findAllObjects();
			}	
			//ret = findObject(id);
			ret = d.all[id];
		}
		else if (is.msd) {
			ret = d.all[id];
		}
		else if (is.w3d) {
			ret = d.getElementById(id);
			if (ret==null) ret = d.getElementsByName(id)[0];
		}
	}
	return ret;
}

function findObject(id, obj) {
	var ret = false;
	if (arguments.length == 1) {
		var obj = document;
	}
	if (arguments.length > 0) {
		for (var i=0; i<obj.images.length; i++) {
			if (obj.images[i].name == id) {
				return obj.images[i];
			}
		}
		for (var i=0; i<obj.forms.length; i++) {
			if (obj.forms[i].name == id) {
				return obj.forms[i];
			}
			for (var j=0;j<obj.forms[i].elements.length; j++) {
				if (obj.forms[i].elements[j].name == id) {
					return obj.forms[i].elements[j];
				}
			}
		}
		for (var i=0; i<obj.layers.length; i++) {
			if (obj.layers[i].name == id) {
				return obj.layers[i];
			}
			ret = findObject(id, obj.layers[i].document);
			if (ret != false) {
				return ret;
			}
		}
	}
	return ret;
}

function findAllObjects(obj) {
	if (is.ns4) {
		if (arguments.length == 0) {
			var obj = document;
		}
		for (var i=0; i<obj.images.length; i++) {
			if (typeof(obj.images[i].name) != "undefined" && obj.images[i].name != "") {
				addObject(obj.images[i].name,obj.images[i]);
			}
		}
		for (var i=0; i<obj.forms.length; i++) {
			if (typeof(obj.forms[i].name) != "undefined" && obj.forms[i].name != "") {
				addObject(obj.forms[i].name,obj.forms[i]);
			}
			for (var j=0;j<obj.forms[i].elements.length; j++) {
				if (typeof(obj.forms[i].elements[j].name) != "undefined" && obj.forms[i].elements[j].name != "") {
					addObject(i+obj.forms[i].elements[j].name,obj.forms[i].elements[j]);
				}
			}
		}
		for (var i=0; i<obj.layers.length; i++) {
			if (typeof(obj.layers[i].name) != "undefined" && obj.layers[i].name != "") {
				addObject(obj.layers[i].name,obj.layers[i]);
			}
			findAllObjects(obj.layers[i].document);
		}
	}
	return false;
}

function addObject(id,obj) {
	var d = document;
	if (arguments.length > 1 && is.ns4) {
		if (typeof(d.all) == "undefined") {
			d.all = [];
		}
		d.all[id] = obj;
	}
}






function showLayer(id) {
	if (arguments.length > 0 && typeof(is) != "undefined") {
		var obj = getObject(id);
		if (obj) {
			if (is.ns4) {
				obj.visibility = 'show';
			}
			else if (is.ie4 || is.w3d) {
				obj.style.visibility = 'visible';
			}
		}
	}
}

function hideLayer(id) {
	if (arguments.length > 0 && typeof(is) != "undefined") {
		var obj = getObject(id);
		if (obj) {
			if (is.ns4) {
				obj.visibility = 'hide';
			}
			else if (is.ie4 || is.w3d) {
				obj.style.visibility = 'hidden';

			}
		}
	}
}



function showMenu(id) {
	var d = document;
	if (arguments.length > 0 && typeof(is) != "undefined") {
		if (typeof(d.activeMenu) == "undefined") {
			d.activeMenu = id;
		}
		if (d.activeMenu != id) {
			hideLayer(d.activeMenu+"h");
			hideLayer(d.activeMenu);
			hideLayer(d.activeMenu+"v");
			d.activeMenu = id;
		}
		showLayer(id+"h");
		showLayer(id);
		showLayer(id+"v");
		setTab('nglobal',id.substr(id.length-1,1));
	}
	if (is.ie) {
		//window.event.cancelBubble = true;
	}	
}

function hideMenu(id) {
	var d = document;
	if (is.ie4) {
		var val = getLayerRect(id);
		var x = window.event.clientX-1;
		var y = window.event.clientY-1;
		if (val) {
			if (val[0] < y && (val[2]+val[0]) > y && val[3] < x && (val[3]+val[1]) > x) {
				return false;
			}
		}
	}
	if (arguments.length > 0 && typeof(is) != "undefined") {
		if (is.ns4) {
			id = id.target.name;
		}
		if (typeof(d.activeMenu) != "undefined" && d.activeMenu == id) {
			hideLayer(id+"h");
			hideLayer(id);
			hideLayer(id+"v");
			//track("hidemenu() - id : "+id);
			setTab('nglobal',0);
		}
	}
	if (is.ie) {
		//window.event.cancelBubble = true;
	}
	return true;	
}

function countTab(id) {
	var ret = 0;
	if (arguments.length > 0) {
		var obj = true;
		while (obj) {
			obj=getObject(id+ret)
			ret++;
		}
	}
	return ret;
}

function showTab(id,val) {
	if (arguments.length > 1 && typeof(is) != "undefined") {
		var valct = countTab(id);
		if (valct > val) {
			showLayer(id+val);
			showLayer(id+val+"s");
			//showLayer(id+val+"sc");
			for(var i=0; i<valct; i++) {
				if (val != i) {
					hideLayer(id+i);
					hideLayer(id+i+"s");
					//hideLayer(id+i+"sc");
				}
			}
		}
	}
}

function setTab(id,val) {
	var d = document;
	if (arguments.length > 0) {
		var obj = getObject(id);
		if (obj) {
			tmp = obj.src.split("/");
			var src = tmp[tmp.length-1];
			src = src.substr(0,src.length-5);
			if (typeof(val) != "undefined") {
				src += val+'.gif';
			}
			else {
				src += src.substr(src.length-2,1)+'.gif';
			}
			swapImage(id,src);
		}
	}
}

function alertError(val) {
	alert("\n"+val+"\n");
}

function setBgcolor(obj,color) {
	if (arguments.length > 1 && typeof(is) != "undefined" && is.w3d && typeof(obj) != "undefined") {
		obj.style.background=color;
	}
}

function gotoLocation(obj) {
	if (arguments.length > 0) {
		val = obj.options[obj.selectedIndex].value;
		if (val != "") {
			document.location = val;
		}
	}
}


function errorHandler(message, url, line)
{
	alert(url + "\n\n" + line + " : " + message);
   return true;
}


domLoaded = true;