GoodsDetailFormMob.html 143 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241
  1. <!DOCTYPE html>
  2. <html lang="ko"
  3. xmlns:th="http://www.thymeleaf.org"
  4. xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
  5. layout:decorator="mob/common/layout/GoodsLayoutMob">
  6. <!--
  7. *******************************************************************************
  8. * @source : GoodsDetailFormMob.html
  9. * @desc : ์ƒํ’ˆ์ƒ์„ธ Page
  10. *============================================================================
  11. * STYLE24
  12. * Copyright(C) 2020 TSIT, All rights reserved.
  13. *============================================================================
  14. * VER DATE AUTHOR DESCRIPTION
  15. * === =========== ========== =============================================
  16. * 1.0 2021.04.02 eskim ์ตœ์ดˆ ์ž‘์„ฑ
  17. *******************************************************************************
  18. -->
  19. <body>
  20. <th:block layout:fragment="content">
  21. <script type="text/javascript" src="https://wcs.naver.net/wcslog.js"></script>
  22. <form id="nPayForm" name="nPayForm"></form>
  23. <form id="nPayWishForm" name="nPayWishForm" method="get">
  24. <input type="hidden" name="SHOP_ID" />
  25. <input type="hidden" name="ITEM_ID" />
  26. </form>
  27. <form name="cartForm" id="cartForm" method="post">
  28. <input type="hidden" name="mode">
  29. <input type="hidden" name="goodsCd" th:value="${params.goodsCd}" />
  30. <input type="hidden" name="contentsLoc" th:value="${params.contentsLoc}" />
  31. <input type="hidden" name="ithrCd" th:value="${params.ithrCd}" />
  32. <input type="hidden" name="planDtlSq" th:value="${params.planDtlSq}" />
  33. <input type="hidden" name="adminYn" th:value="${params.adminYn}" />
  34. <input type="hidden" name="optCd" />
  35. <input type="hidden" name="optCd1" />
  36. <input type="hidden" name="optCd2" />
  37. <input type="hidden" name="addPrice" />
  38. <input type="hidden" name="ordQty" />
  39. <input type="hidden" name="stock" />
  40. <input type="hidden" name="minOrdQty" th:value="${goodsInfo.minOrdQty}"/>
  41. <input type="hidden" name="maxOrdQty" th:value="${goodsInfo.maxOrdQty}"/>
  42. <input type="hidden" name="currPrice" th:value="${goodsInfo.currPrice}"/>
  43. <input type="hidden" name="goodsType" th:value="${goodsInfo.goodsType}"/>
  44. <input type="hidden" name="selfGoodsYn" th:value="${goodsInfo.selfGoodsYn}"/>
  45. <main role="" id="" class="container pd" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
  46. <!-- โ˜… ์ปจํ…์ธ  ์‹œ์ž‘ -->
  47. <section class="pd_detail">
  48. <!-- 210409_ ๊ตฌ์กฐ๋ณ€๊ฒฝ : .pd_info, .pd_info1 ์ถ”๊ฐ€ -->
  49. <div class="pd_info">
  50. <div class="pd_info1" data-speed="10">
  51. <div class="inner wide" th:if="${(goodsImgList != null and !goodsImgList.empty) or (goodsVideoList != null and !goodsVideoList.empty)}">
  52. <div class="thumb_box">
  53. <div class="area_slider">
  54. <div class="swiper-container thumb_list">
  55. <div class="swiper-wrapper">
  56. <th:block th:each="goodsVideo, status : ${goodsVideoList}">
  57. <div class="swiper-slide">
  58. <div class="movbox">
  59. <th:block th:if="${goodsVideo.videoGb == 'Y'}">
  60. <iframe width="100%" height="100%" th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey+'?rel=0'}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  61. <!-- <div id="utbplayer"></div>
  62. <script src="https://www.youtube.com/iframe_api"></script>์•„๋ž˜ ์›๋ฌธ์—์„œ ๋ณต์žกํ•˜๊ฒŒ ๊ธฐ์ˆ ๋˜์—ˆ๋˜ ๋ถ€๋ถ„
  63. <script th:inline="javascript">
  64. /*<![CDATA[*/
  65. var player;
  66. function onYouTubeIframeAPIReady(){
  67. player = new YT.Player('utbplayer',{
  68. width:'100%',
  69. videoId:[[${goodsVideo.kmcKey}]],
  70. playerVars:{'autoplay':1,'playsinline':1},
  71. events:{ 'onReady':onPlayerReady,
  72. 'onStateChange': onPlayerStateChange
  73. }
  74. });
  75. }
  76. function onPlayerReady(e){
  77. e.target.mute();
  78. e.target.playVideo();
  79. }
  80. var done = false;
  81. function onPlayerStateChange(event) {
  82. if (event.data == YT.PlayerState.PLAYING && !done) {
  83. setTimeout(stopVideo, 6000);
  84. done = true;
  85. }
  86. }
  87. function stopVideo() {
  88. player.stopVideo();
  89. }
  90. /*]]>*/
  91. </script> -->
  92. </th:block>
  93. <th:block th:unless="${goodsVideo.videoGb == 'Y'}">
  94. <button id="prodMovBtn" type="button" class="btn_play" data-setplay="play">๋™์˜์ƒ๋ณด๊ธฐ</button>
  95. <iframe id="child" class="pd_mov" width="100%" height="100%" th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey}" frameborder="0" marginheight="0" marginwidth="0" leftmargin="0" topmargin="0" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" oallowfullscreen="true" msallowfullscreen="true"></iframe>
  96. </th:block>
  97. </div>
  98. </div>
  99. </th:block>
  100. <th:block th:each="goodsImg, status : ${goodsImgList}" th:with="count=${(videoYn == 'Y')? (status.count +1): status.count }">
  101. <div class="swiper-slide" th:id="${'navLocate'+ count}"
  102. th:if="${ not (#strings.contains(goodsImg.sysImgNm,'_F1')
  103. or #strings.contains(goodsImg.sysImgNm,'_L1')
  104. or #strings.contains(goodsImg.sysImgNm,'_L2'))}">
  105. <div class="thumb" ><img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=1080'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'"></div></div> <!-- mov -->
  106. </th:block>
  107. </div>
  108. <!-- Add Pagination -->
  109. <div class="swiper-pagination"></div>
  110. <!-- 210728_ ์ˆ˜์ • : ํŒ์—… ์ขŒ์šฐ๋ฒ„ํŠผ ์ถ”๊ฐ€. -->
  111. <div class="swiper-button-next"></div>
  112. <div class="swiper-button-prev"></div>
  113. </div>
  114. </div>
  115. </div>
  116. </div>
  117. </div>
  118. <div class="inner">
  119. <!-- 210409_ ๊ตฌ์กฐ๋ณ€๊ฒฝ : .covered ์ถ”๊ฐ€ -->
  120. <div class="covered">
  121. <div class="timer_box" style="display:none;">
  122. <p>
  123. <span class="tt">๋‚จ์€์‹œ๊ฐ„</span>
  124. <span class="timer">
  125. <em id="d-days">0</em>
  126. <em id="d-hours">0</em>
  127. <em id="d-minutes">0</em>
  128. <em id="d-seconds">0</em>
  129. </span>
  130. </p>
  131. </div>
  132. <div class="descript_box">
  133. <p class="name" th:text="${goodsInfo.goodsFullNm}">์œ ๋‹ˆ ์‚ผ๋‹จ๋ธ”๋ก ํ”Œ๋ฆฌ์Šค ์ง‘์—…</p>
  134. <p class="comment" th:text="${goodsInfo.goodsTnm}">#๊ฐ€์„ ๋А๋‚Œ ๋ฌผ์”ฌ!</p>
  135. <p class="price_blk">
  136. <span class="sale_price"><em th:text="${#numbers.formatInteger(goodsInfo.currPrice, 0,'COMMA')}">134,100</em>์›</span>
  137. <span class="org_price" th:if="${goodsInfo.listPrice > goodsInfo.currPrice}" ><del><em th:text="${#numbers.formatInteger(goodsInfo.listPrice, 0,'COMMA')}">149,000</em>์›</del></span>
  138. <span class="sale_percent" th:if="${goodsInfo.dcRate > 0}" th:text="|${#numbers.formatDecimal(goodsInfo.dcRate,0,0)}%|">30%</span>
  139. </p>
  140. <p class="save_point" th:if="${goodsInfo.pntAmt > 0}">์Šคํƒ€์ผํฌ์ธํŠธ <th:block th:text="${#numbers.formatInteger(goodsInfo.pntAmt, 0,'COMMA')}"></th:block>P ์ ๋ฆฝ์˜ˆ์ •</p>
  141. <div class="btn_group_flex" th:if="${goodsCouponList != null and !goodsCouponList.empty}">
  142. <div><button type="button" class="btn btn_default" id="btn_saleCoupon_pop" th:onclick="cfGoodsCouponInfo([[${goodsInfo.goodsCd}]],[[${goodsInfo.goodsType}]])">์ฟ ํฐ๋ฐ›๊ธฐ</button></div>
  143. </div>
  144. </div>
  145. </div>
  146. </div>
  147. <div class="inner wide" th:if="${not #strings.isEmpty(goodsInfo.delvResDt) }">
  148. <div class="desc_status">์˜ˆ์•ฝํŒ๋งค ์ƒํ’ˆ - <em th:text="${goodsInfo.delvResDt}">2020.12.30</em> ์ถœ๊ณ ์˜ˆ์ •</div>
  149. </div>
  150. <div class="inner" th:if="${goodsInfo.selfGoodsYn =='Y' and goodsInfo.goodsType =='G056_N'}"> <!-- ์ž์‚ฌ์ƒํ’ˆ,์ผ๋ฐ˜์ƒํ’ˆ -->
  151. <div class="option_box">
  152. <div class="opt_color" th:if="${goodsOption1List != null and !goodsOption1List.empty}">
  153. <div class="opt_header">
  154. <span class="title">์ปฌ๋Ÿฌ</span>
  155. <span class="color" th:text="${goodsInfo.colorNm}">๊ทธ๋ ˆ์ด</span>
  156. </div>
  157. <ul>
  158. <li th:each="goodsOption1, status : ${goodsOption1List}">
  159. <a href="javascript:void(0);" th:class="${params.colorCd == goodsOption1.optCd1}? 'on':''" th:onclick="cfnGoToGoodsDetail([[${goodsInfo.goodsCd}]], [[${goodsOption1.optCd1}]],'IN15_01')"> <!-- ํ•ด๋‹น ์ปฌ๋Ÿฌ ์ƒํ’ˆํŽ˜์ด์ง€๋กœ ์ด๋™ -->
  160. <img th:src="${imgGoodsUrl+'/'+goodsOption1.sysImgNm+'?RS=50'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  161. </a>
  162. </li>
  163. </ul>
  164. </div>
  165. <div class="opt_size" th:if="${goodsOption2List != null and !goodsOption2List.empty}">
  166. <div class="opt_header">
  167. <span class="title">์‚ฌ์ด์ฆˆ</span>
  168. <span class="size">
  169. <em class="selectOptCd1"></em>
  170. <em class="selectOptCd1addPrice"></em>
  171. </span>
  172. </div>
  173. <div class="form_field">
  174. <div th:each="goodsOption2, status : ${goodsOption2List}">
  175. <input type="radio" name="opt" th:id="${goodsOption2.optCd}" th:disabled="${goodsOption2.soldoutYn == 'Y' or goodsOption2.stockQty <= 0}"
  176. th:attr="addPrice=${goodsOption2.addPrice}, optCd1=${goodsOption2.optCd1}, optCd2=${goodsOption2.optCd2}, optCd=${goodsOption2.optCd}"/>
  177. <th:block th:if="${goodsOption2.soldoutYn == 'Y' or goodsOption2.stockQty <= 0}">
  178. <label th:for="${goodsOption2.optCd}"><span th:text="${goodsOption2.optCd2}" >90</span></label>
  179. </th:block>
  180. <th:block th:unless="${goodsOption2.soldoutYn == 'Y' or goodsOption2.stockQty <= 0}">
  181. <label th:for="${goodsOption2.optCd}" th:onclick="fnViewStock(this, [[${goodsInfo.goodsCd}]],[[${goodsOption2.optCd}]],[[${goodsOption2.optCd1}]],[[${goodsOption2.optCd2}]],[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]] )"><span th:text="${goodsOption2.optCd2}">90</span></label>
  182. </th:block>
  183. </div>
  184. </div>
  185. </div>
  186. <div class="info_restock" style="display:none;"><a href="javascript:void(0);" id="btn_pushRestock_pop" class="btn_popup" th:onclick="cfGoodsInstockAlarmInfo([[${goodsInfo.goodsCd}]], [[${goodsInfo.colorCd}]])">์žฌ์ž…๊ณ  ์•Œ๋ฆผ ์‹ ์ฒญ</a></div>
  187. </div>
  188. </div>
  189. <div class="inner" th:if="${sessionInfo != null and (sessionInfo.custId == 'xodud1202' or sessionInfo.custId == 'jsh77b' or sessionInfo.custId == 'card007')}">
  190. <th:block th:with="buttonKey=${@environment.getProperty('naverPay.button.key')}">
  191. <script type="text/javascript" th:src="${@environment.getProperty('naverPay.button.mobile.js.url')}" src="" charset="UTF-8"></script>
  192. <script type="text/javascript" >
  193. /*๋ฒ„ํŠผ์„ค์ •*/
  194. naver.NaverPayButton.apply({
  195. BUTTON_KEY : "[[${buttonKey}]]", // ๋„ค์ด๋ฒ„ํŽ˜์ด์—์„œ ์ œ๊ณต๋ฐ›์€ ๋ฒ„ํŠผ ์ธ์ฆ ํ‚ค ์ž…๋ ฅ
  196. TYPE : "MA", // ๋ฒ„ํŠผ ๋ชจ์Œ ์ข…๋ฅ˜ ์„ค์ •
  197. COLOR : 1, // ๋ฒ„ํŠผ ๋ชจ์Œ์˜ ์ƒ‰ ์„ค์ •
  198. COUNT : 2, // ๋ฒ„ํŠผ ๊ฐœ์ˆ˜ ์„ค์ •. ๊ตฌ๋งคํ•˜๊ธฐ ๋ฒ„ํŠผ๋งŒ ์žˆ์œผ๋ฉด(์žฅ๋ฐ”๊ตฌ๋‹ˆ ํŽ˜์ด์ง€) 1, ์ฐœํ•˜๊ธฐ ๋ฒ„ํŠผ๋„ ์žˆ์œผ๋ฉด(์ƒํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€) 2๋ฅผ ์ž…๋ ฅ.
  199. ENABLE : "Y", // ํ’ˆ์ ˆ ๋“ฑ์˜ ์ด์œ ๋กœ ๋ฒ„ํŠผ ๋ชจ์Œ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ๋•Œ์—๋Š” "N" ์ž…๋ ฅ
  200. BUY_BUTTON_HANDLER : buy_nc, // ๊ตฌ๋งคํ•˜๊ธฐ ๋ฒ„ํŠผ ์ด๋ฒคํŠธ Handler ํ•จ์ˆ˜ ๋“ฑ๋ก, ํ’ˆ์ ˆ์ธ ๊ฒฝ์šฐ not_buy_nc ํ•จ์ˆ˜ ์‚ฌ์šฉ
  201. WISHLIST_BUTTON_HANDLER : wishlist_nc, // ์ฐœํ•˜๊ธฐ ๋ฒ„ํŠผ ์ด๋ฒคํŠธ Handler ํ•จ์ˆ˜ ๋“ฑ๋ก
  202. "":""
  203. });
  204. /*๋„ค์ด๋ฒ„๊ตฌ๋งคํ•˜๊ธฐ*/
  205. function buy_nc(url) {
  206. $(".container").addClass('btPop_open');
  207. }
  208. <!-- ๊ตฌ๋งค๋ถˆ๊ฐ€ -->
  209. function not_buy_nc() {
  210. mcxDialog.alert("์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋„ค์ด๋ฒ„ํŽ˜์ด๋กœ ๊ตฌ๋งค๊ฐ€ ๋ถˆ๊ฐ€ํ•œ ์ƒํ’ˆ์ž…๋‹ˆ๋‹ค.");
  211. return false;
  212. }
  213. <!-- ์ฐœํ•˜๊ธฐ -->
  214. function wishlist_nc() {
  215. let goodsCd = "[[${goodsInfo.goodsCd}]]";
  216. let goodsNm = "[[${goodsInfo.goodsNm}]]";
  217. let colorCd = "[[${goodsInfo.colorCd}]]";
  218. let currPrice = "[[${goodsInfo.currPrice}]]";
  219. let sysImgNm = "[[${goodsInfo.sysImgNm}]]";
  220. let selfGoodsYn = "[[${goodsInfo.selfGoodsYn}]]";
  221. let data = {};
  222. data.goodsCd = goodsCd;
  223. data.goodsNm = goodsNm;
  224. data.colorCd = colorCd;
  225. data.currPrice = currPrice;
  226. data.sysImgNm = sysImgNm;
  227. data.selfGoodsYn = selfGoodsYn;
  228. let jsonData = JSON.stringify(data);
  229. $.ajax( {
  230. type : "POST",
  231. url : "/pg/create/npay/zzim",
  232. dataType : 'json',
  233. data : jsonData,
  234. beforeSend : function(xhr, settings) {
  235. xhr.setRequestHeader("AJAX" , "true");
  236. xhr.setRequestHeader('Accept' , 'application/json');
  237. xhr.setRequestHeader('Content-Type' , 'application/json');
  238. },
  239. error: function(xhr, status, error) {
  240. mcxDialog.alert(status + '; ' + error);
  241. },
  242. success : function(result) {
  243. if (result.state == "success") {
  244. $('#nPayWishForm input[name=SHOP_ID]').val(result.shopId);
  245. $('#nPayWishForm input[name=ITEM_ID]').val(result.itemId);
  246. document.nPayWishForm.action = result.actionMobile;
  247. document.nPayWishForm.submit();
  248. } else {
  249. mcxDialog.alert(result.message);
  250. }
  251. }
  252. });
  253. }
  254. </script>
  255. </th:block>
  256. </div>
  257. <div class="inner" th:if="${(cardInfoList != null and !cardInfoList.empty) or
  258. (goodsCouponList != null and !goodsCouponList.empty) or
  259. (tmtbList != null and !tmtbList.empty) or
  260. (freeGoodsList != null and !freeGoodsList.empty) or
  261. (goodsCoupon1List != null and !goodsCoupon1List.empty)}" >
  262. <div class="benefit_box">
  263. <dl class="bnf_shopping" th:if="${(goodsCouponList != null and !goodsCouponList.empty) or
  264. (tmtbList != null and !tmtbList.empty) or
  265. (freeGoodsList != null and !freeGoodsList.empty) or
  266. (goodsCoupon1List != null and !goodsCoupon1List.empty)}" >
  267. <dt>์‡ผํ•‘ํ˜œํƒ</dt>
  268. <dd>
  269. <th:block th:if="${goodsCoupon1List != null and !goodsCoupon1List.empty}">
  270. <span th:each="goodsCoupon, status : ${goodsCoupon1List}" th:if="${status.first}"><em>
  271. <th:block th:if="${goodsCoupon.dcWay == 'G240_10'}" th:text="|${#numbers.formatInteger(goodsCoupon.dcVal, 0,'COMMA')}์›|"></th:block>
  272. <th:block th:unless="${goodsCoupon.dcWay == 'G240_10'}" th:text="|${goodsCoupon.dcVal}%|"></th:block>
  273. </em> ์ฆ‰์‹œํ• ์ธ</span>
  274. </th:block>
  275. <th:block th:if="${goodsCouponList != null and !goodsCouponList.empty}">
  276. <span th:each="goodsCoupon, status : ${goodsCouponList}" th:if="${status.first}">์ตœ๋Œ€ <em>
  277. <th:block th:if="${goodsCoupon.dcWay == 'G240_10'}" th:text="|${#numbers.formatInteger(goodsCoupon.dcVal, 0,'COMMA')}์›|"></th:block>
  278. <th:block th:unless="${goodsCoupon.dcWay == 'G240_10'}" th:text="|${goodsCoupon.dcVal}%|"></th:block>
  279. </em> ์ฟ ํฐ ํ• ์ธ</span>
  280. </th:block>
  281. <th:block th:if="${tmtbList != null and !tmtbList.empty}">
  282. <span th:each="tmtb, status : ${tmtbList}" th:if="${status.first}">
  283. <em><th:block th:text="${#numbers.formatInteger(tmtb.sectionVal, 0,'COMMA')}"></th:block><th:block th:text="${(tmtb.sectionGb == 'G810_10')? '๊ฐœ':'์›'}"></th:block></em> ์ด์ƒ ๊ตฌ๋งค ์‹œ
  284. <em><th:block th:text="${#numbers.formatInteger(tmtb.dcVal, 0,'COMMA')}"></th:block><th:block th:text="${(tmtb.dcWay == 'G240_10')? '์›':'%'}"></th:block></em></em> ํ• ์ธ
  285. </span>
  286. </th:block>
  287. <span th:if="${freeGoodsList != null and !freeGoodsList.empty}">
  288. <th:block th:each="freeGoods, status : ${freeGoodsList}" th:if="${status.first}">
  289. <th:block th:text="${freeGoods.goodsNm}"></th:block> ์ฆ์ • <th:block th:if="${freeGoods.allYn == 'N'}" th:text="${'์™ธ ํƒ1'}"></th:block></span>
  290. <button type="button" id="btn_bnfShopping_pop" class="btn_popup" th:onclick="cfGoodsShopBenefitInfo([[${goodsInfo.goodsCd}]])"><span>์ž์„ธํžˆ</span></button>
  291. </dd>
  292. </dl>
  293. <dl class="bnf_card" th:if="${cardInfoList != null and !cardInfoList.empty}">
  294. <dt>์นด๋“œํ˜œํƒ</dt>
  295. <dd>
  296. <th:block th:each="cardInfo, status : ${cardInfoList}">
  297. <span th:if="${cardInfo.prmtGb == 'A' and cardInfo.dcGb != '3'}"><th:block th:text="${cardInfo.prmtTargetNm}"></th:block> <em><th:block th:text="${#numbers.formatInteger(cardInfo.dcVal, 0,'COMMA')+ cardInfo.dcWayNm}"></th:block></em> <th:block th:text="${cardInfo.prmtGbNm}"></span>
  298. <span th:if="${cardInfo.prmtGb == 'A' and cardInfo.dcGb == '3'}" th:text="${cardInfo.prmtNm}">ํ”„๋กœ๋ชจ์…˜๋ช…</span>
  299. <span th:if="${cardInfo.prmtGb == 'B'}">์‹ ์šฉ์นด๋“œ ๋ฌด์ด์ž ํ˜œํƒ</span>
  300. </th:block>
  301. <button type="button" id="btn_bnfCard_pop" class="btn_popup" onclick="cfCardInfo();return false;"><span>์ž์„ธํžˆ</span></button>
  302. </dd>
  303. </dl>
  304. </div>
  305. </div>
  306. </div>
  307. <div class="inner tmtb" th:if="${goodsList != null and !goodsList.empty}" >
  308. <div class="pd_together" id="goodsTmtbArea">
  309. <h3 class="tit">
  310. ํ•จ๊ป˜ํ•˜๋ฉด ํ• ์ธ๋˜๋Š” ๋‹ค๋‹ค์ต์„  ์ƒํ’ˆ
  311. </h3>
  312. <div class="area_slider">
  313. <div class="swiper-container swiper-container-initialized swiper-container-horizontal">
  314. <div class="swiper-wrapper">
  315. <div class="swiper-slide" th:each="goodsInfo, status : ${goodsList}">
  316. <div class="item_prod">
  317. <div class="item_state">
  318. <button type="button" class="itemLike enp_mobon_wish" th:classappend="${goodsInfo.wishYn == 'Y'}? 'likeit active' : ''" onclick="cfnPutWishList(this);" th:attr="goodsCd=${goodsInfo.goodsCd}, goodsNm=${goodsInfo.goodsFullNm}, ithrCd='IN15_02', contentsLoc='', planDtlSq=''">๊ด€์‹ฌ์ƒํ’ˆ ์ถ”๊ฐ€</button>
  319. <a href="javascript:void(0);" th:onclick="cfnGoToGoodsDetail([[${goodsInfo.goodsCd}]], '','IN15_02','','','');" class="itemLink" >
  320. <div class="itemPic">
  321. <img alt="" class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+goodsInfo.sysImgNm+'?RS=156'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  322. </div>
  323. <p class="itemBrand" th:text="${goodsInfo.brandGroupNm}">BRAND NAME1</p>
  324. <div class="itemName" th:text="${goodsInfo.goodsFullNm}">๋‚จ์„ฑ ๋กœ๊ณ  ์ž์นด๋“œ ๋ฐฉํ’ ํŒจ๋”ฉ</div>
  325. <p class="itemPrice">
  326. <th:block th:text="${#numbers.formatInteger(goodsInfo.currPrice, 0,'COMMA')}"></th:block>
  327. </p>
  328. </a>
  329. </div>
  330. </div>
  331. </div>
  332. </div>
  333. </div>
  334. </div>
  335. </div>
  336. </div>
  337. <div class="inner wide">
  338. <div class="brand_home">
  339. <a href="javascript:void(0);" class="link_go" th:onclick="cfnGoToBrandMain([[${goodsInfo.brandGroupNo}]])" th:text="|${goodsInfo.brandGroupNm} ๋ธŒ๋žœ๋“œํ™ˆ|" >NBA ๋ธŒ๋žœ๋“œํ™ˆ</a>
  340. </div>
  341. </div>
  342. <div class="inner wide">
  343. <div class="content pd_descrp">
  344. <div class="cont_head">
  345. <h3 class="sr-only">์ƒํ’ˆ์ƒ์„ธ์ •๋ณด</h3>
  346. </div>
  347. <div class="cont_body">
  348. <!-- ์ƒํ’ˆ์„ค๋ช… ๋…ธ์ถœ -->
  349. <div class="descrp_box" th:if="${goodsInfo.tobeFormYn == 'Y'}">
  350. <div class="desc_simple"> <!-- ์ƒํ’ˆ ๊ฐ„๋žต์„ค๋ช…-->
  351. <span class="tit_desc" th:if="${goodsInfo.goodsTitle != null and !goodsInfo.goodsTitle.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTitle))}">์‚ฌ์ด๋“œ ๋ฐด๋”ฉ์œผ๋กœ ํŽธ์•ˆํ•œ ๋งŒ๋Šฅ ์Šฌ๋ž™์Šค!</span>
  352. <p class="ptxt01"th:if="${goodsInfo.goodsTitleDesc}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTitleDesc))}">
  353. ์Šฌ๋ฆผํ•์— ์‚ฌ์ด๋“œ ๋ฐด๋”ฉ์œผ๋กœ ํŽธ์•ˆํ•จ์„ ๋”ํ•ด์ค€ ์Šฌ๋ž™์Šค์ž…๋‹ˆ๋‹ค.
  354. </p>
  355. </div>
  356. <div class="desc_character" th:if="${goodsInfo.goodsSpecialDesc != null and !goodsInfo.goodsSpecialDesc.empty}"> <!-- ์ƒํ’ˆํŠน์ง• -->
  357. <span class="tit_desc">์ƒํ’ˆํŠน์ง•</span>
  358. <p class="ptxt01" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsSpecialDesc))}">
  359. - ์ง€ํผํ”Œ๋Ÿฌ ์žฅ์‹์„ ๋”ํ•ด ์™„์„ฑ๋„๋ฅผ ๋†’์—ฌ์คŒ
  360. </p>
  361. </div>
  362. </div>
  363. <!-- //์ƒํ’ˆ์„ค๋ช… ๋…ธ์ถœ -->
  364. <!-- ๊ณต์ง€์‚ฌํ•ญ ๋…ธ์ถœ -->
  365. <div class="mdhtml_box bnnoti" th:if="${goodsNoticeList != null and !goodsNoticeList.empty}">
  366. <th:block th:each="goodsNotice, status : ${goodsNoticeList}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsNotice.noticeContent))}"></th:block >
  367. </div>
  368. <!-- ์ƒ์„ธ ๋™์˜์ƒ ๋…ธ์ถœ -->
  369. <div class="mdhtml_box" th:if="${goodsDescVideoList != null and !goodsDescVideoList.empty}">
  370. <!-- ๊ด€๋ฆฌ์ž ์—๋””ํ„ฐ์ž…๋ ฅ ๋‚ด์šฉ ๊ณต์ง€ html -->
  371. <th:block th:each="goodsVideo, status : ${goodsDescVideoList}">
  372. <div class="movblock">
  373. <th:block th:if="${goodsVideo.goodsContentsVideoGubun == 'Y'}">
  374. <div style="height:4rem"></div><!-- ์—ฌ๋ฐฑ์šฉ html -->
  375. <iframe th:src="${'https://www.youtube.com/embed/'+goodsVideo.kmcKey}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  376. </th:block>
  377. <th:block th:unless="${goodsVideo.goodsContentsVideoGubun == 'Y'}">
  378. <div style="height:4rem"></div><!-- ์—ฌ๋ฐฑ์šฉ html -->
  379. <iframe th:src="${kollusMediaUrl+'/'+goodsVideo.kmcKey+'?player_version=html5' }" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
  380. </th:block>
  381. </div>
  382. </th:block>
  383. </div>
  384. <!-- ์ƒ์„ธ ๋ฒ ๋„ˆ -->
  385. <div class="mdhtml_box bnnoti" th:if="${goodsDescBannerList != null and !goodsDescBannerList.empty}">
  386. <th:block th:each="goodsBanner, status : ${goodsDescBannerList}" th:with="target=${(goodsBanner.linkTarget == 'N')? '_blank': '_self'}">
  387. <th:block th:if="${goodsBanner.linkUrl != null and not #strings.equals(goodsBanner.linkUrl, '#')}">
  388. <div style="height:4rem"></div><!-- ์—ฌ๋ฐฑ์šฉ html -->
  389. <p><a th:href="${goodsBanner.linkUrl}" th:target="${target}"><img th:src="${imgUrl+goodsBanner.imgPath}" alt=""></a></p>
  390. </th:block>
  391. <th:block th:unless="${goodsBanner.linkUrl != null and not #strings.equals(goodsBanner.linkUrl, '#')}" >
  392. <div style="height:4rem"></div><!-- ์—ฌ๋ฐฑ์šฉ html -->
  393. <p><img th:src="${imgUrl+goodsBanner.imgPath}" alt=""></p>
  394. </th:block>
  395. </th:block>
  396. </div>
  397. <!-- ๊ด€๋ฆฌ์ž ์—๋””ํ„ฐ์ž…๋ ฅ ๋‚ด์šฉ ๋…ธ์ถœ -->
  398. <div class="mdhtml_box bnnoti" th:if="${goodsInfo.goodsTopDesc != null and !goodsInfo.goodsTopDesc.empty }" >
  399. <div style="height:4rem"></div><!-- ์—ฌ๋ฐฑ์šฉ html -->
  400. <th:block th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsTopDesc))}"></th:block>
  401. </div>
  402. <th:block th:if="${goodsInfo.tobeFormYn == 'N' and goodsInfo.goodsDesc != null and !goodsInfo.goodsDesc.empty}" >
  403. <div style="height:4rem"></div><!-- ์—ฌ๋ฐฑ์šฉ html -->
  404. <div class="mdhtml_box" >
  405. <div id="goodsDescHtml"></div>
  406. </div>
  407. </th:block>
  408. <th:block th:if="${goodsInfo.tobeFormYn == 'Y'}">
  409. <!-- ์ฐฉ์šฉ์ปท ๋…ธ์ถœ -->
  410. <div class="view_outfit_box" th:if="${#strings.contains(goodsImgList,'_C1')
  411. or #strings.contains(goodsImgList,'_C2')
  412. or #strings.contains(goodsImgList,'_C3')
  413. or #strings.contains(goodsImgList,'_C4')
  414. or #strings.contains(goodsImgList,'_C5')}">
  415. <span class="tit_view">OUTFIT VIEW</span>
  416. <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${status.first}">
  417. <span class="model_info" th:text="${goodsImg.modelInfo}">(๋ชจ๋ธ์ •๋ณด : 185cm / 78kg / XL ์ฐฉ์šฉ)</span>
  418. </th:block>
  419. <div class="view">
  420. <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_C1')
  421. or #strings.contains(goodsImg.sysImgNm,'_C2')
  422. or #strings.contains(goodsImg.sysImgNm,'_C3')
  423. or #strings.contains(goodsImg.sysImgNm,'_C4')
  424. or #strings.contains(goodsImg.sysImgNm,'_C5')}">
  425. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=1080'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  426. </th:block>
  427. </div>
  428. </div>
  429. <!-- //์ฐฉ์šฉ์ปท ๋…ธ์ถœ -->
  430. <!-- ์ƒํ’ˆ์ปท ๋…ธ์ถœ -->
  431. <div class="view_detail_box" th:if="${#strings.contains(goodsImgList,'_01') or #strings.contains(goodsImgList,'_02')
  432. or #strings.contains(goodsImgList,'_D1') or #strings.contains(goodsImgList,'_D2')
  433. or #strings.contains(goodsImgList,'_D3') or #strings.contains(goodsImgList,'_D4')
  434. or #strings.contains(goodsImgList,'_D5') or #strings.contains(goodsImgList,'_D6')
  435. or #strings.contains(goodsImgList,'_D7') or #strings.contains(goodsImgList,'_D8')
  436. or #strings.contains(goodsImgList,'_D9') or #strings.contains(goodsImgList,'_D10')
  437. or #strings.contains(goodsImgList,'_D11') or #strings.contains(goodsImgList,'_D12')
  438. or #strings.contains(goodsImgList,'_D13') or #strings.contains(goodsImgList,'_D14')
  439. or #strings.contains(goodsImgList,'_D15') or #strings.contains(goodsImgList,'_D16')
  440. or #strings.contains(goodsImgList,'_D17') or #strings.contains(goodsImgList,'_D18')
  441. or #strings.contains(goodsImgList,'_D19') or #strings.contains(goodsImgList,'_D20')}">
  442. <span class="tit_view">PRODUCT VIEW</span>
  443. <div class="view">
  444. <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_01') or #strings.contains(goodsImg.sysImgNm,'_02')
  445. or #strings.contains(goodsImg.sysImgNm,'_D1') or #strings.contains(goodsImg.sysImgNm,'_D2')
  446. or #strings.contains(goodsImg.sysImgNm,'_D3') or #strings.contains(goodsImg.sysImgNm,'_D4')
  447. or #strings.contains(goodsImg.sysImgNm,'_D5') or #strings.contains(goodsImg.sysImgNm,'_D6')
  448. or #strings.contains(goodsImg.sysImgNm,'_D7') or #strings.contains(goodsImg.sysImgNm,'_D8')
  449. or #strings.contains(goodsImg.sysImgNm,'_D9') or #strings.contains(goodsImg.sysImgNm,'_D10')
  450. or #strings.contains(goodsImg.sysImgNm,'_D11') or #strings.contains(goodsImg.sysImgNm,'_D12')
  451. or #strings.contains(goodsImg.sysImgNm,'_D13') or #strings.contains(goodsImg.sysImgNm,'_D14')
  452. or #strings.contains(goodsImg.sysImgNm,'_D15') or #strings.contains(goodsImg.sysImgNm,'_D16')
  453. or #strings.contains(goodsImg.sysImgNm,'_D17') or #strings.contains(goodsImg.sysImgNm,'_D18')
  454. or #strings.contains(goodsImg.sysImgNm,'_D19') or #strings.contains(goodsImg.sysImgNm,'_D20')}">
  455. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=1080'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  456. </th:block>
  457. </div>
  458. </div>
  459. <!-- //์ƒํ’ˆ์ปท ๋…ธ์ถœ -->
  460. <!-- ์›๋‹จ ๋…ธ์ถœ -->
  461. <div class="view_fabric_box" th:if="${#strings.contains(goodsImgList,'_F1')}">
  462. <span class="tit_view">FABRIC</span>
  463. <div class="view">
  464. <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_F1')}" >
  465. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  466. </th:block>
  467. </div>
  468. </div>
  469. <!-- //์›๋‹จ ๋…ธ์ถœ -->
  470. <!-- ๋ผ๋ฒจ ๋…ธ์ถœ -->
  471. <div class="view_label_box" th:if="${#strings.contains(goodsImgList,'_L1')
  472. or #strings.contains(goodsImgList,'_L2')}">
  473. <span class="tit_view">LABEL INFO</span>
  474. <div class="view">
  475. <span>
  476. <th:block th:each="goodsImg, status : ${goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_L1')
  477. or #strings.contains(goodsImg.sysImgNm,'_L2')}">
  478. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  479. </th:block>
  480. </span>
  481. </div>
  482. </div>
  483. <!-- //๋„ค์ด๋ฐ๋ฃฐ ์•ˆ๋งž๋Š” ์ด๋ฏธ์ง€ ๋…ธ์ถœ -->
  484. <div class="view_detail_box" th:if="${not #strings.contains(goodsImgList,'_01')}">
  485. <div class="view">
  486. <th:block th:each="goodsImg, status : ${goodsImgList}" >
  487. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  488. </th:block>
  489. </div>
  490. </div>
  491. </th:block>
  492. <!-- ์„ธํŠธ์ƒํ’ˆ์ผ ๊ฒฝ์šฐ๊ตฌ์ƒ์ƒํ’ˆ์˜ ์ •๋ณด๋„ ๋…ธ์ถœ -START -->
  493. <th:block th:if="${goodsInfo.goodsType == 'G056_S' and goodsComposeList != null and !goodsComposeList.empty}">
  494. <th:block th:each="goodsCompose, status : ${goodsComposeList}">
  495. <th:block th:if="${ goodsCompose.tobeFormYn == 'N' and goodsCompose.goodsDesc != null and !goodsCompose.goodsDesc.empty}" >
  496. <div style="height:4rem"></div><!-- ์—ฌ๋ฐฑ์šฉ html -->
  497. <div class="mdhtml_box" >
  498. <div class="mdhtml_box" >
  499. <div th:id="${'goodsDescHtml_' + goodsCompose.compsGoodsCd}"></div>
  500. </div>
  501. </div>
  502. </th:block>
  503. <th:block th:if="${goodsCompose.tobeFormYn == 'Y'}">
  504. <!-- ์ƒํ’ˆ๋ช… -->
  505. <div class="mdhtml_box">
  506. <span class="tit_view" th:text="${goodsCompose.compsGoodsNm}">์ƒํ’ˆ๋ช…</span>
  507. </div>
  508. <!-- ์ฐฉ์šฉ์ปท ๋…ธ์ถœ -->
  509. <div class="view_outfit_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_C1')
  510. or #strings.contains(goodsCompose.goodsImgList,'_C2')
  511. or #strings.contains(goodsCompose.goodsImgList,'_C3')
  512. or #strings.contains(goodsCompose.goodsImgList,'_C4')
  513. or #strings.contains(goodsCompose.goodsImgList,'_C5')}">
  514. <span class="tit_view">OUTFIT VIEW</span>
  515. <th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${status.first}">
  516. <span class="model_info" th:text="${goodsImg.modelInfo}">(๋ชจ๋ธ์ •๋ณด : 185cm / 78kg / XL ์ฐฉ์šฉ)</span>
  517. </th:block>
  518. <div class="view">
  519. <th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_C1')
  520. or #strings.contains(goodsImg.sysImgNm,'_C2')
  521. or #strings.contains(goodsImg.sysImgNm,'_C3')
  522. or #strings.contains(goodsImg.sysImgNm,'_C4')
  523. or #strings.contains(goodsImg.sysImgNm,'_C5')}">
  524. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  525. </th:block>
  526. </div>
  527. </div>
  528. <!-- //์ฐฉ์šฉ์ปท ๋…ธ์ถœ -->
  529. <!-- ์ƒํ’ˆ์ปท ๋…ธ์ถœ -->
  530. <div class="view_detail_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_01') or #strings.contains(goodsCompose.goodsImgList,'_02')
  531. or #strings.contains(goodsCompose.goodsImgList,'_D1') or #strings.contains(goodsCompose.goodsImgList,'_D2')
  532. or #strings.contains(goodsCompose.goodsImgList,'_D3') or #strings.contains(goodsCompose.goodsImgList,'_D4')
  533. or #strings.contains(goodsCompose.goodsImgList,'_D5') or #strings.contains(goodsCompose.goodsImgList,'_D6')
  534. or #strings.contains(goodsCompose.goodsImgList,'_D7') or #strings.contains(goodsCompose.goodsImgList,'_D8')
  535. or #strings.contains(goodsCompose.goodsImgList,'_D9') or #strings.contains(goodsCompose.goodsImgList,'_D10')
  536. or #strings.contains(goodsCompose.goodsImgList,'_D11') or #strings.contains(goodsCompose.goodsImgList,'_D12')
  537. or #strings.contains(goodsCompose.goodsImgList,'_D13') or #strings.contains(goodsCompose.goodsImgList,'_D14')
  538. or #strings.contains(goodsCompose.goodsImgList,'_D15') or #strings.contains(goodsCompose.goodsImgList,'_D16')
  539. or #strings.contains(goodsCompose.goodsImgList,'_D17') or #strings.contains(goodsCompose.goodsImgList,'_D18')
  540. or #strings.contains(goodsCompose.goodsImgList,'_D19') or #strings.contains(goodsCompose.goodsImgList,'_D20')}">
  541. <span class="tit_view">PRODUCT VIEW</span>
  542. <div class="view">
  543. <th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_01') or #strings.contains(goodsImg.sysImgNm,'_02')
  544. or #strings.contains(goodsImg.sysImgNm,'_D1') or #strings.contains(goodsImg.sysImgNm,'_D2')
  545. or #strings.contains(goodsImg.sysImgNm,'_D3') or #strings.contains(goodsImg.sysImgNm,'_D4')
  546. or #strings.contains(goodsImg.sysImgNm,'_D5') or #strings.contains(goodsImg.sysImgNm,'_D6')
  547. or #strings.contains(goodsImg.sysImgNm,'_D7') or #strings.contains(goodsImg.sysImgNm,'_D8')
  548. or #strings.contains(goodsImg.sysImgNm,'_D9') or #strings.contains(goodsImg.sysImgNm,'_D10')
  549. or #strings.contains(goodsImg.sysImgNm,'_D11') or #strings.contains(goodsImg.sysImgNm,'_D12')
  550. or #strings.contains(goodsImg.sysImgNm,'_D13') or #strings.contains(goodsImg.sysImgNm,'_D14')
  551. or #strings.contains(goodsImg.sysImgNm,'_D15') or #strings.contains(goodsImg.sysImgNm,'_D16')
  552. or #strings.contains(goodsImg.sysImgNm,'_D17') or #strings.contains(goodsImg.sysImgNm,'_D18')
  553. or #strings.contains(goodsImg.sysImgNm,'_D19') or #strings.contains(goodsImg.sysImgNm,'_D20')}">
  554. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  555. </th:block>
  556. </div>
  557. </div>
  558. <!-- //์ƒํ’ˆ์ปท ๋…ธ์ถœ -->
  559. <!-- ์›๋‹จ ๋…ธ์ถœ -->
  560. <div class="view_fabric_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_F1')}">
  561. <span class="tit_view">FABRIC</span>
  562. <div class="view">
  563. <th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_F1')}">
  564. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  565. </th:block>
  566. </div>
  567. </div>
  568. <!-- //์›๋‹จ ๋…ธ์ถœ -->
  569. <!-- ๋ผ๋ฒจ ๋…ธ์ถœ -->
  570. <div class="view_label_box" th:if="${#strings.contains(goodsCompose.goodsImgList,'_L1')
  571. or #strings.contains(goodsCompose.goodsImgList,'_L2')}">
  572. <span class="tit_view">LABEL INFO</span>
  573. <div class="view">
  574. <span>
  575. <th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" th:if="${#strings.contains(goodsImg.sysImgNm,'_L1')
  576. or #strings.contains(goodsImg.sysImgNm,'_L2')}">
  577. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=250'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  578. </th:block>
  579. </span>
  580. </div>
  581. </div>
  582. <!-- //๋„ค์ด๋ฐ๋ฃฐ ์•ˆ๋งž๋Š” ์ด๋ฏธ์ง€ ๋…ธ์ถœ -->
  583. <div class="view_detail_box" th:if="${not #strings.contains(goodsCompose.goodsImgList,'_01')}">
  584. <div class="view">
  585. <th:block th:each="goodsImg, status : ${goodsCompose.goodsImgList}" >
  586. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=720'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  587. </th:block>
  588. </div>
  589. </div>
  590. <!-- //๋ผ๋ฒจ ๋…ธ์ถœ -->
  591. </th:block>
  592. </th:block>
  593. </th:block>
  594. <!-- ์„ธํŠธ์ƒํ’ˆ์ผ ๊ฒฝ์šฐ๊ตฌ์ƒ์ƒํ’ˆ์˜ ์ •๋ณด๋„ ๋…ธ์ถœ -END -->
  595. <!-- ๊ด€๋ฆฌ์ž ์—๋””ํ„ฐ์ž…๋ ฅ ๋‚ด์šฉ ๋…ธ์ถœ ํ•˜๋‹ค๋‹จ html -->
  596. <div class="mdhtml_box bnnoti" th:if="${goodsInfo.goodsDownDesc != null and !goodsInfo.goodsDownDesc.empty}" th:utext="${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDownDesc))}"></div>
  597. <!-- ๋ธŒ๋žœ๋“œ ๋…ธ์ถœ -->
  598. <div class="brand_box">
  599. <p class="name" th:text="${goodsInfo.brandGroupNm}">TBJ ํ‹ฐ๋น„์ œ์ด</p>
  600. <a href="javascript:void(0);" class="brend_home" th:onclick="cfnGoToBrandMain([[${goodsInfo.brandGroupNo}]])" ><span>๋ธŒ๋žœ๋“œ ํ™ˆ ๋ฐ”๋กœ๊ฐ€๊ธฐ</span></a>
  601. </div>
  602. <!-- //๋ธŒ๋žœ๋“œ ๋…ธ์ถœ -->
  603. <!-- ์ƒํ’ˆํ•„์ˆ˜์ •๋ณด ๋…ธ์ถœ -->
  604. <div class="required_box">
  605. <div class="area_infotbl" th:if="${goodsInfo.goodsType == 'G056_N' and goodsNotiList != null and !goodsNotiList.empty}">
  606. <span class="title">์ƒํ’ˆ๊ณ ์‹œ์ •๋ณด</span>
  607. <div class="tbl type1">
  608. <table>
  609. <tbody>
  610. <tr th:each="goodsNoti, status : ${goodsNotiList}" >
  611. <th th:text="${goodsNoti.niItemNm}">์Šคํƒ€์ผ</th>
  612. <td th:text="${goodsNoti.niContent}">F94U-MD01XA60F0</td>
  613. </tr>
  614. </tbody>
  615. </table>
  616. </div>
  617. </div>
  618. <div class="area_infotbl" th:if="${goodsInfo.goodsType == 'G056_S' and goodsComposeList != null and !goodsComposeList.empty}">
  619. <span class="title">์ƒํ’ˆ๊ณ ์‹œ์ •๋ณด</span>
  620. <th:block th:each="goodsCompose, status : ${goodsComposeList}">
  621. <div class="tbl type1">
  622. <table>
  623. <tbody>
  624. <tr th:each="goodsNoti, status : ${goodsCompose.goodsNotiList}" >
  625. <th th:text="${goodsNoti.niItemNm}">์Šคํƒ€์ผ</th>
  626. <td th:text="${goodsNoti.niContent}">F94U-MD01XA60F0</td>
  627. </tr>
  628. </tbody>
  629. </table>
  630. </div>
  631. </th:block>
  632. </div>
  633. <th:block th:if="${goodsInfo.goodsType == 'G056_N' and goodsSafeNo != null}" >
  634. <th:block th:if="${goodsSafeNo.certTargetGb == 'G083_3'}" > <!-- ์ƒ์„ธ๋ณ„๋„ํ‘œ์‹œ -->
  635. <div class="area_kcl no-mark">
  636. <div>
  637. <p class="tit normal"><th:block th:if="${goodsSafeNo.certFormNm}" th:text="${goodsSafeNo.certFormNm}"></th:block>
  638. <th:block th:if="${goodsSafeNo.certTypeNm}" th:text="${' ' + goodsSafeNo.certTypeNm}"></th:block> / ์ œํ’ˆ ์ƒ์„ธ์ •๋ณด ๋‚ด ๋ณ„๋„ ํ‘œ๊ธฐ</p>
  639. <p class="normal">์ œํ’ˆ ์ƒ์„ธ์ •๋ณด ๋‚ด ํ‘œ๊ธฐ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํ’ˆ ์ •๋ณด๋ฅผ ํ™•์ธํ•ด์ฃผ์„ธ์š”.</p>
  640. </div>
  641. </div>
  642. </th:block>
  643. <th:block th:unless="${goodsSafeNo.certTargetGb == 'G083_3'}" > <!-- ์ธ์ฆ -->
  644. <th:block th:if="${goodsSafeNo.certType == 'G081_3'}" > <!-- ๊ณต๊ธ‰์ž์ ํ•ฉ์„ฑ -->
  645. <div class="area_kcl">
  646. <div><i class="ico ico_kcl"></i></div>
  647. <div>
  648. <p class="tit normal"><th:block th:if="${goodsSafeNo.certFormNm}" th:text="${goodsSafeNo.certFormNm}"></th:block>
  649. <th:block th:if="${goodsSafeNo.certTypeNm}" th:text="${' ' + goodsSafeNo.certTypeNm}"></th:block> / ๊ณต๊ธ‰์ž์ ํ•ฉ์„ฑํ™•์ธ</p>
  650. <p class="normal">๊ณต๊ธ‰์ž ์ ํ•ฉ์„ฑ ํ™•์ธ ํ’ˆ๋ชฉ์œผ๋กœ ๊ตญ๊ฐ€ํ†ตํ•ฉ์ธ์ฆ์„ ํ•„ํ•จ</p>
  651. </div>
  652. </div>
  653. </th:block>
  654. <th:block th:unless="${goodsSafeNo.certType == 'G081_3'}" > <!-- ๊ณต๊ธ‰์ž์ ํ•ฉ์„ฑ ์™ธ -->
  655. <div class="area_kcl" >
  656. <div><i class="ico ico_kcl"></i></div>
  657. <div>
  658. <th:block th:if="${goodsSafeNo.certFormGb != 'G084_4' and goodsSafeNo.certFormGb != 'G084_5' }">
  659. <p class="tit normal">
  660. <th:block th:if="${goodsSafeNo.certDiv}" th:text="${goodsSafeNo.certDiv}"></th:block>
  661. <th:block th:if="${goodsSafeNo.certOrganName}" th:text="${' /' + goodsSafeNo.certOrganName}"></th:block>
  662. </p>
  663. </th:block>
  664. <th:block th:unless="${goodsSafeNo.certFormGb != 'G084_4' and goodsSafeNo.certFormGb != 'G084_5' }">
  665. <p class="tit normal" >
  666. <th:block th:if="${goodsSafeNo.certFormNm}" th:text="${goodsSafeNo.certFormNm}"></th:block>
  667. <th:block th:if="${goodsSafeNo.certTypeNm}" th:text="${' ' + goodsSafeNo.certTypeNm}"></th:block>
  668. </p>
  669. </th:block>
  670. <p class="normal" th:if="${goodsSafeNo.certNum}">
  671. <th:block th:if="${goodsSafeNo.certFormGb == 'G084_4' or goodsSafeNo.certFormGb == 'G084_5' }">
  672. <span>์ธ์ฆ๋ฒˆํ˜ธ:</span> <th:block th:text="${goodsSafeNo.certNum}">CB123A123-1234</th:block>
  673. </th:block>
  674. <th:block th:unless="${goodsSafeNo.certFormGb == 'G084_4' or goodsSafeNo.certFormGb == 'G084_5' }">
  675. <span>์ธ์ฆ๋ฒˆํ˜ธ:</span> <a class="num" th:href="@{http://www.safetykorea.kr/search/searchPop(certNum=${goodsSafeNo.certNum})}" target="_blank" th:text="${goodsSafeNo.certNum}">CB123A123-1234</a>
  676. </th:block>
  677. </p>
  678. </div>
  679. </div>
  680. </th:block>
  681. </th:block>
  682. <p class="t_info dot_info mt10">
  683. ํ•ด๋‹น ์ธ์ฆ์ •๋ณด๋Š” ํŒ๋งค์ž๊ฐ€ ๋“ฑ๋กํ•œ ๊ฒƒ์œผ๋กœ ๋“ฑ๋ก์ •๋ณด์— ๋Œ€ํ•œ ์ผ์ฒด์˜ ์ฑ…์ž„์€ ํŒ๋งค์ž์—๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค.
  684. </p>
  685. </th:block>
  686. <th:block th:if="${goodsInfo.goodsType == 'G056_S'}">
  687. <th:block th:each="goodsCompose, status : ${goodsComposeList}">
  688. <th:block th:if="${goodsCompose.goodsSafeNo != null}">
  689. <th:block th:if="${goodsCompose.goodsSafeNo.certTargetGb == 'G083_3'}" > <!-- ์ƒ์„ธ๋ณ„๋„ํ‘œ์‹œ -->
  690. <div class="area_kcl no-mark">
  691. <div>
  692. <p class="tit normal"><th:block th:if="${goodsCompose.goodsSafeNo.certFormNm}" th:text="${goodsCompose.goodsSafeNo.certFormNm}"></th:block>
  693. <th:block th:if="${goodsCompose.goodsSafeNo.certTypeNm}" th:text="${' ' + goodsCompose.goodsSafeNo.certTypeNm}"></th:block> / ์ œํ’ˆ ์ƒ์„ธ์ •๋ณด ๋‚ด ๋ณ„๋„ ํ‘œ๊ธฐ</p>
  694. <p class="normal">์ œํ’ˆ ์ƒ์„ธ์ •๋ณด ๋‚ด ํ‘œ๊ธฐ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํ’ˆ ์ •๋ณด๋ฅผ ํ™•์ธํ•ด์ฃผ์„ธ์š”.</p>
  695. </div>
  696. </div>
  697. </th:block>
  698. <th:block th:unless="${goodsCompose.goodsSafeNo.certTargetGb == 'G083_3'}" > <!-- ์ธ์ฆ -->
  699. <th:block th:if="${goodsCompose.goodsSafeNo.certType == 'G081_3'}" > <!-- ๊ณต๊ธ‰์ž์ ํ•ฉ์„ฑ -->
  700. <div class="area_kcl">
  701. <div><i class="ico ico_kcl"></i></div>
  702. <div>
  703. <p class="tit normal"><th:block th:if="${goodsCompose.goodsSafeNo.certFormNm}" th:text="${goodsCompose.goodsSafeNo.certFormNm}"></th:block>
  704. <th:block th:if="${goodsCompose.goodsSafeNo.certTypeNm}" th:text="${' ' + goodsCompose.goodsSafeNo.certTypeNm}"></th:block> / ๊ณต๊ธ‰์ž์ ํ•ฉ์„ฑํ™•์ธ</p>
  705. <p class="normal">๊ณต๊ธ‰์ž ์ ํ•ฉ์„ฑ ํ™•์ธ ํ’ˆ๋ชฉ์œผ๋กœ ๊ตญ๊ฐ€ํ†ตํ•ฉ์ธ์ฆ์„ ํ•„ํ•จ</p>
  706. </div>
  707. </div>
  708. </th:block>
  709. <th:block th:unless="${goodsCompose.goodsSafeNo.certType == 'G081_3'}" > <!-- ๊ณต๊ธ‰์ž์ ํ•ฉ์„ฑ ์™ธ -->
  710. <div class="area_kcl" >
  711. <div><i class="ico ico_kcl"></i></div>
  712. <div>
  713. <th:block th:if="${goodsCompose.goodsSafeNo.certFormGb != 'G084_4' and goodsCompose.goodsSafeNo.certFormGb != 'G084_5' }">
  714. <p class="tit normal" >
  715. <th:block th:if="${goodsCompose.goodsSafeNo.certDiv}" th:text="${goodsCompose.goodsSafeNo.certDiv}"></th:block>
  716. <th:block th:if="${goodsCompose.goodsSafeNo.certOrganName}" th:text="${' /' + goodsCompose.goodsSafeNo.certOrganName}"></th:block>
  717. </p>
  718. </th:block>
  719. <th:block th:unless="${goodsCompose.goodsSafeNo.certFormGb != 'G084_4' and goodsCompose.goodsSafeNo.certFormGb != 'G084_5' }">
  720. <p class="tit normal">
  721. <th:block th:if="${goodsCompose.goodsSafeNo.certFormNm}" th:text="${goodsCompose.goodsSafeNo.certFormNm}"></th:block>
  722. <th:block th:if="${goodsCompose.goodsSafeNo.certTypeNm}" th:text="${' ' + goodsCompose.goodsSafeNo.certTypeNm}"></th:block>
  723. </p>
  724. </th:block>
  725. <p class="normal" th:if="${goodsCompose.goodsSafeNo.certNum}">
  726. <th:block th:if="${goodsCompose.goodsSafeNo.certFormGb == 'G084_4' or goodsCompose.goodsSafeNo.certFormGb == 'G084_5' }">
  727. <span>์ธ์ฆ๋ฒˆํ˜ธ:</span> <th:block th:text="${goodsCompose.goodsSafeNo.certNum}">CB123A123-1234</th:block>
  728. </th:block>
  729. <th:block th:unless="${goodsCompose.goodsSafeNo.certFormGb == 'G084_4' or goodsCompose.goodsSafeNo.certFormGb == 'G084_5' }">
  730. <span>์ธ์ฆ๋ฒˆํ˜ธ:</span> <a class="num" th:href="@{http://www.safetykorea.kr/search/searchPop(certNum=${goodsCompose.goodsSafeNo.certNum})}"
  731. target="_blank" th:text="${goodsCompose.goodsSafeNo.certNum}">CB123A123-1234</a>
  732. </th:block>
  733. </p>
  734. </div>
  735. </div>
  736. </th:block>
  737. </th:block>
  738. <p class="t_info dot_info mt10" >
  739. ํ•ด๋‹น ์ธ์ฆ์ •๋ณด๋Š” ํŒ๋งค์ž๊ฐ€ ๋“ฑ๋กํ•œ ๊ฒƒ์œผ๋กœ ๋“ฑ๋ก์ •๋ณด์— ๋Œ€ํ•œ ์ผ์ฒด์˜ ์ฑ…์ž„์€ ํŒ๋งค์ž์—๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค.
  740. </p>
  741. </th:block>
  742. </th:block>
  743. </th:block>
  744. <div class="area_infotbl">
  745. <span class="title">์ƒํ’ˆ๊ธฐ๋ณธ์ •๋ณด</span>
  746. <th:block th:if="${goodsInfo.goodsType == 'G056_N'} ">
  747. <div class="tbl type1">
  748. <table>
  749. <tbody>
  750. <tr>
  751. <th>์ƒํ’ˆ์ฝ”๋“œ</th>
  752. <td th:text="${goodsInfo.goodsCd}">14443216</td>
  753. </tr>
  754. <tr>
  755. <th>์ƒํ’ˆ๊ตฌ๋ถ„</th>
  756. <td th:text="${goodsInfo.goodsGbNm}">๋ณ‘ํ–‰์ˆ˜์ž…</td>
  757. </tr>
  758. <tr>
  759. <th>๋ธŒ๋žœ๋“œ</th>
  760. <td th:text="${goodsInfo.brandGroupNm}">TBJ</td>
  761. </tr>
  762. <tr>
  763. <th>์ƒํ’ˆ๋ช…</th>
  764. <td th:text="${goodsInfo.goodsNm}">๋‚จ์„ฑ ํ…Œ์ดํผ๋“œ ํ• ๊ฒจ์šธ ๊ธฐ๋ชจ๋ฉด ์ŠคํŒ ์˜ฌ ๋ฐด๋”ฉ ํŒฌ์ธ </td>
  765. </tr>
  766. <th:block th:if="${goodsNotiList != null and !goodsNotiList.empty}">
  767. <th:block th:each="goodsNoti, status : ${goodsNotiList}" th:if="${goodsNoti.niItemCd == 'G005_005'}">
  768. <tr>
  769. <th th:text="${goodsNoti.niItemNm}">์ œ์กฐ์‚ฌ</th>
  770. <td th:text="${goodsNoti.niContent}"></td>
  771. </tr>
  772. </th:block>
  773. </th:block>
  774. <tr>
  775. <th>์ œ์กฐ๊ตญ</th>
  776. <td th:text="${goodsInfo.originNm}">๋ฒ ํŠธ๋‚จ</td>
  777. </tr>
  778. </tbody>
  779. </table>
  780. </div>
  781. </th:block>
  782. <th:block th:unless="${goodsInfo.goodsType == 'G056_N'} ">
  783. <th:block th:if="${goodsComposeList != null and !goodsComposeList.empty}">
  784. <th:block th:each="goodsCompose, status : ${goodsComposeList}">
  785. <div class="tbl type1">
  786. <table>
  787. <tbody>
  788. <tr>
  789. <th>์ƒํ’ˆ์ฝ”๋“œ</th>
  790. <td th:text="${goodsCompose.compsGoodsCd}">14443216</td>
  791. </tr>
  792. <tr>
  793. <th>์ƒํ’ˆ๊ตฌ๋ถ„</th>
  794. <td th:text="${goodsCompose.goodsGbNm}">๋ณ‘ํ–‰์ˆ˜์ž…</td>
  795. </tr>
  796. <tr>
  797. <th>๋ธŒ๋žœ๋“œ</th>
  798. <td th:text="${goodsCompose.brandGroupNm}">TBJ</td>
  799. </tr>
  800. <tr>
  801. <th>์ƒํ’ˆ๋ช…</th>
  802. <td th:text="${goodsCompose.compsGoodsNm}">๋‚จ์„ฑ ํ…Œ์ดํผ๋“œ ํ• ๊ฒจ์šธ ๊ธฐ๋ชจ๋ฉด ์ŠคํŒ ์˜ฌ ๋ฐด๋”ฉ ํŒฌ์ธ </td>
  803. </tr>
  804. <th:block th:if="${goodsCompose.goodsNotiList != null and !goodsCompose.goodsNotiList.empty}">
  805. <th:block th:each="goodsNoti, status : ${goodsCompose.goodsNotiList}" th:if="${goodsNoti.niItemCd == 'G005_005'}">
  806. <tr>
  807. <th th:text="${goodsNoti.niItemNm}">์ œ์กฐ์‚ฌ</th>
  808. <td th:text="${goodsNoti.niContent}"></td>
  809. </tr>
  810. </th:block>
  811. </th:block>
  812. <tr>
  813. <th>์ œ์กฐ๊ตญ</th>
  814. <td th:text="${goodsCompose.originNm}">๋ฒ ํŠธ๋‚จ</td>
  815. </tr>
  816. </tbody>
  817. </table>
  818. </div>
  819. </th:block>
  820. </th:block>
  821. </th:block>
  822. <p class="t_info dot_info mt10">
  823. ์ฃผ๋ฌธ์ œ์ž‘ ์ƒํ’ˆ์˜ ๊ฒฝ์šฐ ์ฃผ๋ฌธ ํ›„ ์ œ์ž‘๋˜์–ด ํŒ๋งค๋˜๋Š” ์ƒํ’ˆ์œผ๋กœ ์ œ์ž‘ ์‹œ์ ๋ถ€ํ„ฐ ๋ฐ˜ํ’ˆ/๊ตํ™˜์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  824. </p>
  825. </div>
  826. </div>
  827. <!-- //์ƒํ’ˆํ•„์ˆ˜์ •๋ณด ๋…ธ์ถœ -->
  828. </div>
  829. <div class="btn_more_box covered">
  830. <div class="btn_group_flex">
  831. <div>
  832. <button type="button" class="btn btn_default">
  833. <span>์ƒ์„ธ์ •๋ณด ๋”๋ณด๊ธฐ</span>
  834. </button>
  835. </div>
  836. </div>
  837. </div>
  838. </div>
  839. </div>
  840. <div class="inner">
  841. <!-- ๋ฆฌ๋ทฐ์˜์—ญ -->
  842. <div class="riview_box" th:if="${reviewDisplayYn == 'Y'}">
  843. <div class="ex_review">
  844. <a href="javascript:void(0);" id="btn_pdReview_pop" th:onclick="cfGoodsReview([[${goodsInfo.goodsCd}]])">
  845. <span class="tit">๋ฆฌ๋ทฐ<em class="number">(<th:block th:text="${(goodsInfo.reviewRegCnt <= 9999) ? #numbers.formatInteger(goodsInfo.reviewRegCnt, 0,'COMMA') : '9,999+'}"></th:block>)</em></span>
  846. <div class="star_score" th:if="${goodsInfo.reviewRegCnt > 0 }">
  847. <span class="star" th:with="starScore=${#numbers.formatDecimal((goodsInfo.score*100/5), 0,0)}">
  848. <em class="progbar" th:style="${'width:'+starScore+'%;' }"></em> <!-- ํ‰์  style๋กœ ํ‘œ๊ธฐ -->
  849. </span>
  850. <span class="score" th:text="|${goodsInfo.score}์ |">4.3์ </span>
  851. </div>
  852. <div class="star_score" th:unless="${goodsInfo.reviewRegCnt > 0 }">
  853. <span class="star">
  854. <em class="progbar" style="width:0%;"></em> <!-- ํ‰์  style๋กœ ํ‘œ๊ธฐ -->
  855. </span>
  856. <span class="score">0์ </span>
  857. </div>
  858. </a>
  859. </div>
  860. <div class="area_slider" id="btn_pdBestReview_pop" th:if="${bestReviewList != null and !bestReviewList.empty}">
  861. <div class="swiper-container">
  862. <div class="swiper-wrapper">
  863. <div class="swiper-slide" th:each="bestReview, status : ${bestReviewList}" >
  864. <!-- ๋ฒ ์ŠคํŠธ ๋ฆฌ๋ทฐ ๋“ฑ๋ก์‹œ ๋…ธ์ถœ -->
  865. <div class="best_review">
  866. <a href="javascript:void(0);" th:onclick="cfGoodsReviewDetail([[${goodsInfo.goodsCd}]],'Y', '',[[${bestReview.reviewSq}]])">
  867. <div class="star_score" th:with="starScore=${#numbers.formatDecimal((bestReview.iscore*100/5), 0,0)}">
  868. <span class="star">
  869. <em class="progbar" th:style="${'width:'+starScore+'%;' }"></em> <!-- ํ‰์  style๋กœ ํ‘œ๊ธฐ -->
  870. </span>
  871. <em class="ico ico_besttag"></em>
  872. </div>
  873. <div class="lap">
  874. <th:block th:if="${bestReview.reviewAttachList != null and !bestReview.reviewAttachList.empty}">
  875. <div class="pic" >
  876. <th:block th:each="reviewAttach, attachStatus : ${bestReview.reviewAttachList}" th:if="${attachStatus.first}">
  877. <th:block th:if="${reviewAttach.fileGb == 'M'}" >
  878. <span class="thumb mov" th:style="${'background-image:url('+kollusMediaUrl+'/poster/'+reviewAttach.kmcKey+');'}"></span><!-- ๋™์˜์ƒ์˜ ์ธ๋„ค์ผ์ผ ๊ฒฝ์šฐ mov ํด๋ž˜์Šค ์ถ”๊ฐ€ -->
  879. </th:block>
  880. <th:block th:unless="${reviewAttach.fileGb == 'M'}" >
  881. <span class="thumb" th:style="${'background-image:url('+imgUrl+ reviewAttach.sysFileNm+');'}"></span>
  882. </th:block>
  883. </th:block>
  884. </div>
  885. </th:block>
  886. <th:block th:unless="${bestReview.reviewAttachList != null and !bestReview.reviewAttachList.empty}">
  887. <div class="pic none" >
  888. </div>
  889. </th:block>
  890. <div class="txt_best_review">
  891. <p th:text="${bestReview.reviewContent}">์˜ท</p>
  892. </div>
  893. </div>
  894. </a>
  895. </div>
  896. <!-- //๋ฒ ์ŠคํŠธ ๋ฆฌ๋ทฐ ๋“ฑ๋ก์‹œ ๋…ธ์ถœ -->
  897. </div>
  898. </div>
  899. <!-- Add Pagination -->
  900. <div class="swiper-pagination"></div>
  901. </div>
  902. </div>
  903. </div>
  904. <!-- //๋ฆฌ๋ทฐ์˜์—ญ -->
  905. <!-- ๋ฌธ์˜,์‚ฌ์ด์ฆˆ์ •๋ณด,๋ฐฐ์†ก/๊ตํ™˜/๋ฐ˜ํ’ˆ -->
  906. <div class="exinfo_box">
  907. <ul>
  908. <li>
  909. <div class="ex_qna">
  910. <a href="javascript:void(0);" id="btn_pdQnaList_pop" th:onclick="cfGoodsQng([[${goodsInfo.goodsCd}]])">
  911. <span class="tit">๋ฌธ์˜<em class="number">(<th:block th:text="${(goodsInfo.goodsQnaCnt <= 9999) ? #numbers.formatInteger(goodsInfo.goodsQnaCnt, 0,'COMMA') : '9,999+'}"></th:block>)</em></span>
  912. </a>
  913. </div>
  914. </li>
  915. <li>
  916. <div class="ex_size">
  917. <a href="javascript:void(0)" id="btn_pdSizeInfo_pop" th:onclick="cfGoodsSizeInfo([[${goodsInfo.goodsCd}]],[[${goodsInfo.colorCd}]] )">
  918. <span class="tit">์‚ฌ์ด์ฆˆ ์ •๋ณด</span>
  919. </a>
  920. </div>
  921. </li>
  922. <li>
  923. <div class="ex_shipping">
  924. <a href="javascript:void(0)" id="btn_pdDelivery_Pop" th:onclick="cfGoodsDelivery([[${goodsInfo.goodsCd}]])">
  925. <span class="tit">๋ฐฐ์†ก/๊ตํ™˜/๋ฐ˜ํ’ˆ</span>
  926. </a>
  927. <!-- ํ•ด๋‹น ๋ฐฐ์†ก์ •๋ณด ์„ ํƒ๋…ธ์ถœ -->
  928. <span class="txt_shippingfee" th:if="${goodsInfo.delvFee > 0}">๋ฐฐ์†ก๋น„ <th:block th:text="${#numbers.formatInteger(goodsInfo.delvFee, 0,'COMMA')}" ></th:block>์›
  929. <th:block th:if="${goodsInfo.minOrdAmt > 0}">(<th:block th:text="${#numbers.formatInteger(goodsInfo.minOrdAmt, 0,'COMMA')}" ></th:block>์› ์ด์ƒ ๋ฌด๋ฃŒ๋ฐฐ์†ก)</th:block>
  930. </span>
  931. <span class="txt_shippingfee" th:if="${goodsInfo.delvFee <= 0}">๋ฌด๋ฃŒ๋ฐฐ์†ก</span>
  932. <span class="txt_shippingfee" th:if="${goodsInfo.quikDelvYn == 'Y'}">์ด์•Œ๋ฐฐ์†ก(์˜ค์ „ 10์‹œ๊นŒ์ง€ ์ฃผ๋ฌธ ์‹œ)</span>
  933. <!-- //ํ•ด๋‹น ๋ฐฐ์†ก์ •๋ณด ์„ ํƒ๋…ธ์ถœ -->
  934. </div>
  935. </li>
  936. </ul>
  937. </div>
  938. <!-- //๋ฌธ์˜,์‚ฌ์ด์ฆˆ์ •๋ณด,๋ฐฐ์†ก/๊ตํ™˜/๋ฐ˜ํ’ˆ -->
  939. </div>
  940. <div class="inner" id="otherGoodsArea" style="display:none;">
  941. <div class="recommendedArea">
  942. <!-- ์ด์ƒํ’ˆ๊ณผ ํ•จ๊ป˜ ๋ณธ ์ƒํ’ˆ์˜์—ญ-->
  943. <div class="pd_clickother" id="goodsTogetherbArea">
  944. </div>
  945. <!-- //์ด์ƒํ’ˆ๊ณผ ํ•จ๊ป˜ ๋ณธ ์ƒํ’ˆ์˜์—ญ-->
  946. <!-- STYLE24์˜ ์Šคํƒ€์ผ๋ง ์ถ”์ฒœ -->
  947. <div class="pd_recommend" th:if="${lookbookList != null and !lookbookList.empty}" th:with="ithrCd=aa , contentsLoc=bb" >
  948. <h3 class="tit">STYLE24์˜ ์Šคํƒ€์ผ๋ง ์ถ”์ฒœ</h3>
  949. <!-- ์ƒํ’ˆ์ด๋ฏธ์ง€pic -->
  950. <div class="area_slider pic_img" >
  951. <div class="swiper-container">
  952. <div class="swiper-wrapper">
  953. <div class="swiper-slide" th:each="lookbook, status : ${lookbookList}">
  954. <div class="page">
  955. <div class="pic">
  956. <span class="thumb" th:style="${'background-image:url(' + imgUrl+ lookbook.sysFileNm+');'}"></span>
  957. <!-- ์ƒํ’ˆํ”ผ์ปค -->
  958. <th:block th:if="${lookbook.lookbookGoodsList != null and !lookbook.lookbookGoodsList.empty}"
  959. th:each="lookbookGoods, goodsStatus : ${lookbook.lookbookGoodsList}">
  960. <div class="item_picker" th:style="${'left:'+lookbookGoods.xlim+'%; top:'+lookbookGoods.ylim+'%;'}" >
  961. <div>
  962. <button type="button" th:onclick="fnLookbookPicker(this,[[${lookbookGoods.goodsCd}]]);"><span class="ico ico_picker"></span></button>
  963. <div class="pick_descr">
  964. <a href="javascript:void(0)"><th:block th:text="${lookbookGoods.goodsFullNm}"></th:block></a>
  965. </div>
  966. </div>
  967. </div>
  968. <!-- //์ƒํ’ˆํ”ผ์ปค -->
  969. </th:block>
  970. </div>
  971. </div>
  972. </div>
  973. </div>
  974. <!-- Add Pagination -->
  975. <div class="swiper-pagination"></div>
  976. </div>
  977. </div>
  978. <!-- //์ƒํ’ˆ์ด๋ฏธ์ง€pic -->
  979. <!-- ์ƒํ’ˆ์ด๋ฏธ์ง€pic ๋ฆฌ์ŠคํŠธ -->
  980. <div class="area_slider pic_list" >
  981. <div class="box" th:each="lookbook, status : ${lookbookList}">
  982. <div class="swiper-container" th:if="${lookbook.lookbookGoodsList != null and !lookbook.lookbookGoodsList.empty}">
  983. <div class="swiper-wrapper">
  984. <div class="swiper-slide" th:each="lookbookGoods, goodsStatus : ${lookbook.lookbookGoodsList}" >
  985. <div class="item_prod" th:classappend="${(lookbookGoods.stockQty <= 0 or lookbookGoods.soldoutYn == 'Y')}? 'unable' : ''"
  986. th:attr="goodsCd=${lookbookGoods.goodsCd}, optCdInfo=${lookbookGoods.optCdInfo},
  987. minOrdQty=${lookbookGoods.minOrdQty}, goodsType=${lookbookGoods.goodsType},
  988. ithrCd=${ithrCd}, contentsLoc=${contentsLoc}"> <!-- ํŒ๋งค๋ถˆ๊ฐ€ ์ƒํ’ˆ์— unable ์ถ”๊ฐ€ -->
  989. <div class="item_state">
  990. <th:block th:each="optCd : ${#strings.arraySplit(lookbookGoods.optCdInfo,',')}">
  991. <input type="hidden" name="lookbookGoodsOptCd" th:value="${optCd}"/>
  992. </th:block>
  993. <button type="button" class="itemLike" th:classappend="${lookbookGoods.wishYn == 'Y'}? 'likeit active' : ''" onclick="cfnPutWishList(this);" th:attr="goodsCd=${lookbookGoods.goodsCd}, goodsNm=${lookbookGoods.goodsFullNm}, ithrCd=${ithrCd}, contentsLoc='', planDtlSq=''">๊ด€์‹ฌ์ƒํ’ˆ ์ถ”๊ฐ€</button>
  994. <th:block th:if="${(lookbookGoods.stockQty <= 0 or lookbookGoods.soldoutYn == 'Y')}">
  995. <a href="javascript:void(0);" class="itemLink" >
  996. </th:block>
  997. <th:block th:unless="${(lookbookGoods.stockQty <= 0 or lookbookGoods.soldoutYn == 'Y')}">
  998. <a href="javascript:void(0);" class="itemLink" th:onclick="cfnGoToGoodsDetail([[${lookbookGoods.goodsCd}]], '','IN15_06','' )">
  999. </th:block>
  1000. <div class="itemPic">
  1001. <img class="vLHTC pd_img" th:src="${imgGoodsUrl+'/'+lookbookGoods.sysImgNm+'?RS=96'}" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  1002. </div>
  1003. <p class="itemBrand" th:text="${lookbookGoods.brandGroupNm}">BRAND NAME</p>
  1004. <div class="itemName" th:text="${lookbookGoods.goodsFullNm}">๋‚จ์„ฑ ํ—ค๋ง๋ณธ ๊ธฐ๋ชจ ํŒฌ์ธ  ํ—ค๋ง๋ณธ ๊ธฐ๋ชจ ํŒฌ์ธ </div>
  1005. <p class="itemPrice" th:text="${#numbers.formatInteger(lookbookGoods.currPrice, 0,'COMMA')}">80,100</p>
  1006. </a>
  1007. </div>
  1008. </div>
  1009. </div>
  1010. </div>
  1011. </div>
  1012. <div class="btn_group_flex">
  1013. <div>
  1014. <button type="button" class="btn btn_default" onclick="fnAddCartLookBookGoods(this);"><span>๋ชจ๋‘ ์‡ผํ•‘๋ฐฑ ๋‹ด๊ธฐ</span></button>
  1015. </div>
  1016. </div>
  1017. </div>
  1018. </div>
  1019. <!-- //์ƒํ’ˆ์ด๋ฏธ์ง€pic ๋ฆฌ์ŠคํŠธ -->
  1020. <script>
  1021. $('#otherGoodsArea').css('display','block');
  1022. </script>
  1023. </div>
  1024. <!-- //STYLE24์˜ ์Šคํƒ€์ผ๋ง ์ถ”์ฒœ -->
  1025. <!-- ๋™์ผ๋ธŒ๋žœ๋“œ ์ถ”์ฒœ์ƒํ’ˆ -->
  1026. <div class="pd_clickother" id="goodsRecommendbArea">
  1027. </div>
  1028. <!-- //๋™์ผ๋ธŒ๋žœ๋“œ ์ถ”์ฒœ์ƒํ’ˆ -->
  1029. <!-- ์ด ์ƒํ’ˆ๊ณผ ๋น„์Šทํ•œ ์ƒํ’ˆ์˜์—ญ -->
  1030. <div class="pd_clickother" id="goodsLikebArea">
  1031. </div>
  1032. <!-- //์ด ์ƒํ’ˆ๊ณผ ๋น„์Šทํ•œ ์ƒํ’ˆ์˜์—ญ -->
  1033. </div>
  1034. </div>
  1035. <!-- ๊ตฌ๋งคํ•˜๊ธฐํŒ์—… -->
  1036. <div class="btPop btPopAuto pd_pop Purchase_pop" id="btPopAuto_back">
  1037. <a href="javascript:void(0);" class="btn btPop_close">Close </a>
  1038. <div class="header btPop_head btPopAuto_head">
  1039. ๊ตฌ๋งคํ•˜๊ธฐํŒ์—…
  1040. </div>
  1041. <div class="body btPop_body btPopAuto_body">
  1042. <div class="option_result op1">
  1043. <!-- ์˜ต์…˜ -->
  1044. <div class="option_box">
  1045. <th:block th:if="${goodsInfo.selfGoodsYn =='Y' }"> <!-- ์ž์‚ฌ์ƒํ’ˆ -->
  1046. <th:block th:if="${goodsInfo.goodsType =='G056_N' }"> <!-- ์ผ๋ฐ˜์ƒํ’ˆ -->
  1047. <div class="opt_color" th:if="${goodsOption1List != null and !goodsOption1List.empty}">
  1048. <div class="opt_header">
  1049. <span class="title">์ปฌ๋Ÿฌ</span>
  1050. <span class="color" th:text="${goodsInfo.colorNm}">๊ทธ๋ ˆ์ด</span>
  1051. </div>
  1052. <ul>
  1053. <li th:each="goodsOption1, status : ${goodsOption1List}">
  1054. <a href="javascript:void(0);" th:class="${params.colorCd == goodsOption1.optCd1}? 'on':''" th:onclick="cfnGoToGoodsDetail([[${goodsInfo.goodsCd}]], [[${goodsOption1.optCd1}]], 'IN15_01')"> <!-- ํ•ด๋‹น ์ปฌ๋Ÿฌ ์ƒํ’ˆํŽ˜์ด์ง€๋กœ ์ด๋™ -->
  1055. <img th:src="${imgGoodsUrl+'/'+goodsOption1.sysImgNm+'?RS=50'}" alt="">
  1056. </a>
  1057. </li>
  1058. </ul>
  1059. </div>
  1060. <div class="opt_size" th:if="${goodsOption2List != null and !goodsOption2List.empty}">
  1061. <div class="opt_header">
  1062. <span class="title">์‚ฌ์ด์ฆˆ</span>
  1063. <span class="size">
  1064. <em class="selectOptCd1"></em>
  1065. <em class="selectOptCd1addPrice"></em>
  1066. </span>
  1067. </div>
  1068. <div class="form_field">
  1069. <th:block th:each="goodsOption2, status : ${goodsOption2List}">
  1070. <div>
  1071. <th:block th:if="${goodsOption2.soldoutYn == 'Y' or goodsOption2.stockQty <= 0}" >
  1072. <input type="radio" name="opt" th:id="${goodsOption2.optCd}" th:disabled="${goodsOption2.soldoutYn == 'Y' or goodsOption2.stockQty <= 0}"
  1073. th:attr="addPrice=${goodsOption2.addPrice}, optCd1=${goodsOption2.optCd1}, optCd2=${goodsOption2.optCd2}, optCd=${goodsOption2.optCd}"/>
  1074. <label th:for="${goodsOption2.optCd}" ><span th:text="${goodsOption2.optCd2}">90</span></label>
  1075. </th:block>
  1076. <th:block th:unless="${goodsOption2.soldoutYn == 'Y' or goodsOption2.stockQty <= 0}" >
  1077. <input type="radio" name="opt" th:id="${goodsOption2.optCd}" th:disabled="${goodsOption2.soldoutYn == 'Y' or goodsOption2.stockQty <= 0}"
  1078. th:attr="addPrice=${goodsOption2.addPrice}, optCd1=${goodsOption2.optCd1}, optCd2=${goodsOption2.optCd2}, optCd=${goodsOption2.optCd}"/>
  1079. <label th:for="${goodsOption2.optCd}" th:onclick="fnViewStock(this, [[${goodsInfo.goodsCd}]],[[${goodsOption2.optCd}]],[[${goodsOption2.optCd1}]],[[${goodsOption2.optCd2}]],[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]] )" ><span th:text="${goodsOption2.optCd2}">90</span></label>
  1080. </th:block>
  1081. </div>
  1082. </th:block>
  1083. </div>
  1084. </div>
  1085. <!-- ํ•ด๋‹น์ƒํ’ˆ ํ’ˆ์ ˆ์‹œ ๋…ธ์ถœ -->
  1086. <div class="info_restock" style="display:none;"><a href="javascript:void(0);" id="btn_pushRestock_pop" class="btn_popup" th:onclick="cfGoodsInstockAlarmInfo([[${goodsInfo.goodsCd}]], [[${goodsInfo.colorCd}]])">์žฌ์ž…๊ณ  ์•Œ๋ฆผ ์‹ ์ฒญ</a></div>
  1087. <!-- //ํ•ด๋‹น์ƒํ’ˆ ํ’ˆ์ ˆ์‹œ ๋…ธ์ถœ -->
  1088. <div class="opt_count">
  1089. <div class="opt_header">
  1090. <span class="title">์ˆ˜๋Ÿ‰</span>
  1091. </div>
  1092. <div class="number_count">
  1093. <span class="minus min_val" onclick="fnAdjustOrderEa(this);" adjust="-"><em class="sr-only">๊ฐ์†Œ</em></a></span>
  1094. <input type="text" name="cea" maxlength="3" style="ime-mode:disabled" th:value="${goodsInfo.minOrdQty}" readonly>
  1095. <input type="hidden" name="coption" value="" th:attr="price=${goodsInfo.currPrice}">
  1096. <span class="plus" onclick="fnAdjustOrderEa(this);" adjust="+"><em class="sr-only">์ถ”๊ฐ€</em></span>
  1097. </div>
  1098. </div>
  1099. </th:block>
  1100. </th:block>
  1101. <th:block th:if="${goodsInfo.selfGoodsYn =='N' or goodsInfo.goodsType =='G056_S'}"> <!-- ์ž…์ ์ƒํ’ˆ -->
  1102. <div class="opt_select">
  1103. <div class="form_wrap">
  1104. <div class="form_field">
  1105. <div class="select_custom option_open">
  1106. <div class="combo">
  1107. <div class="select">์˜ต์…˜์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”.</div>
  1108. </div>
  1109. </div>
  1110. </div>
  1111. </div>
  1112. </div>
  1113. <div class="opt_result">
  1114. </div>
  1115. </th:block>
  1116. </div>
  1117. <div style="margin-top:10px;">
  1118. <th:block th:if="${sessionInfo != null and (sessionInfo.custId == 'xodud1202' or sessionInfo.custId == 'jsh77b' or sessionInfo.custId == 'card007')}">
  1119. <th:block th:with="buttonKey=${@environment.getProperty('naverPay.button.key')}">
  1120. <script type="text/javascript" th:src="${@environment.getProperty('naverPay.button.mobile.js.url')}" src="" charset="UTF-8"></script>
  1121. <script th:inline="javascript">
  1122. if(!wcs_add) var wcs_add = {};
  1123. wcs_add["wa"] = "[[${@environment.getProperty('naverPay.common.certification.key')}]]";
  1124. wcs.inflow("style24.com");
  1125. wcs_do();
  1126. </script>
  1127. <script type="text/javascript" >
  1128. /*๋ฒ„ํŠผ์„ค์ •*/
  1129. naver.NaverPayButton.apply({
  1130. BUTTON_KEY : "[[${buttonKey}]]", // ๋„ค์ด๋ฒ„ํŽ˜์ด์—์„œ ์ œ๊ณต๋ฐ›์€ ๋ฒ„ํŠผ ์ธ์ฆ ํ‚ค ์ž…๋ ฅ
  1131. TYPE : "MA", // ๋ฒ„ํŠผ ๋ชจ์Œ ์ข…๋ฅ˜ ์„ค์ •
  1132. COLOR : 1, // ๋ฒ„ํŠผ ๋ชจ์Œ์˜ ์ƒ‰ ์„ค์ •
  1133. COUNT : 2, // ๋ฒ„ํŠผ ๊ฐœ์ˆ˜ ์„ค์ •. ๊ตฌ๋งคํ•˜๊ธฐ ๋ฒ„ํŠผ๋งŒ ์žˆ์œผ๋ฉด(์žฅ๋ฐ”๊ตฌ๋‹ˆ ํŽ˜์ด์ง€) 1, ์ฐœํ•˜๊ธฐ ๋ฒ„ํŠผ๋„ ์žˆ์œผ๋ฉด(์ƒํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€) 2๋ฅผ ์ž…๋ ฅ.
  1134. ENABLE : "Y", // ํ’ˆ์ ˆ ๋“ฑ์˜ ์ด์œ ๋กœ ๋ฒ„ํŠผ ๋ชจ์Œ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ๋•Œ์—๋Š” "N" ์ž…๋ ฅ
  1135. BUY_BUTTON_HANDLER : buy_nc, // ๊ตฌ๋งคํ•˜๊ธฐ ๋ฒ„ํŠผ ์ด๋ฒคํŠธ Handler ํ•จ์ˆ˜ ๋“ฑ๋ก, ํ’ˆ์ ˆ์ธ ๊ฒฝ์šฐ not_buy_nc ํ•จ์ˆ˜ ์‚ฌ์šฉ
  1136. WISHLIST_BUTTON_HANDLER : wishlist_nc, // ์ฐœํ•˜๊ธฐ ๋ฒ„ํŠผ ์ด๋ฒคํŠธ Handler ํ•จ์ˆ˜ ๋“ฑ๋ก
  1137. "":""
  1138. });
  1139. /*๋„ค์ด๋ฒ„๊ตฌ๋งคํ•˜๊ธฐ*/
  1140. function buy_nc(url) {
  1141. let goodsType = "[[${goodsInfo.goodsType}]]";
  1142. let selfGoodsYn = "[[${goodsInfo.selfGoodsYn}]]";
  1143. if(goodsType == "G056_N") {
  1144. if(selfGoodsYn == "Y") {
  1145. // ์ž์‚ฌ ์ผ๋ฐ˜ ์ƒํ’ˆ ์ •๋ณด
  1146. let goodsCd = "[[${goodsInfo.goodsCd}]]";
  1147. let optCd = $(".opt_size .form_field input[type=radio]:checked").attr("optcd");
  1148. let goodsQty = $(".opt_count .number_count input[name=cea]").val();
  1149. if (!goodsQty || goodsQty < 1) {
  1150. mcxDialog.alert("๊ตฌ๋งค ์ˆ˜๋Ÿ‰์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”."); /*์ˆ˜๋Ÿ‰*/
  1151. return false;
  1152. }
  1153. if (!optCd) {
  1154. mcxDialog.alert("์ƒํ’ˆ ์˜ต์…˜์„ ํ™•์ธ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ๊ณ ์นจ ํ›„ ๋‹ค์‹œ ์‹œ๋„ํ•ด์ฃผ์„ธ์š”."); /*์˜ต์…˜*/
  1155. return false;
  1156. }
  1157. let compsList = [];
  1158. let obj = new Object();
  1159. obj.goodsCd = goodsCd;
  1160. obj.optCd = optCd;
  1161. obj.goodsQty = goodsQty;
  1162. obj.goodsType = goodsType;
  1163. obj.cartGb = "N";
  1164. obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
  1165. obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
  1166. obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
  1167. obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
  1168. compsList.push(obj);
  1169. // ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋‹ด๊ธฐ
  1170. cfnAddCart(compsList);
  1171. } else {
  1172. // ์ž…์  ์ผ๋ฐ˜ ์ƒํ’ˆ ์ •๋ณด
  1173. let goodsCd = "[[${goodsInfo.goodsCd}]]";
  1174. let compsList = [];
  1175. if (!goodsCd) {
  1176. mcxDialog.alert("์ƒํ’ˆ์ •๋ณด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ๊ณ ์นจ ํ›„ ๋‹ค์‹œ ์‹œ๋„ํ•ด์ฃผ์„ธ์š”.");
  1177. return false;
  1178. }
  1179. $(".opt_result .number_count input[name=cea]").each(function() {
  1180. let optCd = $(this).attr("optcd");
  1181. let goodsQty = $(this).val();
  1182. if (!optCd) {
  1183. mcxDialog.alert("์ƒํ’ˆ ์˜ต์…˜์„ ํ™•์ธ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ๊ณ ์นจ ํ›„ ๋‹ค์‹œ ์‹œ๋„ํ•ด์ฃผ์„ธ์š”."); /*์˜ต์…˜*/
  1184. return false;
  1185. }
  1186. if (!goodsQty || goodsQty < 1) {
  1187. mcxDialog.alert("๊ตฌ๋งค ์ˆ˜๋Ÿ‰์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”."); /*์ˆ˜๋Ÿ‰*/
  1188. return false;
  1189. }
  1190. let obj = new Object();
  1191. obj.goodsCd = goodsCd;
  1192. obj.optCd = optCd;
  1193. obj.goodsQty = goodsQty;
  1194. obj.goodsType = goodsType;
  1195. obj.cartGb = "N";
  1196. obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
  1197. obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
  1198. obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
  1199. obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
  1200. compsList.push(obj);
  1201. });
  1202. // ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋‹ด๊ธฐ
  1203. cfnAddCart(compsList);
  1204. }
  1205. } else {
  1206. // ์„ธํŠธ ์ƒํ’ˆ ์ •๋ณด
  1207. let goodsCd = "[[${goodsInfo.goodsCd}]]";
  1208. let cartGoodsList = [];
  1209. $(".option_result .opt_result .result_item").each(function() {
  1210. let compsList = [];
  1211. let goodsList = {
  1212. cartCompsList : new Array()
  1213. }
  1214. let goodsQty = $(this).find(".number_count input[name=cea]").val();
  1215. $(this).find(".bundle").each(function() {
  1216. var obj = new Object();
  1217. obj.cartGb = "N";
  1218. obj.goodsType = goodsType;
  1219. obj.goodsCd = goodsCd;
  1220. obj.itemCd = $(this).find("input[name=selOption]").attr("goodscd");
  1221. obj.optCd = $(this).find("input[name=selOption]").attr("optcd");
  1222. obj.goodsQty = goodsQty;
  1223. obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
  1224. obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
  1225. obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
  1226. obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
  1227. compsList.push(obj);
  1228. });
  1229. goodsList.cartCompsList = compsList;
  1230. cartGoodsList.push(goodsList);
  1231. });
  1232. // ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋‹ด๊ธฐ
  1233. cfnAddCart(cartGoodsList);
  1234. }
  1235. return false;
  1236. }
  1237. function buy_nc_req(cartSqArr) {
  1238. let data = { cartSqArr : cartSqArr
  1239. , backUrl : location.href
  1240. , goodsUrl : _PAGE_GOODS_DETAIL
  1241. };
  1242. let jsonData = JSON.stringify(data);
  1243. $.ajax( {
  1244. type : "POST",
  1245. url : "/pg/nPayReq",
  1246. dataType : 'json',
  1247. data : jsonData,
  1248. beforeSend : function(xhr, settings) {
  1249. xhr.setRequestHeader("AJAX" , "true");
  1250. xhr.setRequestHeader('Accept' , 'application/json');
  1251. xhr.setRequestHeader('Content-Type' , 'application/json');
  1252. },
  1253. error: function(xhr, status, error) {
  1254. mcxDialog.alert(status + '; ' + error);
  1255. },
  1256. success : function(result) {
  1257. if (result.state == "sucess") {
  1258. enp('create', 'conversion', 'is24', { device: 'M', paySys: 'naverPay' }); // ๋ชจ๋น„์˜จ ๋„ค์ด๋ฒ„์ฃผ๋ฌธํ˜• ํด๋ฆญ์‹œ
  1259. document.nPayForm.action = result.npayOrderUrl + "/" + result.orderKey + "/" + result.resultNo;
  1260. document.nPayForm.submit();
  1261. } else {
  1262. mcxDialog.alert(result.message);
  1263. }
  1264. }
  1265. });
  1266. }
  1267. <!-- ๊ตฌ๋งค๋ถˆ๊ฐ€ -->
  1268. function not_buy_nc() {
  1269. mcxDialog.alert("์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋„ค์ด๋ฒ„ํŽ˜์ด๋กœ ๊ตฌ๋งค๊ฐ€ ๋ถˆ๊ฐ€ํ•œ ์ƒํ’ˆ์ž…๋‹ˆ๋‹ค.");
  1270. return false;
  1271. }
  1272. <!-- ์ฐœํ•˜๊ธฐ -->
  1273. function wishlist_nc() {
  1274. let goodsCd = "[[${goodsInfo.goodsCd}]]";
  1275. let goodsNm = "[[${goodsInfo.goodsNm}]]";
  1276. let colorCd = "[[${goodsInfo.colorCd}]]";
  1277. let currPrice = "[[${goodsInfo.currPrice}]]";
  1278. let sysImgNm = "[[${goodsInfo.sysImgNm}]]";
  1279. let selfGoodsYn = "[[${goodsInfo.selfGoodsYn}]]";
  1280. let data = {};
  1281. data.goodsCd = goodsCd;
  1282. data.goodsNm = goodsNm;
  1283. data.colorCd = colorCd;
  1284. data.currPrice = currPrice;
  1285. data.sysImgNm = sysImgNm;
  1286. data.selfGoodsYn = selfGoodsYn;
  1287. let jsonData = JSON.stringify(data);
  1288. $.ajax( {
  1289. type : "POST",
  1290. url : "/pg/create/npay/zzim",
  1291. dataType : 'json',
  1292. data : jsonData,
  1293. beforeSend : function(xhr, settings) {
  1294. xhr.setRequestHeader("AJAX" , "true");
  1295. xhr.setRequestHeader('Accept' , 'application/json');
  1296. xhr.setRequestHeader('Content-Type' , 'application/json');
  1297. },
  1298. error: function(xhr, status, error) {
  1299. mcxDialog.alert(status + '; ' + error);
  1300. },
  1301. success : function(result) {
  1302. if (result.state == "success") {
  1303. $('#nPayWishForm input[name=SHOP_ID]').val(result.shopId);
  1304. $('#nPayWishForm input[name=ITEM_ID]').val(result.itemId);
  1305. document.nPayWishForm.action = result.actionMobile;
  1306. document.nPayWishForm.submit();
  1307. } else {
  1308. mcxDialog.alert(result.message);
  1309. }
  1310. }
  1311. });
  1312. }
  1313. </script>
  1314. </th:block>
  1315. </th:block>
  1316. </div>
  1317. </div>
  1318. <!-- ์ด ๊ฒฐ์žฌ๊ธˆ์•ก -->
  1319. <div class="price_box">
  1320. <p class="number">
  1321. ์ด&nbsp;<span id="goodsTotalQty">0</span>๊ฐœ
  1322. </p>
  1323. <p class="price">
  1324. <span>
  1325. <b id="goodsTotalPrice">0</b><em>์›</em>
  1326. </span>
  1327. </p>
  1328. </div>
  1329. </div>
  1330. <div class="body btPop_foot btPopAuto_foot">
  1331. <!-- ํ•˜๋‹จ๋ฒ„ํŠผ -->
  1332. <div class="btn_box">
  1333. <button type="button" class="gift" onclick="fnAddCart('G');" th:if="${goodsInfo.giftPackYn == 'Y'}"><span><span>์„ ๋ฌผํ•ด๋ณด์„ธ์š”!</span></span></button>
  1334. <th:block th:if="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
  1335. <button type="button" class="cart enp_mobon_cart" id="btnGoodsWish" onclick="fnAddCart('C');"><span>์‡ผํ•‘๋ฐฑ</span></button>
  1336. <button type="button" class="buyNow" id="btnGoodsCart" onclick="fnAddCart('O');"><span>๋ฐ”๋กœ๊ตฌ๋งค</span></button>
  1337. </th:block>
  1338. <th:block th:unless="${goodsInfo.stockQty > 0 and goodsInfo.goodsStat == 'G008_90'}">
  1339. <button class="cantbuying" style="display:block;">SOLD OUT</button>
  1340. </th:block>
  1341. </div>
  1342. </div>
  1343. </div>
  1344. <!-- ๊ตฌ๋งคํ•˜๊ธฐํŒ์—… -->
  1345. <!-- ์˜ต์…˜์„ ํƒํŒ์—… -->
  1346. <div class="pop_option_select">
  1347. <div class="close">๋‹ซ๊ธฐ</div>
  1348. <div class="pp_body">
  1349. <div class="pp_cont">
  1350. <div class="opt_select">
  1351. <div class="opt_header">
  1352. <span class="title">์˜ต์…˜์„ ํƒ</span>
  1353. <div class="check_excluding form_field">
  1354. <div>
  1355. <input id="soldoutSkipYn" name="soldoutSkipYn" type="checkbox" value="Y" th:onclick="fnOption1(1,[[${goodsInfo.goodsCd}]]);"><label for="soldoutSkipYn"><span>ํ’ˆ์ ˆ์ œ์™ธ</span> </label>
  1356. </div>
  1357. <div class="guidance" >
  1358. <!--210409_ ์ถ”๊ฐ€ : .guidance์— .ontoast ์ถ”๊ฐ€ ์‹œ, toast ํŒ์—… ์ž‘๋™ -->
  1359. <p>ํ’ˆ์ ˆ ์˜ต์…˜์ด ์ œ์™ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค</p>
  1360. </div>
  1361. <script>
  1362. function getGuidance() {
  1363. if($('.pop_option_select').find('input[name=soldoutSkipYn]').is(":checked")){
  1364. $(".guidance").addClass("ontoast");
  1365. setTimeout(function(){$(".guidance").removeClass("ontoast");}, 5000);
  1366. }
  1367. }
  1368. </script>
  1369. </div>
  1370. </div>
  1371. <!-- ์ผ๋ฐ˜์ƒํ’ˆ์ผ๋•Œ -->
  1372. <th:block th:if="${goodsInfo.selfGoodsYn =='N' }"> <!-- ์ž…์ ์ƒํ’ˆ -->
  1373. <div class="nomOption">
  1374. <div class="form_wrap">
  1375. <div class="form_field" th:id="${'form_field1_'+goodsInfo.goodsCd}">
  1376. <div class="select_custom item_opt1 item_opt1_1" th:classappend="${goodsInfo.goodsCd}" th:attr="id=${goodsInfo.goodsCd}" >
  1377. <div class="combo">
  1378. <div class="select">์„ ํƒ</div>
  1379. <ul class="list" style="display: none;">
  1380. <!-- <li class="selected" th:id="|selfGoodsOpt1${goodsInfo.goodsCd}|" >์„ ํƒ</li> -->
  1381. <th:block th:each="goodsOption, optionStatus : ${goodsOption1List}" >
  1382. <li th:onclick="fnOption2([[${optionStatus.count}]], [[${goodsOption.goodsCd}]],[[${goodsOption.optCd1}]],[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]])"
  1383. th:attr="aria-disabled=${(goodsOption.goodsStat != 'G008_90' or goodsOption.stockQty <= 0)? 'true':''}, data-soldout=${(goodsOption.goodsStat != 'G008_90' or goodsOption.stockQty <= 0)? 'true':''}">
  1384. <div th:text="${goodsOption.optCd1}">์ƒํ’ˆ์˜ต์…˜</div>
  1385. <div th:if="${goodsOption.addPrice > 0}" th:text="|${#numbers.formatInteger(goodsOption.addPrice, 0,'COMMA')}์›|">0์›</div>
  1386. <input type="hidden" name="opt" th:value="${goodsOption.goodsCd}" th:attr="selfGoodsYn=${goodsOption.selfGoodsYn}"/>
  1387. </li>
  1388. </th:block>
  1389. </ul>
  1390. </div>
  1391. </div>
  1392. </div>
  1393. <div class="form_field" th:id="${'form_field2_'+goodsInfo.goodsCd}">
  1394. <div class="select_custom item_opt2 item_opt2_1" th:classappend="${goodsInfo.goodsCd}" disabled th:attr="qty=${goodsInfo.minOrdQty}">
  1395. <div class="combo">
  1396. <div class="select">์„ ํƒ</div>
  1397. <ul class="list" th:id="|goodsOpt2${goodsInfo.goodsCd}|" >
  1398. <!-- ์˜ต์…˜2 -->
  1399. </ul>
  1400. </div>
  1401. </div>
  1402. </div>
  1403. </div>
  1404. </div>
  1405. </th:block>
  1406. <!-- //์ผ๋ฐ˜์ƒํ’ˆ์ผ๋•Œ -->
  1407. <!-- ์…‹ํŠธ์ƒํ’ˆ์ผ๋•Œ -->
  1408. <th:block th:if="${goodsInfo.goodsType =='G056_S' }"> <!-- ์„ธํŠธ์ƒํ’ˆ -->
  1409. <div class="setOption" th:if="${goodsComposeList != null and !goodsComposeList.empty}" >
  1410. <div class="form_wrap" th:each="goodsCompose, status : ${goodsComposeList}">
  1411. <div class="form_field" th:id="${'form_field1_'+goodsCompose.compsGoodsCd}">
  1412. <p class="title" th:text="${goodsCompose.compsGoodsFullNm}">์Šฌ๋ฆผํ•</p>
  1413. <div class="select_custom item_opt1" th:classappend="${'item_opt1_'+status.count +' '+goodsCompose.compsGoodsCd}" th:attr="id=${goodsCompose.compsGoodsCd}, qty=${goodsCompose.qty}"
  1414. th:if="${goodsCompose.goodsOption1List != null and !goodsCompose.goodsOption1List.empty}" >
  1415. <div class="combo">
  1416. <div class="select">์„ ํƒ</div>
  1417. <ul class="list" style="display: none;">
  1418. <th:block th:each="goodsOption, optionStatus : ${goodsCompose.goodsOption1List}" >
  1419. <!-- <li class="selected" th:id="|selfGoodsOpt1${goodsCompose.compsGoodsCd}|" th:if=${optionStatus.first}>์„ ํƒ</li> -->
  1420. <li th:onclick="fnOption2([[${status.count}]], [[${goodsOption.goodsCd}]],[[${goodsOption.optCd1}]],[[${goodsInfo.minOrdQty}]], [[${goodsInfo.maxOrdQty}]])"
  1421. th:attr="aria-disabled=${(goodsCompose.goodsStat != 'G008_90' or goodsOption.stockQty <= 0)? 'true':''}, data-soldout=${(goodsOption.stockQty <= 0)? 'true':''}"
  1422. ><th:block th:text="${goodsOption.optCd1Nm}"></th:block>
  1423. <input type="hidden" name="opt" th:value="${goodsOption.goodsCd}" th:attr="optCd1=${goodsOption.optCd1},optCd1Nm=${goodsOption.optCd1Nm},optCd2=${goodsOption.optCd2},optCd=${goodsOption.optCd}"/>
  1424. </li>
  1425. </th:block>
  1426. </ul>
  1427. </div>
  1428. </div>
  1429. </div>
  1430. <div class="form_field" th:id="${'form_field2_'+goodsCompose.compsGoodsCd}">
  1431. <div class="select_custom item_opt2" th:classappend="${'item_opt2_'+status.count +' '+goodsCompose.compsGoodsCd}" disabled>
  1432. <div class="combo">
  1433. <div class="select">์„ ํƒ</div>
  1434. <ul class="list" th:id="|goodsOpt2${goodsCompose.compsGoodsCd}|">
  1435. </ul>
  1436. </div>
  1437. </div>
  1438. </div>
  1439. </div>
  1440. </div>
  1441. </th:block>
  1442. </div>
  1443. </div>
  1444. </div>
  1445. </div>
  1446. <!-- //์˜ต์…˜์„ ํƒํŒ์—… -->
  1447. </section>
  1448. <!-- โ˜… ์ปจํ…์ธ  ์ข…๋ฃŒ -->
  1449. <!-- ๋ฐ”๋‹ฅ๋ฉ”๋‰ด -->
  1450. <div class="product_floormenu" th:classappend="${(goodsInfo.stockQty <= 0 or goodsInfo.goodsStat != 'G008_90')? 'soldout':''}"><!-- โ˜žโ˜ž ์ œํ’ˆ์ด ํ’ˆ์ ˆ๋˜๋ฉด soldoutํด๋ž˜์Šค ์ถ”๊ฐ€ -->
  1451. <div class="share_like">
  1452. <button type="button" class="share">๊ณต์œ ํ•˜๊ธฐ</button>
  1453. <!-- <th:block th:include="~{web/goods/GoodsIncludeFormMob :: goodsSnsForm}"></th:block> -->
  1454. <button type="button" class="itemLike" th:classappend="${goodsInfo.wishYn == 'Y'}? 'likeit active' : ''"
  1455. onclick="cfnPutWishList(this);"
  1456. th:attr="goodsCd=${params.goodsCd}, goodsNm=${goodsInfo.goodsFullNm}, ithrCd=${params.ithrCd}, contentsLoc=${params.contentsLoc}, planDtlSq=${params.planDtlSq}">์œ„์‹œ๋ฆฌ์ŠคํŠธ</button>
  1457. </div>
  1458. <div class="prd_buy">
  1459. <button type="button" class="buying btPop_auto" id="btn_purchase">๊ตฌ๋งคํ•˜๊ธฐ</button>
  1460. <button type="button" class="cantbuying">SOLD OUT</button>
  1461. </div>
  1462. <!-- (๊ณตํ†ต) ๊ณต์œ ํŒ์—… -->
  1463. <div class="modal fade" id="tglShare" tabindex="-1" role="dialog" aria-labelledby="aModalLabel" aria-hidden="true">
  1464. <div class="modal-dialog" role="document">
  1465. <div class="modal-content">
  1466. <div class="modal-header">
  1467. <h5 class="modal-title" id="aModalLabel">๊ณต์œ ํ•˜๊ธฐ</h5>
  1468. </div>
  1469. <th:block th:include="~{mob/goods/GoodsIncludeFormMob :: goodsSnsForm}"></th:block>
  1470. </div>
  1471. </div>
  1472. </div>
  1473. <script>
  1474. // ๊ณต์œ ํŒ์—…
  1475. $('.product_floormenu .share').click(function(e){
  1476. e.preventDefault();
  1477. $('#tglShare').modal("show");
  1478. });
  1479. </script>
  1480. </div>
  1481. <!-- //๋ฐ”๋‹ฅ๋ฉ”๋‰ด -->
  1482. <div class="pd_pop full_pop pd_itemthumb_pop" id="pdItemThumbPop" style="display: none;" th:if="${goodsImgList != null and !goodsImgList.empty}" >
  1483. <div class="full_popup_wrap">
  1484. <h5 class="sr-only">์ƒํ’ˆ์ธ๋„ค์ผ ํฌ๊ฒŒ๋ณด๊ธฐ</h5>
  1485. <div class="btn_close">
  1486. <a href="javascript:void(0);" id="btn_close_itemThumbPop" onclick="cfCloseLayer('pdItemThumbPop')">๋‹ซ๊ธฐ๋ฒ„ํŠผ</a>
  1487. </div>
  1488. <div class="full_pop_container">
  1489. <th:block th:each="goodsImg, status : ${goodsImgList}" th:with="count=${(videoYn == 'Y')? (status.count +1): status.count }">
  1490. <div th:id="${'popThumb'+ count}" class="scaleview" th:if="${ not (#strings.contains(goodsImg.sysImgNm,'_F1.')
  1491. or #strings.contains(goodsImg.sysImgNm,'_L1.')
  1492. or #strings.contains(goodsImg.sysImgNm,'_L2.'))}">
  1493. <img th:src="${imgGoodsUrl+'/'+goodsImg.sysImgNm+'?RS=1080'}" alt="" th:onerror="'this.src=\''+@{${uxImgUrl}+ '/images/pc/thumb/bg_item_none.png'}+'\';'">
  1494. </div>
  1495. </th:block>
  1496. </div>
  1497. </div>
  1498. </div>
  1499. </main>
  1500. </form>
  1501. <!-- ๋ฐ”๋กœ๊ตฌ๋งค ๋ฐ ์„ ๋ฌผํ•˜๊ธฐ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋“ฑ๋ก ์ •๋ณด ์ €์žฅ์„ ์œ„ํ•œ form -->
  1502. <form id="directOrderForm" method="POST" action="/order/noMember"></form>
  1503. <script th:src="@{'/biz/goods.js?v=' + ${#calendars.format(#calendars.createNow(), 'yyyyMMddHHmmss')}}" src="/biz/goods.js"></script>
  1504. <script th:inline="javascript">
  1505. /*<![CDATA[*/
  1506. var cateNm = "";
  1507. // ๋‹ค๋‹ค์ต์„  ์ƒํ’ˆ
  1508. //var fnGoodsTmtbSearch = function(params) {
  1509. // gagajf.ajaxSubmit("/goods/detail/tmtb/frame", "html", "goodsTmtbArea", params);
  1510. //}
  1511. // ํ’ˆ์ ˆ์ฒ˜๋ฆฌ
  1512. var fnOptionSoldout = function(){
  1513. let $target=$("#cartForm").find('.form_field');
  1514. let soldout = false;
  1515. for(var i=0;i<$target.find('input[name="opt"]').length;i++){
  1516. if($target.find('input[name="opt"]').eq(i).attr('disabled')) {
  1517. soldout = true;
  1518. }
  1519. }
  1520. let goodsType = [[${goodsInfo.goodsType}]];
  1521. if (soldout && goodsType == 'G056_N'&& $("#cartForm input[name=selfGoodsYn]").val() == 'Y') {
  1522. $(".info_restock").show();
  1523. }
  1524. }
  1525. //์‚ฌ์ด์ฆˆ ํด๋ฆญ์‹œ - ๋‹จํ’ˆ
  1526. var fnViewStock = function(obj, goodsCd, optCd, optCd1, optCd2, minOrdQty, maxOrdQty) {
  1527. let $obj = $(obj);
  1528. let selfGoodsYn = $("#cartForm input[name=selfGoodsYn]").val();
  1529. let $target = null;
  1530. if (selfGoodsYn == "Y"){
  1531. //$target = $obj;
  1532. $target = $obj.parent().find('input[name=opt]');
  1533. $target.prop("checked",true);
  1534. $(".selectOptCd1").html(optCd2);
  1535. }else{
  1536. $target = $obj.find('input[name="opt2"]');
  1537. }
  1538. let addPrice = $target.attr("addPrice");
  1539. $(".selectOptCd1addPrice").html('');
  1540. if (Number(addPrice) > 0) $(".selectOptCd1addPrice").html("(+" + addPrice.addComma() + "์›)");
  1541. $("#cartForm input[name=optCd]").val(optCd);
  1542. $("#cartForm input[name=optCd1]").val(optCd1);
  1543. $("#cartForm input[name=optCd2]").val(optCd2);
  1544. $("#cartForm input[name=addPrice]").val(addPrice);
  1545. $("#cartForm input[name=ordQty]").val("");
  1546. let maxCnt = maxOrdQty;
  1547. let params = new Object();
  1548. params.goodsCd = goodsCd;
  1549. params.optCd = optCd;
  1550. params.optCd1 = optCd1;
  1551. params.optCd2 = optCd2;
  1552. params.selfGoodsYn = selfGoodsYn;
  1553. $.get("/goods/detail/ajaxGoodsStockQty", $.param(params), function(result) {
  1554. let itemCnt = eval(result); //ํ•ด๋‹น ์•„์ดํ…œ์— ์„ ํƒ๋˜์–ด์ง„ ์‚ฌ์ด์ฆˆ์˜ ์ˆ˜๋Ÿ‰
  1555. if (maxCnt > itemCnt) {
  1556. maxCnt = itemCnt;
  1557. }
  1558. if (minOrdQty > itemCnt) {
  1559. $target.prop("disabled", true);
  1560. }else{
  1561. $("#cartForm input[name=ordQty]").val(minOrdQty);
  1562. $("#cartForm input[name=maxOrdQty]").val(maxCnt);
  1563. $("#cartForm input[name=minOrdQty]").val(minOrdQty);
  1564. $("#cartForm input[name=cea]").val(minOrdQty);
  1565. //$("#cartForm input[name=cea]").attr("readonly",false);
  1566. $("#cartForm input[name=stock]").val(itemCnt);
  1567. $('.price_box').show();
  1568. fnSetTotalPrice();
  1569. // ๋ชจ๋ฐ”์ผ์—์„œ ์ž‘์—…ํ•ด์•ผํ•จ
  1570. if ('P' != _frontGb) {
  1571. $("#cartForm input[name=opt]").parent().find('label').removeClass('on');
  1572. $("#cartForm input[name=opt]").each(function(){
  1573. if ($(this).attr('optCd') == optCd){
  1574. $(this).parent().find('label').addClass('on');
  1575. }
  1576. });
  1577. }
  1578. }
  1579. }, "text");
  1580. }
  1581. //์‚ฌ์ด์ฆˆ ํด๋ฆญ์‹œ - ์ž…์ ๋‹จํ’ˆ
  1582. var fnViewStockSelfNo = function(obj) {
  1583. let $obj = $(obj);
  1584. let $target = $obj.find('input[name="opt2"]');
  1585. let goodsCd = $target.attr("goodsCd");
  1586. //let currPrice = $target.attr("currPrice");
  1587. let currPrice = $('#cartForm input[name=currPrice]').val();
  1588. let optCd = $target.attr("optCd");
  1589. let optCd1 = $target.attr("optCd1");
  1590. let optCd1Nm = $target.attr("optCd1Nm");
  1591. let optCd2 = $target.attr("optCd2");
  1592. let minOrdQty = $target.attr("minOrdQty");
  1593. let maxOrdQty = $target.attr("maxOrdQty");
  1594. let addPrice = $target.attr("addPrice");
  1595. let selfGoodsYn = $target.attr("selfGoodsYn");
  1596. let optQty = minOrdQty;
  1597. let params = new Object();
  1598. params.goodsCd = goodsCd;
  1599. params.optCd = optCd;
  1600. params.optCd1 = optCd1;
  1601. params.optCd2 = optCd2;
  1602. params.selfGoodsYn = selfGoodsYn;
  1603. // ์ค‘๋ณต์„ ํƒ ํ™•์ธ opt_result
  1604. var overlap = 0;
  1605. $('.pd_detail .opt_result .number_count').each(function() {
  1606. if ($('input[name="coption"]', this).val() == optCd) {
  1607. ++overlap;
  1608. }
  1609. });
  1610. if (overlap > 0) {
  1611. mcxDialog.alert("์ด๋ฏธ ์„ ํƒํ•˜์‹  ์˜ต์…˜์ž…๋‹ˆ๋‹ค.");
  1612. return false;
  1613. }
  1614. $.get("/goods/detail/ajaxGoodsStockQty", $.param(params), function(result) {
  1615. let itemCnt = eval(result); //ํ•ด๋‹น ์•„์ดํ…œ์— ์„ ํƒ๋˜์–ด์ง„ ์‚ฌ์ด์ฆˆ์˜ ์ˆ˜๋Ÿ‰
  1616. if (maxOrdQty > itemCnt) {
  1617. maxOrdQty = itemCnt;
  1618. }
  1619. if (minOrdQty > itemCnt) {
  1620. mcxDialog.alert("์ฃผ๋ฌธ ๊ฐ€๋Šฅํ•œ ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค. ์˜ต์…˜์„ ๋‹ค์‹œ ์„ ํƒํ•ด ์ฃผ์„ธ์š”.");
  1621. return false;
  1622. }
  1623. //์ƒํ’ˆ์ •๋ณด
  1624. let price = parseInt(currPrice)+ parseInt(addPrice);
  1625. let tag = "";
  1626. tag += '<div class="result_item result_'+optCd+'">\n';
  1627. tag += ' <div class="opt_header">\n';
  1628. tag += ' <div class="bundle">\n';
  1629. tag += ' <span class="item_option">'+optCd1Nm+'/'+optCd2+'</span>\n';
  1630. tag += ' </div>\n';
  1631. tag += ' </div>\n';
  1632. tag += ' <div class="number_count">\n';
  1633. tag += ' <span class="minus min_val" onclick="fnAdjustOrderEa(this);" adjust="-"><em class="sr-only">๊ฐ์†Œ</em></span>\n';
  1634. tag += ' <input type="text" name="cea" optCd="'+optCd+'" maxlength="3" style="ime-mode:disabled" value="' +optQty+'" readonly minOrdQty="'+minOrdQty+'" maxOrdQty="'+maxOrdQty+'">\n';
  1635. tag += ' <input type="hidden" name="coption" value="'+optCd+'" goodsCd="'+goodsCd+'" price="'+currPrice+'" addPrice="'+addPrice+'">\n';
  1636. tag += ' <span class="plus" onclick="fnAdjustOrderEa(this);" adjust="+"><em class="sr-only">์ถ”๊ฐ€</em></span>\n';
  1637. tag += ' </div>\n';
  1638. tag += ' <div class="item_price">\n';
  1639. tag += ' <p><em id="goodsPrice">'+price.addComma() +'</em>์›</p>\n';
  1640. tag += ' </div>\n';
  1641. tag += ' <button type="button" class="btn_delete_item" onclick="fnSelectGoodsDel(\''+optCd+'\')"><span>์‚ญ์ œ</span></button>\n';
  1642. tag += '</div>\n';
  1643. let $objUp = $('.pd_detail .opt_result');
  1644. $objUp.prepend(tag);
  1645. fnSetTotalPrice();
  1646. $('.form_field .select_custom.item_opt1').find('.combo .select').html('์„ ํƒ');
  1647. $('.form_field .select_custom.item_opt2').attr('disabled', true);
  1648. $('.form_field .select_custom.item_opt2').find('.combo .select').html('์„ ํƒ');
  1649. $('.pop_option_select').css("display", "none");
  1650. }, "text");
  1651. }
  1652. //์„ธํŠธ ์‚ฌ์ด์ฆˆ ํด๋ฆญ์‹œ
  1653. function fnViewStockSet(obj, goodsCd, optCd, optCd1, optCd2, minOrdQty, maxOrdQty) {
  1654. let target=$('.select_custom.item_opt2');
  1655. let targetSize = target.length; //๊ตฌ์„ฑํ’ˆ ๊ฐฏ์ˆ˜
  1656. let goodsOption = [];
  1657. let cnt = 0;
  1658. let itemSize = 0;
  1659. let resultOptCd = "";
  1660. target.each(function(){
  1661. if (typeof ($(this).find('.select').find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(this).find('.select').find('input[name=opt2]').val())){
  1662. if (goodsCd != $(this).find('.select').find('input[name=opt2]').attr('goodscd')){
  1663. itemSize ++;
  1664. resultOptCd += $(this).find('.select').find('input[name=opt2]').attr('optcd') + "_";
  1665. goodsOption.push($(this).find('input[name=opt2]').val()); //goodsCd|optCd|qty
  1666. }
  1667. }
  1668. });
  1669. //๋‚ด๊ฐ€ ์„ ํƒํ•œ ์ƒํ’ˆ
  1670. if (typeof ($(obj).find('input[name=opt2]').val()) != 'undefined' && !gagajf.isNull($(obj).find('input[name=opt2]').val())){
  1671. itemSize ++;
  1672. }
  1673. //๋‚ด๊ฐ€ ์„ ํƒํ•˜ ์˜ต์…˜
  1674. resultOptCd += $(obj).find('input[name=opt2]').attr('optcd') + "_";
  1675. goodsOption.push($(obj).find('input[name=opt2]').val()); //goodsCd|optCd|qty
  1676. // ์ค‘๋ณต์„ ํƒ ํ™•์ธ opt_result
  1677. let arrSelOpt = resultOptCd.split("_"); // ๋‚ด๊ฐ€ ์„ ํƒํ•œ ์˜ต์…˜๋ชฉ๋ก
  1678. let selCnt = 0;
  1679. let overlap = 0;
  1680. $('.pd_detail .opt_result .number_count').each(function() {
  1681. let val = $('input[name="coption"]', this).val();
  1682. val = val.replaceAll('result_', '');
  1683. let arrOpt = val.split("_");
  1684. for(var i=0;i<arrOpt.length;i++){
  1685. for(var j=0;j<arrSelOpt.length;j++){
  1686. if (gagajf.isNull(arrOpt[i]) || gagajf.isNull(arrSelOpt[j])) continue;
  1687. if (arrOpt[i] == arrSelOpt[j]){
  1688. selCnt++;
  1689. }
  1690. }
  1691. }
  1692. if (Number(itemSize) == Number(selCnt)) {
  1693. ++overlap;
  1694. }
  1695. });
  1696. if (overlap > 0) {
  1697. mcxDialog.alert("์ด๋ฏธ ์„ ํƒํ•˜์‹  ์˜ต์…˜์ž…๋‹ˆ๋‹ค.");
  1698. return false;
  1699. }
  1700. let mGoodsCd = $("#cartForm input[name=goodsCd]").val();
  1701. let selfGoodsYn = $("#cartForm input[name=selfGoodsYn]").val();
  1702. if (targetSize == itemSize){
  1703. let optQty = minOrdQty;
  1704. let data = {arrGoodsOption : goodsOption
  1705. ,minOrdQty : $("#cartForm input[name=minOrdQty]").val()
  1706. ,maxOrdQty : $("#cartForm input[name=maxOrdQty]").val()
  1707. ,goodsCd : mGoodsCd
  1708. ,selfGoodsYn : selfGoodsYn
  1709. };
  1710. let jsonData = JSON.stringify(data);
  1711. gagajf.ajaxJsonSubmit('/goods/detail/ajaxGoodsSetStockQty', jsonData, function(result) {
  1712. var itemCnt = eval(result); //ํ•ด๋‹น ์•„์ดํ…œ์— ์„ ํƒ๋˜์–ด์ง„ ์‚ฌ์ด์ฆˆ์˜ ์ˆ˜๋Ÿ‰
  1713. if (maxOrdQty > itemCnt) {
  1714. maxOrdQty = itemCnt;
  1715. }
  1716. if (minOrdQty > itemCnt) {
  1717. mcxDialog.alert("์ฃผ๋ฌธ ๊ฐ€๋Šฅํ•œ ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค. ์˜ต์…˜์„ ๋‹ค์‹œ ์„ ํƒํ•ด ์ฃผ์„ธ์š”.");
  1718. return false;
  1719. }
  1720. //์ƒํ’ˆ์ •๋ณด
  1721. let $selObj = $('.pop_option_select .setOption .form_wrap');
  1722. let currPrice = Number($('#cartForm input[name=currPrice]').val());
  1723. let price = currPrice;
  1724. let addPrice = 0;
  1725. resultOptCd = "";
  1726. $selObj.each(function() {
  1727. resultOptCd += $(this).find('input[name=opt2]').attr('optcd') + "_";
  1728. });
  1729. let tag = "";
  1730. tag += '<div class="result_item result_'+resultOptCd+'">\n';
  1731. tag += ' <div class="opt_header">\n';
  1732. $selObj.each(function() {
  1733. tag += ' <div class="bundle">\n';
  1734. tag += ' <span class="item_name">'+$(this).find('.title').text()+'</span>\n';
  1735. tag += ' <span class="item_option">'+$(this).find('input[name=opt2]').attr('optcd1Nm')+'/'+$(this).find('input[name=opt2]').attr('optcd2')+'</span>\n';
  1736. tag += ' <input type="hidden" name="selOption" goodsCd="'+$(this).find('input[name=opt2]').attr('goodsCd')+'" optCd="'+$(this).find('input[name=opt2]').attr('optCd')+'" qty="'+$(this).find('.item_opt1 ').attr('qty')+'" /> \n';
  1737. tag += ' </div>\n';
  1738. addPrice += Number($(this).find('input[name=opt2]').attr('addprice'));
  1739. });
  1740. price = Number(currPrice) + Number(addPrice);
  1741. tag += ' </div>\n';
  1742. tag += ' <div class="number_count">\n';
  1743. tag += ' <span class="minus min_val" onclick="fnAdjustOrderEa(this);" adjust="-"><em class="sr-only">๊ฐ์†Œ</em></span>\n';
  1744. tag += ' <input type="text" name="cea" optCd="'+resultOptCd+'" maxlength="3" style="ime-mode:disabled" value="' +optQty+'" readonly minOrdQty="'+minOrdQty+'" maxOrdQty="'+maxOrdQty+'">\n';
  1745. tag += ' <input type="hidden" name="coption" value="'+resultOptCd+'" goodsCd="'+goodsCd+'" price="'+currPrice+'" addPrice="'+addPrice+'">\n';
  1746. tag += ' <span class="plus" onclick="fnAdjustOrderEa(this);" adjust="+"><em class="sr-only">์ถ”๊ฐ€</em></span>\n';
  1747. tag += ' </div>\n';
  1748. tag += ' <div class="item_price">\n';
  1749. tag += ' <p><em id="goodsPrice">'+price.addComma() +'</em>์›</p>\n';
  1750. tag += ' </div>\n';
  1751. tag += ' <button type="button" class="btn_delete_item" onclick="fnSelectGoodsDel(\''+resultOptCd+'\')"><span>์‚ญ์ œ</span></button>\n';
  1752. tag += '</div>\n';
  1753. let $objUp = null;
  1754. $objUp = $('.pd_detail .opt_result');
  1755. $objUp.prepend(tag);
  1756. fnSetTotalPrice();
  1757. target=$('.select_custom.item_opt1');
  1758. target.each(function(){
  1759. $('.form_field .select_custom.item_opt1.' +$(this).attr('id') ).find('.combo .select').html('์„ ํƒ');
  1760. $('.form_field .select_custom.item_opt2.' +$(this).attr('id') ).attr('disabled', true);
  1761. $('.form_field .select_custom.item_opt2.' +$(this).attr('id') ).find('.combo .select').html('์„ ํƒ');
  1762. });
  1763. $('.pop_option_select').css("display", "none");
  1764. });
  1765. }
  1766. }
  1767. // ์˜ต์…˜1 ์กฐํšŒ
  1768. var fnOption1 = function(ridx,goodsCd){
  1769. // ํ’ˆ์ ˆ์ œ์™ธ ์—ฌ๋ถ€
  1770. let optionSoldoutSkip = $('.pop_option_select').find('input[name=soldoutSkipYn]').is(":checked") ? 'Y' : 'N';
  1771. // ์ž…์ 
  1772. if("N" == $("#cartForm input[name=selfGoodsYn]").val() ){
  1773. let data = {goodsCd : goodsCd
  1774. ,optionSoldoutSkip : optionSoldoutSkip
  1775. ,mastrGoodsCd : goodsCd
  1776. };
  1777. let jsonData = JSON.stringify(data);
  1778. $('.form_field .select_custom.item_opt2.' +goodsCd ).attr('disabled', true);
  1779. $('.form_field .select_custom.item_opt2.' +goodsCd ).find('.combo .select').html('์„ ํƒ');
  1780. fnOption1Display(ridx, jsonData, goodsCd );
  1781. }else if("G056_S" == $("#cartForm input[name=goodsType]").val() ){
  1782. let idx = 1;
  1783. target=$('.select_custom.item_opt1');
  1784. target.each(function(){
  1785. $('.form_field .select_custom.item_opt1.' +$(this).attr('id') ).find('.combo .select').html('์„ ํƒ');
  1786. $('.form_field .select_custom.item_opt2.' +$(this).attr('id') ).attr('disabled', true);
  1787. $('.form_field .select_custom.item_opt2.' +$(this).attr('id') ).find('.combo .select').html('์„ ํƒ');
  1788. });
  1789. target.each(function(){
  1790. let data = {goodsCd : $(this).attr('id')
  1791. ,optionSoldoutSkip : optionSoldoutSkip
  1792. ,mastrGoodsCd : $('#cartForm input[name=goodsCd]').val()
  1793. };
  1794. let jsonData = JSON.stringify(data);
  1795. fnOption1Display(idx, jsonData, $(this).attr('id') );
  1796. idx++;
  1797. });
  1798. }
  1799. }
  1800. // ์˜ต์…˜1 ๋…ธ์ถœ์ฒ˜๋ฆฌ
  1801. var fnOption1Display = function(ridx, jsonData, goodsCd ){
  1802. gagajf.ajaxJsonSubmit('/goods/detail/option1/list', jsonData, function(result) {
  1803. if (result.dataList != null && result.dataList.length > 0) {
  1804. let tag = "";
  1805. let $obj = null;
  1806. let selfGoodsYn = 'N';
  1807. $.each(result.dataList, function(idx, item) {
  1808. if (idx == 0){
  1809. //$('.form_field .select_custom.item_opt1.' +item.goodsCd ).attr('disabled', false)
  1810. //------
  1811. tag += '<div class="select_custom item_opt1 item_opt1_'+ridx+ ' '+goodsCd+'" id="'+goodsCd+'" qty="'+item.qty+'">\n';
  1812. tag += '<div class="combo">\n';
  1813. tag += '<div class="select">์„ ํƒ</div>\n';
  1814. tag += '<ul class="list" style="display: none;">\n';
  1815. //------
  1816. //tag += '<li class="selected" id="selfGoodsOpt'+item.goodsCd+'">์„ ํƒ</li>\n';
  1817. selfGoodsYn = item.selfGoodsYn;
  1818. }
  1819. let soldoutYn = "";
  1820. let disabledYn = "";
  1821. if (item.stockQty <= 0) soldoutYn = "true";
  1822. if (soldoutYn == "true" || item.goodsStat != 'G008_90') disabledYn = "true";
  1823. tag += '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnOption2('+ ridx+', \''+ item.goodsCd+'\' , \''+ item.optCd1+'\', \''+ item.minOrdQty+'\', \''+ item.maxOrdQty+'\' )">\n';
  1824. tag += '<div>' +item.optCd1Nm +'</div>';
  1825. tag += '<input type="hidden" name="opt" value="'+ item.goodsCd+'" optCd1="'+ item.optCd1 +'" qty="'+ item.qty +'" />\n';
  1826. tag += '</li>\n';
  1827. });
  1828. if (!gagajf.isNull(tag)){
  1829. //------
  1830. tag += '</ul>\n';
  1831. tag += '</div>\n';
  1832. tag += '</div>\n';
  1833. //------
  1834. }
  1835. if (selfGoodsYn == "Y"){
  1836. if (ridx == 1){
  1837. $obj = $('.pop_option_select .select_custom.item_opt1.item_opt1_1');
  1838. }else if (ridx == 2){
  1839. $obj = $('.pop_option_select .select_custom.item_opt1.item_opt1_2');
  1840. }else if (ridx == 3){
  1841. $obj = $('.pop_option_select .select_custom.item_opt1.item_opt1_3');
  1842. }else if (ridx == 4){
  1843. $obj = $('.pop_option_select .select_custom.item_opt1.item_opt1_4');
  1844. }else{
  1845. $obj = $('.pop_option_select .select_custom.item_opt1.item_opt1_5');
  1846. }
  1847. }else{
  1848. $obj = $('.pop_option_select .select_custom.item_opt1.item_opt1_1');
  1849. ridx = 1; // ์ž…์ ์€ 1๋กœ ๊ณ ์ •
  1850. }
  1851. // $obj.html('');
  1852. // $obj.append(tag);
  1853. $obj.remove();
  1854. $('#form_field1_'+ goodsCd).append(tag);
  1855. if (selfGoodsYn == "Y"){
  1856. if (ridx == 1){
  1857. var opt_selecter01_1 = new sCombo('.pop_option_select .select_custom.item_opt1.item_opt1_1');
  1858. //$('.pop_option_select .select_custom.item_opt2.item_opt2_1 .combo .list > li').eq(0).trigger("click");
  1859. //$('.pop_option_select .select_custom.item_opt2.item_opt2_1').attr('disabled',true);
  1860. //$('.pop_option_select .select_custom.item_opt1.item_opt1_1').addClass('on');
  1861. //$('.pop_option_select .select_custom.item_opt1.item_opt1_1').find('.list').css('display','block');
  1862. }else if (ridx == 2){
  1863. var opt_selecter01_2 = new sCombo('.pop_option_select .select_custom.item_opt1.item_opt1_2');
  1864. //$('.pop_option_select .select_custom.item_opt2.item_opt2_2 .combo .list > li').eq(0).trigger("click");
  1865. //$('.pop_option_select .select_custom.item_opt2.item_opt2_2').attr('disabled',true);
  1866. }else if (ridx == 3){
  1867. var opt_selecter01_3 = new sCombo('.pop_option_select .select_custom.item_opt1.item_opt1_3');
  1868. //$('.pop_option_select .select_custom.item_opt2.item_opt2_3 .combo .list > li').eq(0).trigger("click");
  1869. //$('.pop_option_select .select_custom.item_opt2.item_opt2_3').attr('disabled',true);
  1870. }else if (ridx == 4){
  1871. var opt_selecter01_4 = new sCombo('.pop_option_select .select_custom.item_opt1.item_opt1_4');
  1872. //$('.pop_option_select .select_custom.item_opt2.item_opt2_4 .combo .list > li').eq(0).trigger("click");
  1873. //$('.pop_option_select .select_custom.item_opt2.item_opt2_4').attr('disabled',true);
  1874. }else{
  1875. var opt_selecter01_5 = new sCombo('.pop_option_select .select_custom.item_opt1.item_opt1_5');
  1876. //$('.pop_option_select .select_custom.item_opt2.item_opt2_4 .combo .list > li').eq(0).trigger("click");
  1877. //$('.pop_option_select .select_custom.item_opt2.item_opt2_4').attr('disabled',true);
  1878. }
  1879. }else{
  1880. var opt_selecter01_1 = new sCombo('.pop_option_select .select_custom.item_opt1.item_opt1_1');
  1881. //$('.pop_option_select .select_custom.item_opt2 .combo .list > li').eq(0).trigger("click");
  1882. //$('.pop_option_select .select_custom.item_opt2.item_opt2_1').attr('disabled',true);
  1883. //$('.pop_option_select .select_custom.item_opt1.item_opt1_1').addClass('on');
  1884. //$('.pop_option_select .select_custom.item_opt1.item_opt1_1').find('.list').css('display','block');
  1885. }
  1886. }
  1887. //ํ’ˆ์ ˆ ์ œ์™ธ ๋ฉ”์„ธ์ง€ ์ฒ˜๋ฆฌ
  1888. getGuidance();
  1889. });
  1890. }
  1891. // ์˜ต์…˜2 ์กฐํšŒ
  1892. var fnOption2 = function(ridx, goodsCd, optCd1, minOrdQty, maxOrdQty){
  1893. // ํ’ˆ์ ˆ์ œ์™ธ ์—ฌ๋ถ€
  1894. let optionSoldoutSkip = $('.pop_option_select').find('input[name=soldoutSkipYn]').is(":checked") ? 'Y' : 'N';
  1895. let selfGoodsYn = $("#cartForm input[name=selfGoodsYn]").val();
  1896. let data = {goodsCd : goodsCd
  1897. ,optCd1 : optCd1
  1898. ,optionSoldoutSkip : optionSoldoutSkip
  1899. ,mastrGoodsCd : $('#cartForm input[name=goodsCd]').val()
  1900. };
  1901. let jsonData = JSON.stringify(data);
  1902. gagajf.ajaxJsonSubmit('/goods/detail/option2/list', jsonData, function(result) {
  1903. if (result.dataList != null && result.dataList.length > 0) {
  1904. let tag = "";
  1905. let $obj = null;
  1906. let qty = 0; // ๊ตฌ์„ฑ์ˆ˜๋Ÿ‰
  1907. if (selfGoodsYn == "Y"){
  1908. if (ridx == 1){
  1909. $obj = $('.pop_option_select .select_custom.item_opt2.item_opt2_1');
  1910. }else if (ridx == 2){
  1911. $obj = $('.pop_option_select .select_custom.item_opt2.item_opt2_2');
  1912. }else if (ridx == 3){
  1913. $obj = $('.pop_option_select .select_custom.item_opt2.item_opt2_3');
  1914. }else if (ridx == 4){
  1915. $obj = $('.pop_option_select .select_custom.item_opt2.item_opt2_4');
  1916. }else{
  1917. $obj = $('.pop_option_select .select_custom.item_opt2.item_opt2_5');
  1918. }
  1919. qty = $obj.parent().parent().find('.select_custom').attr('qty'); // ๊ตฌ์„ฑ์ˆ˜๋Ÿ‰
  1920. }else{
  1921. $obj = $('.pop_option_select .select_custom.item_opt2.item_opt2_1');
  1922. qty = $obj.attr('qty'); // ๊ตฌ์„ฑ์ˆ˜๋Ÿ‰
  1923. ridx = 1; // ์ž…์ ์€ 1๋กœ ๊ณ ์ •
  1924. }
  1925. $.each(result.dataList, function(idx, item) {
  1926. if (idx == 0){
  1927. //$obj = $('#goodsOpt2'+item.goodsCd);
  1928. //$obj = $('.form_field .select_custom.item_opt2.item_opt2_1');
  1929. // $obj.html('');
  1930. $obj.remove();
  1931. // $('.form_field .select_custom.item_opt2.' +item.goodsCd ).attr('disabled', false)
  1932. //------
  1933. tag += '<div class="select_custom item_opt2 item_opt2_'+ridx+ ' '+goodsCd+'" qty="'+minOrdQty+'">\n';
  1934. tag += '<div class="combo">\n';
  1935. tag += '<div class="select">์„ ํƒ</div>\n';
  1936. tag += '<ul class="list">\n';
  1937. //------
  1938. //tag += '<li class="selected" id="goodsOpt2'+item.goodsCd+'">์„ ํƒ</li>\n';
  1939. }
  1940. let soldoutYn = "";
  1941. let disabledYn = "";
  1942. let saleQty = (Number(qty) * Number(minOrdQty));
  1943. if ("Y" == item.soldoutYn || Number(item.stockQty) < Number(saleQty)) soldoutYn = "true";
  1944. if (soldoutYn == "true") disabledYn= "true";
  1945. if (selfGoodsYn == "Y"){
  1946. tag += '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStockSet(this, \''+ item.goodsCd+'\' , \''+ item.optCd+'\' , \''+ item.optCd1+'\' , \''+ item.optCd2+'\', \''+ minOrdQty+'\', \''+ maxOrdQty+'\')">\n';
  1947. }else{
  1948. tag += '<li aria-disabled="'+disabledYn+'" data-soldout="'+soldoutYn +'" onclick="fnViewStockSelfNo(this)">\n';
  1949. }
  1950. tag += '<div class="opt_name">'+ item.optCd2+'</div>\n';
  1951. if (item.addPrice > 0){
  1952. tag += '<div class="opt_price">+'+ item.addPrice.addComma() +'์›</div>\n';
  1953. }
  1954. tag += '<input type="hidden" name="opt2" value="'+ item.goodsCd+'|'+item.optCd +'|'+qty +'" goodsCd="'+item.goodsCd+'" currPrice="'+ item.currPrice +'" addPrice="'+item.addPrice+'" optCd="'+item.optCd+'" optCd1="'+item.optCd1+'" optCd1Nm="'+item.optCd1Nm+'" optCd2="'+item.optCd2+'" minOrdQty="'+minOrdQty+'" maxOrdQty="'+maxOrdQty+'" selfGoodsYn="'+selfGoodsYn+'"/>\n';
  1955. tag += '</li>\n';
  1956. });
  1957. if (!gagajf.isNull(tag)){
  1958. //------
  1959. tag += '</ul>\n';
  1960. tag += '</div>\n';
  1961. tag += '</div>\n';
  1962. //------
  1963. }
  1964. // $obj.append(tag);
  1965. $('#form_field2_'+ goodsCd).prepend(tag);
  1966. if (selfGoodsYn == "Y"){
  1967. if (ridx == 1){
  1968. var opt_selecter02_1 = new sCombo('.pop_option_select .select_custom.item_opt2.item_opt2_1');
  1969. //$('.pop_option_select .select_custom.item_opt2.item_opt2_1').addClass('on');
  1970. //$('.pop_option_select .select_custom.item_opt2.item_opt2_1').find('.list').css('display','block');
  1971. }else if (ridx == 2){
  1972. var opt_selecter02_2 = new sCombo('.pop_option_select .select_custom.item_opt2.item_opt2_2');
  1973. //$('.pop_option_select .select_custom.item_opt2.item_opt2_2').addClass('on');
  1974. //$('.pop_option_select .select_custom.item_opt2.item_opt2_2').find('.list').css('display','block');
  1975. }else if (ridx == 3){
  1976. var opt_selecter02_3 = new sCombo('.pop_option_select .select_custom.item_opt2.item_opt2_3');
  1977. //$('.pop_option_select .select_custom.item_opt2.item_opt2_3').addClass('on');
  1978. //$('.pop_option_select .select_custom.item_opt2.item_opt2_3').find('.list').css('display','block');
  1979. }else if (ridx == 4){
  1980. var opt_selecter02_4 = new sCombo('.pop_option_select .select_custom.item_opt2.item_opt2_4');
  1981. //$('.pop_option_select .select_custom.item_opt2.item_opt2_4').addClass('on');
  1982. //$('.pop_option_select .select_custom.item_opt2.item_opt2_4').find('.list').css('display','block');
  1983. }else{
  1984. var opt_selecter02_5 = new sCombo('.pop_option_select .select_custom.item_opt2.item_opt2_5');
  1985. //$('.pop_option_select .select_custom.item_opt2.item_opt2_5').addClass('on');
  1986. //$('.pop_option_select .select_custom.item_opt2.item_opt2_5').find('.list').css('display','block');
  1987. }
  1988. }else{
  1989. var opt_selecter02_1 = new sCombo('.pop_option_select .select_custom.item_opt2.item_opt2_1');
  1990. //$('.pop_option_select .select_custom.item_opt2.item_opt2_1').addClass('on');
  1991. //$('.pop_option_select .select_custom.item_opt2.item_opt2_1').find('.list').css('display','block');
  1992. }
  1993. }
  1994. });
  1995. }
  1996. // ์ˆ˜๋Ÿ‰ ๋ณ€๊ฒฝ ํด๋ฆญ
  1997. var fnAdjustOrderEa = function(obj) {
  1998. let $obj = $(obj);
  1999. let $target = $obj.parent().children('input[name="cea"]');
  2000. let ea =parseInt($target.val());
  2001. let minOrdQty = 0;
  2002. let maxOrdQty = 0;
  2003. if ("Y" == $("#cartForm input[name=selfGoodsYn]").val() && "G056_N" == $("#cartForm input[name=goodsType]").val()){
  2004. if(gagajf.isNull($("#cartForm input[name=optCd2]").val())){
  2005. mcxDialog.alert("์‚ฌ์ด์ฆˆ๋ฅผ ์„ ํƒํ•ด ์ฃผ์„ธ์š”.");
  2006. return false;
  2007. }
  2008. minOrdQty = parseInt($("#cartForm input[name=minOrdQty]").val());
  2009. maxOrdQty = parseInt($("#cartForm input[name=maxOrdQty]").val());
  2010. }else{
  2011. minOrdQty = parseInt( $target.attr('minOrdQty'));
  2012. maxOrdQty = parseInt( $target.attr('maxOrdQty'));
  2013. }
  2014. if ($obj.attr('adjust') == '-') --ea;
  2015. else ++ea;
  2016. //var maxOrdQty = $("#cartForm input[name=maxOrdQty]").val();
  2017. //if (maxOrdQty && ea > maxOrdQty) ea = maxOrdQty;
  2018. //if (ea.toString().length > maxOrdQty) --ea;
  2019. if (ea < 1) ea = minOrdQty;
  2020. $target.val(ea);
  2021. $target.attr('value', ea);
  2022. fnChangeOrderEa($target[0]);
  2023. }
  2024. //์˜ต์…˜ ๊ฐฏ์ˆ˜ ๋ณ€๊ฒฝ
  2025. var fnChangeOrderEa = function(obj) {
  2026. let $obj = $(obj);
  2027. let $target = $obj.parent().children('input[name="cea"]');
  2028. let ea = parseInt($obj.val());
  2029. let optCd = $(obj).attr('optCd');
  2030. let minOrdQty = parseInt($("#cartForm input[name=minOrdQty]").val());
  2031. let maxOrdQty = parseInt($("#cartForm input[name=maxOrdQty]").val());
  2032. if ("Y" == $("#cartForm input[name=selfGoodsYn]").val() && "G056_N" == $("#cartForm input[name=goodsType]").val()){
  2033. if(gagajf.isNull($("#cartForm input[name=optCd2]").val())){
  2034. mcxDialog.alert("์‚ฌ์ด์ฆˆ๋ฅผ ์„ ํƒํ•ด ์ฃผ์„ธ์š”.");
  2035. return false;
  2036. }
  2037. }else{
  2038. maxOrdQty = parseInt($(obj).attr('maxOrdQty'));
  2039. minOrdQty = parseInt($(obj).attr('minOrdQty'));
  2040. optCd = $(obj).attr('optCd');
  2041. }
  2042. let alertMsg = '';
  2043. if (ea < minOrdQty) {
  2044. alertMsg = minOrdQty+"๊ฐœ ๋ถ€ํ„ฐ ๊ตฌ๋งค ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.";
  2045. ea = minOrdQty;
  2046. }
  2047. if (ea > maxOrdQty) {
  2048. alertMsg = maxOrdQty+"๊ฐœ ๊นŒ์ง€๋งŒ ๊ตฌ๋งค ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.";
  2049. ea = maxOrdQty;
  2050. }
  2051. if ("Y" == $("#cartForm input[name=selfGoodsYn]").val() && "G056_N" == $("#cartForm input[name=goodsType]").val()){
  2052. $("#cartForm input[name=cea]").val(ea);
  2053. $("#cartForm input[name=ordQty]").val(ea);
  2054. }
  2055. //obj.value = ea;
  2056. $target.val(ea);
  2057. $target.attr('value', ea);
  2058. if (alertMsg != ''){
  2059. mcxDialog.alert(alertMsg);
  2060. return false;
  2061. }
  2062. if (ea <= 1){
  2063. $('.number_count').find('.minus').addClass('min_val');
  2064. }else{
  2065. $('.number_count').find('.minus').removeClass('min_val');
  2066. }
  2067. if ("Y" == $("#cartForm input[name=selfGoodsYn]").val() && "G056_N" == $("#cartForm input[name=goodsType]").val()){
  2068. }else{
  2069. let addPrice = parseInt($obj.parent().find('input[name="coption"]').attr('addprice'));
  2070. let goodsPrice = parseInt($obj.parent().find('input[name="coption"]').attr('price'));
  2071. let totalPrice = ((goodsPrice+addPrice) * ea);
  2072. $('.opt_result .result_'+optCd+' .number_count').find('input[name=cea]').val(ea);
  2073. $('.opt_result .result_'+optCd+' .number_count').find('input[name=cea]').attr('value',ea);
  2074. $('.opt_result .result_'+optCd+' .item_price').find('em').text(totalPrice.addComma());
  2075. }
  2076. fnSetTotalPrice();
  2077. }
  2078. //ํ•ฉ๊ณ„ ๊ณ„์‚ฐ
  2079. var fnSetTotalPrice = function() {
  2080. //let f = document.cartForm;
  2081. let totalEa = 0;
  2082. let totalPrice = 0;
  2083. $('input[name="cea"]').each(function() {
  2084. let ea = parseInt($(this).val());
  2085. let addPrice = 0;
  2086. if("G056_N" == $("#cartForm input[name=goodsType]").val() && "Y" == $("#cartForm input[name=selfGoodsYn]").val()){
  2087. let target=$('.opt_size').find('input[name=opt]');
  2088. target.each(function() {
  2089. if ($(this).is(":checked")){
  2090. addPrice += Number($(this).attr('addPrice'));
  2091. }
  2092. });
  2093. }else{
  2094. addPrice = parseInt($(this).parent().find('input[name="coption"]').attr('addprice'));
  2095. }
  2096. let goodsPrice = parseInt($(this).parent().find('input[name="coption"]').attr('price'));
  2097. totalEa += ea;
  2098. if (goodsPrice > 0) {
  2099. totalPrice += ((goodsPrice+addPrice) * ea);
  2100. }
  2101. });
  2102. $('#goodsTotalQty').html(totalEa.addComma());
  2103. $('#goodsTotalPrice').html(totalPrice.addComma());
  2104. }
  2105. // ์„ ํƒ์ƒํ’ˆ ์‚ญ์ œ
  2106. var fnSelectGoodsDel = function(optCd){
  2107. $('.result_'+optCd).remove();
  2108. fnSetTotalPrice();
  2109. }
  2110. //์žฅ๋ฐ”๊ตฌ๋‹ˆ๋‹ด๊ธฐ
  2111. var fnAddCart = function(btnType){
  2112. let params = [];
  2113. let goodsType = $("#cartForm input[name=goodsType]").val();
  2114. let selfGoodsYn = $("#cartForm input[name=selfGoodsYn]").val();
  2115. if (goodsType == 'G056_N' && selfGoodsYn == 'Y' ){
  2116. if (gagajf.isNull($("#cartForm input[name=optCd2]").val())) {
  2117. mcxDialog.alert("์‚ฌ์ด์ฆˆ๋ฅผ ์„ ํƒํ•ด ์ฃผ์„ธ์š”.");
  2118. return;
  2119. }
  2120. let compsList = [];
  2121. let obj = new Object();
  2122. obj.goodsCd = $("#cartForm input[name=goodsCd]").val();
  2123. obj.optCd = $("#cartForm input[name=optCd]").val();
  2124. obj.goodsQty = $("#cartForm input[name=ordQty]").val();
  2125. obj.goodsType = $("#cartForm input[name=goodsType]").val();
  2126. obj.cartGb = btnType;
  2127. obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
  2128. obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
  2129. obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
  2130. obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
  2131. compsList.push(obj);
  2132. // ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋‹ด๊ธฐ
  2133. cfnAddCart(compsList);
  2134. }else {
  2135. let target = $('#cartForm input[name=cea]');
  2136. let targetSize = target.length;
  2137. if (targetSize <= 0){
  2138. mcxDialog.alert("์˜ต์…˜์„ ์„ ํƒํ•ด ์ฃผ์„ธ์š”.");
  2139. return false;
  2140. }
  2141. let cartGoodsList = [];
  2142. if (goodsType == 'G056_N'){
  2143. let compsList = [];
  2144. if(btnType == "G" && targetSize > 1) {
  2145. mcxDialog.alert("์„ ๋ฌผํ•˜๊ธฐ๋Š” 1๊ฐœ์˜ ์˜ต์…˜๋งŒ ์„ ํƒํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.");
  2146. return false;
  2147. }
  2148. target.each(function() {
  2149. let ea = parseInt($(this).val());
  2150. let goodsCd = $(this).parent().find('input[name="coption"]').attr('goodscd');
  2151. let optCd = $(this).parent().find('input[name="coption"]').val();
  2152. //let addPrice = parseInt($(this).parent().find('input[name="coption"]').attr('addprice'));
  2153. //let goodsPrice = parseInt($(this).parent().find('input[name="coption"]').attr('price'));
  2154. var obj = new Object();
  2155. obj.cartGb = btnType;
  2156. obj.goodsType = $("#cartForm input[name=goodsType]").val();
  2157. obj.goodsCd = goodsCd
  2158. obj.optCd = optCd;
  2159. obj.goodsQty = ea;
  2160. obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
  2161. obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
  2162. obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
  2163. obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
  2164. compsList.push(obj);
  2165. });
  2166. // ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋‹ด๊ธฐ
  2167. cfnAddCart(compsList);
  2168. }else{ // ์„ธํŠธ
  2169. if(btnType == "G" && targetSize > 1) {
  2170. mcxDialog.alert("์„ ๋ฌผํ•˜๊ธฐ๋Š” 1๊ฐœ์˜ ์˜ต์…˜๋งŒ ์„ ํƒํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.");
  2171. return false;
  2172. }
  2173. target.each(function() {
  2174. let compsList = [];
  2175. let goodsList = {
  2176. cartCompsList : new Array()
  2177. }
  2178. let ea = parseInt($(this).val());
  2179. let targetItem = $(this).parent().parent().find('.bundle'); // ๊ตฌ์„ฑ์ƒํ’ˆ
  2180. targetItem.each(function() {
  2181. var obj = new Object();
  2182. obj.cartGb = btnType;
  2183. obj.goodsType = $("#cartForm input[name=goodsType]").val();
  2184. obj.goodsCd = $("#cartForm input[name=goodsCd]").val();
  2185. obj.itemCd = $(this).find('input[name=selOption]').attr('goodsCd');
  2186. obj.optCd = $(this).find('input[name=selOption]').attr('optCd');
  2187. obj.goodsQty = ea;
  2188. obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
  2189. obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
  2190. obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
  2191. obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
  2192. compsList.push(obj);
  2193. });
  2194. goodsList.cartCompsList = compsList;
  2195. cartGoodsList.push(goodsList);
  2196. });
  2197. // ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋‹ด๊ธฐ
  2198. cfnAddCart(cartGoodsList);
  2199. }
  2200. }
  2201. }
  2202. // ๋ฃฉ๋ถ์† ์ƒํ’ˆ ์‡ผํ•‘๋ฐฑ ๋‹ด๊ธฐ
  2203. var fnAddCartLookBookGoods = function(obj){
  2204. let $obj = $(obj);
  2205. let $target = $obj.parent().parent().parent().find('.swiper-container').find('.item_prod');
  2206. let goodsSize = $target.length;
  2207. let btnType = "C";
  2208. let goodsIdx = 0;
  2209. $target.each(function(){
  2210. let params = [];
  2211. goodsIdx ++;
  2212. if ($(this).hasClass('unable')) {
  2213. }else{
  2214. // ์˜ต์…˜ํ™•์ธ
  2215. let goodsCnt = $(this).find('input[name=lookbookGoodsOptCd]').length;
  2216. if (goodsCnt == 1){
  2217. let arrOpt = $(this).find('input[name=lookbookGoodsOptCd]').val();
  2218. let arrOptInfo = arrOpt.split(':');
  2219. let obj = new Object();
  2220. obj.goodsCd = $(this).attr("goodsCd");
  2221. //obj.optCd = $(this).attr("optCd");
  2222. obj.optCd = arrOptInfo[1];
  2223. obj.goodsQty = $(this).attr("minOrdQty");
  2224. obj.goodsType = $(this).attr("goodsType");
  2225. obj.cartGb = btnType;
  2226. obj.afLinkCd = '';
  2227. obj.ithrCd = $(this).attr("ithrCd");
  2228. obj.contentsLoc = $(this).attr("contentsLoc");
  2229. obj.planDtlSq = '';
  2230. obj.multiGoodsGb = 'O' // ๋‹จํ’ˆ, ์„ธํŠธ ํ˜ผํ•ฉ์‡ผํ•‘๋ฐฑ์ฒ˜๋ฆฌ์ผ๊ฒฝ์šฐ, ๋งˆ์ง€๋ง‰์ด ์•„๋‹Œ๊ฒฝ์šฐ๋Š” 'O'์•„๋‹ˆ๊ณ  NULL ์•„๋‹Œ๊ฐ’
  2231. if (goodsIdx == goodsSize){
  2232. obj.multiGoodsGb = 'E' // ๋‹จํ’ˆ, ์„ธํŠธ ํ˜ผํ•ฉ์‡ผํ•‘๋ฐฑ์ฒ˜๋ฆฌ์ผ๊ฒฝ์šฐ, ๋งˆ์ง€๋ง‰์ด ์•„๋‹Œ๊ฒฝ์šฐ๋Š” 'O'์•„๋‹ˆ๊ณ  NULL ์•„๋‹Œ๊ฐ’
  2233. }
  2234. params.push(obj);
  2235. // ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋‹ด๊ธฐ
  2236. cfnAddCart(params);
  2237. }else{
  2238. let $goods = $(this);
  2239. let cartGoodsList = [];
  2240. let compsList = [];
  2241. let goodsList = {
  2242. cartCompsList : new Array()
  2243. }
  2244. let arrInfo = $(this).find('input[name=lookbookGoodsOptCd]').val().split(','); // ์ƒํ’ˆ์ฝ”๋“œ๋‹จ์œ„
  2245. $.each(arrInfo, function(idx, item) {
  2246. let arrOptInfo = item.split(':');
  2247. let obj = new Object();
  2248. obj.cartGb = btnType;
  2249. obj.goodsType = $goods.attr("goodsType");
  2250. obj.goodsCd = $goods.attr("goodsCd");
  2251. obj.itemCd =arrOptInfo[0];
  2252. obj.optCd = arrOptInfo[1];
  2253. obj.goodsQty = $goods.attr("minOrdQty");
  2254. obj.afLinkCd = '';
  2255. obj.ithrCd = $goods.attr("ithrCd");
  2256. obj.contentsLoc = $goods.attr("contentsLoc");
  2257. obj.planDtlSq = ''
  2258. obj.multiGoodsGb = 'O' // ๋‹จํ’ˆ, ์„ธํŠธ ํ˜ผํ•ฉ์‡ผํ•‘๋ฐฑ์ฒ˜๋ฆฌ์ผ๊ฒฝ์šฐ, ๋งˆ์ง€๋ง‰์ด ์•„๋‹Œ๊ฒฝ์šฐ๋Š” 'O'์•„๋‹ˆ๊ณ  NULL ์•„๋‹Œ๊ฐ’
  2259. if (goodsIdx == goodsSize){
  2260. obj.multiGoodsGb = 'E' // ๋‹จํ’ˆ, ์„ธํŠธ ํ˜ผํ•ฉ์‡ผํ•‘๋ฐฑ์ฒ˜๋ฆฌ์ผ๊ฒฝ์šฐ, ๋งˆ์ง€๋ง‰์ด ์•„๋‹Œ๊ฒฝ์šฐ๋Š” 'O'์•„๋‹ˆ๊ณ  NULL ์•„๋‹Œ๊ฐ’
  2261. }
  2262. compsList.push(obj);
  2263. });
  2264. goodsList.cartCompsList = compsList;
  2265. cartGoodsList.push(goodsList);
  2266. // ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋‹ด๊ธฐ
  2267. cfnAddCart(cartGoodsList);
  2268. }
  2269. }
  2270. });
  2271. // ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋‹ด๊ธฐ
  2272. /* if (params.length > 0){
  2273. cfnAddCart(params);
  2274. } */
  2275. }
  2276. //๋ฃฉ๋ถ ํ”ผ์ปค ์„ ํƒ์‹œ ๋ ˆ์ด์–ด ๋…ธ์ถœ
  2277. var fnLookbookPicker = function(obj,goodsCd){
  2278. let $obj = $(obj);
  2279. var str = '<div class="modal fade" id="reco_pop" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">\n';
  2280. //let $target = $obj.parent().parent().parent().find('.item_prod');
  2281. let $target = $('.pic_list').find('.item_prod');
  2282. let goodsImg = '';
  2283. let brandName = '';
  2284. let goodsName = '';
  2285. let currPrice = '';
  2286. let listPrice = '';
  2287. let dcRate = '';
  2288. let soldout = '';
  2289. $target.each(function(){
  2290. if ($(this).attr('goodsCd') == goodsCd) {
  2291. if ($(this).hasClass('unable')) soldout = 'sold_out';
  2292. goodsImg = $(this).find('.itemPic').children('.pd_img').attr('src');
  2293. brandName = $(this).find('.itemBrand').text();
  2294. goodsName = $(this).find('.itemName').text();
  2295. currPrice = $(this).find('.itemPrice').text();
  2296. return false;
  2297. }
  2298. });
  2299. if (gagajf.isNull(goodsName)){
  2300. return false;
  2301. }
  2302. $("#reco_pop").remove();
  2303. let tag = '';
  2304. tag += ' <div class="modal-dialog" role="document">\n';
  2305. tag += ' <div class="modal-content">\n';
  2306. tag += ' <div class="modal-header">\n';
  2307. tag += ' <h5 class="modal-title"><span class="sr_only">์ œํ’ˆ์ •๋ณด</span></h5>\n';
  2308. tag += ' </div>\n';
  2309. tag += ' <div class="modal-body">\n';
  2310. tag += ' <div class="itemsGrp rowtype">\n';
  2311. tag += ' <div class="item_prod '+ soldout+'"> <!-- ํ’ˆ์ ˆ์ผ๋•Œ sold_out ํด๋ž˜์Šค ์ถ”๊ฐ€ ์š”์ฒญ -->\n';
  2312. tag += ' <div class="item_state">\n';
  2313. tag += ' <a href="javascript:void(0);" class="itemLink" onclick="cfnGoToGoodsDetail(\''+goodsCd+'\',\'\',\'IN15_06\')">\n';
  2314. tag += ' <div class="itemPic">\n';
  2315. tag += ' <img alt="BLACK-a" class=" vLHTC pd_img" src="'+goodsImg +'?RS=70" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'">\n';
  2316. tag += ' </div>\n';
  2317. tag += ' <p class="itemBrand">'+brandName+'</p>\n';
  2318. tag += ' <div class="itemName">'+goodsName+'</div>\n';
  2319. tag += ' <p class="itemPrice">\n';
  2320. tag += ' '+currPrice+'\n';
  2321. tag += ' </p>\n';
  2322. tag += ' </a>\n';
  2323. tag += ' </div>\n';
  2324. tag += ' </div>\n';
  2325. tag += ' </div>\n';
  2326. tag += ' </div>\n';
  2327. tag += ' </div>\n';
  2328. tag += ' </div>\n';
  2329. tag += ' <a href="javascript:void(0);" rel="modal:close" onclick="cfCloseLayer(\'recoPop\')" class="close-modal">Close</a>\n';
  2330. if ($('#reco_pop').length == 0) {
  2331. $('body').append(str+tag+'</div>');
  2332. $('#reco_pop').modal("show");
  2333. }
  2334. }
  2335. // ์ƒํ’ˆํ‰ ์ƒ์„ธ ๋ ˆ์ด์–ด ํ˜ธ์ถœํ›„ ์ฝœ๋ฐฑ์—์„œ ํ˜ธ์ถœํ•˜๋ฏ€๋กœ ์—ฌ๊ธฐ์— ์žˆ์–ด์•ผํ•จ
  2336. var fnReviewDetailLayerCollBack = function(){
  2337. }
  2338. $(document).ready( function() {
  2339. // ์ƒํ’ˆ์ƒ์„ธ ํ™ˆ๋ฒ„ํŠผ ์œ„์น˜ ๋ณ€๊ฒฝ
  2340. $("#htopSub .button_wrap").addClass("pd");
  2341. $('.timer_box').css('display', 'none');
  2342. //์ƒํ’ˆ์ƒ์„ธ ์ ์šฉ
  2343. // ์ž…์  html ์— ํƒœ๊ทธ๊ฐ€ ์ •์ƒ์ ์ด์ง€ ์•Š์•„ ์Šคํฌ๋ฆฝํŠธ๋กœ ์ฒ˜๋ฆฌ
  2344. if ("G056_S" == [[${goodsInfo.goodsType}]] ){
  2345. let goodsComposeList = ([[${goodsComposeList}]]);
  2346. if (goodsComposeList.length > 0){
  2347. var titStr = "";
  2348. $.each(goodsComposeList, function(idx, item) {
  2349. if ("N" == item.tobeFormYn && !gagajf.isNull(item.goodsDesc)){
  2350. titStr = '<span class="tit_view">'+item.compsGoodsNm+'</span>';
  2351. $('#goodsDescHtml_'+ item.compsGoodsCd).html(titStr + item.goodsDesc);
  2352. }
  2353. });
  2354. }
  2355. }else{
  2356. let goodsDesc = [[${goodsInfo.goodsDesc}]];
  2357. if ("N" == [[${goodsInfo.tobeFormYn}]] && !gagajf.isNull(goodsDesc)){
  2358. $('#goodsDescHtml').html([[${#strings.unescapeJava(#strings.escapeJava(goodsInfo.goodsDesc))}]]);
  2359. }
  2360. }
  2361. //210526_ ์ถ”๊ฐ€ : ์ด๋ฏธ์ง€ style ์†์„ฑ ์ œ๊ฑฐ
  2362. $(".mdhtml_box style").remove();$(".mdhtml_box img").removeAttr("style");
  2363. var params = new Object();
  2364. params.goodsCd = [[${params.goodsCd}]];
  2365. params.viewDt = [[${params.viewDt}]];
  2366. params.preview = [[${params.preview}]];
  2367. params.adminYn = [[${params.adminYn}]];
  2368. params.goodsType = [[${params.goodsType}]];
  2369. params.supplyCompCd = [[${params.supplyCompCd}]];
  2370. params.brandGroupNm = [[${goodsInfo.brandGroupNm}]];
  2371. // ํ•จ๊ป˜๋ณธ ์ƒํ’ˆ(ajax html)
  2372. params.goodsOtherGb = "together";
  2373. params.ithrCd = "IN15_03";
  2374. fnGoodsTogetherSearch(params);
  2375. // ์ถ”์ฒœ ์ƒํ’ˆ(ajax html)
  2376. params.goodsOtherGb = "recommend";
  2377. params.ithrCd = "IN15_04";
  2378. fnGoodsRecommendSearch(params);
  2379. // ๋น„์Šทํ•œ ์ƒํ’ˆ(ajax html)
  2380. params.goodsOtherGb = "like";
  2381. params.ithrCd = "IN15_05";
  2382. fnGoodsLikeSearch(params);
  2383. // selecter
  2384. $(function(){
  2385. var opt_select = new sCombo('.pd .op1 .opt_select .select_custom');
  2386. });
  2387. var opt_selecter01_1 = new sCombo('.pop_option_select .select_custom.item_opt1.item_opt1_1');
  2388. $('.pd .pop_option_select .select_custom.item_opt1.item_opt1_1 .combo .list > li').click(function(e) {
  2389. $(this).parents('.form_field').next('.form_field').find('.select_custom').attr('disabled', false);
  2390. return false;
  2391. });
  2392. var opt_selecter01_2 = new sCombo('.pop_option_select .select_custom.item_opt1.item_opt1_2');
  2393. $('.pd .pop_option_select .select_custom.item_opt1.item_opt1_2 .combo .list > li').click(function(e) {
  2394. $(this).parents('.form_field').next('.form_field').find('.select_custom').attr('disabled', false);
  2395. return false;
  2396. });
  2397. var opt_selecter01_3 = new sCombo('.pop_option_select .select_custom.item_opt1.item_opt1_3');
  2398. $('.pd .pop_option_select .select_custom.item_opt1.item_opt1_3 .combo .list > li').click(function(e) {
  2399. $(this).parents('.form_field').next('.form_field').find('.select_custom').attr('disabled', false);
  2400. return false;
  2401. });
  2402. var opt_selecter01_4 = new sCombo('.pop_option_select .select_custom.item_opt1.item_opt1_4');
  2403. $('.pd .pop_option_select .select_custom.item_opt1.item_opt1_4 .combo .list > li').click(function(e) {
  2404. $(this).parents('.form_field').next('.form_field').find('.select_custom').attr('disabled', false);
  2405. return false;
  2406. });
  2407. var opt_selecter01_5 = new sCombo('.pop_option_select .select_custom.item_opt1.item_opt1_5');
  2408. $('.pd .pop_option_select .select_custom.item_opt1.item_opt1_5 .combo .list > li').click(function(e) {
  2409. $(this).parents('.form_field').next('.form_field').find('.select_custom').attr('disabled', false);
  2410. return false;
  2411. });
  2412. if (!gagajf.isNull([[${goodsInfo.socialSq}]])){
  2413. $('.timer_box').css('display', 'block');
  2414. /* ํ–‰์‚ฌ ๋‚จ์€์‹œ๊ฐ„ */
  2415. function promotionTimer() {
  2416. var endTime = new Date([[${goodsInfo.socialEddt}]]); // ๋‚จ์€์‹œ๊ฐ„ ์ง€์ • 30 March 2021 9:56:00 GMT+0900
  2417. endTime = (Date.parse(endTime) / 1000);
  2418. var now = new Date();
  2419. now = (Date.parse(now) / 1000);
  2420. var timeLeft = endTime - now;
  2421. var days = Math.floor(timeLeft / 86400);
  2422. var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
  2423. var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600 )) / 60);
  2424. var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));
  2425. if (hours < '10') { hours = '0' + hours; }
  2426. if (minutes < '10') { minutes = '0' + minutes; }
  2427. if (seconds < '10') { seconds = '0' + seconds; }
  2428. if (Number(days) > 0 ){
  2429. // hours = Number(hours) + (Number(days) * 24);
  2430. $('#d-days').html(days);
  2431. }else{
  2432. $('#d-days').hide();
  2433. }
  2434. $('#d-hours').html(hours);
  2435. $('#d-minutes').html(minutes);
  2436. $('#d-seconds').html(seconds);
  2437. }
  2438. setInterval(function() { promotionTimer(); }, 1000);
  2439. }
  2440. //์ƒํ’ˆ์ƒ์„ธ์ •๋ณด ๋”๋ณด๊ธฐ
  2441. $(document).on('click','.pd_descrp .btn_more_box button',function(e){
  2442. $('.pd_descrp .cont_body').toggleClass('on');
  2443. $(this).toggleClass('active');
  2444. $(this).parents('.btn_more_box').toggleClass('covered');
  2445. var descrpToggle = $(this).find('span');
  2446. $(descrpToggle).text($(descrpToggle).text() == '์ƒ์„ธ์ •๋ณด ๋”๋ณด๊ธฐ' ? '์ƒ์„ธ์ •๋ณด ์ ‘๊ธฐ' : '์ƒ์„ธ์ •๋ณด ๋”๋ณด๊ธฐ');
  2447. //210525_๋”๋ณด๊ธฐ ๋‹ซ์„ ์‹œ ํ˜„์žฌ ์œ„์น˜๋กœ ํ™”๋ฉด ํฌ์ปค์Šค
  2448. if($('.pd_descrp .btn_more_box').hasClass('covered') === true){
  2449. var offset = $('.pd_descrp .btn_more_box').offset();
  2450. $('html').animate({scrollTop : offset.top - 80}, 400);
  2451. }
  2452. return false;
  2453. });
  2454. //์Šฌ๋ผ์ด๋“œ - ํ•จ๊ป˜ํ•˜๋ฉด ํ• ์ธ๋˜๋Š” ๋‹ค๋‹ค์ต์„  ์ƒํ’ˆ
  2455. var togetherItemSwiper = new Swiper('.pd .pd_together .area_slider .swiper-container', {
  2456. slidesPerView: 3,
  2457. spaceBetween: 8,
  2458. speed: 1000,
  2459. });
  2460. //์Šฌ๋ผ์ด๋“œ - ๋ฒ ์ŠคํŠธ๋ฆฌ๋ทฐ
  2461. var riviewSwiper = new Swiper('.riview_box .area_slider .swiper-container', {
  2462. observer: true,
  2463. observeParents: true,
  2464. slidesPerView: 1,
  2465. spaceBetween: 8,
  2466. speed: 1000,
  2467. //loop: true,
  2468. pagination: {
  2469. el: '.swiper-pagination',
  2470. type: 'fraction',
  2471. },
  2472. });
  2473. //์Šฌ๋ผ์ด๋“œ - ์ œํ’ˆ์‚ฌ์ง„
  2474. //210728_ ์ถ”๊ฐ€ : ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฒ„ํŠผ ์ถ”๊ฐ€ ๋ฐ ์ธ๋„ค์ผ ์˜์ƒ์ผ ๊ฒฝ์šฐ, navigation ๋ฒ„ํŠผ ๋…ธ์ถœ/๋น„๋…ธ์ถœ ์„ค์ •.
  2475. //์Šฌ๋ผ์ด๋“œ - ์ œํ’ˆ์‚ฌ์ง„
  2476. var thumbswiper = new Swiper('.pd .thumb_box .area_slider .swiper-container', {
  2477. slidesPerView:1,
  2478. speed: 1000,
  2479. a11y: {
  2480. enabled: true,
  2481. notificationClass: 'swiper-notification',
  2482. prevSlideMessage: '์ด์ „ ์Šฌ๋ผ์ด๋“œ',
  2483. nextSlideMessage: '๋‹ค์Œ ์Šฌ๋ผ์ด๋“œ',
  2484. firstSlideMessage: '์ฒซ๋ฒˆ์งธ ์Šฌ๋ผ์ด๋“œ ์ž…๋‹ˆ๋‹ค',
  2485. lastSlideMessage: '๋งˆ์ง€๋ง‰ ์Šฌ๋ผ์ด๋“œ ์ž…๋‹ˆ๋‹ค',
  2486. paginationBulletMessage: '์Šฌ๋ผ์ด๋“œ {{index}}๋กœ ์ด๋™',
  2487. },
  2488. pagination: {
  2489. el: '.swiper-pagination',
  2490. type: 'fraction',
  2491. },
  2492. navigation: {
  2493. nextEl: ".pd .thumb_box .area_slider .swiper-button-next",
  2494. prevEl: ".pd .thumb_box .area_slider .swiper-button-prev",
  2495. },
  2496. on : {
  2497. slideChangeTransitionEnd : function(){
  2498. if($('.thumb_list .swiper-slide-active iframe').length){
  2499. $('.pd_detail .thumb_box .swiper-button-next, .pd_detail .thumb_box .swiper-button-prev').show();
  2500. }else{
  2501. $('.pd_detail .thumb_box .swiper-button-next, .pd_detail .thumb_box .swiper-button-prev').hide();
  2502. }
  2503. }
  2504. }
  2505. });
  2506. /* var thumbswiper = new Swiper('.pd .thumb_box .area_slider .swiper-container', {
  2507. slidesPerView:1,
  2508. speed: 1000,
  2509. pagination: {
  2510. el: '.swiper-pagination',
  2511. type: 'fraction',
  2512. },
  2513. }); */
  2514. //์Šฌ๋ผ์ด๋“œ - STYLE24์˜ ์Šคํƒ€์ผ๋ง ์ถ”์ฒœ
  2515. var rcmdPicimgSwiper = new Swiper('.pd .pd_recommend .area_slider.pic_img .swiper-container', {
  2516. slidesPerView: 1,
  2517. spaceBetween: 0,
  2518. speed: 1000,
  2519. pagination: {
  2520. el: '.swiper-pagination',
  2521. type: 'fraction',
  2522. },
  2523. });
  2524. var rcmdPiclistSwiper = new Swiper('.pd .pd_recommend .area_slider.pic_list .swiper-container', {
  2525. observer: true,
  2526. observeParents: true,
  2527. slidesPerView: 3,
  2528. spaceBetween: 8,
  2529. speed: 1000,
  2530. });
  2531. $(".pic_list > div").hide();
  2532. $(".pic_list > div").eq(0).fadeIn();
  2533. rcmdPicimgSwiper.on('slideChange', function () {
  2534. var pic_index=this.activeIndex;
  2535. $(".pic_list > div").hide();
  2536. $(".pic_list > div").eq(pic_index).fadeIn();
  2537. });
  2538. //์Šฌ๋ผ์ด๋“œ - ๋ฒ ์ŠคํŠธ๋ฆฌ๋ทฐํŒ์—…
  2539. var bestreviewdetailSwiper = new Swiper('.pd_bestreviewdetail_pop .area_slider .swiper-container', {
  2540. observer: true,
  2541. observeParents: true,
  2542. slidesPerView: 1,
  2543. speed: 1000,
  2544. pagination: {
  2545. el: '.swiper-pagination',
  2546. type: 'fraction',
  2547. },
  2548. });
  2549. //์Šฌ๋ผ์ด๋“œ - ํฌํ† ,์˜์ƒ๋ฆฌ๋ทฐํŒ์—…
  2550. var photoreviewdetailSwiper = new Swiper('.pd_photoreviewdetail_pop .area_slider .swiper-container', {
  2551. observer: true,
  2552. observeParents: true,
  2553. slidesPerView: 1,
  2554. speed: 1000,
  2555. pagination: {
  2556. el: '.swiper-pagination',
  2557. type: 'fraction',
  2558. },
  2559. });
  2560. //--์ƒํ’ˆ๋ฌธ์˜ ์ฐฝ ์ˆœ์„œ -
  2561. var qnaCount = 0;
  2562. //ํŒ์—… - ์ƒํ’ˆ๋ฌธ์˜ ๋ฆฌ์ŠคํŠธ
  2563. $(document).on('click','#btn_pdQnaList_pop',function(e){
  2564. qnaCount = 1;
  2565. return false;
  2566. });
  2567. //ํŒ์—… - ์ƒํ’ˆ๋ฌธ์˜ ์ž‘์„ฑ
  2568. $(document).on('click','#btn_pdQnaWrite_pop',function(e){
  2569. qnaCount = 2;
  2570. return false;
  2571. });
  2572. $(document).on('click','.pd_qnawrite_pop .close-modal',function(e){
  2573. if(qnaCount === 2){
  2574. $('#layer_goods_qna').modal('show');
  2575. setTimeout(fnGoodsQnaList, 100); //์ผ๋ฐ˜์ƒํ’ˆ์ƒ์„ธ ์šฉ
  2576. qnaCount = 1;
  2577. }
  2578. return false;
  2579. });
  2580. //--์ƒํ’ˆ๋ฌธ์˜ ์ฐฝ ์ˆœ์„œ -
  2581. //--์ƒํ’ˆ๋ฆฌ๋ทฐ ์ฐฝ ์ˆœ์„œ -
  2582. var reviewCount = 0;
  2583. //ํŒ์—… - ์ƒํ’ˆ์ƒ์„ธ ๋ฒ ์ŠคํŠธ๋ฆฌ๋ทฐ
  2584. $(document).on('click','.pd_detail #btn_pdBestReview_pop a',function(e){
  2585. reviewCount = 1;
  2586. return false;
  2587. })
  2588. //ํŒ์—… - ์ƒํ’ˆ์ƒ์„ธ>๋ฆฌ๋ทฐํŒ์—…>ํฌํ† ์ƒ์„ธ(ํฌํ† ์˜์ƒ์ƒ์„ธ)
  2589. $(document).on('click','.pd_review_pop .area_rv_photo a',function(e){
  2590. $("#layer_review_best").modal("show");
  2591. reviewCount = 2;
  2592. return false;
  2593. })
  2594. //ํŒ์—… - ์ƒํ’ˆ์ƒ์„ธ>๋ฆฌ๋ทฐํŒ์—…>ํฌํ† ์ƒ์„ธ(๋ฒ ์ŠคํŠธ์ƒ์„ธ)
  2595. $(document).on('click','.pd_review_pop .area_rv_best a',function(e){
  2596. $("#layer_review_best").modal("show");
  2597. reviewCount = 2;
  2598. return false;
  2599. })
  2600. //ํŒ์—… - ์ƒํ’ˆ์ƒ์„ธ>๋ฆฌ๋ทฐํŒ์—…>ํฌํ† ์ƒ์„ธ ๋‹ซ๊ธฐ
  2601. $(document).on('click','#layer_review_best .close-modal',function(e){
  2602. if(reviewCount === 2){
  2603. $('.pd_review_pop').modal('show');
  2604. }
  2605. return false;
  2606. });
  2607. //ํŒ์—… - ํฌํ† /์˜์ƒ (list)
  2608. $(document).on('click','.pd_review_pop #btn_more_photoreview',function(e){
  2609. reviewCount = 2;
  2610. return false;
  2611. })
  2612. $(document).on('click','#layer_review_photo .close-modal',function(e){
  2613. if(reviewCount === 2){
  2614. $('.pd_review_pop').modal('show');
  2615. }
  2616. return false;
  2617. });
  2618. //--์ƒํ’ˆ๋ฆฌ๋ทฐ ์ฐฝ ์ˆœ์„œ -
  2619. $(document).on('click','.pd_detail .thumb_box .thumb',function(e){
  2620. $('html, body').addClass('lock'); // 210827_ lock ์ถ”๊ฐ€
  2621. $('#pdItemThumbPop').css("display", "block");
  2622. $("#pdItemThumbPop").scrollTop(0);
  2623. var thumbIndex = $(this).parent().attr('id').replace("navLocate", "");
  2624. var scrollThumbPop = $('#popThumb'+thumbIndex).height() * (thumbIndex-1);
  2625. $('#pdItemThumbPop').animate({scrollTop : scrollThumbPop}, 1000);
  2626. return false;
  2627. }).on('click','.full_popup_wrap .btn_close, #btn_close_itemThumbPop',function(e){ // 210827_ lock ํ•ด์ œ
  2628. $("#pdItemThumbPop").scrollTop(0);
  2629. $("#pdItemThumbPop").hide();
  2630. $('html, body').removeClass('lock');
  2631. return false;
  2632. });
  2633. // ํฌํ† ,๋ฒ ์ŠคํŠธ๋ฆฌ๋ทฐ์ˆจ๊น€
  2634. var review_open=$(".btn_review_open");
  2635. //$(document).on('click','.btn_review_open',function(e){
  2636. // $(this).toggleClass('active');
  2637. // $(this).next(".review_list").toggleClass('active');
  2638. // return false;
  2639. //});
  2640. $(document).on('click','.pd_review .btn_review_open',function(e){
  2641. $(this).toggleClass('active');
  2642. $(this).next(".review_list").toggleClass('active');
  2643. if($(this).hasClass('active')){
  2644. $(".pd_review.best").css("position", "absolute");
  2645. //$(".pd_review.best").css("bottom", "0");
  2646. } else {
  2647. $(".pd_review.best").css("position", "relative");
  2648. //$(".pd_review.best").css("bottom", "auto");
  2649. }
  2650. return false;
  2651. });
  2652. //ํŒ์—… - ๊ตฌ๋งคํ•˜๊ธฐ > ์˜ต์…˜์„ ํƒ > ์˜ต์…˜์…€๋ ‰ํŠธํŒ์—…
  2653. $(document).on('click','.Purchase_pop .option_result .option_open',function(e){
  2654. $(".pop_option_select").show();
  2655. return false;
  2656. });
  2657. $(document).on('click','.pop_option_select .close',function(e){
  2658. $(".pop_option_select").hide();
  2659. $('.option_result .option_open').removeClass('on');
  2660. let target=$('.select_custom.item_opt1');
  2661. target.each(function(){
  2662. $('.form_field .select_custom.item_opt1.' +$(this).attr('id') ).find('.combo .select').html('์„ ํƒ');
  2663. $('.form_field .select_custom.item_opt2.' +$(this).attr('id') ).attr('disabled', true);
  2664. $('.form_field .select_custom.item_opt2.' +$(this).attr('id') ).find('.combo .select').html('์„ ํƒ');
  2665. });
  2666. return false;
  2667. });
  2668. //๊ด€์‹ฌ์ƒํ’ˆ ๋“ฑ๋ก
  2669. $(document).on('click','.pd .itemLike',function(e){
  2670. $(this).toggleClass('active');
  2671. return false;
  2672. });
  2673. fnOptionSoldout();
  2674. // ๊ด‘๊ณ  ์Šคํฌ๋ฆฝํŠธ์šฉ
  2675. var goodsNavigation = [[${goodsNavigation}]];
  2676. var cate1No = "";
  2677. var cate2No = "";
  2678. var cate3No = "";
  2679. var cate4No = "";
  2680. var cate5No = "";
  2681. var cate1Nm = "";
  2682. var cate2Nm = "";
  2683. var cate3Nm = "";
  2684. var cate4Nm = "";
  2685. var cate5Nm = "";
  2686. if (!gagajf.isNull(goodsNavigation)) {
  2687. cate1No = goodsNavigation.cate1No;
  2688. cate2No = goodsNavigation.cate2No;
  2689. cate3No = goodsNavigation.cate3No;
  2690. cate4No = goodsNavigation.cate4No;
  2691. cate5No = goodsNavigation.cate5No;
  2692. cateNm = cate3No;
  2693. cate1Nm = goodsNavigation.cate1Nm;
  2694. cate2Nm = goodsNavigation.cate2Nm;
  2695. cate3Nm = goodsNavigation.cate3Nm;
  2696. cate4Nm = goodsNavigation.cate4Nm;
  2697. cate5Nm = goodsNavigation.cate5Nm;
  2698. }
  2699. // ๊ด‘๊ณ  ์Šคํฌ๋ฆฝํŠธ์šฉ
  2700. var snsGoodsImg = _uploadGoodsUrl + "/" + [[${goodsInfo.sysImgNm}]];
  2701. var snsUrl = location.protocol + _PAGE_GOODS_DETAIL + params.goodsCd;// +'&colorCd =' + params.colorCd ;
  2702. if (typeof (params.colorCd) != 'undefined') snsUrl += "&colorCd=" + params.colorCd;
  2703. var snsGoodsFullNm = [[${goodsInfo.goodsFullNm}]];
  2704. <!-- ํŽ˜์ด์Šค๋ถ ์นด์นด์˜ค์Šคํ† ๋ฆฌ ์—ฐ๋™ ๊ด€๋ จ ๋ฉ”ํƒ€ํƒœ๊ทธ -->
  2705. $("meta[property='og:url']").attr('content', snsUrl);
  2706. $("meta[property='og:title']").attr('content', snsGoodsFullNm);
  2707. $("meta[property='og:description']").attr('content', snsGoodsFullNm);
  2708. $("meta[property='og:image']").attr('content', snsGoodsImg);
  2709. <!-- ํŠธ์œ„ํ„ฐ ๊ด€๋ จ ๋ฉ”ํƒ€ํƒœ๊ทธ -->
  2710. $("meta[name='twitter:url']").attr('content', snsUrl);
  2711. $("meta[name='twitter:title']").attr('content', snsGoodsFullNm);
  2712. $("meta[name='twitter:description']").attr('content', snsGoodsFullNm);
  2713. $("meta[name='twitter:image']").attr('content', snsGoodsImg);
  2714. // ์ถ”์ฒœ์†”๋ฅ˜์…˜ meta ์„ค์ •
  2715. $("meta[property='eg:type']").attr('content',"product");
  2716. $("meta[property='eg:cuid']").attr('content',eglqueueCuid);
  2717. $("meta[property='eg:itemId']").attr('content', [[${goodsInfo.goodsCd}]] );
  2718. $("meta[property='eg:itemName']").attr('content',[[${goodsInfo.goodsFullNm}]] );
  2719. $("meta[property='eg:itemImage']").attr('content', snsGoodsImg);
  2720. $("meta[property='eg:itemUrl']").attr('content',snsUrl);
  2721. $("meta[property='eg:originalPrice']").attr('content',[[${goodsInfo.listPrice}]]);
  2722. $("meta[property='eg:salePrice']").attr('content',[[${goodsInfo.currPrice}]]);
  2723. $("meta[property='eg:category1']").attr('content',cate1No);
  2724. $("meta[property='eg:category2']").attr('content',cate2No);
  2725. $("meta[property='eg:category3']").attr('content',cate3No);
  2726. $("meta[property='eg:category4']").attr('content',cate4No);
  2727. $("meta[property='eg:category5']").attr('content',cate5No);
  2728. $("meta[property='eg:category1_name']").attr('content',cate1Nm);
  2729. $("meta[property='eg:category2_name']").attr('content',cate2Nm);
  2730. $("meta[property='eg:category3_name']").attr('content',cate3Nm);
  2731. $("meta[property='eg:category4_name']").attr('content',cate4Nm);
  2732. $("meta[property='eg:category5_name']").attr('content',cate5Nm);
  2733. $("meta[property='eg:brandId']").attr('content',[[${goodsInfo.brandGroupNo}]]);
  2734. $("meta[property='eg:brandName']").attr('content',[[${goodsInfo.brandGroupNm}]]);
  2735. $("meta[property='eg:regDate']").attr('content',[[${goodsInfo.regDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
  2736. $("meta[property='eg:updateDate']").attr('content',[[${goodsInfo.updDt}]].toDate("YYYYMMDDHHmmss").format("YYYY-MM-DDTHH:mm:ssZ"));
  2737. $("meta[property='eg:stock']").attr('content',[[${goodsInfo.goodsStockQty}]]);
  2738. $("meta[property='eg:state']").attr('content',[[${goodsInfo.goodsStat}]]);
  2739. $("meta[property='eg:description']").attr('content',null);
  2740. $("meta[property='eg:extraImage']").attr('content',null);
  2741. $("meta[property='eg:locale']").attr('content',"KR");
  2742. $("meta[property='eg:isNew']").attr('content',([[${goodsInfo.formalGb}]] == 'G009_10')? 'True' :'False');
  2743. $("meta[property='eg:etc1']").attr('content', [[${goodsInfo.selfGoodsYn}]]);
  2744. // ep ์ฟ ํฐํ™•์ธ
  2745. fnEpCouponDown([[${afLinkCd}]], [[${params.goodsCd}]], 1);
  2746. $('.Purchase_pop .btPop_close').click(function(){
  2747. $('html, body').css({'overflow': 'visible', 'height': '100%'});
  2748. $('.container').removeClass('btPop_open');
  2749. autome.style.top = 100 + "%";
  2750. return false;
  2751. });
  2752. // ํ”ฝ์ปค๋ชจ๋‹ฌ
  2753. $(document).on('click','.item_picker',function(e){
  2754. //$("#reco_pop").modal("show");
  2755. $("body").addClass("recoPop");
  2756. return false;
  2757. });
  2758. $(document).on('click','#reco_pop .close-modal',function(e){
  2759. $("body").removeClass("recoPop");
  2760. return false;
  2761. });
  2762. // ์ƒํ’ˆํ‰ ์ƒ์„ธ ํ† ๊ธ€
  2763. $(document).on('click','.pop_open_btn',function(){
  2764. $('.modal.photo_comment_popup .pop_detail').toggleClass('active');
  2765. });
  2766. // ์ƒํ’ˆ์ƒ์„ธ asis html ์ด์ง€๋ฏธ ๊ฒฝ๋กœ ์ˆ˜์ •
  2767. $(".pd_descrp .cont_body").find('img').each(function() {
  2768. let tmpImgSrc = $(this).attr('src');
  2769. if (tmpImgSrc.indexOf('Upload') == 1 ){ // /Upload
  2770. $(this).attr('src' , tmpImgSrc.replace('/Upload', _imgUrl+"/Local").replace('/Upload/Local', "/Local"));
  2771. }
  2772. });
  2773. // ํ˜„์žฌ ์ƒ‰์ƒ๋งŒ ์ƒ์„ธ๋…ธ์ถœ ์ฒ˜๋ฆฌ
  2774. let dpProductNo = [[${arrNoneProductNo}]];
  2775. let selfGoodsYn = [[${goodsInfo.selfGoodsYn}]]
  2776. if (!gagajf.isNull(dpProductNo) && "Y" == selfGoodsYn){
  2777. let arrNoneProductNo = dpProductNo.split(',');
  2778. // for(let i=0; i<arrNoneProductNo.length; i++){
  2779. // $('#'+arrNoneProductNo[i]).css('display', 'none');
  2780. // }
  2781. arrNoneProductNo.forEach(function(item,index, array){
  2782. if(!gagajf.isNull(item)) {
  2783. $('#'+item).css('display', 'none');
  2784. }
  2785. });
  2786. }
  2787. });
  2788. //pd์ „์šฉ - ์ธ๋„ค์ผ/ํ—ค๋” ๋ธ”๋ผ์ธ๋“œ ์ƒ์„ฑ : 210520_ ์ถ”๊ฐ€
  2789. $('.pd .thumb_box .thumb_list .swiper-slide').prepend('<span></span>');
  2790. // pd์ „์šฉ - ์Šคํฌ๋กค ์Šคํฌ๋ฆฝํŠธ
  2791. $(window).scroll(function(){
  2792. var lastScrollTop = 0;
  2793. var st = $(this).scrollTop();
  2794. if($('header').hasClass("main") !== true){
  2795. if (st > lastScrollTop){
  2796. $(".app .gnb").css("position", "fixed");
  2797. $(".htop").css("background", "#fff");
  2798. $(".app .gnb .btn-expand").css("position", "fixed");
  2799. $(".tabbar").removeClass("fixed");
  2800. $(".thumb_list .swiper-slide span").animate({"opacity": 0}, 30);
  2801. } else {
  2802. $(".app .gnb").css("position", "fixed");
  2803. $(".htop").css("background", "#fff");
  2804. $(".app .gnb .btn-expand").css("position", "fixed");
  2805. $(".tabbar").addClass("fixed");
  2806. $(".thumb_list .swiper-slide span").animate({"opacity": 0.5}, 30);
  2807. setTimeout(function(){
  2808. if($(window).scrollTop() === 0){
  2809. $(".app .gnb").css("position", "relative");
  2810. $(".app .gnb .btn-expand").css("position", "absolute");
  2811. }
  2812. },300)
  2813. }
  2814. if(st < 10) {
  2815. $(".htop").css("background", "transparent");
  2816. $(".thumb_list .swiper-slide span").animate({"opacity": 0.5}, 0);
  2817. }
  2818. lastScrollTop = st;
  2819. }
  2820. });
  2821. let vh = window.innerHeight * 0.01;
  2822. document.documentElement.style.setProperty('--vh', `${vh}px`);
  2823. let goodsVideoList = [[${goodsVideoList}]];
  2824. let videoFlag = false;
  2825. if (goodsVideoList != null){
  2826. $.each(goodsVideoList, function(idx, goodsVideo) {
  2827. if ("M" == goodsVideo.videoGb){
  2828. videoFlag = true;
  2829. return false;
  2830. }
  2831. });
  2832. }
  2833. if (videoFlag){
  2834. var player = document.getElementById('child');
  2835. player.onload = function() {
  2836. try {
  2837. var controller = new VgControllerClient({
  2838. target_window: document.getElementById('child').contentWindow
  2839. });
  2840. //console.log(controller.get_screen());
  2841. //controller.enable_fullscreen_button(true);
  2842. // ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋“ฑ๋กํ•˜๊ฑฐ๋‚˜, ์›นํŽ˜์ด์ง€ Element์— ๋ฉ”์†Œ๋“œ๋ฅผ bindํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  2843. // ํด๋ฆญ ์ธ์ง€ ํ…Œ์ŠคํŠธ.
  2844. var MovBtn = document.getElementById("prodMovBtn");
  2845. MovBtn.addEventListener("click", function() {
  2846. $(this).hide();
  2847. controller.play();
  2848. });
  2849. controller.on('ready', function() {
  2850. controller.set_ratio('fill');
  2851. controller.play();
  2852. controller.set_controls_inactive_time(1);
  2853. });
  2854. controller.on('play', function() {
  2855. controller.set_controls_inactive_time(1);
  2856. });
  2857. controller.on('pause', function() {
  2858. $("#prodMovBtn").show();
  2859. });
  2860. $(window).scroll(function(){
  2861. var scrollTop= $(window).scrollTop();
  2862. var movHeight = $(".movbox").outerHeight()/2.5;
  2863. //console.log(movHeight);
  2864. //console.log(scrollTop);
  2865. if (scrollTop > movHeight){
  2866. controller.pause();
  2867. return false;
  2868. } else {
  2869. controller.play();
  2870. return false;
  2871. //controller.set_control_visibility(false);
  2872. }
  2873. });
  2874. } catch(e) {
  2875. // Videogateweay Controller Library๋Š” window.postMessage API๋ฅผ ์ด์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—
  2876. // ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์›น๋ธŒ๋ผ์šฐ์ ธ์—์„œ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  2877. // ์ด ๋ถ€๋ถ„์— ์ ์ ˆํ•œ fail-over ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ฃผ์‹ญ์‹œ์š”.
  2878. }
  2879. };
  2880. }
  2881. // 210407_์Šคํฌ๋กค๊ฐ์ง€ ํ—ค๋” ๊ทธ๋ฆผ์ž
  2882. $('.pd_delivery_pop').scroll(function(){
  2883. $(".pd_delivery_pop .modal-header").css("box-shadow", "rgb(0 0 0 / 20%) 0px 0px 5px");
  2884. $(".pd_delivery_pop .modal-header").css("border-bottom", "0px none");
  2885. if($(".pd_delivery_pop").scrollTop() === 0){
  2886. $(".pd_delivery_pop .modal-header").css("box-shadow", "none");
  2887. $(".pd_delivery_pop .modal-header").css("border-bottom", "1px solid #eee");
  2888. }
  2889. });
  2890. $('.pd_review_pop').scroll(function(){
  2891. $(".pd_review_pop .modal-header").css("box-shadow", "rgb(0 0 0 / 20%) 0px 0px 5px");
  2892. $(".pd_review_pop .modal-header").css("border-bottom", "0px none");
  2893. if($(".pd_review_pop").scrollTop() === 0){
  2894. $(".pd_review_pop .modal-header").css("box-shadow", "none");
  2895. $(".pd_review_pop .modal-header").css("border-bottom", "1px solid #eee");
  2896. }
  2897. });
  2898. $('.pd_qnalist_pop').scroll(function(){
  2899. $(".pd_qnalist_pop .modal-header").css("box-shadow", "rgb(0 0 0 / 20%) 0px 0px 5px");
  2900. $(".pd_qnalist_pop .modal-header").css("border-bottom", "0px none");
  2901. if($(".pd_qnalist_pop").scrollTop() === 0){
  2902. $(".pd_qnalist_pop .modal-header").css("box-shadow", "none");
  2903. $(".pd_qnalist_pop .modal-header").css("border-bottom", "1px solid #eee");
  2904. }
  2905. });
  2906. //window.onscroll = function() {
  2907. // document.getElementsByClassName('.modal.pd_pop.pd_review_pop .pd_review .area_rv_empty .btn_group_flex').style.top =
  2908. // window.pageYOffset + 'px';
  2909. //};
  2910. /*]]>*/
  2911. </script>
  2912. <!-- ๊ด‘๊ณ  ์Šคํฌ๋ฆฝํŠธ -->
  2913. <th:block th:replace="~{mob/common/advertisements/GoodsDetailScriptsMob :: scripts}"></th:block>
  2914. <!-- //๊ด‘๊ณ  ์Šคํฌ๋ฆฝํŠธ -->
  2915. </th:block>
  2916. </body>
  2917. </html>