////////////////////////////////////////////////////////////////////////////////
// mud_Scripts.js
// author: mud(tm) - http://mudcorp.com

////////////////////////////////////////////////////////////////////////////////
// GLOBAL VARIABLES

var imgsOver = new Array();
var imgsOff = new Array();
var menu = new Array(
	"film",
	"people",
	"press",
	"media",
	"contact"
);
var selectedSub = 1;

////////////////////////////////////////////////////////////////////////////////
// FUNCTIONS

function preloadImgs() {
	// preload over and off menu images
	for (var i = 0; i < menu.length; i++) {
		imgsOff[menu[i]] = new Image();
		imgsOff[menu[i]].src = "images/nav_" + menu[i] + ".png";
		imgsOver[menu[i]] = new Image();
		imgsOver[menu[i]].src = "images/nav_" + menu[i] + "-over.png";
	}
	// preload any subsection images
	var container = getRawObject('sub-menu');
	if (!container) return;
	var elements = container.getElementsByTagName('a');
	for (var i = 0; i < elements.length; i++) {
		var e = elements[i].childNodes[0].id;
		var imgID = e.substring(e.indexOf("-")+1);
		imgsOff[imgID] = new Image();
		imgsOff[imgID].src = "images/sub_" + imgID + ".png";
		imgsOver[imgID] = new Image();
		imgsOver[imgID].src = "images/sub_" + imgID + "-on.png";
	}
}

function imgOn(evt) {
	evt = (evt) ? evt : event;
	var target = (evt.target) ? evt.target : evt.srcElement;
	var imgID = (target.id) ? target.id : target.name;
	if (imgID) {
		// strip out "menu-" prefix
		if (imgID.indexOf("-") > 0) {
			imgID = imgID.substring(imgID.indexOf("-")+1);
			if (isIE4 && !isIEMac) target.filters(0).src = imgsOver[imgID].src;
			else target.src = imgsOver[imgID].src;
		}
	}
}

function imgOff(evt) {
	evt = (evt) ? evt : event;
	var target = (evt.target) ? evt.target : evt.srcElement;
	var imgID = (target.id) ? target.id : target.name;
	if (imgID) {
		// strip out "menu-" prefix
		if (imgID.indexOf("-") > 0) {
			imgID = imgID.substring(imgID.indexOf("-")+1);
			if (isIE4 && !isIEMac) target.filters(0).src = imgsOff[imgID].src;
			else target.src = imgsOff[imgID].src;
		}
	}
}

function toggleImg(evt) {
	evt = (evt) ? evt : event;
	var target = (evt.target) ? evt.target : evt.srcElement;
	var imgID = (target.id) ? target.id : target.name;
	if (imgID && !isIE4) {
		var imgNum = imgID.charAt(imgID.length-1);
		// check if image is on or off
		// only run if it's not currently selected
		if (imgNum != selectedSub) {
			var imgObj = getRawObject(imgID);
			// strip out "menu-" prefix
			if (imgID.indexOf("-") > 0) {
				imgID = imgID.substring(imgID.indexOf("-")+1);
			}
			var imgOff = imgsOff[imgID].src.substring(imgsOff[imgID].src.lastIndexOf("/")+1);
			var imgOrig = imgObj.src.substring(imgObj.src.lastIndexOf("/")+1);
			if (imgOrig == imgOff) imgObj.src = imgsOver[imgID].src;
			else imgObj.src = imgsOff[imgID].src;
		}
	}
	else if (isIEMac) {
		var imgNum = imgID.charAt(imgID.length-1);
		// check if image is on or off
		// only run if it's not currently selected
		if (imgNum != selectedSub) {
			var imgObj = getRawObject(imgID);
			// strip out "menu-" prefix
			if (imgID.indexOf("-") > 0) {
				imgID = imgID.substring(imgID.indexOf("-")+1);
			}
			var imgOff = imgsOff[imgID].src.substring(imgsOff[imgID].src.lastIndexOf("/")+1);
			var imgOrig = imgObj.src.substring(imgObj.src.lastIndexOf("/")+1);
			if (imgOrig == imgOff) imgObj.src = imgsOver[imgID].src;
			else imgObj.src = imgsOff[imgID].src;
		}
	}
	// IE hack
	else {
		var imgNum = imgID.charAt(imgID.length-1);
		if (imgNum != selectedSub) {
			var imgObj = getRawObject(imgID);
			// strip out "menu-" prefix
			if (imgID.indexOf("-") > 0) {
				imgID = imgID.substring(imgID.indexOf("-")+1);
			}
			var imgOff = imgsOff[imgID].src.substring(imgsOff[imgID].src.lastIndexOf("/")+1);
			var imgOrig = imgObj.filters(0).src.substring(imgObj.filters(0).src.lastIndexOf("/")+1);
			if (imgOrig == imgOff) imgObj.filters(0).src = imgsOver[imgID].src;
			else imgObj.filters(0).src = imgsOff[imgID].src;
		}
	}
}

