
//File upload function
//Allows up to 10 files to be uploaded
//Checks if No. of files is greater than 0, if not shows error
(function ($) {
    var $dropzone = $("#ChristmasCardSubmissionDropzone");
    if ($dropzone.length === 1) {
        $dropzone.dropzone({
            url: window.globals.controllerActionUrl.replace("controllername", "ChristmasCardSubmission") + "/Submit",
            paramName: "files",
            autoProcessQueue: false,
            uploadMultiple: true,
            parallelUploads: 10,
            maxFiles: 10,
            maxFileSize: 2,
            addRemoveLinks: true,
            init: function () {
                var dzClosure = this;
                var $form = $dropzone.closest("form");
                $(".submit-btn", $form).click(function (e) {
                    e.preventDefault();
                    e.stopPropagation();
                    $(".christmas-card-submission-messages", $form).empty().hide();
                    $("#ChristmasCardSubmissionDropzoneMessage").empty();
                    var validator = $form.validate();
                    if (validator && validator.form()) {
                        if (dzClosure.getAcceptedFiles().length > 0) {
                            dzClosure.processQueue();
                        }
                        else {
                            $("#ChristmasCardSubmissionDropzoneMessage").html("You must select at least one valid file to upload");
                        }
                    }
                });
                //When a file is added, remove the placeholder text
                //If successful display success message, else show error message
                this.on("addedfile", function (file) {
                    $("#ChristmasCardSubmissionDropzoneMessage").empty();
                });
                this.on("sendingmultiple", function (files, xhr, formData) {
                    $(":input[name]", $form).each(function () {
                        formData.append(this.name, $(":input[name=" + this.name + "]", $form).val());
                    });
                });
                this.on("successmultiple", function (files, response) {
                    if (response.Success) {
                        showMessages($form, response.Messages, "success");
                        clearForm($form);
                    }
                    else if (response.Messages && $.isArray(response.Messages) && (response.Messages.length > 0)) {
                        showMessages($form, response.Messages, "error");
                    }
                    else {
                        var message = "Invalid response.";
                        showMessages($form, [message], "error");
                    }
                    this.removeAllFiles(true);
                });
            }
        });
    }
    //Reset form values
    function clearForm($form) {
        $form.find(":input").not(":button, :submit, :reset, :hidden, :checkbox, :radio").val("");
        $form.find(":checkbox, :radio").prop("checked", false);
    };

    //Pass form, messages and message class
    //In the messages element of the form create a list of items with the messageClass that was passed
    //Populate these with any messages (either error or success) that were sent and set visability to show
    function showMessages($form, messages, messageClass) {
        var $messagesElement = $(".christmas-card-submission-messages", $form);
        if (messages && $.isArray(messages)) {
            messages.forEach(function (message) {
                var $messageElement = $("<li></li").html(message).addClass(messageClass);
                $messagesElement.append($messageElement);
            });
            $messagesElement.show();
        }
    };

})(jQuery);

(function ($) {

    $(document).ready(function () {

        $(".citizens-assembly-form .submit-btn").click(function (e) {
            e.preventDefault();
            var $form = $(this).closest("form");
            var $messagesElement = $(".citizens-assembly-form-messages", $form);
            $messagesElement.empty().hide();
            var validator = $form.validate();
            if (validator && validator.form()) {
                $("html").addClass("wait");
                var formData = $form.serialize();
                var actionUrl = window.globals.controllerActionUrl.replace("controllername", "CitizensAssemblyForm") + "/Submit";
                $.ajax({
                    url: actionUrl,
                    type: 'POST',
                    data: formData,
                    success: function (data) {
                        $("html").removeClass("wait");
                        if (data.Success) {
                            showMessages($messagesElement, data.Messages, "success");
                            clearForm($form);
                        }
                        else if (data.Messages && $.isArray(data.Messages) && (data.Messages.length > 0)) {
                            showMessages($messagesElement, data.Messages, "error");
                        }
                        else {
                            var message = "Invalid response.";
                            showMessages($messagesElement, [message], "error");
                        }
                    },
                    error: function (jqXhr) {
                        $("html").removeClass("wait");
                        var errorMessage = jqXhr.status === 0 ? "An unexpected error occurred." :
                            jqXhr.statusText + " (" + jqXhr.status + ")";
                        showMessages($messagesElement, [errorMessage], "error");
                    }
                });
            }
        });

        function clearForm($form) {
            $form.find(":input").not(":button, :submit, :reset, :hidden, :checkbox, :radio").val("");
            $form.find(":checkbox, :radio").prop("checked", false);
        };

        function showMessages($messagesElement, messages, messageClass) {
            if (messages && $.isArray(messages)) {
                messages.forEach(function (message) {
                    var $messageElement = $("<li></li").html(message).addClass(messageClass);
                    $messagesElement.append($messageElement);
                });
                $messagesElement.show();
            }
        };

    });

})(jQuery);

