{"version":3,"sources":["global/geolocation.js"],"names":["getQueryVariable","variable","query","window","location","search","substring","vars","split","i","length","pair","debug","autoDetectLocation","callback","$","ajax","url","request","dataType","manager","jsonp","manager2","attachAutosuggest","onApiSuccess","error","onError","message","printoutPanel","document","onApiError","loadMapScenario","options","maxResults","addressSuggestions","Microsoft","Maps","AutosuggestManager","onSuggestionSelected","selectedData","onSuggestionSelectedCommon","onSuggestionSelected2","mapData","getElementById","errorBox","innerHTML","loadModule","setTimeout","onLoad","errorCallback","initPage","console","_typeof","Function","log","type","data","getSuggestionData","res","latitude","Storage","lat","lon","localStorageSetItemCommon","CallRestService","resourceSets","resources","address","siblings","getLatLon","trigger","formattedSuggestion","currentState","longitude","getPinCode","bingMapsAPIKey_AutoComplete","estimatedTotal","postalCode","zip","geocodePoints","coordinates","getLatLonFromQuery","encodeURIComponent","resource","adminDistrict","_regionA","indexOf","notifyOtherPage","zipcode","show","_currentCookie","updateIncomingZip","dataZip","cookieStorage","getCookie","localStorage","platform","pe","updateZipCode","LocalStorageSecurityCheck","setItem","removeItem","_SecurityCheck","e","key","value","setCookie","localStorageGetItemCommon","getItem","clearStorage","zipInURL","href","geolocation","redirect","path","_classCallCheck","this","_vars","destination","peFlag","GeoVars","originalTitleText","$geo_overlay","$geo_close","$geolocator","$geolocatorGo","$geo_input_global","$zip_input_nav","$nav_zip_span","$nav_location_btn","$nav_li_a","$loading_gif","$secondary_nav","$nav_brand","ready","tapReady","setInterval","digitalDataTrackActionTriggerActive","TAPReadyForNewPageLoad","navClickHandler","clearInterval","event","tries","_elements","zipGate","destinationURL","target","getAttribute","desPath","$nav_right","zipCheckLocalStorage","init","setZip","updateNavZip","currentZipCode","geolocator","getLocation","suggestionInterval","on","hide","$input","msMap","find","resultCount","Math","min","mm","suggestion","lastSuggestion","text","focusout","preventDefault","keydown","geoBtnGo","next","click","val","hasClass","_e","prevFocusElm","removeClass","openForm","undefined","activeElement","handleLocationBtnClick","addClass","focus","closeForm","$zip_input_nav_close","toggleClass","tapHandlerReady","showOverlay","checkURL","tapGlobalModal","_pathname","pathname","inArray","_checkURL","destinationPath","long","timeout","maximumAge","navigator","getCurrentPosition","setPositions","geoBlocked","getZipCodeDesktop","enableHighAccuracy","ajaxCall","position","coords","state","updateAll","updateLocalStoragePositions","thisObj","parent","$errorBoxSpan","html","country","inputText","_satellite","track","tapGlobalNav","test","trim","is","complete","status","JSON","stringify","zipCode","zip_code","isValidZip","fadeOut","jqXHR","textStatus","errorThrown","ev","updateLocalStorageZip","zipFromURL","isMobile","mobileTest","userAgent","substr","errorRes","Cookies","get","set"],"mappings":"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","file":"geolocation.min.js","sourcesContent":["// Debug START\r\nvar debug = false;\r\n\r\n// check query string for debug=1\r\nfunction getQueryVariable(variable) {\r\n var query = window.location.search.substring(1);\r\n var vars = query.split(\"&\");\r\n for (var i = 0; i < vars.length; i++) {\r\n var pair = vars[i].split(\"=\");\r\n if (pair[0] == variable) {\r\n return pair[1];\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nif (getQueryVariable(\"debug\") == 1) {\r\n debug = true;\r\n debug && console.log(\"debug= \" + debug);\r\n}\r\n\r\n// clear local storage\r\nvar clearStorage = false;\r\n//clearStorage && localStorage.clear();\r\ndebug && console.log(\"debug= \" + debug + \" && clearStorage= \" + clearStorage);\r\n\r\n// Debug END\r\n\r\n// used to apply zip from URL functionality \r\nvar zipInURL = location.href.indexOf(\"zip=\") > -1;\r\n//Regional offer\r\n//Region A\r\n//var _regionA = [\"AZ\", \"CA\", \"CO\", \"CT\", \"DE\", \"FL\", \"IA\", \"IL\", \"IN\", \"MA\", \"ME\", \"MI\", \"MN\", \"MT\", \"ND\", \"NE\", \"NH\", \"NJ\", \"NM\", \"NV\", \"NY\", \"OH\", \"PA\", \"RI\", \"SD\", \"UT\", \"VT\", \"WI\"];\r\nvar _regionA = [\"CA\"];\r\n\r\n\r\nclass geolocation { \r\n GeoVars;\r\n constructor() {\r\n // vars\r\n var _vars = {\r\n currentZipCode: \"\",\r\n destination: false, // if destination link is clicked\r\n originalTitleText: '',\r\n peFlag: false\r\n };\r\n\r\n this.GeoVars = _vars;\r\n\r\n // Elements\r\n var _elements = {\r\n $nav_zip_span: $(\".location i span\"), // Zip code in nav\r\n $nav_location_btn: $(\".location\"), // '.location' icon on nav\r\n $geo_overlay: $(\".geo-overlay\"), //geo overlay full page\r\n $geo_close: $(\".geo-close\"), // geo Overlay 'X'\r\n $geolocator: $(\".geolocator\"), // OK, USE MY LOCATION btn\r\n $geolocatorGo: $(\".geolocator-go\"), // Go geo\r\n $geo_input_global: $(\".geo-input\"), // nav & overlay geo input\r\n $zip_input_nav: $(\".nav-zip-input\"),\r\n $zip_input_nav_close: $(\".close-nav-zip-input\"), // close zip input\r\n $nav_right: $(\".navbar-right\"), //\r\n $nav_li_a: $(\".navigation li a\"), // used when link in nav is clicked\r\n $loading_gif: $(\".tmp-honda-loader\"), //loading gif,\r\n $secondary_nav: $(\".sidebar-nav-secondary\"), // mobile secondary navbar\r\n $nav_brand: $(\".navbar-brand\"), // logo brand on navbar\r\n };\r\n\r\n // pages that need zipGate\r\n // used for OnClick and OnLoad\r\n var _checkURL = [\r\n \"/\",\r\n \"/dealer-locator\",\r\n \"/special-offers\",\r\n \"/vehicle-search\",\r\n \"/payment-estimator\",\r\n \"/vehicle-details\"\r\n ];\r\n\r\n\r\n $(document).ready(function() {\r\n //first: Check IE/Safari security issue with LocalStorage\r\n LocalStorageSecurityCheck();\r\n\r\n /*\r\n * *************************************\r\n * check if zip code is available in LocalStorage\r\n * check if zipGate is needed based on page URL\r\n * if found, update fucntions\r\n *\r\n * *************************************\r\n */\r\n\r\n // used to apply zip from URL functionality\r\n if (zipInURL && zipCheckLocalStorage.init()) {\r\n var updatedZIP = getQueryVariable(\"zip\");\r\n localStorageSetItemCommon(\"_GeoCurrentZipCode\", updatedZIP);\r\n }\r\n\r\n // Check if there is a value for zip code in LocalStorage\r\n if (zipCheckLocalStorage.init()) {\r\n // if Zip is available, call setZip to update nav '$nav_zip_span'\r\n setZip.updateNavZip(_vars.currentZipCode);\r\n } else {\r\n // there no zip in LocalStorage\r\n // find user zip code\r\n // Mobile and Desktop\r\n geolocator.getLocation();\r\n }\r\n\r\n var suggestionInterval;\r\n\r\n $(\".search-box\").on(\"focus\", function() {\r\n errorBox.hide();\r\n var $input = $(this);\r\n var lastSuggestion = \"\";\r\n suggestionInterval = setInterval(function() {\r\n var msMap = $(\".MicrosoftMap\").find(\"ul li\");\r\n\r\n var resultCount = msMap.length;\r\n\r\n if (resultCount > 0) {\r\n for (var i = 0; i < Math.min(3, resultCount); i++) {\r\n var mm = $(msMap[i]);\r\n var suggestion =\r\n mm.find(\".line1\").text() + \", \" + mm.find(\".line2\").text();\r\n if (\r\n suggestion != lastSuggestion &&\r\n suggestion.indexOf(\"United States\") >= 0\r\n ) {\r\n $input.data(\"suggestion\", suggestion);\r\n break;\r\n } else {\r\n $input.data(\"suggestion\", \"\");\r\n }\r\n }\r\n } else {\r\n $input.data(\"suggestion\", \"\");\r\n }\r\n }, 60);\r\n });\r\n $(\".search-box\").focusout(function() {\r\n // debug && console.log('blur...');\r\n clearInterval(suggestionInterval);\r\n });\r\n\r\n $('.navigation li a, .navbar-brand a').on('click',function(e){\r\n e.preventDefault();\r\n });\r\n\r\n function tapHandlerReady(event) {\r\n window.digitalDataTrackActionTriggerActive = true;\r\n // wait for adobe dtm to fire before directing to inventory\r\n var tries = 0;\r\n var tapReady = setInterval(function() {\r\n if(\"function\"==typeof window.TAPReadyForNewPageLoad && window.TAPReadyForNewPageLoad()) {\r\n clearInterval(tapReady);\r\n navClickHandler(event);\r\n }\r\n if(++tries === 2) {\r\n clearInterval(tapReady);\r\n navClickHandler(event);\r\n }\r\n }, 500);\r\n }\r\n\r\n // Go btn\r\n _elements.$geolocatorGo.on('click', function(e) {\r\n geolocator.geoBtnGo($(this));\r\n }); //click END\r\n\r\n // keyboard enter pressed\r\n _elements.$geo_input_global.keydown(function(e) {\r\n if (e.key == 'Enter') {\r\n geolocator.geoBtnGo($(this).next('.geolocator-go'));\r\n }\r\n }); //click END\r\n\r\n //keyboard enter pressed - zipgate overlay\r\n $('.geo-search-overlay, .geo-search-nav-sm').keydown(function(event) {\r\n if (event.key !== 'Enter') {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n\r\n const $input = $(this);\r\n\r\n $input\r\n .siblings('.geolocator-go')\r\n .click();\r\n\r\n setTimeout(() => {\r\n if (!$input.val() && $input.hasClass('form-error')) {\r\n $input.focus();\r\n }\r\n });\r\n });\r\n\r\n // OK, use my location btn click\r\n _elements.$geolocator.on('click', (_e) => {\r\n // e.preventDefault();\r\n geolocator.getLocation();\r\n });\r\n\r\n let prevFocusElm;\r\n\r\n const closeForm = () => {\r\n _elements.$zip_input_nav.removeClass('active');\r\n _elements.$nav_right.removeClass('active');\r\n\r\n if (prevFocusElm) {\r\n prevFocusElm.focus();\r\n prevFocusElm = undefined;\r\n }\r\n };\r\n\r\n const openForm = () => {\r\n prevFocusElm = document.activeElement;\r\n\r\n _elements.$zip_input_nav.show(300).addClass('active');\r\n _elements.$nav_right.addClass('active');\r\n // highlight input val()\r\n _elements.$geo_input_global\r\n .val('')\r\n .focus()\r\n .select();\r\n };\r\n\r\n const handleLocationBtnClick = (e) => {\r\n // e.preventDefault();\r\n if (e.type === 'keydown' && e.key !== 'Enter') {\r\n return;\r\n }\r\n\r\n openForm();\r\n };\r\n\r\n _elements.$geo_input_global.on('keydown', (e) => {\r\n if (e.key === 'Escape') {\r\n closeForm();\r\n }\r\n });\r\n\r\n _elements.$nav_location_btn.on('click', handleLocationBtnClick);\r\n _elements.$nav_location_btn.on('keydown', handleLocationBtnClick);\r\n\r\n _elements.$zip_input_nav_close.on('click', function(e) {\r\n closeForm();\r\n });\r\n\r\n // _elements.$nav_location_btn.on('click', function(e) {\r\n // // _elements.$geo_overlay.removeClass('hidden');\r\n // e.preventDefault();\r\n // });\r\n\r\n // Close Geolocation overlay onclick\r\n // and redirect to homepage if needed\r\n // or stay on the same page\r\n _elements.$geo_close.on(\"click\", function(e) {\r\n // (SAVED) code to go back to prev page onclick:\r\n // onClick=\"history.go(-1); return false;\"\r\n\r\n // check destination link is clicked\r\n if (_vars.destination || _vars.peFlag) {\r\n // close zipGate overlay\r\n _elements.$geo_overlay.toggleClass(\"hidden\");\r\n _vars.peFlag = false;\r\n $('.geo-title h4').text(_vars.originalTitleText);\r\n } else {\r\n // call function to redirect the page\r\n redirect(\"/\");\r\n // e.preventDefault();\r\n }\r\n });\r\n\r\n function navClickHandler(e) {\r\n // get destination path\r\n var desPath = e.target.getAttribute('data-destination');\r\n var target = e.target.getAttribute('target')\r\n debug && console.log(\"desPath: \", desPath, target);\r\n //if nav has data-destination\r\n if (desPath && target !== '_blank') {\r\n // destination link is clicked\r\n _vars.destination = true;\r\n\r\n // call zipGate to check URL\r\n zipGate.destinationURL(desPath);\r\n }\r\n // e.preventDefault();\r\n }\r\n\r\n // check nav item onclick\r\n // if destination needs zipGate?\r\n _elements.$nav_li_a.on(\"click\", tapHandlerReady);\r\n\r\n _elements.$nav_right.on(\"click\", tapHandlerReady);\r\n\r\n _elements.$secondary_nav.on(\"click\", tapHandlerReady);\r\n\r\n _elements.$nav_brand.on(\"click\", tapHandlerReady);\r\n }); //document ready END\r\n\r\n /*\r\n * *************************************\r\n * zipGate START\r\n * if geo fails for mobile and desktop\r\n * and zip is needed for the page use\r\n * geo overlay to request it\r\n * *************************************\r\n */\r\n\r\n var zipGate = new (function() {\r\n this.showOverlay = function() {\r\n debug && console.log(\"zipGate\");\r\n // is zipGate needed\r\n\r\n //for tap on zipgate showing\r\n if(typeof window.tapGlobalModal === \"function\") {\r\n window.tapGlobalModal(\"geo-modalload\");\r\n }\r\n\r\n if (zipGate.checkURL()) {\r\n debug && console.log(\"zipGate.checkURL() required\");\r\n // open zipGate overlay\r\n _elements.$geo_overlay.removeClass(\"hidden\");\r\n } else if (_vars.destination) {\r\n debug && console.log(\"zipGate.checkURL() _vars.destination\");\r\n // if on mobile, close the menu first\r\n if ($(\"#wrapper\").hasClass(\"toggled\")) {\r\n // add 'padding-left' to '.wrapper'\r\n $(\"#wrapper\").toggleClass(\"toggled\");\r\n\r\n // add animation to hamburger menu '#menu-toggle'\r\n $(\"#menu-toggle\").toggleClass(\"active\");\r\n\r\n // add animation to location '#menu-toggle'\r\n $(\".navbar-header .location\").toggleClass(\"active\");\r\n }\r\n // open zipGate overlay\r\n _elements.$geo_overlay.removeClass(\"hidden\");\r\n } else {\r\n debug && console.log(\"zipGate.checkURL() not required\");\r\n }\r\n }; // showOverlay END\r\n\r\n this.checkURL = function() {\r\n var _pathname = window.location.pathname;\r\n\r\n // check _pathname matches anything from _checkURL\r\n if ($.inArray(_pathname, _checkURL) != -1) {\r\n debug && console.log(\"_pathname is in inArray\");\r\n debug && console.log(\"_pathname: \" + _pathname);\r\n return true;\r\n }\r\n\r\n // for (var i = 0; i < _checkURL.length; i++) {\r\n\r\n // debug && console.log('_pathname: ' + _pathname);\r\n // if (_pathname.indexOf(_checkURL[i]) > -1) {\r\n // // if (window.location.href.indexOf(_checkURL[i]) > -1) {\r\n\r\n // console.log('_checkURL: ' + _checkURL);\r\n // console.log('_checkURL[i]: ' + _checkURL[i]);\r\n // console.log(_pathname.indexOf(_checkURL[i]) > -1)\r\n // // if URL matched _checkURl list\r\n // return true;\r\n // } else {\r\n // // if URL different _checkURl\r\n\r\n // }\r\n // } // for END\r\n }; // checkURL END\r\n\r\n this.destinationURL = function(path) {\r\n debug && console.log(\"zipGate.destinationURL: \" + path);\r\n\r\n for (var i = 0; i < _checkURL.length; i++) {\r\n // if destination needs zipGate\r\n if (_checkURL[i] == path) {\r\n // destination link is clicked\r\n _vars.destination = true;\r\n\r\n // set destionation path\r\n _vars.destinationPath = path;\r\n\r\n // debug && console.log('zipGate.destinationURL: path: PASSED:' + path + ' _vars.destination: ' + _vars.destination);\r\n\r\n // Check if there is a value for zip code in LocalStorage\r\n if (zipCheckLocalStorage.init()) {\r\n // call function to redirect\r\n redirect(_vars.destinationPath);\r\n } else {\r\n debug && console.log(\"No zip is available destinationURL\");\r\n // there no zip in LocalStorage\r\n // find user zip code\r\n // Mobile and Desktop\r\n geolocator.getLocation();\r\n }\r\n\r\n // if URL matched _checkURl\r\n return true;\r\n } else {\r\n debug && console.log(\"path: FAILEd\");\r\n redirect(path);\r\n // if URL different _checkURl\r\n }\r\n } // for END\r\n }; // destinationURL END\r\n })(); // zipGate END\r\n\r\n /*\r\n * *************************************\r\n * geolocator START\r\n * - OK, USE MY location btn click\r\n * - HTML5 Geolocation for Mobile\r\n * - getZipCodeDesktop handler for Desktop\r\n * *************************************\r\n */\r\n\r\n var geolocator = new (function() {\r\n var lat, long;\r\n\r\n debug && console.log(\"geolocator\");\r\n\r\n // get location/position\r\n this.getLocation = function() {\r\n // if mobile user\r\n if (mobileTest.init()) {\r\n // if browser supports HTML5 'navigator.geolocation'\r\n // Use HTML5 'navigator.geolocation' to get lat/long\r\n if (navigator.geolocation) {\r\n // get lat/long then call 'geolocator.setPositions()'\r\n // Only works in 'localhost' or 'https'\r\n navigator.geolocation.getCurrentPosition(\r\n geolocator.setPositions,\r\n geolocator.geoBlocked,\r\n {\r\n timeout: 30000,\r\n enableHighAccuracy: true,\r\n maximumAge: 75000\r\n }\r\n );\r\n } else {\r\n // check if zip needed for current page then\r\n // since HTML5 geo is not supported, ask user to input location\r\n zipGate.showOverlay();\r\n }\r\n }\r\n //if desktop - call getZipCodeDesktop handler\r\n else {\r\n getZipCodeDesktop.ajaxCall();\r\n }\r\n }; // this.getLocation END\r\n\r\n this.geoBlocked = function() {\r\n debug && console.log(\"geo Blocked by user\");\r\n\r\n // hide \"Ok, USE MY LOCATION\" btn\r\n _elements.$geolocator.addClass(\"hidden\");\r\n\r\n // check if zip needed for current page then\r\n // since HTML5 geo is BLOCKED by user\r\n zipGate.showOverlay();\r\n }; //geoBlocked\r\n\r\n // for Mobile\r\n // convert lat/long from positions using 'getPinCode'\r\n this.setPositions = function(position) {\r\n lat = position.coords.latitude;\r\n long = position.coords.longitude;\r\n\r\n // update local Lat/long\r\n setZip.updateLocalStoragePositions(lat, long);\r\n\r\n // Call bing to convert to Zip\r\n getPinCode(lat, long, function(res, lat, lon) {\r\n //debug && console.log(res);\r\n\r\n // call updateNavZip to update nav\r\n // call updateLocalStorageZip to update Local Storage\r\n var state = state || 'CA';\r\n setZip.updateAll(state, res, lat, lon);\r\n });\r\n\r\n // debug && console.log(\r\n // // position +\r\n // \"Latitude: \" + lat +\r\n // \" Longitude: \" + long\r\n // );\r\n };\r\n\r\n // geolocation btn click\r\n this.geoBtnGo = function(thisObj) {\r\n var $input = thisObj.parent().find('input.search-box');\r\n\r\n $(\".geo-input-error-wrapper\").removeClass(\"active\");\r\n\r\n // Validate: is there val() in input\r\n if ($input.val()) {\r\n getLatLonFromQuery(\r\n $input.data(\"suggestion\") || $input.val(),\r\n function(lat, lon, country) {\r\n // Error box\r\n var $errorBoxSpan = $(\".geo-input-error-title span\");\r\n\r\n if (country !== \"United States\") {\r\n //show the error box with the val()\r\n $(\".geo-input-error-wrapper\").addClass(\"active\");\r\n $errorBoxSpan.html($(\".geo-input\").val());\r\n //add error to zipgate popup\r\n $(\".geo-search-overlay\").addClass(\"form-error\");\r\n debug && console.log(\"USA\");\r\n return;\r\n }\r\n\r\n // keyboard/enter\r\n if (\r\n typeof Storage !== \"undefined\" &&\r\n lat != null && lon != null\r\n ) {\r\n // set temp. lat/long\r\n localStorageSetItemCommon(\"_GeoTempLat\", lat);\r\n localStorageSetItemCommon(\"_GeoTempLong\", lon);\r\n }\r\n\r\n getPinCode(lat, lon, function(res, lat, lon) {\r\n //sometime api returns incorrect zip. So, if user searched for a zip, then show it directly\r\n var inputText = $input.val();\r\n if (inputText.length > 0 && /^\\d{5}$/.test(inputText.trim())) {\r\n res = inputText;\r\n }\r\n\r\n debug && console.log(\"Go: Zip:\" + res);\r\n\r\n // Global zip tracking\r\n // if zip is chenged from zip gate overlay\r\n if (thisObj.parent().is(\"#searchBoxContainer-overlay\")) {\r\n _satellite.track(\"global_zipgate_submit\");\r\n if(typeof window.tapGlobalModal === \"function\") {\r\n window.tapGlobalModal(\"geo-submit\", res);\r\n }\r\n // if zip is chenged from Global Nav\r\n } else if (thisObj.parent().is(\"#searchBoxContainer-nav-sm\")) {\r\n _satellite.track(\"global_nav_zipfield_submit\");\r\n if(typeof window.tapGlobalNav === \"function\") {\r\n window.tapGlobalNav(\"geo-submit\", res);\r\n }\r\n }\r\n\r\n // call updateNavZip to update nav\r\n // call updateLocalStorageZip to update Local Storage\r\n setZip.updateAll(\"\", res, lat, lon, \"true\");\r\n\r\n // if btn on nav is clicked hide it\r\n if (_elements.$nav_right.hasClass(\"active\")) {\r\n _elements.$nav_right.toggleClass(\"active\");\r\n } else {\r\n //\r\n }\r\n });\r\n }\r\n );\r\n } else {\r\n //input is empty - no val in input\r\n $input.addClass(\"form-error\");\r\n }\r\n\r\n // reset form-error\r\n $(\".form-error\").focus(function() {\r\n $(this).removeClass(\"form-error\");\r\n });\r\n };\r\n })();\r\n /* geolocator END */\r\n\r\n /*\r\n * *************************************\r\n * getZipCodeDesktop - Zip by IP Location handler START\r\n * - get zip code for desktop user from handler\r\n *\r\n * *************************************\r\n */\r\n\r\n var getZipCodeDesktop = new (function() {\r\n this.ajaxCall = function() {\r\n //TEMP - for testing\r\n // var res = 91335;\r\n // getLatLon(res, function(lat, lon, zip) {\r\n // setZip.updateAll(zip, lat, lon);\r\n // });\r\n // return;\r\n //TEMP END\r\n\r\n // show gif (don't apply on inventory, VDP or DL)\r\n // if (location.href.indexOf(\"/vehicle-\") == -1) {\r\n // _elements.$loading_gif.fadeIn(300);\r\n // }\r\n\r\n debug && console.log(\"ajaxCall get-zip-by-ip-address.ashx\");\r\n $.ajax({\r\n type: \"POST\",\r\n dataType: \"json\",\r\n url: \"/handlers/get-zip-by-ip-address.ashx\",\r\n data: {},\r\n\r\n complete: function(data, status) {\r\n debug && console.log(\"ajax data zipcode: \" + JSON.stringify(data));\r\n data = data.responseJSON;\r\n var zipCode = data.zip_code\r\n var isValidZip = /(^\\d{5}$)|(^\\d{5}-\\d{4}$)/.test(zipCode);\r\n if (status == \"success\" && isValidZip) {\r\n // debug && console.log(\"data: \" + JSON.stringify(data));\r\n debug && console.log('State-------------------------------: ', data.state)\r\n\r\n // call updateNavZip to update nav\r\n // call updateLocalStorageZip to update Local Storage\r\n getLatLon(data.zip_code, function(lat, lon, zip) {\r\n setZip.updateAll(data.state, zip, lat, lon);\r\n });\r\n // hide gif\r\n // _elements.$loading_gif.fadeOut(300);\r\n } else {\r\n // zip code is Null/undefined OR error from API\r\n\r\n // check if zip needed for current page then\r\n // since ajax call failed, ask user to input location\r\n zipGate.showOverlay();\r\n // hide gif\r\n _elements.$loading_gif.fadeOut(300);\r\n\r\n debug && console.log(\"Error ajax data zipcode: \" + data.zip_code);\r\n }\r\n },\r\n error: function(jqXHR, textStatus, errorThrown) {\r\n // check if zip needed for current page then\r\n // since ajax call failed, ask user to input location\r\n zipGate.showOverlay();\r\n // hide gif\r\n _elements.$loading_gif.fadeOut(300);\r\n\r\n debug && console.log(textStatus, errorThrown);\r\n }\r\n });\r\n }; //ajaxCall END\r\n })(); // getZipCodeDesktop END\r\n /* getZipCodeDesktop - IP Location handler END */\r\n\r\n /*\r\n * *************************************\r\n * setZip\r\n *\r\n * - update nav zip\r\n * - update LocalStorage with zip code\r\n * - update LocalStorage with lat/long\r\n * *************************************\r\n */\r\n var setZip = new (function() {\r\n // update: 1- updateNavZip() 2- updateLocalStorageZip()\r\n debug && console.log(\"setZip*updateAll\");\r\n this.updateAll = function(state, zipCode, lat, lon, ev) {\r\n this.updateNavZip(zipCode);\r\n this.updateLocalStorageZip(zipCode);\r\n this.updateLocalStorageState(state);\r\n this.updateLocalStoragePositions(lat, lon);\r\n\r\n notifyOtherPage(zipCode);\r\n\r\n /* ev is used to make sure the zipInURL conditional only runs on URL change,\r\n no when firing the geolocator-go click event */\r\n\r\n if (zipInURL && !ev) {\r\n var zipFromURL = getQueryVariable(\"zip\");\r\n this.updateLocalStorageZip(zipFromURL);\r\n this.updateNavZip(zipFromURL);\r\n }\r\n\r\n //global function\r\n //$(window).trigger('geo.zipchanged', {\r\n // zip: zipCode\r\n //});\r\n\r\n if (_vars.destination) {\r\n redirect(_vars.destinationPath);\r\n }\r\n }; //updateAll\r\n\r\n /*\r\n * *************************************\r\n * update zip on:\r\n * 1- nav\r\n * 2- geo inputs\r\n * *************************************\r\n */\r\n this.updateNavZip = function(zipCode) {\r\n // debug && console.log('updateNavZip');\r\n\r\n // update nav zip\r\n _elements.$nav_zip_span.html(zipCode);\r\n\r\n //update input in nav\r\n _elements.$geo_input_global.val(zipCode);\r\n\r\n // hide geo overlay\r\n _elements.$geo_overlay.addClass(\"hidden\");\r\n\r\n // hide 'nav-zip-input'\r\n //temp\r\n _elements.$zip_input_nav.removeClass(\"active\");\r\n\r\n // if btn on nav is clicked hide it\r\n if (_elements.$nav_right.hasClass(\"active\")) {\r\n _elements.$nav_right.toggleClass(\"active\");\r\n }\r\n\r\n //global\r\n //$(window).trigger('geo.zipchanged', {\r\n // zip: zipCode\r\n //});\r\n\r\n // hide input error\r\n errorBox.hide();\r\n }; // updateNavZip END\r\n\r\n // update LocalStorage with new zip\r\n this.updateLocalStorageZip = function(zipCode) {\r\n debug && console.log(\"updateLocalStorageZip: \" + zipCode);\r\n // check if browser supports localStorage\r\n if (typeof Storage !== \"undefined\") {\r\n if (zipCode) localStorageSetItemCommon(\"_GeoCurrentZipCode\", zipCode);\r\n //global\r\n //$(window).trigger('geo.zipchanged', {\r\n // zip: zipCode\r\n //});\r\n // debug && console.log(\"localStorage: \" + localStorage.getItem(\"currentZipCode\"));\r\n } else {\r\n console.log(\"Your browser does not support Web Storage\");\r\n }\r\n }; //updateLocalStorageZip END\r\n\r\n \r\n // update LocalStorage with new state\r\n this.updateLocalStorageState = function(state) {\r\n debug && console.log(\"updateLocalStorageState: \" + state);\r\n // check if browser supports localStorage\r\n if (typeof Storage !== \"undefined\") {\r\n if (state){\r\n if(_regionA.indexOf(state) != -1){\r\n localStorageSetItemCommon(\"_GeoCurrentState\", state);\r\n localStorageSetItemCommon(\"_GeoCurrentRegion\", \"A\");\r\n } else {\r\n localStorageSetItemCommon(\"_GeoCurrentState\", state);\r\n localStorageSetItemCommon(\"_GeoCurrentRegion\", \"B\");\r\n }\r\n \r\n }\r\n\r\n } else {\r\n console.log(\"Your browser does not support Web Storage\");\r\n }\r\n }; //updateLocalStorageState END\r\n\r\n // update LocalStorage with new Lat/long\r\n this.updateLocalStoragePositions = function(lat, long) {\r\n debug && console.log(\"updateLocalStoragePositions\");\r\n // check if browser supports localStorage\r\n if (typeof Storage !== \"undefined\" && lat != null && long != null) {\r\n localStorageSetItemCommon(\"_GeoCurrentLat\", lat);\r\n localStorageSetItemCommon(\"_GeocurrentLong\", long);\r\n } else {\r\n // no support\r\n }\r\n }; //updateLocalStoragePositions END\r\n })(); /* setZip END */\r\n\r\n /*\r\n * *************************************\r\n * mobileTest\r\n *\r\n * *************************************\r\n */\r\n var mobileTest = new (function() {\r\n this.init = function() {\r\n var isMobile = false;\r\n //Detect mobile\r\n if (\r\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(\r\n navigator.userAgent\r\n ) ||\r\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(\r\n navigator.userAgent.substr(0, 4)\r\n )\r\n )\r\n isMobile = true;\r\n\r\n if (isMobile) {\r\n debug && console.log(\"This is mobile\");\r\n return true;\r\n } else {\r\n debug && console.log(\"This is desktop\");\r\n return false;\r\n }\r\n }; //init END\r\n })(); /* mobileTest END */\r\n\r\n /*\r\n * *************************************\r\n * zipCheckLocalStorage\r\n * check if zip code is in LocalStorage\r\n * *************************************\r\n */\r\n var zipCheckLocalStorage = new (function() {\r\n this.init = function() {\r\n // look for \"currentZipCode\" in localStorage\r\n _vars.currentZipCode = localStorageGetItemCommon(\"_GeoCurrentZipCode\");\r\n debug &&\r\n console.log(\"zipCheckLocalStorage zip: \" + _vars.currentZipCode);\r\n if (_vars.currentZipCode) {\r\n // if (_vars.currentZipCode !== null) {\r\n return true;\r\n } else {\r\n debug &&\r\n console.log(\r\n \"_vars.currentZipCode: Zip is NUll/Not there \" +\r\n _vars.currentZipCode\r\n );\r\n return false;\r\n }\r\n }; //init END\r\n })(); /* zipCheckLocalStorage END */\r\n\r\n // function to redirect\r\n function redirect(path) {\r\n debug && console.log(\" Redirecting to: \" + path);\r\n window.location.href = path;\r\n }\r\n } //constructor() END\r\n\r\n setDestinationForPE(){\r\n this.GeoVars.peFlag = true;\r\n this.GeoVars.originalTitleText = $('.geo-title h4').text();\r\n $('.geo-title h4').text('Please Enter Your ZIP Code');\r\n }\r\n\r\n static displayZip(zip) {\r\n _elements.$nav_zip_span.html(zip);\r\n }\r\n\r\n static updateZip(zip) {\r\n if (typeof Storage !== \"undefined\") {\r\n if (zip) localStorageSetItemCommon(\"_GeoCurrentZipCode\", zip);\r\n } else {\r\n console.log(\"Your browser does not support Web Storage\");\r\n }\r\n }\r\n} // class geolocation END\r\n\r\n/*\r\n * *************************************\r\n * BING MAP START\r\n * BING map code will be here\r\n * *************************************\r\n */\r\n\r\nfunction CallRestService(request, callback) {\r\n $.ajax({\r\n url: request,\r\n dataType: \"jsonp\",\r\n jsonp: \"jsonp\",\r\n success: function(r) {\r\n callback(r);\r\n onApiSuccess();\r\n },\r\n error: function(e) {\r\n debug && console.log(e.statusText);\r\n onApiError();\r\n }\r\n });\r\n} //CallRestService END\r\n\r\nfunction loadMapScenario() {\r\n Microsoft.Maps.loadModule(\"Microsoft.Maps.AutoSuggest\", {\r\n callback: onLoad,\r\n errorCallback: onError,\r\n credentials: bingMapsAPIKey\r\n });\r\n\r\n function onLoad() {\r\n var options = {\r\n maxResults: 5,\r\n addressSuggestions: false,\r\n autoDetectLocation: true\r\n // userLocation: new Microsoft.Maps.Location(40.679553, -96.807385)\r\n };\r\n var manager = new Microsoft.Maps.AutosuggestManager(options);\r\n var manager2 = new Microsoft.Maps.AutosuggestManager(options);\r\n manager.attachAutosuggest(\r\n \".geo-search-nav-sm\",\r\n \"#searchBoxContainer-nav-sm\",\r\n onSuggestionSelected\r\n );\r\n manager2.attachAutosuggest(\r\n \".geo-search-overlay\",\r\n \"#searchBoxContainer-overlay\",\r\n onSuggestionSelected2\r\n );\r\n }\r\n\r\n function onError(message) {\r\n var printoutPanel = document.getElementById(\"printoutPanel\");\r\n \r\n if (printoutPanel) {\r\n printoutPanel.innerHTML = message;\r\n }\r\n }\r\n //selectedSuggestion END\r\n\r\n setTimeout(function() {\r\n if (typeof initPage == \"function\" || typeof initPage == typeof Function) {\r\n debug && console.log(\"Geo - initPage()\");\r\n initPage();\r\n } else {\r\n debug && console.log(\"Geo - initPage() Error\");\r\n }\r\n }, 500);\r\n}\r\n\r\n//calls when item is selected from suggestion\r\nvar mapData;\r\n\r\nfunction onSuggestionSelected(selectedData) {\r\n onSuggestionSelectedCommon(selectedData, 1);\r\n}\r\n\r\nfunction onSuggestionSelected2(selectedData) {\r\n onSuggestionSelectedCommon(selectedData, 2);\r\n}\r\n\r\nfunction onSuggestionSelectedCommon(selectedData, type) {\r\n //item was selected by user. so remove the first auto-complete suggestion\r\n $(\".search-box\")\r\n .eq(type - 1)\r\n .data(\"suggestion\", \"\");\r\n\r\n var data = getSuggestionData(selectedData);\r\n mapData = data;\r\n\r\n if ((mapData.address || \"\").indexOf(\"United States\") < 0) {\r\n errorBox.show();\r\n return;\r\n }\r\n\r\n // map.setView({ bounds: selectedData.bestView });\r\n\r\n // document.getElementsByClassName('printoutPanel')[type-1].innerHTML =\r\n debug &&\r\n console.log(\r\n // 'Suggestion: ' + data.address +\r\n \"Lat: \" + data.lat + \"Lon: \" + data.lon\r\n );\r\n\r\n // check if browser supports localStorage\r\n if (typeof Storage !== \"undefined\" && data.lat != null && data.lon != null) {\r\n // set temp. lat/long\r\n localStorageSetItemCommon(\"_GeoTempLat\", data.lat);\r\n localStorageSetItemCommon(\"_GeoTempLong\", data.lon);\r\n }\r\n\r\n getPinCode(data.lat, data.lon, function(res, lat, lon) {\r\n debug && console.log(\"zip: \" + res);\r\n // document.getElementsByClassName('printoutPanel')[type - 1].innerHTML += \"
PostalCode:\" + res;\r\n });\r\n\r\n //autosuggest selected auto search\r\n if (type === 1) {\r\n setTimeout(function() {\r\n $(\".geo-search-nav-sm\")\r\n .siblings(\".geolocator-go\")\r\n .trigger(\"click\");\r\n }, 1000);\r\n } else if (type === 2) {\r\n setTimeout(function() {\r\n $(\".geo-search-overlay\")\r\n .siblings(\".geolocator-go\")\r\n .trigger(\"click\");\r\n }, 1000);\r\n }\r\n}\r\n\r\n//returns the data in proper format\r\nfunction getSuggestionData(selectedData) {\r\n if (selectedData == null) {\r\n return;\r\n }\r\n debug && console.log(selectedData);\r\n\r\n var res = {\r\n address: selectedData.formattedSuggestion\r\n };\r\n\r\n if (selectedData.location) {\r\n res.lat = selectedData.location.latitude;\r\n res.lon = selectedData.location.longitude;\r\n }\r\n return res;\r\n}\r\n\r\nfunction getPinCode(lat, lon, callback) {\r\n CallRestService(\r\n \"https://dev.virtualearth.net/REST/v1/Locations/\" +\r\n lat +\r\n \",\" +\r\n lon +\r\n \"?key=\" +\r\n bingMapsAPIKey_AutoComplete,\r\n\r\n function(res) {\r\n //debug && console.log('getPinCode:', res);\r\n if (res.resourceSets[\"0\"].estimatedTotal > 0) {\r\n callback(res.resourceSets[0].resources[0].address.postalCode, lat, lon);\r\n onApiSuccess();\r\n } else {\r\n debug && console.log(\"getPinCode: Not match found!\");\r\n //callback(null, lat, lon);\r\n onApiError();\r\n }\r\n }\r\n );\r\n}\r\n\r\nfunction getLatLon(zip, callback) {\r\n CallRestService(\r\n \"https://dev.virtualearth.net/REST/v1/Locations?postalCode=\" +\r\n zip +\r\n \"&key=\" +\r\n bingMapsAPIKey_AutoComplete,\r\n\r\n function(res) {\r\n debug &&\r\n console.log(\r\n \"962 +++++++++++++++++++++++++++++++++++ getLatLon res:\",\r\n res\r\n );\r\n if (res.resourceSets[\"0\"].estimatedTotal > 0) {\r\n callback(\r\n res.resourceSets[0].resources[0].geocodePoints[0].coordinates[0],\r\n res.resourceSets[0].resources[0].geocodePoints[0].coordinates[1],\r\n zip\r\n );\r\n onApiSuccess();\r\n } else {\r\n debug && console.log(\"getLatLon: Not match found!\");\r\n //callback();\r\n onApiError();\r\n }\r\n }\r\n );\r\n}\r\n\r\nfunction getLatLonFromQuery(query, callback) {\r\n debug && console.log(\"query:\", query);\r\n CallRestService(\r\n \"https://dev.virtualearth.net/REST/v1/Locations?q=\" +\r\n encodeURIComponent(query) +\r\n \"&key=\" +\r\n \"Ap0AObt84NcDaUThCeWOj52ZqUHv6k4TJhjLibR-DghC-semgoj-0uPbIi8r0E4j\",\r\n\r\n function(res) {\r\n //debug && console.log('getLatLonFromQuery:', res);\r\n\r\n if (res.resourceSets[\"0\"].estimatedTotal > 0) {\r\n //if any resource has entityType:postalcode1 then use that else use first\r\n var resources = res.resourceSets[\"0\"].resources;\r\n var resource;\r\n var currentState = resources[0].address.adminDistrict;\r\n debug &&\r\n console.log(\"995********************* resourcesS:\", currentState);\r\n if (currentState){\r\n if(_regionA.indexOf(currentState) != -1){\r\n localStorageSetItemCommon(\"_GeoCurrentState\", currentState);\r\n localStorageSetItemCommon(\"_GeoCurrentRegion\", \"A\");\r\n } else {\r\n localStorageSetItemCommon(\"_GeoCurrentState\", currentState);\r\n localStorageSetItemCommon(\"_GeoCurrentRegion\", \"B\");\r\n }\r\n }\r\n \r\n\r\n for (var i = 0; i < resources.length; i++) {\r\n if (resources[i].entityType.indexOf(\"Postcode\") >= 0) {\r\n resource = resources[i];\r\n break;\r\n }\r\n }\r\n\r\n if (resource == null) {\r\n resource = resources[\"0\"];\r\n }\r\n\r\n callback(\r\n resource.geocodePoints[\"0\"].coordinates[\"0\"],\r\n resource.geocodePoints[\"0\"].coordinates[\"1\"],\r\n resource.address.countryRegion\r\n );\r\n onApiSuccess();\r\n } else {\r\n debug && console.log(\"getLatLonFromQuery: Not match found!\");\r\n //callback();\r\n onApiError();\r\n }\r\n }\r\n );\r\n}\r\n\r\nfunction onApiError() {\r\n debug && console.log(\"No data from API or some API error!\");\r\n errorBox.show();\r\n}\r\n\r\nfunction onApiSuccess() {\r\n //errorBox.hide();\r\n}\r\n//loadMapScenario END\r\n\r\n/* BING MAP END */\r\n\r\n/*\r\n * *************************************\r\n * errorBox START\r\n *\r\n * *************************************\r\n */\r\n\r\n// nav error box\r\n// zipgate error (form-error)\r\nvar errorBox = new (function() {\r\n debug && console.log(\"errorBox\");\r\n var errorRes = $(\".geo-input-error-title span\");\r\n errorRes.html(\"\");\r\n\r\n //zipgate overlay reset\r\n $(\".geo-search-overlay\").removeClass(\"form-error\");\r\n\r\n this.show = function() {\r\n //nav error box show\r\n $(\".geo-input-error-wrapper\").addClass(\"active\");\r\n errorRes.html($(\".geo-input\").val());\r\n\r\n //zipgate overlay add error\r\n $(\".geo-search-overlay\").addClass(\"form-error\");\r\n };\r\n this.hide = function() {\r\n //nav error box hide\r\n $(\".geo-input-error-wrapper\").removeClass(\"active\");\r\n //zipgate overlay reset\r\n $(\".geo-search-overlay\").removeClass(\"form-error\");\r\n };\r\n})();\r\n// errorBox END\r\n\r\n//function TriggerGeoZipChanged() {\r\n// var evt = $.Event('geo.zipchanged');\r\n// $(window).trigger(evt);\r\n//}\r\n$(window).on(\"app.zipchanged\", function(e, data) {\r\n //debug && console.log('--- dl zip changed ---');\r\n updateIncomingZip(data.zip);\r\n debug && console.log(\"1074________________________ data: \", data);\r\n if (typeof Storage !== \"undefined\") {\r\n if (data.zip) localStorageSetItemCommon(\"_GeoCurrentZipCode\", data.zip);\r\n debug && console.log(\"--- dl zip changed --- New Zip\" + data.zip);\r\n } else {\r\n console.log(\"Your browser does not support Web Storage\");\r\n }\r\n});\r\n\r\n//update nav zip based on the new incoming zip\r\nfunction updateIncomingZip(dataZip) {\r\n $(\".location i span\").html(dataZip);\r\n debug && console.log(\"--- updateIncomingZip --- New Zip: \", dataZip);\r\n}\r\n//update other page of the new zip\r\nfunction notifyOtherPage(zipcode) {\r\n setTimeout(function() {\r\n debug && console.log(\"Geo - notifyOtherPage\");\r\n if (typeof initPage == \"function\" || typeof initPage === typeof Function) {\r\n initPage();\r\n if (window.platform) {\r\n window.platform.pe.updateZipCode(zipcode); \r\n } \r\n } else {\r\n debug && console.log(\"Geo - initPage() Error\");\r\n }\r\n }, 500);\r\n}\r\n\r\n// use cookies when LocalStorage is not permitted\r\nvar cookieStorage = new (function() {\r\n this.getCookie = function(key) {\r\n var _currentCookie = Cookies.get(key);\r\n if (_currentCookie) {\r\n debug && console.log(\"cookie is defined if: \" + _currentCookie);\r\n return Cookies.get(key);\r\n } else {\r\n debug && console.log(\"cookie is undefined else\");\r\n return false;\r\n }\r\n };\r\n this.setCookie = function(key, value) {\r\n debug && console.log(\"setCookie \" + key + \" \" + value);\r\n Cookies.set(key, value);\r\n };\r\n})();\r\n\r\n// check if LocalStorageSecurityCheck\r\n// IE, in some version 11 might not allow LocalStorage\r\nvar _SecurityCheck = false;\r\n\r\nfunction LocalStorageSecurityCheck() {\r\n var lStorage;\r\n // check if browser supports localStorage - For IE11\r\n try {\r\n lStorage = localStorage;\r\n try {\r\n // Test webstorage accessibility - Needed for Safari private browsing.\r\n localStorage.setItem(\"storage_test\", 1);\r\n localStorage.removeItem(\"storage_test\");\r\n _SecurityCheck = false;\r\n // Safari Private browsing\r\n } catch (e) {\r\n _SecurityCheck = true;\r\n }\r\n\r\n // No support for localStorage\r\n } catch (e) {\r\n _SecurityCheck = true;\r\n }\r\n}\r\n\r\n//global function to setitem in localstorage or cookie\r\nfunction localStorageSetItemCommon(key, value) {\r\n if (_SecurityCheck) {\r\n debug && console.log(\"Using SET Cookies\");\r\n // use fallback cookies\r\n cookieStorage.setCookie(key, value);\r\n } else {\r\n debug && console.log(\"Using SET Storage\");\r\n //use localStorage\r\n localStorage.setItem(key, value);\r\n }\r\n}\r\n\r\n//global function to getitem in localstorage or cookie\r\nfunction localStorageGetItemCommon(key) {\r\n if (key != null) {\r\n if (_SecurityCheck) {\r\n debug && console.log(\"Using GET Cookies\");\r\n // use fallback cookies\r\n return cookieStorage.getCookie(key);\r\n } else {\r\n debug && console.log(\"Using GET STORAGE\");\r\n //use localStorage\r\n return localStorage.getItem(key);\r\n }\r\n } else {\r\n debug && console.log(\"localStorageGetItemCommon Key Null\");\r\n }\r\n}"]}