",{class:"iti-flag"}).appendTo(selectedFlag),$("
",{class:"arrow"}).appendTo(this.selectedFlagInner),this.countryList=$("
",{class:"country-list v-hide"}).appendTo(flagsContainer),this.preferredCountries.length&&(this._appendListItems(this.preferredCountries,"preferred"),$("- ",{class:"divider"}).appendTo(this.countryList)),this._appendListItems(this.countries,""),this.dropdownHeight=this.countryList.outerHeight(),this.countryList.removeClass("v-hide").addClass("hide"),window.innerWidth<500&&this.countryList.outerWidth(this.telInput.outerWidth()),this.countryListItems=this.countryList.children(".country")},_appendListItems:function(countries,className){var tmp="";console.error(className,countries);for(var i=0;i",tmp+="",tmp+=""+c.name+"",tmp+="+"+c.dialCode+"",tmp+="
"}this.countryList.append(tmp)},_setInitialState:function(){var val=this.telInput.val();this._getDialCode(val)?this._updateFlagFromNumber(val):(this.options.defaultCountry?this.options.defaultCountry=this._getCountryData(this.options.defaultCountry.toLowerCase(),!1,!1):this.options.defaultCountry=this.preferredCountries.length?this.preferredCountries[0]:this.countries[0],this._selectFlag(this.options.defaultCountry.iso2),val||this._updateDialCode(this.options.defaultCountry.dialCode,!1)),val&&this._updateVal(val,!1)},_initListeners:function(){var that=this;this._initKeyListeners(),(this.options.autoHideDialCode||this.options.autoFormat)&&this._initFocusListeners();var label=this.telInput.closest("label");label.length&&label.on("click"+this.ns,(function(e){that.countryList.hasClass("hide")?that.telInput.focus():e.preventDefault()})),this.selectedFlagInner.parent().on("click"+this.ns,(function(e){!that.countryList.hasClass("hide")||that.telInput.prop("disabled")||that.telInput.prop("readonly")||that._showDropdown()})),this.options.utilsScript&&(windowLoaded?this.loadUtils():$(window).load((function(){that.loadUtils()})))},_initKeyListeners:function(){var that=this;this.options.autoFormat&&this.telInput.on("keypress"+this.ns,(function(e){if(e.which>=keys_SPACE&&!e.metaKey&&window.intlTelInputUtils&&!that.telInput.prop("readonly")){e.preventDefault();var isAllowedKey=e.which>=keys_ZERO&&e.which<=keys_NINE||e.which==keys_PLUS,input=that.telInput[0],noSelection=that.isGoodBrowser&&input.selectionStart==input.selectionEnd,max=that.telInput.attr("maxlength"),val=that.telInput.val();if((!max||val.length0;i--){var leftChar=val.charAt(i-1);if($.isNumeric(leftChar)||val.substr(i-2,2)==originalLeftChars)return i}return 0},_getCursorFromDigitsOnRight:function(val,digitsOnRight){for(var i=val.length-1;i>=0;i--)if($.isNumeric(val.charAt(i))&&0==--digitsOnRight)return i;return 0},_getDigitsOnRight:function(val,selectionEnd){for(var digitsOnRight=0,i=selectionEnd;iwindowTop,cssTop=!dropdownFitsBelow&&dropdownFitsAbove?"-"+(this.dropdownHeight-1)+"px":"";this.countryList.css("top",cssTop)},_bindDropdownListeners:function(){var that=this;this.countryList.on("mouseover"+this.ns,".country",(function(e){that._highlightListItem($(this))})),this.countryList.on("click"+this.ns,".country",(function(e){that._selectListItem($(this))}));var isOpening=!0;$("html").on("click"+this.ns,(function(e){isOpening||that._closeDropdown(),isOpening=!1}));var query="",queryTimer=null;$(document).on("keydown"+this.ns,(function(e){e.preventDefault(),e.which==keys_UP||e.which==keys_DOWN?that._handleUpDownKey(e.which):e.which==keys_ENTER?that._handleEnterKey():e.which==keys_ESC?that._closeDropdown():(e.which>=keys_A&&e.which<=keys_Z||e.which==keys_SPACE)&&(queryTimer&&clearTimeout(queryTimer),query+=String.fromCharCode(e.which),that._searchForCountry(query),queryTimer=setTimeout((function(){query=""}),1e3))}))},_handleUpDownKey:function(key){var current=this.countryList.children(".highlight").first(),next=key==keys_UP?current.prev():current.next();next.length&&(next.hasClass("divider")&&(next=key==keys_UP?next.prev():next.next()),this._highlightListItem(next),this._scrollTo(next))},_handleEnterKey:function(){var currentCountry=this.countryList.children(".highlight").first();currentCountry.length&&this._selectListItem(currentCountry)},_searchForCountry:function(query){for(var i=0;imax&&(formatted=formatted.substr(0,max))}else formatted=val;this.telInput.val(formatted)},_updateFlagFromNumber:function(number){this.options.nationalMode&&this.selectedCountryData&&"1"==this.selectedCountryData.dialCode&&"+"!=number.charAt(0)&&("1"!=number.charAt(0)&&(number="1"+number),number="+"+number);var dialCode=this._getDialCode(number),countryCode=null;if(dialCode){var countryCodes=this.countryCodes[this._getNumeric(dialCode)];if(!(this.selectedCountryData&&-1!=$.inArray(this.selectedCountryData.iso2,countryCodes))||this._isUnknownNanp(number,dialCode))for(var j=0;j=4},_highlightListItem:function(listItem){this.countryListItems.removeClass("highlight"),listItem.addClass("highlight")},_getCountryData:function(countryCode,ignoreOnlyCountriesOption,allowFail){for(var countryList=ignoreOnlyCountriesOption?allCountries:this.countries,i=0;icontainerBottom){middle&&(newScrollTop+=middleOffset);var heightDifference=containerHeight-elementHeight;container.scrollTop(newScrollTop-heightDifference)}},_updateDialCode:function(newDialCode,focusing){var newNumber,inputVal=this.telInput.val();if(newDialCode="+"+newDialCode,this.options.nationalMode&&"+"!=inputVal.charAt(0))newNumber=inputVal;else if(inputVal){var prevDialCode=this._getDialCode(inputVal);if(prevDialCode.length>1)newNumber=inputVal.replace(prevDialCode,newDialCode);else newNumber=newDialCode+("+"!=inputVal.charAt(0)?$.trim(inputVal):"")}else newNumber=!this.options.autoHideDialCode||focusing?newDialCode:"";this._updateVal(newNumber,focusing)},_getDialCode:function(number){var dialCode="";if("+"==number.charAt(0))for(var numericChars="",i=0;i1&&(!/Object/.test(Object.prototype.toString.call(value))||null==value)){if(options=$.extend({},options),null==value&&(options.expires=-1),"number"==typeof options.expires){var days=options.expires,t=options.expires=new Date;t.setDate(t.getDate()+days)}return value=String(value),document.cookie=[encodeURIComponent(key),"=",options.raw?value:encodeURIComponent(value),options.expires?"; expires="+options.expires.toUTCString():"",options.path?"; path="+options.path:"",options.domain?"; domain="+options.domain:"",options.secure?"; secure":""].join("")}for(var pair,decode=(options=value||{}).raw?function(s){return s}:decodeURIComponent,pairs=document.cookie.split("; "),i=0;pair=pairs[i]&&pairs[i].split("=");i++)if(decode(pair[0])===key)return decode(pair[1]||"");return null}}(jQuery);