var tempo;
var intervalo = 4000; //Intervalo entra as mudanças de slides. Definido em milisegundos.
function $(campo) {
    return document.getElementById(campo);
}
//Trecho de código criado por Wilker, pego em http://forum.imasters.com.br/index.php?s=&showtopic=198704&view=findpost&p=660522
var $A = Array.from = function(iterable) {
    if (!iterable) return [];
    if (iterable.toArray) {
        return iterable.toArray();
    } else {
        var results = [];
        for (var i = 0; i < iterable.length; i++)
            results.push(iterable[i]);
        return results;
    }
};
Function.prototype.bind = function() {
    var __method = this, args = $A(arguments), object = args.shift();
    return function() {
        return __method.apply(object, args.concat($A(arguments)));
    };
};
//Fim do trecho de código criado por Wilker
function addEvent(obj, evType, fn) { //Função adaptada da original de Christian Heilmann, em http://www.onlinetools.org/articles/unobtrusivejavascript/chapter4.html
    if (typeof obj == "string") {
        if (null == (obj = document.getElementById(obj))) {
            throw new Error("Elemento HTML não encontrado. Não foi possível adicionar o evento.");
        }
    }
    if (obj.attachEvent) {
        return obj.attachEvent(("on" + evType), fn);
    } else if (obj.addEventListener) {
        return obj.addEventListener(evType, fn, true);
    } else {
        throw new Error("Seu browser não suporta adição de eventos.");
    }
}
function nextSlide() {
    var divs = $('slides').getElementsByTagName('div');
    var i;
    for (i = 0; i < divs.length; i++) {
        if (divs[i].className == 'visible') {
            divs[i].className = 'hidden';
            $('link' + (i + 1)).className = 'inativo'
            i = (i == divs.length - 1) ? 0 : i + 1;
            divs[i].className = 'visible';
            $('link' + (i + 1)).className = 'ativo'
            break;
        }
    }
}
function init() {
    var as = $('links').getElementsByTagName('a');
    var i;
    for (i = 0; i < as.length; i++) {
        var f = function(v) {
            setSlide(as[v]);
        }
        addEvent(as[i], 'click', f.bind(this, i));
    }
    tempo = setInterval('nextSlide()', intervalo);
}
function setSlide(link) {
    var divs = $('slides').getElementsByTagName('div');
    var i;
    for (i = 0; i < divs.length; i++) {
        divs[i].className = 'hidden';
    }
    var lis = $('links').getElementsByTagName('li');
    for (i = 0; i < lis.length; i++) {
        lis[i].className = 'inativo';
    }
    link.parentNode.className = 'ativo';
    i = parseInt(link.firstChild.data);
    $('slide' + i).className = 'visible';
    clearInterval(tempo);
}
addEvent(window, 'load', init);