// part of code by Chris Kaminski www.setmajer.com/demo/fontsizewidget.html
// heavily adapted for php integration by Hans Bracker.
// The sizer buttons are loaded via markup (:fontsizer:)
// variables 'increment' and 'fontSizeDefault' are set in fontsizer.php
function Fontsize(increment,def) {
this.w3c = (document.getElementById);
this.ms = (document.all);
this.userAgent = navigator.userAgent.toLowerCase();
this.isOldOp = ((this.userAgent.indexOf('opera') != -1)&&(parseFloat(this.userAgent.substr(this.userAgent.indexOf('opera')+5)) <= 7));
// this.isMacIE = ((this.userAgent.indexOf('msie') != -1) && (this.userAgent.indexOf('mac') != -1) && (this.userAgent.indexOf('opera') == -1));
if ((this.w3c || this.ms) && !this.isOldOp && !this.isMacIE) {
this.name = "fontSize";
// this.cookiePrefix = cookiePrefix;
// this.cookieName = cookiePrefix+'setfontsize';
this.cookieName = cookieName;
this.cookieExpires = '30';
this.cookiePath = '/';
this.increment = increment;
this.def = def;
this.defPx = Math.round(16*(def/100))
this.base = 1;
this.pref = this.getPref();
this.testHTML = '
';
} else {
this.fontSizeInit = new Function('return true;');
}
this.allLinks = this.getLinkHtml();
}
// check the user's current base text size and adjust as necessary
Fontsize.prototype.fontSizeInit = function() {
document.writeln(this.testHTML);
this.body = (this.w3c)?document.getElementsByTagName('body')[0].style:document.all.tags('body')[0].style;
this.fontSizeTest = (this.w3c)?document.getElementById('fontSizeTest'):document.all['fontSizeTest'];
var h = (this.fontSizeTest.clientHeight)?parseInt(this.fontSizeTest.clientHeight):(this.fontSizeTest.offsetHeight)?parseInt(this.fontSizeTest.offsetHeight):999;
if (h < this.defPx) this.base = this.defPx/h;
this.body.fontSize = Math.round(this.pref*this.base) + '%';
fsinit = 1;
}
Fontsize.prototype.getLinkHtml = function() {
var html =''+fsLabel+'';
html +='–';
html +='0';
html +='+';
}
Fontsize.prototype.getPref = function() {
var pref = this.getCookie(this.cookieName);
if (pref) return parseInt(pref);
else return this.def;
}
Fontsize.prototype.setSize = function(direction) {
this.pref = (direction)?this.pref+(direction*this.increment):this.def;
setCookies = setcookie(this.cookieName,this.pref,this.cookieExpires,this.cookiePath);
this.body.fontSize = Math.round(this.pref*this.base) + '%';
}
Fontsize.prototype.getCookie = function(cookieName) {
var cookie = getcookie(cookieName);
return (cookie)?cookie:false;
}
var fontSize = new Fontsize(increment,fontSizeDefault);
var fsinit = 0;
function getexpirydate( nodays){
var UTCstring;
Today = new Date();
nomilli=Date.parse(Today);
Today.setTime(nomilli+nodays*24*60*60*1000);
UTCstring = Today.toUTCString();
return UTCstring;
}
function getcookie(cookiename) {
var cookiestring=""+document.cookie;
var index1=cookiestring.indexOf(cookiename);
if (index1==-1 || cookiename=="") return "";
var index2=cookiestring.indexOf(';',index1);
if (index2==-1) index2=cookiestring.length;
return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}
function setcookie(name,value,duration,path){
cookiestring=name+"="+escape(value)+";EXPIRES="+getexpirydate(duration)+";PATH="+path;
document.cookie=cookiestring;
if(!getcookie(name)){ return false; }
else{ return true; }
}