// JavaScript Document

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function P7_Uberlink(cl,d){
	var i,ob,tA,h=document.location.href;
	if(document.getElementById){
	ob=(d)?document.getElementById(d):document;
	if(ob){
	tA=ob.getElementsByTagName('A');
	for(i=0;i<tA.length;i++){
	if(tA[i].href==h){
	tA[i].className=cl;
}}}}}

function fillField(veld, waarde) {
	if (veld == 'Label') { 
		var content = $('#'+veld).val();
		$('#'+veld).val(waarde+','+content);
	} else {
		$('#'+veld).val(waarde);
	}
	loadFilters();
	loadResults();
	loadSortMethods();
}

function fillMultipleFields(land, streek) {
	$('#Country').val(land);
	$('#Region').val(streek);
	
	loadFilters();
	loadResults();
	loadSortMethods();
}

function fillFieldAcco(veld, waarde) {
	if (veld == 'TransportType') {
		$('#'+veld).val(waarde);
		$('#DeparturePoint').val('');
	} else {
		$('#'+veld).val(waarde);
	}
	
	loadPriceFilters();
	if (veld != 'TransportType') {
		loadPriceInfo();
	}
	loadReceipt('');
}

function fillFieldAccoNoReload(veld, waarde) {
	$('#'+veld).val(waarde);
}

function changeOrderResults(waarde) {
	$('#sortResults').val(waarde);
	loadFilters();
	loadResults();
	loadSortMethods();
}

function fillFieldDatum(datum) {
	arr_datum = datum.split('-');
	
	$('#Month').val(arr_datum[2]+arr_datum[1]);
	$('#DepartureDate').val(arr_datum[2]+arr_datum[1]+arr_datum[0]);
	
	loadFilters();
	loadResults();
	loadSortMethods();
}

function fillFieldSnelzoeken(land, vertrekdatum, reisduur, filter, filterID) {
	if (land != '') {
		$('#Country').val(land);
	}
	if (vertrekdatum != '') {
		arr_datum = vertrekdatum.split('-');
	
		$('#Month').val(arr_datum[2]+arr_datum[1]);
		$('#DepartureDate').val(arr_datum[2]+arr_datum[1]+arr_datum[0]);
	}
	if (reisduur != '') {
		$('#Duration').val(reisduur);
	}
	
	if (filter != '' && filterID != '') {
		$('#'+filter).val(filterID);
	}
	
	loadFilters();
	loadResults();
	loadSortMethods();
}

function removeSearchFilter(veld) {
	if (veld == 'Country') {
		$('#Country').val('');
		$('#Region').val('');
		$('#Place').val('');
	} else if (veld == 'Region') {
		$('#Region').val('');
		$('#Place').val('');
	} else if (veld == 'Month') {
		$('#Month').val('');
		$('#DepartureDate').val('');
	} else {
		$('#'+veld).val('');
	}
	
	loadResults();
	loadFilters();
	loadSortMethods();
}

function loadAjaxText2(serviceURL, locationObject) {
	var postStr = $('#hiddenFields').serialize()
	$.ajax({ 
		type: "POST",
		data: postStr,
		url: serviceURL,
		success: function(msg){ 
			$(locationObject).html(msg);
			//locationObject.innerHTML = msg;
			//alert(msg);
			deleteLoadScreen();
			
			Cufon.replace('h1');
			Cufon.now();
		}
	});
}			

function loadFilters() {	
	addLoadScreen();	
	var obj_field = document.getElementById('searchFilters');
	
	if (obj_field) {
		var page_url = '/inc/ajax/loadFilters.php?1=1';	
		loadAjaxText2(page_url, obj_field);
	}
}

function loadSortMethods() {	
	addLoadScreen();
	var obj_field = document.getElementById('sortMethods');
	
	if (obj_field) {
		var page_url = '/inc/ajax/loadSortMethods.php?1=1';	
		loadAjaxText2(page_url, obj_field);
	}
}

