﻿// JavaScript Document
/*初期設定*/
var	lms_importArray	=new Array();
var	loadingStatus = {	//読み込み状況
	"xml" : false,
	"page" : false
}
function tagObj(DOM,ID){
	if(ID){
		this.ID		=DOM.getAttribute('ID')||false;
	}
	if(DOM.getAttribute('className')||DOM.className){
		this._class	=DOM.getAttribute('className')||DOM.className;
	}
	this.style			=DOM.getAttribute('style')||false;
	this.href			=DOM.href||false;
	this.onClick		=(DOM.getAttribute('onclick'))?		DOM.getAttribute('onclick').toString().replace(/\n/ig,'').replace(/function anonymous\(\)\{(.+?)\}/,'$1')		:false;
	this.onMouseDown	=(DOM.getAttribute('onmousedown'))?	DOM.getAttribute('onmousedown').toString().replace(/\n/ig,'').replace(/function anonymous\(\)\{(.+?)\}/,'$1')	:false;
	this.onMouseOut		=(DOM.getAttribute('onmouseout'))?	DOM.getAttribute('onmouseout').toString().replace(/\n/ig,'').replace(/function anonymous\(\)\{(.+?)\}/,'$1')	:false;
	this.onMouseOver	=(DOM.getAttribute('onmouseover'))?	DOM.getAttribute('onmouseover').toString().replace(/\n/ig,'').replace(/function anonymous\(\)\{(.+?)\}/,'$1')	:false;

	var attribute = new String();
	for(var i in this){
		attribute	+= (this[i])? ' '+i.replace(/_/ig,'')+'="'+this[i]+'"':'';
	}

	var tagName	= DOM.nodeName;
	this.tagName	= tagName;
	this.attribute	= attribute;
	this.innerHTML	= DOM.innerHTML;
	this.tag		= '<'+tagName+attribute+'>'+this.innerHTML+'</'+tagName+'>'
}

var	items = new Array();
/*起動処理*/
requestFile(file.xml,'xml','xml',loadingStatus,'makeItems');
function onLoadFunc(){
	loadingStatus.page=true;

	(confirmation(loadingStatus))?	makeItems():void(0);
}

/*読み込みデータ整形*/
function func_xml(xml,ID,obj,callbackFaunction){
	var Lnum	= new Number();
	var Mnum	= new Number();
	var Snum	= new Number();
	itemsObj	= xml.responseXML.getElementsByTagName('items')[0];
	itemObj		= xml.responseXML.getElementsByTagName('item');
	for (var i=0; itemObj.length>i; i++){
		var _large	=xmlTag(itemsObj,'item',i,'large');
		var _inside	=xmlTag(itemsObj,'item',i,'inside');
		var	tempObj	={
			"title":xmlTag(itemsObj,'item',i,'small'),
			"value":xmlTag(itemsObj,'item',i)
		}
		if(items[_large+':largeID'+Lnum]){
		}else{
			items[_large+':largeID'+(++Lnum)]=new Array();
		}
		items[_large+':largeID'+Lnum][_inside]=pushArray(items[_large+':largeID'+Lnum][_inside],tempObj)
	}
	obj[ID]=true;
	(confirmation(obj))?	eval(callbackFaunction)():void(0);
}

function createItemObj(xml){

}

/*整形部分*/
function makeItems(xml){
	var tLargeObj	=new tagObj($('tLarge'));
	var tInsideObj	=new tagObj($('tInside'));
	var tSmallObj	=new tagObj($('tSmall'));
	
	IDindex	= new Array();

	var	HTML	= new String();
	var	top		= (URLargument.page)? unescape(URLargument.page):false;
	for(var i in items){
		IDindex[i.replace(/.+:(largeID\d+)/,'$1')]=i.replace(/:largeID\d+/,'');
		top	= (top)? top:i;
		top	= (i.match(top.toString()))? i:top;
		var temp='\n'+tLargeObj.tag+'\n<div ID="'+i.match(/largeID\d+/)+'">';
		for(var j in items[i]){
			temp+=(j!='false')?tInsideObj.tag:'';
			for(var k in items[i][j]){
				temp+=(items[i][j][k].title!='false')? tSmallObj.tag.replace(/@@@@小項目@@@@/ig,items[i][j][k].title):'';
			}
			temp=temp.replace(/@@@@中項目@@@@|@@@@%E4%B8%AD%E9%A0%85%E7%9B%AE@@@@/ig,j).replace(/@@@@大項目@@@@|@@@@%E5%A4%A7%E9%A0%85%E7%9B%AE@@@@/ig,i.replace(/:largeID\d+/,''));
		}
		HTML	+=	temp.replace(/@@@@大項目@@@@/ig,i.replace(/:largeID\d+/,'')).replace(/@@@@大項目ID@@@@/ig,i.replace(/.+(:largeID\d+)/,'$1')).replace(/@@@@_大項目ID@@@@/ig,i.replace(/.+(largeID\d+)/,'$1'))+'</div>\n';
	}
	reWrite('side',HTML);
	makePage(top);
	try{
		eval(onLoadEvent)();	
	}catch( e ){
	//エラー時の処理
	}
}

