var isIE = /MSIE/i.test(navigator.appVersion) && navigator.systemLanguage;

setDOMContentLoaded();


function stretch(){
	var ok =	document.getElementById("body")&&
				document.getElementById("header")&&
				document.getElementById("footer")&&
				document.getElementById("content")&&
				document.getElementById("content_body");
	if (ok)
	{
		if (document.getElementById("body").clientHeight < document.body.clientHeight)
		{
			var increase = document.getElementById("content").offsetHeight;
			document.getElementById("content").style.height = document.body.clientHeight - document.getElementById("header").offsetHeight;				
			increase = document.getElementById("content").offsetHeight - increase;
			document.getElementById("content").style.height = "auto";
			
 			var minheight =	document.getElementById("header").offsetHeight +
							document.getElementById("footer").offsetHeight;

			if (navigator.appVersion.indexOf("MSIE") != -1 && navigator.systemLanguage)
			{
				document.getElementById("content_body").style.paddingBottom = increase;
			}
			else
			{
				document.getElementById("content_body").style.height = document.getElementById("content_body").offsetHeight + increase - 2;
			}
		}
		
		// Решаем некоторые недоразумения, связанные с IE
		/*
		if (navigator.appVersion.indexOf("MSIE") != -1 && navigator.systemLanguage)
		{
			// Решаем проблему с курсивом, "ломающего" порой страницу
			if (document.body.clientWidth - document.getElementById("content").offsetWidth < 200)
			{
				var iTags = document.getElementById("content_body").getElementsByTagName("i");
				for(i = 0; i < iTags.length; i++)
				{
					iTags[i].style.letterSpacing  = "-0.04em";
				}
			}
		}*/
		
		// Решаем недоразумения c тегом pre в Safari
		if (navigator.appVersion.indexOf("Safari") != -1)
		{
			var cb = document.getElementById("content_body");
			var pre = document.getElementsByTagName("pre");
			for(var i = 0; i < pre.length; i++)
			{
				pre[i].style.width = cb.clientWidth - 140;
			}
		}
	}
	
}

function setDOMContentLoaded()
{
	/* for Mozilla and Opera 9 */
	if (document.addEventListener) {
		document.addEventListener("DOMContentLoaded", onDOMContentLoaded, false);
	}
	
	/* for Internet Explorer */
	if (isIE)
	{
		document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
		var script = document.getElementById("__ie_onload");
		script.onreadystatechange = function() {
			if (this.readyState == "complete") {
				onDOMContentLoaded(); // call the onload handler
			}
		};
	}

	/* for Safari */
	if (/WebKit/i.test(navigator.userAgent)) {
		arguments.callee.timer = setInterval(function() {
			if (/loaded|complete/.test(document.readyState)) {
				onDOMContentLoaded(); // call the onload handler
			}
		}, 10);
	}
	
	/* for other browsers */
	addHandler(window, "load", onDOMContentLoaded);
}

function onDOMContentLoaded(){
	
	// quit if this function has already been called
	if (arguments.callee.done) return;
		
	// flag this function so we don't do the same thing twice
	arguments.callee.done = true;
		
	// kill the timer
	if (setDOMContentLoaded.timer) {
		clearInterval(setDOMContentLoaded.timer);
		setDOMContentLoaded.timer = null;
	}

	// call the needed handlers
	stretch();
	addHandler(window, "resize", stretch);
}

function addHandler(object, event, handler)
{
	if (typeof object.addEventListener != 'undefined')
		object.addEventListener(event, handler, false);
	else if (typeof object.attachEvent != 'undefined')
		object.attachEvent('on' + event, handler);
	else
		throw "Incompatible browser";
}