<form id="publish-channel-form">
    <div class="row row--wide">
        <div class="column column--3">
            <label class="label" for="new-channel-name">Name:</label>
        </div><div class="column column--4">
        <div id="input-error-channel-name" class="info-message info-message--failure"></div>
        <div class="input-text--primary">
            <span>@</span>
            <input type="text" name="new-channel-name" id="new-channel-name" class="input-text" placeholder="exampleChannel" value="" oninput="checkChannelName(event.target.value)">
            <span id="input-success-channel-name" class="info-message info-message--success"></span>
        </div>
    </div>
    </div>
    <div class="row row--wide">
        <div class="column column--3">
            <label class="label" for="new-channel-password">Password:</label>
        </div><div class="column column--4">
            <div id="input-error-channel-password" class="info-message info-message--failure"></div>
            <input type="password" name="new-channel-password" id="new-channel-password" placeholder="" value="" class="input-text input-text--primary">
        </div>
    </div>

    <div class="row row--wide">
        <button onclick="publishNewChannel(event)">Create Channel</button>
    </div>
</form>


<div id="channel-publish-in-progress" hidden="true">
    <p>Creating your new channel.  This may take a few seconds...</p>
    <div id="create-channel-progress-bar"></div>
</div>

<div id="channel-publish-done" hidden="true">
    <p>Your channel has been successfully created!</p>
</div>


<script type="text/javascript">
 function publishNewChannel (event) {
     const channelName = document.getElementById('new-channel-name').value;
     const password = document.getElementById('new-channel-password').value;
     const channelNameErrorDisplayElement = document.getElementById('input-error-channel-name');
     const passwordErrorDisplayElement = document.getElementById('input-error-channel-password');
     const chanelCreateForm = document.getElementById('publish-channel-form');
     const inProgress = document.getElementById('channel-publish-in-progress');
     const done = document.getElementById('channel-publish-done');

     // prevent default so this script can handle submission
     event.preventDefault();
     // validate submission
     validateNewChannelSubmission(channelName, password)
         .then(() => {
             console.log('in progress');
             chanelCreateForm.hidden = true;
             inProgress.hidden = false;
             createProgressBar(document.getElementById('create-channel-progress-bar'), 12);
             return sendAuthRequest(channelName, password, '/signup') // post the request
         })
         .then(() => {
             console.log('success');
             inProgress.hidden=true;
             done.hidden = false;
             // refresh window logged in as the channel
             window.location.href = '/';
         })
         .catch(error => {
             if (error.name === 'ChannelNameError'){
                 showError(channelNameErrorDisplayElement, error.message);
             } else if (error.name === 'ChannelPasswordError'){
                 showError(passwordErrorDisplayElement, error.message);
             } else {
                 console.log('failure:', error);
             }
         })
 }
</script>