
	
	/////////////////////////////////////////////////////////////////////////////////////////
	//Globales OnLoad Objekt das smtliche Funktionen nach dem Laden des Dokumentes ausfhrt,
	//die dem Objekt mittels add bergeben wurden
	/////////////////////////////////////////////////////////////////////////////////////////
	var windowOnLoad = new Object();
	windowOnLoad.func = new Array();
	windowOnLoad.add = function(str){
		this.func.push(str);
	}
	windowOnLoad.exec = function() {
		for(var i = 0; i < this.func.length; i++) {
			window.setTimeout(this.func[i], 0);
		}
	}
	
	window.onload = function() {
		windowOnLoad.exec();
	}
		
	windowOnLoad.add("Index.init()");
	
	var Index = {
		init: function() {
			//////////////////////////
			// DOCUMENT.BODY ERWEITERN
			//////////////////////////
			Element.extend(document.body);
			
			document.body.startWait = function() {
				document.body.setStyle({
					cursor: "wait"
				});
			}
			
			document.body.stopWait = function() {
				document.body.setStyle({
					cursor: ""
				});
			}
			
			document.body.fade = function() {				
				var div = Builder.node("div", {id: "fade"});
				Element.extend(div);
				
				div.setStyle({
					position: "absolute",
					top: "0px",
					left: "0px",
					height: ($("content").getDimensions().height > document.body.getDimensions().height ? $("content").getDimensions().height : document.body.getDimensions().height) + "px",
					width:  document.body.getDimensions().width + "px",
					backgroundColor: "#223F81",
					opacity: 0.0
				});
				
				document.body.appendChild(div);
				new Effect.Opacity("fade", {duration:0.3, from:0.0, to: 0.8});
			}
			
			document.body.appear = function() {
				new Effect.Opacity("fade", {duration: 0.3, from: 0.8, to: 0.0, afterFinish: function(e) {
					$("fade").remove();
				}});
			}
		},
		
		popup: function(src, width, height) {
			window.open(src, "_blank", "width=" + width + "px, height=" + height + "px");
		}
	}
	
	
	////////////////////////////
	// MESSAGE CODES VERARBEITEN
	////////////////////////////
	windowOnLoad.add("Message.init()");
	
	var Message = {
		rcodes: new Array(),
		codes: new Object(),
		prefix: new Array(),
		
		init: function() {	
			if(Global.message[0] != false) {
				this.codes = Global.message;
				Object.keys(Global.message).each(function(code) {
					Message.post(code);
				});
			}
			
			//this.load("index.anmelden.haendler.agb");
			this.request();
		},
		
		load: function(code, prefix) {
			if(!prefix) {
				prefix = "";
			}
			else {
				this.prefix.push(prefix);
			}
			
			var nCodes = code.split(",");
			
			nCodes = nCodes.collect(function(c) {
				return prefix + c.strip();
			});
			
			this.rcodes = this.rcodes.concat(nCodes);
		},
		
		request: function() {
			this.rcodes = this.rcodes.uniq();
			for(var i = 0; i < this.rcodes.length; i++) {
				this.rcodes[i] = "code[]=" + this.rcodes[i];
			}
			
			if(this.rcodes.length == 0) {
				return false;
			}
			
			new Ajax.Request("/ajax/index/ajax.index.php", {
				postBody: this.rcodes.join("&"),
				
				onSuccess: function(r) {
					Message.codes = Object.extend(Message.codes, r.responseText.evalJSON());
				}
			});
		},
		
		get: function(code, par) {			
			if(!par) {
				par = {};
			}
			
			
			if(this.codes[code]) {
				var str = this.codes[code];
			}
			else {
				for(var i = 0; i < this.prefix.length; i++) {
					var tCode = this.prefix[i] + code;
					
					if(this.codes[tCode]) {
						 var str = this.codes[tCode];
						 break;
					}
				}
			}
			
			
			if(!str) {
				return "Message not found";
			}
			
			
			var syntax = /(^|.|\r|\n)({\$(\w+)})/;
			var tpl = new Template(str, syntax);
			
			return tpl.evaluate(par);
		},
		
		post: function(code, par) {			
			var str = this.get(code, par);
			alert(str);
		},
		
		onLoad: function(str) {
			alert(str);
		}
	}
	
	
	/////////////////////
	// FORMULAR AUSFLLEN
	/////////////////////
	function fillForm(data) {
		for(m in data) {			
			if(data[m] == null) {
				continue;
			}
			
			
			var elem = document.getElementsByName(m);
			
			if(elem.length == 0) {
				elem = document.getElementsByName(m + "[]");
			}
			
			if(elem.length == 0) {
				continue;
			}
			
			
			for(var j = 0; j < elem.length; j++) {				
				switch(elem[j].tagName) {
					case "INPUT": 
						switch(elem[j].type) {
							case "hidden":
							case "password":
							case "text":
								elem[j].value = data[m];
								break;
								
							case "checkbox":
							case "radio":								
								if(data[m].include(elem[j].value)) {
									elem[j].checked = true;
									if(elem[j].onclick) {
										elem[j].onclick();
									}
									
									if(elem[j].onchange) {
										elem[j].onchange();
									}
								}
								break;
						}					
						break;
						
					case "SELECT":
						sel = elem[j];
						for(var i = 0; i < sel.length; i++) {
							if(sel.options[i].value == data[m]) {
								sel.options[i].selected = true;
								break;
							}
						}
						
						break;
						
					case "TEXTAREA":
						elem[j].value = data[m];
						break;
				}
			} //end for elem
		} //end for data
	}
	////////
	// ONCLICK Weiterleitung für Partnerportale <select>
	////////
	function weiterleitung(zeil) {
      //window.location.href= "http://www."+zeil;
	  window.open("http://www."+zeil);
    }
	
	
	/* Für die Werbung */
	windowOnLoad.add("checkWallpaper()");
	

	function checkWallpaper() {
		
		if (typeof(adtype) != 'undefined') {
		
			var trs = new Array(
				document.getElementById('tr-1'),
				document.getElementById('tr-2')
			);
	
			var neutral 	= 	trs[0].removeChild(document.getElementById('neutral'));
			var leader 		= 	trs[0].removeChild(document.getElementById('leaderboard'));
			var sky 		= 	trs[1].removeChild(document.getElementById('skyskraper'));
			
			
			
			if (adtype == 'expwallpaper'){
				leader 			= 	trs[0].appendChild(leader);
				leader.colSpan	=	2;
				sky 			= 	trs[1].appendChild(sky);
			}//end if
			
			if (adtype == 'wallpaper'){
				leader 			= 	trs[0].appendChild(leader);
				sky 			= 	trs[0].appendChild(sky);
				sky.rowSpan		=	2;	
			}//end if
		
		}//end if
		
		if (typeof(bgcolor) != 'undefined' && bgcolor != null) {
			
			document.getElementById('bodybg').style.backgroundColor = bgcolor;
			document.getElementById('bodybg').style.backgroundImage  = "url()";
			document.getElementById('bodybg').style.backgroundRepeat = "no-repeat";
			
			leader.style.backgroundColor 	= bgcolor;
			sky.style.backgroundColor 		= bgcolor;
			
		}
		
		if (typeof(bgimage) != 'undefined' && bgimage != null) {
			// alert(bgimage);
		}

		if(typeof(adclick) != 'undefined' && adclick != null){
			
			leader.onclick 	= function(){
				//document.location.href = adclick;
			}
			
			sky.onclick 	= function (){
				//document.location.href = adclick;
			}
		
		}
		
	}//end function
	
	
	////////
	// DEBUG
	////////
	windowOnLoad.add("Debug.init()");
	
	var Debug = {
		init: function() {
			if(!$("debugInfo")) {
				return false;
			}//end if
			
			//////////////////
			// LINKS ERWEITERN
			//////////////////
			$$("a").each(function(a) {
				var href = a.href;
				
				if(href.include("?")) {
					href += "&debug";
				}//end if
				else {
					href += "?debug";
				}//end else
				
				a.href = href;
			});
		}
	}
	
	/////////////////////
	// Navigationsklassen ändern
	/////////////////////
	function changeNaviClasses() {
	
		var aktuelleNavi =document. getElementById("mietwagen_navi");
		aktuelleNavi.className="aktivnavi";
		
		
	}