var ths;
var tds;
var rows;
var mapOpen = false;
var mapStarted = false;
var umkreisMapStarted = false;
var mapCenter;
var umkSlider;
var ajaxLoader;
var hotelArray = [];
var allHotelArray = [];
var clusterArray = [];
var openBars = [];
var inputArray;
var mooFlowInputHasFocus = false;
var isIE6 = false;
var isIE7 = false;
var isIE8 = false;
var soEditButtons;
var matrixNavEls;
var allTipz;
var moreLinks;
var bars;
var myTips;
var thumbnailArray = [];
var datepicker;
var lastTab;
var isUKS;
var modifiers = new Array('reisedaten', 'karte', 'umkreis', 'schlagworte');
var moreoptionstoggle;
var umkreistoggle;
var tabs;
var slidervalue;
var slideshowPlaying = false;
var controlImg;
var slideshowlinks;
var loadgallery;
var setupTinyMCE;

	
window.addEvent('domready', function() {	

	if(Browser.ie6) {
		isIE6 = true;
	}
	if(Browser.ie7) {
		isIE7 = true;
	}
	if(Browser.ie && getInternetExplorerVersion() == 8) {
		isIE8 = true;
	}
	
	if ($('page_bg2')) {
		if (Browser.ie) {
			$('page_bg2').setStyle('min-height', document.body.clientHeight);
		}
		else {
			$('page_bg2').setStyle('min-height', window.innerHeight);
		}  	
  }
	
	
	// Suchoptionen
	if ($('suchopt')) {		
		tabs = $$('#suchopt ul.tablist li a');		
		
		umkreistoggle = flipText($('umkreistoggle'));
		moreoptionstoggle = $('moreoptionstoggle');
		var mapHolder = $("optmap");
		currentTab = 'reisedaten';	
		

		tabs.each(function(tab) {
			var cont = tab.get('href').substr(tab.get('href').indexOf('#')+1);
			tab.addEvent('click', function(evt) {				
				evt.stop();

				if ($(cont).getStyle('display') == 'none') {
					modifiers.each(function(mod){
						$(mod).fade('out');
						$(mod).setStyle('display', 'none');
							
						if (mod == cont) {
							$(mod).fade('hide');
							$(mod).setStyle('display', '');
							$(mod).fade('in');
							
							tabs.each(function(t) {
								t.getParent().removeClass('selected');
							});
							tab.getParent().addClass('selected');
							currentTab = cont;	
							
							switch(cont) {
								case 'reisedaten':
									moreoptionstoggle.setStyle('display', '');
									umkreistoggle.setStyle('display', 'none');
									hideEditButtons();
									// console.log("LASTTAB: ", lastTab);
									if (lastTab == 'umkreis') {
										$('ss_ort').value = "";
									}
									isUKS = false;
									alterSearchformSubmit();
									break;
									
								case 'karte':									
									umkreistoggle.setStyle('display', '');
									moreoptionstoggle.setStyle('display', 'none');
									if(!mapStarted) {
										//alert("karte");
										initializeKartensuche.delay(300);
										mapStarted = true;
									}
									showEditButtons();		
									isUKS = false;
									alterSearchformSubmit();							
									break;
									
								case 'umkreis':									
									umkreistoggle.setStyle('display', 'none');
									moreoptionstoggle.setStyle('display', 'none');
									if ($('slideholder')) {
										initSlider.delay(600);
									}
									if(!umkreisMapStarted) {
										//alert("umkreis");
										initializeUmkreissuche.delay(300);
										umkreisMapStarted = true;
									}
									// showEditButtons();
									modifyEditButtons();
									isUKS = true;
									alterSearchformSubmit();
									break;
									
								default:
									moreoptionstoggle.setStyle('display', 'none');
									umkreistoggle.setStyle('display', 'none');
									showEditButtons();		
									isUKS = false;							
									alterSearchformSubmit();
									break;
							}	
											
						}
					});
				}				
			});
			
			if (cont == 'reisedaten' && $('reisedaten').getStyle('display') != 'none') {
				soEditButtons = $$('#meineauswahl a.edit');
				hideEditButtons();
			}
		});	
		
		soEditButtons = $$('#meineauswahl a.edit');				
		setupEditButtons();
		
		
		var cont = getURLParam('so');
		
		if ($chk(cont) && $(cont) && $(cont).getStyle('display') == 'none') {
			$each(['reisedaten', 'karte', 'umkreis', 'schlagworte'], function(mod) {		
				if (mod == cont) {
					$(mod).setStyle('display','');
					$$('#suchopt ul.tablist li a').each(function(t) {
						if (t.get('href').substr(t.get('href').indexOf('#')+1) == cont) {
							t.getParent().addClass('selected');
						}
						else {
							t.getParent().removeClass('selected');
						}
					});
					if (cont == 'karte') {
						umkreistoggle.setStyle('display', '');
						moreoptionstoggle.setStyle('display', 'none');
						if(!mapStarted) {
							initializeKartensuche.delay(600);
							mapStarted = true;
						}
						showEditButtons();
						isUKS = false;
						alterSearchformSubmit();
					}
					else if (cont == 'reisedaten') {
						umkreistoggle.setStyle('display', 'none');
						moreoptionstoggle.setStyle('display', '');
						hideEditButtons();
						isUKS = false;
						alterSearchformSubmit();
					}
					else if (cont == 'umkreis') {		
						//alert("UMKREIS");				
						umkreistoggle.setStyle('display', 'none');
						moreoptionstoggle.setStyle('display', 'none');
						if(!umkreisMapStarted) {
							initializeUmkreissuche();
							umkreisMapStarted = true;
						}
						if ($('slideholder')) {
							initSlider();
						}
						showAddress($('uks_ort').value);
						modifyEditButtons();
						isUKS = true;
						alterSearchformSubmit();
					}
					else {
						umkreistoggle.setStyle('display', 'none');
						moreoptionstoggle.setStyle('display', 'none');
						showEditButtons();
						isUKS = false;
						alterSearchformSubmit();
					}
				}
				else {
					$(mod).setStyle('display','none');				
				}
			});
			lastTab = cont;
		}
		
		if ($('moreoptions')) {
			var mo = $('moreoptions');
			var toggle = flipText($('moreoptionstoggle'));
			if (moreoptions_open) {
				var moEf = attachEffectAndShowSearchOptions(mo);
				toggle.set('html', toggle.ontext);
				toggle.addClass('open');
			}
			else {
				var moEf = attachEffect(mo);
			}
			
			toggle.addEvent("click", function(evt) {
				evt.stop();
				toggleEffect(moEf, mo);		
				if (toggle.get('html') == toggle.ontext) {
					toggle.set('html', toggle.offtext);
					toggle.removeClass('open');
					moreoptions_open = false;
				}
				else {
					toggle.set('html', toggle.ontext);
					toggle.addClass('open');
				}
			});	
		}

		umkreistoggle.addEvent('click', function(evt) {
			evt.stop();
			if (mapOpen) { // Map verkleinern
				umkreistoggle.set('html', umkreistoggle.offtext);
				umkreistoggle.removeClass('open');
				mapHolder.setStyle('height', '248px');
				mapOpen = false;
			}
			else { // vergrössern
				umkreistoggle.set('html', umkreistoggle.ontext);
				umkreistoggle.addClass('open');
				mapHolder.setStyle('height', '560px');
				mapOpen = true;
			}
			mapCenter = map.getCenter();
			map.checkResize();
			map.setCenter(mapCenter);
		});
	} // ende suchoptionen
	
	
	// Suchoptionen Special
	if ($('moreoptions') && $('moreoptionstoggle')) {
		var moreoptions_open = false;
		var mo = $('moreoptions');
		var toggle = flipText($('moreoptionstoggle'));
		if (moreoptions_open) {
			var moEf = attachEffectAndShowSearchOptions(mo);
			toggle.set('html', toggle.ontext);
			toggle.addClass('open');
		}
		else {
			var moEf = attachEffect(mo);
		}		
		toggle.addEvent("click", function(evt) {
			evt.stop();
			toggleEffect(moEf, mo);		
			if (toggle.get('html') == toggle.ontext) {
				toggle.set('html', toggle.offtext);
				toggle.removeClass('open');
				moreoptions_open = false;
			}
			else {
				toggle.set('html', toggle.ontext);
				toggle.addClass('open');
			}
		});	
	}
	
	
	
	//	Detailansicht Bilder & Details einblenden
	//  Detailansicht Click auf Überschrift blendet Details ein/aus
	loadDetailViewToggles();	
	
	// Vergleichsansicht
	var trows = $$('.togglerow');
	if ($chk(Cookie.read('openbars'))) {
		openBars = JSON.decode(Cookie.read('openbars'));
	}
	// console.log("openBars: ", openBars);
	
	if (trows.length > 0) {		
		trows.each(function(bar, index) {
			var next = bar.getNext();
			if ($defined(next)) {
				if (openBars.indexOf(index) != -1) {
					bar.setStyle('display','none');
					next.setStyle('display', '');
					var nextEffect = attachEffectAndShow(next);
				}
				else {
					var nextEffect = attachEffect(next);
				}

				var toggle = bar.getElement("a.toggle");
				if (toggle != null) {
					toggle.addEvent('click', function(evt) {
						evt.stop();
						toggleEffect(nextEffect, next);	
						openBars.push(index);
						// console.log("openBars: ", openBars);
						Cookie.write('openbars', JSON.encode(openBars));
						if (next.getStyle("display") == 'none') {
							bar.setStyle('display','none');
						}		
						else {
							bar.setStyle('display','block');
						}
					});
				}
				var tclose = next.getElement('a.toggleopen');
				tclose.addEvent('click', function(evt) {
					evt.stop();
					openBars.erase(index);
					// console.log("openBars: ", openBars);
					Cookie.write('openbars', JSON.encode(openBars));
					next.setStyle('display','none');
					bar.setStyle('display','block');
				});				
			}
		});
	}
	
	initRollOvers();
	
	// Bookingview	
	var toggles = $$(".bookingdetail a.toggle");
	if (toggles.length > 0) {
		toggles.each(function(toggle) {
			var otext = toggle.get('html');
			if ($chk(toggle.offtext) == false) {
				toggle.offtext = otext;
				toggle.ontext = toggletext[toggle.offtext];
				if (!$defined(toggle.ontext)) toggle.ontext = toggle.offtext;
			}			
			
			var next = toggle.getNext();
			if (getURLParam("detailsopen") == 1 && next.getStyle("display") == 'none') {
	  		next.setStyle('display','block');
				toggle.addClass('toggleopen');
				toggle.set('html', toggle.ontext);
	  	}
			
			toggle.addEvent('click', function(evt) {
				evt.stop();				
				if (next.getStyle("display") == 'none') {
					next.setStyle('display','block');
					toggle.addClass('toggleopen');
					toggle.set('html', toggle.ontext);
				}		
				else {
					next.setStyle('display','none');
					toggle.removeClass('toggleopen');
					toggle.set('html', toggle.offtext);
				}
			});			
		});
	}
	
	var pToggles = $$(".bookingdetail a.toggleprev");
	if (pToggles.length > 0) {
		pToggles.each(function(toggle) {					
			toggle.addEvent('click', function(evt) {
				evt.stop();
				var prev = toggle.getPrevious();
				if (prev.getStyle("display") == 'none') {
					prev.setStyle('display','block');
				}		
				else {
					//prev.setStyle('display','none');
				}
			});
		});
	}
	

	// Reservierungsansicht
	var rToggles = $$(".reservations a.toggle");
	if (rToggles.length > 0) {
		rToggles.each(function(toggle) {	
			var otext = toggle.get('html');
			
			
			if ($chk(toggle.offtext) == false) {
				if (toggletext.has(otext)) {
					toggle.offtext = otext;
					toggle.ontext = toggletext.get(toggle.offtext);
					if (!$defined(toggle.ontext)) toggle.ontext = toggle.offtext;
				}
				else {
					if (toggletext.hasValue(otext)) {
						toggle.ontext = otext;
						toggle.offtext = toggletext.keyOf(otext);					
					}
				}
			}							
			toggle.addEvent('click', function(evt) {
				evt.stop();
				var prev = toggle.getParent().getPrevious();
				// alert(prev);
				if (prev.getStyle("display") == 'none') {
					prev.setStyle('display','');
					toggle.addClass('toggleopen');
					toggle.set('html', toggle.ontext);
				}		
				else {
					prev.setStyle('display','none');
					toggle.removeClass('toggleopen');
					toggle.set('html', toggle.offtext);
				}
			});
		});
	}
	
	
	var editBtns = $$(".bookingdetail a.edit");
	if (editBtns.length > 0) {
		editBtns.each(function(btn) {
			var el = $(btn.get("rel"));
			btn.addEvent('click', function(evt) {
				evt.stop();
				if (el.getStyle("display") == 'none') {
					el.setStyle('display','block');
				}		
				else {
					el.setStyle('display','none');
				}				
			});
		});
	}

	// Tooltipp	
	activateToolTips();
	
	// Layer-Meldung
	$$('a.layer_close').each(function(lc) {
		lc.addEvent('click', function(evt) {
			evt.stop();
			lc.getParent().getParent().setStyle('display', 'none');
			$('layer_overlay').setStyle('visibility', 'hidden');
		});
	});
	$$('select.roomselect').each(function(sel) {
		sel.addEvent('change', function(evt) {
			if (sel.value == 'mehr') {				
				Mediabox.open('hinweis_maxbuchungen.html', '', '320 200');
			}
		});
	});
	
	
	var inp = new Array();
	var ssOrt;
	var ssHotel;
	
	if ($('ss_erwachsene')) {
		var erw = $('ss_erwachsene');
		var input = erw;
		input.defaultvalue = '1';
		inp.push(input);
		
		erw.addEvent('change', function(evt) {
			if(erw.value == 2) {
				$('ss_einzelzimmer').value = '0';
				$('ss_doppelzimmer').value = '1';
			}
		});
	}
	if ($('ss_kinder')) {
		var input = $('ss_kinder');
		input.defaultvalue = '0';
		inp.push(input);
	}
	if ($('ss_einzelzimmer')) {
		var input = $('ss_einzelzimmer');
		input.defaultvalue = '1';
		inp.push(input);
	}
	if ($('ss_doppelzimmer')) {
		var input = $('ss_doppelzimmer');
		input.defaultvalue = '0';
		inp.push(input);
	}
	if ($('us_ort')) {
		var input = $('us_ort');
		input.defaultvalue = 'Stadt, Adresse, Bahnhof, POI, o.ä.';
		inp.push(input);
	}
	
	if ($('uks_ort')) {
		var input = $('uks_ort');
		input.defaultvalue = 'Stadt, Adresse, Bahnhof, POI, o.ä.';
		inp.push(input);
	}
	if ($('uks_adresse')) {
		var input = $('uks_adresse');
		input.defaultvalue = 'Adresse, Bahnhof, POI, o.ä.';
		inp.push(input);
	}
	
	inp.each(function(input) {
		// alert(input, input.defaultvalue);
		input.value = input.value == "" ? input.defaultvalue : input.value;			
		input.addEvent('focus', function(evt) {
			input.value = input.value == input.defaultvalue ? "" : input.value;				
		});
		input.addEvent('blur', function(evt) {
			input.value = input.value == "" ? input.defaultvalue : input.value;	
		});
	});
	
	var ssOrt;
	var ssHotel;
	
	if ($('ss_ort')) {
		ssOrt = $('ss_ort');
		ssOrt.defaultvalue = 'Stadt';
		if (ssOrt.value.length == 0) {
			ssOrt.value = ssOrt.defaultvalue;		 	
		}

		ssOrt.addEvent('focus', function() {
			ssOrt.value = ssOrt.value == ssOrt.defaultvalue ? "" : ssOrt.value;				
		});

		ssOrt.addEvent('blur', function() {
			if (ssOrt.value == "") {
				ssOrt.value = ssOrt.defaultvalue;
			}
			else {
				if($('ss_hotel')) {
					$('ss_hotel').value = "";
				}
			}
		});
	}
	
	if ($('ss_hotel')) {
		ssHotel = $('ss_hotel');
		ssHotel.defaultvalue = 'Name des Hotels (optional)';		
		if (ssHotel.value.length == 0) {
		 	ssHotel.value = ssHotel.defaultvalue;
		}
		
		ssHotel.addEvent('focus', function() {
			ssHotel.value = ssHotel.value == ssHotel.defaultvalue ? "" : ssHotel.value;				
		});

		ssHotel.addEvent('blur', function() {
			if (ssHotel.value == "") {
				ssHotel.value = ssHotel.defaultvalue;
			}
			else {
				ssOrt.value = "";
			}
		});
	}
	
	var quickSearchSubmit = $('quickSearchSubmit');
	if (quickSearchSubmit) {		
		quickSearchSubmit.addEvent('click', function(evt){
			if (checkMaxChildren() == false) {
				showToolTip('maxKinderHinweis', '', 100, 100);
				evt.preventDefault();
			}
			if (checkRoomPersonsCount() == false) {
				showToolTip('anzZimmerHinweis', '', 150, 100);
				evt.preventDefault();
			}
		});
	}
	
	var bookingUpdateBtn = $('bookingUpdateBtn');
	if (bookingUpdateBtn) {		
		bookingUpdateBtn.addEvent('click', function(evt){			
			if (checkMaxChildren() == false) {
				showToolTip('maxKinderHinweis', '',140, 170);
				evt.preventDefault();
			}
			if (checkRoomPersonsCount() == false) {
				showToolTip('anzZimmerHinweis', '', 150, 100);
				evt.preventDefault();
			}
		});
	}
	
	
	// Datepicker	
	if ($('anreise_dp') && $('abreise_dp') && $('ss_nights') && (!$('ss_nights').hasClass('sdSelect'))) {
		arrivalDepartureDatePicker('anreise_dp', 'abreise_dp', 'ss_nights');	
	}
	
	if ($('Main') || $('SD3CBWPageComponent') || $('wsbk') || $('AWrapper')) {
		inputArray = $$('#cf_schnellsuche input', '#cf_umkreissuche input');
		mooFlowInputsFocus();
		
		// MooFlow 
		if ($('MooFlow')) {
			var myMooFlowPage = {
				start: function(){
					var mf = new MooFlow($('MooFlow'), {
						startIndex: 2,
						heightRatio: 0.45, // container height (container width * number); default(0.6)
						offsetY: -90, // vertical image offset; default(0)
						reflection: 0.2, // Höhe der Spiegelung
						//factor: 170, // für Relaunch 2011 auf 170 erhöhen
						factor: 160 // zoom factor; default(115)
					});
					$('mfprevious').addEvent('click', function(evt){
						evt.stop();
						mf.prev();
					});
					$('mfnext').addEvent('click', function(evt){
						evt.stop();
						mf.next();
					});
				}
			};
			
			myMooFlowPage.start();
		}
		
		// MooFlow3er 
		if ($('MooFlow3er')) {
			var myMooFlowPage = {
				start: function(){
					var mf = new MooFlow($('MooFlow3er'), {
						startIndex: 0,
						heightRatio: 0.9, // container height (container width * number); default(0.6)
						offsetY: -100, // vertical image offset; default(0)
						reflection: 0.2, // Höhe der Spiegelung
						factor: 225 // zoom factor; default(115)
					});
					$('mfprevious').addEvent('click', function(evt){
						evt.stop();
						mf.prev();
					});
					$('mfnext').addEvent('click', function(evt){
						evt.stop();
						mf.next();
					});
				}
			};			
			myMooFlowPage.start();
		}
		


		// MooFlow2er		
		var mf = $('MooFlow2er');
		var layout2 = false;
		
		if (mf) {
			var infront;
			var c0 = $('c_0');
			var c1 = $('c_1');
			var myFx = [];
			
			//var imgSize = 531;
			//var fullWidth = 545;
			//var fullHeight = 430;
			
			var fxOptions = new Object({
				duration: 500,
				transition: Fx.Transitions.Expo.easeOut
			});
			myFx['c_0'] = new Fx.Morph(c0, fxOptions);
			myFx['c_1'] = new Fx.Morph(c1, fxOptions);			
			
			layout2 = mf.getElement('div.imgtext');

			// Initialanordnung: links vorne, rechts hinten
			c0.set('class','infront');
			myFx['c_0'].set({ 'z-index' : 101 });
			myFx['c_1'].set({ 'width' : 434, 'height' : 340, 'top' : 52, 'z-index' : 100 });
			c1.set('class','inback');
			c1.getElement('h2').setStyles({ 'font-size' : '16px', 'line-height' : '20px', 'padding' : '16px 16px 8px'	});			
			c1.getElement('img').setStyles({ 'width' : '420px' });
			
			if (layout2) {				
				c1.getElement('p').setStyles({ 'font-size' : '10px', 'line-height' : '11px', 'padding' : '16px 4px 6px 0px', 'letter-spacing': '-0.3px'	});				
				c1.getElements('div.imgtext img').each(function(img) { img.setStyles({ 'width' : '113px', 'margin' : '16px 15px 0 0' }); });
				c1.getElement('div.imgtext .text').setStyles({ 'width' : '163px' });
		  }
		  else {
				c1.getElement('p').setStyles({ 'font-size' : '10px', 'line-height' : '11px', 'padding' : '13px 4px 14px', 'letter-spacing': '-0.2px'	});
			}
			infront = c0;
			
			var toFront = function(cb) {
				var cbID = cb.get('id');	
				myFx[cbID].start({ 'width': 545, 'height': 430, 'top' : 0, 'z-index' : 101, 
					onStart : function() {						
						var h2 = cb.getElement('h2');
						h2.set('morph', fxOptions);
						h2.morph({ 'font-size' : '20px', 'line-height' : '24px', 'padding' : '20px 21px 10px' });
						
						var p = cb.getElement('p');
						p.set('morph', fxOptions);
						if (layout2) {
							var t = cb.getElement('div.imgtext .text');
							t.set('morph', fxOptions);
							t.morph({ 'width' : '207px' });							
							p.morph({ 'font-size': '12px', 'line-height': '14px', 'padding': '20px 7px 8px 0px', 'letter-spacing': '0px' });
							//p.setStyles({ 'letter-spacing': '0px' });
							cb.getElements('div.imgtext img').each(function(img) { 
								img.set('morph', fxOptions);
								img.morph({ 'width' : '140px', 'margin' : '20px 20px 0 0' }); 
							});
						}
						else {							
							p.morph({ 'font-size': '12px', 'line-height': '14px', 'padding': '17px 7px 18px', 'letter-spacing': '0px' });
							//p.setStyles({ 'letter-spacing': '0px' });
						}
						var img = cb.getElement('img');
						img.set('morph', fxOptions);
						img.morph({ width: 531 });
						var ref = cb.getElement('div.mfb2reflection');
						ref.set('morph', fxOptions);
						ref.morph({ height: 28 });	
					},
					onComplete: function() {
						cb.set('class','infront');
						infront = cb;
					}
				});				
			};
			var toBack = function(cf) {
				var cfID = cf.get('id');						
				myFx[cfID].start({ 'width': 434, 'height': 340, 'top' : 52, 'z-index' : 100,
					onStart : function() {
						var h2 = cf.getElement('h2');
						h2.set('morph', fxOptions);
						h2.morph({ 'font-size' : '16px', 'line-height' : '20px', 'padding' : '16px 16px 8px' });
						
						var p = cf.getElement('p');
						p.set('morph', fxOptions);
						if (layout2) {
							var t = cf.getElement('div.imgtext .text');
							t.set('morph', fxOptions);
							t.morph({ 'width' : '163px' });							
							p.morph({ 'font-size' : '10px', 'line-height' : '11px',	'padding' : '16px 2px 6px 0px', 'letter-spacing': '-0.3px' });
							//p.setStyles({ 'letter-spacing': '-0.3px' });
							cf.getElements('div.imgtext img').each(function(img) { 
								img.set('morph', fxOptions);
								img.morph({ 'width' : '113px', 'margin' : '16px 15px 0 0' }); 
							});									
						}
						else {
							p.morph({ 'font-size' : '10px', 'line-height' : '11px',	'padding' : '13px 4px 14px 4px', 'letter-spacing': '-0.2px' });
							p.setStyles({ 'letter-spacing': '-0.2px' });
						}
						
						var img = cf.getElement('img');
						img.set('morph', fxOptions);
						img.morph({ width: 420 });
						
						var ref = cf.getElement('div.mfb2reflection');
						ref.set('morph', fxOptions);
						ref.morph({ height: 24 });	
					},
					onComplete : function() {
						cf.set('class','inback');
					}
				});				
			};
			
			// Click Events
			$('mfprevious').addEvent('click', function(evt){
				evt.stop();
				if (c1 == infront) {
					toBack(c1);		
					toFront(c0);					
				}
				else {
					toBack(c0);		
					toFront(c1);
				}
			});			
			$('mfnext').addEvent('click', function(evt){
				evt.stop();
				if (c0 == infront) {
					toBack(c0);		
					toFront(c1);
				}
				else {
					toBack(c1);		
					toFront(c0);
				}
			});
			c1.getElement('img').addEvent('click', function(evt){
				evt.stop();
				if (c0 == infront) {
					toBack(c0);		
					toFront(c1);
				}
				else {
					toBack(c1);		
					toFront(c0);
				}
			});
			c0.getElement('img').addEvent('click', function(evt){
				evt.stop();
				if (c1 == infront) {
					toBack(c1);		
					toFront(c0);
				}
				else {
					toBack(c0);		
					toFront(c1);
				}
			});
			
		}			
		// Ende MooFlow2er			
		
		
		// MooFlow2Preview		
		var mf = $('MooFlow2Preview');
		
		if (mf) {
			var infront;
			var c0 = $('c_0');
			var c1 = $('c_1');
			var cfc0 = $('cfc_0');
			var cfc1 = $('cfc_1');
			var myFx = [];
			
			//var imgSize = 531;
			//var fullWidth = 545;
			//var fullHeight = 430;
			
			var fxOptions = new Object({
				duration: 500,
				transition: Fx.Transitions.Expo.easeOut
			});
			myFx['c_0'] = new Fx.Morph(c0, fxOptions);
			myFx['c_1'] = new Fx.Morph(c1, fxOptions);			
			
			// Initialanordnung: links vorne, rechts hinten
			c0.set('class','infront');
			myFx['c_0'].set({ 'z-index' : 101 });
			myFx['c_1'].set({ 'width' : 434, 'height' : 340, 'top' : 52, 'z-index' : 100 });
			c1.set('class','inback');			
			c1.getElement('img').setStyles({ 'width' : '420px' });			
			cfc0.setStyles({
	  		'display': 'block',
				'top': '0px',
				'left': '0px'
	  	});			
			cfc1.setStyles({
				'top': '0px',
				'right': '0px'
	  	});	  	
			
			infront = c0;
			
			var toFront = function(cb) {
				var cbID = cb.get('id');	
				myFx[cbID].start({ 'width': 545, 'height': 430, 'top' : 0, 'z-index' : 101, 
					onStart : function() {						
						var img = cb.getElement('img');
						img.set('morph', fxOptions);
						img.morph({ width: 531 });
						var ref = cb.getElement('div.mfb2reflection');
						ref.set('morph', fxOptions);
						ref.morph({ height: 28 });	
					},
					onComplete: function() {
						cb.set('class','infront');						
						var cfront = (cb == c0 ? cfc0 : cfc1);			
						cfront.setStyles({
							'display': 'block'
	  				});		
						infront = cb;
					}.delay(500)
				});				
			};
			var toBack = function(cf) {
				var cfID = cf.get('id');						
				myFx[cfID].start({ 'width': 434, 'height': 340, 'top' : 52, 'z-index' : 100,
					onStart : function() {				
						var img = cf.getElement('img');
						img.set('morph', fxOptions);
						img.morph({ width: 420 });
						
						var ref = cf.getElement('div.mfb2reflection');
						ref.set('morph', fxOptions);
						ref.morph({ height: 24 });	
					},
					onComplete : function() {
						cf.set('class','inback');
						var cback = (cf == c0 ? cfc0 : cfc1);			
						cback.setStyles({
							'display': 'none'
	  				});		
					}
				});				
			};
			
			// Click Events
			$('mfprevious').addEvent('click', function(evt){
				evt.stop();
				if (c1 == infront) {
					toBack(c1);		
					toFront(c0);					
				}
				else {
					toBack(c0);		
					toFront(c1);
				}
			});			
			$('mfnext').addEvent('click', function(evt){
				evt.stop();
				if (c0 == infront) {
					toBack(c0);		
					toFront(c1);
				}
				else {
					toBack(c1);		
					toFront(c0);
				}
			});
			c1.getElement('img').addEvent('click', function(evt){
				evt.stop();
				if (c0 == infront) {
					toBack(c0);		
					toFront(c1);
				}
				else {
					toBack(c1);		
					toFront(c0);
				}
			});
			c0.getElement('img').addEvent('click', function(evt){
				evt.stop();
				if (c1 == infront) {
					toBack(c1);		
					toFront(c0);
				}
				else {
					toBack(c0);		
					toFront(c1);
				}
			});			
		}			
		// Ende MooFlow2Preview			
			
			
			
			
		// Carousel
		if ($('sliderlist')) {
			var items = $$('#sliderlist li.sl_item p span.hiddenhref');
			items.each(function(hh) {
				var href = hh.get('text');
				if (href != "") {
					var a = new Element('a', {'href': href});
					var p = hh.getParent();
					a.adopt(p.getElement('span.imgshadow'));
					a.adopt(p.getElement('span.caption'));
					a.inject(hh, 'after');
				}
			});
			
			new iCarousel("sliderlist", {  
				idPrevious: "previous",  
				idNext: "next",  
				idToggle: "undefined",  
				item: {  
					klass: "sl_item",  
					size: 173  
				}
			});
		}
		
		// Submit mit RETURN für IE aktivieren
		var cfqs = $('cf_quicksearch');
		if (cfqs && Browser.Engine.trident) {
			cfqs.addEvent('keydown', function(evt){
				if (evt.code == 13) {
					if (checkMaxChildren() == false) { 
						showToolTip('maxKinderHinweis', '', 130, 30); 
						return false; 
					} 
					else if (checkRoomPersonsCount() == false) {
						showToolTip('anzZimmerHinweis', '', 130, 30);
						return false; 
					}
					else { 
						dimBtn('quickSearchSubmit');
						cfqs.submit();
					}
				}
			});
		}
		var uks = $('cf_uksearch');
		if (uks && Browser.Engine.trident) {			
			uks.addEvent('keydown', function(evt){
				if (evt.code == 13) {
					uks.submit();
				}
			});
		}		
		// &amp; aus den Querystrings in & umwandeln (für iata-Codes)
		$$('#sliderlist li a').each(function(lnk) {
			if (lnk != "") {
	  		// alert("LNK2: " + lnk);
	  		lnk.set("href", lnk.get("href").replace(/&amp;/, "&"));
			}
		});
		
	} // Ende if ($('Main'))
	

	
	// ajaxLoader Gif vorladen
	ajaxLoader = new Element('img', { src : '/bw/v3/img/ajax-loader32.gif' });	
	
	// Checkbox "alle auswählen" aktivieren	
	var markallCB = $(document.body).getElement('input[name=markall]');
	if (markallCB) {		
		markallCB.addEvent('click', function(evt) {
			if (markallCB.get('checked') == true) {
				$(document.body).getElements('input[name=selectedpnum]').set('checked', 'checked');
			}
			else {
				$(document.body).getElements('input[name=selectedpnum]').set('checked', '');
			}
		});
	}
	
	setupTootips();	
	
	if ($('bookingform') && Browser.Engine.trident && Browser.Engine.version <= 5) { // Inputs für IE6 + 7 onfocus highlighten
		$$('#bookingform input, #bookingform textarea').each(function(input){
			input.addEvent('focus', function(ev){
				input.addClass('iefocus');
			});
			input.addEvent('blur', function(ev){
				input.removeClass('iefocus');
			});
		});	
		/* 
		$$('#bookingform select').each(function(input){
			input.onfocusin = function(){
				input.addClass('iefocus');
			}
			input.onfocusout = function(){
				input.removeClass('iefocus');
			}
		});	
		*/
	}
	
	alterSearchformSubmit();
	
	var compareBtn = $('compareBtn');
	if (compareBtn) {
			compareBtn.addEvent('click', function(evt) {
				if (!isCompareCheckboxChecked()) {					
					alert("Bitte wählen Sie mindestens zwei Hotels zum Vergleich aus!");
					evt.stop();
					return false;
				}				
		 });
	}
	
	
	if ($('iatatoggle')) {
		var iataToggle = $('iatatoggle');
		var iataLink = $('iatatoggle').getElement('a');
		var iataDiv = iataToggle.getNext('div.frow');
		//console.log("iataDiv :", iataDiv, "iataLink :", iataLink);
		var iataInput = iataDiv.getElement('input[name=IATA]');
		//console.log("iataInput :", iataInput, "VALUE: ", iataInput.value);
		var iataFx = new Fx.Slide(iataDiv);
		if (iataInput.value == "") {
			iataFx.hide();
			iataLink.set('class', 'closed');
		}		
		else {
			iataLink.set('class', 'open');
		}
		iataLink.addEvent('click', function(evt) {
			evt.stop();			
			if (iataLink.hasClass("closed")) {
	  		iataFx.slideIn();
				iataLink.set('class', 'open');
	  	}
			else {
				iataFx.slideOut();
				iataLink.set('class', 'closed');
			}
		});
	}
	
	initHeaderNavigation();	
	lineBreaksForMainNavi();
	initVideoPlayer();
	initImageGallery();
	initKlippklappBoxes();
	initRatingImgs();
	initSortableTables();
	hideEmptyDoubleHeadlines();
	
	if (!Browser.ie) initConGalleryCompact();
  
	if ($('wsbk')) {
		initHotelview();
		initArrivalDepartureDatePicker('anreise_dp','abreise_dp','ss_nights', -10, -140);		
		//initHotelViewBigImgCarousel();
		//initHotelViewGalleryThumbnailCarousel();
	}
  
	//initSlideShow();
	
	
	eliminateEmptyHeadlines();
	
});// Ende domready

