/* * Project: RV Font Size jQuery Plugin v0.2.4 * Description: An easy and flexible jquery plugin to give font size accessibility control. * URL: https://github.com/ramonvictor/rv-jquery-fontsize/ * Author: Ramon Victor (https://github.com/ramonvictor/) * License: Licensed under the MIT license: * http://www.opensource.org/licenses/mit-license.php * Any and all use of this script must be accompanied by this copyright/license notice in its present form. */ (function(e, d, a, g) { var b = "rvFontsize", f = { targetSection : "body", store : false, storeIsDefined : !(typeof store === "undefined"), variations : 7, defaultFont : 4, controllers : { append : true, appendTo : "body", showResetButton : false, template : "" } }; function c(j, i) { var h = this; h.element = j; h.options = e.extend({}, f, i); h._defaults = f; h._name = b; h.init(); } c.prototype = { init : function() { var h = this, i = function() { h.defineElements(); h.getDefaultFontSize(); }; i(); if (h.options.store === true && !(h.options.storeIsDefined)) { h.dependencyWarning(); } }, dependencyWarning : function() { console .warn('When you difine "store: true", store script is required (https://github.com/ramonvictor/rv-jquery-fontsize/blob/master/js/store.min.js)'); }, bindControlerHandlers : function() { var h = this; h.$decreaseButton = e(".rvfs-decrease"); if (h.$decreaseButton.length > 0) { h.$decreaseButton.on("click", function(j) { j.preventDefault(); var i = e(this); if (!i.hasClass("disabled")) { var k = h.getCurrentVariation(); if (k > 1) { h.$target.removeClass("rvfs-" + k); h.$target.attr("data-rvfs", k - 1); if (h.options.store === true) { h.storeCurrentSize(); } h.fontsizeChanged(); } } }); } h.$increaseButton = e(".rvfs-increase"); if (h.$increaseButton.length > 0) { h.$increaseButton.on("click", function(j) { j.preventDefault(); var i = e(this); if (!i.hasClass("disabled")) { var k = h.getCurrentVariation(); if (k < h.options.variations) { h.$target.removeClass("rvfs-" + k); h.$target.attr("data-rvfs", k + 1); if (h.options.store === true) { h.storeCurrentSize(); } h.fontsizeChanged(); } } }); } h.$resetButton = e(".rvfs-reset"); if (h.$resetButton.length > 0) { h.$resetButton.on("click", function(j) { j.preventDefault(); var i = e(this); if (!i.hasClass("disabled")) { var k = h.getCurrentVariation(); h.$target.removeClass("rvfs-" + k); h.$target.attr("data-rvfs", h.defaultFontsize); if (h.options.store === true) { h.storeCurrentSize(); } h.fontsizeChanged(); } }); } }, defineElements : function() { var h = this; h.$target = e(h.options.targetSection); if (h.options.controllers.append !== false) { var i = h.options.controllers.showResetButton ? 'A' : ""; var k = h.options.controllers.template, j = ""; h.$appendTo = e(h.options.controllers.appendTo); if (e.trim(k).length > 0) { j = k; } else { j = '
'; } h.$appendTo.html(j); h.bindControlerHandlers(); } }, getDefaultFontSize : function() { // var h = this, i = h.options.variations; // h.defaultFontsize = 0; // if (i % 2 === 0) { // h.defaultFontsize = (i / 2) + 1 // } else { // h.defaultFontsize = parseInt((i / 2) + 1, 10) // } var h = this; h.defaultFontsize = h.options.defaultFont; h.setDefaultFontSize(); }, setDefaultFontSize : function() { var h = this; if (h.options.store === true && h.options.storeIsDefined) { var i = store.get("rvfs") || h.defaultFontsize; h.$target.attr("data-rvfs", i); } else { h.$target.attr("data-rvfs", h.defaultFontsize); } h.fontsizeChanged(); }, storeCurrentSize : function() { var h = this; if (h.options.storeIsDefined) { store.set("rvfs", h.$target.attr("data-rvfs")); } else { h.dependencyWarning(); } }, getCurrentVariation : function() { return parseInt(this.$target.attr("data-rvfs"), 10); }, fontsizeChanged : function() { var h = this, i = h.getCurrentVariation(); h.$target.addClass("rvfs-" + i); if (i === h.defaultFontsize) { h.$resetButton.addClass("disabled"); } else { h.$resetButton.removeClass("disabled"); } if (i === h.options.variations) { h.$increaseButton.addClass("disabled"); } else { h.$increaseButton.removeClass("disabled"); } if (i === 1) { h.$decreaseButton.addClass("disabled"); } else { h.$decreaseButton.removeClass("disabled"); } } }; e.fn[b] = function(i) { var h = this; return h.each(function() { if (!e.data(h, "plugin_" + b)) { e.data(h, "plugin_" + b, new c(h, i)); } }); }; e[b] = function() { var h = e(d); return h.rvFontsize.apply(h, Array.prototype.slice.call(arguments, 0)); }; })(jQuery, window, document);