// JavaScript Document

var restarievenform = '<div id="reservering-a-modo" title="">';
restarievenform += '<h1>Voorstelling</h1>';
restarievenform += '<p><em><span id="resdatumtijd">&nbsp;</span></em></p>';
restarievenform += '<p><strong><span id="resproductie">&nbsp;</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="210"><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 += '<div id="reserveringerrors"></div>';
restarievenform += '<p>&nbsp;</p>';
restarievenform += '</div>';
restarievenform += '<div id="reserveringresult-a-modo" title="">';
restarievenform += '</div>';
restarievenform += '<div id="resbevestiging-a-modo" title="">';
restarievenform += '<h1>Overzicht reservering</h1>';
restarievenform += '<table border="0" cellpadding="0" cellspacing="0">';
restarievenform += '<tr>';
restarievenform += '<td width="100" class="streepbottom"><p><strong>datum</strong></p></td>';
restarievenform += '<td width="60" class="streepbottom"><p><strong>aanvang</strong></p></td>';
restarievenform += '<td width="150" class="streepbottom"><p><strong>voorstelling</strong></p></td>';
restarievenform += '<td width="50" class="streepbottom"><p><strong>aantal</strong></p></td>';
restarievenform += '<td width="130" class="streepbottom"><p><strong>tarief</strong></p></td>';
restarievenform += '<td width="50" class="streepbottom"><p><strong>totaal</strong></p></td>';
restarievenform += '<td width="70" class="streepbottom">&nbsp;</td>';
restarievenform += '</tr>';
restarievenform += '</table>';
restarievenform += '<table border="0" cellpadding="0" cellspacing="0" id="resbevestigingoverzicht">';
restarievenform += '</table>';
restarievenform += '<p>&nbsp;</p>';
restarievenform += '<p><input type="checkbox" name="resbevestigingperemail" id="resbevestigingperemail" value="1" /> Bonheur mag mij email sturen over toekomstige voorstellingen (ca. 10x per jaar).</p>';
restarievenform += '<p><input type="checkbox" name="resbevestigingperpost" id="resbevestigingperpost" value="1" /> Bonheur mag mij post sturen over toekomstige voorstellingen (ca. 5x per jaar).</p>';
restarievenform += '<p>&nbsp;</p>';
restarievenform += '<table border="0" cellspacing="0" cellpadding="0">';
restarievenform += '<tr>';
restarievenform += '<td colspan="3" width="270"><p>Ik ben op de voorstelling geattendeerd via:</p></td>';
restarievenform += '<td colspan="2"><p>';
restarievenform += '<input type="text" maxlength="250" name="resbevestigingvia" id="resbevestigingvia" class="reserveringinput" style="width:253px;"/>';
restarievenform += '</p></td>';
restarievenform += '</tr>';
restarievenform += '<td colspan="5">&nbsp;</td>';
restarievenform += '</tr>';
restarievenform += '</table>';
restarievenform += '<h1>Uw gegevens</h1>';
restarievenform += '<table border="0" cellspacing="0" cellpadding="0">';
restarievenform += '<tr>';
restarievenform += '<td width="100"><p>Aanhef</p></td>';
restarievenform += '<td><p>';
restarievenform += '<input name="resbevestigingaanhef" id="resbevestigingaanhefdhr" type="radio" value="1" tabindex="1"/>Dhr.';
restarievenform += '<input name="resbevestigingaanhef" id="resbevestigingaanhefmw" type="radio" value="2" tabindex="2"/>Mw.</p></td>';
restarievenform += '<td width="20">&nbsp;</td>';
restarievenform += '<td width="100"><p>&nbsp;</p></td>';
restarievenform += '<td><p>&nbsp;</p></td>';
restarievenform += '</tr>';
restarievenform += '<tr>';
restarievenform += '<td width="100"><p>Voorletters</p></td>';
restarievenform += '<td><p>';
restarievenform += '<input type="text" maxlength="100" name="resbevestigingvoorletters" id="resbevestigingvoorletters" class="reserveringinput" tabindex="3"/>';
restarievenform += '</p></td>';
restarievenform += '<td width="20">&nbsp;</td>';
restarievenform += '<td width="100"><p>Bedrijfsnaam&nbsp;</p></td>';
restarievenform += '<td><p>';
restarievenform += '<input type="text" maxlength="100" name="resbevestigingbedrijfsnaam" id="resbevestigingbedrijfsnaam" class="reserveringinput" tabindex="11"/>';
restarievenform += '</p></td>';
restarievenform += '</tr>';
restarievenform += '<tr>';
restarievenform += '<td width="100"><p>Voornaam</p></td>';
restarievenform += '<td><p>';
restarievenform += '<input type="text" maxlength="100" name="resbevestigingvoornaam" id="resbevestigingvoornaam" class="reserveringinput" tabindex="4"/>';
restarievenform += '</p></td>';
restarievenform += '<td width="20">&nbsp;</td>';
restarievenform += '<td width="100"><p>Adres **</p></td>';
restarievenform += '<td><p>';
restarievenform += '<input type="text" maxlength="100" name="resbevestigingadres" id="resbevestigingadres" class="reserveringinput" tabindex="12"/>';
restarievenform += '</p></td>';
restarievenform += '</tr>';
restarievenform += '<tr>';
restarievenform += '<td width="100"><p>Tussenvoegsels&nbsp;</p></td>';
restarievenform += '<td><p>';
restarievenform += '<input type="text" maxlength="100" name="resbevestigingtussenvoegsels" id="resbevestigingtussenvoegsels" class="reserveringinput" tabindex="5"/>';
restarievenform += '</p></td>';
restarievenform += '<td width="20">&nbsp;</td>';
restarievenform += '<td width="100"><p>Postcode **</p></td>';
restarievenform += '<td><p>';
restarievenform += '<input type="text" maxlength="100" name="resbevestigingpostcode" id="resbevestigingpostcode" class="reserveringinput" tabindex="13"/>';
restarievenform += '</p></td>';
restarievenform += '</tr>';
restarievenform += '<tr>';
restarievenform += '<td width="100"><p>Achternaam */**</p></td>';
restarievenform += '<td><p>';
restarievenform += '<input type="text" maxlength="100" name="resbevestigingachternaam" id="resbevestigingachternaam" class="reserveringinput" tabindex="6"/>';
restarievenform += '</p></td>';
restarievenform += '<td width="20">&nbsp;</td>';
restarievenform += '<td width="100"><p>Plaats **</p></td>';
restarievenform += '<td><p>';
restarievenform += '<input type="text" maxlength="100" name="resbevestigingplaats" id="resbevestigingplaats" class="reserveringinput" tabindex="14"/>';
restarievenform += '</p></td>';
restarievenform += '</tr>';
restarievenform += '<tr>';
restarievenform += '<td width="100"><p>E-mail *</p></td>';
restarievenform += '<td><p>';
restarievenform += '<input type="text" maxlength="100" name="resbevestigingemail" id="resbevestigingemail" class="reserveringinput" tabindex="7"/>';
restarievenform += '</p></td>';
restarievenform += '<td width="20">&nbsp;</td>';
restarievenform += '<td width="100"><p>Land</p></td>';
restarievenform += '<td><p>';
restarievenform += '<input type="text" maxlength="100" name="resbevestigingland" id="resbevestigingland" class="reserveringinput" tabindex="15"/>';
restarievenform += '</p></td>';
restarievenform += '</tr>';
restarievenform += '<tr>';
restarievenform += '<td><p>Herhaal e-mail *</p>';
restarievenform += '</td>';
restarievenform += '<td><p>';
restarievenform += '<input type="text" maxlength="100" name="resbevestigingherhaalemail" id="resbevestigingherhaalemail" class="reserveringinput" tabindex="8"/>'; 
restarievenform += '</p>';
restarievenform += '</td>';
restarievenform += '<td>&nbsp;</td>';
restarievenform += '<td>&nbsp;</td>';
restarievenform += '<td>&nbsp;</td>';
restarievenform += '</tr>';
restarievenform += '<tr>';
restarievenform += '<td><p>Telefoon *</p></td>';
restarievenform += '<td><p>';
//restarievenform += '<input type="text" maxlength="100" name="resbevestigingtelnet" id="resbevestigingtelnet" class="reserveringinput" style="width:46px;" tabindex="9"/>';
restarievenform += '<input type="text" maxlength="100" name="resbevestigingtelabonnee" id="resbevestigingtelabonnee" class="reserveringinput" tabindex="10"/>';
restarievenform += '<br /><span class="uitleg">voorbeeld: 010-1234567</span>';
restarievenform += '</p></td>';
restarievenform += '<td>&nbsp;</td>';
restarievenform += '<td>&nbsp;</td>';
restarievenform += '<td>&nbsp;</td>';
restarievenform += '</tr>';
restarievenform += '<tr>';
restarievenform += '</table>';
restarievenform += '<p>&nbsp;</p>';
restarievenform += '<p>Velden met een * zijn verplicht. </p>';
restarievenform += '<p>Velden met een ** zijn verplicht als u per post op de hoogte gehouden wilt worden. </p>';
restarievenform += '</div>';

