
var isDHTML=0;
var isID=0;
var isAll=0;
var isLayers=0;
var isWindows=0;
var isMacIE45=0;

if (document.getElementById) {isID = 1; isDHTML = 1;}
else {
	if (document.all) {isAll = 1; isDHTML = 1;}
	else {
		browserVersion = parseInt(navigator.appVersion);
		if (document.layers) {isLayers = 1; isDHTML = 1;}
}}
if (navigator.platform && navigator.platform == "Win32") {isWindows=1;}
if (!isAll && !isWindows && getExplorerVersion() == 4.5) {isMacIE45=1;}

function getPos (obj) { 
	x=0; width=0;
	y=0; height=0;
	if (obj.style.pixelWidth) {
		width=obj.style.pixelWidth;
		height=obj.style.pixelHeight;
	}	
	if (!isLayers) {
		var recurseObj = obj.obj;
		var lastOffsetLeft = 0;
		var lastOffsetTop = 0;
		while(recurseObj){
			if( recurseObj.leftMargin && ! isWindows ) x += parseInt(recurseObj.leftMargin);
			if( recurseObj.topMargin && ! isWindows ) y += parseInt(recurseObj.topMargin);
			
			if( (recurseObj.offsetLeft != lastOffsetLeft) && recurseObj.offsetLeft ) x += parseInt(recurseObj.offsetLeft);
			if( (recurseObj.offsetTop != lastOffsetTop) && recurseObj.offsetTop ) y += parseInt(recurseObj.offsetTop);
			
			if( recurseObj.offsetLeft != 0 ) lastOffsetLeft = recurseObj.offsetLeft;
			if( recurseObj.offsetTop != 0 ) lastOffsetTop = recurseObj.offsetTop;
			
			if (width==0 && recurseObj.offsetWidth) width = recurseObj.offsetWidth;
			if (height==0 && recurseObj.offsetHeight) height = recurseObj.offsetHeight;
			
			recurseObj = isMacIE45 ? recurseObj.parentElement : recurseObj.offsetParent;
		}
	} else {
		x = obj.obj.pageX;
		y = obj.obj.pageY;
		width = obj.obj.clip.width;
		height = obj.obj.clip.height;
	}
 	obj.top = y;
	obj.left = x;
	obj.width = width;
	obj.height = height;
}

function findDomObj(name,d) {
	var i,obj;
	if (!d) {d=document;}
	if (!obj && isAll) {
		obj=d.all[name]; }
	for (i=0; !obj && i < d.forms.length; i++) {
		obj=d.forms[i][name]; }
	if (isLayers) { obj = findLayersObj(document,name); }
	if (!obj && isID) {	obj=d.getElementById(name); }
//	if (!obj) { alert('findDomObj Failed to find: '+name+', isLayers: '+isLayers); }
	return obj;
}

function findLayersObj(recurseObj,name) {
	var returnObj = false;
	for (var i=0;i<recurseObj.layers.length;i++) {
		if (recurseObj.layers[i].id == name) returnObj = recurseObj.layers[i];
		else if (recurseObj.layers[i].layers.length) var tmp = findLayersObj(recurseObj.layers[i].document,name);
		if (tmp) returnObj = tmp; }
	if (!returnObj) {
		for (var i=0;i<recurseObj.images.length;i++) {
			if (recurseObj.images[i].name == name) returnObj = recurseObj.images[i];
		}
	}
	if (!returnObj) {
		for (var i=0;i<recurseObj.links.length;i++) {
			if (recurseObj.links[i].name == name) returnObj = recurseObj.links[i];
		}
	}
	return returnObj;
}

function domObj(name,withPosition) {
	this.obj = findDomObj(name);
	if (!isLayers) this.style = this.obj.style;
	else { this.style = this.obj; }
	if (withPosition) {	getPos(this); }
}

function showTip(id,lnkid) {
	id = id.toString();
	obj = new domObj('tip_'+id,true);
	lnk = new domObj(lnkid,true);
	var x = lnk.left + 10;
	if (x > 736-obj.width) x = 736-obj.width;
	var y = lnk.top-obj.height;
	if (y < 0) y = lnk.top+lnk.height;
	obj.style.left = x;
	obj.style.top = y;
	obj.style.visibility = 'visible';
}

function hideTip(id) {
	id = id.toString();
	obj = new domObj('tip_'+id,true);
	obj.style.visibility = 'hidden';
}