

/*
 * Buchung
 */

var unterkuenfteId;
var initial;

initial=true;




/*--- events --- */


function loadBelegungsplan(unterkuenfteId2,zeitraum,individualpaketvariantenId){
	unterkuenfteId=unterkuenfteId2; //unterkunft global merken
	var url='unterkuenfteBuchungAjax.php?cmd=loadBelegungsplan';
	var datum=getDatumFromForm();
	var params={method:'get',onSuccess: belegungsplanLoaded,parameters: {
		unterkuenfteId:unterkuenfteId,
		zeitraum:zeitraum,
		individualpaketvariantenId:individualpaketvariantenId,
		datum:datum
	}};
	new Ajax.Request(url,params);				
}

function belegungsplanLoaded(transport){
	$('buchung_schedule').innerHTML=transport.responseText;
}

/*
function changeDate(unterkuenfteId2){

	var individualpaketvariantenId=getIndividualpaketvariantenIdFromForm();	
	var datum=getZeitraumFromForm();	
	loadBelegungsplan(unterkuenfteId2,"date",individualpaketvariantenId);
	loadPaketInfo();			

}
*/

/*
function changeNaechte(unterkuenfteId2){

	var individualpaketvariantenId=getIndividualpaketvariantenIdFromForm();	
	var datum=getZeitraumFromForm();	
	loadBelegungsplan(unterkuenfteId2,"date",individualpaketvariantenId);
	selectPaket();

}
*/

function changeBuchungForm(unterkuenfteId2){
	var anzahlNaechte='';
	var art='';
	var url='unterkuenfteBuchungAjax.php?cmd=changeBuchungForm';
	var individualpaketvariantenId=getIndividualpaketvariantenIdFromForm();	
	if (document.forms.buchung.formularfeld_art){
		art=document.forms.buchung.formularfeld_art.options[document.forms.buchung.formularfeld_art.selectedIndex].value;
	}
	var datum=getDatumFromForm();
	var anzahlPersonen=document.forms.buchung.formularfeld_anzahlPersonen.options[document.forms.buchung.formularfeld_anzahlPersonen.selectedIndex].value;		
	
	if (document.forms.buchung.formularfeld_anzahlNaechte!=undefined){
		anzahlNaechte=document.forms.buchung.formularfeld_anzahlNaechte.options[document.forms.buchung.formularfeld_anzahlNaechte.selectedIndex].value;
	}
	var params={
		method:'get',
		onSuccess: buchungFormChanged,
		parameters: {
			individualpaketvariantenId:individualpaketvariantenId,
			datum:datum,
			anzahlPersonen:anzahlPersonen,
			anzahlNaechte:anzahlNaechte,
			unterkuenfteId:unterkuenfteId2,
			art:art,
			zeitraum:"date"
		}
	};
	new Ajax.Request(url,params);		
}



function changePaket(unterkuenfteId2){
	var anzahlNaechte='';
	var art='';
	var datum=getDatumFromForm();
	var individualpaketeId=document.forms.buchung.formularfeld_individualpaketeId.options[document.forms.buchung.formularfeld_individualpaketeId.selectedIndex].value;
	var anzahlNaechte='';
	if (document.forms.buchung.formularfeld_anzahlNaechte!=undefined){
		anzahlNaechte=document.forms.buchung.formularfeld_anzahlNaechte.options[document.forms.buchung.formularfeld_anzahlNaechte.selectedIndex].value;
	}
	if (document.forms.buchung.formularfeld_art){
		art=document.forms.buchung.formularfeld_art.options[document.forms.buchung.formularfeld_art.selectedIndex].value;
	}
	var url='unterkuenfteBuchungAjax.php?cmd=changeBuchungForm';

	var params={method:'get',onSuccess: buchungFormChanged,
		parameters: {
		individualpaketeId:individualpaketeId,
		datum:datum,
		unterkuenfteId:unterkuenfteId2,
		art:art,
		zeitraum:"date",
		anzahlNaechte:anzahlNaechte
		}
	};
	new Ajax.Request(url,params);	
}


function buchungFormChanged(transport){	
	//var json = transport.responseText.evalJSON(true);
	//$('buchung_form').innerHTML=json.buchungForm;

	$('buchung_leistungsauswahl').innerHTML=transport.responseText;
}

