1/* 2 3WordPress Plugin: Zeno Font Resizer. 4Plugin URI: https://wordpress.org/plugins/zeno-font-resizer/ 5 6Copyright 2010 - 2013 Cubetech GmbH 7Copyright 2015 - 2026 Marcel Pol ([email protected]) 8License: GPLv2 or later 9 10This program is free software; you can redistribute it and/or modify 11it under the terms of the GNU General Public License as published by 12the Free Software Foundation; either version 2 of the License, or 13(at your option) any later version. 14 15This program is distributed in the hope that it will be useful, 16but WITHOUT ANY WARRANTY; without even the implied warranty of 17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18GNU General Public License for more details. 19 20You should have received a copy of the GNU General Public License 21along with this program; if not, write to the Free Software 22Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23*/ 24 25 26document.addEventListener('DOMContentLoaded', function () { 27 28 var zeno_font_resizer_settings = { 29 element: zeno_font_resizer_script.element, 30 resizemax: parseInt( zeno_font_resizer_script.resizemax ), 31 resizemin: parseInt( zeno_font_resizer_script.resizemin ), 32 resizesteps: parseFloat( zeno_font_resizer_script.resizesteps ), 33 cookietime: parseInt( zeno_font_resizer_script.cookietime ), 34 startsize: parseFloat( zeno_font_resizer_get_fontsize() ), // Runs before applying the saved size below. 35 }; 36 37 38 // restore previous setting from cookie into html fontsize. Runs after setting the startsize in settings. 39 var savedsize = parseFloat( zeno_font_resizer_get_cookie() ); 40 if ( savedsize > zeno_font_resizer_script.resizemin && savedsize < zeno_font_resizer_script.resizemax ) { 41 zeno_font_resizer_set_fontsize( savedsize ); 42 } 43 44 45 /* 46 * Will set the fontsize of the desired element. 47 * Will also save this in a cookie. 48 * Will not do anything in case the html element does not exist. 49 * 50 * @param fontsize float desired fontsize to be set. 51 * 52 * @since 2.0.0 53 */ 54 function zeno_font_resizer_set_fontsize( fontsize ) { 55 56 var element_name = zeno_font_resizer_settings.element; 57 if ( element_name ) { 58 var element = document.querySelector( element_name ); 59 if ( element ) { 60 61 element.style.fontSize = fontsize + 'px'; 62 63 zeno_font_resizer_set_cookie( fontsize ); 64 65 } 66 } 67 68 } 69 70 71 /* 72 * Will get the current fontsize of the desired element. 73 * 74 * Takes 3 steps to arrive at 1 value; have 15 as default, use the html element, and use the custom element. 75 * The last found value will be used. 76 * 77 * @return fontsize float the current fontsize. 78 * 79 * @since 2.0.0 80 */ 81 function zeno_font_resizer_get_fontsize() { 82 83 var fontsize = 15; 84 85 var element_name = 'html'; 86 if ( element_name ) { 87 var element = document.querySelector( element_name ); 88 if ( element ) { 89 fontsize = element.style.fontSize; 90 if ( ! fontsize ) { 91 fontsize = getComputedStyle(element).fontSize; 92 } 93 } 94 } 95 96 var element_name = zeno_font_resizer_script.element; 97 if ( element_name ) { 98 var element = document.querySelector( element_name ); 99 if ( element ) { 100 fontsize = element.style.fontSize; 101 if ( ! fontsize ) { 102 fontsize = getComputedStyle(element).fontSize; 103 } 104 } 105 } 106 107 if ( typeof fontsize === 'string' || fontsize instanceof String ) { 108 fontsize = fontsize.replace( 'px', '' ); 109 } 110 111 return parseFloat( fontsize ); 112 113 } 114 115 116 /* 117 * Will save the new fontsize in a cookie. 118 * 119 * @param fontsize float the desired fontsize to be set. 120 * 121 * @since 2.0.0 122 */ 123 function zeno_font_resizer_set_cookie( fontsize ) { 124 125 var expires; 126 var days = parseInt( zeno_font_resizer_settings.cookietime ); 127 128 if ( days ) { 129 var date = new Date(); 130 date.setTime( date.getTime() + ( days * 24 * 60 * 60 * 1000 ) ); 131 expires = '; expires=' + date.toGMTString(); 132 } else { 133 expires = ''; 134 } 135 136 document.cookie = 'fontSize=' + parseFloat( fontsize ) + expires + "; path=/"; 137 138 } 139 140 141 /* 142 * Will get the fontsize from a cookie. 143 * 144 * @return fontsize string the value of the cookie. 145 * 146 * @since 2.0.0 147 */ 148 function zeno_font_resizer_get_cookie() { 149 150 var name = 'fontSize'; 151 if ( document.cookie.length > 0 ) { 152 c_start = document.cookie.indexOf( name + "="); 153 if ( c_start != -1 ) { 154 c_start = c_start + name.length + 1; 155 c_end = document.cookie.indexOf(";", c_start); 156 if ( c_end == -1 ) { 157 c_end = document.cookie.length; 158 } 159 return unescape(document.cookie.substring(c_start, c_end)); 160 } 161 } 162 163 return ''; 164 165 } 166 167 168 document.querySelectorAll( '.zeno_font_resizer_add' ).forEach( button => { 169 button.addEventListener( 'click', function (e) { 170 171 var fontsize = zeno_font_resizer_get_fontsize(); 172 var resizesteps = parseFloat( zeno_font_resizer_settings.resizesteps ); 173 var startsize = parseFloat( zeno_font_resizer_settings.startsize ); 174 var newfontsize = fontsize + resizesteps; 175 var maxfontsize = startsize + ( resizesteps * 5 ); // max 5 steps 176 if ( newfontsize > maxfontsize) { 177 return false; 178 } 179 if ( newfontsize > zeno_font_resizer_settings.resizemax ) { 180 return false; 181 } 182 newfontsize = newfontsize.toFixed(2); // rounded to 2 decimals and converted to string. 183 184 zeno_font_resizer_set_fontsize( parseFloat( newfontsize ) ); 185 186 e.preventDefault(); 187 return false; 188 189 }); 190 }); 191 192 193 document.querySelectorAll( '.zeno_font_resizer_minus' ).forEach( button => { 194 button.addEventListener( 'click', function (e) { 195 196 var fontsize = zeno_font_resizer_get_fontsize(); 197 var resizesteps = parseFloat( zeno_font_resizer_settings.resizesteps ); 198 var startsize = parseFloat( zeno_font_resizer_settings.startsize ); 199 var newfontsize = fontsize - resizesteps; 200 var minfontsize = startsize - ( resizesteps * 5 ); // max 5 steps 201 if ( newfontsize < minfontsize) { 202 return false; 203 } 204 if ( newfontsize < zeno_font_resizer_settings.resizemin ) { 205 return false; 206 } 207 newfontsize = newfontsize.toFixed(2); // rounded to 2 decimals and converted to string. 208 209 zeno_font_resizer_set_fontsize( parseFloat( newfontsize ) ); 210 211 e.preventDefault(); 212 return false; 213 214 }); 215 }); 216 217 218 document.querySelectorAll( '.zeno_font_resizer_reset' ).forEach( button => { 219 button.addEventListener( 'click', function (e) { 220 221 zeno_font_resizer_set_fontsize( zeno_font_resizer_settings.startsize ); 222 223 e.preventDefault(); 224 return false; 225 226 }); 227 }); 228 229});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.