window.dataLayer = window.dataLayer || [];
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-WT75M95');
if (data.page === ('createaccount' || 'login' || 'AttendeeInfo' || 'otherInfo')) {
function setNativeValue(element, value) {
var valueSetter = Object.getOwnPropertyDescriptor(element, 'value').set;
console.log('setter', valueSetter)
var prototype = Object.getPrototypeOf(element);
var prototypeValueSetter = Object.getOwnPropertyDescriptor(
prototype,
'value'
).set;
if (valueSetter && valueSetter !== prototypeValueSetter) {
prototypeValueSetter.call(element, value);
} else {
valueSetter.call(element, value);
}
}
// IE does not support the Event constructor. We need this fallback.
function createEvent(eventName, eventOptions) {
if (typeof Event === 'function') {
// This is a modern browser that supports the Event constructor.
return new Event(eventName, eventOptions)
} else {
// This is IE :(.
var event = document.createEvent('Event')
event.initEvent(eventName, eventOptions.bubbles, eventOptions.cancelable, eventOptions.detail)
return event
}
}
script = document.createElement('script');
script.type = 'text/javascript';
script.async = true;
script.onload = function() {
geoip2.city(
function(response) {
// countrySelect = $('#formAttendee-countryId');
// setNativeValue(countrySelect, response.country.iso_code);
if(document.getElementById('formAttendee-countryId')){
var countrySelect = document.getElementById('formAttendee-countryId');
countrySelect.value = response.country.iso_code;
countrySelect.dispatchEvent(createEvent('change', { bubbles: true }));
}
// stateSelect = $('#formAttendee-stateId');
// setNativeValue(stateSelect, response.subdivisions.iso_code);
// setTimeout(function(){
if(document.getElementById('formAttendee-stateId')){
var stateSelect = document.getElementById('formAttendee-stateId');
stateSelect.value = response.subdivisions[0].iso_code;
stateSelect.dispatchEvent(createEvent('change', { bubbles: true }));
}
// },200)
},
function(error) {
console.log(error)
}
)
};
script.src = '//geoip-js.com/js/apis/geoip2/v2.1/geoip2.js';
document.getElementsByTagName('head')[0].appendChild(script);
}