function getById(el) {
	return document.getElementById(el);
}

function getByTag(par,el) {
	var par = (par == '') ? document.body : par;
	if (!par) return new Array();
	return par.getElementsByTagName(el);
}

function addClass(obj,newClass) {
	if(!obj.className.match(new RegExp(newClass)))
		obj.className+=(obj.className.length>0? " ": "") + newClass;
}
	
function removeClass(obj,oldClass) {
	obj.className=obj.className.replace(new RegExp("( ?|^)"+oldClass+"\\b"), "");
}

function getByClass(cla,par,el) {
	var par = (par == '') ? document.body : par;
	var el = (el == '') ? '*' : el;
	if(/.*native code.*/.test(document.getElementsByClassName)) {
		return par.getElementsByClassName(cla);
	}
	else {
		var tagColl = par.getElementsByTagName(el);
		trimedColl = new Array;
		for (var i = 0; tagColl[i]; i++) {
			if(tagColl[i].className.match(new RegExp(cla))) {
				trimedColl[trimedColl.length]=tagColl[i];
			}
		}
		return trimedColl;
	}
}

function setLinks(linkTags){
	var linkCollection = [];
	for (var j = 0; linkTags[j]; j++) {
		linkCollection[j] = getByTag('',linkTags[j]);
		for (var i = 0; linkCollection[j][i]; i++) {
			if(/bookmark|external|corporate|sponsor|download/.test(linkCollection[j][i].getAttribute('rel'))) {
				linkCollection[j][i].onclick = function(e) {
					if (!e) var e = window.event;
					if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey)
						return true;
					window.open(this.href);
					return false;
				}
			}
		}
	}
}

/* IE needs help
---------------------- */
function fixIE() {
	var ulColl = getByTag(getById('header'),'ul');
	for(var i = 0; ulColl[i]; i++) {
		var liColl = getByTag(ulColl[i],'li');
		for(var j = 1; liColl[j]; j++) {
			liColl[j].innerHTML = '  |  ' + liColl[j].innerHTML;
		}
	}
}

function fixLowIE() {
	var ob = getById('objectives');
	if(ob) {
		var liColl = getByTag(ob,'li');
		for(var j = 0; liColl[j]; j++) {
			liColl[j].onmouseover = function () {
				addClass(this,'hover');
			}
			liColl[j].onmouseout = function () {
				removeClass(this,'hover');
			}
		}
	}
}

/* 
---------------------- */
function initDirectors() {
	var dc = getById('directorsCall');
	var d = getById('directors');
	if(!dc || !d) return;
	dc.onclick = function () {
		addClass(getById('directors'),'live');
		return false;
	}
	d.onclick = function () {
		removeClass(getById('directors'),'live');
	}
}


/* Init
-------------------- */
var init = function() {
	if (arguments.callee.done) return;
	arguments.callee.done = true;
	if(!document.getElementsByTagName)
		return;
	addClass(getById('page'),'scripted');
	setLinks(['a','area']);
	initDirectors();
	/*@cc_on @*/
	/*@if (@_win32)
		var ua = navigator.userAgent;
		var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		if (re.exec(ua) != null) {
			rv = parseFloat( RegExp.$1 );
			if(rv < 7) fixLowIE();
			if(rv < 8) fixIE();
		}
	/*@end @*/
}

if (/WebKit/i.test(navigator.userAgent)) {
	var _timer = setInterval(function() {
		if (/loaded|complete/.test(document.readyState)) {
			clearInterval(_timer);
			init();
		}
	}, 10);
}

else if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", init, null);
}

else {
	/*@cc_on @*/
	/*@if (@_win32)
	document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
	var script = document.getElementById("__ie_onload");
	script.onreadystatechange = function() {
		if (this.readyState == "complete") {
			init();
		}
	};
	/*@end @*/
	window.onload = init;
}