$(function() {
	$('button.search').click(function(){VIEW.submit.post('search', 'search');});
	$('button.test').click(function(){VIEW.submit.post('form', 'test');});
	$('button.register').click(function(){if (window.confirm('登録します。よろしいですか？')) {VIEW.submit.post('form', 'register');}});
	$('button.delptn').click(function(){if (window.confirm('パターン削除します。よろしいですか？')) {VIEW.submit.post('form', 'delete');}});

	$('table.dnd').tableDnD();
	$('a.detail').click(function(){$('#form').toggle(100); $('.layrester').toggle(100);});

	$('button.remove').click(function() {$(this).closest('tr').remove();});

	$('a.addcol').click(function(){
		$(this).closest('table').find('tr').each(function(idx){
			if ($(this).parent().get(0).tagName.toLowerCase() === 'thead') {
				$(this).append($('#row1 th').clone(true));
			} else {
				if (idx === 1) {
					var td = $('<td colspan="2" class="center"></td>');
					$(this).find('td:last > *').each(function(){
						td.append($(this).clone(true));
					});
					$(this).append(td);
					td.find(':input').val('');
				} else {
					$(this).append($('#row2 > *').clone(true));
				}
			}
		});
	});

	$('a.addrow').click(function() {
		var len = $('#condTable tr:first th').size();
		var tr = $('<tr></tr>');
		tr.append($('#row1 td:first').clone(true));
		for (var i = 1; i < len; i += 1) {
			tr.append($('#row2 > *').clone(true));
		}
		tr.appendTo($('#condTable'));
		$("#condTable").tableDnD();
	});

	$('button.delcol').click(function() {
		var span = function(item) {
			if (item.attr('colspan')) {
				return parseInt(item.attr('colspan'));
			}
			return 1;
		};

		var th = $(this).closest('th');
		var pos = $(this).closest('tr').children().index(th);
		var begin = 0, end = 0;
		$(this).closest('tr').find('th:lt(' + pos + ')').each(function(){
			begin = begin + span($(this));
		});
		end = begin + span(th);

		var target = [];
		target.push(th);

		$(this).closest('table').find('tr').each(function() {
			var i = 0;
			$(this).find('td').each(function() {
				if (begin <= i && i < end) {
					target.push($(this));
				} else if (end <= i) {
					return false;
				}
				i = i + span($(this));
			});
		});

		for (var i = 0, len = target.length; i < len; i += 1) {
			target[i].remove();
		}
	});
});
