// Zoek & Boek
function switchTab(id) {
  $$('.activetab')[0].className = 'tab';
  var criteria = $$('.criterium');
  criteria.each(function(criterium) { criterium.hide(); });
  $('criterium-verfijn').style.display = 'none';
  $('zoektab-' + id).className = 'activetab';
  $('criterium-' + id).style.display = 'block';
}

function refineSearch() {
  document.getElementById('form1v').antillen.value = document.getElementById('form1').antillen.value;
  document.getElementById('form1v').overigebestemmingen.value = document.getElementById('form1').overigebestemmingen.value;
  document.getElementById('criterium-1').style.display = 'none';
  document.getElementById('criterium-verfijn').style.display = 'block';
}

function doSubmit(thisForm) {
  var hiddenField = $(thisForm).getInputs('hidden','4211')[0];
  if (thisForm.antillen.value != "") {
    hiddenField.value = thisForm.antillen.value;
  } else {
    hiddenField.value = thisForm.overigebestemmingen.value;
  }
}

function switchblokTab(group) {
  for(i=1;i<=4;i++) {
    document.getElementById('bloktab-' + i).className = 'bloktab';
    document.getElementById('blokhomepage-' + i).style.display = 'none';
  }
  document.getElementById('bloktab-' + group).className = 'activebloktab';
  document.getElementById('blokhomepage-' + group).style.display = 'block';
}

function handleDependency(sourcefield) {
  // Just for one field right now
  var theForm = $(sourcefield.form);
  var checkboxes = theForm.select("[name=59545]");
  var labels = theForm.select(".59545_label");
  if ($(sourcefield).value == "1") {
    checkboxes.each(function(checkbox) { checkbox.disable(); });
    labels.each(function(label) { label.setOpacity(0.5); });
  } else {
    checkboxes.each(function(checkbox) { checkbox.enable(); });
    labels.each(function(label) { label.setOpacity(1.0); });
  }
}

function TipOn(area) {
  $(area).show();
}

function TipOut(area) {
  $(area).hide();
}

// Price calculation
function calculatePrice(thisForm) {
  Effect.Shake('kassaboncontainer');
  $('kassabon').innerHTML = "<br><b>Bezig met berekening...</b>";
  setDate('20414');
  setDate('20797');
  $(thisForm).request({ onSuccess: function(transport) { getPrice(transport); }});
}
function clearDate() {
  $('20414:d').clear();
  $('20414:M').clear();
  $('20414:y').clear();
  $('20797:d').clear();
  $('20797:M').clear();
  $('20797:y').clear();
}
function setDate(identifier) {
  var day = parseInt($(identifier + ':d').value);
  var month = parseInt($(identifier + ':M').value);
  var year = $(identifier + ':y').value;
  if (day > 0 && month > 0 && year != '') {
    $(identifier).value = year + month.toPaddedString(2) + day.toPaddedString(2);
  }
}
function getPrice(transport) {
  $('kassabon').hide();
  $('kassabon').innerHTML = transport.responseText; 
  Effect.BlindDown('kassabon');
}
function getFlightDate(identifier) {
  var rv;
  var day = $(identifier + ':d').value;
  var month = $(identifier + ':M').value;
  var year = $(identifier + ':y').value;
  if (year != "null" && month != "null" && day != "null") {
    var iDay = parseInt(day);
    var iMonth = parseInt(month);
    if (iDay < 10) { day = "0" + iDay; }
    if (iMonth < 10) { month = "0" + iMonth; }
    return year + month + day;
  } else {
  	return null;
  }  
}
function unAvailable(datum, airline) {
	var msg = "Op " + datum + " is er geen vlucht beschikbaar per " + airline + ".\n\n";
	msg += "Voor een prijsberekening dient u een vluchtdatum te selecteren.";
	msg += "Beschikbare vluchtdagen zijn aangeduid met een oranje achtergrondkleur.\n\n";
    msg += "Indien mogelijk op deze bestemming, kunt u ook de alternatieve vluchtdata bekijken met een andere luchtvaartmaatschappij.\n\n";
	alert(msg);
}
function newMonth(identifier,url) {
  var marker = $(identifier);
  new Ajax.Request(url, { 
  	onSuccess: function(transport) { 
      var html = transport.responseText;
      marker.replace(html);
      if (!window.XMLHttpRequest) {
      	if (CX.calendar.shim != null) {
          $(CX.calendar.shim).remove();
      	  CX.calendar.shim = CX.useShim(identifier);
      	}
      }
    }
  });
}

