/*
 * ロールオーバー.jsから移植
 */
function smartRollover() {
	if(document.getElementsByTagName) {
		var images = document.getElementsByTagName("img");
		for(var i=0; i < images.length; i++) {
			if(images[i].getAttribute("src").match("_out\\."))
			{
				images[i].onmouseover = function() {
					this.setAttribute("src", this.getAttribute("src").replace("_out.", "_over."));
				}
				images[i].onmouseout = function() {
					this.setAttribute("src", this.getAttribute("src").replace("_over.", "_out."));
				}
			}
		}
	}
}
if(window.addEventListener) {
	window.addEventListener("load", smartRollover, false);
}
else if(window.attachEvent) {
	window.attachEvent("onload", smartRollover);
}


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


/*
	hover.jsから移植
*/
//
// IEでアンカー以外にもhover効果
// 
// CGI-PLANT http://wws.cside.com/cgi-plant/
// 2006.01.26
//


//
// 初期化処理
//
// Selecters::array( [ElementName][.className] / #ID )
//
function allhover(Selecters){
	if(! navigator.userAgent.match(/MSIE/)) return;
	for(var i=0;i<Selecters.length;i++) {
		if(Selecters[i].match(/^#(.*)/)){
			var O = document.getElementById(RegExp.$1);
			if(! O)continue;
			O.overClass = 'Hover';
			O.onmouseover = function(){classHandle('add',this)};
			O.onmouseout = function(){classHandle('del',this)};
		} else {
			var TagClass = Selecters[i].split('.');
			if(TagClass[0] == '') TagClass[0] = '*';
			var TagList = document.getElementsByTagName(TagClass[0]);
			for(var j=0;j<TagList.length;j++) {
				if( TagClass[1] && (! classHandle('match',TagList[j],TagClass[1]))) continue;
				var addName = (TagClass[1])?TagClass[1]+'Hover':'Hover';
				TagList[j].overClass = addName;
				TagList[j].onmouseover = function(){classHandle('add',this)};
				TagList[j].onmouseout = function(){classHandle('del',this)};
			}
		}
	}
}
//
// 要素のクラス操作
//
// Mode
//  match::オブジェクト(O)にクラス(str)は含まれているか？ return true/false
//  add::オブジェクト(O)のクラスに新しくクラス(str)を追加
//  del::オブジェクト(O)のクラスからクラス(str)を削除
//
function classHandle(Mode,O,str){
	var ClassList = O.className.split(' ');
	if(Mode == 'match') {
		for(var i=0;i<ClassList.length;i++){
			if(ClassList[i] == str) return true;
		}
		return false;
	} else if(Mode == 'add') {
		for(var i=0;i<ClassList.length;i++){
			if(ClassList[i] == O.overClass) return O.className;
		}
		O.className += ' '+O.overClass;
		return O.className;
	} else if(Mode == 'del') {
		var newClassName = '';
		for(var i=0;i<ClassList.length;i++){
			if(ClassList[i] != O.overClass)
				newClassName += ' '+ClassList[i];
		}
		O.className = newClassName.replace(/^ /,'');
		return O.className;
	}
}
