/**
 * copyright by idea-source.net
 * @author George Wing
 */

/*
 * (c)2006 Jesse Skinner/Dean Edwards/Matthias Miller/John Resig
 * Special thanks to Dan Webb's domready.js Prototype extension
 * and Simon Willison's addLoadEvent
 *
 * For more info, see:
 * http://www.thefutureoftheweb.com/blog/adddomloadevent
 * http://dean.edwards.name/weblog/2006/06/again/
 * http://www.vivabit.com/bollocks/2006/06/21/a-dom-ready-extension-for-prototype
 * http://simon.incutio.com/archive/2004/05/26/addLoadEvent
 *
 *
 * To use: call addDOMLoadEvent one or more times with functions, ie:
 *
 *    function something() {
 *       // do something
 *    }
 *    addDOMLoadEvent(something);
 *
 *    addDOMLoadEvent(function() {
 *        // do other stuff
 *    });
 *
 */

addDOMLoadEvent = (function(){
	// create event function stack
	var load_events = [],
		load_timer,
		script,
		done,
		exec,
		old_onload,
		init = function () {
			done = true;

			// kill the timer
			clearInterval(load_timer);

			// execute each function in the stack in the order they were added
			while (exec = load_events.shift())
				exec();

			if (script) script.onreadystatechange = '';
		};

	return function (func) {
		// if the init function was already ran, just run this function now and stop
		if (done) return func();

		if (!load_events[0]) {
			// for Mozilla/Opera9
			if (document.addEventListener)
				document.addEventListener("DOMContentLoaded", init, false);

			// for Internet Explorer
			/*@cc_on @*/
			/*@if (@_win32)
				document.write("<script id=__ie_onload defer src=//0><\/scr"+"ipt>");
				script = document.getElementById("__ie_onload");
				script.onreadystatechange = function() {
					if (this.readyState == "complete")
						init(); // call the onload handler
				};
			/*@end @*/

			// for Safari
			if (/WebKit/i.test(navigator.userAgent)) { // sniff
				load_timer = setInterval(function() {
					if (/loaded|complete/.test(document.readyState))
						init(); // call the onload handler
				}, 10);
			}

			// for other browsers set the window.onload, but also execute the old window.onload
			old_onload = window.onload;
			window.onload = function() {
				init();
				if (old_onload) old_onload();
			};
		}

		load_events.push(func);
	}
})();

function addEventSimply(obj, evt, fn) {
	if(obj.addEventListener) {
		obj.addEventListener(evt, fn, false);
	}
	else if(obj.attachEvent) {
		obj.attachEvent('on'+evt, fn);
	}
}
function removeEventSimply(obj, evt, fn) {
	if(obj.removeEventListener) {
		obj,removeEventListener(evt, fn, false);
	}
	else if(obj.detachEvent) {
		obj.detachEvent('on'+evt, fn);
	}
}

function insertAfter(newElement, targetElement) {
	var parent = targetElement.parentNode;
	if(parent.lastChild == targetElement) {
		parent.appendChild(newElement);
	}
	else {
		parent.insertBefore(newElement, targetElement.nextSibling);
	}
}

function addClass(element, value) {
	if(!element.className) {
		element.className = value;
	}
	else {
		newClassName = element.className;
		newClassName += " ";
		newClassName += value;
		element.className = newClassName;
	}
}

function initHeight() {
	resizeHeightById('content_main', 'content_sub');
}
function resizeHeightById(elm, subElm) {
	var oContentMain = document.getElementById(elm);
	var oContentSub = document.getElementById(subElm);
	if(!oContentMain || !oContentSub) return;
	if(oContentMain.offsetHeight > oContentSub.offsetHeight){
		oContentSub.style.height = oContentMain.offsetHeight +"px";
	}
	else {
		oContentMain.style.height = oContentSub.offsetHeight +"px";
	}
}
addEventSimply(window, 'load', initHeight);