window.addEvent('load', function() {		
	if (Browser.ie) {
		initConGalleryCompact();
    if($('wsbk')) {initHotelViewBigImgCarousel();}
    initHotelViewGalleryThumbnailCarousel();
  }
  initSlideShow();
  initImgTeasers();
});

window.addEvent('resize', function() {
	if ($('page_bg2')) {
		if (Browser.ie) {
			$('page_bg2').setStyle('min-height', document.body.clientHeight);
		}
		else {
			$('page_bg2').setStyle('min-height', window.innerHeight);
		}  	
  }
});

var hideEmptyDoubleHeadlines = function() {
  var dhl = document.getElement('div.doubleheadline');
  if (dhl) {
    var h1 = dhl.getElement('h1');
    var h2 = dhl.getElement('h2');  
    if (h1.get('text').clean() == "" && h2.get('text').clean() == "") {
      h1.setStyle('display','none');
      h2.setStyle('display','none');
      dhl.setStyle('padding', '1px 0 0 0');  
    }
  }
  
  $$('.easyform h3').each(function(h3) {
    if (h3.get('html').clean() == "") {
      h3.setStyle('display','none');
    }
  });
};

var afterAjaxCalls = function() {
  initRatingImgs();
  loadDetailViewToggles();
  if (Mediabox) Mediabox.scanPage();
  markAllCheckBoxes();
  initSortableLists();
  initRollOvers();
  initSortableTables();
}

