/* global values */
var cookie = readCookie("style");
var title = (!cookie || cookie != 'small' && cookie != 'large') ? 'default' : cookie;
setActiveStyleSheet(title);
var scroll_sp = 6;
var scroll_timer = 0;
var rollover_images = [];
var gnavi_flag = false;

/* styleswitcher function */
function setActiveStyleSheet(title) {
	var i, a, main;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if(a.getAttribute("rel") && a.getAttribute("rel").indexOf("style") != -1
			&& a.getAttribute("title")) {
			a.disabled = true;
			if(a.getAttribute("title") == title) a.disabled = false;
		}
	}
	createCookie("style", title, 30);
}

function getActiveStyleSheet() {
	var i, a;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if(a.getAttribute("rel") && a.getAttribute("rel").indexOf("style") != -1 
			&& a.getAttribute("title") && !a.disabled
			) return a.getAttribute("title");
	}
	return null;
}

function getPreferredStyleSheet() {
	var i, a;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if(a.getAttribute("rel") && a.getAttribute("rel").indexOf("style") != -1
			 && a.getAttribute("rel").indexOf("alt") == -1
			 && a.getAttribute("title")
			 ) return a.getAttribute("title");
	}
	return null;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function loadStyle() {
	var cookie = readCookie("style");
	var title = (!cookie || cookie != 'small' && cookie != 'large') ? 'default' : cookie;
	setActiveStyleSheet(title);

	var aSmall = document.getElementById('small_btn')
	var aDefault = document.getElementById('default_btn')
	var aLarge = document.getElementById('large_btn')

	if (aSmall && aDefault && aLarge) {
		aSmall.onclick = function() {
			setActiveStyleSheet('small');
			return false;
		}
		aDefault.onclick = function() {
			setActiveStyleSheet('default');
			return false;
		}
		aLarge.onclick = function() {
			setActiveStyleSheet('large');
			return false;
		}
	}
}

/* rollover function */
function preloadImage(url){
	var p = rollover_images;
	var l = p.length;
	p[l] = new Image();
	p[l].src = url;
}

function loadRollover() {
	var id;
	var gnaviElem, imgElem;
	var imgIdList = new Array();
	imgIdList = [
		'home_img',
		'sitemap_img',
		'english_img',
		'small_img',
		'default_img',
		'large_img',
		'search_img',
		'print_img',
		'display_all_img',
		'read_img',
		'private_img',
		'accessibility_img',
		'usage_img',
		'inquiry_img'
	];

	var gnaviElem = document.getElementById('navi-global');
	if (gnaviElem) imgElem = gnaviElem.getElementsByTagName('img');
	if (gnaviElem && imgElem) {
		for (var i=0, len=imgElem.length; i<len; i++) {
			id = imgElem[i].getAttribute('id');
			if (id) {
				imgIdList.push(id);
			}
		}
	}

	for (var i=0, len=imgIdList.length; i<len; i++) {
	 	var imgIdElem = document.getElementById(imgIdList[i]);
		if (imgIdElem) {
			imgIdElem.originalSrc = imgIdElem.src;
			if (imgIdElem.originalSrc.indexOf("_ex.gif", 1) == -1) {
				imgIdElem.rolloverSrc = imgIdElem.originalSrc.replace('.gif', '_ex.gif');
				}
			else {
				imgIdElem.rolloverSrc = imgIdElem.originalSrc;
				};
			preloadImage(imgIdElem.originalSrc);
			preloadImage(imgIdElem.rolloverSrc);

			if (imgIdList[i].indexOf("global") == -1) {
				imgIdElem.onmouseover = function(){
					this.src = this.originalSrc;
				}
				imgIdElem.onmouseout = function(){
					this.src = this.originalSrc;
				}
			}
		}
	}

}

/* local navigation function */
function loadLnavi() {
	var lnaviElem = document.getElementById('navi-left');
	if (lnaviElem) var aElem = lnaviElem.getElementsByTagName('a');

	if (lnaviElem && aElem) {
		for (var i=0, len=aElem.length; i<len; i++) {
			var aHref = aElem[i].getAttribute('href');
			var lHref = location.href;
			if (aHref.match(/\/$/)) {
				aHref = aHref + 'index.html';
			}
			if (lHref.match(/\/$/)) {
				lHref = lHref + 'index.html';
			}
			if (lHref.match(aHref)) {
				if (aElem[i].className != ''){
					aElem[i].className = aElem[i].className + ' current';
				}else{
					aElem[i].className = 'current';
				}
			}	
		}
	}
}

