var lastAvailable = 0;
var tour_category_id;
var constancy;
var gesamt_kosten = new Array(0.00, 0.00, 0.00, 0.00, 0.00, 0.00);
var preis_gesamt;
var linkTourId;

function addValue(myNumber, idx)
{
//	alert(myNumber+"addvalue");
	gesamt_kosten[idx] = myNumber;
}

function setTextToBox()
{
	var r = pAnzahl;
	if(r == "")
	{
		r = 1;
	}
	boxText = boxText.replace("%%x%%", r);
	showValueonHtml("floating_price_text", boxText);
	boxText = boxText.replace(r, "%%x%%");
}

function showValueonHtml(elementName, myString)
{
	document.getElementById(elementName).innerHTML = "";
	var myText = document.createTextNode(myString);
    var Ausgabebereich = document.getElementById(elementName);
    Ausgabebereich.appendChild(myText);
    Ausgabebereich = "";
}

function formatNumbers(myNumber)
{	
	myNumber = String(myNumber);
	if(myNumber.indexOf(".") < 0)
	{
		myNumber = myNumber+".00";
	}else if( (myNumber.length - (myNumber.indexOf(".")+1)) < 2){
		myNumber = myNumber+"0";
	}
	return myNumber;
}

function calcCompleteCosts(showelement, showit)
{
	var gesamt = 0.00;
	for(var  i = 0; i < gesamt_kosten.length; i++)
	{
		gesamt = gesamt + eval(gesamt_kosten[i]);
	}
	gesamt  = formatNumbers(gesamt);
	showValueonHtml(showelement, gesamt+" €");
	if(showit == 1)
	{
		showValueonHtml("floating_price", gesamt + "€");
		setTextToBox();
	}
	
}

function verifyRooms(room_id)
{
	if(document.forms["buchung1"].elements["room"][room_id].disabled == true)
	{
		document.forms["buchung1"].elements["room"][room_id].checked = false;
		document.forms["buchung1"].elements["btn_step_1"].disabled = true;
	}else{
		document.forms["buchung1"].elements["btn_step_1"].disabled = false;
	}
}

function catchRoom()
{
	for(var i = 0; i < document.forms["buchung1"].elements['room'].length; i++)
	{
		if(document.forms["buchung1"].elements['room'][i].checked == true)
		{
			var choosedRoom = i;
			break;
		}
	}
	return choosedRoom;
}

function verifyConstancies(tour_category_id)
{
	var choosedRoom = catchRoom();
	for(var i = 0; i < constancies.length; i++)
	{
		var tmp = listTourCategory[tour_category_id][constancies[i]][choosedRoom];
	
		if(tmp == undefined)
		{
			document.forms["buchung1"].elements["tour_constancy"][i].disabled = true;
			
			document.forms["buchung1"].elements["tour_constancy"][i].checked = false;
		}else{
			document.forms["buchung1"].elements["tour_constancy"][i].disabled = false;

		}
	}
}

function getId(elementName)
{

	for(var i = 0; i < document.forms["buchung1"].elements[elementName].length; i++)
	{
		if(document.forms["buchung1"].elements[elementName][i].checked == true)
		{
			var id = document.forms["buchung1"].elements[elementName][i].value;
			lastAvailable = i;
			break;
		}
	}
	return id;
}

function calcPrice()
{
	var choosedRoom = catchRoom();
	var price = listTourCategory[tour_category_id][constancy][choosedRoom];
	
	if(price != undefined)
	{		var noStudent = eval(document.forms["buchung1"].personen.value) * eval(noStudentCosts);
		if(choosedRoom == 1 && document.forms["buchung1"].personen.value <= 2)
		{
			price = eval(price); 
		}else if(choosedRoom == 1 && !(document.forms["buchung1"].personen.value%2))
		{
			price = (document.forms["buchung1"].personen.value/2)*eval(price); 
		}else if(choosedRoom == 1 && !(document.forms["buchung1"].personen.value%3))
		{
			price = (document.forms["buchung1"].personen.value/2)*eval(price);
		}else if(choosedRoom == 2 && document.forms["buchung1"].personen.value <= 3)
		{
			price = eval(price); 
		}else if(choosedRoom == 2 && document.forms["buchung1"].personen.value >= 6)
		{
			tmp = 0;
			for(i = 0; i < document.forms["buchung1"].personen.value; i+=3)
			{
				tmp++ ;
			}
			price = tmp*eval(price);
		}else if(choosedRoom == 2 && document.forms["buchung1"].personen.value <= 6 && document.forms["buchung1"].personen.value >= 3)
		{
			tmp = 0;
			for(i = 0; i <= document.forms["buchung1"].personen.value; i+=3)
			{
				tmp++ ;
			}
			price = tmp*eval(price);
		}else{
			price = eval(price) * eval(document.forms["buchung1"].personen.value);
		}
		price = formatNumbers(price);
		addValue(price, 3);
		calcCompleteCosts("tour_price",0);
		document.forms["buchung1"].elements["tour_id"].value = tourId[tour_category_id][constancy];
		document.forms["buchung1"].elements["btn_step_1"].disabled = false;
	}else{
		document.forms["buchung1"].elements["btn_step_1"].disabled = true;
	}
}