$(document).ready(
	function(){
		$("body").append(restarievenform);
	}
);

$("#reserveringbasket").ready(
	function(){
		getReserveringBasket();
	}
);

$(function(){
	// Dialog			
	$('#reservering-a-modo').dialog({
		autoOpen: false,
		width: 450,
		modal: true,
		resizable: false,
		title: "Reserveren",
		buttons: {
			"Annuleren": function() { 
				$(this).dialog("close");
			},
			"Reserveren": function() { 
				submitReservering(); 
			} 
		}
	});
	
	// Dialog Link
	$('.reserveringlink').click(function(event){
		$('#reservering-a-modo').dialog('open');
		currentVoorstelling = $(event.target).attr("name");
		getTarieven();
		return false;
	});
	
	// Dialog			
	$('#resbevestiging-a-modo').dialog({
		autoOpen: false,
		width: 630,
		height: 450,
		modal: true,
		resizable: false,
		title: "Bevestiging reservering",
		buttons: {
			"Annuleren": function() { 
				$(this).dialog("close"); 
			}, 
			"Vastleggen": function() { 
				submitReserveringForm();
			} 
		}
	});
	
	// 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;
			}
		}
	});
	
	// Dialog Link
	$('#resbevestiginglink').click(function(){
		$('#resbevestiging-a-modo').dialog('open');
		$("#resbevestigingvoorletters").val('');
		$("#resbevestigingvoornaam").val('');
		$("#resbevestigingtussenvoegsels").val('');
		$("#resbevestigingachternaam").val('');
		$("#resbevestigingemail").val('');
		$("#resbevestigingherhaalemail").val('');
//		$("#resbevestigingtelnet").val('');
		$("#resbevestigingtelabonnee").val('');
		$("#resbevestigingbedrijfsnaam").val('');
		$("#resbevestigingadres").val('');
		$("#resbevestigingpostcode").val('');
		$("#resbevestigingplaats").val('');
		$("#resbevestigingland").val('');
		$("#resbevestigingvia").val('');
		
		$("#resbevestigingtelabonnee").bind("keypress",function(e){
			if(e.which == 45 ||
			   (e.which>=48 && e.which<=57) ||
			   e.which == 8 ||
			   e.which == 0){
				return true;
			}else{
				return false;
			}
		});
		
		bevestigReservering();
		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());
		});
		
		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]";
			}
		});

		$.ajax(
			{	type: "POST",
				url: "reservering/resfill.php",
				cache: false,
				data: {	soort:"submitreservering",
						voorstelling:currentVoorstelling,
						tarieven:t,
						tijd:curTime.getTime()},
				dataType: "json",
				error: reserveringDataError,
				success: submitReserveringResult
			}
		);
		
	}catch(err){
		showReserveringErrors(err);
	}
	return false;
}

