

/* Initialisation ----------------------------------------------------------------------*/

var d = document, dE = d.documentElement, dB = d.body, dA = d.all;

var modules = new Object();
var library = new Object();

library={
	init:function(){
		if(d.getElementById){
				    modules.rollOvers.init('_o','_h','roll');
					var endTime=new Date().getTime();
		}
	},
	end:function(){
		 modules.ie.end();
	}
};

window.onload = library.init;
window.onunload = library.end;

/* Modules --------------------------------------------------------------------------*/


modules.rollOvers = {
	init:function($ext, $hoverExt, $parentId, $target ){
		$ext = (typeof $ext == 'undefined') ? '_o' : $ext;
		$hoverExt = (typeof $hoverExt == 'undefined') ? '_h' : $hoverExt;
		$parentId = (typeof $parentId == 'undefined' || $parentId == '' || !d.getElementById($parentId) ) ? 'nd' : $parentId;
		$target = (typeof $target == 'undefined') ? 'img' : $target;
		if ($parentId != 'nd' && $target == 'img'){ var rollElm = d.getElementById($parentId).getElementsByTagName($target);}
		else if ($parentId != 'nd' && $target == 'all'){ var rollElm = d.all ? d.all : d.getElementById($parentId).getElementsByTagName('*'); }
		else if ($parentId == 'nd' && $target == 'img'){ var rollElm = d.all ? d.all : d.getElementsByTagName('img'); }
		else if ($parentId == 'nd' && $target == 'all'){ var rollElm = d.all ? d.all : d.getElementsByTagName('*'); }
		var preloadImg = new Image();
		var j=0;
		for(var i=0, el; el=rollElm[i]; i++){
			if(el.src){
				j++;
				elExt = el.src.substring(el.src.length-4-$ext.length, el.src.length-4);
				if(elExt == $ext){
					el.source = el.src;
					el.hoverSrc = el.src.substring(0,el.src.length-4-$ext.length) + $hoverExt + el.src.substring(el.src.length-4);
					preloadImg.src = el.hoverSrc;
					if(el.parentNode.nodeName == 'A'){
						el.parentNode.onfocus = function(){ this.firstChild.src = this.firstChild.hoverSrc; }
						el.parentNode.onblur = function(){ this.firstChild.src = this.firstChild.source; }
					}
					el.onmouseover = function(){ this.src = this.hoverSrc; }
					el.onmouseout = function(){ this.src = this.source; }
				}
			}
		}
	}
}

modules.ie={
	end:function(){
		if (d.all && window.attachEvent) {
			var elProps = [
				'data', 'onmouseover', 'onmouseout',
				'onmousedown', 'onmouseup', 'ondblclick',
				'onclick', 'onselectstart', 'oncontextmenu'
			];
			var all = d.all;
			for (var i = 0, el; el = all[i]; i++) {
				for (var j = 0, elProp; elProp = elProps[j]; j++) {
					el[elProp] = null;
				}
			}
		}
	}
}