(function ($) {

    $(document).ready(function () {

        var $widget = $("#ContactFormWidget");

        $(".submit-btn", $widget).click(function (e) {
            e.preventDefault();
            var $form = $(this).closest("form");
            $(".contact-form-messages", $form).empty().hide();
            var validator = $form.validate();
            if (validator && validator.form()) {
                $("html").addClass("wait");
                var formData = $form.serialize();
                var actionUrl = window.globals.controllerActionUrl.replace("controllername", "ContactForm") + "/Submit";
                $.ajax({
                    url: actionUrl,
                    type: 'POST',
                    data: formData,
                    success: function (data) {
                        $("html").removeClass("wait");
                        if (data.Success) {
                            showMessages(data.Messages, "success");
                            clearForm($form);
                        }
                        else if (data.Messages && $.isArray(data.Messages) && (data.Messages.length > 0)) {
                            showMessages(data.Messages, "error");
                        }
                        else {
                            var message = "Invalid response.";
                            showMessages([message], "error");
                        }
                    },
                    error: function (jqXhr) {
                        $("html").removeClass("wait");
                        var errorMessage = jqXhr.status === 0 ? "An unexpected error occurred." :
                            jqXhr.statusText + " (" + jqXhr.status + ")";
                        showMessages([errorMessage], "error");
                    }
                });
            }
        });

        function clearForm($form) {
            $form.find(":input").not(":button, :submit, :reset, :hidden, :checkbox, :radio").val("");
            $form.find(".local-authority-other").hide();
            $form.find(":checkbox, :radio").prop("checked", false);
        };

        function showMessages(messages, messageClass) {
            var $messagesElement = $(".contact-form-messages", $("#ContactFormWidget"));
            if (messages && $.isArray(messages)) {
                messages.forEach(function (message) {
                    var $messageElement = $("<li></li").html(message).addClass(messageClass);
                    $messagesElement.append($messageElement);
                });
                $messagesElement.show();
            }
        };

    });

})(jQuery);

(function ($) {

    $(document).ready(function () {

        $('.contentList').each(function () {
            setUpContentList($(this));
        });

    });

    function setUpContentList($contentList) {
        var $filterBox = $('.contentList-category', $contentList);

        if ($filterBox.length === 1) {
            $('.contentList-category-header', $filterBox).click(function (e) {
                e.preventDefault();
                toggleCategories($filterBox);
            });

            $('a.contentList-category-clearFilter', $filterBox).click(function (e) {
                e.preventDefault();
                $('.contentList-selected-category', $contentList).val('');
                $('.contentList-page-index', $contentList).val('0');
                $('.contentList-category-categories li').removeClass('active');
                getContentListItems($contentList);
            });

            $('a.filter-link', $filterBox).click(function (e) {
                e.preventDefault();
                $('.contentList-selected-category', $contentList).val($(this).data('category'));
                $('.contentList-page-index', $contentList).val('0');
                getContentListItems($contentList);
                toggleCategories($filterBox);
                $('.contentList-category-categories li').removeClass('active');
                $(this).parent().addClass('active')
            });
        }

        var $searchResults = $('.contentList-searchResults', $contentList);
        if ($searchResults.length === 1) {
            $searchResults.on('click', 'a.page-number', function (e) {
                e.preventDefault();
                $('.contentList-page-index', $contentList).val($(this).data('page-index'));
                getContentListItems($contentList);
            });

            $('.contentList-selected-category', $contentList).val('');
            $('.contentList-page-index', $contentList).val('0');
            getContentListItems($contentList);
        }
    };

    function getContentListItems($contentList) {
        var $selectedCategory = $('.contentList-selected-category', $contentList);
        var $searchResults = $('.contentList-searchResults', $contentList);
        var $form = $selectedCategory.closest('form');
        var formData = $form.serialize();
        var actionUrl = window.globals.controllerActionUrl.replace("controllername", "ContentList") + "/Search";
        $searchResults.empty();
        $.ajax({
            url: actionUrl,
            type: 'POST',
            data: formData,
            success: function (data) {
                $searchResults.append(data);
            },
            error: function (jqXhr) {
                var errorMessage = jqXhr.status === 0 ? "An unexpected error occurred." :
                    jqXhr.statusText + " (" + jqXhr.status + ")";
                var $errorInfo = $('<p></p>').addClass('error-message');
                $errorInfo.text(errorMessage);
                $searchResults.append($errorInfo);
            }
        });
    };

    function toggleCategories($filterBox) {
        $('.contentList-category-categories', $filterBox).toggleClass('d-none');
        $('.contentList-category-header', $filterBox).toggleClass('expanded');
    };

})(jQuery);

