(function(){
var Category_form = function() {}
var category_cue = [1,2,3];

Category_form.prototype = {

	category_cue: [1,2,3],

	add_form: function(root_category_id, category_id) {
		if(category_cue.length < 1) {
			alert('設定できるカテゴリは最大3つまでです。');
			return;
		}
		var sel_num = category_cue.shift();
		$('<li id="cate-sel-'+sel_num+'" />')
			.append($('<select id="root-sel-'+sel_num+'" />')
				)
			.append('&nbsp;&gt;&nbsp;')
			.append($('<select id="sub-sel-'+sel_num+'" class="sub-sel" />')
						.attr('name','category_id[]')
						.append('<option value="-">指定なし</option>')
				)
			.append('&nbsp;')
			.append($('<input type="button" id="delete-cate-'+sel_num+'" />')
						.val("削除")
						.click(function(){
							category.delete_form(sel_num)
						})
				)
			.appendTo($('#category-selecter')
			);
		$('#root-sel-'+sel_num)
			.load(
				base_path+'/category/get_root_selecter',
				{ root_category_id: root_category_id }
			)
			.change(function(){
				category.load_sub_selecter(sel_num, 0, 0);
			});
		if(root_category_id && category_id) {
			category.load_sub_selecter(sel_num, root_category_id, category_id);
		}
		return false;
	},

	delete_form: function(sel_num) {
		$('#cate-sel-'+sel_num).remove();
		category_cue.push(sel_num);
		if(category_cue.length > 2) {
			add_form(0, 0);
		}
		return false;
	},

	load_sub_selecter: function(sel_num, root_category_id, category_id) {
		if(!root_category_id) {
			root_category_id = $('#root-sel-'+sel_num).val();
		}
		$('#sub-sel-'+sel_num)
			.load(
				base_path+'/category/get_sub_selecter',
				{ root_category_id: root_category_id,
				  category_id: category_id }
			);
	},
	
	load_exist_categories: function() {
		while(category2item.length > 0) {
			var category_ids = category2item.shift();
			var temp_array = category_ids.split(',');
			var root_category_id = temp_array.shift();
			var category_id = temp_array.shift();
			category.add_form(root_category_id, category_id);
		}
	},

	check_category_form: function() {
		var check_category = false;
		$.each($('.sub-sel'),function(i,item){
			if($(item).val()!='-') {
				check_category = true;
			}
		});
		return check_category;
	},

	check_item_form: function() {
		var mes = '';
		var check = false;
		var check_name = false;
		var check_name_kana = false;
		
		var check_category = category.check_category_form();
		if(!check_category) {
			mes += "カテゴリを最低1つ設定してください\n";
		}
		if($('#name').val()) {
			check_name = true;
		} else {
			mes += "アーティスト名を入力してください\n";
		}
		if($('#name-kana').val()) {
			check_name_kana = true;
		} else {
			mes += "アーティスト名のよみを入力してください\n";
		}
		check = check_category && check_name && check_name_kana;
		if(!check) {
			alert("error!\n"+mes);
		}
		return check;
	},

	check_news_form: function() {
		var mes = '';
		var check = false;
		var check_title = false;
		var check_url = false;
		var check_description = false;
		
		var check_category = category.check_category_form();
		if(!check_category) {
			mes += "カテゴリを最低1つ設定してください\n";
		}
		if($('#title').val()) {
			check_title = true;
		} else {
			mes += "タイトルを入力してください\n";
		}
		if($('#url').val()) {
			check_url = true;
		} else {
			mes += "URLを入力してください\n";
		}
		if($('#description').val()) {
			check_description = true;
		} else {
			mes += "概要を入力してください\n";
		}

		check = check_category && check_title && check_url && check_description;
		if(!check) {
			alert("error!\n"+mes);
		}
		return check;
	}

}
window.category = new Category_form();
})();

// 初期化
$(function(){
	// アーティスト
	if($('form#item').attr('id')) {
		if(category2item.length > 0) {
			category.load_exist_categories();
		} else {
			category.add_form(0, 0);
		}

		$('form#item')
			.submit(function(){
				return category.check_item_form();
			});
	}
	
	// ニュース
	if($('form#news').attr('id')) {
		if(category2item.length > 0) {
			category.load_exist_categories();
		} else {
			category.add_form(0, 0);
		}

		$('form#news')
			.submit(function(){
				return category.check_news_form();
			});
	}
	
	// ユーザーホームページ
	if($('form#users_homepage').attr('id')) {
		if(category2item.length > 0) {
			category.load_exist_categories();
		} else {
			category.add_form(0, 0);
		}
	}
});