
//表示するDivのIDを設定
var ListArea = 'topics';

//表示件数
var MAX_NEWDATA = 4;

//表示方法
//List→定義リスト
//Table→テーブル
var ViewMode = 'List';

//表示ページからのログファイルパス
var FILEPATH = "topics/log.dat";

//NEWをつける日数
var Limit ="4";

//Newマークのアイコンパス。
var NewIco= "topics/new.gif";
//アイコンサイズ
var IconW = "20"; //width
var IconH = "9"; //height

var a = new Date();
window.addEvent('domready', function() {
$(ListArea).empty();
	//We can use one Request object many times.
	var req = new Request({url:FILEPATH, 
		onRequest:function(){
			var spin = new Element('img',{'src':'topics/spinner.gif','width':16,'height':16,'alt':'Lading...'});
			$(ListArea).grab(spin);
		},
						   
		onSuccess: function(Obj) {
			$(ListArea).empty();
			addlists(Obj);
		},
		onFailure: function() {
			$(ListArea).set('text', 'Error:ログファイルを確認してください');
		}
	});
	
	req.send();
	
});

//NEW!!
var NewMark = function(date,str,el){
	b = Date.parse(date)+ (parseInt(Limit) * 24 * 3600 * 1000);
	c = a.getTime();
	if(b>=c && NewIco != ""){
		var New = new Element('img',{'src':NewIco,'width':IconW,'height':IconH,'alt':'NEW!'});
		if($type(str)!='element'){
			el.set('html',str);
			New.inject(el);
			return el;
		}else{
			str.inject(el);
			New.inject(str,'after');
			return el;
		}
	}else{
		if($type(str)!='element'){
			el.set('html',str);
			return el;
		}else{
			str.inject(el);
			return el;
		}
	}
	
	
}

var addlists = function(logs) {

	var data = $(ListArea);
	var CR = String.fromCharCode(10);//改行
	var LogData= logs.split(CR);
	var n = LogData.pop();//最後尾の空白行削除
	var Logs =LogData.erase(n);
	
	var list =function() {//定義リスト表示
		
		var dl = new Element('dl').inject(data);
		
		Logs.filter(function(item, index){
 	 	  if(index < MAX_NEWDATA){
			  var dt = new Element('dt');
			  var dd = new Element('dd');
			  var dat = item.split(',');
			  
			 var date = dat[1].substring(0,4)+"/"+dat[1].substring(4,6)+"/"+dat[1].substring(6,8);
			  
			  dt.set('text',date);
			  dt.inject(dl);
			  
			  if(dat[3].match(/[a-z]/)){
				  var anc =	new Element('a',{'href':dat[3],'html':dat[2],'target':'_blank'});
				  NewMark(date,anc,dd);
				  
			  }else{
				
			  	NewMark(date,dat[2],dd);
			  }
			  
			  dd.inject(dt, 'after');
		  }
		}); 
		
	}
	
	var table = function(){ //テーブル表示
		var table = new Element('table',{'cellpadding':0,'cellspasing':0,'border':0}).inject(data);
		var tbody = new Element('tbody').inject(table);
		
		Logs.filter(function(item, index){
 	 	  if(index < MAX_NEWDATA){
			   var dat = item.split(',');
			   var tr =new Element('tr');
			   var th = new Element('th');
			   var td = new Element('td');
			   
			  var date = dat[1].substring(0,4)+"/"+dat[1].substring(4,6)+"/"+dat[1].substring(6,8);
			  th.set('text',date);
			  
			  if(dat[3].match(/[a-z]/)){
				  var anc =	new Element('a',{'href':dat[3],'html':dat[2],'target':'_blank'});
				  td.grab(anc);
			  }else{
				  td.set('html',dat[2]);
			  }
			  
			  th.inject(tr);
			  td.inject(th, 'after');
			  tr.inject(tbody);
		  }
		});
	}
	var NoData= function(){
		var p = new Element('p',{'class':"nodata" });
		var txt = p.set('text','情報はありません');
		p.injectInside(data);
	}
	
	
	
	if(Logs.length == 0) return NoData();
	
	switch(ViewMode){
		
		case 'List'://リスト表示モード

			if(Logs[0].contains('2') == true){
				list();
			}else{
				NoData();
			}
		break;
		
		case 'Table':
			if(Logs[0].contains('2') == true){
				table();
			}else{
				NoData();
			}
		break;
		default:
			NoData();
		
	}
}