diff --git a/assets/js/B_cookies.js b/assets/js/B_cookies.js new file mode 100644 index 0000000..c055f5e --- /dev/null +++ b/assets/js/B_cookies.js @@ -0,0 +1,39 @@ +var docCookies = { + getItem: function (sKey) { + if (!sKey) { return null; } + return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null; + }, + setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) { + if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) { return false; } + var sExpires = ""; + if (vEnd) { + switch (vEnd.constructor) { + case Number: + sExpires = vEnd === Infinity ? "; expires=Fri, 31 Dec 9999 23:59:59 GMT" : "; max-age=" + vEnd; + break; + case String: + sExpires = "; expires=" + vEnd; + break; + case Date: + sExpires = "; expires=" + vEnd.toUTCString(); + break; + } + } + document.cookie = encodeURIComponent(sKey) + "=" + encodeURIComponent(sValue) + sExpires + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "") + (bSecure ? "; secure" : ""); + return true; + }, + removeItem: function (sKey, sPath, sDomain) { + if (!this.hasItem(sKey)) { return false; } + document.cookie = encodeURIComponent(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : ""); + return true; + }, + hasItem: function (sKey) { + if (!sKey) { return false; } + return (new RegExp("(?:^|;\\s*)" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie); + }, + keys: function () { + var aKeys = document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, "").split(/\s*(?:\=[^;]*)?;\s*/); + for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); } + return aKeys; + } +}; diff --git a/assets/js/B_purecss.js b/assets/js/B_purecss.js new file mode 100644 index 0000000..b76bdf9 --- /dev/null +++ b/assets/js/B_purecss.js @@ -0,0 +1,29 @@ +B(window).on('load',function() { + // Handle PureCSS menu/submenu + // It currently expects: + // * menu needs class .menu-with-dropdown + // * submenu to have the .submenu class. + B('.menu-with-dropdown').on('click',function(){ + var B_t = B(this), + B_sub = B(B_t.firstChild('.submenu')); + if(B_sub.css('visibility') == 'visible') { + B_sub.css({ + 'visibility':'hidden', + 'position':'absolute', + 'top':'-10000px', + 'left':'-10000px' + }); + B(B_t.firstChild('.fa-toggle-up')).removeClass('fa-toggle-up').addClass('fa-toggle-down'); + } else { + B_sub.css({ + 'visibility':'visible', + 'position':'relative', + 'top':'0', + 'left':'0', + 'border':'1px solid #AAA', + 'border-radius':'4px' + }); + B(B_t.firstChild('.fa-toggle-down')).removeClass('fa-toggle-down').addClass('fa-toggle-up'); + } + }); +});