function preSelect(fromCountry, fromCity, toCountry, toCity) {
        $('#bookingmask_abfahrtLand').val(fromCountry);
        $('#bookingmask_ankunftLand').val(toCountry);
        checkCountrySelects(fromCity, toCity);
}

function getTheTickets(orderGuid, sitelang, sellerguid) {
  $.ajax({
    type: "GET",
    url: "fileadmin/booking/php/setOrderPayed.php",
    data: "orderGuid=" + orderGuid + "&sitelang=" + sitelang + "&sellerguid=" + sellerguid,
    success: function(msg){
      if(msg == 'OK') {
        $('#ticketWait').slideUp('slow', function(){
        //$('#ticketDownload').slideDown('slow');
        });
      }
    }
  });
}


function checkSearchMask() {
  var message ='';
  var abfahrt = $('#bookingmask_datumHinfahrt').val();
  var abfahrtTag = abfahrt.substring(0,2);
  var abfahrtMonat = abfahrt.substring(3,5);
  var abfahrtJahr = abfahrt.substring(6,10);
  var jetzt = new Date();
  var abfahrtDate = new Date(abfahrtJahr, abfahrtMonat-1, abfahrtTag, jetzt.getHours() + 1, jetzt.getMinutes() ,jetzt.getSeconds());
  var jetzt = new Date();
  var limit = new Date();
  limit.setDate(limit.getDate() + 3);
  if (abfahrtDate < limit) {
      message = message.concat('Please choose a valid date!\n');
      var error = true;
  }
  // Abfahrtsland und Zielland gleich
  if ($('#bookingmask_abfahrtLand').val() != 'x' && $('#bookingmask_abfahrtLand').val() == $('#bookingmask_ankunftLand').val()) {
      message = message.concat('Please choose two differentcountries!\n');
      var error = true;
  }
  // Keine gültigen Verbindungen
  if ($('#bookingmask_abfahrtStadt').length == 0) {
      message = message.concat('Please choose a valid connection!\n');
      var error = true;
  }
  // Abfahrtsland
  if ($('#bookingmask_abfahrtLand').val() == 'x') {
      message = message.concat('Please choose departure country!\n');
      var error = true;
  }
  // Zielland
  if ($('#bookingmask_ankunftLand').val() == 'x') {
      message = message.concat('Please choose destination country!\n');
      var error = true;
  }
  // Abfahrtsstadt
  if ($('#bookingmask_abfahrtStadt').val() == 'x') {
      message = message.concat('Please choose departure city!\n');
      var error = true;
  }
  // Zielstadt
  if ($('#bookingmask_ankunftStadt').val() == 'x') {
      message = message.concat('Please choose destination city!\n');
      var error = true;
  }
  // Abfahrt
  if ($('#bookingmask_datumHinfahrt').val() == '') {
      message = message.concat('Please choose date of departure!\n');
      var error = true;
  }

  if (error != true) {
    showOverlay();
    document.formBuchungsmaske.submit();
  }
  else {
    alert(message);
  }
}

function step2() {
  if ($('input[name=hinfahrtID]:checked').val()) {
    var error = false;
  }
  else {
    var error = true;
  }
  var retval = $('#rueckfahrtID_2').size();
  if (!!retval == true)  {
    if ($('input[name=rueckfahrtID]:checked').val()) {
      var error = false;
    }
    else {
      var error = true;
    }
  }
  if (error == true) {
    alert('Please choose your connections!');
  }
  else {
    showOverlay();
    document.theForm.submit();
  }
}

