/**
 * Global scripts for "You Be The Difference" website.
 */
$(document).ready(function() {

/* ------------------------------------------------------------
Globals
------------------------------------------------------------ */

    var STATE_SELECTOR = '#state';
    var BUTTON_PRINT_VIEW = '#view-print-version';
    var BUTTON_TEXT_RESIZE = '#resize-text';

/* ------------------------------------------------------------
Functions
------------------------------------------------------------ */

    /**
     * Jump to the URL for the state selected in the drop-down.
     *
     * @param   object  ev      The event object.
     *
     */
    var jumpToState = function(ev) {

        var selectedState = STATE_SELECTOR + ' option:selected';
        var selectedStateURL = $(selectedState).val();
        var selectedStateName = $(selectedState).text();

        // Nothing selected
        if(selectedStateURL == '') {
            return;
        }
        // Jump to state
        else {
            window.location = selectedStateURL;
        }

    }; // END: jumpToState()

    /**
     * Increase or decrease the size of the text in the content area.
     *
     * @param   object  ev      The event object.
     *
     */
    var toggleTextResize = function(ev) {

        var resizeableContent = '#content';

        // Increase/decrease text size by this integer as a percentage
        // eg. Increment of 20 = +/- 20% font size
        var TEXT_SIZE_INCREMENT = 20;
        var newFontSize;

        // Text increase already in place: decrease text size
        if($(BUTTON_TEXT_RESIZE).hasClass('bigger')) {
            newFontSize = '100%';
            $(resizeableContent).css('font-size', newFontSize);
            $(BUTTON_TEXT_RESIZE).removeClass('bigger');
        }
        // Increase text size
        else {
            newFontSize = 100 + TEXT_SIZE_INCREMENT;
            newFontSize += '%';
            $(resizeableContent).css('font-size', newFontSize);
            $(BUTTON_TEXT_RESIZE).addClass('bigger');
        }

    }; // END: toggleTextResize()

    /**
      * View the printer-friendly version of the current page.
      *
      * @param  object  ev      The event object.
      *
      */
    var viewPrinterFriendlyPage = function(ev) {
        var currentURL = window.location;
        var newURL = currentURL + '?SQ_DESIGN_NAME=print';
        window.location = newURL;    
    }; // END: viewPrinterFriendlyPage()

/* ------------------------------------------------------------
Events
------------------------------------------------------------ */

    // Handle State dropdown change event
    $(STATE_SELECTOR).change(jumpToState);
    // Handle Printer Friendly button
    $(BUTTON_PRINT_VIEW).click(viewPrinterFriendlyPage);
    // Handle text resize button
    $(BUTTON_TEXT_RESIZE).click(toggleTextResize);

});

