/**

 * Original Source: Book: DHTML Utopia: Modern Web Design Using JavaScript & DOM

 * Also: http://www.sitepoint.com/article/dhtml-utopia-modern-web-design/2

 */



/**

 * Automagically set up rollover event handlers for all IMGs within links with the rollover class

 *

 * This is executed once after page load

 *

 * @todo preload rollover images?

 */

function setupRollovers()

{

	if(!document.getElementsByTagName)

	{ // We are NOT in a DOM-supporting browser:

		return;

	}



	// Get ALL the links in the current document:

	var all_links = document.getElementsByTagName('a');



	// Go through all the links:

	for(var i = 0; i < all_links.length; i++)

	{

		var link = all_links[i];

		if(link.className && (' ' + link.className + ' ').indexOf(' rollover ') != -1)

		{ // The link has the rollover class (among potentially other classes):

			// Set up event handlers:

			link.onmouseover = mouseover;

			link.onmouseout = mouseout;

		}

	}

}





/**

 * caters for the differences between Internet Explorer and fully DOM-supporting browsers

 */

function findTarget(e)

{

 var target;



 if (window.event && window.event.srcElement)

   target = window.event.srcElement;

 else if (e && e.target)

   target = e.target;

 if (!target)

   return null;



 while (target != document.body &&

     target.nodeName.toLowerCase() != 'a')

   target = target.parentNode;



 if (target.nodeName.toLowerCase() != 'a')

   return null;



 return target;

}





/**

 * MouseOver event handler

 */

function mouseover(e)

{

	var target = findTarget(e);

	if (!target) return;



	var img_tag = target.childNodes[0];

	if( img_tag.nodeName.toLowerCase() != 'img')

	{

		img_tag = target.childNodes[1];

	}



	// Take the "src", which names an image called "something.ext",

	// Make it point to "something_over.ext"

	img_tag.src = img_tag.src.replace(/(\.[^.]+)$/, '_over$1');

}





/**

 * MouseOut event handler

 */

function mouseout(e)

{

 var target = findTarget(e);

 if (!target) return;



	var img_tag = target.childNodes[0];

	if( img_tag.nodeName.toLowerCase() != 'img')

	{

		img_tag = target.childNodes[1];

	}



 // Take the "src", which names an image as "something_over.ext",

 // Make it point to "something.ext"

 img_tag.src = img_tag.src.replace(/_over(\.[^.]+)$/, '$1');

}





/**

 * When the page loads, set up the rollovers

 */

addEvent( window, 'load', setupRollovers, false );