/*
function selectPaket(){
	var options;
	options = $$('div.option');
	options.each( function(option){
		option.hide();
	});	
	var individualpaketeId=getIndividualpaketeIdFromForm();
	options = $$('div.individualpaket_'+individualpaketeId);
	options.each( function(option){
		option.show();		
	});	
		
	if (!initial){
		$('buchung_paketinfo').innerHTML="";
	}	

	var radios=$$("div.individualpaket_"+individualpaketeId+" input[type=radio][name='formularfeld_individualpaketvariantenId']");
	if (radios.length==1){
		radios[0].checked=true;
		if (!initial) loadPaketInfo();
	}
	initial=false;			
}
*/
/*
function loadPaketInfo(){
	var individualpaketvariantenId=getIndividualpaketvariantenIdFromForm();	
	var art=document.forms.buchung.formularfeld_art.options[document.forms.buchung.formularfeld_art.selectedIndex].value;
	var datum=getDatumFromForm();
	var anzahlPersonen=document.forms.buchung.formularfeld_anzahlPersonen.options[document.forms.buchung.formularfeld_anzahlPersonen.selectedIndex].value;		
	var url='unterkuenfteBuchungAjax.php?cmd=loadPaketInfo';
	var params={method:'get',onSuccess: paketInfoLoaded,
		parameters: {
			individualpaketvariantenId:individualpaketvariantenId,
			datum:datum,
			anzahlPersonen:anzahlPersonen,
			art:art
		}};
	new Ajax.Request(url,params);
	datum=getZeitraumFromForm();	
	loadBelegungsplan(unterkuenfteId,"date",individualpaketvariantenId);					
}


function paketInfoLoaded(transport){
	$('buchung_paketinfo').innerHTML=transport.responseText;	
}
*/

/*--- Daten aus dem Buchungs-Formular holen --- */

function getZeitraumFromForm(){
	var tag=document.forms.buchung.formularfeld_datum_tag.options[document.forms.buchung.formularfeld_datum_tag.selectedIndex].value;
	var jahrmonat=document.forms.buchung.formularfeld_datum_jahrmonat.options[document.forms.buchung.formularfeld_datum_jahrmonat.selectedIndex].value;
	var parts=jahrmonat.split('_');
	var jahr=parts[0];
	var monat=parts[1];	
	//var datum=jahr+"-"+monat+"-"+tag; 
	var datum=monat+"_"+jahr	
	return datum;			
}

function getDatumFromForm(){
	var tag=document.forms.buchung.formularfeld_datum_tag.options[document.forms.buchung.formularfeld_datum_tag.selectedIndex].value;
	var jahrmonat=document.forms.buchung.formularfeld_datum_jahrmonat.options[document.forms.buchung.formularfeld_datum_jahrmonat.selectedIndex].value;
	var parts=jahrmonat.split('_');
	var jahr=parts[0];
	var monat=parts[1];	 
	var datum=jahr+"-"+monat+"-"+tag;	
	return datum;			
}
function getIndividualpaketvariantenIdFromForm(){	
	return $RF('buchungsform', 'formularfeld_individualpaketvariantenId');

	//return document.forms.buchung.formularfeld_individualpaketeId.options[document.forms.buchung.formularfeld_individualpaketeId.selectedIndex].value;	

	/*
	var form = $('buchungsform');
	var variantenField = form['formularfeld_individualpaketvariantenId'];
	alert(variantenField);
	return 0;//variantenField.getValue();	
	*/
	//return document.forms.buchung.formularfeld_individualpaketvariantenId.options[document.forms.buchung.formularfeld_individualpaketvariantenId.selectedIndex].value;
}

function getIndividualpaketeIdFromForm(){
	return document.forms.buchung.formularfeld_individualpaketeId.options[document.forms.buchung.formularfeld_individualpaketeId.selectedIndex].value;
}


function getArtFromForm(){
	var art=document.forms.buchung.formularfeld_art.options[document.forms.buchung.formularfeld_art.selectedIndex].value;
	return art;
}

/**
 * Returns the value of the selected radio button in the radio group, null if
 * none are selected, and false if the button group doesn't exist
 *
 * @param {radio Object} or {radio id} el
 * OR
 * @param {form Object} or {form id} el
 * @param {radio group name} radioGroup
 */
