/*

	References [function, resource]

	addEvent       http://www.ejohn.org/projects/flexible-javascript-events/
	externalLinks  http://www.sitepoint.com/article/standards-compliant-world/
	removeEvent    http://www.ejohn.org/projects/flexible-javascript-events/
	sfHover        http://www.htmldog.com/articles/suckerfish/dropdowns/
	swapImage      http://www.alistapart.com/articles/imagegallery/

*/

// 
function addEvent(obj, type, fn) {
	if(obj.attachEvent) {
		obj['e'+type+fn] = fn;
		obj[type+fn] = function() {
			obj['e'+type+fn](window.event);
		}
		obj.attachEvent('on'+type, obj[type+fn] );
	} else
		obj.addEventListener(type, fn, false);
}

// 
function externalLinks() {
	if(!document.getElementsByTagName)
		return;
	var anchors = document.getElementsByTagName('a');
	for(var i = 0; i < anchors.length; i++) {
		var anchor = anchors[i];
		if(anchor.getAttribute('href') && anchor.getAttribute('rel') == 'external')
			anchor.setAttribute('target', '_blank');
	}
}

// 
function removeEvent(obj, type, fn) {
	if(obj.detachEvent) {
		obj.detachEvent('on'+type, obj[type+fn]);
		obj[type+fn] = null;
	} else
		obj.removeEventListener(type, fn, false);
}

// 
sfHover = function() {
	var sfEls = document.getElementById('navigation').getElementsByTagName('li');
	for(var i = 0; i < sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}

//
function swapImage(whichpic) {
	if(document.getElementById) {
		document.getElementById('placeholder').src = whichpic.href;
		if(whichpic.title)
			document.getElementById('description').childNodes[0].nodeValue = whichpic.title;
		else
			document.getElementById('description').childNodes[0].nodeValue = whichpic.childNodes[0].nodeValue;
		return false;
	} else
		return true;
}

// 
addEvent(window, 'load', externalLinks);
addEvent(window, 'load', sfHover);