﻿// JavaScript Document

/**
 * 画像置換を実装する
 */
function createSwapImage() {
	
	var targetList = $$("#sidenavi ul img");
	setup(targetList);
	
	var indexButton = $$("#indexLink img");
	setup(indexButton);
	
	// 実際にイベントリスナなどを割り当てる
	function setup(targetList) {
		var imax = targetList.length;
		for(var i=0; i<imax; i++) {
			var target = targetList[i];
			if(target.className == "current") continue;
			target.initSrc = target.src;
			target.swapSrc = getSwapSrc(target.src);
			preload(target.swapSrc);
			target.addEvent("mouseenter", enterListener.bindWithEvent(target));
			target.addEvent("mouseleave", leaveListener.bindWithEvent(target));
		}
	}
	
	// ソースを入れ替える
	function enterListener() {
		this.src = this.swapSrc;
	}
	
	function leaveListener() {
		this.src = this.initSrc;	
	}
	
	function getSwapSrc(src) {
		var swapSrc = "";
		if(src.indexOf(".jpg") > -1) {
			swapSrc = src.replace(".jpg", "-on.jpg");
		} else if(src.indexOf(".gif") > -1) {
			swapSrc = src.replace(".gif", "-on.gif");
		}
		return swapSrc;
	}
	
	// プリロードしておく
	function preload(src) {
		var image = new Image();
		image.src = src;
	}
	
}

/**
 * スクローラを生成する
 */
function createScroller() {
	
	var scroller = $("pagetop");
	scroller.addEvent("click", clickListener);
	
	var scrollerList = $$("#main .pagetopMiddle");
	var imax = scrollerList.length;
	for(var i=0; i<imax; i++) {
		var tmpScroller = scrollerList[i];
		tmpScroller.addEvent("click", clickListener);
	}
	
	// プロパティを初期化
	var scrollContainer = new Fx.Scroll(document.body, {
		transition: Fx.Transitions.Cubic.easeOut,
		duration: 1000
	});
	
	function clickListener(event) {
		scrollContainer.toTop();
		event.preventDefault();
	}
}

/**
 * ツールチップを生成する
 */
function createToolTips() {
	
	// 対象となるノードリストを取得する
	var items = $$("#section03 tbody tr.tips");
	
	
	// 最後のノードはいらないので切り捨て
	//items.pop();
	
	// Tipsで拡張する
	var myTips = new Tips(items);
	
	// それぞれのプロパティを設定
	var imax = items.length;
	for(var i=0; i<imax; i++) {
		var row = items[i];
		row.initClass = row.className;
		row.addEvent("mouseenter", enterListener.bindWithEvent(row));
		row.addEvent("mouseleave", leaveListener.bindWithEvent(row));
	}
	
	// マウスオーバーしたらクラス名を変更
	function enterListener() {
		var isEmphasis = (this.className.match("emphasis"))? true : false;
		this.className = "enter";
		if(isEmphasis) this.className += " emphasis";
	}
	
	// マウスアウトしたらクラス名を戻す
	function leaveListener() {
		this.className = this.initClass;
	}
}

function initComparePage() {
	createToolTips();
}

function init() {
	createSwapImage();
	createScroller();
}

window.addEvent("domready", init);

// 会社徹底比較だけ実行
if(location.href.indexOf("compare") > -1) {
	window.addEvent("domready", initComparePage);
}