function step3() {
  var message ='';
  var messageChild ='';
  var onlyChilds = true;
//  if ($('.priceRow').length == 1) {
//      if($('#passenger_discount_1').val() == '23d5f2d2-0bc8-42b0-a83d-6e54da47db9e' || $('#passenger_discount_1').val() == '5236c366-cbf2-4bf0-8abf-419d1f4e31f5') {
//        message = message.concat('Children under the age of 16 are not permitted to travel unless accompanied by an adult of at least 18 years of age!\n');
//        var error = true;
//      }
//  }
  for (var i = 1; i <= $('.priceRow').length; i++) {
    if($('#passenger_discount_' + i).val() != '23d5f2d2-0bc8-42b0-a83d-6e54da47db9e' && $('#passenger_discount_' + i).val() != '5236c366-cbf2-4bf0-8abf-419d1f4e31f5') {
        var onlyChilds = false;
    }
    if (onlyChilds == true) {
        messageChild = 'Children under the age of 16 are not permitted to travel unless accompanied by an adult of at least 18 years of age!\n';
        var error = true;
    }
    if ($('#passenger_name_' + i).val() == '') {
      message = message.concat('Please enter name for passenger ' + i + '!\n');
      var error = true;
    }
    if ($('#passenger_firstname_' + i).val() == '') {
      message = message.concat('Please enter first name for passenger ' + i + '!\n');
      var error = true;
    }
    if ($('#passenger_discount_' + i).val() == 'x') {
      message = message.concat('Please choose discount for passenger ' + i + '!\n');
      var error = true;
    }
  }
  if (error != true) {
    showOverlay();
    document.theForm.submit();
  }
  else {
    message = message.concat(messageChild);
    alert(message);
  }
}

function step4() {
  var message ='';
  var exp_txt = new RegExp('[0-9]+', 'i');
  if ($('#firstname').val() == '') {
    message = message.concat('Please enter your first name!\n');
    var error = true;
  }
  if ($('#familyname').val() == '') {
    message = message.concat('Please enter your family name!\n');
    var error = true;
  }
  if ($('#street').val() == '') {
    message = message.concat('Please enter your street!\n');
    var error = true;
  }
  if ($('#city').val() == '') {
    message = message.concat('Please enter your city!\n');
    var error = true;
  }
  if ($('#postcode').val() == '') {
    message = message.concat('Please enter your post code!\n');
    var error = true;
  }
  if ($('#emailconf').val() == '') {
    message = message.concat('Please confirm your email address!\n');
    var error = true;
  }
  if (checkEmail($('#emailconf').val()) == false) {
    message = message.concat('Please enter a valid email address!\n');
    var error = true;
  }
  if ($('#emailconf').val() != $('#email').val()) {
    message = message.concat('There is an error in your email address!\n');
    var error = true;
  }
//  if ($('#phone').val() != '' && isNaN($('#phone').val())) {
//    message = message.concat('Only numeric values are allowed for the phone number!\n');
//    var error = true;
//  }
  var exp_phone = new RegExp('^([0-9]*\-?\ ?\/?[0-9]*)$');
  phonenumber = $('#phone').val();
  phonenumber = phonenumber.replace('+', '');
  if (phonenumber != '' && exp_phone.test(phonenumber) === false) {
    message = message.concat('Only numeric values are allowed for the phone number!\n');
    var error = true;
  }
  if ($('#firstname').val() != '' && exp_txt.test($('#firstname').val()) === true) {
    message = message.concat('No numeric values are allowed for the first name!\n');
    var error = true;
  }
  if ($('#familyname').val() != '' && exp_txt.test($('#familyname').val()) === true) {
    message = message.concat('No numeric values are allowed for the family name!\n');
    var error = true;
  }
  if ($('#city').val() != '' && exp_txt.test($('#city').val()) === true) {
    message = message.concat('No numeric values are allowed for the city!\n');
    var error = true;
  }



//  if ($("#acceptagb").attr("checked") != true) {
//    message = message.concat('Please confirm that you accept our conditions of travel!\n');
//    var error = true;
//  }
  if (error != true) {
    showOverlay();
//    passengerDataRaw = $("#passengertitle").val() + '|' + $("#firstname").val() + '|' + $("#familyname").val() + '|' + $("#street").val() + '|' + $("#city").val() + '|' + $("#postcode").val() + '|' + $("#phone").val() + '|' + $("#email").val() + '|' + $("#country").val()
//    passengerData = encodeURI(passengerDataRaw);
//    newUrl = 'http://scandinavia.touring.de/index.php?id=1155&data=' + passengerData;
//    $("#Accept").val(newUrl);
    document.theForm.submit();
  }
  else {
    alert(message);
  }
}

