
var gnavi = new Object();
Object.extend(gnavi,{
	//メニュー用tmpフラグ
	liid_menunode1:""
	,liid_menunode2:""
	,liid_menunode3:""
	,menu_overlay:{}
	,gnaviid:"global-navi"
	,startzIndex:200
	,zindexIncl:1
	//,indexwrapid:"index-wrap"
	//開いたり閉じたりする用のtweenerオブジェ
	,tweenerobj_open:{
		from:0
		,to:1.0
		//,delay:.2 //delay使ったら連続した早いマウスオーバーでバグる
		,duration: .4
		,beforeStartInternal: function(effect) {
			var o = effect.element;//Event.element(e);
			//alert("開始　"+effect.element);//Effect.element(effect))
			//o.show();
			//o.style.display="block";
			o.show();
			o.setOpacity(0);
			
		}
		/*,afterFinishInternal: function(effect) {
		}--*/
		//,transition:Effect.Transitions["linear"]
		,transition:Effect.Transitions["easeInQuart"]
	}
	,tweenerobj_close:{
		from:1.0
		,to:0
		//,delay:.3
		,duration: .3
		//,transition:Effect.Transitions["linear"]
		,transition:Effect.Transitions["easeInQuad"]
	}
	,tween:true
	
	///外部のHTMLへ、ページネーション後に（アンカーまで）スクロールする動きを与える為、a.hrefに追加する値
	,out_anchor_str:'#/?jsloc='
});

/*++++++++++++++++   onLoadEvent    ++++++++++++++++*/
Event.observe(window,"load",function(){
	
	//Initialize GlovalNavigation
	if($(gnavi.gnaviid)){
		
		$A($(gnavi.gnaviid).getElementsByTagName('a')).each(function(a,i){
			if(a.parentNode.parentNode.id != gnavi.gnaviid){
				//サブメニューは非表示にする
				var sub = $(a.parentNode.parentNode);
				//if (!child.length)return;
				//sub.style.visibility = "visible";
				//sub.setStyle({"cursor":"pointer"}); 
				
				
				if (!gnavi.tween) {
					//sub.hide();
				}else{
					//sub.setOpacity(0).hide();
				}
			}
			
			Event.observe(a,"mouseover",gnavi.openGlobalMenu);//.bindAsEventListener(this));
		});
	}
	
	
	//言語ナビのリンククリックを無効にする
	var langnavi_nolinks = $("language-navi").getElementsByClassName("nolink");
	if(langnavi_nolinks.length!=0){
		$A(langnavi_nolinks).each(function (a,i){
			a.href = "javascript:void(0);";
			a.setStyle({"cursor":"default"});
			/////a.setStyle(":hover",{"backgroundImage":a.getStyle("backgroundImage")});
			/*var bgi = a.getStyle("backgroundImage");
			Event.observe(a,"mousemove",function(evt){
				Event.element(evt).setStyle({"backgroundImage":bgi});//bgi
			},false);*/
		});
	}
	
	
	//なめらかに移動するページトップボタンおよびアンカーリンクのアタッチー
	if (typeof(UTween) != 'undefined') {
	
		if (Object.isFunction(UTween.toPageTop) && $(document.body).getElementsByClassName("pagetop").length) {
			$A($(document.body).getElementsByClassName("pagetop")).each(function(e, i){
				Event.observe(e, "click", UTween.toPageTop);
			});
		}
		
		
		
		//////ナビゲーションからアンカーへ
		//外部リンクからきてアンカーとしての変数を保持していた場合、飛ばす
		var out_anchor_id =	location.href.lastIndexOf(gnavi.out_anchor_str)!=-1 ? location.href.substr(location.href.lastIndexOf(gnavi.out_anchor_str)+9) : "";
		//alert(out_anchor_id);
		if(out_anchor_id != ""){
			UTween.scrollTo($(out_anchor_id));
		}
		
		//まずはサブコンテンツ（ページ内のアンカー）変更
		var location_no_anchor =	location.href.lastIndexOf('#')!=-1 ? 
									location.href.substr(0,location.href.lastIndexOf('#')) : location.href;
		var aLokFnc = function(a, i){
			if(a.href){
				if(a.href.indexOf(location_no_anchor)!=-1){
					var tmpt =a.href.substr(location_no_anchor.length);
					if (tmpt.lastIndexOf('#') == 0) {
						var aix = tmpt.lastIndexOf('#');
						var aid = tmpt.substr(aix + 1);
						a.href = 'javascript:void(0);';//a.href.substr(0,aix);
						Event.observe(a, "click", UTween.scrollTo.bindAsEventListener(this, $(aid)));
					}
				}
			}
		}
		//var naviz = $A($('sub-navi').getElementsByTagName("a")).zip($('global-navi').getElementsByTagName("a"));
		if($('global-navi'))$A($('global-navi').getElementsByTagName("a")).each(aLokFnc);
		if($('sub-navi'))$A($('sub-navi').getElementsByTagName("a")).each(aLokFnc);
		
		//外部
		var aOutLokFnc = function(a, i){
			if(a.href){
				if (a.href.lastIndexOf('#') != -1) {
					var aix = a.href.lastIndexOf('#');
					var aid = a.href.substr(aix + 1);
					a.href = a.href.substr(0,aix) + gnavi.out_anchor_str + aid
					//Event.observe(a, "click", UTween.scrollTo.bindAsEventListener(this, $(aid)));
				}
			}
		}
		if($('global-navi'))$A($('global-navi').getElementsByTagName("a")).each(aOutLokFnc);
		if($('sub-navi'))$A($('sub-navi').getElementsByTagName("a")).each(aOutLokFnc);
	}

},false);
/*++++++++++++++++   onLoadEvent    ++++++++++++++++*/


