/* Wrapper para Standards ou IE */
function addEvent(element, event, func) {
  if (element.addEventListener) {
    element.addEventListener(event, func, false);
  } else if (element.attachEvent) {
    element.attachEvent('on' + event, func);
  }
}

// Copiado do w3schools
function whichElement(e)
{
  var targ;
  if (!e)
  {
    var e=window.event;
  }
  if (e.target)
  {
    targ=e.target;
  }
  else if (e.srcElement) {
    targ=e.srcElement;
  }
  if (targ.nodeType==3) // defeat Safari bug
  {
    targ = targ.parentNode;
  }
  return targ;
}

function getParentByTagName(element, tag_name) {
  if (element.tagName.toLowerCase() == tag_name)
    return element;
  else
    return getParentByTagName(element.parentNode, tag_name);
}

function getParentByClass(element, class_name, exact) {
  if (exact == undefined)
    exact = true;
  if ((!exact && element.className.indexOf(class_name))
    || (exact && element.className == class_name))
    return element;
  else
    return getParentByClass(element.parentNode, class_name, exact);
}

function getElementsByClass(element, class_name, exact) {
  if (exact == undefined)
    exact = true;
  var ret = new Array();
  if (element.hasChildNodes()) {
    var nodes = element.childNodes;
    for (var i = 0; i < nodes.length; i++) {
      if (nodes[i].nodeType == 1 && ((exact && nodes[i].className == class_name)
           || (!exact && nodes[i].className.indexOf(class_name) >= 0)))
        ret.push(nodes[i]);
      else if (nodes[i].hasChildNodes())
        ret = ret.concat(getElementsByClass(nodes[i], class_name, exact));
    }
  }
  return ret;
}

function nextSiblingByTagName(element, tag_name) {
  var el = element;
  do {
    el = el.nextSibling;
  } while (el != null && (el.nodeType != 1 || el.tagName.toLowerCase() != tag_name));
  return el;
}

function previousSiblingByTagName(element, tag_name) {
  var el = element;
  do {
    el = el.previousSibling;
  } while (el != null && (el.nodeType != 1 || el.tagName.toLowerCase() != tag_name));
  return el;
}

var quadro_noticias = new Array();

function inicia_noticias() {
  var id = setInterval("noticia_proxima(0)", 8000);
  quadro_noticias.push(new Array("noticias", id));
  noticia_init(0);
  document.getElementById("noticias").className = "0";
}

function noticia_init(id)
{
  var els;
  var quadro = document.getElementById(quadro_noticias[id][0]);
  els = quadro.getElementsByTagName("tr");
  var i;
  for (i = 0; i < els.length; i++) {
    //els[i].firstChild.onclick = noticia_click;
    els[i].id = id+"_"+i;
    //addEvent(els[i].firstChild, "click", noticia_click);
  }
  els = quadro.getElementsByTagName("table");
  for (i = 0; i < els.length; i++) {
    els[i].id = id+"_table_"+i;
    //addEvent(els[i].firstChild, "click", noticia_click);
    addEvent(els[i], "click", noticia_click);
    //els[i].onclick = noticia_click;
  }
  noticia_seleciona(id, 0);
  var div;
  div = getElementsByClass(quadro, "up")[0];
  addEvent(div, "click", noticia_table_anterior);
  div = getElementsByClass(quadro, "down")[0];
  addEvent(div, "click", noticia_table_proxima);
}

function noticia_table_anterior(e)
{
  var el = whichElement(e).parentNode;
  var quadro = getParentByClass(el, "lateral").parentNode;
  var els;
  els = quadro.getElementsByTagName("tr");
  var i;
  for (i = 0; i < els.length; i++) {
    if (els[i].className.indexOf("selecionado") >= 0)
      break;
  }
  var table = previousSiblingByTagName(getParentByTagName(els[i], "table"), "table");
  if (table == null)
    return;
  var tr = table.getElementsByTagName("tr")[0];
  for (i = 0; i < els.length; i++) {
    if (els[i].id == tr.id)
      break;
  }
  noticia_seleciona(parseInt(quadro.className), i);
  var id = quadro_noticias[parseInt(quadro.className)][1];
  clearInterval(id);
  id = setInterval("noticia_proxima("+parseInt(quadro.className)+")", 8000);
  quadro_noticias[parseInt(quadro.className)][1] = id;
}

