// JavaScript Document

var restarievenform = '<div id="reservering-a-modo" title="">';
restarievenform += '<h1>Voorstelling</h1>';
restarievenform += '<p><em><span id="resdatumtijd"> </span></em></p>';
restarievenform += '<p><strong><span id="resproductie"> </span></strong></p>';
restarievenform += '<p>&nbsp;</p>';
restarievenform += '<h1>Kaarten</h1>';
restarievenform += '<table border="0" cellspacing="0" cellpadding="0">';
restarievenform += '<tr>';
restarievenform += '<td width="100"><p><strong>aantal</strong></p></td>';
restarievenform += '<td width="250"><p><strong>soort</strong></p></td>';
restarievenform += '<td width="80"><p><strong>tarief</strong></p>      </td>';
restarievenform += '</tr>';
restarievenform += '</table>';
restarievenform += '<table border="0" cellspacing="0" cellpadding="0" id="restarieven"></table>';
restarievenform += '<p>&nbsp;</p>';
restarievenform += '<h1>Actiecode</h1>';
restarievenform += '<p>Heeft u een actiecode, vul dan hieronder uw actiecode in.</p>';
restarievenform += '<table border="0" cellspacing="0" cellpadding="0">';
restarievenform += '<tr><td>';
restarievenform += '<p>Actiecode:&nbsp</p>';
restarievenform += '</td><td>';
restarievenform += '<p><input type="text" name="actiecode" id="resactiecode" /><input type="submit" name="resactiecodeverzenden" id="resactiecode_btn" value="verzenden" /></p>';
restarievenform += '</td></tr>';
restarievenform += '<tr id="resactievrijveldregel"><td>';
restarievenform += '<p id="resactievrijveldtekst"></p>';
restarievenform += '</td><td>';
restarievenform += '<p><input type="text" name="vrijveld" id="resactievrijveld" /></p>';
restarievenform += '</td></tr>';
restarievenform += '</table>';
restarievenform += '<table border="0" cellspacing="0" cellpadding="0" id="resactietarieven"></table>';
restarievenform += '<p>&nbsp;</p>';
restarievenform += '<div id="reservering-a-modo-fout"></div>';
//restarievenform += '<p>&nbsp;</p>';
restarievenform += '</div>';
//restarievenform += '<div id="reserveringerrors">';
//restarievenform += '<h1>Let op</h1>';
//restarievenform += '<div id="resfoutmelding"></div>';
//restarievenform += '<p>&nbsp;</p>';
//restarievenform += '<p><input name="closefout_btn" type="submit" id="closefout_btn" value="ga verder" class="reserveerbtn"/></p>';
//restarievenform += '</div>';
restarievenform += '<div id="reserveringresult-a-modo" title="">';
restarievenform += '</div>';

$(document).ready(
	function(){
		$("body").append(restarievenform);
		
		$('#resactiecode_btn').click(function(){
			submitActiecode();
		});
		
		getReserveringBasket();
		
	}
);
	
$(function(){
	// Dialog			
	$('#reservering-a-modo').dialog({
		autoOpen: false,
		width: 450,
		modal: true,
		resizable: false,
		title: "Kaarten selecteren",
		buttons: {
			"Annuleren": function() { 
				$(this).dialog("close");
			},
			"Koop kaarten": function() { 
				submitReservering(); 
			} 
		}
	});

	// Dialog Link
	$('.reserveringlink').click(function(event){
		$('#reservering-a-modo').dialog('open');
		currentVoorstelling = $(event.target).attr("name");
		getTarieven();
		
		return false;
	});

/*
	$('.reserveringlink').click(function(event){
		alert("click");
//		$('#reservering-a-modo').dialog('open');
		currentVoorstelling = $(event.target).attr("name");
		getTarieven();
		return false;
	});
*/	
	// Dialog			
	$('#reserveringresult-a-modo').dialog({
		autoOpen: false,
		width: 300,
		height: 200,
		modal: true,
		resizable: false,
		title: "Fout",
		buttons: {
			"Ga verder": function() { 
				$(this).dialog("close"); 
				return false;
			}
		}
	});
		
});

