$modx->controller->addLexiconTopic('analytics:default');
$modx->regClientStartupHTMLBlock('<script type="text/javascript">var GA = {connector_url:"' . $ga->config['connectorUrl'] . '",assets_url:"' . $ga->config['assetsUrl'] . '"};</script>');
$sitename = $modx->getOption('analytics_sitename');
//Get the amount of days
$days = $modx->getOption('analytics_days', null, 7);
//Get the settings
$settings = array('sessionToken' => trim($modx->getOption('analytics_sessionToken')), 'profileId' => trim($modx->getOption('analytics_profileId')), 'accountId' => trim($modx->getOption('analytics_accountId')), 'webPropertyId' => trim($modx->getOption('analytics_webPropertyId')), 'start_date' => date('Y-m-d', strtotime('-' . ($days - 1) . ' day', time())), 'end_date' => date('Y-m-d'));
//load lexicon files
$modx->getService('lexicon', 'modLexicon');
$modx->lexicon->load('analytics:default');
//lexicon to js
$lexicon = $modx->lexicon->fetch($prefix = 'analytics.', $removePrefix = true);
$lexiconJs = $modx->toJSON($lexicon);
$modx->smarty->assign('_langs', $lexicon);
if ($_REQUEST['token']) {
    $sessiontoken = $ga->getSessionToken($_REQUEST['token']);
    $Setting = $modx->getObject('modSystemSetting', 'analytics_sessionToken');
    $Setting->set('value', trim($sessiontoken));
    $Setting->save();
    $settings['sessionToken'] = trim($sessiontoken);
    unset($_REQUEST['token']);
}
if (empty($settings['sessionToken'])) {
    $modx->smarty->assign('_langs', $lexicon);
    $modx->smarty->assign('authUrl', 'https://www.google.com/accounts/AuthSubRequest?next=' . $ga->fullUrl() . '&scope=https://www.google.com/analytics/feeds/&secure=0&session=1');
    return $modx->smarty->fetch($ga->config['elementsPath'] . 'tpl/widget.auth.tpl');
}
if (!empty($_POST['siteSelect'])) {
    list($sitename, $accountId, $profileId, $webPropertyId) = explode("|", $_POST['siteSelect']);
    /** @var modSystemSetting $setting */
    $setting = $modx->getObject('modSystemSetting', 'analytics_profileId');