// Dieses Skript erstellt die Spalten fuer alle Reisedetailseiten
// ps 080624


function hochziehen() {
	if (w+3> max) {
	} else {
	w=w+3;
	spalten(w,1 );
	};
}

function runterziehen() {
	if (w>2) {w=w-3} else {w=0};
	spalten(w, 1);
}

function spalten(start, anfang, fotoleiste) {
	
	if (layouttyp != "buchen") { // die Seite buchen funktioniert als einzige rundreisen-seite ohne spalten!
		$("fliesstext").style.display = "block";
		$('abschluss').style.overflow = 'hidden';
		fotoleisteeinrichten(fotoleiste);
		if ($$('.hinein'))
			spaltenleeren();
		if (anfang == 0) {
			althoehehighlights = 0;
			zusatz = 0;
			spaltenbreite = 250;
			lineheight=16;
			spaltenhoehe = _getSpaltenhoehe(fotoleiste);
		}; //anfang =0
		if ($$('.preisinfohellerkasten').length > 0) 
			anpassePreisinfohellerkasten(lineheight); 
		if (layouttyp == "veranstalter") {
		    $('veranstalterKopf').style.width = spaltenbreite+"px";
		    //$('veranstalterKopf').style.border = "1px solid blue";
		    _adjustVeranstalterKopf(lineheight);
		}
		//gesamte innere Elementhoehe ermitteln
		if ($('erstespalte')) {
			$('erstespalte').style.margin = "0";
	//		$("abstand2").style.height = spaltenhoehe%lineheight+"px";
		};

		$("fliesstext").style.width = spaltenbreite+"px";
		$("containerinhalt").style.height = spaltenhoehe+"px";
		var content=$("fliesstext").innerHTML;
		divHeight=$("fliesstext").offsetHeight;
		spaltenzahl = divHeight/spaltenhoehe+1;
		if (anfang==0) {max=spaltenzahl};
		anfang = 1;
		anteil = divHeight/spaltenzahl;
		if ($('liste')) {
				$('liste').style.height = spaltenhoehe-lineheight +"px"; // die listen in reisedetail_ziel und reisedetail_faq werden einfach abgeschnitten nach Pixelzahl, in Absprache mit Ina, ps 080711
		}
		ohrenreiter();	
		if ($("erstespalte")!=undefined) { 
			var erstespalte = $("erstespalte");
			if ($('fakten')) {
				if (erstespalte.offsetHeight <= spaltenhoehe) {
					$("fakten").style.height = spaltenhoehe -1*lineheight+"px";	
				}
			} else if ($('liste')) {
				if (erstespalte.offsetHeight <= spaltenhoehe) {
					
					// $('liste').style.height = spaltenhoehe- 0*lineheight+"px";
					//empirisch ermittelt von ina, ps 080903 13:00
					$('liste').style.height = spaltenhoehe-3+"px";

					// die Breitenangabe verhindert, dass das erste Wort verschluckt wird, wenn es kuerzer als 4 Zeichen ist, ps 080904
					$('liste').style.width = "240px";
					$('liste').style.margin="0 0 0 0";
				}
			}
			var content=erstespalte.innerHTML + $("fliesstext").innerHTML;
		};
		if ($('veranstalterKopf')) {
			content = $('veranstalterKopf').innerHTML+  $('fliesstext').innerHTML;
		}

		//und reintun
		if ((layouttyp == "infos" || layouttyp == "fragen" || layouttyp == "ziele") && w<2) 
		{
			x=2; 
			if ($('erstespalte')) $('erstespalte').style.display = "block";
		} else
		{
			x=1;
			if ($('erstespalte')) $('erstespalte').style.display = "none";
		}	
		for (i=x; i<=3; i++) {
			$("fliesstext").style.display = "none";
			if ($('veranstalterKopf')) {
				$('veranstalterKopf').style.display = "none";
			}
			var links = spaltenbreite*(i-1)+(i-1)*10;
			var rechts = i*spaltenbreite;
			var li = spaltenbreite*(-i+1);
			var oben = -(1-i-start)*spaltenhoehe-zusatz;
			var unten = -(1-i-start)*spaltenhoehe+spaltenhoehe;
			var hinein = document.createElement("div");
			hinein.id = "hinein"+i;
			hinein.className ="hinein";
			hinein.style.background = "#e9edf1";
			hinein.style.position = "absolute";
			hinein.style.overflow = "visible";
			hinein.style.width = spaltenbreite+"px";
			hinein.style.left = links+"px";
			if ((start == 0 || w < 3)) 
			{
				if (i==1 && layouttyp!="infos") {
					if (erstespalte!=undefined) {
						if ($(aktiv))   {
							$(aktiv).className = "listenlinkaktiv";
						}
						erstespalte.style.margin = -spaltenhoehe +"px 0 0 0";
						hinein.innerHTML = erstespalte + content+'<div style="background: #e9edf1; margin-bottom: '+3*spaltenhoehe +'px;"></div>';	
					};
					hinein.innerHTML = content+'<div style="background: #e9edf1; margin-bottom: '+3*spaltenhoehe+'px;"></div>';	
					hinein.style.clip = "rect("+oben+"px, "+rechts+"px, "+unten+"px, "+li+"px)";
					$("containerinhalt").appendChild(hinein);
					zusatz = 0;
				} else if (i == 2) {
					var highlights =  $("highlights");
					if (highlights!=undefined) {		
						highlights.style.display = "block";
						if (althoehehighlights > 0) {
							hoehehighlights = althoehehighlights;
						}else {
							var hoehehighlights = highlights.offsetHeight;
							althoehehighlights = hoehehighlights;
						};
						highlights.style.position = 'absolute';
						highlights.style.top = spaltenhoehe-hoehehighlights+2+'px';
						highlights.style.left = spaltenbreite+10+"px";
						highlights.style.width = "250px";
					} else {
						hoehehighlights = 0;
					}
					
					var hoeheersterteil = spaltenhoehe-hoehehighlights;
					hinein.style.height= hoeheersterteil+spaltenhoehe+"px";
					
					//hinein.style.border="1px solid red";
					hinein.style.top = -oben+"px";
					
					hinein.style.overflow = "hidden";
					if (window.opera)
						hinein.style.overflow = "visible";
					hinein.innerHTML = content;	
					
					
					hinein.style.clip = "rect("+oben+"px, "+rechts+"px, "+unten+"px, "+li+"px)";
					$("containerinhalt").appendChild(hinein);		
					if (highlights) {
						highlights.style.display = "block";
						//highlights.style.zIndex = "6000";
						$("containerinhalt").appendChild(highlights);
					};
					zusatz = hoehehighlights;
					$("containerinhalt").style.overflow = 'hidden';
					$("containerinhalt").style.padding = '0 0 0 5px';
				} else if (i == 3) {
					var empfehlung =  $("empfehlung");
					if (empfehlung!=undefined) {
						empfehlung.style.display = "block";
						var hoeheempfehlung = empfehlung.offsetHeight-17;
						empfehlung.style.position = "absolute";
						empfehlung.style.top = $('bezeichnung').offsetHeight+"px";
						empfehlung.style.left = 2*(spaltenbreite+10)+10+"px";
					} else {
					var hoeheempfehlung = 0;
					};
					hinein.style.height= spaltenhoehe-hoeheempfehlung+"px";
					hinein.style.top = -oben+hoeheempfehlung+"px";
					hinein.style.background = "#e9edf1";
					hinein.style.overflow = "visible";
					hinein.innerHTML = content;	
					unten = unten + spaltenhoehe+hoeheempfehlung;
					hinein.style.clip = "rect("+oben+"px, "+rechts+"px, "+unten+"px, "+li+"px)";
					$("containerinhalt").appendChild(hinein);		
					zusatz=zusatz+hoeheempfehlung;
					$("containerinhalt").style.overflow = 'hidden';
					$("containerinhalt").style.padding = '0 0 0 5px';
				};
				hinein.style.clip = "rect("+oben+"px, "+rechts+"px, "+unten+"px, "+li+"px)";
				hinein.innerHTML = content;	
				$("containerinhalt").appendChild(hinein);
			} else { // ab hier: wenn start!=0
				if ($('empfehlung')) $('empfehlung').style.display = "none";
				hinein.style.top = -oben+"px";
				oben = oben - spaltenhoehe;
				unten = unten;
				hinein.style.clip = "rect("+oben+"px, "+rechts+"px, "+unten+"px, "+li+"px)";
				hinein.innerHTML = content+'<div style="margin-bottom: '+3*spaltenhoehe+'px;"></div>';	
				if ($('preisinfohellerkasten')!=undefined) {
					$('preisinfohellerkasten').style.visibility = "hidden";
				};
				$("containerinhalt").appendChild(hinein);
			};
		} //for
	} else { // wenn ohne_spalten
	//ohren und reiter und weiter-buttons
	    if ($('weiterunten')) $("weiterunten").style.display = 'none';
	    if ($('vor')) $("vor").style.background = 'url(image/rahmen/greiferleerre.gif) no-repeat';	
	    if ($('vor')) $("vor").style.cursor = 'default';	
	    if ($('zurueckunten')) $("zurueckunten").style.display = 'none';
	    if ($('zurueckunten')) $("zurueck").style.background = 'url(image/rahmen/greiferleerli.gif) no-repeat';	
	    if ($('zurueckunten')) $("zurueck").style.cursor = 'default';	
    }
	_updateKastenhoehe();
} //spalten

