/*
Function ajaxUpdateWithLoaderLayer
container		id of element
url				url of ajax remotescript
opacityFrom		opacity range from 0.0 to 1.0
opacityTo		opacity range from 0.0 to 1.0
opacityDuration	duraction in seconds, e.g. 0.5 (0.5 Sekunden)
*/
function ajaxUpdateWithLoaderLayer(container, url, opacityFrom, opacityTo, opacityDuration) {
	var opacityFrom = (opacityFrom == null) ? 0 : opacityFrom;
	var opacityTo = (opacityTo == null) ? 0.5 : opacityTo;
	var opacityDuration = (opacityDuration == null) ? 0.5 : opacityDuration;
	var boxLayer = $(container);
	$('loaderImage').setStyle({ display: 'block' });
	var boxBild = $('loaderImage');
	// alle Selectboxen ausblenden
	toggleSelectVisibility($(container),false);
	var offsetTop = 0;
	var offsetLeft = 0;
	var element = boxLayer;
	// offsetLeft und offsetTop berechnen (special für IE)
	/*while(element != null) {
		offsetLeft += element.offsetLeft ;
		offsetTop += element.offsetTop ;
		element = element.offsetParent ;
	}*/
	$('loaderLayer').setStyle({ display: 'block', top: offsetTop + 'px', left: offsetLeft + 'px', width: boxLayer.offsetWidth + 'px', height: boxLayer.offsetHeight + 'px' });
	$('loaderImage').setStyle({ top: (offsetTop+(boxLayer.offsetHeight-boxBild.offsetHeight)/2) + 'px', left: (offsetLeft+(boxLayer.offsetWidth-boxBild.offsetWidth)/2) + 'px' });
	// loaderLayer mit Fade einblenden
	new Effect.Opacity('loaderLayer', { from: opacityFrom, to: opacityTo, duration: opacityDuration });
	// loaderImage mit Fade einblenden
	new Effect.Opacity('loaderImage', { from: 0, to: 1, duration: opacityDuration });
	// Ajax Aufruf - nach Beendigung loaderLayer und loaderImage mit Fade ausblenden und alle Selectboxen wieder einblenden
	new Ajax.Updater(container, url, {
			onSuccess: function(transport) {
				// loaderLayer mit Fade ausblenden
				
				new Effect.Opacity('loaderLayer', { from: opacityTo, to: opacityFrom, duration: opacityDuration,	afterFinish: function(effect) {
							$('loaderLayer').setStyle({ display: 'none' });
							// alle Selectboxen einblenden
							toggleSelectVisibility($(container),true);
							adjustColGroups();
							// Bei Zimmerauswahl dahinscrollen
							//new Effect.ScrollTo('termineUnterbringung'); 
						}
					}
				);
				// loaderImage mit Fade ausblenden
				new Effect.Opacity('loaderImage', { from: 1, to: 0, duration: opacityDuration,	afterFinish: function(effect) {
							$('loaderImage').setStyle({ display: 'none' });
						}
					}
				);
			}
		}, {
			onFailure: function(transport) {
				alert('fehler');
			}
		}
	);
			
}

function adjustColGroups()
{
	var _width = 0;
	var infoelement;
	
	/*var agt = navigator.userAgent.toLowerCase();
	var ie = agt.indexOf("msie") != -1 ? 'true' : 'false';
		
	if(ie){	*/
	for(i=1; i<=8; i++)
	{
		infoelement = $('colinfo'+i);
		if(infoelement)
		{ 
			_width = $('colauswahl'+i).getWidth();
			infoelement.setStyle({width:_width});
		}
	}
	//}
}

// alle Selectboxen unterhalb des elements ausblenden/einblenden
function toggleSelectVisibility(element,handletagselect) {
	if(element.tagName == 'SELECT')
	{
		if(element.name == 'tag')
		{
			if(handletagselect == true)
				element.style.visibility = (element.style.visibility == 'hidden' && document.tu.tuTerminFilter.value != '{ts \'1900-01-01 00:00:00\'}') ? 'visible' : 'hidden';
             else
			 	element.style.visibility = document.tu.termin.style.visibility;
		}
	else
		element.style.visibility = (element.style.visibility == 'hidden') ? 'visible' : 'hidden';
	}
	if(element.childNodes && element.childNodes.length > 0) 
	{
		for(var n=0; n<element.childNodes.length; n++) 
		{
			toggleSelectVisibility(element.childNodes[n],handletagselect);
   		}
    }
}
/*
// alle Selectboxen unterhalb des elements ausblenden/einblenden
function toggleSelectVisibility(element,handletagselect) {
	if(element.tagName == 'SELECT')
	{
		element.style.visibility = (element.style.visibility == 'hidden') ? 'visible' : 'hidden';
	}

	if(element.childNodes && element.childNodes.length > 0) {
		for(var n=0; n<element.childNodes.length; n++) {
			toggleSelectVisibility(element.childNodes[n],handletagselect);
		}
	}
}
*/
function setTUTerminFilter() {
	termin = document.forms.tu.termin.value;
	document.tu.tuBlaetternAktiveSeite.value = 1;
	document.tu.tuTerminFilter.value = termin;
	document.tu.tuTagFilter.value = '0';
	callTUAjax();
}