function loadSnelZoeken() {	
	addLoadScreen();
	var obj_field = document.getElementById('snelZoeken');
	
	if (obj_field) {
		var page_url = '/inc/ajax/loadSnelZoeken.php?1=1';	
		loadAjaxText2(page_url, obj_field);
	}
}

function loadResults() {	
	addLoadScreen();
	var obj_field = document.getElementById('searchResults');
	
	if (obj_field) {
		var page_url = '/inc/ajax/loadResults.php?1=1';	
		loadAjaxText2(page_url, obj_field);
	}
}

function addPreviousFilters() {
	var obj_field = document.getElementById('filterLoader');
	
	if (obj_field) {
		$.ajax({ 
			type: "POST",
			url: '/inc/ajax/addPreviousFilters.php?1=1',
			success: function(msg){ 
				$(obj_field).html(msg);
				loadFilters();
				loadResults();
				loadSortMethods();
			}
		});
	}
}

function deletePreviousFilters() {
	addLoadScreen();
	var obj_field = document.getElementById('filterLoader');
	
	if (obj_field) {
		var page_url = '/inc/ajax/deletePreviousFilters.php?1=1';	
		loadAjaxText2(page_url, obj_field);
	}
}

function loadAccoInfo() {	
	addLoadScreen();
	var obj_field = document.getElementById('searchAccoInfo');
	
	if (obj_field) {
		var page_url = '/inc/ajax/loadAccoInfo.php?1=1';	
		loadAjaxText2(page_url, obj_field);
	}
}

function loadPriceFilters() {	
	addLoadScreen();
	var obj_field = document.getElementById('searchPriceFilters');
	var getStr = $('#birthDates').serialize();
	
	if (obj_field) {
		var page_url = '/inc/ajax/loadPriceFilters.php?1=1&'+getStr;	
		loadAjaxText2(page_url, obj_field);
	}
}

function loadPriceInfo() {	
	addLoadScreen();
	var obj_field = document.getElementById('searchPriceInfo');
	
	if (obj_field) {
		var page_url = '/inc/ajax/loadPriceInfo.php?1=1';	
		loadAjaxText2(page_url, obj_field);
	}
}

function loadMijnVakantie() {	
	addLoadScreen();
	var obj_field = document.getElementById('mijnVakantie');
	
	if (obj_field) {
		var page_url = '/inc/ajax/LoadMijnVakantie.php?1=1';	
		loadAjaxText2(page_url, obj_field);
	}
}

function searchOnName() {	
	var obj_field = document.getElementById('resultsSearchOnName');
	var searchString = document.getElementById('directZoeken').value;
	
	if (searchString.length >= 3) {
		document.getElementById('resultsSearchOnName').style.display = '';
		
		if (obj_field) {
			$.ajax({ 
				type: "POST",
				url: "/inc/ajax/searchOnName.php?Name="+searchString,
				success: function(msg){ 
					$(obj_field).html(msg);
				}
			});
		}
	}
}

function getCheapestTrip() {	
	addLoadScreen();
	var obj_field = document.getElementById('cheapest');
	
	if (obj_field) {
		var page_url = '/inc/ajax/loadLowestPrice.php?1=1';	
		loadAjaxText2(page_url, obj_field);
	}
}

function saveBirthDates() {	
	var getStr = $('#birthDates').serialize();
	var serviceURL = '/inc/ajax/bewaarGeboorteData.php?'+getStr;	
	
	$.ajax({ 
		type: "POST",
		url: serviceURL,
		success: function(msg){ 
			if (msg == true) {
				alert('De geboortedata zijn opgeslagen!');
				loadMijnVakantie();
				loadPriceFilters();
				loadPriceInfo();
				loadReceipt('');
			} else {
				alert('De geboortedata zijn niet opgeslagen!');
			}
		}
	});
}

