
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 _globalOnLoad() {
	form = document.forms[0];
	var obj, i;

	if (obj = document.getElementById('spamdetect')) {
		form.robot_email.value = 'yes';
		obj.style.display = 'none';
	}

	obj = document.getElementsByTagName('a');
	for (i=0; i<obj.length; ++i) {
		obj[i].onfocus = function() {
			this.blur();
		}
		if (obj[i].href && obj[i].href.indexOf('#')>1 && obj[i].lang) {
			_mailHideFromSpam(obj[i]);
		}
	}
	obj = form.elements;
	var focus = true;
	for (i=0; i<obj.length; ++i) {
		if (focus && (obj[i].type == 'text' || obj[i].type == 'textarea')) {
			try {
				obj[i].focus();
				focus = false;
			} catch(err) {
				continue;
			}
		} else if  (obj[i].type == 'button' ||
					obj[i].type == 'reset' ||
					obj[i].type == 'submit' ||
					obj[i].type == 'image' ||
					obj[i].type == 'radio' ||
					obj[i].type == 'checkbox') {

			if (obj[i].hideFocus) {
				obj[i].hideFocus = true;
			} else {
				obj[i].onfocus = function() {
					this.blur();
				}
			}
		}
	}
	if (window.onLoadEvents) {
		onLoadEvents();
	}

	//document.onmousemove = mouseMove;
	return true;
}

addDOMLoadEvent(_globalOnLoad);

function loadScript(script) {
	var obj =  {
		type	: 'text/javascript',
		language: 'JavaScript',
		src		: '/inc/js/' + script
	};
	DOMEditor.append(document.getElementsByTagName('head')[0], DOMEditor.createElement('script', obj));
}

function _isEmpty(txt) {
	if (txt == null) {
		return true;
	}else {
		return (txt.replace(/\s+/g, '') == '');
	}
}

function _isNan(nr) {
	return (isNaN(nr) || nr == '' || nr == null);
}

function findPos(obj) {
	 var curleft = 0;
	 var curtop  = 0;

	 if (obj.offsetParent) {
	 	while (obj.offsetParent) {
	 		curleft += obj.offsetLeft;
	 		curtop  += obj.offsetTop;
	 		obj = obj.offsetParent;
	 	}
	 } else if (obj.x) {
	 	curleft += obj.x;
	 	curtop  += obj.y;
	 }

	 return {
	 	left	: curleft,
	 	top		: curtop
	 };
}

function _validChecks(boxList) {
	var found = false;
	for (var i=0; i<boxList.length; i++) {
		if (boxList[i].checked) {
			found = true;
			break;
		}
	}
	return found;
}
function _preloader(list, path) {
	preloadedPictures   = new Array();
    for (var i=0; i<list.length; i++) {
		preloadedPictures[i]     = new Image();
		preloadedPictures[i].src = path + list[i];
	}
	return true;
}
function _emailValidator(email) {
	var RE = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,4})$/;
	return RE.test(email);
}


function _mailHideFromSpam(a) {
	try {
		var user = a.id.split('_');
		user.shift();
		user.shift();
		var mail = user.join() + '@' + a.name + '.' + a.lang;
		a.href = 'mailto:' + mail;
		a.innerHTML = a.innerHTML.replace(/\[\*mailholder\*\]/g, mail);
		if (!a.title || a.title == '') {
			a.title = mail;
		}
	} catch(e) {}
}