/*==========================================================================

	dataArayの使い方：
	-「"ナビゲーション項目","絶対パス",」で項目を設定します。
	 ナビゲーション項目は画像のaltか、リンクのテキストです。
	-あるナビゲーション項目に対して、フォルダーとサブフォルダーを指定したいなら、
	 絶対パスの最後に「=>」をつけます。（例：「"/personal/product/damage/car/=>"」）
	-ひとつのナビゲーション項目に対して、フォルダーを複数指定したいなら、フォルダーとフォルダー
	 の間に「+」をつけます（例：「"/personal/product/list/=> + /personal/product/rider/=>"」）
	
	注意：
	 -「"==終わり==");」を消さないように。

===========================================================================*/


var dataArray = new Array(


"==個人のお客さまへ==","/personal/",

	"生命保険商品一覧","/personal/product/list/=> + /personal/product/rider/=>",
	"その他の商品・サービス","/personal/product/other/",
		"損害保険","/personal/product/damage/",
		"金融機関窓口販売商品","/window/",
		"投資信託","/toshin/",
		"確定拠出年金","/401k/",
	
"==ご契約者のみなさまへ==","/contractor/",
"お手続きのご案内","/personal/mylinc/guide/",
	"人生の節目を迎えられたお客さまに","/personal/mylinc/guide/event/",
			"出産しました","/personal/mylinc/guide/event/01.html",
			"成人しました","/personal/mylinc/guide/event/04.html",
			"就職・独立しました","/personal/mylinc/guide/event/07.html",
			"結婚しました","/personal/mylinc/guide/event/03.html",
			"転職・退職（定年）しました","/personal/mylinc/guide/event/06.html",
			"引っ越ししました・海外へ転勤になりました","/personal/mylinc/guide/event/08.html",
			"大切な保険をご継続いただくために","/personal/mylinc/guide/event/02.html",
			"保険料支払方法を変更します","/personal/mylinc/guide/event/05.html",
		"入院・退院、お亡くなりになられたお客さまに","/personal/mylinc/guide/damage/",
			"入院・退院しました","/personal/mylinc/guide/damage/01.html",
			"被保険者が亡くなりました","/personal/mylinc/guide/damage/02.html",
		"書類等を紛失されたお客さまに","/personal/mylinc/guide/lost/",
			"証券を紛失しました","/personal/mylinc/guide/lost/01.html",
			"明治安田生命カードを紛失しました","/personal/mylinc/guide/lost/02.html",
			"生命保険料控除証明書を紛失しました","/personal/mylinc/guide/lost/03.html",
		"資金が必要なお客さまに","/personal/mylinc/guide/fund/",
			"満期になりました","/personal/mylinc/guide/fund/01.html",
			"年金を受け取りたい","/personal/mylinc/guide/fund/02.html",
			"資金が必要です","/personal/mylinc/guide/fund/03.html",
	"ご契約者照会・手続きサービス","/personal/mylinc/ +/personal/mylinc/pay_easy/",
	"カードポイントサービス","/map/=>",
	   "ｍａｐサービスをご利用いただくには・・・","/map/use.html",
	   "ｍａｐポイントのしくみ","/map/application.html",
	"明治安田生命カード","/personal/card/+/personal/card/attention.html",
		"明治安田生命カードのご案内","/personal/card/guide/",
		"カードのご利用方法","/personal/card/how_to_use/",
			"カードでできるお手続き","/personal/card/how_to_use/procedure.html",
			"ご利用いただけるネットワーク","/personal/card/how_to_use/network1.html+/personal/card/how_to_use/network2.html+/personal/card/how_to_use/network3.html+/personal/card/how_to_use/network4.html",
			"お手続きに関するご説明","/personal/card/how_to_use/description.html",
		"各ネットワークのご利用方法","/personal/card/network/=>",

"==法人のみなさまへ==","/corporation/",

	"法人向け商品・サービス","/corporation/product/",
		"企業・団体向け福利厚生制度関連商品","/corporation/welfare/",
		"経営者向け生命保険","/corporation/welfare/index2.html + /corporation/product/list/regular_new/=> + /corporation/product/list/regular_increase=>",
		"企業・団体向けリスクマネジメント関連商品","/corporation/management/",
		"商品付帯サービス","/corporation/service/",
		"団体保険の保険金・給付金のご請求について","/corporation/demand/",
	"団体年金関連情報・サービス","/corporation/info/",
		"確定拠出年金","/corporation/401k/",
		"団体年金特別勘定ディスクローズ","/corporation/disclose/=>",
		"団体年金コンサルティング","/corporation/consulting/",
	"事業活動のご支援","/corporation/biz_support/",
	"MYLINC法人ダイレクト","/corporation/mylinc/",
	
"==明治安田生命について==","/profile/",

	"会社情報","/profile/corporate_info/",
		"会社概要","/profile/about/",
		"経営方針","/profile/about/vision/",
		"明治安田チャレンジプログラム","/profile/about/program/ + /profile/about/program/past/",
		"業務改善への取組み","/profile/about/reform/=>",
		"ディスクロージャー","/profile/disclosure/ + /profile/disclosure/meijiyasuda/=> + /profile/disclosure/meiji/=> + /profile/disclosure/yasuda/=> + /profile/disclosure/quarter/=>",
		"健全性指標","/profile/disclosure/indicator/=>",
		"相互会社運営","/profile/mutual/=>",
		"沿革","/profile/about/history/=>",
		"関連会社一覧","/profile/about/group/",
	"CSRへの取組み","/csr/=>",
	"社会貢献活動","/profile/society/",
	"お知らせ・ニュース","/profile/information/",
			"2010年度","/profile/release/ + /profile/release/2010/=>",
			"2009年度","/profile/release/2009/=>",
			"2008年度","/profile/release/2008/=>",
			"2007年度","/profile/release/2007/=>",
			"2006年度","/profile/release/2006/=>",
			"2005年度","/profile/release/2005/=>",
			"2004年度","/profile/release/2004/=>",
			"2003年度","/profile/release/2003/=>",
			"2002年度","/profile/release/2002/ + /profile/release/yasuda/2002/=> + /profile/release/integration/pdf/20021112.html",
			"2001年度","/profile/release/2001/=> + /profile/release/yasuda/2001/=>",
		"トピックス","/profile/topics/=>",
		"CM・イベント情報","/profile/event/=>",
		"お役立ち情報","/profile/etc/",
			"重要文化財「明治生命館」のご紹介","/profile/etc/open/",
			"丸の内ＭＹ ＰＬＡＺＡ","/profile/etc/myplaza/",
			"明治安田生命 関西を考える会","/profile/etc/kansai/=>",
			"経済ウォッチ","/profile/etc/economy/=>",
			"生まれ年別の名前調査","/profile/etc/ranking/=> + /profile/etc/ranking-2004/=> + /profile/etc/ranking-2005/=> + /profile/etc/ranking-2006/=> + /profile/etc/ranking-2007/=> + /profile/etc/ranking-2008/=>",
	"採用情報","/profile/recruit/=>",

"==その他==",

 "販売・サービス方針","/regular/salespolicy/",
	"保険契約に関する業務における基本方針","/regular/contractpolicy/",
	"本人確認法について","/regular/confirm/",
	"個人情報の保護に関する基本方針","/regular/privacypolicy/=>",
	"情報開示に関する基本方針","/regular/info/",
	"利益相反管理方針","/regular/reciprocity/",
	"サイト利用上のご注意","/regular/attention/",


"==終わり==");