function $RF(el, radioGroup) {
	if($(el).type && $(el).type.toLowerCase() == 'radio') {
		var radioGroup = $(el).name;
		var el = $(el).form;
	} else if ($(el).tagName.toLowerCase() != 'form') {
		return false;
	}
		 
	var checked = $(el).getInputs('radio', radioGroup).find(
		function(re) {return re.checked;}
	);
	return (checked) ? $F(checked) : null;
}

/*
function toggleZusatzangebot(id){
	var preis;	
	if (document.forms.form_zusatzangebote['zusatzangebot'+id].checked){
		preis=document.forms.form_zusatzangebote['zusatzangebot'+id+'_preis'].value;
		zusatzpreise[id]=parseFloat(preis);
		preis='EUR '+runden(parseFloat(preis));		
	} else {
		preis=document.forms.form_zusatzangebote['zusatzangebot'+id+'_preis'].value;
		zusatzpreise[id]=0;
		preis='';
	}
	$('zusatzangebot'+id+'_summe').innerHTML=preis;

	refreshZusatzangeboteGesamtpreis();
}

function setZusatzangebotAnzahl(id,anzahl){
	var preisString=document.forms.form_zusatzangebote['zusatzangebot'+id+'_preis'].value;
	var preis=parseFloat(preisString)*anzahl

	zusatzpreise[id]=preis;
	preisString='EUR '+runden(parseFloat(preis));	

	if (preis==0){
		$('zusatzangebot'+id+'_summe').innerHTML='';	
	} else {
		$('zusatzangebot'+id+'_summe').innerHTML=preisString;	
	}

	refreshZusatzangeboteGesamtpreis();
}
*/

function refreshPreise(formularName){
	if (!formularName) {
		formularName = 'form_zusatzangebote';
	}
	
	var preis,preisString,anzahl;
	var zusatzangeboteIdList=document.forms[formularName].zusatzangeboteIdList.value;
	var zusatzpreis;
	var zusatzangeboteIds=zusatzangeboteIdList.split(",");

	var grundpreis=parseFloat(document.forms[formularName]['grundpreis'].value);
	var preisZusatzangebote=0;

	for (var i=0;i<zusatzangeboteIds.length;i++){

		var id=zusatzangeboteIds[i];

		if (document.forms[formularName]['zusatzangebot'+id].type=='checkbox'){
			//checkbox
			if (document.forms[formularName]['zusatzangebot'+id].checked){
				preisString=document.forms[formularName]['zusatzangebot'+id+'_preis'].value;
				zusatzpreis=parseFloat(preisString);
				preisString='EUR '+runden(parseFloat(preisString));		
			} else {
				preis=document.forms[formularName]['zusatzangebot'+id+'_preis'].value;

				zusatzpreis=0;
				preisString='';
			}
			$('zusatzangebot'+id+'_summe').innerHTML=preisString;

		} else {


			//selectbox
			preisString=document.forms[formularName]['zusatzangebot'+id+'_preis'].value;
			anzahl=document.forms[formularName]['zusatzangebot'+id].options[document.forms[formularName]['zusatzangebot'+id].selectedIndex].value;

			preis=parseFloat(preisString)*anzahl;

			zusatzpreis=preis;
			preisString='EUR '+runden(parseFloat(preis));	

			if (preis==0){
				$('zusatzangebot'+id+'_summe').innerHTML='';	
			} else {
				$('zusatzangebot'+id+'_summe').innerHTML=preisString;
			}


		}
		preisZusatzangebote+=zusatzpreis;

	}



	var gesamtpreis=grundpreis+preisZusatzangebote;



	$('preisZusatzangebote').innerHTML='EUR '+runden(preisZusatzangebote);
	$('gesamtpreis').innerHTML='EUR '+runden(gesamtpreis);
}

function runden(x) {	
  	var k = (Math.round(x * 100) / 100).toString();
	k += (k.indexOf('.') == -1)? '.00' : '00';
  	var p = k.indexOf('.'), m = k.indexOf('-.');
  	var f = (p == 0 || m == 0)? '0,' : ',';
  	return k.substring(0, p) + f + k.substring(p+1, p+3);
}

function trackClick(ukId) {
	new Ajax.Request('trackUnterkuenfteHP.php?ukId=' + ukId);
}

