var classFontSizeWatcher = function(){
	
	function init(){
		//check font size
		classFontSizeWatcher.watcher = new Object();
	}
	
	function onload(){
		var e = document.createElement("div");
		var s = document.createTextNode("S");
		e.appendChild(s);
		e.style.visibility="hidden";
		e.style.position="absolute";
		e.style.top="0";
		document.getElementsByTagName('body')[0].appendChild(e);
		classFontSizeWatcher.defHeight = e.offsetHeight;
		classFontSizeWatcher.e = e;
		setInterval(check, 100);
		
		setInterval(checkDOM, 1000);
	}
	
	function checkDOM(){
	
	}
	
	this.addEventListener = function(event, func){
		if(!classFontSizeWatcher.watcher[event]){
			classFontSizeWatcher.watcher[event] = new Array();
		}
		classFontSizeWatcher.watcher[event].push(func);
	}
	
	function check(){
		
		var height = classFontSizeWatcher.e.offsetHeight;
		//alert(height);
		if(classFontSizeWatcher.defHeight != height){
			execFunctions('change');
			classFontSizeWatcher.defHeight = height;
		}
	}
	
	
	function execFunctions(cmd){
	
		var _array = classFontSizeWatcher.watcher[cmd];
	
		if(_array){
			for(var i=0; i<_array.length; i++){
					var func = _array[i];
					func();
			}
		}
		
	}
	
	var addEvent = function(elm,listener,fn){
		try{
			elm.addEventListener(listener,fn,false);
		}catch(e){
			elm.attachEvent("on"+listener,fn);
		}
	}
	init();
	addEvent(window,"load",onload);
	
};

var fontSizeWatcher = new classFontSizeWatcher();

/*sample
new function(){
	
	function ahoaho(){
		ahoaho2();
	}
	
	function ahoaho2(){
		alert("ahoaho2");
	}
	
	fontSizeWatcher.addEventListener('change', ahoaho);
}
*/