// Rollover/preload script by Matt Ditter (Nov. 2007)
// version 1.2 (Dec. 2007)
var prePaths = [], preImages = [], rollImages = [];


function addEvent(evt,func,obj) 
{
	obj = obj ? obj : window;
	if (obj.addEventListener) 
	{ 
		obj.addEventListener(evt,func,false); 
		return true; 
	}
	else if (obj.attachEvent) 
	{ 
		var ev = obj.attachEvent('on'+evt,func,event); 
		return ev; 
	}
	else 
	{
		return false;
	}
}


function preload() 
{
	for (var i=0, path; path = prePaths[i]; i++) 
	{
		var l = preImages.length;
		preImages[l] = new Image();
		preImages[l].src = path;
	}
}


function preroll() 
{
	var pre = [], pics = document.getElementsByTagName('img'), links = document.getElementsByTagName('a');
	for (var i=0, pic; pic = pics[i]; i++) 
	{
		if (pic.className.match(/[^\-]\bover\b[^\-]|^over$|^over\b[^\-]|[^\-]\bover$/i)) 
		{
			var wrap = pic.parentNode, path = pic.src, dot = path.lastIndexOf('.');
			if (path && (dot > 0)) 
			{
				prePaths[prePaths.length] = path.substring(0,dot)+'-o'+path.substring(dot,path.length);
			}
			if (wrap && wrap.tagName == 'A') 
			{
				addEvent('mouseover',rollover,wrap);
				addEvent('mouseout',rollout,wrap);
				addEvent('focus',rollover,wrap);
				addEvent('blur',rollout,wrap);
			}
		}
	}
	for (var i=0, a; a = links[i]; i++)
	{
		if (a.onmouseover && a.childNodes[0].tagName == 'IMG') 
		{
			a.onfocus = a.onmouseover;
		}
	}
	for (var i=0, arg; arg = arguments[i]; i++) 
	{
		prePaths[prePaths.length] = arg;
	}
	
	addEvent('load',preload);
}


function rollover(e) 
{
	var ev = e ? e : window.event, srcEl = ev.target ? ev.target : ev.srcElement;
	if (srcEl.nodeType == 3) srcEl = srcEl.parentNode; // Safari fix
	srcEl = srcEl.tagName == 'IMG' ? srcEl : srcEl.childNodes[0];
	var path = srcEl.src, dot = path.lastIndexOf('.');
	srcEl.src = (srcEl.className.indexOf('activeimg') > -1) ? path.replace('-a.','-o.') : (!path.match(/\-o\./gi)) ? path.substring(0,dot)+'-o'+path.substring(dot,path.length) : path;
}


function rollout(e) 
{
	var ev = e ? e : window.event, srcEl = ev.target ? ev.target : ev.srcElement;
	if (srcEl.nodeType == 3) srcEl = srcEl.parentNode; // Safari fix
	srcEl = srcEl.tagName == 'IMG' ? srcEl : srcEl.childNodes[0];
	var path = srcEl.src;
	srcEl.src = (srcEl.className.indexOf('activeimg') > -1) ? path.replace('-o.','-a.') : path.replace('-o.','.'); 
}



// roll() function only used for inline event handlers
function roll(e) 
{
	var a = arguments;
	if (a.length < 2) 
	{
		for (var i=0, img; img = rollImages[i]; i++) 
		{ 
			img.src = img.old; 
		}	
	}
	else 
	{
	for (var i=0, pic; pic = document.getElementById(a[i]); i=i+2) 
	{
		var flag = 0, path = a[i+1], ev = window.event ? window.event : e, srcEl = ev.target ? ev.target : ev.srcElement;
		if (!path || !ev) 
		{
			return;	
		}
		if (srcEl && srcEl.nodeType == 3) 
		{ 
			srcEl = srcEl.parentNode; // Safari fix 
		} 
		for (var j=0, img; img = rollImages[j]; j++)
		{
			if (pic == img) 
			{ 
				flag = 1; break; 
			}
		}
		if (!flag) 
		{
			rollImages[rollImages.length] = pic;
		}
		if (!pic.old) 
		{
			pic.old = pic.src;	
		}
		pic.src = path;
		if (!i) 
		{
			addEvent('mouseout',roll,srcEl);
			addEvent('blur',roll,srcEl);
		}
	}
	}
}