//ロールオーバースクリプト------------------

function cngimg(n){
	var imgsrc = document.images[n].src;
	if(imgsrc.indexOf("-on") < 0){
		document.images[n].src=imgsrc.substring(0,imgsrc.length-4) +"-on.jpg";
	}
	else{
		document.images[n].src=imgsrc.substring(0,imgsrc.length-7) +".jpg";
	}
}


//トップビジュアルスクリプト------------------

//切り替わり秒数
var c_seconds=5;

//配列設定
//配列の並びは、['出現比率','メインのリンク先']

var menuData     = new Array();
    menuData[1] = [ 100000 , '#' ]; //1番目
    menuData[2] = [ 1000 , '#' ]; //2番目
    menuData[3] = [ 1000 , '#' ]; //3番目
    menuData[4] = [ 50 , '#' ];    //4番目
    menuData[5] = [ 40 , '#' ];    //5番目
    menuData[6] = [ 30 , '#' ];    //6番目
    menuData[7] = [ 20 , '#' ];    //7番目
    menuData[8] = [ 10 , '#' ];    //8番目

var Limit_length = menuData.length - 1;
var Limit_length2 = menuData.length - 2;

var BaseMenuData = new Array();
for(i=1;i<menuData.length;i++){
	var k = i-1;
	BaseMenuData[k]=menuData[i];
}

//配列生成
for(i=0;i<BaseMenuData.length;i++){
	var k=i+1;
	var ki;
	if(i<9 && i > -1){
		ki = "0" + k;
	}else{
		ki = k;
	}
	BaseMenuData[i].push('/images/btn-visual'+ki+'.gif');
	BaseMenuData[i].push('/images/btn-visual'+ki+'-on.gif');
	BaseMenuData[i].push('/images/visual'+ki+'.jpg');
}

//画像プリロード
for(i=0;i<BaseMenuData.length;i++){
	var pimg = "images" + i;
	var pimgon = "images_on" + i;
	var pimgttop = "images_top" + i;
	pimg=new Image();pimg.src=BaseMenuData[i][2];
	pimgon=new Image();pimgon.src=BaseMenuData[i][3];
	pimgttop=new Image();pimgttop.src=BaseMenuData[i][4];
}

//ランダム配列生成
var RmenuData     = new Array();

array_list=0;
do{
	array_max=0;
	for(i=0;i<BaseMenuData.length;i++){
		array_max += BaseMenuData[i][0];
	}

	if(array_max > 0){
		rnd = Math.floor( Math.random() * ( array_max - 1 + 1 ) ) + 1;

		array_result = -1;
		range_begin = 1;
		for( i = 0 ; ( i < BaseMenuData.length ) && ( array_result == -1 ) ; i++ ){
			//各配列から、範囲の終点を決める
			range_end = range_begin + BaseMenuData[i][0];

			//引いた乱数がこの範囲にあれば、該当箇所を確定
			if( rnd >= range_begin && rnd < range_end ){
				//配列の番号を記録
				array_result = i;
				array_index = i;
			}

			//次の範囲の始点を変更
			range_begin = range_end;
		}

		RmenuData[array_list]=BaseMenuData[array_index];
		preData=new Array();
		icount=0;
		for(i=0;i<BaseMenuData.length;i++){
			if(i != array_index){
				preData.push(BaseMenuData[i]);
			}
			icount++;
		}
		BaseMenuData=preData;
		array_list++;
	}
}while(array_list < Limit_length);

//デバッグ
/*
var adata="";
for(i=0;i<RmenuData.length;i++){
	adata+=RmenuData[i]+"\n";
}
alert(adata);
*/

//表示ボタン数
var view_count = 4;

//onの場所
var point = 0;

//初期表示用配列
var writeTags=new Array();

var array = RmenuData;
var ctime = c_seconds * 1000;

function VisualChange(){
//文字サイズ変更 追加スクリプト
	var n = getCookie('fontsize');
	if (n === null) {
		//TBのみ「中」をデフォルト
		if (location.hostname == 'www.mizuho-tb.co.jp') {
			n = 'm';
		} else {
			n = 's';
		}
	}
	if(document.getElementById('areaVisual')){
		if(document.getElementById('btn')){
			fontSizeSwitch(n);
		}else{
			fontSizeInit(n);
		}
	}
//ここまで 文字サイズ変更 追加スクリプト
	menuChange=setInterval('timeChange()',ctime);
}

