/*============================================================================================

										初期設定

============================================================================================*/

loadCount=0;						//ファイル読み込み設定を最初のものとそれ以降で分岐させる
var currentIconMode,oResults;
var timeoutMs = 7000;
var treeLoading=0;					//第一階層の展開時の際に展開中以外のツリーを展開させないための判断
var j=1;							//histDataの値を読み込むための変数
var treeStyle ="mainTree";
    //ツリーをサイドメニューとして使う場合は"sideMenuTree"に設定(さーばーから判断させる場合、テンプレートに入れること)
if(histArray == undefined){ //select_list.tplで使う場合、histDataをnullにしておく
 var histArray="";
} 

//ページに応じてCSSの設定を保持
var openIconStyle;
var closeIconStyle;

//cookie
i = 1; 	//setCookieのループに使用
cookieArray = new Array();
treeHash = new Array();
var defaultDisp = "open";




/*============================================================================================

										ツリーの描画設定

============================================================================================*/

/*-----------------------------------------------------------------
//ページ表示時にツリーのタイトルと表示部があるかどうかチェックする
-----------------------------------------------------------------*/
function chkAllTreeObj(treeData){
	var flg;
	for(var i in treeData){
		if( document.getElementById(treeData[i][0]) && document.getElementById(treeData[i][1])){
			flg = 1;
		}else{
			flg = 0;
		}
		if (flg == 0){
			return 0;
		}
	}
	return 1;
}


/*-----------------------------------------------------------------
//ページに応じてCSS設定切り替えを調整
//サイトにあわせて画像は変える
-----------------------------------------------------------------*/
function setIconStyle(){
	if(treeStyle=="sideMenuTree"){
		openIconStyle  = 'openTree_btn';
		closeIconStyle = 'closeTree_btn';
	}else if(treeStyle == "mainTree"){
		openIconStyle  = 'openTree_btn';
		closeIconStyle = 'closeTree_btn';
	}
}


/*-----------------------------------------------------------------
//ページ表示時に開くかどうかを設定する
-----------------------------------------------------------------*/
function setDefaultTreeDisp(treeObj,rootObj){
	if(defaultDisp == "open"){
		document.getElementById(treeObj).style.display='block';
		document.getElementById(rootObj).className  = openIconStyle;
	}else if(defaultDisp == "close"){
		document.getElementById(treeObj).style.display='none';
	}
}


/*-----------------------------------------------------------------
//データアレイでツリーを作るとき、ページ表示時にツリー対象部分を消す
-----------------------------------------------------------------*/
function openTreeFromHash(treeObj,rootObj){
	if(treeHash[treeObj] && treeHash[treeObj][0][1]=="open"){
		document.getElementById(treeObj).style.display='block';
		document.getElementById(rootObj).className  = openIconStyle;
		treeHash[treeObj]= [
			[rootObj,"open"]
		]
		setCookie();
	}else if(treeHash[treeObj] && treeHash[treeObj][0][1]=="close"){
		document.getElementById(treeObj).style.display='none';
		document.getElementById(rootObj).className  = closeIconStyle;
		treeHash[treeObj]= [
			[rootObj,"close"]
		]
		setCookie();
	}
}

/*-----------------------------------------------------------------
//ツリー表示部分の開閉と第一階層のアイコン変更（＋とーのみ）
-----------------------------------------------------------------*/
function menuToggle(treeObj,rootObj){
	

	if(document.getElementById(treeObj).style.display=='block'){
		document.getElementById(treeObj).style.display='none';
		document.getElementById(rootObj).className = closeIconStyle;
		treeHash[treeObj]= [
			[rootObj,"close"]
		];	
		setCookie();
	}else{
		document.getElementById(treeObj).style.display='block';
		document.getElementById(rootObj).className  = openIconStyle;
		treeHash[treeObj]= [
			[rootObj,"open"]
		]
		setCookie();
	}
}

