
(function() {
	function BelegungsPlaner()
	{
		this.docWidth = 0;
	}
	
	BelegungsPlaner.prototype.checkHeight = function()
	{
		if(location.hash.indexOf('#frameheight-') == 0)
		{
			var newHeight = location.hash.split('-')[1];
			var iframes = document.getElementsByTagName('IFRAME');
			for(var i = 0, max = iframes.length; i < max; ++i)
			{
				var iframe = iframes[i];
				if(iframe.id.indexOf("BelegungsKalender") > -1)
				{
					if(parseInt(iframe.style.height) != newHeight)
					{
						iframe.style.height = newHeight+'px';
					}
				}
			}
		}
		
		var ref = this;
		setTimeout(function() { ref.checkHeight(); }, 1000 );
	};

	BelegungsPlaner.prototype.setIFrame = function()
	{
		var docWidth = document.documentElement.scrollWidth || document.body.scrollWidth;
		if(docWidth != this.docWidth)
		{
			this.docWidth = docWidth;
			var iframes = document.getElementsByTagName('IFRAME');
			for(var i = 0, max = iframes.length; i < max; ++i)
			{
				var iframe = iframes[i];
				if(iframe.id.indexOf("BelegungsKalender") > -1)
				{
					iframe.style.height = 348+"px";
					iframe.src+= "&loc=" + escape(window.location); 
				}
			}
		}
		
		var ref = this;
		setTimeout(function() { ref.setIFrame(); }, 1000 );
	};
	
	BelegungsPlaner.prototype.addEvent = function(obj, type, fn)
	{
		if (obj.addEventListener)
		{
			obj.addEventListener( type, fn, false );
		}
		else if (obj.attachEvent)
		{
			obj.attachEvent( "on"+type, fn );
		}
	};
	
	
	var DomLoader = {
		funcList : {},
		add : function(name, func)
		{
			this.funcList[name] = func;
			initReady(func);
		}
	};

	var initReady = function(fn)
	{
		var isLoaded = false;
		function readyState()
		{
			if(!isLoaded && (document.readyState == "complete"))
			{
				isLoaded = true;
				var loader = DomLoader;
				for(var index in loader.funcList)
				{
					loader.funcList[index]();
				}
			}
		}
		if(document.addEventListener)
		{
			document.addEventListener("DOMContentLoaded", fn, false);
		}
		else
		{
			document.onreadystatechange = function(){readyState()}
		}
	};

	
	var planer = new BelegungsPlaner();
	DomLoader.add("name", function() { planer.setIFrame(); });
	planer.addEvent(window, "load",  function() { planer.checkHeight(); }  );
})();