function setTUAnreiseartFilter() {
    anreiseart = document.forms.tu.anreiseart.value;
    document.tu.tuBlaetternAktiveSeite.value = 1;
    document.tu.tuAnreiseartFilter.value = anreiseart;
    document.tu.tuTagFilter.value = '0';
    callTUAjax();
}

function setTUDauerFilter() {
	dauer = document.forms.tu.dauer.value;
	document.tu.tuBlaetternAktiveSeite.value = 1;
	document.tu.tuDauerFilter.value = dauer;
	callTUAjax();
}

function setTUTagFilter() {
	tage = document.forms.tu.tag.value;
	document.tu.tuBlaetternAktiveSeite.value = 1;
	document.tu.tuTagFilter.value = tage;
	callTUAjax();
}

function setTUAbflughafenFilter() {
	abflughafen = document.forms.tu.abflughafen.value;
	document.tu.tuBlaetternAktiveSeite.value = 1;
	document.tu.tuAbflughafenFilter.value = abflughafen;
	callTUAjax();
}

function setTUBlaetternSeite(aktiveSeite) {
	document.tu.tuBlaetternAktiveSeite.value = aktiveSeite;
	document.tu.tuGeblaettert.value = true;
	callTUAjax();
}

function setTUTerminAbflughafen(termin, abflughafen, abflughafenName, dauer, abPreis, anreiseart, anreiseartName ) {
	document.tu.tuTerminBuchung.value = termin;
	document.tu.tuAbflughafenBuchung.value = abflughafen;
	document.tu.tuAbflughafenBuchungName.value = abflughafenName;
	document.tu.tuAnreiseartBuchungName.value = anreiseartName;
	document.tu.tuAnreiseartBuchung.value = anreiseart;
	document.tu.tuDauerBuchung.value = dauer;
	document.tu.tuAbpreis.value = abPreis;
	callTUAjax();
}

function setTUSortierung(sortierung) {
	document.tu.tuBlaetternAktiveSeite.value = 1;
	document.tu.tuSortierung.value = sortierung;
	callTUAjax();
}

function setTUAnzahlErwachsene(anzahlErwachsene) {
	document.tu.tuAnzahlErwachsene.value = anzahlErwachsene;
	callTUAjax();
}

function setTUAnzahlKinder(anzahlKinder) {
	document.tu.tuAnzahlKinder.value = anzahlKinder;
	callTUAjax();
}

function setAlterKind(kindnr){
	var formular = document.forms['tu'];
	var alter = formular['alterKind_' + kindnr].value;
	var parameterString = 'tuKindNr=' + kindnr + '&tuKindAlter=' + alter;
	if(alter) {
		callTUAjax(parameterString);
	}
}

function setGeburtstagKind(kindnr) {
	var formular = document.forms['tu'];
	var tag = formular['kind' + kindnr + 'tag'].value;
	var monat = formular['kind' + kindnr + 'monat'].value;
	var jahr = formular['kind' + kindnr + 'jahr'].value;
	var parameterString = 'tuKindNr=' + kindnr + '&tuKindTag=' + tag + '&tuKindMonat=' + monat + '&tuKindJahr=' + jahr;
	if(tag && monat && jahr) {
		callTUAjax(parameterString);
	}
}

function updateJahr(kindnr){
	var formular = document.forms['tu'];
	var aTermin = document.tu.tuTerminBuchungFormatted.value.split('.');
	var tag = formular['kind' + kindnr + 'tag'].value;
	var monat = formular['kind' + kindnr + 'monat'].value;
	var oSelectJahr = formular['kind' + kindnr + 'jahr'];
	
	var alter = 14
		
	if(monat == aTermin[1])
	{ 
		if(tag >= aTermin[0])
		{
			for(a=1;a<=alter;a++){
				valueJahr = eval(aTermin[2] + eval(a-alter));
				oSelectJahr.options[a].value = valueJahr;
				alert(oSelectJahr.options[a].value);
			}
		}
		else
		{
		
		}
	}
	else if(monat < aTermin[1])
	{
	
	}
	else
	{
	
	}
	
}

