// scFontSize.js v.01.01.02 - copyright 2006-2007 Stefan Schmohl, scido.de - all rights reserved

//  ######## get element by id ########
function scFzIdF( idS ) {    if ( idS == "" ) return false ; var idO = document.getElementById( idS ) ; 
    /* if ( ! idO ) alert ( "ID \"" + idS + "\" not found !" ) ; */   return idO ; } ; 
//  ######## display text "aS" at id "iS" ########
function scFzTsF( aS, iS ) { 
    var idO = scFzIdF( iS ) ;                 if ( ! idO ) return false ; 
    var ntO = document.createTextNode( aS ) ; if ( ! ntO ) return false ; 
    var otO = idO.firstChild ;                if ( ! otO ) return false ; 
    if ( ! ( idO.replaceChild( ntO, otO ) ) )              return false ; 
    return true ; } ; 
//  ######## set font size + "aN" ########
function scFzSzF( aN ) { 
    // #### cookie values ####
    var nS = this.ckIdS + "=" ; var nN = nS.length ;    // cookie variable name
    dO = new Date( ) ; var dN = dO.getTime( ) + ( this.ckExN * 24 * 60 * 60 * 1000 ) ; dO.setTime( dN ) ; 
    var cG = ";expires=" + dO.toGMTString( ) + ";path=/;" ;    // exp. in ckExN days, valid for root path
    // #### if not yet defined, try to set cookie ####
    if ( ! document.cookie.match( nS ) ) {    // not yet defined ( or forbidden )
        document.cookie = nS + this.dfFzN + cG ;    // try to set default font size
        if ( ! document.cookie.match( nS ) ) return false ; } ;    // probably forbidden
    // #### try to get the cookie value  ####
    var vN = document.cookie.indexOf( nS ) + nN ;    // position of begin of value
    if ( vN < nN ) { alert( "scFontSize bug" ) ; return false ; } ;   // should never happen
    var vS = document.cookie.substr( vN ) ;    // substring starting with value
    vN = vS.indexOf( ";" ) ;    // position of end of value = length of value
    if ( vN != -1 ) vS = vS.substr( 0, vN ) ;    // substring with value
    // #### calculate new value, set cookie, and display new font size value ####
    vN = vS - 0 + aN ; document.cookie = nS + vN + cG ; scFzTsF( vN, this.nbIdS ) ; 
    // #### set font size of document ####
    vN = vN + 0.2 ;    // mozilla switches up at +0.5, ie down at -0.1 - go into the middle
    var tdA = document.getElementsByTagName( "td" ) ;    // array of all table cells
    for ( nN = 0 ; nN < tdA.length ; nN++ ) {    // iterate
        tdA[ nN ].style.fontSize = vN + "px" ; } ;    // set fontSize style
    return true ; } ; 
//  ######## scFontSize object constructor ########
function ScFontSizeO( ckIdS, ckExN, dfFzN, nbIdS, dcIdS, dcTxS ) { 
    this.ckIdS = ckIdS ; this.ckExN = ckExN ; this.dfFzN = dfFzN, this.nbIdS = nbIdS ; 
    this.setF = scFzSzF ;    if ( this.setF( 0 ) ) scFzTsF( dcTxS, dcIdS ) ; } ; 

/* use it like this

<html><head><script type="text/javascript" src="scFontSize.js"></script></head
><body><table
 ><tr><td nowrap
   >font size : <span id="scFzNb">n.a.</span
   ><a href="#0" onmousedown="scFzO.setF( -1 );">&nbsp;-&nbsp;</a
   ><a href="#0" onmousedown="scFzO.setF( +1 );">&nbsp;+&nbsp;</a
   ></td
  ><td><div id="scFzDc">scFontSize failure</div></td
 ></tr></table></body
><script type="text/javascript"><!--
scFzO = new ScFontSizeO ( "scFzCk", 90, 13, "scFzNb", "szFzDc", "scFontSize success" ) ;  
// --></script></html>

*/
