var got_preferences = false;
//var tags = new Array("a","h1","h2","h3","h4","h5","h6");
var tags = new Array("h1","h2","h3","h4","h5","h6");
var default_size = new Array();
default_size["a"]=9;
default_size["h1"]=10;
default_size["h2"]=12;
default_size["h3"]=14;
default_size["h4"]=10;
default_size["h5"]=11;
default_size["h6"]=14;
var current_size = new Array(10);
current_size["a"]=default_size["a"];
current_size["h1"]=default_size["h1"];
current_size["h2"]=default_size["h2"];
current_size["h3"]=default_size["h3"];
current_size["h4"]=default_size["h4"];
current_size["h5"]=default_size["h5"];
current_size["h6"]=default_size["h6"];

var lineHeightMultiplier = 1.2;
var max_decrease = -2;		//maximum allowed number of steps decrease in font size
var max_increase = 3;		//maximum allowed number of steps increase in font size

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
};

function get_cookie(name) {
  var cookie_name = 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(cookie_name) == 0) return c.substring(cookie_name.length,c.length);
  }
  return null;
};

window.onload = get_preferences;

function get_preferences() {
	if(!got_preferences){
		for(j=0;j<tags.length;j++) {
			cookie = get_cookie(tags[j]);
			current_size[tags[j]] =  cookie ? cookie : default_size[tags[j]];
			setFontSize(tags[j],current_size[tags[j]]);
			}
		got_preferences = true;
		}
}

window.onunload = saveSettings;

function saveSettings()
{
   for(j=0;j<tags.length;j++) {
		createCookie(tags[j], current_size[tags[j]], 365);
   }
}

function increaseFontSize() {
	for(j=0;j<tags.length;j++) {
		var p = document.getElementsByTagName(tags[j]);
		for(i=0;i<p.length;i++) {
			if(p[i].style.fontSize) {
				var s = parseInt(p[i].style.fontSize.replace("px",""));
			} else {
				var s = default_size[tags[j]];
			}
			if(s!=default_size[tags[j]]+max_increase) {
				s += 1;
			}
			p[i].style.fontSize = s+"px"
			p[i].style.lineHeight = s*lineHeightMultiplier+"px"	  
			current_size[tags[j]] = s;
		}
	}
}

function decreaseFontSize() {
	for(j=0;j<tags.length;j++) {
		var p = document.getElementsByTagName(tags[j]);
		for(i=0;i<p.length;i++) {
			if(p[i].style.fontSize) {
				var s = parseInt(p[i].style.fontSize.replace("px",""));
			} else {
				var s = default_size[tags[j]];
			}
			if(s!=default_size[tags[j]]+max_decrease) {
				s -= 1;
			}
			p[i].style.fontSize = s+"px"
			p[i].style.lineHeight = s*lineHeightMultiplier+"px"	  
			current_size[tags[j]] = s;
		}   
	}   
}

function setFontSize(tag,f_size) {
	if(!tag || !f_size) {
		for(j=0;j<tags.length;j++) {
			var p = document.getElementsByTagName(tags[j]);
			f_size = default_size[tags[j]];
			for(i=0;i<p.length;i++) {
				p[i].style.fontSize = f_size+"px"
				p[i].style.lineHeight = f_size*lineHeightMultiplier+"px"
			}
			current_size[tags[j]] = f_size;	  	  
		}
	} else {
		var p = document.getElementsByTagName(tag);
		for(i=0;i<p.length;i++) {
			p[i].style.fontSize = f_size+"px"
			p[i].style.lineHeight = f_size*lineHeightMultiplier+"px"	  	  
		}
		current_size[tags[j]] = f_size;
	}
}