function showTourInfo(tour_category_id, constancy)
{
//	alert(tour_category_id + " "+constancy);
	var tid = tourId[tour_category_id][constancy];
	showValueonHtml("tourinfo", info[tid]);
	linkTourId = tid;
}

function openTourDetails()
{
	window.open("../angebote/tourinfodetails.php?tour_id="+linkTourId+"&action=showTour","details");
}

function getTourPrice(id, type)
{
	var extraTourElements = document.forms["buchung1"].elements['extra_tour_category_id'];
	if(extraTourElements.length == undefined)
	{
		extraTourElements.checked = false;
	}else{
		for(var i = 0; i < extraTourElements.length; i++)
		{
			extraTourElements[i].checked = false;
		}
	}
	
	switch(type)
	{
		case "constancy":
			
			tour_category_id = getId("tour_category_id");
			constancy = id;
		break;
		case "tourcategory":
			var tci = document.forms["buchung1"].elements["tour_constancy"];
			var choosed = false
			for(var i = 0; i < tci.length; i++)
			{
				if(tci[i].checked == true)
				{
					choosed = true;
				}
				
			}
			if(choosed == false)
			{
				tci[lastAvailable].checked = true;
			}
			constancy = getId("tour_constancy");
			tour_category_id = id;
		break;
	}
	showTourInfo(tour_category_id, constancy);
	verifyConstancies(tour_category_id);
	calcPrice();
	document.forms["buchung1"].elements["tourType"].value = 1;
	calcPersonRoom();
}

function changeAction(tourType, id)
{
	var timeElements = document.forms["buchung1"].elements['tour_constancy'];

	addValue(0.00,3);
	calcCompleteCosts("tour_price",0);
	for(var i = 0; i < timeElements.length; i++)
	{
		timeElements[i].checked = false;
		timeElements[i].disabled = true;
	}
	var tourElements = document.forms["buchung1"].elements['tour_category_id'];
	for(var i = 0; i < tourElements.length; i++)
	{
		tourElements[i].checked = false;
	}
	document.forms["buchung1"].elements["tourType"].value = tourType;
	document.forms["buchung1"].elements["tour_id"].value = "";
	showTourInfo(id, 7);
}

function setNames(fieldId, field)
{
	switch(field)
	{
		case "p":
			myString = document.forms["buchung1"].elements['pvorname['+fieldId+']'].value + " "+ document.forms["buchung1"].elements['pname['+fieldId+']'].value;
		break;
		default:
			myString = document.forms["buchung1"].elements['vorname'].value + " "+ document.forms["buchung1"].elements['name'].value;
		break;
	}
	
    showValueonHtml("p_"+fieldId, myString);
}


function calcCompletePrice(personen_gesamt, gesamtPreis, student_cost_person)
{
	var extraCost = 0;
	gesamtPreis = gesamtPreis.replace(",",".");
	if(document.forms["buchung1"].elements["student"].checked == false)
	{
		extraCost = noStudentCosts;
	}
	if(student_cost_person > 1)
	{
	
		for(var i = 1; i < student_cost_person; i++)
		{
			if(document.forms["buchung1"].elements["pstudent["+i+"]"].checked == false)
			{
				extraCost += noStudentCosts;
			}
		}
	}
	myString = (personen_gesamt * eval(gesamtPreis) + extraCost);
	//alert(myString);
	//myString = myString + (eval(rCosts) * pAnzahl);
	myString = formatNumbers(myString);
	addValue(myString, 0);
	showValueonHtml("gesamtpreis", myString + " €");
	calcCompleteCosts("gesamtpreis", 1);
}

