/*
	lib_fontsize.js
	aangemaakt op 23/4/2009 door Keloid Media  -   www.keloidmedia.nl
	
	-----------------------------------------------------------------
	
	KELOID MEDIA - bedenkt, ontwerpt en ontwikkelt voor op het scherm

	www.keloidmedia.nl
	
	-----------------------------------------------------------------

	Dit javascript-bestand bestaat uit twee delen
	- tekstgrootte --> wijzigen van font-size op de pagina
	- cookies --> aanmaken, bewerken en uitlezen van cookies

*/


function fontsize_init(){
	reset_sizes(); // testing purpose only --> this function call erases the cookie-data
	//set_sizes();
}




// FONT_SIZE
// -------------------------------------------------------------------

var a_min		= 9;
var a_max		= 17; 
var a_default   = 14;
var a_current   = 0;

var p_min	 	= 9;var p_max 		= 17;
var p_default	= 14;
var p_current	= 0;

var h1_min		= 12;
var h1_max		= 20; 
var h1_default  = 17;
var h1_current  = 0;

var h2_min		= 9;
var h2_max		= 17; 
var h2_default  = 14;
var h2_current  = 0;

var h3_min		= 8;
var h3_max		= 16; 
var h3_default  = 13;
var h3_current  = 0;

var li_min		= 9;
var li_max		= 17; 
var li_default  = 14;
var li_current  = 0;

var td_min	 	= 9;var td_max 		= 17;
var td_default	= 14;
var td_current	= 0;


var elements_array = new Array( "h1", "h2", "h3", "p", "a", "li", "td" );



function decreaseFontSize() {
     
	for( var i=0; i<elements_array.length; i++ ){
		el = document.getElementsByTagName( elements_array[i] );
		
		size_current = eval( elements_array[i] + '_current' );
		size_default = eval( elements_array[i] + '_default' );
		size_min     = eval( elements_array[i] + '_min' );
		
		decrease_elements_size( el, elements_array[i], size_current, size_default, size_min );	
	}}


function decrease_elements_size( el, el_name, size_current, size_default, size_min ){
	
	var new_size = 0;
	
	for( var i=0;i<el.length;i++ ) {
		if( el[i].getAttribute('fontsizechange') != 'no' ){		     if(el[i].style.fontSize) {		        var s = parseInt(el[i].style.fontSize.replace("px",""));		     } else {
		     	if( size_current > 0 ){			        var s = size_current;
		     	}else{
		     		var s = size_default;	
		     	}		     }		     if( s!= size_min ) {		        s -= 1;		     }		     el[i].style.fontSize = s+"px"
		}
	    new_size = s;	 } 
	
	 createCookie( el_name, new_size, 7);
}




function increaseFontSize() {

	var el_length = elements_array.length;
	
	for( var i=0; i<el_length; i++ ){
		el = document.getElementsByTagName( elements_array[i] );
		
		size_current = eval( elements_array[i] + '_current' );
		size_default = eval( elements_array[i] + '_default' );
		size_max     = eval( elements_array[i] + '_max' );
		
		increase_elements_size( el, elements_array[i], size_current, size_default, size_max );	
	}
}



function increase_elements_size( el, el_name, size_current, size_default, size_max ){
	
	//alert('increase: ' + el_name + ' ' + size_current + ' plus 1 ');
	var new_size = 0;
	
	for( var i=0; i<el.length; i++) {        	
		if( el[i].getAttribute('fontsizechange') != 'no' ){    
	
			if( el[i].style.fontSize ) {
				 var s = parseInt( el[i].style.fontSize.replace("px",""));			} else {
				 if( size_current > 0 ){
				    var s = size_current;
			 }else{
				var s = size_default;	
			 }			}
			if( s <= size_max) {
				 s += 1;			}		    
    	    el[i].style.fontSize = s+"px"
      }
      new_size = s;   }
   
   createCookie( el_name, new_size, 7);
}


function reset_sizes(){
	// get rid of the cookies and just use the CSS-default values
	
	for( var i=0; i<elements_array.length; i++ ){	
		eraseCookie( elements_array[i] );
	}
}


function set_sizes(){

	var el_length = elements_array.length;
	
	for( var i=0; i<el_length; i++ ){
		el = document.getElementsByTagName( elements_array[i] );
		
		var el_size_current = readCookie( elements_array[i] );
		var el_size_default = eval( elements_array[i] + '_default');
		
		//alert('set_sizes(): ' + elements_array[i] + ': current=' + el_size_current + ' & default=' + el_size_default );	
		
		if( el_size_current > 0 ){
			set_elements_size( el, el_size_current );
			eval( elements_array[i] + '_current = ' + el_size_current );

			
		}else{
			set_elements_size( el, el_size_default );		
		}		 	
	}
}

function set_elements_size( el, size ){
	//alert('set_elements_size: ' + el + ', ' + size);
	for( var i=0; i<el.length; i++) {
		if( el[i].getAttribute('fontsizechange') != 'no' ){
			el[i].style.fontSize = size +"px";
		}    }
    
}





// COOKIES
// -------------------------------------------------------------------

function createCookie(name,value,days) {
	//alert(name + ', ' + value + ', ' + days);	if (days) {		var date = new Date();		date.setTime(date.getTime()+(days*24*60*60*1000));		var expires = "; expires="+date.toGMTString();	}	else var expires = "";	document.cookie = name+"="+value+expires+"; path=/";}function readCookie(name) {	var nameEQ = name + "=";	var ca = document.cookie.split(';');	for(var i=0;i < ca.length;i++) {		var c = ca[i];		while (c.charAt(0)==' ') c = c.substring(1,c.length);		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);	}	return null;}function eraseCookie(name) {	createCookie(name,"",-1);}


	