// JavaScript Document
		function loadShows()
		{
			document.getElementById("shows").innerHTML = "";
			document.getElementById('messageZone').style.display = "block";
			var showdate = DWRUtil.getValue("showdate");
			var showtitle = DWRUtil.getValue("showtitle");
			var showenddate = DWRUtil.getValue("showenddate");
			var shownr = DWRUtil.getValue("shownr");
			DWREngine._execute(_cfscriptLocation, null, 'getShows', showdate, showtitle, showenddate, shownr, getResult);
		}
		
		function getResult(result)
		{
			document.getElementById('messageZone').style.display = "none";
			document.getElementById("shows").innerHTML = result;
			if(document.getElementById('showdate').value != "" || document.getElementById('shownr').value != "") {
				var showdate = DWRUtil.getValue("showdate");
				var showtitle = DWRUtil.getValue("showtitle");
				var showenddate = DWRUtil.getValue("showenddate");
				var shownr = DWRUtil.getValue("shownr");
				//alert(showdate + "-" + shownr + "-" + showtitle);
				DWREngine._execute(_cfscriptLocation, null, 'getAvailability', showdate, showtitle, showenddate, shownr, setAvailable);
			}
			
		}
		
		function setAvailable(result)
		{
			//alert("testing nevermind" + result.length);
			for(var i=0;i<result.length;i=i+3)
			{
				document.getElementById('buybutton'+result[i]).innerHTML = result[i+1];
				document.getElementById('ticketinfo'+result[i]).innerHTML = result[i+2];
				if(result[i+1].indexOf('SOLD OUT') != -1) showSoldOutInfo(result[i]);
				jsUpdatePriceDisplay(result[i]);
			}
		}
		
		function ajaxinit()
		{
			//DWRUtil.useLoadingMessage();
			createLoadingDiv();
			DWREngine._errorHandler =  errorHandler;
			if(document.getElementById('showdate')) loadShows();
		}
		
		function createLoadingDiv()
		{
			var messageZone = document.createElement('div');
			messageZone.setAttribute('id', 'messageZone');
			messageZone.style.position = "absolute";
			messageZone.style.zIndex = "1000";
			messageZone.style.top = "253px";
			messageZone.style.left = "235px";
			messageZone.style.width = "506px";
			messageZone.style.color = "white";
			/*messageZone.style.padding = "4px";*/
			messageZone.style.display = "none";
			messageZone.innerHTML = '<div class="title_box"><div class="title_box_content">Loading...</div></div>';
			document.body.appendChild(messageZone);
		}
		function selectDate(selected) 
		{
			document.getElementById('showdate').value = selected;
			document.getElementById('showtitle').value = "";
			document.getElementById('showenddate').value = "";
			document.getElementById('shownr').value = "";
			loadShows();
		}
		function selectDateAndShow(selected,show) 
		{
			document.getElementById('showdate').value = selected;
			document.getElementById('showtitle').value = show;
			loadShows();
		}
		function showTicketInfo(show) {
			document.getElementById('ticketinfo'+show).style.display = "block";
			window.scrollTo(0,findPosY(document.getElementById('ticketinfo'+show)));
		}
		function showSoldOutInfo(show) {
			var soldouttext = document.getElementById('soldout').innerHTML;
			document.getElementById('ticketinfo'+show).innerHTML = soldouttext;
			document.getElementById('ticketinfo'+show).style.display = "block";
			window.scrollTo(0,findPosY(document.getElementById('ticketinfo'+show)));
		}
		function selectTicket(show,showfood,seatsleft,button,timelimit,assemble) {
			document.getElementById('ticket'+show).value = button.value;
			document.getElementById('seatsleft'+show).value = seatsleft;		
			document.getElementById('timelimit'+show).value = timelimit;
			if(document.getElementById('assembleOptions'+show))
				{
				if(assemble)
					{
						document.getElementById('assembleOptions'+show).style.display = "block";
						//window.scrollTo(0,findPosY(document.getElementById('assembleOptions'+show)));
						window.scrollTo(0,findPosY(document.getElementById('ticketinfo'+show)));
					}
				else
					{
						document.getElementById('assembleOptions'+show).style.display = "none";
					}
			}
			
			if(showfood)
			{
				window.scrollTo(0,findPosY(document.getElementById('ticketinfo'+show)));			
				if(document.getElementById('foodOption_ticketinfo'+show).style.display == "none") 
				{
				var foodoptiontext = document.getElementById('foodoption').innerHTML;
				document.getElementById('foodOption_ticketinfo'+show).innerHTML = foodoptiontext;
				document.getElementById('foodOption_ticketinfo'+show).style.display = "block";
				}
			}
			else
			{
				document.getElementById('foodOption_ticketinfo'+show).innerHTML = "Food is included in package.";
			}
		}
		function jsValidate(show) {
			document.getElementById('error'+show).style.display = "none";
			var seatsselected = parseInt(document.getElementById('nrOfTickets'+show).value);
			var seatsleft = parseInt(document.getElementById('seatsleft'+show).value);
			var ticket = document.getElementById('ticket'+show).value;
			var timelimit = document.getElementById('timelimit'+show).value;
			if(ticket == "")
			{
				document.getElementById('error'+show).innerHTML = "Please select a ticket.";
				document.getElementById('error'+show).style.display = "block";
				return false;
			}
			if(timelimit == 1) {
				document.getElementById('error'+show).innerHTML = "Your request is within 2 days of the reservation date.<br>Please contact our Box Office directly on +31 (20) 423 0101 to complete your booking.";
				document.getElementById('error'+show).style.display = "block";
				return false;
			}			
			if(seatsleft < seatsselected) 
			{
				if(seatsleft == 1) 
				{
					document.getElementById('error'+show).innerHTML = "There is only " + seatsleft + " ticket left of this type.";
				}
				else
				{
					document.getElementById('error'+show).innerHTML = "There are only " + seatsleft + " tickets left of this type.";
				}
				document.getElementById('error'+show).style.display = "block";
				document.getElementById('nrOfTickets'+show).value = seatsleft;
				return false;				
			}
			document.getElementById('error'+show).innerHTML = "Please wait...";
			document.getElementById('error'+show).style.display = "block";
			
			return true;
		}
		function showPopup(popup) {
			var popupimg = document.getElementById("infoimage"+popup);
			var showdatediv = document.getElementById("showdate");
			var posshowdate = findPosY(showdatediv);
			var posy = findPosY(popupimg)-posshowdate-180;
			var popupdiv = document.getElementById("popup"+popup);
			/*var scrolly = typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement.scrollTop;
			popupdiv.style.top = scrolly+"px";*/
			popupdiv.style.top = posy+"px";
			popupdiv.style.display = "block";
			
		}		
		function showPopupNormal(popup) {
			var popupdiv = document.getElementById("popup"+popup);
			popupdiv.style.display = "block";
		}
		function hidePopup(popup) {
			document.getElementById("popup"+popup).style.display = "none";
		}
		function findPosY(obj)
		  {
			var curtop = 0;
			if(obj.offsetParent)
				while(1)
				{
				  curtop += obj.offsetTop;
				  if(!obj.offsetParent)
					break;
				  obj = obj.offsetParent;
				}
			else if(obj.y)
				curtop += obj.y;
			return curtop;
		  }

		function jsUpdateTicketPrice(show,price) {
			document.getElementById('ticketprice'+show).value = price;
			jsUpdatePriceDisplay(show);
		}
		function jsUpdateMenuPrice(show,price) {
			document.getElementById('menuprice'+show).value = price;
			jsUpdatePriceDisplay(show);
		}
		
		function jsUpdateDrinkPrice(show,price) {
			document.getElementById('drinkprice'+show).value = price;
			jsUpdatePriceDisplay(show);
		}

		function jsUpdatePriceDisplay(show) {
			if(document.getElementById('customprice'+show)) {
			var unityPrice = parseFloat(document.getElementById('ticketprice'+show).value) + parseFloat(document.getElementById('menuprice'+show).value) + parseFloat(document.getElementById('drinkprice'+show).value);
			document.getElementById('customprice'+show).innerHTML = "&euro; "+unityPrice.toFixed(2);
			document.getElementById('customtotal'+show).innerHTML = "&euro; "+unityPrice.toFixed(2);
			}
		}
		function jsPayment()
		{
			if(!jsValidateDetails()) return false;
			document.getElementById('payment_name').value = document.getElementById('txtFirstName').value + " " + document.getElementById('txtLastName').value
			document.getElementById('payment_mail').value = document.getElementById('txtEmail').value;
			document.getElementById('error').innerHTML = "Please wait...";
			document.getElementById('error').style.display = "block";
			saveBooking();
			return false;
		}
		function jsValidateDetails() {
			document.getElementById('error').style.display = "none";
			var firstname = document.getElementById('txtFirstName');
			var lastname = document.getElementById('txtLastName');
			var telephone = document.getElementById('telephone');
			var email = document.getElementById('txtEmail');
			var age = document.getElementById('age');
			var terms = document.getElementById('terms');
			if((firstname.value == "") || (lastname.value == "") || /*(telephone.value == "") || */(email.value == "") || (age.value == "")) { 
				document.getElementById('error').innerHTML = 'Please fill in all fields.';
				document.getElementById('error').style.display = "block";
				return false; 
			}
			if(!checkEmail(email.value)) {
				document.getElementById('error').innerHTML = "Please enter a valid e-mail address.";
				document.getElementById('error').style.display = "block";
				return false;
			}
			if(!terms.checked) {
				document.getElementById('error').innerHTML = "You have to agree to our terms & conditions to continue.";
				document.getElementById('error').style.display = "block";
				return false;
			}
			return true;
		}
		function checkEmail(email) {
			if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)){
				return true;
			}
			return false;
		}
		function saveBooking()
		{
			var orderid = DWRUtil.getValue("orderid");
			var showid = DWRUtil.getValue("showid");
			var nrtickets = DWRUtil.getValue("nrtickets");
			var ticketid = DWRUtil.getValue("ticketid");
			var foodid = DWRUtil.getValue("foodid");
			var drinkid = DWRUtil.getValue("drinkid");
			var firstname = DWRUtil.getValue("txtFirstName");
			var lastname = DWRUtil.getValue("txtLastName");
			var telephone = DWRUtil.getValue("telephone");
			var email = DWRUtil.getValue("txtEmail");
			var reservationtype = DWRUtil.getValue("reservation_type");
			var paymentmethod = DWRUtil.getValue("payment_method");
			document.getElementById('selectedlists').value = getMailingLists();
			var mailinglists = DWRUtil.getValue("selectedlists");
			var age = DWRUtil.getValue("age");
			var arrivaltime = DWRUtil.getValue("arrival_time");
			var custom = DWRUtil.getValue("custom");
			var gender = DWRUtil.getValue("GenderValue");
			//alert(mailinglists);
			var birthday_dd = DWRUtil.getValue("birthday_dd");
			var birthday_mm = DWRUtil.getValue("birthday_mm");
			var birthday_yy = DWRUtil.getValue("birthday_yy");
			
			DWREngine._execute(_cfscriptLocation, null, 'saveBooking', orderid,showid,nrtickets,ticketid,foodid,drinkid,firstname,lastname,telephone,email,reservationtype,paymentmethod,mailinglists,age,arrivaltime,custom,gender,birthday_dd,birthday_mm,birthday_yy,bookingSaved);
		}
		function bookingSaved(result)	
		{			
			if(result.indexOf('ERR000') == -1) {
				if(document.getElementById('payment_method').value == 3)
				{
					window.location.href = document.getElementById('accepturl').value;
				}
				else
				{
					document.getElementById('form1').submit();
				}
			}
			else {
				document.getElementById('error').innerHTML = "Your booking could not be saved, please try again.";
			}
		}
		function getMailingLists()
		{
			var lists = "";
			var i = 1;
			while(1)
			{
				if(document.getElementById('commlist'+i))
				{
					var checkbox = document.getElementById('commlist'+i);
					if(checkbox.checked) lists = lists + "," + checkbox.value;
					i = i + 1;
				}
				else 
				{
					return lists;
				}
			}
			return lists;
		}
		