{"version":3,"sources":["node_modules/browser-pack/_prelude.js","src/scripts/libraries/_base.ts","src/scripts/libraries/fancybox-lib.ts","src/scripts/libraries/pagination.ts","src/scripts/main.ts"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_window","window","_base","closeHandle","popup","callBack","classList","remove","cp","tablet","delHandle","list","str","idxActived","forEach","item","idx","isNonNegativeNumber","value","numberValue","parseInt","isNaN","handeleClickGroup","group","gpItem","idxGp","add","style","display","opacity","visibility","animation","handleHiddenItem","handleVisiblleItem","getAllQueryParam","searchParams","URLSearchParams","location","search","params","key","__assign","_a","getQueryParam","name","get","updateURLParams","paramsToUpdate","hasOwnProperty","set","newURL","pathname","toString","console","log","history","pushState","removeQueryParam","paramName","delete","replace","scrollToID","idstring","element","document","getElementById","topFeatured","featuredItem","parentFeatured","offsetParent","count","nodeName","offsetTop","scrollTo","top","left","behavior","mouseBoxHandle","lsName","queryMouseHandle","mousePos","checked","onmousemove","event","doc","body","pageX","clientX","eventDoc","target","ownerDocument","documentElement","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","x","y","parentElement","contains","setInterval","divMouse","querySelector","mouseBoxItemHandle","elementItem","onmouseout","copyMaker","copyText","callback","input","createElement","setAttribute","height","appendChild","select","execCommand","addToastMsg","status","message","eToast","toastMsg","innerHTML","transitionDuration","timeDurationMsg","addEventListener","Promise","res","rej","then","setTimeout","resole","reject","err","children","catch","error","targetHandle","checkCondition","popupHandle","callBackClose","clickHandleTarget","preventDefault","popup_1","removeEventListener","getAttribute","closes","querySelectorAll","evtClose_1","close","cancel","stopPropagation","initPopupHandle","popup_2","close_1","backToTop","strQuery","handleScroll_1","timeout_1","backtotop","getBoundingClientRect","innerHeight","clearTimeout","onclick","stepNumber","finalNumber","duration","start","startTime","performance","now","requestAnimationFrame","step","currentTime","elapsedTime","rate","currentNumber","Math","round","optsw","loopSlide","slidesPerView","loop","speed","autoplay","delay","disableOnInteraction","sliderThumbs","swiperSlider","swiperThumbs","slides","slideTo","on","activeIdx","activeIndex","fancyboxLib","ls","arrayFancy","includes","push","Fancybox","bind","Thumbs","type","youtube","controls","showinfo","mobile","clickSlide","clickContent","initPage","pagination","opts","this","options","Object","assign","defaults","init","prototype","plugin","pages","selector","totalBox","items","idxPage","totalPage","ceil","page","activeBox","results","itemActive","paginationCreate","param","objClass","liActive","itemPages","createPagination","strIcon","changeIcon","clickButton","totalPages","zero","strList","strI","visiblePage","visiblePage2","concat","index","pageActive","lens","itemPage","liBtns","getElementsByTagName","hiddenNextPrev","dataItem","scroll","scrollToTop","id","header","_b","strId","queryHeader","strClass","getElementsByClassName","itemNext","itemPrev","Swiper","navigation","nextEl","prevEl","swiper3","spaceBetween","watchSlidesVisibility","watchSlidesProgress","headerUserHandle","boxes","loginFormUser","loginFormDealer","registerFormUser","registerFormDealer","loginFormNav","forgotFormNav","shopCartButton","closePopups","evt","userBtn","loginPopup","userForm","closeForm","evtTarget","parentNode","activeUser","hamberger","activeHamberger","cartShop","activeCartShop","findBtn","activeFind","toggle","closeShopCart","formLogin","toggleHeader","box","outMenuBar","numberCart","shopNowButton","removeActiveForm","addActiveForm","nav","forget","sbtn","pop","queryStringId","active","overflow","cartHandle","parentAttribute","strData","parent","reloadForm","shopBox","xhttp","cartForm","XMLHttpRequest","onreadystatechange","readyState","responseText","open","send","deleteCartHandle","delProducts","del","dataOrder","data","title","childNodes","child","childItems","titleItem","getTitleProduct","confirm","idProperty","idOrder","IdProduct","IdOrder","IdProperty","setRequestHeader","JSON","stringify","numberCartHandle","plusProducts","minusProducts","plus","numberCurrent","prevElement","previousElementSibling","minusElement","nextElementSibling","pointerEvents","temp","timerId","thisPlus","calcPlusAPI","sumPlus","func","numberPast","minus","plusElement","thisMinus","calcMinusAPI","sumMinus","cpn1","cpn2","cpn3","cpn4","cpn5","note","onchange","onsubmit","unCheck","trim","match","companyName1","companyName2","companyName3","companyName4","companyName5","mess","parse","Code","alert","Message","submitFormCart","login","registerUser","registerDealer","custom","forgot","popupLogin","path","toggleinput","contentList","listCate","url","itemCate","contentListAjax","stateData","state","paramValue","flag","contentListCurrent","urlValue","endCheck","slidesPerGroup","breakpoints","120","320","425","600","768","1024","1440","submitDetailBlog","formShare","emailInput","titlePost","info","email","test","String","toLowerCase","dataSubmit","object","handleOrderProduct","order","size","amount","idProduct","check","queryString","stringHeader","parentWrapper","wrapper","pos","clientHeight","scrollTopHeader","idSize","selectedIndex","idQuanlity","pId","propertyId","quantity","checkBoxPoup","formDealer","itemGroup","checkBoxes","itemEvent","itemBox","handleQtyProduct","inpNumberQty","btnDecrease","btnIncrease","initPopups","popupHandleProductHavas","Utils","addClass","theClass","removeClass","showMore","excerpt","_this_1","textContent","showMoreLinksTarget","excerptTarget","link","ExcerptWidget","pagination_1","_base_1","fancybox_lib_1","pageCommentProduct","handleSwThumb","swSlider_1","swThumb_1","lsThumb_1","thumb","slider","itemThumb","mattress3","mattress2","product_details1","product_details2","dealer_digital","review","icons","recommends","commentMore","visibleComment","reviewComment","cmtActive","imgWrap","imgArray","upload","btnSubmit_1","valueEmptry","listContainer","listCustoms","chooses","checkDefaultActive","checkComments","centeredSlides","el","clickable","zoom","thumbs","swiper","hrefItem","hHeader","global","parentGlobal","posHeightGlobal","listIcon","scrollY","icon","handleGlobal","btn","caret1","listactive","caret","reBox","floor","addPagination","rePagination","reSwiper","reWrapper","reNext","rePrev","640","number","iNumber","clickPaginationReleases","model","dataModel","scrollIntoView","activeProduct","product","contents","content","iconParent","offsetLeft","clientWidth","option","xhttp2","recommend","lastElementChild","getStar","stars","j","commentRates","commentReviews","blockText","iVisible","hBanner","marginTop","len","lenList","num","max","runList","hChild","heightProductDetails","itemPop","btnPop","closePop","maxLength","files","closest","filesArr","Array","slice","Number","filter","undefined","reader","FileReader","onload","html","result","insertAdjacentHTML","iterator","readAsDataURL","payemntSection","methodPayment","getElementsByName","dataset","emptry","insertAdjacentElement","optItem","idxOpt","optionValue","linkOpt","itemChoose","star","closesItem"],"mappings":"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","file":"main.min.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i= 0) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\twindow.handeleClickGroup = function (group: any, idxActived: number, callBack: Function = function () { }) {\r\n\t\tvar item: HTMLElement;\r\n\t\tgroup.forEach(function (gpItem: HTMLElement, idxGp: number) {\r\n\t\t\tif (idxGp === idxActived) {\r\n\t\t\t\tgpItem.classList.add('is-showed');\r\n\t\t\t\tgpItem.style.display = \"\";\r\n\t\t\t\tgpItem.style.opacity = \"\";\r\n\t\t\t\tgpItem.style.visibility = \"\";\r\n\t\t\t\tgpItem.style.animation = \".8s isShowed cubic-bezier(0.075, 0.82, 0.165, 1) forwards\";\r\n\r\n\t\t\t\titem = gpItem;\r\n\t\t\t} else {\r\n\t\t\t\tgpItem.classList.remove('is-showed');\r\n\t\t\t\tgpItem.style.display = \"none\";\r\n\t\t\t\tgpItem.style.opacity = \"0\";\r\n\t\t\t\tgpItem.style.visibility = \"hidden\";\r\n\r\n\t\t\t\tgpItem.style.animation = \"\";\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tcallBack(item);\r\n\t}\r\n\r\n\twindow.handleHiddenItem = function (item: any, callBack: Function = function () { }) {\r\n\t\titem.classList.remove('is-showed');\r\n\t\titem.style.display = \"none\";\r\n\t\titem.style.opacity = \"0\";\r\n\t\titem.style.visibility = \"hidden\";\r\n\t\titem.style.animation = \"\";\r\n\r\n\t\tcallBack(item);\r\n\t}\r\n\twindow.handleVisiblleItem = function (item: any, callBack: Function = function () { }) {\r\n\t\titem.classList.add('is-showed');\r\n\t\titem.style.display = \"\";\r\n\t\titem.style.animation = \".8s isShowed cubic-bezier(0.075, 0.82, 0.165, 1) forwards\";\r\n\t\tcallBack(item);\r\n\t}\r\n\r\n\twindow.getAllQueryParam = function () {\r\n\t\tvar searchParams = new URLSearchParams(window.location.search);\r\n\t\tvar params = {}\r\n\t\tsearchParams.forEach(function (value, key) {\r\n\t\t\tparams = {\r\n\t\t\t\t...params,\r\n\t\t\t\t[key]: value\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn params;\r\n\t}\r\n\twindow.getQueryParam = function (name: any) {\r\n\t\tvar searchParams = new URLSearchParams(window.location.search);\r\n\t\treturn searchParams.get(name);\r\n\t}\r\n\r\n\twindow.updateURLParams = function (paramsToUpdate: any) {\r\n\t\t// Lấy tất cả các tham số truy vấn từ URL hiện tại\r\n\t\tvar searchParams = new URLSearchParams(window.location.search);\r\n\r\n\t\t// Lặp qua các tham số cần cập nhật\r\n\t\tfor (var key in paramsToUpdate) {\r\n\t\t\tif (paramsToUpdate.hasOwnProperty(key)) {\r\n\t\t\t\tsearchParams.set(key, paramsToUpdate[key]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Tạo URL mới với các thay đổi\r\n\t\tvar newURL = window.location.pathname + '?' + searchParams.toString();\r\n\r\n\t\tconsole.log(newURL);\r\n\r\n\t\t// Cập nhật URL trên trình duyệt\r\n\t\twindow.history.pushState({ paramsToUpdate }, '', newURL);\r\n\t}\r\n\r\n\twindow.removeQueryParam = function (paramName: any) {\r\n\t\t// Lấy tất cả các tham số truy vấn từ URL hiện tại\r\n\t\tvar searchParams = new URLSearchParams(window.location.search);\r\n\r\n\t\t// Loại bỏ tham số truy vấn\r\n\t\tsearchParams.delete(paramName);\r\n\r\n\t\t// Tạo URL mới với các thay đổi\r\n\t\tvar newURL;\r\n\t\tif (searchParams.toString() !== '') {\r\n\t\t\tnewURL = window.location.pathname + '?' + searchParams.toString();\r\n\t\t} else {\r\n\t\t\tnewURL = window.location.pathname;\r\n\t\t}\r\n\r\n\t\t// Cập nhật URL trên trình duyệt\r\n\t\twindow.location.replace(newURL);\r\n\r\n\t\t// window.history.pushState({ path: newURL }, '', newURL);\r\n\t}\r\n\r\n\twindow.scrollToID = function (idstring: any) {\r\n\t\tvar element;\r\n\t\tif (typeof (idstring) === \"object\") {\r\n\t\t\telement = idstring;\r\n\t\t} else {\r\n\t\t\telement = document.getElementById(idstring + \"\");\r\n\t\t}\r\n\r\n\t\tvar topFeatured = 0;\r\n\t\tvar featuredItem = element;\r\n\t\tif (featuredItem) {\r\n\t\t\tvar parentFeatured = featuredItem.offsetParent;\r\n\t\t\tvar count = 0;\r\n\t\t\twhile (parentFeatured.nodeName !== \"BODY\" && count < 100) {\r\n\t\t\t\ttopFeatured += parentFeatured.offsetTop;\r\n\t\t\t\tparentFeatured = parentFeatured.offsetParent;\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t\ttopFeatured += featuredItem.offsetTop;\r\n\t\t}\r\n\r\n\t\twindow.scrollTo({\r\n\t\t\ttop: topFeatured,\r\n\t\t\tleft: 0,\r\n\t\t\tbehavior: \"smooth\",\r\n\t\t});\r\n\t}\r\n\r\n\t// mouse in seemore box\r\n\twindow.mouseBoxHandle = function (lsName: string, queryMouseHandle: string) {\r\n\t\t// var boxes = document.querySelectorAll(listItem);\r\n\t\tvar mousePos: any;\r\n\t\tvar checked = false;\r\n\r\n\t\tfunction handleMouseMove(event: any) {\r\n\t\t\tvar dot, eventDoc, doc, body, pageX, pageY;\r\n\t\t\tevent = event || window.event; // IE-ism\r\n\t\t\t// If pageX/Y aren't available and clientX/Y are,\r\n\t\t\t// calculate pageX/Y - logic taken from jQuery.\r\n\t\t\t// (This is to support old IE)\r\n\t\t\tif (event.pageX == null && event.clientX != null) {\r\n\t\t\t\teventDoc = (event.target && event.target.ownerDocument) || document;\r\n\t\t\t\tdoc = eventDoc.documentElement;\r\n\t\t\t\tbody = eventDoc.body;\r\n\r\n\t\t\t\tevent.pageX = event.clientX +\r\n\t\t\t\t\t(doc && doc.scrollLeft || body && body.scrollLeft || 0) -\r\n\t\t\t\t\t(doc && doc.clientLeft || body && body.clientLeft || 0);\r\n\t\t\t\tevent.pageY = event.clientY +\r\n\t\t\t\t\t(doc && doc.scrollTop || body && body.scrollTop || 0) -\r\n\t\t\t\t\t(doc && doc.clientTop || body && body.clientTop || 0);\r\n\t\t\t}\r\n\r\n\t\t\tmousePos = {\r\n\t\t\t\tx: event.clientX,\r\n\t\t\t\ty: event.clientY\r\n\t\t\t};\r\n\r\n\t\t\tlet target = event.target;\r\n\t\t\t// console.log(boxes);\r\n\t\t\tif (target && target.parentElement && target.parentElement.classList.contains(lsName)) {\r\n\t\t\t\tchecked = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdo {\r\n\t\t\t\t\ttarget = target.parentElement;\r\n\r\n\t\t\t\t\tif (target && target.parentElement == null) {\r\n\t\t\t\t\t\tchecked = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (target && target.parentElement && target.parentElement.classList.contains(lsName)) {\r\n\t\t\t\t\t\tchecked = true;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t} while (target.parentElement !== null)\r\n\t\t\t\tchecked = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction getMousePosition() {\r\n\t\t\tvar pos = mousePos;\r\n\t\t\tif (!pos) {\r\n\t\t\t\t// We haven't seen any movement yet\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Use pos.x and pos.y\r\n\t\t\t\tvar divMouse = document.querySelector(queryMouseHandle);\r\n\t\t\t\tdivMouse.style.top = mousePos.y + \"px\";\r\n\t\t\t\tdivMouse.style.left = mousePos.x + \"px\";\r\n\t\t\t\tif (checked) {\r\n\t\t\t\t\tdivMouse.classList.add('visible');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdivMouse.classList.remove('visible');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tdocument.onmousemove = handleMouseMove;\r\n\t\tsetInterval(getMousePosition);\r\n\t};\r\n\r\n\twindow.mouseBoxItemHandle = function (elementItem: HTMLElement, queryMouseHandle: string) {\r\n\t\t// var boxes = document.querySelectorAll(listItem);\r\n\t\tvar mousePos: any;\r\n\t\tvar checked = false;\r\n\r\n\t\tfunction handleMouseMove(event: any) {\r\n\t\t\tvar dot, eventDoc, doc, body, pageX, pageY;\r\n\t\t\tevent = event || window.event; // IE-ism\r\n\t\t\t// If pageX/Y aren't available and clientX/Y are,\r\n\t\t\t// calculate pageX/Y - logic taken from jQuery.\r\n\t\t\t// (This is to support old IE)\r\n\t\t\tif (event.pageX == null && event.clientX != null) {\r\n\t\t\t\teventDoc = (event.target && event.target.ownerDocument) || document;\r\n\t\t\t\tdoc = eventDoc.documentElement;\r\n\t\t\t\tbody = eventDoc.body;\r\n\r\n\t\t\t\tevent.pageX = event.clientX +\r\n\t\t\t\t\t(doc && doc.scrollLeft || body && body.scrollLeft || 0) -\r\n\t\t\t\t\t(doc && doc.clientLeft || body && body.clientLeft || 0);\r\n\t\t\t\tevent.pageY = event.clientY +\r\n\t\t\t\t\t(doc && doc.scrollTop || body && body.scrollTop || 0) -\r\n\t\t\t\t\t(doc && doc.clientTop || body && body.clientTop || 0);\r\n\t\t\t}\r\n\r\n\t\t\tmousePos = {\r\n\t\t\t\tx: event.clientX,\r\n\t\t\t\ty: event.clientY\r\n\t\t\t};\r\n\r\n\t\t\tlet target = event.target;\r\n\t\t\tchecked = true;\r\n\r\n\t\t\t// console.log(boxes);\r\n\t\t\t// if (target && target.parentElement && target.parentElement.classList.contains('')){\r\n\t\t\t// \tchecked = true;\t\r\n\t\t\t// }\r\n\t\t\t// else{\r\n\t\t\t// \tdo{\r\n\t\t\t// \t\ttarget = target.parentElement;\r\n\r\n\t\t\t// \t\tif (target && target.parentElement == null){\r\n\t\t\t// \t\t\tchecked = false;\r\n\t\t\t// \t\t\tbreak;\r\n\t\t\t// \t\t}\r\n\r\n\t\t\t// \t\tif (target && target.parentElement && target.parentElement.classList.contains('')){\r\n\t\t\t// \t\t\tchecked = true;\r\n\t\t\t// \t\t\treturn;\r\n\t\t\t// \t\t}\r\n\t\t\t// \t}while(target.parentElement !== null)\r\n\t\t\t// \tchecked = false;\r\n\t\t\t// }\r\n\t\t}\r\n\r\n\t\tfunction handleMouseOut(event: any) {\r\n\t\t\tchecked = false;\r\n\t\t}\r\n\r\n\r\n\r\n\t\tfunction getMousePosition() {\r\n\t\t\tvar pos = mousePos;\r\n\t\t\tif (!pos) {\r\n\t\t\t\t// We haven't seen any movement yet\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Use pos.x and pos.y\r\n\t\t\t\tvar divMouse = elementItem.querySelector(queryMouseHandle);\r\n\t\t\t\tdivMouse.style.top = mousePos.y + \"px\";\r\n\t\t\t\tdivMouse.style.left = mousePos.x + \"px\";\r\n\t\t\t\tif (checked) {\r\n\t\t\t\t\tdivMouse.classList.add('visible');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdivMouse.classList.remove('visible');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\telementItem.onmousemove = handleMouseMove;\r\n\t\telementItem.onmouseout = handleMouseOut;\r\n\t\tsetInterval(getMousePosition);\r\n\t};\r\n\r\n\twindow.copyMaker = function (copyText: string, callback: Function = function () { }) {\r\n\t\ttry {\r\n\t\t\tconst input = document.createElement(\"input\");\r\n\t\t\tinput.value = copyText;\r\n\t\t\tinput.setAttribute('type', 'text');\r\n\t\t\tinput.style.height = \"0\";\r\n\t\t\tinput.style.opacity = \"0\";\r\n\t\t\tlet body = document.querySelector('body');\r\n\t\t\tbody.appendChild(input);\r\n\r\n\t\t\tinput.select();\r\n\r\n\t\t\tdocument.execCommand(\"copy\");\r\n\r\n\t\t\tinput.remove();\r\n\r\n\t\t\tcallback('success');\r\n\r\n\t\t\t// copyElement.addEventListener(\"mouseover\", function(e){\r\n\t\t\t// \tcopyElement.setAttribute(\"tooltip\", textElement);\r\n\t\t\t// });\r\n\t\t}\r\n\t\tcatch {\r\n\t\t\tcallback('error');\r\n\t\t}\r\n\t}\r\n\r\n\twindow.addToastMsg = function (status: string, message: string) {\r\n\t\tlet toastMsg = document.querySelector('.toast-msg');\r\n\t\tif (!toastMsg) {\r\n\t\t\tlet eToast = document.createElement('ul');\r\n\t\t\teToast.classList.add('toast-msg');\r\n\r\n\t\t\ttoastMsg = eToast;\r\n\r\n\t\t\tdocument.body.appendChild(toastMsg);\r\n\t\t}\r\n\r\n\t\tlet item = document.createElement('li');\r\n\r\n\t\titem.classList.add(status);\r\n\r\n\t\titem.innerHTML = `\r\n\t\t\t

${message}

\r\n\t\t`;\r\n\t\tlet timeMsg = 3000;\r\n\t\tlet timeDurationMsg = 600;\r\n\r\n\t\tconst iChild = 5;\r\n\r\n\t\titem.style.transitionDuration = (timeDurationMsg / 1000) + \"s\";\r\n\r\n\t\titem.addEventListener('click', function () {\r\n\t\t\tlet promise = new Promise(function (res, rej) {\r\n\t\t\t\titem.classList.remove('active');\r\n\t\t\t\tres(item);\r\n\t\t\t})\r\n\t\t\tpromise.then(function (value) {\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\titem.remove();\r\n\t\t\t\t}, timeDurationMsg)\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// time message\r\n\t\tlet timeout = new Promise(function (resole, reject) {\r\n\t\t\ttry {\r\n\t\t\t\tif (!item) {\r\n\t\t\t\t\tthrow 'Not item message!';\r\n\t\t\t\t}\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\titem.classList.add('active');\r\n\t\t\t\t\tresole(item);\r\n\t\t\t\t}, 0)\r\n\t\t\t}\r\n\t\t\tcatch (err) {\r\n\t\t\t\treject(err)\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\ttimeout.then(function (item: HTMLElement) {\r\n\t\t\treturn new Promise(function (resole, reject) {\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\titem.classList.remove('active');\r\n\t\t\t\t\tresole(item);\r\n\t\t\t\t}, timeMsg)\r\n\t\t\t})\r\n\t\t}).then(function (value: HTMLElement) {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tvalue.remove();\r\n\r\n\t\t\t\t// remove Toast list\r\n\t\t\t\tif (toastMsg.children.length === 0) {\r\n\t\t\t\t\ttoastMsg.remove();\r\n\t\t\t\t}\r\n\t\t\t}, timeDurationMsg)\r\n\t\t})\r\n\t\t\t.catch(function (error) {\r\n\t\t\t\tconsole.error(`${error}`)\r\n\t\t\t})\r\n\r\n\t\tif (toastMsg.children.length + 1 > iChild) {\r\n\t\t\ttoastMsg.children[0].remove();\r\n\t\t}\r\n\r\n\t\ttoastMsg.appendChild(item);\r\n\t}\r\n\r\n\twindow.targetHandle = function (target: any = document, checkCondition: Function, callBack: Function) {\r\n\t\ttarget.addEventListener('click', function (e: any) {\r\n\t\t\tlet target = e.target;\r\n\r\n\t\t\tif (checkCondition(target) === true) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\ttarget = target.parentElement;\r\n\t\t\tdo {\r\n\t\t\t\tif (checkCondition(target) === true) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\ttarget = target.parentElement;\r\n\t\t\t} while (target.parentElement);\r\n\r\n\t\t\tcallBack();\r\n\t\t})\r\n\t}\r\n\r\n\tfunction closeHandle(popup: any, callBack: Function = function () { }) {\r\n\t\tpopup.classList.remove('is-showed');\r\n\r\n\t\tcallBack(popup);\r\n\t}\r\n\r\n\twindow.popupHandle = function (target: any, callBackClose: Function = function () { return \"\" }) {\r\n\t\ttry {\r\n\t\t\tif (typeof target === 'string') {\r\n\t\t\t\ttarget = document.querySelector(`${target}`);\r\n\t\t\t}\r\n\r\n\t\t\tconst clickHandleTarget = function (e: any) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tpopup.classList.add('is-showed');\r\n\t\t\t}\r\n\r\n\t\t\ttarget.removeEventListener('click', clickHandleTarget);\r\n\t\t\ttarget.addEventListener('click', clickHandleTarget);\r\n\r\n\t\t\tlet popup = document.querySelector(`[data-popup-section=\"${target.getAttribute('data-popup')}\"]`) || document.getElementById(`${target.getAttribute('data-popup')}`);\r\n\t\t\tif (!popup) {\r\n\t\t\t\tthrow `Not found popup: ${target.getAttribute('data-popup')}`;\r\n\t\t\t}\r\n\r\n\t\t\tif (popup.classList.contains('initialized')) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet closes = popup.querySelectorAll('.close');\r\n\r\n\t\t\tconst evtClose = function (e: any) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tcloseHandle(popup, callBackClose);\r\n\t\t\t}\r\n\r\n\t\t\tcloses.forEach(function (close) {\r\n\t\t\t\tclose.addEventListener('click', evtClose);\r\n\t\t\t})\r\n\r\n\t\t\tlet cancels = popup.querySelectorAll('.cancel');\r\n\t\t\tcancels.forEach(function (cancel: HTMLElement) {\r\n\t\t\t\tcancel.addEventListener('click', function (e: any) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tcloseHandle(popup);\r\n\t\t\t\t})\r\n\t\t\t})\r\n\r\n\t\t\t// _window.targetHandle(popup, function(e:HTMLElement){\r\n\t\t\t// \tif (e.classList.contains('wrapper')){\r\n\t\t\t// \t\treturn true;\r\n\t\t\t// \t}\r\n\t\t\t// \treturn false;\r\n\t\t\t// }, function(){\r\n\t\t\t// \tcloseHandle(popup, callBackClose);\r\n\t\t\t// })\r\n\r\n\t\t\t// let modal = popup.querySelector('.modal');\r\n\t\t\tpopup.addEventListener('click', function (e) {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tif (e.target === popup) {\r\n\t\t\t\t\tcloseHandle(popup, callBackClose);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tpopup.classList.add(\"initialized\");\r\n\t\t}\r\n\t\tcatch (err) {\r\n\t\t\tconsole.error(err);\r\n\t\t}\r\n\t}\r\n\r\n\twindow.initPopupHandle = function (target: any, callBackClose: Function = function () { return \"\" }) {\r\n\t\ttry {\r\n\t\t\tlet popup = target;\r\n\t\t\tif (typeof target === \"string\") {\r\n\t\t\t\tpopup = document.querySelector(target);\r\n\t\t\t}\r\n\t\t\tif (!popup) {\r\n\t\t\t\tthrow `Not found popup: ${target.getAttribute('data-popup')}`;\r\n\t\t\t}\r\n\r\n\t\t\tif (popup.classList.contains('initialized')) {\r\n\t\t\t\tpopup.classList.add('opened');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet close = popup.querySelector('.close');\r\n\t\t\tif (close) {\r\n\t\t\t\tclose.addEventListener('click', function (e: any) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tcloseHandle(popup, callBackClose);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tlet cancel = popup.querySelector('.cancel');\r\n\t\t\tif (cancel) {\r\n\t\t\t\tcancel.querySelector('a').addEventListener('click', function (e: any) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tcloseHandle(popup, callBackClose);\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\t_window.targetHandle(popup, function (e: HTMLElement) {\r\n\t\t\t\tif (e.classList.contains('wrapper')) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}, function () {\r\n\t\t\t\tcloseHandle(popup, callBackClose);\r\n\t\t\t})\r\n\r\n\t\t\t// target.addEventListener('click', function(e:any){\r\n\t\t\t// \te.preventDefault();\r\n\t\t\t// })\r\n\r\n\t\t\tpopup.classList.add('opened');\r\n\t\t\tpopup.classList.add(\"initialized\");\r\n\t\t}\r\n\t\tcatch (err) {\r\n\t\t\tconsole.error(err);\r\n\t\t}\r\n\t}\r\n\r\n\twindow.backToTop = (target: HTMLElement, strQuery: string) => {\r\n\t\tconst backtotop = document.querySelector(strQuery);\r\n\t\tif (backtotop && target) {\r\n\r\n\t\t\tconst handleScroll = () => {\r\n\t\t\t\tlet top = target.getBoundingClientRect().top;\r\n\t\t\t\tif (top <= window.innerHeight + 200) {\r\n\t\t\t\t\tbacktotop.classList.add(\"showed\");\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbacktotop.classList.remove('showed');\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\thandleScroll();\r\n\r\n\t\t\tlet timeout: any;\r\n\t\t\twindow.addEventListener('scroll', () => {\r\n\t\t\t\tclearTimeout(timeout);\r\n\t\t\t\ttimeout = setTimeout(handleScroll, 200);\r\n\t\t\t})\r\n\r\n\t\t\tconst handleClick = (e: any) => {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\twindow.scrollTo({\r\n\t\t\t\t\ttop: 0,\r\n\t\t\t\t\tleft: 0,\r\n\t\t\t\t\tbehavior: \"smooth\"\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tbacktotop.onclick = handleClick;\r\n\t\t}\r\n\t}\r\n\r\n\twindow.stepNumber = function (finalNumber: number, duration = 2000, start = 0, callback: Function) {\r\n\t\tconst startTime = performance.now() + start;\r\n\r\n\t\tfunction step(currentTime: any) {\r\n\t\t\tconst elapsedTime = currentTime - startTime;\r\n\r\n\t\t\tif (elapsedTime > duration) {\r\n\t\t\t\tcallback(finalNumber);\r\n\t\t\t} else {\r\n\t\t\t\tconst rate = elapsedTime / duration\r\n\t\t\t\tconst currentNumber = Math.round(rate * finalNumber)\r\n\t\t\t\tcallback(currentNumber)\r\n\t\t\t\trequestAnimationFrame(step)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\trequestAnimationFrame(step);\r\n\t}\r\n\r\n\twindow.optsw = {\r\n\t\t\"loopSlide\": {\r\n\t\t\tslidesPerView: \"auto\",\r\n\t\t\tloop: true,\r\n\t\t\tspeed: 1600,\r\n\t\t\tautoplay: {\r\n\t\t\t\tdelay: 0,\r\n\t\t\t\tdisableOnInteraction: false,\r\n\t\t\t},\r\n\t\t}\r\n\t}\r\n\r\n\twindow.sliderThumbs = function (swiperSlider: any, swiperThumbs: any, callback: Function = function () { }) {\r\n\t\tif (swiperSlider.slides.length !== swiperThumbs.slides.length) {\r\n\t\t\tconsole.error('Insufficient slides!');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst defaultSlide = 0;\r\n\r\n\t\tswiperSlider.slideTo(defaultSlide);\r\n\t\tswiperThumbs.slideTo(defaultSlide);\r\n\t\tcallback();\r\n\r\n\t\tswiperSlider.on('slideChange', function () {\r\n\t\t\tlet activeIdx = swiperSlider.activeIndex;\r\n\t\t\tswiperThumbs.slideTo(activeIdx);\r\n\t\t\tcallback();\r\n\t\t});\r\n\r\n\t\tswiperThumbs.on('slideChange', function () {\r\n\t\t\tlet activeIdx = swiperThumbs.activeIndex;\r\n\t\t\tswiperSlider.slideTo(activeIdx);\r\n\t\t\tcallback();\r\n\t\t});\r\n\t}\r\n};\r\n","declare const Fancybox:any;\r\n\r\nfunction init(){ \r\n let ls = document.querySelectorAll('a[data-fancybox]');\r\n let arrayFancy:any[] = [];\r\n ls.forEach(function(item){\r\n if (!arrayFancy.includes(item.getAttribute('data-fancybox'))){\r\n arrayFancy.push(item.getAttribute('data-fancybox'));\r\n }\r\n })\r\n\r\n arrayFancy.forEach(function(item){\r\n Fancybox.bind(`[data-fancybox=\"${item}\"]`, {\r\n Thumbs: {\r\n // Carousel: {\r\n // fill: false,\r\n // center: true,\r\n // },\r\n type: \"classic\",\r\n },\r\n\r\n // Images: {\r\n // initialSize: \"cover\",\r\n // },\r\n \r\n // Image: {\r\n // zoom: false,\r\n // },\r\n\r\n youtube: {\r\n controls: 1,\r\n showinfo: 0\r\n },\r\n\r\n mobile: {\r\n clickSlide: false\r\n },\r\n\r\n clickContent: false\r\n });\r\n })\r\n}\r\n\r\n\r\n\r\nexport const fancyboxLib = function(){\r\n init();\r\n}","declare const window: any;\r\n\r\nexport const initPage = function () {\r\n\tlet pagination: any;\r\n\r\n\tpagination = function (opts: any) {\r\n\t\tthis.options = Object.assign(pagination.defaults, opts);\r\n\t\tthis.init(opts);\r\n\t};\r\n\r\n\tpagination.prototype.init = function (opts: any) {\r\n\t\tthis.options = opts ? Object.assign(pagination.defaults, opts) : opts;\r\n\t\tvar plugin = this;\r\n\t\tlet options = plugin.options;\r\n\r\n\t\t// let paramItem = options.param;\r\n\t\t// queryPagination: string, queryBox: string\r\n\r\n\t\tvar pages = typeof (options.selector) === \"object\" ? options.selector : document.querySelector(`${options.selector}`);\r\n\t\tvar totalBox = typeof (options.items) === \"object\" ? options.items : document.querySelectorAll(options.items);\r\n\r\n\t\tpages.innerHTML = \"\";\r\n\r\n\t\tvar totalPage = Math.ceil(totalBox.length / options.page);\r\n\t\tplugin.activeBox(totalBox, options.page, 1);\r\n\r\n\t\tif (!pages || !totalBox || totalPage < 1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tplugin.results = plugin.options.callback();\r\n\r\n\t\tif (plugin.results) {\r\n\t\t\tlet type = plugin.results.type;\r\n\t\t\tlet params = plugin.results.params;\r\n\r\n\t\t\tif (type === \"clicked\" && params) {\r\n\t\t\t\tplugin.itemActive = 1;\r\n\t\t\t\tplugin.paginationCreate(\r\n\t\t\t\t\tpages,\r\n\t\t\t\t\ttotalBox,\r\n\t\t\t\t\tplugin.itemActive,\r\n\t\t\t\t\ttotalPage,\r\n\t\t\t\t\toptions.page\r\n\t\t\t\t);\r\n\t\t\t\twindow.updateURLParams(params);\r\n\t\t\t}\r\n\t\t\telse if (type === \"popstate\" && params) {\r\n\t\t\t\tvar value = window.getQueryParam(plugin.options.param);\r\n\t\t\t\tvar idxPage = window.isNonNegativeNumber(value) ? parseInt(value) : 1;\r\n\r\n\t\t\t\tplugin.itemActive = idxPage;\r\n\t\t\t\tplugin.paginationCreate(\r\n\t\t\t\t\tpages,\r\n\t\t\t\t\ttotalBox,\r\n\t\t\t\t\tplugin.itemActive,\r\n\t\t\t\t\ttotalPage,\r\n\t\t\t\t\tplugin.options.page,\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tvar value = window.getQueryParam(plugin.options.param);\r\n\t\t\t\tvar idxPage = window.isNonNegativeNumber(value) ? parseInt(value) : 1;\r\n\r\n\t\t\t\tif (idxPage > totalPage) {\r\n\t\t\t\t\tidxPage = 1;\r\n\t\t\t\t\twindow.removeQueryParam(plugin.options.param);\r\n\t\t\t\t}\r\n\t\t\t\tplugin.itemActive = idxPage;\r\n\t\t\t\tplugin.paginationCreate(\r\n\t\t\t\t\tpages,\r\n\t\t\t\t\ttotalBox,\r\n\t\t\t\t\tplugin.itemActive,\r\n\t\t\t\t\ttotalPage,\r\n\t\t\t\t\toptions.page\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvar value = window.getQueryParam(plugin.options.param);\r\n\t\t\tvar idxPage = window.isNonNegativeNumber(value) ? parseInt(value) : 1;\r\n\t\t\tif (idxPage > totalPage) {\r\n\t\t\t\tidxPage = 1;\r\n\t\t\t\twindow.removeQueryParam(plugin.options.param);\r\n\t\t\t}\r\n\r\n\t\t\tplugin.itemActive = idxPage;\r\n\r\n\t\t\tplugin.paginationCreate(\r\n\t\t\t\tpages,\r\n\t\t\t\ttotalBox,\r\n\t\t\t\tplugin.itemActive,\r\n\t\t\t\ttotalPage,\r\n\t\t\t\toptions.page\r\n\t\t\t);\r\n\t\t}\r\n\t};\r\n\r\n\tpagination.prototype.paginationCreate = function (\r\n\t\tobjClass: any,\r\n\t\ttotalBox: any,\r\n\t\tliActive: number,\r\n\t\ttotalPage: number,\r\n\t\titemPages: number\r\n\t) {\r\n\t\t// Math.ceil(totalBox.length / 5)\r\n\t\tvar plugin = this;\r\n\t\tobjClass.innerHTML = this.createPagination(totalPage, liActive);\r\n\r\n\t\tvar strIcon = `\r\n\t\t\r\n\t\t`;\r\n\r\n\t\tplugin.activeBox(\r\n\t\t\ttotalBox,\r\n\t\t\titemPages,\r\n\t\t\tplugin.itemActive\r\n\t\t);\r\n\r\n\t\tif (totalPage == 1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// thay đổi kí tự next và prev\r\n\t\tplugin.changeIcon(objClass, \"next\", strIcon);\r\n\t\tplugin.changeIcon(objClass, \"prev\", strIcon);\r\n\r\n\r\n\t\t// click button\r\n\t\tplugin.clickButton(\r\n\t\t\tobjClass,\r\n\t\t\ttotalBox,\r\n\t\t\ttotalPage,\r\n\t\t\titemPages\r\n\t\t);\r\n\t};\r\n\r\n\tpagination.prototype.createPagination = function (\r\n\t\ttotalPages: any,\r\n\t\tpage: any,\r\n\t\tzero = false\r\n\t) {\r\n\t\tlet strStart = `
  • prev
  • `;\r\n\t\tlet strList = \"\";\r\n\r\n\t\t// khi tổng số page nhỏ hơn 5\r\n\t\tif (totalPages == 1) {\r\n\t\t\treturn \"\";\r\n\t\t} else if (totalPages < 5) {\r\n\t\t\tfor (var i = 1; i <= totalPages; i++) {\r\n\t\t\t\tlet strI = i < 10 ? `${zero === true ? '0' : ''}${i}` : `${i}`;\r\n\t\t\t\tif (i == page) {\r\n\t\t\t\t\tstrList += `
  • ${strI}
  • `;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstrList += `
  • ${strI}
  • `;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (\r\n\t\t\t(page <= 3 || page >= totalPages - 2) &&\r\n\t\t\tpage > 0 &&\r\n\t\t\tpage <= totalPages\r\n\t\t) {\r\n\t\t\t// trường hợp active tạo thành 1 2 3 4 ... 20\r\n\t\t\tif (page <= 3) {\r\n\t\t\t\tif (page == 3 && totalPages == 5) {\r\n\t\t\t\t\tfor (var i = 1; i <= totalPages; i++) {\r\n\t\t\t\t\t\tlet strI = i < 10 ? `${zero === true ? '0' : ''}${i}` : `${i}`;\r\n\t\t\t\t\t\tif (i == page) {\r\n\t\t\t\t\t\t\tstrList += `
  • ${strI}
  • `;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tstrList += `
  • ${strI}
  • `;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar visiblePage = page + 1;\r\n\t\t\t\t\tif (page == 1) {\r\n\t\t\t\t\t\tvisiblePage = 3;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (var i = 1; i <= visiblePage; i++) {\r\n\t\t\t\t\t\tlet strI = i < 10 ? `${zero === true ? '0' : ''}${i}` : `${i}`;\r\n\r\n\t\t\t\t\t\tif (i == page) {\r\n\t\t\t\t\t\t\tstrList += `
  • ${strI}
  • `;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tstrList += `
  • ${strI}
  • `;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet strTotal = totalPages < 10 ? `${zero === true ? '0' : ''}${totalPages}` : `${totalPages}`;\r\n\t\t\t\t\tstrList += `
  • ...
  • `;\r\n\t\t\t\t\tstrList += `
  • ${strTotal}
  • `;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// trường hợp active tạo thành 1 ... 18 19 20\r\n\t\t\telse {\r\n\t\t\t\tstrList += `
  • ${zero === true ? '0' : ''}1
  • `;\r\n\t\t\t\tstrList += `
  • ...
  • `;\r\n\r\n\t\t\t\tvar visiblePage2 = page - 1;\r\n\t\t\t\tif (page == totalPages) {\r\n\t\t\t\t\tvisiblePage2 = totalPages - 2;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (var i = visiblePage2; i <= totalPages; i++) {\r\n\t\t\t\t\tlet strI = i < 10 ? `${zero === true ? '0' : ''}${i}` : `${i}`;\r\n\r\n\t\t\t\t\tif (i == page) {\r\n\t\t\t\t\t\tstrList += `
  • ${strI}
  • `;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tstrList += `
  • ${strI}
  • `;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t// trường hợp active tạo thành 1 ... 7 8 9 ... 20\r\n\t\telse if (page > 3 && page < totalPages - 2) {\r\n\t\t\tstrList += `
  • ${zero === true ? '0' : ''}1
  • `;\r\n\t\t\tstrList += `
  • ...
  • `;\r\n\t\t\tfor (var i = page - 1; i <= page + 1; i++) {\r\n\t\t\t\tlet strI = i < 10 ? `${zero === true ? '0' : ''}${i}` : `${i}`;\r\n\r\n\t\t\t\tif (i == page) {\r\n\t\t\t\t\tstrList += `
  • ${strI}
  • `;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstrList += `
  • ${strI}
  • `;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlet strTotal = totalPages < 10 ? `${zero === true ? '0' : ''}${totalPages}` : `${totalPages}`;\r\n\t\t\tstrList += `
  • ...
  • `;\r\n\t\t\tstrList += `
  • ${strTotal}
  • `;\r\n\t\t} else {\r\n\t\t\tconsole.log(\"error pagination!!!\");\r\n\t\t\treturn \"\";\r\n\t\t}\r\n\r\n\t\tlet strEnd = `
  • next
  • `;\r\n\r\n\t\treturn `
      ${strStart.concat(strList, strEnd)}
    `;\r\n\t};\r\n\r\n\tpagination.prototype.activeBox = function (\r\n\t\ttotalBox: any,\r\n\t\titemPages: number,\r\n\t\tliActive: any,\r\n\t) {\r\n\t\tlet _this = this;\r\n\t\ttotalBox.forEach(function (item: HTMLElement) {\r\n\t\t\titem.style.display = \"\";\r\n\t\t});\r\n\r\n\t\ttotalBox.forEach(function (item: HTMLElement, index: number, pageActive: number = liActive, lens: number = totalBox.length) {\r\n\t\t\tvar itemPage = Math.ceil((index + 1) / itemPages);\r\n\r\n\t\t\tif (itemPage !== liActive) {\r\n\t\t\t\titem.style.display = \"none\";\r\n\t\t\t} else {\r\n\t\t\t\t// item.style.setProperty('dt-i', `${numberActive + 1}`);\r\n\t\t\t\titem.style.display = \"\";\r\n\t\t\t\t// _this.options.callback(item, index, liActive, lens);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tpagination.prototype.clickButton = function (\r\n\t\tobjClass: any,\r\n\t\ttotalBox: any,\r\n\t\ttotalPage: number,\r\n\t\titemPages: number\r\n\t) {\r\n\t\tvar plugin = this;\r\n\t\tplugin.itemActive = plugin.itemActive || 1;\r\n\r\n\t\tlet liBtns = objClass.getElementsByTagName(\"li\");\r\n\r\n\t\t// let itemActive = 0;\r\n\r\n\t\t// lấy giá trị được active\r\n\t\tfor (let i = 0; i < liBtns.length; i++) {\r\n\t\t\tlet item = liBtns[i];\r\n\t\t\tif (item.classList.contains(\"is-actived\")) {\r\n\t\t\t\tplugin.itemActive = parseInt(\r\n\t\t\t\t\titem.getAttribute(\"data-number\") || \"0\",\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Không cho click vào button Next or Prev nếu active gần nó\r\n\t\tplugin.hiddenNextPrev(\r\n\t\t\tobjClass,\r\n\t\t\tplugin.itemActive,\r\n\t\t\ttotalPage,\r\n\t\t);\r\n\r\n\t\tfor (let i = 0; i < liBtns.length; i++) {\r\n\t\t\tlet item = liBtns[i];\r\n\r\n\t\t\titem.onclick = function () {\r\n\t\t\t\t// let classItem = this.getAttribute('class');\r\n\t\t\t\tlet dataItem = parseInt(this.getAttribute(\"data-number\"));\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\tthis.classList.contains(\"btn-hidden\") ||\r\n\t\t\t\t\tdataItem == plugin.itemActive\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (\r\n\t\t\t\t\tthis.classList.contains(\"next\") &&\r\n\t\t\t\t\tplugin.itemActive < totalPage\r\n\t\t\t\t) {\r\n\t\t\t\t\tplugin.itemActive = plugin.itemActive + 1;\r\n\t\t\t\t} else if (\r\n\t\t\t\t\tthis.classList.contains(\"prev\") &&\r\n\t\t\t\t\tplugin.itemActive > 1\r\n\t\t\t\t) {\r\n\t\t\t\t\tplugin.itemActive = plugin.itemActive - 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (!dataItem) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tplugin.itemActive = dataItem;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tplugin.hiddenNextPrev(objClass, plugin.itemActive, totalPage);\r\n\t\t\t\tplugin.paginationCreate(\r\n\t\t\t\t\tobjClass,\r\n\t\t\t\t\ttotalBox,\r\n\t\t\t\t\tplugin.itemActive,\r\n\t\t\t\t\ttotalPage,\r\n\t\t\t\t\titemPages\r\n\t\t\t\t);\r\n\t\t\t\tplugin.activeBox(\r\n\t\t\t\t\ttotalBox,\r\n\t\t\t\t\titemPages,\r\n\t\t\t\t\tplugin.itemActive\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (plugin.options.scroll) {\r\n\t\t\t\t\tplugin.scrollToTop(\r\n\t\t\t\t\t\tplugin.options.scroll.id,\r\n\t\t\t\t\t\tplugin.options.scroll.header\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (plugin.options && plugin.options.param) {\r\n\t\t\t\t\tif (plugin.results && plugin.results.params) {\r\n\t\t\t\t\t\tplugin.results.params = {\r\n\t\t\t\t\t\t\t...plugin.results.params,\r\n\t\t\t\t\t\t\t[plugin.options.param]: plugin.itemActive\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tplugin.results = {\r\n\t\t\t\t\t\t\tparams: {\r\n\t\t\t\t\t\t\t\t[plugin.options.param]: plugin.itemActive\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet params = plugin.results.params;\r\n\r\n\t\t\t\t\tif (params) {\r\n\t\t\t\t\t\twindow.updateURLParams(params);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t};\r\n\r\n\tpagination.prototype.scrollToTop = function (\r\n\t\tstrId: string,\r\n\t\tqueryHeader: string = \"\"\r\n\t) {\r\n\t\tvar plugin = this;\r\n\r\n\t\tif (document.getElementById(strId)) {\r\n\t\t\tvar topFeatured = 0;\r\n\t\t\tvar featuredItem = document.getElementById(strId);\r\n\t\t\tif (featuredItem) {\r\n\t\t\t\tvar parentFeatured = featuredItem.offsetParent;\r\n\t\t\t\tvar count = 0;\r\n\t\t\t\twhile (parentFeatured.nodeName !== \"BODY\" && count < 100) {\r\n\t\t\t\t\ttopFeatured += parentFeatured.offsetTop;\r\n\t\t\t\t\tparentFeatured = parentFeatured.offsetParent;\r\n\t\t\t\t\tcount++;\r\n\t\t\t\t}\r\n\t\t\t\ttopFeatured += featuredItem.offsetTop;\r\n\t\t\t}\r\n\r\n\t\t\t// // Trừ đi thanh Header\r\n\t\t\t// var hHeader = document.querySelector(queryHeader);\r\n\t\t\t// if (hHeader){\r\n\t\t\t// var scroll = hHeader.getElementsByClassName('scroll');\r\n\t\t\t// if (scroll[0].classList.contains('active')){\r\n\t\t\t// topFeatured -= scroll[0].clientHeight;\r\n\t\t\t// }\r\n\t\t\t// else if (hHeader){\r\n\t\t\t// topFeatured -= hHeader.clientHeight;\r\n\t\t\t// }\r\n\t\t\t// }\r\n\r\n\t\t\twindow.scrollTo({\r\n\t\t\t\ttop: topFeatured,\r\n\t\t\t\tleft: 0,\r\n\t\t\t\tbehavior: \"smooth\",\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tpagination.prototype.changeIcon = function (\r\n\t\tobjClass: any,\r\n\t\tstrClass: string,\r\n\t\tstrIcon: string\r\n\t) {\r\n\t\tvar classStrChange = objClass.getElementsByClassName(strClass);\r\n\t\tvar innerStrClass = classStrChange[0];\r\n\r\n\t\tinnerStrClass.innerHTML = strIcon;\r\n\t};\r\n\r\n\tpagination.prototype.hiddenNextPrev = function (\r\n\t\tobjClass: any,\r\n\t\titemActive: number,\r\n\t\ttotalPage: number\r\n\t) {\r\n\t\tlet liBtns = objClass.getElementsByTagName(\"li\");\r\n\r\n\t\tlet itemNext;\r\n\t\tlet itemPrev;\r\n\r\n\t\t// lấy giá trị được active\r\n\t\tfor (let i = 0; i < liBtns.length; i++) {\r\n\t\t\tlet item = liBtns[i];\r\n\t\t\tif (item.classList.contains(\"next\")) {\r\n\t\t\t\titemNext = item;\r\n\t\t\t} else if (item.classList.contains(\"prev\")) {\r\n\t\t\t\titemPrev = item;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Không cho click vào button Next or Prev nếu active gần nó\r\n\t\tif (totalPage === 1) {\r\n\t\t\titemPrev.classList.add(\"btn-hidden\");\r\n\t\t\titemNext.classList.add(\"btn-hidden\");\r\n\t\t} else if (itemActive === 1) {\r\n\t\t\titemPrev.classList.add(\"btn-hidden\");\r\n\t\t\titemNext.classList.remove(\"btn-hidden\");\r\n\t\t} else if (itemActive === totalPage) {\r\n\t\t\titemPrev.classList.remove(\"btn-hidden\");\r\n\t\t\titemNext.classList.add(\"btn-hidden\");\r\n\t\t} else {\r\n\t\t\titemPrev.classList.remove(\"btn-hidden\");\r\n\t\t\titemNext.classList.remove(\"btn-hidden\");\r\n\t\t}\r\n\t};\r\n\r\n\tpagination.prototype.delete = function () {\r\n\t\t// console.log('deleted');\r\n\r\n\t}\r\n\r\n\tpagination.defaults = {\r\n\t\tid: \"\", //\r\n\t\tparam: \"\",\r\n\t\tselector: \"\", // Class pagination\r\n\t\titems: \"\",\r\n\t\tpage: 0,\r\n\t\tscroll: {\r\n\t\t\tid: \"\",\r\n\t\t},\r\n\t\tcallback: function () {\r\n\t\t\treturn;\r\n\t\t}\r\n\t};\r\n\r\n\twindow.pagination = pagination;\r\n};\r\n","declare var Swiper: any;\r\n\r\nfunction ourTechSwiper() {\r\n\tvar swiper = new Swiper('.our-tech .swiper-container', {\r\n\t\tslidesPerView: 3,\r\n\t\tcenteredSlides: true,\r\n\t\tspaceBetween: 20,\r\n\t\tloop: true,\r\n\t\tpagination: {\r\n\t\t\tel: \".our-tech .swiper-pagination\",\r\n\t\t\tclickable: true,\r\n\t\t},\r\n\t\tspeed: 2000,\r\n\t\tautoplay: {\r\n\t\t\tdelay: 4000,\r\n\t\t\tdisableOnInteraction: false,\r\n\t\t},\r\n\t});\r\n}\r\nfunction topFunction() {\r\n\t// var mybutton = document.getElementById(\"myBtn\");\r\n\t// \twindow.scrollTo({\r\n\t// \t\tbehavior : 'smooth',\r\n\t// \t\ttop:100,\r\n\t// \t})\r\n\twindow.scrollTo(500, 0)\r\n}\r\n\r\nvar swiper2 = new Swiper('.mattress-recommend__wrapper .right-recommend .swiper-container', {\r\n\tslidesPerView: 1,\r\n\r\n\tloop: true,\r\n\tnavigation: {\r\n\t\tnextEl: \".swiper-button-next\",\r\n\t\tprevEl: \".swiper-button-prev\",\r\n\t},\r\n});\r\n\r\nvar swiper3 = new Swiper(\".swiper-btn__nav .mySwiper\", {\r\n\tspaceBetween: 10,\r\n\tslidesPerView: 4,\r\n\twatchSlidesVisibility: true,\r\n\twatchSlidesProgress: true,\r\n\tnavigation: {\r\n\t\tnextEl: \".swiper-button-next\",\r\n\t\tprevEl: \".swiper-button-prev\",\r\n\t},\r\n});\r\n\r\n\r\nvar swiperSlogan = new Swiper(\".sloganSwiper\", {\r\n\tspaceBetween: 10,\r\n\tslidesPerView: 1,\r\n\tspeed: 1000,\r\n\tautoplay: {\r\n\t\tdelay: 3000,\r\n\t\tdisableOnInteraction: false,\r\n\t},\r\n});\r\n\r\nfunction swiperDetailProducts() {\r\n\tvar swiper4 = new Swiper(\".details-infor__wrapper .mySwiper2\", {\r\n\t\tzoom: true,\r\n\t\tspaceBetween: 10,\r\n\r\n\t\tthumbs: {\r\n\t\t\tswiper: swiper3,\r\n\t\t},\r\n\t});\r\n}\r\n\r\nfunction bannerHeight() {\r\n\tvar hBanner = document.querySelector('main');\r\n\tif (hBanner) {\r\n\t\tvar hHeader = document.querySelector('.header_wapper');\r\n\t\thBanner.style.marginTop = hHeader.clientHeight + \"px\";\r\n\t}\r\n}\r\n\r\nfunction swiperWholesaleService() {\r\n\t// var nextBtn = document.querySelector('.wholesale .wholesale-service-left .swiper-button-next');\r\n\t// var prevBtn = document.querySelector('.wholesale .wholesale-service-left .swiper-button-prev');\r\n\t// if (nextBtn && prevBtn){\r\n\t// \tvar blockSwiper = document.querySelector('.wholesale .wholesale-service-left .images');\r\n\t// \tvar titleSwiper = document.querySelector('.wholesale .wholesale-service-left .title');\r\n\t// \tif (blockSwiper && titleSwiper){\r\n\t// \t\tvar heightSwiper = blockSwiper.clientHeight;\r\n\t// \t\tvar heightTitle = titleSwiper.clientHeight;\r\n\t// \t\tvar height = (heightSwiper / 2) + heightTitle;\r\n\t// \t\tnextBtn.style.top = height + \"px\";\r\n\t// \t\tprevBtn.style.top = height + \"px\";\r\n\t// \t}\r\n\t// }\r\n\r\n\tnew Swiper('.wholesale .wholesale-service-left .swiper-container', {\r\n\t\tspaceBetween: 10,\r\n\t\tnavigation: {\r\n\t\t\tnextEl: \".swiper-button-next\",\r\n\t\t\tprevEl: \".swiper-button-prev\",\r\n\t\t},\r\n\r\n\t\tpagination: {\r\n\t\t\tel: \".wholesale .wholesale-service-left .swiper-pagination\",\r\n\t\t\tclickable: true,\r\n\t\t},\r\n\t})\r\n}\r\n\r\n// Thêm mũi tên sau mỗi button có query .btn .btn-arrow\r\nfunction fBtnArrow() {\r\n\tvar btnArrows = document.querySelectorAll('.btn .btn-arrow');\r\n\tbtnArrows.forEach(function (btn) {\r\n\t\tbtn.innerHTML += ' ' + ``;\r\n\t});\r\n}\r\n\r\n// active icon feature\r\nfunction activeIconFeatures() {\r\n\tif (document.querySelector('.featured')) {\r\n\t\tvar icons = document.querySelectorAll('.featured .icons .icons-item');\r\n\t\ticons.forEach(function (icon) {\r\n\t\t\ticon.addEventListener('click', function () {\r\n\t\t\t\t// console.log([icon])\r\n\t\t\t\tvar widthSpan = 220;\r\n\t\t\t\tvar iconHTML = icon;\r\n\t\t\t\tvar iconParent = iconHTML.offsetParent;\r\n\t\t\t\t// console.log(iconHTML.offsetLeft + 220);\r\n\t\t\t\t// console.log(iconParent.clientWidth);\r\n\r\n\t\t\t\tif (iconHTML.offsetLeft + 220 >= iconParent.clientWidth) {\r\n\t\t\t\t\tif (icon.classList.contains('active-right') || icon.classList.contains('active')) {\r\n\t\t\t\t\t\ticon.classList.remove('active');\r\n\t\t\t\t\t\ticon.classList.remove('active-right');\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ticons.forEach(function (e) {\r\n\t\t\t\t\t\t\te.classList.remove('active');\r\n\t\t\t\t\t\t\te.classList.remove('active-right');\r\n\t\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\ticon.classList.add('active-right');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (icon.classList.contains('active')) {\r\n\t\t\t\t\t\ticon.classList.remove('active');\r\n\t\t\t\t\t\ticon.classList.remove('active-right');\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ticons.forEach(function (e) {\r\n\t\t\t\t\t\t\te.classList.remove('active');\r\n\t\t\t\t\t\t\te.classList.remove('active-right');\r\n\t\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\ticon.classList.add('active');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n}\r\n\r\nfunction activeCartShop(evt: any) {\r\n\tvar cartShop = document.querySelector('.header-top-section-right .shop-cart');\r\n\tif (cartShop) {\r\n\t\tvar evtTarget = evt.target;\r\n\t\t// Kiem tra co click vao cartshop ko? Neu co thi ko lam gi` ca\r\n\t\tdo {\r\n\t\t\tif (evtTarget == cartShop) {\r\n\t\t\t\tvar cartShopIcon = document.querySelector('.header-top-section-right .shop-cart__icon');\r\n\t\t\t\tif (!cartShopIcon) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tevtTarget = evtTarget.parentNode;\r\n\t\t} while (evtTarget);\r\n\r\n\t\t// Neu ko thi se remove class active\r\n\t\tvar cartShopIcon = document.querySelector('.header-top-section-right .shop-cart__icon');\r\n\t\tcartShopIcon.classList.remove('active');\r\n\t}\r\n}\r\n\r\nfunction activeHamberger(evt: any) {\r\n\tvar hamberger = document.querySelector('.header-top-section-right__ham');\r\n\tif (hamberger) {\r\n\t\tvar evtTarget = evt.target;\r\n\t\t// Kiem tra co click vao hamberger ko? Neu co thi ko lam gi` ca\r\n\t\tdo {\r\n\t\t\tif (evtTarget == hamberger) {\r\n\t\t\t\tvar hambergerImg = document.querySelector('.header-top-section-right__ham .hamberger__img');\r\n\t\t\t\tif (!hambergerImg) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tevtTarget = evtTarget.parentNode;\r\n\t\t} while (evtTarget);\r\n\r\n\t\t// Neu ko thi se remove class active\r\n\t\tvar hambergerImg = document.querySelector('.header-top-section-right__ham .hamberger__img');\r\n\t\thambergerImg.classList.remove('active');\r\n\t}\r\n}\r\n\r\nfunction activeUser(evt: any) {\r\n\tvar userBtn = document.querySelector('.header-top-section-right .user');\r\n\tvar loginPopup = document.querySelector('.form-dealer__popup');\r\n\tif (!loginPopup) {\r\n\t\treturn;\r\n\t}\r\n\tvar userForm = loginPopup.querySelector('.form-alert__popup--wrapper');\r\n\tvar closeForm = loginPopup.querySelector('.btn-close');\r\n\r\n\tif (userBtn) {\r\n\t\tvar evtTarget = evt.target;\r\n\t\tdo {\r\n\t\t\tif (evtTarget == closeForm) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif (evtTarget == userBtn || evtTarget == userForm) {\r\n\t\t\t\tif (!loginPopup) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tevtTarget = evtTarget.parentNode;\r\n\t\t} while (evtTarget);\r\n\r\n\t\tuserBtn.classList.remove('active');\r\n\t\tloginPopup.classList.remove('active');\r\n\t}\r\n\r\n\r\n\t// old\r\n\t// var userBtn = document.querySelector('.header-top-section-right .user');\r\n\t// if (userBtn) {\r\n\t// \tvar evtTarget = evt.target;\r\n\t// \tdo {\r\n\t// \t\tif (evtTarget == userBtn) {\r\n\t// \t\t\tvar userBtnImg = document.querySelector('.header-top-section-right .user__img');\r\n\t// \t\t\tif (!userBtnImg) {\r\n\t// \t\t\t\treturn;\r\n\t// \t\t\t}\r\n\t// \t\t\treturn;\r\n\t// \t\t}\r\n\t// \t\tevtTarget = evtTarget.parentNode;\r\n\t// \t} while (evtTarget);\r\n\r\n\t// \tvar userBtnImg = document.querySelector('.header-top-section-right .user__img');\r\n\t// \tuserBtnImg.classList.remove('active');\r\n\t// }\r\n}\r\n\r\nfunction activeFind(evt: any) {\r\n\tvar findBtn = document.querySelector('.header-top-section-right .find');\r\n\tif (findBtn) {\r\n\t\tvar evtTarget = evt.target;\r\n\t\tdo {\r\n\t\t\tif (evtTarget == findBtn) {\r\n\t\t\t\tvar findBtnImg = document.querySelector('.header-top-section-right .find__img');\r\n\t\t\t\tif (!findBtnImg) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tevtTarget = evtTarget.parentNode;\r\n\t\t} while (evtTarget);\r\n\r\n\t\tvar findBtnImg = document.querySelector('.header-top-section-right .find__img');\r\n\t\tfindBtnImg.classList.remove('active');\r\n\t}\r\n}\r\n\r\nfunction toggleHeader() {\r\n\t// toggle CartShop\r\n\tvar cartShop = document.querySelector('.header-top-section-right .shop-cart__icon');\r\n\tcartShop.addEventListener('click', function () {\r\n\t\tcartShop.classList.toggle('active');\r\n\t})\r\n\r\n\t// close Cart Shop\r\n\tvar closeShopCart = document.querySelector('.header-top-section-right .shop-cart-box--close');\r\n\tif (closeShopCart) {\r\n\t\tcloseShopCart.addEventListener('click', function () {\r\n\t\t\tvar cartShop = document.querySelector('.header-top-section-right .shop-cart__icon');\r\n\t\t\tif (cartShop) {\r\n\t\t\t\tcartShop.classList.remove('active');\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t// toggle Hamberger\r\n\tvar hamberger = document.querySelector('.header-top-section-right__ham .hamberger__img');\r\n\tif (hamberger) {\r\n\t\thamberger.addEventListener('click', function () {\r\n\t\t\thamberger.classList.toggle('active');\r\n\t\t});\r\n\t}\r\n\r\n\t// toggle User\r\n\tvar userBtn = document.querySelector('.header_wapper .user__img');\r\n\tif (userBtn) {\r\n\t\tuserBtn.addEventListener('click', function (evt) {\r\n\t\t\tuserBtn.classList.toggle('active');\r\n\r\n\t\t\tvar formLogin = document.querySelector('.form-dealer__popup');\r\n\t\t\tif (formLogin) {\r\n\t\t\t\tformLogin.classList.add('active');\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t// toggle search\r\n\tvar findBtn = document.querySelector('.header_wapper .find__img');\r\n\tif (findBtn) {\r\n\t\tfindBtn.addEventListener('click', function (evt) {\r\n\t\t\tfindBtn.classList.toggle('active');\r\n\t\t})\r\n\t}\r\n}\r\n\r\nfunction headerUserHandle() {\r\n\tif (document.querySelector('.header_wapper')) {\r\n\t\tdocument.addEventListener('click', function (evt) {\r\n\t\t\tactiveUser(evt);\r\n\t\t\tactiveHamberger(evt);\r\n\t\t\tactiveCartShop(evt);\r\n\t\t\tactiveFind(evt);\r\n\t\t})\r\n\t\ttoggleHeader();\r\n\r\n\t\tvar boxes = document.querySelectorAll('.hamberger-box__item');\r\n\t\tif (boxes) {\r\n\t\t\tboxes.forEach(function (box) {\r\n\t\t\t\tbox.addEventListener('click', function () {\r\n\t\t\t\t\tif (box.classList.contains('active')) {\r\n\t\t\t\t\t\tbox.classList.remove('active');\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tboxes.forEach(function (box) {\r\n\t\t\t\t\t\t\tbox.classList.remove('active');\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\tbox.classList.add('active');\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t// close hamberger\r\n\t\tvar outMenuBar = document.querySelector('.hamberger');\r\n\t\tif (outMenuBar) {\r\n\t\t\toutMenuBar.addEventListener('click', function () {\r\n\t\t\t\tdocument.querySelector('.header-top-section-right__ham').classList.remove('active');\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t// // number cart\r\n\t\tvar numberCart = document.querySelector('.header-top-section-right .shop-cart__icon');\r\n\t\tif (numberCart) {\r\n\t\t\tvar value = numberCart.getAttribute('data-number');\r\n\r\n\t\t\tif (typeof (parseInt(value)) === typeof (1)) {\r\n\t\t\t\tif (parseInt(value) <= 0) {\r\n\t\t\t\t\tif (!numberCart.classList.contains('after--hidden')) {\r\n\t\t\t\t\t\tnumberCart.classList.add('after--hidden');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (!numberCart.classList.contains('after--hidden')) {\r\n\t\t\t\t\tnumberCart.classList.add('after--hidden');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// handle click link\r\n\t\tvar loginFormUser = document.getElementById('header-user');\r\n\t\tvar loginFormDealer = document.getElementById('header-dealer');\r\n\t\tvar registerFormUser = document.querySelector('.form-content__register--user');\r\n\t\tvar registerFormDealer = document.querySelector('.form-content__register--dealer');\r\n\t\tvar loginFormNav = document.querySelectorAll('.form-content__register--nav');\r\n\t\tvar forgotFormNav = document.querySelectorAll('.form-content__forgot--nav');\r\n\t\tvar shopNowButton = document.querySelectorAll('.shop-now__button');\r\n\t\tvar shopCartButton = document.querySelector('.shop-cart-box__button');\r\n\r\n\t\t// login\r\n\t\tif (loginFormUser) {\r\n\t\t\tloginFormUser.addEventListener('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tremoveActiveForm();\r\n\t\t\t\taddActiveForm('form-login__wrapper');\r\n\t\t\t})\r\n\t\t}\r\n\t\tif (loginFormDealer) {\r\n\t\t\tloginFormDealer.addEventListener('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tremoveActiveForm();\r\n\t\t\t\taddActiveForm('form-login__wrapper');\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t// register\r\n\t\tif (registerFormUser) {\r\n\t\t\tregisterFormUser.addEventListener('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tremoveActiveForm();\r\n\t\t\t\taddActiveForm('form-user__wrapper');\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tif (registerFormDealer) {\r\n\t\t\tregisterFormDealer.addEventListener('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tremoveActiveForm();\r\n\t\t\t\taddActiveForm('form-dealer__wrapper');\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t// nav login\r\n\t\tloginFormNav.forEach(function (nav) {\r\n\t\t\t// console.log(loginFormNav);\r\n\t\t\tnav.addEventListener('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tremoveActiveForm();\r\n\t\t\t\taddActiveForm('form-login__wrapper');\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// forgot password\r\n\t\tforgotFormNav.forEach(function (forget) {\r\n\t\t\tforget.addEventListener('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tremoveActiveForm();\r\n\t\t\t\taddActiveForm('form-forgot__wrapper');\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// shop cart\r\n\t\tif (shopCartButton) {\r\n\t\t\tshopCartButton.addEventListener('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tremoveActiveForm();\r\n\t\t\t\taddActiveForm('form-custom__wrapper');\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tshopNowButton.forEach(function (sbtn) {\r\n\t\t\tsbtn.addEventListener('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tremoveActiveForm();\r\n\t\t\t\taddActiveForm('form-custom__wrapper');\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// Clicked close form\r\n\t\tvar closePopups = document.querySelectorAll('.loginform__close');\r\n\t\tif (closePopups) {\r\n\t\t\tclosePopups.forEach(function (pop) {\r\n\t\t\t\tpop.addEventListener('click', function (e) {\r\n\t\t\t\t\tremoveActiveForm();\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// function submitSearch() {\r\n// \tvar smSearch = document.getElementById('formSearch');\r\n// \tif(smSearch){\r\n// \t\tsmSearch.addEventListener('submit', function (e) {\r\n// \t\t\te.preventDefault();\r\n// \t\t})\r\n// \t}\r\n// }\r\n\r\nfunction addActiveForm(queryStringId: any) {\r\n\tvar active = document.getElementById(queryStringId);\r\n\tif (active) {\r\n\t\tif (!active.classList.contains('active')) {\r\n\t\t\tactive.classList.add('active');\r\n\t\t}\r\n\t}\r\n\r\n\tvar body = document.querySelector('body');\r\n\tif (body) {\r\n\t\tbody.style.height = \"100vh\";\r\n\t\tbody.style.overflow = \"hidden\";\r\n\t}\r\n\r\n\tif (queryStringId === \"form-custom__wrapper\") {\r\n\t\tcartHandle();\r\n\t}\r\n}\r\n\r\nfunction parentAttribute(e: any, strData: any) {\r\n\tvar parent = e;\r\n\tvar dataProduct = \"\";\r\n\tif (parent) {\r\n\t\tvar count = 1;\r\n\t\tif (parent.nodeName) {\r\n\t\t\twhile (!(parent.nodeName && parent.nodeName === \"LI\") && count < 100 && parent) {\r\n\t\t\t\tparent = parent.parentElement;\r\n\t\t\t}\r\n\t\t\tif (parent) {\r\n\t\t\t\tif (parent.nodeName === \"LI\") {\r\n\t\t\t\t\tdataProduct = parent.getAttribute(strData);\r\n\t\t\t\t\treturn dataProduct;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (count >= 100) {\r\n\t\t\t\treturn \"\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction getTitleProduct(e: any) {\r\n\tvar parent = e;\r\n\tif (parent) {\r\n\t\tvar count = 1;\r\n\t\twhile (!(parent.nodeName === \"LI\") && count < 100 && parent) {\r\n\t\t\tparent = parent.parentElement;\r\n\t\t}\r\n\t\tif (parent) {\r\n\t\t\tif (parent.nodeName === \"LI\") {\r\n\t\t\t\tvar title;\r\n\t\t\t\tparent.childNodes.forEach(function (child) {\r\n\t\t\t\t\tvar childItems = child;\r\n\t\t\t\t\tif (childItems.children && childItems.children.item(1)) {\r\n\t\t\t\t\t\tvar titleItem = childItems.children.item(1);\r\n\t\t\t\t\t\tif (titleItem.children) {\r\n\t\t\t\t\t\t\ttitle = titleItem.children.item(0).innerHTML;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\treturn title;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (count >= 100) {\r\n\t\t\treturn \"\";\r\n\t\t}\r\n\t}\r\n\treturn \"\";\r\n}\r\n\r\n\r\nfunction loadCartHeader() {\r\n\t// Get api\r\n\tvar shopBox = document.querySelector('.header_wapper .header-top-section-right .shop-cart');\r\n\tif (shopBox) {\r\n\t\tvar xhttp = new XMLHttpRequest();\r\n\t\txhttp.onreadystatechange = function () {\r\n\t\t\tif (this.readyState == 4) {\r\n\t\t\t\tshopBox.innerHTML = this.responseText;\r\n\r\n\t\t\t\t//load js\r\n\t\t\t\theaderUserHandle();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// console.log('failed to LoadCartHeader!');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t};\r\n\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\txhttp.open(\"GET\", '/load-cart-header', true);\r\n\t\txhttp.send();\r\n\t}\r\n}\r\n\r\nfunction loadCartForm() {\r\n\t// Get api\r\n\tvar cartForm = document.querySelector('#form-custom__wrapper .form-flex .form-flex--right');\r\n\tif (cartForm) {\r\n\t\tvar xhttp = new XMLHttpRequest();\r\n\t\txhttp.onreadystatechange = function () {\r\n\t\t\tif (this.readyState == 4) {\r\n\t\t\t\tcartForm.innerHTML = this.responseText;\r\n\r\n\t\t\t\t//load js\r\n\t\t\t\tcartHandle();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// console.log('failed to LoadCartForm!');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t};\r\n\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\txhttp.open(\"GET\", '/load-cart-form', true);\r\n\t\txhttp.send();\r\n\t}\r\n}\r\n\r\n// reload lại form trong cart shop\r\nfunction reloadForm() {\r\n\tloadCartHeader();\r\n\tloadCartForm();\r\n}\r\n\r\n\r\nfunction deleteCartHandle() {\r\n\tvar delProducts = document.querySelectorAll('.product__item--close .product__item--span');\r\n\tif (delProducts) {\r\n\t\tdelProducts.forEach(function (del) {\r\n\t\t\tvar delClick = del;\r\n\t\t\tdelClick.onclick = function () {\r\n\t\t\t\tvar title = getTitleProduct(this); // dùng khi muốn điền thêm title vào phần cofirm delete\r\n\t\t\t\tvar confirmDel = confirm(`Are you sure you want to delete?`);\r\n\t\t\t\tif (confirmDel) {\r\n\t\t\t\t\tvar id = parentAttribute(this, \"data-product\");\r\n\t\t\t\t\tvar idProperty = parentAttribute(this, \"data-property\");\r\n\t\t\t\t\tvar idOrder = document.getElementById('cartForm');\r\n\t\t\t\t\tvar data = {};\r\n\r\n\t\t\t\t\tif (idOrder && id && idOrder.getAttribute('data-order')) {\r\n\t\t\t\t\t\tvar dataOrder = idOrder.getAttribute('data-order');\r\n\t\t\t\t\t\tdata = {\r\n\t\t\t\t\t\t\tIdProduct: parseInt(id),\r\n\t\t\t\t\t\t\tIdOrder: parseInt(dataOrder),\r\n\t\t\t\t\t\t\tIdProperty: parseInt(idProperty),\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// var id = del.getAttribute('data-product');\r\n\r\n\t\t\t\t\t// Get api\r\n\t\t\t\t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\t\t\txhttp.onreadystatechange = function () {\r\n\t\t\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\t\t\treloadForm();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t// console.log('failed to delete product in the cart!');\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t\t\txhttp.open(\"POST\", '/post-cart-delete', true);\r\n\t\t\t\t\txhttp.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n\t\t\t\t\txhttp.send(JSON.stringify(data));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// del.addEventListener('click', function(e){\r\n\t\t\t// \tvar title = getTitleProduct(this); // dùng khi muốn điền thêm title vào phần cofirm delete\r\n\t\t\t// \tvar confirmDel = confirm(`Are you sure you want to delete?`);\r\n\t\t\t// \tif (confirmDel){\r\n\t\t\t// \t\tvar id = parentAttribute(this, \"data-product\");\r\n\t\t\t// \t\tvar idProperty = parentAttribute(this, \"data-property\");\r\n\t\t\t// \t\tvar idOrder = document.getElementById('cartForm');\r\n\t\t\t// \t\tvar data = {};\r\n\r\n\t\t\t// \t\tif (idOrder && id && idOrder.getAttribute('data-order')){\r\n\t\t\t// \t\t\tvar dataOrder = idOrder.getAttribute('data-order');\r\n\t\t\t// \t\t\tdata = {\r\n\t\t\t// \t\t\t\tIdProduct: parseInt(id),\r\n\t\t\t// \t\t\t\tIdOrder: parseInt(dataOrder),\r\n\t\t\t// \t\t\t\tIdProperty: parseInt(idProperty),\r\n\t\t\t// \t\t\t};\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\t// var id = del.getAttribute('data-product');\r\n\r\n\t\t\t// \t\t// Get api\r\n\t\t\t// \t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\t// \t\txhttp.onreadystatechange = function () {\r\n\t\t\t// \t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t// \t\t\t\treloadForm();\r\n\t\t\t// \t\t\t}\r\n\t\t\t// \t\t\telse {\r\n\t\t\t// \t\t\t\tconsole.log('failed to delete product in the cart!');\r\n\t\t\t// \t\t\t\treturn;\r\n\t\t\t// \t\t\t}\r\n\t\t\t// \t\t};\r\n\t\t\t// \t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t// \t\txhttp.open(\"POST\", '/post-cart-delete', true);\r\n\t\t\t// \t\txhttp.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n\t\t\t// \t\txhttp.send(JSON.stringify(data));\r\n\t\t\t// \t}\r\n\t\t\t// })\r\n\t\t})\r\n\t}\r\n}\r\n\r\n\r\nfunction numberCartHandle() {\r\n\tvar plusProducts = document.querySelectorAll('.product__item--quanlity .product__item--plus');\r\n\tvar minusProducts = document.querySelectorAll('.product__item--quanlity .product__item--minus');\r\n\r\n\tif (plusProducts) {\r\n\t\tplusProducts.forEach(function (plus) {\r\n\r\n\t\t\tvar prevElement = plus.previousElementSibling;\r\n\t\t\tvar minusElement = prevElement.previousElementSibling;\r\n\t\t\tif (!(prevElement && prevElement.classList.contains('product__item--calc'))) {\r\n\t\t\t\tprevElement = plus.nextElementSibling;\r\n\t\t\t\tminusElement = prevElement.nextElementSibling;\r\n\t\t\t}\r\n\t\t\tif (prevElement && prevElement.classList.contains('product__item--calc')) {\r\n\t\t\t\tvar numberCurrent = parseInt(prevElement.innerHTML);\r\n\r\n\t\t\t\tvar item = plus;\r\n\t\t\t\tif (numberCurrent >= 100) {\r\n\t\t\t\t\titem.style.pointerEvents = \"none\";\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\titem.style.pointerEvents = \"auto\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar temp = 0;\r\n\r\n\t\t\tvar timerId = setTimeout(function () {\r\n\r\n\t\t\t}, 0);\r\n\r\n\t\t\tvar thisPlus = plus;\r\n\r\n\t\t\tfunction calcPlusAPI() {\r\n\r\n\t\t\t\tvar id = parentAttribute(thisPlus, \"data-product\");\r\n\t\t\t\tvar idOrder = document.getElementById('cartForm');\r\n\t\t\t\tvar data = {};\r\n\r\n\t\t\t\tif (idOrder && id && idOrder.getAttribute('data-order')) {\r\n\t\t\t\t\tvar dataOrder = idOrder.getAttribute('data-order');\r\n\t\t\t\t\tdata = {\r\n\t\t\t\t\t\tIdProduct: parseInt(id),\r\n\t\t\t\t\t\tIdOrder: parseInt(dataOrder),\r\n\t\t\t\t\t\tsumPlus: temp\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// console.log(data)\r\n\t\t\t\ttemp = 0;\r\n\r\n\t\t\t\t// Get api\r\n\t\t\t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\t\txhttp.onreadystatechange = function () {\r\n\t\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\t\treloadForm();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// console.log('failed to plus product in the cart!');\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t\txhttp.open(\"POST\", `/post-cart-plus`, true);\r\n\t\t\t\txhttp.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n\t\t\t\txhttp.send(JSON.stringify(data));\r\n\r\n\r\n\t\t\t}\r\n\r\n\t\t\tfunction debounceFunction(func: any, delay: any) {\r\n\t\t\t\tclearTimeout(timerId);\r\n\t\t\t\ttimerId = setTimeout(func, delay);\r\n\t\t\t}\r\n\r\n\t\t\tvar plusClick = plus;\r\n\t\t\tplusClick.onclick = function () {\r\n\t\t\t\tif (prevElement && prevElement.classList.contains('product__item--calc')) {\r\n\t\t\t\t\tvar numberCurrent = parseInt(prevElement.innerHTML);\r\n\r\n\t\t\t\t\tvar numberPast = numberCurrent + 1;\r\n\t\t\t\t\tprevElement.innerHTML = numberPast + \"\";\r\n\r\n\t\t\t\t\tvar item = this;\r\n\t\t\t\t\tif (numberPast >= 100) {\r\n\t\t\t\t\t\titem.style.pointerEvents = \"none\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\titem.style.pointerEvents = \"auto\";\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tvar minus = minusElement;\r\n\t\t\t\t\tif (numberPast <= 1) {\r\n\t\t\t\t\t\tminus.style.pointerEvents = \"none\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tminus.style.pointerEvents = \"auto\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\ttemp++;\r\n\t\t\t\t\t// thisPlus = this;\r\n\t\t\t\t\tdebounceFunction(calcPlusAPI, 200);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// plus.addEventListener('click', function(){\r\n\t\t\t// \tif (prevElement && prevElement.classList.contains('product__item--calc')){\r\n\t\t\t// \t\tvar numberCurrent = parseInt(prevElement.innerHTML);\r\n\r\n\t\t\t// \t\tvar numberPast = numberCurrent + 1;\r\n\t\t\t// \t\tprevElement.innerHTML = numberPast + \"\";\r\n\r\n\t\t\t// \t\tvar item = this;\r\n\t\t\t// \t\tif (numberPast >= 100){\r\n\t\t\t// \t\t\titem.style.pointerEvents = \"none\";\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\telse{\r\n\t\t\t// \t\t\titem.style.pointerEvents = \"auto\";\r\n\t\t\t// \t\t}\r\n\r\n\r\n\t\t\t// \t\tvar minus = minusElement;\r\n\t\t\t// \t\tif (numberPast <= 1){\r\n\t\t\t// \t\t\tminus.style.pointerEvents = \"none\";\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\telse{\r\n\t\t\t// \t\t\tminus.style.pointerEvents = \"auto\";\r\n\t\t\t// \t\t}\r\n\r\n\t\t\t// \t\ttemp++;\r\n\t\t\t// \t\t// thisPlus = this;\r\n\t\t\t// \t\tdebounceFunction(calcPlusAPI, 200);\r\n\r\n\t\t\t// \t\t// var id = parentAttribute(this, \"data-product\");\r\n\t\t\t// \t\t// var idOrder = document.getElementById('cartForm');\r\n\t\t\t// \t\t// var data = {};\r\n\r\n\t\t\t// \t\t// if (idOrder && id && idOrder.getAttribute('data-order')){\r\n\t\t\t// \t\t// \tvar dataOrder = idOrder.getAttribute('data-order');\r\n\t\t\t// \t\t// \tdata = {\r\n\t\t\t// \t\t// \t\tIdProduct: parseInt(id),\r\n\t\t\t// \t\t// \t\tIdOrder: parseInt(dataOrder)\r\n\t\t\t// \t\t// \t};\r\n\t\t\t// \t\t// }\r\n\r\n\t\t\t// \t\t// // Get api\r\n\t\t\t// \t\t// var xhttp = new XMLHttpRequest();\r\n\t\t\t// \t\t// xhttp.onreadystatechange = function () {\r\n\t\t\t// \t\t// \tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t// \t\t// \t\treloadForm();\r\n\t\t\t// \t\t// \t}\r\n\t\t\t// \t\t// \telse {\r\n\t\t\t// \t\t// \t\tconsole.log('failed to plus product in the cart!');\r\n\t\t\t// \t\t// \t\treturn;\r\n\t\t\t// \t\t// \t}\r\n\t\t\t// \t\t// };\r\n\t\t\t// \t\t// // xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t// \t\t// xhttp.open(\"POST\", `/post-cart-plus`, true);\r\n\t\t\t// \t\t// xhttp.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n\t\t\t// \t\t// xhttp.send(JSON.stringify(data));\r\n\t\t\t// \t}\r\n\t\t\t// })\r\n\t\t})\r\n\t}\r\n\tif (minusProducts) {\r\n\t\tminusProducts.forEach(function (minus) {\r\n\t\t\tvar prevElement = minus.nextElementSibling;\r\n\t\t\tvar plusElement = prevElement.nextElementSibling;\r\n\t\t\tif (!(prevElement && prevElement.classList.contains('product__item--calc'))) {\r\n\t\t\t\tprevElement = minus.previousElementSibling;\r\n\t\t\t\tplusElement = prevElement.previousElementSibling;\r\n\t\t\t}\r\n\t\t\tif (prevElement && prevElement.classList.contains('product__item--calc')) {\r\n\t\t\t\tvar numberCurrent = parseInt(prevElement.innerHTML);\r\n\r\n\t\t\t\tvar item = minus;\r\n\t\t\t\tif (numberCurrent <= 1) {\r\n\t\t\t\t\titem.style.pointerEvents = \"none\";\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\titem.style.pointerEvents = \"auto\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar temp = 0;\r\n\r\n\t\t\tvar timerId = setTimeout(function () {\r\n\r\n\t\t\t}, 0);\r\n\r\n\t\t\tvar thisMinus = minus;\r\n\r\n\t\t\tfunction calcMinusAPI() {\r\n\t\t\t\tvar id = parentAttribute(thisMinus, \"data-product\");\r\n\t\t\t\tvar idOrder = document.getElementById('cartForm');\r\n\t\t\t\tvar data = {};\r\n\r\n\t\t\t\tif (idOrder && id && idOrder.getAttribute('data-order')) {\r\n\t\t\t\t\tvar dataOrder = idOrder.getAttribute('data-order');\r\n\t\t\t\t\tdata = {\r\n\t\t\t\t\t\tIdProduct: parseInt(id),\r\n\t\t\t\t\t\tIdOrder: parseInt(dataOrder),\r\n\t\t\t\t\t\tsumMinus: temp\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// console.log(data);\r\n\t\t\t\ttemp = 0;\r\n\r\n\t\t\t\t// Get api\r\n\t\t\t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\t\txhttp.onreadystatechange = function () {\r\n\t\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\t\treloadForm();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// console.log('failed to minus product in the cart!');\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t\txhttp.open(\"POST\", `/post-cart-minus`, true);\r\n\t\t\t\txhttp.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n\t\t\t\txhttp.send(JSON.stringify(data));\r\n\t\t\t}\r\n\r\n\t\t\tfunction debounceFunction(func: any, delay: any) {\r\n\t\t\t\tclearTimeout(timerId);\r\n\t\t\t\ttimerId = setTimeout(func, delay);\r\n\t\t\t}\r\n\t\t\tvar minusClick = minus;\r\n\t\t\tminusClick.onclick = function () {\r\n\t\t\t\tif (prevElement && prevElement.classList.contains('product__item--calc')) {\r\n\t\t\t\t\tvar numberCurrent = parseInt(prevElement.innerHTML);\r\n\t\t\t\t\tvar numberPast = numberCurrent - 1;\r\n\t\t\t\t\tprevElement.innerHTML = numberPast + \"\";\r\n\r\n\t\t\t\t\tvar item = this;\r\n\t\t\t\t\tif (numberPast <= 1) {\r\n\t\t\t\t\t\titem.style.pointerEvents = \"none\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\titem.style.pointerEvents = \"auto\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar item2 = plusElement;\r\n\t\t\t\t\tif (numberPast >= 100) {\r\n\t\t\t\t\t\titem2.style.pointerEvents = \"none\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\titem2.style.pointerEvents = \"auto\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// thisMinus = this;\r\n\t\t\t\t\tdebounceFunction(calcMinusAPI, 200);\r\n\r\n\t\t\t\t\t// var id = parentAttribute(this, \"data-product\");\r\n\t\t\t\t\t// var idOrder = document.getElementById('cartForm');\r\n\t\t\t\t\t// var data = {};\r\n\r\n\t\t\t\t\t// if (idOrder && id && idOrder.getAttribute('data-order')){\r\n\t\t\t\t\t// \tvar dataOrder = idOrder.getAttribute('data-order');\r\n\t\t\t\t\t// \tdata = {\r\n\t\t\t\t\t// \t\tIdProduct: parseInt(id),\r\n\t\t\t\t\t// \t\tIdOrder: parseInt(dataOrder),\r\n\t\t\t\t\t// \t};\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t// // Get api\r\n\t\t\t\t\t// var xhttp = new XMLHttpRequest();\r\n\t\t\t\t\t// xhttp.onreadystatechange = function () {\r\n\t\t\t\t\t// \tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\t// \t\treloadForm();\r\n\t\t\t\t\t// \t}\r\n\t\t\t\t\t// \telse {\r\n\t\t\t\t\t// \t\tconsole.log('failed to minus product in the cart!');\r\n\t\t\t\t\t// \t\treturn;\r\n\t\t\t\t\t// \t}\r\n\t\t\t\t\t// };\r\n\t\t\t\t\t// // xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t\t\t// xhttp.open(\"POST\", `/post-cart-minus`, true);\r\n\t\t\t\t\t// xhttp.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n\t\t\t\t\t// xhttp.send(JSON.stringify(data));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// minus.addEventListener('click', function(){\r\n\t\t\t// \tif (prevElement && prevElement.classList.contains('product__item--calc')){\r\n\t\t\t// \t\tvar numberCurrent = parseInt(prevElement.innerHTML);\r\n\t\t\t// \t\tvar numberPast = numberCurrent - 1;\r\n\t\t\t// \t\tprevElement.innerHTML = numberPast + \"\";\r\n\r\n\t\t\t// \t\tvar item = this;\r\n\t\t\t// \t\tif (numberPast <= 1){\r\n\t\t\t// \t\t\titem.style.pointerEvents = \"none\";\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\telse{\r\n\t\t\t// \t\t\titem.style.pointerEvents = \"auto\";\r\n\t\t\t// \t\t}\r\n\r\n\t\t\t// \t\tvar item2 = plusElement;\r\n\t\t\t// \t\tif (numberPast >= 100){\r\n\t\t\t// \t\t\titem2.style.pointerEvents = \"none\";\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\telse{\r\n\t\t\t// \t\t\titem2.style.pointerEvents = \"auto\";\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\t// thisMinus = this;\r\n\t\t\t// \t\tdebounceFunction(calcMinusAPI, 200);\r\n\r\n\t\t\t// \t\t// var id = parentAttribute(this, \"data-product\");\r\n\t\t\t// \t\t// var idOrder = document.getElementById('cartForm');\r\n\t\t\t// \t\t// var data = {};\r\n\r\n\t\t\t// \t\t// if (idOrder && id && idOrder.getAttribute('data-order')){\r\n\t\t\t// \t\t// \tvar dataOrder = idOrder.getAttribute('data-order');\r\n\t\t\t// \t\t// \tdata = {\r\n\t\t\t// \t\t// \t\tIdProduct: parseInt(id),\r\n\t\t\t// \t\t// \t\tIdOrder: parseInt(dataOrder),\r\n\t\t\t// \t\t// \t};\r\n\t\t\t// \t\t// }\r\n\t\t\t// \t\t// // Get api\r\n\t\t\t// \t\t// var xhttp = new XMLHttpRequest();\r\n\t\t\t// \t\t// xhttp.onreadystatechange = function () {\r\n\t\t\t// \t\t// \tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t// \t\t// \t\treloadForm();\r\n\t\t\t// \t\t// \t}\r\n\t\t\t// \t\t// \telse {\r\n\t\t\t// \t\t// \t\tconsole.log('failed to minus product in the cart!');\r\n\t\t\t// \t\t// \t\treturn;\r\n\t\t\t// \t\t// \t}\r\n\t\t\t// \t\t// };\r\n\t\t\t// \t\t// // xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t// \t\t// xhttp.open(\"POST\", `/post-cart-minus`, true);\r\n\t\t\t// \t\t// xhttp.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n\t\t\t// \t\t// xhttp.send(JSON.stringify(data));\r\n\t\t\t// \t}\r\n\t\t\t// })\r\n\t\t})\r\n\t}\r\n}\r\n\r\nfunction deleteAllCartHandle() {\r\n\tvar btnDelAll = document.querySelector('.form-cart-table__footer .footer-submit input[type=\"button\"]');\r\n\tbtnDelAll.onclick = function (e) {\r\n\t\te.preventDefault();\r\n\t\t// Get api\r\n\t\tvar idOrder = document.getElementById('cartForm');\r\n\t\tvar data = {};\r\n\r\n\t\tif (idOrder && idOrder.getAttribute('data-order')) {\r\n\t\t\tvar dataOrder = idOrder.getAttribute('data-order');\r\n\t\t\tdata = {\r\n\t\t\t\tIdOrder: parseInt(dataOrder)\r\n\t\t\t};\r\n\t\t}\r\n\t\tvar xhttp = new XMLHttpRequest();\r\n\t\txhttp.onreadystatechange = function () {\r\n\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\treloadForm();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// console.log('failed to delete all product in the cart!');\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t};\r\n\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\txhttp.open(\"POST\", `/post-delete-all-cart`, true);\r\n\t\txhttp.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n\t\txhttp.send(JSON.stringify(data));\r\n\t}\r\n\r\n\t// var btnDelAll = document.querySelector('.form-cart-table__footer .footer-submit input[type=\"button\"]');\r\n\t// btnDelAll.addEventListener('click', function(e){\r\n\t// \te.preventDefault();\r\n\t// \t// Get api\r\n\t// \tvar idOrder = document.getElementById('cartForm');\r\n\t// \tvar data = {};\r\n\r\n\t// \tif (idOrder && idOrder.getAttribute('data-order')){\r\n\t// \t\tvar dataOrder = idOrder.getAttribute('data-order');\r\n\t// \t\tdata = {\r\n\t// \t\t\tIdOrder: parseInt(dataOrder)\r\n\t// \t\t};\r\n\t// \t}\r\n\t// \tvar xhttp = new XMLHttpRequest();\r\n\t// \txhttp.onreadystatechange = function () {\r\n\t// \t\tif (this.readyState == 4 && this.status == 200) {\r\n\t// \t\t\treloadForm();\r\n\t// \t\t}\r\n\t// \t\telse {\r\n\t// \t\t\tconsole.log('failed to delete all product in the cart!');\r\n\t// \t\t\treturn;\r\n\t// \t\t}\r\n\t// \t};\r\n\t// \t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t// \txhttp.open(\"POST\", `/post-delete-all-cart`, true);\r\n\t// \txhttp.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n\t// \txhttp.send(JSON.stringify(data));\r\n\t// })\r\n}\r\n\r\nfunction submitFormCart() {\r\n\t// var submitBtnCart = document.getElementById('formCartLayout');\r\n\r\n\tvar cpn1 = document.getElementById('companyName1');\r\n\tvar cpn2 = document.getElementById('companyName2');\r\n\tvar cpn3 = document.getElementById('companyName3');\r\n\tvar cpn4 = document.getElementById('companyName4');\r\n\tvar cpn5 = document.getElementById('companyName5');\r\n\r\n\tvar note = document.getElementById('noteFormCartTable');\r\n\r\n\tif (cpn1 && cpn2 && cpn3 && cpn4 && cpn5) {\r\n\t\tcpn1.onchange = function (e) {\r\n\t\t\tcpn1.classList.remove('error');\r\n\t\t\tcpn1.classList.remove('success');\r\n\t\t}\r\n\t\tcpn2.onchange = function (e) {\r\n\t\t\tcpn2.classList.remove('error');\r\n\t\t\tcpn2.classList.remove('success');\r\n\t\t}\r\n\t\tcpn3.onchange = function (e) {\r\n\t\t\tcpn3.classList.remove('error');\r\n\t\t\tcpn3.classList.remove('success');\r\n\t\t}\r\n\t\tcpn4.onchange = function (e) {\r\n\t\t\tcpn4.classList.remove('error');\r\n\t\t\tcpn4.classList.remove('success');\r\n\t\t}\r\n\t\tcpn5.onchange = function (e) {\r\n\t\t\tcpn5.classList.remove('error');\r\n\t\t\tcpn5.classList.remove('success');\r\n\t\t}\r\n\t}\r\n\r\n\t// if (cpn1 && cpn2 && cpn3 && cpn4 && cpn5){\r\n\t// \tcpn1.addEventListener('change', function(e){\r\n\t// \t\tthis.classList.remove('error');\r\n\t// \t\tthis.classList.remove('success');\r\n\t// \t})\r\n\t// \tcpn2.addEventListener('change', function(e){\r\n\t// \t\tthis.classList.remove('error');\r\n\t// \t\tthis.classList.remove('success');\r\n\t// \t})\r\n\t// \tcpn3.addEventListener('change', function(e){\r\n\t// \t\tthis.classList.remove('error');\r\n\t// \t\tthis.classList.remove('success');\r\n\t// \t})\r\n\t// \tcpn4.addEventListener('change', function(e){\r\n\t// \t\tthis.classList.remove('error');\r\n\t// \t\tthis.classList.remove('success');\r\n\t// \t})\r\n\t// \tcpn5.addEventListener('change', function(e){\r\n\t// \t\tthis.classList.remove('error');\r\n\t// \t\tthis.classList.remove('success');\r\n\t// \t})\r\n\t// }\r\n\r\n\tvar idOrder = document.getElementById('cartForm');\r\n\r\n\tvar submitBtnCart = document.getElementById('formCartLayout');\r\n\r\n\tsubmitBtnCart.onsubmit = function (e) {\r\n\t\te.preventDefault();\r\n\r\n\t\tif (!(idOrder && idOrder.getAttribute('data-order'))) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar dataOrder = idOrder.getAttribute('data-order');\r\n\r\n\t\tvar unCheck = false;\r\n\t\tif (!(cpn1.value.trim())) {\r\n\t\t\tcpn1.classList.add('error');\r\n\t\t\tunCheck = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcpn1.classList.add('success');\r\n\t\t}\r\n\r\n\t\tif (!(cpn2.value.trim())) {\r\n\t\t\tcpn2.classList.add('error');\r\n\t\t\tunCheck = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcpn2.classList.add('success');\r\n\t\t}\r\n\r\n\r\n\t\tif (!(cpn3.value.trim())) {\r\n\t\t\tcpn3.classList.add('error');\r\n\t\t\tunCheck = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvar sdt = cpn3.value.trim();\r\n\t\t\tvar regexSdt = /^[+]*[(]{0,1}[0-9]{1,3}[)]{0,1}[-\\s\\./0-9]*$/g;\r\n\t\t\tif (sdt.match(regexSdt)) {\r\n\t\t\t\tcpn3.classList.add('success');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcpn3.classList.add('error');\r\n\t\t\t\tunCheck = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!(cpn4.value.trim())) {\r\n\t\t\tcpn4.classList.add('error');\r\n\t\t\tunCheck = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvar email = cpn4.value.trim();\r\n\t\t\tvar regexEmail = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\t\t\tif (email.match(regexEmail)) {\r\n\t\t\t\tcpn4.classList.add('success');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcpn4.classList.add('error');\r\n\t\t\t\tunCheck = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!(cpn5.value.trim())) {\r\n\t\t\tcpn5.classList.add('error');\r\n\t\t\tunCheck = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcpn5.classList.add('success');\r\n\t\t}\r\n\r\n\t\tif (unCheck) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar data = {\r\n\t\t\tIdOrder: parseInt(dataOrder),\r\n\r\n\t\t\tcompanyName1: cpn1.value,\r\n\t\t\tcompanyName2: cpn2.value,\r\n\t\t\tcompanyName3: cpn3.value,\r\n\t\t\tcompanyName4: cpn4.value,\r\n\t\t\tcompanyName5: cpn5.value,\r\n\r\n\t\t\tnote: note.value,\r\n\t\t}\r\n\r\n\t\tvar xhttp = new XMLHttpRequest();\r\n\t\txhttp.onreadystatechange = function () {\r\n\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\treloadForm();\r\n\t\t\t\tvar mess = JSON.parse(this.responseText);\r\n\t\t\t\tif (mess && mess.Code) {\r\n\t\t\t\t\tif (mess.Code == 400) {\r\n\t\t\t\t\t\talert(mess.Message);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (mess.Code === 200) {\r\n\t\t\t\t\t\talert(mess.Message);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// console.log(this.responseText);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// console.log('failed to submit product in the cart!');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\txhttp.open(\"POST\", `/post-submit-cart`, true);\r\n\t\txhttp.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n\t\txhttp.send(JSON.stringify(data));\r\n\t}\r\n\r\n\t// submitBtnCart.addEventListener('submit', function(e){\r\n\t// \te.preventDefault();\r\n\r\n\t// \tif (!(idOrder && idOrder.getAttribute('data-order'))){\r\n\t// \t\treturn false;\r\n\t// \t}\r\n\r\n\t// \tvar dataOrder = idOrder.getAttribute('data-order');\r\n\r\n\t// \tvar unCheck = false;\r\n\t// \tif (!(cpn1.value.trim())){\r\n\t// \t\tcpn1.classList.add('error');\r\n\t// \t\tunCheck = true;\r\n\t// \t}\r\n\t// \telse{\r\n\t// \t\tcpn1.classList.add('success');\r\n\t// \t}\r\n\r\n\t// \tif (!(cpn2.value.trim())){\r\n\t// \t\tcpn2.classList.add('error');\r\n\t// \t\tunCheck = true;\r\n\t// \t}\r\n\t// \telse{\r\n\t// \t\tcpn2.classList.add('success');\r\n\t// \t}\r\n\r\n\r\n\t// \tif (!(cpn3.value.trim())){\r\n\t// \t\tcpn3.classList.add('error');\r\n\t// \t\tunCheck = true;\r\n\t// \t}\r\n\t// \telse{\r\n\t// \t\tvar sdt = cpn3.value.trim();\r\n\t// \t\tvar regexSdt = /^[+]*[(]{0,1}[0-9]{1,3}[)]{0,1}[-\\s\\./0-9]*$/g;\r\n\t// \t\tif(sdt.match(regexSdt)){\r\n\t// \t\t\tcpn3.classList.add('success');\r\n\t// \t\t}\r\n\t// \t\telse{\r\n\t// \t\t\tcpn3.classList.add('error');\r\n\t// \t\t\tunCheck = true;\r\n\t// \t\t}\r\n\t// \t}\r\n\t// \tif (!(cpn4.value.trim())){\r\n\t// \t\tcpn4.classList.add('error');\r\n\t// \t\tunCheck = true;\r\n\t// \t}\r\n\t// \telse{\r\n\t// \t\tvar email = cpn4.value.trim();\r\n\t// \t\tvar regexEmail = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\t// \t\tif(email.match(regexEmail)){\r\n\t// \t\t\tcpn4.classList.add('success');\r\n\t// \t\t}\r\n\t// \t\telse{\r\n\t// \t\t\tcpn4.classList.add('error');\r\n\t// \t\t\tunCheck = true;\r\n\t// \t\t}\r\n\t// \t}\r\n\r\n\t// \tif (!(cpn5.value.trim())){\r\n\t// \t\tcpn5.classList.add('error');\r\n\t// \t\tunCheck = true;\r\n\t// \t}\r\n\t// \telse{\r\n\t// \t\tcpn5.classList.add('success');\r\n\t// \t}\r\n\r\n\t// \tif (unCheck){\r\n\t// \t\treturn false;\r\n\t// \t}\r\n\r\n\t// \tvar data = {\r\n\t// \t\tIdOrder: parseInt(dataOrder),\r\n\r\n\t// \t\tcompanyName1: cpn1.value,\r\n\t// \t\tcompanyName2: cpn2.value,\r\n\t// \t\tcompanyName3: cpn3.value,\r\n\t// \t\tcompanyName4: cpn4.value,\r\n\t// \t\tcompanyName5: cpn5.value,\r\n\r\n\t// \t\tnote: note.value,\r\n\t// \t}\r\n\r\n\t// \tconsole.log(data);\r\n\r\n\t// \tvar xhttp = new XMLHttpRequest();\r\n\t// \txhttp.onreadystatechange = function () {\r\n\t// \t\tif (this.readyState == 4 && this.status == 200) {\r\n\t// \t\t\treloadForm();\r\n\t// \t\t\tvar mess = JSON.parse(this.responseText);\r\n\t// \t\t\tconsole.log(mess);\r\n\t// \t\t\tif (mess.Code == 400){\r\n\t// \t\t\t\talert(mess.Message);\r\n\t// \t\t\t}\r\n\t// \t\t\telse{\r\n\t// \t\t\t\talert(this.responseText);\r\n\t// \t\t\t}\r\n\t// \t\t}\r\n\t// \t\telse if (this.status == 400){\r\n\t// \t\t\talert(\"400: \" + this.responseText);\r\n\t// \t\t\treturn;\r\n\t// \t\t}\r\n\t// \t\telse {\r\n\t// \t\t\treloadForm();\r\n\t// \t\t\tconsole.log('failed to submit product in the cart!');\r\n\t// \t\t\treturn;\r\n\t// \t\t}\r\n\t// \t};\r\n\r\n\t// \txhttp.open(\"POST\", `/post-submit-cart`, true);\r\n\t// \txhttp.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n\t// \txhttp.send(JSON.stringify(data));\r\n\t// })\r\n}\r\n\r\nfunction cartHandle() {\r\n\t// handle delete\r\n\tdeleteCartHandle();\r\n\tnumberCartHandle();\r\n\tdeleteAllCartHandle();\r\n\tsubmitFormCart();\r\n}\r\n\r\nfunction removeActiveForm() {\r\n\tvar login = document.getElementById('form-login__wrapper');\r\n\tvar registerUser = document.getElementById('form-user__wrapper');\r\n\tvar registerDealer = document.getElementById('form-dealer__wrapper');\r\n\tvar custom = document.getElementById('form-custom__wrapper');\r\n\tvar forgot = document.getElementById('form-forgot__wrapper');\r\n\r\n\tvar popupLogin = document.querySelector('.form-dealer__popup');\r\n\r\n\tif (login) {\r\n\t\tif (login.classList.contains('active')) {\r\n\t\t\tlogin.classList.remove('active');\r\n\t\t}\r\n\t} if (registerUser) {\r\n\t\tif (registerUser.classList.contains('active')) {\r\n\t\t\tregisterUser.classList.remove('active');\r\n\t\t}\r\n\t} if (registerDealer) {\r\n\t\tif (registerDealer.classList.contains('active')) {\r\n\t\t\tregisterDealer.classList.remove('active');\r\n\t\t}\r\n\t} if (custom) {\r\n\t\tif (custom.classList.contains('active')) {\r\n\t\t\tcustom.classList.remove('active');\r\n\t\t}\r\n\t} if (forgot) {\r\n\t\tif (forgot.classList.contains('active')) {\r\n\t\t\tforgot.classList.remove('active');\r\n\t\t}\r\n\t} if (popupLogin) {\r\n\t\tif (popupLogin.classList.contains('active')) {\r\n\t\t\tpopupLogin.classList.remove('active');\r\n\t\t}\r\n\t}\r\n\r\n\tvar body = document.querySelector('body');\r\n\tif (body) {\r\n\t\tbody.style.height = \"\";\r\n\t\tbody.style.overflow = \"\";\r\n\t}\r\n}\r\n\r\nfunction footerHandle() {\r\n\tif (document.querySelector('.footer__wrapper')) {\r\n\t\t// change input\r\n\t\tvar inputEmail = document.getElementById('emailFooter');\r\n\t\tinputEmail.addEventListener('change', function () {\r\n\t\t\tvar info = document.getElementById('formEmailFooterInfo');\r\n\t\t\tinfo.innerHTML = \"\";\r\n\t\t\tinfo.classList.remove('success');\r\n\t\t\tinfo.classList.remove('error');\r\n\t\t})\r\n\r\n\t\t// submit form email\r\n\t\tvar formEmail = document.getElementById('formEmailFooter');\r\n\t\tformEmail.addEventListener('submit', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tvar email = document.getElementById('emailFooter');\r\n\t\t\tvar data = { email: email.value };\r\n\r\n\t\t\t// Get api\r\n\t\t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\txhttp.onreadystatechange = function () {\r\n\t\t\t\tvar info = document.getElementById('formEmailFooterInfo');\r\n\r\n\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\tif (this.responseText) {\r\n\t\t\t\t\t\tvar object = JSON.parse(this.responseText);\r\n\t\t\t\t\t\tif (object && object.Code) {\r\n\t\t\t\t\t\t\tif (object.Code === 400) {\r\n\t\t\t\t\t\t\t\tif (object && object.Message) {\r\n\t\t\t\t\t\t\t\t\tinfo.classList.add('error');\r\n\t\t\t\t\t\t\t\t\tinfo.innerHTML = object.Message + \"\";\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if (object.Code === 200) {\r\n\t\t\t\t\t\t\t\tinfo.classList.add('success');\r\n\t\t\t\t\t\t\t\tinfo.innerHTML = object.Message;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t// console.log(this.responseText);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t// console.log(this.responseText);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// console.log(this.responseText);\r\n\t\t\t\t\t// info.innerHTML = \"You sent email successfully!\";\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// console.log(this.responseText);\r\n\t\t\t\t\t// info.classList.add('error');\r\n\t\t\t\t\t// if (this.responseText && JSON.parse(this.responseText)){\r\n\t\t\t\t\t// \tvar objectError = JSON.parse(this.responseText);\r\n\t\t\t\t\t// \tif (objectError && objectError.Message){\r\n\t\t\t\t\t// \t\tinfo.innerHTML = objectError.Message + \"\";\r\n\t\t\t\t\t// \t\treturn;\r\n\t\t\t\t\t// \t}\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t// info.innerHTML = \"Unable to connect to server!\";\r\n\t\t\t\t}\r\n\r\n\t\t\t};\r\n\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\txhttp.open(\"POST\", '/post-email-footer', true);\r\n\t\t\txhttp.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n\t\t\txhttp.send(JSON.stringify(data));\r\n\t\t})\r\n\t}\r\n}\r\n\r\n\r\n// swiper 5 & 6 in fDetailProducts\r\nfunction fDetailProducts() {\r\n\tif (document.querySelector('.details-infor__wrapper')) {\r\n\t\t// effect star\r\n\t\tvar starSection = document.querySelectorAll('.detail-infor__content .rate-section');\r\n\t\tstarSection.forEach(function (item) {\r\n\t\t\tvar child = item.lastElementChild;\r\n\r\n\t\t\tif (child) {\r\n\t\t\t\tchild = child.children[0];\r\n\r\n\t\t\t\tif (child) {\r\n\t\t\t\t\tchild.children[0];\r\n\t\t\t\t\tif (child) {\r\n\t\t\t\t\t\tvar getStar = child.getAttribute('data-star');\r\n\t\t\t\t\t\tvar stars = child.children;\r\n\r\n\t\t\t\t\t\tfor (var i = 1; i < stars.length; i++) {\r\n\t\t\t\t\t\t\tif (i === parseInt(getStar)) {\r\n\t\t\t\t\t\t\t\tfor (var j = i; j > 0; j--) {\r\n\t\t\t\t\t\t\t\t\tchild.children[j - 1].classList.add('active');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t//create swiper information product\r\n\t\tvar swiper5 = new Swiper(`.details-infor__wrapper .product-feature-warranty .product-selected > .product-selected--1 > .swiper-container`, {\r\n\t\t\t// spaceBetween: 15,\r\n\t\t\tslidesPerView: 1,\r\n\t\t});\r\n\r\n\t\tvar swiper6 = new Swiper(`.details-infor__wrapper .product-feature-warranty .product-selected > .product-selected--1 > .feature-icons > .swiper-container`, {\r\n\t\t\tspaceBetween: 15,\r\n\t\t\tslidesPerView: 5,\r\n\t\t});\r\n\r\n\t\t// review\r\n\t\tvar review = document.querySelectorAll('.details-review__wrapper .details-review__form .items-star .star');\r\n\t\tif (review) {\r\n\t\t\treview.forEach((element, index) => element.addEventListener('mouseover', () => {\r\n\t\t\t\treview.forEach(r => r.classList.remove('active'));\r\n\t\t\t\tfor (var i = index; i >= 0; i--) {\r\n\t\t\t\t\treview[i].classList.add('active');\r\n\t\t\t\t}\r\n\t\t\t}))\r\n\r\n\t\t\treview.forEach((element, index) => element.addEventListener('click', () => {\r\n\t\t\t\treview.forEach(r => { r.classList.remove('active'); r.classList.remove('selected') });\r\n\t\t\t\treview[index].classList.add('selected');\r\n\r\n\t\t\t\tvar star = document.getElementById('reviewStar');\r\n\t\t\t\tstar.value = \"\" + (index + 1);\r\n\t\t\t\tfor (var i = index; i >= 0; i--) {\r\n\t\t\t\t\treview[i].classList.add('active');\r\n\t\t\t\t}\r\n\t\t\t}))\r\n\t\t}\r\n\r\n\t\t// comment star\r\n\t\tvar commentRates = document.querySelectorAll('.details-review__wrapper .details-user__comment .comment-items .items-star');\r\n\t\tif (commentRates) {\r\n\t\t\tcommentRates.forEach(function (rate) {\r\n\t\t\t\tvar value = parseInt(rate.getAttribute('data-selected'));\r\n\t\t\t\tfor (var i = value - 1; i >= 0; i--) {\r\n\t\t\t\t\trate.children[i].classList.add('active');\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t// more comment\r\n\t\tvar commentMore = document.querySelector('.details-review__wrapper .details-user__comment .comment__more--btn');\r\n\t\tvar commentReviews = document.querySelector('.details-review__wrapper .details-user__comment .comment__reviews');\r\n\t\tif (commentMore && commentReviews) {\r\n\t\t\t// visible là đang hiện 4 mục\r\n\t\t\tvar visibleComment = commentMore.getAttribute('data-comment-visibled');\r\n\r\n\t\t\t// tổng số review\r\n\t\t\tvar reviewComment = commentReviews.getAttribute('data-comment-reviews');\r\n\r\n\t\t\tif (visibleComment < reviewComment) {\r\n\t\t\t\tvar cmtActive = document.querySelector('.details-review__wrapper .details-user__comment .comment__more');\r\n\t\t\t\tcmtActive.classList.add('active');\r\n\r\n\t\t\t\tcommentMore.addEventListener('click', function () {\r\n\t\t\t\t\t// get api\r\n\t\t\t\t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\t\t\txhttp.onreadystatechange = function () {\r\n\t\t\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\t\t\tvar blockText = document.createElement('div');\r\n\t\t\t\t\t\t\tblockText.innerHTML = this.responseText;\r\n\t\t\t\t\t\t\tvar iVisible = parseInt(visibleComment);\r\n\t\t\t\t\t\t\t// alert(blockText.children.length);\r\n\t\t\t\t\t\t\tif (iVisible && blockText.children) {\r\n\t\t\t\t\t\t\t\tvisibleComment = (iVisible + blockText.children.length) + \"\";\r\n\t\t\t\t\t\t\t\tcommentMore.setAttribute('data-comment-visibled', visibleComment);\r\n\r\n\t\t\t\t\t\t\t\tif (visibleComment >= reviewComment) {\r\n\t\t\t\t\t\t\t\t\tcmtActive.classList.remove('active');\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tvar wrapper = document.querySelector('.details-review__wrapper .details-user__comment .comment__section');\r\n\t\t\t\t\t\t\t\twrapper.innerHTML += blockText.innerHTML;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t// console.log('Error!!!');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t// alert(`not found comment ${parseInt(visibleComment) + 1}`);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t\t\txhttp.open(\"GET\", `/get-comment/${parseInt(visibleComment) + 1}`, true);\r\n\t\t\t\t\txhttp.send();\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst updateURLParams = function (paramsToUpdate: any) {\r\n\t// Lấy tất cả các tham số truy vấn từ URL hiện tại\r\n\tvar searchParams = new URLSearchParams(window.location.search);\r\n\r\n\t// Lặp qua các tham số cần cập nhật\r\n\tfor (var key in paramsToUpdate) {\r\n\t\tif (paramsToUpdate.hasOwnProperty(key)) {\r\n\t\t\tsearchParams.set(key, paramsToUpdate[key]);\r\n\t\t}\r\n\t}\r\n\r\n\t// Tạo URL mới với các thay đổi\r\n\tvar newURL = window.location.pathname + '?' + searchParams.toString();\r\n\r\n\t// Cập nhật URL trên trình duyệt\r\n\twindow.history.pushState({ paramsToUpdate }, '', newURL);\r\n}\r\n\r\nconst removeQueryParam = function (paramName: any) {\r\n\t// Lấy tất cả các tham số truy vấn từ URL hiện tại\r\n\tvar searchParams = new URLSearchParams(window.location.search);\r\n\r\n\t// Loại bỏ tham số truy vấn\r\n\tsearchParams.delete(paramName);\r\n\r\n\t// Tạo URL mới với các thay đổi\r\n\tvar newURL;\r\n\r\n\tif (searchParams.toString() !== '') {\r\n\t\tnewURL = window.location.pathname + '?' + searchParams.toString();\r\n\t} else {\r\n\t\tnewURL = window.location.pathname;\r\n\t}\r\n\r\n\t// Cập nhật URL trên trình duyệt\r\n\twindow.history.pushState({ path: newURL }, '', newURL);\r\n}\r\n\r\nfunction toggleinput() {\r\n\tif (!document.querySelector('.faq-content__wrapper')) {\r\n\t\treturn;\r\n\t}\r\n\tvar contentList = document.querySelectorAll(\".content-right__list .faq-right__list\");\r\n\tif (!contentList) {\r\n\t\treturn;\r\n\t}\r\n\tcontentList.forEach(item => item.addEventListener('click', () => {\r\n\t\t// xoa active\r\n\t\tif (item.classList.contains('active')) {\r\n\t\t\titem.classList.remove('active');\r\n\r\n\t\t\tremoveQueryParam('data');\r\n\t\t\t// const urlDefault = item.getAttribute('data-default');\r\n\t\t\t// window.history.pushState({ urlDefault }, '', urlDefault);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcontentList.forEach(function (e) {\r\n\t\t\t\te.classList.remove(\"active\");\r\n\t\t\t})\r\n\r\n\t\t\t// them active vao item da click\r\n\t\t\titem.classList.add(\"active\");\r\n\r\n\t\t\tconst url = item.getAttribute('data-url');\r\n\t\t\tupdateURLParams({ data: url });\r\n\t\t\t// window.history.pushState({ url }, '', url);\r\n\t\t}\r\n\r\n\t\t// var reScroll = document.getElementById(\"scrollToContent\");\r\n\t\t// reScroll.scrollIntoView();\r\n\t}))\r\n\r\n\tvar listCate = document.querySelectorAll('.faq-content__wrapper .faq-content .faq-left__list');\r\n\tif (!listCate) {\r\n\t\treturn;\r\n\t}\r\n\tlistCate.forEach(function (itemCate) {\r\n\t\titemCate.addEventListener('click', function () {\r\n\t\t\tvar value = itemCate.getAttribute('data-categories');\r\n\r\n\t\t\t// Get api\r\n\t\t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\txhttp.onreadystatechange = function () {\r\n\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\tvar wrapper = document.querySelector('.faq-content__wrapper .faq-content__right .faq-right__items');\r\n\t\t\t\t\twrapper.innerHTML = this.responseText;\r\n\r\n\t\t\t\t\tvar contentListAjax = document.querySelectorAll(\".content-right__list .faq-right__list\");\r\n\t\t\t\t\tif (!contentListAjax) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontentListAjax.forEach(function (item, idx) {\r\n\t\t\t\t\t\tif (item.classList.contains('active')) {\r\n\t\t\t\t\t\t\twindow.delHandle(contentListAjax, 'active', idx);\r\n\t\t\t\t\t\t\tconst url = item.getAttribute('data-url');\r\n\t\t\t\t\t\t\tupdateURLParams({ data: url });\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\titem.addEventListener('click', () => {\r\n\t\t\t\t\t\t\t// xoa active\r\n\t\t\t\t\t\t\tif (item.classList.contains('active')) {\r\n\t\t\t\t\t\t\t\titem.classList.remove('active');\r\n\r\n\t\t\t\t\t\t\t\tremoveQueryParam('data');\r\n\r\n\t\t\t\t\t\t\t\t// const urlDefault = item.getAttribute('data-default');\r\n\t\t\t\t\t\t\t\t// console.log(urlDefault);\r\n\t\t\t\t\t\t\t\t// window.history.pushState({ urlDefault }, '', urlDefault);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tcontentListAjax.forEach(function (e) {\r\n\t\t\t\t\t\t\t\t\te.classList.remove(\"active\");\r\n\t\t\t\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\t\t\t// them active vao item da click\r\n\t\t\t\t\t\t\t\titem.classList.add(\"active\");\r\n\r\n\t\t\t\t\t\t\t\tconst url = item.getAttribute('data-url');\r\n\t\t\t\t\t\t\t\tupdateURLParams({ data: url });\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// console.log(`not found ${value}`);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\txhttp.open(\"GET\", `/get-cate-faq/${value}`, true);\r\n\t\t\txhttp.send();\r\n\r\n\t\t\t// active\r\n\t\t\tif (itemCate.classList.contains('active')) {\r\n\t\t\t\titemCate.classList.remove('active');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlistCate.forEach(function (e) {\r\n\t\t\t\t\te.classList.remove(\"active\");\r\n\t\t\t\t})\r\n\r\n\t\t\t\t// them active vao item da click\r\n\t\t\t\titemCate.classList.add(\"active\");\r\n\t\t\t}\r\n\t\t})\r\n\t})\r\n\r\n\tfunction handlePopState(event: any) {\r\n\t\t// event.state chứa dữ liệu mà bạn đã đặt trong history.pushState hoặc history.replaceState\r\n\t\tvar stateData = event.state;\r\n\t\tconsole.log(stateData);\r\n\r\n\t\t// Kiểm tra và xử lý stateData theo nhu cầu của bạn\r\n\t\tif (stateData) {\r\n\t\t\t// Ví dụ: log dữ liệu trạng thái\r\n\t\t\tconsole.log(\"Popstate event data:\", stateData);\r\n\t\t} else {\r\n\t\t\t// Trường hợp không có dữ liệu trạng thái\r\n\t\t\tconsole.log(\"No popstate event data\");\r\n\t\t}\r\n\r\n\t\tvar paramValue = window.getQueryParam(\"data\");\r\n\t\t// const idxPop = window.isNonNegativeNumber(paramValue) ? parseInt(paramValue) : null;\r\n\t\tconsole.log(paramValue);\r\n\t\tvar contentListCurrent = document.querySelectorAll(\".content-right__list .faq-right__list\");\r\n\t\tif (paramValue === null) {\r\n\t\t\twindow.delHandle(contentListCurrent, 'active');\r\n\t\t} else {\r\n\t\t\tvar flag = false;\r\n\t\t\tcontentListCurrent.forEach(function (item) {\r\n\t\t\t\tconst urlValue = item.getAttribute('data-url');\r\n\t\t\t\tif (paramValue === urlValue) {\r\n\t\t\t\t\twindow.delHandle(contentListCurrent, 'active');\r\n\t\t\t\t\titem.classList.add('active');\r\n\t\t\t\t\tflag = true;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tif (flag === false) {\r\n\t\t\t\tconsole.error('Param not found in the list');\r\n\t\t\t\twindow.delHandle(contentListCurrent, 'active');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// window.delHandle(sels, 'is-showed');\r\n\r\n\t\t// const optPop = opts[idxPop];\r\n\t\t// const selPop = sels[idxPop];\r\n\r\n\t\t// if (optPop && selPop) {\r\n\t\t// \toptPop.classList.add('is-actived');\r\n\t\t// \tselPop.style.display = \"\";\r\n\t\t// \tselPop.classList.add('is-showed');\r\n\t\t// }\r\n\t}\r\n\r\n\twindow.addEventListener('popstate', handlePopState);\r\n}\r\n\r\n\r\n// var swiper6 = new Swiper(\".details-infor__wrapper .product-feature-warranty .product-selected--1 .swiper-container\", {\r\n// \t// spaceBetween: 15,\r\n// \tslidesPerView: 1,\r\n// });\r\n// var swiper6 = new Swiper(\".details-infor__wrapper .product-feature-warranty .product-selected--2 .swiper-container\", {\r\n// \t// spaceBetween: 15,\r\n// \tslidesPerView: 1,\r\n\r\n// });\r\n// var swiper5 = new Swiper(\".details-infor__wrapper .product-feature-warranty .product-selected--1 .feature-icons .swiper-container\", {\r\n// \tspaceBetween: 15,\r\n// \tslidesPerView: 5,\r\n// });\r\n// function fLoadSwiperWarranty(){\r\n// \talert(1);\r\n// \t// const product_details = document.querySelectorAll(\".details-infor__wrapper .product-feature-warranty .nav-feature .product-feature\")\r\n// \t// console.log(product_details);\r\n// \t// product_details.forEach(function(e, index){\r\n// \t// \t// var swiper6 = new Swiper(\".details-infor__wrapper .product-feature-warranty .product-selected--1 .swiper-container\", {\r\n// \t// \t// \t// spaceBetween: 15,\r\n// \t// \t// \tslidesPerView: 1,\r\n// \t// \t// });\r\n// \t// \tconsole.log(index);\r\n// \t// \tvar swiper7 = new Swiper(`.details-infor__wrapper .product-feature-warranty .product-selected > .product-selected--${index + 1} > .feature-icons > .swiper-container`, {\r\n// \t// \t\tspaceBetween: 15,\r\n// \t// \t\tslidesPerView: 5,\r\n// \t// \t});\r\n// \t// })\r\n// }\r\n\r\n\r\n\r\nconst showContentDetails = () => {\r\n\tconst list = document.querySelectorAll(\".details-infor__wrapper .feature-details .dropdown-feature\")\r\n\r\n\tlist.forEach(element => element.addEventListener('click', () => {\r\n\t\tconst caret1 = document.querySelectorAll(\".details-infor__wrapper .feature-details .dropdown-feature .active-caret\")\r\n\r\n\t\tconst listactive = document.querySelector(\".details-infor__wrapper .feature-details .dropdown-feature .active\")\r\n\t\tvar child = element.children\r\n\r\n\t\tfor (var i = 0; i < child.length; i++) {\r\n\t\t\tvar caret = child[i].children\r\n\t\t\tif (caret1 === null) {\r\n\t\t\t\tcaret[0].classList.add(\"active-caret\")\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcaret1.forEach(element => element.classList.remove(\"active-caret\"))\r\n\t\t\t\tcaret[0].classList.add(\"active-caret\")\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tif (listactive === null) {\r\n\t\t\tchild[1].classList.add(\"active\")\r\n\t\t} else {\r\n\t\t\tchild[1].classList.add(\"active\")\r\n\t\t\tlistactive.classList.remove(\"active\")\r\n\r\n\t\t}\r\n\r\n\t}))\r\n}\r\n\r\nconst navSelect = () => {\r\n\tconst mattress3 = document.querySelectorAll(\".mattress-recommend__wrapper .options-recommend .options\")\r\n\tconst mattress2 = document.querySelectorAll(\".mattress-collections__wrapper .mattress-collections .collections-section .options\")\r\n\tconst product_details1 = document.querySelectorAll(\".details-infor__wrapper .product-feature-warranty .nav-feature .product-feature\")\r\n\tconst product_details2 = document.querySelectorAll(\".details-function-benefit__wrapper .details-nav .nav-function .product-feature\")\r\n\tconst dealer_digital = document.querySelectorAll(\".dealer-navigation-digital__wrapper .dealer-navigation-digital a\")\r\n\tconst review = document.querySelectorAll(\".details-review__wrapper .user-comment-section\")\r\n\r\n\tmattress2.forEach(element => element.addEventListener('click', () => {\r\n\t\tconst active_item = document.querySelector('.mattress-collections__wrapper .mattress-collections .collections-section .active');\r\n\t\tactive_item.classList.remove('active')\r\n\t\telement.classList.add(\"active\")\r\n\t}))\r\n\r\n\tmattress3.forEach(element => element.addEventListener('click', () => {\r\n\t\tconst active_item = document.querySelector('.mattress-recommend__wrapper .options-recommend .active');\r\n\t\tactive_item.classList.remove('active')\r\n\t\telement.classList.add(\"active\")\r\n\t}))\r\n\r\n\tproduct_details1.forEach((element, index) => element.addEventListener('click', () => {\r\n\t\tconst active_item = document.querySelector('.details-infor__wrapper .product-feature-warranty .nav-feature .active');\r\n\t\tactive_item.classList.remove('active')\r\n\t\telement.classList.add(\"active\")\r\n\r\n\t\tconst activeProduct = document.querySelectorAll('.details-infor__wrapper .product-feature-warranty .product-selected .product-selected--value');\r\n\t\tactiveProduct.forEach(product => product.classList.remove('active'));\r\n\t\tactiveProduct[index].classList.add('active');\r\n\r\n\t\tnew Swiper(`.details-infor__wrapper .product-feature-warranty .product-selected > .product-selected--${index + 1} > .swiper-container`, {\r\n\t\t\t// spaceBetween: 15,\r\n\t\t\tslidesPerView: 1,\r\n\t\t});\r\n\r\n\t\tnew Swiper(`.details-infor__wrapper .product-feature-warranty .product-selected > .product-selected--${index + 1} > .feature-icons > .swiper-container`, {\r\n\t\t\tspaceBetween: 15,\r\n\t\t\tslidesPerView: 5,\r\n\t\t});\r\n\t}))\r\n\r\n\tproduct_details2.forEach((element, index) => element.addEventListener('click', () => {\r\n\t\tconst active_item = document.querySelector('.details-function-benefit__wrapper .details-nav .nav-function .active');\r\n\t\tactive_item.classList.remove('active')\r\n\t\telement.classList.add(\"active\")\r\n\r\n\t\tconst contents = document.querySelectorAll('.details-function-benefit .content--value');\r\n\t\tcontents.forEach(function (content) {\r\n\t\t\tcontent.classList.remove('active');\r\n\t\t})\r\n\t\tcontents[index].classList.add('active');\r\n\t}))\r\n\r\n\tdealer_digital.forEach(element => element.addEventListener('click', () => {\r\n\t\tconst active_item = document.querySelector(\".dealer-navigation-digital__wrapper .dealer-navigation-digital .active\");\r\n\t\tactive_item.classList.remove('active')\r\n\t\telement.classList.add(\"active\")\r\n\t}))\r\n\r\n\treview.forEach(element => element.children[0].addEventListener('click', () => {\r\n\t\t// const active_item = document.querySelector(\".details-review__wrapper .uesr-comment\");\r\n\t\t// active_item.classList.remove('active')\r\n\t\tif (element.children[1] === null) {\r\n\r\n\t\t} else {\r\n\t\t\telement.children[1].classList.toggle(\"active\")\r\n\t\t}\r\n\r\n\t\t// element.classList.add(\"active\")\r\n\t}))\r\n\r\n}\r\n\r\n// const changeActive = (active__item,element) =>{\r\n// \t\t// const active_item = document.querySelector('.mattress-recommend__wrapper .left-recommend .options-recommend a.active');\r\n// \t\tactive__item.classList.remove('active')\r\n// \t\telement.classList.add(\"active\")\r\n// }\r\n\r\n\r\n\r\n// const showSubMenuMobile = () => {\r\n// const btn = document.querySelector('.btn-menu');\r\n// const btn_close = document.querySelector('.mobile-navbar-close');\r\n// const overlayMennu = document.querySelector('.mobile-wapper');\r\n// // SHOW MAIN MENU !!!\r\n// if (btn) {\r\n// \tbtn.addEventListener('click', (e) => {\r\n// \t\tdocument.querySelector('body').classList.toggle('disabled');\r\n// \t\tbtn.classList.add('show');\r\n// \t\t// mainoverlay.classList.add('side-nav');\r\n// overlayMennu.classList.add('show-nav');\r\n\r\n// \t\t// CLOSE ALL SUB MENU\r\n\r\n// \t});\r\n// }if(btn_close){\r\n// \tbtn_close.addEventListener('click', (e) => {\r\n// \t\tdocument.querySelector('body').classList.remove('disabled');\r\n// \t\tbtn.classList.remove('show');\r\n// \t\t// mainoverlay.classList.remove('show__overlay');\r\n// overlayMennu.classList.remove('show-nav');\r\n\r\n// \t\t// CLOSE ALL SUB MENU\r\n\r\n// \t});\r\n// }else {\r\n// \tconsole.log(`Không tồn tại element :=> .navBarHamburger__wrapper`);\r\n// }\r\n// }\r\n\r\nvar endCheck = function () {\r\n\tvar checkBox = document.querySelectorAll(\".mobile-nav-sub__link\");\r\n\tcheckBox.forEach(box => {\r\n\t\tbox.addEventListener('click', function () {\r\n\t\t\tUncheck();\r\n\t\t})\r\n\t});\r\n}\r\n\r\nfunction Uncheck() {\r\n\tvar checkedBox = document.getElementById(\"mobile__checkbox\");\r\n\tcheckedBox.checked = false;\r\n}\r\n\r\n// About us story\r\nvar swiperPartner = new Swiper(\".about-story-partner__wrapper .about-story-partner__list\", {\r\n\tslidesPerView: 5,\r\n\tspaceBetween: 150,\r\n\tslidesPerGroup: 1,\r\n\tloop: true,\r\n\r\n\r\n\tnavigation: {\r\n\t\tnextEl: \".about-story-partner__wrapper .swiper-button-next\",\r\n\t\tprevEl: \".about-story-partner__wrapper .swiper-button-prev\",\r\n\t},\r\n\tbreakpoints: {\r\n\t\t120: {\r\n\t\t\tslidesPerView: 1,\r\n\t\t\tspaceBetween: 50,\r\n\t\t},\r\n\t\t320: {\r\n\t\t\tslidesPerView: 1,\r\n\t\t\tspaceBetween: 50,\r\n\t\t},\r\n\t\t425: {\r\n\t\t\tslidesPerView: 2,\r\n\t\t\tspaceBetween: 50,\r\n\t\t},\r\n\t\t600: {\r\n\t\t\tslidesPerView: 3,\r\n\t\t\tspaceBetween: 50,\r\n\t\t},\r\n\t\t768: {\r\n\t\t\tslidesPerView: 4,\r\n\t\t\tspaceBetween: 50,\r\n\t\t},\r\n\t\t1024: {\r\n\t\t\tslidesPerView: 5,\r\n\t\t\tspaceBetween: 70,\r\n\t\t},\r\n\t\t1440: {\r\n\t\t\tslidesPerView: 5,\r\n\t\t\tspaceBetween: 120,\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// About us media\r\n// var swiperReleases = new Swiper(\".about-media-releases .releases-pagination .releases-pagination-swiper\", {\r\n// \tslidesPerView: 5,\r\n// \tspaceBetween: 30,\r\n// \tslidesPerGroup: 1,\r\n\r\n// \tnavigation: {\r\n// \t\tnextEl: \".about-media-releases .releases-pagination .swiper-button-next\",\r\n// \t\tprevEl: \".about-media-releases .releases-pagination .swiper-button-prev\",\r\n// \t}\r\n// });\r\n\r\n\r\n\r\n\r\n\r\nvar clickPaginationReleases = function () {\r\n\tif (document.querySelector('.about-media-releases__wrapper')) {\r\n\t\tvar reBox = document.querySelectorAll(\".about-media-releases__content .releases-box .releases-box-item\");\r\n\t\tvar pageNumber = 4;\r\n\t\tvar page = Math.ceil(reBox.length / pageNumber);\r\n\t\tvar iNumber = 1;\r\n\r\n\t\tfor (var i = 0; i < reBox.length; i++) {\r\n\t\t\tif (Math.floor(i / pageNumber + 1) == iNumber) {\r\n\t\t\t\treBox[i].classList.remove(\"hidden\");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treBox[i].classList.add(\"hidden\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (page > 1) {\r\n\t\t\tvar addPagination = document.querySelector('.about-media-releases__content');\r\n\t\t\tif (addPagination === null) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar rePagination = document.createElement('div');\r\n\t\t\trePagination.classList.add('releases-pagination');\r\n\r\n\t\t\tvar reSwiper = document.createElement('div');\r\n\t\t\treSwiper.classList.add('releases-pagination-swiper');\r\n\t\t\treSwiper.classList.add('swiper-container');\r\n\r\n\t\t\tvar reWrapper = document.createElement('div');\r\n\t\t\treWrapper.classList.add('swiper-wrapper');\r\n\r\n\t\t\tfor (var i = 0; i < page; i++) {\r\n\t\t\t\treWrapper.innerHTML += `
    ${i + 1}
    `;\r\n\t\t\t}\r\n\r\n\t\t\tvar reNext = document.createElement('div');\r\n\t\t\tvar rePrev = document.createElement('div');\r\n\t\t\treNext.classList.add('swiper-button-next');\r\n\t\t\trePrev.classList.add('swiper-button-prev');\r\n\t\t\treNext.classList.add('releases-pagination__next');\r\n\t\t\trePrev.classList.add('releases-pagination__prev');\r\n\r\n\r\n\t\t\treSwiper.appendChild(reWrapper);\r\n\t\t\treSwiper.appendChild(reNext);\r\n\t\t\treSwiper.appendChild(rePrev);\r\n\r\n\t\t\trePagination.appendChild(reSwiper);\r\n\r\n\t\t\taddPagination.appendChild(rePagination);\r\n\t\t}\r\n\r\n\t\tvar swiperReleases = new Swiper(\".about-media-releases .releases-pagination .releases-pagination-swiper\", {\r\n\t\t\tslidesPerView: 4,\r\n\t\t\tspaceBetween: 30,\r\n\t\t\tslidesPerGroup: 1,\r\n\t\t\tbreakpoints: {\r\n\t\t\t\t320: {\r\n\t\t\t\t\tspaceBetween: 25,\r\n\t\t\t\t},\r\n\t\t\t\t640: {\r\n\t\t\t\t\tspaceBetween: 30,\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tnavigation: {\r\n\t\t\t\tnextEl: \".about-media-releases .releases-pagination .swiper-button-next\",\r\n\t\t\t\tprevEl: \".about-media-releases .releases-pagination .swiper-button-prev\",\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tdocument.querySelector(\".about-media-releases .releases-pagination .releases-pagination-swiper .releases-pagination__button\").classList.add(\"active\");\r\n\t\tvar pagination = document.querySelectorAll(\".about-media-releases .releases-pagination .releases-pagination__button\");\r\n\t\tpagination.forEach(function (p) {\r\n\t\t\tp.addEventListener(\"click\", function (e) {\r\n\t\t\t\tpagination.forEach(function (item) {\r\n\t\t\t\t\tif (item.classList.contains(\"active\")) {\r\n\t\t\t\t\t\titem.classList.remove(\"active\");\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\tp.classList.add('active');\r\n\r\n\t\t\t\tvar number = p.getAttribute(\"data-releases\");\r\n\t\t\t\tvar iNumber = parseInt(number);\r\n\t\t\t\tvar reBox = document.querySelectorAll(\".about-media-releases__content .releases-box .releases-box-item\");\r\n\r\n\t\t\t\tvar pageNumber = 4;\r\n\r\n\t\t\t\tfor (var i = 0; i < reBox.length; i++) {\r\n\t\t\t\t\tif (Math.floor(i / pageNumber + 1) == iNumber) {\r\n\t\t\t\t\t\treBox[i].classList.remove(\"hidden\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\treBox[i].classList.add(\"hidden\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// var reScroll = document.getElementById(\"scrollToReleases\");\r\n\t\t\t\t// reScroll.scrollIntoView();\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n}\r\n\r\nvar clickFancybox = function () {\r\n\tif (document.querySelector('.about-media-video__wrapper')) {\r\n\t\t// about media video\r\n\t\tvar swiperVideo = new Swiper(\".about-media-video__wrapper .releases-pagination .releases-pagination-swiper\", {\r\n\t\t\tslidesPerView: 4,\r\n\t\t\tspaceBetween: 30,\r\n\t\t\tslidesPerGroup: 1,\r\n\t\t\tbreakpoints: {\r\n\t\t\t\t320: {\r\n\t\t\t\t\tspaceBetween: 25,\r\n\t\t\t\t},\r\n\t\t\t\t640: {\r\n\t\t\t\t\tspaceBetween: 30,\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tnavigation: {\r\n\t\t\t\tnextEl: \".about-media-video__wrapper .releases-pagination .swiper-button-next\",\r\n\t\t\t\tprevEl: \".about-media-video__wrapper .releases-pagination .swiper-button-prev\",\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tdocument.querySelector(\".about-media-video__wrapper .releases-pagination .releases-pagination-swiper .releases-pagination__button\").classList.add(\"active\");\r\n\t\tvar pagination = document.querySelectorAll(\".about-media-video__wrapper .releases-pagination .releases-pagination__button\");\r\n\t\tpagination.forEach(function (p) {\r\n\t\t\tp.addEventListener(\"click\", function (e) {\r\n\r\n\t\t\t\t// active number page\r\n\t\t\t\tpagination.forEach(function (item) {\r\n\t\t\t\t\tif (item.classList.contains(\"active\")) {\r\n\t\t\t\t\t\titem.classList.remove(\"active\");\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\tp.classList.add('active');\r\n\r\n\t\t\t\t// get data-page\r\n\t\t\t\tvar value = p.getAttribute(\"data-url\");\r\n\r\n\t\t\t\t// Get api\r\n\t\t\t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\t\txhttp.onreadystatechange = function () {\r\n\t\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\t\tvar wrapper = document.querySelector('.about-media-video__wrapper .about-media-video__list');\r\n\t\t\t\t\t\twrapper.innerHTML = this.responseText;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// console.log(`not found ${value}`);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t\txhttp.open(\"GET\", `/get-about-gallery/${value}`, true);\r\n\t\t\t\txhttp.send();\r\n\r\n\t\t\t\t// scroll\r\n\t\t\t\t// var reScroll = document.getElementById(\"scrollToVideo\");\r\n\t\t\t\t// reScroll.scrollIntoView();\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n}\r\n\r\nvar swiperModel = new Swiper(\".about-media-video__wrapper .model .video__model-swiper\", {\r\n\tslidesPerView: 1,\r\n\tspaceBetween: 50,\r\n\tslidesPerGroup: 1,\r\n\r\n\tnavigation: {\r\n\t\tnextEl: \".about-media-video__wrapper .model .swiper-button-next\",\r\n\t\tprevEl: \".about-media-video__wrapper .model .swiper-button-prev\",\r\n\t}\r\n});\r\n\r\nfunction popupHandle() {\r\n\tif (document.querySelector('.about-media-video__wrapper')) {\r\n\t\t// event click model\r\n\t\tvar popupModelVideo = document.querySelectorAll(\".about-media-video__wrapper .about-media-video__item\");\r\n\t\tpopupModelVideo.forEach(function (pop) {\r\n\t\t\t// pop.childNodes\r\n\r\n\t\t\tpop.addEventListener('click', function () {\r\n\t\t\t\tvar model = document.getElementById('model-video');\r\n\t\t\t\tif (model) {\r\n\t\t\t\t\tif (!model.classList.contains('active')) {\r\n\t\t\t\t\t\tmodel.classList.add('active');\r\n\t\t\t\t\t\tnew Swiper(\".about-media-video__wrapper .model .video__model-swiper\", {\r\n\t\t\t\t\t\t\tslidesPerView: 1,\r\n\t\t\t\t\t\t\tspaceBetween: 50,\r\n\t\t\t\t\t\t\tslidesPerGroup: 1,\r\n\r\n\t\t\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\t\t\tnextEl: \".about-media-video__wrapper .model .swiper-button-next\",\r\n\t\t\t\t\t\t\t\tprevEl: \".about-media-video__wrapper .model .swiper-button-prev\",\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar dataModel = pop.getAttribute('data-model');\r\n\t\t\t\t// Get api\r\n\t\t\t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\t\txhttp.onreadystatechange = function () {\r\n\t\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\t\tvar modelList = document.querySelector('.about-media-video__wrapper .about-media-video .model .swiper-wrapper');\r\n\t\t\t\t\t\tmodelList.innerHTML = this.responseText;\r\n\r\n\t\t\t\t\t\tnew Swiper(\".about-media-video__wrapper .model .video__model-swiper\", {\r\n\t\t\t\t\t\t\tslidesPerView: 1,\r\n\t\t\t\t\t\t\tspaceBetween: 50,\r\n\t\t\t\t\t\t\tslidesPerGroup: 1,\r\n\r\n\t\t\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\t\t\tnextEl: \".about-media-video__wrapper .model .swiper-button-next\",\r\n\t\t\t\t\t\t\t\tprevEl: \".about-media-video__wrapper .model .swiper-button-prev\",\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// console.log(`not found model ${dataModel}`);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t\txhttp.open(\"GET\", `/get-about-gallery-popup/${dataModel}`, true);\r\n\t\t\t\txhttp.send();\r\n\r\n\t\t\t\t// .video__model-item.swiper-slide\r\n\t\t\t\t// img.video__model-item--img(src=\"./assets/images/about/default-partner.png\" alt=\"partner\")\r\n\t\t\t\t// h5.video__model-item--title Lorem ipsum dolor sit, amet consectetur adipisicing elit. Animi, quam.\r\n\t\t\t})\r\n\t\t})\r\n\t\t// event closed in model\r\n\t\tvar closedPopupModelVideo = document.querySelector('.model-closed');\r\n\t\tclosedPopupModelVideo.addEventListener('click', function () {\r\n\t\t\tvar model = document.getElementById('model-video');\r\n\t\t\tif (model) {\r\n\t\t\t\tif (model.classList.contains('active')) {\r\n\t\t\t\t\tmodel.classList.remove('active');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n}\r\n\r\nvar swiperAboutBlog = function () {\r\n\tif (!document.querySelector('.about-story-blog__wrapper')) {\r\n\t\treturn;\r\n\t}\r\n\t// about blog box\r\n\tvar swiperVideo = new Swiper(\".about-story-blog__wrapper .about-story-blog .releases-pagination-swiper\", {\r\n\t\tslidesPerView: 4,\r\n\t\tspaceBetween: 30,\r\n\t\tslidesPerGroup: 1,\r\n\t\tbreakpoints: {\r\n\t\t\t320: {\r\n\t\t\t\tspaceBetween: 25,\r\n\t\t\t},\r\n\t\t\t640: {\r\n\t\t\t\tspaceBetween: 30,\r\n\t\t\t}\r\n\t\t},\r\n\t\tnavigation: {\r\n\t\t\tnextEl: \".about-story-blog__wrapper .about-story-blog .swiper-button-next\",\r\n\t\t\tprevEl: \".about-story-blog__wrapper .about-story-blog .swiper-button-prev\",\r\n\t\t}\r\n\t});\r\n\r\n\tdocument.querySelector(\".about-story-blog__wrapper .releases-pagination .releases-pagination-swiper .releases-pagination__button\").classList.add(\"active\");\r\n\tvar pagination = document.querySelectorAll(\".about-story-blog__wrapper .releases-pagination .releases-pagination__button\");\r\n\tpagination.forEach(function (p) {\r\n\t\tp.addEventListener(\"click\", function (e) {\r\n\r\n\t\t\t// active number page\r\n\t\t\tpagination.forEach(function (item) {\r\n\t\t\t\tif (item.classList.contains(\"active\")) {\r\n\t\t\t\t\titem.classList.remove(\"active\");\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tp.classList.add('active');\r\n\r\n\t\t\t// get data-page\r\n\t\t\tvar value = p.getAttribute(\"data-page\");\r\n\r\n\t\t\t// Get api\r\n\t\t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\txhttp.onreadystatechange = function () {\r\n\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\tvar wrapper = document.querySelector('.about-story-blog .about-story-blog--left .blog');\r\n\t\t\t\t\twrapper.innerHTML = this.responseText;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// console.log(`Not Found ${value}`);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\txhttp.open(\"GET\", `/get-about-blog/${value}`, true);\r\n\t\t\txhttp.send();\r\n\r\n\t\t\t// scroll\r\n\t\t\t// var reScroll = document.getElementById(\"scrollToBlog\");\r\n\t\t\t// reScroll.scrollIntoView();\r\n\t\t})\r\n\t})\r\n}\r\n\r\nfunction validateEmail(email: string) {\r\n\tconst re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\treturn re.test(String(email).toLowerCase());\r\n}\r\n\r\nvar submitDetailBlog = function () {\r\n\tif (document.querySelector('.blog-detail__wrapper')) {\r\n\r\n\t\tvar formShare = document.getElementById('share-detail-form');\r\n\t\tvar emailInput = (document.getElementById('emailShare'));\r\n\t\tvar titlePost = document.querySelector('.blog-detail--left__title');\r\n\t\tvar info = document.getElementById('shareFormInfo');\r\n\t\temailInput.addEventListener('change', function (e) {\r\n\t\t\tinfo.innerHTML = \"\";\r\n\t\t\tif (info.classList.contains('success')) {\r\n\t\t\t\tinfo.classList.remove('success');\r\n\t\t\t}\r\n\t\t\telse if (info.classList.contains('error')) {\r\n\t\t\t\tinfo.classList.remove('error');\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tformShare.addEventListener('submit', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tvar email = emailInput.value;\r\n\r\n\t\t\tif (validateEmail(email)) {\r\n\t\t\t\t// Get api\r\n\t\t\t\tvar title = titlePost.innerHTML;\r\n\t\t\t\tvar dataSubmit = {\r\n\t\t\t\t\temail: email,\r\n\t\t\t\t\ttitlePost: title\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\t\txhttp.onreadystatechange = function () {\r\n\t\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\t\tif (this.responseText) {\r\n\t\t\t\t\t\t\tvar object = JSON.parse(this.responseText);\r\n\t\t\t\t\t\t\tif (object && object.Code) {\r\n\t\t\t\t\t\t\t\tif (object.Code === 400) {\r\n\t\t\t\t\t\t\t\t\tif (object && object.Message) {\r\n\t\t\t\t\t\t\t\t\t\tinfo.classList.add('error');\r\n\t\t\t\t\t\t\t\t\t\tinfo.innerHTML = object.Message + \"\";\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse if (object.Code === 200) {\r\n\t\t\t\t\t\t\t\t\tinfo.classList.add('success');\r\n\t\t\t\t\t\t\t\t\tinfo.innerHTML = object.Message + \"\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t// console.log(this.responseText);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// console.log(this.responseText);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// console.log(this.responseText);\r\n\t\t\t\t\t\t// info.classList.add('error');\r\n\t\t\t\t\t\t// if (this.responseText && JSON.parse(this.responseText)){\r\n\t\t\t\t\t\t// \tvar objectError = JSON.parse(this.responseText);\r\n\t\t\t\t\t\t// \tif (objectError && objectError.Message){\r\n\t\t\t\t\t\t// \t\tinfo.innerHTML = objectError.Message + \"\";\r\n\t\t\t\t\t\t// \t\treturn;\r\n\t\t\t\t\t\t// \t}\r\n\t\t\t\t\t\t// \tconsole.log(this.responseText);\r\n\t\t\t\t\t\t// \treturn;\r\n\t\t\t\t\t\t// }\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t\txhttp.open(\"POST\", `/post-detail-blog`, true);\r\n\t\t\t\txhttp.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n\t\t\t\txhttp.send(JSON.stringify(dataSubmit));\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvar data = emailInput.getAttribute('data-info');\r\n\t\t\t\tinfo.classList.add('error');\r\n\t\t\t\tinfo.innerHTML = data;\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n}\r\n\r\nvar swiperDealerProduct = function () {\r\n\tif (document.querySelector('.dealer-product__wrapper')) {\r\n\t\t// about blog box\r\n\t\tvar swiperDL = new Swiper(\".dealer-product__wrapper .dealer-product .releases-pagination-swiper\", {\r\n\t\t\tslidesPerView: 4,\r\n\t\t\tspaceBetween: 30,\r\n\t\t\tslidesPerGroup: 1,\r\n\r\n\t\t\tnavigation: {\r\n\t\t\t\tnextEl: \".dealer-product__wrapper .dealer-product .swiper-button-next\",\r\n\t\t\t\tprevEl: \".dealer-product__wrapper .dealer-product .swiper-button-prev\",\r\n\t\t\t}\r\n\t\t});\r\n\t\tvar pagination = document.querySelectorAll('.dealer-product__wrapper .dealer-product .releases-pagination__button');\r\n\t\tpagination.forEach(function (item) {\r\n\t\t\titem.addEventListener('click', function () {\r\n\t\t\t\t// active number page\r\n\t\t\t\tpagination.forEach(function (e) {\r\n\t\t\t\t\te.classList.remove('active');\r\n\t\t\t\t})\r\n\t\t\t\titem.classList.add('active');\r\n\r\n\t\t\t\tvar value = item.getAttribute('data-url');\r\n\r\n\t\t\t\t// Get api\r\n\t\t\t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\t\txhttp.onreadystatechange = function () {\r\n\t\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\t\tvar wrapper = document.querySelector('.dealer-product__wrapper .dealer-product .dealer-product-list');\r\n\t\t\t\t\t\twrapper.innerHTML = this.responseText;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// console.log(`not found dealer product ${value}`);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t\txhttp.open(\"GET\", `/get-dealer-product/${value}`, true);\r\n\t\t\t\txhttp.send();\r\n\t\t\t})\r\n\t\t})\r\n\r\n\r\n\t\t// scroll\r\n\t\tvar reScroll = document.getElementById(\"scrollToVideo\");\r\n\t\treScroll.scrollIntoView();\r\n\t}\r\n}\r\n\r\nfunction fMattressCollection() {\r\n\tif (document.querySelector('.mattress-collections__wrapper')) {\r\n\t\tvar options = document.querySelectorAll('.collections-section .options');\r\n\t\toptions.forEach(function (option) {\r\n\t\t\toption.addEventListener('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tif (!option.classList.contains('active')) {\r\n\t\t\t\t\toptions.forEach(function (o) {\r\n\t\t\t\t\t\to.classList.remove('active');\r\n\t\t\t\t\t})\r\n\t\t\t\t\toption.classList.add('active');\r\n\t\t\t\t}\r\n\t\t\t\t// Get api\r\n\t\t\t\tvar value = option.getAttribute('data-option');\r\n\t\t\t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\t\txhttp.onreadystatechange = function () {\r\n\t\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\t\tvar wrapper = document.querySelector('.mattress-collections__wrapper .mattress-collections .collections__products');\r\n\t\t\t\t\t\twrapper.innerHTML = this.responseText;\r\n\t\t\t\t\t\t// return true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// console.log(`not found explore collection ${value}`);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t\txhttp.open(\"GET\", `/get-explore-collection/${value}`, true);\r\n\t\t\t\txhttp.send();\r\n\r\n\t\t\t\t// Get api\r\n\t\t\t\tvar xhttp2 = new XMLHttpRequest();\r\n\t\t\t\txhttp2.onreadystatechange = function () {\r\n\t\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\t\tvar wrapper = document.querySelector('.mattress-recommend__wrapper > .container');\r\n\t\t\t\t\t\twrapper.innerHTML = this.responseText;\r\n\r\n\t\t\t\t\t\tvar btnArrows = document.querySelectorAll('.btn .btn-arrow');\r\n\t\t\t\t\t\tbtnArrows.forEach(function (btn) {\r\n\t\t\t\t\t\t\tbtn.innerHTML += ' ' + ``;\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tvar recommends = document.querySelectorAll('.options-recommend .options-recommend__link');\r\n\t\t\t\t\t\trecommends.forEach(function (recommend) {\r\n\t\t\t\t\t\t\trecommend.addEventListener('click', function (e) {\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\tif (!recommend.classList.contains('active')) {\r\n\t\t\t\t\t\t\t\t\trecommends.forEach(function (item) {\r\n\t\t\t\t\t\t\t\t\t\titem.classList.remove('active');\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\trecommend.classList.add('active');\r\n\r\n\t\t\t\t\t\t\t\t\t// Get api\r\n\t\t\t\t\t\t\t\t\tvar value = recommend.getAttribute('data-recommend');\r\n\t\t\t\t\t\t\t\t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\t\t\t\t\t\t\txhttp.onreadystatechange = function () {\r\n\t\t\t\t\t\t\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar wrapper = document.querySelector('.mattress-recommend__wrapper .mattress-recommend');\r\n\t\t\t\t\t\t\t\t\t\t\twrapper.innerHTML = this.responseText;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tvar btnArrows = document.querySelectorAll('.btn .btn-arrow');\r\n\t\t\t\t\t\t\t\t\t\t\tbtnArrows.forEach(function (btn) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbtn.innerHTML += ' ' + ``;\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tnew Swiper('.mattress-recommend__wrapper .right-recommend .swiper-container', {\r\n\t\t\t\t\t\t\t\t\t\t\t\tslidesPerView: 1,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tloop: true,\r\n\t\t\t\t\t\t\t\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnextEl: \".swiper-button-next\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tprevEl: \".swiper-button-prev\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t// return true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t// console.log(`not found recommend collection ${value}`);\r\n\t\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t\t\t\t\t\t\txhttp.open(\"GET\", `/get-recommend-collection/${value}`, true);\r\n\t\t\t\t\t\t\t\t\txhttp.send();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t})\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// console.log(`not found explore collection2 - ${value}`);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t\txhttp2.open(\"GET\", `/get-explore-collection-2/${value}`, true);\r\n\t\t\t\txhttp2.send();\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n\r\n\tif (document.querySelector('.mattress-recommend__wrapper')) {\r\n\t\tvar recommends = document.querySelectorAll('.options-recommend .options-recommend__link');\r\n\t\trecommends.forEach(function (recommend) {\r\n\t\t\trecommend.addEventListener('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tif (!recommend.classList.contains('active')) {\r\n\t\t\t\t\trecommends.forEach(function (item) {\r\n\t\t\t\t\t\titem.classList.remove('active');\r\n\t\t\t\t\t})\r\n\t\t\t\t\trecommend.classList.add('active');\r\n\r\n\t\t\t\t\t// Get api\r\n\t\t\t\t\tvar value = recommend.getAttribute('data-recommend');\r\n\t\t\t\t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\t\t\txhttp.onreadystatechange = function () {\r\n\t\t\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\t\t\tvar wrapper = document.querySelector('.mattress-recommend__wrapper .mattress-recommend');\r\n\t\t\t\t\t\t\twrapper.innerHTML = this.responseText;\r\n\r\n\t\t\t\t\t\t\tvar btnArrows = document.querySelectorAll('.btn .btn-arrow');\r\n\t\t\t\t\t\t\tbtnArrows.forEach(function (btn) {\r\n\t\t\t\t\t\t\t\tbtn.innerHTML += ' ' + ``;\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tnew Swiper('.mattress-recommend__wrapper .right-recommend .swiper-container', {\r\n\t\t\t\t\t\t\t\tslidesPerView: 1,\r\n\r\n\t\t\t\t\t\t\t\tloop: true,\r\n\t\t\t\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\t\t\t\tnextEl: \".swiper-button-next\",\r\n\t\t\t\t\t\t\t\t\tprevEl: \".swiper-button-prev\",\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t// console.log(`not found recommend collection ${value}`);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\t\t\txhttp.open(\"GET\", `/get-recommend-collection/${value}`, true);\r\n\t\t\t\t\txhttp.send();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n}\r\n\r\nfunction preventDefalutLink() {\r\n\tvar link = document.querySelector('.advertise-pic > a');\r\n\tif (link) {\r\n\t\tlink.addEventListener('click', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t})\r\n\t}\r\n}\r\nvar scrolltosilkfoam = function () {\r\n\tif (document.querySelector('.index-2')) {\r\n\t\tvar items = document.querySelector('.slogan .scroll ');\r\n\t\tif (items) {\r\n\t\t\t// items.forEach(function(item){\r\n\t\t\titems.addEventListener('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tvar hrefItem = items.getAttribute('href');\r\n\t\t\t\t// console.log(hrefItem);\r\n\t\t\t\tvar featuredItem = document.querySelector(hrefItem);\r\n\t\t\t\tvar hHeader = document.querySelector('.header_wapper');\r\n\t\t\t\t// console.log(hHeader.clientHeight);\r\n\t\t\t\tvar topFeatured = 0;\r\n\t\t\t\tif (featuredItem) {\r\n\t\t\t\t\tvar parentFeatured = featuredItem.offsetParent;\r\n\t\t\t\t\tvar count = 0;\r\n\t\t\t\t\twhile (parentFeatured.nodeName !== \"BODY\" && count < 100) {\r\n\t\t\t\t\t\ttopFeatured += parentFeatured.offsetTop;\r\n\t\t\t\t\t\tparentFeatured = parentFeatured.offsetParent;\r\n\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttopFeatured += featuredItem.offsetTop;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Trừ đi thanh Header\r\n\t\t\t\ttopFeatured -= hHeader.clientHeight;\r\n\r\n\t\t\t\tif (featuredItem.clientHeight < (window.innerHeight - hHeader.clientHeight)) {\r\n\t\t\t\t\t// Top: 50%, translateY(-50%)\r\n\t\t\t\t\ttopFeatured -= (window.innerHeight / 2);\r\n\t\t\t\t\ttopFeatured += (featuredItem.clientHeight / 1.5);\r\n\t\t\t\t\t// console.log(topFeatured);\r\n\t\t\t\t}\r\n\r\n\t\t\t\twindow.scroll({\r\n\t\t\t\t\ttop: topFeatured,\r\n\t\t\t\t\tleft: 0,\r\n\t\t\t\t\tbehavior: 'smooth',\r\n\t\t\t\t});\r\n\t\t\t})\r\n\t\t\t// })\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction scrollMattress() {\r\n\tif (document.querySelector('.mattress-type')) {\r\n\t\tvar items = document.querySelectorAll('.title-mattress-type .menu__item');\r\n\t\tif (items) {\r\n\t\t\titems.forEach(function (item) {\r\n\t\t\t\titem.addEventListener('click', function (e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tvar hrefItem = item.getAttribute('href');\r\n\t\t\t\t\tvar featuredItem = document.querySelector(hrefItem);\r\n\t\t\t\t\tvar hHeader = document.querySelector('.header_wapper');\r\n\t\t\t\t\t// console.log(hrefItem);\r\n\t\t\t\t\tvar topFeatured = 0;\r\n\t\t\t\t\tif (featuredItem) {\r\n\t\t\t\t\t\tvar parentFeatured = featuredItem.offsetParent;\r\n\t\t\t\t\t\tvar count = 0;\r\n\t\t\t\t\t\twhile (parentFeatured.nodeName !== \"BODY\" && count < 100) {\r\n\t\t\t\t\t\t\ttopFeatured += parentFeatured.offsetTop;\r\n\t\t\t\t\t\t\tparentFeatured = parentFeatured.offsetParent;\r\n\t\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttopFeatured += featuredItem.offsetTop;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Trừ đi thanh Header\r\n\t\t\t\t\ttopFeatured -= hHeader.clientHeight;\r\n\r\n\t\t\t\t\tif (featuredItem.clientHeight < (window.innerHeight - hHeader.clientHeight)) {\r\n\t\t\t\t\t\t// Top: 50%, translateY(-50%)\r\n\t\t\t\t\t\ttopFeatured -= (window.innerHeight / 2);\r\n\t\t\t\t\t\ttopFeatured += (featuredItem.clientHeight / 2);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.scroll({\r\n\t\t\t\t\t\ttop: topFeatured,\r\n\t\t\t\t\t\tleft: 0,\r\n\t\t\t\t\t\tbehavior: 'smooth',\r\n\t\t\t\t\t});\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// import { AOS } from 'aos';\r\n\r\nfunction handleGlobal() {\r\n\tvar global = document.querySelector('.about-story-global__img');\r\n\tif (global) {\r\n\t\tvar parentGlobal = global.offsetParent;\r\n\t\tvar count = 0;\r\n\t\tvar pos = global.offsetTop;\r\n\t\twhile (parentGlobal.nodeName !== \"BODY\" && count < 100) {\r\n\t\t\tpos += parentGlobal.offsetTop;\r\n\t\t\tparentGlobal = parentGlobal.offsetParent;\r\n\t\t\tcount++;\r\n\t\t}\r\n\t\tvar hHeader = document.querySelector('.header_wapper');\r\n\r\n\t\tvar posHeightGlobal = pos;\r\n\t\tpos -= hHeader.clientHeight;\r\n\r\n\t\tif (global.clientHeight < (window.innerHeight - hHeader.clientHeight)) {\r\n\t\t\tposHeightGlobal -= (window.innerHeight - hHeader.clientHeight);\r\n\t\t\tposHeightGlobal += (global.clientHeight);\r\n\r\n\t\t\t// Top: 50%, translateY(-50%)\r\n\t\t\tpos -= (window.innerHeight / 2);\r\n\t\t\tpos += (global.clientHeight / 2);\r\n\t\t}\r\n\t\tvar listIcon = document.querySelectorAll('.about-story-global__img--icon');\r\n\r\n\t\twindow.addEventListener('scroll', function (e: any) {\r\n\t\t\t// console.log(window.scrollY + ' - ' + pos);\r\n\t\t\tif (window.scrollY >= pos) {\r\n\t\t\t\tlistIcon.forEach(function (icon) {\r\n\t\t\t\t\ticon.classList.add('animate__animated');\r\n\t\t\t\t\ticon.classList.add('animate__bounce');\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\telse if (window.scrollY < posHeightGlobal) {\r\n\t\t\t\tlistIcon.forEach(function (icon) {\r\n\t\t\t\t\ticon.classList.remove('animate__animated');\r\n\t\t\t\t\ticon.classList.remove('animate__bounce');\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// window.scroll({\r\n\t\t// \ttop: posHeightGlobal,\r\n\t\t// \tleft: 0,\r\n\t\t// \tbehavior: 'smooth'\r\n\t\t// });\r\n\t\t// console.log(global);\r\n\t\t// .animate__animated.animate__bounce\r\n\t}\r\n}\r\n\r\nfunction scrollTopHeader(queryString: any, stringHeader: any = \".header_wapper\") {\r\n\tvar wrapper = document.querySelector(queryString);\r\n\tvar parentWrapper = wrapper.offsetParent;\r\n\tvar pos = wrapper.offsetTop;\r\n\tvar count = 0;\r\n\twhile (parentWrapper.nodeName !== \"BODY\" && count < 100) {\r\n\t\tpos += parentWrapper.offsetTop;\r\n\t\tparentWrapper = parentWrapper.offsetParent;\r\n\t\tcount++;\r\n\t}\r\n\tvar hHeader = document.querySelector(stringHeader);\r\n\tpos -= hHeader.clientHeight;\r\n\twindow.scroll({\r\n\t\ttop: pos,\r\n\t\tleft: 0,\r\n\t\tbehavior: 'smooth',\r\n\t});\r\n\treturn pos;\r\n}\r\n\r\nfunction handleOrderProduct() {\r\n\tif (document.querySelector('.details-infor__wrapper')) {\r\n\t\tvar order = document.querySelector('.product-order > a');\r\n\t\tif (!order) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar size = document.querySelector('.details-infor__wrapper .detail-infor__content .product-oftions .size');\r\n\t\tvar amount = document.querySelector('.details-infor__wrapper .detail-infor__content .product-oftions .amount');\r\n\t\tif (size.value !== \"\") {\r\n\t\t\tif (size.classList.contains('error')) {\r\n\t\t\t\tsize.classList.remove('error');\r\n\t\t\t}\r\n\t\t\tsize.classList.add('success');\r\n\t\t}\r\n\t\telse {\r\n\t\t\tsize.classList.remove('error');\r\n\t\t\tsize.classList.remove('success');\r\n\t\t}\r\n\r\n\t\tif (amount.value !== \"\") {\r\n\t\t\tif (amount.classList.contains('error')) {\r\n\t\t\t\tamount.classList.remove('error');\r\n\t\t\t}\r\n\t\t\tamount.classList.add('success');\r\n\t\t}\r\n\t\telse {\r\n\t\t\tamount.classList.remove('error');\r\n\t\t\tamount.classList.remove('success');\r\n\t\t}\r\n\r\n\t\tsize.addEventListener('change', function () {\r\n\t\t\tif (this.value !== \"\") {\r\n\t\t\t\tif (this.classList.contains('error')) {\r\n\t\t\t\t\tthis.classList.remove('error');\r\n\t\t\t\t}\r\n\t\t\t\tthis.classList.add('success');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.classList.remove('error');\r\n\t\t\t\tthis.classList.remove('success');\r\n\t\t\t}\r\n\t\t})\r\n\t\tamount.addEventListener('change', function () {\r\n\t\t\tif (this.value !== \"\") {\r\n\t\t\t\tif (this.classList.contains('error')) {\r\n\t\t\t\t\tthis.classList.remove('error');\r\n\t\t\t\t}\r\n\t\t\t\tthis.classList.add('success');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.classList.remove('error');\r\n\t\t\t\tthis.classList.remove('success');\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\torder.addEventListener('click', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\t// Get api\r\n\t\t\tvar titleProduct = document.querySelector('.details-infor__wrapper .detail-infor__content .product-infor__title');\r\n\t\t\tvar idProduct = titleProduct.getAttribute('data-product');\r\n\r\n\r\n\t\t\tvar check = false;\r\n\t\t\tif (size.value === \"\") {\r\n\t\t\t\tif (size.classList.contains('success')) {\r\n\t\t\t\t\tsize.classList.remove('success');\r\n\t\t\t\t}\r\n\t\t\t\tsize.classList.add('error');\r\n\t\t\t\tcheck = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (amount.value === \"\") {\r\n\t\t\t\tif (amount.classList.contains('success')) {\r\n\t\t\t\t\tamount.classList.remove('success');\r\n\t\t\t\t}\r\n\t\t\t\tamount.classList.add('error');\r\n\t\t\t\tcheck = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (check) {\r\n\t\t\t\t// scroll\r\n\t\t\t\tscrollTopHeader('.details-infor');\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tvar idSize = size.options[size.selectedIndex].getAttribute('data-property');\r\n\t\t\tvar idQuanlity = amount.value;\r\n\r\n\t\t\t// console.log([size]);\r\n\t\t\t// console.log(size.options);\r\n\t\t\tvar data = {\r\n\t\t\t\tpId: parseInt(idProduct),\r\n\t\t\t\tpropertyId: parseInt(idSize),\r\n\t\t\t\tquantity: parseInt(idQuanlity)\r\n\t\t\t};\r\n\t\t\t// console.log(JSON.stringify(data));\r\n\t\t\t// Get api\r\n\t\t\tvar xhttp = new XMLHttpRequest();\r\n\t\t\txhttp.onreadystatechange = function () {\r\n\t\t\t\tif (this.readyState == 4 && this.status == 200) {\r\n\t\t\t\t\t// shop cart\r\n\t\t\t\t\treloadForm();\r\n\r\n\t\t\t\t\tremoveActiveForm();\r\n\t\t\t\t\taddActiveForm('form-custom__wrapper');\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// console.log(\"API order product failed!!!\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\t// xhttp.open(\"GET\", \"https://jsonplaceholder.typicode.com/posts\", true);\r\n\t\t\txhttp.open(\"POST\", '/post-order-product', true);\r\n\t\t\txhttp.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n\t\t\txhttp.send(JSON.stringify(data));\r\n\t\t})\r\n\t}\r\n}\r\n\r\n// function handleOrderProduct(){\r\n// \tif(document.querySelector('.details-infor__wrapper')){\r\n// \t\tvar titleProduct = document.querySelector('.details-infor__wrapper .detail-infor__content .product-infor__title');\r\n// \t\tvar idProduct = titleProduct.getAttribute('data-product');\r\n\r\n// \t\tvar size = document.querySelector('.details-infor__wrapper .detail-infor__content .product-oftions .size');\r\n// \t\tvar amount = document.querySelector('.details-infor__wrapper .detail-infor__content .product-oftions .amount');\r\n\r\n// \t\tsize.addEventListener('change', function(){\r\n// \t\t\tif(this.value === \"\"){\r\n// \t\t\t\tthis.classList.add('error');\r\n// \t\t\t}\r\n// \t\t\telse{\r\n// \t\t\t\tthis.classList.add('success');\r\n\r\n\r\n// \t\t\t}\r\n// \t\t})\r\n// \t\tamount.addEventListener('change', function(){\r\n// \t\t\tif(this.value === \"\"){\r\n// \t\t\t\tthis.classList.add('error');\r\n// \t\t\t}\r\n// \t\t\telse{\r\n// \t\t\t\tthis.classList.add('success');\r\n// \t\t\t}\r\n// \t\t})\r\n// \t}\r\n// }\r\n\r\n// function calcPriceProduct(){\r\n// \tvar size = document.querySelector('.details-infor__wrapper .detail-infor__content .product-oftions .size');\r\n// \tvar amount = document.querySelector('.details-infor__wrapper .detail-infor__content .product-oftions .amount');\r\n\r\n// \tvar price = document.querySelector('.details-infor__wrapper .detail-infor__content .product-infor__price');\r\n\r\n// \tif (!parseInt(size.value) || !parseInt(amount.value)){\r\n// \t\treturn;\r\n// \t}\r\n// \tvar iSize = parseInt(size.value);\r\n// \tvar iAmount = parseInt(amount.value);\r\n\r\n// \tvar formatMoney = new Intl.NumberFormat('en-US',\r\n// \t{\r\n// \t\tstyle: 'currency',\r\n// \t\tcurrency: 'USD'\r\n// \t});\r\n\r\n// \t// (\"#size\").on(\"change\", function (e) {\r\n// \t// \t$('#product-price').text(formatMoney.format(this.value).replace(/\\.0+$/, ''));\r\n// \t// });\r\n// }\r\n\r\nfunction heightProductDetails() {\r\n\tvar items = document.querySelectorAll('.details-comprarison__wrapper .comparision-section>*');\r\n\tif (items) {\r\n\t\tvar len = 0;\r\n\t\tvar lenList = items.length;\r\n\t\titems.forEach(function (item) {\r\n\t\t\tvar num = item.children.length;\r\n\t\t\tif (len < num) {\r\n\t\t\t\tlen = num;\r\n\t\t\t\t// console.log(len)\r\n\t\t\t}\r\n\t\t});\r\n\t\tfor (let i = 0; i < len; ++i) {\r\n\t\t\tvar max = 0;\r\n\t\t\tfor (let runList = 0; runList < lenList; ++runList) {\r\n\t\t\t\tvar hChild = items[runList].children[i].clientHeight;\r\n\t\t\t\tif (max < hChild) {\r\n\t\t\t\t\tmax = hChild;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfor (let runList = 0; runList < lenList; ++runList) {\r\n\t\t\t\tvar item = items[runList].children[i];\r\n\t\t\t\titem.style.height = `${max}px`;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction popupHandleClick() {\r\n\tvar popups = document.querySelectorAll('.form-info__popup');\r\n\tpopups.forEach(function (itemPop) {\r\n\t\tvar btnPop = itemPop.querySelector('.btn--link');\r\n\t\tvar closePop = itemPop.querySelector('.btn-close');\r\n\r\n\t\tbtnPop.addEventListener('click', function () {\r\n\t\t\titemPop.classList.remove('active');\r\n\t\t})\r\n\t\tclosePop.addEventListener('click', function () {\r\n\t\t\titemPop.classList.remove('active');\r\n\t\t})\r\n\r\n\t})\r\n}\r\nfunction checkBoxPoup() {\r\n\tvar formDealer = document.querySelector('#form-dealer__wrapper .form-content--group');\r\n\tif (formDealer) {\r\n\t\tvar formGroupDealer = formDealer.querySelectorAll('.input-group');\r\n\t\tformGroupDealer.forEach(function (itemGroup) {\r\n\t\t\tvar checkBoxes = itemGroup.querySelectorAll('.input-group--checkbox input[type=\"checkbox\"]');\r\n\t\t\tif (checkBoxes.length > 0) {\r\n\t\t\t\tcheckedHandle(checkBoxes);\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t}\r\n}\r\nfunction checkedHandle(checkBoxes: any) {\r\n\t// tạo sự kiện cho từng thằng checkbox\r\n\tcheckBoxes.forEach(function (itemEvent: any) {\r\n\r\n\t\titemEvent.onclick = function (e: any) {\r\n\t\t\tif (itemEvent.checked === true) {\r\n\t\t\t\tcheckBoxes.forEach(function (itemBox: any) {\r\n\t\t\t\t\tif (itemBox !== itemEvent) {\r\n\t\t\t\t\t\t// console.log(itemBox)\r\n\t\t\t\t\t\tvar itemTemp = itemBox;\r\n\t\t\t\t\t\titemTemp.checked = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\titemEvent.checked = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\titemEvent.checked = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// console.log(itemChecked.checked);\r\n\t});\r\n}\r\n\r\n\r\n// Havas scripts\r\n\r\n\r\nfunction handleQtyProduct() {\r\n\tconst inpNumberQty = document.querySelector('.product-infor-item__qty #numberQty');\r\n\tconst btnDecrease = document.querySelector('.product-infor-item__qty .decrease_');\r\n\tconst btnIncrease = document.querySelector('.product-infor-item__qty .increase_');\r\n\r\n\tif (!inpNumberQty || !btnDecrease || !btnIncrease) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tbtnDecrease.addEventListener('click', function () {\r\n\t\tdecreaseValue(this);\r\n\t})\r\n\tbtnIncrease.addEventListener('click', function () {\r\n\t\tincreaseValue(this);\r\n\t})\r\n\r\n\tfunction increaseValue(_this: any) {\r\n\t\tvar value = parseInt(inpNumberQty.value, 10);\r\n\t\tvalue = isNaN(value) ? 1 : value;\r\n\t\tvalue++;\r\n\t\tinpNumberQty.value = `${value}`;\r\n\t}\r\n\r\n\tfunction decreaseValue(_this: any) {\r\n\t\tvar value = parseInt(inpNumberQty.value, 10);\r\n\t\tvalue = isNaN(value) ? 1 : value;\r\n\t\tvalue < 2 ? value = 2 : '';\r\n\t\tvalue--;\r\n\t\tinpNumberQty.value = `${value}`;\r\n\t}\r\n}\r\n\r\nfunction ImgUpload() {\r\n\tlet imgWrap: HTMLElement | null = null;\r\n\tvar imgArray: any = [];\r\n\r\n\tconst upload = document.querySelector('.upload__inputfile');\r\n\r\n\t// var wrapUpload = document.querySelector('.upload .upload-wrap');\r\n\tupload && upload.addEventListener('change', function (e) {\r\n\t\tvar maxLength = upload.getAttribute('data-max_length');\r\n\t\tconst files = (e.target as HTMLInputElement).files;\r\n\t\tif (!imgWrap) {\r\n\t\t\timgWrap = this.closest('.upload')?.querySelector('.upload__img-wrap');\r\n\t\t}\r\n\t\tconst filesArr = Array.prototype.slice.call(files);\r\n\t\timgWrap.innerHTML = \"\";\r\n\r\n\t\tlet iterator = 0;\r\n\t\tfilesArr.forEach(function (f: File) {\r\n\t\t\tif (!f.type.match('image.*')) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (imgArray.length > Number(maxLength)) {\r\n\t\t\t\treturn false;\r\n\t\t\t} else {\r\n\t\t\t\tconst len = imgArray.filter((item: any) => item !== undefined).length;\r\n\r\n\t\t\t\tif (len > Number(maxLength)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\timgArray.push(f);\r\n\r\n\t\t\t\t\tconst reader = new FileReader();\r\n\t\t\t\t\treader.onload = function (e) {\r\n\t\t\t\t\t\t// const html = `
    `;\r\n\t\t\t\t\t\tconst html = `
    `;\r\n\t\t\t\t\t\timgWrap?.insertAdjacentHTML('beforeend', html);\r\n\t\t\t\t\t\titerator++;\r\n\t\t\t\t\t};\r\n\t\t\t\t\treader.readAsDataURL(f);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t})\r\n\r\n\t// document.body.addEventListener('click', function (e) {\r\n\t// \tconst target = e.target;\r\n\r\n\t// \tif (target.classList.contains('upload__img-close')) {\r\n\t// \t\tvar file = target.parentElement.dataset.file;\r\n\r\n\t// \t\tfor (var i = 0; i < imgArray.length; i++) {\r\n\t// \t\t\tif (imgArray[i].name === file) {\r\n\t// \t\t\t\timgArray.splice(i, 1);\r\n\t// \t\t\t\tbreak;\r\n\t// \t\t\t}\r\n\t// \t\t}\r\n\r\n\t// \t\ttarget.parentElement.parentElement.remove();\r\n\t// \t}\r\n\t// });\r\n\r\n\t// // document.getElementById('form-reviewForSell').onsubmit = function (e) {\r\n\t// // \te.preventDefault();\r\n\t// // \tconsole.log(\"OK submit\");\r\n\t// // \tconst fullname = document.getElementById('FullName');\r\n\r\n\t// // \tconsole.log(fullname.value === '');\r\n\t// // }\r\n\t// // $(\"#form-reviewForSell\").submit(function (e) {\r\n\t// // \tif ($('#FullName').val() == '')\r\n\t// // \t{\r\n\t// // \t\te.preventDefault();\r\n\t// // \t\t$('#ErrorName').removeAttr('hidden', 'hidden')\r\n\t// // \t}\r\n\r\n\t// // \tif ($('#Phone').val().replace('/ /g', '').length != 10 || $('#Phone').val() == '')\r\n\t// // \t{\r\n\t// // \t\te.preventDefault();\r\n\t// // \t\t$('#ErrorPhone').removeAttr('hidden', 'hidden')\r\n\t// // \t}\r\n\r\n\t// // \tif ($('#FullName').val() != '' && $('#Phone').val().replace('/ /g', '').length == 10 && $('#Phone').val() != '') {\r\n\t// // \t\tvar fd = new FormData($('#form-reviewForSell')[0]);\r\n\t// // \t\tfd.append(\"Content\", $('#Content').val());\r\n\t// // \t\te.preventDefault();\r\n\t// // \t\t$.ajax({\r\n\t// // \t\t\ttype: 'POST',\r\n\t// // \t\t\turl: \"@Url.Action(\"Comment\", \"Product\")\",\r\n\t// // \t\t\tdata: fd,\r\n\t// // \t\t\tprocessData: false,\r\n\t// // \t\t\tcontentType: false,\r\n\t// // \t\t\tsuccess: function (res) {\r\n\t// // \t\t\t\tif (res.Result == 'Success') {\r\n\t// // \t\t\t\t\talertify.success(\"Đánh giá sản phẩm thành công. Đánh giá của bạn sẽ được admin xác nhận trong thời gian sớm nhất.\")\r\n\t// // \t\t\t\t\t//window.location.reload()\r\n\t// // \t\t\t\t}\r\n\t// // \t\t\t}\r\n\t// // \t\t})\r\n\t// // \t}\r\n\t// // })\r\n}\r\n\r\n\r\nfunction closeHandle(popup: any, callBack: Function = function () { }) {\r\n\tpopup.classList.remove('is-showed');\r\n\r\n\tcallBack(popup);\r\n}\r\n\r\nfunction popupHandleProductHavas(target: any, callBackClose: Function = function () { return \"\" }) {\r\n\ttry {\r\n\t\tif (typeof target === 'string') {\r\n\t\t\ttarget = document.querySelector(`${target}`);\r\n\t\t}\r\n\r\n\t\tconst clickHandleTarget = function (e: any) {\r\n\t\t\te.preventDefault();\r\n\t\t\tpopup.classList.add('is-showed');\r\n\t\t}\r\n\r\n\t\ttarget.removeEventListener('click', clickHandleTarget);\r\n\t\ttarget.addEventListener('click', clickHandleTarget);\r\n\r\n\t\tlet popup = document.querySelector(`[data-popup-section=\"${target.getAttribute('data-popup')}\"]`) || document.getElementById(`${target.getAttribute('data-popup')}`);\r\n\r\n\t\tif (!popup) {\r\n\t\t\tthrow `Not found popup: ${target.getAttribute('data-popup')}`;\r\n\t\t}\r\n\r\n\t\tif (popup.classList.contains('initialized')) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet closes = popup.querySelectorAll('.modal-close');\r\n\r\n\t\tconst evtClose = function (e: any) {\r\n\t\t\te.preventDefault();\r\n\t\t\tcloseHandle(popup, callBackClose);\r\n\t\t}\r\n\r\n\t\tcloses.forEach(function (close) {\r\n\t\t\tclose.addEventListener('click', evtClose);\r\n\t\t})\r\n\r\n\t\tlet cancels = popup.querySelectorAll('.cancel');\r\n\t\tcancels.forEach(function (cancel: HTMLElement) {\r\n\t\t\tcancel.addEventListener('click', function (e: any) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tcloseHandle(popup);\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\tpopup.addEventListener('click', function (e) {\r\n\t\t\te.stopPropagation();\r\n\t\t\tif (e.target === popup) {\r\n\t\t\t\tcloseHandle(popup, callBackClose);\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tpopup.classList.add(\"initialized\");\r\n\t}\r\n\tcatch (err) {\r\n\t\tconsole.error(err);\r\n\t}\r\n}\r\n\r\nfunction initPopups() {\r\n\tlet btnPopups = document.querySelectorAll('a[data-popup]');\r\n\tbtnPopups.forEach(function (item) {\r\n\t\tpopupHandleProductHavas(item, function (popup: HTMLElement) {\r\n\t\t\treturn true;\r\n\t\t})\r\n\t})\r\n}\r\n\r\n\r\n\r\nfunction handlePayment() {\r\n\tconst payemntSection = document.getElementById('payemntSection');\r\n\tif (payemntSection) {\r\n\t\tpayemntSection.addEventListener('submit', function (event: any) {\r\n\t\t\t// Prevent form submission if the Enter key is pressed\r\n\t\t\tif (event.key === 'Enter') {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst methodPayment = document.getElementsByName('radioMethodPayment');\r\n\t\tconst btnSubmit = document.querySelector('#payemntSection .submit button');\r\n\r\n\r\n\t\tif (methodPayment.length > 0) {\r\n\t\t\tmethodPayment.forEach(function (item: any) {\r\n\t\t\t\tif (item.checked) {\r\n\t\t\t\t\tbtnSubmit.style.display = \"\";\r\n\t\t\t\t}\r\n\t\t\t\titem.addEventListener('change', function () {\r\n\t\t\t\t\tconsole.log(item.value);\r\n\t\t\t\t\tbtnSubmit.style.display = \"\";\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst Utils = {\r\n\taddClass: function (element: any, theClass: any) {\r\n\t\telement.classList.add(theClass);\r\n\t},\r\n\r\n\tremoveClass: function (element: any, theClass: any) {\r\n\t\telement.classList.remove(theClass);\r\n\t},\r\n\r\n\tshowMore: function (element: any, excerpt: any) {\r\n\t\telement.addEventListener(\"click\", (event: any) => {\r\n\t\t\tevent.preventDefault();\r\n\r\n\t\t\tconst target = element;\r\n\t\t\ttarget.classList.toggle('is-showed');\r\n\r\n\r\n\t\t\tif (target.classList.contains('is-showed')) {\r\n\t\t\t\ttarget.textContent = target.getAttribute('data-textless');\r\n\t\t\t\tthis.removeClass(excerpt, \"excerpt-hidden\");\r\n\t\t\t\tthis.addClass(excerpt, \"excerpt-visible\");\r\n\t\t\t} else {\r\n\t\t\t\ttarget.textContent = target.getAttribute('data-textmore');\r\n\t\t\t\tthis.removeClass(excerpt, \"excerpt-visible\");\r\n\t\t\t\tthis.addClass(excerpt, \"excerpt-hidden\");\r\n\t\t\t}\r\n\r\n\t\t\t// const linkText = target.textContent.toLowerCase();\r\n\t\t\t// if (linkText == \"show more\") {\r\n\t\t\t// \telement.textContent = \"Show less\";\r\n\t\t\t// \tthis.removeClass(excerpt, \"excerpt-hidden\");\r\n\t\t\t// \tthis.addClass(excerpt, \"excerpt-visible\");\r\n\t\t\t// } else {\r\n\t\t\t// \telement.textContent = \"Show more\";\r\n\t\t\t// \tthis.removeClass(excerpt, \"excerpt-visible\");\r\n\t\t\t// \tthis.addClass(excerpt, \"excerpt-hidden\");\r\n\t\t\t// }\r\n\t\t});\r\n\t}\r\n};\r\n\r\nconst ExcerptWidget = {\r\n\tshowMore: function (showMoreLinksTarget: any, excerptTarget: any) {\r\n\t\tconst showMoreLinks = document.querySelectorAll(showMoreLinksTarget);\r\n\r\n\t\tshowMoreLinks.forEach(function (link) {\r\n\r\n\t\t\tconst excerpt = link.previousElementSibling.querySelector(excerptTarget);\r\n\t\t\tconsole.log(excerpt.clientHeight);\r\n\r\n\t\t\tif (excerpt && excerpt.clientHeight > 20) {\r\n\t\t\t\texcerpt.classList.add('excerpt-hidden');\r\n\t\t\t\tUtils.showMore(link, excerpt);\r\n\t\t\t} else {\r\n\t\t\t\tlink.style.display = \"none\";\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t}\r\n};\r\n\r\nExcerptWidget.showMore('.js-show-more', '.js-excerpt');\r\n\r\nimport { initPage } from \"./libraries/pagination\";\r\nimport { _base } from \"./libraries/_base\";\r\nimport { fancyboxLib } from \"./libraries/fancybox-lib\";\r\nimport { link } from \"fs\";\r\n\r\n_base();\r\ninitPage();\r\n\r\ndeclare var window: any;\r\n\r\nconst pageCommentProduct = function (numberValue: number = 4) {\r\n\tif (document.querySelector('.wrapper-pagination .pagination')) {\r\n\t\tconst initPageCmts = new window.pagination({\r\n\t\t\tselector: '.wrapper-pagination .pagination',\r\n\t\t\titems: '.wrapper-posts .posts-item',\r\n\t\t\tpage: numberValue,\r\n\t\t\tscroll: {\r\n\t\t\t\tid: \"productReviews\"\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn true;\r\n\t}\r\n\treturn undefined;\r\n}\r\n\r\n\r\n\r\nfunction initSwiperSlider(target: HTMLElement) {\r\n\tconst sw = new Swiper(target, {\r\n\t\t// zoom: true,\r\n\r\n\t\t// // autoplay: {\r\n\t\t// // delay: 2400,\r\n\t\t// // pauseOnMouseEnter: true,\r\n\t\t// // disableOnInteraction: false,\r\n\t\t// // },\r\n\t\t// navigation: {\r\n\t\t// \tnextEl: \".swiper-button-next\",\r\n\t\t// \tprevEl: \".swiper-button-prev\",\r\n\t\t// },\r\n\t\t// pagination: {\r\n\t\t// \tel: \".swiper-pagination\",\r\n\t\t// \tclickable: true,\r\n\t\t// },\r\n\r\n\t\t// effect: \"fade\",\r\n\r\n\t\t// zoom: true,\r\n\t\tslidesPerView: 1,\r\n\r\n\t\tnavigation: {\r\n\t\t\tnextEl: \".swiper-button-next\",\r\n\t\t\tprevEl: \".swiper-button-prev\",\r\n\t\t},\r\n\t})\r\n\treturn sw;\r\n}\r\n\r\nfunction initSwiperThumb(target: HTMLElement) {\r\n\t// const sw = new Swiper(target, {\r\n\t// \tslidesPerView: \"auto\",\r\n\t// \tspaceBetween: 10,\r\n\t// })\r\n\r\n\tvar sw = new Swiper(target, {\r\n\t\tspaceBetween: 10,\r\n\t\tslidesPerView: 4,\r\n\t\twatchSlidesVisibility: true,\r\n\t\twatchSlidesProgress: true,\r\n\t\tnavigation: {\r\n\t\t\tnextEl: \".swiper-button-next\",\r\n\t\t\tprevEl: \".swiper-button-prev\",\r\n\t\t},\r\n\t});\r\n\treturn sw;\r\n}\r\n\r\n\r\nfunction handleSwThumb() {\r\n\tconst thumb = document.querySelector('.product-detail-section .swiper-btn__nav-detail .mySwiper');\r\n\t// const thumb = document.querySelector('.works-section .swiper-thumbSlider');\r\n\tconst slider = document.querySelector('.product-detail-section .detail-infor__liveview .mySwiper2');\r\n\tif (thumb && slider) {\r\n\t\tconst swSlider = initSwiperSlider(slider);\r\n\t\tconst swThumb = initSwiperThumb(thumb);\r\n\r\n\t\tconst lsThumb = thumb.querySelectorAll('.swiper-slide');\r\n\t\twindow.delHandle(lsThumb, 'is-actived');\r\n\t\tlsThumb[0].classList.add('is-actived');\r\n\r\n\t\tswSlider.on('slideChange', function () {\r\n\t\t\tlet activeIdx = swSlider.activeIndex;\r\n\t\t\tswThumb.slideTo(activeIdx);\r\n\r\n\t\t\twindow.delHandle(lsThumb, 'is-actived');\r\n\t\t\tlsThumb[activeIdx].classList.add('is-actived');\r\n\t\t});\r\n\r\n\t\tswThumb.on('slideChange', function () {\r\n\t\t\tlet activeIdx = swThumb.activeIndex;\r\n\t\t\tswSlider.slideTo(activeIdx);\r\n\r\n\t\t\twindow.delHandle(lsThumb, 'is-actived');\r\n\t\t\tlsThumb[activeIdx].classList.add('is-actived');\r\n\t\t})\r\n\r\n\t\tlsThumb.forEach(function (itemThumb, idx) {\r\n\t\t\titemThumb.addEventListener('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tconsole.log(this, ' - idx: ', idx);\r\n\t\t\t\tswSlider.slideTo(idx);\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n}\r\n\r\nfunction swPurchaseServices() {\r\n\tif (document.querySelector('.purchase-service .swServices')) {\r\n\t\treturn new Swiper('.purchase-service .swServices', {\r\n\t\t\tspaceBetween: 30,\r\n\t\t\tslidesPerView: 3,\r\n\t\t\twatchSlidesVisibility: true,\r\n\t\t\twatchSlidesProgress: true,\r\n\t\t\tnavigation: {\r\n\t\t\t\tnextEl: \".swiper-button-next\",\r\n\t\t\t\tprevEl: \".swiper-button-prev\",\r\n\t\t\t},\r\n\t\t\tbreakpoints: {\r\n\t\t\t\t120: {\r\n\t\t\t\t\tslidesPerView: 1,\r\n\t\t\t\t\tspaceBetween: 30,\r\n\t\t\t\t},\r\n\t\t\t\t320: {\r\n\t\t\t\t\tslidesPerView: 1,\r\n\t\t\t\t\tspaceBetween: 30,\r\n\t\t\t\t},\r\n\t\t\t\t425: {\r\n\t\t\t\t\tslidesPerView: 1,\r\n\t\t\t\t\tspaceBetween: 30,\r\n\t\t\t\t},\r\n\t\t\t\t600: {\r\n\t\t\t\t\tslidesPerView: 1,\r\n\t\t\t\t\tspaceBetween: 30,\r\n\t\t\t\t},\r\n\t\t\t\t768: {\r\n\t\t\t\t\tslidesPerView: 2,\r\n\t\t\t\t\tspaceBetween: 30,\r\n\t\t\t\t},\r\n\t\t\t\t1024: {\r\n\t\t\t\t\tslidesPerView: 2,\r\n\t\t\t\t\tspaceBetween: 10,\r\n\t\t\t\t},\r\n\t\t\t\t1440: {\r\n\t\t\t\t\tslidesPerView: 3,\r\n\t\t\t\t\tspaceBetween: 30,\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\treturn undefined;\r\n}\r\n\r\n\r\nfunction handleOption() {\r\n\tconst opts = document.querySelectorAll('.product-reviews .wrapper-header .reviews-wrapper--more>ul>li');\r\n\r\n\tif (opts.length <= 0) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tconst list = document.querySelector('.wrapper-posts');\r\n\tconst valueEmptry = list.dataset.emptry;\r\n\r\n\tconst listContainer = document.createElement('div');\r\n\tlistContainer.innerHTML = list.innerHTML;\r\n\r\n\tconst listCustoms = document.createElement('div');\r\n\tlistCustoms.classList.add('wrapper-posts-custom');\r\n\tlistCustoms.classList.add('wrapper-posts');\r\n\r\n\tlist.insertAdjacentElement('afterend', listCustoms);\r\n\tlist.remove();\r\n\r\n\tconst chooses = listContainer.querySelectorAll('.posts-item');\r\n\r\n\tvar checkDefaultActive = false;\r\n\topts.forEach(function (optItem: any, idxOpt: number) {\r\n\t\tconst optionValue = optItem.dataset.option;\r\n\t\tvar linkOpt = optItem.querySelector('a');\r\n\r\n\t\tif (optItem.classList.contains('is-actived')) {\r\n\t\t\tcheckDefaultActive = true;\r\n\t\t\twindow.delHandle(opts, 'is-actived', idxOpt);\r\n\t\t\tlistCustoms.innerHTML = \"\";\r\n\r\n\t\t\tvar checkComments = false;\r\n\t\t\tchooses.forEach(function (itemChoose: any) {\r\n\t\t\t\tif (itemChoose.dataset.star === optionValue) {\r\n\t\t\t\t\tcheckComments = true;\r\n\t\t\t\t\tlistCustoms.appendChild(itemChoose);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tif (checkComments === false) {\r\n\t\t\t\tlistCustoms.innerHTML = `

    ${valueEmptry}

    `;\r\n\t\t\t}\r\n\r\n\t\t\tpageCommentProduct();\r\n\t\t}\r\n\r\n\t\tif (!linkOpt) {\r\n\t\t\tlinkOpt = optItem;\r\n\t\t}\r\n\r\n\t\tlinkOpt.addEventListener('click', function (e: any) {\r\n\t\t\te.preventDefault();\r\n\t\t\tlistCustoms.innerHTML = \"\";\r\n\r\n\t\t\toptItem.classList.add('is-actived');\r\n\t\t\twindow.delHandle(opts, 'is-actived', idxOpt);\r\n\t\t\tvar checkComments = false;\r\n\r\n\t\t\tchooses.forEach(function (itemChoose: any) {\r\n\t\t\t\tif (itemChoose.dataset.star === optionValue) {\r\n\t\t\t\t\tcheckComments = true;\r\n\t\t\t\t\tlistCustoms.appendChild(itemChoose);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tif (checkComments === false) {\r\n\t\t\t\tlistCustoms.innerHTML = `

    ${valueEmptry}

    `;\r\n\t\t\t}\r\n\r\n\t\t\tpageCommentProduct();\r\n\t\t})\r\n\t})\r\n\r\n\tif (checkDefaultActive === false) {\r\n\t\tvar checkComments = false;\r\n\t\tlistCustoms.innerHTML = \"\";\r\n\r\n\t\tchooses.forEach(function (itemChoose: any) {\r\n\t\t\tcheckComments = true;\r\n\t\t\tlistCustoms.appendChild(itemChoose);\r\n\t\t})\r\n\r\n\t\tif (checkComments === false) {\r\n\t\t\tlistCustoms.innerHTML = `

    ${valueEmptry}

    `;\r\n\t\t}\r\n\r\n\t\tpageCommentProduct();\r\n\t}\r\n}\r\n\r\nfunction popupNotifiesHandle() {\r\n\tlet notifies = document.querySelectorAll('.popup-notify');\r\n\tnotifies.forEach(function (item) {\r\n\t\tconst closesItem = item.querySelectorAll('[data-type=\"close\"]');\r\n\t\tconsole.log(closesItem);\r\n\r\n\t\tclosesItem.forEach(function (close) {\r\n\t\t\tclose.addEventListener('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\titem.classList.remove('is-showed');\r\n\t\t\t})\r\n\t\t})\r\n\t})\r\n}\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n\tourTechSwiper();\r\n\tswiperDetailProducts();\r\n\tswiperWholesaleService();\r\n\tscrolltosilkfoam();\r\n\t// AOS.init();\r\n\thandleGlobal();\r\n\tfBtnArrow();\r\n\theaderUserHandle();\r\n\tfooterHandle();\r\n\t// showSubMenuMobile();\r\n\tshowContentDetails();\r\n\tendCheck();\r\n\tclickPaginationReleases();\r\n\tclickFancybox();\r\n\tpopupHandle();\r\n\t// showContentDetails();\r\n\tswiperAboutBlog();\r\n\ttoggleinput();\r\n\tsubmitDetailBlog();\r\n\tswiperDealerProduct();\r\n\t// popupHandle();\r\n\tnavSelect();\r\n\t// ChangeButtonSwiper();\r\n\r\n\tactiveIconFeatures();\r\n\tfMattressCollection();\r\n\tfDetailProducts();\r\n\t// fLoadSwiperWarranty();\r\n\tpreventDefalutLink();\r\n\t// submitSearch();\r\n\tscrollMattress();\r\n\thandleOrderProduct();\r\n\tbannerHeight();\r\n\theightProductDetails();\r\n\r\n\tpopupHandleClick();\r\n\r\n\tcheckBoxPoup();\r\n\r\n\t// Havas scripts\r\n\tfancyboxLib();\r\n\r\n\thandleQtyProduct();\r\n\tImgUpload();\r\n\tinitPopups();\r\n\r\n\thandlePayment();\r\n\r\n\tpageCommentProduct();\r\n\thandleSwThumb();\r\n\tswPurchaseServices();\r\n\r\n\thandleOption();\r\n\tpopupNotifiesHandle();\r\n})\r\n\r\n"]}