function selectThis(evt) {
	evt = (evt) ? evt : event;
	var target = (evt.target) ? evt.target : evt.srcElement;
	var imgID = (target.id) ? target.id : target.name;
	if (imgID) {
		var imgNum = imgID.charAt(imgID.length-1);
		// check if image is on or off
		// only run if it's not currently selected
		if (imgNum != selectedSub) {
			var imgObj = getRawObject(imgID);
			// strip out "menu-" prefix
			if (imgID.indexOf("-") > 0) {
				imgID = imgID.substring(imgID.indexOf("-")+1);
			}
			// turn off all submenus
			turnOffAllSub();
			// set image to on
			selectedSub = imgNum;
			if (!isIE4 || isIEMac) imgObj.src = imgsOver[imgID].src;
			else imgObj.filters(0).src = imgsOver[imgID].src;
			// toggle content
			switch (selectedSub) {
				case "1":
					getObject('content-2').display = "none";
					getObject('content-1').display = "block";
					break;
				case "2":
					getObject('content-1').display = "none";
					getObject('content-2').display = "block";
					break;
			}
		}
	}
}

function turnOffAllSub() {
	// submenus
	var container = getRawObject('sub-menu');
	if (!container) return;
	var elements = container.getElementsByTagName('a');
	if (!isIE4 || isIEMac) {
		for (var i = 0; i < elements.length; i++) {
			var imgID = elements[i].childNodes[0].id.substring(elements[i].childNodes[0].id.indexOf("-")+1);
			elements[i].childNodes[0].src = imgsOff[imgID].src;
		}
	}
	else {
		for (var i = 0; i < elements.length; i++) {
			var imgID = elements[i].childNodes[0].id.substring(elements[i].childNodes[0].id.indexOf("-")+1);
			elements[i].childNodes[0].filters(0).src = imgsOff[imgID].src;
		}
	}
}

function toggleThis(id) {
	var content = getObject(id + "-content");
	switch (content.display) {
		case "none":
			setDisplay(id + "-content");
			break;
		case "block":
			unsetDisplay(id + "-content");
			break;
	}
}

////////////////////////////////////////////////////////////////////////////////
// MOUSE EVENTS

function setMouseOver() {
	var container = getRawObject('menu');
	if (!container) return;
	var elements = container.getElementsByTagName('a');
	for (var i = 0; i < elements.length; i++) {
		elements[i].onmouseover = imgOn;
	}
	// submenus
	container = getRawObject('sub-menu');
	if (!container) return;
	elements = container.getElementsByTagName('a');
	for (var i = 0; i < elements.length; i++) {
		elements[i].onmouseover = toggleImg;
	}
}

function setMouseOut() {
	var container = getRawObject('menu');
	if (!container) return;
	var elements = container.getElementsByTagName('a');
	for (var i = 0; i < elements.length; i++) {
		elements[i].onmouseout = imgOff;
	}
	// submenus
	container = getRawObject('sub-menu');
	if (!container) return;
	elements = container.getElementsByTagName('a');
	for (var i = 0; i < elements.length; i++) {
		elements[i].onmouseout = toggleImg;
	}
}

function setMouseClick() {
	// submenus
	var container = getRawObject('sub-menu');
	if (!container) return;
	var elements = container.getElementsByTagName('a');
	for (var i = 0; i < elements.length; i++) {
		elements[i].onclick = selectThis;
	}
}

////////////////////////////////////////////////////////////////////////////////
// INIT

function mudInit() {
	initDHTMLAPI();
	//if (isIEMac) location.href = "notsupported.html";
	if (isIE4 && !isIEMac) correctPNG();
	preloadImgs();
	setMouseOver();
	setMouseOut();
	setMouseClick();
}

// events
// gecko, safari, konqueror and generic
if (typeof window.addEventListener != 'undefined') {
	window.addEventListener('load', mudInit, false);
}
// opera 7
else if (typeof document.addEventListener != 'undefined') {
	document.addEventListener('load', mudInit, false);
}
// win/ie
else if (typeof window.attachEvent != 'undefined') {
	window.attachEvent("onload", mudInit);
}
// other
else {
	window.onload = mudInit;
}