// Images in Teaserboxen einer Zeile auf gleiche Höhe setzen
var initImgTeasers = function() {
	var teaserTemplates = new Array(".t50_50", ".t25_25_25_25", ".t25_25_50", ".t25_50_25", ".t50_25_25", ".t66_33", ".t33_66", ".t33_33_33", ".t25_75", ".t75_25 ");
	teaserTemplates.each(function(tmpl) {
		var tImgs = $$(tmpl + " div.imgteaser img");
		if (tImgs.length > 0) {
			var maxH = 0;
			tImgs.each(function(img) {
				var h = img.getSize().y;				
				if ( h > maxH ) maxH = h;
			});
			tImgs.each(function(img) {
			  if (maxH != 0) {
				  img.setStyle('height', maxH);
				}
			});
		}
	});
};

var markAllCheckBoxes = function() {
  var markallCB = $(document.body).getElement('input[name=markall]');
  if (markallCB) {		
    markallCB.addEvent('click', function(evt) {
      if (markallCB.get('checked') == true) {
        $(document.body).getElements('input[name=selectedpnum]').set('checked', 'checked');
      }
      else {
        $(document.body).getElements('input[name=selectedpnum]').set('checked', '');
      }
    });
  }
};

var initRatingImgs = function() {
		var ratingImgs = $$('span.bewertung img.rating');
		//console.log("ratingImgs:", ratingImgs);
		if (ratingImgs.length > 0) {
			ratingImgs.each(function(img) {
				var source = img.getParent('span').getNext('div.trustyousource');
				img.getParent('span').addEvent('click', function(evt) {
					evt.stop();
					//alert("CLICK");
					
					var allOpenSources = $$('.ratingsourceopen');
					allOpenSources.each(function(os) {
					  os.setStyle('display','none');
					  os.removeClass('ratingsourceopen');
					});
					source.setStyle('display', 'block');
					source.addClass('ratingsourceopen');
					var par = source.getOffsetParent();
					var pos = $(par).getPosition();
					//console.log("POS:", pos.x, pos.y);	// 145 117
					var contSize = source.getSize();		
					//console.log("contSize :", contSize);		
					var t = evt.page.y - pos.y - source.getSize().y + 'px';
					//console.log("t :", t);
					source.setStyles({ 'top': t });
				
					if (isIE6) {
						//alert(source.getSize().x + " : " + source.getSize().y);
						var iframe = new Element('iframe');
						iframe.setStyles({
							'width': source.getSize().x,
							'height': source.getSize().y,
							'position': 'absolute',
							'top': '0px',
							'left': '0px'
						});
						iframe.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';					
						iframe.inject(source, 'top');
					}
					
					
				});
				source.getElement('a.tt_close').addEvent('click', function(evt) {
					evt.stop();
					source.setStyle('display','none');
					source.removeClass('ratingsourceopen');
				});
			});			
		}
};



