﻿var elementRotateInterval = 8000;
var ajaxUpdateDelay = 15000;
var slideshowId;

function initSmsSlideshow(containerId,showId)
{
    slideshowId = containerId;
    var slideshowContainer = $('#'+slideshowId);
    slideshowContainer.get(0).showId = showId;
    ShowExtrasAjax.GetSmsMessages(showId,SmsSlideshowAjaxResponse,function(){},function(){});
}

function SmsSlideshowAjaxResponse(smsMessages)
{
    var slideshowContainer = $('#'+slideshowId);
    slideshowContainer.find('.showSmsSlideshowLoading').fadeOut("slow",function(){
       slideshowContainer.empty();
    
    slideshowContainer.get(0).smsMessageIds = Array();
    slideshowContainer.get(0).smsMessages = Array();
    slideshowContainer.get(0).smsNewestId = null;

    if(smsMessages.length > 0)
        slideshowContainer.get(0).smsNewestId = smsMessages[0].Id;
    
    var ul = document.createElement("ul");
    var li;
                
    var count = 0;
    var maxIndex = 0;
                
    for(var index in smsMessages)
    {
        if(count < 3)
        {
            li = CreateSmsLi(smsMessages[index]);
            $(ul).append(li);
            maxIndex++;
        }
        
        slideshowContainer.get(0).smsMessages.push(smsMessages[index]);
        slideshowContainer.get(0).smsMessageIds.push(smsMessages[index].Id);
        
        count ++;
    }
        slideshowContainer.append(ul);
        
        if(smsMessages.length > 0)
            ShowItems($(ul).find('li:first'),slideshowContainer,maxIndex-1);
        else
            StartRotator(slideshowContainer,maxIndex);          
    }); 
}
function CreateSmsLi(data)
{
   var li = $(document.createElement("li"));
   var divAux = $(document.createElement("div"));
   divAux.addClass("smsDate").text(data.Date.format("HH.mm"));
   li.append(divAux);
        
   divAux = $(document.createElement("div"));
   divAux.addClass("smsMessage").text(data.Message);
   li.append(divAux);
        
   divAux = $(document.createElement("div"));
   divAux.addClass("smsMessageBottom");
   li.append(divAux);
   
   li.attr("id","sms"+data.Id);
   
   return li;
}

function ShowItems(li,slideshowContainer,maxIndex)
{
    li.show("slow",function(){
        var next = $(this).next();
        if(next.length > 0)
            ShowItems(next,slideshowContainer,maxIndex);
        else
            StartRotator(slideshowContainer,maxIndex);
    });
}

function StartRotator(slideshowContainer,maxIndex)
{
     slideshowContainer.get(0).slideshowIndex = maxIndex;
     setInterval("RotateSms('"+slideshowContainer.attr("id")+"')",elementRotateInterval);
     setTimeout("SmsAjaxUpdate('"+slideshowContainer.attr("id")+"');",ajaxUpdateDelay);
}
function SmsAjaxUpdate(idSlideshow)
{
    var sShow = $('#'+idSlideshow);
    slideshowId = idSlideshow;
    ShowExtrasAjax.GetNewSmsMessages(sShow.get(0).showId,sShow.get(0).smsNewestId,UpdateSmsMessages,function(){},function(){});
}
function UpdateSmsMessages(smsMessages)
{
    var sShow = $('#'+slideshowId);
    if(smsMessages.length > 0)
    {        
        var newSmsMessages = Array();
        var newSmsIds = Array();
        for(var index in smsMessages)
        {
           newSmsMessages.push(smsMessages[index]);
           newSmsIds.push(smsMessages[index].Id);
        }
        sShow.get(0).smsMessages = newSmsMessages.concat(sShow.get(0).smsMessages);
        sShow.get(0).smsMessageIds = newSmsIds.concat(sShow.get(0).smsMessageIds);
        sShow.get(0).smsNewestId = smsMessages[0].Id;
        sShow.get(0).slideshowIndex += smsMessages.length;
    }
    setTimeout("SmsAjaxUpdate('"+sShow.attr("id")+"');",ajaxUpdateDelay);
}
function RotateSms(idSlideshow)
{
    var sShow = $('#'+idSlideshow);
    
    if(sShow.get(0).smsMessages.length == 0)
        return;
    
    var ul = sShow.find("ul");
            
    var li = null;
    var smsMessages = sShow.get(0).smsMessages;
    var newIndex = sShow.get(0).slideshowIndex + 1;
    
    if(smsMessages.length > newIndex)
    {
        li = CreateSmsLi(smsMessages[newIndex]);
        sShow.get(0).slideshowIndex = newIndex;
    }
    else
    {
        li = CreateSmsLi(smsMessages[0]);
        sShow.get(0).slideshowIndex = 0;
    }
    /*
    ul.find("li:first").slideUp("slow",function(){$(this).remove();});
    ul.append(li);
    li.slideDown("slow");
    */
    if(ul.find("li").length >= 3)
    {
        ul.find("li:first").slideUp("slow",function(){
            $(this).remove();        
        });
    }
    ul.append(li);
        li.fadeIn("slow");
}