|
|
|
$(function() {
|
|
|
|
$.ajax({ type: "get", url: "/secureforms/form_token" }).done(function(data) {
|
|
|
|
$("input[name=__ftoken__]").remove();
|
|
|
|
$("form").append(data);
|
|
|
|
});
|
|
|
|
$("a[minus]").each(function(index, element) {
|
|
|
|
$(element).click(function() {
|
|
|
|
var targetId = $(this).data("target");
|
|
|
|
var $targetInput = $("#" + targetId);
|
|
|
|
var minVal = $targetInput.data("min");
|
|
|
|
var inputVal = parseInt($targetInput.val());
|
|
|
|
if (inputVal > minVal) {
|
|
|
|
inputVal -= 1;
|
|
|
|
$targetInput.val(inputVal);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
$("a[plus]").each(function(index, element) {
|
|
|
|
$(element).click(function() {
|
|
|
|
var targetId = $(this).data("target");
|
|
|
|
var $targetInput = $("#" + targetId);
|
|
|
|
var maxVal = $targetInput.data("max");
|
|
|
|
var inputVal = parseInt($targetInput.val());
|
|
|
|
if (inputVal < maxVal) {
|
|
|
|
inputVal += 1;
|
|
|
|
$targetInput.val(inputVal);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
var $traveltypeSelect = $("#traveltype");
|
|
|
|
var $traveltypeBlock = $("#traveltypeBlock");
|
|
|
|
var $adultsNumber = $("#adultsNumber");
|
|
|
|
var $adultsNumberInput = $("#AdulteNum");
|
|
|
|
var $childrenNumber = $("#childrenNumber");
|
|
|
|
$traveltypeSelect.change(function(event) {
|
|
|
|
if ($traveltypeSelect.val() == "Family" ||
|
|
|
|
$traveltypeSelect.val() == "Group") {
|
|
|
|
$adultsNumber.show();
|
|
|
|
$childrenNumber.show();
|
|
|
|
$traveltypeBlock.removeClass("col-md-24 col-sm-24");
|
|
|
|
$traveltypeBlock.addClass("col-md-10 col-sm-10");
|
|
|
|
} else {
|
|
|
|
$adultsNumber.hide();
|
|
|
|
$childrenNumber.hide();
|
|
|
|
$traveltypeBlock.removeClass("col-md-8 col-sm-8");
|
|
|
|
$traveltypeBlock.addClass("col-md-24 col-sm-24");
|
|
|
|
}
|
|
|
|
if ($traveltypeSelect.val() == "Alone") {
|
|
|
|
$adultsNumberInput.val(1);
|
|
|
|
} else if ($traveltypeSelect.val() == "Couple" ||
|
|
|
|
$traveltypeSelect.val() == "Two people") {
|
|
|
|
$adultsNumberInput.val(2);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
$('input[type=radio][name=traveltype]').change(function() {
|
|
|
|
if (this.value == 'Family') {
|
|
|
|
$(".travelernumber").removeClass("none").removeClass("groupnumber").addClass("familynumber");
|
|
|
|
}
|
|
|
|
else if (this.value == 'Group') {
|
|
|
|
$(".travelernumber").removeClass("none").removeClass("familynumber").addClass("groupnumber");
|
|
|
|
} else {
|
|
|
|
var reset_adult_num = this.value=='Alone' ? 1 : 2;
|
|
|
|
$("#adult_number").val(reset_adult_num);
|
|
|
|
$(".travelernumber").addClass("none").removeClass("groupnumber").removeClass("familynumber");
|
|
|
|
}
|
|
|
|
});
|
|
|
|
var refs = document.referrer || '直接访问/来源未知';
|
|
|
|
$('#qurl').val(refs);
|
|
|
|
var $tipText = $("#tipText");
|
|
|
|
$tipText.fadeOut();
|
|
|
|
|
|
|
|
$("input[name='city[]']").each(function() {
|
|
|
|
$(this).on("click", function() {
|
|
|
|
var allDays = 0;
|
|
|
|
|
|
|
|
$("input[name='city[]']:checked").each(function(index, checkedElement) {
|
|
|
|
var days = $(checkedElement).attr("data-days");
|
|
|
|
allDays += parseInt(days);
|
|
|
|
});
|
|
|
|
|
|
|
|
if (allDays == 0) {
|
|
|
|
$tipText.fadeOut();
|
|
|
|
} else {
|
|
|
|
var tip =
|
|
|
|
"For the destinations you selected we suggest you allow at least " +
|
|
|
|
allDays +
|
|
|
|
" days.";
|
|
|
|
$tipText.text(tip);
|
|
|
|
$tipText.fadeIn();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
$('input[type="radio"]').click(function() {
|
|
|
|
var _name = $(this).attr('name');
|
|
|
|
$('input[name="' + _name + '"]').parent().removeClass('selected');
|
|
|
|
$(this).parent().addClass('selected')
|
|
|
|
});
|
|
|
|
$('input[name="flexible"]').click(function() {
|
|
|
|
$('.travelDays').children('.requiredArea').remove();
|
|
|
|
});
|
|
|
|
$('#Starting_Date').focus(function() {
|
|
|
|
$(this).siblings('.requiredArea').remove();
|
|
|
|
});
|
|
|
|
$('input[name="hotel"]').click(function() {
|
|
|
|
$('.hotelBlock').children('.requiredArea').remove();
|
|
|
|
});
|
|
|
|
$('input[name="realname"],input[name="Nationality"],input[name="email"]').focus(function() {
|
|
|
|
$(this).parent().children('.requiredArea').remove();
|
|
|
|
});
|
|
|
|
$('select[name="adult_number"]').click(function() {
|
|
|
|
if ($('#AdulteNum').val() > 0) {
|
|
|
|
$(this).parent().children('.requiredArea').remove();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
//===================点击下一步操作 验证===============================
|
|
|
|
function checkForm() {
|
|
|
|
var requirei = 0;
|
|
|
|
var windowHeight = $(window).height();
|
|
|
|
var scrollTopWhere = windowHeight;
|
|
|
|
|
|
|
|
var calcScrollTop = function($jqElement) {
|
|
|
|
var visibleTop = $jqElement.offset().top - $jqElement.height();
|
|
|
|
scrollTopWhere = visibleTop < scrollTopWhere ? visibleTop : scrollTopWhere;
|
|
|
|
}
|
|
|
|
|
|
|
|
var $startingDate = $("#Starting_Date");
|
|
|
|
if ($('input[name="starting_date"]').val() == '') {
|
|
|
|
$('<div class="requiredArea">Please select your approximate arrival date</div>').appendTo('#dateOfArrival');
|
|
|
|
calcScrollTop($startingDate);
|
|
|
|
requirei++;
|
|
|
|
}
|
|
|
|
var $hotelBlock = $(".hotelBlock");
|
|
|
|
var selectedHotel = $("input[name='hotel[]']:checked").length;
|
|
|
|
if (selectedHotel === 0) {
|
|
|
|
$('<div class="requiredArea">Please select your hotel style</div>').appendTo('.hotelBlock .personalInfo');
|
|
|
|
calcScrollTop($hotelBlock);
|
|
|
|
requirei++;
|
|
|
|
}
|
|
|
|
var $realname = $("#realname");
|
|
|
|
if ($('#realname').val() == '') {
|
|
|
|
$('#realname').parent().append('<div class="requiredArea">Please enter your name</div>');
|
|
|
|
calcScrollTop($realname);
|
|
|
|
requirei++;
|
|
|
|
}
|
|
|
|
var $Nationality = $("#Nationality");
|
|
|
|
if ($('#Nationality').val() == '') {
|
|
|
|
$('#Nationality').parent().append('<div class="requiredArea">Please enter your nationality</div>');
|
|
|
|
calcScrollTop($Nationality);
|
|
|
|
requirei++;
|
|
|
|
}
|
|
|
|
var $email = $("#email");
|
|
|
|
if ($('#email').val() == '') {
|
|
|
|
$('#email').parent().append('<div class="requiredArea">Please enter your email</div>');
|
|
|
|
calcScrollTop($email);
|
|
|
|
requirei++;
|
|
|
|
} else {
|
|
|
|
var emailPattern = /^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/;
|
|
|
|
if (!emailPattern.test($('#email').val())) {
|
|
|
|
$('#email').parent().append('<div class="requiredArea">Please verify your email</div>');
|
|
|
|
calcScrollTop($email);
|
|
|
|
requirei++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//当选择family,group时,成人数目必选,为空时提示用户选择成人数
|
|
|
|
var $adult_number = document.querySelector("#AdulteNum");
|
|
|
|
if ($adult_number
|
|
|
|
&& ($('#AdulteNum').val() == '' || $('#AdulteNum').val() == undefined)
|
|
|
|
) {
|
|
|
|
$('#AdulteNum').parent().append('<div class="requiredArea requiredAreas">Please select the adults number</div>');
|
|
|
|
calcScrollTop($adult_number);
|
|
|
|
requirei++;
|
|
|
|
}
|
|
|
|
if (scrollTopWhere < windowHeight) {
|
|
|
|
$("body,html").animate({
|
|
|
|
scrollTop: scrollTopWhere
|
|
|
|
})
|
|
|
|
}
|
|
|
|
if (requirei > 0) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
$("#submitTailorMade").click(function() {
|
|
|
|
$('.requiredArea').remove();
|
|
|
|
if (!checkForm()) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
//"australia", "canada", "china", "france", "germany", "italy", "malaysia", "singapore", "united kingdom", "united states",
|
|
|
|
var nationality_map = ["afghanistan", "albania", "algeria", "american samoa", "andorra", "angola", "anguilla", "antarctica", "antigua and barbuda", "argentina", "armenia", "aruba", "australia", "austria", "azerbaijan", "bahamas", "bahrain", "bangladesh", "barbadian", "barbados", "belarus", "belgium", "belize", "benin", "bermuda", "bhutan", "bolivia", "botswana", "bouvet island", "brazil", "british indian ocean territory", "brunei darussalam", "bulgaria", "burkina faso", "burundi", "cambodia", "cameroon", "canada", "cape verde", "cayman islands", "central african republic", "chad", "chile", "china", "china HK", "christmas island", "colombia", "comoros", "congo", "cook islands", "costa rica", "croatia", "cuba", "cyprus", "czech republic", "czechoslovakia", "denmark", "djibouti", "dominica", "dominican republic", "east timor", "ecuador", "egypt", "el salvador", "equatorial guinea", "eritrea", "estonia", "ethiopia", "falkland islands", "faroe islands", "fiji", "finland", "france", "french guiana", "french polynesia", "gabon", "gambia", "georgia", "germany", "ghana", "gibraltar", "greece", "greenland", "grenada", "guadeloupe", "guam", "guatemala", "guernsey", "guinea", "guinea-bissau", "guyana", "haiti", "honduras", "hong kong", "hungary", "iceland", "india", "indonesia", "iran", "iraq", "ireland", "isle of man", "israel", "italy", "jamaica", "japan", "jersey", "jordan", "kazakhstan", "kazakhstan2", "kenya", "kiribati", "korea", "kuwait", "kyrgyzstan", "laos", "latvia", "lebanon", "lesotho", "liberia", "libyan arab jamahiriya", "liechtenstein", "lithuania", "luxembourg", "macau", "macedonia", "madagascar", "malawi", "malaysia", "maldives", "mali", "malta", "marshall islands", "martinique", "mauritania", "mauritius", "mayotte", "mexican", "micronesia", "moldova", "monaco", "mongolia", "montserrat", "morocco", "mozambique", "myanmar", "namibia", "nauru", "nepal", "netherlands", "netherlands antilles", "neutral zone", "new caledonia", "new zealand", "nicaragua", "niger", "nigeria", "niue", "norfolk island", "north korea", "northern mariana islands", "norway", "oman", "pakistan", "palau", "panama", "papua new guinea", "paraguay", "peru", "philippines", "pitcairn", "poland", "portugal", "puerto rico", "qatar", "reunion", "romania", "russian federation", "rwanda", "saint helena", "samoa", "san marino", "sao tome and principe", "saudi arabia", "scotland", "senegal", "seychelles", "sierra leone", "singapore", "slovakia", "slovenia", "solomon islands", "somalia", "south africa", "south georgia and the sandwich", "spain", "sri lanka", "sudan", "suriname", "swaziland", "sweden", "switzerland", "syrian arab republic", "taiwan", "tanzania", "thailand", "the republic of cote d'ivoire", "togo", "tokelau", "tonga", "trinidad and tobago", "tunisia", "turkey", "turkmenistan", "turks and caicos islands", "tuvalu", "uganda", "ukraine", "united arab emirates", "united kingdom", "united states", "unknown", "uruguay", "ussr", "uzbekistan", "vanuatu", "vatican city state", "venezuela", "vietnam", "virgin islands (british)", "virgin islands (u.s.)", "western sahara", "yemen", "yugoslavia", "zaire", "zambia", "zimbabwe"];
|
|
|
|
$(function() {
|
|
|
|
$('#Nationality').autocomplete({
|
|
|
|
source: nationality_map,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
$("#Starting_Date").flatpickr({
|
|
|
|
dateFormat: "m/d/Y",
|
|
|
|
disableMobile: true,
|
|
|
|
minDate: new Date().fp_incr(3),
|
|
|
|
maxDate: new Date().fp_incr(730)
|
|
|
|
});
|
|
|
|
});
|