var VehiclesDetailEmailEnquireModel=function(n,t,i){var r=this,u=function(t,i){var r=$(n+' select.form-list[data-list-type="'+i+'"]');return r.length?parseInt(t,10)===0?(r.each(function(){var i=$(this),n;i.next("span").children("span").addClass("error");n=i.data("selectBox-selectBoxIt");n&&n.selectOption(t)}),!1):(r.each(function(){var i=$(this),n;i.next("span").children("span").removeClass("error");n=i.data("selectBox-selectBoxIt");n&&n.selectOption(t)}),!0):($('input[data-type="'+i+'"]').val(t).trigger("change"),!!t)},e=function(){u(r.selectedCountry(),"country");u(r.selectedCountry(),"phone");r.hasAdv()&&u(r.selectedAdv(),"adv");u(r.selectedJob(),"job");ko.validation.group(r).showAllMessages()},f=function(n){n?$('select[name="job"]').next("span").children("span").removeClass("error"):$('select[name="job"]').next("span").children("span").removeClass("error").addClass("error")};r.firstName=ko.observable();r.lastName=ko.observable();r.email=ko.observable();r.repeatEmail=ko.observable();r.phone=ko.observable();r.mobile=ko.observable();r.selectedCountry=ko.observable();r.selectedPhoneCode=ko.observable();r.selectedAdv=ko.observable();r.message=ko.observable();r.selectedJob=ko.observable();r.selectedJobTitle=ko.observable();r.selectedJob.subscribe(function(n){if(r.hasAdv(!1),f(n),n){var t=$('select[name="job"] option[value="'+n.toString()+'"]').text();r.selectedJobTitle(t);(__grServerVars.quoteBox==null||__grServerVars.quoteBox.PromotionHotDealID===0)&&(t=="Price and Availability Enquiry"?r.hasAdv(!0):u("","adv"))}});t&&(r.firstName(t.BookingYourDetails_FirstName),r.lastName(t.BookingYourDetails_LastName),r.email(t.BookingYourDetails_Email),r.repeatEmail(t.BookingYourDetails_Email),r.selectedPhoneCode(t.BookingYourDetails_PhoneCode),r.phone(t.BookingYourDetails_Phone),r.mobile(t.BookingYourDetails_Mobile),r.selectedCountry(t.BookingYourDetails_CountryId),r.selectedAdv(t.BookingYourDetails_AdvId),r.message(t.BookingYourDetails_Messages));r.countryValidationMsg=FormValidationMessages.country;r.advValidationMsg=FormValidationMessages.adv;r.subscribeFlag=ko.observable(!1);r.otherEmail=ko.observable();r.notes=ko.observable();r.useMobile=ko.observable(!1);r.useRepeatEmail=ko.observable(!1);r.hasBody=ko.observable(!0);r.hasAdv=ko.observable(!0);r.hasJobTitle=ko.observable(!0);r.hasUploadCV=ko.observable(!1);r.selectedCountryName=ko.computed(function(){var t=$(n+' select.form-list[data-list-type="country"]').find('option[value="'+r.selectedCountry()+'"]');return!t.length?$("input[data-type='countryName']").val():t.data("text")});r.selectedAdvName=ko.computed(function(){var t=$(n+' select.form-list[data-list-type="adv"]').find('option[value="'+r.selectedAdv()+'"]');return t.data("text")});r.selectedPhoneCodeText=ko.computed(function(){var t=$(n+' select.form-list[data-list-type="phone"]').find('option[value="'+r.selectedPhoneCode()+'"]');return t.data("selectedtext")?t.data("selectedtext"):(t=$(n+' select.form-list[data-list-type="phone"]').find('option[data-selectedtext="'+r.selectedPhoneCode()+'"]'),!!t.data("selectedtext"))?(r.selectedPhoneCode(t.val()),t.data("selectedtext")):$("input[data-type='phoneCode']").val()});r.isFormValid=function(){var n=parseInt(r.selectedCountry(),10)>0&&(!r.hasAdv()||parseInt(r.selectedAdv(),10)>0)&&ko.validation.group(r)().length===0;if(r.onValidStatusChanged)r.onValidStatusChanged(n);return n};r.email.extend({required:{message:FormValidationMessages.email},email:{message:FormValidationMessages.emailValid}});r.repeatEmail.extend({required:{onlyIf:function(){return r.useRepeatEmail()},message:FormValidationMessages.repeatEmail},mustEqual:{onlyIf:function(){return r.useRepeatEmail()},params:{val:r.email},message:FormValidationMessages.repeatEmailMatch}});r.firstName.extend({required:{message:FormValidationMessages.firstName}});r.lastName.extend({required:{message:FormValidationMessages.lastName}});r.phone.extend({required:{onlyIf:function(){return!r.useMobile()},message:FormValidationMessages.phone},pattern:{onlyIf:function(){return!r.useMobile()},message:FormValidationMessages.phoneValid,params:PatternsCustom.PhoneNumberWithoutCode},maxLength:25});r.mobile.extend({required:{onlyIf:function(){return r.useMobile()},message:FormValidationMessages.mobile},pattern:{onlyIf:function(){return r.useMobile()},message:FormValidationMessages.phoneValid,params:PatternsCustom.PhoneNumberWithoutCode},maxLength:25});r.message.extend({required:{onlyIf:function(){return r.hasBody()},message:"Message is required"}});r.selectedJob.extend({required:{onlyIf:function(){return r.hasJobTitle()},message:"Job Position is required"}});r.selectedCountry.subscribe(function(n){u(n,"country");u(n,"phone")});r.selectedPhoneCode.subscribe(function(n){u(n,"country");u(n,"phone")});r.selectedAdv.subscribe(function(n){u(n,"adv")});r.swapPhone=function(){r.useMobile(!r.useMobile());r.useMobile()?r.phone(""):r.mobile("")};$(n+" a[id$=btnSubmit]").on("click",function(n){if(r.isFormValid())r.submit&&r.submit(n);else{if(f(r.selectedJob()),e(),r.onValidationFailed)r.onValidationFailed(n);return n.preventDefault(),!1}});r.bind=function(){ko.applyBindings(r,$(n)[0]);$(n+" select.form-list").selectBoxIt({dynamicPositioning:!0});r.hasAdv(!1);__grServerVars.quoteBox!=null&&r.hasAdv(__grServerVars.quoteBox.PromotionHotDealID===0)};r.mapToVB=function(){var n=ko.toJS(r);return{BookingYourDetails_FirstName:n.firstName,BookingYourDetails_LastName:n.lastName,BookingYourDetails_Email:n.email,BookingYourDetails_PhoneCode:n.selectedPhoneCode,BookingYourDetails_Phone:n.phone,BookingYourDetails_Mobile:n.mobile,BookingYourDetails_StreetNumber:"",BookingYourDetails_TownSuburb:"",BookingYourDetails_State:"",BookingYourDetails_PostCode:"",BookingYourDetails_CountryName:n.selectedCountryName,BookingYourDetails_CountryId:n.selectedCountry,BookingYourDetails_FlightNumber:"",BookingYourDetails_AdvId:n.selectedAdv,BookingYourDetails_AdvName:n.selectedAdvName,BookingYourDetails_Messages:n.message,BookingYourDetails_Notes:$('textarea[id$="txtNotes"]').val(),BookingYourDetails_SpecialEmailMe:n.subscribeFlag}};i||r.bind()};$(function(){var n=new VehiclesDetailEmailEnquireModel("#booking-details-form");n.useRepeatEmail(!1);n.useMobile(!1);n.hasBody(!1);n.hasAdv(!1);n.hasJobTitle(!0);n.hasUploadCV(!0)})