let obj = {
fr: {0: "Marque", 1: "Modèle", 2: "Résultats", 3: "Carrosserie", 4: "Marques", 5: "Top", 6: "Autre"},
nl: {0: "Merk", 1: "Model", 2: "Resultaten", 3: "Carrosserie", 4: "Merken", 5: "Top", 6: "Andere"},
en: {0: "Make", 1: "Model", 2: "Results", 3: "Body", 4: "Makes", 5: "Top", 6: "Other"},
de: {0: "Marke", 1: "Modell", 2: "Ergebnisse", 3: "Karosserie", 4: "Marken", 5: "Top", 6: "Andere"},
ru: {0: "Марка", 1: "Модель", 2: "Предложений", 3: "Кузов", 4: "Марки", 5: "Топ", 6: "Другие"},
pl: {0: "Marka", 1: "Model", 2: "Wyniki", 3: "Zabudowa", 4: "Marki", 5: "Top", 6: "Inne"},
es: {0: "Marca", 1: "Modelo", 2: "Resultados", 3: "Carrocería", 4: "Hace", 5: "Superior", 6: "Otro"},
it: {0: "Marca", 1: "Modello", 2: "Risultati", 3: "Carrozzeria", 4: "Marche", 5: "Top", 6: "Altro"},
el: {0: "Μάρκα", 1: "Μοντέλο", 2: "Αποτελέσματα", 3: "Αμάξωμα", 4: "Μάρκες", 5: "Κορυφαία", 6: "Άλλα"},
cs: {0: "Značka", 1: "Model", 2: "Výsledky", 3: "Karoserie", 4: "Značky", 5: "Nahoře", 6: "Jiné"},
hu: {0: "Márka", 1: "Modell", 2: "Eredmények", 3: "Karosszéria", 4: "Márkák", 5: "Felső", 6: "Egyéb"},
fi: {0: "Merkki", 1: "Malli", 2: "Tulokset", 3: "Runko", 4: "Tekee", 5: "Yläosa", 6: "Muu"},
no: {0: "Merke", 1: "Modell", 2: "Resultater", 3: "Kropp", 4: "Merker", 5: "Topp", 6: "Annet"},
pt: {0: "Marca", 1: "Modelo", 2: "Resultados", 3: "Carroçaria", 4: "Marcas", 5: "Top", 6: "Outros"},
da: {0: "Mærke", 1: "Model", 2: "Resultater", 3: "Karosseri", 4: "Makes", 5: "Top", 6: "Andet"},
sv: {0: "Märke", 1: "Modell", 2: "Resultat", 3: "Karosseri", 4: "Märken", 5: "Topp", 6: "Övrigt"},
uk: {0: "Марка", 1: "Модель", 2: "Пропозиції", 3: "Кузов", 4: "Марки", 5: "Топ", 6: "Інші"},
tr: {0: "Marka", 1: "Model", 2: "Sonuçlar", 3: "Üstyapı", 4: "Markalar", 5: "Üst", 6: "Diğerleri"},
bg: {0: "Марка", 1: "Модел", 2: "Резултати", 3: "Каросерия", 4: "Марки", 5: "Топ", 6: "Други"},
ro: {0: "Marcă", 1: "Model", 2: "Rezultate", 3: "Caroseria", 4: "Mărci", 5: "Sup", 6: "Altele"},
sr: {0: "Марка", 1: "Модел", 2: "Резултати", 3: "Каросерија", 4: "Марки", 5: "Топ", 6: "Други"},
hr: {0: "Marka", 1: "Model", 2: "Rezultati", 3: "Karoserija", 4: "Marke", 5: "Top", 6: "Drugi"},
lv: {0: 'Marka',1: 'Modelis',2: 'Rezultāti',3: 'Ķermenis',4: 'Ražotāji',5: 'Augšā',6: 'Citi'},
lt: {0: 'Markė',1: 'Modelis',2: 'Rezultatai',3: 'Kūnas',4: 'Gamintojai',5: 'Viršuje',6: 'Kita'},
et: {0: 'Mark',1: 'Mudel',2: 'Tulemused',3: 'Keha',4: 'Teeb',5: 'Ülemine',6: 'Muu'},
az: {0: 'Markasi',1: 'Model',2: 'Nəticələr',3: 'Bədən',4: 'edir',5: 'Üst',6: 'Digər'},
hy: {0: 'Ապրանքանիշ',1: 'Մոդել',2: 'Արդյունքներ',3: 'Մարմին',4: 'Արտադրողներ',5: 'Վերև',6: 'Այլ'},
ka: {0: 'ბრენდი',1: 'მოდელი',2: 'შედეგები',3: 'სხეული',4: 'მარკები',5: 'ზედა',6: 'სხვა'},
sq: {0: 'Markë',1: 'Model',2: 'Rezultatet',3: 'Trupi',4: 'Marka',5: 'Krye',6: 'Të tjera'},
sl: {0: 'Znamka',1: 'Model',2: 'Rezultati',3: 'Telo',4: 'Znamke',5: 'Zgoraj',6: 'Drugo'},
sk: {0: 'Značka',1: 'Model',2: 'Výsledky',3: 'Telo',4: 'Značky',5: 'Hore',6: 'Iné'},
bs: {0: 'Marka',1: 'Model',2: 'Rezultati',3: 'Tijelo',4: 'Marke',5: 'Vrh',6: 'Ostalo'},
mk: {0: 'Марка',1: 'Модел',2: 'Резултати',3: 'Тело',4: 'Марки',5: 'Врв',6: 'Друго'}
},
lang = document.documentElement.lang || "en";
lang.includes("-") && (lang = lang.split("-")[0]);
let lango = obj[lang];
function indexBoxChange (val,e){
let model = document.getElementById("model"),modInput = document.getElementById("modInput"),
truckCat = document.getElementById("typeTruck"),cat=document.getElementById("category")
Array.from(document.getElementsByClassName("iconbox")).forEach(box => {
box.classList.remove("active")
})
document.getElementById(val+"box").classList.add("active")
document.getElementById("make").innerHTML = ''
model.disabled = true
modInput.disabled = true
if(val !== "truck"){
model.innerHTML = ''
model.hidden = false
modInput.hidden = true
truckCat.hidden = true
truckCat.disabled = true
document.getElementById("condition").hidden = false
cat.disabled = false
cat.value = val
}else{
cat.disabled=true
modInput.hidden = false
model.hidden = true
truckCat.hidden = false
truckCat.disabled = false
document.getElementById("condition").hidden = true
}
getMakes(val)
formCahnge(val,event)
}
async function formCahnge(val,o) {
let query = new URLSearchParams()
console.log(val)
query.append("category",val)
for (const x of new FormData(document.getElementById("indexForm"))){
console.log(x[0],x[1])
if(x[1] !== ""){
query.append(x[0],x[1])
if(x[0] === "zip") {
await fetch("https://nominatim.openstreetmap.org/search?q="+x[1]+"+"+query.get("country")+"&format=json&geometry=1&limit=1").then((e => e.json())).then((e => {
query.append("lon", e[0].lon)
query.append("lat", e[0].lat)
}))
}
}
}
o.preventDefault()
await fetch("/countItems", {
method: "put",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(Object.fromEntries(query))
}).then((async res => await res.json())).then((res => {
document.getElementById("indexSpan").innerHTML = res.count
document.getElementById("indexHref").href = query.toString() !== ""?"/"+res.path+"/?"+query.toString():"/"+res.path
}))
}
function urlSearch() {
let query = new URLSearchParams(window.location.search)
let formId = document.forms[0].id
if(document.getElementById('make')){
getMakes(formId,query.get('make'),query.get('model'))
}
query.delete("add")
for (let x of query.entries()){
if(x[0] === "country"){
document.getElementById("flCo").innerHTML = document.getElementById(x[1]+"Span").innerHTML
document.getElementById("nameCo").innerHTML = " "+x[1]
document.getElementById('zip').disabled = false
document.getElementById(x[0]).value = x[1]
if(x[1] === "EU"){
document.getElementById('zip').disabled = true
document.getElementById('area').disabled = true
}
}else if(x[0] === "zip"){
document.getElementById('area').disabled = false
document.getElementById('area').value = query.get('area')
document.getElementById(x[0]).value = x[1]
}else if(x[0] === "options"){
document.getElementById(x[1]).checked = true
}else if(x[0] !== "page" && x[0] !== "lat" && x[0] !== "lon" && x[0] !== "category"){
document.getElementById(x[0]).value = x[1]
}
}
}
async function getLngLat() {
let e = document.getElementById("zip").value,
t = document.getElementById("city").value,
n = document.getElementById("country").value,
o = document.getElementById("lon"),
a = document.getElementById("lat"),
l = e + "+" + t + "+" + n;
await fetch("https://nominatim.openstreetmap.org/search?q=" + l + "&format=json&geometry=1&limit=1").then((e => e.json())).then((e => {
o.value = e[0].lon, a.value = e[0].lat
}))
}
async function submitClick(e, t) {
let n = new URLSearchParams,
o = "";
for (const e of new FormData(document.getElementById(t))) "" !== e[1] && ("country" === e[0] && (o = e[1]), n.append(e[0], e[1]), "zip" === e[0] && await fetch("https://nominatim.openstreetmap.org/search?q=" + e[1] + "+" + o + "&format=json&geometry=1&limit=1").then((e => e.json())).then((e => {
n.append("lon", e[0].lon), n.append("lat", e[0].lat)
})));
location.assign(e + "/?" + n.toString())
}
function getMakes (car,makeV,modelV){
const make = document.getElementById("make"),model = document.getElementById('model'),
modInput = document.getElementById("modInput")
fetch("/"+car+"Data.json").then((res => res.json())).then((makes => {
make.insertAdjacentHTML("beforeend", "")
for(let key in makes){
if(makes[key].top){
make.insertAdjacentHTML("beforeend", '")
}
}
make.insertAdjacentHTML("beforeend", "")
for(let key in makes){
if(!makes[key].top){
make.insertAdjacentHTML("beforeend", '")
}
}
if (make.value !== "" || makeV) {
if(makeV)make.value = makeV
model?model.disabled = false:modInput.disabled=false
"" === make.value && (model.disabled = true)
getModels(make.value)
if(modelV)model?model.value = modelV:modInput.value = modelV
}
make.onchange = () => {
if(model){
if (model.innerHTML = "", model.insertAdjacentHTML("beforeend", '"),model.disabled = !1, "" === make.value && (model.disabled = !0), "" !== make.value) {
getModels(make.value)
}
}else if(make.value !== ""){
modInput.value = ""
modInput.disabled = false
}else{
modInput.value = ""
modInput.disabled = true
}
}
function getModels(val){
let models = makes[val.replace(/ /g,"-").toLowerCase()].models
for (let key in models) {
model.insertAdjacentHTML("beforeend", '")
if (models[key].series) {
for (let x in models[key].series){
let mod = models[key].series
model.insertAdjacentHTML("beforeend", '")
}
}
}
}
}))
}
async function carsFormChange(page,cat,n) {
n.preventDefault()
document.getElementById("count").innerHTML = '
\n Loading...\n
'
document.getElementById("pag").innerHTML = ""
let query = new URLSearchParams()
scroll(0, 0)
document.getElementById("carsDiv").style.opacity = "0.4"
query.append("cat",cat)
if(page !== "")query.append("page", page)
for (const x of new FormData(document.getElementById(document.forms[0].id))){
if(x[1] !== "" ){
query.append(x[0],x[1])
if(x[0] === "zip") {
await fetch("https://nominatim.openstreetmap.org/search?q="+x[1]+"+"+query.get("country")+"&format=json&geometry=1&limit=1").then((e => e.json())).then((e => {
query.append("lon", e[0].lon)
query.append("lat", e[0].lat)
}))
}
}else {
if(x[0] === "make" && x[1] === "")query.delete("model")
query.delete(x[0])
}
}
fetch(cat === "revs"?"/reviews":"/fetchdata", {
method: "post",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(Object.fromEntries(query))
}).then((e => e.json())).then((res => {
document.getElementById("count").innerHTML = res.count
document.getElementById("carsDiv").innerHTML = res.items
document.getElementById("carsDiv").style.opacity = "1"
document.getElementById("pag").insertAdjacentHTML("beforeend", res.paginate)
}))
history.replaceState(null, null, "?"+query.toString())
}
function fetchData(data) {
fetch("/fetchdata", {
method: "post",
body: data
}).then((e => e.json())).then((res => {
document.getElementById("count").innerHTML = res.count
document.getElementById("carsDiv").innerHTML = res.items
document.getElementById("carsDiv").style.opacity = "1"
document.getElementById("pag").insertAdjacentHTML("beforeend", res.paginate)
}))
}
function coutrnyChange(e, t, n) {
document.getElementById(t).value = ""
document.getElementById(t).disabled = !1
zipChange(n, t)
"EU" === document.getElementById(e).value && (document.getElementById(t).disabled = !0, document.getElementById(n).disabled = !0, document.getElementById(n).value = "")
}
function zipChange(e, t) {
document.getElementById(e).value = "200", document.getElementById(e).disabled = !1, "" === document.getElementById(t).value && (document.getElementById(e).disabled = !0, document.getElementById(e).value = "")
}
function vatChange() {
let e = document.getElementById("price"),
t = document.getElementById("deductible"),
n = document.getElementById("vat"),
o = document.getElementById("total");
n.disabled = !0, o.disabled = !0, "yes" === t.value && (n.disabled = !1, o.disabled = !1), t.onchange = () => {
"no" === t.value ? (n.value = "", o.value = "", n.disabled = !0, o.disabled = !0) : "yes" === t.value && (n.disabled = !1, o.disabled = !1)
}, n.onchange = () => {
o.value = Math.round(e.value * (n.value / 100 + 1) * 100 / 100)
}, e.onchange = () => {
"yes" === t.value && (o.value = Math.round(e.value * (n.value / 100 + 1) * 100 / 100))
}, o.onchange = () => {
"yes" === t.value && (e.value = Math.round(o.value / (n.value / 100 + 1) * 100 / 100))
}
}
function selectClick(value,form,e) {
e.preventDefault()
let d = new Event("change")
document.getElementById("flCo").innerHTML = document.getElementById(value+"Span").innerHTML
document.getElementById("nameCo").innerText = form === "indexForm"?document.getElementById(value+"Name").innerHTML:" "+value
document.getElementById("country").value = value
document.getElementById("country").dispatchEvent(d)
document.getElementById(form).dispatchEvent(d)
}
async function setCurrency(e) {
document.cookie = "currency=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
let t = new Date,
n = t.getTime() + 36e7;
t.setTime(n);
let o = "currency=" + e + " ;expires=" + t.toUTCString() + "; path=/";
document.cookie = o, await location.replace(location.pathname + "" + location.search)
}
async function contactSeller(e, t) {
t.preventDefault();
let n = {
url: location.href
};
for (const t of new FormData(document.getElementById(e))) n[t[0]] = t[1];
await fetch("/"+e, {
method: "post",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(n)
}).then((e => e.json())).then((e => {
if(e["ok"]){
alert(e["ok"])
location.reload()
}else {
alert(e["error"])
}
}))
}
function previewLogo() {
let e = document.getElementById("logo");
const t = document.getElementById("imgLogo"),
n = document.querySelector("input[type=file]").files[0],
o = new FileReader;
o.addEventListener("load", (function() {
n.size > 999999 ? (alert("File is too big!"), e.value = t.src) : (t.src = o.result, e.value = o.result)
}), !1), n && o.readAsDataURL(n)
}
function touchMobile() {
let e;
! function(e) {
let t = function() {
function e() {
this._dropEffect = "move", this._effectAllowed = "all", this._data = {}
}
return Object.defineProperty(e.prototype, "dropEffect", {
get: function() {
return this._dropEffect
},
set: function(e) {
this._dropEffect = e
},
enumerable: !0,
configurable: !0
}), Object.defineProperty(e.prototype, "effectAllowed", {
get: function() {
return this._effectAllowed
},
set: function(e) {
this._effectAllowed = e
},
enumerable: !0,
configurable: !0
}), Object.defineProperty(e.prototype, "types", {
get: function() {
return Object.keys(this._data)
},
enumerable: !0,
configurable: !0
}), e.prototype.clearData = function(e) {
null != e ? delete this._data[e] : this._data = null
}, e.prototype.getData = function(e) {
return this._data[e] || ""
}, e.prototype.setData = function(e, t) {
this._data[e] = t
}, e.prototype.setDragImage = function(e, t, o) {
var a = n._instance;
a._imgCustom = e, a._imgOffset = {
x: t,
y: o
}
}, e
}();
e.DataTransfer = t;
let n = function() {
function e() {
if (this._lastClick = 0, e._instance) throw "DragDropTouch instance already created.";
let t = !1;
if (document.addEventListener("test", (function() {}), {
get passive() {
return t = !0, !0
}
}), "ontouchstart" in document) {
var n = document,
o = this._touchstart.bind(this),
a = this._touchmove.bind(this),
l = this._touchend.bind(this),
i = !!t && {
passive: !1,
capture: !1
};
n.addEventListener("touchstart", o, i), n.addEventListener("touchmove", a, i), n.addEventListener("touchend", l), n.addEventListener("touchcancel", l)
}
}
return e.getInstance = function() {
return e._instance
}, e.prototype._touchstart = function(t) {
let n = this;
if (this._shouldHandle(t)) {
if (Date.now() - this._lastClick < e._DBLCLICK && this._dispatchEvent(t, "dblclick", t.target)) return t.preventDefault(), void this._reset();
this._reset();
let o = this._closestDraggable(t.target);
o && (this._dispatchEvent(t, "mousemove", t.target) || this._dispatchEvent(t, "mousedown", t.target) || (this._dragSource = o, this._ptDown = this._getPoint(t), this._lastTouch = t, t.preventDefault(), setTimeout((function() {
n._dragSource == o && null == n._img && n._dispatchEvent(t, "contextmenu", o) && n._reset()
}), e._CTXMENU), e._ISPRESSHOLDMODE && (this._pressHoldInterval = setTimeout((function() {
n._isDragEnabled = !0, n._touchmove(t)
}), e._PRESSHOLDAWAIT))))
}
}, e.prototype._touchmove = function(e) {
if (this._shouldCancelPressHoldMove(e)) this._reset();
else if (this._shouldHandleMove(e) || this._shouldHandlePressHoldMove(e)) {
let t = this._getTarget(e);
if (this._dispatchEvent(e, "mousemove", t)) return this._lastTouch = e, void e.preventDefault();
this._dragSource && !this._img && this._shouldStartDragging(e) && (this._dispatchEvent(e, "dragstart", this._dragSource), this._createImage(e), this._dispatchEvent(e, "dragenter", t)), this._img && (this._lastTouch = e, e.preventDefault(), t != this._lastTarget && (this._dispatchEvent(this._lastTouch, "dragleave", this._lastTarget), this._dispatchEvent(e, "dragenter", t), this._lastTarget = t), this._moveImage(e), this._isDropZone = this._dispatchEvent(e, "dragover", t))
}
}, e.prototype._touchend = function(e) {
if (this._shouldHandle(e)) {
if (this._dispatchEvent(this._lastTouch, "mouseup", e.target)) return void e.preventDefault();
this._img || (this._dragSource = null, this._dispatchEvent(this._lastTouch, "click", e.target), this._lastClick = Date.now()), this._destroyImage(), this._dragSource && (e.type.indexOf("cancel") < 0 && this._isDropZone && this._dispatchEvent(this._lastTouch, "drop", this._lastTarget), this._dispatchEvent(this._lastTouch, "dragend", this._dragSource), this._reset())
}
}, e.prototype._shouldHandle = function(e) {
return e && !e.defaultPrevented && e.touches && e.touches.length < 2
}, e.prototype._shouldHandleMove = function(t) {
return !e._ISPRESSHOLDMODE && this._shouldHandle(t)
}, e.prototype._shouldHandlePressHoldMove = function(t) {
return e._ISPRESSHOLDMODE && this._isDragEnabled && t && t.touches && t.touches.length
}, e.prototype._shouldCancelPressHoldMove = function(t) {
return e._ISPRESSHOLDMODE && !this._isDragEnabled && this._getDelta(t) > e._PRESSHOLDMARGIN
}, e.prototype._shouldStartDragging = function(t) {
var n = this._getDelta(t);
return n > e._THRESHOLD || e._ISPRESSHOLDMODE && n >= e._PRESSHOLDTHRESHOLD
}, e.prototype._reset = function() {
this._destroyImage(), this._dragSource = null, this._lastTouch = null, this._lastTarget = null, this._ptDown = null, this._isDragEnabled = !1, this._isDropZone = !1, this._dataTransfer = new t, clearInterval(this._pressHoldInterval)
}, e.prototype._getPoint = function(e, t) {
return e && e.touches && (e = e.touches[0]), {
x: t ? e.pageX : e.clientX,
y: t ? e.pageY : e.clientY
}
}, e.prototype._getDelta = function(t) {
if (e._ISPRESSHOLDMODE && !this._ptDown) return 0;
let n = this._getPoint(t);
return Math.abs(n.x - this._ptDown.x) + Math.abs(n.y - this._ptDown.y)
}, e.prototype._getTarget = function(e) {
for (var t = this._getPoint(e), n = document.elementFromPoint(t.x, t.y); n && "none" == getComputedStyle(n).pointerEvents;) n = n.parentElement;
return n
}, e.prototype._createImage = function(t) {
this._img && this._destroyImage();
let n = this._imgCustom || this._dragSource;
if (this._img = n.cloneNode(!0), this._copyStyle(n, this._img), this._img.style.top = this._img.style.left = "-9999px", !this._imgCustom) {
var o = n.getBoundingClientRect(),
a = this._getPoint(t);
this._imgOffset = {
x: a.x - o.left,
y: a.y - o.top
}, this._img.style.opacity = e._OPACITY.toString()
}
this._moveImage(t), document.body.appendChild(this._img)
}, e.prototype._destroyImage = function() {
this._img && this._img.parentElement && this._img.parentElement.removeChild(this._img), this._img = null, this._imgCustom = null
}, e.prototype._moveImage = function(e) {
let t = this;
requestAnimationFrame((function() {
if (t._img) {
let n = t._getPoint(e, !0),
o = t._img.style;
o.position = "absolute", o.pointerEvents = "none", o.zIndex = "999999", o.left = Math.round(n.x - t._imgOffset.x) + "px", o.top = Math.round(n.y - t._imgOffset.y) + "px"
}
}))
}, e.prototype._copyProps = function(e, t, n) {
for (let o = 0; o < n.length; o++) {
let a = n[o];
e[a] = t[a]
}
}, e.prototype._copyStyle = function(t, n) {
if (e._rmvAtts.forEach((function(e) {
n.removeAttribute(e)
})), t instanceof HTMLCanvasElement) {
let e = t,
o = n;
o.width = e.width, o.height = e.height, o.getContext("2d").drawImage(e, 0, 0)
}
let o = getComputedStyle(t);
for (let e = 0; e < o.length; e++) {
let t = o[e];
t.indexOf("transition") < 0 && (n.style[t] = o[t])
}
n.style.pointerEvents = "none";
for (let e = 0; e < t.children.length; e++) this._copyStyle(t.children[e], n.children[e])
}, e.prototype._dispatchEvent = function(t, n, o) {
if (t && o) {
let a = document.createEvent("Event"),
l = t.touches ? t.touches[0] : t;
return a.initEvent(n, !0, !0), a.button = 0, a.which = a.buttons = 1, this._copyProps(a, t, e._kbdProps), this._copyProps(a, l, e._ptProps), a.dataTransfer = this._dataTransfer, o.dispatchEvent(a), a.defaultPrevented
}
return !1
}, e.prototype._closestDraggable = function(e) {
for (; e; e = e.parentElement)
if (e.hasAttribute("draggable") && e.draggable) return e;
return null
}, e
}();
n._instance = new n, n._THRESHOLD = 5, n._OPACITY = .5, n._DBLCLICK = 500, n._CTXMENU = 900, n._ISPRESSHOLDMODE = !1, n._PRESSHOLDAWAIT = 400, n._PRESSHOLDMARGIN = 25, n._PRESSHOLDTHRESHOLD = 0, n._rmvAtts = "id,class,style,draggable".split(","), n._kbdProps = "altKey,ctrlKey,metaKey,shiftKey".split(","), n._ptProps = "pageX,pageY,clientX,clientY,screenX,screenY".split(","), e.DragDropTouch = n
}(e || (e = {}))
}
let px = {
carTrans: 0,
motoTrans: 0,
vanTrans: 0,
truckTrans: 0
};
function moveItems(val,id,total) {
px[id] = px[id] + val;
let n = document.getElementById(id);
total - n.clientWidth - px[id] < val && (px[id] = px[id] + (total - n.clientWidth - px[id]))
n.style.transform = "translate(-"+px[id]+"px, 0px)"
}
async function addReview(dest,id, e) {
e.preventDefault();
let data = {}
for (const x of new FormData(document.getElementById(id))) data[x[0]] = x[1];
await fetch(dest, {
method: "post",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(data)
}).then((e => e.json())).then((e => {
if(e["ok"]){
alert(e["ok"])
location.reload()
}else {
alert(e["error"])
}
}))
}
async function getDropShare(link,title,host,key,e){
e.preventDefault()
let dropEl = document.getElementById('dropShare'+key)
dropEl.innerHTML = ""
dropEl.innerHTML= `
Facebook
Twitter
WathsApp
Email
`
}