////////////////////////////////////////////////////////////////////////
//
//	Core JS/DHTML Setup
//	Dependency: none
//	Tabsize: 4
//
//	Copyright (c) 2002 Marcus Nijssen
//
////////////////////////////////////////////////////////////////////////

//======================================================================
//	onLoad-Handlers
//	To add a handler: onLoadHandler(handlerName);
//======================================================================

var onLoadHandlers = new Array();

function onLoadHandler(fnc) {
	onLoadHandlers[onLoadHandlers.length] = fnc;
}

//======================================================================
//	Setup
//======================================================================

var ua, d, ns4, ope, dmc, dom, ie, ie4, ie5;
var html, head, body;
var w_scroll, h_scroll, b_scroll;
var w_size, h_size, b_size, d_size;

function isDef(o) {return (typeof o!='undefined')}

function sysSetup() {

	function f(n,p,s) {
		for (var i=3; i<arguments.length; i++)
			s = s.replace(new RegExp("%"+(i-2),"g"),arguments[i]);
		eval(n+'=function('+p+'){'+s+'}');
	}

// =====================================================
//	General Setup
// =====================================================

	ua     = navigator.userAgent.toLowerCase();
	d      = document;
	ns4    = d.layers?true:false;
	dmc    = d.getElementById?true:false;
	dom    = (dmc && d.documentElement)?true:false;
	ope    = (ua.indexOf("opera")!=-1 && !dom);
	ie     = (d.all && !ope)?true:false;
	ie4    = (ie && !dmc)?true:false;
	ie5    = (ie && dmc)?true:false;

	body   = d.body ? document.body : null;
	html   = dom ? d.documentElement : (body && (typeof body.offsetParent=='object')) ? body.offsetParent : null;
	head   = html ? html.firstChild : null;


// =====================================================
//	WINDOW
// =====================================================

	window.defaultStatus = ' ';

	w_scroll = (typeof self.pageYOffset=='number');
	h_scroll = (html && (typeof html.scrollTop=='number'));
	b_scroll = (body && (typeof body.scrollTop=='number'));

	var s = 'return ' + (w_scroll ? 'self.page%1Offset' :
		(h_scroll && b_scroll) ? 'Math.max(html.scroll%2,body.scroll%2)' :
		b_scroll ? 'body.scroll%2' : h_scroll ? 'html.scroll%2' : '0');
	f('pageXOfs','',s,'X','Left'); f('pageYOfs','',s,'Y','Top');

	w_size = (typeof self.innerWidth=='number');
	h_size = (html && (typeof html.clientWidth=='number' && html.clientWidth>0));
	b_size = (body && (typeof body.clientWidth=='number' && body.clientWidth>0));
	d_size = (typeof document.width=='number');

	s = 'return ' + (h_size?'html.client%1':b_size?'body.client%1':!w_size?'0':ope?'self.inner%1':!d_size?'self.inner%1-20':'(document.%2>self.inner%3)?(self.inner%1-20):self.inner%1;');
	f('clWidth','',s,'Width','height','Height'); f('clHeight','',s,'Height','width','Width');

	//s = "if(!o)return 0;if(ns4)return o.page%1;var p=o.offset%2;if(typeof o.offsetParent=='undefined')return p;while(o=o.offsetParent){if(o==body)break;p+=o.offset%2;}return p;";
	s = "if(!o)return 0;if(ns4)return o.page%1;var p=o.offset%2;if(typeof o.offsetParent=='undefined')return p;while(o=o.offsetParent){if(!html && o==body)break;p+=o.offset%2;}return p;";
	f('oPageX','o',s,'X','Left'); f('oPageY','o',s,'Y','Top');

	if (dmc) {
		getEl=function(id){return d.getElementById(id)}
	}
	else if (ns4) {
		getEl=function(id,x){if(!isDef(x))x=d;var o=x[id];if(isDef(o))return o;for(var l=0;l<x.layers.length;l++)if(o=getEl(id,x.layers[l].document))return o;return null;}
	}
	else {
		getEl=function(id){return d.all[id]}
	}

// =====================================================
//	Call Other onLoad Handlers
// =====================================================

	for (var i=0; i<onLoadHandlers.length; i++)
		onLoadHandlers[i]();

}