function bewaarVakanties() {	
	var postStr = document.getElementById('bewaarDezeVakantie').value
	var serviceURL = '/inc/ajax/bewaarVakantie.php?data='+postStr;	
	
	$.ajax({ 
		type: "POST",
		url: serviceURL,
		success: function(msg){ 
			if (msg == true) {
				alert('De accommodatie is opgeslagen!');
				loadMijnVakantie();
			} else {
				alert('De accommodatie kon helaas niet worden opgeslagen!');
			}
		}
	});
}

function loadReceipt(values) {	
	if (values != '') {
		if (values.indexOf(',') > -1) {
			addLoadScreen();
			arr_values = values.split(',');
			
			Price = arr_values[0];
			AccoID = arr_values[1]; 
			DepartureDate = arr_values[2]; 
			Duration = arr_values[3];
			TransportType = arr_values[4];
			Depart = arr_values[5];
			Unit = arr_values[6];
			Board = arr_values[7];
			Offer = arr_values[8];
			
			var obj_field = document.getElementById('receiptHolder');
			var postStr = $('#birthDates').serialize();
			var postStr2 = $('#waverunnerInfo').serialize();
			
			if (document.getElementById('Children').value != 0) {
				var i=1;
				for (i=1; i<=parseInt(document.getElementById('Children').value); i++) {
					if (isDate(document.getElementById('birth_child_'+i).value) == false) {
						alert('De geboortedatum van kind '+i+' is leeg of geen geldige datum.\nWilt u zo vriendelijk zijn om deze datum in te vullen of te herstellen zodat wij de prijs voor u goed te kunnen bepalen.');
						deleteLoadScreen();
						return;
					}
				}
			}
			
			if (document.getElementById('Babies').value != 0) {
				var i=1;
				for (i=1; i<=parseInt(document.getElementById('Babies').value); i++) {
					if (isDate(document.getElementById('birth_baby_'+i).value) == false) {
						alert('De geboortedatum van baby '+i+' is leeg of geen geldige datum.\nWilt u zo vriendelijk zijn om deze datum in te vullen of te herstellen zodat wij de prijs voor u goed te kunnen bepalen.');
						deleteLoadScreen();
						return;
					}
				}
			}
			
			if (obj_field) {
				var page_url = '/inc/ajax/loadReceipt.php?Price='+Price+'&AccoID='+AccoID+'&DepartureDate='+DepartureDate+'&Duration='+Duration+'&TransportType='+TransportType+'&Depart='+Depart+'&Unit='+Unit+'&Board='+Board+'&Offer='+Offer+'&'+postStr+'&'+postStr2;	
				loadAjaxText2(page_url, obj_field);
			}
		} else {
			document.getElementById('receiptHolder').innerHTML = '<h1>Geselecteerd</h1><p>Maak eerst uw keuze uit het prijzenoverzicht.</p>';
			Cufon.replace('h1');
			Cufon.now();
		}
	} else {
		document.getElementById('receiptHolder').innerHTML = '<h1>Geselecteerd</h1><p>Maak eerst uw keuze uit het prijzenoverzicht.</p>';
		Cufon.replace('h1');
		Cufon.now();
	}
}

function showOptions(option) {
	$('.'+option).show('slow');
	$('#'+option+'_link').hide('fast');
	$('#'+option+'_link2').show('fast');
}

function hideOptions(option) {
	$('.'+option).hide('slow');
	$('#'+option+'_link2').hide('fast');
	$('#'+option+'_link').show('fast');
}

function showSitemap() {
	document.getElementById('sitemapHidden').style.display = '';
	document.getElementById('sitemapInActive').style.display = 'none';
	document.getElementById('sitemapActive').style.display = '';
}

function hideSitemap() {
	document.getElementById('sitemapHidden').style.display = 'none';
	document.getElementById('sitemapInActive').style.display = '';
	document.getElementById('sitemapActive').style.display = 'none';
}

function fillDatumField(datum) {
	document.getElementById('DepartureDate').value = datum;
}

