//
// ESTABLISH BROWSER AND PLATFORM
// ADAPTED FROM NETSCAPE WITH PERMISSION
//


var agt = navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);

var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) && (agt.indexOf('webtv')==-1));
var is_nav4 = (is_nav && (is_major == 4));
var is_nav4up = (is_nav && (is_major >= 4));
var is_nav5 = (is_nav && (is_major == 5));
var is_nav5up = (is_nav && (is_major >= 5));

var is_ie   = (agt.indexOf("msie") != -1);
var is_ie4  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5")==-1) );
var is_ie4up  = (is_ie && (is_major >= 4));
var is_ie5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5")!=-1) );
var is_ie5up  = (is_ie && !is_ie4);

var is_aol   = (agt.indexOf("aol") != -1);
var is_aol4  = (is_aol && is_ie4);

var is_opera = (agt.indexOf("opera") != -1);
var is_webtv = (agt.indexOf("webtv") != -1);

var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
var is_mac    = (agt.indexOf("mac")!=-1);

var nscp4 = is_nav4
var ie4 = is_ie4
var dom1 = (is_nav5up || is_ie5up)



var is_sun   = (agt.indexOf("sunos")!=-1);
var is_sun4  = (agt.indexOf("sunos 4")!=-1);
var is_sun5  = (agt.indexOf("sunos 5")!=-1);
var is_suni86= (is_sun && (agt.indexOf("i86")!=-1));
var is_irix  = (agt.indexOf("irix") !=-1);    // SGI
var is_irix5 = (agt.indexOf("irix 5") !=-1);
var is_irix6 = ((agt.indexOf("irix 6") !=-1) || (agt.indexOf("irix6") !=-1));
var is_hpux  = (agt.indexOf("hp-ux")!=-1);
var is_hpux9 = (is_hpux && (agt.indexOf("09.")!=-1));
var is_hpux10= (is_hpux && (agt.indexOf("10.")!=-1));
var is_aix   = (agt.indexOf("aix") !=-1);      // IBM
var is_aix1  = (agt.indexOf("aix 1") !=-1);    
var is_aix2  = (agt.indexOf("aix 2") !=-1);    
var is_aix3  = (agt.indexOf("aix 3") !=-1);    
var is_aix4  = (agt.indexOf("aix 4") !=-1);    
var is_linux = (agt.indexOf("inux")!=-1);
var is_sco   = (agt.indexOf("sco")!=-1) || (agt.indexOf("unix_sv")!=-1);
var is_unixware = (agt.indexOf("unix_system_v")!=-1); 
var is_mpras    = (agt.indexOf("ncr")!=-1); 
var is_reliant  = (agt.indexOf("reliantunix")!=-1);
var is_dec   = ((agt.indexOf("dec")!=-1) || (agt.indexOf("osf1")!=-1) || 
(agt.indexOf("dec_alpha")!=-1) || (agt.indexOf("alphaserver")!=-1) || 
(agt.indexOf("ultrix")!=-1) || (agt.indexOf("alphastation")!=-1)); 
var is_sinix = (agt.indexOf("sinix")!=-1);
var is_freebsd = (agt.indexOf("freebsd")!=-1);
var is_bsd = (agt.indexOf("bsd")!=-1);
var is_unix  = ((agt.indexOf("x11")!=-1) || is_sun || is_irix || is_hpux || is_sco ||is_unixware || is_mpras || is_reliant || is_dec || is_sinix || is_aix || is_linux || is_bsd || is_freebsd);


//
// CREATE APPROPRIATE OBJECT
//


function getObj(obj)
{	if (dom1)
	{	compLayr = document.getElementById(obj).style
	}
	else if (nscp4)
	{	compLayr = document.layers[obj]
	}
	else
	{	compLayr = document.all[obj].style
	}
	return compLayr
}


//
// CUSTOM APIs
//


function setTop(layr,num)
{	obj = getObj(layr)
	obj.top = num
}

function setLeft(layr,num)
{	obj = getObj(layr)
	if ((is_ie && is_mac) || (ie4))
	{	obj.posLeft = num	
	}
	else
	{	obj.left = num
	}
}

function getTop(layr)
{	obj = getObj(layr)
	if (dom1)
	{	return (document.getElementById(layr).offsetTop)
	}
	else if (nscp4)
	{	return (obj.top)
	}
	else
	{	return eval(layr + ".offsetTop")
	}
}

function getLeft(layr)
{	obj = getObj(layr)
	if ((is_ie && is_mac) || (ie4))
	{	return (obj.posLeft)
	}
	if (dom1)
	{	return (document.getElementById(layr).offsetLeft)
	}
	else if (nscp4)
	{	return (obj.left)
	}
	else
	{	return eval(layr + ".offsetLeft")
	}
}

function incTop(layr,num)
{	obj = getObj(layr)
	obj.top = getTop(layr) + num
}

function incLeft(layr,num)
{	obj = getObj(layr)
//	if (is_ie && is_mac)
//	{	obj.posLeft = getLeft(layr) + num
//	}
//	else
		obj.left = getLeft(layr) + num
//	}
}

function setZindex(layr,num)
{	obj = getObj(layr)
	obj.zIndex = num
}

function show(layr)
{	obj = getObj(layr)
	obj.visibility = "visible"
}

function hide(layr)
{	obj = getObj(layr)
	obj.visibility = "hidden"
}

function layerWidth(layr)
{	if (dom1)
	{	return (document.getElementById(layr).offsetWidth)
	}
	else if (nscp4)
	{	return eval("document." + layr + ".document.width")
	}
	else
	{	return (document.all[layr].scrollWidth)
	}
}
	
function layerHeight(layr)
{	if (dom1)
	{	return (document.getElementById(layr).offsetHeight)
	}
	else if (nscp4)
	{	return eval("document." + layr + ".document.height")
	}
	else
	{	return (document.all[layr].scrollHeight)
	}
}

function layerClip(layr,topA,rightA,bottomA,leftA)
{	obj = getObj(layr)
	if (dom1 || (ie4 && !is_mac))
	{	obj.clip = "rect(" + topA + " " + rightA + " " + bottomA + " " + leftA + ")"
	}
	else if (nscp4)
	{	obj.clip.top = topA
		obj.clip.left = leftA
		obj.clip.bottom = bottomA
		obj.clip.right = rightA
	}
	else if (ie4 && is_mac)
	{	obj.clip = "rect(0 100% 100% 0)"
	}
}

function browserWidth()
{	if (is_nav)
	{	return (window.innerWidth)
	}
	else
	{	return (document.body.clientWidth)
	}
}

function browserHeight()
{	if (is_nav)
	{	return (window.innerHeight)
	}
	else
	{	return (document.body.clientHeight)
	}
}
