<!--;
/* gianfranco@keymedia.co.uk: last modified 11/08/2003 */

/* GLOBAL VARIABLES */

var isNS6 = 0;
var isNS4 = 0;
var isNS3 = 0;
var isIE5 = 0;
var isIE4 = 0;
var isMac = 0;
var x = 0;
var y = 0;
var IE_mac_fix_x = 0;
var IE_mac_fix_y = 0;
var timeoutPeriod = 1000;

/* GLOBALS THAT NEED NOT BE CHANGED */
var allHidden = 0;
var myDate = new Date();
var expiryTime = 100000000 + myDate.getTime();


/* START:BROSER SNIFFING */
if (navigator.appName == "Netscape") {
	if (navigator.appName == "Netscape" && parseInt(navigator.appVersion) > 4) {
		isNS6 = 1;
	} else {
		if (parseInt(navigator.appVersion) > 3) {
			document.captureEvents(Event.MOUSEMOVE);
			isNS4 = 1;
		} else {
			isNS3 = 1;
		};
	};
} else {
	var myUA = navigator.userAgent;
	var version = parseInt(myUA.substring(5 + myUA.indexOf('MSIE'),9 + myUA.indexOf('MSIE')));
	if (version > 4) {
		isIE5 = 1;
	} else {
		isIE4 = 1;
	};
};

if (navigator.platform && navigator.platform == 'MacPPC'){
	isMac = 1;
	if (isIE5 || isIE4){
		IE_mac_fix_x = -27;
		IE_mac_fix_y = 0;
	};
};

/* END:BROSER SNIFFING */

/* document.onmousemove = storeOrdinates;
function storeOrdinates(e){
	x = (isNS4 || isNS6) ? e.pageX : event.clientX;
	y = (isNS4 || isNS6) ? e.pageY : event.clientY;
}

*/


/* 
* 
* TIME_BASED FUNCTIONS
*
*/
var holdmenu = 0;
function myMenu(someNumber) {
	holdmenu = 1;
	hideAll();
	if (someNumber) {
		myLayerStyle = getLayerStyle('menu' + someNumber);
		if (myLayerStyle){
			myLayerStyle.visibility = 'visible';
		};
	};
};
function hideAllEventually() {
	holdmenu = 0;
	setTimeout("conditionalHideAll();",1000);
	return true;
};
function conditionalHideAll() {
	if (! holdmenu) {
		hideAll();
	};
};
/* 
* 
* BASIC FUNCTIONS 
*
*/
function getLayerStyle(layerID) {
	var myLayerStyle;
	if (isNS4){
		eval(myLayerStyle = document.layers[layerID]);
	};
	if (isIE4){
		eval(myLayerStyle = document.all[layerID]);
	};
	if (isNS6 || isIE5){
		eval(myLayerStyle = document.getElementById(layerID).style);
	};
	return myLayerStyle;
};

function getLayer(layerID) {
	var myLayer;
	if (isNS4){
		myLayer = document.layers[layerID];
	};
	if (isIE4){
		myLayer = document.all[layerID];
	};
	if (isNS6 || isIE5){
		myLayer = document.getElementById(layerID);
	};
	return myLayer;
};


/*
* Moves a layer  
* - BY distance (SomeXDistance,SomeYDistance),
* - or TO co-ordinates (SomeXDistance,SomeYDistance), 
* depending on absoluteFlag. Also sets visibility to visible.
*/
function MoveLayer(layerID,SomeXDistance,SomeYDistance,absoluteFlag,keepHidden) {
	myLayerStyle = getLayerStyle(layerID);
	// alert(parent.show_props(myLayerStyle.clip,'myLayerStyle.clip'));
	SomeXDistance = parseInt(SomeXDistance);
	SomeYDistance = parseInt(SomeYDistance);
	if (myLayerStyle){
		if (absoluteFlag && absoluteFlag != 0){
			// alert('shifting to abs co-ords: ' + (SomeXDistance + IE_mac_fix_x) + ',' + (SomeYDistance + IE_mac_fix_y));
			myLayerStyle.left = SomeXDistance + IE_mac_fix_x;
			myLayerStyle.top = SomeYDistance + IE_mac_fix_y;
		} else {
			myLayerStyle.left = SomeXDistance + parseInt(myLayerStyle.left);
			myLayerStyle.top = SomeYDistance + parseInt(myLayerStyle.top);
		};
		if (keepHidden) { 
			myLayerStyle.visibility = 'hidden';
		} else { 
			myLayerStyle.visibility = 'visible';
		};
	};
	// alert(parent.show_props(myLayerStyle.clip,'myLayerStyle.clip'));
	return true;
};

/* 
* 
* BASIC SHOW/HIDE FUNCTIONS 
*
*/
function myHide(layerID) {
	myLayerStyle = getLayerStyle(layerID);
	if (myLayerStyle){
		if (myLayerStyle.visibility != 'hidden' && myLayerStyle.visibility != 'hide') {
			myLayerStyle.visibility = 'hidden';
		};
	};
	return true;
};

function myShow(layerID) {
	myLayerStyle = getLayerStyle(layerID);
	if (myLayerStyle && (myLayerStyle.visibility == 'hidden' || myLayerStyle.visibility == 'hide')) {
		myLayerStyle.visibility = 'visible';
	};
	return true;
};

/*
*
* HIDE SEVERAL LAYERS
*
*/
function hideLayers() {
	var myargs=hideLayers.arguments;
	for (i=0; i<(myargs.length); i++) {
		myHide(myargs[i]);
	};
	return false;
}

function hideAll() {
	// SHOULD BE DEFINED LOCALLY
};

/* 
* 
* FANCY MENU FUNCTIONS 
*
*/
MenuState = new Array();
function ShuntFromMenu(SomeNumber, SomeDistance) {
	NumberOfMenues = MenuState.length;
	for (i = SomeNumber+1; i < NumberOfMenues; i++) {
		var layerName = 'menu' + i;
		MoveLayer(layerName, 0, SomeDistance,0);
	};
	return false;
};

function ToggleMenu(SomeNumber, SomeDistance) {
	if (parseInt(navigator.appVersion) > 3) {
		SomeDistance = SomeDistance * MenuState[SomeNumber];
		ShuntFromMenu(SomeNumber, SomeDistance);
		MenuState[SomeNumber] = 0 - MenuState[SomeNumber];
		return false;
	} else {
		return true;
	};
};

/* 
* 
* DEBUG FUNCTION
*
*/
function show_props(obj, obj_name) {
        var result = "";
        for (var i in obj) {
			try {
				result += obj_name + "." + i + " = " + obj[i] + "\n";
			}
			catch(er) {
				alert('error:' + er);
			}
		};
        return result
};

/*
*
* Tries to return the co-ordinates on the page of a link object.
* Takes params someObject, noughtOrOne (to indicate x,y co-ordinate is
* desired), someOffset - which is ignored for NS4, and for IE4, NS6 should
* be the offset height of the first item in the 'block'
*
*/
function myPosition(someObject,noughtOrOne,someOffset) {
	if (noughtOrOne == 0){	// Y CO-ORDINATE
		if (isNS4){ 
			return someObject.y;
		} else {
			return someObject.offsetTop + someOffset;
		};
	} else {			// X CO-ORDINATE
		if (isNS4){ 
			return someObject.x;
		} else {
			return someObject.offsetLeft + someOffset;
		};
	};
};

// -->
