{"version":3,"file":"multilevelmenu2.min.js","sources":["multilevelmenu2.js"],"sourcesContent":["(function ($) {\r\n\r\n $.fn.mlm2 = function (objContainer, strFunctionalityMode, iColumns) {\r\n\r\n //Getting name of object container\r\n objContainerID = objContainer.attr('id');\r\n\r\n if (strFunctionalityMode == \"VerticalExpandable\") {\r\n\r\n objContainer.find(\".VerticalExpandable strong\").click(function () {\r\n\r\n //Setting children container that will be shown or hidden \r\n var par = $(this).parent(\"li\").find(\"> ul\");\r\n //If it is hidden\r\n if (par.css(\"display\") == \"none\") {\r\n\r\n par.show(\"fast\");\r\n //+-\r\n $(this).css(\"display\", \"none\").parent(\"li\").find(\"> .MinusLevel\").css(\"display\", \"block\");\r\n $(this).parent('li').find('> a').addClass('Expanded');\r\n\r\n } else {\r\n\r\n par.hide(\"fast\");\r\n //+-\r\n $(this).css(\"display\", \"none\").parent(\"li\").find(\"> .PlusLevel\").css(\"display\", \"block\");\r\n $(this).parent('li').find('> a').removeClass('Expanded');\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n if (strFunctionalityMode == \"HorizontalExpandable\") {\r\n\r\n objContainer.find(\".HorizontalExpandable li\").hover(function () {\r\n //Setting children container that will be shown or hidden\r\n var par = $(this).find(\"> ul\");\r\n par.stop(true, true).delay(200).show('fast');\r\n //+-\r\n $(this).find(\"> .PlusLevel\").css(\"display\", \"none\").parent(\"li\").find(\"> .MinusLevel\").css(\"display\", \"block\");\r\n $(this).parent('li').find('> a').addClass('Expanded');\r\n\r\n }, function () {\r\n\r\n var par = $(this).find(\"> ul\");\r\n par.stop(true, true).delay(200).hide(\"fast\");\r\n //+-\r\n $(this).find(\"> .MinusLevel\").css(\"display\", \"none\").parent(\"li\").find(\"> .PlusLevel\").css(\"display\", \"block\");\r\n $(this).parent('li').find('> a').removeClass('Expanded');\r\n });\r\n\r\n }\r\n\r\n if (strFunctionalityMode == \"VerticalExpandable\" || strFunctionalityMode == \"VerticalByLevel\") {\r\n\r\n //Checking if item page, if yes, then setting Select class to parent PageID\r\n var curItemID = $('#' + objContainerID + '_hCurrentItemID').attr('value');\r\n if (curItemID > 0) {\r\n\r\n var parentPageID = $('#' + objContainerID + '_hCurrentPageID').attr('value') - 1;\r\n $('.PageID-' + parentPageID).addClass('Selected');\r\n\r\n }\r\n\r\n //Making child with \"selected\" class to be displayed\r\n $(\".VerticalExpandable .Selected, .VerticalByLevel .Selected\").parents(\"ul\").css(\"display\", \"block\").parent(\"li\").find(\" > .MinusLevel\").css(\"display\", \"block\").parent(\"li\").find(\" > .PlusLevel\").css(\"display\", \"none\");\r\n\r\n $('.MinusLevel').each(function () {\r\n\r\n if ($(this).css('display') == 'block') {\r\n $(this).parent('li').addClass('Expanded');\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n if (strFunctionalityMode == \"HorizontalColumnar\") {\r\n var hArr = new Array();\r\n var hSum = 0;\r\n var iLast = 0;\r\n\r\n objContainer.find(\".Level-1 > li\").each(function (i) {\r\n hArr[i] = $(this).height();\r\n iLast = i;\r\n //All blocks height summ\r\n hSum += hArr[i];\r\n });\r\n\t\t\t\r\n\r\n if (iColumns > hArr.length) {\r\n iColumns = hArr.length;\r\n }\r\n\t\t\t\r\n\r\n //Sorting columns by height DESC\r\n var ihArr = hArr;\r\n ihArr.sort(sortNumber);\r\n //Average column height according to all blocks height summ\r\n var hAverage = Math.floor(hSum / iColumns) + 1;\r\n\r\n //Building columns\r\n for (var col = 1; col <= iColumns; col++) {\r\n objContainer.find(\".MiddleBox\").append('');\r\n if (hArr.length <= iColumns) {\r\n objContainer.find(\".Level-1 > .Item-\" + col).appendTo(objContainer.find(\"#Col-\" + col));\r\n }\r\n }\r\n\r\n //Calculating column width\r\n var mCol = objContainer.find(\".MiddleBox > .Column\");\r\n var mColWidth = Math.floor(objContainer.find(\".MiddleBox\").width() / iColumns) - mCol.css(\"padding-left\").replace(\"px\", \"\") - mCol.css(\"padding-right\").replace(\"px\", \"\");\r\n if (mColWidth > 0) {\r\n mCol.css(\"width\", mColWidth + \"px\");\r\n }\r\n\r\n //If amount of blocks is same or smaller then amount of columns\r\n if (hArr.length > iColumns) {\r\n //If maximum block height is more then average column height\r\n var hCurSum = 0;\r\n var hAverageSum = 0;\r\n var iCounter = 0;\r\n for (var i = 0; i < hArr.length; i++) {\r\n hCur = hArr[i];\r\n\r\n if (hCur > hAverage) {\r\n hCur = 0;\r\n }\r\n\r\n hCurSum += hCur;\r\n\r\n if (hCurSum > hAverage) {\r\n hAverageSum += hCurSum;\r\n hCurSum = 0;\r\n if (i < iLast) {\r\n i--;\r\n }\r\n iCounter++;\r\n } else {\r\n if (i == iLast) {\r\n hAverageSum += hCurSum;\r\n iCounter++;\r\n }\r\n }\r\n }\r\n\r\n var hCol = Math.floor(hAverageSum / iCounter) + 10;\r\n\r\n }\r\n\r\n var hCur = 0;\r\n var colCur = 1;\r\n\r\n //Inserting blocks into builded columns\r\n objContainer.find(\".Level-1 > li\").each(function (i) {\r\n\r\n var th = $(this);\r\n\r\n //Calculating height of the blocks that have been inserted so far\r\n hCur += th.height();\r\n\r\n //If current block still fits\r\n\t\t\t\tif (i == 0) {\r\n\t\t\t\t\tth.appendTo(objContainer.find(\"#Col-\" + colCur));\r\n\t\t\t\t} else if (hCur <= hCol) {\r\n th.appendTo(objContainer.find(\"#Col-\" + colCur));\r\n } else {\r\n colCur++;\r\n th.appendTo(objContainer.find(\"#Col-\" + colCur));\r\n hCur = th.height();\r\n }\r\n\r\n });\r\n\r\n //If something went wrong and blocks did not fit the columns\r\n if (objContainer.find(\".MiddleBox > .Level-1 > li\").length > 0) {\r\n objContainer.find(\".MiddleBox > .Level-1 > li\").appendTo(objContainer.find(\"#Col-\" + iColumns));\r\n //objContainer.find(\".MiddleBox\").prepend('Warning! Selected Height is too low! Some elements probably are hidden!');\r\n }\r\n\r\n //Removing empty ul\r\n objContainer.find(\".MiddleBox > .Level-1\").remove();\r\n\r\n }\r\n\r\n\r\n if (strFunctionalityMode == \"VerticalByLevel\") {\r\n\r\n //Adding functionality to plus and minus buttons on level by level mode\r\n\r\n objContainer.find(\".VerticalByLevel .PlusLevel\").click(function () { window.location = $(this).parent(\"li\").find(\"> a\").attr(\"href\"); });\r\n\r\n objContainer.find(\".VerticalByLevel .MinusLevel\").click(function () { window.location = $(this).parent(\"li\").parent(\"ul\").parent(\"li\").find(\"> a\").attr(\"href\"); });\r\n\r\n\r\n }\r\n\r\n };\r\n\r\n //Sort \r\n function sortNumber(a, b) {\r\n return b - a;\r\n }\r\n\r\n})(jQuery);"],"names":["$","sortNumber","a","b","fn","mlm2","objContainer","strFunctionalityMode","iColumns","objContainerID","attr","find","click","par","this","parent","css","show","addClass","hide","removeClass","hover","stop","delay","parentPageID","parents","each","hArr","Array","hSum","iLast","i","height","length","sort","hAverage","Math","floor","col","append","appendTo","mCol","mColWidth","width","replace","hCurSum","hAverageSum","iCounter","hCur","hCol","colCur","th","remove","window","location","jQuery"],"mappings":"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"}