var Browser = {
	IE:     !!(window.attachEvent && !window.opera),
	Opera:  !!window.opera,
	WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
	Gecko:  navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1,
	MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
}
var drow_JSLoader = function (config) {

	this.scripts = Array();
	this.isReady = false;
	this.config = {};
	
	//Apply config
	for (var key in config) {
		if (typeof config[key] != 'function') {
			this.config[key] = config[key];
		}
	}
};
drow_JSLoader.prototype = {
	
	add: function(url) {
		if (typeof url === typeof '') {
			this.scripts.push(url);
		}
	}
	
	,load: function () {
	
		var head = document.documentElement.getElementsByTagName("HEAD")[0];
		
		for (var i=0; i<this.scripts.length; i++) {
			var index = i;
			var scriptEl = document.createElement("script");
			scriptEl.src = this.scripts[i];
			//create domEl Events
			this.createEvents(scriptEl);
			
			//Append to Head-Tag
			head.appendChild(scriptEl);
			this.scripts[i] = scriptEl;
		}
	}
	
	,createEvents: function(scriptEl) {
		
		var scope = this;
		if (Browser.IE) {
			scriptEl.onreadystatechange = function() {
				if (scriptEl.readyState == 'loaded' || scriptEl.readyState == 'complete') {
					scope.loadingDone.call(scope, scriptEl);
					scope.checkLoaded();
				}
			}
		}
		else {
			scriptEl.onload = function(e) {
				scope.loadingDone.call(scope, scriptEl);
				scope.checkLoaded();
			}
		}
	}
	
	,loadingDone: function(domEl) {
		for (var i=0; i<this.scripts.length; i++) {
			if (this.scripts[i] == domEl) {
				this.scripts[i].loadingDone = true;
				return;
			}
		}
	}
	
	,checkLoaded: function() {
		for (var i=0; i<this.scripts.length; i++) {
			if (i==0) {
				this.isReady = this.scripts[i].loadingDone;
			}
			else {
				this.isReady = this.isReady && this.scripts[i].loadingDone;
			}
		}

		if (typeof this.onLoaded === 'function' && this.isReady === true) {
			this.onLoaded.call(this);
		}
	}
	
	,onLoaded: null
}
var config = {
	prototypeURL: 'http://prototypejs.org/assets/2009/8/31/prototype.js'
	,scriptaculous: 'http://www.zmh.com/typo3conf/ext/powermail/js/mandatoryjs/src/effects.js'
	,overlayURL: 'http://www.zmh.com/ext_footer/drow.overlay.js'
	,footerURL: 'http://www.zmh.com/ext_footer/footer.php'
	,footerDomId: 'drow-footer'
}

window.onload = function() {
	var prototypeLoader = new drow_JSLoader();
	prototypeLoader.add(config.prototypeURL);
	prototypeLoader.onLoaded = function() {
		var loader = new drow_JSLoader(config);
		//load Overlay-Lib
		loader.add(config.scriptaculous);
		loader.add(config.overlayURL);
		loader.add(config.footerURL);
		//callback
		loader.onLoaded = function() {
			// add HTML given from php-json proxy (html-source gets loaded over footer.php)
			$(config.footerDomId).innerHTML = drowFooterHtml;
		}
		loader.load();
	}
	prototypeLoader.load();
}

	
