/*--- script libraries ---*/
/*--- m3t base ---*/
/*--- ver. 2009.03.09 ---*/


/*------------ [base] ------------*/

var w = window;
var d = document;
var ua = navigator.userAgent;
var av = navigator.appVersion;

// check OS
var WIN = ua.indexOf('Win')>=0;
var MAC = ua.indexOf('Mac')>=0;
var OSX = ua.indexOf('Mac OS X')>=0;
var LNX = ua.indexOf('Linux')>=0;

// check browser
var IE = ua.indexOf('MSIE')>=0;
var verNum;
if(IE) {//check browser version ie 
	verNum = ua.charAt(30);
	if(verNum == 8) {
		var IE8 = true;
	}else if(verNum<8) {
		var underIE7 =true;
	}
}

var NN = ua.indexOf('Netscape')>=0;
var FF = ua.indexOf('Firefox')>=0;
var SF = ua.indexOf('Safari')>=0;
var OP = ua.indexOf('Opera')>=0;


/*------------ [onload setting] ------------*/

onloadArray = new Array();

// preload images
loadImages = new Array();



/*------------ [swap images] ------------*/

// normal swap image
function swapImage(target,url) {
	target.src = url;
}

// link swap image
function swapLinkImage(target,url,act){
	if (act){
		var urlData = url.replace(/_of./g,'_on.');
	}else{
		var urlData = url.replace(/_on./g,'_of.');
	}
	target.firstChild.src = urlData;
}

function setSwapImages(){
	var img = d.getElementsByTagName('img');
	for (var i=0;i<img.length;i++){
		if (img[i].src.indexOf('_of.')>-1){
			// preload images setting
			var imgSrc = img[i].src;
			loadImages.push(imgSrc.replace(/_of./g,'_on.'));
			// set attributes
			if (underIE7){
				img[i].parentNode.setAttribute('onmouseover', new Function('swapLinkImage(this,this.firstChild.src,true);'));
				img[i].parentNode.setAttribute('onmouseout', new Function('swapLinkImage(this,this.firstChild.src,false);'));
				img[i].parentNode.setAttribute('onfocus', new Function('swapLinkImage(this,this.firstChild.src,true);'));
				img[i].parentNode.setAttribute('onblur', new Function('swapLinkImage(this,this.firstChild.src,false);'));
			}else{
				img[i].parentNode.setAttribute('onmouseover','swapLinkImage(this,this.firstChild.src,true);');
				img[i].parentNode.setAttribute('onmouseout','swapLinkImage(this,this.firstChild.src,false);');
				img[i].parentNode.setAttribute('onfocus','swapLinkImage(this,this.firstChild.src,true);');
				img[i].parentNode.setAttribute('onblur','swapLinkImage(this,this.firstChild.src,false);');
			}
		}
	}
}

// preload images
function preloadImages(){
	var loadimgImages = new Array();
	for (var i=0;i<loadImages.length;i++){
		loadimgImages[i] = new Image();
		loadimgImages[i].src = loadImages[i];
	}
}

// onload trigger
onloadArray.push(setSwapImages);



/*------------ [link window controller] ------------*/
var otherwin;
function linkController(){
	var a = d.getElementsByTagName('a');
	for (var i=0;i<a.length;i++){
		// other_window
		if (a[i].getAttribute('class')||a[i].getAttribute('className')) {
			if ((a[i].getAttribute('class')||a[i].getAttribute('className')).indexOf('other_window')>-1){
				a[i].onclick=function(){
					otherwin = w.open(this.href,'nedo_window','toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,resizable=yes,scrollbars=yes,titlebar=yes');
					otherwin.focus();
					return false;
				}
			}
		}
		// top_window
		if (a[i].getAttribute('class')||a[i].getAttribute('className')) {
			if ((a[i].getAttribute('class')||a[i].getAttribute('className')).indexOf('top_window')>-1){
				a[i].onclick=function(){
					w.open(this.href,'_top');
					return false;
				}
			}
		}
	}
}

