/**
 * var boolean sServidor
 * Define se a barra esta sendo mostrado ou não
 **/
var bBarra = false;


/**
 * var string sServidor
 * Caminho do servidor onde a Barra esta Hospedada
 **/
var sServidor = 'http://barra.tribodejuda.com/';


/**
 * var array aNav
 * Array com os dados dos Navegadores para Download
 **/
var aNav = new Array();

aNav['FF']          = new Array();
aNav['FF']['Label'] = 'Mozilla Firefox';
aNav['FF']['URL']   = 'http://www.mozilla.com/';
aNav['FF']['IMG']   = 'FireFox.png';

aNav['CH']          = new Array();
aNav['CH']['Label'] = 'Chrome';
aNav['CH']['URL']   = 'http://www.google.com/chrome';
aNav['CH']['IMG']   = 'Chrome.png';

aNav['SF']          = new Array();
aNav['SF']['Label'] = 'Safari';
aNav['SF']['URL']   = 'http://www.apple.com/safari/download/';
aNav['SF']['IMG']   = 'Safari.png';

aNav['OP']          = new Array();
aNav['OP']['Label'] = 'Opera';
aNav['OP']['URL']   = 'http://www.opera.com/browser/';
aNav['OP']['IMG']   = 'Opera.png';

aNav['IE']          = new Array();
aNav['IE']['Label'] = 'Internet Explorer 8';
aNav['IE']['URL']   = 'http://www.microsoft.com/downloads/details.aspx?familyid=341C2AD5-8C3D-4347-8C03-08CDECD8852B&displaylang=pt-br';
aNav['IE']['IMG']   = 'IE7.png';




/**
 * $_::$_()
 * Retorna um objeto HTML requerido pelo ID
 *
 * @param string sID - ID do objeto requerido
 * @return object
 **/
function $_(sID){
  return document.getElementById(sID);
}



/**
 * RemoveBarra::RemoveBarra
 * Remove a barra da Tela
 * 
 * @param objeto oObjeto - Obejeto que vai ser removido
 * @return void
 **/
function RemoveBarra(oObjeto){
  if(oObjeto && oObjeto.parentNode){
    oObjeto.parentNode.removeChild(oObjeto);
  }
}



/**
 * AdicionaEvento::AdicionaEvento()
 * Retorna um objeto HTML requerido pelo ID
 *
 * @param string sLocal - Local onde o Evento sera Adicionado
 * @param string sTipo - Tipo de Evento
 * @param string sFuncao - Função que sera adicionado no evento
 * @return boolean
 **/
function AdicionaEvento(sLocal, sTipo, sFuncao, d){
  
  if(!sLocal){
    return false;
  }
  
  if(sLocal.addEventListener){
    addEventListener(sTipo, sFuncao, d);
    return true;
  } else {
    if(sLocal.attachEvent){
      return sLocal.attachEvent('on' + sTipo, sFuncao);
    } else {
      sLocal['on' + sTipo] = sFuncao;
    }
  }
}



/**
 * PegaPosicao::PegaPosicao
 * Pega a Posição do Objeto na Tela
 * 
 * @param string sID - ID do Obejto
 * @return objetc
 **/
function PegaPosicao(sID){
  
  var oObjeto = $_(sID);
  var iLeft   = oObjeto.offsetLeft;
  var iTop    = oObjeto.offsetTop;
  var sBody   = document.getElementsByTagName('body')[0];
  
  while(oObjeto.offsetParent && oObjeto != sBody){
    iLeft  += oObjeto.offsetParent.offsetLeft;
    iTop   += oObjeto.offsetParent.offsetTop;
    oObjeto = oObjeto.offsetParent;
  }
  
  return {x:iLeft, y:iTop};
}