function calcCarRent(tourconstancy, car_rent, personen_gesamt)
{
	var set = false;
	for(var i = 1; i < document.forms["buchung1"].elements["car_rent"].length; i++)
	{
		if(document.forms["buchung1"].elements["car_rent"][i].checked == true)
		{
			set = true;
		}
	}
	if((set == true || document.forms["buchung1"].elements["vorOrt"].checked == true) && car_rent != 0)
	{
		cost = 0;
		var carprice = eval(tourconstancy * eval(car_rent));
		addValue(carprice, 6);
		document.forms["buchung1"].elements["abholen"].disabled = true;
		document.forms["buchung1"].elements["bringen"].disabled = true;
		document.forms["buchung1"].elements["abholen"].checked = false;
		document.forms["buchung1"].elements["bringen"].checked = false;
		addValue(cost,5);
		document.forms["buchung1"].elements["flugnummer1"].disabled = true;
		document.forms["buchung1"].elements["flugnummer2"].disabled = true;
	}else{
		if(document.forms["buchung1"].elements["car_rent"][0].checked == true)
		{
			var carprice = eval(tourconstancy * eval(car_rent) * personen_gesamt);
		}else{
			var carprice = eval(tourconstancy * eval(car_rent));
		}
		addValue(carprice, 6);
		document.forms["buchung1"].elements["abholen"].disabled = false;
		document.forms["buchung1"].elements["bringen"].disabled = false;
		document.forms["buchung1"].elements["flugnummer1"].disabled = false;
		document.forms["buchung1"].elements["flugnummer2"].disabled = false;
	}
	
	calcCompleteCosts("gesamtpreis", 1);
	
}

function calcInsurence(personen, insurenceCost)
{
	var insurencePrice = 0.00;
	for(var a = 0; a < 4; a++)
	{
		for(var i = 0; i < personen;i++)
		{
			if(document.forms["buchung1"].elements["i"+a+"["+i+"]"].checked == true)
			{
				var z = eval(document.forms["buchung1"].elements["i"+a+"["+i+"]"].value);
				insurencePrice += z;
			}	
		}
	}
	insurencePrice = formatNumbers(insurencePrice, 2);
	addValue(insurencePrice, 2);
	calcCompleteCosts("gesamtpreis", 1);
}

function controlAgb()
{
	if(document.forms["buchung1"].elements["agb_control"].checked == true)
	{
		document.forms["buchung1"].submit();
	}else{
		alert(ferror[2]);
	}
}

function controlCatch()
{
	if(document.forms["buchung1"].elements["catch"].checked == true)
	{
		document.forms["buchung1"].submit();
	}else{
		alert(ferror[3]);
	}
}

function calcRoom(roomType)
{
	var personAnzahl = document.forms["buchung1"].elements["personen"].value;
	if(personAnzahl != "")
	{
		for(var i = 0; i < document.forms["buchung1"].elements["room"].length; i++)
		{
			if(rooms[i][personAnzahl] == 1 || rooms[i][(personAnzahl/2)] == 1)
			{
				document.forms["buchung1"].elements["room"][i].disabled = false;
			}else{
				document.forms["buchung1"].elements["room"][i].disabled = true;
			}
		}
		if(personAnzahl >= 6)
		{
			document.forms["buchung1"].elements["room"][1].disabled = true;
			document.forms["buchung1"].elements["room"][2].disabled = false;
		}
	}else{
		personAnzahl = 1;
		document.forms["buchung1"].elements["personen"].value = personAnzahl;
	}
	verifyRooms(roomType);
	addValue(0.00, 4);
	calcCompleteCosts("tour_price", 0);
}

function calcPersonRoom()
{
	var personAnzahl = document.forms["buchung1"].elements["personen"].value;
	if(personAnzahl < 5)
	{
		i = catchRoom();
		
		calcRoom(i);
		calcPrice();
	}else{
		document.forms["buchung1"].elements["tourType"].value = 3;
	}
}

function catchpoint()
{
	if(document.forms["buchung1"].elements["vorOrt"].checked == true || document.forms["buchung1"].elements["car_rent"].checked == true)
	{
		document.forms["buchung1"].elements["abholen"].disabled = true;
		document.forms["buchung1"].elements["bringen"].disabled = true;
		document.forms["buchung1"].elements["flugnummer1"].disabled = true;
		document.forms["buchung1"].elements["flugnummer2"].disabled = true;
		document.forms["buchung1"].elements["abholen"].checked = false;
		document.forms["buchung1"].elements["bringen"].checked = false;
		addValue(0,5);
		calcCompleteCosts("gesamtpreis",1);
	}else{
		document.forms["buchung1"].elements["abholen"].disabled = false;
		document.forms["buchung1"].elements["bringen"].disabled = false;
		document.forms["buchung1"].elements["flugnummer1"].disabled = false;
		document.forms["buchung1"].elements["flugnummer2"].disabled = false;
	}
}

function addGetCosts(getCosts, personen)
{
	var cost = 0;
	if(document.forms["buchung1"].elements["abholen"].checked == true && document.forms["buchung1"].elements["abholen"].disabled == false)
	{
		cost = (eval(getCosts)*personen)+cost;
	}
	if(document.forms["buchung1"].elements["bringen"].checked == true && document.forms["buchung1"].elements["bringen"].disabled == false)
	{
		cost = (eval(getCosts)*personen)+cost;
	}
	addValue(formatNumbers(cost),5);
	calcCompleteCosts("gesamtpreis",1);
}