var currentVoorstelling;

function showReserveringErrors(t){
	$("#reserveringresult-a-modo").empty();
	$("#reserveringresult-a-modo").append(t);
	$("#reserveringresult-a-modo").dialog('option', 'title', 'Fout');
	$("#reserveringresult-a-modo").dialog('option', 'width', 300);
	$("#reserveringresult-a-modo").dialog('option', 'height', "auto");
	$("#reserveringresult-a-modo").dialog('option','buttons',{"Ga verder":function(){$(this).dialog("close");}});
	$('#reserveringresult-a-modo').dialog('open');
	return false;
}

function submitReservering(){
	try{
		
		// zijn kaarten geslecteerd
		var i=0;
		$("#restarieven select").each(function(){
			i += parseInt($(this).val());
		});
		$("#resactietarieven select").each(function(){
			i += parseInt($(this).val());
		});
		
		if(i<1){
			throw("<p>Geef eerst het aantal kaarten op.<p>");
		}
		
		var t="";
		var curTime = new Date();
		
		$("#restarieven select").each(function(){
			if(parseInt($(this).val())>0){
				t += $(this).attr("name")+"-"+$(this).val()+"[n]";
			}
		});
		
		var p = "";
		$("#resactietarieven select").each(function(){
			if(parseInt($(this).val())>0){
				p += $(this).attr("name")+"-"+$(this).val()+"[n]";
			}
		});
		
		var a = $("#resactiecode").val();
		var v = $("#resactievrijveld").val();

		$.ajax(
			{	type: "POST",
				url: "res/resfill.php",
				cache: false,
				data: {	soort:"submitreservering",
						voorstelling:currentVoorstelling,
						tarieven:t,
						actietarieven:p,
						resactiecode:a,
						resactievrijveld:v,
						tijd:curTime.getTime()},
				dataType: "json",
				error: reserveringDataError,
				success: submitReserveringResult
			}
		);
		
	}catch(err){
		$("#reservering-a-modo-fout").empty();
		$("#reservering-a-modo-fout").append('<h1>Let op</h1>');
		$("#reservering-a-modo-fout").append(err);
		$("#reservering-a-modo-fout").append('<p>&nbsp;</p>');
	}
	return false;
}

function submitReserveringResult(data,result){
	if(data.error != null){
		showReserveringErrors(data.error,"restarieven",false);
	}else{
		$("#reservering-a-modo").dialog("close");
		var t = "<p>De kaarten zijn aan uw bestelling toegevoegd.</p>";
		t += "<p><strong>Uw bestelling moet binnen dertig minuten afgerond worden.</strong></p>";
		t += "<p>&nbsp;</p>";
		t += "<p>U kunt direct naar het bestelscherm door op de button 'afrekenen' te klikken.</p>";
		t += "<p>&nbsp;</p>";
		t += "<p>U kunt ook terug naar de website om nog voor andere voorstellingen kaarten te bestellen en uw reservering later af te rekenen.</p>";
		$("#reserveringresult-a-modo").empty();
		$("#reserveringresult-a-modo").append(t);
		$("#reserveringresult-a-modo").dialog('option', 'title', 'Reservering');
		$("#reserveringresult-a-modo").dialog('option', 'width', 500);
		$("#reserveringresult-a-modo").dialog('option', 'height', "auto");
		$("#reserveringresult-a-modo").dialog('option','buttons',{"Afrekenen":function(){bevestigReservering();$("#reserveringresult-a-modo").dialog('close');},"Terug naar de website":function(){$(this).dialog("close");}});
		$('#reserveringresult-a-modo').dialog('open');
		getReserveringBasket();
	}
}

