// Import of mimibazar data with JSON, cookie dependent $(document).ready(function() { // Namespace // @type {object} window.CNC = window.CNC || {}; // Predvolby // @type {object} var options = window.CNC.mimibazar || {}; // Parametry pri dotazu na data // @type {object} var params = options.params || {}; // Get main JSON with all segments (cookies IDs) $.getJSON("https://www.mimibazar.cz/seznam-mmb-nabidka.php", function(data) { var finalSegment; var finalSegmentsArray = []; var cookiesID = []; $.each(data, function(index) { cookiesID.push(data[index].cookies); }); // IF - Cookies are NOT defined for current user - use segment 0 if ($.cookie("cpex2ibb") == undefined) { $.cookie("cpex2ibb", "seg=0", { path: '/' }); } // ELSE - Cookies ARE defined for current user - use them else { $.cookie("cpex2ibb", decodeURIComponent($.cookie("cpex2ibb")), { path: '/' }); } // CHECK if the cookie exists - then use segments from IF or ELSE if(!!$.cookie("cpex2ibb")) { // Segments into Array var segmentsArray = $.cookie("cpex2ibb").replace("seg=","").split(":").map(Number), segmentsArrayLength = segmentsArray.length, segment, segmentsIdenticalArray = []; // FOR all segments decide if they are identical to those from JSON cookies IDs for (var i = 0; i < segmentsArrayLength; i++) { segment = segmentsArray[i]; // IF segments are identical push then into the new Array if (jQuery.inArray(segment, cookiesID) !== -1) { //console.log(segment + ' - isIdentical'); segmentsIdenticalArray.push(segment); } else { //console.log(segment + ' - notIdentical'); } } //console.log('Identical Segments: ' + segmentsIdenticalArray); var segmentsIdenticalArrayLength = segmentsIdenticalArray.length; var segmentsArrayA = []; var segmentsArrayB = []; var segmentsArrayC = []; // FOR all identical segments decide if they belongs to segment Category A, B or C and put them into separate Array for each category for (var i = 0; i < segmentsIdenticalArrayLength; i++) { $.map(data, function(elem) { if (segmentsIdenticalArray[i] == elem.cookies) { if (elem.A == "1") { segmentsArrayA.push(elem.cookies); } else if (elem.B == "1") { segmentsArrayB.push(elem.cookies); } else if (elem.C == "1") { segmentsArrayC.push(elem.cookies); } } }); } //console.log("Segments A: " + segmentsArrayA); //console.log("Segments B: " + segmentsArrayB); //console.log("Segments C: " + segmentsArrayC); // IF Array from one of all Categories (due to the priority) exists, then push values into final Array if (segmentsArrayA.length > 0) { for (var i = 0; i < segmentsArrayA.length; i++) {finalSegmentsArray.push(segmentsArrayA[i]);} } else if (segmentsArrayB.length > 0) { for (var i = 0; i < segmentsArrayB.length; i++) {finalSegmentsArray.push(segmentsArrayB[i]);} } else if (segmentsArrayC.length > 0) { for (var i = 0; i < segmentsArrayC.length; i++) {finalSegmentsArray.push(segmentsArrayC[i]);} } else {finalSegmentsArray.push("0");} } //console.log("Final array of Segments: " + finalSegmentsArray); var finalSegmentsArrayLength = finalSegmentsArray.length; //console.log("Length of Final array of Segments: " + finalSegmentsArrayLength); // IF final Array contains more than one segment do the random thing, ELSE use default segment (0) if (finalSegmentsArrayLength > 1) { finalSegment = finalSegmentsArray[Math.floor(Math.random()*finalSegmentsArray.length)]; } else { finalSegment = "0"; } console.log("Final segment: " + finalSegment); // MAP the JSON and find final segment in it and use the data for it $.map(data, function(elem) { if (finalSegment == elem.cookies) { importMimibazarData(elem.url, params); //console.log("URL sent: " + elem.url); //console.log("ID choosed: " + elem.cookies) } else if (finalSegment == "0" && elem[0]) { importMimibazarData(elem[0].url, params); //console.log("URL sent: " + elem.url); //console.log("ID choosed: " + elem.cookies); } }) }) }); function importMimibazarData(url, params) { // STYLES for Mimibazar box $("head").append(""); $("#mimibazar-block").addClass("mimibazar-block").addClass("customizable").append("