// Aanvragen nieuwsbrief
function checkNieuwsbriefForm(theForm) {
  var valid = checkRequired(theForm);
  if (!$('geslacht_m').checked && !$('geslacht_v').checked) {
    valid = false;
    markElement('geslacht', false);
  } else {
    markElement('geslacht', true);
  }
  var kadoGekozen = false;
  for (i=0;i < theForm.elements.length;i++) {
    var field = theForm.elements[i];
    if (field.name == "5396") {
      if (field.checked) { 
        kadoGekozen = true;
      }
    }
  }
  if (kadoGekozen || $('straat').value != '') {
    $('5076').value = 'PO';
    $('5196').value = 'true';
    var requiredFields = [$('straat'),$('huisnummer'),$('postcode'),$('woonplaats')];
    for (var i=0; i < requiredFields.length; ++i) {
      var field = requiredFields[i];
      if (field.value == "") {
        valid = false;
        markElement(field, false);    
      }
    }
  }
  if (!valid) {
    var msg = "Uw aanvraag is niet compleet. Vul a.u.b. het formulier aan";
    if (!kadoGekozen && $('straat').value != '') {
      msg += " en kies een sleutelhanger";
    };
    msg += ".";
    alert(msg);
  }
  return valid;
}

// Aanvragen brochure
function checkBrochureAanvraag(theForm) {
  var valid = true;
  valid = checkRequired(theForm);
  if (!$('geslacht_m').checked && !$('geslacht_v').checked) {
    valid = false;
    markElement('geslacht', false);
  } else {
    markElement('geslacht', true);
  }
  if ($('nieuwsbrief').checked == true && $('email').value == '') {
    valid = false;
    markElement('email', false);
  } else {
    markElement('email', true);
  }
  if (!valid) {
    alert("Uw aanvraag is niet compleet. Vul a.u.b. het formulier aan.");
  }
  return valid;
}

function markElement(element, valid) {
  if (valid) {
    $(element).style.border = "";
  } else {
    $(element).style.border = "1px solid red";
  }  
}

function checkRequired(theForm) {
  var valid = true;
  for (i=0;i < theForm.elements.length;i++) {
    var field = theForm.elements[i];
    if (field.getAttribute('required') != undefined) {
      if (field.value == "") {
        markElement(field, false);
        valid = false;
      } else {
        markElement(field, true);
      }
    }
  }
  if (!valid) {
    return false;
  } else {
    return true;
  }
}   

// Aanvragen offerte
function aanvraag() {
  var required = [$('voornaam'),$('achternaam'),$('email'),$('telefoon')];
  var valid = true;
  var msg = "";
  for (var i=0; i < required.length; ++i) {
    var field = required[i];
    if (field.value == "") {
      msg += "Veld '" + field.id + "' is niet ingevuld.\n";
      valid = false;
    }
  }
  if (valid) {
    if (!echeck($F('email'))) {
      msg += "Uw emailadres is niet correct ingevuld";
      $('email').focus();
      valid = false;
    }
  }
  if (valid) {
  	$('aanvraagFormulier').submit();
  } else {
  	alert(msg);
  }
 }

function echeck(str) {
  var at = "@";
  var dot = ".";
  var lat = str.indexOf(at);
  var lstr = str.length;
  var ldot = str.indexOf(dot);
  if (str.indexOf(at)==-1){
    return false;
  }
  if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
    return false;
  }
  if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){	
    return false;
  }
  if (str.indexOf(at,(lat+1))!=-1){
    return false;
  }
  if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
    return false;
  }
  if (str.indexOf(dot,(lat+2))==-1){
    return false;
  }		
  if (str.indexOf(" ")!=-1){
    return false;
  }
  return true;
}