(function ($) {

    var $dropzone = $("#DataSubmissionDropzone");

    if ($dropzone.length === 1) {
        $dropzone.dropzone({
            url: window.globals.controllerActionUrl.replace("controllername", "DataSubmissionForm") + "/Submit",
            paramName: "files",
            autoProcessQueue: false,
            uploadMultiple: true,
            parallelUploads: 10,
            maxFiles: 10,
            maxFileSize: 2,
            addRemoveLinks: true,
            init: function () {
                var dzClosure = this;
                var $form = $dropzone.closest("form");
                $(".submit-btn", $form).click(function (e) {
                    e.preventDefault();
                    e.stopPropagation();
                    $(".data-submission-form-messages", $form).empty().hide();
                    $("#DataSubmissionDropzoneMessage").empty();
                    var validator = $form.validate();
                    if (validator && validator.form()) {
                        if (dzClosure.getAcceptedFiles().length > 0) {
                            dzClosure.processQueue();
                        }
                        else {
                            $("#DataSubmissionDropzoneMessage").html("You must select at least one valid file to upload");
                        }
                    }
                });
                this.on("addedfile", function (file) {
                    $("#DataSubmissionDropzoneMessage").empty();
                });
                this.on("sendingmultiple", function (files, xhr, formData) {
                    $(":input[name]", $form).each(function () {
                        formData.append(this.name, $(":input[name=" + this.name + "]", $form).val());
                    });
                });
                this.on("successmultiple", function (files, response) {
                    if (response.Success) {
                        showMessages($form, response.Messages, "success");
                        clearForm($form);
                    }
                    else if (response.Messages && $.isArray(response.Messages) && (response.Messages.length > 0)) {
                        showMessages($form, response.Messages, "error");
                    }
                    else {
                        var message = "Invalid response.";
                        showMessages($form, [message], "error");
                    }
                    this.removeAllFiles(true);
                });
            }
        });
    }

    function clearForm($form) {
        $form.find(":input").not(":button, :submit, :reset, :hidden, :checkbox, :radio").val("");
        $form.find(":checkbox, :radio").prop("checked", false);
    };

    function showMessages($form, messages, messageClass) {
        var $messagesElement = $(".data-submission-form-messages", $form);
        if (messages && $.isArray(messages)) {
            messages.forEach(function (message) {
                var $messageElement = $("<li></li").html(message).addClass(messageClass);
                $messagesElement.append($messageElement);
            });
            $messagesElement.show();
        }
    };

})(jQuery);

(function ($) {

    $(document).ready(function () {

        $("body").on("click", ".expanderWidget .expander-heading", function (e) {
            e.preventDefault();
            var $expanderWidget = $(this).closest(".expanderWidget");
            var expanding = !$expanderWidget.hasClass("expanded");
            if (expanding) {
                var $accordionContainer = $expanderWidget.closest(".accordion-container");
                if ($accordionContainer.length > 0) {
                    $(".expanderWidget.expanded", $accordionContainer).each(function () {
                        var $expandedWidget = $(this);
                        $(".expander-content", $expandedWidget).slideUp();
                        $expandedWidget.removeClass("expanded");
                    });
                }
            }
            $(".expander-content", $expanderWidget).slideToggle(400, function () {
                if (expanding) {
                    $("html, body").animate(
                    {
                        scrollTop: $expanderWidget.offset().top - $("main").offset().top
                    },
                    "fast");
                }
            });
            $expanderWidget.toggleClass("expanded");
        });

    });

})(jQuery);

/*!

	HesGallery v1.5.1

	Copyright (c) 2018-2019 Artur Medrygal <medrygal.artur@gmail.com>

	Product under MIT licence

*/