function step5() {
  var message ='';
  if ($('#cardtype').val() == 'x') {
    message = message.concat('Please select card type!\n');
    var error = true;
  }
  if ($('#cardnumber').val() == '') {
    message = message.concat('Please enter your credit card number!\n');
    var error = true;
  }
  if ($('#cvc').val() == '') {
    message = message.concat('Please enter your card security number!\n');
    var error = true;
  }
  if ($('#expmm').val() == 'x') {
    message = message.concat('Please select the card expiry date (month)!\n');
    var error = true;
  }
  if ($('#expyy').val() == 'x') {
    message = message.concat('Please select the card expiry date (year)!\n');
    var error = true;
  }
  if ($("#acceptagb").attr("checked") != true) {
    message = message.concat('Please confirm that you accept our conditions of travel!\n');
    var error = true;
  }
//  if ($('#cardnumber').val() != '' && isNaN($('#cardnumber').val())) {
//    message = message.concat('Only numeric values are allowed for the card number!\n');
//    var error = true;
//  }
//  if ($('#cvc').val() != '' && isNaN(parseInt($('#cvc').val()))) {
//    message = message.concat('Only numeric values are allowed for the security number!\n');
//    var error = true;
//  }
  if (error != true) {
    showOverlay();
//    passengerDataRaw = $("#passengertitle").val() + '|' + $("#firstname").val() + '|' + $("#familyname").val() + '|' + $("#street").val() + '|' + $("#city").val() + '|' + $("#postcode").val() + '|' + $("#phone").val() + '|' + $("#email").val() + '|' + $("#country").val()
//    passengerData = encodeURI(passengerDataRaw);
//    newUrl = 'http://scandinavia.touring.de/index.php?id=1155&data=' + passengerData;
//    $("#Accept").val(newUrl);
    document.theForm.submit();
  }
  else {
    alert(message);
  }
}

// Overlay
function showOverlay() {
  $('#overlayWrapper').css('display', 'block');
}

// E-Mail-Adresse
function checkEmail(x) {
    var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
    return filter.test(x);
}

function updatePrice(passenger) {
  // Youth?
  if($('#passenger_discount_' + passenger).val() == '783e02b3-74bb-4889-af2d-20b34cd999e8') {
    $('#childText').show();
  }
  // Child?
  if($('#passenger_discount_' + passenger).val() == '23d5f2d2-0bc8-42b0-a83d-6e54da47db9e') {
    $('#passenger_title_' + passenger).val('Child');
    $('#childText').show();
  }
  //Baby?
  if($('#passenger_discount_' + passenger).val() == '5236c366-cbf2-4bf0-8abf-419d1f4e31f5') {
    $('#passenger_title_' + passenger).val('Baby');
    $('#childText').show();
  }
  if($('#passenger_discount_' + passenger).val() != '23d5f2d2-0bc8-42b0-a83d-6e54da47db9e' && $('#passenger_discount_' + passenger).val() != '5236c366-cbf2-4bf0-8abf-419d1f4e31f5' && $('#passenger_discount_' + passenger).val() != '783e02b3-74bb-4889-af2d-20b34cd999e8') {
    //$('#passenger_title_' + passenger).val('Baby');
    $('#childText').hide();
  }
  if ($('#passenger_discount_' + passenger).val() == 'x') {
    $('#passenger_price_' + passenger).html('&nbsp;');
    $('#passenger_price_hidden_' + passenger).val(0);
    updateCompletePrice();
  }
  else {
    var pricetype = $('#passenger_discount_' + passenger).val();
    if ($('#passenger_promo_' + passenger).is(":checked")) {
      var price = $('#promoprice').val();
    }
    else {
      var price = $('#' + pricetype).val();
    }
    $('#passenger_price_' + passenger).html($('#currencySymbol').val() + '&nbsp;' + price);
    $('#passenger_price_hidden_' + passenger).val(price);
    updateCompletePrice();
  }
}