function spaltenleeren() {
	try {
		$$('.hinein').each(function(drin){
			drin.parentNode.removeChild(drin);
		});
	}
	catch (e) {};
}

function ohrenreiter() {
	//ohren und reiter und weiter-buttons
	if (w+3<= max) {
		$("weiterunten").style.display = 'block';
		$("vor").style.background = 'url(image/rahmen/greiferre.gif) no-repeat';	
		$("vor").style.cursor = 'pointer';	
	} else {
		$("weiterunten").style.display = 'none';
		$("vor").style.background = 'url(image/rahmen/greiferleerre.gif) no-repeat';	
		$("vor").style.cursor = 'default';	
	};
	if (w == 0) {
		$("zurueckunten").style.display = 'none';
		$("zurueck").style.background = 'url(image/rahmen/greiferleerli.gif) no-repeat';	
		$("zurueck").style.cursor = 'default';	
	} else {
		$("zurueckunten").style.display = 'block';
		$("zurueck").style.background = 'url(image/rahmen/greiferli.gif) no-repeat';	
		$("zurueck").style.cursor = 'pointer';	
	};
}

function fotoleisteeinrichten(fotoleiste) {
	if ($('links') && $('rechts')) {
		if (fotoleiste == true || $('fotoleiste') ) {
				$('links').style.visibility = "visible";
				$('rechts').style.visibility = "visible";
		} else {
				$('links').style.visibility = "hidden";
				$('rechts').style.visibility = "hidden";
		}
	}
	if (($('fotoleiste')!=undefined && $('fotoleiste').offsetHeight > 5) || (fotoleiste!=undefined && fotoleiste == true))      { 
		$('austauschbar').className = "contentdunkel";
		var fotoleistenBreite = $('abschluss').scrollWidth;
		
		
		if (1==1 || fotoleistenBreite == $('abschluss').offsetWidth) {
			fotoleistenBreite = echteFotoleistenBreite();
		}
		if (fotoleistenBreite > $('abschluss').offsetWidth) {
			$('links').style.visibility = "visible";
			$('rechts').style.visibility = "visible";
		} else {
			$('links').style.visibility = "hidden";
			$('rechts').style.visibility = "hidden";
		}
	} else {
		$('austauschbar').className = 'contenthell';
	}
}