function setTUIDInfx(idInfx, anzahlKabinen) {
	document.tu.tuIDInfx.value = idInfx;
	document.tu.tuAnzahlKabinen.value = anzahlKabinen;
	callTUAjax();
}

function callTUAjax(parameterString) {
	var parameterString = (parameterString == null) ? '' : '&' + parameterString;
	ajaxUpdateWithLoaderLayer('termineUnterbringung', '/web/skripte/template/termine_und_unterbringung.cfm' + 
		'?relativerLinkDetailseite=' + document.tu.relativerLinkDetailseite.value + 
		'&objCode=' + document.tu.objCode.value + 
		'&objId=' + document.tu.objId.value + 
		'&tuBlaetternAktiveSeite=' + document.tu.tuBlaetternAktiveSeite.value + 
		'&tuIDObjekt=' + document.tu.tuIDObjekt.value + 
		'&tuTerminSuche=' + document.tu.tuTerminSuche.value + 
		'&tuTerminFilter=' + document.tu.tuTerminFilter.value + 
		'&tuTerminBuchung=' + document.tu.tuTerminBuchung.value + 
		'&tuTagFilter=' + document.tu.tuTagFilter.value + 
		'&tuTagBuchung=' + document.tu.tuTagBuchung.value + 
		'&tuDauerFilter=' + document.tu.tuDauerFilter.value + 
		'&tuDauerBuchung=' + document.tu.tuDauerBuchung.value +
		'&tuAbflughafenFilter=' + document.tu.tuAbflughafenFilter.value + 
		'&tuAbflughafenBuchung=' + document.tu.tuAbflughafenBuchung.value + 
		'&tuSortierung=' + document.tu.tuSortierung.value + 
		'&tuAnzahlErwachsene=' + document.tu.tuAnzahlErwachsene.value + 
		'&tuAnzahlKinder=' + document.tu.tuAnzahlKinder.value + 
		'&tulGeburtstagKinder=' + document.tu.tulGeburtstagKinder.value + 
		'&tuIDInfx=' + document.tu.tuIDInfx.value + 
		'&tuAnzahlKabinen=' + document.tu.tuAnzahlKabinen.value + 
		'&tuIDAgentur=' + document.tu.tuIDAgentur.value + 
		'&tuGeblaettert=' + document.tu.tuGeblaettert.value +
		'&tuAbflughafenBuchungName=' + encodeURI(document.tu.tuAbflughafenBuchungName.value) +
		'&tuAbPreis=' + document.tu.tuAbpreis.value +
		'&tuAnreiseartBuchungName=' + document.tu.tuAnreiseartBuchungName.value +
		'&tuAnreiseartFilter=' + document.tu.tuAnreiseartFilter.value +
		'&tuAnreiseartBuchung=' + document.tu.tuAnreiseartBuchung.value +
		'&visibilityOfSelectTags=hidden' + parameterString);
}

/*
function showBuchungHideAuswahl() {
	$('termineUnterbringung').setStyle({ display: 'none' });
	$('contentlinks').setStyle({ display: 'none' });
	$('buchung').setStyle({ display: 'block' });
}
*/
function showAuswahlHideBuchung() {
	$('buchung').setStyle({ display: 'none' });
	$('termineUnterbringung').setStyle({ display: 'block' });
	document.tu.action = document.tu.backAction.value;
	document.tu.submit();
}

function resize_me(n)
{
d=0;
ifObj=document.getElementsByName(n)[0];
p=(document.all)?'scroll':'offset';
eval("ifObj.style.height=window.frames[n].document.getElementsByTagName('body')[0]."+p+"Height+"+d);
}
function Blaettern(startzeileAlt, startzeileNeu, endzeile) {
	document.getElementById('TermineAb'+startzeileAlt).style.display='none';
	document.getElementById('TermineAb'+startzeileNeu).style.display='block';
}

function ZusatzPopUp(val,id){
	   var show_window = window.open("",id, "resizable=Yes,scrollbars=yes,width=750,height=560,menubar=no,statusba=no");
	   if (show_window != null) {show_window.location.href=val;}
}
