diff --git a/media/js/config.js b/media/js/config.js index f1fb99917bedaeab25349895cb62b1237210d919..b3384f98c39d5b7ec7ece6e551ba9dd51bf3f16d 100644 --- a/media/js/config.js +++ b/media/js/config.js @@ -43,3 +43,38 @@ var Watcher = (function() { timer = setTimeout(callback, ms); }; })(); + + + + +Element.prototype.hasClass = function (className) { + return new RegExp(' ' + className + ' ').test(' ' + this.className + ' '); +}; + +Element.prototype.addClass = function (className) { + if (!this.hasClass(className)) { + this.className += ' ' + className; + } +}; + +Element.prototype.removeClass = function (className) { + var newClass = ' ' + this.className.replace(/[\t\r\n]/g, ' ') + ' '; + if (this.hasClass(className)) { + while (newClass.indexOf(' ' + className + ' ') >= 0) { + newClass = newClass.replace(' ' + className + ' ', ' '); + } + this.className = newClass.replace(/^\s+|\s+$/g, ' '); + } +}; + +Element.prototype.toggleClass = function (className) { + var newClass = ' ' + this.className.replace(/[\t\r\n]/g, " ") + ' '; + if (this.hasClass(className)) { + while (newClass.indexOf(" " + className + " ") >= 0) { + newClass = newClass.replace(" " + className + " ", " "); + } + this.className = newClass.replace(/^\s+|\s+$/g, ' '); + } else { + this.className += ' ' + className; + } +};