function loadFromBreadCrumb(countryID, regionID, placeID) {
	document.getElementById('Country').value = countryID;
	document.getElementById('Region').value = regionID;
	document.getElementById('Place').value = placeID;

	loadResults();
	loadFilters();
	loadSortMethods();
}

function addLoadScreen() {
	document.getElementById('loadScreen').style.display = "";
	var fields = document.getElementById('fields_to_load').value;
	document.getElementById('fields_to_load').value = parseInt(fields) + 1;
	checkLoadScreen();
}

function deleteLoadScreen() {
	var fields = document.getElementById('fields_to_load').value;
	document.getElementById('fields_to_load').value = parseInt(fields) - 1;
	checkLoadScreen();
}

function checkLoadScreen() {
	var to_load = document.getElementById('fields_to_load').value;	
	if (parseInt(to_load) == 0) {
		closeLoadScreen();
	} else {
		openLoadScreen();
	}
}

function closeLoadScreen() {
	document.getElementById('loadScreen').style.display = "none";
	document.getElementById('p7bod').className = '';
}

function openLoadScreen() {	
	window.location.href='#';
	document.getElementById('loadScreen').style.display = "block";
	document.getElementById('p7bod').className = 'full';
}

function addBirthDates() {
	var obj_field = document.getElementById('datesHere');
	var postStr = $('#reisgezelschapForm').serialize();
	
	if (obj_field) {
		$.ajax({ 
			type: "POST",
			data: postStr,
			url: "/inc/ajax/AdjustReisgezelschap.php?1=1",
			success: function(msg){ 
				$(obj_field).html(msg);
			}
		});
	}
}

function saveBirthDatesHS() {	
	var getStr = $('#reisgezelschapForm').serialize();
	var serviceURL = '/inc/ajax/bewaarGeboorteData.php?'+getStr;	
	
	$.ajax({ 
		type: "POST",
		url: serviceURL,
		success: function(msg){ 
			if (msg == true) {
				alert('De geboortedata zijn opgeslagen!');
				addLoadScreen();
				location.reload(); 
			} else {
				alert('De geboortedata zijn niet opgeslagen!');
			}
		}
	});
}

function loadBirthDates() {
	var obj_field = document.getElementById('highslide-html-reisgezelschap');
	
	if (obj_field) {
		$.ajax({ 
			type: "POST",
			url: "/inc/ajax/reisgezelschap.php?1=1",
			success: function(msg){ 
				$(obj_field).html(msg);
			}
		});
	}
}

function submitFriendForm() {
	if (document.getElementById('naam_verzender').value != '' && 
		document.getElementById('emailadres_verzender').value != '' && 
		document.getElementById('naam_ontvanger').value != '' && 
		document.getElementById('emailadres_ontvanger').value != '') {
	
		addLoadScreen();
		var obj_field = document.getElementById('highslide-html-mailFriendForm');
		var getStr = $('#mailFriendForm').serialize();
	
		if (obj_field) {
			var page_url = '/inc/ajax/submitMailForm.php?'+getStr;	
			loadAjaxText2(page_url, obj_field);
		}
	} else {
		alert("U heeft niet alle velden ingevuld!\nVul alstublieft het formulier volledig in!");
	}
}

function submitFriendForm2() {
	if (document.getElementById('naam_verzender2').value != '' && 
		document.getElementById('emailadres_verzender2').value != '' && 
		document.getElementById('naam_ontvanger2').value != '' && 
		document.getElementById('emailadres_ontvanger2').value != '') {
	
		addLoadScreen();
		var obj_field = document.getElementById('highslide-html-mailFriendForm2');
		var getStr = $('#mailFriendForm2').serialize();
	
		if (obj_field) {
			var page_url = '/inc/ajax/submitMailForm2.php?'+getStr;	
			loadAjaxText2(page_url, obj_field);
		}
	} else {
		alert("U heeft niet alle velden ingevuld!\nVul alstublieft het formulier volledig in!");
	}
}