var initImageGallery = function() {	
	var galleryContainer = $('galleryContainer');
	if (galleryContainer && galleryImagesArray && galleryImagesArray.length > 0) {

		var cntRow, cntPages, startImgIndex, endImgIndex;
		var imgPerPage = 12;
		var len = galleryImagesArray.length;		
		var fourColumnFormat = (galleryContainer.getParent('div.subcolumns') ? false : true);		
		cntRow = fourColumnFormat ? 4 : 3;		
		cntPages = Math.ceil(len / imgPerPage);		
		var currentPage = 0;

		var buildPaging = function() {
			currentPage = currentPage.toInt();
			var topPaging = $$('div.paging_top div.paging');
			var bottomPaging = $$('div.paging_bottom div.paging');
			
			topPaging.set("html", "Seite: ");
			bottomPaging.set("html", "Seite: ");
			var lHtml, lClass = "";
			
			for (var i = -1; i <= cntPages; i++) {
				var rel = i;				
				if (i == -1 ) {
					lClass = 'back';
					lHtml = "";
					rel = currentPage-1;
				}
				else if (i == cntPages) {
					lClass = 'fwd';
					lHtml = "";
					rel = currentPage+1;
				}
				else {
					lHtml = i+1;
					lClass = (currentPage == i ? 'selected' : '');
				}
				var pagingLnk = new Element('a', {
					'href' : '#',
					'html': lHtml,
					'rel': rel.toInt(),
					events: {
						'click': function(evt) {
							evt.stop();
							if (this.rel >= 0 && this.rel < cntPages) {
								setPage(this.rel);
							}							
						}
					}
				});
				var pagingLnkBtm = new Element('a', {
					'href' : '#',
					'html': lHtml,
					'rel': rel.toInt(),
					events: {
						'click': function(evt) {
							evt.stop();
							if (this.rel >= 0 && this.rel < cntPages) {
								setPage(this.rel);
							}							
						}
					}
				});
				if (lClass != "") {
					pagingLnk.addClass(lClass);
					pagingLnkBtm.addClass(lClass);
				}
				topPaging.adopt(pagingLnk);
				bottomPaging.adopt(pagingLnkBtm);
			}
		};
		
		var buildTable = function() {
			var galleryTable = new Element("table", { id : 'galTable', 'class': 'bildergalerie' });
			var row;			
			for (var i = startImgIndex; i < endImgIndex; i++) {
				var c = i % cntRow;
				var data = galleryImagesArray[i];
				//console.log("data :", data);
				var headline = data[0];
				var imgLg = data[1];
				var imgSm = data[2];				
				var caption = data[3];
				var dlPath = data[4];
				var dlSize = data[5];
				
				if (c == 0) {
					if (row) {
						row.inject(galleryTable);
					}
					row = new Element('tr');
				}
				var cell = new Element('td');
				if (c == 0) cell.addClass('first');
				var h3 = new Element('h3', { 'class': 'times', 'html': headline }).inject(cell);
				var lightboxLink = new Element('a', {
					'href': imgLg,
					'class': 'zoom_img',
					'rel': 'lightbox[all]'
				});
				var galImg = new Element('img', { 
					'src': imgSm,
					'class': 'vorschaubild',
					'alt': headline
				});
				var zoomImg = new Element('img', {
					'src': '/bw/v3/img/ico/zoom.png',
					'alt': 'Zoom',
					'class': 'btn_zoom'
				});
				lightboxLink.adopt(galImg).adopt(zoomImg).inject(cell);
				if (caption.length > 0) {
					var parag = new Element('p', { 'html': caption} ).inject(cell);
				}
				
				if (dlPath.length > 0) {		
					var imgFiles = ['JPG','JPEG','GIF','PNG','TIFF','BMP'];
					var dl = dlPath.toUpperCase();
					var fileEnding = dl.substring(dl.lastIndexOf('.')+1, dl.length);
					
					if (imgFiles.contains(fileEnding)) { // Download
						var dlLink = new Element('a', {
							'href': dlPath,
							'class': 'downloadlink',
							'html': 'Bild herunterladen (' + fileEnding + ', '+ dlSize +')'
						});
					}
					else {
						var dlLink = new Element('a', {
							'href': dlPath,
							'class': 'arrw',
							'html': 'Artikel zum Bild'
						});
					}
					dlLink.inject(cell);					
				}					
				cell.inject(row);
			}

			if ( c < (cntRow - 1)) {
				for (var i = 0; i < (cntRow - 1 - c); i++) {
					var emptyCell = new Element('td', { 'width': (100/cntRow).toInt() + '%' }).inject(row);
				}
			}
			
			row.inject(galleryTable);						
			galleryTable.replaces(document.getElementById('galTable'));
			
			/*
			if ($('galTable')) {
				$('galTable').dispose();
			}			
			galleryTable.inject($('paging_bottom'), 'before');
			
			var myDiv = new Element('div');
			myDiv.setStyles({
				'width': '100px',
				'height': '100px',
				'background': '#ff9900'
			});
			galleryTable.inject(myDiv);
			//myDiv.set('html', galleryTable);
			myDiv.replaces(document.getElementById('galTable'));
			*/
			
			Mediabox.scanPage();			
		};
		

		var setPage = function(i) {
			currentPage = i;
			startImgIndex = currentPage * 12;
			endImgIndex = startImgIndex + imgPerPage;
			endImgIndex = endImgIndex > len ? len : endImgIndex;

			buildPaging();
			buildTable();
		};	
		
		setPage(0);
	}
}// ende initImageGallery



