/* addRemoveEvent
********************/
function addRemoveEvent(add, el, evt, func){
	if(add){
		if(el.addEventListener) el.addEventListener(evt, func, false);
		else if (el.attachEvent) el.attachEvent("on" + evt, func);
	}else{
		if(el.removeEventListener) el.removeEventListener(evt, func, false);
		else if (el.detachEvent) el.detachEvent("on" + evt, func);
	}
}

/* getRealStyle
********************/
function getRealStyle(el, styleName){
	var realStyle = null;
	if(window.getComputedStyle) realStyle = window.getComputedStyle(el, null)[styleName];
	else if(el.currentStyle) realStyle = el.currentStyle[styleName];
	return realStyle;
}

/* fixMinHeight
********************/
function enableMinHeight(minHeight, el){
	var currentHeight = (el.clientHeight || el.offsetHeight);
	if (currentHeight<minHeight) el.style.height = minHeight + "px";
	else el.style.height = "auto";
}

function initMinHeight(){
	try{
	var el = document.getElementById("colleft");
	var value = getRealStyle(el, "minWidth");
	if (value) return;
	enableMinHeight(406, el);
	} catch(e){}
}

/* fixFirstChild
********************/
function fixFirstChildSelector(){
	var firstChild = document.getElementById("footer").getElementsByTagName("ul")[0].getElementsByTagName("li")[0];
	var value = getRealStyle(firstChild, "borderLeftStyle");
	if(value=="solid") firstChild.className = "firstChild";
}

/* subMenu
********************/
var shiftMenus = 148;
var openedMenus = new Array();

function showHideSubMenu(e){
	var evt = e || window.event;
	var evtTarget = evt.target || evt.srcElement;
	while (evtTarget.nodeName != "LI") evtTarget = evtTarget.parentNode;
	var parentLink = evtTarget.getElementsByTagName("a")[0];
	var submenu = evtTarget.getElementsByTagName("ul")[0];
	if(evt.type == "mouseover" && submenu){
		parentLink.className = "trigered";
		submenu.style.left = shiftMenus + "px";
		openedMenus.push([submenu, parentLink]);
	}else if(evt.type == "mouseout"){
		var relatedNode = evt.relatedTarget || evt.toElement;
		try{
			while (relatedNode.nodeName != "UL"){
				if (relatedNode.nodeName == "HTML") break;
				relatedNode = relatedNode.parentNode;
			}
		} catch(err) {	relatedNode =  document.getElementsByTagName("body")[0]; }
		for(var i=openedMenus.length-1; i>=0; --i){
			if(relatedNode.nodeName == "UL" && openedMenus[i][0] == relatedNode) break;
			openedMenus[i][0].style.left = "-6000px";
			openedMenus[i][1].className = "";
			openedMenus.pop();
		}
	}
}

function initSubMenu(){
	try{
		var menu = document.getElementById("colleft").getElementsByTagName("ul")[0];
		var menuItems = document.getElementById("colleft").getElementsByTagName("li");
		for(var i=0; i<menuItems.length; ++i){
			var submenu = menuItems[i].getElementsByTagName("ul")[0];
			if(submenu){
				submenu.style.position = "absolute";
				submenu.style.top = "0";
				submenu.style.left = "-6000px";
			}
		}
		addRemoveEvent(true, menu, "mouseover", showHideSubMenu);
		addRemoveEvent(true, menu, "mouseout", showHideSubMenu);
	}catch(e){}
}

/* anchors
********************/
function initAnchors(){
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; ++i){
		if (!anchors[i].getAttribute("href") || !anchors[i].getAttribute("rel")) continue;
		var relation = String(anchors[i].getAttribute("rel"));
		if (relation.match("popup")) anchors[i].onclick=popup;
		if (relation == "external") anchors[i].onclick=external;
	}
}
function popup(){
	var relation = String(this.getAttribute("rel"));
	if(relation == "popup"){
		window.open(this, "pop", "scrollbars=no");
	}else{
		var arguments = relation.substring(6,relation.length-1).split(";");
		window.open(this,arguments[0],'toolbar=0,location=0,directories=0,status=0,menubar=0,' + arguments[1] + ',resizable=no,width=' + arguments[2] + ',height=' + arguments[3] + ',top=' + arguments[4] + ',left=' + arguments[5]);
	}
	return false;
}
function external(){
	window.open(this);
	return false;
}

/* rollOver
********************/
function initRollOvers(){
	var pics = document.getElementsByTagName("img");
	for (var i=0; i<pics.length; ++i){
		if (pics[i].className != "rollover") continue;
		addRemoveEvent(true, pics[i], "mouseover", rollOvers);
		addRemoveEvent(true, pics[i], "mouseout", rollOvers);
	}
}
function rollOvers(e){
	var evt = e || window.event;
	var evtTarget = evt.target || evt.srcElement;
	var oldSrc = evtTarget.src;
	if(evt.type == "mouseover") evtTarget.src = oldSrc.substring(0,oldSrc.length-4) + "h" + oldSrc.substr(-4,4);
	else evtTarget.src = oldSrc.substring(0,oldSrc.length-5) + oldSrc.substr(-4,4);
}

/* headlines
********************/
function initHeadlines(){
	var hx = document.getElementsByTagName("h1");
	for (var i=0; i<hx.length; ++i){
		if (hx[i].className != "flashed") continue;
		var hmain = hx[i].getElementsByTagName("span")[0].innerHTML;
		var hsub = hx[i].getElementsByTagName("span")[1].innerHTML;
		hsub = hsub.toLowerCase();
		var id = hx[i].getAttribute("id");
		var so_id = "soInjected_hl" + id;
		var so_hl = new SWFObject("swf-xml/headline.swf", so_id, "684", "132", "8", "#FFFFFF");
		so_hl.addParam("wmode", "transparent");
		so_hl.addVariable("main", hmain);
		so_hl.addVariable("sub", hsub);
		so_hl.write(id);
	}
}

/* clearOnFocus
********************/
var toClear = new Array();
toClear.push("search_input");

function initClearOnFocus(){
	for (var i=0; i<toClear.length; ++i){
		var itemToClear = document.getElementById(toClear[i]);
		if(!itemToClear) continue;
		addRemoveEvent(true, itemToClear, "focus", clearOnFocus);
	}
}
function clearOnFocus(e){
	var evt = e || window.event;
	var evtTarget = evt.target || evt.srcElement;
	evtTarget.value="";
	addRemoveEvent(false, evtTarget, "focus", clearOnFocus);
}

/* init
********************/
addRemoveEvent(true, window, "load", fixFirstChildSelector);
addRemoveEvent(true, window, "load", initMinHeight);
addRemoveEvent(true, window, "load", initSubMenu);
addRemoveEvent(true, window, "load", initAnchors);
addRemoveEvent(true, window, "load", initRollOvers);
addRemoveEvent(true, window, "load", initHeadlines);
addRemoveEvent(true, window, "load", initClearOnFocus);