﻿<!--

var myURL = document.location.toString();	//例：http://www.○○○.co.jp/aaa/bbb/index.html
var domain;		//例：www.○○○.co.jp
var myTarget;	//例：index.html
var infoDirURL;	//例：http://www.○○○.co.jp/support/aaa
var loaded = false;	//ページの読み込みフラグ
var rootName;			//ルートの名前


init();	//初期化


//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
//
//初期化
//
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
function init() {
	
	//ホームのURL
	var tmp = myURL.substring(myURL.indexOf("/")+2, myURL.length);
	var protocol = myURL.substring(0, myURL.indexOf("/")+2);	
	var underHomeURL = tmp.substring(tmp.indexOf("/")+1, myURL.length);
	domain = tmp.substring(0, tmp.indexOf("/"));	
	myTarget = myURL.substring(myURL.lastIndexOf("/")+1, myURL.length);
	underHomeURL = underHomeURL.substring(0, underHomeURL.lastIndexOf("/"));
	
	//【例外処理】
	//ショッピングページでは「cart」ディレクトリの直下にあるINFO.xmlを
	//読み込ませるようにする（INFO.xmlを一元管理するため）20081208西田追加
	var checkCartDir = underHomeURL.substring(0, underHomeURL.indexOf("/"));
	if(checkCartDir == "cart") underHomeURL = checkCartDir;
	
	if(underHomeURL=="") infoDirURL = protocol + domain;
	else infoDirURL = protocol + domain + "/" + underHomeURL;
	
	document.write(getHeaderHTML());	//ヘッダーを描画
	
	//ページがロードし終わったら
	window.onload = function() {
		loaded = true;
		//Naviのタブ選択表示をページごとに切り替える
		setNaviStyle();
	}	
	
	//ファイルにアクセスし受信内容を確認
	requestFile('', 'GET', infoDirURL + "/INFO.xml?"+new Date().toLocaleString(), true);
}

//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
//
//ヘッダHTML生成
//
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
function getHeaderHTML() {
	
	/*スタイルシートを設定*/
	var t = '<link rel="stylesheet" type="text/css" href="/common/header.css" media="screen,tv" charset="utf-8"/>';
	
	//----------------------------
	//ロゴ
	//----------------------------
	if(domain == undefined || domain == "localhost")
	{
		t += '<div id="header_logo"><a href="/"><img src="/common/image/mhlogo.gif" alt="トップページへ" border="0" /></a></div>';
	}
	else
	{
		t += '<div id="header_logo"><a href="http://www.magic-hour.co.jp/"><img src="/common/image/mhlogo.gif" alt="トップページへ" border="0" /></a></div>';
	}
	
	//----------------------------
	//サブメニュー
	//----------------------------
	t += '<div id="header_sub_menu"><div>';
	if(domain == undefined || domain == "localhost")
	{
		t += '<a href="/company/company.html">会社概要</a>｜<a href="/inquiry/index.html">お問い合わせ</a>｜<a href="/site_map/site_map.html">サイトマップ</a>';
	}
	else
	{
		t += '<a href="http://www.magic-hour.co.jp/company/company.html">会社概要</a>｜<a href="http://www.magic-hour.co.jp/inquiry/index.html">お問い合わせ</a>｜<a href="http://www.magic-hour.co.jp/site_map/site_map.html">サイトマップ</a>';
	}
	t += '</div></div>';
	
	//----------------------------
	//メニューボタン
	//----------------------------
	if(domain == undefined || domain == "localhost")
	{
		t += '<ul id="header_menu">';
		t += '<li><a id="menu_button1" href="/product/pc_software.html">PCソフトウェア</a></li>';
		t += '<li><a id="menu_button2" href="/product/server_software.html">サーバソフトウェア</a></li>';
		t += '<li><a id="menu_button3" href="/support/support_top.html">サポート</a></li>';
		t += '<li><a id="menu_button4" href="/download/dl_top.html">ダウンロード</a></li>';
		t += '<li><a id="menu_button5" href="/purchase/purchase.html">オンラインショップ</a></li>';
		t += '</ul>';
	}
	else
	{
		t += '<ul id="header_menu">';
		t += '<li><a id="menu_button1" href="http://www.magic-hour.co.jp/product/pc_software.html">PCソフトウェア</a></li>';
		t += '<li><a id="menu_button2" href="http://www.magic-hour.co.jp/product/server_software.html">サーバソフトウェア</a></li>';
		t += '<li><a id="menu_button3" href="http://www.magic-hour.co.jp/support/support_top.html">サポート</a></li>';
		t += '<li><a id="menu_button4" href="http://www.magic-hour.co.jp/download/dl_top.html">ダウンロード</a></li>';
		t += '<li><a id="menu_button5" href="http://www.magic-hour.co.jp/purchase/purchase.html">オンラインショップ</a></li>';
		t += '</ul>';
	}
	
	//----------------------------
	//破線
	//----------------------------
	t += '<img id="header_broken_line" />';
	
	//----------------------------
	//階層表示
	//----------------------------
	t += '<div id="header_kaisou"></div>';
	
	//----------------------------
	//ページタイトル表示
	//----------------------------
	t += '<div id="header_page_title"></div>';
	
	return t;	
}