const HesGallery = {
  version: '1.5.1',
  options: {
    // Global
    disableScrolling: false,
    hostedStyles: false,
    animations: true,
    keyboardControl: true,
    minResolution: 0,
    autoInit: true,

    // Local
    wrapAround: false,
    showImageCount: true,

    // set to true if images are nested in links
    linkNested: false,
  },

  setOptions(values = {}) {
    for (let key in values) this.options[key] = values[key]
  },

  init(options) {
    this.setOptions(options)

    if (!this.executed) this.createDOM()

    if (this.options.animations) this.elements.pic_cont.classList = 'hg-transition'
    else this.elements.pic_cont.classList = ''

    this.count = document.querySelectorAll('.hes-gallery').length

    this.galleries = []

    for (let i = 0; i < this.count; i++) {
      // Creates a galleries
      this.galleries[i] = new this.HesSingleGallery(i, this)
    }

    // KeyDown event listener
    if (this.options.keyboardControl && !this.keydownEventListener) {
      addEventListener('keydown', ({ keyCode }) => {
        if (keyCode == 39 && this.open && this.options.keyboardControl) this.next()
        if (keyCode == 37 && this.open && this.options.keyboardControl) this.prev()
        if (keyCode == 27 && this.open && this.options.keyboardControl) this.hide()
      })
      this.keydownEventListener = true
    }

    return 'HesGallery initiated!'
  },

  replaceImages(gallery) {
    gallery.querySelectorAll('a.hg-image').forEach((imageLink) => {
      image = imageLink.getElementsByTagName('img')[0]
      image.setAttribute('data-fullsize', imageLink.href.trim())
      imageLink.replaceWith(image)
    })
  },

  createDOM() {
    // Creates DOM Elements for gallery
    this.elements = {}

    if (this.options.hostedStyles)
      document.head.innerHTML +=
        "<link rel='stylesheet' href='https://unpkg.com/hes-gallery/dist/hes-gallery.min.css'>"

    const gallery = document.createElement('div')
    gallery.id = 'hgallery'
    gallery.setAttribute('style', 'visibility:hidden;')

    this.elements.gallery = gallery // Whole gallery

    this.elements.gallery.innerHTML += `
      <div id='hg-bg'></div>
      <div id='hg-pic-cont'>
        <img id='hg-pic' />
        <div id='hg-prev-onpic'></div>
        <div id='hg-next-onpic'></div>
        <div id='hg-subtext'></div>
        <div id='hg-howmany'></div>
      </div>
      <button id='hg-prev' title="Previous" aria-label="Next">
        <img src="data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjZmZmZmZmIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgICA8cGF0aCBkPSJNOC41OSAxNi4zNGw0LjU4LTQuNTktNC41OC00LjU5TDEwIDUuNzVsNiA2LTYgNnoiLz4NCiAgICA8cGF0aCBkPSJNMC0uMjVoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4NCjwvc3ZnPg==" alt="Previous" />
      </button>
      <button id='hg-next' title="Next" aria-label="Previous">
        <img src="data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjZmZmZmZmIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgICA8cGF0aCBkPSJNOC41OSAxNi4zNGw0LjU4LTQuNTktNC41OC00LjU5TDEwIDUuNzVsNiA2LTYgNnoiLz4NCiAgICA8cGF0aCBkPSJNMC0uMjVoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4NCjwvc3ZnPg==" alt="Next" />
      </button>
    `

    document.body.appendChild(gallery)

    this.elements.b_prev = document.getElementById('hg-prev')
    this.elements.b_next = document.getElementById('hg-next')

    this.elements.pic_cont = document.getElementById('hg-pic-cont')

    this.elements.b_next_onpic = document.getElementById('hg-next-onpic')
    this.elements.b_prev_onpic = document.getElementById('hg-prev-onpic')

    this.elements.b_prev.onclick = this.elements.b_prev_onpic.onclick = () => {
      this.prev()
    }

    this.elements.b_next.onclick = this.elements.b_next_onpic.onclick = () => {
      this.next()
    }

    document.getElementById('hg-bg').onclick = () => {
      this.hide()
    }

    this.executed = true
  },

  show(g, i) {
    if (innerWidth < this.options.minResolution) return false // If browser width is less than min resolution in settings

    this.currentImg = i
    this.currentGal = g

    this.open = true

    if (this.options.animations || this.elements.pic_cont.classList == 'hg-transition')
      this.elements.pic_cont.classList.remove('hg-transition')

    document.getElementById('hg-pic').setAttribute('src', this.galleries[g].imgPaths[i]) // Sets the path to image

    document.getElementById('hg-pic').alt = this.galleries[g].altTexts[i] // Sets alt attribute

    this.elements.gallery.classList.add('open')

    document.getElementById('hg-subtext').innerHTML = this.galleries[g].subTexts[i]

    if (
      this.galleries[this.currentGal].options.showImageCount &&
      this.galleries[this.currentGal].imgPaths.length != 1
    )
      document.getElementById('hg-howmany').innerHTML = `${this.currentImg + 1}/${
        this.galleries[g].count
      }`
    else document.getElementById('hg-howmany').innerHTML = ''

    // Visibility of next/before buttons in gallery
    if (this.galleries[this.currentGal].imgPaths.length == 1) {
      // One image in gallery
      this.elements.b_prev.classList = 'hg-unvisible'
      this.elements.b_prev_onpic.classList = 'hg-unvisible'
      this.elements.b_next.classList = 'hg-unvisible'
      this.elements.b_next_onpic.classList = 'hg-unvisible'
    } else if (this.currentImg + 1 == 1 && !this.galleries[this.currentGal].options.wrapAround) {
      // First photo
      this.elements.b_prev.classList = 'hg-unvisible'
      this.elements.b_prev_onpic.classList = 'hg-unvisible'

      this.elements.b_next.classList = ''
      this.elements.b_next_onpic.classList = ''
    } else if (
      this.currentImg + 1 == this.galleries[this.currentGal].count &&
      !this.galleries[this.currentGal].options.wrapAround
    ) {
      // Last photo
      this.elements.b_next.classList = 'hg-unvisible'
      this.elements.b_next_onpic.classList = 'hg-unvisible'

      this.elements.b_prev.classList = ''
      this.elements.b_prev_onpic.classList = ''
    } else {
      //Dowolne zdjęcie
      this.elements.b_next.classList = ''
      this.elements.b_next_onpic.classList = ''

      this.elements.b_prev.classList = ''
      this.elements.b_prev_onpic.classList = ''
    }

    if (this.options.disableScrolling) document.body.classList += ' hg-disable-scrolling' // Disable scroll
  },

  hide() {
    if (this.options.animations) this.elements.pic_cont.classList.add('hg-transition')

    this.elements.gallery.classList.remove('open')
    this.open = false
    if (this.options.disableScrolling) document.body.classList.remove('hg-disable-scrolling') // Enable scroll
  },

  next() {
    if (
      this.galleries[this.currentGal].options.wrapAround &&
      this.currentImg == this.galleries[this.currentGal].count - 1
    )
      this.show(this.currentGal, 0)
    else if (this.currentImg + 1 < this.galleries[this.currentGal].count)
      this.show(this.currentGal, this.currentImg + 1)
  },

  prev() {
    if (this.galleries[this.currentGal].options.wrapAround && this.currentImg == 0)
      this.show(this.currentGal, this.galleries[this.currentGal].count - 1)
    else if (this.currentImg + 1 > 1) this.show(this.currentGal, this.currentImg - 1)
  },

  HesSingleGallery: class HesSingleGallery {
    constructor(index, root) {
      this.root = root
      this.index = index
      this.imgPaths = []
      this.subTexts = []
      this.altTexts = []

      this.options = {}

      let gallery = document.getElementsByClassName('hes-gallery')[this.index]

      if (this.root.options.linkNested) this.root.replaceImages(gallery)

      this.options.wrapAround = gallery.hasAttribute('data-wrap')
        ? gallery.dataset.wrap == 'true'
        : this.root.options.wrapAround
      this.options.showImageCount = gallery.hasAttribute('data-img-count')
        ? gallery.dataset.imgCount == 'true'
        : this.root.options.showImageCount

      let disabledCount = 0
      gallery.querySelectorAll('img').forEach((image, i) => {
        if (image.hasAttribute('data-disabled')) disabledCount++
        else {
          const imagePath = image.dataset.fullsize || image.dataset.src || image.src
          if (imagePath) this.imgPaths.push(imagePath)
          this.subTexts.push(image.dataset.subtext || '')
          this.altTexts.push(image.alt || '')

          image.onclick = () => {
            this.root.show(this.index, i - disabledCount)
          }
        }
      })

      this.count = this.imgPaths.length
    }
  },
}