//一定間隔変更
function timeChange(){
	var tc;
	var tcv;
	var changemenu;
	tc=onCheck();
	if(tc == 5){
		tcv=4;
		changemenu="up";
	}else if(tc > 0 && tc < view_count + 1){
		tcv=tc;
		changemenu="time";
	}else{
		tcv=tc;
		changemenu="out";
	}
	kvChange(tcv,changemenu);
}

//スクロール
function mvChange(val,key){
	var mul    = document.getElementById('topMenu');
	var mli    = mul.getElementsByTagName('li');
	var cimg   = mli[1].firstChild.firstChild.getAttribute('src');

	if(key=="top"){
		ccount=0;
		acount = ccount;
	}else{
		//1番上のメニューは何？
		for( i = 0 ; i < array.length ; i++){
			str = new RegExp(array[i][2],"g");
			str2 = new RegExp(array[i][3],"g");
			if(str.test(cimg)||str2.test(cimg)){
				ccount = i;
			}
		}
		if(val == "up"){
			acount = ccount + 1;
		}else{
			acount = ccount - 1;
		}
	}

	var limit_view = array.length - view_count;
	if(document.getElementById && document.createElement){
		if(((val=="up")&&(ccount < limit_view))||((val=="down")&&(ccount > 0))){
			for( i = 1 ; i < 5 ; i++){
				img = mli[i].firstChild.firstChild;
				if(acount == point){
					img.setAttribute('src',array[acount][3]);
				}else{
					img.setAttribute('src',array[acount][2]);
				}
				acount++;
			}
		}
	}else{
		alert('あなたのブラウザは Level 1 DOM を未サポートです');
	}
}

//画像変更
function kvChange(place,key){
	var mul    = document.getElementById('topMenu');
	var mli    = mul.getElementsByTagName('li');
	var con="";

	//on外し
	for( i = 1; i < 5 ; i++){
		cimg = mli[i].firstChild.firstChild.getAttribute('src');

		str = new RegExp(array[point][3],"g");
		if(str.test(cimg)){
			img = mli[i].firstChild.firstChild;
			img.setAttribute('src',array[point][2]);
			con = "on";
		}
	}

	//タイマー処理
	if(key=="up" && point < array.length-1){
		point++;
		if(con == "on"){
			mvChange('up');
		}
	}else if(key=="up" && point == Limit_length2){
		point = 0;
		mvChange('up','top');
		place=1;
	}else if(key=="out" && point == Limit_length2){
		point = 0;
		mvChange('up','top');
		place=1;
	}else if(key=="out"){
		point++;
	}

	//on設定
	var mvl = document.getElementById('l_box').getElementsByTagName('a');
	var mvi = document.getElementById('l_box').getElementsByTagName('img');

	for(i=0;i<array.length;i++){
		if((key=="up")&&(place!="1")){
			str = new RegExp(array[i][3],"g");
		}else if((key=="up")&&(place=="1")){
			img = mli[place].firstChild.firstChild;
			img.setAttribute('src',array[i][3]);
			mvl[0].setAttribute('href',array[i][1]);
			mvi[0].setAttribute('src',array[i][4]);
			point = i;
			break;
		}else{
			str = new RegExp(array[i][2],"g");
		}
		if(key != "out"){
			cimg = mli[place].firstChild.firstChild.getAttribute('src');
			if(str.test(cimg)){
				img = mli[place].firstChild.firstChild;
				img.setAttribute('src',array[i][3]);
				mvl[0].setAttribute('href',array[i][1]);
				mvi[0].setAttribute('src',array[i][4]);
				point = i;
				break;
			}
		}else{
			for( j = 1; j < 5 ; j++){
				cimg = mli[j].firstChild.firstChild.getAttribute('src');
				str = new RegExp(array[point][2],"g");
				if(str.test(cimg)){
					img = mli[j].firstChild.firstChild;
					img.setAttribute('src',array[point][3]);
					break;
				}
			}
			mvl[0].setAttribute('href',array[point][1]);
			mvi[0].setAttribute('src',array[point][4]);
			break;
		}
	}

	if(!key){
		clearInterval(menuChange);
		VisualChange();
		clearTimeout;
	}
}