function submitActiecode(){
	try{
		
		// is actiecode ingevoerd
		var t = $("#resactiecode").val();
		
		if(t == ""){
			throw("<p>Voer eerst een actiecode in.</p>");
		}
		
		var curTime = new Date();

		$.ajax(
			{	type: "POST",
				url: "res/resfill.php",
				cache: false,
				data: {	soort:"submitactiecode",
						voorstelling:currentVoorstelling,
						actiecode:t,
						tijd:curTime.getTime()},
				dataType: "json",
				error: reserveringDataError,
				success: submitActiecodeResult
			}
		);
		
	}catch(err){
		$("#reservering-a-modo-fout").empty();
		$("#reservering-a-modo-fout").append('<h1>Let op</h1>');
		$("#reservering-a-modo-fout").append(err);
		$("#reservering-a-modo-fout").append('<p>&nbsp;</p>');
	}
	return false;
}

function submitActiecodeResult(data,result){
	if(data.error != null){
		showReserveringErrors(data.error,"resactietarieven",false);
	}else{
		$("#resactietarieven").empty();
		for(var i=0;i<data.tarieven.length;i++){
			$("#resactietarieven").append(data.tarieven[i]);
		}
		if(data.vrijveld != ''){
			$("#resactievrijveldregel").show();
			$("#resactievrijveldtekst").empty();
			$("#resactievrijveldtekst").append(data.vrijveld);
		}else{
			$("#resactievrijveldregel").hide();
			$("#resactievrijveldtekst").empty();
		}
	}
}

function bevestigReservering(){
	window.location.href = "cart.php";
}

function getTarieven(){
	var curTime = new Date();
	$.ajax(
			{	type: "POST",
				url: "res/resfill.php",
				cache: false,
				data: {	soort:"gettarieven",
						voorstelling:currentVoorstelling,
						tijd:curTime.getTime()},
				dataType: "json",
				error: reserveringDataError,
				success: getTarievenResult
			}
		);
}

function getTarievenResult(data,result){
	if(data.error != null){
		showReserveringErrors(data.error,"restarieven",false);
	}else{
		$("#reservering-a-modo").show();
		$("#restarieven").empty();
		$("#resactietarieven").empty();
		$("#resactiecode").val('');
		$("#resactievrijveldregel").hide();
		$("#resactievrijveld").val('');
		$("#resproductie").text(data.voorstelling.productie);
		$("#resdatumtijd").text(data.voorstelling.datum+" - "+data.voorstelling.tijd);
		for(var i=0;i<data.tarieven.length;i++){
			$("#restarieven").append(data.tarieven[i]);
		}
		$("#reserveer_btn").bind("click",function(){
			submitReservering();
		});
	}
}

function reserveringDataError(XMLHttpRequest, textStatus, errorThrown){
	var t = "";
	t += "<p>&nbsp;</p><p>Er is een probleem opgetreden.</p>";
	t += "<p>&nbsp;</p><p>U kunt uw reservering sturen naar: info@hofpleinrotterdam.nl.</p>";
	showReserveringErrors(t,"",false);
}

function getReserveringBasket(){
	var curTime = new Date();
	$.ajax(
		{	type: "POST",
			url: "res/resfill.php",
			cache: false,
			data: {	soort:"getbasket",
					tijd:curTime.getTime()},
			dataType: "json",
			error: reserveringDataError,
			success: getBasketResult
		}
	);
}

function getBasketResult(data,result){
	
	$("#reserveringaantalkaarten").empty();
	$("#reserveringaantalkaarten").append(data.aantal);
	$("#reserveringtotaalbedrag").empty();
	$("#reserveringtotaalbedrag").append(data.bedrag);
	if(data.aantal == 0){
		$("#reserveringbasket").css({'visibility':'hidden','height':'0'});
	}else{
		$("#reserveringbasket").css({'visibility':'visible','height':'auto'});
	}
}

