var isManuallyGoogleAddressChangedByUser = false; (function ($) { $.fn.extend({ Phone: function (options) { var telInput = $(this); var defaults = { reInit : false } var telOption = $.extend(defaults, options); var vReInit = telOption.reInit; // for ReInit plugin var telreInit = function () { $(telInput).insertBefore($(telInput).closest('.intl-tel-input')); $(telInput).next('.intl-tel-input').remove(); }; if (vReInit) { telreInit(); } var iTel = telInput.intlTelInput({ showCountryDialCode: true, nationalMode: true, preferredCountries: ['us', 'ca', 'mx', 'gb'], //autoPlaceholder: false, formatOnInit: true, // initialCountry: "auto", geoIpLookup: function (callback) { $.ajax({ url: 'https://ipinfo.io', type: 'GET', dataType: "jsonp", success: function (resp) { var countryCode = (resp && resp.country) ? resp.country : "us"; callback[2].setCountry(countryCode); }, error: function (XMLHttpRequest, textStatus, errorThrown) { callback[2].setCountry("US"); } }).error(function () { callback[2].setCountry("US"); }); }, //customPlaceholder: false, utilsScript: JsGlobalS3SiteURL+"/Content/smilestream/js/intlTelInput_utils.js", separateDialCode: true }); // Set Country automatically in input -- Its commented as its giving errors. //iTel[2].options.geoIpLookup(iTel); var reset = function () { telInput.removeClass("terror"); telInput.closest('.intl-tel-input').find('.fa-remove').remove(); telInput.next('.errormsg').remove(); }; // on blur: validate telInput.blur(function () { reset(); //console.log("Plain number: "+ intlTelInputUtils.formatNumber(telInput.intlTelInput("getNumber"))) //console.log("number + iso2: "+ intlTelInputUtils.formatNumber(telInput.intlTelInput("getNumber"),telInput.intlTelInput("getSelectedCountryData").iso2)) //console.log("number, null, INTL: "+ intlTelInputUtils.formatNumber(telInput.intlTelInput("getNumber"),null,intlTelInputUtils.numberFormat.INTERNATIONAL)) //console.log("number, iso2, INTL: "+intlTelInputUtils.formatNumber(telInput.intlTelInput("getNumber"),telInput.intlTelInput("getSelectedCountryData").iso2,intlTelInputUtils.numberFormat.INTERNATIONAL)) //console.log("number, null, NTL: "+intlTelInputUtils.formatNumber(telInput.intlTelInput("getNumber"),null,intlTelInputUtils.numberFormat.NATIONAL)) //console.log("number, iso2, NTL: "+intlTelInputUtils.formatNumber(telInput.intlTelInput("getNumber"),telInput.intlTelInput("getSelectedCountryData").iso2,intlTelInputUtils.numberFormat.NATIONAL)) if (telInput.intlTelInput("getSelectedCountryData").dialCode == "977" && (this.id == "RegPhoneId1" || this.id == "LoginPhoneId" || this.id =="PhoneNumber")) { telInput.closest('.intl-tel-input').find('.fa-check, .fa-remove, .errormsg').remove(); $('').insertBefore(telInput); if (telInput.hasClass('phone')) { $('
ONLY Google Authentication available in this area
').insertAfter(telInput); } $(this).addClass("terror"); } else { if ($.trim(telInput.val()) && $.trim(telInput.val()) != '+' + telInput.intlTelInput("getSelectedCountryData").dialCode) { // debugger; if (telInput.intlTelInput("isValidNumber")) { telInput.closest('.intl-tel-input').find('.fa-check, .fa-remove, .errormsg').remove(); $('').insertBefore(telInput); $(telInput).addClass('noradius').closest('.form-group').find('.jsPhoneVerifybtn').removeClass('hide'); if (isFunctionDefined('addressPhoneFormat')) { telInput.val(telInput.intlTelInput("getNumber", null, intlTelInputUtils.numberFormat.INTERNATIONAL)); } else { telInput.val(telInput.intlTelInput("getNumber", intlTelInputUtils.numberFormat.INTERNATIONAL)); } } else { $(telInput).removeClass('noradius').closest('.form-group').find('.jsPhoneVerifybtn').addClass('hide'); telInput.closest('.intl-tel-input').find('.fa-check, .fa-remove, .errormsg').remove(); $('').insertBefore(telInput); if (telInput.hasClass('phone')) { $('
The phone number is not valid
').insertAfter(telInput); } else if (telInput.hasClass('fax')) { $('
The fax number is not valid
').insertAfter(telInput); } $(this).addClass("terror"); } } } }); // on keyup / change flag: reset telInput.on("keyup change", reset); /* Phone field script end */ return iTel; }, IsValidAddress: function (fields) { var isValid = true; if ($.trim($(fields.Address1).val()) == '' && $.trim($(fields.City).val()) == '' //&& ($.trim($(fields.Country).val()) == '' || $.trim($(fields.Country).val()) == '0') && ($.trim($(fields.State).val()) == '' || $.trim($(fields.State).val()) == '0') && $.trim($(fields.Zip).val()) == '') { isValid = false; $(this).parent().children('.error').text(fields.ErrorMessage).show(); } for (var field in fields) { $(fields[field]).parent().children('.error').text('').hide(); if ($(fields[field]).length > 0 && ($.trim($(fields[field]).val()) == '' || $.trim($(fields[field]).val()) == '0')) { if ($(fields[field]).get(0).nodeName == 'SELECT' && $(fields[field]).find('option').length > 1) { isValid = false; $(fields[field]).parent().children('.error').text(fields.ErrorMessage).show(); } else if ($(fields[field]).get(0).nodeName == 'INPUT') { isValid = false; $(fields[field]).parent().children('.error').text(fields.ErrorMessage).show(); } else { $(fields[field]).val(0) } } } return isValid; }, IsValidAddressForRegister: function (fields) { var isValid = true; if ($.trim($(this).val()) == '' && $.trim($(fields.Address1).val()) == '' && $.trim($(fields.City).val()) == '' && ($.trim($(fields.Country).val()) == '' || $.trim($(fields.Country).val()) == '0') && ($.trim($(fields.State).val()) == '' || $.trim($(fields.State).val()) == '0') && $.trim($(fields.Zip).val()) == '') { isValid = false; $('#' + $(this).attr('id') + '_code_err').show().html('Address is required'); $('#' + $(this).attr('id') + '_code_err').parent('.form-group').addClass('ferr'); } for (var field in fields) { $(fields[field] + '_code_err').hide().html(''); $(fields[field] + '_code_err').parent('.form-group').removeClass('ferr'); if ($(fields[field]).length > 0 && ($.trim($(fields[field]).val()) == '' || $.trim($(fields[field]).val()) == '0')) { if ($(fields[field]).get(0).nodeName == 'SELECT' && $(fields[field]).find('option').length > 1) { isValid = false; $(fields[field] + '_code_err').show().html($(fields[field]).closest('.input-group').find('.input-group-addon').text() + ' is required'); $(fields[field] + '_code_err').parent('.form-group').addClass('ferr'); } else if ($(fields[field]).get(0).nodeName == 'INPUT') { isValid = false; $(fields[field] + '_code_err').show().html($(fields[field]).closest('.input-group').find('.input-group-addon').text() + ' is required'); $(fields[field] + '_code_err').parent('.form-group').addClass('ferr'); } else { $(fields[field]).val(0) } } } return isValid; }, }); $.fn.extend({ Phone: $.fn.Phone, IsValidAddress: $.fn.IsValidAddress, IsValidAddressForRegister: $.fn.IsValidAddressForRegister }); })(jQuery); function isNotDefined(value) { return typeof value === "undefined"; } function InitializeGoogleAddress(listOfCountry, listOfGoogleAddressIds, eleIds) { if (listOfGoogleAddressIds == undefined || listOfGoogleAddressIds == null || eleIds == undefined || eleIds == null) { return false; } var componentForm = { street_number: 'long_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'long_name', country: 'short_name', postal_code: 'long_name' }; var eleIdName = { street_number: eleIds.Address1, route: eleIds.Address2, locality: eleIds.City, administrative_area_level_1: eleIds.State, country: eleIds.Country, postal_code: eleIds.Zip }; $.each(listOfGoogleAddressIds, function (index, name) { // Custom Design for Google Address Lookup style. var adBtnHTML = ''; var suiteHTML = '
' + POCResources.Add_suite_or_apartment_if_needed +'
'; $('#' + name).next('.btn-adDetail').remove(); setTimeout(function () { $('#' + name).val(''); },500); $(adBtnHTML).insertAfter($('#' + name)); $('.jsSuitediv').remove(); $('#' + name).closest(eleIds.Closest).find(eleIds.AddressDetail + ' .labelInfo').remove(); // $(suiteHTML).prependTo($('#' + name).closest(eleIds.Closest).find(eleIds.AddressDetail)); $(document).off('click', '.btn-adDetail'); $(document).on('click', '.btn-adDetail', function () { //$(this).next('.btn-adDetail').addClass('hide'); $(this).closest(eleIds.Closest).find(eleIds.AddressDetail).removeClass('hide'); $(this).closest('.form-group').addClass('nomar'); if (isFunctionDefined('modalResponsiveCall')) { modalResponsiveCall(); } }); $('#' + name).on('click', function () { //$(this).next('.btn-adDetail').addClass('hide'); if ($(this).closest(eleIds.Closest).find(eleIds.AddressDetail + ' .error:visible').text().length == 0) { $(this).closest(eleIds.Closest).find(eleIds.AddressDetail + ' .error:visible').hide(); } if ($(this).closest(eleIds.Closest).find(eleIds.AddressDetail + ' .error:visible').length > 0) { $(this).closest(eleIds.Closest).find(eleIds.AddressDetail).removeClass('hide'); $(this).closest('.form-group').addClass('nomar'); } else { $(this).closest(eleIds.Closest).find(eleIds.AddressDetail).addClass('hide'); $(this).closest('.form-group').removeClass('nomar'); } if (isFunctionDefined('modalResponsiveCall')) { modalResponsiveCall(); } }); //$(".pac-container").remove(); listOfGoogleAddressIds[name] = new google.maps.places.Autocomplete($('#' + name)[0], { types: ['geocode'] }); if (!$('#' + name).closest(eleIds.Closest).find(eleIds.AddressDetail).hasClass('hide')) { $('#' + name).next('.btn-adDetail').removeClass('hide'); } google.maps.event.addListener(listOfGoogleAddressIds[name], 'place_changed', function () { var place = listOfGoogleAddressIds[name].getPlace(); var form = componentForm; for (var component in form) { $('#' + name).closest(eleIds.Closest).find(eleIdName[component]).val('').addClass('fieldEmpty').next('.error').addClass('text-nowrap').text(eleIds.ErrorMessage).show(); } for (var classname in eleIdName) { if (!$('#' + name).closest(eleIds.Closest).find(eleIdName[classname]).hasClass('fieldEmpty')) { $('#' + name).closest(eleIds.Closest).find(eleIdName[classname]).addClass('fieldEmpty'); } } if (place == undefined || place.address_components == undefined || place.geometry == undefined) { $('#' + name).closest(eleIds.Closest).find(eleIds.AddressDetail).removeClass('hide'); $('#' + name).closest('.form-group').addClass('nomar'); return false; } $('#' + name).closest(eleIds.Closest).find(eleIdName.country).removeAttr('data-statename'); for (var i = 0; i < place.address_components.length; i++) { var addressType = place.address_components[i].types[0]; //console.log(place.address_components[i]) if (typeof form[addressType] !== 'undefined') { var val = place.address_components[i][form[addressType]]; //console.log(place.address_components[i]) switch (addressType) { case 'country': place.address_components.find(function (item) { if (item.types.indexOf('administrative_area_level_1') >= 0) { $('#' + name).closest(eleIds.Closest).find(eleIdName.country).attr('data-statename', item.long_name); } }); $('#' + name).closest(eleIds.Closest).find(eleIdName.country).val(listOfCountry.find(function (item) { if (item.Group.Name == val) return item; }).Value).removeClass('fieldEmpty').change(); $('#' + name).closest(eleIds.Closest).find(eleIdName.country).val(listOfCountry.find(function (item) { if (item.Group.Name == val) return item; }).Value).removeClass('fieldEmpty').next('.error').hide(); break; case 'route': case 'street_number': if (addressType != 'route') { var newval = val; place.address_components.find(function (item) { if (item.types.indexOf('route') >= 0) { newval += ' ' + item.long_name; } }); $('#' + name).closest(eleIds.Closest).find(eleIdName[addressType]).val(newval).removeClass('fieldEmpty').next('.error').hide(); } else if ($('#' + name).closest(eleIds.Closest).find(eleIdName.street_number).val() == '') { $('#' + name).closest(eleIds.Closest).find(eleIdName.street_number).val(val).removeClass('fieldEmpty').next('.error').hide(); } break; default: $('#' + name).closest(eleIds.Closest).find(eleIdName[addressType]).val(val).removeClass('fieldEmpty').next('.error').hide(); break; } } } $('#' + name).closest(eleIds.Closest).find(eleIds.AddressDetail).removeClass('hide'); $('#' + name).closest('.form-group').addClass('nomar'); $('#' + name).removeClass('rbds').next('.btn-adDetail').removeClass('hide'); if (isFunctionDefined('modalResponsiveCall')) { modalResponsiveCall(); } $('#' + name).closest(eleIds.Closest).find(eleIds.AddressDetail).find('.labelInfoNoVisi').addClass('labelInfoVisi').removeClass('labelInfoNoVisi'); $('#' + name).val('').next('.error').hide(); if ($('#' + name).hasClass('fromRegister') || $('#' + name).hasClass('frm_user_profile')) { $('#' + name).closest(eleIds.Closest).find(eleIds.Longitude).val(0) $('#' + name).closest(eleIds.Closest).find(eleIds.Latitude).val(0) $('#' + name).IsValidAddressForRegister({ Address1: '#StreetAddress1', City: '#Reg_City', Country: '#Country', State: '#UserState', Zip: '#zip_code', ErrorMessage: 'Address is required' }); //console.log(place.geometry.location.lat(), place.geometry.location.lng()) $('#' + name).closest(eleIds.Closest).find(eleIds.Longitude).val(place.geometry.location.lng()) $('#' + name).closest(eleIds.Closest).find(eleIds.Latitude).val(place.geometry.location.lat()) isManuallyGoogleAddressChangedByUser = false; } if (eleIds.AddressDetail == '.jsAddressDetailForCourse' || eleIds.AddressDetail == '.jsAddressDetailForCustomer') { $('#' + name).closest(eleIds.Closest).find(eleIds.Longitude).val(place.geometry.location.lng()); $('#' + name).closest(eleIds.Closest).find(eleIds.Latitude).val(place.geometry.location.lat()); isManuallyGoogleAddressChangedByUser = false; } if (eleIds.hasOwnProperty('CallBack')) { eleIds.CallBack(); } }); }); }