function changeReizigers(aantal) {
	if (aantal == 2) {
		document.getElementById('reiziger2').style.display = '';
		document.getElementById('reiziger3').style.display = 'none';
		document.getElementById('reiziger4').style.display = 'none';
		document.getElementById('reiziger5').style.display = 'none';
		document.getElementById('reiziger6').style.display = 'none';
		document.getElementById('reiziger7').style.display = 'none';
		document.getElementById('reiziger8').style.display = 'none';
		document.getElementById('reiziger9').style.display = 'none';
		document.getElementById('reiziger10').style.display = 'none';
	} else if (aantal == 3) {
		document.getElementById('reiziger2').style.display = '';
		document.getElementById('reiziger3').style.display = '';
		document.getElementById('reiziger4').style.display = 'none';
		document.getElementById('reiziger5').style.display = 'none';
		document.getElementById('reiziger6').style.display = 'none';
		document.getElementById('reiziger7').style.display = 'none';
		document.getElementById('reiziger8').style.display = 'none';
		document.getElementById('reiziger9').style.display = 'none';
		document.getElementById('reiziger10').style.display = 'none';
	} else if (aantal == 4) {
		document.getElementById('reiziger2').style.display = '';
		document.getElementById('reiziger3').style.display = '';
		document.getElementById('reiziger4').style.display = '';
		document.getElementById('reiziger5').style.display = 'none';
		document.getElementById('reiziger6').style.display = 'none';
		document.getElementById('reiziger7').style.display = 'none';
		document.getElementById('reiziger8').style.display = 'none';
		document.getElementById('reiziger9').style.display = 'none';
		document.getElementById('reiziger10').style.display = 'none';
	} else if (aantal == 5) {
		document.getElementById('reiziger2').style.display = '';
		document.getElementById('reiziger3').style.display = '';
		document.getElementById('reiziger4').style.display = '';
		document.getElementById('reiziger5').style.display = '';
		document.getElementById('reiziger6').style.display = 'none';
		document.getElementById('reiziger7').style.display = 'none';
		document.getElementById('reiziger8').style.display = 'none';
		document.getElementById('reiziger9').style.display = 'none';
		document.getElementById('reiziger10').style.display = 'none';
	} else if (aantal == 6) {
		document.getElementById('reiziger2').style.display = '';
		document.getElementById('reiziger3').style.display = '';
		document.getElementById('reiziger4').style.display = '';
		document.getElementById('reiziger5').style.display = '';
		document.getElementById('reiziger6').style.display = '';
		document.getElementById('reiziger7').style.display = 'none';
		document.getElementById('reiziger8').style.display = 'none';
		document.getElementById('reiziger9').style.display = 'none';
		document.getElementById('reiziger10').style.display = 'none';
	} else if (aantal == 7) {
		document.getElementById('reiziger2').style.display = '';
		document.getElementById('reiziger3').style.display = '';
		document.getElementById('reiziger4').style.display = '';
		document.getElementById('reiziger5').style.display = '';
		document.getElementById('reiziger6').style.display = '';
		document.getElementById('reiziger7').style.display = '';
		document.getElementById('reiziger8').style.display = 'none';
		document.getElementById('reiziger9').style.display = 'none';
		document.getElementById('reiziger10').style.display = 'none';
	} else if (aantal == 8) {
		document.getElementById('reiziger2').style.display = '';
		document.getElementById('reiziger3').style.display = '';
		document.getElementById('reiziger4').style.display = '';
		document.getElementById('reiziger5').style.display = '';
		document.getElementById('reiziger6').style.display = '';
		document.getElementById('reiziger7').style.display = '';
		document.getElementById('reiziger8').style.display = '';
		document.getElementById('reiziger9').style.display = 'none';
		document.getElementById('reiziger10').style.display = 'none';
	} else if (aantal == 9) {
		document.getElementById('reiziger2').style.display = '';
		document.getElementById('reiziger3').style.display = '';
		document.getElementById('reiziger4').style.display = '';
		document.getElementById('reiziger5').style.display = '';
		document.getElementById('reiziger6').style.display = '';
		document.getElementById('reiziger7').style.display = '';
		document.getElementById('reiziger8').style.display = '';
		document.getElementById('reiziger9').style.display = '';
		document.getElementById('reiziger10').style.display = 'none';
	} else if (aantal == 10) {
		document.getElementById('reiziger2').style.display = '';
		document.getElementById('reiziger3').style.display = '';
		document.getElementById('reiziger4').style.display = '';
		document.getElementById('reiziger5').style.display = '';
		document.getElementById('reiziger6').style.display = '';
		document.getElementById('reiziger7').style.display = '';
		document.getElementById('reiziger8').style.display = '';
		document.getElementById('reiziger9').style.display = '';
		document.getElementById('reiziger10').style.display = '';
	} else {
		document.getElementById('reiziger2').style.display = 'none';
		document.getElementById('reiziger3').style.display = 'none';
		document.getElementById('reiziger4').style.display = 'none';
		document.getElementById('reiziger5').style.display = 'none';
		document.getElementById('reiziger6').style.display = 'none';
		document.getElementById('reiziger7').style.display = 'none';
		document.getElementById('reiziger8').style.display = 'none';
		document.getElementById('reiziger9').style.display = 'none';
		document.getElementById('reiziger10').style.display = 'none';
	}
}