var DetectaNavegador = {
  
  /**
   * DetectaNavegador::init()
   * @return void
   **/
  init: function () {
    this.browser = this.searchString(this.dataBrowser)     || 'Navegador Desconhecido';
    this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || 'Versão do Navegador é Desconhecida';
    this.OS      = this.searchString(this.dataOS)          || 'Sistema Operacional Desconhecido';
  },
  
  
  /**
   * DetectaNavegador::searchString()
   * @return void
   **/
  searchString: function (data) {
    for(var i = 0; i < data.length;i++){
      var dataString           = data[i].string;
      var dataProp             = data[i].prop;
      this.versionSearchString = data[i].versionSearch || data[i].identity;
      
      if (dataString) {
        if (dataString.indexOf(data[i].subString) != -1) {
          return data[i].identity;
        }
      } else if(dataProp){
          return data[i].identity;
      }
    }
  },
  
  
  /**
   * DetectaNavegador::searchVersion()
   * @return void
   **/
  searchVersion: function (dataString) {
    var index = dataString.indexOf(this.versionSearchString);
    if(index == -1){return;}
    return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
  },
  
  
  /**
   * DetectaNavegador::dataBrowser
   * @return void
   **/
  dataBrowser: [
    { string: navigator.userAgent, subString: 'Chrome',   identity: 'Chrome' },
    { string: navigator.userAgent, subString: 'OmniWeb',  identity: 'OmniWeb',  versionSearch: 'OmniWeb/' },
    { string: navigator.vendor,    subString: 'Apple',    identity: 'Safari',   versionSearch: 'Version'  },
    { prop  : window.opera,        identity : 'Opera'                                                     },
    { string: navigator.vendor,    subString: 'iCab',     identity: 'iCab'                                },
    { string: navigator.vendor,    subString: 'KDE',      identity: 'Konqueror'                           },
    { string: navigator.userAgent, subString: 'Firefox',  identity: 'Firefox'                             },
    { string: navigator.vendor,    subString: 'Camino',   identity: 'Camino'                              },
    { string: navigator.userAgent, subString: 'Netscape', identity: 'Netscape'                            },
    { string: navigator.userAgent, subString: 'MSIE',     identity: 'Explorer', versionSearch: 'MSIE'     },
    { string: navigator.userAgent, subString: 'Gecko',    identity: 'Mozilla',  versionSearch: 'rv'       },
    { string: navigator.userAgent, subString: 'Mozilla',  identity: 'Netscape', versionSearch: 'Mozilla'  }
  ],
  
  
  /**
   * DetectaNavegador::dataBrowser
   * @return void
   **/
  dataOS : [
    { string: navigator.platform, subString: 'Win',   identity: 'Windows' },
    { string: navigator.platform, subString: 'Mac',   identity: 'Mac'     },
    { string: navigator.platform, subString: 'Linux', identity: 'Linux'   }
  ]
};



/**
 * BarraIniciaAnimacao::BarraIniciaAnimacao
 * Inicia a Animação de descida da Barra
 * 
 * @return void
 **/
function BarraIniciaAnimacao(){
  
  var step     = 1;
  var timeStep = 15;
  
  if(PegaPosicao('crossbrowser').y + step < 0){
    $_('crossbrowser').style.top = (PegaPosicao('crossbrowser').y + step) + 'px';
    setTimeout('BarraIniciaAnimacao()', timeStep);
  }
}



/**
 * CriaBarra::CriaBarra
 * Cria a Barra em HTML no Navegador
 * 
 * @return void
 **/
function CriaBarra(){
  if(   !bBarra
     && (DetectaNavegador.browser == 'Internet Explorer' || DetectaNavegador.browser == 'Explorer')
     && DetectaNavegador.version <= '6'){
    
    
    var oIFrame = document.createElement('iframe');
    oIFrame.setAttribute('frameBorder', '0');
    oIFrame.setAttribute('id', 'crossbrowser');
    oIFrame.setAttribute('scrolling', 'no');
    
    oIFrame.style.height   = '31px';
    oIFrame.style.position = 'absolute';
    oIFrame.style.width    = '100%';
    oIFrame.style.top      = '-40px';
    oIFrame.style.left     = '0px';
    oIFrame.style.border   = '0px solid #000';
    
    document.body.appendChild(oIFrame);
    var oDoc = oIFrame.document;

       
    if (oIFrame.contentDocument) {
      // Para NS6
      oDoc = oIFrame.contentDocument;
    } else if (oIFrame.contentWindow) {
      // Para IE5.5 e IE6
      oDoc = oIFrame.contentWindow.document; 
    }
  
    oDoc.open();
    oDoc.writeln(sIframe);
    oDoc.close();
    BarraIniciaAnimacao();
    bBarra = true;    
  }
}



