var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; }; if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } } { let window = _____WB$wombat$assign$function_____("window"); let self = _____WB$wombat$assign$function_____("self"); let document = _____WB$wombat$assign$function_____("document"); let location = _____WB$wombat$assign$function_____("location"); let top = _____WB$wombat$assign$function_____("top"); let parent = _____WB$wombat$assign$function_____("parent"); let frames = _____WB$wombat$assign$function_____("frames"); let opener = _____WB$wombat$assign$function_____("opener"); var apiLocation = "https://www.webharvest.gov/congress116th/20210116015215/https://api.stateentityprofile.ca.gov/"; //var imageUrlPrefix = "https://www.webharvest.gov/congress116th/20210116015215/https://california.azureedge.net/cdt/CAgovPortal/images/Uploads"; var imageUrlPrefix = "https://www.webharvest.gov/congress116th/20210116015215/https://stateentityprofile.ca.gov/Uploads"; // Holders of API Data - Home page //var homepageImageResults = []; var homepageServiceResults = []; // Holders of API Data - Service Details page var serviceDetailsResults = []; var relatedServicesResults = []; var serviceLocationsResults = []; var serviceFaqResults = []; // Holders of API Data - Agency Details page var agencyDetailsResults = []; var agencyServicesResults = []; var agencyFaqResults = []; // Holders of API Data - Google Embed on Service and Agency Detail Pages var serviceRelatedLinks = []; // Holders of API Data - Agency Alphabetic Listing Page var alphaListingResults = []; // Holders of API Data - Service Search Page var serviceSearchResults = []; // Holders of API Data - Agency Search Page var agencySearchResults = []; // Holders for Agencies Ids to Process Services - Sitemap Page var sitemapAgencyListForServices = []; var processJsonData = { //#################################################################################################### // General Functions //#################################################################################################### //--- Change Title On Service Or Agency Page --------------------------------------------------------- setTitleOfPageForItem: function (textToAddToTitle) { var newTitle = textToAddToTitle + " " + document.title; document.title = newTitle; }, //--- Create SEO Friendly Name To Pass To Details Page ----------------------------------------------- processPassedItem: function (linkOutgoingOrIncomming, nameAgencyOrService) { var passedName = nameAgencyOrService.toLowerCase(); if (linkOutgoingOrIncomming === 'Out') { passedName = passedName.replace(/^[ ]+|[ ]+$/g, ''); passedName = passedName.replace("-", "dashline"); passedName = encodeURIComponent(passedName); var i = 0, strPassedNameLengthOut = passedName.length; for (i; i < strPassedNameLengthOut; i++) { passedName = passedName.replace("%20", "-"); } if (passedName.indexOf("'") !== -1) { passedName = passedName.replace("'", "%27"); } //--- BEGIN --- Code Mod to support stange proccesing of job training links ---- passedName = passedName.replace("get-job-training-in-", "job-training-in-"); //--- END --- Code Mod to support stange proccesing of job training links ---- } else { passedName = decodeURIComponent(passedName); var j = 0, strPassedNameLength = passedName.length; for (j; j < strPassedNameLength; j++) { passedName = passedName.replace("-", " "); } passedName = passedName.replace("dashline", "-"); } return passedName; }, //--- Get Location And Time Variables For Homepage Image --------------------------------------------- provideImageNameDetails: function (userLong, userLat, userTime) { var builtApiUrl = apiLocation + "api/Geospatial/GetTemporalContext?longitude=" + userLong + "&latitude=" + userLat + "&dateTime=" + userTime; var loadFlag = false; var loadCount = 0; var homepageImageResult = ""; function loadResults() { if (loadCount === 0) { var putApiRequest = new XMLHttpRequest(); putApiRequest.open("POST", builtApiUrl, true); putApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { homepageImageResults = this.responseText; } if (this.readyState === 4 && this.status === 404) { homepageImageResults = "NONEXISTS"; } }; putApiRequest.setRequestHeader('Content-Type', 'application/json'); putApiRequest.withCredentials = false; putApiRequest.send(); } loadCount += 1; if (loadFlag === false) { if (typeof homepageImageResults !== "undefined") { if (homepageImageResults.length > 9) { loadFlag = true; loadcount = 500; } } if (loadCount >= 500) { loadFlag = true; } window.setTimeout(loadResults, 100); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 500) { var locationDetails = ""; var dataToProcess = JSON.parse(homepageImageResults); homepageImageResults = 0; var getTimeOfDay = ""; var getSeason = ""; switch (dataToProcess.Sun) { case 1: getTimeOfDay = "DAY"; break; default: getTimeOfDay = "NIGHT"; } switch (dataToProcess.Season) { case 0: getSeason = "SPRING"; break; case 1: getSeason = "SUMMER"; break; case 2: getSeason = "FALL"; break; case 3: getSeason = "WINTER"; break; default: getSeason = "SUMMER"; } locationDetails = dataToProcess.Region.toUpperCase() + "|" + getSeason + "|" + getTimeOfDay; console.log(locationDetails); computedBackgroundLocationValues = locationDetails; } } } loadResults(); }, //#################################################################################################### // Display Service Functions //#################################################################################################### showHomePageServices: function (howManyDivHolders, theTilesParent, selectedService1, selectedService2, selectedService3, selectedService4, lang, serviceLandingPage, agencyLandingPage) { if (lang === "") { lang = "en"; } var selectedHomepageServices = [selectedService1, selectedService2, selectedService3, selectedService4]; for (var i = 0; i < selectedHomepageServices.length; i++) { processJsonData.populateHomepageServicesArray(selectedHomepageServices.length - 1, i, 'serviceDataHolder', selectedHomepageServices[i], lang); } var loadFlag = false; var loadCount = 0; function loadList() { if (loadFlag === false) { var serviceText = document.getElementById("serviceDataHolder").innerHTML; var count = (serviceText.match(//g) || []).length; if (count > selectedHomepageServices.length - 1) { loadFlag = true; } loadCount += 1; if (loadCount >= 1000) { loadFlag = true; } window.setTimeout(loadList, 100); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 1000) { var str = document.getElementById("serviceDataHolder").innerHTML; document.getElementById("serviceDataHolder").innerHTML = ""; var dataElement = document.getElementById("serviceDataHolder"); dataElement.parentNode.removeChild(dataElement); var serviceItem = str.split(''); if (serviceItem.length > 0) { var textToDisplayTiles = ""; var tabbackground = ""; var panelTextToPass = ""; var serviceCounter = 0; for (var j = 0; j < serviceItem.length - 1; j++) { textToDisplayTiles = ""; tabbackground = ""; if (serviceItem[j] !== "0") { var serviceItemParts = serviceItem[j].split('[|]'); serviceCounter = serviceCounter + 1; var agencyNameToPass = processJsonData.processPassedItem('Out', serviceItemParts[4]); var serviceNameToPass = processJsonData.processPassedItem('Out', serviceItemParts[2]); if (serviceItemParts[1]) { tabbackground += serviceItemParts[1]; } else { tabbackground += "service-general.jpg"; } textToDisplayTiles += "
"; textToDisplayTiles += "

" + serviceItemParts[2] + "

"; textToDisplayTiles += "
"; idbuilder = "featured-service-tab-" + serviceCounter; document.getElementById(idbuilder).innerHTML = textToDisplayTiles; document.getElementById(idbuilder).setAttribute("aria-label", serviceItemParts[2] + " Service Tile. Hit Enter to toggle between displaying and hiding details about this service."); document.getElementById(idbuilder).style.backgroundImage = "url('" + imageUrlPrefix + "/" + tabbackground + "')"; holderDescription = serviceItemParts[5]; holderDescription = holderDescription.slice(0, 200) + "..."; panelTextToPass = ""; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += ""; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "

" + serviceItemParts[2] + "

"; panelTextToPass += "

" + serviceItemParts[4] + "

"; panelTextToPass += "

" + holderDescription + "


"; panelTextToPass += "
"; panelTextToPass += " Launch Service"; panelTextToPass += " See Details"; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += ""; panelTextToPass += "
"; panelTextToPass += "

"; if (serviceItemParts[7]) { panelTextToPass += "General Information: " + serviceItemParts[7] + "
"; } panelTextToPass += "

"; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "\"\""; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "
"; idbuilder = "featured-service-panel-" + serviceCounter; document.getElementById(idbuilder).innerHTML = panelTextToPass; } } if (serviceCounter > 0) { var elt = document.getElementById(theTilesParent); elt.style.cssText = "background-color:#000000;"; } if (!(serviceCounter === howManyDivHolders)) { var element = ""; setTimeout(function () { for (var i = serviceCounter; i < howManyDivHolders; i++) { var num = i + 1; element = "featured-service-tab-" + num; element = document.getElementById(element); element.parentNode.removeChild(element); element = "featured-service-panel-" + num; element = document.getElementById(element); element.parentNode.removeChild(element); } }, 100); } } else { var elementToRemove = document.getElementById(theTilesParent); elementToRemove.parentNode.removeChild(elementToRemove); } } } } loadList(); }, populateHomepageServicesArray: function (arraymax, currentitem, idOfDivToFill, selectedService, lang) { var builtApiUrl = apiLocation + "api/Services/GetServiceById/" + selectedService + "/" + lang; var loadFlag = false; var loadCount = 0; function loadResults() { if (loadCount === 0) { var getApiRequest = new XMLHttpRequest(); getApiRequest.open("GET", builtApiUrl, true); getApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { homepageServiceResults.push(this.responseText); } if (this.readyState === 4 && this.status === 404) { homepageServiceResults.push("NONEXISTS"); } }; getApiRequest.setRequestHeader('Content-Type', 'application/json'); getApiRequest.withCredentials = false; getApiRequest.send(); } loadCount += 1; if (loadFlag === false) { if (typeof homepageServiceResults[currentitem] !== "undefined") { if (homepageServiceResults[currentitem].length > 5) { loadFlag = true; } } if (loadCount >= 50) { loadFlag = true; } window.setTimeout(loadResults, 100); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 50) { var textToPass = ""; if (homepageServiceResults[currentitem] === "NONEXISTS") { textToPass = "0"; } else { var dataToProcess = JSON.parse(homepageServiceResults[currentitem]); textToPass = dataToProcess.ServiceId + "[|]" + dataToProcess.ImageUrl + "[|]" + dataToProcess.ServiceName + "[|]" + dataToProcess.ServiceUrl + "[|]" + dataToProcess.FriendlyName + "[|]" + dataToProcess.Description + "[|]" + dataToProcess.LogoUrl + "[|]" + dataToProcess.ContactPhone + "[|]" + dataToProcess.AgencyId + ""; } var text = document.getElementById(idOfDivToFill).innerHTML; document.getElementById(idOfDivToFill).innerHTML = text + textToPass; } } } loadResults(); }, showServiceDetails: function (idOfDivToFill, searchvalue, lang, serviceLandingPage, agencyLandingPage) { var serviceNameToPass = processJsonData.processPassedItem('In', searchvalue); if (lang === "") { lang = "en"; } var builtApiUrl = apiLocation + "api/Services/FindServicesByName/" + serviceNameToPass + "/" + lang; var loadFlag = false; var loadCount = 0; function loadResults() { if (loadCount === 0) { var getApiRequest = new XMLHttpRequest(); getApiRequest.open("GET", builtApiUrl, true); getApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { serviceDetailsResults.push(this.responseText); } if (this.readyState === 4 && this.status === 404) { serviceDetailsResults.push("NONEXISTS"); } }; getApiRequest.setRequestHeader('Content-Type', 'application/json'); getApiRequest.withCredentials = false; getApiRequest.send(); } loadCount += 1; if (loadFlag === false) { if (typeof serviceDetailsResults[0] !== "undefined") { if (serviceDetailsResults[0].length > 10) { loadFlag = true; } } if (loadCount >= 1000) { loadFlag = true; } window.setTimeout(loadResults, 100); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 1000) { var dataToProcess = JSON.parse(serviceDetailsResults[0]); var textToDisplay = ""; processJsonData.setTitleOfPageForItem(dataToProcess[0].ServiceName); textToDisplay += "
"; textToDisplay += "
"; textToDisplay += "\"""; textToDisplay += "
"; textToDisplay += "
"; textToDisplay += "

" + dataToProcess[0].ServiceName + "

"; var agencyNameToPass = processJsonData.processPassedItem('Out', dataToProcess[0].FriendlyName); var serviceNameToPass = processJsonData.processPassedItem('Out', dataToProcess[0].ServiceName); textToDisplay += "

"; textToDisplay += dataToProcess[0].FriendlyName + " (" + dataToProcess[0].Acronym + ")"; textToDisplay += "

"; textToDisplay += "

" + dataToProcess[0].Description + "

"; textToDisplay += ""; textToDisplay += "
"; textToDisplay += ""; textToDisplay += "

General Information: " + dataToProcess[0].ContactPhone + "
"; textToDisplay += "

"; textToDisplay += "
"; textToDisplay += "
"; textToDisplay += "
"; textToDisplay += "
"; document.getElementById(idOfDivToFill).innerHTML = textToDisplay + ""; processJsonData.showRelatedServicesButtons('relatedServices', dataToProcess[0].ServiceName, dataToProcess[0].AgencyId, lang, serviceLandingPage); pageServiceId = dataToProcess[0].ServiceId; pageAgencyId = dataToProcess[0].AgencyId; pageServiceSearchTerms = dataToProcess[0].Keywords; } } } loadResults(); }, showRelatedServicesButtons: function (idOfDivToFill, currentService, searchvalue, lang, serviceLandingPage) { var data = JSON.stringify([ searchvalue ]); if (lang === "") { lang = "en"; } var builtApiUrl = apiLocation + "api/Services/GetServicesByAgencyIds?lang=" + lang; var loadFlag = false; var loadCount = 0; function loadResults() { if (loadCount === 0) { var putApiRequest = new XMLHttpRequest(); putApiRequest.open("POST", builtApiUrl, true); putApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { relatedServicesResults.push(this.responseText); } if (this.readyState === 4 && this.status === 404) { relatedServicesResults.push("NONEXISTS"); } }; putApiRequest.setRequestHeader('Content-Type', 'application/json'); putApiRequest.withCredentials = false; putApiRequest.send(data); } loadCount += 1; if (loadFlag === false) { if (typeof relatedServicesResults[0] !== "undefined") { if (relatedServicesResults[0].length > 10) { loadFlag = true; } } if (loadCount >= 5000) { loadFlag = true; } window.setTimeout(loadResults, 100); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 5000) { var result = JSON.parse(relatedServicesResults[0]); this.apiData = result; var arrayLength = this.apiData.length; var texttopass = ""; if (arrayLength > 1) { for (var i = 0; i < arrayLength; i++) { if (!(this.apiData[i].ServiceName === currentService)) { var serviceNameToPass = processJsonData.processPassedItem('Out', this.apiData[i].ServiceName); texttopass += "" + this.apiData[i].ServiceName + ""; } } } if (texttopass.length > 0) { texttopass = "Related Services: " + texttopass; } document.getElementById(idOfDivToFill).innerHTML = texttopass; } } } loadResults(); }, showFilteredServiceMap: function (idOfTextDivFill, idOfMapDivFill, containingSection, thisLong, thisLat, thisAgencyId, thisServiceId, returnCount, lang) { if (lang === "") { lang = "en"; } var builtApiUrl = apiLocation + "GetNearestLocations?lang=" + lang + "&agencyId=" + thisAgencyId + "&longitude=" + thisLong + "&latitude=" + thisLat + "&maxReturn=" + returnCount; var loadFlag = false; var loadCount = 0; serviceLocationsResults = []; var element = document.getElementById(containingSection); var closestLocationFlag = true; function loadResults() { if (loadCount === 0) { var putApiRequest = new XMLHttpRequest(); putApiRequest.open("POST", builtApiUrl, true); putApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { serviceLocationsResults.push(this.responseText); } if (this.readyState === 4 && this.status === 404) { serviceLocationsResults.push("NONEXISTS"); } }; putApiRequest.setRequestHeader('Content-Type', 'application/json'); putApiRequest.withCredentials = false; putApiRequest.send(null); } loadCount += 1; if (loadFlag === false) { if (typeof serviceLocationsResults[0] !== "undefined") { if (serviceLocationsResults[0].length > 10 || serviceLocationsResults[0] === "[]") { loadFlag = true; } } if (loadCount >= 500) { loadFlag = true; } window.setTimeout(loadResults, 100); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 500) { var dataToProcess = JSON.parse(serviceLocationsResults[0]); var arrayLength = dataToProcess.QueryResults.length; var textToDisplay = ""; var mapDataToDisplay = ""; if (arrayLength > 1) { for (var i = 0; i < arrayLength; i++) { var latlng = dataToProcess.QueryResults[i].PointLocation.Geography.WellKnownText; var isCurrentServiceFlag = false; for (var j = 0; j < dataToProcess.QueryResults[i].AgencyServiceIds.length; j++) { if (dataToProcess.QueryResults[i].AgencyServiceIds[j] === thisServiceId) { isCurrentServiceFlag = true; } } if (isCurrentServiceFlag === true) { latlng = latlng.replace("POINT (", ""); latlng = latlng.replace(")", ""); var latlngArray = latlng.split(" "); var latValue = latlngArray[0]; var lngValue = latlngArray[1]; if (closestLocationFlag === true) { closestLocationLat = latValue; closestLocationLong = lngValue; closestLocationFlag = false; } mapDataToDisplay += "^" + latValue; mapDataToDisplay += "|" + lngValue; mapDataToDisplay += "|" + dataToProcess.QueryResults[i].LocationName; mapDataToDisplay += "|" + dataToProcess.QueryResults[i].Id; mapDataToDisplay += "|" + dataToProcess.QueryResults[i].StreetAddress; mapDataToDisplay += "|" + dataToProcess.QueryResults[i].City; mapDataToDisplay += "|" + dataToProcess.QueryResults[i].State; mapDataToDisplay += "|" + dataToProcess.QueryResults[i].ZipCode; textToDisplay += "
" + dataToProcess.QueryResults[i].LocationName + "
" + dataToProcess.QueryResults[i].StreetAddress + "
" + dataToProcess.QueryResults[i].City + ", " + dataToProcess.QueryResults[i].State + " " + dataToProcess.QueryResults[i].ZipCode + "
Get directions
"; } } if (mapDataToDisplay.length > 0) { document.getElementById(idOfTextDivFill).innerHTML = textToDisplay + ""; document.getElementById(idOfMapDivFill).innerHTML = mapDataToDisplay; } else { element.parentNode.removeChild(element); } } else { element.parentNode.removeChild(element); } } } } loadResults(); }, showServiceFaq: function (idOfDivToFill, containingSection, searchvalue, lang) { var data = JSON.stringify([ searchvalue ]); if (lang === "") { lang = "en"; } var builtApiUrl = apiLocation + "GetFaqsByServiceIds?lang=" + lang; var loadFlag = false; var loadCount = 0; function loadResults() { if (loadCount === 0) { var putApiRequest = new XMLHttpRequest(); putApiRequest.open("POST", builtApiUrl, true); putApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { serviceFaqResults.push(this.responseText); } if (this.readyState === 4 && this.status === 404) { serviceFaqResults.push("NONEXISTS"); } }; putApiRequest.setRequestHeader('Content-Type', 'application/json'); putApiRequest.withCredentials = false; putApiRequest.send(data); } loadCount += 1; if (loadFlag === false) { if (typeof serviceFaqResults[0] !== "undefined") { if (serviceFaqResults[0].length > 10 || serviceFaqResults[0] === "[]") { loadFlag = true; } } if (loadCount >= 50) { loadFlag = true; } window.setTimeout(loadResults, 100); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 50) { var dataToProcess = JSON.parse(serviceFaqResults[0]); var arrayLength = dataToProcess.length; var textToDisplay = ""; if (arrayLength > 1) { textToDisplay += "
"; for (var i = 0; i < arrayLength; i++) { textToDisplay += "
"; textToDisplay += " "; textToDisplay += "
"; textToDisplay += "
"; textToDisplay += dataToProcess[i].Answer; textToDisplay += "
"; textToDisplay += "
"; textToDisplay += "
"; } textToDisplay += "
"; document.getElementById(idOfDivToFill).innerHTML = textToDisplay + ""; } else { var element = document.getElementById(containingSection); element.parentNode.removeChild(element); } } } } loadResults(); }, showServiceRelatedLinks: function (agencyid, lang) { if (lang === "") { lang = "en"; } var builtApiUrl = apiLocation + "api/Agencies/GetAgencyById/" + agencyid + "/" + lang; var loadFlag = false; var loadCount = 0; function loadResults() { if (loadCount === 0) { var getApiRequest = new XMLHttpRequest(); getApiRequest.open("GET", builtApiUrl, true); getApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { serviceRelatedLinks.push(this.responseText); } if (this.readyState === 4 && this.status === 404) { serviceRelatedLinks.push("NONEXISTS"); } }; getApiRequest.setRequestHeader('Content-Type', 'application/json'); getApiRequest.withCredentials = false; getApiRequest.send(); } loadCount += 1; if (loadFlag === false) { if (typeof serviceRelatedLinks[0] !== "undefined") { if (serviceRelatedLinks[0].length > 10) { loadFlag = true; } } if (loadCount >= 5000) { loadFlag = true; } window.setTimeout(loadResults, 100); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 5000) { var dataToProcess = JSON.parse(serviceRelatedLinks[0]); pageServiceSearchCollection = dataToProcess.GssSearchEngineID; } } } loadResults(); }, buildServiceCard: function (serviceId, serviceImage, serviceAgencyFriendlyName, serviceAgencyAcronym, serviceName, serviceUrl, serviceDescription, serviceContactPhone, lang, serviceLandingPage, agencyLandingPage) { var descriptionHolder = ""; descriptionHolder = serviceDescription; descriptionHolder = descriptionHolder.slice(0, 95) + "..."; var agencyNameToPass = processJsonData.processPassedItem('Out', serviceAgencyFriendlyName); var serviceNameToPass = processJsonData.processPassedItem('Out', serviceName); var cardToBuild = ""; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "\"""; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "" + serviceName + ""; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "

" + serviceAgencyFriendlyName + "

"; cardToBuild += "
"; cardToBuild += "

" + descriptionHolder + "

"; cardToBuild += "
"; cardToBuild += ""; cardToBuild += "

"; cardToBuild += "General Information: " + serviceContactPhone + "
"; cardToBuild += "

"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "Service Detail"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += ""; cardToBuild += "Open"; cardToBuild += ""; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; return cardToBuild; }, showFeaturedServices: function (selectedService1, selectedService2, selectedService3, selectedService4, lang, serviceLandingPage, agencyLandingPage) { if (lang === "") { lang = "en"; } var selectedServices = [selectedService1, selectedService2, selectedService3, selectedService4]; var idBuilder = ""; var itemNumber = 0; for (var i = 0; i < selectedServices.length; i++) { var currentServiceId = selectedServices[i]; if (currentServiceId > 0) { itemNumber = itemNumber + 1; idBuilder = "serviceTile" + itemNumber; processJsonData.populateFeaturedService(selectedServices[i], itemNumber, idBuilder, lang, serviceLandingPage, agencyLandingPage); } } }, populateFeaturedService: function (selectedService, currentCountItem, selectedServiceLocation, lang, serviceLandingPage, agencyLandingPage) { var builtApiUrl = ""; switch (currentCountItem) { case 1: builtApiUrl = apiLocation + "api/Services/GetServiceById/" + selectedService + "/" + lang; var getApiRequest = new XMLHttpRequest(); getApiRequest.open("GET", builtApiUrl, true); getApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { var result1 = JSON.parse(this.responseText); document.getElementById(selectedServiceLocation).innerHTML = processJsonData.buildServiceCard(result1.ServiceId, result1.ImageUrl, result1.FriendlyName, result1.Acronym, result1.ServiceName, result1.ServiceUrl, result1.Description, result1.ContactPhone, lang, serviceLandingPage, agencyLandingPage); } }; getApiRequest.setRequestHeader('Content-Type', 'application/json'); getApiRequest.withCredentials = false; getApiRequest.send(); break; case 2: builtApiUrl = apiLocation + "api/Services/GetServiceById/" + selectedService + "/" + lang; var getApiRequest2 = new XMLHttpRequest(); getApiRequest2.open("GET", builtApiUrl, true); getApiRequest2.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { var result2 = JSON.parse(this.responseText); document.getElementById(selectedServiceLocation).innerHTML = processJsonData.buildServiceCard(result2.ServiceId, result2.ImageUrl, result2.FriendlyName, result2.Acronym, result2.ServiceName, result2.ServiceUrl, result2.Description, result2.ContactPhone, lang, serviceLandingPage, agencyLandingPage); } }; getApiRequest2.setRequestHeader('Content-Type', 'application/json'); getApiRequest2.withCredentials = false; getApiRequest2.send(); break; case 3: builtApiUrl = apiLocation + "api/Services/GetServiceById/" + selectedService + "/" + lang; var getApiRequest3 = new XMLHttpRequest(); getApiRequest3.open("GET", builtApiUrl, true); getApiRequest3.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { var result3 = JSON.parse(this.responseText); document.getElementById(selectedServiceLocation).innerHTML = processJsonData.buildServiceCard(result3.ServiceId, result3.ImageUrl, result3.FriendlyName, result3.Acronym, result3.ServiceName, result3.ServiceUrl, result3.Description, result3.ContactPhone, lang, serviceLandingPage, agencyLandingPage); } }; getApiRequest3.setRequestHeader('Content-Type', 'application/json'); getApiRequest3.withCredentials = false; getApiRequest3.send(); break; default: builtApiUrl = apiLocation + "api/Services/GetServiceById/" + selectedService + "/" + lang; var getApiRequestd = new XMLHttpRequest(); getApiRequestd.open("GET", builtApiUrl, true); getApiRequestd.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { var resultd = JSON.parse(this.responseText); document.getElementById(selectedServiceLocation).innerHTML = processJsonData.buildServiceCard(resultd.ServiceId, resultd.ImageUrl, resultd.FriendlyName, resultd.Acronym, resultd.ServiceName, resultd.ServiceUrl, resultd.Description, resultd.ContactPhone, lang, serviceLandingPage, agencyLandingPage); } }; getApiRequestd.setRequestHeader('Content-Type', 'application/json'); getApiRequestd.withCredentials = false; getApiRequestd.send(); } }, //#################################################################################################### // Display Agency Functions //#################################################################################################### showAgencyDetails: function (idOfDivToFill, searchvalue, lang) { var agencyNamePassed = processJsonData.processPassedItem('In', searchvalue); if (lang === "") { lang = "en"; } var builtApiUrl = apiLocation + "api/Agencies/FindAgenciesByName/" + agencyNamePassed + "/" + lang; var loadFlag = false; var loadCount = 0; function loadResults() { if (loadCount === 0) { var getApiRequest = new XMLHttpRequest(); getApiRequest.open("GET", builtApiUrl, true); getApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { agencyDetailsResults.push(this.responseText); } if (this.readyState === 4 && this.status === 404) { agencyDetailsResults.push("NONEXISTS"); } }; getApiRequest.setRequestHeader('Content-Type', 'application/json'); getApiRequest.withCredentials = false; getApiRequest.send(); } loadCount += 1; if (loadFlag === false) { if (typeof agencyDetailsResults[0] !== "undefined") { if (agencyDetailsResults[0].length > 10) { loadFlag = true; } } if (loadCount >= 1000) { loadFlag = true; } window.setTimeout(loadResults, 100); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 1000) { var result = JSON.parse(agencyDetailsResults[0]); this.apiData = result; var r = 0; var agencyArrayLength = this.apiData.length; if (agencyArrayLength > 0) { var t = 0; var fromAPI = ""; for (t = 0; t < agencyArrayLength; t++) { fromAPI = this.apiData[t].FriendlyName.toLowerCase(); if (agencyNamePassed === fromAPI) { r = t; } } } pageAgencyId = this.apiData[r].AgencyId; pageServiceSearchTerms = this.apiData[r].FriendlyName; pageServiceSearchCollection = this.apiData[r].GssSearchEngineID; pageMobileAppsText = this.apiData[r].MobileApps; processJsonData.setTitleOfPageForItem(this.apiData[r].FriendlyName); var textToDisplay = ""; var friendlyNameId = processJsonData.processPassedItem('Out', this.apiData[r].FriendlyName); friendlyNameId = friendlyNameId.replace( '%27', ''); textToDisplay += ""; textToDisplay += "
"; textToDisplay += "\"""; textToDisplay += "
"; textToDisplay += "
"; textToDisplay += "

" + this.apiData[r].FriendlyName + " (" + this.apiData[r].Acronym + ")

"; textToDisplay += "

" + this.apiData[r].Description + "

"; textToDisplay += "
"; textToDisplay += "   Website"; textToDisplay += "   Contact"; textToDisplay += "
"; textToDisplay += "
"; textToDisplay += ""; textToDisplay += "
"; textToDisplay += "

"; if (this.apiData[r].ContactPhone) { textToDisplay += "General Information: " + this.apiData[r].ContactPhone + "
"; } if (this.apiData[r].HearingImpairedPhone) { textToDisplay += "Hearing Impaired: " + this.apiData[r].HearingImpairedPhone + "
"; } if (this.apiData[r].FaxNumber) { textToDisplay += "Fax Number: " + this.apiData[r].FaxNumber + "
"; } if (this.apiData[r].PhoneHours) { textToDisplay += "Phone Hours of Availability: " + this.apiData[r].PhoneHours + "
"; } textToDisplay += "

"; textToDisplay += "
"; textToDisplay += "
"; textToDisplay += ""; textToDisplay += "
"; document.getElementById(idOfDivToFill).innerHTML = textToDisplay + ""; } } } loadResults(); }, showAgencyServicesTilesAndPanels: function (howManyDivHolders, parentContainer, currentSection, currentAgency, searchvalue, lang, serviceLandingPage, agencyLandingPage) { var data = JSON.stringify([ currentAgency ]); if (lang === "") { lang = "en"; } var builtApiUrl = apiLocation + "api/Services/GetServicesByAgencyIds?lang=" + lang; var loadFlag = false; var loadCount = 0; var textToDisplayTiles = ""; var tabbackground = ""; var panelTextToPass = ""; var serviceCounter = 0; var holderDescription = ""; function loadResults() { if (loadCount === 0) { var putApiRequest = new XMLHttpRequest(); putApiRequest.open("POST", builtApiUrl, true); putApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { agencyServicesResults.push(this.responseText); } if (this.readyState === 4 && this.status === 404) { agencyServicesResults.push("NONEXISTS"); } }; putApiRequest.setRequestHeader('Content-Type', 'application/json'); putApiRequest.withCredentials = false; putApiRequest.send(data); } loadCount += 1; if (loadFlag === false) { if (typeof agencyServicesResults[0] !== "undefined") { if (agencyServicesResults[0].length > 10) { loadFlag = true; } } if (loadCount >= 50) { loadFlag = true; } window.setTimeout(loadResults, 10); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 50) { var result = JSON.parse(agencyServicesResults[0]); this.apiData = result; var arrayLength = this.apiData.length; if (arrayLength > 0) { for (var i = 0; i < arrayLength; i++) { serviceCounter = serviceCounter + 1; var agencyNameToPass = processJsonData.processPassedItem('Out', this.apiData[i].FriendlyName); var serviceNameToPass = processJsonData.processPassedItem('Out', this.apiData[i].ServiceName); if (this.apiData[i].ImageUrl) { tabbackground = this.apiData[i].ImageUrl; } else { tabbackground = "service-general.jpg"; } textToDisplayTiles += "
"; textToDisplayTiles += "

" + this.apiData[i].ServiceName + "

"; textToDisplayTiles += "
"; idbuilder = "featured-service-tab-" + serviceCounter; document.getElementById(idbuilder).innerHTML = textToDisplayTiles; document.getElementById(idbuilder).setAttribute("aria-label", this.apiData[i].ServiceName + " Service Tile. Hit Enter to toggle between displaying and hiding details about this service."); textToDisplayTiles = ""; document.getElementById(idbuilder).style.backgroundImage = "url('" + imageUrlPrefix + "/" + tabbackground + "')"; holderDescription = this.apiData[i].Description; holderDescription = holderDescription.slice(0, 200) + "..."; panelTextToPass = ""; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += ""; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "

" + this.apiData[i].ServiceName + "

"; panelTextToPass += "

" + this.apiData[i].FriendlyName + "

"; panelTextToPass += "

" + holderDescription + "


"; panelTextToPass += "
"; panelTextToPass += " Launch Service"; panelTextToPass += " See Details"; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += ""; panelTextToPass += "
"; panelTextToPass += "

"; if (this.apiData[i].ContactPhone) { panelTextToPass += "General Information: " + this.apiData[i].ContactPhone + "
"; } panelTextToPass += "

"; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "\"""; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "
"; panelTextToPass += "
"; idbuilder = "featured-service-panel-" + serviceCounter; document.getElementById(idbuilder).innerHTML = panelTextToPass; } var elt = document.getElementById(parentContainer); elt.style.cssText = "background-color: #161616"; if (!(serviceCounter === howManyDivHolders)) { var element = ""; setTimeout(function () { for (var i = serviceCounter; i < howManyDivHolders; i++) { var num = i + 1; element = "featured-service-tab-" + num; element = document.getElementById(element); element.parentNode.removeChild(element); element = "featured-service-panel-" + num; element = document.getElementById(element); element.parentNode.removeChild(element); } }, 100); } } else { var elementToRemove = document.getElementById(currentSection); elementToRemove.parentNode.removeChild(elementToRemove); } } else { var elementToRemoveAfterTimeout = document.getElementById(currentSection); elementToRemoveAfterTimeout.parentNode.removeChild(elementToRemoveAfterTimeout); } } } loadResults(); }, showFilteredAgencyMap: function (idOfTextDivFill, idOfMapDivFill, containingSection, thisLong, thisLat, thisAgencyId, returnCount, lang) { if (lang === "") { lang = "en"; } var builtApiUrl = apiLocation + "GetNearestLocations?lang=" + lang + "&agencyId=" + thisAgencyId + "&longitude=" + thisLong + "&latitude=" + thisLat + "&maxReturn=" + returnCount; var loadFlag = false; var loadCount = 0; serviceLocationsResults = []; var element = document.getElementById(containingSection); var closestLocationFlag = true; function loadResults() { if (loadCount === 0) { var putApiRequest = new XMLHttpRequest(); putApiRequest.open("POST", builtApiUrl, true); putApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { serviceLocationsResults.push(this.responseText); } if (this.readyState === 4 && this.status === 404) { serviceLocationsResults.push("NONEXISTS"); } }; putApiRequest.setRequestHeader('Content-Type', 'application/json'); putApiRequest.withCredentials = false; putApiRequest.send(null); } loadCount += 1; if (loadFlag === false) { if (typeof serviceLocationsResults[0] !== "undefined") { if (serviceLocationsResults[0].length > 10 || serviceLocationsResults[0] === "[]") { loadFlag = true; } } if (loadCount >= 500) { loadFlag = true; } window.setTimeout(loadResults, 100); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 500) { var dataToProcess = JSON.parse(serviceLocationsResults[0]); var arrayLength = dataToProcess.QueryResults.length; var textToDisplay = ""; var mapDataToDisplay = ""; if (arrayLength > 1) { for (var i = 0; i < arrayLength; i++) { var latlng = dataToProcess.QueryResults[i].PointLocation.Geography.WellKnownText; latlng = latlng.replace("POINT (", ""); latlng = latlng.replace(")", ""); var latlngArray = latlng.split(" "); var latValue = latlngArray[0]; var lngValue = latlngArray[1]; if (closestLocationFlag === true) { closestLocationLat = latValue; closestLocationLong = lngValue; closestLocationFlag = false; } mapDataToDisplay += "^" + latValue; mapDataToDisplay += "|" + lngValue; mapDataToDisplay += "|" + dataToProcess.QueryResults[i].LocationName; mapDataToDisplay += "|" + dataToProcess.QueryResults[i].Id; mapDataToDisplay += "|" + dataToProcess.QueryResults[i].StreetAddress; mapDataToDisplay += "|" + dataToProcess.QueryResults[i].City; mapDataToDisplay += "|" + dataToProcess.QueryResults[i].State; mapDataToDisplay += "|" + dataToProcess.QueryResults[i].ZipCode; textToDisplay += "
" + dataToProcess.QueryResults[i].LocationName + "
" + dataToProcess.QueryResults[i].StreetAddress + "
" + dataToProcess.QueryResults[i].City + ", " + dataToProcess.QueryResults[i].State + " " + dataToProcess.QueryResults[i].ZipCode + "
Get directions
"; } if (mapDataToDisplay.length > 0) { document.getElementById(idOfTextDivFill).innerHTML = textToDisplay + ""; document.getElementById(idOfMapDivFill).innerHTML = mapDataToDisplay; } else { element.parentNode.removeChild(element); } } else { element.parentNode.removeChild(element); } } } } loadResults(); }, showAgencyFeaturedFaq: function (idOfDivToFill, containingSection, searchvalue, lang) { var data = JSON.stringify([ searchvalue ]); if (lang === "") { lang = "en"; } var builtApiUrl = apiLocation + "GetFaqsByAgencyProfileIds?lang=" + lang; var loadFlag = false; var loadCount = 0; function loadResults() { if (loadCount === 0) { var putApiRequest = new XMLHttpRequest(); putApiRequest.open("POST", builtApiUrl, true); putApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { agencyFaqResults.push(this.responseText); } if (this.readyState === 4 && this.status === 404) { agencyFaqResults.push("NONEXISTS"); } }; putApiRequest.setRequestHeader('Content-Type', 'application/json'); putApiRequest.withCredentials = false; putApiRequest.send(data); } loadCount += 1; if (loadFlag === false) { if (typeof agencyFaqResults[0] !== "undefined") { if (agencyFaqResults[0].length > 10 || agencyFaqResults[0] === "[]") { loadFlag = true; } } if (loadCount >= 50) { loadFlag = true; } window.setTimeout(loadResults, 100); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 50) { var dataToProcess = JSON.parse(agencyFaqResults[0]); var arrayLength = dataToProcess.length; var featuredcount = 0; var textToDisplay = ""; console.log(arrayLength); if (arrayLength > 1) { textToDisplay += "
"; for (var i = 0; i < arrayLength; i++) { featuredcount += 1; if (featuredcount < 5) { textToDisplay += "
"; textToDisplay += " "; textToDisplay += "
"; textToDisplay += "
"; textToDisplay += dataToProcess[i].Answer; textToDisplay += "
"; textToDisplay += "
"; textToDisplay += "
"; } } textToDisplay += "
"; document.getElementById(idOfDivToFill).innerHTML = textToDisplay + ""; if (featuredcount === 0) { var noFeaturedElements = document.getElementById(containingSection); noFeaturedElements.parentNode.removeChild(noFeaturedElements); } } else { var noFaqElement = document.getElementById(containingSection); noFaqElement.parentNode.removeChild(noFaqElement); } } } } loadResults(); }, buildAgencyCard: function (agencyId, agencyLogo, agencyFriendlyName, agencyName, agencyAcronym, agencyUrl, agencyDescription, agencyContactPhone, agencyHearingImpairedPhone, agencyFaxNumber, PhoneHours, agencyContactUrl, agencyTwitterAccount, agencyFacebook, agencyYouTube, agencyContactEmail, agencyLiveChat, lang, agencyLandingPage) { var descriptionHolder = ""; descriptionHolder = agencyDescription; descriptionHolder = descriptionHolder.slice(0, 95) + "..."; var agencyNameToPass = processJsonData.processPassedItem('Out', agencyFriendlyName); var cardToBuild = ""; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "\"""; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "" + agencyFriendlyName + ""; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "

" + descriptionHolder + "

"; cardToBuild += "
"; cardToBuild += "

"; if (agencyContactPhone) { cardToBuild += "General Information: " + agencyContactPhone + "
"; } if (agencyHearingImpairedPhone) { cardToBuild += "Hearing Impaired: " + agencyHearingImpairedPhone + "
"; } if (agencyFaxNumber) { cardToBuild += "Fax Number: " + agencyFaxNumber + "
"; } if (PhoneHours) { cardToBuild += "Phone Hours of Availability: " + PhoneHours + "
"; } cardToBuild += "

"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "Agency Profile"; cardToBuild += "
"; cardToBuild += "Contact Agency"; if (agencyLiveChat) { cardToBuild += "Live Chat"; } cardToBuild += "
    "; if (agencyTwitterAccount) { var thisitem1 = agencyTwitterAccount; thisitem1 = thisitem1.replace("https://", ""); thisitem1 = thisitem1.replace("http://", ""); thisitem1 = thisitem1.replace("www.twitter.com/", ""); cardToBuild += "
  • "; cardToBuild += "Twitter for " + agencyFriendlyName + ""; cardToBuild += "
  • "; } if (agencyFacebook) { var thisitem2 = agencyFacebook; thisitem2 = thisitem2.replace("https://", ""); thisitem2 = thisitem2.replace("http://", ""); thisitem2 = thisitem2.replace("www.facebook.com/", ""); cardToBuild += "
  • "; cardToBuild += "Facebook for " + agencyFriendlyName + ""; cardToBuild += "
  • "; } if (agencyYouTube) { var thisitem3 = agencyYouTube; thisitem3 = thisitem3.replace("https://", ""); thisitem3 = thisitem3.replace("http://", ""); thisitem3 = thisitem3.replace("www.youtube.com/", ""); cardToBuild += "
  • "; cardToBuild += "YouTube for " + agencyFriendlyName + ""; cardToBuild += "
  • "; } if (agencyContactEmail) { cardToBuild += "
  • "; cardToBuild += "Email"; cardToBuild += "
  • "; } cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += ""; cardToBuild += "Open "; cardToBuild += "
"; cardToBuild += "
"; cardToBuild += "
"; return cardToBuild; }, buildAlphaUlList: function (idOfDivToFill, lang, agencyLandingPage) { if (lang === "") { lang = "en"; } var builtApiUrl = apiLocation + "api/Agencies/Get?page=0&pageSize=0&lang=" + lang; var loadFlag = false; var loadCount = 0; function loadResults() { if (loadCount === 0) { var putApiRequest = new XMLHttpRequest(); putApiRequest.open("POST", builtApiUrl, true); putApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { alphaListingResults.push(this.responseText); } if (this.readyState === 4 && this.status === 404) { alphaListingResults.push("NONEXISTS"); } }; putApiRequest.setRequestHeader('Content-Type', 'application/json'); putApiRequest.withCredentials = false; putApiRequest.send(null); } loadCount += 1; if (loadFlag === false) { if (typeof alphaListingResults[0] !== "undefined") { if (alphaListingResults[0].length > 10) { loadFlag = true; } } if (loadCount >= 50) { loadFlag = true; } window.setTimeout(loadResults, 100); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 50) { var result = JSON.parse(alphaListingResults[0]).Data; var arrayLength = result.length; var displayText = ""; for (var i = 0; i < arrayLength; i++) { var thisitem1 = ""; var thisitem2 = ""; var thisitem3 = ""; var thisitem4 = ""; if (result[i].TwitterAccount) { thisitem1 = result[i].TwitterAccount; thisitem1 = thisitem1.replace("https://", ""); thisitem1 = thisitem1.replace("http://", ""); thisitem1 = thisitem1.replace("www.", ""); thisitem1 = thisitem1.replace("twitter.com/", ""); } if (result[i].Facebook) { thisitem2 = result[i].Facebook; thisitem2 = thisitem2.replace("https://", ""); thisitem2 = thisitem2.replace("http://", ""); thisitem2 = thisitem2.replace("www.", ""); thisitem2 = thisitem2.replace("facebook.com/", ""); } if (result[i].YouTube) { thisitem3 = result[i].YouTube; thisitem3 = thisitem3.replace("https://", ""); thisitem3 = thisitem3.replace("http://", ""); thisitem3 = thisitem3.replace("www", ""); thisitem3 = thisitem3.replace("youtube.com/", ""); } if (result[i].ContactEmail) { thisitem4 = result[i].ContactEmail; } var agencyNameToPass = processJsonData.processPassedItem('Out', result[i].FriendlyName); displayText += "
  • " + result[i].AgencyName + "|" + agencyLandingPage + "?item=" + agencyNameToPass + "|" + result[i].FriendlyName + "|" + thisitem1 + "|" + thisitem2 + "|" + thisitem3 + "|" + thisitem4 + "
  • "; } displayText += ""; document.getElementById(idOfDivToFill).innerHTML = displayText; } } } loadResults(); }, showFeaturedAgencies: function (selectedAgency1, selectedAgency2, selectedAgency3, selectedAgency4, lang, agencyLandingPage) { if (lang === "") { lang = "en"; } var selectedAgencies = [selectedAgency1, selectedAgency2, selectedAgency3, selectedAgency4]; var idBuilder = ""; var itemNumber = 0; for (var i = 0; i < selectedAgencies.length; i++) { var currentAgencyId = selectedAgencies[i]; if (currentAgencyId > 0) { itemNumber = itemNumber + 1; idBuilder = "agencyTile" + itemNumber; processJsonData.populateFeaturedAgency(selectedAgencies[i], itemNumber, idBuilder, lang, agencyLandingPage); } } }, populateFeaturedAgency: function (selectedAgency, currentCountItem, selectedServiceLocation, lang, agencyLandingPage) { var builtApiUrl = ""; switch (currentCountItem) { case 1: builtApiUrl = apiLocation + "api/Agencies/GetAgencyById/" + selectedAgency + "/" + lang; var getApiRequest = new XMLHttpRequest(); getApiRequest.open("GET", builtApiUrl, true); getApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { var result1 = JSON.parse(this.responseText); document.getElementById(selectedServiceLocation).innerHTML = processJsonData.buildAgencyCard(result1.AgencyId, result1.LogoUrl, result1.FriendlyName, result1.AgencyName, result1.Acronym, result1.WebsiteURL, result1.Description, result1.ContactPhone, result1.HearingImpairedPhone, result1.FaxNumber, result1.PhoneHours, result1.ContactURL, result1.TwitterAccount, result1.Facebook, result1.YouTube, result1.ContactEmail, result1.LivechatLink, lang, agencyLandingPage); } }; getApiRequest.setRequestHeader('Content-Type', 'application/json'); getApiRequest.withCredentials = false; getApiRequest.send(); break; case 2: builtApiUrl = apiLocation + "api/Agencies/GetAgencyById/" + selectedAgency + "/" + lang; var getApiRequest2 = new XMLHttpRequest(); getApiRequest2.open("GET", builtApiUrl, true); getApiRequest2.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { var result2 = JSON.parse(this.responseText); document.getElementById(selectedServiceLocation).innerHTML = processJsonData.buildAgencyCard(result2.AgencyId, result2.LogoUrl, result2.FriendlyName, result2.AgencyName, result2.Acronym, result2.WebsiteURL, result2.Description, result2.ContactPhone, result2.HearingImpairedPhone, result2.FaxNumber, result2.PhoneHours, result2.ContactURL, result2.TwitterAccount, result2.Facebook, result2.YouTube, result2.ContactEmail, result2.LivechatLink, lang, agencyLandingPage); } }; getApiRequest2.setRequestHeader('Content-Type', 'application/json'); getApiRequest2.withCredentials = false; getApiRequest2.send(); break; case 3: builtApiUrl = apiLocation + "api/Agencies/GetAgencyById/" + selectedAgency + "/" + lang; var getApiRequest3 = new XMLHttpRequest(); getApiRequest3.open("GET", builtApiUrl, true); getApiRequest3.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { var result3 = JSON.parse(this.responseText); document.getElementById(selectedServiceLocation).innerHTML = processJsonData.buildAgencyCard(result3.AgencyId, result3.LogoUrl, result3.FriendlyName, result3.AgencyName, result3.Acronym, result3.WebsiteURL, result3.Description, result3.ContactPhone, result3.HearingImpairedPhone, result3.FaxNumber, result3.PhoneHours, result3.ContactURL, result3.TwitterAccount, result3.Facebook, result3.YouTube, result3.ContactEmail, result3.LivechatLink, lang, agencyLandingPage); } }; getApiRequest3.setRequestHeader('Content-Type', 'application/json'); getApiRequest3.withCredentials = false; getApiRequest3.send(); break; default: builtApiUrl = apiLocation + "api/Agencies/GetAgencyById/" + selectedAgency + "/" + lang; var getApiRequestd = new XMLHttpRequest(); getApiRequestd.open("GET", builtApiUrl, true); getApiRequestd.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { var resultd = JSON.parse(this.responseText); document.getElementById(selectedServiceLocation).innerHTML = processJsonData.buildAgencyCard(resultd.AgencyId, resultd.LogoUrl, resultd.FriendlyName, resultd.AgencyName, resultd.Acronym, resultd.WebsiteURL, resultd.Description, resultd.ContactPhone, resultd.HearingImpairedPhone, resultd.FaxNumber, resultd.PhoneHours, resultd.ContactURL, resultd.TwitterAccount, resultd.Facebook, resultd.YouTube, resultd.ContactEmail, resultd.LivechatLink, lang, agencyLandingPage); } }; getApiRequestd.setRequestHeader('Content-Type', 'application/json'); getApiRequestd.withCredentials = false; getApiRequestd.send(); } }, //#################################################################################################### // Search Functions //#################################################################################################### //--- Show Service Cards Based On Search Term, Sort Order, Number Of Cards Per Page, & Page Selected - showServicesList: function (searchTerm, previousSearchTermHolder, pageOfData, pageSize, sortDirection, idOfDivToFill, idOfResultDivToFill, idofTopPageDivToFill, idofBottomPageDivToFill, lang, serviceLandingPage, agencyLandingPage) { var currentResults = document.getElementById(idOfResultDivToFill).innerHTML; if (lang === "") { lang = "en"; } var data = JSON.stringify({ "lang": lang, "name": searchTerm, "agencyTypeIds": [ null ], "agencyTagIds": [ null ], "page": pageOfData, "pageSize": pageSize, "sortDirection": sortDirection }); var builtApiUrl = apiLocation + "api/Services/Query"; var loadFlag = false; var loadCount = 0; var halfOfTheCards = ""; var otherHalfOfTheCards = ""; var displayText = ""; var displayablePaginationBar = ""; var resultInfoText = "No service results returned for \"" + searchTerm + "\""; document.getElementById(idOfDivToFill).innerHTML = displayText; function loadResults() { if (loadCount === 0) { serviceSearchResults = []; var putApiRequest = new XMLHttpRequest(); putApiRequest.open("POST", builtApiUrl, true); putApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { serviceSearchResults.push(this.responseText); document.getElementById(previousSearchTermHolder).innerHTML = searchTerm; } if (this.readyState === 4 && this.status === 404) { serviceSearchResults.push("NONEXISTS"); } }; putApiRequest.setRequestHeader('Content-Type', 'application/json'); putApiRequest.withCredentials = false; putApiRequest.send(data); } loadCount += 1; if (loadFlag === false) { if (typeof serviceSearchResults[0] !== "undefined") { if (serviceSearchResults[0].length > 10) { loadFlag = true; } } if (loadCount >= 50) { loadFlag = true; } window.setTimeout(loadResults, 100); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 50) { if (typeof serviceSearchResults[0] !== "undefined") { theResults = JSON.parse(serviceSearchResults[0]); this.apiData = theResults.Results; var totalCount = theResults.TotalCount; var currentPage = theResults.Page; var pageSize = theResults.PageSize; var arrayLength = this.apiData.length; if (totalCount > 0) { if (totalCount < 2) { resultInfoText = "Displaying only service result for \"" + searchTerm + "\""; } else { if (totalCount < pageSize) { currentPage = 0; } var lowerNumber = currentPage * pageSize + 1; var upperNumber = currentPage * pageSize + pageSize; displayablePaginationBar += "
    "; displayablePaginationBar += ""; displayablePaginationBar += "
    "; if (currentPage > 0) { displayablePaginationBar += "
    << Previous
    "; } for (var p = 0; p < totalCount / pageSize; p++) { if (p === currentPage) { displayablePaginationBar += "
     " + (p + 1) + " 
    "; } else { displayablePaginationBar += "
     " + (p + 1) + " 
    "; } } if (upperNumber < totalCount) { displayablePaginationBar += "
    Next >>
    "; } displayablePaginationBar += "
    "; displayablePaginationBar += "
    "; if (upperNumber > totalCount) { upperNumber = totalCount; } resultInfoText = "Displaying results " + lowerNumber + " - " + upperNumber + " of " + totalCount + " total results"; if (searchTerm.length !== 0) { resultInfoText += " for \"" + searchTerm + "\""; } } for (var i = 0; i < arrayLength; i++) { if (i & 1) { halfOfTheCards += processJsonData.buildServiceCard(this.apiData[i].ServiceId, this.apiData[i].ImageUrl, this.apiData[i].FriendlyName, this.apiData[i].Acronym, this.apiData[i].ServiceName, this.apiData[i].ServiceUrl, this.apiData[i].Description, this.apiData[i].ContactPhone, lang, serviceLandingPage, agencyLandingPage); } else { otherHalfOfTheCards += processJsonData.buildServiceCard(this.apiData[i].ServiceId, this.apiData[i].ImageUrl, this.apiData[i].FriendlyName, this.apiData[i].Acronym, this.apiData[i].ServiceName, this.apiData[i].ServiceUrl, this.apiData[i].Description, this.apiData[i].ContactPhone, lang, serviceLandingPage, agencyLandingPage); } } displayText += "
    "; displayText += "
    "; displayText += otherHalfOfTheCards; displayText += "
    "; displayText += "
    "; displayText += halfOfTheCards; displayText += "
    "; displayText += "
    "; } else { resultInfoText = "No service results found for \"" + searchTerm + "\""; displayablePaginationBar = ""; } if (currentResults !== displayText) { document.getElementById(idOfDivToFill).innerHTML = displayText; document.getElementById(idOfResultDivToFill).innerHTML = resultInfoText; document.getElementById(idofTopPageDivToFill).innerHTML = displayablePaginationBar; document.getElementById(idofBottomPageDivToFill).innerHTML = displayablePaginationBar; } } else { resultInfoText = "No service results found for \"" + searchTerm + "\""; document.getElementById(idOfDivToFill).innerHTML = displayText; document.getElementById(idOfResultDivToFill).innerHTML = resultInfoText; document.getElementById(idofTopPageDivToFill).innerHTML = displayablePaginationBar; document.getElementById(idofBottomPageDivToFill).innerHTML = displayablePaginationBar; } } else { resultInfoText = "No service results found for \"" + searchTerm + "\""; document.getElementById(idOfDivToFill).innerHTML = displayText; document.getElementById(idOfResultDivToFill).innerHTML = resultInfoText; document.getElementById(idofTopPageDivToFill).innerHTML = displayablePaginationBar; document.getElementById(idofBottomPageDivToFill).innerHTML = displayablePaginationBar; } } } loadResults(); }, //--- Show Agency Cards Based On Search Term, Sort Order, Number Of Cards Per Page, & Page Selected -- showAgenciesList: function (searchTerm, previousSearchTermHolder, pageOfData, pageSize, sortDirection, idOfDivToFill, idOfResultDivToFill, idofTopPageDivToFill, idofBottomPageDivToFill, lang, agencyLandingPage) { var currentResults = document.getElementById(idOfResultDivToFill).innerHTML; if (lang === "") { lang = "en"; } var data = JSON.stringify({ "lang": lang, "name": searchTerm, "agencyTypeIds": [ null ], "agencyTagIds": [ null ], "page": pageOfData, "pageSize": pageSize, "sortDirection": sortDirection }); var builtApiUrl = apiLocation + "api/Agencies/Query"; var loadFlag = false; var loadCount = 0; var halfOfTheCards = ""; var otherHalfOfTheCards = ""; var displayText = ""; var resultInfoText = ""; var displayablePaginationBar = ""; function loadResults() { if (loadCount === 0) { agencySearchResults = []; var putApiRequest = new XMLHttpRequest(); putApiRequest.open("POST", builtApiUrl, true); putApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { agencySearchResults.push(this.responseText); document.getElementById(previousSearchTermHolder).innerHTML = searchTerm; } if (this.readyState === 4 && this.status === 404) { agencySearchResults.push("NONEXISTS"); } }; putApiRequest.setRequestHeader('Content-Type', 'application/json'); putApiRequest.withCredentials = false; putApiRequest.send(data); } loadCount += 1; if (loadFlag === false) { if (typeof agencySearchResults[0] !== "undefined") { if (agencySearchResults[0].length > 10) { loadFlag = true; } } if (loadCount >= 50) { loadFlag = true; } window.setTimeout(loadResults, 100); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 50) { if (typeof agencySearchResults[0] !== "undefined") { theResults = JSON.parse(agencySearchResults[0]); this.apiData = theResults.Results; var totalCount = theResults.TotalCount; var currentPage = theResults.Page; var pageSize = theResults.PageSize; var arrayLength = this.apiData.length; if (totalCount > 0) { if (totalCount < 2) { resultInfoText = "Displaying only agency result for \"" + searchTerm + "\""; resultInfoText = ""; } else { if (totalCount < pageSize) { currentPage = 0; } var lowerNumber = currentPage * pageSize + 1; var upperNumber = currentPage * pageSize + pageSize; displayablePaginationBar += "
    "; displayablePaginationBar += ""; displayablePaginationBar += "
    "; if (currentPage > 0) { displayablePaginationBar += "
    << Previous
    "; } for (var p = 0; p < totalCount / pageSize; p++) { if (p === currentPage) { displayablePaginationBar += "
     " + (p + 1) + " 
    "; } else { displayablePaginationBar += "
     " + (p + 1) + " 
    "; } } if (upperNumber < totalCount) { displayablePaginationBar += "
    Next >>
    "; } displayablePaginationBar += "
    "; displayablePaginationBar += "
    "; if (upperNumber > totalCount) { upperNumber = totalCount; } resultInfoText = "Displaying results " + lowerNumber + " - " + upperNumber + " of " + totalCount + " total results"; if (searchTerm.length !== 0) { resultInfoText += " for \"" + searchTerm + "\""; } } for (var i = 0; i < arrayLength; i++) { if (i & 1) { halfOfTheCards += processJsonData.buildAgencyCard(apiData[i].AgencyId, apiData[i].LogoUrl, apiData[i].FriendlyName, apiData[i].AgencyName, apiData[i].Acronym, apiData[i].WebsiteURL, apiData[i].Description, apiData[i].ContactPhone, apiData[i].HearingImpairedPhone, apiData[i].FaxNumber, apiData[i].PhoneHours, apiData[i].ContactURL, apiData[i].TwitterAccount, apiData[i].Facebook, apiData[i].YouTube, apiData[i].ContactEmail, apiData[i].LivechatLink, lang, agencyLandingPage); } else { otherHalfOfTheCards += processJsonData.buildAgencyCard(apiData[i].AgencyId, apiData[i].LogoUrl, apiData[i].FriendlyName, apiData[i].AgencyName, apiData[i].Acronym, apiData[i].WebsiteURL, apiData[i].Description, apiData[i].ContactPhone, apiData[i].HearingImpairedPhone, apiData[i].FaxNumber, apiData[i].PhoneHours, apiData[i].ContactURL, apiData[i].TwitterAccount, apiData[i].Facebook, apiData[i].YouTube, apiData[i].ContactEmail, apiData[i].LivechatLink, lang, agencyLandingPage); } } displayText += "
    "; displayText += "
    "; displayText += otherHalfOfTheCards; displayText += "
    "; displayText += "
    "; displayText += halfOfTheCards; displayText += "
    "; displayText += "
    "; } else { resultInfoText = "No agency results found for \"" + searchTerm + "\""; displayablePaginationBar = ""; } if (currentResults !== displayText) { document.getElementById(idOfDivToFill).innerHTML = displayText; document.getElementById(idOfResultDivToFill).innerHTML = resultInfoText; document.getElementById(idofTopPageDivToFill).innerHTML = displayablePaginationBar; document.getElementById(idofBottomPageDivToFill).innerHTML = displayablePaginationBar; } } else { resultInfoText = "No agency results found for \"" + searchTerm + "\""; document.getElementById(idOfDivToFill).innerHTML = displayText; document.getElementById(idOfResultDivToFill).innerHTML = resultInfoText; document.getElementById(idofTopPageDivToFill).innerHTML = displayablePaginationBar; document.getElementById(idofBottomPageDivToFill).innerHTML = displayablePaginationBar; } } else { resultInfoText = "No agency results found for \"" + searchTerm + "\""; document.getElementById(idOfDivToFill).innerHTML = displayText; document.getElementById(idOfResultDivToFill).innerHTML = resultInfoText; document.getElementById(idofTopPageDivToFill).innerHTML = displayablePaginationBar; document.getElementById(idofBottomPageDivToFill).innerHTML = displayablePaginationBar; } } } loadResults(); }, //#################################################################################################### // Sitemap Functions //#################################################################################################### //--- Populate Sitemap Agencies ---------------------------------------------------------------------- showSiteMap: function (idOfDivToFill, lang, serviceLandingPage, agencyLandingPage) { if (lang === "") { lang = "en"; } var builtApiUrl = apiLocation + "api/Agencies/Get?page=0&pageSize=0&lang=" + lang; var loadFlag = false; var loadCount = 0; function loadResults() { if (loadCount === 0) { var putApiRequest = new XMLHttpRequest(); putApiRequest.open("POST", builtApiUrl, true); putApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { alphaListingResults.push(this.responseText); } if (this.readyState === 4 && this.status === 404) { alphaListingResults.push("NONEXISTS"); } }; putApiRequest.setRequestHeader('Content-Type', 'application/json'); putApiRequest.withCredentials = false; putApiRequest.send(null); } loadCount += 1; if (loadFlag === false) { if (typeof alphaListingResults[0] !== "undefined") { if (alphaListingResults[0].length > 10) { loadFlag = true; } } if (loadCount >= 50) { loadFlag = true; } window.setTimeout(loadResults, 100); /* this checks the flag every 100 milliseconds*/ } else { if (loadCount < 50) { var result = JSON.parse(alphaListingResults[0]).Data; var arrayLength = result.length; var columnOneEnd = Math.floor(arrayLength / 3); var columnTwoEnd = columnOneEnd + columnOneEnd; var displayText = ""; displayText += "
    "; displayText += " "; displayText += "
    "; displayText += "
    "; displayText += " "; displayText += "
    "; document.getElementById(idOfDivToFill).innerHTML = displayText; for (var l = 0; l < sitemapAgencyListForServices.length; l++) { var currentServiceId = sitemapAgencyListForServices[l]; processJsonData.showSiteMapServices(currentServiceId, serviceLandingPage, lang); } } } } loadResults(); }, //--- Populate Sitemap Services For Each Sitemap Agency ---------------------------------------------- showSiteMapServices: function (searchvalue, serviceLandingPage, lang) { var data = JSON.stringify([ searchvalue ]); if (lang === "") { lang = "en"; } var builtApiUrl = apiLocation + "api/Services/GetServicesByAgencyIds?lang=" + lang; var putApiRequest = new XMLHttpRequest(); putApiRequest.open("POST", builtApiUrl, true); putApiRequest.onreadystatechange = function () { if (this.readyState === 4 && this.status === 200) { if (this.responseText.length > 10) { var dataToProcess = JSON.parse(this.responseText); var arrayLength = dataToProcess.length; displayText = ""; var divIdBuilder = "serviceHolder" + searchvalue; document.getElementById(divIdBuilder).innerHTML = displayText; } } if (this.readyState === 4 && this.status === 404) { agencyServices = "NONEXISTS"; } }; putApiRequest.setRequestHeader('Content-Type', 'application/json'); putApiRequest.withCredentials = false; putApiRequest.send(data); } }; } /* FILE ARCHIVED ON 01:52:15 Jan 16, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 19:29:26 Jun 15, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). */ /* playback timings (ms): RulesEngine.query: 45.12 PetaboxLoader3.resolve: 110.55 PetaboxLoader3.datanode: 30.739 */