/*------------- Site initialisation -------------*/

var d = document, dE = d.documentElement;
dE.className = "jsLoad";
var site = new Object();

site={
	init:function(){
		if(d.getElementById){
			//var startTime=new Date().getTime();
			site.styleSwitcher.init("fontSizeChange");
			site.navigation.init();
			dE.className = "jsComplete";
			site.preload.init();
			site.effects.init();
			//var endTime=new Date().getTime();
			//alert('Elapsed time : '+((endTime-startTime)/1000)+' seconds.');
		}
	},
	end:function(){
		 fixIELeaks();
	}
};

window.onload=site.init;
window.onunload=site.end;

/*------------- Site Object -------------*/

/* style switcher */

site.styleSwitcher={
	title: null,
	init: function(id){
		site.styleSwitcher.load();
		var _this = this;
		var queryStr = 'style';
		if(d.getElementById(id)){
		var buttons = d.getElementById(id).getElementsByTagName("a");
			for (var i=0, curBtn; curBtn=buttons[i]; i++){
				curBtn.onclick=function(){
					this.blur();
					this.parentNode.className = "active";
					_this.setActive(this.id.substring(queryStr.length+1));
					return false;
				};
			}
		}
	},
	setActive: function(title){
		var found = 0;
		var slinks = d.getElementsByTagName("link");
		for (var i = 0, slinks; l = slinks[i]; i++){
			if(l.getAttribute("rel").indexOf("style")!=-1 && l.getAttribute("title")){
				l.disabled = true;
				if (l.getAttribute("title") == title){
					l.disabled = false;
					found = 1;
				}
			}
		}
		if (found==0){
			var title = this.getPreferred();
			if(title){
				this.setActive(title);
			}
		}
		this.title = title;
		this.focus();
		this.save();
	},
	getActive: function() {
		var slinks = d.getElementsByTagName("link");
		for (var i = 0, l; l = slinks[i]; i++) {
			if (l.getAttribute("rel").indexOf("style")!=-1 && l.getAttribute("title") && !l.disabled){
				return l.getAttribute("title");
			}
		}
		return null;
	},
	getPreferred: function() {
		var slinks = d.getElementsByTagName("link");
		for (var i = 0, l; l = slinks[i]; i++){
			if (l.getAttribute("rel").indexOf("style")!=-1 && l.getAttribute("rel").indexOf("alt")==-1 && l.getAttribute("title")){
				return l.getAttribute("title");
			}
		}
		return null
	},
	load: function() {
		if (d.getElementById) {
			var cookie = site.cookies.get("site");
			var title = cookie || this.getPreferred();
			this.setActive(title);
		}
	},
	save: function(){
		if (d.getElementById) {
			var title = this.getActive();
			site.cookies.set("site", title, 365);
		}
	},
	focus: function(){
		if(d.getElementById("fontSizeChange")){
			buttons = d.getElementById("fontSizeChange").getElementsByTagName("dd");
			for(var i=0, curBtn; curBtn = buttons[i]; i++){
				img = curBtn.getElementsByTagName("img")[0];
				img.src = img.src.match("_a") ? img.src.substring(0,img.src.length-6) + img.src.substring(img.src.length-4) : img.src;
				img.src = (i==this.title-1) ? img.src.substring(0,img.src.length-4) + "_a" + img.src.substring(img.src.length-4) : img.src;
			}
		}
	}
};

