var ua = navigator.userAgent.toLowerCase();

var isOpera = ua.indexOf("opera") > -1;
var isSafari = (/webkit|khtml/).test(ua);
var isGecko = !isSafari && !isIE && ua.indexOf("gecko") > -1;
var isGecko3 = isGecko && ua.indexOf("rv:1.9") > -1;
var isIE = !isOpera && ua.indexOf("msie") > -1;
var isIE7 = !isOpera && ua.indexOf("msie 7") > -1;

var added = false;
var loaded =
{
	commonInit: false,
	onBodyLoad: false,
	hideWait: false
};
/*
loadScript(getFirstScript());

function getFirstScript()
{
	var allScripts = document.getElementsByTagName("script");
	var firstScript = null;
	var prevScript = null;
	for (var i = 0; i < allScripts.length; i++)
	{
		if (allScripts[i].id)
		{
			var newScript = {script: allScripts[i]};
			if (firstScript == null)
			{
				firstScript = newScript;
			}
			else
			{
				prevScript.next = newScript;
			}
			prevScript = newScript;
		}
	}
	return firstScript;
}

function addOnloadListener(scriptObj, callback)
{
	if (isIE)
	{
		scriptObj.script.onreadystatechange = function()
		{
			var state = scriptObj.script.readyState;
			if (state == 'loaded' || state == 'complete')
			{
				callback(scriptObj);
			}
		};
	}
	else
	{
		scriptObj.script.onload = function()
		{
			callback(scriptObj);
		};
	}
}

function onScriptLoaded(scriptObj)
{
	logToConsoleInternal("loaded " + scriptObj.script.src);
	if (scriptObj.next)
	{
		loadScript(scriptObj.next);
	}
	else
	{
		addLoadEventWrapper();
	}
}

function loadScript(scriptObj)
{
	if (scriptObj)
	{
		addOnloadListener(scriptObj, onScriptLoaded);
		if (!scriptObj.script.src)
		{
			scriptObj.script.src = scriptObj.script.id;
		}
	}
	else
	{
		addLoadEventWrapper();
	}
}

function applySrc(script)
{
	if (!script.src)
	{
		script.src = script.id;
	}
}

function logToConsoleInternal(str)
{
	if (typeof(console) == "object")
	{
		console.log(str);
	}
}

function isReady()
{
	return false;//document && document.getElementsByTagName && document.getElementById && document.body;
}

function addLoadEventWrapper()
{
	if (!added)
	{
		added = true;
		if (isReady())
		{
			onBodyLoadWrapper();
		}
		else
		{
			if (typeof(Ext) == "object")
			{
				Ext.onReady(onBodyLoadWrapper);
			}
			addLoadEvent(onBodyLoadWrapper);
		}
	}
}

function addLoadEvent(func)
{
	var oldonload = window.onload;
	if (typeof window.onload != 'function')
	{
		window.onload = func;
	}
	else
	{
		window.onload = function()
		{
			if (oldonload)
			{
				oldonload();
			}
			func();
		}
	}
}

function onBodyLoadWrapper()
*/
// Ext инициализируется позже jQuery. По этому старые компоненты вызывать через событие «onReady»
Ext.onReady(function ()
{
	for (var key in loaded)
	{
		if (!loaded[key])
		{
			var func = null;
			try
			{
				func = eval(key);
			}
			catch (error)
			{
				// function is not defined yet
			}
			if (func != null && typeof(func) == "function")
			{
//				logToConsoleInternal("calling " + key);
				loaded[key] = true;
				func.call();
			}
		}
	}
}
);
