import React from 'react';
import Router, {Route, DefaultRoute, NotFoundRoute, RouteHandler} from 'react-router';
import ga, {Initializer as GAInitiailizer} from 'react-google-analytics';
import Home from './home';
import Share from './share';
import Head from './head';
import ErrorView from './error';

let App = React.createClass({
  render: function () {
    return (
      <html>
        <Head {...this.props} />
        <body className='home'>
          <RouteHandler {...this.props} />
          <GAInitiailizer />
          <script src='/jspm_packages/system.src.js'></script>
          <script src='/config.js'></script>
          <script dangerouslySetInnerHTML={{__html: 'System.import(\'views/app\');'}}></script>
        </body>
      </html>
    );
  }
});


let routes = (
  <Route name='home' handler={App} path='/'>
    <DefaultRoute handler={Home} />
    <Route name='share' path=':service/:type/:id' handler={Share}/>
    <NotFoundRoute handler={ErrorView}/>
  </Route>
);

if (typeof window !== 'undefined') {
  console.info('Time since page started rendering: ' + (Date.now() - timerStart) + 'ms');
  Router.run(routes, Router.HistoryLocation, function (Handler) {
    if (typeof window.recents !== 'undefined') {
      React.render(<Handler recents={window.recents} />, document);
    } else if (typeof shares !== 'undefined') {
      React.render(<Handler shares={window.shares} />, document);
    }
  });
  ga('create', 'UA-66209-8', 'auto');
  ga('send', 'pageview');
}

export {routes};