// gEl('aladeclasa').classList.add('geta');
     // gEl('aladeclasa').classList.remove('geta');

//mobile
function gEl(id){
    return document.getElementById(id);
}
function gElClass(clasa){
    return  document.getElementsByClassName(clasa);

}
let burger =  gEl('hamburger')
if(burger)
burger.addEventListener('click', function() {
    if(this.classList.contains('close')){
            closeMenu(this)
    }else{
            openMenu(this)
    }
});

function openMenu(t){
    t.classList.add('close');
    gEl('nav').classList.add('navVisible');
    gEl('gender').classList.add('navVisible');
    gEl('body').classList.add('hideOverflow');

}
function closeMenu(t){
    t.classList.remove('close');
    gEl('nav').classList.remove('navVisible');
    gEl('gender').classList.add('navVisible');
    gEl('body').classList.remove('hideOverflow');

    if(!t.classList.contains('close')){
        gEl('gender').classList.remove('navVisible');
        gEl('nav').classList.remove('navsubmenu');
        Array.from(gElClass('subMenu')).forEach(elem => elem.style.display = "none");
        Array.from(gElClass('subnavs')).forEach(elem => elem.style.display = "block");
        Array.from(gElClass('aparent')).forEach(elem => elem.style.display = "");
    }
}

let ocart =  gEl('openCart')
if(ocart)
ocart.addEventListener('click', function() {
    refreshCart();
    gEl('cartBox').classList.add('cartShow');
	gEl('nav').classList.remove('navVisible');
    gEl('gender').classList.remove('navVisible');
    gEl('body').classList.remove('hideOverflow');
    gEl('hamburger').classList.remove('close');
    });

let ccart = gEl('closeCart');
if(ccart)
ccart.addEventListener('click', function() {
    gEl('cartBox').classList.remove('cartShow');
    });


Array.from(gElClass('aparent')).forEach(elem => {
    if(window.innerWidth < 1080){
        elem.addEventListener('click', function(e) {
            e.stopPropagation();
            e.preventDefault();




            displaySubMenu(this);
        });
    }
})
Array.from(gElClass('backMenu')).forEach(elem => {

    if(window.innerWidth < 1080){
        elem.addEventListener('click', function(e) {
           e.preventDefault();
           e.stopPropagation();
           e.stopImmediatePropagation();

            restoreSubMenu(this);
        });
    }
})
function restoreSubMenu(t){

    let sbc = t.attributes['data-subchild'].value;

    gEl('auleu-'+sbc).style.display = 'flex';

    Array.from(gElClass('subnavs')).forEach(subs=>{

       // let sbid = subs.attributes['data-subchilds'].value;
        //if(sbc != sbid){
            subs.style.display = 'block';
        //}
    });
    gEl('subSubNav'+sbc).style.display = 'none';
	 gEl('nav').classList.remove('navsubmenu');
}
function displaySubMenu(t){

    let sbc = t.attributes['data-subchilds'].value;
    gEl('auleu-'+sbc).style.display = 'none';

    Array.from(gElClass('subnavs')).forEach(subs=>{
        let sbid = subs.attributes['data-subchilds'].value;
        if(sbc != sbid){
            subs.style.display= 'none';
        }
    });
    gEl('subSubNav'+sbc).style.display = 'block';
     gEl('nav').classList.add('navsubmenu');
}
//all
gEl('closeParent').addEventListener('click', function() {
this.parentElement.classList.remove("slideTop");
gEl('overlay').classList.remove('overlayed');
gEl('body').classList.remove('hideOverflow');
});