function submitReserveringResult(data,result){
	if(data.error != null){
		showReserveringErrors(data.error);
	}else{
		$("#reservering-a-modo").dialog("close");
		var t = "<p>De kaarten zijn aan uw reservering toegevoegd.</p>";
		t += "<p>Uw reservering wordt alleen doorgevoerd als u binnen dertig minuten uw reservering bevestigt.</p>";
		t += "<p>&nbsp;</p>";
		t += "<p>U kunt direct naar het bevestigingsscherm door op de button 'naar bevestigen' te klikken.</p>";
		t += "<p>&nbsp;</p>";
		t += "<p>U kunt ook terug naar de website om nog voor andere voorstellingen te reserveren en uw reservering later bevestigen.</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',{"Naar bevestigen":function(){$("#reserveringresult-a-modo").dialog('close');$("#resbevestiging-a-modo").dialog('open');bevestigReservering();},"Terug naar de website":function(){$(this).dialog("close");}});
		$('#reserveringresult-a-modo').dialog('open');
		getReserveringBasket();
	}
}

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

function bevestigReserveringResult(data,result){
	if(data.error != null){
		$("#resbevestiging-a-modo").dialog("close");
		showReserveringErrors(data.error);
	}else{
		$("#resbevestigingoverzicht").empty();
		if(data.reserveringen.length<=2){
			$("#resbevestiging-a-modo").dialog("close");
			showReserveringErrors("<p>&nbsp;</p><p>Er zijn geen reserveringen gevonden.</p>");
			return false;
			
		}else{
			for(var i=0;i<data.reserveringen.length;i++){
				$("#resbevestigingoverzicht").append(data.reserveringen[i]);
			}
			$(".reserveringverwijderen").bind("click",
				function(event){
					verwijderReservering($(this).attr("name"));
				}
			);
		}
	}
}