var initVideoPlayer = function() {
	var allSrcDivs = $$('.videoplayer .moviesrc');
	allSrcDivs.each(function(srcDiv) {
		var bSize = srcDiv.getSize();
		var src = srcDiv.get('html');		
		if (src) {
			var vidDiv = srcDiv.getParent('.videoplayer');
			var vCode = '<object>';
			vCode += '<param name="movie" value="'+src+'"></param>';
			vCode += '<param name="allowFullScreen" value="true"></param>';
			vCode += '<param name="allowscriptaccess" value="always"></param>';
			vCode += '<embed src="'+src+'" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"></embed>';
			vCode += '</object>';
			srcDiv.set('html', vCode);			
			var obj = srcDiv.getElement('object');

			if (!Browser.ie) {
	  		var oSize = obj.getSize();
				//console.log("bSize :", bSize);
				//console.log("oSize :", oSize);				
	  		var newW = bSize.x;
				var newH = (oSize.y * bSize.x / oSize.x).round();
				//console.log("newW: ", newW, " - newH: ", newH);
				obj.set("width", newW);
				obj.set("height", newH);

				if (document.getElement('embed')) {
					var embed = obj.getElement('embed');
					embed.set("width", newW);
					embed.set("height", newH);
				}
			}
			else {
				//IE Stuff
				(function() {
					srcDiv.setStyle("float", "left");
					var oSize = srcDiv.getSize();
					//alert(oSize.x + " : " + oSize.y);
					var newW = bSize.x;
					var newH = (oSize.y * bSize.x / oSize.x).round();
					//console.log("newW: ", newW, " - newH: ", newH);
					var vCode = '<object>';
					vCode += '<param name="movie" value="'+src+'" width="'+newW+'" height="'+newH+'"></param>';
					vCode += '<param name="allowFullScreen" value="true"></param>';
					vCode += '<param name="allowscriptaccess" value="always"></param>';
					vCode += '<embed src="'+src+'" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="'+newW+'" height="'+newH+'"></embed>';
					vCode += '</object>';
					srcDiv.set('html', vCode);					
				}).delay(100);
				
			}
		}
	});
};






var lineBreaksForMainNavi = function() {
	$$('#mainnav ul li a span').each(function(item) {
		item.set('html', item.get('html').replace(/\|/g, "<br/>"));
	});
	
	$$('#mainnav ul li a').each(function(el) {
	  if (el.get('title') != null) {
	    var myTitle = el.get('title');
	    myTitle = myTitle.replace(/\|/g, " ");
	    myTitle = myTitle.replace(/  /g, " ");
	    el.set('title', myTitle);
	  }
	});
	
	$$('div.breadcrumb a').each(function(bnl) {
	    bnl.set('html', bnl.get('html').replace(/\|/g, " "));
	});
};


var initSDTextInputs = function() {
	var allSDTextInputs = $$('input.SDTextInput');
	allSDTextInputs.each(function(input) {
		//console.log("input :", input);
		var myInput = new SDTextInput(input);
	});
}

var initHeaderNavigation = function(){
	var hNav = $('headernavi');
	var offSetLeft = 1;
	var positionLeft = 1;
	var aPadding = 26;
	if (hNav) {		
		if ((isIE6 || isIE7) && !$('wsbk')) {
			oldIEFix(hNav);
			offSetLeft = 4;
			positionLeft = 4;
			aPadding = 34;
			if (isIE6) {
			  aPadding = 46;
			  //ie6IFrameFix(hNav);
			}
		}		
		if (isIE8) {
			offSetLeft = 4;
			positionLeft = -2;
			aPadding = 30;
		}
		
		var hNavLinks = $$('#mainnav li a');
		var allHNavis = hNav.getElements('div.hnavi');
		var hnaviEntered = false;
		var linkEntered = false;
		var hnaviOpen = "";
		var pMarginsLeft = document.getElement('div.page_margins').getPosition().x;
		
		var hNavFx = new Fx.Morph(hNav, {
			duration: '100'
		}).set({
			'height': 0,
			'opacity': 0.0,
			'display': 'block'
		});
		
		hNavLinks.each(function(hlink){
			var rel = hlink.get('rel');
			if (rel != null && rel != "") {				
				var myRel = $(rel);
				if (myRel) {
					hlink.addEvent('mouseenter', function(evt){
						linkEntered = true;
						if (hnaviOpen != rel) {
							if ($(hnaviOpen)) $(hnaviOpen).setStyle('display', 'none');
							
							$$('#mainnav li').each(function(li) {
								li.removeClass('active');
							});
							hNav.setStyles({ 'opacity': '0.0', 'left': '0px', 'width': 'auto' });

							// Breite + Position des Ausklappbereichs ermitteln
							myRel.setStyle('display', 'block');
							var myPos = hlink.retrieve('myPos'); // gespeicherte Position
							var myWidth = hlink.retrieve('myWidth'); // gespeicherte Breite
							var wRel = myRel.getSize().x; // Breite des Ausklappbereichs
							var wLink = hlink.getSize().x; // Breite des MenuItems
							var pLink = hlink.getPosition().x; // Position des MenuItems
							var pNav = hNav.getPosition().x; // ursprüngliche Position des Ausklappbereichs
							var pNew = pLink - pNav - (wRel - wLink) - aPadding; // neue Position des Ausklappbereichs
							if (pNew < positionLeft) pNew = positionLeft; // wenn Überstand nach links, dann linksbündig setzen
							var wNew = wRel + aPadding - offSetLeft; // Breite des Ausklappbereichs plus Padding
							hNav.setStyles({ 'left': pNew+'px', 'width': wNew+'px' }); // ermittelte Werte setzen


							// Höhe des Ausklappbereichs ermitteln
							var maxH = 0;
							myRel.getElements('div.column').each(function(d) {
								var h = d.getSize().y;
								if (h > maxH) maxH = h;
							});
							var hNavH = maxH + 37;
							
							hNavFx.start({ 
								'height': [0, hNavH], 
								'opacity': [0, 1],
								onComplete : function() {
									allHNavis.each(function(d){
										if (d.style.display == 'block' && d != myRel) {
											d.setStyle('display', 'none');
										}
									});
									hnaviOpen = rel;
									hlink.getParent('li').addClass('active');
									if ($('searchbox')) {
										$('searchbox').setStyle('position', 'static');
									}
								}
							});								
						}
					});				
					hlink.addEvent('mouseleave', function(evt){
						hNav.addEvent('mouseenter', function(evt2){
							hnaviEntered = true;
						});
						
						hNav.addEvent('mouseleave', function(evt3){
							hnaviEntered = false;
							closeHeaderNavi.delay(300, myRel, hlink.getParent('li'));
							//myRel.setStyles({ 'width': 'auto' });
							//hNav.setStyles({ 'left': '0px', 'width': 'auto' });
						});
						
						linkEntered = false;
						closeHeaderNavi.delay(300, myRel, hlink.getParent('li'));
					});
				}
			}
			else {
				hlink.addEvent('mouseenter', function(evt){
					allHNavis.each(function(d){
						if (d.style.display == 'block') {
							d.setStyle('display', 'none');
						}
					});
					hnaviOpen = "";
				});
			}
		});
		
		var closeHeaderNavi = function(li){						
			var rel = this;
			//console.log("hnaviEntered : ", hnaviEntered);
			//console.log("linkEntered : ", linkEntered);
			//console.log("rel : ", rel);
			//console.log("li :", li);
			
			if (hnaviEntered == false && linkEntered == false) {				
				hNavFx.set({
					'height': 0,
					'opacity': 0
				});
				rel.setStyle('display', 'none');
				li.removeClass('active');
				hnaviOpen = "";
			}							
		};
	}
};