// onload trigger
onloadArray.push(linkController);


function linkOtherWindow(url){
	otherwin = w.open(url,'nedo_window','toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,resizable=yes,scrollbars=yes,titlebar=yes');
	otherwin.focus();
	return false;
}



/*------------ [popup window] ------------*/

function popupWindow(url,target,width,height,event,others){
	var setOthers = new String();
	if(others){
		if (others.search(/t/i) != -1) {
			setOthers += ',toolbar=yes';
		}
		if (others.search(/l/i) != -1) {
			setOthers += ',location=yes';
		}
		if (others.search(/s/i) != -1) {
			setOthers += ',status=yes';
		}
		if (others.search(/m/i) != -1) {
			setOthers += ',menubar=yes';
		}
		if (others.search(/b/i) != -1) {
			setOthers += ',scrollbars=yes';
		}
		if (others.search(/r/i) != -1) {
			setOthers += ',resizable=yes';
		}
	}
	if (width=='full' || height=='full') {
		width = new String(screen.availWidth);
		height = new String(screen.availHeight);
	}
	w.open(url,target,'top=0,left=0,width='+width+',height='+height+setOthers);
	//
	if(event.preventDefault){
		event.preventDefault();
		event.stopPropagation();
	}
	event.returnValue=false;
	event.cancelBubble=true;
}



/*------------ [page scroll] ------------*/

var scrollSpeed = 0.1;
var scrollInterval = 10;

// browser size
var inWidth;
var inHeight;
function getBrowserSize(){
	if(IE){// IE
		inWidth = d.documentElement.clientWidth;
		inHeight = d.documentElement.clientHeight;
	}else if(FF){// Firefox
		inWidth = d.documentElement.clientWidth;
		inHeight = d.documentElement.clientHeight;
	}else if(OP){
		if(av.substring(0,3)>=9.5){// Opera 9.5
			inWidth = d.documentElement.clientWidth;
			inHeight = d.documentElement.clientHeight;
		}else{// Opera
			inWidth = d.body.clientWidth;
			inHeight = d.body.clientHeight;
		}
	}else if(SF||NN){// Safari,Netscape
		inWidth = w.innerWidth;
		inHeight = w.innerHeight;
	}
}

// get page height
var winTop;
var winBottom;
function getPageHeight() {
	//
	var bTag = d.getElementsByTagName('body')[0];
	var aTag = d.createElement('a');
	aTag.setAttribute('id','bottom');
	bTag.appendChild(aTag);
	//
	winTop = d.getElementById('top').offsetTop;
	winBottom = d.getElementById('bottom').offsetTop;
}

// get element position
function getElementPosition(elm){
	var obj = new Object();
	obj.x = elm.offsetLeft;
	obj.y = elm.offsetTop;
	// revise position
	while(elm.offsetParent) {
		elm = elm.offsetParent;
		obj.x += elm.offsetLeft;
		obj.y += elm.offsetTop;
	}
	return obj;
}

// get anchor name
function getAnchor(trg){
	var trgSharp = trg.indexOf('#');
	var trgId = trg.substring(trgSharp+1);
	return trgId;
}

// get anchor position
var thsTop;
var trgTop;
function getAnchorPosition(trg,ths,scrollgnavi){
	getPageHeight();
	getBrowserSize();
	// base
	if(IE){
		thsTop = d.documentElement.scrollTop;
	}else{
		thsTop = w.pageYOffset;
	}
	// target
	var trgObj = d.getElementById(getAnchor(trg));
	if(scrollgnavi){//gnavi scroll(日本語と英語でtrgTop位置調整)
		var div = d.getElementsByTagName('div');
		for (var i=0;i<div.length;i++){
			if (div[i].getAttribute('class')||div[i].getAttribute('className')) {
				if ((div[i].getAttribute('class')||div[i].getAttribute('className')).indexOf('jpn')>-1){
					trgTop = getElementPosition(trgObj).y-75;
				} else if ((div[i].getAttribute('class')||div[i].getAttribute('className')).indexOf('eng')>-1){
					trgTop = getElementPosition(trgObj).y-93;
				}
			}
		}
	}else {//normar scroll
		trgTop = getElementPosition(trgObj).y;
	}
	if(winBottom-trgTop<inHeight){
		trgTop = winBottom-inHeight;
	}
}


