git-svn-id: http://78.47.251.156/svn/dev/sterntours-3@3483 f459cee4-fb09-11de-96c3-f9c5f16c3c76
322 lines
No EOL
12 KiB
JavaScript
322 lines
No EOL
12 KiB
JavaScript
$(document).ready(function() {
|
||
|
||
var frm$ = $('.st-booking-form');
|
||
var summary$ = $('.st-booking-summary');
|
||
|
||
var roomCountSR$ = $('#booking_request_singleRoomCount');
|
||
var roomCountDR$ = $('#booking_request_doubleRoomCount');
|
||
var roomCountTR$ = $('#booking_request_tripleRoomCount');
|
||
|
||
var roomChildCountSR$ = $('#booking_request_singleRoomChildCount');
|
||
var roomChildCountDR$ = $('#booking_request_doubleRoomChildCount');
|
||
var roomChildCountTR$ = $('#booking_request_tripleRoomChildCount');
|
||
|
||
var extraBookingDaysBefore$ = $('#booking_request_extraBookingDaysBefore');
|
||
var extraBookingDaysAfter$ = $('#booking_request_extraBookingDaysAfter');
|
||
|
||
/*
|
||
extraBookingDaysBefore
|
||
extraBookingDaysAfter
|
||
*/
|
||
|
||
//var travelersIndices = $('.st-traveller-index');
|
||
|
||
var travelers$ = $('.st-traveler');
|
||
var travelerFields$ = travelers$.find('input,select,checkbox');
|
||
|
||
frm$.find('input, select').change(function() {
|
||
var tmp = location.href.split('?');
|
||
var tmp2 = tmp[0].split('/');
|
||
tmp2.pop();
|
||
var url = tmp2.join('/') + '/berechne-gesamtpreis';
|
||
if (tmp[1])
|
||
{
|
||
url += '?'+ tmp[1];
|
||
}
|
||
$.ajax({
|
||
url: url,
|
||
type: 'post',
|
||
data: frm$.serialize()
|
||
|
||
}).then(function(r) {
|
||
summary$.html(r);
|
||
/*
|
||
$('#st-booking-price-set-table .st-total-price-set').html($(r).find('.st-total-price').text());
|
||
$('#st-booking-price-set-table .st-deposit-price-set').html($(r).find('.st-deposit-price').text());
|
||
$('#st-booking-price-set-table .st-final-price-set').html($(r).find('.st-final-price').text());
|
||
*/
|
||
|
||
}, function() {
|
||
summary$.html('Aufgrund eines Fehlers konnte kein Angebot ermittelt werden.');
|
||
})
|
||
});
|
||
|
||
$('#booking_request_departure').change(function () {
|
||
//show nothing
|
||
$('.flight_times_ele').hide();
|
||
$('#no_flight_time').hide();
|
||
$('#yes_flight_time').hide();
|
||
|
||
console.log($(this).val());
|
||
if(!$(this).val() || $(this).find("option:selected").text().indexOf("Eigenanreise") == 0){
|
||
return;
|
||
}
|
||
console.log($('#flight_time_'+$(this).val()).length);
|
||
if($('#flight_time_'+$(this).val()).length){
|
||
$('#flight_time_'+$(this).val()).show();
|
||
$('#yes_flight_time').show();
|
||
}else{
|
||
$('#no_flight_time').show();
|
||
}
|
||
});
|
||
var toggle_first= [];
|
||
|
||
function updateNationality(ele){
|
||
var obj = ele.parents('.nationality_select').data('toggle');
|
||
if(ele.val()){
|
||
var values = $("input[name='travel_program_countries_id[]']").map(function(){return $(this).val();}).get();
|
||
|
||
var tmp = location.href.split('?');
|
||
var tmp2 = tmp[0].split('/');
|
||
tmp2.pop();
|
||
var url = tmp2.join('/') + '/show_nationality_country_text';
|
||
if (tmp[1])
|
||
{
|
||
url += '?'+ tmp[1];
|
||
}
|
||
|
||
var data = {nationality_id : ele.val(), country_ids: values};
|
||
|
||
$.ajax({
|
||
url:url,
|
||
type: "POST",
|
||
data: data,
|
||
}).then(function(r) {
|
||
$(obj).find('.set_nationality_country_text').html(r);
|
||
$(obj).show('slow');
|
||
if(!toggle_first[ele.val()]){
|
||
$(obj).find('.accordion-toggle').click();
|
||
toggle_first[ele.val()] = true;
|
||
}
|
||
}, function() {
|
||
summary$.html('Aufgrund eines Fehlers konnte keine Anfrage übermittel werden.');
|
||
});
|
||
}else{
|
||
$(obj).hide();
|
||
}
|
||
}
|
||
|
||
$('.nationality_select').find('select').change(function(){
|
||
updateNationality($(this));
|
||
});
|
||
|
||
|
||
function updateAllNationality(){
|
||
$('.nationality_select').find('select').each(function(){
|
||
updateNationality($(this));
|
||
});
|
||
}
|
||
updateAllNationality();
|
||
|
||
|
||
function toggleUpdateChevron(e) {
|
||
var $i = $(e.target)
|
||
.parent('.panel-group')
|
||
.find("i.indicator");
|
||
|
||
$i.toggleClass('icon-minus icon-plus');
|
||
}
|
||
|
||
$('.acc_nationality_panel').on('hidden.bs.collapse', toggleUpdateChevron);
|
||
$('.acc_nationality_panel').on('shown.bs.collapse', toggleUpdateChevron);
|
||
|
||
|
||
function toggleChevronIn(e) {
|
||
console.log(e);
|
||
var $i = $(e.target)
|
||
.parent('.panel-group')
|
||
.find("i.indicator");
|
||
|
||
$i.toggleClass('icon-minus icon-plus');
|
||
|
||
if($i.hasClass('icon-minus')){
|
||
$i.parent('h5').find('span').html('Leistungen ausblenden');
|
||
}
|
||
if($i.hasClass('icon-plus')){
|
||
$i.parent('h5').find('span').html('Leistungen einblenden');
|
||
}
|
||
}
|
||
|
||
$('.booking_insurance_toogle').on('hidden.bs.collapse', toggleChevronIn);
|
||
$('.booking_insurance_toogle').on('shown.bs.collapse', toggleChevronIn);
|
||
|
||
|
||
|
||
function updateTravelers()
|
||
{
|
||
var travelersIndex = 1;
|
||
|
||
var singleTravelerCount = parseInt(roomCountSR$.val());
|
||
var doubleTravelerCount = parseInt(roomCountDR$.val()) * 2;
|
||
var tripleTravelerCount = parseInt(roomCountTR$.val()) * 3;
|
||
|
||
var singleTravelerChildCount = parseInt(roomChildCountSR$.val()) * 2;
|
||
var doubleTravelerChildCount = parseInt(roomChildCountDR$.val()) * 3;
|
||
var tripleTravelerChildCount = parseInt(roomChildCountTR$.val()) * 4;
|
||
|
||
var allTravelersCount = singleTravelerCount + doubleTravelerCount + tripleTravelerCount + singleTravelerChildCount + doubleTravelerChildCount + tripleTravelerChildCount;
|
||
|
||
travelers$.hide();
|
||
travelerFields$.prop('required', false);
|
||
|
||
var counter = 1;
|
||
var $offset = 1;
|
||
|
||
//single
|
||
if(singleTravelerCount > 0)
|
||
{
|
||
for(var i = $offset; i <= singleTravelerCount; i++)
|
||
{
|
||
var travelerSelector = '.st-traveler-' + i;
|
||
var roomIndexSelector = travelerSelector+' .st-traveller-index';
|
||
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
|
||
$(travelerSelector).show().find('input,select').prop('required', true);
|
||
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Einzelzimmer 1. Erwachsender");
|
||
counter ++;
|
||
}
|
||
}
|
||
//single + child
|
||
$offset = $offset + parseInt(roomCountSR$.find('option').length) -1;
|
||
//4 next 5
|
||
|
||
if(singleTravelerChildCount > 0)
|
||
{
|
||
for(var i = $offset; i < singleTravelerChildCount + $offset; i++)
|
||
{
|
||
var travelerSelector = '.st-traveler-' + i;
|
||
var roomIndexSelector = travelerSelector+' .st-traveller-index';
|
||
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
|
||
$(travelerSelector).show().find('input,select').prop('required', true);
|
||
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Einzelzimmer | 1. Erwachsender");
|
||
counter ++;
|
||
|
||
//child
|
||
i++;
|
||
var travelerSelector = '.st-traveler-' + i;
|
||
var roomIndexSelector = travelerSelector+' .st-traveller-index';
|
||
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
|
||
$(travelerSelector).show().find('input,select').prop('required', true);
|
||
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Einzelzimmer | Kind");
|
||
counter ++;
|
||
}
|
||
}
|
||
//double
|
||
$offset = $offset + (parseInt(roomChildCountSR$.find('option').length) -1) * 2;
|
||
//4 + 4*2 next 13
|
||
if(doubleTravelerCount > 0)
|
||
{
|
||
$m = 1;
|
||
|
||
for(var i = $offset; i < doubleTravelerCount + $offset; i++)
|
||
{
|
||
var travelerSelector = '.st-traveler-'+i;
|
||
var roomIndexSelector = travelerSelector+' .st-traveller-index';
|
||
// var currentRoomIndex = $(travelerSelector).attr("data-room-index");
|
||
$(travelerSelector).show().find('input,select').prop('required', true);
|
||
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Doppelzimmer | " + $m + ". Erwachsender");
|
||
counter ++;
|
||
$m++;
|
||
if($m == 3){
|
||
$m = 1;
|
||
}
|
||
}
|
||
}
|
||
//double + child
|
||
$offset = $offset + (parseInt(roomCountDR$.find('option').length) -1) * 2;
|
||
//12 + 3*2 next 19
|
||
if(doubleTravelerChildCount > 0)
|
||
{
|
||
$m = 1;
|
||
for(var i = $offset; i < doubleTravelerChildCount + $offset; i++)
|
||
{
|
||
var travelerSelector = '.st-traveler-'+i;
|
||
var roomIndexSelector = travelerSelector+' .st-traveller-index';
|
||
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
|
||
$(travelerSelector).show().find('input,select').prop('required', true);
|
||
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Doppelzimmer | " + $m + ". Erwachsender");
|
||
counter ++;
|
||
$m++;
|
||
if($m == 3){
|
||
$m = 1;
|
||
//child
|
||
i++;
|
||
var travelerSelector = '.st-traveler-'+i;
|
||
var roomIndexSelector = travelerSelector+' .st-traveller-index';
|
||
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
|
||
$(travelerSelector).show().find('input,select').prop('required', true);
|
||
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Doppelzimmer | Kind");
|
||
counter ++;
|
||
}
|
||
}
|
||
}
|
||
|
||
//triple
|
||
$offset = $offset + (parseInt(roomChildCountDR$.find('option').length) -1) * 3;
|
||
//18 + 3*3 next 28
|
||
if(tripleTravelerCount > 0)
|
||
{
|
||
$m = 1;
|
||
for(var i = $offset; i < tripleTravelerCount + $offset; i++)
|
||
{
|
||
var travelerSelector = '.st-traveler-'+i;
|
||
var roomIndexSelector = travelerSelector+' .st-traveller-index';
|
||
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
|
||
$(travelerSelector).show().find('input,select').prop('required', true);
|
||
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Dreibettzimmer | " + $m + ". Erwachsender");
|
||
counter ++;
|
||
$m++;
|
||
if($m == 4){
|
||
$m = 1;
|
||
}
|
||
}
|
||
}
|
||
|
||
//triple + child
|
||
$offset = $offset + (parseInt(roomCountTR$.find('option').length) -1) * 3;
|
||
//27 + 2*3 next 34
|
||
if(tripleTravelerChildCount > 0)
|
||
{
|
||
$m = 1;
|
||
for(var i = $offset; i < tripleTravelerChildCount + $offset; i++)
|
||
{
|
||
var travelerSelector = '.st-traveler-'+i;
|
||
var roomIndexSelector = travelerSelector+' .st-traveller-index';
|
||
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
|
||
$(travelerSelector).show().find('input,select').prop('required', true);
|
||
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Dreibettzimmer | " + $m + ". Erwachsender");
|
||
counter ++;
|
||
$m++;
|
||
if($m == 4){
|
||
$m = 1;
|
||
//child
|
||
i++;
|
||
var travelerSelector = '.st-traveler-'+i;
|
||
var roomIndexSelector = travelerSelector+' .st-traveller-index';
|
||
//var currentRoomIndex = $(travelerSelector).attr("data-room-index");
|
||
$(travelerSelector).show().find('input,select').prop('required', true);
|
||
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Dreibettzimmer | Kind");
|
||
counter ++;
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
roomCountSR$.change(updateTravelers);
|
||
roomCountDR$.change(updateTravelers);
|
||
roomCountTR$.change(updateTravelers);
|
||
roomChildCountSR$.change(updateTravelers);
|
||
roomChildCountDR$.change(updateTravelers);
|
||
roomChildCountTR$.change(updateTravelers);
|
||
updateTravelers();
|
||
}); |