var oldIEFix = function(hn) {
	hn.setStyle('top','0px');
	if ($('buehne')) {
	  hn.inject($('buehne'), 'bottom');
	}
	else if ($('schattenbox')) {
		  hn.inject($('schattenbox'), 'bottom');
	}
	else if ($('pagemain')) {
		  hn.inject($('pagemain'), 'bottom');
	}
	/*
	if (isIE6) {
			ie6IFrameFix(hn);
	}
	*/
};




// Slideshow Setup
var initSlideShow = function(){
	var slideshow = $('slideshow');
	if (slideshow) {
		var mySlideShow;
		var slideshowlinks = new Array();
		var linklist = $('slideshowlinklist');
		
		//leere Overlays ausblenden
    var slideShowOverlays = $$('.sls_overlay');
    slideShowOverlays.each(function(overlay, ind1){
      var empty = true;
      var overlaySpans = overlay.getElements('span');
      overlaySpans.each(function(span, ind2){
        var txt = span.get('text').clean();
        if (txt.length > 0 && txt != "&nbsp;") {
          empty = false;
        }
        else {
          if (!span.hasClass('greenbtn')) 
            span.setStyle('display', 'none');
        }
      });
      if (empty === true) 
        overlay.setStyle('display', 'none');
    });
    //leere Subcolumns ausblenden
    var subcolumns = slideshow.getElements('div.subcolumns');
    subcolumns.each(function(subcolumn) {
      var subcs = subcolumn.getElements('.c50l .subcl, .c50r .subcr');			
      var subcolHasText = false;
      // beide subcolumns auf Inhalt prüfen
      subcs.each(function(sc){
        var txt = sc.get('text').clean();
        if (txt != "") {
          subcolHasText = true;
        }
      });
      if (!subcolHasText) {
        subcolumn.setStyle('display', 'none');
      }
    });
		
		if (linklist) {
			var tiles = slideshow.getElements('div.whitebox');
			if (tiles.length > 1) {
				tiles.each(function(tile, inx){
					var anchor = new Element('a', {
						'rel': 'slide[' + inx + ']',
						'text': inx + 1
					});
					var li = new Element('li').grab(anchor);
					li.inject(linklist);
					slideshowlinks.push(anchor);
				});
				
				var slideshowLinksHighLight = function(n){
					slideshowlinks.each(function(l, index){
						if (n != index) {
							l.removeClass('active');
						}
						else {
							l.addClass('active');
						}
					});
				};
				
				var slideshowPause = function(){
					mySlideShow.pause();
					slideshowPlaying = false;
				};
				var slideshowPlay = function(){
					mySlideShow.showNext();
					mySlideShow.play();
					slideshowPlaying = true;
				};
				
				slideshowLinksHighLight(0);
				slideshowlinks.each(function(link, index){
					link.addEvent('click', function(evt){
						evt.stop();
						if (link.hasClass('active') && slideshowPlaying == false) {
							slideshowPlay();
						}
						else {
							slideshowLinksHighLight(index);
							var r = parseInt(link.get('rel').substr(link.get('rel').indexOf('[') + 1, 1));
							mySlideShow.show(r);
							slideshowPause();
						}
					});
				});
				
				mySlideShow = new SlideShow('slideshow', {
					delay: 10000,
					transition: 'fadeThroughBackground',
					duration: 1000,
					autoplay: true,
					onShow: function(eventVars){
						slideshowLinksHighLight(eventVars.nextIndex);
					}
				});
				slideshowPlaying = true;
			}
			else {
				slideshow.getElements('div.whitebox').each(function(d){
					d.setStyle('display', 'block');
				});
			}
		}
		else { // normale Slideshow initialisieren
			mySlideShow = new SlideShow('slideshow', {
				transition: 'fadeThroughBackground',
				duration: 1000,
				autoplay: true
			});
		}
	}
}


var attachEffect = function(el) {
	el.style.display = 'none';
	var myEffect = new Fx.Morph(el, { 'link': 'chain', 'duration' : 'short' });
	myEffect.start({ 'opacity': 0 });
	return myEffect;
};

var attachEffectAndShow = function(el) {
	var myEffect = new Fx.Morph(el, { 'link': 'chain', 'duration' : 'short' });
	myEffect.start({ 'opacity': 1 });
	return myEffect;
};

var attachEffectAndShowSearchOptions = function(el) {
	var myEffect = new Fx.Morph(el, { 'link': 'chain', 'duration' : 'short' });
	myEffect.start({ 'display': 'block' }).start({ 'opacity': 1 });
	return myEffect;
};

var toggleEffect = function(eff, el) {
	if (el.style.display == 'none') {
		showEffect(eff, el);
	}
	else {
		hideEffect(eff, el);
	}
};

var showEffect = function(eff, el) {
	eff.start({ 'display': 'block' }).start({ 'opacity': 1 });
};

var hideEffect = function(eff, el) {
	eff.start({ 'opacity': 0 }).start({ 'display': 'none' });
};





var highlightRow = function(row) {
	clearMatrix();
	var rtds = rows[row].getElements('td');
	rtds.each(function(td){
		if (!td.hasClass('leer')) {
			td.addClass("highlight_p");
		}
	});
};

var moverHighlightRow = function(row) {
	if (row.indexOf('highlight_p') != -1) {
		row = row.replace(/ highlight_p/, "")
	}
	var rtds = rows[row].getElements('td');
	rtds.each(function(td){
		if (!td.hasClass('leer')) {
			td.addClass("highlight");
		}
	});
};

var moverUnlightRow = function(row) {
	if (row.indexOf('highlight_p') != -1) {
		row = row.replace(/ highlight_p/, "")
	}
	var rtds = rows[row].getElements('td');
	rtds.each(function(td) {
		td.removeClass("highlight");
	});
};
	
var highlightCol = function(col) {	
	clearMatrix();		
	rows.each(function(tr){
		var rtds = tr.getElements('td');
		if (rtds[col] != null &&
		!rtds[col].hasClass('leer')) {
			rtds[col].addClass("highlight_p");
		}
	});
};
	
var moverHighlightCol = function(col) {			
	rows.each(function(tr){
		var rtds = tr.getElements('td');
		if (rtds[col] != null &&
		!rtds[col].hasClass('leer')) {
			rtds[col].addClass("highlight");
		}
	});
};

var moverUnlightCol = function(col) {	
	rows.each(function(tr){
		var rtds = tr.getElements('td');
		if (rtds[col] != null) {
			rtds[col].removeClass("highlight");
		}
	});
};

var clearMatrix = function() {
	tds.each(function(td) {
		td.removeClass("highlight_p");
		td.removeClass("highlight");
	});
};

var initSlider = function() {
	var slide = $('slider');
	var distance = $('distance');
	if (distance) {
		distance.set('html', '10 km pro Ring');
		umkSlider = new Slider(slide, slide.getElement('.knob'), {
			steps: 101,		// There are 100 steps
			range: [10],	// Minimum value is 10
			onChange: function(value){
				distance.set('html', value + ' km pro Ring');
				UKSOverlay.redraw('', value);
				if ($defined(drawUmkreisSlider)) {
					drawUmkreisSlider();
				}				
			},
			onComplete: function(value){
				if ($defined(umkreisSucheHookUp)) {
					slidervalue = value;
					umkreisSucheHookUp(value);
				}
			}		
		});		
		return true;
	}
	else {
		return false;
	}
};




// SubmitButton durch AjaxLoader ersetzen
var qsReplace = function(btnId) {	
	var al = $(ajaxLoader);
	al.setStyles({
		width: '32px',
		height: '32px',
		marginRight: '45px'
	});
	al.replaces($(btnId));
}

// SubmitButton dimmen
var dimBtn = function(btnId) {	
	// alert(btnId);
	// var btn = $(btnId);	
	// var myFx = new Fx.Tween(btn, {'link': 'chain', 'duration': 'long'} );
	// myFx.start('opacity', 1, 0.2).start('opacity', 0.2, 0.7).start('opacity', 0.7, 0.2).start('opacity', 0.2, 0.7).start('opacity', 0.7, 0.2);
	// myFx.start('opacity', 1, 0.2);
	
	qsReplace(btnId);
}




var umkreisSucheHookUp = function() {};
var drawUmkreisSlider = function() {};

var mooFlowInputsFocus = function() {
	inputArray.each(function(input){
		input.addEvent('focus', function(evt){
			mooFlowInputHasFocus = true;
		});
		input.addEvent('blur', function(evt){
			mooFlowInputHasFocus = false;
		});
	});
};


