jQuery(function() {
	var $ = jQuery;

	$('input[type="checkbox"][value="all"]').click(function() {
		$('input[type="checkbox"]').attr('checked', this.checked);
	});

	$('button.link').click(function(ev) {
		var button = $(this);
		var process = true;
		if (button.hasClass('confirm')) {
			process = window.confirm(
				eval('"' + button.attr('name') + '"')
			);
		}

		if (process) {
			var url =button.parent('a').attr('href');
			if (button.hasClass('new_window')) {
				window.open(url);
			}
			else {
				window.location.href = url;
			}
		}

		ev.preventDefault();
		ev.stopPropagation();
	});

	$('#change_site').change(function() {
		var val = $(this).val();
		var replace;
		if (val != 0) {
			replace = '/s/' + val + '/';
		}
		else {
			replace = '/w/';
		}

		location.href =
			location.href.
			replace(/\/s\/([^\/]*)\/|\/w\//, replace).
			replace(/\?.*/, '');
	});

	$('a.more').click(function(ev) {
		ev.preventDefault();
		ev.stopPropagation();

		var a = $(this);
		a.parents('table').find('tr').removeClass('hidden');
		a.parents('td').hide();
	});

	$('a.open_seccond').click(function(ev) {
		ev.preventDefault();
		ev.stopPropagation();

		var a = $(this);
		a.parents('table').find('tr.' + this.id).show();
	});

	(function() {
		var new_url = $('#new_url');
		var index = 0;
		$('#add_url a').click(function() {
			index++;
			var add = new_url.clone(true);
			add.attr('id', '');
			add.find('input').
				attr('name', 'data[Sites][new' + index + '][url]').
				attr('id', 'Sitesnew' + index + 'url').
				val('');
			add.insertBefore('#add_url');
		});
		$('.remove_url').click(function() {
			var url = $(this).parent().find('input').val();
			return window.confirm("本当に削除してもよろしいですか？\n" + url);
		});
	})();

	(function() {
		$('#sites.sort').bind('sortstop', function() {
			$($('#sites.sort').sortable('toArray')).each(function(i, v) {
				$('#priority' + v).val(i+1);
			});
		});

		$('#sites.sort').sortable({
			items: "li"
		});
	})();

	var tabs = $('.tabs a');
	tabs.click(function(ev) {
		ev.preventDefault();
		ev.stopPropagation();

		var clicked = this;
		tabs.each(function() {
			var id = this.id.substr(4);
			if (this === clicked) {
				$('#' + id).show();
				$(this).addClass('active');
			}
			else {
				$('#' + id).hide();
				$(this).removeClass('active');
			}
		});
	});

	$('.clicked_on_init').trigger('click');


	var slist_sort_params = {
		'priority': {
			'key': function(tr) {
				return tr.id;
			},
			'cmp': function(a, b) {
				return a - b;
			}
		},
		'access': {
			'key': function(tr) {
				return $('td', $(tr)).get(0).innerHTML + '.' + tr.id;
			},
			'cmp': function(a, b) {
				return b - a;
			}
		},
		'charactor': {
			'key': function(tr) {
				return $('td a', $(tr)).get(0).innerHTML;
			},
			'cmp': null
		}
	};

	$('.slist-sort').each(function() {
		var container = $(this);
		$('a', container).click(function() {
			var type = this.name;
			var get_key = slist_sort_params[type]['key'];
			var cmp = slist_sort_params[type]['cmp'];

			$('.slist-sort a').removeClass('active');
			$('.slist-sort a[name="' + this.name + '"]').addClass('active');

			var trs = {};
			var keys = [];
			$('.slist tbody tr').each(function() {
				var key = get_key(this);
				trs[key] = this;
				keys.push(key);
			})

			var tbody = $('.slist tbody').get(0);
			$.each(
				cmp ? keys.sort(cmp) : keys.sort(), function(index, key
			) {
				tbody.appendChild(trs[key]);
			});

			return false;
		});
	});
});

