// jsChangeTo: verandert de te tonen pagina
function jsChangeTo(id) {	
	var divLayout = $('layout');
	var flash = $('flash');
		
	var reqLog1 = new Request.JSON ({
		'url': ___HTTP_PATH + 'include/moo.inc.php',
		'data': {			
			'xaction':	'log_start'
		},
		'onComplete': function(res) {
			toggleWait();
			
			var reqChange = new Request.JSON ({
				'url': ___HTTP_PATH + 'include/moo.inc.php',
				'data': {			
					'xaction':			'change_layout_ext',
					'unset_allvars':	['nieuws_id', 'reis_id', 'schema'],
					'set_allvars':		{'page': id},
					'change_layout':	id
				},
				'onComplete': function(res) {				
					var new_layout = new Element('div', {
						html: res.layout
					});
					new_layout.replaces(divLayout);
		
					// geef de flash het juiste id
					flash.SetVariable('id', res.top_id);		
					
					// roep het juiste frame aan, zodat er actie wordt ondernomen op basis van de id
					flash.TCallFrame('/', 4);
										
					toggleWait();
					fixHeight();
										
					var reqLog2 = new Request.JSON ({
						'url': ___HTTP_PATH + 'include/moo.inc.php',
						'data': {			
							'xaction':	'log_einde'
						},
						'onComplete': function(res) {							
						}
					});
					reqLog2.send();																																			
				}
			});
			reqChange.send();																				
		}
	});
	reqLog1.send();													
}

// jsChangeSchema: verandert de te tonen pagina naar vaarschema met jaartoevoeging
function jsChangeSchema(id, schema) {	
	var divLayout = $('layout');
	var flash = $('flash');

	var reqLog1 = new Request.JSON ({
		'url': ___HTTP_PATH + 'include/moo.inc.php',
		'data': {			
			'xaction':	'log_start'
		},
		'onComplete': function(res) {
			toggleWait();
			
			var reqChange = new Request.JSON ({
				'url': ___HTTP_PATH + 'include/moo.inc.php',
				'data': {			
					'xaction':			'change_layout_ext',
					'unset_allvars':	['nieuws_id', 'reis_id', 'schema'],
					'set_allvars':		{'page': id, 'schema': schema},
					'change_layout':	id
				},
				'onComplete': function(res) {				
					var new_layout = new Element('div', {
						html: res.layout
					});
					new_layout.replaces(divLayout);
		
					// geef de flash het juiste id
					flash.SetVariable('id', res.top_id);		
					
					// roep het juiste frame aan, zodat er actie wordt ondernomen op basis van de id
					flash.TCallFrame('/', 4);
										
					toggleWait();
					fixHeight();
										
					var reqLog2 = new Request.JSON ({
						'url': ___HTTP_PATH + 'include/moo.inc.php',
						'data': {			
							'xaction':	'log_einde'
						},
						'onComplete': function(res) {							
						}
					});
					reqLog2.send();																																			
				}
			});
			reqChange.send();																				
		}
	});
	reqLog1.send();													
}

// jsChangeNews: wisselt naar een andere nieuwsbericht (variant op jsChangeTo)
function jsChangeNews(id) {
	var divLayout = $('layout');
	var flash = $('flash');

	var reqLog1 = new Request.JSON ({
		'url': ___HTTP_PATH + 'include/moo.inc.php',
		'data': {			
			'xaction':	'log_start'
		},
		'onComplete': function(res) {
			toggleWait();
			
			var reqChange = new Request.JSON ({
				'url': ___HTTP_PATH + 'include/moo.inc.php',
				'data': {			
					'xaction':			'change_layout_ext',
					'unset_allvars':	['reis_id', 'schema'],
					'set_allvars':		{'page': 'nieuws', 'nieuws_id': id},
					'change_layout':	'nieuws'
				},
				'onComplete': function(res) {				
					var new_layout = new Element('div', {
						html: res.layout
					});
					new_layout.replaces(divLayout);
		
					// geef de flash het juiste id
					flash.SetVariable('id', res.top_id);		
					
					// roep het juiste frame aan, zodat er actie wordt ondernomen op basis van de id
					flash.TCallFrame('/', 4);
										
					toggleWait();
					fixHeight();
										
					var reqLog2 = new Request.JSON ({
						'url': ___HTTP_PATH + 'include/moo.inc.php',
						'data': {			
							'xaction':	'log_einde'
						},
						'onComplete': function(res) {							
						}
					});
					reqLog2.send();																																			
				}
			});
			reqChange.send();																				
		}
	});
	reqLog1.send();													
}