/* global menu function */
function displayMenu() {
	var divElem = this.getElementsByTagName('div');
	divElem[0].className = '';

	var imgElem = this.getElementsByTagName('img');
	imgElem[0].src = imgElem[0].rolloverSrc;
}

function hiddenMenu() {
	if (gnavi_flag == false){
		var divElem = this.getElementsByTagName('div');
		divElem[0].className = 'hidden';

		var imgElem = this.getElementsByTagName('img');
		imgElem[0].src = imgElem[0].originalSrc;
	}
}

function displayAllMenu() {
	var divElem = false;
	var imgElem, allElem;
	var gnaviElem = document.getElementById('navi-global');
	if (gnaviElem) divElem = gnaviElem.getElementsByTagName('div');
	if (gnaviElem && divElem){
		if (gnavi_flag) {
			for (var i=0, len=divElem.length; i<len; i++) {
				divElem[i].className = 'hidden';
			}
			for (var i=0; (imgElem=document.getElementById('global'+i+'_img')); i++) {
				imgElem.src = imgElem.originalSrc;
			}
			allElem = document.getElementById('display_all_img');
			allElem.src = allElem.originalSrc;
			gnavi_flag = false;
		}else{
			for (var i=0, len=divElem.length; i<len; i++) {
				divElem[i].className = '';
			}
			for (var i=0; (imgElem=document.getElementById('global'+i+'_img')); i++) {
				imgElem.src = imgElem.rolloverSrc;
			}
			allElem = document.getElementById('display_all_img');
			allElem.src = allElem.rolloverSrc;
			gnavi_flag = true;
		}
	}

	return false;
}

function mouseoverAllMenu() {
	var allElem = document.getElementById('display_all_img');
	allElem.src = allElem.rolloverSrc;
}

function mouseoutAllMenu() {
	var allElem = document.getElementById('display_all_img');
	if (gnavi_flag == false) {
		allElem.src = allElem.originalSrc;
	}
}

function loadGnavi() {
	var gnaviDir = [];
	gnaviDir[0] = "/jp/health/"
	gnaviDir[1] = "/jp/medicalnet/"
	gnaviDir[2] = "/jp/ir/"
	gnaviDir[3] = "/jp/recruit/"
	gnaviDir[4] = "/jp/csr/"
	gnaviDir[5] = "/jp/corporate/"

	var myurl = location.href;
	var imgElem;

	for (var i=0, len=gnaviDir.length; i<len; i++) {
		if (myurl.match(gnaviDir[i])) {
			imgElem = document.getElementById('global'+i+'_img');
			imgElem.src = imgElem.rolloverSrc;
			imgElem.originalSrc = imgElem.rolloverSrc;
		}
	}

	var id;
	var allElem = document.getElementById('display_all_img');
	var gnaviElem = document.getElementById('navi-global');

	if (allElem) {
		allElem.onclick = displayAllMenu;
		allElem.onmouseover = mouseoverAllMenu;
		allElem.onmouseout = mouseoutAllMenu;
	}
	if (gnaviElem) {
		var liElem = gnaviElem.getElementsByTagName('li');
		for (var i=0, len=liElem.length; i<len; i++) {
			id = liElem[i].getAttribute("id");
			if (id && id.indexOf("global") != -1) {
				document.getElementById(id).onmouseover = displayMenu;
				document.getElementById(id).onmouseout = hiddenMenu;
			}
		}
	}
}

/* event handler */
window.onload = function() {
	/* rollover */
	loadRollover();

	/* styleswitcher */
	loadStyle();

	/* print */
	var printElem = document.getElementById('print_img');
	if (printElem) {
		printElem.onclick = printPage;
	}

	/* page scroll */
	var scrollElem = document.getElementById('page_scroll_btn')
	if (scrollElem) {
		scrollElem.onclick = pageScroll;
	}

	/* local navigation */
	loadLnavi();

	/* global navigation */
	loadGnavi();
}