/**
 * グローバルナビを開くイベント
 * @param {Object} e
 */
gnavi.openGlobalMenu = function(e){
	var a = Event.element(e);
	var initflg = false;
	if(a.parentNode.parentNode.id == gnavi.gnaviid){
		//トップメニューの場合
		if(gnavi.liid_menunode1!=a.parentNode.id){
			gnavi.closeGlobalMenu(gnavi.liid_menunode1,1);
			gnavi.closeGlobalMenu(gnavi.liid_menunode2,2);
			gnavi.closeGlobalMenu(gnavi.liid_menunode3,3);
		}
		gnavi.liid_menunode1 = a.parentNode.id;
		//alert("トップメニューが選択されました。id:"+gnavi.liid_menunode1);
	}else{
		if (a.parentNode.parentNode.parentNode.parentNode.id == gnavi.gnaviid) {
			//サブメニュー
			if(gnavi.liid_menunode2!=a.parentNode.id){
				gnavi.closeGlobalMenu(gnavi.liid_menunode2,2);
				gnavi.closeGlobalMenu(gnavi.liid_menunode3,3);
			}
			gnavi.liid_menunode2=a.parentNode.id;
			//alert("サブメニューが選択されました。"+gnavi.aid_menunode2);
			
			
		}else {
			//サブサブ
			if(gnavi.liid_menunode3!=""){
				gnavi.closeGlobalMenu(gnavi.liid_menunode3,3);
			}
			gnavi.liid_menunode3=a.parentNode.id;
			//alert("サブ２メニューが選択されました。"+gnavi.liid_menunode3);
			
		}
	}
	var child = $(a.parentNode.id).getElementsByTagName('ul');
	
	//子がないときは前に開いてたやつ消すだけ
	if (!child.length)return;
	
	if (!gnavi.tween) {
		child[0].show();
	}else{
		//child[0].style.display ="block";
		Effect.Fade(child[0],gnavi.tweenerobj_open);
	}
	
	//zIndex直し。最前面に持ってくる
	gnavi.zindexIncl++;
	child[0].setStyle({"zIndex":gnavi.startzIndex+gnavi.zindexIncl});
	//ここで（デフォルトの）cssでhiddenにしていたvisibilityを戻してやる
	child[0].style.visibility = "visible";
	
	//メニュー下のマウスアウト用オーバーレイ
	if(gnavi.menu_overlay.id){
		gnavi.menu_overlay.setStyle({"display":"block"});
	}else{
		//ない場合メニュー下に作る
		gnavi.menu_overlay = $(document.createElement('div'));
		var oid = "global-navi_overlay";
		new Insertion.Before($(gnavi.gnaviid),'<div id="'+oid+'">&nbsp;</div>');//gnavi.menu_overlay);document.body
		gnavi.menu_overlay = $(oid);
		gnavi.menu_overlay.setStyle({"backgroundColor":"#FFFFFF"}); //,"cursor":"pointer"
		$(gnavi.gnaviid).setStyle({"zIndex":gnavi.startzIndex+gnavi.zindexIncl,"position":"relative"});
		gnavi.menu_overlay.setStyle({"zIndex":gnavi.startzIndex});
		gnavi.menu_overlay.setStyle({"position":"absolute","top":0,"left":0});
		gnavi.menu_overlay.setOpacity(0);
	}
	
	gnavi.menu_overlay.setStyle({"width":document.body.clientWidth+"px"});
	gnavi.menu_overlay.setStyle({"height":document.body.clientHeight+"px"});
	
	Event.observe(gnavi.menu_overlay,"mouseover",gnavi.closeAllGlobalMenuEvents.bindAsEventListener(this));
	
}
/**
 * グローバルナビのサブナビを一個だけ閉じます
 * @param {Object} liid リンクタグを含むliのid
 * @param {Object} node Number;
 */
gnavi.closeGlobalMenu = function(liid,node){
	if(!liid)return;
	//alert(gnavi["liid_menunode"+node] + を閉じます);
	gnavi["liid_menunode"+node] = "";
	var child = $(liid).getElementsByTagName('ul');
	if (!child.length)return;
	
	//実行
	if (!gnavi.tween) {
		child[0].hide();
	}else{
		Effect.Fade(child[0],gnavi.tweenerobj_close);
	}
	
}
/**
 * グローバルナビのサブナビを全部閉じるよ
 * @param {Object} e
 */
gnavi.closeAllGlobalMenuEvents = function(e){
	gnavi.closeGlobalMenu(gnavi.liid_menunode1,1);
	gnavi.closeGlobalMenu(gnavi.liid_menunode2,2);
	gnavi.closeGlobalMenu(gnavi.liid_menunode3,3);
	Event.stopObserving(gnavi.menu_overlay,"mouseover",gnavi.closeAllGlobalMenu);
	gnavi.menu_overlay.setStyle({"display":"none"});
}