var checkMaxChildren = function() {
	/* 
	"Anzahl Erwachsene" - "Anzahl Einzelzimmer" = "Erwachsene im Doppelzimmer"
	Erwachsene im Doppelzimmer / 2 == max. Kinder : muss größer sein als die Anzahl Kinder
												  : muss aber auch kleiner oder gleich sein als die Anzahl DZ
	 */
	 
	 var anzErw = $('ss_erwachsene').value;
	 var anzKinder = $('ss_kinder').value;
	 var anzEZ = $('ss_einzelzimmer').value;
	 var anzDZ = $('ss_doppelzimmer').value;
	 var erwInDZ = anzErw - anzEZ;
	 var maxKinder = erwInDZ / 2;
	 // console.log("ERW: ", anzErw, " / KIDS: ", anzKinder, " / EZ: ", anzEZ, " / DZ: ", anzDZ, " / ERW IN DZ: ", erwInDZ, " / MAXKIND: ", maxKinder);
	 
	 // ToDo: sollte die Anzahl Doppelzimmer kleiner sein als (Erwachsene - Einzelzimmer) / 2, dann sollte ein anderer Hinweistext ausgeben werden
	 // z.B. Die Anzahl der EZ und DZ entspricht nicht der Anzahl der angegebenen Personen. Bitte überprüfen Sie Ihre Eingaben.
	 if (erwInDZ/2 > anzDZ) {
	 	// return false;
	 }
	 
	 if (anzKinder > 0 && maxKinder < anzKinder) {
	 	return false;
	 }
	 return true; 
};

var checkRoomPersonsCount = function() {
	var anzErw = parseInt($('ss_erwachsene').value);
	var anzKinder = parseInt($('ss_kinder').value);
	var anzEZ = parseInt($('ss_einzelzimmer').value);
	var anzDZ = parseInt($('ss_doppelzimmer').value);
	var anzZimmer = anzEZ + anzDZ;
	
	//alert("anzKinder: " + anzKinder + " - anzErw: " + anzErw + " - anzEZ: " + anzEZ + " - anzDZ:"  + anzDZ + " - anzZimmer: " + anzZimmer);
	
	
	//if (anzKinder == 0 && anzErw == 1 && (anzEZ + anzDZ) > 1) {
	if (anzKinder == 0 && (anzErw < (anzEZ + anzDZ))) {
		return false;
	}
	return true;
};


var getInternetExplorerVersion = function () {
	// Returns the version of Internet Explorer or a -1
	// (indicating the use of another browser).
  	var rv = -1; // Return value assumes failure.
  	if (navigator.appName == 'Microsoft Internet Explorer') {
    	var ua = navigator.userAgent;
    	var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    	if (re.exec(ua) != null)
      		rv = parseFloat( RegExp.$1 );
  		}
  	return rv;
};

var loadMatrixNav = function() {
	matrixNavEls = $$('#matrixnav .tablist li');
	if (matrixNavEls.length > 0){
		matrixNavEls.each(function(el){
			el.addEvent('click', function(evt){
				evt.stop();
				matrixNavEls.each(function(ell){
					if (el == ell) {
						ell.addClass('selected');
					}
					else {
						ell.removeClass('selected');
					}					
				});
				// Text des Links im Tab auslesen
				// var lnk = el.getElement('a');			
				// var lnkText = lnk.get('href').substr(lnk.get('href').indexOf('#')+1);
				// console.log("LINKTEXT: ", lnkText);
				
			});
		});
	}
};

var loadDetailViewToggles = function() {
	bars = $$('.bar');
	if (bars.length > 0) {
		bars.each(function(bar) {
			var prev = bar.getPrevious();
			if ($defined(prev)) {
				if (prev.hasClass('detail')) {
					var prevEffect = attachEffect(prev);
					var toggle = flipText(bar.getElement("a.toggle"));					
					if ($chk(toggle)) {
						toggle.addEvent('click', function(evt) {
							evt.stop();
							toggleEffect(prevEffect, prev);			
							if (prev.getStyle("display") == 'none') {
								toggle.addClass('toggleopen');
								toggle.set('html', toggle.ontext);
								var rel = toggle.get('rel');
								// console.log("REL: ", rel);
								if ($chk(rel)) {
									buildGalleryDetailThumbnails(rel);
								}								
							}		
							else {
								toggle.removeClass('toggleopen');
								toggle.set('html', toggle.offtext);
							}							
						});
					}
				}
			}
		});
	}	

	moreLinks = $$('h2 a', 'a.moreinfotoggle');

	if (moreLinks.length > 0) {
		moreLinks.each(function(h2) {
			var parentRow = h2.getParent('.row');			
			if (parentRow) {
				var detail = parentRow.getNext('div.detail');
				var toggle = flipText(parentRow.getNext('.bar').getElement('a.toggle'));
				//console.log("toggle :", toggle);
			}			
			if (detail != null) {
				var detailEffect = attachEffect(detail);
				h2.addEvent('click', function(evt) {
					evt.stop();
					toggleEffect(detailEffect, detail);	
					if (detail.getStyle("display") == 'none') {
						toggle.addClass('toggleopen');
						toggle.set('html', toggle.ontext);
					}		
					else {
						toggle.removeClass('toggleopen');
						toggle.set('html', toggle.offtext);
					}
				});
			}
			else { // keine Details vorhanden
				h2.addEvent('click', function(evt){
					//evt.stop();
				});
			}
		});
	}
};

var trackDetailView = function(){};

var setupTootips = function() {
	// MooTools ToolTips
	allTipz = $$('.sdtooltip');
	if (allTipz.length > 0) {
		allTipz.each(function(element,index) {
			var title = element.get("title");
			if ($chk(title)) {
				var content = title.split('::');
				element.store('tip:title', content[0]);
				element.store('tip:text', content[1]);
			}			
		});
			
	}
	
	//create the tooltips
	myTips = new Tips('.sdtooltip',{
		text : 'rel',
		className: 'sdtip'
	});
};

var buildGalleryDetailThumbnails = function(hotelid) {
	var imgArray = thumbnailArray[hotelid];
	var gtd = $('gtd_'+hotelid);
	if (gtd) {
		$('gtd_'+hotelid).getElements('span.imgshadow span').each(function(spn, index) {
			var myImg = new Element('img',{ 'src' : imgArray[index], 'height' : '90' });
			var zoomImg = new Element('img', { 'src' : '/bw/v3/img/ico/zoom.gif', 'alt' : 'vergrössern', 'class' : 'zoom' });
			if (!spn.retrieve('hasImage')) {
				myImg.inject(spn);
				zoomImg.inject(spn);
				spn.store('hasImage', true);
			}		
		});	
	}
};

var moveCalendar = function(container) {	
	datepicker = $('datefields_qs');	
	var holder = $(container);	
	if (datepicker && !$chk(holder.getElement('#datefields_qs'))) {
		datepicker.inject(holder);
	}	
};




var setupEditButtons = function() {
	if (soEditButtons.length > 0) {
		soEditButtons.each(function(el) {
			el.removeEvents('click');
			el.addEvent('click', function(evt) {
				evt.stop();
				if ($('reisedaten').getStyle('display') == 'none') {
					modifiers.each(function(mod){
						$(mod).fade('out');
						$(mod).setStyle('display', 'none');
						if (mod == 'reisedaten') {
							$(mod).fade('hide');
							$(mod).setStyle('display', '');
							$(mod).fade('in');
							moreoptionstoggle.setStyle('display', '');
							umkreistoggle.setStyle('display', 'none');	
							
							tabs.each(function(tab) {
								if (tab.get('href').substr(tab.get('href').indexOf('#')+1) == 'reisedaten') {
									tab.getParent().addClass('selected');
								}							
								else {
									tab.getParent().removeClass('selected');								
								}
							});						
						}
					});
				}	
				hideEditButtons();			
			});
		});	
	}
};


var hideEditButtons = function() {
	soEditButtons.each(function(el) {
		el.setStyle('visibility', 'hidden');
	});
};

var showEditButtons = function() {
	soEditButtons.each(function(el) {
		if (el.style.visibility == 'hidden') {
			el.setStyle('visibility', 'visible');
		}
	});
	setupEditButtons();
};

var modifyEditButtons = function() {
	soEditButtons.each(function(el) {
		if (el.style.visibility == 'hidden') {
			el.setStyle('visibility', 'visible');
			el.removeEvents('click');
		}
		
		el.addEvent('click', function(evt) {
			evt.stop();			
			//console.log("EL: ", el);
			var rel = el.get("rel");
			if ($chk(rel)) {
				// console.log("REL: ", rel);
				if (rel == 'dauer' || rel == 'naechte') {
					arrivalDepartureDatePicker('anreise_dp2', 'abreise_dp2', 'ss_nights2');
					hideEditable('dauer');
					hideEditable('naechte');
				}
				else {
					hideEditable(rel);
				}				
			}		
		});
	});
}

var hideEditable = function(rel) {
	var textCont = $(rel + "_Text");
	var inputCont = $(rel + "_Input");
	//var submitBtn = $("editSubmit");
	if (inputCont) {
		if ((inputCont).style.display == 'none') {
			textCont.fade('out');
			textCont.setStyle('display', 'none');
			
			inputCont.fade('hide');
			inputCont.setStyle('display', '');
			inputCont.fade('in');
			
			/* 
			if (submitBtn.style.display == 'none') {
				submitBtn.fade('hide');
				submitBtn.setStyle('display', '');
				submitBtn.fade('in');
			}
			 */
		}	
	}
}
var showEditable = function(rel) {
	var textCont = $(rel + "_Text");
	var inputCont = $(rel + "_Input");
	// var submitBtn = $("editSubmit");
	if (textCont) {
		if ((textCont).style.display == 'none') {
			inputCont.fade('out');
			inputCont.setStyle('display', 'none');
			
			// submitBtn.fade('out');
			// submitBtn.setStyle('display', 'none');
			
			textCont.fade('hide');
			textCont.setStyle('display', '');
			textCont.fade('in');
		}	
	}
}

var showAllEditables = function() {
	// console.log(soEditButtons.length);
	if (soEditButtons.length > 0) {		
		soEditButtons.each(function(el) {
			var rel = el.get('rel');
			showEditable(rel);
		});
	}
};


