/*
	Standards Compliant Rollover Script
	Author : Daniel Nolan
	http://www.bleedingego.co.uk/webdev.php
*/
new function(){
	function initRollovers() {
		if (!document.getElementById) return
	
		resetRollover();
	
		var aPreLoad = new Array();
		var sTempSrc;
		var aImages = document.getElementsByTagName('img');
	
		for (var i = 0; i < aImages.length; i++) {
			if (aImages[i].className == 'imgover' || aImages[i].className == 'imgovered') {
				var src = aImages[i].getAttribute('src');
				var ftype = src.substring(src.lastIndexOf('.'), src.length);
				var hsrc = src.replace(ftype, '_o'+ftype);
				
			
				if (aImages[i].className == 'imgover'){
					aImages[i].setAttribute('hsrc', hsrc);
					
					aImages[i].ftype = ftype;
					
					aPreLoad[i] = new Image();
					aPreLoad[i].src = hsrc;

					aImages[i].onmouseover = function() {
						this.sTempSrc = this.getAttribute('src');
						this.setAttribute('src', this.getAttribute('hsrc'));
					}	
			
					aImages[i].onmouseout = function() {
						
						this.sTempSrc = this.getAttribute('src').replace('_o'+this.ftype, this.ftype);
						
						this.setAttribute('src', this.sTempSrc);
					}
				}else if (aImages[i].className == 'imgovered'){
					//alert(hsrc);
					aImages[i].src = hsrc;
				}
			}
		}
		
		styleSwitcher();
	}

	
	function resetRollover() {
		if(document.getElementsByTagName) {
			var images = document.getElementsByTagName("img");
			for(var i=0; i < images.length; i++) {
				if(images[i].getAttribute("src")){
					if(images[i].getAttribute("src").match("_o.") && (images[i].className == "imgover" ||images[i].className == "imgovered")) {
						images[i].setAttribute("src", images[i].getAttribute("src").replace("_o.", "."));
					}
				}
			}
		}
	}


	addEvent(window,'load',initRollovers);

	function addEvent(eventTarget, eventName, func){
		if(eventTarget.addEventListener){
			eventTarget.addEventListener(eventName, func, false);
		}else if(window.attachEvent){
			eventTarget.attachEvent('on'+eventName, function(){func.apply(eventTarget);});
		}
		
		// Firefoxで、戻る操作後にロールオーバー時の画像がキャッシュとして
		//	読み込まれる問題に対応する
		try{
			eventTarget.addEventListener("pageshow", func, false);
		}catch(e){
			eventTarget.attachEvent("onpageshow", func);
		}
		
	}

}

new function(){
	function initRollovers2(){
		if(!document.images){return;}
		var imgs = document.images;
		var insert = [];

		for(var i=0;i<imgs.length;i++){
			var splitname = imgs[i].src.split('_alpha.');
			if((splitname[1])&&(imgs[i].parentNode.tagName=='A')){
				var rolloverImg = document.createElement('img');
				rolloverImg.src = splitname[0]+'_alpha_o.'+splitname[1];

				var alpha = 0;
				rolloverImg.currentAlpha = alpha;
				rolloverImg.style.opacity = alpha/100;
				rolloverImg.style.filter = 'alpha(opacity='+alpha+')';
				rolloverImg.style.position = 'absolute';

				addEvent(rolloverImg,'mouseover',function(){setFader(this,100);});
				addEvent(rolloverImg,'mouseout',function(){setFader(this,0);});

				insert[insert.length] = {position:imgs[i],element:rolloverImg};
			}
		}

		for(var i=0;i<insert.length;i++){
			var parent = insert[i].position.parentNode;
			parent.insertBefore(insert[i].element,insert[i].position);
		}
	}

	function setFader(targetObj,targetAlpha){
		targetObj.targetAlpha = targetAlpha;

		if(targetObj.currentAlpha==undefined){
			targetObj.currentAlpha = 100;
		}
		if(targetObj.currentAlpha==targetObj.targetAlpha){
			return;
		}

		if(!targetObj.fading){
			if(!targetObj.fader){
				targetObj.fader = fader;
			}
			targetObj.fading = true;
			targetObj.fader();
		}
	}

	function fader(){
		this.currentAlpha += (this.targetAlpha - this.currentAlpha)*0.2;

		if(Math.abs(this.currentAlpha-this.targetAlpha)<1){
			this.currentAlpha = this.targetAlpha;
			this.fading = false;
		}

		var alpha = parseInt(this.currentAlpha);
		this.style.opacity = alpha/100;
		this.style.filter = 'alpha(opacity='+alpha+')';

		if(this.fading){
			var scope = this;
			setTimeout(function(){fader.apply(scope)},30);
		}
	}



	function addEvent(eventTarget, eventName, func){
		if(eventTarget.addEventListener){
			eventTarget.addEventListener(eventName, func, false);
		}else if(window.attachEvent){
			eventTarget.attachEvent('on'+eventName, function(){func.apply(eventTarget);});
		}
	}

	addEvent(window,'load',initRollovers2);

}

