document.myReadyState = false;
(function () {
	var ie  = !!(window.attachEvent && !window.opera);
	var wk  = /webkit\/(\d+)/i.test(navigator.userAgent) && (RegExp.$1 < 525);
	var run = function () { document.myReadyState = true; };

	if (!ie && !wk && document.addEventListener)
		document.addEventListener('DOMContentLoaded', run, false);
	else if (ie)
		(function () {
			try { document.documentElement.doScroll('left'); run(); }
			catch (err) { setTimeout(arguments.callee, 1); }
		})();
	else if (wk)
		var t = setInterval(function () {
			if (/^(loaded|complete)$/.test(d.readyState))
				clearInterval(t), run();
		}, 1);
	else
		window.onload = run;
})();


// document.ready(function);
// Call 'function()' if the DOM is ready, or wait until the DOM is ready and call 'function()' then
document.ready = function (fn) {
		var t = setInterval(function () {
			if (document.myReadyState)
			{
				clearInterval(t);
				fn();
			}
		}, 1); };


// addClassName(element, className);
// Adds className(s) to the list of CSS classes for the element
function addClassName (element, className)
{
	var classNames = className.split(" ")
	for(index in classNames)
	{
		if (classNames[index].length)
		{
			var tempString=" " + element.className + " ";

			if(tempString.search("[\t ]+" + classNames[index] + "[\t ]+") == -1)
				element.className += " " + classNames[index];
		}
	}
}

// removeClassName(element, className)
// removes className(s) from the element's classes, if present
function removeClassName(element, searchName)
{
	var classNames = element.className.split(" ");
	var searchNames = searchName.split(" ");

	for (classIndex in classNames)
	{
		if (classNames[classIndex] == " ")
			classNames.splice(classIndex, 1);
		else
		{
			for (searchIndex in searchNames)
			{
				if (classNames[classIndex] == searchNames[searchIndex])
				{
					classNames.splice(classIndex, 1);
					break;
				}
			}
		}
	}

	element.className = classNames.join(" ");
}
