jQuery(function(){
	jQuery.extend({
		/**
		 * インタフェースパーツ設定
		 *
		 * @param	void
		 * @return	void
		 */
		set_interface_parts: function(){
			/* ##### クリッカブルテーブル設定 ##### */
			jQuery('.clickable').hover(function(){
				jQuery(this).addClass('col');
			},
			function(){
				jQuery(this).removeClass('col');
			});
			// クリック時遷移先
			jQuery('.clickable').click(function(){
				var targetURI = jQuery(this).find('a:first').attr('href');
				location.href = targetURI;
				return false;
			});

			/* ##### パーツ設定 ##### */
			// マイリストボタン
			jQuery('.add_my_list_trigger').click(function(e){
				e.stopPropagation();
				//var tmp = jQuery(this).attr('rel').split('/');
				var tmp = jQuery(this).attr('rel');
				// リクエスト先URL
				var targetURI = '/json_datas/add_my_list';
				//targetURI += '/' + tmp[0] + '/' + tmp[1];
				targetURI += '/' + tmp;
				// HTTPリクエスト
				var response = jQuery.execute_command(targetURI);
				if(eval(response.responseText) == true){
					alert('マイリストに追加しました');
				}
			});
			// 問い合わせボタン
			jQuery('.add_contact_trigger').click(function(e){
				e.stopPropagation();
				var tmp = jQuery(this).attr('rel');
				// 遷移先URL
				var targetURI = '/requests/index';
				targetURI += '/' + tmp;
				// 遷移
				location.href = targetURI;
			});
			// チェックボックス(イベント無効化)
			jQuery('.clickable').find('input').click(function(e){
				e.stopPropagation();
			});
			// チェックボックス動作
			jQuery('.checkbox_trigger').click(function(){
				if(jQuery(this).attr('checked') == true){
					jQuery(this).parents('.checkbox_group').find('.checkbox_target').attr('checked', true);
					jQuery(this).parents('.checkbox_group').find('.checkbox_trigger').attr('checked', true);
				}else{
					jQuery(this).parents('.checkbox_group').find('.checkbox_target').attr('checked', false);
					jQuery(this).parents('.checkbox_group').find('.checkbox_trigger').attr('checked', false);
				}
			});
			// お気に入り検索条件に追加
			jQuery('.add_my_condition_trigger').click(function(){
				var tmp = jQuery(this).attr('rel');
				// リクエスト先URL
				var targetURI = '/json_datas/add_my_condition';
				//targetURI += '/' + tmp[0] + '/' + encodeURI(tmp[1]);
				targetURI += '/' + encodeURI(tmp);

				// HTTPリクエスト
				var response = jQuery.execute_command(targetURI);
				if(eval(response.responseText) == true){
					alert('お気に入り検索条件に追加しました');
				}
			});
			// まとめてマイリストに追加
			jQuery('.add_my_list_group_trigger').click(function(){
				var target = jQuery(this).parents('.checkbox_group').find('.checkbox_target:checked');
				if(target.length < 1){
					alert('項目が選択されていません');
				}else{
					var items = [];
					jQuery(target).each(function(){
						items.push(jQuery(this).val());
					});
					items = items.join(',');
					// リクエスト先URL
					var targetURI = '/json_datas/add_my_list';
					targetURI += '/' + encodeURI(items);
					// HTTPリクエスト
					var response = jQuery.execute_command(targetURI);
					if(eval(response.responseText) == true){
						alert('マイリストに追加しました');
					}
				}
			});
			// まとめて問い合わせ
			jQuery('.add_contact_group_trigger').click(function(){
				var target = jQuery(this).parents('.checkbox_group').find('.checkbox_target:checked');
				if(target.length < 1){
					alert('項目が選択されていません');
				}else{
					var items = [];
					jQuery(target).each(function(){
						items.push(jQuery(this).val());
					});
					items = items.join(',');
					// 遷移先URL
					var targetURI = '/requests/index';
					targetURI += '/' + encodeURI(items);
					// 遷移
					location.href = targetURI;
				}
			});
			// ページネートリミット
			jQuery('.change_limit_trigger').change(function(){
				if(jQuery(this).val() != ''){
					location.href = jQuery(this).attr('rel') + '/limit:' + jQuery(this).val();
				}
			});
		},
		/**
		 * 削除系インタフェースパーツ設定
		 *
		 * @param	void
		 * @return	void
		 */
		set_remove_parts: function(){
			// マイリスト削除
			jQuery('.remove_favorite_group_trigger').click(function(){
				var target = jQuery(this).parents('.checkbox_group').find('.checkbox_target:checked');
				if(target.length < 1){
					alert('項目が選択されていません');
				}else{
					if(window.confirm('選択項目をマイリストから削除します。\nよろしいですか？')){
						var items = [];
						jQuery(target).each(function(){
							items.push(jQuery(this).val());
						});
						items = items.join(',');
						// リクエスト先URL
						var targetURI = '/json_datas/remove_my_list';
						targetURI += '/' + jQuery(this).attr('rel') + '/' + encodeURI(items);
						// HTTPリクエスト
						var response = jQuery.execute_command(targetURI);
						if(eval(response.responseText) == true){
							alert('選択項目をマイリストから削除しました。');
							jQuery(target).attr('checked', false);
							jQuery(this).parents('.checkbox_group').find('.checkbox_trigger:checked').attr('checked', false);
							window.location.reload();
						}
					}
				}
			});
			// 閲覧履歴削除
			jQuery('.remove_hiostory_group_trigger').click(function(){
				var target = jQuery(this).parents('.checkbox_group').find('.checkbox_target:checked');
				if(target.length < 1){
					alert('項目が選択されていません');
				}else{
					if(window.confirm('選択項目を物件閲覧履歴から削除します。\nよろしいですか？')){
						var items = [];
						jQuery(target).each(function(){
							items.push(jQuery(this).val());
						});
						items = items.join(',');
						// リクエスト先URL
						var targetURI = '/json_datas/remove_history';
						targetURI += '/' + jQuery(this).attr('rel') + '/' + encodeURI(items);
						// HTTPリクエスト
						var response = jQuery.execute_command(targetURI);
						if(eval(response.responseText) == true){
							alert('選択項目を物件閲覧履歴から削除しました。');
							jQuery(target).attr('checked', false);
							jQuery(this).parents('.checkbox_group').find('.checkbox_trigger:checked').attr('checked', false);
							window.location.reload();
						}
					}
				}
			});
			// お気に入り検索条件削除
			jQuery('.remove_tag_group_trigger').click(function(){
				var target = jQuery(this).parents('.checkbox_group').find('.checkbox_target:checked');
				if(target.length < 1){
					alert('項目が選択されていません');
				}else{
					if(window.confirm('選択項目をお気に入り検索条件から削除します。\nよろしいですか？')){
						var items = [];
						jQuery(target).each(function(){
							items.push(jQuery(this).val());
						});
						items = items.join(',');
						// リクエスト先URL
						var targetURI = '/json_datas/remove_tag';
						targetURI += '/' + jQuery(this).attr('rel') + '/' + encodeURI(items);
						// HTTPリクエスト
						var response = jQuery.execute_command(targetURI);
						if(eval(response.responseText) == true){
							alert('選択項目をお気に入り検索条件から削除しました。');
							jQuery(target).attr('checked', false);
							jQuery(this).parents('.checkbox_group').find('.checkbox_trigger:checked').attr('checked', false);
							window.location.reload();
						}
					}
				}
			});
		},
		/**
		 * Ajaxリクエスト送信
		 *
		 * @param	String requestURI リクエスト先URI
		 * @return	Object レスポンステキスト
		 */
		execute_command: function(requestURI){
			return jQuery.ajax({
				'url':			requestURI,
				'cache':		false,
				'dataType':		'json',
				'async':		false,
				'error':		function(){ return false; }
			});
		}
	});
	// ページロード完了時トリガ
	jQuery(document).ready(function(){
		// インタフェースパーツ設定
		jQuery.set_interface_parts();
		jQuery.set_remove_parts();
	});
});