let srcelem = gEl('openSearch')
if(srcelem)
    srcelem.addEventListener('click', function() {
        gEl('searchBox').classList.add('slideTop');
        gEl('overlay').classList.add('overlayed');
        gEl('body').classList.add('hideOverflow');
        gEl('cartBox').classList.remove('cartShow');
        gEl('cauta').focus();

        let whm = getCookie('pentru')
        if (['femei', 'barbati', 'fete', 'baieti'].indexOf(whm) < 0 ) {
            whm = "femei"
        }
        Array.from(gEl('searchBox-gender-categories-list').children).forEach((it) => {
            if (it.getAttribute('data-switch') == whm) {
                it.classList.add('genderSelected')
            } else {
                it.classList.remove('genderSelected')
            }
        })
});

const searchBoxGender = gEl('searchBox-gender-categories-list');
if (searchBoxGender) {
    Array.from(searchBoxGender.children).forEach(selector =>{

        selector.addEventListener('click', function(event){
            event.preventDefault();

            let whm = this.attributes['data-switch'].value;
            Array.from(searchBoxGender.children).forEach(it =>{
                it.classList.remove('genderSelected')
            })
            this.classList.add('genderSelected');

            //setCookie('pentru', whm, 60);

            const cauta = document.getElementById('cauta');
            if (cauta) {
                cauta.dispatchEvent(new KeyboardEvent('keyup'));
            }

        });


    });
}

let genderMenu = gEl('gender');
function clearMainFor(){
    let genderMenu = gEl('gender');
    Array.from(genderMenu.children).forEach(selector => selector.classList.remove('genderSelected'));
}
if(genderMenu){

    Array.from(genderMenu.children).forEach(selector =>{

        selector.addEventListener('click', function(event){
            let whm = this.attributes['data-switch'].value;
            if ( whm == "loturi-en-gross" ) {
                return true
            }
            if(window.innerWidth < 1080){
                event.preventDefault();
            }
            clearMainFor();

            Array.from(gElClass('mainsubmenu')).forEach(msub=> msub.style.display = 'none');
            
            this.classList.add('genderSelected');
            setCookie('pentru', whm, 60);
            let showM = gElClass(whm);
            if(showM)
            Array.from(showM).forEach(vsm => vsm.style.display = "block");
		//	window.location.reload();
        });


    });
}


function syncAllGenderMenus(value) {
    document.querySelectorAll('[data-switch]').forEach((it) => {
        it.classList.remove('genderSelected');
    });
    document.querySelectorAll('[data-switch="'+ value +'"]').forEach((it) => {
        it.classList.add('genderSelected');
    });
}


