$(function(){
	if (window.hpr && window.hpr.keeplist) {
		if (hpr.keeplist.ON_LOAD_ENABLED) {
			hpr.keeplist.showStores();
		}
	} else {
		if (jQuery.loadJson.onloadCookieEnabled) {
			jQuery.loadJson.onloadCookie();
		}
	}
});

jQuery.loadJson = {

	starttime : 0,
	onloadCookieEnabled : true,
	cookieName      : "HPR_K_STORE_IDS",
	keepListJson    : "/CSP/common/ajaxJson",
	keepListTarget  : "#keepShop div.shopList",
	keepListLength  : "10",

	addCookie : function(id){
		var userCookie = $.cookie(jQuery.loadJson.cookieName);
		var keepList = userCookie ? userCookie.split(",") : new Array();
		var i = keepList.length;
		while(i--){
			if(keepList[i] == id){
				keepList.splice(i, 1);
			}
		}
		keepList.unshift(id);

		$.cookie(jQuery.loadJson.cookieName, keepList, {expires:10*365, path:'/'});
		jQuery.loadJson.loadKeepList(keepList);
	},

	addCookieForGourmet : function(id){
		var userCookie = $.cookie(jQuery.loadJson.cookieName);
		var keepList = userCookie ? userCookie.split(",") : new Array();
		var i = keepList.length;
		while(i--){
			if(keepList[i] == id){
				keepList.splice(i, 1);
			}
		}
		keepList.unshift(id);
		$.cookie(jQuery.loadJson.cookieName, keepList, {expires:10*365, path:'/'});
		$("#linkID" + id).css("visibility","hidden");
	},

	removeCookie : function(id){
		var userCookie = $.cookie(jQuery.loadJson.cookieName);
		var keepList = userCookie.split(",");
		var i = keepList.length;
		while(i--){
			if(keepList[i] == id){
				keepList.splice(i, 1);
			}
		}
		$.cookie(jQuery.loadJson.cookieName, keepList.join(","), {expires:10*365, path:'/'});
		jQuery.loadJson.loadKeepList(keepList);
	},

	resetCookie : function(){
		$.cookie(jQuery.loadJson.cookieName, "", {expires:10*365, path:'/'});
		var userCookie = $.cookie(jQuery.loadJson.cookieName);
		var keepList = userCookie ? userCookie.split(",") : new Array();
		jQuery.loadJson.loadKeepList(keepList);
	},

	countCookie : function(){
		var userCookie = $.cookie(jQuery.loadJson.cookieName);
		var keepList = userCookie ? userCookie.split(",") : new Array();
		var l = keepList.length;
		return l;
	},

	onloadCookie : function(){
		var cookieData = $.cookie(jQuery.loadJson.cookieName);
		if(cookieData != null && cookieData != ""){
			var userCookie = cookieData;
			var keepList = userCookie.split(",");
			jQuery.loadJson.loadKeepList(keepList);
		}
	},

	onloadCookieForGourmet : function(){
		var cookieData = $.cookie(jQuery.loadJson.cookieName);
		if(cookieData != null && cookieData != ""){
			var userCookie = cookieData;
			var keepList = userCookie.split(",");
			for (var k=0; k<keepList.length; k++) {
				$("#linkID" + keepList[k]).css("visibility","hidden");
			}
		}
	},

	loadKeepList : function(elm) {//keep list
		var conf = {
			cookieLength : elm.length,
			maxLength : (elm.length > 10) ? 10 : elm.length
		};

		$.ajax({
			url : jQuery.loadJson.keepListJson,
			dataType : "json",
			/*IE Chache対応*/
			cache: false,
			success : function(json) {

				$(jQuery.loadJson.keepListTarget).children().remove();

				var temp = jQuery.loadJson.getMatchListValue(elm, json.items);
				for(var k=0; k<conf.cookieLength; k++) {
					var l = temp[k];
					  if ($("#linkID" + l.storeId).length) {
					  	$("#linkID" + l.storeId).css("visibility","hidden");
					  } else {
					  	// お店系
					  	$("#linkID" + l.storeId + "_01").css("visibility","hidden");
					  	$("#linkID" + l.storeId + "_02").css("visibility","hidden");
					  }
				}

				if($(jQuery.loadJson.keepListTarget).length != 0){
					var html = [];
					if(conf.maxLength == 0){
						html.push('<div class="noItem"><p class="notes"><img src="/SYS/cmn/images/common/btn/btn_ico_add_keeplist.gif" width="100" height="17" alt="検討リストへ保存" />ボタンをおして気に入ったお店を検討リストへ保存しておくことが出来ます。</p></div>');
					}
					for(var i = 0; i<conf.maxLength; i++ ) {
						var j = temp[i];
						html.push('<div class="article">');
						if(j.storeStateKbn == "2"){
							html.push('<h4 class="shopname">'+j.storeName+'</h4><p>掲載情報がありません</p>');
						}else{
							/*有料店・無料店で分ける*/
							var tkc_f = j.storeStateKbn=="1"?"1":"0";
							html.push('<h4 class="shopname"><a href="'+ j.storeUrl +'" onclick="SCClick_toriKeepClick(\''+j.storeId+'\',\''+ tkc_f +'\');">'+j.storeName+'</a></h4>');
						}
						html.push('<div class="itemsA">');
						html.push('<div class="pic">');

						/*有料店以外(掲載落ち,Mapple,Dokoiku)*/
						if(j.storeStateKbn != "1"){
							html.push('<p class="photoSS"></p>');
						}else{
							if(j.topPhotoImgId != ""){
								html.push('<p class="photoSS"><a href="'+ j.storeUrl +'" onclick="SCClick_toriKeepClick(\''+j.storeId+'\',\'1\');"><img src="'+ j.topPhotoImgId +'" alt="" width="58" height="58"></a></p>');
							}else{
								html.push('<p class="photoSS"></p>');
							}
						}
						html.push('</div>'); // <-- /pic -->
						html.push('<div class="txt">');
						html.push('<p class="place">' + j.middleAreaName + '</p>');
						html.push('<p class="shopcatch">' + j.genreCatch + '</p>');
						html.push('</div>'); // <-- /txt -->
						html.push('</div>'); // <-- /itemsA -->
						html.push('<p class="close"><a href="?deleteKeepList='+ j.storeId +'" class="deleteBox"><img src="/SYS/cmn/images/common/btn/btn_2nd_delete_02.gif" alt="削除" width="35" height="13"></a></p>');
						html.push('</div>'); // <-- /article -->
					}
					if(conf.maxLength != 0){
						html.push('<ul class="links"><li class="lastChild external"><a href="javascript:void(0)" onClick="javascript:window.open(\'/CSP/dcs010\', \'keep\', \'width=800, menubar=yes, toolbar=yes, location=yes, status=yes, resizable=yes, scrollbars=yes\'); return false;">お店を比較する</a></li></ul>');
					}
					$(jQuery.loadJson.keepListTarget).append(html.join(""));
					tooltips_init('a.deleteBox');
				}
			},
			error : function(){
				$(jQuery.loadJson.keepListTarget).children().remove();
				var html = '<p>検討リストの追加に失敗しました。</p>'
				$(jQuery.loadJson.keepListTarget).append(html);
			}
		});
	},

	/*temporary*/

	getMatchListValue : function(arr1, arr2){
		var temp = new Array();
		var arr1Length = arr1.length;
		var arr2Length = arr2.length;
		for(var i=0; i<arr1Length; i++) {
			for(var j=0; j<arr2Length; j++) {
				if(arr1[i] == arr2[j].storeId) temp.push(arr2[j]);
			}
		}
		return temp;
	}

	/*temporary*/
}