/* cookies */

site.cookies = {
	set: function(name,val,days) {
		var expires = "";
		if (days) {
			var date =new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			expires = "; expires=" + date.toGMTString();
		}
		d.cookie = name + "=" + val +expires + "; path=/";
	},
	get: function(name) {
		name = name + "=";
		var cs=d.cookie.split("; ");
		for (var i = 0, cv; cv = cs[i]; i++){
			if (cv.indexOf(name) == 0){
				return cv.substring(name.length,cv.length);
			}
		}
		return null
	}
};

site.styleSwitcher.load();

/* navigation */

site.navigation={
	nav: null,
	path: null,
	pageName: false,
	init: function(){
		this.nav = d.getElementById("localNavi");
		if( !this.nav ){ return; }
		this.nav.className = "jsLoad";
		this.findPath();
		this.findPageName();
		if( !this.pageName ){ this.nav.className = ""; return; };
		this.findCurrent();
		if( !this.current ){ this.nav.className = ""; return; };
		this.findParents();
		this.changeMenu();
	},
	findPath: function(){
		var path = location.pathname;
		var splittedPath = path.split("/");
		var lastTerm = splittedPath[splittedPath.length-1];
		if(lastTerm.substring(0,6) == "index." || lastTerm.substring(0,1) == "#"){
			path = path.substring(0, path.length - lastTerm.length);
		}
		this.path = path;
	},
	findPageName: function(){
		var data = dataArray;
		var path = this.path;
		for(var i = 0; i < data.length - 1; i++){
			var dataPath = data[i+1].split("+");
			for(var j = 0; j < dataPath.length; j++){
				curData = trim(dataPath[j]);
				var lastTwo = curData.substring(curData.length-2,curData.length);
				if(lastTwo == "=>"){
					var parFolder = curData.substring(0,curData.length-2);
					if(path.substring(0,parFolder.length) == parFolder){
						this.pageName = data[i];
					}
				}else if(curData == path){
					var firstTwo = data[i].substring(0,2);
					if(firstTwo == "=="){
						this.pageName = "categoryTop";
						return;
					}
					this.pageName = data[i];
					return;
				}
			}
		}
	},
	findCurrent: function(){
		var pageName = this.pageName;
		var navImgs = this.nav.getElementsByTagName("img");
		var navLinks = this.nav.getElementsByTagName("a");
		if(pageName == "categoryTop"){ this.current = this.nav; return; };
		for(var i = 0; i < navImgs.length; i++){
			if(navImgs[i].alt == pageName){
				this.current = navImgs[i];
				return;
			}
		}
		for(var i = 0; i < navLinks.length; i++){
			if((navLinks[i].text || navLinks[i].innerText) == pageName || navLinks[i].firstChild.nodeValue == pageName){
				this.current = navLinks[i];
				return;
			}
		}
		site.navigation.current = false;
	},
	findParents: function(){
		this.parents = new Array()
		var current = this.current;
		for(var i = 0; i < 15; i++){
			this.parents[i] = current;
			if(current.id == "localNavi"){
				this.depth = this.parents.length;
				break;
			}
			current = current.parentNode;
		}
	},
	changeMenu: function(){
		parents = this.parents;
		for(i = parents.length; i >= 0; i--){
			if((i == parents.length - 2) && parents.length > 1){
				if(parents[i-1].getElementsByTagName("img")[0]){
					current = parents[i-1].getElementsByTagName("img")[0];
					currentName = current.src.substring(0,current.src.length-4) + "_a";
					currentExt = current.src.substring(current.src.length-4);
					current.src = currentName + currentExt;
					parents[i-1].className = "active";
				} else {
					current = parents[i-1];
					current.className = "lnActive";
					return;
				}
			}
			if(i == parents.length - 4){
				current = parents[i-1];
				current.className = "lnActive";
			}
			if(i == parents.length - 7){
				current = parents[i-1];
				oldNode = parents[i].childNodes[0];
				newNode = d.createTextNode(current.childNodes[0].nodeValue);
				parents[i].replaceChild(newNode, oldNode);
			}
		}
	}
};

