var isIE = /MSIE/i.test(navigator.appVersion) && navigator.systemLanguage;

setDOMContentLoaded();
addHandler(window, "load", fixLayout);
addHandler(window, "resize", fixLayout);

function fixLayout(){
	// Разбираемся со "слетающей" правой колонкой в случае расперания контейнера content
	if (isIE)
	{
		var content = document.getElementById("content");
		var body = document.getElementById("body");
		var left_content = document.getElementById("left_content");
		if (content && body && left_content)
		{
			if (content.offsetWidth + 27 > document.body.clientWidth * 0.75)
			{
				var maxWidth = 0;
				var findTags = ["img", "table", "object", "pre"];
				for (var i = 0; i < findTags.length; i++)
				{
					var tags =  content.getElementsByTagName(findTags[i]);
					for(var e = 0; e < tags.length; e++)
			    	{
						if (tags[e].offsetWidth > maxWidth) maxWidth = tags[e].offsetWidth 
					}
				}
				bodyWidth = (maxWidth + 27)/0.75 + 1;
				body.style.width = bodyWidth;
				if (left_content.offsetWidth > bodyWidth * 0.25) body.style.width = left_content.offsetWidth/0.25;
			}
			else if (document.body.clientWidth < 780)
			{
				body.style.width = 780;
			}
			else
			{
				body.style.width = "100%";
			}
		}
	}
}


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
	callNeededHandlers();	
}

function callNeededHandlers()
{
	fixLayout();
	//addHandler(window, "resize", fixLayout);
}

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";
}