//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
//
//メニューボタンの選択表示制御
//
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------

/*[menu_button]の選択表示制御
-----------------------------------*/
function setNaviStyle() {
	if(rootName && loaded) {	//ルートの名前を取得 ＋ ページがロード済みの場合
		switch(rootName) {
			case "PCソフトウェア": selectMenuButton("menu_button1", "0"); break;
			case "サーバソフトウェア": selectMenuButton("menu_button2", "-40px"); break;
			case "サポート": selectMenuButton("menu_button3", "-80px"); break;
			case "ダウンロード": selectMenuButton("menu_button4", "-120px"); break;
			case "オンラインショップ": selectMenuButton("menu_button5", "-160px"); break;
		}
	}
}

/*指定の[menu_button]を選択表示にする
-----------------------------------*/
function selectMenuButton(id, y) {
	var obj;
	if(document.getElementById) {
		obj = document.getElementById(id).style;
	}
	else if(document.all) {
		obj = document.all(id).style;
	}
	else if(document.layers) {
		obj = document.layers[id];
	}
	obj.backgroundPosition = "-157px " + y;
}


//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
//
//階層表示制御
//
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------

/*XMLHttpRequestオブジェクト生成
-----------------------------------*/
function createHttpRequest(){
	//Win ie用
	if(window.ActiveXObject){
		try {
			return new ActiveXObject("Msxml2.XMLHTTP"); //MSXML2以降用
		}catch (e) {
			try {
				return new ActiveXObject("Microsoft.XMLHTTP"); //旧MSXML用
			}catch (e2) {
				return null;
			}
		}
	}
	//Win ie以外のXMLHttpRequestオブジェクト実装ブラウザ用
	else if(window.XMLHttpRequest) return new XMLHttpRequest();
	else return null;
}

/*ファイルにアクセスし受信内容を確認
-----------------------------------*/
function requestFile( data , method , fileName , async ){
	var httpoj = createHttpRequest();	//XMLHttpRequestオブジェクト生成
	var a = httpoj.open( method , fileName , async );	//open メソッド	
	httpoj.onreadystatechange = function(){	//受信時に起動するイベント
	  if (httpoj.readyState==4 && httpoj.status==200) on_loaded(httpoj);	//readyState値は4で受信完了でコールバックする
	  if (httpoj.readyState==4 && httpoj.status==404) {	//XMLファイルがない場合。
		  rootName = true;//ルートの名前をtrueにしてフラグの代わりにする
		  setNaviStyle();//Naviのタブ選択表示をページごとに切り替える
	  }
	}	
	httpoj.send( data );
}

