/*----------------------------------------------------------------
****
**** <function.js>
****
**** Copyright (C) 2009 Wellenetz Inc.All Rights Reserved.
**** URL : http://www.wellenetz.co.jp/
****
----------------------------------------------------------------*/

var Mac = navigator.appVersion.indexOf('Mac',0) != -1;
var Win = navigator.appVersion.indexOf('Win',0) != -1;
var IE  = navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1;
var NN  = navigator.appName.indexOf("Netscape",0) != -1;
var Moz = navigator.userAgent.indexOf("Gecko") != -1;
var Vmajor = parseInt(navigator.appVersion); // ex. 3
var Vminor = parseFloat(navigator.appVersion); // ex. 3.01
var WinIE = (Win && IE);
var MacIE5 = ((Mac && navigator.appVersion.indexOf('MSIE 5',0) != -1) || (Mac && IE && VER > 4));
var MacIE4 = ((Mac && navigator.appVersion.indexOf('MSIE 4.',0) != -1));
var MacIE3 = ((Mac && navigator.appVersion.indexOf('MSIE 3.',0) != -1));

var bAgent = navigator.userAgent;
var d = document;

/*************************
** scroll
*/
function sniffer(){
	this.Win = bAgent.indexOf("Win",0) != -1 ? 1 :0;
	this.Mac = bAgent.indexOf("Mac",0) != -1 ? 1 :0;
	this.Moz = ((bAgent.indexOf("Gecko") != -1) && (bAgent.indexOf("Safari",0) == -1)) ? 1 :0;
	this.OPERA = bAgent.indexOf("Opera",0) != -1 ? 1 :0;
	this.SAFARI = bAgent.indexOf("Safari",0) != -1 ? 1 :0;
	this.checkObj = d.all?(d.getElementById?3:2):(d.getElementById?4:(d.layers?1:0));
	this.allObj = ((this.checkObj == 1) || (this.checkObj == 2) || (this.checkObj == 3) || (this.checkObj == 4));
	return this;
}
var usr = new sniffer;

function getWindowXOffset(){
	if(usr.checkObj == 2 || usr.checkObj == 3){
		return d.body.scrollLeft;
	}else if(usr.checkObj == 1 || usr.checkObj == 4){
		return window.pageXOffset;
	}
}

function getWindowYOffset(){
	if(usr.checkObj == 2 || usr.checkObj == 3){
		return d.body.scrollTop;
	}else if(usr.checkObj == 1 || usr.checkObj == 4){
		return window.pageYOffset;
	}
}

/*PageScroller*/
var pageScrollTimer;
function pageScroll(toX,toY,frms,frX,frY) {
	if(pageScrollTimer) clearTimeout(pageScrollTimer);
	var spd = usr.Mac ? 14 :16;
	var actX = getWindowXOffset();
	var actY = getWindowYOffset();
	if(!toX || toX < 0) toX = 0;
	if(!toY || toY < 0) toY = 0;
	if(!frms) frms = usr.NN ? 10 :usr.Mac ? 4 :5;
	if(!frX) frX = 0 + actX;
	if(!frY) frY = 0 + actY;

	frX += (toX - actX) / frms;
	if (frX < 0) frX = 0;
	frY += (toY - actY) / frms;
	if (frY < 0) frY = 0;
	var posX = Math.ceil(frX);
	var posY = Math.ceil(frY);
	window.scrollTo(posX, posY);
	if((Math.floor(Math.abs(actX - toX)) < 1) && (Math.floor(Math.abs(actY - toY)) < 1)){
		clearTimeout(pageScrollTimer);
		window.scroll(toX,toY);
	}else if(posX != toX || posY != toY){
		pageScrollTimer = setTimeout("pageScroll("+toX+","+toY+","+frms+","+frX+","+frY+")",spd);
	}else{
		clearTimeout(pageScrollTimer);
	}
}

function jumpToPageTop() {
	if(usr.allObj){
		pageScroll(0,0);
	}else{
		!!idName ? location.hash = idName : location.hash = "top";
	}
}

