/*
*  http://www.scottandrew.com/weblog/articles/cbs-events
*/
function addEvent(obj, evType, fn, useCapture){
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
   // alert("Handler could not be attached");
  }
}

addEvent(window, 'load', add_External_link, false);

/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

/**
 * add_External_link()
 *
 * adds an onclick event to any external link.
 *
 */
function add_External_link(){
 var tags = getElementsByClassName('extern','a');
 var length = tags.length;
 for(var i=0;i < length;i++){
	tags[i].onclick=function(){
			window.open(this.href);
			return false;
		}
	}
}


function addHover(){
	var e = document.getElementsByTagName('li');
	var l = e.length;
	for(i=0;i<l;i++){
		e[i].onmouseover = function(){
			this.className += this.className ? ' hover' : 'hover';
    	}
    	e[i].onmouseout = function() {
      		var rep = this.className.match(' '+'hover') ? ' '+'hover' : 'hover';
      		this.className=this.className.replace(rep,'');
      	}
	}
}

if (window.attachEvent) window.attachEvent("onload", addHover);


function deactivate_navigation(){
	var li = document.getElementById("slides-nav").getElementsByTagName("li");
	for(j = 0; j < li.length; j++){
		li[j].className = li[j].className.replace(/active/g, "");
	}
}

function hide_slides(){
	var divs = document.getElementById("slides-wrapper").getElementsByTagName("div");
	var divs_len = divs.length;
	for(i = 0; i < divs_len; i++){
		if(divs[i].className == "slide")
		{
			divs[i].style.display = "none";
		}
	}
}

var li = document.getElementById("slides-nav");
if(li)
{
	li = li.getElementsByTagName("li");
	
	var li_len = li.length;
	for(i = 0; i < li_len; i++){	
		li[i].getElementsByTagName("a")[0].onclick = function(){ return false; }
		li[i].onclick = function(){
			deactivate_navigation();
			this.className += " active";
			hide_slides();
			var id = this.getElementsByTagName("a")[0].href.match(/#(.*)/);
			document.getElementById(id[1]).style.display = "block";
			return false;
		}
	}
	var divs = document.getElementById("slides-wrapper");
	if(divs)
	{
		divs = divs.getElementsByTagName("div");
		
		var divs_len = divs.length;
		for(i = 0; i < divs_len; i++){
			if(divs[i].className == "slide")
			{
				li = divs[i].getElementsByTagName("li");
				li_len = li.length;
				for(j = 0; j < li_len; j++){	
					li[j].getElementsByTagName("a")[0].onclick = function(){ return false; }
					li[j].onclick = function(){
						deactivate_navigation();
						hide_slides();
						var id = this.getElementsByTagName("a")[0].href.match(/#(.*)/);
						document.getElementById(id[1]).style.display = "block";
						var links = document.getElementById("slides-nav").getElementsByTagName("a");
						for(i = 0; i < links.length; i++)
						{
							if(links[i].getAttribute("href").substr(links[i].getAttribute("href").search(/#.+/)) == '#' + id[1])
							{
								links[i].parentNode.parentNode.parentNode.className += " active";
							}
						}
						return false;
					}
				}
			}
		}
		hide_slides();
		document.getElementById("slides-wrapper").getElementsByTagName("div")[0].style.display = "block";
		document.getElementById("slides-nav").getElementsByTagName("li")[0].className = "active";
	}
}