function echteFotoleistenBreite() {
	var breite = 0;
	var fotolinks = $('fotoleiste').select('img');
	if (fotolinks && fotolinks.length)
		fotolinks.each(function(elm){breite += parseInt(elm.width)+10;});
	
	return breite;
}

function _getSpaltenhoehe(fotoleiste) {
		spaltenhoehe = _getKaestenrechts();
		spaltenhoehe -= _getOberhalbSpalten();	
		spaltenhoehe -= _getUnterhalbSpalten(fotoleiste);
		containeroben = -5;
		spaltenhoehe = spaltenhoehe_anpassen(spaltenhoehe, fotoleiste);	
		return spaltenhoehe;
}

function _getOberhalbSpalten() {
		var oberhalb_spalten = 0;
		if ($('nav')!=undefined)
		 	oberhalb_spalten += $('nav').offsetHeight;
		if ($('bezeichnung')!=undefined)
		 	oberhalb_spalten += $('bezeichnung').offsetHeight;
		return oberhalb_spalten;
}

function _getUnterhalbSpalten(fotoleiste) {
		var unterhalb_spalten = 0;
		if ($('weiterunten')) {
			unterhalb_spalten += $('weiterunten').offsetHeight+20;
		} else {
			if ($('zurueckunten'))     { 
				unterhalb_spalten += $('zurueckunten').offsetHeight+20;
			};
		};
		
		if ($('abstand')!=undefined) { 
			unterhalb_spalten += $('abstand').offsetHeight;
		};
		if ($('abstand2')!=undefined) {       
			unterhalb_spalten += $('abstand2').offsetHeight;
		};
		if ((((fotoleiste!=undefined && fotoleiste == true) || $('fotoleiste')!=undefined))  && layouttyp != "infos" && layouttyp != "fragen")      { 
			unterhalb_spalten += 103; // das ist $('abschlusshoehe').offsetheight im html - mit portal.js funktioniert das aber nicht mehr. da die Fotos alle gleich hoch sind, nun eben hardcoded. ps 080709
		}
		return unterhalb_spalten;
}

