
    var totalMaxAttempts = 5;
    var initESW = function (gslbBaseURL) {
    embedded_svc.settings.displayHelpButton = true; //Or false
    embedded_svc.settings.defaultMinimizedText = 'Live Chat Help!'; //(Defaults to Chat with an Expert)
    embedded_svc.settings.disabledMinimizedText = 'Agent Offline'; //(Defaults to Agent Offline) -->
    embedded_svc.settings.directToButtonRouting = function (prechatFormData) {
      for (var i in prechatFormData) {
        if (prechatFormData[i].name === 'Subject') {
          let subjectString = prechatFormData[i].value;
          let buttonIds = subjectString.substring(0, subjectString.indexOf("|"));
          let buttonArrary = [];
          buttonArrary = buttonIds.split(',');
          embedded_svc.settings.fallbackRouting = buttonArrary;
          return null;
        }
      }
    };
        
    embedded_svc.settings.extraPrechatInfo = [
    {
      "entityName": "Contact",
      "displayToAgent": true,
      "linkToEntityName": "Case",
      "linkToEntityField": "ContactId",
      "saveToTranscript": "ContactId",
      "entityFieldMaps": [{
        "doCreate": false,
        "doFind": true,
        "fieldName": "LastName",
        "isExactMatch": true,
        "label": "Last Name"
      }, {
        "doCreate": false,
        "doFind": false,
        "fieldName": "FirstName",
        "isExactMatch": true,
        "label": "First Name"
      }, {
        "doCreate": false,
        "doFind": true,
        "fieldName": "Email",
        "isExactMatch": true,
        "label": "Email"
      }]
    }, {
      "entityName": "Lead",
      "showOnCreate": true,
      "displayToAgent": true,
      "linkToEntityName": "Case",
      "linkToEntityField": "Lead__c",
      "saveToTranscript": "LeadId",
      "entityFieldMaps": [{
        "doCreate": true,
        "doFind": false,
        "fieldName": "FirstName",
        "isExactMatch": true,
        "label": "First Name"
      },{
        "doCreate": true,
        "doFind": false,
        "fieldName": "LastName",
        "isExactMatch": true,
        "label": "Last Name"
      }, {
        "doCreate": true,
        "doFind": true,
        "fieldName": "Email",
        "isExactMatch": true,
        "label": "Email"
      }, {
        "doCreate": true,
        "doFind": false,
        "fieldName": "LeadSource",
        "isExactMatch": false,
        "label": "Lead Source"
      }, {
        "doCreate": true,
        "doFind": false,
        "fieldName": "Company",
        "isExactMatch": false,
        "label": "Company"
      }]
    }, {
      "entityName": "Case",
      "saveToTranscript": "CaseId",
      "entityFieldMaps": [{
        "isExactMatch": false,
        "fieldName": "Subject",
        "doCreate": true,
        "doFind": false,
        "label": "How can we help you?"
      },{
        "isExactMatch": false,
        "fieldName": "Lead__c",
        "doCreate": true,
        "doFind": false,
        "label": "LeadId"
      }]
    }];

    embedded_svc.settings.extraPrechatFormDetails = [{
      "label": "First Name",
      "transcriptFields": ["Confirmed_First_Name__c"],
      "displayToAgent": true
    },
    {
      "label": "Last Name",
      "transcriptFields": ["Confirmed_Last_Name__c"],
      "displayToAgent": true
    },
    {
      "label": "Email",
      "transcriptFields": ["Confirmed_Email__c"],
      "displayToAgent": true
    }, {
      "label": "Lead Source",
      "value": "Chat",
      "transcriptFields":[],
      "displayToAgent": true
    }, {
      "label": "Company",
      "value": "unknown",
      "transcriptFields":[],
      "displayToAgent": true
    }];
    
    embedded_svc.settings.enabledFeatures = ['LiveAgent'];
    embedded_svc.settings.entryFeature = 'LiveAgent';

        embedded_svc.init(
            "https://ziprecruiter.my.salesforce.com",
            "https://support.ziprecruiter.com/",
            gslbBaseURL,
             "00DG0000000BxY7",
            'Snap_Chat_Default',
            {
              baseLiveAgentContentURL: "https://d.la1-c2-ia5.salesforceliveagent.com/content",
              deploymentId: "572G0000000fxSa",
              buttonId: "5730f0000004vgL",
              baseLiveAgentURL: "https://d.la1-c2-ia5.salesforceliveagent.com/chat",
              eswLiveAgentDevName: "EmbeddedServiceLiveAgent_Parent04I0f000000TN1FEAW_16ac670e84b",
              isOfflineSupportEnabled: false
            }
        );
    };  
     
     if (!window.embedded_svc) {
        var s = document.createElement('script');
        s.setAttribute('src', 'https://ziprecruiter.my.salesforce.com/embeddedservice/5.0/esw.min.js');   
        s.onload = function() {
            initESW(null);
        };
        document.body.appendChild(s);
    } else {
        initESW('https://service.force.com');
    }; 
    
    window.onload = function() {
        addListener();
    };
    function addListener(){
        let findDocumentRemove = document.getElementsByClassName("uiButton");

        if(findDocumentRemove.length > 0){
            // Options for the observer (which mutations to observe)
            var config = { attributes: true};
            // Create an observer instance linked to the callback function
            var observer = new MutationObserver(addLink);
            // Start observing the target node for configured mutations
            observer.observe(findDocumentRemove[0], config);
        } else if(totalMaxAttempts > 0){
            totalMaxAttempts--;
            setTimeout(function() { 
                addListener(); 
            }, 100);
        }
    };
    var addLink = function(mutationsList){
        let findDisabled = document.getElementsByClassName("uiButton helpButtonDisabled");
        let findEnabled = document.getElementsByClassName("uiButton helpButtonEnabled");
        let findHelpButtonLabel = document.getElementsByClassName("helpButtonLabel");
        let findDocumentMessage = document.querySelectorAll(".helpButton .message");
        let contactUslink = document.getElementById("contactUsLink");
        
        if(findDisabled.length > 0){
            if(contactUslink == null){
                if(findDocumentMessage[0].textContent === "Agent Offline"){
                    var link = document.createElement('a');
                    link.href = "https://www.ziprecruiter.com/contact";
                    link.target = "_blank"; 
                    link.innerHTML = "Contact Us";
                    link.style = "color:white";"font-weight:bold";
                    link.id = "contactUsLink";
                    findHelpButtonLabel[0].appendChild(link);
                    findDocumentMessage[0].style.display = "none";
                 }
            }

        }
      if(findEnabled.length > 0){
          findDocumentMessage[0].style.display = "inline";
          if(contactUslink != null){
              contactUslink.remove();
          }
      }
    };