style24_link.js 41 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259
  1. /*
  2. * Common URL Definition
  3. */
  4. const _PAGE_LOGIN = _frontUrl + "/signin"; // GNB > 로그인
  5. const _PAGE_LOGOUT = _frontUrl + "/logout"; // GNB > 로그아웃
  6. //== 메인 ==/
  7. const _PAGE_MAIN = _frontUrl + "/display/mall/main/form"; // 몰메인
  8. const _PAGE_ALL_BRAND = _frontUrl + "/display/all/brand/form"; // 전체 브랜드
  9. const _PAGE_CATE_MAIN = _frontUrl + "/display/category/main/form"; // 카테고리메인
  10. const _PAGE_BRAND_MAIN = _frontUrl + "/display/brand/main/form"; // 브랜드메인
  11. const _PAGE_CATE_GOODS_LIST = _frontUrl + "/display/category/goods/list/form"; // 카테고리 상품목록
  12. const _PAGE_BEST_MAIN = _frontUrl + "/display/best/main/form"; // 베스트메인
  13. const _PAGE_OUTLET_MAIN = _frontUrl + "/display/outlet/main/form"; // 아울렛메인
  14. //== 고객 ==/
  15. const _PAGE_CUSTOMER_JOIN_TYPE = _frontUrl + "/customer/join/type/form"; // 고객 > 회원가입 유형
  16. const _PAGE_CUSTOMER_JOIN = _frontUrl + "/customer/join/form"; // 고객 > 회원가입
  17. const _PAGE_CUSTOMER_SNS_JOIN = _frontUrl + "/customer/sns/join/form"; // 고객 > SNS가입
  18. const _PAGE_CUSTOMER_JOIN_COMPLETE = _frontUrl + "/customer/join/complete/form"; // 고객 > 고객가입 > 완료페이지
  19. const _PAGE_CUSTOMER_ID_FIND = _frontUrl + "/customer/id/find/form"; // 고객 > 아이디 찾기
  20. const _PAGE_CUSTOMER_PWD_FIND = _frontUrl + "/customer/password/find/form"; // 고객 > 비밀번호 찾기
  21. const _PAGE_CUSTOMER_PWD_CHANGE_FIND = _frontUrl + "/customer/password/change/form?pageGb=find"; // 고객 > 비밀번호 찾기> 비밀번호 변경 화면
  22. const _PAGE_CUSTOMER_PWD_CHANGE_TEMP = _frontUrl + "/customer/password/change/form?pageGb=temp"; // 고객 > 임시비밀번호 로그인 > 비밀번호 변경 화면
  23. const _PAGE_CUSTOMER_DORMANT = _frontUrl + "/customer/dormant/certify/form"; // 고객 > 휴면회원
  24. const _PAGE_CUSTOMER_DORMANT_COMPLETE = _frontUrl + "/customer/dormant/certify/complete/form"; // 고객 > 휴면회원 > 완료페이지
  25. const _PAGE_CUSTOMER_SECEDE = _frontUrl + "/customer/secede/form"; // 고객 > 회원탈퇴
  26. const _PAGE_CUSTOMER_SECEDE_COMPLETE = _frontUrl + "/customer/secede/complete/form"; // 고객 > 회원탈퇴 > 완료페이지
  27. const _PAGE_CUSTOMER_CERTIFICATION = _frontUrl + "/customer/certification/form" // 고객 > 본인인증화면
  28. const _PAGE_USE_TERMS = _frontUrl + "/customer/use/terms/form"; // Footer > 이용약관
  29. const _PAGE_PRIVACY_POLICY = _frontUrl + "/customer/privacy/policy/form"; // Footer > 개인정보취급방침
  30. const _PAGE_CUSTOMER_CONSENT_USERINFO = _frontUrl + "/customer/consent/useinfo/form"; // 정보 이용동의 : Yes24 로그인
  31. const _PAGE_USE_TERMS_LAYER = _frontUrl + "/customer/use/terms/layer"; // 회원가입 > 이용약관
  32. const _PAGE_PRIVACY_POLICY_LAYER = _frontUrl + "/customer/privacy/policy/layer"; // 회원가입 > 개인정보취급방침
  33. const _PAGE_PRIVACY_TRUST_LAYER = _frontUrl + "/customer/privacy/trust/layer"; // 회원가입 > 개인정보취급위탁
  34. //== 상품상세 ==/
  35. const _PAGE_GOODS_DETAIL = _frontUrl + "/goods/detail/form?goodsCd="; // 상품 상세
  36. const _PAGE_GOODS_COUPON_LAYER = _frontUrl + "/goods/coupon/layer?goodsCd="; // 쿠폰레이어
  37. const _PAGE_GOODS_SHOP_BENEFIT_LAYER = _frontUrl + "/goods/shop/benefit/layer/"; // 쇼핑혜택레이어
  38. const _PAGE_CARD_PRMT_LAYER = _frontUrl + "/goods/card/prmt/layer/"; // 카드혜택레이어
  39. const _PAGE_GOODS_SIZEINFO_LAYER = _frontUrl + "/goods/sizeInfo/layer/"; // 사이즈정보레이어
  40. const _PAGE_GOODS_INSTOCK_ALARM_LAYER = _frontUrl + "/goods/instock/alarm/layer/"; // 재입고알림레이어
  41. const _PAGE_GOODS_QNA_LAYER = _frontUrl + "/goods/qna/layer/"; // 상품문의레이어
  42. const _PAGE_GOODS_QNA_CREATE_LAYER = _frontUrl + "/goods/qna/create/layer/"; // 상품문의레이어
  43. const _PAGE_GOODS_DELIVERY_LAYER = _frontUrl + "/goods/delivery/layer/"; // 배송/교환/반품 레이어
  44. const _PAGE_GOODS_REVIEW_LAYER = _frontUrl + "/goods/review/layer/"; // 상품평 레이어
  45. const _PAGE_GOODS_REVIEW_DETAIL_LAYER = _frontUrl + "/goods/review/detail/layer"; // 상품평- 상세(베스트, 포토)
  46. const _PAGE_GOODS_REVIEW_PHTO_LIST_LAYER = _frontUrl + "/goods/review/photo/layer/"; // 상품평- 포토/영상 리뷰 (list)
  47. const _PAGE_GOODS_CPN_DOWNLOAD = "/goods/coupon/download"; // 상품쿠폰다운로드
  48. const _PAGE_GOODS_EP_CPN_DOWNLOAD = "/goods/ep/coupon/download"; // EP쿠폰다운로드
  49. const _PAGE_DEAL_GOODS_DETAIL_LAYER = _frontUrl + "/goods/deal/detail/layer/"; // 딜상품 상세레이어
  50. //== 장바구니 ==/
  51. const _PAGE_CART = _frontUrl + "/cart/list/form"; // 장바구니
  52. //== 주문 ==/
  53. //== 마이페이지 ==/
  54. const _PAGE_MYPAGE = _frontUrl + "/mypage/main/form"; // 마이페이지 > 메인
  55. const _PAGE_MYPAGE_ORDER_LIST = _frontUrl + "/mypage/order/list/form"; // 마이페이지 > 주문확인/배송조회
  56. const _PAGE_MYPAGE_ORDER_DETAIL = _frontUrl + "/mypage/order/detail/form/"; // 마이페이지 > 주문/배송 상세
  57. const _PAGE_MYPAGE_CRE_LIST = _frontUrl + "/mypage/cre/list/form"; // 마이페이지 > 취소/교환/반품 목록
  58. const _PAGE_MYPAGE_RESTOCK = _frontUrl + "/mypage/restock/form"; // 마이페이지 > 재입고 알림 내역
  59. const _PAGE_MYPAGE_COUPON = _frontUrl + "/mypage/coupon/form"; // 마이페이지 > 쿠폰
  60. const _PAGE_MYPAGE_POINT = _frontUrl + "/mypage/point/form"; // 마이페이지 > 포인트
  61. const _PAGE_MYPAGE_GIFTCARD = _frontUrl + "/mypage/gift/card/form"; // 마이페이지 > 상품권
  62. const _PAGE_MYPAGE_REVIEW = _frontUrl + "/mypage/review/form"; // 마이페이지 > 리뷰
  63. const _PAGE_MYPAGE_CREATE_REVIEW = _frontUrl + "/mypage/review/create/form/"; // 마이페이지 > 리뷰 > 리뷰작성
  64. const _PAGE_MYPAGE_DELIVERY_ADDR = _frontUrl + "/mypage/delivery/addr/form"; // 마이페이지 > 배송지 관리
  65. const _PAGE_MYPAGE_WISHLIST = _frontUrl + "/mypage/wish/list/form"; // 마이페이지 > 위시리스트
  66. const _PAGE_MYPAGE_CUSTOMER = _frontUrl + "/mypage/customer/confirm/form"; // 마이페이지 > 내정보 관리 > 회원정보 확인
  67. const _PAGE_MYPAGE_CUSTOMER_MODIFY = _frontUrl + "/mypage/customer/modify/form";// 마이페이지 > 내정보 관리 > 회원정보 수정
  68. const _PAGE_PASSWORD_MODIFY = _frontUrl + "/mypage/password/modify/form"; // 마이페이지 > 비밀번호 변경
  69. const _PAGE_MYPAGE_SECEDE = _frontUrl + "/mypage/customer/secede/form"; // 마이페이지 > 회원탈퇴
  70. const _PAGE_WISHLIST = _frontUrl + "/mypage/wish/list/form"; // 마이페이지 > 위시리스트
  71. const _PAGE_WISHLIST_PUT = _frontUrl + "/mypage/wish/list/put"; // 위시리스트 담기
  72. const _PAGE_WISHLIST_DEL = _frontUrl + "/mypage/wish/list/delete"; // 위시리스트 삭제
  73. //== 검색 ==/
  74. //== 기획전 ==/
  75. const _PAGE_PLANNING_MAIN = _frontUrl + "/planning/main/form"; // 기획전 메인
  76. const _PAGE_PLANNING_DETAIL = _frontUrl + "/planning/detail/form"; // 기획전 상세
  77. const _PAGE_PLANNING_CPN_DOWNLOAD = "/planning/coupon/download"; // 상품쿠폰다운로드
  78. //== 핫딜==/
  79. const _PAGE_SOCIAL_MAIN = _frontUrl + "/social/main/form"; // 소설(핫딜) 메인
  80. //== 이벤트 ==/
  81. const _PAGE_EVENT_MAIN = _frontUrl + "/planning/event/main/form"; // 이벤트 메인
  82. const _PAGE_EVENT_POLL = _frontUrl + "/planning/event/poll/form"; // 이벤트 > 설문조사
  83. const _PAGE_CUSTOMER_GRADE_BENEFIT = _frontUrl + "/planning/event/custgrade/benefit/form"; // 이벤트 회원등급혜택
  84. //== 고객센터 ==/
  85. const _PAGE_FAQ = _frontUrl + "/callcenter/faq/form"; // 고객센터 > FAQ
  86. const _PAGE_ONETOONE_QNA = _frontUrl + "/callcenter/onetoone/qna/form"; // 고객센터 > 1:1문의
  87. const _PAGE_ONETOONE_QNA_REG = _frontUrl + "/callcenter/onetoone/qna/register/form"; // 고객센터 > 1:1문의등록
  88. const _PAGE_GOODS_QNA = _frontUrl + "/callcenter/goods/qna/form"; // 고객센터 > 상품문의
  89. const _PAGE_NOTICE = _frontUrl + "/callcenter/notice/form"; // 고객센터 > 공지사항
  90. //== 기타 ==/
  91. const _PAGE_LOOKBOOK_MAIN = _frontUrl + "/display/lookbook/main/form"; // 룩북 메인
  92. const _PAGE_LOOKBOOK_DETAIL = _frontUrl + "/display/lookbook/detail/form"; // 룩북 상세
  93. /**********************************************************************************************/
  94. /**
  95. * @type : function
  96. * @access : public
  97. * @desc : page 이동
  98. * <pre>
  99. * cfnGoToPage(PAGE_LOGIN);
  100. * </pre>
  101. * @param : page - page
  102. * @return : None
  103. * @author : gagamel
  104. * @since : 2020/02/21
  105. */
  106. var cfnGoToPage = function(page, ithrCd) {
  107. var params = page;
  108. if (ithrCd) params += "&ithrCd=" + ithrCd;
  109. document.location.href = params;
  110. }
  111. /**
  112. * @type : function
  113. * @access : public
  114. * @desc : 나이스 휴대폰 인증
  115. * <pre>
  116. * cfnOpenCellphoneCertify();
  117. * 호출된 페이지에서
  118. * PC : fnNiceCallBack(encData) 콜백 함수 생성 후 encData 가지고 호출 처리
  119. * MO : redirectUrl 호출하는 페이지에서 넣어줘야됨
  120. * </pre>
  121. * @param redirectUrl - 모바일에서 사용 페이지이동으로 하기 때문에
  122. * @since : 2021/02/09
  123. * @author : jsshin
  124. */
  125. var cfnOpenCellphoneCertify = function (redirectUrl, custParams) {
  126. var actionUrl = _frontUrl + "/customer/nice/cellphone/form";
  127. var popupWidth = 420;
  128. var popupHeight = 720;
  129. var popupX = (window.screen.width / 2) - (popupWidth / 2);
  130. var popupY = (window.screen.height / 3) - (popupHeight / 3);
  131. if ('P' === _frontGb) {
  132. window.open(actionUrl, "popupCellphone", "top=" + popupY + ", left=" + popupX + ", width=" + popupWidth + ", height=" + popupHeight + ", fullscreen=no,menubar=no,status=no,toolbar=no,titlebar=yes,location=no,scrollbar=no");
  133. } else {
  134. console.log('redirectUrl', redirectUrl);
  135. if (!gagajf.isNull(redirectUrl)) {
  136. actionUrl = actionUrl + "?redirectUrl=" + redirectUrl;
  137. if (!gagajf.isNull(custParams)) {
  138. actionUrl = actionUrl + "&custParams=" + custParams;
  139. }
  140. document.location.href = actionUrl;
  141. }
  142. }
  143. }
  144. /**
  145. * @type : function
  146. * @access : public
  147. * @desc : 나이스 아이핀 인증
  148. * <pre>
  149. * cfnOpenIpinCertify();
  150. * 호출된 페이지에서
  151. * PC : fnNiceCallBack(encData) 콜백 함수 생성 후 encData 가지고 호출 처리
  152. * MO :
  153. * </pre>
  154. * @since : 2021/02/09
  155. * @author : jsshin
  156. */
  157. var cfnOpenIpinCertify = function (redirectUrl) {
  158. var actionUrl = _frontUrl + "/customer/nice/ipin/form";
  159. var popupWidth = 445;
  160. var popupHeight = 550;
  161. var popupX = (window.screen.width / 2) - (popupWidth / 2);
  162. var popupY = (window.screen.height / 3) - (popupHeight / 3);
  163. if ('P' === _frontGb) {
  164. window.open(actionUrl, "popupIpin", "top=" + popupY + ", left=" + popupX + ", width=" + popupWidth + ", height=" + popupHeight + ", fullscreen=no,menubar=no,status=no,toolbar=no,titlebar=yes,location=no,scrollbar=no");
  165. } else {
  166. if (!gagajf.isNull(redirectUrl)) {
  167. document.location.href = actionUrl + "?redirectUrl=" + redirectUrl;
  168. }
  169. }
  170. };
  171. /**
  172. * @type : function
  173. * @access : public
  174. * @desc : 장바구니 등록 temp.cartGb :C 장바구니, O:바로구매
  175. * <pre>
  176. * cfnAddCart(cartList);
  177. * cartList는 Array로 등록해주셔야합니다.
  178. * ex) 일반 & deal 상품 장바구니 등록 (일반&딜 상품도 배열에 담아서 전송해주세요.)
  179. * let compsList = [];
  180. * let temp = new Object;
  181. * temp.goodsCd = "14373703";
  182. * temp.optCd = "블랙140";
  183. * temp.goodsQty = 1;
  184. * temp.goodsType = "G056_D";
  185. * temp.dealGoodsCd = "STY"
  186. * temp.cartGb = "C";
  187. * temp.afLinkCd = "afLinkCd";
  188. * temp.ithrCd = "G027_ZZZ";
  189. * temp.contentsLoc = "G028_YYY";
  190. * temp.planDtlSq = "123";
  191. * compsList.push(temp);
  192. * cfnAddCart(compsList);
  193. *
  194. * ex) 세트상품 장바구니 등록
  195. * let cartGoodsList = [];
  196. * for(let i = 0 ; i < 세트상품수 ; i++) {
  197. * let compsList = [];
  198. * let goodsList = {
  199. * cartCompsList : new Array()
  200. * }
  201. *
  202. * for(let j = 0 ; j < 세트구성품수 ; j++) {
  203. * let temp = new Object;
  204. * temp.goodsCd = "STYS00000005";
  205. * temp.itemCd = "A83F-DP568S";
  206. * temp.optCd = "14019445-1";
  207. * temp.goodsQty = 3;
  208. * temp.goodsType = "G056_S";
  209. * temp.cartGb = "C";
  210. * temp.afLinkCd = "aaaa";
  211. * temp.ithrCd = "12311";
  212. * temp.contentsLoc = "afasd";
  213. * temp.planDtlSq = "44";
  214. * compsList.push(temp);
  215. * }
  216. *
  217. * goodsList.cartCompsList = compsList;
  218. * cartGoodsList.push(goodsList);
  219. * }
  220. *
  221. * cfnAddCart(cartGoodsList);
  222. *
  223. * </pre>
  224. * @since : 2021/02/24
  225. * @author : xodud1202
  226. */
  227. function cfnAddCart(cartList) {
  228. let jsonData = JSON.stringify(cartList);
  229. $.ajax( {
  230. type: "POST",
  231. url : '/cart/save',
  232. data : jsonData,
  233. contentType: 'application/json',
  234. dataType : 'json',
  235. success : function(result) {
  236. if(result.message == "SUCCESS") {
  237. if(result.cartGb == "C") {
  238. mcxDialog.confirm("<div class="+"dialog-title"+">"+"상품이 쇼핑백에 추가되었습니다.</div><p>쇼핑백으로 이동하시겠습니까?</p>", {
  239. cancelBtnText: "계속 쇼핑하기",
  240. sureBtnText: "쇼핑백 가기",
  241. sureBtnClick: function(){
  242. location.href='/cart/list/form'; //내 쇼핑백 이동url
  243. }
  244. });
  245. } else if (result.cartGb == "O"){
  246. let orderHtml = "";
  247. for(let i = 0 ; i < result.cartSqList.length ; i++) {
  248. orderHtml += '<input type="hidden" name="cartSqArr" value="' + result.cartSqList[i] + '" />';
  249. }
  250. $("#directOrderForm").html(orderHtml);
  251. if(result.custNo == 0) {
  252. var btn = ["비회원 구매", "로그인 후 구매"];
  253. mcxDialog.confirmC("로그인 후 구매 시 다양한 혜택을 받으실 수 있습니다.", { //내용
  254. btn: btn,
  255. btnClick: function(index){
  256. if (index == 1) { //button1 일때 처리문
  257. $("#directOrderForm").submit();
  258. } else {
  259. location.href="/signin";
  260. }
  261. }
  262. });
  263. } else {
  264. $("#directOrderForm").submit();
  265. }
  266. } else if (result.cartGb == "G") {
  267. if(result.custNo == 0) {
  268. location.href="/signin";
  269. }
  270. let orderHtml = "";
  271. for(let i = 0 ; i < result.cartSqList.length ; i++) {
  272. orderHtml += '<input type="hidden" name="cartSqArr" value="' + result.cartSqList[i] + '" />';
  273. }
  274. $("#directOrderForm").html(orderHtml);
  275. $("#directOrderForm").submit();
  276. } else {
  277. mcxDialog.alert("해당 기능을 사용 할 수 없습니다. 새로고침 후 다시 시도해주세요.");
  278. }
  279. } else {
  280. mcxDialog.alert(result.message);
  281. }
  282. }
  283. });
  284. }
  285. /**
  286. * @type : function
  287. * @access : public
  288. * @desc : 네이버 로그인
  289. * <pre>
  290. * cfnLoginNaver();
  291. * 호출된 페이지에서
  292. * PC: fnSnsSigninCallback(userInfo) 콜백 함수 생성 후 가지고 호출 처리
  293. * MO : SnsCallBackFormMob.html 해당 페이지 후 처리
  294. * </pre>
  295. * @since : 2021/02/23
  296. * @author : jsshin
  297. */
  298. var cfnLoginNaver = function (requestGb, chkRememberMe) {
  299. let actionUrl = _frontUrl + '/signin/naverlogin?rememberMe=' + chkRememberMe;
  300. let popupHeight = 800;
  301. let popupWidth = 600;
  302. let popupX = (window.screen.width / 2) - (popupWidth / 2);
  303. let popupY = (window.screen.height / 3) - (popupHeight / 3);
  304. if ('P' === _frontGb) {
  305. window.open(actionUrl, 'naverLogin', 'top=' + popupY + ',left=' + popupX + ',height=' + popupHeight + ',width=' + popupWidth + ', fullscreen=no,menubar=no,status=no,toolbar=no,titlebar=yes,location=no,scrollbars=yes', '');
  306. } else {
  307. document.location.href = actionUrl + '&requestGb=' + requestGb;
  308. }
  309. };
  310. /**
  311. * @type : function
  312. * @access : public
  313. * @desc : 카카오 로그인
  314. * <pre>
  315. * cfnLoginKakao();
  316. * 호출된 페이지에서
  317. * PC: fnSnsSigninCallback(userInfo) 콜백 함수 생성 후 가지고 호출 처리
  318. * MO : SnsCallBackFormMob.html 해당 페이지 후 처리
  319. * </pre>
  320. * @since : 2021/02/23
  321. * @author : jsshin
  322. */
  323. var cfnLoginKakao = function (requestGb, chkRememberMe) {
  324. let actionUrl = _frontUrl + '/signin/kakologin?rememberMe=' + chkRememberMe;
  325. let popupWidth = 450;
  326. let popupHeight = 700;
  327. let popupX = (window.screen.width / 2) - (popupWidth / 2);
  328. let popupY = (window.screen.height / 3) - (popupHeight / 3);
  329. if ('P' === _frontGb) {
  330. //window.open(actionUrl, 'kakaoLogin', 'top=' + popupY + ',left=' + popupX + ',height=' + popupHeight + ',width=' + popupWidth + ', fullscreen=no,menubar=no,status=no,toolbar=no,titlebar=yes,location=no,scrollbars=yes', '');
  331. } else {
  332. //document.location.href = actionUrl + '&requestGb=' + requestGb;
  333. }
  334. };
  335. /**
  336. * @type : function
  337. * @access : public
  338. * @desc : Yes24 로그인
  339. * <pre>
  340. * cfnLoginYes24();
  341. * 호출된 페이지에서
  342. * PC: fnSnsSigninCallback(userInfo) 콜백 함수 생성 후 가지고 호출 처리
  343. * MO : SnsCallBackFormMob.html 해당 페이지 후 처리
  344. * </pre>
  345. * @since : 2021/02/23
  346. * @author : jsshin
  347. */
  348. var cfnLoginYes24 = function (requestGb, chkRememberMe) {
  349. let actionUrl = _frontUrl + '/signin/yes24login?rememberMe=' + chkRememberMe;
  350. let popupWidth = 987;
  351. let popupHeight = 862;
  352. let popupX = (window.screen.width / 2) - (popupWidth / 2);
  353. let popupY = (window.screen.height / 3) - (popupHeight / 3);
  354. if ('P' === _frontGb) {
  355. window.open(actionUrl, 'yes24Login', 'top=' + popupY + ',left=' + popupX + ',height=' + popupHeight + ',width=' + popupWidth + ', fullscreen=no,menubar=no,status=no,toolbar=no,titlebar=yes,location=no,scrollbars=yes', '');
  356. } else {
  357. document.location.href = actionUrl + '&requestGb=' + requestGb;
  358. }
  359. };
  360. /**
  361. * @type : function
  362. * @access : public
  363. * @desc : 상품상세로 이동
  364. * <pre>
  365. * cfnGoToGoodsDetail('A83U-TS058S');
  366. * </pre>
  367. * @param : goodsCd - 상품코드코드. 필수
  368. * @param : ithrCd - 유입경로. 필수
  369. * @param : contentsLoc - 컨텐츠위치.
  370. * @since : 2021/03/02
  371. * @author : eskim
  372. */
  373. var cfnGoToGoodsDetail = function (goodsCd, colorCd, ithrCd, contentsLoc, planDtlSq, rccode ) {
  374. var params = goodsCd;
  375. if (typeof (colorCd) != 'undefined') params += "&colorCd=" + colorCd;
  376. if (typeof (ithrCd) != 'undefined') params += "&ithrCd=" + ithrCd;
  377. if (typeof (contentsLoc) != 'undefined' && contentsLoc != "") params += "&contentsLoc=" + contentsLoc;
  378. if (typeof (planDtlSq) != 'undefined') params += "&planDtlSq=" + planDtlSq;
  379. if (typeof (rccode) != 'undefined') params += "&rccode=pc_detail"; // 추천솔루션 제공 상품클릭시
  380. cfnGoToPage(_PAGE_GOODS_DETAIL + params);
  381. }
  382. /**
  383. * @type : function
  384. * @access : public
  385. * @desc : 공통 레이어 띄우기
  386. * <pre>
  387. * cfOpenLayer(_PAGE_CARD_LAYER, 'layer_card_benefit');
  388. * </pre>
  389. * @param : page - page. 필수
  390. * @param : tgt - 레이어가 표시될 위치(예, div 태크의 ID). 필수
  391. * @param : oParam - Parameter Object. 옵션
  392. * @param : callbackFnc - 콜백함수. 옵션
  393. */
  394. function cfOpenLayer(page, tgt, oParam, callbackFnc) {
  395. if (!oParam) oParam = new Object();
  396. $.post(page
  397. , oParam
  398. , function (result) {
  399. $('#' + tgt).html(result);
  400. $('#' + tgt).modal("show");
  401. //$('#' + tgt).show();
  402. //layerPop_resize(tgt);
  403. if (callbackFnc && $.isFunction(callbackFnc))
  404. callbackFnc();
  405. }
  406. , "html");
  407. return false;
  408. }
  409. /**
  410. * @type : function
  411. * @access : public
  412. * @desc : 공통 레이어 위치 조정
  413. * <pre>
  414. * layerPop_resize('layer_card_benefit');
  415. * </pre>
  416. * @param : tgt - 레이어가 표시될 위치(예, div 태크의 ID). 필수
  417. */
  418. function layerPop_resize(tgt) {
  419. var thisH = $("#" + tgt).find(".modal").outerHeight();
  420. var thisT = ($(window).height() / 2) - (thisH / 2);
  421. $("#" + tgt).find(".modal").css('top', thisT + 'px');
  422. }
  423. /**
  424. * @type : function
  425. * @access : public
  426. * @desc : 공통 레이어 닫기(레이어 숨기기)
  427. * <pre>
  428. * cfCloseLayer("layer_card_benefit");
  429. * </pre>
  430. * @param : tgt - 숨길 레이어 ID(예, div 태크의 ID). 필수
  431. */
  432. function cfCloseLayer(tgt) {
  433. if (_frontGb == "M"){
  434. $('#' + tgt).hide();
  435. }else{
  436. $('#' + tgt).hide();
  437. $('#' + tgt).remove();
  438. }
  439. return false;
  440. }
  441. /**
  442. * @type : function
  443. * @access : public
  444. * @desc : 카드혜택보기
  445. * <pre>
  446. * cfCardInfo();
  447. * </pre>
  448. */
  449. function cfCardInfo() {
  450. var str = '<div class="modal fade pd_pop bnf_card_pop" id="layer_card_benefit" tabindex="-1" role="dialog" aria-labelledby="bnfCardLabel" aria-hidden="true"></div>';
  451. if ("P" != _frontGb){
  452. str = '<div class="modal pop_full fade pd_pop bnf_card_pop" id="layer_card_benefit" tabindex="-1" role="dialog" aria-labelledby="exampleFullLabel" aria-hidden="true">';
  453. }
  454. if ($('#layer_card_benefit').length == 0) {
  455. $('body').append(str);
  456. }
  457. cfOpenLayer(_PAGE_CARD_PRMT_LAYER, 'layer_card_benefit');
  458. }
  459. /**
  460. * @type : function
  461. * @access : public
  462. * @desc : 상품쿠폰목록보기
  463. * <pre>
  464. * cfGoodsCouponInfo(goodsCd);
  465. * </pre>
  466. */
  467. function cfGoodsCouponInfo(goodsCd, goodsType) {
  468. if (!cfCheckLogin()) {
  469. cfnGoToPage(_PAGE_LOGIN);
  470. return false;
  471. }
  472. var aria = "saleCouponLabel";
  473. if ("P" != _frontGb){
  474. aria = "modalScrollLabel";
  475. }
  476. var str = '<div class="modal fade pd_pop salecoupon_pop" id="layer_goods_coupon" tabindex="-1" role="dialog" aria-labelledby="'+aria+'" aria-hidden="true"></div>';
  477. if ($('#layer_goods_coupon').length == 0) {
  478. $('body').append(str);
  479. }
  480. var params = goodsCd;
  481. if (typeof (goodsType) != 'undefined') params += "&goodsType=" + goodsType;
  482. cfOpenLayer(_PAGE_GOODS_COUPON_LAYER + params, 'layer_goods_coupon');
  483. }
  484. /**
  485. * @type : function
  486. * @access : public
  487. * @desc : 상품쇼핑혜택목록보기
  488. * <pre>
  489. * cfGoodsShopBenefitInfo(goodsCd);
  490. * </pre>
  491. */
  492. function cfGoodsShopBenefitInfo(goodsCd) {
  493. var str = '<div class="modal fade pd_pop bnf_shopping_pop" id="layer_shopping_benefit" tabindex="-1" role="dialog" aria-labelledby="bnfShoppingLabel" aria-hidden="true"></div>';
  494. if ("P" != _frontGb){
  495. str = '<div class="modal pop_full fade pd_pop bnf_shopping_pop" id="layer_shopping_benefit" tabindex="-1" role="dialog" aria-labelledby="exampleFullLabel" aria-hidden="true"></div>';
  496. }
  497. if ($('#layer_shopping_benefit').length == 0) {
  498. $('body').append(str);
  499. }
  500. cfOpenLayer(_PAGE_GOODS_SHOP_BENEFIT_LAYER+goodsCd, 'layer_shopping_benefit');
  501. }
  502. /**
  503. * @type : function
  504. * @access : public
  505. * @desc : 상품사이즈정보보기
  506. * <pre>
  507. * cfGoodsSizeInfo(goodsCd);
  508. * </pre>
  509. */
  510. function cfGoodsSizeInfo(goodsCd, colorCd) {
  511. var str = '<div class="modal fade pd_pop info_size_pop" id="layer_size_info" tabindex="-1" role="dialog" aria-labelledby="infoSizeLabel" aria-hidden="true"></div>';
  512. if ("P" != _frontGb){
  513. str = '<div class="modal pop_full fade pd_pop info_size_pop" id="layer_size_info" tabindex="-1" role="dialog" aria-labelledby="exampleFullLabel" aria-hidden="true"></div>';
  514. }
  515. if ($('#layer_size_info').length == 0) {
  516. $('body').append(str);
  517. }
  518. cfOpenLayer(_PAGE_GOODS_SIZEINFO_LAYER+goodsCd +'/'+colorCd, 'layer_size_info');
  519. }
  520. /**
  521. * @type : function
  522. * @access : public
  523. * @desc : 상품재입고알림보기
  524. * <pre>
  525. * cfGoodsInstockAlarmInfo(goodsCd);
  526. * </pre>
  527. */
  528. function cfGoodsInstockAlarmInfo(goodsCd, colorCd) {
  529. if (!cfCheckLogin()) {
  530. cfnGoToPage(_PAGE_LOGIN);
  531. return false;
  532. }
  533. var str = '<div class="modal fade pd_pop push_restock_pop" id="layer_instock_alarm" tabindex="-1" role="dialog" aria-labelledby="pushRestockLabel" aria-hidden="true"></div>';
  534. if ("P" != _frontGb){
  535. str = '<div class="modal pop_full fade pd_pop push_restock_pop" id="layer_instock_alarm" tabindex="-1" role="dialog" aria-labelledby="exampleFullLabel" aria-hidden="true"></div>';
  536. }
  537. if ($('#layer_instock_alarm').length == 0) {
  538. $('body').append(str);
  539. }
  540. cfOpenLayer(_PAGE_GOODS_INSTOCK_ALARM_LAYER+goodsCd+'/'+colorCd, 'layer_instock_alarm');
  541. }
  542. /**
  543. * @type : function
  544. * @access : public
  545. * @desc : 상품평- 베스트 리뷰 보기
  546. * <pre>
  547. * cfGoodsReviewDetail(goodsCd, bestYn, photoYn, reviewSq);
  548. * </pre>
  549. */
  550. function cfGoodsReviewDetail(goodsCd, bestYn, photoYn, reviewSq) {
  551. var str = '<div class="modal fade pd_pop pd_photoreviewdetail_pop" id="layer_review_best" tabindex="-1" role="dialog" aria-labelledby="pdBestReviewLabel" aria-hidden="true"></div>';
  552. if ("P" != _frontGb){
  553. str = '<div class="modal pop_full fade pd_pop pd_photoreviewdetail_pop" id="layer_review_best" tabindex="-1" role="dialog" aria-labelledby="exampleFullLabel" aria-hidden="true"></div>';
  554. }
  555. if ($('#layer_review_best').length == 0) {
  556. $('body').append(str);
  557. }
  558. var params = new Object();
  559. params.goodsCd = goodsCd;
  560. params.bestYn = bestYn;
  561. params.photoYn = photoYn;
  562. params.reviewSq = reviewSq;
  563. cfOpenLayer(_PAGE_GOODS_REVIEW_DETAIL_LAYER, 'layer_review_best' ,params );
  564. }
  565. /**
  566. * @type : function
  567. * @access : public
  568. * @desc : 상품평- 포토/영상 리뷰 리스트 보기
  569. * <pre>
  570. * cfGoodsPhotoReview(goodsCd);
  571. * </pre>
  572. */
  573. function cfGoodsReviewPhoto(goodsCd) {
  574. var str = '<div class="modal fade pd_pop pd_photoreviewlist_pop" id="layer_review_photo" tabindex="-1" role="dialog" aria-labelledby="pdPhotoReviewListLabel" aria-hidden="true"></div>';
  575. if ("P" != _frontGb){
  576. str = '<div class="modal pop_full fade pd_pop pd_photoreviewlist_pop" id="layer_review_photo" tabindex="-1" role="dialog" aria-labelledby="exampleFullLabel" aria-hidden="true"></div>';
  577. }
  578. if ($('#layer_review_photo').length == 0) {
  579. $('body').append(str);
  580. }
  581. cfOpenLayer(_PAGE_GOODS_REVIEW_PHTO_LIST_LAYER+goodsCd, 'layer_review_photo');
  582. }
  583. /**
  584. * @type : function
  585. * @access : public
  586. * @desc : 공통 full 레이어 띄우기
  587. * <pre>
  588. * cfOpenFullLayer(_PAGE_CARD_LAYER, 'layer_card_benefit');
  589. * </pre>
  590. * @param : page - page. 필수
  591. * @param : tgt - 레이어가 표시될 위치(예, div 태크의 ID). 필수
  592. * @param : oParam - Parameter Object. 옵션
  593. * @param : callbackFnc - 콜백함수. 옵션
  594. */
  595. function cfOpenFullLayer(page, tgt, oParam, callbackFnc) {
  596. if (!oParam) oParam = new Object();
  597. $.post(page
  598. , oParam
  599. , function (result) {
  600. $('body').addClass('lock');
  601. $('#' + tgt).html(result);
  602. $('#' + tgt).show();
  603. if (callbackFnc && $.isFunction(callbackFnc))
  604. callbackFnc();
  605. }
  606. , "html");
  607. return false;
  608. }
  609. /**
  610. * @type : function
  611. * @access : public
  612. * @desc : 공통 full 레이어 닫기(레이어 숨기기)
  613. * <pre>
  614. * cfCloseFullLayer("layer_card_benefit");
  615. * </pre>
  616. * @param : tgt - 숨길 레이어 ID(예, div 태크의 ID). 필수
  617. */
  618. function cfCloseFullLayer(tgt) {
  619. //if (_frontGb == "M"){
  620. // btnClose(tgt);
  621. //}else{
  622. $('#' + tgt).hide();
  623. $('#' + tgt).remove();
  624. $('body').removeClass('lock');
  625. //}
  626. return false;
  627. }
  628. /**
  629. * @type : function
  630. * @access : public
  631. * @desc : 상품문의 full 팝업
  632. * <pre>
  633. * cfGoodsQng();
  634. * </pre>
  635. */
  636. function cfGoodsQng(goodsCd) {
  637. var Param = new Object();
  638. var str = '<div class="pd_pop full_pop pd_qnalist_pop" id="layer_goods_qna"></div>';
  639. if ("P" != _frontGb){
  640. str = '<div class="modal pop_full fade pd_pop pd_qnalist_pop" id="layer_goods_qna" tabindex="-1" role="dialog" aria-labelledby="exampleFullLabel" aria-hidden="true"></div>';
  641. }
  642. if ($('#layer_goods_qna').length == 0) {
  643. $('body').append(str);
  644. }
  645. if ("P" == _frontGb){
  646. cfOpenFullLayer(_PAGE_GOODS_QNA_LAYER + goodsCd, 'layer_goods_qna');
  647. }else{
  648. cfOpenLayer(_PAGE_GOODS_QNA_LAYER + goodsCd, 'layer_goods_qna');
  649. }
  650. }
  651. /**
  652. * @type : function
  653. * @access : public
  654. * @desc : 상품문의 등록 팝업
  655. * <pre>
  656. * cfGoodsQngReg();
  657. * </pre>
  658. */
  659. function cfGoodsQngCreate(goodsCd) {
  660. if (!cfCheckLogin()) {
  661. cfnGoToPage(_PAGE_LOGIN);
  662. return false;
  663. }
  664. var Param = new Object();
  665. var str = '<div class="modal fade pd_pop pd_qnawrite_pop" id="layer_goods_qna_reg" tabindex="-1" role="dialog" aria-labelledby="pdQnaWriteLabel" aria-hidden="true"></div>';
  666. if ("P" != _frontGb){
  667. str = '<div class="modal pop_full fade pd_pop pd_qnawrite_pop" id="layer_goods_qna_reg" tabindex="-1" role="dialog" aria-labelledby="exampleFullLabel" aria-hidden="true"></div>';
  668. }
  669. if ($('#layer_goods_qna_reg').length == 0) {
  670. $('body').append(str);
  671. }
  672. cfOpenLayer(_PAGE_GOODS_QNA_CREATE_LAYER + goodsCd, 'layer_goods_qna_reg');
  673. }
  674. /**
  675. * @type : function
  676. * @access : public
  677. * @desc : 상품문의 full 팝업
  678. * <pre>
  679. * cfGoodsDelivery();
  680. * </pre>
  681. */
  682. function cfGoodsDelivery(goodsCd) {
  683. var Param = new Object();
  684. var str = '<div class="pd_pop full_pop pd_delivery_pop" id="layer_goods_delivery"></div>';
  685. if ("P" != _frontGb){
  686. str = '<div class="modal pop_full fade pd_pop pd_delivery_pop" id="layer_goods_delivery" tabindex="-1" role="dialog" aria-labelledby="exampleFullLabel" aria-hidden="true"></div>';
  687. }
  688. if ($('#layer_goods_delivery').length == 0) {
  689. $('body').append(str);
  690. }
  691. if ("P" == _frontGb){
  692. cfOpenFullLayer(_PAGE_GOODS_DELIVERY_LAYER + goodsCd, 'layer_goods_delivery');
  693. }else{
  694. cfOpenLayer(_PAGE_GOODS_DELIVERY_LAYER + goodsCd, 'layer_goods_delivery');
  695. }
  696. }
  697. /**
  698. * @type : function
  699. * @access : public
  700. * @desc : 상품 상품평 full 팝업
  701. * <pre>
  702. * cfGoodsReview();
  703. * </pre>
  704. */
  705. function cfGoodsReview(goodsCd) {
  706. var Param = new Object();
  707. var str = '<div class="pd_pop full_pop pd_review_pop" id="layer_goods_review"></div>';
  708. if ("P" != _frontGb){
  709. str = '<div class="modal pop_full fade pd_pop pd_review_pop" data-id="layer_infinite" id="layer_goods_review" tabindex="-1" role="dialog" aria-labelledby="exampleFullLabel" aria-hidden="true"></div>';
  710. }
  711. if ($('#layer_goods_review').length == 0) {
  712. $('body').append(str);
  713. }
  714. if ("P" == _frontGb){
  715. cfOpenFullLayer(_PAGE_GOODS_REVIEW_LAYER + goodsCd, 'layer_goods_review',null , fnReviewLayerCollBack);
  716. }else{
  717. cfOpenLayer(_PAGE_GOODS_REVIEW_LAYER + goodsCd, 'layer_goods_review');
  718. }
  719. }
  720. /**
  721. * @type : function
  722. * @access : public
  723. * @desc : Yes24 정보이용동의 화면
  724. * @param : custNm - 고객명
  725. * <pre>
  726. * cfnConsentUseInfo(custNm);
  727. * </pre>
  728. */
  729. function cfnConsentUseInfo(custNm) {
  730. let str = '<div class="modal fade mbAgree_pop" id="layer_consent_useinfo" tabIndex="-1" role="dialog" aria-labelledby="mbAgreeLabel" aria-hidden="true"></div>';
  731. let params = {}
  732. params.custNm = custNm;
  733. if ($('#layer_consent_useinfo').length == 0) {
  734. $('body').append(str);
  735. }
  736. cfOpenLayer(_PAGE_CUSTOMER_CONSENT_USERINFO, 'layer_consent_useinfo',params);
  737. }
  738. /**
  739. * @type : function
  740. * @access : public
  741. * @desc : 패스워드 변경 팝업
  742. * <pre>
  743. * cfnPasswordModify();
  744. * </pre>
  745. */
  746. function cfnPasswordModify() {
  747. let str = '<div class="modal fade pswordModify_pop" id="pswordModifyPop" tabindex="-1" role="dialog" aria-labelledby="pswordModifyLabel" aria-hidden="true"></div>';
  748. if ($('#pswordModifyPop').length == 0) {
  749. $('body').append(str);
  750. }
  751. cfOpenLayer(_PAGE_PASSWORD_MODIFY, 'pswordModifyPop');
  752. }
  753. /**
  754. * @type : function
  755. * @access : public
  756. * @desc : 이용약관 레이어
  757. * <pre>
  758. * cfnUseTermsLayer();
  759. * </pre>
  760. */
  761. function cfnUseTermsLayer() {
  762. let str = '<div class="modal fade policiesTerms_pop" id="policiesTermsPop" tabindex="-1" role="dialog" aria-labelledby="policiesTermsLabel" aria-hidden="true"></div>';
  763. if ($('#policiesTermsPop').length == 0) {
  764. $('body').append(str);
  765. }
  766. cfOpenLayer(_PAGE_USE_TERMS_LAYER, 'policiesTermsPop');
  767. }
  768. /**
  769. * @type : function
  770. * @access : public
  771. * @desc : 개인정보취급방침 레이어
  772. * <pre>
  773. * cfnPrivacyPolicyLayer();
  774. * </pre>
  775. */
  776. function cfnPrivacyPolicyLayer() {
  777. let str = '<div class="modal fade policiesPrivacy_pop" id="policiesPrivacyPop" tabindex="-1" role="dialog" aria-labelledby="policiesPrivacyLabel" aria-hidden="true"></div>';
  778. if ($('#policiesPrivacyPop').length == 0) {
  779. $('body').append(str);
  780. }
  781. cfOpenLayer(_PAGE_PRIVACY_POLICY_LAYER, 'policiesPrivacyPop');
  782. }
  783. /**
  784. * @type : function
  785. * @access : public
  786. * @desc : 개인정보취급위탁 레이어
  787. * <pre>
  788. * cfnPrivacyConsignmentLayer();
  789. * </pre>
  790. */
  791. function cfnPrivacyTrustLayer() {
  792. let str = '<div class="modal fade trustPrivacy_pop" id="trustPrivacyPop" tabindex="-1" role="dialog" aria-labelledby="trustPrivacyLabel" aria-hidden="true"></div>';
  793. if ($('#trustPrivacy_pop').length == 0) {
  794. $('body').append(str);
  795. }
  796. cfOpenLayer(_PAGE_PRIVACY_TRUST_LAYER, 'trustPrivacyPop');
  797. }
  798. /**
  799. * @type : function
  800. * @access : public
  801. * @desc : 로그인 확인
  802. * <pre>
  803. * cfCheckLogin();
  804. * </pre>
  805. */
  806. function cfCheckLogin() {
  807. var result = '';
  808. $.ajax({
  809. type: 'get'
  810. , async: false
  811. , url: '/common/login/check'
  812. , success: function (data) {
  813. result = data;
  814. }
  815. });
  816. return result;
  817. }
  818. /**
  819. * @type : function
  820. * @access : public
  821. * @desc : 위시리스트 담기/삭제
  822. * <pre>
  823. * cfnPutWishList(OBJ);
  824. * </pre>
  825. */
  826. function cfnPutWishList(a) {
  827. if (!cfCheckLogin()) {
  828. cfnGoToPage(_PAGE_LOGIN);
  829. return false;
  830. }
  831. var goodsCd = $(a).attr("goodsCd");
  832. var ithrCd = $(a).attr("ithrCd");
  833. var contentsLoc = $(a).attr("contentsLoc");
  834. var planDtlSq = $(a).attr("planDtlSq");
  835. var flag = 'REG';
  836. if ($(a).hasClass('active')) {
  837. flag = 'DEL'
  838. }
  839. if (gagajf.isNull(goodsCd)) return;
  840. var data = [];
  841. var params = new Object();
  842. params.goodsCd = goodsCd;
  843. if (!gagajf.isNull(ithrCd)) {
  844. params.ithrCd = ithrCd;
  845. }
  846. if (!gagajf.isNull(contentsLoc)) {
  847. params.contentsLoc = contentsLoc;
  848. }
  849. if (!gagajf.isNull(planDtlSq)) {
  850. params.planDtlSq = planDtlSq;
  851. }
  852. data.push(params);
  853. var jsonData = JSON.stringify(data);
  854. if (flag == 'REG') {
  855. gagajf.ajaxJsonSubmit(_PAGE_WISHLIST_PUT, jsonData, function (result) {
  856. var Msg = '';
  857. if (result.status == "200") {
  858. $(a).addClass('active');
  859. if (_frontGb == "M") {
  860. Msg = '위시리스트에 담겼습니다.';
  861. } else {
  862. // mcxDialog.confirm("위시리스트로 이동하시겠습니까?", {
  863. // cancelBtnText: "아니요", //취소 또는 닫기 버튼명
  864. // sureBtnText: "예", //처리문 버튼명
  865. // sureBtnClick: function () {
  866. // cfnGoToPage(_PAGE_WISHLIST);
  867. // }
  868. // });
  869. }
  870. fnGetWishList();
  871. } else if (result.status == "중복") {
  872. Msg = '이미 등록 되어있습니다.';
  873. } else {
  874. //Msg = '오류로 인해 처리되지 않았습니다.';
  875. }
  876. // 메시지 처리
  877. //if (!gagajf.isNull(Msg)) {
  878. // if (_frontGb == "M") {
  879. // mcxDialog.toast(Msg);
  880. // } else {
  881. // mcxDialog.alertC(Msg);
  882. // }
  883. //}
  884. });
  885. } else {
  886. gagajf.ajaxJsonSubmit(_PAGE_WISHLIST_DEL, jsonData, function (result) {
  887. var Msg = '';
  888. if (result.status == "200") {
  889. Msg = '삭제 되었습니다.';
  890. $(a).removeClass('active');
  891. fnGetWishList();
  892. } else {
  893. Msg = '오류로 인해 처리되지 않았습니다.';
  894. }
  895. // 메시지 처리
  896. //if (!gagajf.isNull(Msg)) {
  897. // if (_frontGb == "M") {
  898. // mcxDialog.toast(Msg);
  899. // } else {
  900. // mcxDialog.alertC(Msg);
  901. // }
  902. //}
  903. });
  904. }
  905. return false;
  906. }
  907. /**
  908. * @type : function
  909. * @access : public
  910. * @desc : 카테고리메인 페이지로 이동
  911. * <pre>
  912. * cfnGoToCategoryMain('G032_10', 1100);
  913. * </pre>
  914. * @param : cateGb - 카테고리구분. 필수
  915. * @param : cate1No - 카테고리1번호. 필수
  916. * @since : 2021/03/22
  917. * @author : gagamel
  918. */
  919. var cfnGoToCategoryMain = function(cateGb, cate1No, brandGroupNo) {
  920. var params = '?cateGb=' + cateGb + '&cate1No=' + cate1No;
  921. if (typeof (brandGroupNo) != 'undefined') params += '&brandGroupNo=' + brandGroupNo;
  922. cfnGoToPage(_PAGE_CATE_MAIN + params);
  923. }
  924. /**
  925. * @type : function
  926. * @access : public
  927. * @desc : 아울렛메인 페이지로 이동
  928. * <pre>
  929. * cfnGoToOutletMain('G032_103', 1713);
  930. * </pre>
  931. * @param : cateGb - 카테고리구분. 필수
  932. * @param : cate1No - 카테고리1번호. 필수
  933. * @since : 2021/04/20
  934. * @author : bin2107
  935. */
  936. var cfnGoToOutletMain = function(cateGb, cate1No) {
  937. var params = '?cateGb=' + cateGb + '&cate1No=' + cate1No;
  938. // if (typeof (brandGroupNo) != 'undefined') params += '&brandGroupNo=' + brandGroupNo;
  939. cfnGoToPage(_PAGE_OUTLET_MAIN + params);
  940. }
  941. /**
  942. * @type : function
  943. * @access : public
  944. * @desc : 품목메인 페이지로 이동
  945. * <pre>
  946. * cfnGoToGoodsList(0, 'G032_10', 1100);
  947. * </pre>
  948. * @param : brandGroupNo - 브랜드그룹번호(BYITEM 기준이면 0. 이외는 브랜드그룹번호). 필수
  949. * @param : cateGb - 카테고리구분. 필수
  950. * @param : cate1No - 카테고리1번호. 필수
  951. * @param : cate2No - 카테고리2번호. 옵션
  952. * @param : cate3No - 카테고리3번호. 옵션
  953. * @param : cate4No - 카테고리4번호. 옵션
  954. * @param : cate5No - 카테고리5번호. 옵션
  955. * @since : 2021/03/22
  956. * @author : gagamel
  957. */
  958. var cfnGoToGoodsList = function(brandGroupNo, cateGb, cate1No, cate2No, cate3No, cate4No, cate5No) {
  959. var params = '?brandGroupNo=' + brandGroupNo + '&cateGb=' + cateGb + '&cate1No=' + cate1No;
  960. if (typeof (cate2No) != 'undefined') params += '&cate2No=' + cate2No;
  961. if (typeof (cate3No) != 'undefined') params += '&cate3No=' + cate3No;
  962. if (typeof (cate4No) != 'undefined') params += '&cate4No=' + cate4No;
  963. if (typeof (cate5No) != 'undefined') params += '&cate5No=' + cate5No;
  964. cfnGoToPage(_PAGE_CATE_GOODS_LIST + params);
  965. }
  966. /**
  967. * @type : function
  968. * @access : public
  969. * @desc : 브랜드메인 페이지로 이동
  970. * <pre>
  971. * cfnGoToBrandMain(24555);
  972. * </pre>
  973. * @param : brandGroupNo - 브랜드그룹번호. 필수
  974. * @since : 2021/03/16
  975. * @author : gagamel
  976. */
  977. var cfnGoToBrandMain = function(brandGroupNo) {
  978. var params = '?brandGroupNo=' + brandGroupNo;
  979. cfnGoToPage(_PAGE_BRAND_MAIN + params);
  980. }
  981. /**
  982. * @type : function
  983. * @access : public
  984. * @desc : 기확전상세로 이동
  985. * <pre>
  986. * cfnGoToPlanDetail(251);
  987. * </pre>
  988. * @param : planSq - 기획전 번호. 필수
  989. * @since : 2021/03/29
  990. * @author : sowon
  991. */
  992. var cfnGoToPlanDetail = function (planSq , brandGroupNo) {
  993. var params = '?planSq='+planSq;
  994. if (typeof (brandGroupNo) != 'undefined') params += '&brandGroupNo=' + brandGroupNo;
  995. cfnGoToPage(_PAGE_PLANNING_DETAIL + params);
  996. }
  997. /**
  998. * @type : function
  999. * @access : public
  1000. * @desc : 룩북리스트로 이동
  1001. * <pre>
  1002. * cfnGoToLookbookList();
  1003. * </pre>cfnOpenGoodsPopup
  1004. * @param : brandGroupNo - 브랜드그룹번호 , lookbookGb - 룩북(L) or 브랜드룩북(BL)
  1005. * @since : 2021/04/06
  1006. * @author : bin2107
  1007. */
  1008. var cfnGoToLookbookList = function (lookbookGb, brandGroupNo) {
  1009. var params = '?lookbookGb='+lookbookGb;
  1010. if (typeof (brandGroupNo) != 'undefined') params += '&brandCd=' + brandGroupNo;
  1011. cfnGoToPage(_PAGE_LOOKBOOK_MAIN + params);
  1012. }
  1013. /**
  1014. * @type : function
  1015. * @access : public
  1016. * @desc : 룩북상세로 이동
  1017. * <pre>
  1018. * cfnGoToLookbookDetail(22);
  1019. * </pre>
  1020. * @param : lookbookSq - 룩북 번호. 필수
  1021. * @since : 2021/04/06
  1022. * @author : bin2107
  1023. */
  1024. var cfnGoToLookbookDetail = function (lookbookGb, lookbookSq, brandGroupNo) {
  1025. var params = '?lookbookGb='+lookbookGb+'&lookbookSq=' + lookbookSq;
  1026. if(lookbookGb=='BL'){
  1027. if (typeof (brandGroupNo) != 'undefined') params += '&brandCd=' + brandGroupNo + '&brandGroupNo=' + brandGroupNo;
  1028. }else {
  1029. if (typeof (brandGroupNo) != 'undefined') params += '&brandCd=' + brandGroupNo;
  1030. }
  1031. cfnGoToPage(_PAGE_LOOKBOOK_DETAIL + params);
  1032. }
  1033. /**
  1034. * @type : function
  1035. * @access : public
  1036. * @desc : 마이페이지 리뷰메인화면
  1037. * <pre>
  1038. * cfnGoToMypageReview();
  1039. * </pre>
  1040. * @param :
  1041. * @since : 2021/03/29
  1042. * @author : sowon
  1043. */
  1044. var cfnGoToMypageReview = function (ordNo,ordDtlNo,goodsCd) {
  1045. reviewStat = 'c';
  1046. if(ordNo == null || ordDtlNo == null || goodsCd == null){
  1047. cfnGoToPage(_PAGE_MYPAGE_REVIEW);
  1048. }else{
  1049. cfnGoToPage(_PAGE_MYPAGE_CREATE_REVIEW + ordNo +'/'+ordDtlNo+'/'+goodsCd+'/'+reviewStat);
  1050. }
  1051. }
  1052. /**
  1053. * @type : function
  1054. * @access : public
  1055. * @desc : 클립보드 복사
  1056. * <pre>
  1057. * copyToClipboard();
  1058. * </pre>
  1059. * @param :
  1060. * @since : 2021/03/29
  1061. * @author : eskim
  1062. */
  1063. function copyToClipboard() {
  1064. var t = document.createElement("textarea");
  1065. document.body.appendChild(t);
  1066. t.value = window.location.href;
  1067. t.select();
  1068. document.execCommand('copy');
  1069. document.body.removeChild(t);
  1070. mcxDialog.alert("URL이 복사 되었습니다.");
  1071. }
  1072. /**
  1073. * @type : function
  1074. * @access : public
  1075. * @desc : SNS 공유 기능
  1076. * <pre>
  1077. * copyToClipboard(sns, url, txt, media, description);
  1078. * </pre>
  1079. * @param :
  1080. * @since : 2021/03/29
  1081. * @author : eskim
  1082. */
  1083. function sendSns(sns, url, txt, media, description)
  1084. {
  1085. var o;
  1086. var _txt = encodeURIComponent(txt);
  1087. var _br = encodeURIComponent('\r\n');
  1088. var _media = encodeURIComponent(media);
  1089. var _description = encodeURIComponent(description);
  1090. _url = location.protocol + encodeURIComponent(url);
  1091. switch(sns)
  1092. {
  1093. case 'facebook':
  1094. window.open('http://www.facebook.com/sharer/sharer.php?u=' + _url, "_blank", 'width=600,height=400,resizable=yes,scrollbars=yes');
  1095. break;
  1096. case 'twitter':
  1097. window.open('http://twitter.com/intent/tweet?text=' + _txt + '&url=' + _url, "_blank", 'width=600,height=400,resizable=yes,scrollbars=yes');
  1098. break;
  1099. default:
  1100. mcxDialog.alert('지원하지 않는 SNS입니다.');
  1101. return false;
  1102. }
  1103. }
  1104. var kakaoInitCnt = 0; //카카오 초기화 카운트, 재실행 방지를 위해 사용함
  1105. var kakaoDomainKey = '06cab652ad5d25be2190388d11a88fa4';
  1106. function cfnSendToKakao(linkUrl, linkNm, linkImg) {
  1107. // Kakao Key
  1108. if ( kakaoInitCnt == 0 ) {
  1109. Kakao.init(kakaoDomainKey);
  1110. kakaoInitCnt++;
  1111. }
  1112. Kakao.Link.sendDefault({
  1113. objectType: 'feed',
  1114. content: {
  1115. title: "[STYLE24]\n" + linkNm,
  1116. imageUrl: linkImg,
  1117. link: {
  1118. webUrl: linkUrl,
  1119. mobileWebUrl: linkUrl,
  1120. },
  1121. // description: page,
  1122. imageWidth: 800,
  1123. imageHeight: 800
  1124. },
  1125. buttons: [
  1126. {
  1127. title: 'style24.com',
  1128. link: {
  1129. webUrl: linkUrl,
  1130. mobileWebUrl: linkUrl,
  1131. }
  1132. }
  1133. ]
  1134. })
  1135. }