var fx = [];

var CreateTehai = Class.create();

CreateTehai.prototype = { 
	
	initialize : function() {
		this.render();
	},
	
	
	hai : {
		1:'man_1', 2:'man_2', 3:'man_3', 4:'man_4', 5:'man_5', 7:'man_6', 8:'man_7', 9:'man_8', 10:'man_9',
		11:'pin_1',12:'pin_2',13:'pin_3',14:'pin_4',15:'pin_5',17:'pin_6',18:'pin_7',19:'pin_8',20:'pin_9',
		21:'sou_1',22:'sou_2',23:'sou_3',24:'sou_4',25:'sou_5',27:'sou_6',28:'sou_7',29:'sou_8',30:'sou_9',
		31:'kaze_ton',32:'kaze_nan',33:'kaze_sha',34:'kaze_pei',
		35:'sangen_haku',36:'sangen_hatu',37:'sangen_chun',
		6:'aka_man_5',16:'aka_pin_5',26:'aka_sou_5',38:'ura'
	},
	
	
	stage_array : ['','','','','','','','','','','','','','',],
	
	
	render : function() {	
		var html = [];
		var sep  = [9,9,9,7];
		var c    = 0;
		var s    = 0;
		var w    = 26;
		var h    = 40;
		var x    = 30;
		var y    = 25;
		
		for(var i in this.hai){
			html.push('<div style="position:absolute; left:'+(w*c+x)+'px; top:'+y+'px"><img src="/tools/resource/haiga/'+this.hai[i]+'.gif" name="'+i+'" /></div>');
			c++;
			if(c >= sep[s]){
				c  = 0;
				y += h;
				s++;
			}
			if(s == 3){
				x = 290;
				y = 25;
			}
		}
		
		$('hai_list').innerHTML = html.join('');
		
		
		var hai_list  = $('hai_list').getElementsByTagName('div');
		var hai_array = $A(hai_list); 
		
		var drop_list  = $('drop_list').getElementsByTagName('li');
		var drop_array = $A(drop_list); 
		
		Sortable.create('tehai_list', {
			constraint: false
		});
		
		var is_ie = (navigator.appName.toUpperCase().indexOf("EXPLORER") >= 0) ? true : false;
		var self  = this;
		
		hai_array.each(function(val){
			dragdrop = new Draggable(val, {
				revert:true,
				starteffect: function() {
					if(is_ie){
						$('drop_list').style.zIndex = '-1';
					}
				},
				endeffect: function() {
					if(is_ie){
						$('drop_list').style.zIndex = '0';
					}
				}
			});
			
			Event.observe(val, 'dblclick', function(){self.dblclickAction(val)});
		});
		
		
		drop_array.each(function(val){
			Droppables.add(val, {
				onDrop: function(el) {
					if(val.className.indexOf('dora') == -1 ){
						if(self.checkTehaiError(el)){
							$(val).innerHTML = el.innerHTML;
						}else{
							alert('同種の牌は4つまでしか使用できません。');
						}
					}else{
						$(val).innerHTML = el.innerHTML;
					}
				}
			});
		});
			
	},
	
	checkTehaiError: function(elm) {
		var hai_src = elm.getElementsByTagName('img')[0].src;
		hai_src = hai_src.replace('aka_','');

		var tehai_list  = $('tehai_list').getElementsByTagName('img');
		var tehai_list = $A(tehai_list);
		var count =0;
		
		tehai_list.each(function(val){
			var val_src = val.src.replace('aka_','');
			if(hai_src == val.src){
				count++;
			}
		});
		
		if(count >= 4){
			return false;
		}else{
			return true;
		}
		
	},
	
	
	checkTehai : function() {
		//this.sortTehai();
		var drop_list  = $('drop_list').getElementsByTagName('li');
		var drop_array = $A(drop_list);
		var err_flg    = false;
		
		for (i=0; i<drop_array.length; i++){
			if(drop_array[i].firstChild){
				var hai_src = drop_array[i].getElementsByTagName('img')[0].src.split('/');
				var hai_id  = hai_src[hai_src.length-1].replace(/.gif/, '');
				this.stage_array[i] = hai_id;
			}else{
				//err_flg = true;
				this.stage_array[i] = 'ura';
				//break;
			}
		};
		
		if(err_flg){
			alert('手配が完成していません');
		}else{
			var q = this.stage_array.join(',')
			$('preview').style.display = 'block';
			$('tehai_img').src = 'php/image.php?mode=preview&q='+q;
			$('download_url').innerHTML = '<a href="php/image.php?mode=download&q='+q+'"><img src="img/btn_download.gif" alt="ダウンロード" width="146" height="31" /></a>'
			
		}
		
	},
	
	
	sortTehai : function(){
		var img_list = $('tehai_list').getElementsByTagName('img');
		var temp = [];
		
		for (i=0; i<img_list.length; i++){
			temp.push(img_list[i].name);
		}
		
		temp.sort(function (a,b){return a - b});
		
		var tehai_list  = $('tehai_list').getElementsByTagName('li');
		
		for (i=0; i<tehai_list.length; i++){
			if(temp[i]){
				tehai_list[i].innerHTML = '<img src="/img/haiga/'+this.hai[temp[i]]+'.gif" name="'+temp[i]+'" />';
			}else{
				tehai_list[i].innerHTML = '';
			}
		}
		
	},
	
	
	resetTehai : function(){
		var tehai_list  = $('drop_list').getElementsByTagName('li');
		
		for (i=0; i<tehai_list.length; i++){
			tehai_list[i].innerHTML = '';
		}
	},
	
	
	dblclickAction : function(val) {
		var drop_list  = $('drop_list').getElementsByTagName('li');
		var self = this;
		
		for (i=0; i<drop_list.length; i++){
			if(drop_list[i].firstChild){
				continue;
			}else{
			
				if(self.checkTehaiError(val)){
					drop_list[i].innerHTML = val.innerHTML;
				}else{
					alert('同種の牌は4つまでしか使用できません。');
				}
				break;
				
			}
		}
	}

};
var create_tehai = new CreateTehai(); 
