jQuery(function(){
	jQuery.extend({
		/**
		 * 物件閲覧履歴を削除
		 */
		removeHistory:function(tgtElem){
			var requestURI = '/MemberJsonDatas/removeHistory/' + jQuery(tgtElem).attr('rel');
			jQuery.executeCommand(requestURI);
		},
		/**
		 * お気に入り物件を削除
		 */
		removeFavorite:function(tgtElem){
			var requestURI = '/MemberJsonDatas/removeFavorite/' + jQuery(tgtElem).attr('rel');
			jQuery.executeCommand(requestURI);
		},
		/**
		 * お気に入り物件に追加
		 */
		addFavorite:function(tgtElem){
			var requestURI = '/MemberJsonDatas/addFavorite/' + jQuery(tgtElem).attr('rel');
			jQuery.executeCommand(requestURI);
		},
		/**
		 * お気に入り物件を削除(お気に入り物件一覧ページ)
		 */
		unsetFavorite:function(){
			var items = jQuery.removeConfirm();
			if(items != false){
				var requestURI = '/MemberJsonDatas/removeFavorite/';
				requestURI += items.join(',');
				jQuery.executeCommand(requestURI);
			}
		},
		/**
		 * チェックした物件を問い合わせる(お気に入り物件一覧ページ)
		 */
		contactFavorite:function(){
			var target = jQuery('.checkboxTarget:checked');
			if(target.length < 1){
				alert('お問い合わせ物件が選択されていません');
				return false;
			}else{
				var items = Array();
				jQuery(target).each(function(){
					items.push(jQuery(this).val());
				});
				var referURI = '/contact_items/index/';
				referURI += items.join(',');
				location.href = referURI;
			}
		},
		/**
		 * 削除確認
		 */
		removeConfirm:function(){
			var target = jQuery('.checkboxTarget:checked');
			if(target.length < 1){
				alert('削除する項目が選択されていません');
			}else{
				if(window.confirm('チェックした項目は完全に削除されます\nよろしいですか？')){
					var items = Array();
					jQuery(target).each(function(){
						items.push(jQuery(this).val());
					});
					return items;
				}
			}
			return false;
		},
		/**
		 * Ajaxリクエスト送信
		 */
		executeCommand:function(requestURI){
			jQuery.ajax({
				'url':			requestURI,
				'cache':		false,
				'dataType':		'json',
				'async':		true,
				'beforeSend':	function(){},
				'success':		function(HTTP_RESPONSE){ jQuery.reportResult(HTTP_RESPONSE); },
				'error':		function(HTTP_RESPONSE){ alert('通信エラーが発生しました。'); }
			});
		},
		/**
		 * レスポンスレポート
		 */
		reportResult:function(JSON_DATAS){
			var JSON_DATAS = eval(JSON_DATAS);
			if(JSON_DATAS == false){
				alert('処理できませんでした。');
			}else{
				alert(JSON_DATAS);
				window.location.reload();
			}
		}
	});
	// ページロード完了時トリガ
	jQuery(document).ready(function(){
		jQuery('.removeHistoryTrigger').click(function(){
			jQuery.removeHistory(this);
		});
		jQuery('.removeFavoriteTrigger').click(function(){
			jQuery.removeFavorite(this);
		});
		jQuery('.addFavoriteTrigger').click(function(){
			jQuery.addFavorite(this);
		});
		jQuery('.removeFavoriteButton').click(function(){
			jQuery.removeFavoriteGroup();
		});
		jQuery('.unsetFavoriteTrigger').click(function(){
			jQuery.unsetFavorite();
		});
		jQuery('.contactFavoriteTrigger').click(function(){
			jQuery.contactFavorite();
		});
	});
});