function onCheck(){
	var mul    = document.getElementById('topMenu');
	var mli    = mul.getElementsByTagName('li');
	var val;
	for( i = 1; i < 5 ; i++){
		cimg = mli[i].firstChild.firstChild.getAttribute('src');
		for(j=0;j<array.length;j++){
			str = new RegExp(array[j][3],"g");
			if(str.test(cimg)){
				val=i+1;
				break;
			}
		}
	}
	if(!val){
		val="";
	}

	return val;
}




//文字サイズ変更追加スクリプト
//クッキー発行------------------

function setCookie(name, value, domain, path, expires, secure) {

	var str = name + "=" + escape(value);
	domain = document.domain.replace(/^[^\.]*/, "");
	str += "; domain=" + domain;

	path = "/";
	str += "; path=" + path;

	expires = new Date();
	expires.setTime(expires.getTime() + (30 * 1000 * 60 * 60 * 24));
	expires2 = expires.toGMTString();
	str += "; expires=" + expires2;

	if(secure && location.protocol == "https:") {
		str += "; secure";
	}

	str += ";";
	document.cookie = str;

}

//クッキー取得------------------
function getCookie(name) {

	var cookies = document.cookie.split(';');
	for (var i=0; i<cookies.length; i++) {
		var cookieList = cookies[i].split('=');
		var cookieName = cookieList[0];
		var cookieVal = cookieList[1];
		if (cookieName.indexOf(name,0)!=-1) {
			return unescape(cookieVal);
		}
	}
	return null;

}

function checkCookie() {

	if (window.navigator.cookieEnabled) {
		return true;
	}	else {
		return false;
	}

}


//切り替え------------------
function fontSizeSwitch(n) {

	document.getElementById('btn').innerHTML = "";

	if(n == "l") {
		applyCSS(document,"/common/css/font-l.css");
	} else if(n == "m") {
		applyCSS(document,"/common/css/font-m.css");
	} else if(n == "s"){
		applyCSS(document,"/common/css/font-s.css");
	}

	//クッキー発行
	setCookie('fontsize', n);

	//ボタン生成
	if(document.getElementById('areaLeft')){
		btnCreate(n);
	}

}


//ボタン生成------------------

function btnSet(n) {

	//linkエレメント生成
	var id = 'areaLeft';
	var target = document.getElementById(id);
	var container = document.createElement('div');
	container.setAttribute('id', 'btn');
	target.insertBefore(container, target.firstChild);
	var btn = document.getElementById('btn');

	var ua=navigator.userAgent;
	if(ua.indexOf("MSIE 6")>-1){
		document.getElementById("btn").style.height="28px";
	}else if(ua.indexOf("MSIE 7")>-1){
		document.getElementById("btn").style.minHeight="28px";
	}
}