// Anreise- / Abreise Datepicker
var arrivalDepartureDatePicker = function(arrivalInput, departureInput, nightsSelect) {

	var arrive = $(arrivalInput);
	var depart = $(departureInput);
	var ctNights = $(nightsSelect);
	var dateArr = new Array();

	// console.log("arrivalInput: ", arrivalInput, " / departureInput: ", departureInput);	
	// console.log("ARR: ", arrive, " / DEP: ", depart, " / NIGHTS: ", ctNights);
		
	var initParams = new Object();
	var ai = new Object();
	ai[arrivalInput] = 'd.m.Y';
	initParams[arrivalInput] = ai;
	var di = new Object();
	di[departureInput] = 'd.m.Y';
	initParams[departureInput] = di;
	
	var myCal = new Calendar( initParams );	
	myCal.setOptions({ 
		pad: 1,
		direction: .5, 
		onShowComplete: function() {	  
			if (isIE8) {				
				myCal.calendars.each(function(kal, i) {						 
					if (kal.visible) {
						var captLinks = $('capt_'+kal.id).getElements('a');
						captLinks.each(function(l, ind){													
							if ((captLinks.length == 1 && ind == 0) || ind == 1) {
								l.setStyles({
									'position' : 'absolute',
									'top' : '15px',
									'right' : '0px',
									'backgroundImage' : 'url(/bw/v3/img/ico/scrollfwd.gif)'
								});
							}
							else {
								l.setStyles({
									'position' : 'absolute',
									'top' : '15px',
									'right' : '15px',
									'backgroundImage' : 'url(/bw/v3/img/ico/scrollback.gif)'
								});
							}
						});
					}
				});
			}
		},
		onHideStart: function() {
		  if (ctNights) {
		    var oldValArr = new Array();
		    var arrivalIsSet = false;		    
        myCal.calendars.each(function(kal, i) {
          if (oldValArr[0]) {
            dateArr[i] = kal.val;
            oldValArr[i] = kal.el.cM3;          
            if (i == 0) {    
              var oldValue = (oldValArr[0]).split(".");
              var oldDate = new Date(oldValue[2], oldValue[1]-1, oldValue[0]);
              var newDate = dateArr[0];
  
              if (oldDate > newDate) {
                var newDepart = new Date(myCal.calendars[0].val.getTime() + (ctNights.value * 1000 * 3600 * 24) + (1000*3600));
                myCal.calendars[1].val = newDepart;
                myCal.write(myCal.calendars[1]);
                myCal.check(myCal.calendars[1]);
                kal.el.cM3 = myCal.format(newDate, 'd.m.Y');              
              }
              else if (oldDate < newDate) {
                arrivalIsSet = true;           
                var newDepart = new Date(myCal.calendars[0].val.getTime() + (ctNights.value * 1000 * 3600 * 24) + (1000*3600));
                myCal.calendars[1].val = newDepart;
                myCal.write(myCal.calendars[1]);
                myCal.check(myCal.calendars[1]);
                kal.el.cM3 = myCal.format(newDate, 'd.m.Y');
              }
            }
            else {            
              if (!arrivalIsSet && oldValArr[1] != "") {       
                var oldValue = (oldValArr[1]).split(".");
                var oldDate = new Date(oldValue[2], oldValue[1]-1, oldValue[0]);              
                var newDate = dateArr[1];
                
                if (oldDate > newDate) {
                  var naechte = ((newDate - dateArr[0]) / (3600 * 24 * 1000)).round().toInt();
                  if (!isNaN(naechte)) {             
                    ctNights.selectedIndex = naechte - 1;
                  }
                }
                else {       
                  var naechte = ((dateArr[1] - dateArr[0]) / (3600 * 24 * 1000)).round().toInt();
                  if (!isNaN(naechte)) {             
                    ctNights.selectedIndex = naechte - 1;
                  }
                }              
              }
            }
          }
        });
      }
		}
	}); 
	ctNights.addEvent("change", function(evt) {
		var newDepart = new Date(myCal.calendars[0].val.getTime() + (ctNights.value * 1000 * 3600 * 24) + (1000*3600));	
		depart.value = myCal.format(newDepart, 'd.m.Y');
		myCal.calendars[1].val = newDepart;	
	});
	ctNights.addEvent("focus", function(evt) {
		var cal = myCal.calendars[1];			 
		if (cal.visible) {	
			myCal.toggle(cal);
		}			
	});
};

var transferValuesToQS = function() {	 
	var fields = new Array('ss_ort','ss_hotel','anreise_dp','abreise_dp','ss_nights','ss_erwachsene','ss_kinder','ss_doppelzimmer','ss_einzelzimmer');
	fields.each(function(id) {
		var f1 = $(id);
		var f2 = $(id+'2');
		var fspan = $(id+'_span');
		if (f1 && f2 && $chk(f2.value)) {
			f1.value = f2.value;
			// console.log("ID: ", id, "F2 VAL: ", f2.value);
			
			// An- / Abreisedatum
			if (id == 'anreise_dp' || id == 'abreise_dp') {
				if (fspan) fspan.set('text', getWeekDayName(f2.value));
			}
			// Kinder
			else if (id == 'ss_kinder') {
				var lbl;
				if (parseInt(f2.value) > 1) {
					lbl = 'Kinder';
				}
				else if (parseInt(f2.value) == 1) {
					lbl = 'Kind';
				}
				else {
					lbl = '';		
					f2.value = '';			
				}							
				if (fspan) {
					fspan.set('text', f2.value);					
					$('ss_kinder_label').set('text', lbl);
				}
				else {
					if ($('kinderspan')) {
						$('kinderspan').set('text', ' ' + f2.value + ' ' + lbl);
					}
					else {
						var nspan = new Element('span', {'id': 'kinderspan'});
						nspan.set('text', ' ' + f2.value + ' ' + lbl);					
						nspan.inject($('personen_Text').getElement('a'), 'before');
					}					
				}						
			}
			// Doppelzimmer
			else if (id == 'ss_doppelzimmer') {
				$('zimmer_span').set('text', '');
				if (parseInt(f2.value) > 0) {
					if ($('dzspan')) {
						$('dzspan').set('text', f2.value + ' ' + 'Doppelzimmer' + ' ');
					}
					else {
						var nspan = new Element('span', {'id': 'dzspan'});
						nspan.set('text', f2.value + ' ' + 'Doppelzimmer' + ' ');					
						nspan.inject($('zimmer_Text').getElement('a'), 'before');
					}					
				}
				else {
					if ($('dzspan')) {
						$('dzspan').destroy();
					}
				}
			}
			// Einzelzimmer
			else if (id == 'ss_einzelzimmer') {
				$('zimmer_span').set('text', '');
				if (parseInt(f2.value) > 0) {
					if ($('ezspan')) {
						$('ezspan').set('text', f2.value + ' ' + 'Einzelzimmer' + ' ');
					}
					else {
						var nspan = new Element('span', {'id': 'ezspan'});
						nspan.set('text', f2.value + ' ' + 'Einzelzimmer' + ' ');					
						nspan.inject($('zimmer_Text').getElement('a'), 'before');
					}	
				}
				else {
					if ($('ezspan')) {
						$('ezspan').destroy();
					}
				}
			}
			// Anzahl Nächte
			else if (id == 'ss_nights') {
				if (fspan) fspan.set('text', f2.value);				
				if (parseInt(f2.value) > 1) {
					$('ss_nights_label').set('text', 'Nächte');
				}
				else {
					$('ss_nights_label').set('text', 'Nacht');
				}
			}
			
			// sonst
			else {
				if (fspan) fspan.set('text', f2.value);
			} 						
		}
	});
	//if ($('ss_ort').value == "Stadt") $('ss_ort').value = "";
	//document.searchform.submit();
};

var fillCityRegionField = function(str) {
	var crspan = $('cityregion_span');	
	if (crspan && crspan.get('text') != str) {
		crspan.set('text', str);
	}
}

var getWeekDayName = function(dateStr) {
	var Wochentag = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
	var p = dateStr.split('.');
	var d = new Date(parseInt(p[2]),parseInt(p[1])-1,parseInt(p[0]));
	// console.log("D: ", d);	
	return Wochentag[d.getDay()] + ', ' + dateStr;
}

var showSearchOptionCount = function() {
	var dsparamCheckBoxes = $$('#moreoptions input[checked]');
	// console.log("CBs: ", dsparamCheckBoxes.length);
	var anz = "";
	if (dsparamCheckBoxes.length > 0) {
		// console.log($('moreoptionstoggle').offtext);
		anz = " (" + dsparamCheckBoxes.length + ")";
	}
	$('moreoptionstoggle').offtext = $('moreoptionstoggle').origtext + anz;
};

var showCartInfoDiv = function(el) {
	// alert("EL: "+ $(el));
	var div = $($(el).get('rel'));
	div.style.display = '';
	div.fade('in');
}

alterSearchformSubmit = function() { 
	var sform = $('searchform');
	//alert("isUKS" + isUKS);	
	//alert(sform);
	if (sform && $defined(isUKS)) {
		if (isUKS == true) {
			sform.removeEvent('keydown');
			sform.addEvent('keydown', function(evt){
				if (evt.code == 13) {
					evt.preventDefault();
					showAddress($('uks_ort').value);
					return false;
				}
			});
		}		 
		else {
			//alert("DA");
			sform.removeEvent('keydown');
			sform.addEvent('keydown', function(evt){
				if (evt.code == 13) {
					document.searchform.submit();
				}
			});
		}	
	}
}

var isCompareCheckboxChecked = function() {
	var checked = false;	
	$(document.body).getElements('input[name=selectedpnum]').each(function(cb) {
		// console.log("CHECKED", cb.get('checked'));
		if (cb.get('checked') == true) {
			checked = true;
		}
	});
	return checked;
};

var initHotelview = function() {	
  var kkToggles = $$('.klippklapp_hotelview .listitem .header a.toggle');
  if (kkToggles.length > 0) {
  	var contentBox = 'div.content';
  	initKlippklappBoxes(kkToggles, contentBox);
  	initTextToggles();
  }  	
  if (!Browser.ie) {
    initHotelViewBigImgCarousel();
    initHotelViewGalleryThumbnailCarousel();
  }
  if (window.initHotelviewGMap != undefined) initHotelviewGMap();
};