function scrollAction(){
	getBrowserSize();
	getPageHeight();
	thsTop = thsTop+(trgTop-thsTop)*scrollSpeed;
	var posY = Math.round(thsTop);
	w.scrollTo(0,posY);
	if(Math.abs(trgTop-thsTop)<2){
		w.scrollTo(0,trgTop);
		clearInterval(eventTimer);
	}
}

var eventTimer;
// scroll trigger
function scrollTrigger(trg,ths,event,scrollgnavi){
	if(!IE||!MAC){
		getAnchorPosition(trg,ths,scrollgnavi);
		if(eventTimer){
			clearInterval(eventTimer);
		}
		eventTimer = setInterval(scrollAction,scrollInterval);
		//
		if(event.preventDefault){
			event.preventDefault();
			event.stopPropagation();
		}
		event.returnValue=false;
		event.cancelBubble=true;
	}
}


function checkWheel(){
	clearInterval(eventTimer);
}
function setCheckWheel(){
	if(IE||SF){
		w.onmousewheel = d.onmousewheel = checkWheel;
	}
	if(FF||NN){
		w.addEventListener('DOMMouseScroll', checkWheel, false);
	}
	if(OP){
		if(av.substring(0,3)>=9.5){// Opera 9.5
			w.attachEvent('onmousewheel', checkWheel);
		}else if(WIN){
			d.addEventListener('mousewheel',function(event){clearInterval(eventTimer);event.preventDefault();scrollBy(0, -event.wheelDelta);},false);
		}else{
			d.addEventListener('mousewheel',function(event){clearInterval(eventTimer);event.preventDefault();scrollBy(0, event.wheelDelta);},false);
		}
	}
}
if(!IE||!MAC){
	setCheckWheel();
}



/*------------ [elevatormenu] ------------*/

var speed = 20;//gnaviの移動速度
var steps = 10;//gnaviの移動幅

var gnaviConts;
var gPos;
var gStrPos;//元の位置
var gTrgPos;//移動先位置
var steps;//移動幅


function moveGnavi() {//gnaviの挙動設定
	getPosition();
	gTrgPos = gPos;
	
	if(gTrgPos<334) {//上昇の上限設定
		gTrgPos = 334;
	}
	var movingsteps = steps;
	var distance;//移動距離
	distance = Math.abs(gTrgPos - gStrPos);
	
	if(distance>100) {//移動距離が長い時スピード上げる
		movingsteps = steps*5;
	}
	if(distance<25) {//移動距離が少ない時スピード落とす
		movingsteps = 1;
	}
	if(gStrPos>gTrgPos) {//上昇
		gStrPos -= movingsteps;
	} else if(gStrPos<gTrgPos) {//下降
		gStrPos += movingsteps;
	}
	if(distance != 0) {
		gnaviConts.style.top = gStrPos + 'px';
	}
}


function setElevatorMenu() {//移動元位置取得
	gnaviConts = d.getElementById('gnaviConts');
	if(gnaviConts !=null) {//gnaviContsが存在するときに実行
		getPosition();
		gStrPos = gPos;
		if(gStrPos<334) {//初期位置設定
			gStrPos = 334;
		}
		gnaviConts.style.top = gStrPos + 'px';
		setInterval('moveGnavi()',speed);
	}
}


function getPosition() {//位置取得
	if(IE){
		gPos = d.documentElement.scrollTop;
	}else{
		gPos = w.pageYOffset;
	}
}

// onload trigger
onloadArray.push(setElevatorMenu);



//
function setPrint(){
w.print();
}