function updateCompletePrice() {
  var thePrice = 0;
  for (var i = 1; i <= $('.priceRow').length; i++) {
    var b = parseFloat($('#passenger_price_hidden_' + i).val());
    thePrice = thePrice + b;
  }
  $('#price_result').html($('#currencySymbol').val() + '&nbsp;' + thePrice.toFixed(2));
}

function updateCities() {
  sel = document.getElementById('bookingmask_abfahrtStadt'); 
  selB = document.getElementById('bookingmask_ankunftStadt'); 
  if (/^[^\(]*\(([^\)]+)\)$/.test(sel.value)) {
 	  var cities = RegExp.$1;
    var cities = cities.split("|");
 		var selected = selB.options[selB.selectedIndex].value;
 		while (selB.options.length > 0)
 			selB.options[0] = null;
 		for (var i = 0; i < cities.length-1; i++) {
 			var o = selB.options[selB.options.length] = new Option(cities[i], cities[i]);
 			if (o.value == selected) o.selected = true;
 		}
	}
}


function checkCountrySelects(fromCity, toCity) {
  if ($('#bookingmask_abfahrtLand').val() != 'x' && $('#bookingmask_ankunftLand').val() != 'x') {
    getCities($('#bookingmask_abfahrtLand').val(), $('#bookingmask_ankunftLand').val(), fromCity, toCity);
  }
}

/*******************************************************/
/*            AJAX-Call für Städte-Selects             */
/*******************************************************/

function getCities(startLand, zielLand, fromCity, toCity) {
  $.ajax({
    type: "GET",
    url: "fileadmin/booking/php/getCities.php",
    data: "startland=" + startLand + "&zielland=" + zielLand + "&sellerGuid=" + $('#sellerguid').val(),
    success: function(msg){
      $('#bookingmask_selectCountries').html(msg);
        $('#bookingmask_abfahrtStadt').val(fromCity);
        $('#bookingmask_ankunftStadt').val(toCity);
    }
  });
}

function showCheapestConnection(startLand, zielLand, startStadt, zielStadt, datum, anzahlPersonen, priceType) {
  $('#cheapestConnectionRow').html('<td colspan="7">Loading data...</td>');
  $.ajax({
    type: "GET",
    url: "fileadmin/booking/php/findCheapestConnection.php",
    data: "fromcountry=" + startLand + "&tocountry=" + zielLand + "&fromcity=" + startStadt + "&tocity=" + zielStadt + "&departuredate=" + datum + "&count=" + anzahlPersonen + "&priceType=" + priceType + "&currencyGuid=" + $('#currencyGuid').val(),
    success: function(msg){
      $('#cheapestConnectionRow').html(msg);
    }
  });
}

function showPrices(departureDate, lineGuidFirst, busstopGuidFrom, busstopGuidTo, serviceNrFirst, count, departureDateReturn, lineGuidReturn, busstopGuidFromReturn, busstopGuidToReturn, serviceNrReturn, returnOpen, sellerGuid) {
  $.ajax({
    type: "GET",
    url: "fileadmin/booking/php/findPrices.php",
    data: "departureDate=" + departureDate + "&lineGuidFirst=" + lineGuidFirst + "&busstopGuidFrom=" + busstopGuidFrom + "&busstopGuidTo=" + busstopGuidTo + "&serviceNrFirst=" + serviceNrFirst + "&count=" + count + "&departureDateReturn=" + departureDateReturn + "&busstopGuidFromReturn=" + busstopGuidFromReturn + "&busstopGuidToReturn=" + busstopGuidToReturn + "&serviceNrReturn=" + serviceNrReturn + "&lineGuidReturn=" + lineGuidReturn + "&returnOpen=" + returnOpen + "&sellerGuid=" + sellerGuid + "&currencyGuid=" + $('#currencyGuid').val() + "&currencySymbol=" + $('#currencySymbol').val(),
    success: function(msg){
      $('#pricesRow').html(msg);
    }
  });
}