document.addEventListener('DOMContentLoaded', () => {
  if (HesGallery.options.autoInit) HesGallery.init()
})

if ('object' == typeof exports && 'undefined' != typeof module) module.exports = HesGallery

// NodeList polyfill
if (typeof NodeList !== 'undefined' && NodeList.prototype && !NodeList.prototype.forEach) {
  NodeList.prototype.forEach = Array.prototype.forEach
}
(function ($) {

    $(document).ready(function () {

        var $widget = $("#NewsletterSignUpFormWidget");

        $('.business-check', $widget).change(function () {
            if ($(this).prop('checked')) {
                $('.business-details', $widget).show();
                $('.business-details input', $widget).focus();
            }
            else {
                $('.business-details input', $widget).val('');
                $('.business-details', $widget).hide();
            }
        });

        var $categorySelection = $(".category-selection", $widget);
        $("input[type='checkbox']", $categorySelection).change(function () {
            var selectionCount = 0;
            $("input[type='checkbox']", $categorySelection).each(function () {
                if ($(this).prop("checked")) {
                    selectionCount++;
                }
            });
            var $form = $categorySelection.closest("form");
            var $selectionCount = $(".category-selection-count", $form);
            $selectionCount.val(selectionCount);
            var validator = $form.validate();
            if (validator) {
                var id = $selectionCount.attr("id");
                if (id) {
                    validator.element("#" + id);
                    $selectionCount.blur();
                }
            }
        });

        $(".submit-btn", $widget).click(function (e) {
            e.preventDefault();
            var $form = $(this).closest("form");
            $(".newsletter-signup-form-messages", $form).empty().hide();
            var validator = $form.validate();
            if (validator && validator.form()) {
                $("html").addClass("wait");
                var formData = $form.serialize();
                var actionUrl = window.globals.controllerActionUrl.replace("controllername", "NewsletterSignUpForm") + "/Submit";
                $.ajax({
                    url: actionUrl,
                    type: 'POST',
                    data: formData,
                    success: function (data) {
                        $("html").removeClass("wait");
                        if (data.Success) {
                            showMessages(data.Messages, "success");
                            clearForm($form);
                        }
                        else if (data.Messages && $.isArray(data.Messages) && (data.Messages.length > 0)) {
                            showMessages(data.Messages, "error");
                        }
                        else {
                            var message = "Invalid response.";
                            showMessages([message], "error");
                        }
                    },
                    error: function (jqXhr) {
                        $("html").removeClass("wait");
                        var errorMessage = jqXhr.status === 0 ? "An unexpected error occurred." :
                            jqXhr.statusText + " (" + jqXhr.status + ")";
                        showMessages([errorMessage], "error");
                    }
                });
            }
        });

        function clearForm($form) {
            $form.find(":input").not(":button, :submit, :reset, :hidden, :checkbox, :radio").val("");
            $form.find(".business-details").hide();
            $form.find(".local-authority-other").hide();
            $form.find(":checkbox, :radio").prop("checked", false);
        };

        function showMessages(messages, messageClass) {
            var $messagesElement = $(".newsletter-signup-form-messages", $("#NewsletterSignUpFormWidget"));
            if (messages && $.isArray(messages)) {
                messages.forEach(function (message) {
                    var $messageElement = $("<li></li").html(message).addClass(messageClass);
                    $messagesElement.append($messageElement);
                });
                $messagesElement.show();
            }
        };

    });

})(jQuery);