/*-----------------------------------------------------------------
//現在開いているカテゴリに該当するノードを開いた状態にする
-----------------------------------------------------------------*/
function showCurrentNode(){

	var current = document.URL.substring(document.URL.indexOf('/iportal/')+'/iportal/'.length);
	if( current.indexOf('#') > 0){
		current = current.substring(0,current.indexOf('#'));
	}

	// まず一旦すべて対象外扱いにする
	$('#sideCategoryMenu').find('.ygtvitem').addClass('ygtvitem-not-current');

	// リンク先が現在見ているページと同じ(=現在開いているカテゴリに該当するノード) およびその親を探す
	$('#sideCategoryMenu').find('a.ygtvlabel[href='+current+']').addClass('ygtvlabel-current').parents('.ygtvitem').removeClass('ygtvitem-not-current').addClass('ygtvitem-current');

	// IE6で、リンクのhref属性としてフルパスのURLが取得されるのに対応する
	$('#sideCategoryMenu').find('a.ygtvlabel[href='+document.URL+']').addClass('ygtvlabel-current').parents('.ygtvitem').removeClass('ygtvitem-not-current').addClass('ygtvitem-current');

	// 1つ目のツリーについて対象外のノードを閉じる
// カテゴリが少ないうちは折りたたまないようにする
	$('#treeDiv_0').find('.ygtvitem-not-current span.ygtvlabel').each(function(){
		tree_0.tree.getNodeByElement(document.getElementById(this.id)).collapse();
	});
	// 2つ目のツリーについて対象外のノードを閉じる
	$('#treeDiv_1').find('.ygtvitem-not-current span.ygtvlabel').each(function(){
		tree_1.tree.getNodeByElement(document.getElementById(this.id)).collapse();
	});

}




/*============================================================================================

										ツリーの実行

============================================================================================*/

function showTreeMenu(treeObj,fileName,rootObj){
	if(document.getElementById(treeObj).style.display=='block'){
		menuToggle(treeObj,rootObj);
	}else{

			setIconStyle();
			var tree = new YAHOO.widget.TreeView(treeObj);
			tree.setDynamicLoad(loadNodeData, currentIconMode);
			loadfile(fileName,treeObj,rootObj,tree);
	}
}


/*============================================================================================

										戻ったときの処理

============================================================================================*/
/*-----------------------------------------------------------------------
//cookieの書き込み
-----------------------------------------------------------------------*/
function setCookie(){			//cookieの書き込み
	exp = new Date();
	exp.setTime(exp.getTime()+1000*60*60*24*1);//保存日時
	
	treeString="";
    for (var i in treeHash) {//ハッシュ書き込み用変換部分
       treeString +=escape(i)+ '%00' + escape(treeHash[i][0][0]) + '%00' + escape(treeHash[i][0][1]) + '%00';
    }
    
   //alert("treeString : " + treeString);
	document.cookie =  "SelectTree=" +  treeString;
	//document.cookie ="SelectTree=" +  treeString + "; expires=" + exp.toGMTString(); //ブラウザを閉じても残す場合はこちらを使用
}


/*-----------------------------------------------------------------------
//cookieの削除
-----------------------------------------------------------------------*/
function delCookie(){			//cookieの書き込み
    if(document.cookie==""){
        //alert("このサーバによるCookieはありません。")
    }else{
        tmp=document.cookie.split(";");
        acDate=new Date();
        acDate.setYear(acDate.getYear()-1);
        for(i=0;i<tmp.length;i++){
            temp1=tmp[i].split("=")[0];
            document.cookie=temp1+"=;acDate="+acDate.toGMTString();
        }
        //alert("このサーバによるCookieを削除しました。");
    }
    //document.cookie =  "SelectTree=" ;
}


/*-----------------------------------------------------------------------
//cookieの読込
-----------------------------------------------------------------------*/

function getCookie(){								//cookieの読込

	cookieLength = document.cookie.length;
	cookieArray = document.cookie.split("; ");

	treeString="";
	
	for(i=0; i<cookieArray.length; i++){
		if (cookieArray[i].substr(0,11) == "SelectTree="){	//数字部分は"SelectTree=" を判別するため設定
			treeString = cookieArray[i].substr(11,cookieArray[i].length);
			break;
		}
	}

	cookieArray = treeString.split("%00"); 
	for(i=0; i<cookieArray.length;){
		var treeObj  = unescape(cookieArray[i]);
		i++;
		var rootObj  = unescape(cookieArray[i]);
		i++;
		var treeStyle = unescape(cookieArray[i]);
		i++;
		
		if(treeStyle&&treeObj){		//ツリーのIDと状態(開閉)が両方とも取得できるとき 
			treeHash[treeObj]=[
				[rootObj, treeStyle]
			];
			openTreeFromHash(treeObj,rootObj);
		}
	}
}



