﻿// Coloca o valor do parâmetro UserControl enviado via GET na variável global usercontrol_param.
usercontrol_param = gup('UserControl');
document.title = document.title + ' - ' + gup('UserName');
// Coloca o ID do Google Analytics do site na variável global _uacct do arquivo http://www.google-analytics.com/urchin.js do Analytics.
_uacct = 'Company ID - Google';
// Ao iniciar executa a função Usercontrol.
window.onload = Usercontrol;
// Função que analiza o tipo de Usuário e a validade de seu percurso dentro do sistema ou do website para executar a função de configuração de página correta.
function Usercontrol() {
  // Se o Usuário for do tipo 'adm' (Administrador).
  if (usercontrol_param == 'adm') {
    // Se o Usuário veio de SystemPage ou do Website.
    if (checkUrlSystemPage(document.referrer) == '0' || checkUrlWebsite(document.referrer) == '0') {
      // Se o Usuário está indo para SystemPage ou para o Website.
      if (checkUrlSystemPage(window.location.href) == '0' || checkUrlWebsite(window.location.href) == '0') {
        // Executa a função configAdm que configura a página para o Administrador.
        configAdm();
        // Executa a função addParam para repassar os parâmetros Usercontrol e UserName nos link da página.
        addParam();
      }
      // Se o Usuário não está indo para SystemPage ou para o Website.
      else {
        // Executa a função configWww que, no website configura a página para o visitante normal e no sistema redireciona para a página de logon.
        configWww();
        // Zera o parâmetro Usercontrol.
        usercontrol_param = '';
      }
    }
    // Se o Usuário não veio de SystemPage ou do Website.
    else {
      // Se o Usuário veio da página de logon do sistema e está indo para SystemPage.
      if (checkUrlSystemDefault(document.referrer) == '0' && checkUrlSystemPage(window.location.href) == '0') {
        // Executa a função configAdm que configura a página para o Administrador.
        configAdm();
        // Executa a função addParam para repassar os parâmetros Usercontrol e UserName nos link da página.
        addParam();
      }
      // Se o Usuário veio da página de logon do sistema e não está indo para SystemPage.
      else {
        // Executa a função configWww que, no website configura a página para o visitante normal e no sistema redireciona para a página de logon.
        configWww();
        // Zera o parâmetro Usercontrol.
        usercontrol_param = '';
      }
    }  
  }
  // Se o Usuário não for do tipo 'adm' (Administrador).
  else {
    // Se o Usuário for do tipo 'des' (Desenvolvedor).
    if (usercontrol_param == 'des') {
      // Se o Usuário veio de SystemPage ou do Website.
      if (checkUrlSystemPage(document.referrer) == '0' || checkUrlWebsite(document.referrer) == '0') {
        // Se o Usuário está indo para SystemPage ou para o Website.
        if (checkUrlSystemPage(window.location.href) == '0' || checkUrlWebsite(window.location.href) == '0') {
          // Executa a função configDes que configura a página para o Desenvolvedor.
          configDes();
          // Executa a função StartDevelopmentTools que executa as ferramentas do Desenvolvedor.
          StartDevelopmentTools();
          // Executa a função addParam para repassar os parâmetros Usercontrol e UserName nos link da página.
          addParam();
        }
        // Se o Usuário não está indo para SystemPage ou para o Website.
        else {
          // Executa a função configWww que, no website configura a página para o visitante normal e no sistema redireciona para a página de logon.
          configWww();
          // Zera o parâmetro Usercontrol.
          usercontrol_param = '';
        }
      }
      // Se o Usuário não veio de SystemPage ou do Website.
      else {
        // Se o Usuário veio da página de logon do sistema e está indo para SystemPage.
        if (checkUrlSystemDefault(document.referrer) == '0' && checkUrlSystemPage(window.location.href) == '0') { 
          // Executa a função configDes que configura a página para o Desenvolvedor.
          configDes();
		  // Executa a função StartDevelopmentTools que executa as ferramentas do Desenvolvedor.
		  StartDevelopmentTools();
          // Executa a função addParam para repassar os parâmetros Usercontrol e UserName nos link da página.
          addParam();
        }
        // Se o Usuário veio da página de logon do sistema e não está indo para SystemPage.
        else {
          // Executa a função configWww que, no website configura a página para o visitante normal e no sistema redireciona para a página de logon.
          configWww();
          // Zera o parâmetro Usercontrol.
          usercontrol_param = '';
        }
      }
    }
    // Se o Usuário não for do tipo 'des' (Desenvolvedor) nem do tipo 'adm' (Administrador).
    else {
      if (usercontrol_param == 'vis' && checkUrlWebsite(document.referrer) == '0') {
        configWww();
      }
      else if (usercontrol_param != '') {
        // Se o Usuário veio de SystemPage ou do Website.
        if (checkUrlSystemPage(document.referrer) == '0' || checkUrlWebsite(document.referrer) == '0') {
          // Se o Usuário está indo para SystemPage ou para o Website.
          if (checkUrlSystemPage(window.location.href) == '0' || checkUrlWebsite(window.location.href) == '0') {
            // Executa a função configOth que configura a página para os outros tipos de usuários.
            configOth();
            // Executa a função addParam para repassar os parâmetros Usercontrol e UserName nos link da página.
            addParam();
          }
          // Se o Usuário não está indo para SystemPage ou para o Website.
          else {
            // Executa a função configWww que, no website configura a página para o visitante normal e no sistema redireciona para a página de logon.
            configWww();
            // Zera o parâmetro Usercontrol.
            usercontrol_param = '';
          }
        }
        // Se o Usuário não veio de SystemPage ou do Website.
        else {
          // Se o Usuário veio da página de logon do sistema e está indo para SystemPage.
          if (checkUrlSystemDefault(document.referrer) == '0' && checkUrlSystemPage(window.location.href) == '0') {
            // Executa a função configOth que configura a página para os outros tipos de usuários.
            configOth();
            // Executa a função addParam para repassar os parâmetros Usercontrol e UserName nos link da página.
            addParam();
          }
          // Se o Usuário veio da página de logon do sistema e não está indo para SystemPage.
          else {
            // Executa a função configWww que, no website configura a página para o visitante normal e no sistema redireciona para a página de logon.
            configWww();
            // Zera o parâmetro Usercontrol.
            usercontrol_param = '';
          }
        }  
      }
      else {
        // Executa a função configWww que, no website configura a página para o visitante normal e no sistema redireciona para a página de logon.
        configWww();
        // Zera o parâmetro Usercontrol.
        usercontrol_param = '';
      }
    }
  }
}
// Resebe uma string como parâmetro e retorna 0 (zero) caso ela seja um caminho para a página de logon do sistema ou -1 caso não seja.
function checkUrlSystemDefault(suburl) {
  if (suburl == strRoot + 'system/') {
    return '0';
  }
  else {
    return suburl.indexOf(strRoot + 'system/default.aspx');
  }
}
// Resebe uma string como parâmetro e retorna 0 (zero) caso ela seja um caminho para SystemPage (uma página interna do sistema) ou -1 caso não seja.
function checkUrlSystemPage(suburl) {
  if (suburl.indexOf(strRoot + 'system/pages/') == '0') {
    return '0';
  }
  else {
    return suburl.indexOf(strRoot + 'system/settings/');
  }
}
// Resebe uma string como parâmetro e retorna 0 (zero) caso ela seja um caminho para uma página qualquer do website ou -1 caso não seja.
function checkUrlWebsite(suburl) {
  return suburl.indexOf(strRoot + 'website/');
}
// Esta função percorre todos as elementos 'a' (links) da página e, desde que não possuam a classe 'Noparam', os configura para repassarem o parâmetro Usercontrol e UserName para seus destinos.
function addParam() {
  arlLinks = document.getElementsByTagName('a');
  for (var i = 0; i < arlLinks.length; i++) {
    if (arlLinks[i].className.indexOf('Noparam') == -1) {
      if (arlLinks[i].href.indexOf('?') > 0) {
        arlLinks[i].href = arlLinks[i].href + '&UserControl=' + usercontrol_param;
      }
      else {
        arlLinks[i].href = arlLinks[i].href + '?UserControl=' + usercontrol_param;
      }
      arlLinks[i].href += '&UserName=' + gup('UserName');
      arlLinks[i].href += '&UserId=' + gup('UserId');
    }
  }
}
// Se o usuário não for do tipo 'adm' ou 'des', executa a função urchinTracker do arquivo http://www.google-analytics.com/urchin.js que registra a visita no Analytics. 
function analytics() {
  if (usercontrol_param != 'adm' && usercontrol_param != 'des') {
    urchinTracker();
  }
}
