/** * @file 스냅비 티져 객체 파일 * @author kim young sun */ /** * 스냅비 티져 객체 * @class snackbe.subModule.teaser */ snackbe.subModule.teaser = function($){ snackbe.call(this,$); /** * 객체 초기화 함수 * @function subModuleInit */ this.subModuleInit = function(){ this.teaserList.loadList(); $(window).on('resize',function(){ $snackbe("#snackbe_main #snackbe-teaser-modal iframe").css("height",$snackbe("#snackbe_main #snackbe-teaser-modal iframe").css("width")); console.log($snackbe("#snackbe_main #snackbe-teaser-modal iframe").css("width")); }); //history.replaceState({'type':'snackbe-modal-open',cnt:1}, "", ""); window.onpopstate = function(event){ if(event.state == null) return ; if(event.state.type == 'snackbe-modal-open' && event.state.cnt == 1 ){ snackbeUIkit.modal("#snackbe-teaser-modal").hide(); } }; } /** * 티져 리스트 관련 객체 * @member {Object} */ this.teaserList = { /** 리스트 현재 페이지*/ page:1, /** 티져 총 개수 */ totalCount:0, /** 한페이지 노출 개수 */ pageViewCount:0, commentPage:1, commentWriteInterval:0, /** 리스트 불러오기 * @function tabChage */ loadList:function(){ var storeID = $('#snackbe_store_id').text(); $('head').append(''); $.ajax({url:'//'+snackbeInstance.getDomain("1")+'/teaser/teaserList/'+storeID+'/',dataType:'script'}).done(function(){ $("#snackbe_main #snackbe_contents .snackbe-teaser-list .snackbe-cover-container iframe").css("height",$("#snackbe_main #snackbe_contents .snackbe-teaser-list .snackbe-cover-container iframe").css("width")); $("#snackbe-teaser-modal").on("show",function(){ if(history.state == null){ history.replaceState({'type':'snackbe-modal-open',cnt:1}, "", ""); history.pushState({'type':'snackbe-modal-open',cnt:1}, "", ""); //console.log('init'); }else if(history.state.type !== 'snackbe-modal-open' || history.state.cnt == 0){ history.replaceState({'type':'snackbe-modal-open',cnt:1}, "", ""); history.pushState({'type':'snackbe-modal-open',cnt:1}, "", ""); //console.log('push cnt1'); }else if(history.state.cnt == 1){ history.replaceState({'type':'snackbe-modal-open',cnt:1}, "", ""); history.pushState({'type':'snackbe-modal-open',cnt:1}, "", ""); //console.log('replace cnt1'); } if($(window).width() * 1 / 3.001 < $snackbe("#snackbe_main #snackbe-teaser-modal iframe").width() ){ $("#snackbe_main #snackbe-teaser-modal iframe").css("height",($("#snackbe_main").width() * 1 / 3.001)); console.log(($(window).width() * 1 / 3.001) + " over"); setTimeout(function(){ $("#snackbe_main #snackbe-teaser-modal iframe").css("height",$snackbe("#snackbe_main #snackbe-teaser-modal iframe").css("width")); },1000); console.log($snackbe("#snackbe_main #snackbe-teaser-modal iframe").css("width")); }else{ $("#snackbe_main #snackbe-teaser-modal iframe").css("height",$snackbe("#snackbe_main #snackbe-teaser-modal iframe").css("width")); console.log($snackbe("#snackbe_main #snackbe-teaser-modal iframe").css("width")); } }); $("#snackbe-teaser-modal").on("hidden",function(){ history.replaceState({'type':'snackbe-modal-open',cnt:0}, "", ""); //console.log('hidden cnt0'); //$snackbe("#snackbe_main #snackbe-teaser-modal iframe").attr("src",""); $("#snackbe_main #snackbe-teaser-modal iframe").remove(); //$snackbe("#snackbe_main #snackbe-teaser-modal .video_con .snackbe-card-default").append(''); }); }); $("#snackbe_main #snackbe_contents .snackbe-teaser-list .snackbe-cover-container iframe").on('load',function(){ $(this).css("height",$(this).css("width")); }) $(window).resize(function(){ $("#snackbe_main #snackbe_contents .snackbe-teaser-list .snackbe-cover-container iframe").css("height",$("#snackbe_main #snackbe_contents .snackbe-teaser-list .snackbe-cover-container iframe").css("width")); if($(window).width() <=960){ $("#snackbe_main #snackbe-teaser-modal iframe").css("height",$("#snackbe_main #snackbe-teaser-modal iframe").css("width")); }else{ $("#snackbe_main #snackbe-teaser-modal iframe").css("height","100%"); //$("#snackbe_main #snackbe-teaser-modal iframe").css("height",$("#snackbe_main #snackbe-teaser-modal iframe").css("width")); } }); }, /** 리스트 더보기 * @function getMoreList * @param {Object} event - 이벤트 객체 */ getMoreList:function(event){ var storeID = $('#snackbe_store_id').text(); event.data.teaserList.page++; $.ajax({url:'//'+snackbeInstance.getDomain("1")+'/teaser/teaserListPage/'+storeID+'/'+event.data.teaserList.page,dataType:'script'}); }, /** 예약하기 레이어 띄우기 * @function showReservationModal * @param {Object} event - 이벤트 객체 */ showReservationModal:function(event){ var itemID = $(event.currentTarget).data("teaser-id"); var teaserItemID = $(event.currentTarget).data("item-id"); $("#snackbe-teaser-modal").empty(); $.ajax({url:'//'+snackbeInstance.getDomain("1")+'/teaser/teaserReservation/'+itemID+"/"+teaserItemID,dataType:'script'}); }, /** 상세보기 레이어 띄우기 * @function showDetailModal * @param {Object} event - 이벤트 객체 */ showDetailModal:function(event){ var itemID = $(event.currentTarget).data("teaser-id"); var viewCount = $(event.currentTarget).parents(".snackbe-teaser-list-item").find('.snackbe-teaser-view-cnt').text() * 1; $("#snackbe-teaser-modal").empty(); $.ajax({url:'//'+snackbeInstance.getDomain("1")+'/teaser/teaserDetail/'+itemID,dataType:'script'}).done(function(){ $("#snackbe_main #snackbe-teaser-modal iframe").css("height",$("#snackbe_main #snackbe-teaser-modal iframe").css("width")); console.log($("#snackbe_main #snackbe-teaser-modal iframe").css("width")); }); $(event.currentTarget).parents(".snackbe-teaser-list-item").find('.snackbe-teaser-view-cnt').text(viewCount+1); }, /** 댓글 불러오기 * @function getMoreComment * @param {Object} event - 이벤트 객체 */ getMoreComment:function(event){ var itemID = $(event.currentTarget).data("teaser-id"); event.data.teaserList.commentPage++; $.ajax({url:'//'+snackbeInstance.getDomain("1")+'/teaser/getMoreComment/'+itemID+'/'+event.data.teaserList.commentPage,dataType:'script'}); }, /** 댓글 로그인 체크 * @function focusComment * @param {Object} event - 이벤트 객체 */ focusComment:function(event){ var isLogin = true; if($("#snackbe_login_user_name").length == 0) isLogin = false; if($("#snackbe_login_user_id").length == 0) isLogin = false; if(!isLogin){ if(confirm("댓글을 작성하기 위해서는 로그인이 필요합니다.\n 로그인창으로 이동하시겟습니까?")){ //location.href="//instaxby.cafe24.com/member/login.html"; location.href = $("#snackbe-teaser-comment-frm [name='loginURL']").val(); $(':focus').blur(); return false; }else{ $(':focus').blur(); } } }, /** 댓글 작성 * @function writeComment * @param {Object} event - 이벤트 객체 */ writeComment:function(event){ if($("#snackbe_login_user_id").length != 0){ $("#snackbe-teaser-comment-frm [name='writer']").val($("#snackbe_login_user_id").text()); }else{ $("#snackbe-teaser-comment-frm [name='writer']").val($("#snackbe_login_user_name").text()); } if($("#snackbe-teaser-comment-txt").val().trim() == ""){ alert("내용을 작성해주세요"); return false; } if(event.data.teaserList.commentWriteInterval != 0) return false; $("#snackbe-teaser-comment-txt").prop("readonly",true); document.characterSet = "UTF-8" //$("#snackbe-teaser-comment-frm").submit(); event.data.teaserList.commentWriteInterval = setInterval(event.data.teaserList.writeCommentCallback,500); }, /** 댓글 작성 완료 * @function writeCommentCallback * @param {Object} event - 이벤트 객체 */ writeCommentCallback:function(){ $("#snackbe-teaser-comment-frm input:text").val(""); $("#snackbe-teaser-modal .snackbe-teaser-no-comment").remove(); var commentHash = $("#snackbe-teaser-comment-frm [name='writeHash']").val(); var itemID = $("#snackbe-teaser-comment-frm [name='itemID']").val(); var commentCount = $("#snackbe_contents .snackbe-teaser-list-item[data-teaser-id='"+itemID+"'] .snackbe-teaser-comment-cnt").text() * 1; $.ajax({url:'//'+snackbeInstance.getDomain("1")+'/teaser/getCommentWithHash/'+commentHash,dataType:'script'}); $("#snackbe-teaser-comment-frm [name='writeHash']").val($("#snackbe-teaser-comment-frm [name='writeHash']").val()+"snb"); $("#snackbe_contents .snackbe-teaser-list-item[data-teaser-id='"+itemID+"'] .snackbe-teaser-comment-cnt").text(commentCount+1); $("#snackbe-teaser-comment-txt").prop("readonly",false); }, /** 예약하기 - 약관 토글 * @function teaserToggleTerm * @param {Object} event - 이벤트 객체 */ teaserToggleTerm:function(event){ $("#snackbe_main .snackbe-reservation-modal .snackbe-teaser-terms textarea").toggle(); }, /** 예약하기 - 유효성 검사 * @function teaserReservationProcess * @param {Object} event - 이벤트 객체 */ teaserReservationProcess:function(event){ var storeID = $('#snackbe_store_id').text(); var itemID = $(event.currentTarget).data("teaser-id"); var teaserItemID = $(event.currentTarget).data("item-id"); var reservationTerms = $(".snackbe-teaser-terms :checkbox").prop("checked"); var reservationName = $("#snackbe-teaser-reserve-name").val(); var reservationPhoneNumber = $("#snackbe-teaser-reserv-phone").val(); var reservationPhoneNumberRegex = new RegExp($("#snackbe-teaser-reserv-phone").prop("pattern")); if(!reservationTerms){ alert("개인정보 수집,이용 및 SMS수신에 동의해주세요."); return false; } if(reservationName.trim() == "" || reservationPhoneNumber.trim() == ""){ alert("성함과 전화번호는 필수 입력 입니다."); return false; } if(!reservationPhoneNumberRegex.test(reservationPhoneNumber)){ alert("전화번호 입력형식에 맞게 입력해주세요."); return false; } $.ajax({url:'//'+snackbeInstance.getDomain("1")+'/teaser/teaserReservationProcess/'+storeID+'/'+itemID+"/"+teaserItemID+"/"+(encodeURIComponent(reservationName))+"/"+reservationPhoneNumber,dataType:'script'}); }, /** 예약하기 - 예약성공 * @function reservationSuccess * @param {Object} event - 이벤트 객체 */ reservationSuccess:function(itemID){ $("#snackbe-teaser-modal").empty(); $("#snackbe-teaser-modal").append("

해당 상품 예약에 성공하셨습니다 !

확인
"); }, /** 예약하기 - 중복예약 * @function reservationOverlap * @param {Object} event - 이벤트 객체 */ reservationOverlap:function(){ $("#snackbe-teaser-modal").empty(); $("#snackbe-teaser-modal").append("

이미 예약한 상품입니다.

확인
"); } } this.subModuleInit(); } var snackbeTeaserInstance = new snackbe.subModule.teaser($snackbe);