function _makePage(arg){
	var pLargeObj	=new tagObj($('pLarge'));
	var pInsideObj	=new tagObj($('pInside'));
	var pSmallObj	=new tagObj($('pSmall'));
	var pTextObj	=new tagObj($('pText'));

	var	HTML	= new String();
	if(!arg.match(/false/)){
		_pLargeObj	= pLargeObj.tag.replace(/@@@@大項目@@@@/ig,arg.replace(/:largeID\d+/,''));
		_pLargeObj	= _pLargeObj.replace(/@@%%([^@|^%]*?)%%大項目%%([^@|^%]*?)%%@@/ig,'$1'+arg.replace(/:largeID\d+/,'')+'$2');
		HTML	+= _pLargeObj; 
	}
	for(var i in items[arg]){
		if(!i.toString().match(/false/)){
			_pInsideObj	=(i)? pInsideObj.tag.replace(/@@@@中項目@@@@/ig,i).replace(/false/ig,''):'';
			_pInsideObj	=_pInsideObj.replace(/@@%%([^@|^%]*?)%%中項目%%([^@|^%]*?)%%@@/ig,'$1'+arg.replace(/:largeID\d+/,'')+'$2');
//			HTML+=(i)? pInsideObj.tag.replace(/@@@@中項目@@@@/ig,i).replace(/false/ig,''):'';
			HTML	+= _pInsideObj;
		}
		for(var j in items[arg][i]){
			if(!items[arg][i][j].title.toString().match(/false/)){
				_pSmallObj	= (items[arg][i][j].title)? pSmallObj.tag.replace(/@@@@小項目@@@@/ig,items[arg][i][j].title):'';
				_pSmallObj	= _pSmallObj.replace(/@@%%([^@|^%]*?)%%小項目%%([^@|^%]*?)%%@@/ig,'$1'+arg.replace(/:largeID\d+/,'')+'$2');
//				HTML+=(items[arg][i][j].title)? pSmallObj.tag.replace(/@@@@小項目@@@@/ig,items[arg][i][j].title):'';
				HTML	+= _pSmallObj 
			}
			var _HTML	= items[arg][i][j].value;
			_HTML	= _HTML.split('<br /><br />');
			for(var k in _HTML){
				var _str	= _HTML[k].toString().replace(/^\d+?\./ig,'∵∵∵∴∴∴').replace(/<br \/>\d+?\./ig,'∵∵∵∴∴∴').split('∵∵∵');
				for(var l in _str){
					var	str	= _str[l].toString();

					var _imgObj	= str.match(/<<[^>]+?>>/ig);
					if(_imgObj){
						for(var imgNum=0; _imgObj.length>imgNum; imgNum++){
							imgObj=_imgObj[imgNum].toString().replace(/<|>/ig,'').split('|');
							if(imgObj[0].match(/\.swf/)){
								var imgTag	= makeSwfTag(imgObj[0],imgObj[1],imgObj[2])
							}else{
								var imgTag	= makeImageTag(imgObj[0],imgObj[2],imgObj[3],imgObj[1],imgObj[4])
							}
							imgTag	= (imgObj[1]=='中')? '＜●＞'+imgTag+'＜○＞':imgTag;
							str = str.replace(/<<[^>]+?>>/,imgTag);
						}
					}

					str	= str.replace(/\\\((.+?)\\\)/ig,'《《$1》》');
					str	= str.replace(/\(\((.+?)\|強調\)\)/ig,'<span class="strong">$1</span>');
					str	= str.replace(/《《(.+?)》》/ig,'($1)');
					_str[l]	= str;
				} 
				for(var l in _str){
					var	str	= _str[l].toString();
					if(str.match(/∴∴∴/)){
						str	='</p><ol><li>'+str.replace(/∴∴∴/g,'')+'</li></ol><p>';
					}
					_str[l]	= str;
				}
				_str	= _str.join('').replace(/<\/ol><p><\/p><ol>/ig,'');
				_str	= _str.replace(/^・/ig,'∵∵∵∴∴∴').replace(/<br \/>・/ig,'∵∵∵∴∴∴').split('∵∵∵');
				for(var l in _str){
					var	str	= _str[l].toString();
					if(str.match(/∴∴∴/)){
						str	='</p><ul><li>'+str.replace(/∴∴∴/g,'')+'</li></ul><p>';
					}
					_str[l]	= str;
				}
				_str	= _str.join('').replace(/<\/ul><p><\/p><ul>/ig,'');
				_HTML[k]	= _str;
			}
			_HTML	= '<p>'+_HTML.join('</p><p>')+'</p>';
			_HTML	= _HTML.replace(/<ul>/ig,'</p><ul>').replace(/<\/ul><\/p>/ig,'</ul>');
			_HTML	= _HTML.replace(/<ol>/ig,'</p><ol>').replace(/<\/ol><\/p>/ig,'</ol>');

			_HTML	= _HTML.replace(/\(R\)/ig,'&reg;');
			_HTML	= _HTML.replace(/\(TM\)/ig,'&#8482;');
			_HTML	= _HTML.replace(/\(C\)/ig,'&copy;');

			_HTML	= _HTML.replace(/\(\((.+?)\|(.+?)\|新\)\)/ig,'<a href="$2" target="_blank">$1</a>');

/*あとでやる*/
			_HTML	= _HTML.replace(/\(\((.+?)\|(.+?)\.jpg\|拡大\)\)/ig,'<a href="javascript: void(popup(\'$2.jpg\'))">$1<img src="http://www.sourcenext.com/img/common/icon_zoom.gif" border="0" style="margin-left:-80px;"></a>');
			_HTML	= _HTML.replace(/\(\((.+?)\|(.+?)\.gif\|拡大\)\)/ig,'<a href="javascript: void(popup(\'$2.gif\'))">$1<img src="http://www.sourcenext.com/img/common/icon_zoom.gif" border="0" style="margin-left:-80px;"></a>');
			_HTML	= _HTML.replace(/\(\((.+?)\|(.+?)\.png\|拡大\)\)/ig,'<a href="javascript: void(popup(\'$2.png\'))">$1<img src="http://www.sourcenext.com/img/common/icon_zoom.gif" border="0" style="margin-left:-80px;"></a>');

			_HTML	= _HTML.replace(/\(\((.+?)\|(.+?)\.jpg\)\)/ig,'<a href="javascript: void(popup(\'$2.jpg\'))">$1</a>');
			_HTML	= _HTML.replace(/\(\((.+?)\|(.+?)\.gif\)\)/ig,'<a href="javascript: void(popup(\'$2.gif\'))">$1</a>');
			_HTML	= _HTML.replace(/\(\((.+?)\|(.+?)\.png\)\)/ig,'<a href="javascript: void(popup(\'$2.png\'))">$1</a>');

			_HTML	= _HTML.replace(/\(\((.+?)\|(.+?)\)\)/ig,'<a href="$2">$1</a>');
			_HTML	= _HTML.replace(/<p>\d+?\.(.+?)<\/p>/ig,'<ol><li>$1</li></ol>')
			_HTML	= _HTML.replace(/<p>・(.+?)<\/p>/ig,'<ul><li>$1</li></ul>')

			_HTML	= _HTML.replace(/<p>(※.+?)<\/p>/ig,'<p class="kome">$1</p>')
			_HTML	= _HTML.replace(/<p>！！！(.+?)<\/p>/ig,'<p class="caution">$1</p>')
			_HTML	= _HTML.replace(/<p>！！(.+?)<\/p>/ig,'<p class="notice">$1</p>')
			_HTML	= _HTML.replace(/<p><\/p>/ig,'')

			while(_HTML.match(/<li>(.*?)＜●＞(.+?)＜○＞(.*?)<\/li>/)){
				_HTML	= _HTML.replace(/<li>(.*?)＜●＞(.+?)＜○＞(.*?)<\/li>/,'<li>$1</li>\n<li class="center">$2</li>\n<li>$3</li>');
			}
			while(_HTML.match(/<p>(.*?)＜●＞(.+?)＜○＞(.*?)<\/p>/)){
				_HTML	= _HTML.replace(/<p>(.*?)＜●＞(.+?)＜○＞(.*?)<\/p>/,'<p>$1</p>\n<p class="center">$2</p>\n<p>$3</p>');
			}

			_HTML	= _HTML.replace(/<p><br><\/p>/ig,'').replace(/<p><br \/><\/p>/ig,'').replace(/<p><\/p>/ig,'').replace(/<p>/ig,'<p style="clear:both">');
			_HTML	= _HTML.replace(/<\/t(.+?)><br \/>/ig,'</t$1>').replace(/<\/col(.*?)><br \/>/ig,'</col$1>');
			_HTML	= _HTML.replace(/<t(.+?)><br \/>/ig,'<t$1>').replace(/<col(.*?)><br \/>/ig,'<col$1>');
			HTML	+= pTextObj.tag.replace(/@@@@本文@@@@/ig,_HTML);
		}	
	}

	var	importObj	= HTML.match(/\[\[.+?\]\]/)
	if(importObj){
		for (var num=0; importObj.length>num; num++){
			var	regObj = new RegExp(importObj[num].replace(/\[/ig,'\\[').replace(/\]/ig,'\\]'),'g');
			lms_importArray.push(importObj[num].replace(/\[\[|\]\]/ig,''));
			HTML	= HTML.replace(regObj,'</p><ins id="i'+(lms_importArray.length-1)+'" style=" clear:both; text-decoration: none;"></ins><p>');
		}
	}
	HTML	= HTML.replace(/<p[^>]*?><\/p>/ig,'');
	
	return	HTML
}

function makePage(arg){
	if($('_honmon')){
		reWrite('_honmon',_makePage(arg));
	}else{
		reWrite('BODY',_makePage(arg));
	}
}