function noticia_table_proxima(e)
{
  var el = whichElement(e).parentNode;
  var quadro = getParentByClass(el, "lateral").parentNode;
  var els;
  els = quadro.getElementsByTagName("tr");
  var i;
  for (i = 0; i < els.length; i++) {
    if (els[i].className.indexOf("selecionado") >= 0)
      break;
  }
  var table = nextSiblingByTagName(getParentByTagName(els[i], "table"), "table")
  if (table == null)
    return;
  var tr = table.getElementsByTagName("tr")[0];
  for (i = 0; i < els.length; i++) {
    if (els[i].id == tr.id)
      break;
  }
  noticia_seleciona(parseInt(quadro.className), i);
  var id = quadro_noticias[parseInt(quadro.className)][1];
  clearInterval(id);
  id = setInterval("noticia_proxima("+parseInt(quadro.className)+")", 8000);
  quadro_noticias[parseInt(quadro.className)][1] = id;
}

function noticia_click(e)
{
  var el = getParentByTagName(whichElement(e), "tr");
  var quadro = getParentByTagName(el, "table").parentNode;
  if (el.className.indexOf("selecionado") >= 0) {
    els = quadro.getElementsByTagName("div");
    for (i = 0; i < els.length; i++) {
       if (els[i].className.indexOf("selecionado") >= 0) {
         window.location = els[i].getElementsByTagName("a")[0].href;
       }
    }
  }
  var els;
  els = quadro.getElementsByTagName("tr");
  var i;
  for (i = 0; i < els.length; i++) {
    if (els[i].id == el.id)
      break;
  }
  noticia_seleciona(parseInt(quadro.className), i);
  var id = quadro_noticias[parseInt(quadro.className)][1];
  clearInterval(id);
  id = setInterval("noticia_proxima("+parseInt(quadro.className)+")", 8000);
  quadro_noticias[parseInt(quadro.className)][1] = id;
}

function noticia_seleciona(id, count)
{
  var quadro = document.getElementById(quadro_noticias[id][0]);
  var el;
  el = quadro.getElementsByTagName("tr")[count];
  if (el == undefined)
    return;
  noticia_deseleciona(id);
  el.className = "selecionado";
  getParentByTagName(el, "table").className = "selecionado";
  var els;
  var i;
  els = quadro.getElementsByTagName("table");
  for (i = 0; i < els.length; i++) {
    if (els[i].className == "selecionado")
      break;
  }
  var div_up = getElementsByClass(quadro, "up", false)[0];
  //div_up.style.visibility = "visible";
  div_up.style.display = "block";
  var div_down = getElementsByClass(quadro, "down", false)[0];
  //div_down.style.visibility = "visible";
  div_down.style.display = "block";
  if (i == 0) {
    //div_up.style.visibility = "hidden";
    div_up.style.display = "none";
  }
  if (i == els.length - 1) {
    //div_down.style.visibility = "hidden";
    div_down.style.display = "none";
  }
  el = quadro.getElementsByTagName("div")[count];
  el.className = "imagem selecionado";
}

function noticia_proxima(id)
{
  var quadro = document.getElementById(quadro_noticias[id][0]);
  var els;
  els = quadro.getElementsByTagName("tr");
  var i;
  for (i = 0; i < els.length; i++) {
    if (els[i].className.indexOf("selecionado") >= 0)
      break;
  }
  if (i >= els.length - 1)
    i = 0;
  else
    i++;
  noticia_seleciona(id, i);
}

function noticia_deseleciona(id)
{
  var quadro = document.getElementById(quadro_noticias[id][0]);
  var els;
  els = quadro.getElementsByTagName("table");
  for (var i = 0; i < els.length; i++) {
    if (els[i].className == "selecionado")
      els[i].className = "";
  }
  els = quadro.getElementsByTagName("tr");
  for (var i = 0; i < els.length; i++) {
    if (els[i].className.indexOf("selecionado") >= 0)
      els[i].className = els[i].className.replace(/selecionado/g, "");
  }
  els = quadro.getElementsByTagName("div");
  for (var i = 0; i < els.length; i++) {
    if (els[i].className.indexOf("selecionado") >= 0)
      els[i].className = "";
  }
}