// jsChangeReis: wisselt naar de reisinformatie (variant op jsChangeTo)
function jsChangeReis(id) {
	var divLayout = $('layout');
	var flash = $('flash');

	var reqLog1 = new Request.JSON ({
		'url': ___HTTP_PATH + 'include/moo.inc.php',
		'data': {			
			'xaction':	'log_start'
		},
		'onComplete': function(res) {
			toggleWait();
			
			var reqChange = new Request.JSON ({
				'url': ___HTTP_PATH + 'include/moo.inc.php',
				'data': {			
					'xaction':			'change_layout_ext',
					'unset_allvars':	['nieuws_id', 'schema'],
					'set_allvars':		{'page': 'reisbeschrijvingen', 'reis_id': id},
					'change_layout':	'reisbeschrijvingen'
				},
				'onComplete': function(res) {				
					var new_layout = new Element('div', {
						html: res.layout
					});
					new_layout.replaces(divLayout);
		
					// geef de flash het juiste id
					flash.SetVariable('id', res.top_id);		
					
					// roep het juiste frame aan, zodat er actie wordt ondernomen op basis van de id
					flash.TCallFrame('/', 4);
										
					toggleWait();
					fixHeight();
										
					var reqLog2 = new Request.JSON ({
						'url': ___HTTP_PATH + 'include/moo.inc.php',
						'data': {			
							'xaction':	'log_einde'
						},
						'onComplete': function(res) {							
						}
					});
					reqLog2.send();																																			
				}
			});
			reqChange.send();																				
		}
	});
	reqLog1.send();													
}

// jsChangeLang: verandert de weergave-taal. Er moet een nieuwe flash geladen worden, dus herlaad de pagina volledig
function jsChangeLang(lang) {
	var divLayout = $('layout');
	
	// pagina opnieuw laden, zodat de juiste flash wordt getoond
	doRedirect("index.php?lang="+lang);
}

// jsDoReservation: toont het reserveringsformulier voor de geselecteerde reis
function jsDoReservation(id) {
	var divLayout = $('layout');
	var flash = $('flash');

	var reqLog1 = new Request.JSON ({
		'url': ___HTTP_PATH + 'include/moo.inc.php',
		'data': {			
			'xaction':	'log_start'
		},
		'onComplete': function(res) {
			toggleWait();
			
			var reqChange = new Request.JSON ({
				'url': ___HTTP_PATH + 'include/moo.inc.php',
				'data': {			
					'xaction':			'change_layout_ext',
					'unset_allvars':	['nieuws_id', 'schema'],
					'set_allvars':		{'page': 'boekingen_reserveringen', 'reis_id': id},
					'change_layout':	'boekingen_reserveringen'
				},
				'onComplete': function(res) {				
					var new_layout = new Element('div', {
						html: res.layout
					});
					new_layout.replaces(divLayout);
		
					// geef de flash het juiste id
					flash.SetVariable('id', res.top_id);		
					
					// roep het juiste frame aan, zodat er actie wordt ondernomen op basis van de id
					flash.TCallFrame('/', 4);
										
					toggleWait();
					fixHeight();
										
					var reqLog2 = new Request.JSON ({
						'url': ___HTTP_PATH + 'include/moo.inc.php',
						'data': {			
							'xaction':	'log_einde'
						},
						'onComplete': function(res) {							
						}
					});
					reqLog2.send();																																			
				}
			});
			reqChange.send();																				
		}
	});
	reqLog1.send();													
}

// mooChangeLayout: update de pagina incl. terugkoppeling naar het Flash object
function mooChangeLayout(id) {	
	var divLayout = $('layout');
	var flash = $('flash');

	var reqChangeLayout = new Request.JSON ({
		'url': ___HTTP_PATH + 'include/moo.inc.php',
		'data': {			
			'xaction':	'change_layout',
			'id':			id
		},
		'onComplete': function(res) {						
			var new_layout = new Element('div', {
				html: res.layout
			});
			new_layout.replaces($('layout'));

			// geef de flash het juiste id
			flash.SetVariable('id', res.top_id);		
			
			// roep het juiste frame aan, zodat er actie wordt ondernomen op basis van de id
			flash.TCallFrame('/', 4);
						
			toggleWait();
			fixHeight();
		}
	});					
	reqChangeLayout.send();	
}

