--- /dev/null
+class Pettanr.View.Layout.Blog.Header extends Pettanr.View\r
+ tagName: 'div'\r
+ id: 'header'\r
+ \r
+ initialize: (options) ->\r
+ @router = new Pettanr.Router()\r
+ @listenTo(@router, 'fire', @fire)\r
+ \r
+ render: () ->\r
+ this.$el.html('xx')\r
+ this\r
+ \r
+ fire: (params) ->\r
+ c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller']\r
+ controller = new c()\r
+ controller.params = params\r
+ @listenTo(controller, 'ready', @refresh)\r
+ @listenTo(controller, 'retitle', @retitle)\r
+ controller[params['action']]()\r
+ \r
+ retitle: (params, str = null) ->\r
+ t = str || I18n.t(params['controller'] + '.' + params['action'] + '.title')\r
+ site_caption = _.escape(Manifest.manifest().magic_numbers.profile.users.caption)\r
+ $(document).attr('title', t + ' - ' + site_caption)\r
+ \r
+ refresh: (view) ->\r
+ @listenTo(view, 'navigate', @navigate)\r
+ this.$el.html(view.el)\r
+ \r
+ refresh: () ->\r
+ \r
+ sign_out: () ->\r
+ \r
+ navigate: (url) ->\r
+ @router.navigate(url, {trigger: true, replace: false})\r
+ @trigger('navigate', url)\r
+ \r
+class Pettanr.View.Layout.Blog.Body extends Pettanr.View\r
+ tagName: 'div'\r
+ id: 'body'\r
+ \r
+ initialize: (options) ->\r
+ @router = new Pettanr.Router()\r
+ @listenTo(@router, 'fire', @fire)\r
+ \r
+ render: () ->\r
+ this.$el.html('cc')\r
+ this\r
+ \r
+ fire: (params) ->\r
+ c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller']\r
+ controller = new c()\r
+ controller.params = params\r
+ @listenTo(controller, 'ready', @refresh)\r
+ @listenTo(controller, 'retitle', @retitle)\r
+ controller[params['action']]()\r
+ \r
+ retitle: (params, str = null) ->\r
+ t = str || I18n.t(params['controller'] + '.' + params['action'] + '.title')\r
+ site_caption = _.escape(Manifest.manifest().magic_numbers.profile.users.caption)\r
+ $(document).attr('title', t + ' - ' + site_caption)\r
+ \r
+ refresh: (view) ->\r
+ @listenTo(view, 'navigate', @navigate)\r
+ this.$el.html(view.el)\r
+ \r
+ navigate: (url) ->\r
+ @router.navigate(url, {trigger: true, replace: false})\r
+ @trigger('navigate', url)\r
+ \r
+class Pettanr.View.Layout.Blog.Footer extends Pettanr.View\r
+ tagName: 'div'\r
+ id: 'footer'\r
+ \r
+ initialize: (options) ->\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ this\r
+ \r