function checkReserveringEmail(e){
	var re = /^([a-z0-9\-_]|\.)+@([a-z0-9\-\_]|\.)+\.[a-z]{2,4}$/i;
	return e.match(re);
}
function submitReserveringForm(){
	// do checks
	var t = "";
	var aanhefdhr = jQuery.trim($("#resbevestigingaanhefdhr").val());
	var aanhefmw = jQuery.trim($("#resbevestigingaanhefmw").val());
	var voorletters = jQuery.trim($("#resbevestigingvoorletters").val());
	var voornaam = jQuery.trim($("#resbevestigingvoornaam").val());
	var tussenvoegsels = jQuery.trim($("#resbevestigingtussenvoegsels").val());
	var achternaam = jQuery.trim($("#resbevestigingachternaam").val());
	var email = jQuery.trim($("#resbevestigingemail").val());
	var herhaalemail = jQuery.trim($("#resbevestigingherhaalemail").val());
//	var telnet = jQuery.trim($("#resbevestigingtelnet").val());
	var telabonnee = jQuery.trim($("#resbevestigingtelabonnee").val());
	var bedrijfsnaam = jQuery.trim($("#resbevestigingbedrijfsnaam").val());
	var adres = jQuery.trim($("#resbevestigingadres").val());
	var postcode = jQuery.trim($("#resbevestigingpostcode").val());
	var plaats = jQuery.trim($("#resbevestigingplaats").val());
	var land = jQuery.trim($("#resbevestigingland").val());
	var via = jQuery.trim($("#resbevestigingvia").val());
	var peremail = 0;
	if($("#resbevestigingperemail").is(":checked")){
		peremail = 1;
	}
	var perpost = 0;
	if($("#resbevestigingperpost").is(":checked")){
		perpost = 1;
	}
	
	if(achternaam==''){
		t += "<p>- achternaam is niet ingevuld.</p>";
	}
	if(email==''){
		t += "<p>- email is niet ingevuld.</p>";
	}
	if(herhaalemail==''){
		t += "<p>- herhaal email is niet ingevuld.</p>";
	}
	if(!checkReserveringEmail(email)){
		t += "<p>- email bevat geen geldig emailadres.</p>";
	}
	if(!checkReserveringEmail(herhaalemail)){
		t += "<p>- herhaal email bevat geen geldig emailadres.</p>";
	}
	if(telabonnee==''){
		t += "<p>- telefoon is niet ingevuld.</p>";
	}
	if(email!=herhaalemail){
		t += "<p>- email en herhaal email komen niet overeen.</p>";
	}
	if(perpost == 1){
		if(adres==''){
			t += "<p>- adres is niet ingevuld.</p>";
		}
		if(postcode==''){
			t += "<p>- postcode is niet ingevuld.</p>";
		}
		if(plaats==''){
			t += "<p>- plaats is niet ingevuld.</p>";
		}
	}
	if(t != ''){
		t = "<p>De volgende fouten deden zich voor: </p>"+t;
		showReserveringErrors(t);
	}else{
		var curTime = new Date();
		$.ajax(
			{	type: "POST",
				url: "reservering/resfill.php",
				cache: false,
				data: {	soort:"submitreserveringform",
						aanhefdhr:aanhefdhr,
						aanhefmw:aanhefmw,
						voorletters:voorletters,
						voornaam:voornaam,
						tussenvoegsels:tussenvoegsels,
						achternaam:achternaam,
						email:email,
						telabonnee:telabonnee,
						bedrijfsnaam:bedrijfsnaam,
						adres:adres,
						postcode:postcode,
						plaats:plaats,
						land:land,
						via:via,
						peremail:peremail,
						perpost:perpost,
						tijd:curTime.getTime()},
				dataType: "json",
				error: reserveringDataError,
				success: submitReserveringFormResult
			}
		);
	}
}

