// RollOverImage CLASS

function RollOverImage(img){
	this.img = img;
	this.originalPath = this.img.src;
}
RollOverImage.prototype.setMouseOverImage = function( filepath ){
	this.mouseoverImg = new Image();
	this.mouseoverImg.src = filepath;
	var originalPath = this.originalPath;

	this.img.onmouseover = RollOverImage.createHandler(this.img, filepath);
	this.img.onmouseout = RollOverImage.createHandler(this.img, this.originalPath);
}
RollOverImage.prototype.setMouseDownImage = function( filepath ){
	this.mousedownImg = new Image();
	this.mousedownImg.src = filepath;

	this.img.onmousedown = RollOverImage.createHandler(this.img, filepath);
	//this.img.onmouseup = RollOverImage.createHandler(this.img, this.originalPath);
}
RollOverImage.createHandler = function(img, path){
	return function(){
		img.src = path;
	}
}

// RollOverImageFactory CLASS

function RollOverImageFactory(eid,src1,src2){
	this.rollOverElementId = eid;
	this.unActiveImgSrc = src1;
	this.activeImgSrc = src2;
}
RollOverImageFactory.prototype.make = function () {
	var rollover = new RollOverImage(document.getElementById(this.rollOverElementId));
	rollover.setMouseDownImage(this.activeImgSrc);
	rollover.setMouseOverImage(this.activeImgSrc);
}

// RollOverImageFactories CLASS

function RollOverImageFactories () {
	this.factories = new Array();
	this.factoriesNum = 0;
}
RollOverImageFactories.prototype.add = function (factory) {
	this.factories[this.factoriesNum] = factory;
	this.factoriesNum++;
}
RollOverImageFactories.prototype.make = function (){
	var i;
	for (i in this.factories) {
		this.factories[i].make();
	}
}

//popupwindow

function MM_openBrWindow(theURL,winName,features) { 
  window.open(theURL,winName,features);
}

//print

function PrintPage(){
if(document.getElementById || document.layers){
window.print();
}
}

window.onload = function () {
	/**
	 * calculate X-coord in a page
	 * @param elem element
	 * @returns {Number} X-coordinate
	 */
	function calculateXcoord(elem) {
		var xCoord = 0;
		while (elem) {
			xCoord += new Number(elem.offsetLeft);
			elem = elem.offsetParent;
		}
		if (navigator.userAgent.indexOf('Mac') != -1 &&
				typeof document.body.leftMargin != 'undefined') {
			xCoord += new Number(document.body.leftMargin);
		}
		return xCoord;
	}
	/**
	 * calculate Y-coord in a page
	 * @param elem element
	 * @returns {Number} Y-coordinate
	 */
	function calculateYcoord(elem) {
		var yCoord = 0;
		while (elem) {
			yCoord += new Number(elem.offsetTop);
			elem = elem.offsetParent;
		}
		if (navigator.userAgent.indexOf('Mac') != -1 &&
				typeof document.body.topMargin != 'undefined') {
			yCoord += new Number(document.body.topMargin);
		}
		return yCoord;
	}
	/**
	 * start smoothscroll action
	 * @param elem_dst element to jump
	 */
	function startScroll(elem_dst) {
		var destY = calculateYcoord(elem_dst);
		var ename = elem_dst.id ? elem_dst.id : elem_dst.name;
		var urlHash = (ename) ? ('#'+ename) : null;
		var interval = 30;  // millisecond
		var steps = 15;  // times
		var crnt = 0;  // counter
		var scrollTop = null;
		if (document.body.parentNode.scrollTop != null) {  //IE
			scrollTop = document.body.parentNode.scrollTop;
		} else if (window.scrollY != null) {  //NN5
			scrollTop = window.scrollY;
		} else if (window.pageYOffset != null) {  //NN4
			scrollTop = window.pageYOffset;
		}
		var diff = destY - scrollTop;
		var timerid = setInterval(function () {
			if (crnt++ < steps) {
				var t = crnt / steps;
				var f = t-1/Math.PI*Math.sin(Math.PI*t);
				var y = scrollTop + diff * f;
				window.scrollTo(0, y);
			} else {
				clearInterval(timerid);
				if (urlHash) {
					document.location.hash = urlHash;
				}
				if (navigator.userAgent.indexOf('Opera 8.01') != -1) {
					document.location.reload();  // Opera8.01 bug
				}
				return true;
			}
		}, interval);
	}
	/**
	 * closure that returns onclick handler for link
	 * @param anchor element to jump
	 * @returns event handler function
	 */
	function cloOnLinkClick(anchor) {
		return function(event) {
			startScroll(anchor);
			Event.stop(event);  // prevent browser default action(jump)
		};
	}
	
	// ページ内リンクでスムーススクロールするハンドラを全リンクに自動設定
	var myURL = document.location.href.replace(document.location.hash, ''); // remove hash
	var regex = '^'+myURL+'#';
	
	var anchorMap = new Object();  // hash -> anchor
	for (var i = 0; i < document.anchors.length; i++) {
		var a = document.anchors[i];
		var aname = a.id ? a.id : a.name;
		anchorMap['#'+aname] = a;
	}
	for (var i = 0; i < document.links.length; i++) {
		var link = document.links[i];
		if (!link.onclick && !link.onmousedown && link.href &&
				link.href.match(regex) && anchorMap[link.hash]) {
			// onclick,onmousedownハンドラ未定義　かつ　ページ内リンク
			var anchor = anchorMap[link.hash];
			Event.observe(link, 'click', cloOnLinkClick(anchor), false);
		}
	}
};


var rollOverImageFactories = new RollOverImageFactories();

rollOverImageFactories.add(new RollOverImageFactory("privacy1","/portal/img/foot_navi_privacy.gif","/portal/img/foot_navi_privacy_over.gif"));
rollOverImageFactories.add(new RollOverImageFactory("tou1","/portal/img/foot_navi_riyou.gif","/portal/img/foot_navi_riyou_over.gif"));

rollOverImageFactories.add(new RollOverImageFactory("navi1","/portal/img/navi_button01.jpg","/portal/img/navi_button01_over.jpg"));
rollOverImageFactories.add(new RollOverImageFactory("navi2","/portal/img/navi_button02.jpg","/portal/img/navi_button02_over.jpg"));
rollOverImageFactories.add(new RollOverImageFactory("navi3","/portal/img/navi_button03.jpg","/portal/img/navi_button03_over.jpg"));
rollOverImageFactories.add(new RollOverImageFactory("navi4","/portal/img/navi_button04.jpg","/portal/img/navi_button04_over.jpg"));
rollOverImageFactories.add(new RollOverImageFactory("navi5","/portal/img/navi_button05.jpg","/portal/img/navi_button05_over.jpg"));
rollOverImageFactories.add(new RollOverImageFactory("navi6","/portal/img/navi_button06.jpg","/portal/img/navi_button06_over.jpg"));
rollOverImageFactories.add(new RollOverImageFactory("navi7","/portal/img/navi_button07.jpg","/portal/img/navi_button07_over.jpg"));
rollOverImageFactories.add(new RollOverImageFactory("navi8","/portal/img/navi_button08.jpg","/portal/img/navi_button08_over.jpg"));
rollOverImageFactories.add(new RollOverImageFactory("navi9","/portal/img/navi_button09.jpg","/portal/img/navi_button09_over.jpg"));

