// update.090519

var name = "hover";

addEvent(window,"load",function() {

	var tags = document.getElementsByTagName('a');//aタグを全取得
	$A(tags).each(function(obj){

		Event.observe(obj,'mouseover',addRel);//aタグにmouseover event追加
		Event.observe(obj,'mouseout',rmRel);//aタグにmouseout event追加

		var child = obj.getElementsByTagName('*');//全ての子要素を取得
		$A(child).each(function(obj){
			Event.observe(obj,'mouseover',addRel);//全ての子要素にもevent追加
		});
	});
});

function addEvent(elm,listener,fn){
	try{
		elm.addEventListener(listener,fn,false);
	}catch(e){
		elm.attachEvent("on"+listener,fn);
	}
}

function addRel(event){
	var parentID = eElement(event);

	var targetClass = document.getElementsByClassName(parentID); //親idと同じclass名を持つ要素を取得
	$A(targetClass).each(function(obj){
		if (obj.className.match(/hover/i)) {// .hoverの重複回避
//			alert(obj.className);
		} else {
		addClass(obj);
		}
	});
}

function rmRel(event){
	var parentID = eElement(event);

	var targetClass = document.getElementsByClassName(parentID); //親idと同じclass名を持つ要素を取得
	$A(targetClass).each(function(obj){
			rmClass(obj);
	});
}


function eElement(event) {

	var eEL = Event.element(event);//event発生元のエレメント
	var parentID ="";

	if (eEL.getAttribute("id")) {
		parentID = eEL.getAttribute("id");

	} else if (eEL.parentNode.getAttribute("id")) {
		parentID = eEL.parentNode.getAttribute("id");

	} else if (eEL.nodeName == "IMG") {
		parentID = eEL.parentNode.parentNode.getAttribute("id");

	} else if (eEL.parentNode.parentNode.getAttribute("id")) {
		parentID = eEL.parentNode.parentNode.getAttribute("id");

	}
//	alert(parentID);
	return (parentID);
}


function addClass(target){
Element.addClassName(target, name);//targetエレメントにclass名を追加
}

function rmClass(target){
Element.removeClassName(target, name);//targetエレメントからclass名を削除
}