function submitReserveringFormResult(data,result){
	$("#resbevestiging-a-modo").dialog("close");
	if(data.error != null){
		showReserveringErrors(data.error);
	}else{
		var t = "<p>Hartelijk dank voor uw reservering.</p>";
		t += "<p>&nbsp;</p>";
		t += "<p>Een bevestiging van de reservering is naar het opgegeven emailadres gestuurd.</p>";
		t += "<p>&nbsp;</p>";
		$("#reserveringresult-a-modo").empty();
		$("#reserveringresult-a-modo").append(t);
		$("#reserveringresult-a-modo").dialog('option', 'title', 'Reservering');
		$("#reserveringresult-a-modo").dialog('option', 'width', 400);
		$("#reserveringresult-a-modo").dialog('option', 'height', "auto");
		$("#reserveringresult-a-modo").dialog('option','buttons',{"Verder":function(){getReserveringBasket(); $(this).dialog("close");}});
		$('#reserveringresult-a-modo').dialog('open');
	}
}

function getTarieven(){
	var curTime = new Date();
	$.ajax(
			{	type: "POST",
				url: "reservering/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){
		$("#reservering-a-modo").dialog("close");
		showReserveringErrors(data.error);
	}else{
		$("#restarieven").empty();
		$("#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]);
		}
	}
}

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

function getBasketResult(data,result){
	var h = $("#reserveringbasket").height();
	
	$("#reserveringaantalkaarten").empty();
	$("#reserveringaantalkaarten").append(data.aantal);
	$("#reserveringtotaalbedrag").empty();
	$("#reserveringtotaalbedrag").append(data.bedrag);
	if(data.aantal == 0){
		$("#reserveringbasket").css({'visibility':'hidden','height':'0'});
		if(h>0){
			contentrightb -= h;
		}
	}else{
		$("#reserveringbasket").css({'visibility':'visible','height':'auto'});
		if(h == 0){
			contentrightb += $("#reserveringbasket").height();
		}
	}
	doPosistion(contentleft,contentrighta,contentrightb,contentrightc);
}

function verwijderReservering(r){
	var curTime = new Date();
	
	$.ajax(
		{	type: "POST",
			url: "reservering/resfill.php",
			cache: false,
			data: {	soort:"verwijderreservering",
					reservering:r,
					tijd:curTime.getTime()},
			dataType: "json",
			error: reserveringDataError,
			success: verwijderReserveringResult
		}
	);
}

function verwijderReserveringResult(data,result){
	bevestigReservering();
	getReserveringBasket();
}

function reserveringDataError(XMLHttpRequest, textStatus, errorThrown){
	$("#reservering-a-modo").dialog("close");
	$("#reserveringresult-a-modo").empty();
	$("#reserveringresult-a-modo").append("<p>&nbsp;</p><p>Er is een probleem opgetreden.</p>");
	$("#reserveringresult-a-modo").append("<p>&nbsp;</p><p>U kunt uw reservering sturen naar: kassa@bonheur.nl.</p>");
	$('#reserveringresult-a-modo').dialog('open');
}