const appServerURL = "//apps.hyapps.com/"; var MorenvyBanner_AreaData = {"1977":{"id":"1977","name":"\uba54\uc778 : \ucd94\ucc9c \ud0a4\uc6cc\ub4dc","desc":"","displayType":"0","isActive":true,"createDate":"2023-03-07","bannerList":{"1678170343582":{"id":"1678170343582","name":"\ucb48\uafb8\ubbf8","isActive":true,"displayType":0,"displayBeginTime":"2023-03-07 15:00:00","displayEndTime":"2023-03-07 15:00:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"\/product\/search.html?keyword=\ucb48\uafb8\ubbf8&x=0&y=0","openType":"_self"}],"AddOn":[""],"index":0},"1678170369820":{"id":"1678170369820","name":"\ub300\ud328\uc0bc\uacb9\uc0b4","isActive":true,"displayType":0,"displayBeginTime":"2023-03-07 15:00:00","displayEndTime":"2023-03-07 15:00:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"\/product\/search.html?keyword=\ub300\ud328\uc0bc\uacb9\uc0b4&x=0&y=0","openType":"_self"}],"AddOn":[""],"index":1},"1678170380790":{"id":"1678170380790","name":"\uc194\ud2b8\uc5d0\uc774\uc9d5 \uc0bc\uacb9\uc0b4","isActive":true,"displayType":0,"displayBeginTime":"2023-03-07 15:00:00","displayEndTime":"2023-03-07 15:00:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"\/product\/search.html?keyword=\uc194\ud2b8\uc5d0\uc774\uc9d5 \uc0bc\uacb9\uc0b4&x=0&y=0","openType":"_self"}],"AddOn":[""],"index":2},"1678170386720":{"id":"1678170386720","name":"\ucea0\ud551\uace0\uae30","isActive":true,"displayType":0,"displayBeginTime":"2023-03-07 15:00:00","displayEndTime":"2023-03-07 15:00:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"\/product\/search.html?keyword=\ucea0\ud551\uace0\uae30&x=0&y=0","openType":"_self"}],"AddOn":[""],"index":3},"1678170393239":{"id":"1678170393239","name":"\uc0bc\uacc4\ud0d5","isActive":true,"displayType":0,"displayBeginTime":"2023-03-07 15:00:00","displayEndTime":"2023-03-07 15:00:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"\/product\/search.html?keyword=\uc0bc\uacc4\ud0d5&x=0&y=0","openType":"_self"}],"AddOn":[""],"index":4},"1678170403134":{"id":"1678170403134","name":"\ub099\uacf1\uc0c8","isActive":true,"displayType":0,"displayBeginTime":"2023-03-07 15:00:00","displayEndTime":"2023-03-07 15:00:00","html":"","img":[{"url":"","type":0}],"link":[{"url":"\/product\/search.html?keyword=\ub099\uacf1\uc0c8&x=0&y=0","openType":"_self"}],"AddOn":[""],"index":5}},"index":3},"4afd":{"id":"4afd","name":"\uba54\uc778 : \ud31d\uc5c5","desc":"","displayType":"0","isActive":true,"createDate":"2023-03-06","bannerList":{"1695046089364":{"id":"1695046089364","name":"\uc2e0\uaddc\ud68c\uc6d0\uac00\uc785","isActive":true,"displayType":0,"displayBeginTime":"2023-08-01 22:00:00","displayEndTime":"2023-08-01 22:00:00","html":"
\uc6b0\ub9ac \uce74\uce74\uc624\ud1a1 \uce5c\uad6c\ud574\uc694!<\/div>\n
\uce74\uce74\uc624\ud1a1 \ucc44\ub110 \ucd94\uac00 \uc2dc \ub2e8\uace8 \ud61c\ud0dd\uc744 \ub4dc\ub824\uc694<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20240528\/3278dddb30c52b4053ee16e87b59dee0.gif","type":2}],"link":[{"url":"https:\/\/smartmeat.co.kr\/member\/agreement.html","openType":"_self"}],"AddOn":[""],"index":0},"1714991140131":{"id":"1714991140131","name":"3\ucc9c\uc6d0 \ud560\uc778\ucfe0","isActive":true,"displayType":0,"displayBeginTime":"2023-08-01 22:00:00","displayEndTime":"2023-08-01 22:00:00","html":"
\uc6b0\ub9ac \uce74\uce74\uc624\ud1a1 \uce5c\uad6c\ud574\uc694!<\/div>\n
\uce74\uce74\uc624\ud1a1 \ucc44\ub110 \ucd94\uac00 \uc2dc \ub2e8\uace8 \ud61c\ud0dd\uc744 \ub4dc\ub824\uc694<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20240506\/86043c02688401675e8cea4ed1ffec65.gif","type":2}],"link":[{"url":"https:\/\/smartmeat.co.kr\/exec\/front\/newcoupon\/IssueDownload?coupon_no=6078927348000001110","openType":"_self"}],"AddOn":[""],"index":1},"1716883593633":{"id":"1716883593633","name":"\uce74\ud1a1 \uce5c\uad6c \ucd94\ucc9c","isActive":true,"displayType":0,"displayBeginTime":"2023-08-01 22:00:00","displayEndTime":"2023-08-01 22:00:00","html":"
\uc6b0\ub9ac \uce74\uce74\uc624\ud1a1 \uce5c\uad6c\ud574\uc694!<\/div>\n
\uce74\uce74\uc624\ud1a1 \ucc44\ub110 \ucd94\uac00 \uc2dc \ub2e8\uace8 \ud61c\ud0dd\uc744 \ub4dc\ub824\uc694<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20240520\/f20921e1806db6bc9279fc85f786df82.gif","type":2}],"link":[{"url":"http:\/\/pf.kakao.com\/_wxiCAG\/friend","openType":"_self"}],"AddOn":[""],"index":2}},"index":0},"b231":{"id":"b231","name":"\uba54\uc778 : \uba54\uc778\ube44\uc8fc\uc5bc","desc":"","displayType":"0","isActive":true,"createDate":"2023-03-06","bannerList":{"1678078168497":{"id":"1678078168497","name":"\uba54\uc778\ube44\uc8fc\uc5bc01","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"
EVENT<\/div>\n
\ub611\ub611\ud55c\uace0\uae30 \ub2e8\uace8\uc804\uc6a9
\ud2b9\ubcc4 \ud560\uc778\ud61c\ud0dd \ubc1b\uc544\uac00\uc138\uc694 <\/div>\n
\ud2b9\ubcc4\ud55c \ub611\uace0 \ud560\uc778\ud61c\ud0dd!<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20230810\/cd812cdd34fb6f9dade425c937524a6b.jpg","type":2}],"link":[{"url":"\/product\/list.html?cate_no=56","openType":"_self"}],"AddOn":[""],"index":0},"1678078171369":{"id":"1678078171369","name":"\uba54\uc778\ube44\uc8fc\uc5bc02","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"
PROMOTION<\/div>\n
\uc2ac\uae30\ub85c\uc6b4 \ucea0\ud551\uc0dd\ud65c
\ub611\ub611\ud55c\uace0\uae30\uc5d0\uc11c \ub9cc\ub098\ubcf4\uc138\uc694<\/div>\n
\ucea0\ud551\uc900\ube44\ub294 \ub611\ub611\ud55c\uace0\uae30\uc5d0\uc11c!<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20230905\/246eab7009eb77256578275987099ee4.jpg","type":2}],"link":[{"url":"\/product\/list.html?cate_no=25","openType":"_self"}],"AddOn":[""],"index":1},"1678078171948":{"id":"1678078171948","name":"\uba54\uc778\ube44\uc8fc\uc5bc03","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"
PROMOTION<\/div>\n
\ub9c8\uc74c\uc744\uc804\ud558\ub294
\ud2b9\ubcc4\ud55c \uc120\ubb3c<\/div>\n
\ub611\ub611\ud55c \uace0\uae30\uc5d0\uc11c \uc900\ube44\ud558\uc138\uc694<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20230710\/a05c95eb247d35af5c7d3c9b47ef563e.png","type":2}],"link":[{"url":"\/product\/list.html?cate_no=26","openType":"_self"}],"AddOn":[""],"index":2},"1678078179295":{"id":"1678078179295","name":"\uba54\uc778\ube44\uc8fc\uc5bc04","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"
T.G ONLY<\/div>\n
\uc624\ub298 \ubb50 \uba39\uc9c0?
\uace0\ubbfc\ud558\uc9c0\ub9c8\uc138\uc694<\/div>\n
\uc624\ub85c\uc9c0 \ub611\ub611\ud55c\uace0\uae30\uc5d0\uc11c\ub9cc!<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20230706\/7ecdd9114fcaac979ff555f9dbb9695b.jpg","type":2}],"link":[{"url":"\/product\/list.html?cate_no=26","openType":"_self"}],"AddOn":[""],"index":3}},"index":1},"805a":{"id":"805a","name":"\uba54\uc778 : \uce74\ud14c\uace0\ub9ac","desc":"","displayType":"0","isActive":true,"createDate":"2023-03-06","bannerList":{"1678078524273":{"id":"1678078524273","name":"\ubca0\uc2a4\ud2b8","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20240429\/625da493f54f6c5b61e6f5ce87943533.png","type":2}],"link":[{"url":"\b\/product\/list_thumb.html?cate_no=24","openType":"_self"}],"AddOn":[""],"index":3,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1678078533723":{"id":"1678078533723","name":"\ucea0\ud551","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20240429\/91b8064c26bd1b1723c64b08e64b4349.png","type":2}],"link":[{"url":"\/product\/list_thumb.html?cate_no=25","openType":"_self"}],"AddOn":[""],"index":7,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1678078534504":{"id":"1678078534504","name":"\ud560\uc778\ud589\uc0ac","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20240429\/3c8253ea3b0d4be0eb5b14513b13f77e.png","type":2}],"link":[{"url":"\/product\/list_thumb.html?cate_no=57","openType":"_self"}],"AddOn":[""],"index":1,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1678078534935":{"id":"1678078534935","name":"\uc194\ud2b8\uc5d0\uc774\uc9d5","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20240429\/2b1793df76cf2be70c806144dcaf0736.jpg","type":2}],"link":[{"url":"\/product\/list_thumb.html?cate_no=55","openType":"_self"}],"AddOn":[""],"index":5,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1678078535372":{"id":"1678078535372","name":"\uc0dd\uace0\uae30","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20240416\/880d8a2c6b110a1462c9a062d47372e9.png","type":2}],"link":[{"url":"\/product\/list_thumb.html?cate_no=58","openType":"_self"}],"AddOn":[""],"index":6,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1678078535723":{"id":"1678078535723","name":"\ubc00\ud0a4\ud2b8","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20240429\/5f46aa63922163e06cbddca1a19dbae4.jpg","type":2}],"link":[{"url":"\/product\/list_thumb.html?cate_no=54","openType":"_self"}],"AddOn":[""],"index":4,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1678078536130":{"id":"1678078536130","name":"\uce5c\uad6c\uc804\uc6a9","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20240429\/da35f7edc57aa8fd413f6832d22cbdee.png","type":2}],"link":[{"url":"\/product\/list_thumb.html?cate_no=56","openType":"_self"}],"AddOn":[""],"index":0,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1678078536552":{"id":"1678078536552","name":"\uc774\ubca4\ud2b8","isActive":false,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20240131\/07eddd20e1fb8a02e0c7894b0a149942.png","type":2}],"link":[{"url":"\/board\/gallery\/list.html?board_no=8&category_no=1","openType":"_self"}],"AddOn":[""],"index":8,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1678078538010":{"id":"1678078538010","name":"\uc2e0\uc81c\ud488","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20240429\/0f174f9a1e093a0ee644d63ab11fa938.png","type":2}],"link":[{"url":"\b\/product\/list_thumb.html?cate_no=51","openType":"_self"}],"AddOn":[""],"index":2,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1678078538648":{"id":"1678078538648","name":"\ud2f0\uc154\uce20","isActive":false,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"","img":[{"url":"https:\/\/ecudemo270057.cafe24.com\/web\/upload\/NNEditor\/20230306\/c686803f32a611bbf9104ab90fe7eca2.png","type":2}],"link":[{"url":"\/product\/project.html?cate_no=51","openType":"_self"}],"AddOn":[""],"index":9,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1678078539165":{"id":"1678078539165","name":"\ud3f0\ucf00\uc774\uc2a4","isActive":false,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"","img":[{"url":"https:\/\/ecudemo270057.cafe24.com\/web\/upload\/NNEditor\/20230306\/934d1dd3c9de6c7994077069024e1626.png","type":2}],"link":[{"url":"","openType":"_self"}],"AddOn":[""],"index":10,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]},"1678078539671":{"id":"1678078539671","name":"\uc2a4\ud2f0\ucee4","isActive":false,"displayType":0,"displayBeginTime":"2023-03-06 13:00:00","displayEndTime":"2023-03-06 13:00:00","html":"","img":[{"url":"https:\/\/ecudemo270057.cafe24.com\/web\/upload\/NNEditor\/20230306\/1cb2732174701fdc10efdbd5d93205fd.png","type":2}],"link":[{"url":"","openType":"_self"}],"AddOn":[""],"index":11,"repeatBeginTime":" ::00","repeatEndTime":" ::00","repeatType":"day","repeatData":{"day":"1","week":{"everyW":"1","everyD":0},"month":{"everyM":"1","month_type":"month_day","month_day":"1","month_week_everyW":"1","month_week_everyD":"7"}},"videoUrl":[{"url":"","ratioX":16,"ratioY":9,"autoPlay":false}]}},"index":2},"b5ef":{"id":"b5ef","name":"\uba54\uc778 : \uc2a4\uc640\uc774\ud504 \ubc30\ub108","desc":"","displayType":"0","isActive":true,"createDate":"2023-03-06","bannerList":{"1678078937127":{"id":"1678078937127","name":"\ucea0\ud551\uc138\ud2b8","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"
\uc624\ub298\ub3c4 \ub5a0\ub098\uc790!<\/div>\n
\ucea0\ud551\uc740 \ub611\ub611\ud55c\uace0\uae30\uc640 \ud568\uaed8<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20230706\/f61e8d2f65abc0036c34612c1e24542d.jpg","type":2}],"link":[{"url":"#","openType":"_self"}],"AddOn":[""],"index":0},"1678078939478":{"id":"1678078939478","name":"\uc194\ud2b8\uc5d0\uc774\uc9d5 \uc18c\uace0\uae30","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"
\uc194\ud2b8\uc5d0\uc774\uc9d5 Part.1<\/div>\n
\uc774\ub9db\uc5d0\uc11c \ub179\uc544\ubc84\ub9ac\ub294 \ubc14\ub85c \uc774\ub9db!<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20230706\/943a6522e145be624538e522b38d2f00.jpg","type":2}],"link":[{"url":"#","openType":"_self"}],"AddOn":[""],"index":1},"1678078940202":{"id":"1678078940202","name":"\uc194\ud2b8\uc5d0\uc774\uc9d5 \ub3fc\uc9c0\uace0\uae30","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"
\uc194\ud2b8\uc5d0\uc774\uc9d5 Part.2<\/div>\n
\ud55c\uad6d\uc778\uc774\ub77c\uba74 \uc9c0\ub098\uce60 \uc218 \uc5c6\ub294 \ub9db!<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20230706\/22dcbca44daa036db97385980f1c3135.jpg","type":2}],"link":[{"url":"#","openType":"_self"}],"AddOn":[""],"index":2}},"index":4},"0649":{"id":"0649","name":"\uba54\uc778 : \uc774\ubca4\ud2b8 \ubc30\ub108","desc":"","displayType":"0","isActive":true,"createDate":"2023-03-06","bannerList":{"1678079126080":{"id":"1678079126080","name":"\uba54\uc778 \uc774\ubca4\ud2b8 \ubc30\ub10801","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"
\ud3ec\ud1a0\ub9ac\ubdf0 \uc791\uc131\uc2dc \uace0\uae30\uc99d\uc815!<\/div>\n
\ub9e4\uc6d4 \ubca0\uc2a4\ud2b8\ud6c4\uae30 4\ubd84 \uc120\uc815\ud569\ub2c8\ub2e4<\/div>","img":[{"url":"https:\/\/ecudemo270057.cafe24.com\/web\/upload\/NNEditor\/20230306\/56b89d3e914b11e485ac1160661c0d08.png","type":2}],"link":[{"url":"#","openType":"_self"}],"AddOn":[""],"index":0},"1678079126704":{"id":"1678079126704","name":"\uce74\ud1a1\uce5c\uad6c","isActive":false,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"
\uc6b0\ub9ac \uce74\uce74\uc624\ud1a1 \uce5c\uad6c\ud574\uc694!<\/div>\n
\uce74\uce74\uc624\ud1a1 \ucc44\ub110 \ucd94\uac00 \uc2dc \ud560\uc778 \ucfe0\ud3f0\uc744 \ub4dc\ub824\uc694<\/div>","img":[{"url":"https:\/\/ecudemo270057.cafe24.com\/web\/upload\/NNEditor\/20230306\/f4a4b6a25a7565ee8fcb922260b0f577.png","type":2}],"link":[{"url":"http:\/\/pf.kakao.com\/_wxiCAG\/friend","openType":"_self"}],"AddOn":[""],"index":1},"1690898663461":{"id":"1690898663461","name":"\uba54\uc778 \uc774\ubca4\ud2b8 \ubc30\ub10801","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"
\ub9ac\ubdf0 \uc791\uc131\uc2dc 1000\ud3ec\uc778\ud2b8 \uc99d\uc815!<\/div>\n
\ub9ac\ubdf0 \uc4f0\uace0 \ud3ec\uc778\ud2b8 \ubc1b\uc544\uac00\uc138\uc694<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20230802\/1a24fe454e9dec9510df1b22b518840c.jpg","type":2}],"link":[{"url":"#","openType":"_self"}],"AddOn":[""],"index":2}},"index":5},"156f":{"id":"156f","name":"\uba54\uc778 : \uc720\ud29c\ube0c","desc":"","displayType":"0","isActive":true,"createDate":"2023-03-06","bannerList":{"1678079416419":{"id":"1678079416419","name":"JTV6VC1OCFw","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"
\ub611\ub611\ud55c \uace0\uae30\ub85c \ub2e4\uc774\uc5b4\ud2b8\uc5d0 \uc88b\uc740 \uac04\ud3b8 \uc218\uc721 \ub9cc\ub4e4\uae30<\/div>\n
\uc601\uc0c1\uc73c\ub85c \uc27d\uac8c \ub9cc\ub4e4\uc5b4\ubcf4\uc544\uc694!<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20230801\/a2d878df56e662ada4a5080a2a9b3655.jpg","type":2}],"link":[{"url":"","openType":"_self"}],"AddOn":[""],"index":0}},"index":6},"7b46":{"id":"7b46","name":"\ubd84\ub958 : \uc774\ubca4\ud2b8 \ubc30\ub108","desc":"","displayType":"0","isActive":true,"createDate":"2023-03-06","bannerList":{"1678079520773":{"id":"1678079520773","name":"\ubd84\ub958 \uc774\ubca4\ud2b8 \ubc30\ub10801","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"
\uc5b4\uc11c\uc640 \ub611\uace0\ub294 \ucc98\uc74c\uc774\uc9c0!<\/div>\n
\ub9db\uacfc \ub2e4\uc774\uc5b4\ud2b8\ub97c \ud558\ub098\ub85c \uc7a1\uc558\uc5b4!<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20230706\/3ba622834f7e79ab0dc17cd6d02456a2.jpg","type":2}],"link":[{"url":"https:\/\/smartmeat.cafe24.com\/skin-skin2\/product\/list_thumb.html?cate_no=27","openType":"_self"}],"AddOn":[""],"index":0},"1678079521967":{"id":"1678079521967","name":"\ubd84\ub958 \uc774\ubca4\ud2b8 \ubc30\ub10802","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"
\ub611\uace0\uc758 \uc774\ubca4\ud2b8\ub294 \ud56d\uc2dc!<\/div>\n
Let's GO GO!<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20230706\/e2e73ea56c5b99aa2ed2b735662d9c10.jpg","type":2}],"link":[{"url":"https:\/\/smartmeat.cafe24.com\/skin-skin2\/board\/gallery\/list.html?board_no=8&category_no=1","openType":"_self"}],"AddOn":[""],"index":1}},"index":7},"cd31":{"id":"cd31","name":"\uc0c1\uc138 : \uc774\ubca4\ud2b8 \ubc30\ub108","desc":"","displayType":"0","isActive":true,"createDate":"2023-03-06","bannerList":{"1678080032511":{"id":"1678080032511","name":"\uc0c1\uc138 \uc774\ubca4\ud2b8 \ubc30\ub10801","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"
10% \ucd94\uac00 \ud560\uc778 \ubc1b\uc544\uc694!<\/div>\n
\ub124\uc774\ubc84 \ud398\uc774\ub85c \uad6c\ub9e4\ud558\uae30<\/div>","img":[{"url":"https:\/\/ecudemo270057.cafe24.com\/web\/upload\/NNEditor\/20230306\/5ac754db7203c36deae9a99d26441ef2.png","type":2}],"link":[{"url":"#","openType":"_self"}],"AddOn":[""],"index":0},"1678080033076":{"id":"1678080033076","name":"\uc0c1\uc138 \uc774\ubca4\ud2b8 \ubc30\ub10802","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"
\ud68c\uc6d0 \uac00\uc785 \uc548 \ud558\uc168\ub2e4\uba74<\/div>\n
\uc2e0\uaddc \uac00\uc785 \uc2dc \ucfe0\ud3f0\uc744 \ub4dc\ub824\uc694<\/div>","img":[{"url":"https:\/\/ecudemo270057.cafe24.com\/web\/upload\/NNEditor\/20230306\/4c2d324ede1a6e82267bb41d24522b8d.png","type":2}],"link":[{"url":"#","openType":"_self"}],"AddOn":[""],"index":1}},"index":8},"31e2":{"id":"31e2","name":"\ub808\uc774\uc544\uc6c3 : \uc88c\uce21\ubc30\ub108","desc":"","displayType":"0","isActive":true,"createDate":"2023-03-06","bannerList":{"1678080174794":{"id":"1678080174794","name":"\uc88c\uce21\ubc30\ub108","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"","img":[{"url":"https:\/\/ecudemo270057.cafe24.com\/web\/upload\/NNEditor\/20230308\/348641d84457526c17107c227ffbed3d.png","type":2}],"link":[{"url":"#","openType":"_self"}],"AddOn":[""],"index":0}},"index":10},"2821":{"id":"2821","name":"\ubd84\ub958 : \uc774\ubca4\ud2b8 \ubc30\ub108","desc":"","displayType":"0","isActive":true,"createDate":"2023-07-05","bannerList":{"1678079520773":{"id":"1678079520773","name":"\ubd84\ub958 \uc774\ubca4\ud2b8 \ubc30\ub10801","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"
\uc138\uc0c1\uc740 \ud1a0\ub07c\uac00 \uc9c0\ud0a8\ub2e4!<\/div>\n
\uc2a4\ud29c\ub514\uc624 \ud0a4\ud0a4 \ub798\ube57 \ud2f0\uc154\uce20<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20230706\/2536119d3e9ebdd6e7ba08f240f01bca.jpg","type":2}],"link":[{"url":"#","openType":"_self"}],"AddOn":[""],"index":0},"1678079521967":{"id":"1678079521967","name":"\ubd84\ub958 \uc774\ubca4\ud2b8 \ubc30\ub10802","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"
\ub798\uc544\uc758 \uccab\ubc88\uc9f8 \ud3ec\ud1a0\ubd81<\/div>\n
\ub798\uc544 The First Stage<\/div>","img":[{"url":"https:\/\/ecimg.cafe24img.com\/pg428b35881226099\/smartmeat\/web\/upload\/NNEditor\/20230706\/8ae63fd0d886d9a7bbd5f00f2fa9cd22.jpg","type":2}],"link":[{"url":"#","openType":"_self"}],"AddOn":[""],"index":1}},"index":10},"340c":{"id":"340c","name":"\ubd84\ub958 : \uc774\ubca4\ud2b8 \ubc30\ub108","desc":"","displayType":"0","isActive":true,"createDate":"2023-07-05","bannerList":{"1678079520773":{"id":"1678079520773","name":"\ubd84\ub958 \uc774\ubca4\ud2b8 \ubc30\ub10801","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"
\uc138\uc0c1\uc740 \ud1a0\ub07c\uac00 \uc9c0\ud0a8\ub2e4!<\/div>\n
\uc2a4\ud29c\ub514\uc624 \ud0a4\ud0a4 \ub798\ube57 \ud2f0\uc154\uce20<\/div>","img":[{"url":"https:\/\/ecudemo270057.cafe24.com\/web\/upload\/NNEditor\/20230306\/4ddf31ddac285b09e0a0674545981c0d.png","type":2}],"link":[{"url":"#","openType":"_self"}],"AddOn":[""],"index":0},"1678079521967":{"id":"1678079521967","name":"\ubd84\ub958 \uc774\ubca4\ud2b8 \ubc30\ub10802","isActive":true,"displayType":0,"displayBeginTime":"2023-03-06 14:00:00","displayEndTime":"2023-03-06 14:00:00","html":"
\ub798\uc544\uc758 \uccab\ubc88\uc9f8 \ud3ec\ud1a0\ubd81<\/div>\n
\ub798\uc544 The First Stage<\/div>","img":[{"url":"https:\/\/ecudemo270057.cafe24.com\/web\/upload\/NNEditor\/20230306\/dbb10a4030d417810dd9d273b447b05b.png","type":2}],"link":[{"url":"#","openType":"_self"}],"AddOn":[""],"index":1}},"index":11}}; var LastSaveData = { "lastSaveSkin": "똑똑한고기", "lastSaveDate": "2024-08-21 13:57:50" }; // 아이콘 var IconsPC = {"soldout":"https:\/\/img.echosting.cafe24.com\/design\/skin\/admin\/ko_KR\/ico_product_soldout.gif"}; var IconsMobile = {"soldout":"https:\/\/img.echosting.cafe24.com\/design\/skin\/admin\/ko_KR\/ico_product_soldout.gif"}; // 활성된 배너 엘리먼트, 배너 데이터 var activeBannerElem = []; // 동영상 url 구분하기 function getVideoDetails( url ) { try { const urlObj = new URL( url ); let site = ""; let videoID = ""; if( urlObj.hostname.includes( "youtube.com" ) || urlObj.hostname.includes( "youtu.be" ) ) { site = "youtube"; if( urlObj.hostname.includes( "youtube.com" ) ) { const shortsIndex = url.indexOf("/shorts/"); if( shortsIndex !== -1 ) { let videoIDWithParams = url.substring( shortsIndex + 8 ); const paramIndex = videoIDWithParams.indexOf( "?" ); if( paramIndex !== -1 ) videoID = videoIDWithParams.substring( 0, paramIndex ); else videoID = videoIDWithParams; } else { videoID = urlObj.searchParams.get( "v" ); } } else if( urlObj.hostname.includes( "youtu.be" ) ) { videoID = urlObj.pathname.slice( 1 ); } } else if( urlObj.hostname.includes( "vimeo.com" ) ) { site = "vimeo"; if( urlObj.hostname.includes( "player.vimeo.com" ) ) videoID = urlObj.pathname.split( "/" )[ 2 ]; else videoID = urlObj.pathname.split( "/" )[ 1 ]; } else if( urlObj.hostname.includes( "charlla.io" ) ) { site = "charlla"; videoID = urlObj.pathname.split( "/" )[ 1 ]; } else if( urlObj.pathname.endsWith( ".mp4" ) ) { site = "mp4"; videoID = urlObj.pathname; } else { site = "unknown"; videoID = null; } return { site, videoID }; } catch( error ) { console.error( "유효한 URL이 아닙니다:", error ); return null; } } function makeVideoTag( html, data ) { for( let i in data.videoUrl ) { const urlData = data.videoUrl[ i ]; if( null == urlData.url || "undefined" == urlData.url || "" == urlData.url ) { switch( i ) { case "0" : html = html.replace( /{#video_1}/gi, "" ); break; case "1" : html = html.replace( /{#video_2}/gi, "" ); break; case "2" : html = html.replace( /{#video_3}/gi, "" ); break; } continue; } const siteUrl = getVideoDetails( urlData.url ); if( null == siteUrl ) { switch( i ) { case "0" : html = html.replace( /{#video_1}/gi, "" ); break; case "1" : html = html.replace( /{#video_2}/gi, "" ); break; case "2" : html = html.replace( /{#video_3}/gi, "" ); break; } continue; } let pointerEvent = ""; if( true == urlData.autoPlay ) pointerEvent = "pointer-events:none;" else pointerEvent = "pointer-events:auto;" let aspectRatio = urlData.ratioX + "/" + urlData.ratioY; let iframeElem = ""; switch( siteUrl.site ) { case "youtube" : { iframeElem = "
"; } break; case "vimeo" : { iframeElem = "
"; } break; case "charlla" : { iframeElem = "
"; } break; case "mp4" : { let autoplay_chk = ""; if( true == urlData.autoPlay ) autoplay_chk = "autoplay"; iframeElem = "
"; } break; default : { console.log( "영상없음" ); } break; } switch( i ) { case "0" : html = html.replace( /{#video_1}/gi, iframeElem ); break; case "1" : html = html.replace( /{#video_2}/gi, iframeElem ); break; case "2" : html = html.replace( /{#video_3}/gi, iframeElem ); break; } } return html; } //--------------------------------------------------------------------------------------------------------------------------------- // 배너 관리자 Init_MorenvyBannerManager(); //(function( CAFE24API ) function Init_MorenvyBannerManager() { console.log( "%c----- Banner Manager -----", "color:rgb(20, 85, 249); font-size: 25px;" ); console.log( "최종 수정 스킨 : " + LastSaveData[ "lastSaveSkin" ] ); console.log( "최종 수정 일자 : " + LastSaveData[ "lastSaveDate" ] ); console.log( "https://morenvy.com" ); console.log( "%c--------------------------", "color:rgb(20, 85, 249); font-size: 25px;" ); // 배너영역 클래스 검색 var bannerAreaList = document.getElementsByClassName( "morenvy-banner-area" ); if( null == bannerAreaList ) return; for( var i = 0; i < bannerAreaList.length; ) { // HTML에서 배너영역 ID 가져온다 var bannerArea = bannerAreaList[ i ]; var areaID = bannerArea.getAttribute( "area_id" ); // 배너영역 ID로 데이터 검색 var areaData = MorenvyBanner_AreaData[ areaID ]; if( null == areaData ) { bannerArea.style.display = "none"; ++i; continue; } // 순서대로 출력 var bannerArray = []; if( "0" == areaData.displayType ) { for( var key in areaData.bannerList ) { bannerArray.push( areaData.bannerList[ key ] ); } bannerArray.sort( function( a, b ) { return a.index > b.index ? 1 : -1; } ); } // 랜덤 출력 else if( "1" == areaData.displayType ) { for( var key in areaData.bannerList ) { areaData.bannerList[ key ].random = Math.random(); bannerArray.push( areaData.bannerList[ key ] ); } bannerArray.sort( function( a, b ) { return a.random > b.random ? 1 : -1; } ); } var bannerList = bannerAreaList[ i ].getElementsByClassName( "morenvy-banner" ); if( 0 == bannerList.length ) { bannerArea.style.display = "none"; ++i; continue; } // 설정 수 보다 엘리먼트가 부족할 경우 마지막 엘리먼트 복사 if( bannerList.length < bannerArray.length ) { var copyTarget = bannerList[ bannerList.length - 1 ]; var loopCount = bannerArray.length - bannerList.length; for( var j = 0; j < loopCount; ++j ) { var copyElem = copyTarget.cloneNode( true ); //bannerAreaList[ i ].append( copyElem ); copyTarget.parentElement.append( copyElem ); } } var showIndex = 0; for( var j = 0; j < bannerList.length; ) { var bannerData = j >= bannerArray.length ? null : bannerArray[ j ]; // 배너 데이터 없음 if( null == bannerData ) { bannerList[ j ].remove(); bannerArray.splice( j, 1 ); continue; } // 활성 중? if( false == bannerData.isActive ) { bannerList[ j ].remove(); bannerArray.splice( j, 1 ); continue; } // 기간 노출 if( 1 == bannerData.displayType ) { var beginDate = new Date( bannerData.displayBeginTime.replace( /-/g, "/" ) ); var endDate = new Date( bannerData.displayEndTime.replace( /-/g, "/" ) ); var curTime = new Date(); if( beginDate > curTime || endDate < curTime ) { bannerList[ j ].remove(); bannerArray.splice( j, 1 ); continue; } } // 반복 노출 if( 2 == bannerData.displayType ) { let curTime = new Date(); const getWeek = () => { const now = new Date(); const currentDate = now.getDate(); const firstDay = new Date( now.setDate( 1 ) ).getDay(); return Math.ceil( (currentDate + firstDay) / 7 ); }; const checkDay = ( day ) => { return curTime.getDate() == day; }; const checkWeek = ( week, day, isFlag ) => { if( getWeek() == week ) { if( true == isFlag ) { let flag = 0x00000000; switch( curTime.getDay() ) { case 1 : flag = 0x00000001; break; case 2 : flag = 0x00000002; break; case 3 : flag = 0x00000004; break; case 4 : flag = 0x00000008; break; case 5 : flag = 0x00000010; break; case 6 : flag = 0x00000012; break; case 7 : flag = 0x00000014; break; } if( flag & day ) return true; } else { if( curTime.getDay() == day ) return true; } } return false; }; let isRemove = false; const repeatData = bannerData.repeatData; // 매월 특정 일마다 반복 if( "day" == bannerData.repeatType ) { if( false == checkDay( repeatData.day ) ) isRemove = true; } // 특정 주, 요일 마다 반복 else if( "week" == bannerData.repeatType ) { if( false == checkWeek( repeatData.week.everyW, repeatData.week.everyD, true ) ) isRemove = true; } // 특정 월 반복 else if( "month" == bannerData.repeatType ) { if( curTime.getMonth() + 1 == repeatData.month.everyM ) { // 특정 일 반복 if( "month_day" == repeatData.month.month_type ) { if( false == checkDay( repeatData.month.month_day ) ) isRemove = true; } // 특정 주, 요일 마다 반복 else { if( false == checkWeek( repeatData.month.month_week_everyW, repeatData.month.month_week_everyD, false ) ) isRemove = true; } } else { isRemove = true; } } if( true == isRemove ) { bannerList[ j ].remove(); bannerArray.splice( j, 1 ); continue; } } var html = bannerList[ j ].innerHTML; html = html.replace( /%7B/gi, "{" ); html = html.replace( /%7D/gi, "}" ); html = html.replace( /{#areaName}/gi, areaData.name ); html = html.replace( /{#areaDesc}/gi, areaData.desc ); html = html.replace( /{#areaDisplayType}/gi, areaData.displayType ); html = html.replace( /{#num}/gi, ++showIndex ); html = html.replace( /{#title}/gi, bannerData.name ); html = html.replace( /{#displayType}/gi, bannerData.displayType ); html = html.replace( /{#displayBeginTime}/gi, bannerData.displayBeginTime ); html = html.replace( /{#displayEndTime}/gi, bannerData.displayEndTime ); html = html.replace( /{#text_1}/gi, 0 < bannerData.AddOn.length ? bannerData.AddOn[ 0 ] : "" ); html = html.replace( /{#text_2}/gi, 1 < bannerData.AddOn.length ? bannerData.AddOn[ 1 ] : "" ); html = html.replace( /{#text_3}/gi, 2 < bannerData.AddOn.length ? bannerData.AddOn[ 2 ] : "" ); html = html.replace( /{#link_1}/gi, 0 < bannerData.link.length ? bannerData.link[ 0 ].url : "" ); html = html.replace( /{#link_2}/gi, 1 < bannerData.link.length ? bannerData.link[ 1 ].url : "" ); html = html.replace( /{#link_3}/gi, 2 < bannerData.link.length ? bannerData.link[ 2 ].url : "" ); html = html.replace( /{#target_1}/gi, 0 < bannerData.link.length ? bannerData.link[ 0 ].openType : "" ); html = html.replace( /{#target_2}/gi, 1 < bannerData.link.length ? bannerData.link[ 1 ].openType : "" ); html = html.replace( /{#target_3}/gi, 2 < bannerData.link.length ? bannerData.link[ 2 ].openType : "" ); html = html.replace( /{#html}/gi, bannerData.html ); // 비디오 or 이미지 태그를 데이터 값에 따라 명확히 구분 if( null != bannerData.videoUrl && "undefined" != bannerData.videoUrl ) { if( 0 < bannerData.videoUrl.length ) { const url = bannerData.videoUrl[ 0 ].url; if( null != url && "" != url ) html = html.replace( /{#imgTag_1_or_video_1}/gi, "{#video_1}" ); else html = html.replace( /{#imgTag_1_or_video_1}/gi, "{#imgTag_1}" ); } else { html = html.replace( /{#imgTag_1_or_video_1}/gi, "{#imgTag_1}" ); } if( 1 < bannerData.videoUrl.length ) { const url = bannerData.videoUrl[ 1 ].url; if( null != url && "" != url ) html = html.replace( /{#imgTag_2_or_video_2}/gi, "{#video_2}" ); else html = html.replace( /{#imgTag_2_or_video_2}/gi, "{#imgTag_2}" ); } else { html = html.replace( /{#imgTag_2_or_video_2}/gi, "{#imgTag_2}" ); } if( 2 < bannerData.videoUrl.length ) { const url = bannerData.videoUrl[ 2 ].url; if( null != url && "" != url ) html = html.replace( /{#imgTag_3_or_video_3}/gi, "{#video_3}" ); else html = html.replace( /{#imgTag_3_or_video_3}/gi, "{#imgTag_3}" ); } else { html = html.replace( /{#imgTag_3_or_video_3}/gi, "{#imgTag_3}" ); } } html = html.replace( /{#imgTag_1}/gi, 0 < bannerData.img.length ? "" : "" ); html = html.replace( /{#imgTag_2}/gi, 1 < bannerData.img.length ? "" : "" ); html = html.replace( /{#imgTag_3}/gi, 2 < bannerData.img.length ? "" : "" ); html = html.replace( /{#imgSrc_1}/gi, 0 < bannerData.img.length ? bannerData.img[ 0 ].url : "" ); html = html.replace( /{#imgSrc_2}/gi, 1 < bannerData.img.length ? bannerData.img[ 1 ].url : bannerData.img[ bannerData.img.length - 1 ].url ); html = html.replace( /{#imgSrc_3}/gi, 2 < bannerData.img.length ? bannerData.img[ 2 ].url : bannerData.img[ bannerData.img.length - 1 ].url ); // 비디오 태그 생성 html = makeVideoTag( html, bannerData ); bannerList[ j ].innerHTML = html; activeBannerElem.push( { elem : bannerList[ j ], bannerData : bannerData } ); ++j; } if( 0 == bannerList.length ) bannerArea.style.display = "none"; ++i; bannerArea.classList.add( "init" ); } }/* )( CAFE24API.init( { version: "2022-09-01", client_id: "gSOPn7dNJxAp8cu31kDDtD" } ) );*/ //---------------------------------------------------------------------------------------------------------------------------- // 상품 진열 플러그인 function Init_MorenvyProductDisplay() { // 상품 정보 요청 최대 개수, cafe24에서 최대 100개까지 지원됨. const maxSearchCount = 100; // 상품 정보 요청할 상품 번호 var needToSearchProduct = {}; // 상품 정보 콜백 받은 후 html replace 필요한 엘리먼트들, 해당 엘리먼트 내 상품 번호 var needToReplaceElems = []; // 초기화 필요한 product area var needToInitPrudctArea = []; // replace 필요한 상품 배열 데이터 var needToReplaceArray = {}; // 모바일인지 체크 var isMobile = /Mobi/i.test( window.navigator.userAgent ); // 상품 관련 태그를 상품 번호 태그로 매핑 // ex) {#productName} ----> {#19_Name} function replaceToProductNo( html, tagName, productNo, replace ) { const regExp = new RegExp( `{${"#" + tagName}}`, "gi" ); if( null != productNo ) html = html.replace( regExp, "{#" + productNo + "_" + replace + "}" ); else html = html.replace( regExp, "" ); return html; } // 배열 데이터 태그 replace function replaceToArrayProductNo( html, tagName, productNo, replace ) { var nextIndex = 0; while( true ) { var startIndex = html.indexOf( "{#" + tagName, nextIndex ); if( -1 == startIndex ) break; var endIndex = html.indexOf( "}", startIndex ); if( -1 == endIndex ) break; var arrayIndex = html.slice( startIndex + String( "{#" + tagName ).length + 1, endIndex ); if( null == needToReplaceArray[ productNo ] ) needToReplaceArray[ productNo ] = new Object(); if( null == needToReplaceArray[ productNo ][ replace ] ) needToReplaceArray[ productNo ][ replace ] = new Object(); needToReplaceArray[ productNo ][ replace ][ arrayIndex ] = 0; nextIndex = endIndex + 1; } const regExp = new RegExp( `{${"#" + tagName + "_"}`, "gi" ); if( null != productNo ) html = html.replace( regExp, "{#" + productNo + "_" + replace + "_" ); else html = html.replace( regExp, "" ); return html; } // 상품 번호로 매핑된 태그를 실제 상품 정보로 replace function replaceTag( html, productNo, tag, replace ) { const regExp = new RegExp( `{${"#" + productNo + "_" + tag}}`, "gi" ); html = html.replace( regExp, replace ); return html; } // 상품 번호로 매핑된 태그를 실제 상품 정보로 replace (한개만) function replaceOneTag( html, productNo, tag, replace ) { html = html.replace( "{#" + productNo + "_" + tag + "}", replace ); return html; } // 상품 번호로 매핑된 태그를 실제 상품 정보로 replace function replaceArrayTag( index, html, productNo, tag, replace ) { const regExp = new RegExp( `{${"#" + productNo + "_" + tag + "_" + index}}`, "gi" ); html = html.replace( regExp, replace ); return html; } // 배너관리자에서 활성된 배너 for( var key in activeBannerElem ) { // 활성된 배너 데이터 var bannerData = activeBannerElem[ key ].bannerData; // 상품 진열 데이터 없음 if( null == bannerData.productDisplay || 0 == bannerData.productDisplay.length ) continue; // 상품 진열 영역 var productAreaList = activeBannerElem[ key ].elem.getElementsByClassName( "morenvy-product-area" ); if( null == productAreaList || 0 == productAreaList.length ) continue; for( var i = 0; i < productAreaList.length; ) { var productArea = productAreaList[ i ]; var productList = productArea.getElementsByClassName( "morenvy-product" ); if( null == productList || 0 == productList.length ) { productAreaList[ i ].remove(); continue; } // 설정 수 보다 엘리먼트가 부족할 경우 마지막 엘리먼트 복사 if( productList.length < bannerData.productDisplay.length ) { var copyTarget = productList[ productList.length - 1 ]; var loopCount = bannerData.productDisplay.length - productList.length; for( var j = 0; j < loopCount; ++j ) { var copyElem = copyTarget.cloneNode( true ); productArea.append( copyElem ); } } for( var j = 0; j < productList.length; ) { // 상품 검색 최대 수 도달 if( maxSearchCount <= Object.keys( needToSearchProduct ).length ) break; var productNo = j >= bannerData.productDisplay.length ? null : bannerData.productDisplay[ j ]; // 상품 데이터 없음 if( null == productNo ) { productList[ j ].remove(); bannerData.productDisplay.splice( j, 1 ); continue; } var html = productList[ j ].innerHTML; html = html.replace( /%7B/gi, "{" ); html = html.replace( /%7D/gi, "}" ); // 모바일/PC에 따라 아이콘 다름 if( false == isMobile ) { html = html.replace( /{#soldout_icon}/gi, IconsPC[ "soldout" ] ); html = html.replace( /{#soldout_iconTag}/gi, "" ); } else { html = html.replace( /{#soldout_icon}/gi, IconsMobile[ "soldout" ] ); html = html.replace( /{#soldout_iconTag}/gi, "" ); } // 상품 번호 매핑 html = html.replace( /{#productNo}/gi, productNo ); // 상품 태그를 상품 번호 태그로 매핑 html = replaceToProductNo( html, "link", productNo, "Link" ); html = replaceToProductNo( html, "name", productNo, "Name" ); html = replaceToProductNo( html, "nameEn", productNo, "NameEn" ); html = replaceToProductNo( html, "price", productNo, "Price" ); html = replaceToProductNo( html, "retailPrice", productNo, "RetailPrice" ); html = replaceToProductNo( html, "discountPrice", productNo, "DiscountPrice" ); html = replaceToProductNo( html, "imgBig", productNo, "ImgBig" ); html = replaceToProductNo( html, "imgBigTag", productNo, "ImgBigTag" ); html = replaceToProductNo( html, "imgMedium", productNo, "ImgMedium" ); html = replaceToProductNo( html, "imgMediumTag", productNo, "ImgMediumTag" ); html = replaceToProductNo( html, "imgSmall", productNo, "ImgSmall" ); html = replaceToProductNo( html, "imgSmallTag", productNo, "ImgSmallTag" ); html = replaceToProductNo( html, "imgTiny", productNo, "ImgTiny" ); html = replaceToProductNo( html, "imgTinyTag", productNo, "ImgTinyTag" ); html = replaceToProductNo( html, "summaryDesc", productNo, "SummaryDesc" ); html = replaceToProductNo( html, "simpleDesc", productNo, "SimpleDesc" ); html = replaceToProductNo( html, "customCode", productNo, "CustomCode" ); html = replaceToProductNo( html, "modelName", productNo, "ModelName" ); html = replaceToProductNo( html, "brand", productNo, "Brand" ); html = replaceToProductNo( html, "trend", productNo, "Trend" ); html = replaceToProductNo( html, "manu", productNo, "Manu" ); html = replaceToProductNo( html, "opt_discountPrice", productNo, "Opt_DiscountPrice" ); html = replaceToProductNo( html, "coupon_discountPrice", productNo, "Coupon_DiscountPrice" ); html = replaceToProductNo( html, "promotion_period", productNo, "Promotion_Period" ); // addImg / addImgTag 처럼 태그 이름이 확장되는 경우 확장된 놈부터 replace, 에러남 html = replaceToArrayProductNo( html, "addInfo_name", productNo, "AddInfo_Name" ); html = replaceToArrayProductNo( html, "addInfo_value", productNo, "AddInfo_Value" ); html = replaceToArrayProductNo( html, "addImgTag", productNo, "AddImgTag" ); html = replaceToArrayProductNo( html, "addImg", productNo, "AddImg" ); productList[ j ].innerHTML = html; needToSearchProduct[ productNo ] = 0; needToReplaceElems.push( { areaElem : productArea, productNo : productNo, productElem : productList[ j ] } ); ++j; } needToInitPrudctArea.push( productArea ); ++i; } } // 상품 검색 Search(); function applyProductData( products ) { // replace가 먼저 되면 엘리먼트 삭제가 안된다. // 삭제할 엘리먼트만 먼저 찾아서 삭제 for( var key in needToReplaceElems ) { // 상품 엘리먼트 var productElem = needToReplaceElems[ key ].productElem; // 상품 번호 var productNo = needToReplaceElems[ key ].productNo; // 해당 번호의 상품 데이터 없음. 엘리먼트 삭제 var data = products[ productNo ]; if( null == data ) { productElem.remove(); continue; } // 진열중 아니거나 판매중 아니면 엘리먼트 삭제 if( "F" == data.selling || "F" == data.display ) { productElem.remove(); continue; } } // 검색된 상품 정보를 각각의 엘리먼트에 상품 번호로 매핑된 태그를 찾아 replace for( var key in needToReplaceElems ) { // 상품 영역 엘리먼트 var productAreaElem = needToReplaceElems[ key ].areaElem; // 상품 엘리먼트 var productElem = needToReplaceElems[ key ].productElem; // 상품 번호 var productNo = needToReplaceElems[ key ].productNo; var data = products[ productNo ]; if( null == data || "F" == data.selling || "F" == data.display ) continue; // PC/모바일 할인가가 다름 var discount = true == isMobile ? data.discountprice.mobile_discount_price : data.discountprice.pc_discount_price; var html = productAreaElem.innerHTML; html = html.replace( /%7B/gi, "{" ); html = html.replace( /%7D/gi, "}" ); html = replaceTag( html, data.product_no, "Link", "/product/detail.html?product_no=" + data.product_no ); html = replaceTag( html, data.product_no, "Name", data.product_name ); html = replaceTag( html, data.product_no, "NameEn", data.eng_product_name ); html = replaceTag( html, data.product_no, "Price", parseInt( data.price ).toLocaleString() ); html = replaceTag( html, data.product_no, "RetailPrice", parseInt( data.retail_price ).toLocaleString() ); html = replaceTag( html, data.product_no, "DiscountPrice", parseInt( discount ).toLocaleString() ); html = replaceTag( html, data.product_no, "ImgBig", data.detail_image ); html = replaceTag( html, data.product_no, "ImgBigTag", "" ); html = replaceTag( html, data.product_no, "ImgMedium", data.list_image ); html = replaceTag( html, data.product_no, "ImgMediumTag", "" ); html = replaceTag( html, data.product_no, "ImgSmall", data.small_image ); html = replaceTag( html, data.product_no, "ImgSmallTag", "" ); html = replaceTag( html, data.product_no, "ImgTiny", data.tiny_image ); html = replaceTag( html, data.product_no, "ImgTinyTag", "" ); html = replaceTag( html, data.product_no, "SummaryDesc", data.summary_description ); html = replaceTag( html, data.product_no, "CustomCode", data.custom_product_code ); html = replaceTag( html, data.product_no, "ModelName", data.model_name ); productAreaElem.innerHTML = html; ++i; } // 상품 영역 초기화 완료 for( var key in needToInitPrudctArea ) { needToInitPrudctArea[ key ].classList.add( "init" ); } } function Search() { // 검색 필요한 상품 없음 if( 0 == Object.keys( needToSearchProduct ).length ) return; var count = 0; // 상품 검색 파라미터 var searchParam = "?embed=discountprice&product_no="; for( var key in needToSearchProduct ) { ++count; if( 1 < count ) searchParam += ","; searchParam += key; } // 상품 검색 개수, cafe24에서 최대 100개까지 지원됨. searchParam += "&limit=" + maxSearchCount; // 상품 검색 요청 CAFE24API.get( "/api/v2/products" + searchParam, function( err, res ) { // 상품 번호를 키로 object 변환 var products = {}; for( var i in res.products ) { products[ res.products[ i ].product_no ] = res.products[ i ]; } applyProductData( products ); var reqDetailCount = 0; var totalReqCount = 0; var totalApplyCount = 0; function reqDetail() { var arrProductNo = Object.keys( needToSearchProduct ); if( 0 == arrProductNo ) return; ++reqDetailCount; ++totalReqCount; var productNo = arrProductNo[ 0 ]; CAFE24API.get( "/api/v2/productsdetail/" + productNo, function( err, res ) { applyProductDetail( res.productsdetail ); ++totalApplyCount; if( totalApplyCount == totalReqCount ) replaceNaN(); } ); delete needToSearchProduct[ productNo ]; if( 40 <= reqDetailCount ) { setTimeout( function() { reqDetailCount = 0; reqDetail(); }, 2500 ); } else { reqDetail(); } } reqDetail(); function applyProductDetail( data ) { // 상품 진열 영역 var productAreaList = document.getElementsByClassName( "morenvy-product-area" ); if( null == productAreaList || 0 == productAreaList.length ) return; for( var i = 0; i < productAreaList.length; ++i ) { var elem = productAreaList[ i ]; var html = elem.innerHTML; html = html.replace( /%7B/gi, "{" ); html = html.replace( /%7D/gi, "}" ); html = replaceTag( html, data.product_no, "SimpleDesc", null == data.simple_description ? "" : data.simple_description ); html = replaceTag( html, data.product_no, "Brand", null == data.brand_name ? "" : data.brand_name ); html = replaceTag( html, data.product_no, "Trend", null == data.trend_name ? "" : data.trend_name ); html = replaceTag( html, data.product_no, "Manu", null == data.manufacturer_name ? "" : data.manufacturer_name ); html = replaceTag( html, data.product_no, "Opt_DiscountPrice", null == data.optimum_discount_price ? "" : arseInt( data.optimum_discount_price ).toLocaleString() ); html = replaceTag( html, data.product_no, "Coupon_DiscountPrice", null == data.coupon_discounted_price ? "" : parseInt( data.coupon_discounted_price ).toLocaleString() ); if( null != data.promotion_period ) { var startDate = new Date( data.promotion_period.start_date ); var endDate = new Date( data.promotion_period.end_date ); var timeText = startDate.getFullYear() + "-" + (startDate.getMonth() + 1).toString().padStart( 2, "0" ) + "-" + startDate.getDate().toString().padStart( 2, "0" ) + " " + startDate.getHours().toString().padStart( 2, "0" ) + ":" + startDate.getMinutes().toString().padStart( 2, "0" ) + " ~ " + endDate.getFullYear() + "-" + (endDate.getMonth() + 1).toString().padStart( 2, "0" ) + "-" + endDate.getDate().toString().padStart( 2, "0" ) + " " + endDate.getHours().toString().padStart( 2, "0" ) + ":" + endDate.getMinutes().toString().padStart( 2, "0" ); html = replaceTag( html, data.product_no, "Promotion_Period", timeText ); } else { html = replaceTag( html, data.product_no, "Promotion_Period", data.coupon_discounted_price ); } if( null != data.additional_information ) { for( var j = 0; j < data.additional_information.length; ++j ) { const info = data.additional_information[ j ]; html = replaceArrayTag( j + 1, html, data.product_no, "AddInfo_Name", info.name ); html = replaceArrayTag( j + 1, html, data.product_no, "AddInfo_Value", info.value ); if( null != needToReplaceArray[ data.product_no ] ) { if( null != needToReplaceArray[ data.product_no ][ "AddInfo_Name" ] ) delete needToReplaceArray[ data.product_no ][ "AddInfo_Name" ][ (j + 1).toString() ]; if( null != needToReplaceArray[ data.product_no ][ "AddInfo_Value" ] ) delete needToReplaceArray[ data.product_no ][ "AddInfo_Value" ][ (j + 1).toString() ]; } } } if( null != data.additional_images ) { for( var j = 0; j < data.additional_images.length; ++j ) { const img = data.additional_images[ j ]; html = replaceArrayTag( j + 1, html, data.product_no, "AddImg", img.big ); html = replaceArrayTag( j + 1, html, data.product_no, "AddImgTag", "" ); if( null != needToReplaceArray[ data.product_no ] ) { if( null != needToReplaceArray[ data.product_no ][ "AddImg" ] ) delete needToReplaceArray[ data.product_no ][ "AddImg" ][ (j + 1).toString() ]; if( null != needToReplaceArray[ data.product_no ][ "AddImgTag" ] ) delete needToReplaceArray[ data.product_no ][ "AddImgTag" ][ (j + 1).toString() ]; } } } elem.innerHTML = html; } } } ); } // 태그 변수 입력은 됐는데 실제 조회 후 데이터가 없는 경우 NaN으로 replace function replaceNaN() { for( var keyProductNo in needToReplaceArray ) { for( var keyTag in needToReplaceArray[ keyProductNo ] ) { for( var keyNum in needToReplaceArray[ keyProductNo ][ keyTag ] ) { for( var i = 0; i < productAreaList.length; ++i ) { var elem = productAreaList[ i ]; var html = elem.innerHTML; html = replaceTag( html, keyProductNo, keyTag + "_" + keyNum, "" ); elem.innerHTML = html; } } } } } } let Morenvy_Wait_CAEF24 = setInterval( () => { if( typeof CAFE24API != "undefined" ) { clearInterval( Morenvy_Wait_CAEF24 ); (function( CAFE24API ) { Init_MorenvyProductDisplay(); } )( CAFE24API.init( { version: "2022-09-01", client_id: "gSOPn7dNJxAp8cu31kDDtD" } ) ); } }, 50 );