// doSubmit: valideer de ingevulde data van het reserveringsformulier en submit middels ajax
function doSubmit(form) {
	var divLayout = $('layout');
	var flash = $('flash');

	switch(form) {
		case 'frmReservering':
			var selReisID = $('selReisID');
			var txtAantalPersonen = $('txtAantalPersonen');
			var txtVoornaam = $('txtVoornaam');
			var txtAchternaam = $('txtAchternaam');
			var txtAdres = $('txtAdres');
			var txtAdresNr = $('txtAdresNr');
			var txtPostcode = $('txtPostcode');
			var txtPlaats = $('txtPlaats');
			var txtLand = $('txtLand');
			var txtTelefoon = $('txtTelefoon');
			var txtEmail = $('txtEmail');
			var chkAkkoord = $('chkAkkoord');
			
			// selReisID bestaat uit een value van ID-aantal plaatsen beschikbaar, opsplitsen dus
			var explode = selReisID.get('value').split("-");

			if (!jsValidateField("txtAantalPersonen", "num") || txtAantalPersonen.get('value').toInt() < 1 || txtAantalPersonen.get('value').toInt() > explode[1].toInt()) {
				// er wordt zowel gecontroleerd dat er een getal is ingevuld, dat deze groter is dan 0 en dat deze niet hoger is dan het aantal beschikbare plaatsen
				mooError('error_aantalpersonen', 'txtAantalPersonen');
			} else if (!jsValidateField("txtVoornaam", "text")) {
				mooError('error_voornaam', 'txtVoornaam');
			} else if (!jsValidateField("txtAchternaam", "text")) {
				mooError('error_achternaam', 'txtAchternaam');
			} else if (!jsValidateField("txtAdres", "text")) {
				mooError('error_adres', 'txtAdres');
			} else if (!jsValidateField("txtAdresNr", "text")) {
				mooError('error_adresnr', 'txtAdresNr');
			} else if (!jsValidateField("txtPostcode", "text")) {
				mooError('error_postcode', 'txtPostcode');
			} else if (!jsValidateField("txtPlaats", "text")) {
				mooError('error_plaats', 'txtPlaats');
			} else if (!jsValidateField("txtLand", "text")) {
				mooError('error_land', 'txtLand');
			} else if (!jsValidateField("txtTelefoon", "text")) {
				mooError('error_telefoon', 'txtTelefoon');
			} else if (!jsValidateField("txtEmail", "email")) {
				mooError('error_email', 'txtEmail');
			} else if (!chkAkkoord.get('checked')) {
				mooError('error_akkoord', 'chkAkkoord');
			} else {
				// alles is akkoord, opslaan
				var reqSubmit = new Request.JSON ({
					'url': ___HTTP_PATH + 'include/moo.inc.php',
					'data': {			
						'xaction':				'submit_reservering',
						'reis_id':				explode[0].toInt(),					
						'voornaam':				txtVoornaam.get('value'),
						'achternaam':			txtAchternaam.get('value'),
						'adres':					txtAdres.get('value'),
						'adres_nr':				txtAdresNr.get('value'),
						'postcode':				txtPostcode.get('value'),
						'plaats':				txtPlaats.get('value'),
						'land':					txtLand.get('value'),
						'telefoon':				txtTelefoon.get('value'),
						'email':					txtEmail.get('value'),
						'aantal_personen':	txtAantalPersonen.get('value')
					},
					'onRequest': function() {
						toggleWait();
					},
					'onComplete': function(res) {
						// reset speciale variabelen
						var reqUnset = new Request.JSON ({
							'url': ___HTTP_PATH + 'include/moo.inc.php',
							'data': {			
								'xaction':	'unset_allvar',
								'vars':		['nieuws_id', 'reis_id']
							},
							'onComplete': function(res) {						
								// set speciale variabelen
								var reqSet = new Request.JSON ({
									'url': ___HTTP_PATH + 'include/moo.inc.php',
									'data': {			
										'xaction':	'set_allvar',
										'var':		'page',
										'value':		'submit_boeking'
									},
									'onComplete': function(res) {
										// update de pagina
										mooChangeLayout('submit_boeking');
									}
								});
								reqSet.send();
							}
						});
						reqUnset.send();
					}
				});
				reqSubmit.send();													
			}
		break;
		default:
			form.submit();
		break;	
	}	
}

// mooError
function mooError(name, element) {	
	var divLayout = $('layout');
	var flash = $('flash');

	var reqError = new Request.JSON ({
		'url': ___HTTP_PATH + 'include/moo.inc.php',
		'data': {			
			'xaction':	'get_error',
			'name':		name,
			'element':	element
		},
		'onComplete': function(res) {						
			var translation = res.translation;
			var element = $(res.element);
	
			alert(translation);
			
			if (res.element) {
				element.select();
				element.focus();
			}	
		}
	});					
	reqError.send();	
}

function toggleUitleg() {
	var divUitleg = $('uitleg');
	
	if (divUitleg.getStyle('display') == 'none') {
		divUitleg.setStyle('display', 'block');
	} else {
		divUitleg.setStyle('display', 'none');
	}
}

function fixHeight() {
	var content = ($defined($('main_content'))) ? $('main_content') : $('home_content');
	var colframe = ($defined($('main_colframe'))) ? $('main_colframe') : $('home_colframe');
	
	if (window.getScrollSize().y <= window.getSize().y) {		
		content.setStyle('min-height', (window.getSize().y - 370) + 'px');
		colframe.setStyle('min-height', (window.getSize().y - 370) + 'px');
		
		if (Browser.Engine.trident4) {
			// IE6 is te stom om min-height te begrijpen, dus dan maar height
			content.setStyle('height', (window.getSize().y - 370) + 'px');
			colframe.setStyle('height', (window.getSize().y - 370) + 'px');			
		}
	} else {
		content.setStyle('min-height', '499px');
		colframe.setStyle('min-height', '499px');
		
		if (Browser.Engine.trident4) {
			// IE6 is te stom om min-height te begrijpen en houdt zich ook niet correct aan height, dus zelfde resultaat
			content.setStyle('height', '499px');
			colframe.setStyle('height', '499px');			
		}		
	}
}