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();
}
});
});
}