
// JS-Datei für das Extended-Formular

// Angeben wie viele Zimmer gleich am Anfang angezeigt werden sollen
var roomsdisplay = 1;

// Felder angeben, die beim entfernen eines Zimmers leer gesetzt werden sollen
var fields2reset = new Array('roomcategory{loop}', 'adults{loop}', 'kids{loop}');

// Funktion zum hinzufügen eines Zimmers
function addroom()
{
	if (roomsdisplay >= 10)
	{
		return;
	}
	roomsdisplay += 1;
	document.getElementById('room' + roomsdisplay).style.display = '';
	if (roomsdisplay > 1)
	{
		document.getElementById('removeroomlink').style.display = '';
	}
	if (roomsdisplay > 9)
	{
		document.getElementById('addroomlink').style.display = 'none';
	}
	else
	{
		document.getElementById('addroomlink').style.display = '';
	}
}

// Funktion zum entfernen eines Zimmers
function removeroom()
{
	if (roomsdisplay <= 1)
	{
		return;
	}
	var obj = document.getElementById('room' + roomsdisplay);
	if (!obj)
	{
		return;
	}
	obj.style.display = 'none';
	for (var i = 0; i < fields2reset.length; i += 1)
	{
		var obj = document.getElementById(fields2reset[i].replace('{loop}', roomsdisplay));
		if (obj)
		{
			if (obj.value)
			{
				obj.value = '';
			}
			if (obj.options && obj.options[0])
			{
				obj.options[0].selected = true;
			}
		}
	}
	adjustprice(roomsdisplay);
	roomsdisplay -= 1;
	if (roomsdisplay <= 1)
	{
		var obj = document.getElementById('removeroomlink');
		if (obj)
		{
			obj.style.display = 'none';
		}
	}
	var obj = document.getElementById('addroomlink');
	if (obj)
	{
		obj.style.display = '';
	}
}

// Funktion zum berechnen der Anzahl ausgewählter Personen
function getroompersons(room)
{
	var adultsobj = document.getElementById('adults' + room);
	var kidsobj = document.getElementById('kids' + room);
	if (adultsobj && kidsobj)
	{
		var adultsvalue = 0;
		var kidsvalue = 0;
		for (var i = 0; i < adultsobj.options.length; i += 1)
		{
			if (adultsobj.options[i].selected)
			{
				adultsvalue = parseInt(adultsobj.options[i].text);
				break;
			}
		}
		for (var i = 0; i < kidsobj.options.length; i += 1)
		{
			if (kidsobj.options[i].selected)
			{
				kidsvalue = parseInt(kidsobj.options[i].text);
				break;
			}
		}
		return {adults: adultsvalue, kids: kidsvalue};
	}
	else
	{
		return {adults: 0, kids: 0};
	}
}

// Funktion zum setzen von Werten bei verschiedenen Feldern (select, checkbox)
function set_fieldvalue(objid, value)
{
	if (objid.indexOf(',') == -1)
	{
		var obj = document.getElementById(objid);
		if (obj)
		{
			if (obj.options)
			{
				// bei einem select
				for (var i = 0; i < obj.options.length; i += 1)
				{
					if (obj.options[i].value == value)
					{
						obj.options[i].selected = true;
						return true;
					}
				}
				return false;
			}
			else
			{
				// bei einer Checkbox
				if (obj.value == value)
				{
					obj.checked = true;
				}
				else
				{
					obj.checked = false;
				}
				return true;
			}
		}
	}
	else
	{
		// es handelt sich um eine Radiobox
		objid = objid.split(',');
		for (var i = 0; i < objid.length; i += 1)
		{
			var obj = document.getElementById(objid[i]);
			if (obj)
			{
				if (obj.value == value)
				{
					obj.checked = true;
					break;
				}
			}
		}
	}
}

function adjustprice(nr)
{
	var persons = getroompersons(nr);
	var albumobj = document.getElementById('roomcategory' + nr);
	if (!albumobj) return;
	for (var i = 0; i < albumobj.options.length; i += 1)
	{
		if (albumobj.options[i].selected)
		{
			var album = parseInt(albumobj.options[i].value);
			break;
		}
	}
	if (album == undefined) var album = parseInt(albumobj.options[0].value);
	var price = persons.adults*prices_cd[album]+persons.kids*prices_mc[album];
	var cdpreisobj = document.getElementById('cdpreis' + nr);
	var mcpreisobj = document.getElementById('mcpreis' + nr);
	var gesamtpreisobj = document.getElementById('gesamtpreis' + nr);
	if (!cdpreisobj || !mcpreisobj || !gesamtpreisobj) return;
	cdpreisobj.value = parseprice(prices_cd[album]);
	mcpreisobj.value = parseprice(prices_mc[album]);
	gesamtpreisobj.value = parseprice(price);
	adjusttotal();
}

function adjusttotal()
{
	var total = 0;
	for (var i = 1; i <= maxpersons; i += 1)
	{
		var gesamtpreisobj = document.getElementById('gesamtpreis' + i);
		if (gesamtpreisobj)
		{
			total += getfloatprice(gesamtpreisobj.value);
		}
	}
	var totalobj = document.getElementById('total');
	if (totalobj)
	{
		totalobj.value = parseprice(total);
	}
}

function parseprice(price)
{
	if (price === null) return 'N/A';
	price = Math.round(price, 2);
	price = String(price);
	price = price.split('.');
	if (typeof(price[1]) == 'undefined')
	{
		price[1] = '00';
	}
	else if(price[1].length == 1)
	{
		price[1] += '0';
	}
	return price.join(',');
}

function getfloatprice(price)
{
	price = price.replace(',', '.');
	price = parseFloat(price);
	return price;
}