(function ($) {

    $(document).ready(function () {

        $(".question-time-form .submit-btn").click(function (e) {
            e.preventDefault();
            var $form = $(this).closest("form");
            var $messagesElement = $(".question-time-form-messages", $form);
            $messagesElement.empty().hide();
            var validator = $form.validate();
            if (validator && validator.form()) {
                $("html").addClass("wait");
                var formData = $form.serialize();
                var actionUrl = window.globals.controllerActionUrl.replace("controllername", "QuestionTimeForm") + "/Submit";
                $.ajax({
                    url: actionUrl,
                    type: 'POST',
                    data: formData,
                    success: function (data) {
                        $("html").removeClass("wait");
                        if (data.Success) {
                            showMessages($messagesElement, data.Messages, "success");
                            clearForm($form);
                        }
                        else if (data.Messages && $.isArray(data.Messages) && (data.Messages.length > 0)) {
                            showMessages($messagesElement, data.Messages, "error");
                        }
                        else {
                            var message = "Invalid response.";
                            showMessages($messagesElement, [message], "error");
                        }
                    },
                    error: function (jqXhr) {
                        $("html").removeClass("wait");
                        var errorMessage = jqXhr.status === 0 ? "An unexpected error occurred." :
                            jqXhr.statusText + " (" + jqXhr.status + ")";
                        showMessages($messagesElement, [errorMessage], "error");
                    }
                });
            }
        });

        function clearForm($form) {
            $form.find(":input").not(":button, :submit, :reset, :hidden, :checkbox, :radio").val("");
            $form.find(":checkbox, :radio").prop("checked", false);
        };

        function showMessages($messagesElement, messages, messageClass) {
            if (messages && $.isArray(messages)) {
                messages.forEach(function (message) {
                    var $messageElement = $("<li></li").html(message).addClass(messageClass);
                    $messagesElement.append($messageElement);
                });
                $messagesElement.show();
            }
        };

    });

})(jQuery);