/** [PCフロント]最近見たお店の一括削除 */
function deleteRirekiListAll() {
    $.cookie('HPR_H_STORE_IDS', null , {path:'/'} );
	$("#newlyShop").remove();
}

/** [PCフロント用] グルメ手帳（お気に入りお店）追加 */
var CAPTION = 'お気に入りのお店追加';
var addProcessing = false;
function addFavoriteStoreForFront(id, fwNo, SP, CN, RN, OM, tokenKey, tokenValue) {

	if (addProcessing) return;
	addProcessing = true;

    var selector = $('#' + id);
    selector.blur();
    var oldHtml = selector.html();
	var paramStr = 'SP=' + SP;

	if (fwNo == '07') {
		paramStr='SP=' + SP + '&CN=' + CN;
	}else if (fwNo == '12') {
		paramStr='SP=' + SP + '&RN=' + RN + '&OM=' + OM;
	}

	showTooltip(id, '/SYS/cmn/images/common/dialog/balloon_processing.gif', 141, 49);

	setTimeout(function() {
		$.ajax({
			type: 'GET',
			url: '/CSP/dfs020/ajaxAddFavoriteStore',
			data: 'SP=' + SP + '&' + tokenKey + '=' + tokenValue ,
			success: function(result) {
				if (result == 'success') {
					removeTooltip(0);
					setTimeout(function(){
						showSuccessFront(id);
						addProcessing = false;
					}, 500);
				} else if (result == 'limit') {
					removeTooltip(0);
					tb_open(CAPTION, '/CSP/dlg020/?height=230&width=300&modal=true&FW='+fwNo+'&' + paramStr, false, 'selectBox');
					addProcessing = false;
				} else {
					removeTooltip(0);
					setTimeout(function(){
						showFailureFront(id)
						addProcessing = false;
					}, 500);
				}
			},
	        error: function() {
				removeTooltip(0);
				setTimeout(function(){
					showFailureFront(id)
					addProcessing = false;
				}, 500);
			}
		})
	}, 500);
}

function showSuccessFront(id) {
	showTooltip(id, '/SYS/cmn/images/common/dialog/balloon_diary.gif', 99, 79);
	$("a[@id*='" + id + "']").css("visibility","hidden");
	$("a[@id*='add0']").css("visibility","hidden");
	$("a[@id*='add1']").css("visibility","hidden");
	$("a[@id*='add2']").css("visibility","hidden");
	removeTooltip(2000);
}

function showFailureFront(id) {
	showTooltip(id, '/SYS/cmn/images/common/dialog/balloon_error.gif', 141, 89);
	removeTooltip(2000);
}
