﻿var newsrotator_frontNewsFrame; //primeiro frame
var newsrotator_backNewsFrame; //segundo frame
var newsrotator_newsList = []; // array de noticias
var newsrotator_curNews = -1; //posicao da noticia atual
var newsrotator_fadeNewsSpeed; // fade settings
var newsrotator_newsTimeout;
var newsrotator_newsTimeoutThumb;
var newsrotator_timeout; // js timeout function

function newsrotator_newsItem(position, guid, nome, ano, imagem) {
    this.position = position;
    this.guid = guid;
    this.nome = nome;
    this.ano = ano;
    this.imagem = imagem;
}

jQuery.fn.newsrotator = function(xmlFile, settings) {
    var newsContainer = this;
    settings = jQuery.extend({
        fade: 750,
        timeout: 10000,
        timeout_thumb: 10200
    }, settings);

    newsrotator_fadeNewsSpeed = settings.fade;
    newsrotator_newsTimeout = settings.timeout;
    newsrotator_newsTimeoutThumb = settings.timeout_thumb;

    //Navegacao
    var nav = jQuery('#footer .projeto .area .navegacao');
    var descricao = jQuery('#footer .projeto .area .titulo');

    //Carrega dados do XML
    jQuery.get(xmlFile, function(xml) {
        var i = 0;
        jQuery(xml).find('item').each(function() {
            var itm = jQuery(this);
            newsrotator_newsList[i] = new newsrotator_newsItem(
				itm.attr('order'),
				itm.find('guid').text(),
				itm.find('nome').text(),
				itm.find('ano').text(),
				itm.find('imagem').text()
            );

            //cria a navegacao
            var span = document.createElement('div');
            span.className = "btn-off";
            span.innerHTML = "<a rel=" + i + "><img src='" + appUrl_ + "images/icones/nav-off.png' border='0' id='nav" + i + "' /></a>";
            nav.append(span);

            //Nome e Ano
            div = document.createElement('span');
            div.id = "destaque_descricao" + i;
            div.className = "hide";
            div.innerHTML = newsrotator_newsList[i].nome + " <span class='ano'>" + newsrotator_newsList[i].ano + "</span>";
            descricao.append(div);

            //next
            i++;
        });

        // only create element if it's not already there
        var div_absolute = document.createElement('div');
        div_absolute.className = "absolute";
        if (newsContainer.length == 1) newsContainer.append(div_absolute);

        // get array of div elements to swap
        var divs = jQuery('.newsrotator_frame div');
        newsrotator_frontNewsFrame = divs[1];
        newsrotator_backNewsFrame = divs[0];


        // ao clicar no link para troca de imagem
        nav.find('a').click(function() {
            clearTimeout(newsrotator_timeout);

            //Noticia atual
            newsrotator_curNews = parseInt(this.rel);
            newsrotator_selectThumb(newsrotator_curNews);

            //imagem
            var img = document.createElement('div');
            img.innerHTML = "<img src='" + newsrotator_newsList[newsrotator_curNews].imagem + "' />";

            var div = newsrotator_getDiv(img);

            // swap frames
            var temp = newsrotator_frontNewsFrame;
            newsrotator_frontNewsFrame = newsrotator_backNewsFrame;
            newsrotator_backNewsFrame = temp;

            // set current image to hide next
            newsrotator_frontNewsFrame.className = "absolute";
            newsrotator_frontNewsFrame.removeAttribute('style');

            // prepare to swap image
            newsrotator_backNewsFrame.className = "hide absolute";
            jQuery(newsrotator_backNewsFrame).html(jQuery(div).html());

            //Fade in e gera novo timeout para trocar a noticia
            jQuery(newsrotator_backNewsFrame).fadeIn(newsrotator_fadeNewsSpeed);
            newsrotator_timeout = setTimeout(function() { newsrotator_fadeNews(); }, newsrotator_newsTimeout);

            return false;
        });

        //Exibe a primeira imagem
        newsrotator_curNews = 0;
        newsrotator_frontNewsFrame.className = "absolute";
        newsrotator_frontNewsFrame.removeAttribute('style');
        newsrotator_backNewsFrame.className = "hide absolute";

        var img = new Image();
        img.id = "imgfundo";
        img.src = newsrotator_newsList[newsrotator_curNews].imagem;
        var div = newsrotator_getDiv(img);
        jQuery(newsrotator_backNewsFrame).html(jQuery(div).html());

        jQuery(newsrotator_backNewsFrame).fadeIn(newsrotator_fadeNewsSpeed);
        newsrotator_selectThumb(newsrotator_curNews);

        // start toggling!
        newsrotator_toggleNews();
    });
};
// alterna os itens
function newsrotator_toggleNews() 
{
    // move to next image	
    if (++newsrotator_curNews >= newsrotator_newsList.length) {
        newsrotator_curNews = 0;
    }

    //Carrega proxima imagem
    var img = document.createElement('span');
    img.innerHTML = "<img src='" + newsrotator_newsList[newsrotator_curNews].imagem + "'/>";

    var div = newsrotator_getDiv(img);

    // swap frames
    var temp = newsrotator_frontNewsFrame;
    newsrotator_frontNewsFrame = newsrotator_backNewsFrame;
    newsrotator_backNewsFrame = temp;

    // set current image to hide next
    newsrotator_frontNewsFrame.className = "absolute";
    newsrotator_frontNewsFrame.removeAttribute('style');

    // prepare to swap image
    newsrotator_backNewsFrame.className = "hide absolute";
    jQuery(newsrotator_backNewsFrame).html(jQuery(div).html());

    // fade in next image and repeat
    newsrotator_timeout = setTimeout(function() { newsrotator_fadeNews(); }, newsrotator_newsTimeout);
    setTimeout(function() { newsrotator_selectThumb(newsrotator_curNews); }, newsrotator_newsTimeoutThumb);
}
// fade
function newsrotator_fadeNews() 
{
    // fade in news and repeat
    jQuery(newsrotator_backNewsFrame).fadeIn(newsrotator_fadeNewsSpeed, newsrotator_toggleNews);
}

// seleciona item atual
function newsrotator_selectThumb(current) {
    var itens = jQuery('.navegacao div');
    var nv = jQuery('.navegacao img');

    for (i = 0; i < itens.length; i++) {
        itens[i].className = "btn-off";
        $("#destaque_descricao" + i).attr("class", "hide");
        if (current == i) {
            itens[i].className = "btn-on";
            $("#destaque_descricao" + i).attr("class", "");
        }
    }

    //navegacao
    for (i = 0; i < nv.length; i++) {
        nv[i].src = appUrl_ + "images/icones/nav-off.png";
        if (current == i) {
            nv[i].src = appUrl_ + "images/icones/nav-on.png";
        }
    }
}
// exibe a div principal com a imagem
function newsrotator_getDiv(img) {
    var div = document.createElement('div');
    jQuery(div).append(img);
    return div;
}
