/********************************************* * last_cashing.js --------------------------------------------- @constructor @init @plugin @requires - *********************************************/ /* ------------------------------------------- * @constructor ------------------------------------------- */ var u = new EPOS_CARD.Util(); // u インスタンスを作成 /* ------------------------------------------- * @init ------------------------------------------- */ //HTML側で実行 /* ------------------------------------------- * @plugin ------------------------------------------- */ (function(j$){ /* * @plugin - lastCashing */ j$.fn.lastCashing = function(config){ var c = j$.extend({ target: ".jsCashingBnr", //ターゲットとなる要素 expiration: 60 // 有効期限(日) },config); // cookie取得関数 function getCookie(c_name){ var st = ""; var ed = ""; if(document.cookie.length>0){ // クッキーの値を取り出す st = document.cookie.indexOf(c_name + "="); if(st !== -1){ st = st+c_name.length+1; ed = document.cookie.indexOf(";",st); if(ed === -1) { ed=document.cookie.length; } // 値をデコードして返す return unescape(document.cookie.substring(st,ed)); } } return ""; } /* vars -------------------------------------------------- */ var $target = this; if($target.length === 0){ return false; } /* 会員cookieが無ければ表示 -------------------------------------------------- */ if(getCookie("esc_if") === ""){ $target.show(); return false; } /* 会員cookieから、キャッシングの最終利用日を取得 -------------------------------------------------- */ var escArr = getCookie("esc_if").split(","), lastDateCookie = escArr[9].split(/[A-Z]/), lastResult = { year: lastDateCookie[2].replace(/(\d{2})(\d{4})(\d{2})/,"$2"), month: lastDateCookie[2].replace(/(\d{2})(\d{4})(\d{2})/,"$3"), days: lastDateCookie[2].replace(/(\d{2})(\d{4})(\d{2})/,"$1") }, lastDate = lastResult.year + "/" + lastResult.month + "/" + lastResult.days; /* キャッシング利用が無ければ表示 -------------------------------------------------- */ if(lastDate === "0000/00/00"){ $target.show(); return false; } /* 現在の日付の取得 -------------------------------------------------- */ var localTime = new Date(), localResult = { year: localTime.getFullYear(), month: localTime.getMonth()+1, days: localTime.getDate(), hours: localTime.getHours(), minuts: localTime.getMinutes(), Seconds: localTime.getSeconds() }, monthXX = localResult.month < 10? "0" + localResult.month:localResult.month, daysXX = localResult.days < 10? "0" + localResult.days:localResult.days, nowDate = localResult.year + "/" + monthXX + "/" + daysXX; /* 経過日数の取得 -------------------------------------------------- */ var lastDate2 = new Date(lastDate), nowDate2 = new Date(nowDate), lastGetTime = lastDate2.getTime(), nowGetTime = nowDate2.getTime(), elapsed = (nowGetTime - lastGetTime)/(1000*60*60*24); /* 最終利用日から何日経過しているかを取得 -------------------------------------------------- */ var isOver = elapsed > c.expiration? true : false; // 有効期限を超えていたらtrue // 有効期限内なら表示 if(!isOver){ $target.show(); } else { $target.hide(); } }; })(jQuery);