/*コールバック関数 ( 受信時に実行されます )
-----------------------------------*/
var tmpTitle = "";	//ページタイトル保存用
var tmpKaisou = "";	//階層表示保存用
var tmpTitleBar = "";	//タイトルバー表示フラグ保存用
function on_loaded(oj){
	var DOM = oj.responseXML;
	var nameTAG = DOM.getElementsByTagName('name');
	var parentTAG = DOM.getElementsByTagName('parent');
	var kai = getKaisou(nameTAG);//階層オブジェクト（名前とリンク）を取得	
	var parent = getParent(parentTAG);//親のURLを取得	
	//ページタイトルと階層とタイトルバー表示フラグを保存
	if(myTarget.indexOf("/") == -1 && myTarget.indexOf(".htm") != -1 || myTarget.indexOf(".php") != -1 || myTarget == "") {
		tmpTitle = kai.name;
		tmpTitleBar = kai.titleBar;
	}
	else {
		//httpsの場合はhttpにする
		if(infoDirURL.indexOf("https://") == 0) {
			infoDirURL = infoDirURL.substring(8, infoDirURL.length);
			infoDirURL = "http://" + infoDirURL;
		}
		tmpKaisou = '<a href="' + infoDirURL + '/' + kai.link + '" target="_top">'+kai.name+'</a> ≫ ' + tmpKaisou;
	}
	//親がルートの場合		
	if(parent == "root") {		
		//ウィンドウタイトルを設定
		document.title = tmpTitle;		
		//ページタイトルを表示		
		if(tmpTitleBar != "false") {
			if(document.all) document.all.header_page_title.innerHTML = '<div><div>' + tmpTitle + '</div></div>';
			else document.getElementById('header_page_title').innerHTML = '<div><div>' + tmpTitle + '</div></div>';
		}
		//階層を表示
		if(tmpKaisou) {
			var str = '<div><span>' + tmpKaisou + tmpTitle + '</span></div>';
			if(document.all) document.all.header_kaisou.innerHTML = str;
			else document.getElementById('header_kaisou').innerHTML = str;
		}
		//ルートの名前を保存
		rootName = kai.name;
		//Naviのタブ選択表示をページごとに切り替える
		setNaviStyle();
	}
	//親指定がある場合、INFO.xmlを取得
	else {
		if(parent == "this") myTarget = "other";//
		else if(!parent) ;//undefinedの場合スルー
		//INFO.xmlの階層を再設定する
		else if(parent.indexOf("../") != -1) {
			var ary = parent.split("/");//上への数取得用に配列をつくる
			ary.pop();//最後の空の要素を削除
			for(var i=0; i<ary.length; i++) {
				//階層を上げる
				infoDirURL = infoDirURL.substring(0, infoDirURL.lastIndexOf("/"));
			}
			myTarget = myURL.substring(infoDirURL.length+1, myURL.length);
		}
		else if(tp.indexOf("../") == -1) {
			//階層を下げる
			infoDirURL = infoDirURL + "/" + tp;
		}
		//ファイルにアクセスし受信内容を確認
		requestFile('', 'GET', infoDirURL + "/INFO.xml?"+new Date().toLocaleString(), true);
	}
}

/*階層オブジェクト（名前とリンク）を取得
-----------------------------------*/
function getKaisou(TAG) {
	//自分のHTMLが対象になっているか調べる
	var tk = new Object;
	var ok = new Object;
	for(var i=0; i<TAG.length; i++) {
		var name = TAG[i].getAttribute("value");
		var link = TAG[i].getAttribute("link");
		var titleBar = TAG[i].getAttribute("titleVisible");
		var targetTAG = TAG[i].getElementsByTagName('target');			
		for(var j=0; j<targetTAG.length; j++) {			
			var obj = targetTAG[j].childNodes[0];
			if(obj) var target = obj.nodeValue;
			else var target = "";
			//対象なら名前を取得			
			var dir = myTarget.substring(0, myTarget.lastIndexOf("/")+1);
			if(target == myTarget || dir.indexOf(target) == 0 && target != "") {
				tk.name = name;
				tk.link = link;
				tk.titleBar = titleBar;
				break;
			}
			else if(target == "other") {				
				ok.name = name;
				ok.link = link;
				ok.titleBar = titleBar;
			}
		}
	}
	//名前が取得されなかったら[other]の値を対象にする
	if(!tk.name) {		
		tk.name = ok.name;
		tk.link = ok.link;
		tk.titleBar = ok.titleBar;
	}
	return tk;
}

/*INFO.xmlのURLを取得
-----------------------------------*/
function getParent(tag) {
	//自分のHTMLが対象になっているか調べる	
	var tp;
	var op;
	for(var i=0; i<tag.length; i++) {
		var p = tag[i].getAttribute("dir");
		var tTag = tag[i].getElementsByTagName('target');			
		for(var j=0; j<tTag.length; j++) {
			var t = tTag[j].childNodes[0].nodeValue;
			//対象なら名前を取得	
			var dir = myTarget.substring(0, myTarget.lastIndexOf("/")+1);
			if(t == myTarget ||  dir.indexOf(t) == 0) {
				tp = p;
				break;
			}
			else if(t == "other") op = p;
		}
	}
	//親URLが取得されなかったら[other]の値を対象にする
	if(!tp) tp = op;
	return tp;
}


//-->