/**
 * EscondeBarra::EscondeBarra
 * Chama a Fução que remove a barra da tela
 * 
 * @return void
 **/
function EscondeBarra(){
  RemoveBarra($_('crossbrowser'));
}



/**
 * var string sIframe
 * HTML da Barra
 **/
sIframe  = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
sIframe += '<html>';
sIframe += '<body style="margin:0px; padding:0px; overflow:hidden; height:30px;">';
sIframe += '<div id="crossbrowser" style="height:30px; background:#F5FAFF; position:absolute; width:100%; left:0px; text-align:left; border-bottom:1px solid #AAAEB2;">';
sIframe += '<ul style="margin:0px auto; padding:1px 0px; list-style:none;">';
sIframe += '<li style="margin:4px 0px 0px 10px; float:left; font:bold 16px Arial, Helvetica, sans-serif; color:#666666;">Atualize seu navegador</li>';
sIframe += '<li style="margin:3px 100px 0px 20px; float:left; font:9px Arial, Helvetica, sans-serif;">Seu navegador é muito antigo.<br />Poderá ocorrer problemas durante a navegação.</li>';
sIframe += '<li style="float:right; margin:0px 5px 0px 0px;"><a href="javascript:window.parent.EscondeBarra();" style="margin:7px 0px 0px 0px; display:block; width:14px; height:14px; background:url('+ sServidor +'Fechar.png) no-repeat; text-indent:-20000px;" title="Fechar">Fechar</a></li>';
sIframe += '<li style="float:left; padding:8px 0px 0px 0px; font-weight:bold; color:#690"><small style="font:10px Arial, Helvetica, sans-serif;">Baixe agora:</small></li>';
sIframe += '<li style="float:left; margin-left:0px;"><a href="'+ aNav['FF']['URL'] +'" target="_blank" title="'+ aNav['FF']['Label'] +'" style="margin:4px 0px 0px 12px; display:block; width:22px; height:22px; background:url('+ sServidor + aNav['FF']['IMG'] +') no-repeat; text-indent:-20000px;">'+ aNav['FF']['Label'] +'</a></li>';
sIframe += '<li style="float:left; margin-left:2px;"><a href="'+ aNav['CH']['URL'] +'" target="_blank" title="'+ aNav['CH']['Label'] +'" style="margin:4px 0px 0px  4px; display:block; width:22px; height:22px; background:url('+ sServidor + aNav['CH']['IMG'] +') no-repeat; text-indent:-20000px;">'+ aNav['CH']['Label'] +'</a></li>';
sIframe += '<li style="float:left; margin-left:2px;"><a href="'+ aNav['SF']['URL'] +'" target="_blank" title="'+ aNav['SF']['Label'] +'" style="margin:4px 0px 0px  4px; display:block; width:22px; height:22px; background:url('+ sServidor + aNav['SF']['IMG'] +') no-repeat; text-indent:-20000px;">'+ aNav['SF']['Label'] +'</a></li>';
sIframe += '<li style="float:left; margin-left:2px;"><a href="'+ aNav['OP']['URL'] +'" target="_blank" title="'+ aNav['OP']['Label'] +'" style="margin:4px 0px 0px  4px; display:block; width:22px; height:22px; background:url('+ sServidor + aNav['OP']['IMG'] +') no-repeat; text-indent:-20000px;">'+ aNav['OP']['Label'] +'</a></li>';
sIframe += '<li style="float:left; margin-left:2px;"><a href="'+ aNav['IE']['URL'] +'" target="_blank" title="'+ aNav['IE']['Label'] +'" style="margin:4px 0px 0px  4px; display:block; width:22px; height:22px; background:url('+ sServidor + aNav['IE']['IMG'] +') no-repeat; text-indent:-20000px;">'+ aNav['IE']['Label'] +'</a></li>';
sIframe += '</ul>';
sIframe += '</div>';
sIframe += '</body>';
sIframe += '</html>';



// Inicia as Funções
DetectaNavegador.init();
AdicionaEvento(window, 'load', CriaBarra);