

//var todayDate ='20081005';

var RaceSelectForm = Class.create({
	
	initialize:function(_todayDate){
		
		this.date;
		this.week;
		this.jocnt;
		this.HnameRa;
		this.HRaceHash;
		this.today = _todayDate;
		this.stDispDate;
		this.stDispRdetail = $H();
		this.arBtJobt = $A();
		this.Hkyori = $H();
		this.currentKyori;
		this.preFilename;
		this.basyoname;
		
		this.Tdata = new tdata(this);
		this.currentKykey;
		this.currentJockey;
		this.PayBack = new payback();
		this.currentPbkey;
		this.umaSk = new umask();
		this.currentRacekey;
	},
	
	getAjaxRaceToday:function(){
		this.preFilename = 'http://wdb.jrdb.com/json/' + this.today.substring(0,4) + '/' + this.today + '/';
		new Ajax.Request( this.preFilename + 'ka' + this.today + '.txt', {
			method: 'get',
			onComplete: function(httpObj){
				this.handlerGetTodayRace(httpObj);
			}.bind(this),
			
			onFailure:function(httpObj){
			alert( "エラーで読み込めませんでした。もしくは、データがありません。");
			}
		});
	},
	
	getAjaxRaceParts:function(){
		this.HnameRa.each(function(h){
			new Ajax.Request(this.preFilename + h.value + '.txt',{
				method: 'get',
				onComplete: function(httpobj){
					var tobj = $A((eval('(' + httpobj.responseText + ')')).body);
					$('jocd'+h.key).observe('click',this.makeRaceDetai(tobj));
					
				}.bind(this),
				
				onFailure:function(httpObj){
				alert( "エラーで読み込めませんでした。もしくは、データがありません。");
				}
			}
			);
		}.bind(this));
		
	},
	
	makeRaceDetai:function(rdata){
		var ar = $A();
		for(var i = 0;i < rdata.length;i++){
			var h = rdata[i];
			ar.push(
				'<p class = "rdetail" id="' + h.racekey + '">'
				+ (h.racenum.startsWith('0') ? h.racenum.substring(1,2) : h.racenum ) + 'R ' + (h.gradecd ? h.racename : '') + '<br/>'
				+ U.getShibada(h.shibadacd) +' ' +  h.kyori +'m' + U.getUtisoto(h.uchicd) + '<br/>' //+ ' ' +  h.tosu + '頭<br/>'
				+ h.syubetsu + ' ' +  h.joken + '</p>'   
			);
			this.stDispRdetail.set(h.racekey, (h.racenum.startsWith('0') ? h.racenum.substring(1,2) : h.racenum ) + 'R ' + (h.gradecd ? '  ' + h.racename+'   ' : '')+ U.getShibada(h.shibadacd) +' ' +  h.kyori +'m' + U.getUtisoto(h.uchicd)+ h.syubetsu + ' ' +  h.joken + ' (' + h.juryo + ')');
			this.Hkyori.set(h.racekey,h.kyori);
		}
		return function(){
			$('recedetail').update(ar.join('\r\n'));
			this.setHandlerToRdetails();
		}.bind(this);
	},
	
	setHandlerToRdetails:function(){
		//var tt = $$('p.rdetail');
		$$('p.rdetail').each(function(e){
			e.observe('click',function(ev){
				var evelm = Event.element(ev);
				this.currentKykey = this.preFilename + 'ky_iimura' + evelm.id + '.txt';
				this.currentJockey = this.preFilename + 'v_today_jockey_' + evelm.id + '.txt';
				this.currentPbkey = this.preFilename + 'pb' + evelm.id + '.txt';
				$('rtitle').update(this.stDispRdetail.get(evelm.id));
				this.currentKyori = this.Hkyori.get(evelm.id);
				//$('cmdumakako').innerHTML ='データを取得';
				this.currentRacekey = evelm.id;
				$('cmdumakako').highlight();
			}.bindAsEventListener(this));
		}.bind(this));
		
	},
	
	handlerGetTodayRace:function(httpobj){
		var temp = $H(eval("(" + httpobj.responseText + ")"));
		this.jocnt = temp.get('jocnt');
		this.week = temp.get('week');
		this.date = temp.get('date');
		var hatempR = $H();
		var hatempN = $H();
		var tempr = $H(temp.get('body'));
		temp.get('body').each(function(v){
			hatempR.set(v.jocd,$H(v));
			hatempN.set(v.jocd,v.bangumi);
		});
		this.HnameRa = hatempN;
		this.HRaceHash = hatempR;
		
		
		this.stDispDate = '<h2>' + this.today.substring(0,4) + '年' + this.today.substring(4,6) + '月' + this.today.substring(6,8) + '日（' + this.week + '）<span id="basyo"></span><span id="baba"></span></h2>';
		$('dispdate').insert( this.stDispDate);
		
		$('menus').insert('<p id = "cmdrace" class="pcmd">レース選択</p>');
		$('cmdrace').selected = true;
		$('cmdrace').observe('click',function(ev){
			var evelem = Event.element(ev);
			if(evelem.selected){
				evelem.selected = false;
				evelem.className='pcmdnon';
				//new Effect.Opacity('receselect',{to : 0},{duration : 2, afterFinish : function(){$('receselect').hide();alert('hhh');}});
				$('receselect').fade({duration: 0.5});
				$('recedetail').fade({duration: 0.5});
			}else{
				evelem.selected = true;
				evelem.className='pcmd';
				//new Effect.Opacity('receselect',{from : 0,to : 1},{duration : 2});
				$('receselect').show({duration: 1.0});
				$('recedetail').show({duration: 1.0});
			}
			});
			
		$('menus').insert('<p id = "cmdumakako" class="pcmdnon">データを取得</p>');
		//$('cmdumakako').selected = false;
		$('cmdumakako').observe('click',function(ev){
			/*var evelem = Event.element(ev);
			if(evelem.selected){
				evelem.selected = false;
				evelem.className='pcmdnon';
			}else{
				evelem.selected = true;
				evelem.className='pcmd';*/
				
				$('cmdrace').selected = false;
				$('cmdrace').className='pcmdnon';
				$('receselect').fade({duration: 0.5});
				$('recedetail').fade({duration: 0.5});
				
				$('umasktable').update('');$('umaskinfo').update('');$('umaskthead').update('');$('umasktcome').update('');
				this.Tdata.getAjaxDataJockey(this.currentJockey);
				this.Tdata.getAjaxData(this.currentKykey);
				this.clearPayBack();
				this.PayBack.getAjaxData(this.currentPbkey);
			//}
		}.bindAsEventListener(this));
		
		$('menus').insert('<p id = "cmdviewall" class="pcmdnon"><a href="http://wdb.jrdb.com/awahana/sample/viewall' + this.today + '.html" target="_blank">全レース一括</a></p>');	
		$('menus').insert('<p id = "cmdviewall" class="pcmdnon"><a href="http://wdb.jrdb.com/awahana/helpjrdv/pages/jrdvcgetdata.xhtml" target="_blank">ヘルプ</a></p>');
		
		this.makeJobt();
		this.getAjaxRaceParts().bind(this);
	},
	
	clearPayBack:function(){
		$('pbtan').update('');
		$('pbren').update('');
		$('pbwide').update('');
		$('pb3').update('');
	},
	
	makeJobt:function(){
		this.HRaceHash.each(function(h){
		var elm = $(document.createElement('button'));
		elm.rdata = h;
		elm.innerHTML = U.getJo(h.value.get('jocd'));
		elm.className ='btjo';
		elm.id = 'jocd' + h.value.get('jocd');
		$('receselect').insert(elm);
			
		elm.observe('click',function(ev){
			var evelem = Event.element(ev);
			//evelem.highlight();
			this.basyoname = evelem.innerHTML;
			$('basyo').update(evelem.innerHTML + '   ' + evelem.rdata[1].get('kai')+'回'+evelem.rdata[1].get('nichi')+'日目');
			new Effect.Highlight(evelem, {startcolor : '#cccc99' } ,{ duration: 0.5});
			//new Effect.Highlight(evelem, {startcolor : '#cccc99', endcolor : '#99CCCC' ,restorecolor : '#99CCCC'} ,{ duration: 1});
			}.bindAsEventListener(this));
		}.bind(this));
	},
	
	
	handlerUmadeiseki:function(udat){
		var evedata = {};
		evedata.fname = this.preFilename + 'us/us' + udat.get('kettonum') + '.txt';
		evedata.umaban = udat.get('umaban');
		evedata.wakuban = udat.get('wakuban');
		evedata.joname = this.basyoname;
		evedata.kyori = this.currentKyori;
		
		this.umaSk.makeData(evedata);
	},
	
	teststart:function(){
		this.getAjaxRaceToday();
		
	},
	
	
	dummy:function(){}
});

window.onload = function(){
	var testobj = new RaceSelectForm(todayDate);
	testobj.teststart();
			}

			
