            var tempo;
            var intervalo = 5000;  //Intervalo entra as mudanças de slides. Definido em milisegundos.
            function $(campo) {
                return document.getElementById(campo);
            }
            
             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);