﻿/* ファイルにアクセスし受信内容を確認
--------------------------------------------------*/

var relationInfo = new (function(){
		
	/*初期設定*/
	var box      = document.getElementById('primary');
			box.div  = box.getElementsByTagName('div');
	var tarClass = 'relationBox'; // 対象div
	
	var boxCnt  = 0;
	var fileCnt = 0;
	var fileMax = 0;
	var liTag   = '';
	
	var span = '';
			span.cat;  // カテゴリ
			span.file; // ファイル
			span.tmp;  // フラグ
			span.id;   // ID
	
	
	/*ヘッダテンプレート*/
	var head = [];
			head['s'] = '<p class="boxHeading">関連情報</p>';
			head['l'] = '<p><img src="/common/image/relation_heading.gif" alt="関連情報"></p>';
	
	
	/*メイン*/
	function core(){
		//alert('boxCnt='+boxCnt+'／box.div.length='+box.div.length);
		if(boxCnt >= box.div.length){
			fileCnt = 0;
			boxCnt  = 0;
			return;
		}else if(box.div[boxCnt].className != tarClass){
			boxCnt++;
			core();
			return;
		}
		
		span      = box.div[boxCnt].getElementsByTagName('span');
		span.cat  = span[0].innerHTML;
		span.file = span[1].innerHTML;
		span.head = span[2].innerHTML;
		span.id   = span[3].innerHTML;
	
		var files = span.file.split('、');
		fileMax = files.length;
		for(var i=0; i<files.length; i++){
			requestFile(null, 'get', files[i], true, parseJSON);
		}
	}
	core();
	
	
	/*データ取得＆セット*/
	function parseJSON(jsData){
		
		if(jsData == 0){
			var data = jsData;
		}else{
			var data = eval('('+jsData+')').configuration;	
		}
		
		
		for(var j=0; j<data.length; j++){
			if((span.cat == '展覧会スケジュール' || span.cat == 'ミュージアムデータベース') && 
				 (data[j].cat == '展覧会ピックアップ' || data[j].cat == 'プレゼント')){
			
			}else if(span.cat == '展覧会ピックアップ' && data[j].cat == 'プレゼント'){
			
			}else if(span.id == data[j].id){
			
			}else{
				liTag += '<li><a href="'+data[j].url+'">【'+data[j].cat+'】'+data[j].tit+'</a></li>\n';
			}
		}
		
		
		if(fileCnt != fileMax-1){
			fileCnt++;		
		}else{
			if(liTag!=''){
				box.div[boxCnt].innerHTML = head[span.head]+'\n<ul>'+liTag+'</ul>\n';
				box.div[boxCnt].style.display = 'block';
				liTag   = '';
			}
			boxCnt++;
			fileCnt = 0;
			core();
		}
		
	}


	/*httpRequest*/
	function httpRequest(){
		if(window.ActiveXObject){ // Win IE
			try{
				return new ActiveXObject('Msxml2.XMLHTTP'); // MSXML2以降用
			}catch(e){
				try{
					return new ActiveXObject('Microsoft.XMLHTTP'); // 旧MSXML用
				}catch(e2){
					return null;
				}
			}
		}else if(window.XMLHttpRequest){ // Win IE以外（Mozilla, Safari）
			return new XMLHttpRequest();
		}else{
			return null;
		}
	}
	
	
	/*通信*/
	function requestFile(data, method, file, async, callbackFnc){
		var httpObj = httpRequest();
		httpObj.open(method, file, async);
		httpObj.onreadystatechange = function(){ 
			if(httpObj.readyState == 4 && httpObj.status == 200){ 
				callbackFnc(httpObj.responseText);
			}else if(httpObj.readyState == 4 && httpObj.status == 404){
				callbackFnc(0);
			}
		}
		httpObj.setRequestHeader('If-Modified-Since', 'Thu, 01 Jun 1970 00:00:00 GMT'); // IE キャッシュ対策
		httpObj.send(data);
	}


})();