//グローバル変数の定義 ====================================================
var httpObj;               // HTTP通信用オブジェクト
var timerId;               // HTTP通信用タイマーオブジェクト
var timeout_sec = 10;      // HTTP通信タイムアウト秒数
var rows;
var xml_url = './data.xml';
var Event;
var SEHI;
var Internet;
var Mobile;
var Computing;
var Entertainment;
var Enterptise;
var outlineNode;
//=========================================================================
function loadXml(e) {
    httpXmlRequest(xml_url, 'GET', '', dispXmlElement, httpError);
    return false;
}
function dispXmlElement(xmlObj){
	var outline        = xmlObj.getElementsByTagName("outline");
		Event          = xmlObj.getElementsByTagName("Event");
		SEHI           = xmlObj.getElementsByTagName("SEHI");
		Internet       = xmlObj.getElementsByTagName("Internet");
		Mobile         = xmlObj.getElementsByTagName("Mobile");
		Computing      = xmlObj.getElementsByTagName("Computing");
		Entertainment  = xmlObj.getElementsByTagName("Entertainment");
		Enterptise     = xmlObj.getElementsByTagName("Enterptise");
		outlineNode    = document.getElementById("outlineNode");
	var i;
	rows = Event.length;
	var cols = Event[0].childNodes.length + 1;
	var htmlNode = "";
	htmlNode = readTb(htmlNode ,"Internet");
	outlineNode.innerHTML = htmlNode;
}
function changeTb(label){
	var htmlNode = "";
	htmlNode = readTb( htmlNode ,label );
	outlineNode.innerHTML = htmlNode;
}
function readTb( htmlNode,label ) {
	var labelWord = new Array();
	var sehiWord  = new Array();
	var word1;
	var word2;
	htmlNode ="<table summary=\"wrapTb\" id=\"wrapTb\">\n";
	htmlNode +="<tr class=\"noLine\">\n";
	htmlNode +="<td></td>\n";
	htmlNode +="<td class=\"seHi\" title=\"SE H&amp;Iグループの沿革\">SEHI</td>\n";
	var bgLabel = "bg"+label;// グラデーション
	var tbLabel = "tb"+label;// タブの背景画像
		//outline_tabInt.gif = spacer.gif
		htmlNode +="<td class=\"tabBox " + tbLabel + "\" title=\"情報・通信メディアの歴史\">\n";
		htmlNode +="<table summary=\"innerTb\" id=\"innerTb\">\n";
		htmlNode +="<tr>\n";
		htmlNode +="<td><a href=\"#\" onclick=\"changeTb('Internet')\"><img src=\"images/outline_tabInt.gif\" width=\"51\" height=\"18\" alt=\"Internet\" /></a></td>\n";
		htmlNode +="<td><a href=\"#\" onclick=\"changeTb('Mobile')\"><img src=\"images/outline_tabInt.gif\" width=\"45\" height=\"18\" alt=\"Mobile\" /></a></td>\n";
		htmlNode +="<td><a href=\"#\" onclick=\"changeTb('Computing')\"><img src=\"images/outline_tabInt.gif\" width=\"65\" height=\"18\" alt=\"Computing\" /></a></td>\n";
		htmlNode +="<td><a href=\"#\" onclick=\"changeTb('Entertainment')\"><img src=\"images/outline_tabInt.gif\" width=\"82\" height=\"18\" alt=\"Entertainment\" /></a></td>\n";
		htmlNode +="<td><a href=\"#\" onclick=\"changeTb('Enterptise')\"><img src=\"images/outline_tabInt.gif\" width=\"59\" height=\"18\" alt=\"Enterptise\" /></a></td>\n";
		htmlNode +="</tr>\n";
		htmlNode +="</table>\n";
		htmlNode +="</td>\n";
		htmlNode +="</tr>\n";
	var i;
	for( i = 0; i < rows; i++ ){
		label = eval(label);
		htmlNode +="<tr>\n";
		htmlNode +="<td class=\"yLine\">" + Event[i].getAttributeNode("years").value + "</td>\n";
		if( SEHI[i].firstChild ){
			sehiWord[i] = SEHI[i].firstChild.nodeValue;
			word1 = allReplace(sehiWord[i], "###br###", "<br />");
			htmlNode +="<td class=\"seLine\">" + word1 + "</td>\n";
		}
		else{
			htmlNode +="<td>　</td>\n";
		}
		if( i == 0 ) {
			if( label[i].firstChild ){
				labelWord[i] = label[i].firstChild.nodeValue;
				word2 = allReplace(labelWord[i], "###br###", "<br />");
				htmlNode +="<td class=\"hLine " + bgLabel + "\">" + word2 + "</td>\n";
			}
			else{
				htmlNode +="<td class=\"hLine " + bgLabel + "\">　</td>\n";
			}
		}
		else{
			if( label[i].firstChild ){
				labelWord[i] = label[i].firstChild.nodeValue;
				word2 = allReplace( labelWord[i], "###br###", "<br />");
				htmlNode +="<td class=\"hLine\">" + word2 + "</td>\n";
			}
			else{
				htmlNode +="<td class=\"hLine\">　</td>\n";
			}
		}
		htmlNode +="</tr>\n";
	}
	htmlNode +="</table>\n";
	return htmlNode;
}

function allReplace(text, sText, rText) {
	while (true) {
		crlf = text;
		text =crlf.replace(sText, rText);

		if (text == crlf) {
			break;
		}
	}
	return text;
}
function httpError(error) {
    alert(error + "httpError");
}
function httpXmlRequest(target_url, method, data, success_func, error_func) {
    try {
        if(window.XMLHttpRequest) {
            httpObj = new XMLHttpRequest();
        }
        else if(window.ActiveXObject) {
            httpObj = new ActiveXObject("Microsoft.XMLHTTP");
        }
        else {
            httpObj = false;
        }
    }
    catch(e) {
        httpObj = false;
    }
    
    try{
		httpObj = new XMLHttpRequest();
	}
	catch(e){
		try{
			httpObj = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e){
			try{
				httpObj = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e){
				return null;
			}
		}
	}
    if(! httpObj) {
        httpObjGenerateFail();
    }
    timerId = setInterval('timeoutCheck()', 1000);
    httpObj.open(method, target_url, true);
    httpObj.onreadystatechange = function() {
        if (httpObj.readyState == 4) {
            clearInterval(timerId);
            if (httpObj.status == 200) {
                success_func(httpObj.responseXML);
            } else {
                error_func(httpObj.status + ' : ' + httpObj.statusText);
                return false;
            }
        }
    }
    httpObj.send(data);
}
function timeoutCheck() {
    timeout_sec --;
    if(timeout_sec <= 0) {
        clearInterval(timerId);
        httpObj.abort();
        alert('タイムアウトです。');
        return false;
    }
}

function addListener(elem, eventType, func, cap) {
    if(elem.addEventListener) {
        elem.addEventListener(eventType, func, cap);
    } else if(elem.attachEvent) {
        elem.attachEvent('on' + eventType, func);
    } else {
        macIePdf();
        return false;
    }
}

addListener(window, 'load', loadXml, false);

function macIePdf() {
	var htmlNode = "";
		htmlNode = "<a href=\"images/histry.pdf\" target=\"_blank\">【詳しいHistory mapを見る】PDFダウンロード（2,421kb）</a>\n";
		outlineNode           = document.getElementById("outlineNode");
		outlineNode.innerHTML = htmlNode;
	}