const arrMonths = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", ]; function base64_encode (data) { // http://kevin.vanzonneveld.net // + original by: Tyler Akins (http://rumkin.com) // + improved by: Bayron Guevara // + improved by: Thunder.m // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Pellentesque Malesuada // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: Rafal Kukawski (http://kukawski.pl) // * example 1: base64_encode('Kevin van Zonneveld'); // * returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA==' // mozilla has this native // - but breaks in 2.0.0.12! //if (typeof this.window['btoa'] == 'function') { // return btoa(data); //} data = data +''; // Serve a forzare che data sia una stringa var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc = "", tmp_arr = []; if (!data) { return data; } // Aggiunto da me. Cerco il Carattere € e lo trasformo in EUR data=data.replace(String.fromCharCode(8364),"EUR"); do { // pack three octets into four hexets o1 = data.charCodeAt(i++); o2 = data.charCodeAt(i++); o3 = data.charCodeAt(i++); bits = o1 << 16 | o2 << 8 | o3; h1 = bits >> 18 & 0x3f; h2 = bits >> 12 & 0x3f; h3 = bits >> 6 & 0x3f; h4 = bits & 0x3f; // use hexets to index into b64, and append result to encoded string tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4); } while (i < data.length); enc = tmp_arr.join(''); var r = data.length % 3; return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3); } /* * Date Format 1.2.3 * (c) 2007-2009 Steven Levithan * MIT license * * Includes enhancements by Scott Trenda * and Kris Kowal * * Accepts a date, a mask, or a date and a mask. * Returns a formatted version of the given date. * The date defaults to the current date/time. * The mask defaults to dateFormat.masks.default. */ var dateFormat = function () { var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, timezoneClip = /[^-+\dA-Z]/g, pad = function (val, len) { val = String(val); len = len || 2; while (val.length < len) val = "0" + val; return val; }; // Regexes and supporting functions are cached through closure return function (date, mask, utc) { var dF = dateFormat; // You can't provide utc if you skip other args (use the "UTC:" mask prefix) if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) { mask = date; date = undefined; } // Passing date through Date applies Date.parse, if necessary date = date ? new Date(date) : new Date; if (isNaN(date)) throw SyntaxError("invalid date"); mask = String(dF.masks[mask] || mask || dF.masks["default"]); // Allow setting the utc argument via the mask if (mask.slice(0, 4) == "UTC:") { mask = mask.slice(4); utc = true; } var _ = utc ? "getUTC" : "get", d = date[_ + "Date"](), D = date[_ + "Day"](), m = date[_ + "Month"](), y = date[_ + "FullYear"](), H = date[_ + "Hours"](), M = date[_ + "Minutes"](), s = date[_ + "Seconds"](), L = date[_ + "Milliseconds"](), o = utc ? 0 : date.getTimezoneOffset(), flags = { d: d, dd: pad(d), ddd: dF.i18n.dayNames[D], dddd: dF.i18n.dayNames[D + 7], m: m + 1, mm: pad(m + 1), mmm: dF.i18n.monthNames[m], mmmm: dF.i18n.monthNames[m + 12], yy: String(y).slice(2), yyyy: y, h: H % 12 || 12, hh: pad(H % 12 || 12), H: H, HH: pad(H), M: M, MM: pad(M), s: s, ss: pad(s), l: pad(L, 3), L: pad(L > 99 ? Math.round(L / 10) : L), t: H < 12 ? "a" : "p", tt: H < 12 ? "am" : "pm", T: H < 12 ? "A" : "P", TT: H < 12 ? "AM" : "PM", Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""), o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10] }; return mask.replace(token, function ($0) { return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); }); }; }(); // Some common format strings dateFormat.masks = { "default": "ddd mmm dd yyyy HH:MM:ss", shortDate: "m/d/yy", mediumDate: "mmm d, yyyy", longDate: "mmmm d, yyyy", fullDate: "dddd, mmmm d, yyyy", shortTime: "h:MM TT", mediumTime: "h:MM:ss TT", longTime: "h:MM:ss TT Z", isoDate: "yyyy-mm-dd", isoTime: "HH:MM:ss", isoDateTime: "yyyy-mm-dd'T'HH:MM:ss", isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'" }; // Internationalization strings dateFormat.i18n = { dayNames: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], monthNames: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ] }; // For convenience... Date.prototype.format = function (mask, utc) { return dateFormat(this, mask, utc); }; /** Questa funzione accetta una data in arrivo dal DB e restituisce l'oggetto date javascript La data arriva cosi': yyyy-MM-dd */ function SQLToDate(strDate) { if (strDate && strDate!='') { var strYear= strDate.substr(0,4); var strMonth= strDate.substr(5,2); var strDay = strDate.substr(8,2); var tmpDate= new Date(+strYear,+strMonth-1,+strDay); return tmpDate; } else return null; } /** Questa funzione accetta una data in arrivo dal DB e restituisce l'oggetto date javascript La data arriva cosi': yyyy-MM-dd HH:mm:ss */ function SQLToDateTime(strDate) { if (strDate && strDate!='') { var strYear= strDate.substr(0,4); var strMonth= strDate.substr(5,2); var strDay = strDate.substr(8,2); var strHour= strDate.substr(11,2); var strMinute= strDate.substr(14,2); var strSecond= strDate.substr(17,2); var tmpDate= new Date(+strYear,+strMonth-1,+strDay,+strHour,+strMinute,+strSecond); return tmpDate; } else return null; } function CreateRandomPassword(Length, isUpperAlpha, isLowerAlpha, isNumaric ,SpecialChars) { var _allowedChars = ""; if (isUpperAlpha != false) _allowedChars += "ABCDEFGHJKLMNOPQRSTUVWXYZ"; if (isLowerAlpha != false) _allowedChars += "abcdefghijkmnopqrstuvwxyz"; if (isNumaric != false) _allowedChars += "0123456789"; _allowedChars += SpecialChars; if(!Length) Length = 8 var chars = ""; allowedCharCount = _allowedChars.length; if(allowedCharCount == 0) return " "; for (var i = 0; i < Length; i++) { chars += _allowedChars[Math.floor(Math.random() * Math.floor(allowedCharCount))]; } return chars; } $(document).ready(function() { $(document).click(function(event){ //1 - Click sull'icona utente if(event.target.className == "user-profile" || event.target.className == "far fa-user-circle"){ $(".user-menu").fadeToggle(); } //2 - se ho cliccato un menu top o side top if( event.target.classList.contains("sidebar-top-button") || event.target.classList.contains("sidebar-top-icon") //|| event.target.classList.contains("fas") || event.target.classList.contains("no-mobile") || event.target.classList.contains("topbar-item") ){ //Click sulle voci di menu top-sidebar if( event.target.classList.contains("sidebar-top-button") || event.target.classList.contains("sidebar-top-icon") || event.target.classList.contains("fas") || event.target.classList.contains("no-mobile") ){ if(event.target.classList.contains("sidebar-top-icon")){ //ottengo admin - database ecc current=$(event.target.parentNode).data("workarea"); $(".sidebar-top-location").html(current); }else{ current=""; } } //Click sulle voci di menu top if( event.target.classList.contains("topbar-item") ){ //ottengo admin - database ecc current=$(event.target.parentNode).data("workarea"); current=current.substr(4,current.lenght); $(".sidebar-top-location").html(current); //console.log(current); } //sincronizzo con il menu top if( !event.target.classList.contains("no-menu-change") || !event.target.parent().hasClass("no-menu-change") ){ $(".sidebar-top-button").removeClass("active"); $(".topmenu-menu-item").removeClass("menu-active"); $('.button-'+current).addClass("active"); $('[data-workarea="top-'+current+'"]').addClass("menu-active"); $(".onscreen").removeClass("onscreen").addClass("offscreen"); $('.menu-'+current).removeClass("offscreen").addClass("onscreen"); } } }); });