function isDate(txtDate) {
    var objDate,  // date object initialized from the txtDate string
        mSeconds, // txtDate in milliseconds
        day,      // day
        month,    // month
        year;     // year
    // date length should be 10 characters (no more no less)
    if (txtDate.length !== 10) {
        return false;
    }
    // third and sixth character should be '/'
    if (txtDate.substring(2, 3) !== '-' || txtDate.substring(5, 6) !== '-') {
        return false;
    }
    // extract month, day and year from the txtDate (expected format is mm/dd/yyyy)
    // subtraction will cast variables to integer implicitly (needed
    // for !== comparing)
    day = txtDate.substring(0, 2) - 0;
    month = txtDate.substring(3, 5) - 1; // because months in JS start from 0
    year = txtDate.substring(6, 10) - 0;
    // test year range
    if (year < 1000 || year > 3000) {
        return false;
    }
    // convert txtDate to milliseconds
    mSeconds = (new Date(year, month, day)).getTime();
    // initialize Date() object from calculated milliseconds
    objDate = new Date();
    objDate.setTime(mSeconds);
    // compare input date and parts from Date() object
    // if difference exists then date isn't valid
    if (objDate.getFullYear() !== year ||
        objDate.getMonth() !== month ||
        objDate.getDate() !== day) {
        return false;
    }
    // otherwise return true
    return true;
}

function fadeToNext(id) {
	if (id == 0) {
		$("#tweet10").slideUp("fast");
		$("#tweet1").slideDown("slow");
		$("#tweet2").slideDown("slow");
//		$("#tweet3").slideDown("slow");
		setTimeout("fadeToNext(1)", 5000);
	} else {
		$("#tweet"+id).slideUp("fast");
		
		if (id == 9) {
			setTimeout("fadeToNext(0)", 6000);
		} else {
			var idNew1 = parseInt(id)+1;
			if (id == 9) {
				var idNew2 = 0;
			} else {
//				var idNew2 = parseInt(id)+1;
				var idNew2 = parseInt(id)+2;
			}
//			if (id == 8) {
//				var idNew3 = 0;
//			} else {
//				var idNew3 = parseInt(id)+3;
//			}
			
			$("#tweet"+idNew1).animate({top: -125}, "slow");
//			$("#tweet"+idNew2).animate({top: -125}, "slow");
//			$("#tweet"+idNew3).slideDown("fast");
			$("#tweet"+idNew2).slideDown("fast");
	
			setTimeout("fadeToNext("+idNew1+")", 6000);
		}
	}
}

