{"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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"}