var AdminData = AdminData || {};

AdminData.bindings = {
	col2_change: function(e) {
		var arrayList = ['is_false', 'is_true', 'is_null', 'is_not_null'],
		$col2 = $(e.target).closest('select'),
		value = $col2.val(),
		tableStructure = $('#advance_search_table').data('table_structure'),
		columnType = tableStructure[$col2.val()],
		col1ColumnType;

		$col3 = $col2.parents('tr').find('td input.col3');
		$col1 = $col2.parents('tr').find('td select.col1');
		col1ColumnType = tableStructure[$col1.val()];

		if (value.length === 0 || ($.inArray(value, arrayList) > - 1)) {
			 $col3.val('');

		} else {

			if (col1ColumnType === 'datetime' || col1ColumnType === 'date') {
				$col3.val(AdminData.jsUtil.dateToString(new Date())).addClass('datepicker');
				
        $('.datepicker').datepicker({
					dateFormat: 'dd-MM-yy',
					changeYear: true,
					changeMonth: true
				});

			} else {
				$('.datepicker').datepicker('destroy');
				$col3.removeClass('datepicker').focus(); // do not create focus for date pickers
			}
		}
	},

	pagination_click: function(e) {
		var href = $(e.target).closest('a').attr('href');

    $.ajax({ url: href, dataType: "text", success: function(responseText){
      $('#results').html(responseText);
    }});
    
		AdminData.jsUtil.colorizeRows();
	},

	col1_change: function(e) {
		var col1 = $(e.target).closest('select'),
		tableStructure = $('#advance_search_table').data('table_structure'),
		columnType = tableStructure[col1.val()],
		options = AdminData.mappings[columnType]['options'],
		col2 = col1.parents('tr').find('td select.col2');

		col2.html('');
		AdminData.jsUtil.buildOptionsFromArray(options, col2);
		col2.trigger('change');
	}
};

$('.pagination a').live('click', function(e) {
	AdminData.bindings.pagination_click(e);
	return false;
});

$('#advance_search_table a.add_row_link').live('click', function() {
	$('#advance_search_table').append(AdminData.advanceSearch.buildRow());
	return false;
});

$('#advance_search_table a.remove_row').live('click', function(e) {
	$(e.target).closest('tr').remove();
	return false;
});

$('#advance_search_table select.col1').live('change', function(e) {
	AdminData.bindings.col1_change(e);
});

$('#advance_search_table select.col2').live('change', function(e) {
	AdminData.bindings.col2_change(e);
});