1// footer menu for mobile 2jQuery(document).ready(function(){ 3 if(jQuery(window).innerWidth() <= 767){ 4 5 jQuery('.li-products').click(function(){ 6 jQuery('.products-menu').css( "display", "block" ); 7 jQuery('.industries-menu').css( "display", "none" ); 8 jQuery('.developers-menu').css( "display", "none" ); 9 jQuery('.resources-menu').css( "display", "none" ); 10 }); 11 12 jQuery('.li-industries').click(function(){ 13 jQuery('.products-menu').css( "display", "none" ); 14 jQuery('.industries-menu').css( "display", "block" ); 15 jQuery('.developers-menu').css( "display", "none" ); 16 jQuery('.resources-menu').css( "display", "none" ); 17 }); 18 19 jQuery('.li-developers').click(function(){ 20 jQuery('.products-menu').css( "display", "none" ); 21 jQuery('.industries-menu').css( "display", "none" ); 22 jQuery('.developers-menu').css( "display", "block" ); 23 jQuery('.resources-menu').css( "display", "none" ); 24 }); 25 26 jQuery('.li-resources').click(function(){ 27 jQuery('.products-menu').css( "display", "none" ); 28 jQuery('.industries-menu').css( "display", "none" ); 29 jQuery('.developers-menu').css( "display", "none" ); 30 jQuery('.resources-menu').css( "display", "block" ); 31 }); 32 33 } 34}); 35 36//slider section in mobile 37jQuery(document).ready(function($) { 38 $('.div-slick-slider').slick({ 39 slidesToShow: 1, 40 slidesToScroll: 1, 41// autoplay: true, 42 autoplaySpeed: 2000, 43 dots: true, 44 arrows: false, 45 }); 46}); 47 48// faq page ticket section 49jQuery(document).ready(function(){ 50 51 jQuery('#categories').css( "display", "block" ); 52 jQuery('#ecommerce, #support, #sales, #partners, #careers, #others').css( "display", "none" ); 53 54 jQuery('#new_ticket').click(function(){ 55 jQuery('#ticket-sidebar').css( "display", "block" ); 56 jQuery('.search-faq, #ecommerce, #categories, #support, #sales, #partners, #careers, #others').css( "display", "none" ); 57 }); 58 jQuery('#li-ecom').click(function(){ 59 jQuery('#ticket-sidebar, #categories, #support, #sales, #partners, #careers, #others').css( "display", "none" ); 60 jQuery('.search-faq, #ecommerce').css( "display", "block" ); 61 }); 62 jQuery('#li-cat').click(function(){ 63 jQuery('#ticket-sidebar, #ecommerce, #support, #sales, #partners, #careers, #others').css( "display", "none" ); 64 jQuery('.search-faq, #categories').css( "display", "block" ); 65 }); 66 jQuery('#li-support').click(function(){ 67 jQuery('#ticket-sidebar, #ecommerce, #categories, #sales, #partners, #careers, #others').css( "display", "none" ); 68 jQuery('.search-faq, #support').css( "display", "block" ); 69 }); 70 jQuery('#li-sales').click(function(){ 71 jQuery('#ticket-sidebar, #ecommerce, #categories, #support, #partners, #careers, #others').css( "display", "none" ); 72 jQuery('.search-faq, #sales').css( "display", "block" ); 73 }); 74 jQuery('#li-partners').click(function(){ 75 jQuery('#ticket-sidebar, #ecommerce, #categories, #sales, #support, #careers, #others').css( "display", "none" ); 76 jQuery('.search-faq, #partners').css( "display", "block" ); 77 }); 78 jQuery('#li-careers').click(function(){ 79 jQuery('#ticket-sidebar, #ecommerce, #categories, #sales, #support, #partners, #others').css( "display", "none" ); 80 jQuery('.search-faq, #careers').css( "display", "block" ); 81 }); 82 jQuery('#li-others').click(function(){ 83 jQuery('#ticket-sidebar, #ecommerce, #categories, #sales, #support, #partners, #careers').css( "display", "none" ); 84 jQuery('.search-faq, #others').css( "display", "block" ); 85 }); 86 jQuery('#new_ticket_mobile').click(function(){ 87 jQuery('#ticket-sidebar').css( "display", "block" ); 88 jQuery('.search-faq, #ecommerce, #categories, #support, #sales, #partners, #careers, #others').css( "display", "none" ); 89 }); 90}); 91 92 // Check if there's a hash in the URL indicating a specific section for create ticket from faq section 93jQuery(document).ready(function(){ 94 var hash = window.location.hash; 95 if (hash) { 96 var targetSection = jQuery(hash); 97 if (targetSection.length) { 98 targetSection.show(); 99 jQuery('.search-faq, #ecommerce, #categories, #support, #sales, #partners, #careers, #others').css( "display", "none" ); 100 jQuery('html, body').animate({ 101 scrollTop: targetSection.offset().top 102 }, 1000); 103 } 104 } 105}); 106 107// blog page post slider section 108jQuery(document).ready(function(){ 109 jQuery(".blog-section-3 .elementor-posts").addClass("post-slider"); 110}); 111jQuery(document).ready(function($) { 112 $('.post-slider').slick({ 113 slidesToShow: 1, 114 slidesToScroll: 1, 115 dots: false, 116 arrows: true, 117 }); 118}); 119 120 121// mobile navigation menu 122jQuery(document).ready(function(){ 123 if(jQuery(window).innerWidth() <= 1024){ 124 jQuery(".social-icons").appendTo("ul.hfe-nav-menu"); 125 } 126}); 127 128// 129// var postViews = document.querySelectorAll(".post-views"); 130// var newDiv = document.createElement("div"); 131 132// // Add content to the new div 133// // newDiv.innerHTML = postView; 134// postViews.forEach(function(postView) {
135// newDiv.appendChild(postView.cloneNode(true)); 136// }); 137 138// // Set any class or attributes if needed 139// newDiv.className = "new-div-class"; 140 141// // Select all parent elements with class "elementor-post__excerpt" 142// var parentElements = document.querySelectorAll(".elementor-post__excerpt"); 143 144// // Loop through each parent element and insert the new div before its first child 145// parentElements.forEach(function(parentElement) { 146// parentElement.insertBefore(newDiv.cloneNode(true), parentElement.firstChild); 147// }); 148 149 150//back to top button 151 152 153//css for options in ticket form 154// jQuery(document).ready(function() { 155 156// jQuery('.wpcf7-select').change(function(){ 157// jQuery(this).find('option').css({ 158// 'background-color': '#fff', 159// 'color': 'red', 160// 'font-size': '16px', 161// 'padding': '20px 0px' , 162// 'border' : '3px solid #000', 163// }); 164// }).triger('change'); 165 166 // jQuery('.wpcf7-select option').css({ 167 // 'background-color': '#fff', 168 // 'color': '#333', 169 // 'font-size': '16px', 170 // 'padding': '20px 0px' 171 // }); 172 173 174 // jQuery('.wpcf7-select option').hover(function() { 175 // jQuery(this).css({ 176 // 'background-color': '#f0f0f0', 177 // 'color': '#000' 178 // }); 179 // }, function() { 180 181 // jQuery(this).css({ 182 // 'background-color': '#fff', 183 // 'color': '#333' 184 // }); 185// }); 186 187 188jQuery( document ).ready( function() { 189 jQuery('.enable-select2').select2(); 190 jQuery('.enable-select2').css({ 191 'border-bottom' : '1px solid #000', 192 }); 193 }); 194//White logo 195 196jQuery(document).ready(function(){ 197 if(jQuery(window).innerWidth() <= 1024){ 198 199 jQuery('.hfe-nav-menu-icon').click(function(){ 200 var activeCls = jQuery(this).closest('.hfe-nav-menu__toggle').remove('hfe-active-menu').end().end().addClass('hfe-active-menu'); 201 console.log(activeCls); 202// alert(jQuery('.hfe-nav-menu__toggle').hasClass('hfe-active-menu')); 203 if(jQuery('.hfe-nav-menu__toggle').hasClass('hfe-active-menu') == false) { 204 jQuery('.mobile_logo img').attr('src','https://workspace700.com/js/coastalpay/wp-content/uploads/2024/03/CP_white-1.png'); 205 } 206 else{ 207 var activeCls = jQuery(this).closest('.hfe-nav-menu__toggle').remove('hfe-active-menu'); 208 jQuery('.mobile_logo img').attr('src','https://workspace700.com/js/coastalpay/wp-content/uploads/2024/04/logo-costal.svg'); 209 } 210 }); 211 } 212}); 213 214// Payment Integrations page script 215 216 const integrations = { 217 "#": ["$$$ in the Bank", "$$$ on the Net", "/n software Inc."], 218 "0-9": ["1&1 Internet AG", "1st Mile", "1st Pay Gateway", "1st Pay POS", "24Fundraiser", "2TouchPOS", "3 Delta / 3DSI", "3C Payment / 3CIntegra", "3C Payment USA Corp", "3Delta Systems", "3rd party Trip booking", "4D Payments", " Inc.", "4Soft POS", "4d Payment Gateway", "911 CreditLine", "911 Software", "9700 Series"], 219 "A": ["A2C", " Clinic Controller", "A2Z Pos", "ABS Integral Systems", "ACI Worldwide", " Inc (fka Transendit)", "ACI Worldwide", " Inc.", "ACOMM (Web-based)", "ADFS", "ADVAM Pty Ltd", "AMP POS", "AMS", "AMS (Local)", "ARBAPRO", "AS/PC Complete", "ASP.net Storefront", "AVPM", "AXIS", "AXS Ticketing", "Aavenir", "Abila Fundraising Online (AFO)", "Accept Blue LLC", "Accesso Showare", "AcclaimPOS", "AccuPOS", "Acculynk Inc.", "Acom Rapid", "Acoustic Payments", "Acrelec", "Action Systems Inc", "Active Directory", "Active Directory Pro", "AcuityLogic", "Admin", "Adora POS", "Advanced Checkout Solution", "Advanced Claim", "Advanced MD", "Advanced MD (Local)", "Advanced MD (Practice Fusion)", "Advanced MD (web-based)", "Advanced MD/MyCareIntegrity Advantics (Local)", "Advanced Mobile Payment", " Inc.", "Adyen", "Aesthetics Pro", "Affinity (Lab results)", "AgVision", "Agave Pay", " Inc.", "Agiliron", "Agiloft", "Agilysys", "Agilysys - Visual 1", "Agilysys Info Genesis", "Aims Software", "Aireus POS", "Alacriti Payments LLC", "Aldelo POS", "Alert Easy Pro", "Aliaswire Incorporated", "AllegianceMD", "Alter Trading", "Altru", "Amadeus", "Amazon Seller Central", "AmberPOS", "Ambur App", "Amdocs", "AmploAdvance", "Anderson Zaks", "Animal Hospital Management System", "Anthology", "Any", "Anywhere Commerce Payment Gateway", "AnywhereCommerce", "Appetize", "Appitize App", "Applied Micro Technology", "Applied Programming Services", "Aprima", "Apriva", "Apriva Gateway", "Aptos", "Aptos", " Inc.", "Arbelsoft", "Archeryproshop", "Ariane", "Ariba", "Artisan POS", "Arts People", "Aster Campground Manager", "Athena Collect", "Atrium", "Auction Payment Network", "Auric Systems", "Aurus", " Inc.", "Authorize.net", "Auto Manager", "Auto-Star Compusystems Inc.", "AutoClerk", "Autocanteen", "Availity", "Avalara", "Avant Garde Marketing Solutions", "Avimark", "Avimark (Local)", "Avrio POS", "Axiamed", "Azure B2C Auth.", "aptito"], 220 "B": ["B4Checkin", "BASYS Processing", "BCAP Holdings", " LLC", "BEVO POS", "BISGlobal", "BRAVApos", "BTB Soft", " Inc", "Bambora", "Baseline Solutions", "Beanstream", "Beanstream Inc.", "Beerboard", "Bemacash", "Be
220nseron IT Inc.", "Bepoz", "BidSpotter", "Big Commerce", "Bill1st Gateway", "BillandPay", "Bindo POS", "Birmingham Toledo", "Bite", "BizTracker Infinity", "Blackboard (Any)", "Blackline Partners", "Blue Parasol Group", " LLC", "Blue Print (Local)", "BlueFin Pay Gateway", "BluePay", "Bluefin Payment Systems", "Book4Time", "BookLog", "Bookeo", "BookingBug.com", "Bookstore Manager (BSMGR)", "Bora Payment Systems Payer Direct Hub", "Braintree", "Braintree Payment Solutions", "Brainworks Software", "Breadcrumb PRO", "BridgePay Gateway", "BridgePay Network Solutions", "Bright Pearl", "Brightree", "Brink POS", "Brink Software", " Inc.", "Brinkman Financial Company", " LP", "Britecore", "Bundle B2B", "Business Plus Accounting Restaurant Professional", "Buyer Quest", "Bypass Mobile", "Bytemark", " Inc."], 221 "C": ["C2P", "CASHNet", "CBC Computer Systems", "CBORD", "CC Direct", "CCAssist.Net", "CDS Global", "CKS Business Solutions", "CORS/headless CEF", "COSM / Salsa Labs", "CP Gateway", "CPA - Software HTK - Hamilton Transaction Kiosk", "CRC", "CS PracticeWorks", "CS SoftDent", "CS WinOMS", "CSG Systems Inc.", "CSI Enterprises", "CVPS", "CWT Application", "Cairo", "Cale Access AB", "Caledon Card Services", "Camp Spot", "CampGround Master", "Campground Automation", "Canary Technologies", "CardConnect", "CardConnect", " LLC", "CardFlight", "CardFlight Inc", "CardKnox", "CardKnox Payment Engine", "CardPointe", "CardWorks", "Cardinal Commerce", "Cardio", "Care Tracker", "Carelogic", "Carelogic (cloud-based)", "Carelogic (web-based)", "Carestream", "Carestream Practice Works Carestream SoftDent", "Carestream WINOMS", "Cash Register Express", "CashierLive", "Cashless", "Casio Inc.", "Castles Technology International", "Catapult POS", "Cayan", "Cegid Retail", "Cell Smart POS", "Cellfie Payment", "CenPOS", " Inc.", "CenPos", "CenterEdge", "Centricity", "Centricity (local)", "Chamber Master", "Charge Anywhere (formerly Comstar Interactive)", "Charge Anywhere", " LLC", "ChargeLogic", "ChargeLogic LLC", "ChargeOver", "Chargify", "Chart Perfect", "Check Inn", "Cheers POS", "ChiroOffice", "ChiroTouch", "ChiroTouch (Local)", "Choice Advantage", "Church Management Software", "CircIT", "Circuitree", "Clarity Marketplace", "Clarity Payment Hub", "Clarity eCommerce", "Clarity eCommerce x2", "Clarity eCommerce x4", "Clear Commerce", "Click2Gov", "ClickAway", "Clinic Dr", "ClinicSource", "Clinician", "Clinicient", "Clonallon (Fulfillment)", "Cloud 9", "Cloud 9 Payment Gateway", "Cloud PM", "Cloud POS (formally GopayGo)", "Clover", "Club Management System", "Club Prophet POS / POS Express", "Club Select", "ClubConnect Retail", "ClubEssential", "ClubReady", "ClubTec", "Code Metro", "Code and Go", "Coffee Shop Manager", "ComCash POS or ERP", "Comdata", "Command Retail", "Commerce 7", "CompanyBE", "Complete", "Comprise SmartPay", "Comprise Technologies Inc.", "Compudance", "Compulink", "Compulink (Local and Remote Desktop) Computer Age", "Computer Age (Local)", "Computer Dimensions", "Comtrex", "Conduent Transport Solutions", " Inc", "ConnectWise", "Constant Contact", "Constellation Payments (csipay)", "Continue to Give", "Cornerstone LMS", "CounterPoint", "Coupa", "Courtesy Attendant (IVR) / Web Attendant", "Cousinsco Merchant Services Inc.", "Credible", "Credit Card Advantage", "Credit Card Integration (CCI)", "CreditCall", "CreditCall LTD", "CrowdTorch Ticketing", "Cryptpay 2.18", "Crystal Commerce", "Crystal PM", "Crystal PM (Local)", "Crystal PM (remote server)", "Crystal Point POS", "Crystal Reports", "Cubic Transportation Systems", "Curbstone Card", "Curbstone Corporation", "Cure MD", "CurrencyPay", "Curve Dental", "Cust2mate", "Cvent", "CyberSource", "Cybersource", " Inc.", "Cycle Pro (web-based)", "commerce@work"], 222 "D": ["DATAMATX", " Inc.", "DBC Chiropractic", "DMS Plus", "DMS Systems", "DPA (Data Access Network Payment Application)", "DRB Systems", " Inc.", "DS3 (web-based", "DSN", "DataLine Systems", " Inc.", "DataPark", " Inc.", "DataTel", "Database", "Datasym Pro (Symfinite)", "Dataxstream", "Davlong/Medinformatix", "Daxko", "Dealer View / E-xact", "Dejavoo", "Delego Ca", "Delego Software Inc.", "Demo Reseller", "Dental 3 Solutions Soft", "Dental Lab CPM", "Dentasoft", "Dentimax (Local)", "Dentrix", "Dentrix (Local)", "Dentrix - Ascend", "Dentrix Ascend", "Dentrix Enterprise", "Diamond Payment Systems Payment Gateway 2.2", "Diebold Nixdorlf", "Dietary Food Management/DFM", "DigiCom", "Digital Dining", "Digital Iris", "Digital River", " Inc.", "Dime POS", "Dinerware", "Direct Connect", "Direct Insite", "Direct Payment Integrator", "Direct Vet Marketing", " Inc. dba Vets First Choice", "DoJiggy Golf/Auctions/Events/donations/Pledge", "Docebo LMS", "DocuTrac Office Therapy (Locally installed) Dolphin", "Docusign", "Docutap", "Dolphin", "Dolphin (Remote Server)", "Dolphin (Remote Server)/Eaglesoft (Remote Server) Dolphin", "Dosespot", "DoubleKnot", "Dover Fueling Solutions", "Dox", "Dr Chrono", "Dr Chronos", "Dr Chronos (local)", "Duxware (web-based)", "Dynamic Online CRM", "Dynamic RMS", "Dynamics 365"], 223 "E": ["E Thomas", "E-Payment Integrator", "E-Xact Gateway", "E-Xact Transactions", " Ltd", "EASYPay", "ECRS", "ECRS Software", "EFI", "EFI Printsmith", "EHR", "EIC", "EMDs (Remote Server)", "EMR Bear", "EPAYPOINT", "EPIC", "EPS Smart Payment", "EPX Electronic Payment E
223xchange", "ERP-ONE", "ERPLY", "EVO Sale", "EVO/PayFabric", "EVS", "EZ Claim (Local}", "EZ Dine", "EZ Software Solutions", "EZFacility", "EZIC Gateway", "EZIC", " Inc.", "Eaglesoft", "Eaglesoft (Local)", "Eaglesoft (RDP)", "Eaglesoft (remote server)", "Easitrax Remote Data Port", "Easy Dent", "Easy Dental", "Easy Dental (local)", "Easy Inn Keeping", "Easy Storage Solutions", "EasyPay Direct", "Eats365", "EchoSat", "Eclipse", "Eclipse (Local)", "EclubLogic", "EdgCapture", "Edge", "Ehungry", "Eigen Development", "Elavon Gateway Payment Solutions", "Electronic Payments", " Inc.", "Element Express Gateway", "Element FMS", "Eleos â Octopus", "Ellucian", "EmaginePOS", "Emdeon", "Emma (Cloud Based)", "Emmasoft", "Encompass", "Ennoview", "Enterprise Payment Solution", "Enterprise RX", "EnvisionWare eCommerce Services", "Epicor", "Epicor ERP", "Epicor cloud solutions (BisTrack)", "Equinox Payments", "Ethomas (Remote Desktop) Evident", "Event Smart", "Eventbrite", "Everest", "Exadigm", "Exatouch", "Excentus", "Exhibitor Suite", "Experity", "Eye Infinity Officemate", "Eyedoc PM", "Eyefinity", "Eyefinity EPM (Web-based)", "Eyefinity PM (Web-based)", "Eyefinity Practice Management", "Eyefinity Practice Management (cloud based) EZ Biz", "Eyefinity officemate", "e-Quantum", "e7", "eCW", "eConduit", " SensePass", "eFinesstri", "eGenuity", "eLube", "eMDS (Local)", "eMDs", "eMedical Fusion", "eMobile POS", "eNconcert", "ePass Software", "eProcessing Network Payment Gateway", "eProcessing Network", " LLC", "eScript", "eSoftPlanner", "eTix", "eVetPractice", "easyTithe", "eclipse (Local - Cloud)", "eposnow", "ezyvet"], 224 "F": ["FACTS", "FDA API", "FEXCO", "FINRA APIs", "FIPAY", "FIS Global", "FIServ", "FPN Mobile", "FTNI", "FTNI (Financial Transmission Network", " Inc.)", "FTS Solutions", "Factor Trust", "FasCard", "Fast Transact Gateway (sometimes VeloCT)", "FastCharge", "FatZebra", "Federal APD ScanNET", "Fellow EHR", "FellowshipOne", "Fidelio", "Fiesta Xcharge / Fiesta POS", "Figure POS", "File maker", "First Accept", "First Atlantic Commerce", "First Horizon Bank", "First Insight", "First Resort Software", "Fiscal Systems", " Inc.", "Fishbowl", "Flexis", "Flight System USA", " Inc.", "FloraNext", "Floristware", "Fluid Pay", "Fluid Pay", " LLC", "Focus POS", "Focus POS (Reseller of Focus POS)", "Focus POS Systems", "FoodTec POS", "FoodTec Solutions", "FoodTronix", "ForeUp", "Forte Payment Gateway (Formerly ACH Direct)", "Forte Payment Systems", "Fortis Payment Systems", " LLC dba Zeamster", "Four51", "Foxy (Formerly Foxy Cart)", "Freedom POS", "Freedom Pay", " SensePass", "FreedomPay", " Inc.", "Freeway", "Front Desk-Gym Management", "FrontClerk", "FrontDeskAnywhere", "FrontStream", "Frontstream Fast Transact", " LLC", "FullCount", "Fusebox Hosted Gateway", "Fusion", "Future POS"], 225 "G": ["GDPR", "GEM-CAR", "GK Software Solutions", "Galaxy Light Speed", "Galaxy POS", "Gaming Hospitality Solutions", " Inc.", "Garage.Net", "Gateway Ticketing", "Genius", "Geopagos", "Get Noble", "GiftLogic", "Gilbarco", "GivingFuel", "GivingKiosk", "Glace", "Glitnir", "Glitnir Ticketing", "Global Shop", "GoeMerchant", "GoldTech POS", "Goldline AutoCashier - Hardware", "Golf Masters", "GoodHire / Checkr", "GotoBilling", "Govolution", "Granbury", "Gravity Forms", "Gravity Payments", "Greenway", "Greenway (Citrix)", "Greenway (Local)", "Greenway (RPD - ehslaunch)", "Greenway (Remote Server)", "Greenway (Web-based)", "Greenway - Intergy", "Greenway Health", "Greenway Health - Intergy", "Greenway Health Intergy", "Greenway Intergy", "Greenway Intergy (Citrix))", "Greenway Intergy (Remote Server) Greenway Intergy (Web-based)", "Greenway Intergy off of Citrix", "Greenway Prime", "Groupon", "Grubbrr", "Guestmate", "Gusto", "goEmerchant"], 226 "H": ["HE Corp", "Handpoint", "Hangry - Ecom", "Harris Connect", "Health Fusion Next Gen Office", "Health Pay 24", "Heartland POS", "Helcim USA Inc.", "Henry Schein OMS Vision", "High Trek Ventures", "High-Line", "Highradius Corporation", "HikePOS", "HioPOS", "Home Inspection", "Horizon Retail Systems", "Host Bill", "Hot Sauce Technologies", "HotelKey", "Howell Data Systems", "HulaPOS"], 227 "I": ["IABOL", "IATS", "IBM Payment Gateway", "ICASHIER", "ICG Softw
227are Corp.", "IMS", "IMS (Local)", "IMS (Locally installed) IncaNotes", "IMenu360", "INIT", "INxSQL", "IPCharge", "IPS Express", "IPTranLT", "IQ-POS / RoomMaster 2000", "IQMS", "IRIS POS", "ISN", "ISS 45", "IT Retail", " Inc.", "ITWercs", "IdealPOS", "Ifinity", "Impromed", "Impromed Infinity Impromed Vet", "InOrder", "InTouch POS", "InTouch Receipting", "Incode", "Inet Portals", "Infinite Peripherals", "Infinity", "Infinity (Local)", "Infinnitt", "InfoGenesis POS", "Infonet Technology", "Infor Store", "Infor Vivonet", "InforHMS", "InfusionSoft", "Ingenico Group", "Ingenico Mobile Solutions", "Ingenico Mobile Solutions (Roam Data Gateway)", "Ingenico Payment Services", "Ingenico ePayments", "Innfinity", "Innotrac Corporation", "Innovative Computer Software", "Innovative Control Systems", "Innroad", "Innsoft Software", "Inovio Payments LLC", "Inservio", "Insight Salon Software", "Inspire Commerce Gateway", "InstaMed Communications", " LLC", "InstantAccept", "Intelligent Contacts", "Intelligent Voice Recognition", "Interactive Communications International", " Inc.", "Intergy", "Intergy (Local)", "Intergy (Web Based) Intergy from Greenway Intravet", "International Commerce Solutions (ICS)", "Internet Solutions For Insurance", "Intuit Health", "Invenco Group", "Invenstar LLC", "InvoiceCloud", "Iris Software", "Isalus", "Isalus (Web-based) Jane App", "Island Pacific", "iCheckGateway.com", "iCloud Pro", "iConnect", "iMedicWare", "iPOSpro", "iParc Professional", "iPatientCare", "iPay", "iPocket232 Inc (Wannlynx)", "iQMetrix", "iRipple", "iTerminal", "iTransact", "iVerticle"], 228 "J": ["JDA Direct", "JDA Software Group", "JPOS EMV", "Jack Henry & Associates", "Jamex", "Jamex Vending", "Jenzabar", "Jewels 2000", "Jonas Club Management", "Jotform", "Junction EOD"], 229 "K": ["KMIT Ticketing", "Kappture", "Kareo", "Kareo (Website) Management Plus MDOffice", "Karz", "Karz Systems", " Inc.", "Kentico Commerce", "KeyStone", "Khamu", "Khamu Solutions", "Kimbia", "Kindful", "Kioware", "Klavio", "Kliger-Weiss Infosystems", " Inc.", "Konnektive", "Kontactless", "Kounta", "Kubra"], 230 "L": ["L-POS", "LAVU", "LEAF POS", "LMS (custom)", "LMS lodging management software", "LOC Software", "LS Retail", "LUKE / SHELBY / EMS / IRIS or BOSS", "LavuPOS", "League Athletics", "Lemonstand", "Leo Software â APS", "Lethoff Gateway (LETex Epay)", "LexisNexis VitalChek Network Inc.", "LightSpeed", "Lighthouse", "Lightspeed OnSite", "Lightspeed POS", "Lightspeed Restaurant", "Limo Anywhere", "LinkPOS", "Livery Coach", "Lockbox", "LocoMobi", "Long Range Systems", "Loyale Healthcare", " LLC.", "Lynx Propane", "linked2pay", "loyverse"], 231 "M": ["M&M Enterprises", " Inc", "M9 POS", "MATRA Systems", " Inc.", "MBS Textbook Exchange", "MICROMD", "MICROS", "MMHayes", "MRL Pay (MRL Posnet Private Limited)", "MS Dynamics 365 Commerce", "MS Dynamics 365 F&O", "MacPOS", "Mad Mobile Inc", "Madmobile", "MaestroPMS", "Magazine Manager", "Magento", "Magento Multistore", "Magtek", " Inc.", "Mailchimp", "Maitre'D", "Maitre'D 2005", "Management", "MarcomCentral", "Marketo", "Mashgin", "MasterLinx", "Mastercard Payment Gateway", "Max Solutions Enterprise", "Med Infomatics", "Med Suite (cloud)", "Med USA", "MedFlow Complete", "Medasyst", " Inc.", "Medent (Remote Server) MedEvolve Medformics/Accuterm", "Medformix Medhost (Remote Server) Medical Manager", "Medisoft", "Medisoft (Local) Medisoft (Software) Medisoft EHR", "Meditab", "Meditab IMS", "Meditouch", "Meevo", "Member Zone", "MemberCentral", "MemberMax", "Menusifu", "Meraki", "Merchant Link Gateway with TransactionVault 1.01", "Merchant Link Universal Payment Gateway", "Merchant Partners Gateway", "Merchant Plus LLC", "Merchant Warehouse Gateway", "Merchant Warehouse Gateway (MWARE)", "Merchant+ or Merchant ST", "Merchant-Link", " LLC", "MerchantOS", "Mercury Payments", "Metagenics", "MetisPro", "Micro MD", "MicroBiz POS", "MicroSale", "Microbiz", "Micros 3700", "Micros 9700", "Micros Simphony", "Micros Simphony 2", "Microsoft", "Microsoft Dynamics 365 (MS)", "Microsoft Dynamics AX V2012 R2 (retail", "Midnite Express", "Midnite Express Slipstream", "Millenium Retail Solutions", "Miva Merchant", "Mobile QR", "Mobile Technologies International", "MobileBytes", "ModPay", "Module MD", "Module MD (web-based) Mountain Side Practice Management", "Monetary", "Monetra Technologies", " LLC", "Monetra TranSafe", "Money Movers", "Moodle LMS", "Mortgage Builder", "MotelPro", "MotionSoft", " Inc.", "Mountainside", "Munis", "My Client Plus", "My Vision Express", "My Vision Express (Local)", "MyCare Integrity", "MyHMS", "MyPMS", "Mycheck", "Mynt POS", "Myvenue", "mPayMe", "mStream (revel)", "mediawatt"], 232 "N": ["N Able MD", "NCR", "NCR Aloha", "NCR Aloha Suite", "NCR Cinema Manager", "NCR Corporation", "NCR Counterpoint", "NCR Quest", "NCR Secure Pay", "NCR Silver", "NCR Venue Manager", "NET PAY S.A.", "NETBilling", "NIC Services", " LLC", "NOVA POS", "NSDB LLC", "Nanocran", "Napa Valley POS", "National Merchant Center", "NayaxVEND", "NelNet", "NeonCRM", "Net ePay", "NetPark", "NetPos", "NetScore", "NetSirv", "NetSuite", "NetSuite - NSPOS", " ERP", "Netsmart (Web-Based)", "Netsuite\Onsite", "Network Merchants Gateway", "Network Merchants LLC", "Network Solutions", "Newbook", "NexTech (Local)", "Nextech", "Nextech Select PMS", "Nextep Systems", "NicheSoft", "NiteVision", "NitroSell", "Nobly", "No
232dus Technologies", " Inc.", "North American Bancard", "Nova Libra", "Novadine", "Nowcom", "NueMD"], 233 "O": ["OIDC", "OKTA", "OLB", "OLO", "OLO (Mobo Systems", " Inc.)", "OLS (Online Strategy Service) Payments", "OMS", "OMS Carestream", "OMS Touchmicro", "OMS Vision", "OMSVision", "ONOSYS", "OPMS (Local)", "OPW Fuel Management Systems", "Odyssey POS 2100", "Office Ally", "Office Ally (web-based)", "Office Mate", "Office Mate (EyeFinity)", "Office Mate (Local)", "Office Mate (Local) +1 Remote Server Office Practicum", "Office Mate (cloud-based)", "Office Therapy", "OfficeMate (Remote Sever) Officemate (Web-based) OfficeMate", "OfficeMate (cloud based) OfficeMate (Local)", "Officemate/E-finity", "Official Payments", "Official Payments Gateway", "Olympus POS", "Omni MD", "Omni MD (web-based)", "Omnico Group", "Omnique", "Omniticket Network", " LLC", "OnQ PM", "OnTop Systems", "One Inc.", "OneEach Technologies", "OnePOS", "OnePay", "Onsched (Pharmacy)", "Open Dental", "Open Dental (Local)", "Open PM (Web-Based)", "Open Practice Solutions", "Open Practice Solutions (web-based) OpenDental", "OpenEPS/WinEPS", "Opera PMS / Opera Light / Operetta / Opera Express", "Optimal Payments gateway", "Oracle Corporation", "Oracle Database", "Oracle Micros Xstore", "Oracle NetSuite POS", "Oracle Opera", "Oracle SuiteCommerce", "Oracle X Store", "Orbital Payment Gateway", "OrderPort POS", "Ordyx", "Ordyx POS", "Orion Systems", "Ortho 2 and SoftDent", "Ortho East (Local)", "Ortho2Edge", "OrthoTrac", "Orthoware", "Orthtrac (Thin Client)", "onePOS", " LLC"], 234 "P": ["P3 Hotels", "PAR", "PAX Technology", " Inc.", "PAY.ON", "PBS Endo", "PBS Endo (Local)", "PDQ Access CMS2", "PIXIFI", "POS Nail Store", "POS One", "POSBank USA", "POSLynx", "POSNet", " Inc.", "POSitouch", "PSN CCProcessing", "PSiGate", "PT Practice Pro", "Paciolan Ticketing", "Paladin POS", "Palm Coast Data", "Panasonic", "Paperless Transaction Corp.", "Paradigm", "Paradise POS", "ParkMobile / Phonixx", "Parkeon", "ParkingSoft", " LLC", "Parkmobile USA", " Inc.", "Partech", "Partech - Brink", "PassPort Parking", "Pathway POS", "Patient Care PCS", "Patient Navigation System", "PatronPath", "Pay Pal Express", "PayByPhone", "PayCertify", "PayGo", "PayGuardian", "PayJunction", "PayPal", " Inc.", "PayPlaza", "PayPoint", "PayRazr", "PaySabre", "PaySimple", "PaySpan", "PayTrace", "PayTrace Virtual Terminal", "PayWay", "Paycom", "Payfirma", "Payflow Link", "Payflow Pro", "Paygistix Gateway", "Payix Incorporated", "Payment Collect for Quick Books", "Payment Express", "Payment Logistics Ltd.", "Payment Portal (eLation)", "Payment Processing Partners", " Inc", "Payment Safe", "Payment Service Network", "Payment Switch Framework Auth & Settlement Suite", "Payment Vision / PayWeb", "Payment WorkSuite", "Paymentree", "Payments 360", "Paymentsite", "Paymentus Corporation", "Paymentwall", "Paymetric", "Payoneer", "Payrix", "Paysafe [fka Meritus Payment Solutions]", "Paysafe [fka Optimal Payments]", "Paystation", "Paystream", "Payvision", "Payware Connect", "Payware Mobile (APP)", "Payway", " Inc.", "Paywire Incorporated", "Perfectcare STI", "Personify360", "PestPac", "PheoniXGate", "PhoeniXAccess", "PhoeniXPoint", "Phoenix Managed Networks", "Pinnacle Corporation", "Pinnacle POS", "PixelPoint POS (InFusion)", "Platinum Systems", "Plazsoft", "Ploutos Holdings", " LLC dba PrismPay", "Plug N Pay Technologies", " Inc.", "Plug N Pay WebXpress", "Point Secure Commerce Application (SCA) MX", "Point Secure Commerce Application (SCA) VX", "Point of Success", "PointOS", "Points of Charity", "Posera", "Post Affiliate Pro", "Powercode.com", "Poynt", "Practice Director", "Practice Director Insight", "Practice Fusion", "Practice Management", "Practice Studio", "Practice Suite", "Practice Web EMR (Local) Practice Work (Local) Practice Works", "Practice Works (Local) PracticeEHR PracticeWorks", "Precidia Technologies", "Prestashop", "Presto", "PrintSites", "Printtixusa", "Prism POS", "Prism Pay", "Prism RBS", "Prism RBS - Nebraska Book", "Prism for Windows", "Pro 2013/NEXT", "ProTicket / ProScan / Uticket / Uscan", "ProVenue Max", "Procare online", "Profit Boost", "Profit Series POS", "ProfitMaker", "ProfitStars EPS", "Profitek", "PrognoCIS", "PrognoCIS (web-based) PsychAdvantage", "Pronto Servicio", "Pronto Software", "Property Info", "Property Management System", "PropertyPlus", "Prophet21", "Protobase", "Pubnub (SMS texts)", "Pulse", "Punchout2Go", "Purchase Express Online", "PureJoin â Robust", "Pxier", "payworks mPOS", "pcAmerica"], 235 "Q": ["QS/1 Data Systems", "QS/1 PaySentry", "Qalize", "Qgiv", "QikServe", "Quetzal Pos", "Quick Service Technologies", "QuickCharge POS", "Quickbooks", "Quickbooks Desktop", "QuikPAY 2013+", "QuikServe Solutions", "QuikStor Express", "Quotewerks"], 236 "R": ["RATEX Business Solutions", "RB Control Systems", "RB POS", "RDP", "RES (3700)", "RICS Software", "RITA Server Now called Payware Transact", "RITE Card Defender (Semi-Integrated to RMS)", "RMH", "RMS (Restaurant Management Solutions)", "RMS - Counterpoint", "ROAMPay", "RPOS", "RPower", "RS-POS", "RTL Payment Systems", "RTMS", "RTP One", "RYKO Car Wash", "Rabbit MQ", "Rain POS", "RainMaker", "Raisers Edge / Net Community / BlackBaud", "Rapid by ACOM RescueNet", "Ratex POS*VR", "Razmobile.com", "Ready Stay/
236Soft Hotel", "Ready to Pay", "Real Time Res", "Realtime POS", "Rec1", "Recurly", "RedFin POS", "RedPodium", "Reflection POS", "RegFox", "Remedly", "Rent Café", "Rent Centric", "RentPayment (Instant Software)", "RentWorks 4", "Rental Elite", "Rental Essentials", "Rental Expert", "Rentalman", "Repair Shop R", "RepairShopr", "ResNexus", "Reservation Management System", "Resident Connect", "Resnexus", "Resort Suite", "ResortSuite", "Restaurant Manager", "Restaurant Pro Express", "Restuarant POS", "Retail Management Solutions (RMS)", "Retail Management System", "Retail Pro POS", "Retail Script POS", "Retailsoftware", "Retalix (Retail One)", "Revel", "Revel POS", "Revention", "Revention POS", "Revolution (Web-based) Revolution (Web-based) Revolution", "Revolution EHR (Web-based) RevolutionEHR", "Revonu POS (Private Label of U Charge)", "RezOvation GT", "RezStream", "Robiccon", "RocketGate", "RocketGate LLC", "Rogers Software", "RoomKey", "Roseman", "RosySalonSoftware", "RunMyClub", "rGuest", "revolution"], 237 "S": ["SABO", "SAM4s", "SAML 2.0", "SAP", "SAP One", "SCA_0_TSTU", "SEMNOX Solution LLC", "SETECS Mobile Technologies", "SICOM POS", "SICOM Systems", "SMS Host Software", "SPS-2000", "SRO4", "SSO-ADPS", "STI", "SVM", "SYSTime", "Sabor POS", "Sage Pay", "Sale Point Data", "SalePoint", " Inc.", "SalesForce", "SalesPad / CardControl", "Salesforce.com", "SalonBiz", "Sankar N", "Sapphire", "Scantron", "Scheidt & Bachmann", "Scheidt & Bachmann GbmH", "Script Pro", "Secure payment processing", "SecureGive", "SecureNet Gateway", "SecureTrading", " Inc.", "Seito", "Selby Soft", "Selectron", "SellWise Pro", "SensePass", " Clarity Integrations", "Sentinel MMS (Meter Management System)", "Sequel Med (Local) Sequelmed", "Sequoia Retail Systems", " Inc.", "Sertifi", "ServSuite", "Service Fusion", "Service Now", "Servy", "Servy-Grab", "Seven Rooms - HPC", "SevenRooms", "Sharepoint", "Shiji (US) Inc dba Shiji Payment Solutions", "ShoWorks", "Shoot Q", "ShopKeep", "ShopKeep POS", "ShopVox", "Shopify", "Shopify POS", "ShowClix", "Sigma Payments", "Signal Mountain", "SilverWare POS", "Silverlake Axis", "Silverware", "Silverware POS", " Inc.", "Simphony", "Simple Practice SimplePractice", "Simple Spa", "SimplePay Solutions", "SimplyGenius", "Siriusware", "Sirvoy", "SiteLink", "SiteLink Web", "Sitefinity", "Sitio Uno Inc", "Skidata", "Skyware Hospitality", "Slim CD", "Slim CD Gateway", "SmartOSC", "SmartTab POS", "Smarter Commerce", "Smith & Company LLC", "SnapPay", "Soft Touch POS", "SoftDent", "SoftDent (Carestream) Softdent (Local) SteamlineMD", "SoftPoint", "SoftPoint LLC", "SoftVoyage", "Sombrero Pay", "Sonido Software", "SpaSalon Edition", "SpaSoft", "SparrowOne", "Spectrum NG", "Spirits 2000", "SplitIt", "SportsIT", "Spreedly", "Spring Board Retail", "Springer Miller", "Springer Miller - SpaSoft", "Spruceware.Net", "Squirrel", "Squirrel Professional", "Squirrel Systems", "Squirrel in a box", "Stadium One Software", "Stadium1", "Star-Plus", "StarPlus", "StayNTouch", "Stitch Labs", "Store 21 / DataAdvantage", "Storis", "Stratus Touch", "Streamline MD StreamlineMD", "Studio Director", "Sucessware21", "Suite PMS/Touch Point of Sale", "Sumac", "Summit Ordering Systems", "SunGard One Point", "Sunlync Select 8", "SuperCharge (Transcend)", "SuperMenu", "SureGate", "SurePOS Ace", "Surescripts", "SwipeSimple", "Syn-Tech Systems", " Inc.", "SynXis PMS", "Sypram Software", "Systopia"], 238 "T": ["T2 Flex", "T2 Systems Canada Inc.", "T3 Gateway (T3 HPS Gateway)", "TALON ES (Enterprise Solution)", "TCPP", " LLC dba Trust Commerce", "TCS Reservations", "TD Bank- Merchant Services", "TDO", "TDO (Local)", "TDO (Remote Server) TDO Endo", "TIBA", "TM Vista Version", "TMS (Textile Management System)", "TNG", "TNSPay", "TRANePay/TranServer", "TSYS", " Fiserv", "TabKing", "TablePay", "TableSafe", "Tacit", "Talech", "Tapin2", "Task", "Tattoo Management Studio Express", "Team Approach", "Teamwork", "Telogis", "Tempus Technologies", " Inc.", "Tender Retail / Merchant Connect", "Tender Retail Systems", "Tenerum", "Tenerum LLC", "Tennis Source", "Tessitura Network", "Test Account", "Tgate (aka BridgePay)", "The Assistant Manager", "The Digital Office TDO Therapist Helper Therapy Notes", "The General Store POS", "The Shubert Organization", "The Site Controller", "The Software Mill", "The ai Corporation", "The giftcard cafe.com", "Thermeon Ltd", "Thinsoft", "Thrift Cart", "ThriftCart", "Ticket Sage", "TicketForce", "TicketSpice", "Ticketech International", " Ltd.", "TigerPOS", "Tillster", " Inc.", "Tire Power", "Tix", "Tops Ortho", "Toshiba Global Commerce", "Toshiba Tec", "Total Computing Solutions", "Total Ticketing", "Total Touch", "Total Touch POS", "Totaltransact", "TouchBistro", "TouchNet", "TouchNet Information Systems", "Tower", "Tracelink", "TrackTrace Rx", "TrakNet", "TrakNet (Local) TRAKnet PM TransWorld", "Transact - Blackboard", "TransactPOS", "Transaction Resources", " Inc", "Transactis", "Transax Gateway", "Transparency X", "TranzPay", "Tray", "Treatware", "Tri-Nexium", "Trinexum", "Triple E Technologies", " LLC", "Tritech", "TruBridge CPSI Uprise", "TrustCommerce", "Twin Oaks Software", "Two Breads", "Tyler Cashiering", "Tyler Payments", "triPOS"], 239 "U": ["UP-3500 POS", "UP-700 POS", "UP-820F POS", "UP-820N POS", "US eDirect", " Inc", "USAePay", "Uaccept POS", "UltraCamp", "Ungerboek Software", "Uniform Industrial Corp", "United Merchant Services", " Inc.", "United Payment Services", "Universal Payments Inc.", "UpNGo", "Uprise EMR", "Upserve", "uNotifi"], 240 "V": ["V6", "VPOS", "VR7000 QT6100", "VRP", "Vai S2K", "Valant", "Valor PayTech", " LLC", "ValuTrac Pro", "Value Payment Systems", "Vector Plus", "Vela POS", "Velocity Payment Systems", "VenStation", "VenTek", "Vend", "Vendini", "Ventanex", "VenueNext", "Venuetize", "Veracity", "Verafy", "VeriFone", "Verifi", "Verifone
240(AJB)", "Verisoft Americas Inc", "Veritix", "VeroTech Systems", "Versa POS", "Vesta Corporation", "Vet Badger", "VetSpire", "Vetter", "Via (Local)", "Vin65", "Vin65 POS", "Vindicia", " Inc.", "Vision Payments POS", "Vision Wine POS", "Vision9", "Vista Entertainment Solutions", "Vista Point of Sale", "Visual Anthology", "Visual Matrix", "Visual One", "Visual Ticket", "Vitu", "Vivonet", "Vivonet POS", "Voice Data Solutions", "Volante Systems", "VolanteSystems", "Volusion", "Vrindi", "vSecure Processing"], 241 "W": ["WEBpt", "Walmart Marketplace", "Wave Ortho", "Wayfair", "Web Payment Software", "Web2Pay", "Webrezpro", "WeighPay", "Well Done POS", "Western Union Payment Services", "WhizPay", "Wild Apricot", "WinOMS", "WinOMS (Local) WinOMS CS", "WinPM", "WinPrism", "WinScan POS", "WinWorks", "Windcave Inc.", "Windward System Five", "WnetCard", "Woo Commerce", "WooCommerce", "Woocommerce", "WorldPay [fka Element Payment Services]", "Worldnet Gateway", "Worldnet TPS", "Wufoo", "Wylie Systems", "WynGuest (was Softhotel)", "wandcorp"], 242 "X": ["X Catalyst", "XAC Automation Corp", "XLDent", "XY Retail", "XiPay Vital", "Xpient", "Xpient Credit Card Application", "Xpient Solutions", " LLC", "Xpress Solutions Inc", "Xpress-pay.com", "Xsite Enterprise"], 243 "Y": ["Yahoo! Aabaco Small Business", "Yardi Payment Processor", "Yardi Systems", " Inc.", "YesMua Corp."], 244 "Z": ["ZEAG Parking Equipment (WebPARCS)", "ZNODE", "Zeamster", "Zen Planner", "Zendesk", "Zenoti", "Ziosk", "Zuora"], 245}; 246 247 248 // Enhanced domain matching with common patterns 249 const domainMappings = { 250 'authorize.net': 'authorize.net', 251 'braintree': 'braintreepayments.com', 252 'paypal': 'paypal.com', 253 'cybersource': 'cybersource.com', 254 'first data': 'firstdata.com', 255 'tsys': 'tsys.com', 256 'global payments': 'globalpaymentsinc.com', 257 'worldpay': 'worldpay.com', 258 'heartland': 'heartlandpaymentsystems.com', 259 'clover': 'clover.com', 260 'square': 'squareup.com', 261 'shopify': 'shopify.com', 262 'woocommerce': 'woocommerce.com', 263 'bigcommerce': 'bigcommerce.com', 264 'magento': 'magento.com', 265 'quickbooks': 'intuit.com', 266 'toast': 'toasttab.com', 267 'lightspeed': 'lightspeedhq.com', 268 'aloha': 'ncr.com', 269 'micros': 'oracle.com', 270 'dentrix': 'henryschein.com', 271 'eaglesoft': 'pattersondental.com', 272 'open dental': 'opendental.com', 273 'athena': 'athenahealth.com', 274 'epic': 'epic.com', 275 'cerner': 'cerner.com', 276 'netsuite': 'netsuite.com', 277 'salesforce': 'salesforce.com', 278 'hubspot': 'hubspot.com', 279 'mailchimp': 'mailchimp.com', 280 'constant contact': 'constantcontact.com', 281 'zendesk': 'zendesk.com', 282 'freshdesk': 'freshdesk.com' 283 }; 284 285 function getCleanDomain(name) { 286 const cleanName = name 287 .replace(/\s*\(.*?\)\s*/g, '') 288 .replace(/\s*-\s*/g, ' ') 289 .replace(/\s+/g, ' ') 290 .trim() 291 .toLowerCase(); 292 293 // Check for direct mapping first 294 for (const [key, domain] of Object.entries(domainMappings)) { 295 if (cleanName.includes(key)) { 296 return domain; 297 } 298 } 299 300 // Clean and extract domain 301 let domain = cleanName 302 .replace(/[^a-z0-9\s]/g, '') 303 .replace(/\s+/g, '') 304 .replace(/inc|llc|corp|corporation|ltd|limited|software|systems?|solutions?|technologies|technology|tech|pos|payment|payments|gateway$/gi, ''); 305 306 return domain; 307 } 308 309 function getLogoUrls(name) { 310 const domain = getCleanDomain(name); 311 const variations = [ 312 domain, 313 domain.replace(/pos$/, ''), 314 domain.replace(/pay$/, ''), 315 domain + 'pos', 316 domain + 'pay' 317 ].filter(d => d.length > 2); 318 319 const urls = []; 320 321 // Try each domain variation with multiple services 322 variations.forEach(d => { 323 urls.push(`https://logo.clearbit.com/${d}.com`); 324 urls.push(`https://img.logo.dev/${d}.com?token=pk_X-WygUahQHmFmturHbd4DQ`); 325 urls.push(`https://unavatar.io/${d}.com`); 326 }); 327 328 // Add favicon as last resort 329 urls.push(`https://www.google.com/s2/favicons?domain=${domain}.com&sz=128`); 330 331 return urls; 332 } 333 334 function getInitials(name) { 335 const words = name.split(' ').filter(w => w.length > 0); 336 if (words.length >= 2) { 337 return (words[0][0] + words[1][0]).toUpperCase(); 338 } 339 return name.substring(0, 2).toUpperCase(); 340 } 341 342 function getIntegrationType(name) { 343 const nameLower = name.toLowerCase(); 344 if (nameLower.includes('gateway') || nameLower.includes('payment') && !nameLower.includes('pos')) return 'gateway'; 345 if (nameLower.includes('pos') || nameLower.includes('point of sale')) return 'pos'; 346 if (nameLower.includes('dental') || nameLower.includes('medical') || nameLower.includes('health') || nameLower.includes('clinic') || nameLower.includes('ehr') || nameLower.includes('emr')) return 'healthcare'; 347 if (nameLower.includes('restaurant') || nameLower.includes('food') || nameLower.includes('dining')) return 'restaurant'; 348 if (nameLower.includes('retail') || nameLower.includes('store')) return 'retail'; 349 if (nameLower.includes('accounting') || nameLower.includes('quickbooks') || nameLower.includes('bookkeeping')) return 'accounting'; 350 if (nameLower.includes('ecommerce') || nameLower.includes('shop') || nameLower.includes('cart') || nameLower.includes('commerce')) return 'ecommerce'; 351 return 'default'; 352 } 353 354 function getIntegrationTypeLabel(type) { 355 const labels = { 356 'gateway': 'Payment Gateway', 357 'pos': 'POS System', 358 'healthcare': 'Healthcare', 359 'restaurant': 'Restaurant', 360 'retail': 'Retail', 361 'accounting': 'Accounting', 362 'ecommerce': 'E-Commerce', 363 'default': 'Business Software' 364 }; 365 return labels[type] || labels.default; 366 } 367 368 function tryLoadingLogo(logoElement, urls, index = 0) { 369 if (index >= urls.length) { 370 const name = logoElement.getAttribute('data-name'); 371 const type = logoElement.getAttribute('data-type'); 372 logoElement.innerHTML = ''; 373 const placeholder = document.createElement('div'); 374 placeholder.className = `integration-logo-placeholder ${type}`; 375 placeholder.textContent = getInitials(name); 376 logoElement.appendChild(placeholder); 377 return; 378 } 379 380 const img = document.createElement('img'); 381 img.src = urls[index]; 382 img.alt = logoElement.getAttribute('data-name'); 383 384 img.onload = function() {
385 if (this.naturalWidth > 10 && this.naturalHeight > 10) { 386 logoElement.innerHTML = ''; 387 logoElement.appendChild(this); 388 } else { 389 tryLoadingLogo(logoElement, urls, index + 1); 390 } 391 }; 392 393 img.onerror = function() { 394 tryLoadingLogo(logoElement, urls, index + 1); 395 }; 396 } 397 398 function debounce(func, delay = 200) { 399 let timeout; 400 return function(...args) { 401 clearTimeout(timeout); 402 timeout = setTimeout(() => func.apply(this, args), delay); 403 } 404} 405 406 407 function populateIntegrations() { 408 const grid = document.getElementById('integrationsGrid'); 409 const alphabetNav = document.getElementById('alphabetNav'); 410 411 if (!grid || !alphabetNav) { 412 return; 413 } 414 415 grid.innerHTML = ''; 416 417 const letters = Object.keys(integrations).sort((a, b) => { 418 if (a === '0-9') return -1; 419 if (b === '0-9') return 1; 420 if (a === '#') return -1; 421 if (b === '#') return 1; 422 return a.localeCompare(b); 423 }); 424 425 letters.forEach(letter => { 426 if (letter !== '0-9' && letter !== '#') { 427 const link = document.createElement('a'); 428 link.href = `#section-${letter}`; 429 link.textContent = letter; 430 alphabetNav.appendChild(link); 431 } 432 }); 433 434 letters.forEach(letter => { 435 const section = document.createElement('div'); 436 section.className = 'letter-section'; 437 section.id = `section-${letter}`; 438 439 const header = document.createElement('div'); 440 header.className = 'letter-header'; 441 442 const badge = document.createElement('div'); 443 badge.className = 'letter-badge'; 444 badge.textContent = letter === '0-9' ? '#' : letter; 445 446 const info = document.createElement('div'); 447 info.className = 'letter-info'; 448 449 const title = document.createElement('div'); 450 title.className = 'letter-title'; 451 title.textContent = letter === '0-9' ? 'Numbers & Symbols' : letter === '#' ? 'Symbols' : letter; 452 453 const count = document.createElement('div'); 454 count.className = 'letter-count'; 455 count.textContent = `${integrations[letter].length} integration${integrations[letter].length !== 1 ? 's' : ''}`; 456 457 info.appendChild(title); 458 info.appendChild(count); 459 header.appendChild(badge); 460 header.appendChild(info); 461 section.appendChild(header); 462 463 const gridDiv = document.createElement('div'); 464 gridDiv.className = 'integration-grid'; 465 466 integrations[letter].forEach(name => { 467 const card = document.createElement('div'); 468 card.className = 'integration-card'; 469 card.setAttribute('data-name', name.toLowerCase()); 470 471 const type = getIntegrationType(name); 472 const logo = document.createElement('div'); 473 logo.className = 'integration-logo'; 474 logo.setAttribute('data-name', name); 475 logo.setAttribute('data-type', type); 476 477 const logoUrls = getLogoUrls(name); 478 tryLoadingLogo(logo, logoUrls); 479 480 const infoDiv = document.createElement('div'); 481 infoDiv.className = 'integration-info'; 482 483 const nameDiv = document.createElement('div'); 484 nameDiv.className = 'integration-name'; 485 nameDiv.textContent = name; 486 487 const typeDiv = document.createElement('div'); 488 typeDiv.className = 'integration-type'; 489 typeDiv.textContent = getIntegrationTypeLabel(type); 490 491 infoDiv.appendChild(nameDiv); 492 infoDiv.appendChild(typeDiv); 493 494 card.appendChild(logo); 495 card.appendChild(infoDiv); 496 gridDiv.appendChild(card); 497 }); 498 499 section.appendChild(gridDiv); 500 grid.appendChild(section); 501 }); 502 } 503 504 505 506 const searchBox = document.getElementById('searchBox');
507if (searchBox) { 508searchBox.addEventListener('input', debounce(function(e) { 509 performSearch(e.target.value.toLowerCase().trim()); 510}, 400)); // 400ms delay 511} 512 513function performSearch(searchTerm) { 514 const cards = document.querySelectorAll('.integration-card'); 515 const sections = document.querySelectorAll('.letter-section'); 516 const searchResults = document.getElementById('searchResults'); 517 const noResults = document.getElementById('noResults'); 518 let visibleCount = 0; 519 520 if (searchTerm === '') { 521 cards.forEach(card => card.classList.remove('hidden')); 522 sections.forEach(section => section.classList.remove('hidden')); 523 searchResults.classList.remove('visible'); 524 noResults.classList.remove('visible'); 525 return; 526 } 527 528 cards.forEach(card => { 529 const name = card.getAttribute('data-name'); 530 const nameElement = card.querySelector('.integration-name'); 531 const originalText = nameElement.textContent; 532 533 if (name.toLowerCase().includes(searchTerm)) { 534 card.classList.remove('hidden'); 535 visibleCount++; 536 const regex = new RegExp(`(${searchTerm})`, 'gi'); 537 nameElement.innerHTML = originalText.replace(regex, '<span class="highlight">$1</span>'); 538 } else { 539 card.classList.add('hidden'); 540 nameElement.innerHTML = originalText; 541 } 542 }); 543 544 sections.forEach(section => { 545 const visibleCards = section.querySelectorAll('.integration-card:not(.hidden)'); 546 section.classList.toggle('hidden', visibleCards.length === 0); 547 }); 548 549 noResults.classList.toggle('visible', visibleCount === 0); 550 searchResults.classList.toggle('visible', visibleCount > 0); 551 if (visibleCount > 0) { 552 searchResults.innerHTML = `<strong>${visibleCount}</strong> integration${visibleCount !== 1 ? 's' : ''} found`; 553 } 554} 555 556 557 const backToTop = document.getElementById('backToTop'); 558 559 if (backToTop) { 560 window.addEventListener('scroll', function() { 561 if (window.pageYOffset > 400) { 562 backToTop.classList.add('visible'); 563 } else { 564 backToTop.classList.remove('visible'); 565 } 566 }); 567 568 backToTop.addEventListener('click', function(e) { 569 e.preventDefault(); 570 window.scrollTo({ top: 0, behavior: 'smooth' }); 571 }); 572 } 573 574 document.addEventListener('click', function(e) { 575 if (e.target.matches('.alphabet-nav a')) { 576 e.preventDefault(); 577 const target = document.querySelector(e.target.getAttribute('href')); 578 if (target) { 579 const offset = 120; 580 const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - offset; 581 window.scrollTo({ top: targetPosition, behavior: 'smooth' }); 582 } 583 } 584 }); 585 586 populateIntegrations(); 587 588 589// Payment Integrations Page popup form JS 590 591document.addEventListener("DOMContentLoaded", () => { 592 593 const modal = document.getElementById("custom-popup"); 594 const btn = document.querySelector(".open-popup"); 595 const span = document.querySelector(".popup-close"); 596 597 if (!modal || !btn || !span) { 598 return; 599 } 600 601 btn.addEventListener("click", function (e) { 602 e.preventDefault(); 603 modal.style.display = "flex"; 604 modal.style.opacity = "1"; 605 modal.style.visibility = "visible"; 606 }); 607 608 span.addEventListener("click", function () { 609 modal.style.display = "none"; 610 modal.style.opacity = "0"; 611 modal.style.visibility = "hidden"; 612 }); 613 614 window.addEventListener("click", function (event) { 615 if (event.target === modal) { 616 modal.style.display = "none"; 617 modal.style.opacity = "0"; 618 modal.style.visibility = "hidden"; 619 } 620 }); 621 622});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.