<?php 
//======================================================================================================================
//
//  Compress output and set caching headers
//
// ---------------------------------------------------------------------------------------------------------------------

/*     ob_start( 'ob_gzhandler' ) ; */
/*     header( 'Content-type: text/javascript' ) ; */
/*     header ( 'Cache-Control: must-revalidate' ) ; */
/*     $offset = 60 * 60 ; */
/*     $ExpStr = 'Expires: ' .  */
/*     gmdate ( 'D, d M Y H:i:s', */
/*     time() + $offset) . ' GMT' ; */
/*     header( $ExpStr ) ; */

?>
//======================================================================================================================
//
//  Copyright (c) 2004, Creed New Media except where noted otherwise. All rights reserved.
//
// ---------------------------------------------------------------------------------------------------------------------
//
//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
//  THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 
//  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 
//  THE SOFTWARE. 
//
//======================================================================================================================

//======================================================================================================================
//
//	Function to resize body text.
//
//----------------------------------------------------------------------------------------------------------------------
	
	var gMinTextSize = 80 
	var gDefaultTextSize = 100 
	var gMaxTextSize = 200
	

	function getFontSize ( )
	{
		var size = parseInt( document.body.style.fontSize ) ;
		
		return size ;
	}
	

	function setFontSize ( size )
	{
		document.body.style.fontSize = size + "%" ;

		enableButton( 'decrease-text-size' ) ;
		enableButton( 'default-text-size' ) ;
		enableButton( 'increase-text-size' ) ;
		
		if ( size == gMinTextSize ) disableButton( 'decrease-text-size' ) ;
		if ( size == gDefaultTextSize ) disableButton( 'default-text-size' ) ;
		if ( size == gMaxTextSize ) disableButton( 'increase-text-size' ) ;
	}
	

	function changeTextSize ( button ) 
	{ 
		var id = button.id ;
		
		switch ( id ) {
			case 'decrease-text-size' :
				decreaseTextSize() ;
				break
			case 'default-text-size' :
				defaultTextSize() ;
				break
			case 'increase-text-size' :
				increaseTextSize() ;
				break
		}
	}
	

	function decreaseTextSize () 
	{ 
		var size = getFontSize() ;
		
		if ( size != gMinTextSize ) { 
			size = size - 10 ;
		}
		
		setFontSize( size ) ; 
	}
	

	function defaultTextSize () 
	{ 
		setFontSize( gDefaultTextSize ) ;
	} 
	
	
	function increaseTextSize () 
	{ 
		var size = getFontSize() ;
		
		if ( size != gMaxTextSize ) { 
			size = size + 10 ;
		}
	
		setFontSize( size ) ; 
	} 


	function setTextSize ()
	{
		var cookie = getCookie( 'fontsize' ) ;
		
		size = cookie ? cookie : gDefaultTextSize ;
		
		setFontSize( size ) ; 
	}
	

	function saveTextSize () 
	{
		var size = getFontSize() ;
		
		setCookie( 'fontsize', size, 365 ) ;
	}
	
	
	function disableButton ( id ) 
	{
		if(document.getElementById( id ))
		{
			var button = document.getElementById( id ) ;
	
			var hiliteString = '_hilite' ;
			var activeString = '_active' ;
			var inactiveString = '_inactive' ;
	
			var src = button.src ;
			
			var ftype = src.substring( src.lastIndexOf( '.' ), src.length) ;
			
			var src = src.replace( activeString + ftype, inactiveString + ftype ) ;
			var src = src.replace( hiliteString + ftype, inactiveString + ftype ) ;
	
			button.setAttribute( 'src', src ) ;
			button.setAttribute( 'onclick', '' ) ;
			button.setAttribute( 'onkeypress', '' ) ;
			button.setAttribute( 'onmouseover', '' ) ;
			button.setAttribute( 'onmouseout', '' ) ;
			}
	}
	
	
	function enableButton( id ) 
	{
		if(document.getElementById( id ))
		{
			var button = document.getElementById( id ) ;
	
			var hiliteString = '_hilite' ;
			var activeString = '_active' ;
			var inactiveString = '_inactive' ;
	
			var src = button.getAttribute( 'src' ) ;
			
			var ftype = src.substring( src.lastIndexOf( '.' ), src.length) ;
			
			var src = src.replace( inactiveString + ftype, activeString + ftype ) ;
			var hsrc = src.replace( activeString + ftype, hiliteString + ftype ) ;
	
			button.setAttribute( 'src', src ) ;
			button.setAttribute( 'hsrc', hsrc ) ;
			
			button.setAttribute( 'onclick', 'changeTextSize(this);return false;' ) ;
			button.setAttribute( 'onkeypress', 'changeTextSize(this);return false;' ) ;
			
			button.onmouseover = function() 
			{
				sTempSrc = this.getAttribute( 'src' ) ;
				this.setAttribute( 'src', this.getAttribute( 'hsrc' ) ) ;
			}	
			
			button.onmouseout = function() 
			{
				if ( ! sTempSrc ) sTempSrc = this.getAttribute( 'src' ).replace( hiliteString + ftype, activeString + ftype ) ;
				this.setAttribute( 'src', sTempSrc ) ;
			}
		}
	}

    
    function writeTextResizeControls () 
    {
		
        if (document.getElementById( 'text-resize-controls' ) && (document.attachEvent || document.addEventListener) )
        {
            var decrease = document.createElement( 'img' ) ;
            var standard = document.createElement( 'img' ) ;
            var increase = document.createElement( 'img' ) ;
            
            decrease.setAttribute( 'class', 'rollover' ) ;
            decrease.setAttribute( 'id', 'decrease-text-size' ) ;
            decrease.setAttribute( 'name', 'decrease-text-size' ) ;
            decrease.setAttribute( 'src', '/nh/_images/controls/css_resize_down_active.gif' ) ;
            decrease.setAttribute( 'alt', 'Decrease text size' ) ;
            decrease.setAttribute( 'title', 'Decrease the size of the text.' ) ;
      
            standard.setAttribute( 'class', 'rollover' ) ;
            standard.setAttribute( 'id', 'default-text-size' ) ;
            standard.setAttribute( 'name', 'default-text-size' ) ;
            standard.setAttribute( 'src', '/nh/_images/controls/css_resize_default_active.gif' ) ;
            standard.setAttribute( 'alt', 'Default text size' ) ;
            standard.setAttribute( 'title', 'Default the size of the text.' ) ;
    
            increase.setAttribute( 'class', 'rollover' ) ;
            increase.setAttribute( 'id', 'increase-text-size' ) ;
            increase.setAttribute( 'name', 'increase-text-size' ) ;
            increase.setAttribute( 'src', '/nh/_images/controls/css_resize_up_active.gif' ) ;
            increase.setAttribute( 'alt', 'Increase text size' ) ;
            increase.setAttribute( 'title', 'Increase the size of the text.' ) ;
    
            document.getElementById( 'text-resize-controls' ).appendChild( decrease ) ;
            document.getElementById( 'text-resize-controls' ).appendChild( standard ) ;
            document.getElementById( 'text-resize-controls' ).appendChild( increase ) ;
    
            if ( document.attachEvent ) 
            {
                decrease.attachEvent( 'onclick', decreaseTextSize ) ;
                decrease.attachEvent( 'onkeypress', decreaseTextSize ) ;
                standard.attachEvent( 'onclick', defaultTextSize ) ;
                standard.attachEvent( 'onkeypress', defaultTextSize ) ;
                increase.attachEvent( 'onclick', increaseTextSize ) ;
                increase.attachEvent( 'onkeypress', increaseTextSize ) ;
            }
            else 
            {
                decrease.setAttribute( 'onclick', 'changeTextSize(this);return true;' ) ;
                decrease.setAttribute( 'onkeypress', 'changeTextSize(this);return true;' ) ;
                standard.setAttribute( 'onclick', 'changeTextSize(this);return true;' ) ;
                standard.setAttribute( 'onkeypress', 'changeTextSize(this);return true;' ) ;
                increase.setAttribute( 'onclick', 'changeTextSize(this);return true;' ) ;
                increase.setAttribute( 'onkeypress', 'changeTextSize(this);return true;' ) ;
            }
        }
    }


	safeAddOnload( writeTextResizeControls ) ;
	safeAddOnload( setTextSize ) ;
	
	
	safeAddOnUnload( saveTextSize ) ;
	
	


