$(function() {
	var queue = [];
	$('table.auto tr').each(function(idx, tr){
		var colspan = 1;
		
		//行結合された列で終わっている場合の調整
		for(var i=queue.length-1; i>=0; i--){
			if(queue[i]>0) queue[i]--;
			else break;
		}
		var rowspan = $.makeArray(queue);
		$(tr).children().each(function(idx, elem){
			var colNo = idx+colspan;									   
			
			//行が結合されている場合は、カウントを変更
			for(var i=0; i<queue.length; i++){
				if(rowspan[i]>0){
					if(i==colNo) queue[i]--;
					colNo++;
				}
				if(i>=colNo) break;
			}
			queue[colNo] = queue[colNo] || 0;
			
			//行が結合されている場合は、行数を保存
			var rs = $(elem).attr("rowspan");
			var cs = $(elem).attr("colspan");
			if(rs && rs>1){
				var cnt = (cs&&cs>1)?(cs-1):0;
				do{
					queue[colNo+cnt] = rs - 1;
					cnt--;
				}while(cnt>=0);
			}
			
			//列が結合されている場合は、列番号を変更
			if(cs&&cs>1){
				colNo += '_'+(colNo+(cs-1));
				colspan += cs - 1;
			}
			
			//列にクラスを設定
			$(elem).addClass('col'+colNo);
		})
	});
	
	
	$("table.auto").each(function () {
		$('tr',this).each(function (i) {
				i = i+1;
				$(this).addClass("row"+i);
		});
	});

});