$(document).ready(function() {
if($('#bookingmask_datumHinfahrt').val() != undefined) {
        //alert($('#bookingmask_datumHinfahrt').val());
        changeRueckfahrt($('#bookingmask_datumHinfahrt').val());
}
// AJAX-Loader anzeigen
$().ajaxSend(function(r,s){
  var retval = $('.connection').size();
  if (!!retval == false)  {
    $('#bookingmask_loading').show();
  }
});  
// AJAX-Loader ausblenden
$().ajaxStop(function(r,s){  
  var retval = $('.connection').size();
  if (!!retval == false)  {
    $('#bookingmask_loading').hide();
  }
});  
// Preise anzeigen, falls möglich
if ($('input[name=hinfahrtID]:checked').val()) {
    var selectedFirst = $('input[name=hinfahrtID]:checked').val()
    var selectedReturn = $('input[name=rueckfahrtID]:checked').val()
    var departureDate = $('#first_departureDate' + selectedFirst).val();
    var lineGuidFirst = $('#first_lineGuidFirst' + selectedFirst).val();
    var busstopGuidFromFirst = $('#first_busstopGuidFrom' + selectedFirst).val();
    var busstopGuidToFirst = $('#first_busstopGuidTo' + selectedFirst).val();
    var serviceNrFirst = $('#first_serviceNr' + selectedFirst).val();
    var count = $('#bookingmask_anzahlpersonen').val();
    var sellerGuid = $('#sellerGuid').val();
    var departureDateReturn = $('#return_departureDate' + selectedReturn).val();
    var lineGuidReturn = $('#return_lineGuidFirst' + selectedReturn).val();
    var busstopGuidFromReturn = $('#return_busstopGuidFrom' + selectedReturn).val();
    var busstopGuidToReturn = $('#return_busstopGuidTo' + selectedReturn).val();
    var serviceNrReturn = $('#return_serviceNr' + selectedReturn).val();
    var returnOpen = $('#returnOpen').val();
    //alert(serviceNrFirst);
    $('#pricesRow').html('<tr><td>Loading data...</td></tr>');
    showPrices(departureDate, lineGuidFirst, busstopGuidFromFirst, busstopGuidToFirst, serviceNrFirst, count, departureDateReturn, lineGuidReturn, busstopGuidFromReturn, busstopGuidToReturn, serviceNrReturn, returnOpen, sellerGuid);
}
// Listener für Connections
$('.radioConnection').bind("click", function() {
  if ($('input[name=hinfahrtID]:checked').val()) {
    var selectedFirst = $('input[name=hinfahrtID]:checked').val()
    var selectedReturn = $('input[name=rueckfahrtID]:checked').val()
    var departureDate = $('#first_departureDate' + selectedFirst).val();
    var lineGuidFirst = $('#first_lineGuidFirst' + selectedFirst).val();
    var busstopGuidFromFirst = $('#first_busstopGuidFrom' + selectedFirst).val();
    var busstopGuidToFirst = $('#first_busstopGuidTo' + selectedFirst).val();
    var serviceNrFirst = $('#first_serviceNr' + selectedFirst).val();
    var count = $('#bookingmask_anzahlpersonen').val();
    var sellerGuid = $('#sellerGuid').val();
    var departureDateReturn = $('#return_departureDate' + selectedReturn).val();
    var lineGuidReturn = $('#return_lineGuidFirst' + selectedReturn).val();
    var busstopGuidFromReturn = $('#return_busstopGuidFrom' + selectedReturn).val();
    var busstopGuidToReturn = $('#return_busstopGuidTo' + selectedReturn).val();
    var serviceNrReturn = $('#return_serviceNr' + selectedReturn).val();
    var returnOpen = $('#returnOpen').val();
    //alert(serviceNrFirst);
    $('#pricesRow').html('<tr><td>Loading data...</td></tr>');
    showPrices(departureDate, lineGuidFirst, busstopGuidFromFirst, busstopGuidToFirst, serviceNrFirst, count, departureDateReturn, lineGuidReturn, busstopGuidFromReturn, busstopGuidToReturn, serviceNrReturn, returnOpen, sellerGuid);
  }
});
// Listener für Submit-Button
$('#bookingmask_submitBuchungsmaske').bind("click", function() {
  checkSearchMask();
  //document.formBuchungsmaske.submit();
});
// Listener für Fragezeichen
$('.questionmark').bind("click", function() {
  //window.open('http://www.bei.cz/pages/promotarify/okno.asp?english=&refr={FCB4D9D6-2D8B-442B-9AC9-4A4E5D0B1D06}', 'promo', 'toolbar=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=no,width=480,height=385');
  alert('Promotional Ticket - can not be changed or refunded!');
});
// Listener für Fragezeichen (card verification number)
$('.questionmark_cvn').bind("click", function() {
  window.open('fileadmin/booking/php/cvn_help.php', 'help', 'toolbar=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=no,width=640,height=520');
});
// Listener für "Nur Hinfahrt"
$('#bookingmask_nurHinfahrt').bind("click", function() {
  toggleRueckfahrt();
  $('#bookingmask_Oneway').attr('checked', false);
});
// Listener für "Offene Rückfahrt"
$('#bookingmask_Oneway').bind("click", function() {
  toggleRueckfahrt();
  $('#bookingmask_nurHinfahrt').attr('checked', false);
});
// Listener für Select-Felder
$('#bookingmask_abfahrtLand').bind("change", function() {
  checkCountrySelects();
});
$('#bookingmask_ankunftLand').bind("change", function() {
  checkCountrySelects();
});
// Datepicker
$('#bookingmask_datumHinfahrt').datepick({dateFormat: 'dd-mm-yy', minDate: +3, showOn: 'both', buttonImageOnly: true, buttonImage: '../fileadmin/php/formulare/images/icon_calendar.gif', onSelect: function(date) {changeRueckfahrt(date)}});
$('#bookingmask_datumRueckfahrt').datepick({dateFormat: 'dd-mm-yy', minDate: +3, showOn: 'both', buttonImageOnly: true, buttonImage: '../fileadmin/php/formulare/images/icon_calendar.gif'});
toggleRueckfahrt()
$('.showchangingroutes').mouseenter(function() {$(this).next().fadeIn();})
                        .mouseleave(function() {$(this).next().fadeOut();});


});

function changeRueckfahrt(date) {
  var tag = date.substring(0, 2);
  var monat = date.substring(3, 5);
  var jahr = date.substring(6, 10);
  $('#bookingmask_datumRueckfahrt').val(''). 
        datepick('option', {minDate: new Date(jahr, monat - 1, tag)}); 
}

function toggleRueckfahrt() {
  if ($("#bookingmask_nurHinfahrt").is(":checked") || $("#bookingmask_Oneway").is(":checked")) {
    $('#bookingmask_datumRueckfahrt').val('');
    $('#bookingmask_datumRueckfahrt').datepick('disable');
  }
  else {
    $('#bookingmask_datumRueckfahrt').datepick('enable');
  }    
}

function showChangingRoutes(el) {
        $(el).hide();
}                   

