var SiteRouter = Router.extend({ el: 'body', routeByHash: true, routes: { '/': 'intro', '/intro': 'intro', '/hub': 'hub', '/story': 'story', '/archive': 'archive', '/store': 'collection', '/store/closed': 'closed', '/store/:code': 'product', '/account/login': 'login', '/account/logout': 'logout', '/account/signup': 'signup', '/account/profile': 'profile', '/account/payment': 'payment', '/account/shipping': 'shipping', '/account/orders': 'orders', '/account/settings': 'settings', '/page/terms': 'terms', '/page/privacy': 'privacy', '/page/returns': 'returns', '/page/care': 'care', '/search': 'search', '/cart': 'cart.summary', '/cart/summary': 'cart.summary', '/cart/payment': 'cart.payment', '/cart/shipping': 'cart.shipping', '/cart/confirm': 'cart.confirm', '/cart/thanks': 'cart.thanks', }, initialize: function(){ var fn for (var route in this.routes) { fn = this.routes[route] if (! this[fn]) { this[fn] = this.default_view(fn) } } }, initial_route: null, launch: function(){ if (this.initial_route) { this.parseRoute( this.initial_route ) } else { this.route() } this.initial_route = null }, go: function(url){ if (app.view && app.view.hide) { app.view.hide() } window.location.href = "#/" + url this.parseRoute(url) }, default_view: function(name){ var fn = function(){ console.log(name) if (app.view != app.login && app.view != app.signin) { app.last_view = app.view } if (app.view && app.view.hide) { app.view.hide() } if (name.match(/\./)) { var n = name.split(".") console.log(name, n) app.view = app[n[0]][n[1]] } else { app.view = app[name] } app.header.set_back( !! app.view.back ) app.view.show() }.bind(this) return fn }, product: function(code){ if (app.view && app.view.hide) { app.view.hide() } app.view = app.product app.header.set_back( true ) app.product.load(code) app.product.show() }, })