

(function()
{
    BSC.UI.SocialStream = function()
    {
        var StreamInterval = 120000;
        var StreamShowTime = 20000;
        var timer = null;
        var stream = null;
        var fadeTime = 200;
        var ExpandTime = 300;
        var Enabled = 1;
        var SocialStreamLength = 0;
        var SocialStreamCurrent = 0;
        var BlendDelay = 200;

        var init = function()
        {
            GetStream();
            //$("#no_socialstream").show();
        };

        var GetStream = function()
        {
            if (Enabled == 0) return;

            //alert("Get New");
            BSC.D.Send(null, "Site", "Broadcast_Get", function(r)
            {   
                if (r.d && r.d.length > 0)
                {
                    stream = r.d;
                    SocialStreamLength = stream.length;
                    SocialStreamCurrent = -1;
                    Startrotation();
                    $("#no_socialstream").hide();
                }
                else if (stream && stream.length > 0)
                {
                    SocialStreamCurrent = -1;
                    Startrotation();
                    $("#no_socialstream").hide();
                }
                else
                {
                    $("#no_socialstream").show();
                    setTimeout(GetStream, StreamInterval);
                }
            });
        };


        var Startrotation = function()
        {
            rendernext();
        };

        var rendernext = function(Direction)
        {
            SocialStreamCurrent++;
            $("#socialstream_content").fadeOut(fadeTime, rendercurrentstream);
            setTimeout(rendercurrentstream, fadeTime);
        };

        var renderprevious = function(Direction)
        {
            SocialStreamCurrent--;
            $("#socialstream_content").fadeOut(fadeTime, rendercurrentstream);
            setTimeout(rendercurrentstream, fadeTime);
        };


        var rendercurrentstream = function()
        {
            clearInterval(timer);
            timer = setInterval(Startrotation, StreamShowTime);

            if (SocialStreamCurrent < 0)
            {
                SocialStreamCurrent = SocialStreamLength - 1;
            }

            if (SocialStreamCurrent >= SocialStreamLength)
            {
                SocialStreamCurrent = 0;
                GetStream();
            }
            else
            {
                $("#socialstream_username").html("<div style='float:left; padding:3px 5px 0 0;'><img src='" + BSC.BASE_STATIC_PATH + "beautifulpeoplecdn/images/icons/small_flags/" + stream[SocialStreamCurrent].CountryCode.toLowerCase() + ".png' /></div>" + stream[SocialStreamCurrent].ProfileName);
                $("#socialstream_date").html("");
                $("#socialstream_msg").html(stream[SocialStreamCurrent].Message);
                $("#socialstream_pic").attr("src", BSC.PicturePath(stream[SocialStreamCurrent].PictureID, "mini"));
                if (stream[SocialStreamCurrent].Gender == 0)
                    $("#socialstream_username").addClass("female").removeClass("male");
                else
                    $("#socialstream_username").addClass("male").removeClass("female");

                setTimeout(function() { $("#socialstream_content").fadeIn(fadeTime); }, BlendDelay);

            }
        };

        var expandcolapse = function()
        {
            if (Enabled == 1)
            {
                $("#socialstream_content").fadeOut(fadeTime);
                $("#socialstream_container").animate({ marginTop: "-207px" }, ExpandTime);
                setTimeout(function() { $("#socialstream_expand").css('background-position', 'bottom') }, ExpandTime);
                Enabled = 0;
                //clearInterval(timer);
            }
            else
            {
                $("#socialstream_container").animate({ marginTop: "0px" }, 300);
                setTimeout(function() { $("#socialstream_expand").css('background-position', 'top') }, ExpandTime);
                Enabled = 1;
                GetStream();
            }
        };

        //Div functions
        var openprofile = function()
        {

            GO("/" + stream[SocialStreamCurrent].ProfileKey);
        };

        var setStream = function(p1)
        {
            stream = p1;
            if (!stream) return;

            SocialStreamLength = stream.length;
            if (SocialStreamLength >= 1)
            {
                SocialStreamCurrent = -1;
                Startrotation();
                $("#no_socialstream").hide();
            }
            else
            {
                $("#no_socialstream").show();
                //setTimeout(GetStream, StreamInterval);
            }
        };

        var isVisible = function()
        {
            return Enabled == 1;
        };

        return {
            Init: init,
            RenderNext: rendernext,
            RenderPrevious: renderprevious,
            RenderCurrentStream: rendercurrentstream,
            ExpandColapse: expandcolapse,
            OpenProfile: openprofile,
            SetStream: setStream,
            IsVisible: isVisible
        };
    } ();
})();
