/*
	Home page maps
	Dependencies:
		YUI libraries
*/

function home_maps_on_mouseover_area(e) {
	var mapping = YAHOO.util.Dom.getAncestorByTagName(this, 'map');
	if(mapping) {
		home_maps_show(mapping.className, this.className);
	}
}

function home_maps_on_mouseout_area(e) {
	var mapping = YAHOO.util.Dom.getAncestorByTagName(this, 'map');
	if(mapping) {
		home_maps_reset(mapping.className);
	}
}

function home_maps_on_mouseover_link(e) {
	var ctr = YAHOO.util.Dom.getAncestorByClassName(this, 'hpmLinks');
	if(ctr) {
		home_maps_show(ctr.className.split(' ')[1], this.className);
	}
}

function home_maps_on_mouseout_link(e) {
	var ctr = YAHOO.util.Dom.getAncestorByClassName(this, 'hpmLinks');
	if(ctr) {
		home_maps_reset(ctr.className.split(' ')[1]);
	}
}

function home_maps_show(type,key) {
	var ctr_images = YAHOO.util.Dom.get('hpmImages_' + type);
	if(ctr_images) {
		YAHOO.util.Dom.getElementsBy(
			function(e) {
				return YAHOO.util.Dom.hasClass(e, 'overlay') && YAHOO.util.Dom.hasClass(e, key);
			},
			'img', ctr_images,
			function(i) {
				YAHOO.util.Dom.setStyle(i, 'visibility', 'visible');
			}
		);
	}
	var ctr_links = YAHOO.util.Dom.get('hpmLinks_' + type);
	if(ctr_links) {
		YAHOO.util.Dom.getElementsByClassName(key, 'a', ctr_links,
			function(a) {
				YAHOO.util.Dom.addClass(a, 'hpmMapped');
			}
		);
	}
}

function home_maps_reset(type) {
	var ctr_images = YAHOO.util.Dom.get('hpmImages_' + type);
	if(ctr_images) {
		YAHOO.util.Dom.getElementsByClassName('overlay', 'img', ctr_images,
			function(i) {
				YAHOO.util.Dom.setStyle(i, 'visibility', 'hidden');
			}
		);
	}
	var ctr_links = YAHOO.util.Dom.get('hpmLinks_' + type);
	if(ctr_links) {
		var links = ctr_links.getElementsByTagName('a');
		for(var i = 0; i < links.length; i++) {
			YAHOO.util.Dom.removeClass(links[i], 'hpmMapped');
		}
	}
}

function init_home_maps() {
	var ctr = YAHOO.util.Dom.get('hpmMappings');
	if(ctr) {
		var areas = ctr.getElementsByTagName('area');
		for(var i = 0; i < areas.length; i++) {
			YAHOO.util.Event.addListener(areas[i], 'mouseover', home_maps_on_mouseover_area);
			YAHOO.util.Event.addListener(areas[i], 'mouseout', home_maps_on_mouseout_area);
		}
	}
	YAHOO.util.Dom.getElementsByClassName('hpmLinks', 'div', document,
		function(c) {
			var links = c.getElementsByTagName('a');
			for(var i = 0; i < links.length; i++) {
				YAHOO.util.Event.addListener(links[i], 'mouseover', home_maps_on_mouseover_link);
				YAHOO.util.Event.addListener(links[i], 'mouseout', home_maps_on_mouseout_link);
			}
		}
	);
}
