var staticGlob = 0; var onloadingu = 0; var global_color = ""; var start = new Date(); var justeone = 0; var sauvegarde_pour_export = ""; var global_UI_d = ""; var io_container = ""; var couleurChoiceTemp = []; prodOBJ.findex = 0; prodOBJ.couleurDimportCurrent = prodOBJ.couleurDimport; function handleEvent(e) { staticGlob++; if (justeone == 0) { updateLoadPhaseAt(staticGlob / onloadingu * 100); } if (staticGlob >= onloadingu) { decide_who_is_alive(); customer.writecanvas(); if (justeone == 0) write_canvas_forPatchs(customer.config); if (Global_UI_Silent_mode == 1) { console.log(global_UI_face_en_cours + ' STEP 2 => Displaying'); } customer.displaying(); if (justeone != 0) changefixe(); refresh_canvas_and_miniature_patch(); if (justeone == 0) { justeone = 1; if (!prodOBJ.couleurDimport[0]) changeme(0, 255, 255, 255, "#ffffff", "white"); for (idxImp = 0; idxImp < prodOBJ.couleurDimport.length; idxImp++) { if (prodOBJ.couleurDimport[idxImp]) document.getElementById("pastille_" + (idxImp + 1)).style.background = "rgba(" + prodOBJ.couleurDimport[idxImp][0] + ", " + prodOBJ.couleurDimport[idxImp][1] + ", " + prodOBJ.couleurDimport[idxImp][2] + ", 1)"; } if (global_UI_model_en_cours == "") console.log("Guimodelencrs vierge"); trig_model(global_UI_model_en_cours); var nbpal = count_nbCouches(global_UI_model_en_cours); for (var npi = 0; npi < nbpal; npi++) { const skip = prodOBJ.couches_vide[npi-1] !== undefined ? !prodOBJ.couches_vide[npi-1] : false; if (prodOBJ.couleurDimport && prodOBJ.couleurDimport[npi] && skip) changeme(npi, prodOBJ.couleurDimport[npi][0], prodOBJ.couleurDimport[npi][1], prodOBJ.couleurDimport[npi][2], prodOBJ.couleurDimport[npi][3], prodOBJ.couleurDimport[npi][4], prodOBJ.couleurDimport[npi][5], prodOBJ.couleurDimport[npi][6]); } changefixe(); setTimeout(function () { updateLoadPhaseAt(100); }, 800); setTimeout(function () { var FidTab = new Array(); var blop = 0; for (var yep in prodOBJ.faces) { FidTab[blop++] = yep; } prodOBJ.ftab = FidTab; trig_face($(".oPager").first().attr("iface")); }, 800); } } } function suiteSilentExport() { console.log("CHECK => suiteSilentExport : FIRE (" + global_FIRE + ") & PREFIRE (" + global_PREFIRE + ")"); if (Global_UI_Silent_mode == 1 && global_FIRE >= global_PREFIRE) { global_FIRE = 0; global_PREFIRE = 0; var canvas; var url; var newImg; prodOBJ.faces[global_UI_face_en_cours].snapshot = fusionAllCanvas(); prodOBJ.findex++; Fire_EV_Exp(); if (prodOBJ.findex < prodOBJ.ftab.length) { updateLoadPhaseAt(prodOBJ.ftab.length / prodOBJ.findex * 100); trig_face(prodOBJ.ftab[prodOBJ.findex]); } } } var customer = new configurateur(); customer.loadconfig(1000, 1000, "dboiteproduitencours"); var produit = new product(); var couleurs = new Array(); couleurs["ri"] = 255; couleurs["gi"] = 0; couleurs["bi"] = 0; produit.calquesColor[1] = couleurs; produit.initWorkers(); produit.addListener("FIRERATION", handleEvent); customer.loadproduct(produit); var ibit = 0; var pathPreumPhtoo = DESIGNER_SC_INC_PATH + "dxconfig/images/photos/7_maillotfacev2.png"; for (var trxi in prodOBJ.faces) { if (ibit == 0) { pathPreumPhtoo = prodOBJ.faces[trxi].photoPath; ibit++; } } produit.addphoto(DESIGNER_SC_INC_PATH + "dxconfig/" + pathPreumPhtoo); produit.addphotocolor(0, 255, 0, customer.config); produit.addcalque(DESIGNER_SC_INC_PATH + "DXfichierConfigurateur/images/geko1.png"); produit.addcalque(DESIGNER_SC_INC_PATH + "DXfichierConfigurateur/images/geko2.png"); produit.addcalque(DESIGNER_SC_INC_PATH + "DXfichierConfigurateur/images/geko3.png"); function changemodel() { customer.loadingphase(); staticGlob = 0; onloadingu = 0; produit.changemodel(); var neverused = 0; for (var i in prodOBJ.models) { if (prodOBJ.models[i].nom == global_UI_model_en_cours && prodOBJ.models[i].id_face == global_UI_face_en_cours) { for (var j = 0; j < prodOBJ.models[i].couchelist.length; j++) { var img = prodOBJ.models[i].couchelist[j].img; if (img) { produit.addcalque(DESIGNER_SC_INC_PATH + 'dxconfig/' + img); neverused++; } } } } if (neverused == 0) produit.fire("FIRERATION"); } function changeme(i, ri, gi, bi, hexa, nom, zone = "", texture_path = null) { couleurChoiceTemp = [ri, gi, bi, hexa, nom, zone, texture_path]; start = new Date(); $("#PaletteDivNB_" + i).find(".PastilleContainer").removeClass('selected') $("#PaletteDivNB_" + i).find(".PastilleContainer[hex=" + hexa + "]").addClass('selected') $(".zone_card[nbtoload=" + i + "] .color_info_container .color_edit_container .color_name").text(nom) if (texture_path !== null && texture_path !== undefined) { $(".zone_card[nbtoload=" + i + "] .color_info_container .selected_color").css("background", "") $(".zone_card[nbtoload=" + i + "] .color_info_container .selected_color").css("background-image", "url('"+DESIGNER_SC_INC_PATH+"dxconfig/" + texture_path + "')") } else { $(".zone_card[nbtoload=" + i + "] .color_info_container .selected_color").css("background-image", '') $(".zone_card[nbtoload=" + i + "] .color_info_container .selected_color").css("background", "#" + hexa) } produit.changecolor(i, ri, gi, bi, customer.config, hexa, nom, zone); produit.snapcolor(0); } function retourPalListe() { produit.restore_snape(global_UI_PalEncours, customer.config); showPalListe(); } function validePalListe() { const it = $('.tabPalette:visible').attr('nb'); for(let i = 0; i < couleurChoiceTemp.length; i++) if(prodOBJ.couleurDimportCurrent[it] === undefined) { prodOBJ.couleurDimportCurrent[it] = []; prodOBJ.couleurDimportCurrent[it][i] = couleurChoiceTemp[i]; } else prodOBJ.couleurDimportCurrent[it][i] = couleurChoiceTemp[i]; showPalListe(); } $('.cancel_color').on('click', function(e) { const it = $('.tabPalette:visible').attr('nb'); changeme(it, prodOBJ.couleurDimportCurrent[it][0], prodOBJ.couleurDimportCurrent[it][1], prodOBJ.couleurDimportCurrent[it][2], prodOBJ.couleurDimportCurrent[it][3], prodOBJ.couleurDimportCurrent[it][4], prodOBJ.couleurDimportCurrent[it][5], prodOBJ.couleurDimportCurrent[it][6]); showPalListe(); }) function onWorkColorEnded(e) { c = givemecontext(e.data.dataorigin); c.putImageData(e.data.datanewimage, 0, 0); global_is_working = 0; }; var onWorkEnded = function (e) { var canvasData = e.data.result; var index = e.data.index; tempContext.putImageData(canvasData, 0, blockSize * index); finished++; if (finished == workersCount) { var diff = new Date() - start; log.innerText = "Process done in " + diff + " ms"; } }; function DrawNormalTextWithBroke(context, x, y, str, colorBroke, color) { context.fillStyle = colorBroke; context.fillText(str, x + 1, y); context.fillText(str, x - 1, y); context.fillText(str, x, y + 1); context.fillText(str, x, y - 1); context.fillStyle = color; context.fillText(str, x, y); } function drawRotateTextDxWithBroke(context, x, y, str, colorBroke, color, angle) { context.fillStyle = colorBroke; drawRotateTexteDx(context, (parseFloat(x) + 1), y, str, angle); drawRotateTexteDx(context, (parseFloat(x) - 1), y, str, angle); drawRotateTexteDx(context, x, (parseFloat(y) + 1), str, angle); drawRotateTexteDx(context, x, (parseFloat(y) - 1), str, angle); context.fillStyle = color; drawRotateTexteDx(context, x, y, str, angle); } function drawTextAlongArcDxWithBroke(ctx, str, centerX, centerY, radius, taillePolice, colorBroke, color) { ctx.fillStyle = colorBroke; centerY += radius / 2; drawTextAlongArcDx(ctx, str, centerX - 1, centerY, radius, taillePolice); drawTextAlongArcDx(ctx, str, centerX + 1, centerY, radius, taillePolice); drawTextAlongArcDx(ctx, str, centerX, centerY - 1, radius, taillePolice); drawTextAlongArcDx(ctx, str, centerX, centerY + 1, radius, taillePolice); ctx.fillStyle = color; drawTextAlongArcDx(ctx, str, centerX, centerY, radius, taillePolice); } function drawRotateTexteDx(context, x, y, str, angle) { context.save(); context.translate(x, y); context.rotate(Math.PI / 180 * angle); context.textAlign = "center"; context.fillText(str, 0, 0); context.restore(); } function drawTextAlongArcDx(context, str, centerX, centerY, radius, taillePolice) { var len = str.length, s; var PerimetreCercle = radius * Math.PI; var LargeurTexte = len * taillePolice; var rapportAngulaire = LargeurTexte / PerimetreCercle; var angle = Math.PI * rapportAngulaire; context.save(); context.translate(centerX, centerY); context.rotate(-1 * angle / 2); context.rotate(-1 * (angle / len) / 2); for (var n = 0; n < len; n++) { context.rotate(angle / len); context.save(); context.translate(0, -1 * radius); s = str[n]; context.fillText(s, 0, 0); context.restore(); } context.restore(); } function drawTextAlongArc(context, str, centerX, centerY, radius, angle) { var len = str.length, s; context.save(); context.translate(centerX, centerY); context.rotate(-1 * angle / 2); context.rotate(-1 * (angle / len) / 2); for (var n = 0; n < len; n++) { context.rotate(angle / len); context.save(); context.translate(0, -1 * radius); s = str[n]; context.fillText(s, 0, 0); context.restore(); } context.restore(); } function outlineText(ctx, color, txt, x, y) { ctx.fillStyle = color; ctx.fillText(txt, x - 1, y); ctx.fillText(txt, x, y - 1); ctx.fillText(txt, x + 1, y); ctx.fillText(txt, x, y + 1); } (function ($) { $.fn.fitText = function (kompressor, options) { var compressor = kompressor || 1, settings = $.extend({ 'minFontSize': Number.NEGATIVE_INFINITY, 'maxFontSize': Number.POSITIVE_INFINITY }, options); return this.each(function () { var $this = $(this); var resizer = function () { $this.css('font-size', Math.max(Math.min($this.width() / (compressor * 10), parseFloat(settings.maxFontSize)), parseFloat(settings.minFontSize))); }; resizer(); $(window).on('resize.fittext orientationchange.fittext', resizer); }); }; })(jQuery); function sleep(milliSeconds) { var startTime = new Date().getTime(); while (new Date().getTime() < startTime + milliSeconds); } function fusionAllCanvas() { var liste = jQuery(".CanvasMaster:visible"); var canvascache = document.createElement('canvas'); var contextezero = canvascache.getContext('2d'); canvascache.width = customer.config.w; canvascache.height = customer.config.h; var newtesturl; for (var i = 0; i < liste.length; i++) { if (contextezero.drawImage(liste[i], 0, 0)) { } newtesturl = canvascache.toDataURL(); } if (prodOBJ.findex == 0 && 0) window.open(canvascache.toDataURL(), "newFenetreasdasd", "width=500,height=500"); return newtesturl; } function AssignEvent_pour_export() { jQuery("#DivDeCache_Dx").on("exp", HandleCustomDXEVENT); } function Fire_EV_Exp() { jQuery("#DivDeCache_Dx").trigger("exp"); } function HandleCustomDXEVENT(event) { if (Global_UI_Silent_mode == 1) { console.log(global_UI_face_en_cours + ' STEP 5 => HandleCustomEvent Fire'); } if (prodOBJ.findex >= prodOBJ.ftab.length) ready_to_export(); } function getQuerystring(key, default_) { if (default_ == null) default_ = ""; key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); var regex = new RegExp("[\\?&]" + key + "=([^&#]*)"); var qs = regex.exec(window.location.href); if (qs == null) return default_; else return qs[1]; } function ___________m() { var FormMyMail = document.getElementById("forminvitMyMail").value; var FormDestinataire = document.getElementById("forminvitUrMail").value; var FormCheckboxie = document.getElementById("forminvitCheckboxie").checked; var FormFormMsg = document.getElementById("forminvitMyMessage").value; var FormToken = FullTokenDX; if (FormMyMail == "" || FormDestinataire == "") { var divError = document.getElementById("errorEmpty"); divError.innerHTML = "Merci de remplir tous les champs."; return 0; } ________mLoading(); var ajax = new XMLHttpRequest(); ajax.onreadystatechange = function () { if (ajax.readyState == 4 && ajax.status == 200) { ________mOkay(); } } ajax.open("POST", '/DXfichierConfigurateur/sendinvform.php', true); ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); ajax.send("mail=" + FormMyMail + "&desti=" + FormDestinataire + "&Checkboxie=" + FormCheckboxie + "&token=" + FormToken + "&msg=" + FormFormMsg + "&lnk=" + globalURIduProduit); } function ________mLoading() { var loadcontent = "

Envoi en cours..
"; var division = document.getElementById("FormPostIT"); division.innerHTML = loadcontent; } function ________mOkay() { var loadcontent = "

Message envoyé.
"; var division = document.getElementById("FormPostIT"); division.innerHTML = loadcontent; } var globalURIduProduit = ""; function ready_to_export() { if (Global_UI_Silent_mode == 1) { console.log('STEP FINAL => Exportation en cours..'); } var srcSnapOneForShared = ""; var SrcTab = new Array(); var tbi = 0; for (var fi in prodOBJ.faces) { if (tbi == 0) srcSnapOneForShared = prodOBJ.faces[fi].snapshot; SrcTab[prodOBJ.faces[fi].order] = prodOBJ.faces[fi].snapshot; } let emplacements_list = []; for (var it in prodOBJ.faces) { emplacements_list.push(prodOBJ.faces[it]['nom']); } let zones = {}; prodOBJ.emplacements.empTab.forEach(e => { if(e.patch_collec.listPatch === undefined || e.patch_collec.listPatch.length < 1) return; let name = e.nom; let it_emp = 1; e.patch_collec.listPatch.forEach(f => { let name_cust = name; if(it_emp > 1) name_cust = name + "_" + it_emp; let zone = {}; zone.miniature_file = prodOBJ.PatchList[f].imagePath; zones[name_cust] = zone; it_emp++; }) }) var letstosend = new Object(); letstosend.id = prodOBJ.id; letstosend.name = prodOBJ.nom; letstosend.model = global_UI_model_en_cours; letstosend.model_id = getModelIdbyName(global_UI_model_en_cours); letstosend.views = SrcTab; letstosend.views_infos = emplacements_list; letstosend.zones = zones; letstosend.collection = prodOBJ.collections[letstosend.id_collection]; letstosend.collection_id = get_cid_modelName(global_UI_model_en_cours); letstosend.emplacements = prodOBJ.emplacements.empTab; letstosend.infocolor = prodOBJ.colortab; letstosend.PatchList = prodOBJ.PatchList; letstosend.colors = produit.calquesColor; letstosend.vd = prodOBJ.virtuemart_product_id; letstosend.prestashop_product = prodOBJ.prestashop_product; letstosend.prc = prodOBJ.evaluatedprice; letstosend.d = global_UI_d; var send_obj = new Object(); send_obj.zonesjson = JSON.stringify(letstosend); send_obj.json = JSON.stringify(prodOBJ); send_obj.io_container = io_container; $.ajax({ method: 'POST', url: "", contentType: 'application/upload', data: JSON.stringify(send_obj) }).done(function(response) { $("#dboiteproduitencours").html(''); $("#dboitepatchencours").html(''); sauvegarde_pour_export = "C'est bon"; if (parseInt(response)) parent.postMessage({cfg: response}, '*'); $("#FIRST_LOADING_DIV").html("
Sauvegarde terminée
"); }); } function getModelIdbyName(mid) { for (var i in prodOBJ.models) { if (prodOBJ.models[i].nom == mid) return prodOBJ.models[i].id_model; } return -42; } function ExportIMGCustom() { alert("startexport"); var canvas; var url; var newImg; canvas = fusionAllCanvas(); url = canvas.toDataURL(); window.location = url; } function dvdeman() { if (parseInt(jQuery("#DP_InputQuantity").val()) < mcmd) { jQuery("#MinimumQTE").html("Attention le minimum de quantité est de " + mcmd); jQuery("#DP_InputQuantity").css("border", "2px solid red !important"); return 0; } global_UI_d = "d"; closeQTE(); export_img(); } function I_________AndShare() { global_UI_d = "share"; export_img(); } function export_img(io = "") { io_container = io; console.log("STEP START => Démarrage de l'exportation !"); $("#pourcentageTypeDeLoad").html("Sauvegarde"); $("#FIRST_LOADING_DIV").show(); $("#FIRST_LOADING_DIV").fadeIn("fast", function () { Global_UI_Silent_mode = 1; AssignEvent_pour_export(); trig_face(prodOBJ.ftab[0]); }); } function listCookies() { var theCookies = document.cookie.split(';'); var aString = ''; for (var i = 1; i <= theCookies.length; i++) { aString += i + ' ' + theCookies[i - 1] + "\n"; } return aString; } function mkrandom(min, max) { return Math.floor((Math.random() * (max - min)) + 1) + min; }