(function ($) {

    $(document).ready(function () {

        $(".simple-contact-form .submit-btn").click(function (e) {
            e.preventDefault();
            var $form = $(this).closest("form");
            var $messagesElement = $(".contact-form-messages", $form);
            $messagesElement.empty().hide();
            var validator = $form.validate();
            if (validator && validator.form()) {
                $("html").addClass("wait");
                var formData = $form.serialize();
                var actionUrl = window.globals.controllerActionUrl.replace("controllername", "SimpleContactForm") + "/Submit";
                $.ajax({
                    url: actionUrl,
                    type: 'POST',
                    data: formData,
                    success: function (data) {
                        $("html").removeClass("wait");
                        if (data.Success) {
                            showMessages($messagesElement, data.Messages, "success");
                            clearForm($form);
                        }
                        else if (data.Messages && $.isArray(data.Messages) && (data.Messages.length > 0)) {
                            showMessages($messagesElement, data.Messages, "error");
                        }
                        else {
                            var message = "Invalid response.";
                            showMessages($messagesElement, [message], "error");
                        }
                    },
                    error: function (jqXhr) {
                        $("html").removeClass("wait");
                        var errorMessage = jqXhr.status === 0 ? "An unexpected error occurred." :
                            jqXhr.statusText + " (" + jqXhr.status + ")";
                        showMessages($messagesElement, [errorMessage], "error");
                    }
                });
            }
        });

        function clearForm($form) {
            $form.find(":input").not(":button, :submit, :reset, :hidden, :checkbox, :radio").val("");
            $form.find(":checkbox, :radio").prop("checked", false);
        };

        function showMessages($messagesElement, messages, messageClass) {
            if (messages && $.isArray(messages)) {
                messages.forEach(function (message) {
                    var $messageElement = $("<li></li").html(message).addClass(messageClass);
                    $messagesElement.append($messageElement);
                });
                $messagesElement.show();
            }
        };

    });

})(jQuery);

(function ($) {

    $(document).ready(function () {

        var $widget = $("#SpeechesWidget");
        if ($widget.length === 1) {
            var $searchResults = $('.speechesWidget-speeches', $widget);
            if ($searchResults.length == 1) {
                $('.speechesWidget-page-index', $widget).val('0');
                searchSpeeches($widget, $searchResults);

                $searchResults.on('click', 'a.page-number', function (e) {
                    e.preventDefault();
                    $('.speechesWidget-page-index', $widget).val($(this).data('page-index'));
                    searchSpeeches($widget, $searchResults);
                });
            }
        }

    });

    function searchSpeeches($widget, $searchResults) {
        var $pageIndex = $('.speechesWidget-page-index', $widget);
        var $form = $pageIndex.closest('form');
        var formData = $form.serialize();
        var actionUrl = window.globals.controllerActionUrl.replace("controllername", "SpeechesWidget") + "/Search";
        $searchResults.empty();
        $.ajax({
            url: actionUrl,
            type: 'POST',
            data: formData,
            success: function (data) {
                $searchResults.append(data);
            },
            error: function (jqXhr) {
                var errorMessage = jqXhr.status === 0 ? "An unexpected error occurred." :
                    jqXhr.statusText + " (" + jqXhr.status + ")";
                var $errorInfo = $('<p></p>').addClass('error-message');
                $errorInfo.text(errorMessage);
                $searchResults.append($errorInfo);
            }
        });
    };

})(jQuery);

