3 _App.Controller = function( args )
5 this.initialize( args );
8 _App.Controller.prototype =
11 initialize : function( args )
13 for( var key in args )
15 this[key] = args[key];
19 this.setupScrollListener();
24 this.$_head = $('head');
25 this.$_body = $('body');
26 this.$_htmlBody = $('html, body');
27 this.$_navAnchors = $('#Header .nav a').map( function(i, a){ return $(a); });
30 changePage : function( pageName )
32 App.Event.trigger('Controller.LoadingTemplate:' + pageName, {"pageName": pageName});
33 var prevPage = this.currentPage;
34 this.currentPage = pageName || '';
35 this.$_el.addClass('loading');
36 //this.$_body.attr('id', this.currentPage.capitalize() + 'Page' );
37 this.$_navAnchors.each(function(i, $_a)
39 if ( $_a.attr('href') == window.location.hash )
41 $_a.addClass('active');
45 $_a.removeClass('active');
48 $('div.hero-nav').remove();
49 App.activePage = false;
52 App.Event.trigger('Controller.RemovingPage:' + prevPage, {"pageName": prevPage});
53 _t[prevPage].remove();
54 $('#PageContent').removeClass(prevPage);
56 App.Template.register(
57 pageName, "page", pageName, 'PageContent', {},
58 $.proxy( this.renderPage, this )
62 renderPage : function( id, pageName )
64 _t[pageName].publish();
66 'Controller.Published:' + pageName,
67 {"id": "page", "pageName": pageName}
69 this.$_el.removeClass('loading');
70 this.$_htmlBody.animate({
73 $('#PageContent').addClass(pageName);
74 App.activePage = pageName;
77 setupScrollListener : function()
79 $(window).on('scroll', function() {
80 if ( $(window).scrollTop() > 50 )
82 $('#Header').addClass('compressed');
86 $('#Header').removeClass('compressed');