site.preload = {
	init: function(){
		if(window.imagesToLoad != null){
			this.preload(imagesToLoad);
		}
	},
	preload: function(imagesToLoad){
		var imgPreload = new Array();
		for(i = 0; i < imagesToLoad.length; i++){
			imgPreload[i] = new Image();
			imgPreload[i].src = imagesToLoad[i];
		}
	}
}
site.effects = {
	init: function(){
		this.formFocus();
		//this.jumpToAnchor();
	},
	formFocus: function(){
		if(d.getElementById("formFirstItem")){
			window.focus();
			d.getElementById("formFirstItem").focus();
		}
	},
	jumpToAnchor: function(){
		var path = d.URL.split("#");
		if(path[1]){
			window.scrollTo(0,d.getElementById(path[1]).offsetTop);
		}
	}
}


/*------------- Functions -------------*/

document.getElementsByClassName = function(classname) {
	var elements = new Array();
	var re = new RegExp('(^| )'+classname+'( |$)');
	var ael = document.getElementsByTagName('*');
	var op = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
	if (document.all && !op) ael = document.all;
		for(i=0, j=0 ; i<ael.length ; i++) {
			if(re.test(ael[i].className)) {
				elements[j]=ael[i];
				j++;
			}
		}
	return elements;
};

function trim(stringToTrim) {
  stringToTrim = stringToTrim.replace( /^\s+/g, "" );
  return stringToTrim.replace( /\s+$/g, "" );
}

function fixIELeaks() {
	if (d.all && window.attachEvent) {
		var elProps = [
			"data", "onmouseover", "onmouseout",
			"onmousedown", "onmouseup", "ondblclick",
			"onclick", "onselectstart", "oncontextmenu"
		];
		var all = d.all;
		for (var i = 0, el; el = all[i]; i++) {
			for (var j = 0, elProp; elProp = elProps[j]; j++) {
				el[elProp] = null;
			}
		}
	}
};

/*- dreamweaver functions -*/

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}