﻿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(titulo, imagem, linkk)
{
	this.titulo = titulo;
	this.imagem = imagem;
	this.linkk = linkk;
}

jQuery.fn.newsrotator = function(xmlFile, settings) {
    var newsContainer = this;
    settings = jQuery.extend({
        fade: 750,
        timeout: 7000,
        timeout_thumb: 7200
    }, settings);

    newsrotator_fadeNewsSpeed = settings.fade;
    newsrotator_newsTimeout = settings.timeout;
    newsrotator_newsTimeoutThumb = settings.timeout_thumb;

    //Navegacao
    var nav = jQuery('.newsrotator_navigation');

    //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.find('titulo').text(),
				itm.find('imagem').text(),
				itm.find('linkk').text()
            );

            //Navegacao
            var div = document.createElement('div');
            div.className = "noticia";

            var content = "<a rel=" + i + ">" + (i+1) + "</a>";

            div.innerHTML = content;

            nav.append(div);

            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 noticia
        nav.find('a').click(function() {
            clearTimeout(newsrotator_timeout);

            //Noticia atual
            newsrotator_curNews = parseInt(this.rel);
            
            //imagem
            var img = document.createElement('div');
            img.innerHTML = "<img src='" + newsrotator_newsList[newsrotator_curNews].imagem + "' title='" + newsrotator_newsList[newsrotator_curNews].titulo + "'/>";

            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 noticia
        newsrotator_curNews = 0;
        newsrotator_frontNewsFrame.className = "absolute";
        newsrotator_frontNewsFrame.removeAttribute('style');
        newsrotator_backNewsFrame.className = "hide absolute";

        var img = new Image();
        img.src = newsrotator_newsList[newsrotator_curNews].imagem;
		img.title = newsrotator_newsList[newsrotator_curNews].titulo;
        var div = newsrotator_getDiv(img);
        jQuery(newsrotator_backNewsFrame).html(jQuery(div).html());

        //newsrotator_selectThumb(newsrotator_curNews);

        // start toggling!
        newsrotator_toggleNews();
    });
};

function newsrotator_toggleNews()
{
	// move to next image	
	if (++newsrotator_curNews >= newsrotator_newsList.length) {
	    newsrotator_curNews = 0;
	}
	
	//Carrega proxima imagem
    var img = document.createElement('div');
    img.innerHTML = "<img src='" + newsrotator_newsList[newsrotator_curNews].imagem + "' title='" + newsrotator_newsList[newsrotator_curNews].titulo + "'/>";

    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);
}

function newsrotator_fadeNews()
{
	// fade in news and repeat
	jQuery(newsrotator_backNewsFrame).fadeIn(newsrotator_fadeNewsSpeed, newsrotator_toggleNews);
}

function newsrotator_getDiv(img) {
    var div = document.createElement('div');
    
    var div_img = document.createElement('div');
    div_img.className = "imgprincipal";

    //Link sobre a imagem
   	jQuery(div_img).append(img);
    
    jQuery(div).append(div_img);
    
    return div;
}