function spaltenhoehe_anpassen(spaltenhoehe, fotoleiste) {
		if (layouttyp == "infos") 
		{
			if ($('fakten')) var  faktenhoehe = $('fakten').offsetHeight+24;
			if ($('fakten') && $('fakten').offsetHeight > spaltenhoehe) spaltenhoehe = $('fakten').offsetHeight;
		}
		while (spaltenhoehe%lineheight != 0) {
			spaltenhoehe++;
		};
		if (layouttyp == "") { // das ist der Teil, der die Unterkante des Infokastens an den brauenen kaesten rechts ausrichtet. Das Skript ist noch unsauber und auf den ie7 optimiert
//			spaltenhoehe = spaltenhoehe - 2*lineheight;
		};
		if (layouttyp == "infos" || layouttyp == "ziele" || layouttyp == "fragen") {
//			spaltenhoehe = spaltenhoehe - 2*lineheight;
		}
		var neueAbstandHoehe = $("abstand").offsetHeight + spaltenhoehe%lineheight;
		$("abstand").style.height = neueAbstandHoehe+"px";
		return spaltenhoehe;
}

function _adjustVeranstalterKopf(lineheight) {
		var untenabstand = 0;
		while ($('veranstalterKopf').offsetHeight%lineheight != 0) {
		    untenabstand++;
		    $('veranstalterKopf').style.paddingBottom =  untenabstand+"px";
		};
}	

function anpassePreisinfohellerkasten(lineheight) {
	if ($$('.preisinfohellerkasten').length>=2) {
		if (($$('.preisinfohellerkasten')[0].offsetHeight)%spaltenhoehe + 5*lineheight  > spaltenhoehe) 
				// zweiter Kasten wird in naechste Spalte verschoben
				$$('.preisinfohellerkasten')[1].style.marginTop = spaltenhoehe + 24 - ($$('.preisinfohellerkasten')[0].offsetHeight)%spaltenhoehe + "px";
		else	$$('.preisinfohellerkasten')[0].style.marginBottom = "12px";
	}
	if ($$('.preisinfohellerkasten').length>=3) {
		if (($$('.preisinfohellerkasten')[0].offsetHeight + $$('.preisinfohellerkasten')[1].offsetHeight)%spaltenhoehe + 5*lineheight > spaltenhoehe)
				// dritter Kasten wird in naechste Spalte verschoben
				$$('.preisinfohellerkasten')[2].style.marginTop = spaltenhoehe + 38 - ($$('.preisinfohellerkasten')[0].offsetHeight+$$('.preisinfohellerkasten')[1].offsetHeight)%spaltenhoehe + "px";
		else	$$('.preisinfohellerkasten')[1].style.marginBottom = "16px";
	}
	if ($$('.preisinfohellerkasten').length>=4) {
		if (($$('.preisinfohellerkasten')[0].offsetHeight + $$('.preisinfohellerkasten')[1].offsetHeight + $$('.preisinfohellerkasten')[2].offsetHeight)%spaltenhoehe + 5*lineheight > spaltenhoehe)
			// vierter Kasten wird in naechste Spalte verschoben
			$$('.preisinfohellerkasten')[3].style.marginTop = spaltenhoehe + 24 - ($$('.preisinfohellerkasten')[0].offsetHeight + $$('.preisinfohellerkasten')[1].offsetHeight + $$('.preisinfohellerkasten')[2].offsetHeight)%spaltenhoehe + "px";
		else	$$('.preisinfohellerkasten')[2].style.marginBottom = "12px";
	}
	$$('.piInhalt').each(function(pihk) {
		var pihkKorr = 0;
		while (pihk.offsetHeight%lineheight != 0) {
			pihkKorr++;
			pihk.style.paddingBottom = pihkKorr+"px";
		}
	});
}



