/*
	HallDataClass
	version 20091006.1613
*/


var HallDataClass = Class.create();
HallDataClass.prototype = {
	file:"halldata.txt",
	dataString:null,
	header:null,
	data:null,
	tmplString:{
		pref:'<h4>#{prefName}</h4>',
		hall:'<p>&nbsp;<a href="#{url}" target="_blank">#{hall}</a><br />#{address}<br />#{phone}</p>',
		hallNoUrl:'<p>&nbsp;#{hall}<br />#{address}<br />#{phone}</p>'
	},
	tmpl:null,
	
	initialize:function(){
		this._event_winload = this._init.bindAsEventListener(this);
		Event.observe(window,"load",this._event_winload);
	},
	_init:function(){
		this._event_ajax_complete = this._exec.bindAsEventListener(this);
		new Ajax.Request(this.file,{
			method:"get",
			onComplete:this._event_ajax_complete
		});
	},
	_exec:function(e){
		this.dataString = e.responseText;
		this._createData();
		this._createTemplate();
		
		this._flushData("east","HallListEast");
		this._flushData("west","HallListWest");
		this._flushData("north","HallListNorth");
		
	},
	_createData:function(){
		var rows = this.dataString.split("\n");
		
		this.header = new Array();

		var result = new Array();
		for(i=0;i<rows.length;i++){
			if(i==0){
				a = (rows[i].replace(/"|\n|\r/g,"")).split("\t");
				for(n=0;n<a.length;n++){
					this.header[a[n]] = n;
				}
			}else{
				result.push( rows[i].replace(/"/g,"").split("\t") );
			}
		}
		this.data = result;
		delete result;
	},
	_createTemplate:function(){
		var tmplPref = new Template(this.tmplString.pref);
		var tmplHall = new Template(this.tmplString.hall);
		var tmplHallNoUrl = new Template(this.tmplString.hallNoUrl);
		this.tmpl = {
			pref:tmplPref,
			hall:tmplHall,
			hallNoUrl:tmplHallNoUrl
		}
	},
	_flushData:function(area,id){
		var result = new String("");
		var tempPref = new String("");
		
		for(i=0;i<this.data.length;i++){
			if(this.data[i][this.header["area"]]!=area) continue;
			if(this.data[i][this.header["pref"]]!=tempPref){
				tempPref = this.data[i][this.header["pref"]];
				result += this.tmpl.pref.evaluate({
					prefName:tempPref
				});
			}
			if(this.data[i][this.header["url"]].indexOf("http")>=0){
				tmpl = this.tmpl.hall;
			}else{
				tmpl = this.tmpl.hallNoUrl;
			}
			result += tmpl.evaluate({
				url:this.data[i][this.header["url"]],
				hall:this.data[i][this.header["hall"]],
				address:this.data[i][this.header["address"]],
				phone:this.data[i][this.header["phone"]]
			});
		}
		$(id).innerHTML = result;
	}
}

HallData = new HallDataClass();

