// pages.Page1.js
// I like to include the file name at the top in case we ever concatenate our scripts and need to find this file to debug.

// Wrap each block of code in a self executing function.
// At the bottom, we pass in these objects to this function and immediately execute it.
(function($, window, document) {
    "use strict";
    // Optionally, a single string "use strict" will force strict mode and help you catch common javascript errors before they get into the wild.
    
    // Pass in jQuery and the window object to protect from other people messing with their values.
    // Also, if you are referencing window or document alot, minimizers can optimize this file into a smaller size.
    
    var page1 = {
        
        ready: function() {
            highlightMenu();
            loadWizzyMathinger();
            setupEvents();
        },
        
        highlightMenu: function() {
            // Highlight the current menu item.
        },
        
        loadWizzyMathinger: function() {
            // Load the mystical Wizzy Mathinger...
        },
        
        setupEvents: function() {
            
            // workaround for javascript's crazy scoping of "this"
            var self = this;
            
            // A better way of handling any time .someItem is clicked on the page.
            $(document).delegate("a.someItem", "click", function(evt) {
                self._handleItemClick(evt);
            });
        },
        
        // By convention, "private" methods usually are preceded by an underscore. It also helps to keep them out of the way when ordered (in intellisense, for example)
        _handleItemClick: function(evt) {
            // Handle our item click.
        }
    };
    
    // On document ready hook.
    $(page1.ready);
    
}(jQuery, window, document));