function btnCreate(n) {

	var btn = document.getElementById('btn');
	var html = '';
	if(n == "l"){
		html += '<div style="margin-bottom:5px;">';
		html += '<div class="left" style="margin-left:3px;"><img src="/common/images/size-text-en.gif" width="85" height="22" alt="Font Size" /></div>';
		html += '<ul class="right" style="width:82px">';
		html += '<li class="left" style="margin-right:8px;"><a href="javascript:fontSizeSwitch(\'l\');" title="Large" tabindex="200">';
		html += '<img src="/common/images/l-en-in.gif" width="22" height="22" alt="Large" id="size_l" /></a></li>';
		html += '<li class="left" style="margin-right:8px;"><a href="javascript:fontSizeSwitch(\'m\');" title="Middle" tabindex="200">';
		html += '<img src="/common/images/m-en.gif" width="22" height="22" alt="Middle" id="size_m" /></a></li>';
		html += '<li class="left"><a href="javascript:fontSizeSwitch(\'s\');" title="Small" tabindex="200">';
		html += '<img src="/common/images/s-en.gif" width="22" height="22" alt="Small" id="size_s" /></a></li>';
		html += '</ul>';
		html += '<div style="clear:left;"></div><div style="clear:both;"></div></div>';
	}
	if(n == "m"){
		html += '<div style="margin-bottom:5px;">';
		html += '<div class="left" style="margin-left:3px;"><img src="/common/images/size-text-en.gif" width="85" height="22" alt="Font Size" /></div>';
		html += '<ul class="right" style="width:82px">';
		html += '<li class="left" style="margin-right:8px;"><a href="javascript:fontSizeSwitch(\'l\');" title="Large" tabindex="200">';
		html += '<img src="/common/images/l-en.gif" width="22" height="22" alt="Large" id="size_l" /></a></li>';
		html += '<li class="left" style="margin-right:8px;"><a href="javascript:fontSizeSwitch(\'m\');" title="Middle" tabindex="200">';
		html += '<img src="/common/images/m-en-in.gif" width="22" height="22" alt="Middle" id="size_m" /></a></li>';
		html += '<li class="left"><a href="javascript:fontSizeSwitch(\'s\');" title="Small" tabindex="200">';
		html += '<img src="/common/images/s-en.gif" width="22" height="22" alt="Small" id="size_s" /></a></li>';
		html += '</ul>';
		html += '<div style="clear:left;"></div><div style="clear:both;"></div></div>';
	}
	if(n == "s"){
		html += '<div style="margin-bottom:5px;">';
		html += '<div class="left" style="margin-left:3px;"><img src="/common/images/size-text-en.gif" width="85" height="22" alt="Font Size" /></div>';
		html += '<ul class="right" style="width:82px;">';
		html += '<li class="left" style="margin-right:8px;"><a href="javascript:fontSizeSwitch(\'l\');" title="Large" tabindex="200">';
		html += '<img src="/common/images/l-en.gif" width="22" height="22" alt="Large" id="size_l" /></a></li>';
		html += '<li class="left" style="margin-right:8px;"><a href="javascript:fontSizeSwitch(\'m\');" title="Middle" tabindex="200">';
		html += '<img src="/common/images/m-en.gif" width="22" height="22" alt="Middle" id="size_m" /></a></li>';
		html += '<li class="left"><a href="javascript:fontSizeSwitch(\'s\');" title="Small" tabindex="200">';
		html += '<img src="/common/images/s-en-in.gif" width="22" height="22" alt="Small" id="size_s" /></a></li>';
		html += '</ul>';
		html += '<div style="clear:left;"></div><div style="clear:both;"></div></div>';
	}
	html += '<ul class="linkList txtAR"><li><a href="/english/size/index.html" title="Changing text size" tabindex="200">Changing text size</a></li></ul>';
	btn.innerHTML = html;
}


//HTMLエスケープ------------------

function eH(str) {
	str = str.replace(/&/, '&amp;');
	str = str.replace(/</, '&lt;');
	str = str.replace(/>/, '&gt;');
	str = str.replace(/"/, '&quot;');
	return str;
}


function fontSizeInit() {

	//クッキー取得
	var n = getCookie('fontsize');
	if (n === null) {
		//TBのみ「中」をデフォルト
		if (location.hostname == 'www.mizuho-tb.co.jp') {
			n = 'm';
		} else {
			n = 's';
		}
	}

	if(n == "l") {
		applyCSS(document,"/common/css/font-l.css");
	} else if(n == "m") {
		applyCSS(document,"/common/css/font-m.css");
	} else if(n == "s"){
		applyCSS(document,"/common/css/font-s.css");
	}

	if(document.getElementById('areaLeft')){
		//ボタン生成
		btnSet(n);
		btnCreate(n);
	}
}

function applyCSS(doc, cssfile, overwrite){

	if (typeof overwrite == "undefined") overwrite = 0;      // デフォルト:CSSの切替え

	// 既存のCSSを削除
	if (overwrite && doc.styleSheets.length >= 1) {
		var links = doc.getElementsByTagName("link");
		for (var i = 0 ; i < links.length ; i++) {
			if (links[i].rel == "stylesheet") links[i].parentNode.removeChild(links[i]);
		}
	}

	// CSS追加
	if (document.all) {
		doc.createStyleSheet(cssfile);
	} else {
		var link = doc.createElement("link");
		link.setAttribute("rel", "stylesheet");
		link.setAttribute("href", cssfile);
		link.setAttribute("type", "text/css");
		doc.getElementsByTagName('head')[0].appendChild(link);
	}
}

if (navigator.userAgent.indexOf('Firefox') >= 0) {
	document.addEventListener("DOMContentLoaded", fontSizeInit, false);
} else {
	window.onload = fontSizeInit;
}