function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for(var i = 0; i <ca.length; i++) {
      var c = ca[i];
      while (c.charAt(0) == ' ') {
        c = c.substring(1);
      }
      if (c.indexOf(name) == 0) {
        return c.substring(name.length, c.length);
      }
    }
    return "{}";
}
function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+ d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function applyAddToCart(msg){
	vcart = msg;


	displayMiniCart(msg);
	ecart = gEl('cartBox');
    if(0 && ecart)  ecart.classList.add('cartShow');
}
function failGetCart(){
    console.log('fail get cart');
}
function refreshCart(){
    localCall("getCart", '', applyAddToCart, failGetCart);
}
function getCart(){

    localCall("getCart", '', displayMiniCart, failGetCart);
}
function displayMiniCartCount(msg){
    let cc =  gEl('cartcount');
    if(cc)
    cc.innerHTML = msg.totalQuantity;
}
function getCartCount(){
    localCall("getCartCount", '', displayMiniCartCount, failGetCart);
    return;
    let whatsIn = {}
    try{
        let inCookieCart = getCookie('cream_cart');
        whatsIn = JSON.parse(inCookieCart);

    }catch(e){
        whatsIn = {};
    }
   //  let queryString = Object.entries(whatsIn).map(([id,q])=>"id["+id+"]="+q).join('&');

}
function removeMiniCartProduct(cid, name){
        name = name.replace(/'/, "");
         name = name.replace("&#039;","");

        if(confirm("Stergeti produsul: "+(name)+"?")){
            localCall("removeCartProduct", 'cid='+cid, getCart, getCart, "GET");
        }

}

function displayMiniCart(msg){

    try{
        let ccdata = {};
        Object.entries(msg.items).forEach(([pId,product])=>{
            if(parseInt(product.productId))
            ccdata[product.productId] = product.quantity;
        });
   // setCookie('cream_cart', JSON.stringify( ccdata ), 60);
}catch(e){ }

    let cartc = gEl('cartcount');
    if(cartc)  cartc.innerHTML = msg.totalQuantity;
    let minicart  = gEl('cartContent');
    if(minicart){
    minicart.innerHTML = '';

	if(Object.keys(msg.items).length == 0){

		minicart.innerHTML = 'Nu aveti nici un articol in cosul de cumparaturi';
	}
	else{

	htmlToContent = '<div class="cartItems">';
    Object.entries(msg.items).forEach(([pId,product])=>{
		var sizes='';
	if (product.size){var sizes='<li> Mărime: '+product.size+'</li>';}
		htmlToContent += '<div class="flex fspace cartItem" data-productid="'+pId+'">\
		<div class="flex itemDetails fwrap"><a title="'+product.name+'" href="'+product.slug+'"><img loading="lazy" src="'+product.thumb+'.webp" alt="'+product.name+'" type="image/webp"></a>\
			<ul>\
	            <li class="productTitle"><a title="'+product.name+'" href="'+product.slug+'">'+product.name+'</a></li>'+sizes+'	<li>';
        if(product.indisponibil){
            htmlToContent += '<li class="warningBlock"><i class="crsIcon s-16 warningIcon leftIcon"></i>Produsul nu se mai găsește în stoc!</li>';
        }else{
            htmlToContent +='Cantitate: '+product.quantity+'</li>';
        }

        htmlToContent += '</ul>\
		</div><div class="pricesBlock">';
        if(product.discountvalue > 0){
            htmlToContent += '<span class="price cutOut">'+parseFloat(product.priceD * product.quantity).toFixed(2)+' lei</span>';
            htmlToContent += '<span class="price discount">-'+parseFloat(product.discountvalue * product.quantity).toFixed(2)+' lei</span>';
        }else{
            if(parseFloat(product.priceS) > parseFloat(product.price)){
                htmlToContent += '<span class="price cutOut">'+parseFloat(product.priceS * product.quantity).toFixed(2)+' lei</span>';
            }
        }
		htmlToContent += '<span class="price finalPrice">'+parseFloat(product.price * product.quantity).toFixed(2)+' lei</span>';


        htmlToContent +=  '</div><span class="removeProduct" onclick="removeMiniCartProduct('+product.id+', \''+(product.name.replace(/'/, ''))+'\')" data-name="'+product.name+'" data-cid="'+product.id+'"><i class="crsIcon s-16 trashIcon"></i></span></div>';


	});
    htmlToContent += '</div>';

	minicart.innerHTML = htmlToContent;

	let voucherString = '';
	Object.entries(msg.vouchers).forEach(([vId,voucher]) => {
		voucherString += '<div class="flex fspace acenter deliveryCart">Voucher: '+voucher.name+' ('+voucher.cod+') </div>';
	});
	deliveryCost = "Gratuită";
	if(parseInt(msg.deliveryitems[1].value)>0){deliveryCost = msg.deliveryitems[1].value+" Lei";}
	minicart.innerHTML += voucherString;
	minicart.innerHTML += '<div class="flex fspace acenter deliveryCart">Livrare <span id="deliveryCost">'+deliveryCost+'</span></div><div class="flex fspace acenter subTotal">Total <span id="subTotal">'+parseFloat(msg.totalPrice).toFixed(2)+' Lei</span></div>';
	minicart.innerHTML += '<div class="flex fspace acenter fwrap">\
		<a title="Vezi cosul" href="cosul-meu" class="callto lightButton half">Vezi coșul</a>\
		<a title="Finalizare comanda" href="finalizare-comanda" class="callto half">Către finalizare</a>\
	</div>';
    }
	freeShipping = 200;

	if(msg.totalPrice < freeShipping){
		bar = msg.totalPrice / freeShipping * 100;
		//$('#miniCart').append('<div class="transportGratuit">Primeste transport gratuit<span class="progress"><span style="width:'+ bar +'%">'+msg.totalPrice+' lei </span>'+freeShipping+' lei </span></div>');
	}else{
	//	$('#miniCart').append('<div class="transportGratuit green">Felicitari! Transportul pentru aceasta comanda este gratuit.</div>');}
	//	$('#miniCart').append('<a href="/cosul-meu" class="callto">Vezi cosul</a><a href="/finalizare-comanda" class="callto">Finalizare comanda</a>');

	//	$('#cartItems').html(msg.totalQuantity);

		//$('.removeProduct').off('click');
		//$('.removeProduct').on('click', removeFromCart);

	}

	//$('.showUnder').click(function(){
	//		$(this).toggleClass('minus');
	//		$(this).next().slideToggle(300);
	//});
}
//minicart.style.display = 'block';
}

function putSecondPict(msg){
    Object.values(msg.items).forEach(pict => {
        let elemP = gEl('pictf-'+pict.id);
        if(elemP){
            let np = document.createElement('picture');
            np.classList.add('image2');
            np.innerHTML = '<source srcset="'+thumbsPath+''+pict.id+'/'+pict.name+'-'+pict.idPicture+'.webp" type="image/webp">\
            <img src="'+thumbsPath+''+pict.id+'/'+pict.name+'-'+pict.idPicture+'.jpg" type="image/jpeg" alt="">';
            elemP.prepend(np);
        }
    });

    Array.from(gElClass('productImage')).forEach(elem => {
        if(elem.children.length == 1){
            let dpn = elem.children[0].cloneNode(true);
            dpn.classList.remove('image1');
            dpn.classList.add('image2');
            elem.append(dpn);
        }
    });

}
function getSecondPicture(){


    let aFids = Array.from(gElClass('productImage')).map(elem => {
        if(typeof elem.attributes['data-fid'] !== 'undefined') return elem.attributes['data-fid'].value ;
        return 0;
    }).filter(elem=> elem != 0);
    if(aFids.length)
    localCall('getSecondPicture', aFids.map(elem => 'fid[]='+elem).join('&'), putSecondPict, msg=>console.log('no second pict') ) ;


}

function getProductsVariations(){
    let aFids = Array.from(gElClass('productDisplay')).map(elem => {
        if(typeof elem.attributes['data-fid'] !== 'undefined') return elem.attributes['data-fid'].value ;
        return 0;
    }).filter(elem=> elem != 0);
    localCall('getProductsVariations', aFids.map(elem => 'id[]='+elem).join('&'), showProductVariations, msg=>console.log('no second pict') ) ;
}
function getProductsVariations_black(){
    let aFids = Array.from(gElClass('productDisplay')).map(elem => {
        if(typeof elem.attributes['data-fid'] !== 'undefined') return elem.attributes['data-fid'].value ;
        return 0;
    }).filter(elem=> elem != 0);
    localCall('getProductsVariations', aFids.map(elem => 'id[]='+elem).join('&')+"&black=1", showProductVariations, msg=>console.log('no second pict') ) ;
}
function showProductVariations(msg){
     Array.from(gElClass('productDisplay')).forEach(elem => {
        if(typeof elem.attributes['data-fid'] == 'undefined') return false;
        const fid = elem.attributes['data-fid'].value ;
        if(typeof msg.items[fid] === 'undefined') return false;

        const slug = elem.attributes['data-path'].value ;


        let output = Object.values(msg.items[fid]).map(sid => ({id:sid.id, name: (typeof attrValNames[sid.sizeId] !== 'undefined')?attrValNames[sid.sizeId].value:'FARA' })).sort((a, b) => a.name.toLowerCase() < b.name.toLowerCase() ? -1 : (a.name.toLowerCase() > b.name.toLowerCase() ? 1 : 0) ).map(sid => '<a href="'+slug+'?pid='+sid.id+'">'+sid.name+'</a>');


        elem.querySelector('.famsizes').innerHTML = output.join('');



     });

}
function showProductVariations_black(msg){
     Array.from(gElClass('productDisplay')).forEach(elem => {
        if(typeof elem.attributes['data-fid'] == 'undefined') return false;
        const fid = elem.attributes['data-fid'].value ;
        if(typeof msg.items[fid] === 'undefined') return false;

        const slug = elem.attributes['data-path'].value ;


        let output = Object.values(msg.items[fid]).map(sid => ({id:sid.id, name: (typeof attrValNames[sid.sizeId] !== 'undefined')?attrValNames[sid.sizeId].value:'FARA' })).sort((a, b) => a.name.toLowerCase() < b.name.toLowerCase() ? -1 : (a.name.toLowerCase() > b.name.toLowerCase() ? 1 : 0) ).map(sid => '<span>'+sid.name+'</span>');


        elem.querySelector('.famsizes').innerHTML = output.join('');



     });

}

var HtmlEntities = function() {};

HtmlEntities.map = {
    "'": "&apos;",
    "<": "&lt;",
    ">": "&gt;",
    " ": "&nbsp;",
    "¡": "&iexcl;",
    "¢": "&cent;",
    "£": "&pound;",
    "¤": "&curren;",
    "¥": "&yen;",
    "¦": "&brvbar;",
    "§": "&sect;",
    "¨": "&uml;",
    "©": "&copy;",
    "ª": "&ordf;",
    "«": "&laquo;",
    "¬": "&not;",
    "®": "&reg;",
    "¯": "&macr;",
    "°": "&deg;",
    "±": "&plusmn;",
    "²": "&sup2;",
    "³": "&sup3;",
    "´": "&acute;",
    "µ": "&micro;",
    "¶": "&para;",
    "·": "&middot;",
    "¸": "&cedil;",
    "¹": "&sup1;",
    "º": "&ordm;",
    "»": "&raquo;",
    "¼": "&frac14;",
    "½": "&frac12;",
    "¾": "&frac34;",
    "¿": "&iquest;",
    "À": "&Agrave;",
    "Á": "&Aacute;",
    "Â": "&Acirc;",
    "Ã": "&Atilde;",
    "Ä": "&Auml;",
    "Å": "&Aring;",
    "Æ": "&AElig;",
    "Ç": "&Ccedil;",
    "È": "&Egrave;",
    "É": "&Eacute;",
    "Ê": "&Ecirc;",
    "Ë": "&Euml;",
    "Ì": "&Igrave;",
    "Í": "&Iacute;",
    "Î": "&Icirc;",
    "Ï": "&Iuml;",
    "Ð": "&ETH;",
    "Ñ": "&Ntilde;",
    "Ò": "&Ograve;",
    "Ó": "&Oacute;",
    "Ô": "&Ocirc;",
    "Õ": "&Otilde;",
    "Ö": "&Ouml;",
    "×": "&times;",
    "Ø": "&Oslash;",
    "Ù": "&Ugrave;",
    "Ú": "&Uacute;",
    "Û": "&Ucirc;",
    "Ü": "&Uuml;",
    "Ý": "&Yacute;",
    "Þ": "&THORN;",
    "ß": "&szlig;",
    "à": "&agrave;",
    "á": "&aacute;",
    "â": "&acirc;",
    "ã": "&atilde;",
    "ä": "&auml;",
    "å": "&aring;",
    "æ": "&aelig;",
    "ç": "&ccedil;",
    "è": "&egrave;",
    "é": "&eacute;",
    "ê": "&ecirc;",
    "ë": "&euml;",
    "ì": "&igrave;",
    "í": "&iacute;",
    "î": "&icirc;",
    "ï": "&iuml;",
    "ð": "&eth;",
    "ñ": "&ntilde;",
    "ò": "&ograve;",
    "ó": "&oacute;",
    "ô": "&ocirc;",
    "õ": "&otilde;",
    "ö": "&ouml;",
    "÷": "&divide;",
    "ø": "&oslash;",
    "ù": "&ugrave;",
    "ú": "&uacute;",
    "û": "&ucirc;",
    "ü": "&uuml;",
    "ý": "&yacute;",
    "þ": "&thorn;",
    "ÿ": "&yuml;",
    "Œ": "&OElig;",
    "œ": "&oelig;",
    "Š": "&Scaron;",
    "š": "&scaron;",
    "Ÿ": "&Yuml;",
    "ƒ": "&fnof;",
    "ˆ": "&circ;",
    "˜": "&tilde;",
    "Α": "&Alpha;",
    "Β": "&Beta;",
    "Γ": "&Gamma;",
    "Δ": "&Delta;",
    "Ε": "&Epsilon;",
    "Ζ": "&Zeta;",
    "Η": "&Eta;",
    "Θ": "&Theta;",
    "Ι": "&Iota;",
    "Κ": "&Kappa;",
    "Λ": "&Lambda;",
    "Μ": "&Mu;",
    "Ν": "&Nu;",
    "Ξ": "&Xi;",
    "Ο": "&Omicron;",
    "Π": "&Pi;",
    "Ρ": "&Rho;",
    "Σ": "&Sigma;",
    "Τ": "&Tau;",
    "Υ": "&Upsilon;",
    "Φ": "&Phi;",
    "Χ": "&Chi;",
    "Ψ": "&Psi;",
    "Ω": "&Omega;",
    "α": "&alpha;",
    "β": "&beta;",
    "γ": "&gamma;",
    "δ": "&delta;",
    "ε": "&epsilon;",
    "ζ": "&zeta;",
    "η": "&eta;",
    "θ": "&theta;",
    "ι": "&iota;",
    "κ": "&kappa;",
    "λ": "&lambda;",
    "μ": "&mu;",
    "ν": "&nu;",
    "ξ": "&xi;",
    "ο": "&omicron;",
    "π": "&pi;",
    "ρ": "&rho;",
    "ς": "&sigmaf;",
    "σ": "&sigma;",
    "τ": "&tau;",
    "υ": "&upsilon;",
    "φ": "&phi;",
    "χ": "&chi;",
    "ψ": "&psi;",
    "ω": "&omega;",
    "ϑ": "&thetasym;",
    "ϒ": "&Upsih;",
    "ϖ": "&piv;",
    "–": "&ndash;",
    "—": "&mdash;",
    "‘": "&lsquo;",
    "’": "&rsquo;",
    "‚": "&sbquo;",
    "“": "&ldquo;",
    "”": "&rdquo;",
    "„": "&bdquo;",
    "†": "&dagger;",
    "‡": "&Dagger;",
    "•": "&bull;",
    "…": "&hellip;",
    "‰": "&permil;",
    "′": "&prime;",
    "″": "&Prime;",
    "‹": "&lsaquo;",
    "›": "&rsaquo;",
    "‾": "&oline;",
    "⁄": "&frasl;",
    "€": "&euro;",
    "ℑ": "&image;",
    "℘": "&weierp;",
    "ℜ": "&real;",
    "™": "&trade;",
    "ℵ": "&alefsym;",
    "←": "&larr;",
    "↑": "&uarr;",
    "→": "&rarr;",
    "↓": "&darr;",
    "↔": "&harr;",
    "↵": "&crarr;",
    "⇐": "&lArr;",
    "⇑": "&UArr;",
    "⇒": "&rArr;",
    "⇓": "&dArr;",
    "⇔": "&hArr;",
    "∀": "&forall;",
    "∂": "&part;",
    "∃": "&exist;",
    "∅": "&empty;",
    "∇": "&nabla;",
    "∈": "&isin;",
    "∉": "&notin;",
    "∋": "&ni;",
    "∏": "&prod;",
    "∑": "&sum;",
    "−": "&minus;",
    "∗": "&lowast;",
    "√": "&radic;",
    "∝": "&prop;",
    "∞": "&infin;",
    "∠": "&ang;",
    "∧": "&and;",
    "∨": "&or;",
    "∩": "&cap;",
    "∪": "&cup;",
    "∫": "&int;",
    "∴": "&there4;",
    "∼": "&sim;",
    "≅": "&cong;",
    "≈": "&asymp;",
    "≠": "&ne;",
    "≡": "&equiv;",
    "≤": "&le;",
    "≥": "&ge;",
    "⊂": "&sub;",
    "⊃": "&sup;",
    "⊄": "&nsub;",
    "⊆": "&sube;",
    "⊇": "&supe;",
    "⊕": "&oplus;",
    "⊗": "&otimes;",
    "⊥": "&perp;",
    "⋅": "&sdot;",
    "⌈": "&lceil;",
    "⌉": "&rceil;",
    "⌊": "&lfloor;",
    "⌋": "&rfloor;",
    "⟨": "&lang;",
    "⟩": "&rang;",
    "◊": "&loz;",
    "♠": "&spades;",
    "♣": "&clubs;",
    "♥": "&hearts;",
    "♦": "&diams;"
};

HtmlEntities.decode = function(string) {
    var entityMap = HtmlEntities.map;
    for (var key in entityMap) {
        var entity = entityMap[key];
        var regex = new RegExp(entity, 'g');
        string = string.replace(regex, key);
    }
    string = string.replace(/&quot;/g, '"');
    string = string.replace(/&amp;/g, '&');
    return string;
}

HtmlEntities.encode = function(string) {
    var entityMap = HtmlEntities.map;
    string = string.replace(/&/g, '&amp;');
    string = string.replace(/"/g, '&quot;');
    for (var key in entityMap) {
        var entity = entityMap[key];
        var regex = new RegExp(key, 'g');
        string = string.replace(regex, entity);
    }
    return string;
}

function popupSubscribeNewsletter(){
    let formElement = document.forms['popupSubscribe'];

    let formData = new FormData(formElement);
    formData.append('pppp','1');
    if(formElement.checkValidity()){
        localCall("subscribeNewsletter",formData, msg => {
            let suc = gEl('popupnewsSuccess');
            let fail = gEl('popupnewsWarning');
                if(msg.insert > 0 ){
                    setCookie('inscris', "1", 15);

                    if(fail) fail.style.display = 'none';
                    if(suc) suc.style.display = '';

                }else{

                    if(fail) fail.style.display = '';
                    if(suc) suc.style.display = 'none';
                }
        }, msg => {console.log(msg); }, 'POST');

    }else{
        formElement.reportValidity();
    }
}

function subscribeNewsletter(){
    let formElement = document.forms['subscribe'];
    let formData = new FormData(formElement);

    if(formElement.checkValidity()){
        localCall("subscribeNewsletter",formData, msg => {
            let suc = gEl('newsSuccess');
            let fail = gEl('newsWarning');
                if(msg.insert > 0 ){

                    if(fail) fail.style.display = 'none';
                    if(suc) suc.style.display = '';

                }else{

                    if(fail) fail.style.display = '';
                    if(suc) suc.style.display = 'none';
                }
        }, msg => {console.log(msg); }, 'POST');

    }else{
        formElement.reportValidity();
    }
}

function displaySearchResults(msg){
    let sug = document.getElementById('sugestii');
    if(!sug) return false;
	sug.innerHTML = '';
	sugg = '';
    Object.values(msg.items).forEach(item => {
        sugg += '<a href="'+item.slug+'" title="'+item.name+'"  class="searchItem flex fwrap fspace full">' +
                    '<div class="searchImage">' +
                        '<img src="'+item.thumb+'.jpg">' +
                    '</div>' +
                    '<div class="infoP">' +
                        '<span class="productTitle">'+item.name+'</span>' +
                        '<span class="price finalPrice">'+item.price+' lei</span>';
        if (item.priceS > item.price) {
            const discount = 100 - (item.price * 100 / item.priceS);
            sugg += '<span class="price specialPrice">' +item.priceS+ ' lei</span>'
            sugg += '<div class="pills"><span class="pill discount">-' +discount+ '%</span></div>'
        }
        if (item.priceL > item.price) {
            const savePercentage = 100-Math.ceil((item.price/item.priceL)*100);
            sugg += '<span class="price price-rrp">RRP: ' +item.priceL+ '</span>'
            sugg += '<div class="save-rrp"> Economisești ' + (item.priceL - item.price)  +
                        ' <span class="save-rrp-percent"> '+savePercentage+'% OFF RRP</span>' +
                '</div>'

        }
        sugg += '</div>';
        sugg += '</a>';
    });
	sug.innerHTML += '<div class="scrollSearch columns columns-2">'+sugg+'</div>';
	sug.innerHTML +='<div class="centered"><button type="submit" class="callto smallButton">Toate rezultatele</button></div>';
}
var debounceSearch = false;
function searchForProduct(){
    if(debounceSearch) {
        clearTimeout(debounceSearch);
    }
    let searchForVendor = ''
    const categoryMenu = gEl('searchBox-gender-categories-list')
    if (categoryMenu) {
        const elementWithClass = categoryMenu.querySelector('.genderSelected')
        if (elementWithClass) {
            searchForVendor = elementWithClass.getAttribute('data-switch')
        }
    }
    debounceSearch = setTimeout(()=>{
        if(this.value.length > 3){
            localCall(
                'search',
                'seek='+this.value+'&pentru='+searchForVendor,
                displaySearchResults,
                msg => {
                        console.log(msg)
                     });
        }
    }, 300);

}
function getEventPath(e) {
    var path = [];
    var currentElem = e.target;
    while (currentElem) {
      path.push(currentElem);
      currentElem = currentElem.parentElement;
    }
    if (path.indexOf(window) === -1 && path.indexOf(document) === -1)
      path.push(document);
    if (path.indexOf(window) === -1)
      path.push(window);
    return path;
  }
function checkAddtoWishlist(e){
    let are = getEventPath(e).filter(elem => typeof elem.classList !=='undefined' && (elem.classList.contains('addToFavorite') || elem.classList.contains('toWishlist')));
    if(are.length){
        let wish = are.pop();
        if(typeof wish.attributes['data-productid'] !== 'undefined'){
            let famid = wish.attributes['data-productid'].value;
            localCall('addToWishlist', {fid:famid}, msg => {
                if(msg.status == 1){
                    wish.classList.add('wished');
                }else{
                    wish.classList.remove('wished');
                    let infav = document.getElementById('wishitem-'+msg.fid);
                    if(infav) infav.remove();


                }
                document.getElementById('wishcount').innerHTML = Object.keys(JSON.parse(getCookie('wish'))).length;
            }, msg=>{console.log(msg)}, "POST");
        }
    }
}
function accountUser(fbresponse){
    localCall('login', fbresponse, success=>{
        location.href = 'contul-meu';
    }, failF = false, mode= 'POST')

}
function finalAccountUser(fbresponse){

    localCall('login', fbresponse, success=>{
        location.href = 'finalizare-comanda';
    }, failF = false, mode= 'POST')

}
function parseJwt (token) {
    var base64Url = token.split('.')[1];
    var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
    var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) {
        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
    }).join(''));

    return JSON.parse(jsonPayload);
}
