﻿(function() { 
	var Dom = YAHOO.util.Dom;
	
	var forIE6 = function() {
		if(navigator.userAgent.lastIndexOf("MSIE 6.0") != -1) {
			backgroundHeight = Dom.get("backgroundimage").offsetHeight;
			contentHeight = Dom.get("contentwrap").offsetHeight;
			if (backgroundHeight > contentHeight) {
				Dom.setStyle("contentwrap", "height", backgroundHeight + "px");
			}
			var firstlevellist = Dom.getChildren(Dom.getChildren("leftnavi")[1]);
			Dom.setStyle(Dom.getChildren(firstlevellist[0])[0], "marginTop", "0px");
			var copyNavi = Dom.get("leftnavi").cloneNode(true);
			copyNavi.id = "cLeftnavi";
			Dom.insertBefore(copyNavi, "leftnavi"); 
			if (Dom.get("sitemap")) {
				var bottoms = Dom.getElementsByClassName("bottom", "p", "content");
				Dom.setStyle(bottoms[0], "marginTop", "-5px");
				Dom.setStyle(bottoms[0], "height", "10px");
			}
		}
	}
	
	var correctNaviHeight = function() {
		var imgHeight = Dom.get("backgroundimage").offsetHeight;
		if (!Dom.hasClass(Dom.getAncestorByTagName("content", "BODY"), "home")) {
			Dom.setStyle("content", "marginTop", imgHeight + "px");
		}
		Dom.setStyle("content", "visibility", "visible");
		var paddingTop = parseFloat(Dom.getStyle("contentwrap", "paddingTop"));
		var imgBorder = imgHeight + paddingTop;
		var control = imgHeight + Dom.getY("backgroundimage");
		var listelements = Dom.getElementsBy(function(el) {
			return el.nodeName == "LI";
		}, "LI", "leftnavi");
		if(navigator.userAgent.lastIndexOf("MSIE 6.0") != -1) {
			var clistelements = Dom.getElementsBy(function(el) {
				return el.nodeName == "LI";
			}, "LI", "cLeftnavi");
		}
		var start = 0;
		for(i in listelements) {
			if (Dom.getY(listelements[i]) > imgBorder) {
				if(start == 0) {
					Dom.addClass(listelements[i], "nobg");
					if(navigator.userAgent.lastIndexOf("MSIE 6.0") != -1) { Dom.addClass(clistelements[i], "nobg"); }
					Dom.setStyle("contentwrap", "backgroundPosition", "15px " + (Dom.getY(listelements[i]) - Dom.getY("centerwrap")) + "px");
					start = 1;
				} else {
					Dom.addClass(listelements[i], "nobg");
					if(navigator.userAgent.lastIndexOf("MSIE 6.0") != -1) { Dom.addClass(clistelements[i], "nobg"); }
				}
			}
		}
		
		if (start == 0) {
			var outers = Dom.getElementsByClassName("outer", "ul", "leftnavi");
			var outer = outers[0];
			var south = Dom.getY(listelements[listelements.length-1]) + Dom.get(listelements[listelements.length-1]).offsetHeight;
			var anchor = Dom.getChildren(listelements[listelements.length-1]);
			var toAdd = imgBorder - south;
			var newPadding = toAdd + Dom.getY("centerwrap");
			Dom.setStyle(outer, "backgroundPosition", "left " + Dom.get(outer).offsetHeight + "px");
			Dom.setStyle(outer, "paddingBottom", newPadding + "px");
			var newsouth = Dom.getY(outer) + Dom.get(outer).offsetHeight - 1 - Dom.getY("centerwrap");
			Dom.setStyle("contentwrap", "backgroundPosition", "15px " + newsouth +  "px");
		}
		/* if (!Dom.hasClass(Dom.getAncestorByTagName("content", "BODY"), "home")) {
			Dom.setStyle("content", "marginTop", imgHeight + "px");
		}
 */	}
	
	var teaserlist = function() {
		if(Dom.get("teaserlist")) {
			var teaseritems = Dom.getChildren("teaserlist");
			for(var i=0;i<teaseritems.length;i++) {
				YAHOO.util.Event.addListener(teaseritems[i], "click", openTeaseredLink);
			}
		}
	}
	
	var openTeaseredLink = function(e) {
		if(YAHOO.util.Event.getTarget(e).nodeName != "DIV") {
			var divitem = Dom.getAncestorByTagName(YAHOO.util.Event.getTarget(e), "DIV");
		} else {
			var divitem = YAHOO.util.Event.getTarget(e);
		}
		var anchor = Dom.getElementsBy(function(el) {
			return el.nodeName == "A";
		}, "A", divitem);
		
		document.location.href = anchor;
	}
	
	var openFAQ = function(e) {
		var targetID = YAHOO.util.Event.getTarget(e).id;
		var splits = targetID.split("_");
		var subtargetID = "dd_" + splits[1] + "_" + (splits[2]*1 + 1) + "_" + splits[3];
		 
		if(YAHOO.util.Dom.hasClass(YAHOO.util.Event.getTarget(e), "active")) {
			var val = 0;
			var base = splits[3]*1 + 10;http://www.sensimar.com/uploads/pics/seaside_hotel_verlauf.jpg
			var speed = base/1000;
			YAHOO.util.Dom.removeClass(YAHOO.util.Event.getTarget(e), "active");													  
			var attributes = {
				height: { to: val }
			};
    		var anim = new YAHOO.util.Anim(subtargetID, attributes, speed);
			anim.animate();
		} else {
			var val = splits[3]*1 + 10; 
			var speed = val/1000;
			YAHOO.util.Dom.addClass(YAHOO.util.Event.getTarget(e), "active");
			var attributes = {
				height: { to: val }
			};
    		var anim = new YAHOO.util.Anim(subtargetID, attributes, speed);
			anim.animate();
		}
	}
	
	var initFAQ = function() {
		if(YAHOO.util.Dom.getElementsByClassName('faq')) {
			var faqs = YAHOO.util.Dom.getElementsByClassName('faq');
			for(var i=0; i<faqs.length;i++) {
				YAHOO.util.Dom.setStyle(faqs[i], "visibility", "hidden");
				var children = YAHOO.util.Dom.getChildren(faqs[i]);
				for (element in children) {
					if (children[element].nodeName == "DD") {
						var elHeight = children[element].offsetHeight;
						children[element].id = "dd_" + i + "_" + (element) + "_" + elHeight;
						children[element-1].id = "dt_" + i + "_" + (element-1) + "_" + elHeight;
						YAHOO.util.Event.addListener(children[element-1], 'click', openFAQ);	
						YAHOO.util.Dom.setStyle(children[element], "height", "0px");
						YAHOO.util.Dom.setStyle(children[element], "visibility", "visible");
					}
				}
				YAHOO.util.Dom.setStyle(faqs[i], "visibility", "visible");
			}
		}
	}
	
	animateHomeNow = function() {
		if (Dom.hasClass(Dom.getAncestorByTagName("content", "BODY"), "home")) {
			var attributes = {
				opacity: { to: 1 }
			};
			var anim = new YAHOO.util.Anim("teaserlist", attributes, 10);
			anim.animate();
		}
	}
	
	var animateHome = function() {
		window.setTimeout("animateHomeNow()", 5000);
	}
	
	var initInfoselector = function() {
		if(Dom.get("infoselector")) {
			YAHOO.util.Event.addListener("infoselector", "change", showinfo);
		}
	}
	
	var showinfo = function(e) {
		var selector = YAHOO.util.Event.getTarget(e);
		var countrysections = Dom.getElementsByClassName("countrysection", "div");
		Dom.setStyle(countrysections, "display", "none");
		Dom.setStyle(selector.value, "display", "block");
	}
	
	var classes4Sitemap = function() {
		if (Dom.get("sitemap")) {
			var firstlevel = Dom.getChildren(Dom.getChildren("sitemap")[0]);
			for(var i=0;i<firstlevel.length;i++) {
				var secondlevel = Dom.getChildren(firstlevel[i]);
				var thirdlevel = Dom.getChildren(secondlevel[1]);
				var counter = 0;
				var length = thirdlevel.length - 1;
				for(j=0;j<thirdlevel.length;j++) {
					counter++;
					if(counter == 1 && length > j) {
						var newclass = "first";
					} else if(counter == 1 && length == j) {
						var newclass = "onlyone";
					} else if(counter == 2 && length > j) {
						var newclass = "middle";
					} else if(counter == 2 && length == j) {
						var newclass = "last";
					} else if(counter == 3) {
						var newclass = "last";
						counter = 0;
					}
					Dom.addClass(thirdlevel[j], newclass);
				}
			}
		}
	}
	var init = function() {
		forIE6();
		teaserlist();
		correctNaviHeight();
		initFAQ();
		initInfoselector();
		classes4Sitemap();
	}
	
	YAHOO.util.Event.onDOMReady(init);
	YAHOO.util.Event.addListener(window, "load", animateHome);
	
 })(); 

