﻿/// <reference path="~/Scripts/IntelliSense/jquery-1.2.3-intellisense.js" />
/// <reference path="~/Scripts/ByteStorm/BSC.js" />

/// <reference path="~/Scripts/ByteStorm/BSC.D.js" />
/// <reference path="~/Scripts/ByteStorm/BSC.D.C.js" />


/// <reference path="~/Scripts/ByteStorm/BSC.D.JSON.js" />
/// <reference path="~/Scripts/ByteStorm/BSC.D.Ws.js" />
/// <reference path="~/Scripts/ByteStorm/BSC.D.Ws.I.js" />

/// <reference path="~/Scripts/ByteStorm/BSC.F.js" />
/// <reference path="~/Scripts/ByteStorm/BSC.M.js" />
/// <reference path="~/Scripts/ByteStorm/BSC.P.js" />
/// <reference path="~/Scripts/ByteStorm/BSC.R.js" />
/// <reference path="~/Scripts/ByteStorm/BSC.T.js" />
/// <reference path="~/Scripts/ByteStorm/BSC.U.js" />
/// <reference path="~/Scripts/ByteStorm/BSC.UI.js" />
/// <reference path="~/Scripts/ByteStorm/BSC.UI.Ts.js" />
/// <reference path="~/Scripts/ByteStorm/BSC.UI.Ws.js" />
/// <reference path="~/Scripts/ByteStorm/BSC.UI.W.js" />
/// <reference path="~/Scripts/ByteStorm/BSC.UI.Cropper.js" />


(function()
{
    BSC.UI.Ranking = function()
    {
        var localcache = {};
        var current = null;
        var timer = null;

        var add = function(p1, p2, p3, p4)
        {
            var guid = p1;
            var callback = p2;
            var remove = p3;
            var picture = p4;
            localcache[guid] = {};
            localcache[guid].data = {};
            localcache[guid].remove = (remove) ? true : false;
            localcache[guid].callback = callback;


            setValue(guid, picture.Rank);

            $("#" + guid + "_ranking a").unbind().bind("mouseover", guid, function(e)
            {
                var guid = e.data;
                $("#" + guid + "_rankingtext").html($(this).attr("title"));
            }).bind("click", guid, function(e)
            {
                var guid = e.data;
                var el = BSC.E.GetTarget(e);
                var value = $(this).text();

                //$("#" + guid + "_rankingc").hide();
                $("#" + guid + "_rankingtext").html("");
                $("#" + guid + "_rankingl").show();
                $("#" + guid + "_rankings").css({ width: 0 });

                if (localcache[guid] && localcache[guid].remove)
                    BSC.UI.Ranking.Remove(guid);

                if (localcache[guid] && localcache[guid].callback)
                    localcache[guid].callback.apply(null, [guid, value]);
                else
                {
                    setTimeout(function()
                    {
                        $("#" + guid + "_rankingl").hide();
                        //$("#" + guid + "_rankingc").show();
                        $("#" + guid + "_rankingc").addClass("post");
                        $("#" + guid + "_rankingtext").html("");
                    }, 1000);
                }
            });

            $("#" + guid + "_ranking").unbind().bind("mouseout", guid, function(e)
            {
                var guid = e.data;
                $("#" + guid + "_rankingtext").html("");
            });

            if (picture.HasRated)
            {
                $("#" + guid + "_rankingc").addClass("post");
                $("#" + guid + "_rankingtext").html("");
            }
            else
            {
                $("#" + guid + "_rankingl").hide();
                $("#" + guid + "_rankingc").show();
                $("#" + guid + "_rankingc").removeClass("post");
                $("#" + guid + "_rankingtext").html("");
            }
        };

        var remove = function(p1)
        {
            var guid = p1;
            localcache[guid] = {};
            current = null;
            $("#" + guid + "_ranking").unbind();
            $("#" + guid + "_ranking a").unbind();
            $("#" + guid + "_rankingc").addClass("post");
            $("#" + guid + "_rankingtext").html("");

            $("#" + guid + "_rankingl").hide();
            $("#" + guid + "_rankingc").show();
        };

        var setValue = function(p1, p2)
        {
            var guid = p1;
            var value = p2;
            value = Math.min(Math.max(value, 0), 5);
            var scoreWidth = (value * 41);
            $("#" + guid + "_rankings").css({ width: 0 }).animate({ width: scoreWidth, duration: 200 });
            //$("#" + guid + "_rankings").css("width", w);
        };

        return {
            Add: add,
            Remove: remove,
            SetValue: setValue
        };
    } ();
})();
/*
(function()
{
	BSC.UI.Ranking = function()
	{
		var localcache = {};
		var current = null;
		var timer = null;

		var add = function(p1, p2, p3, p4)
		{
			var guid = p1;
			var callback = p2;
			var remove = p3;
			var value = p4;
			localcache[guid] = {};
			localcache[guid].data = {};
			localcache[guid].remove = (remove) ? true : false;
			localcache[guid].callback = callback;
			$("#" + guid + "_ranking").bind("mouseover", guid, BSC.UI.Ranking.RankingStart).bind("mouseout", guid, BSC.UI.Ranking.RankingStop);
			if (value)
				setValue(guid, value);

		};

		var remove = function(p1)
		{
			var guid = p1;
			localcache[guid] = {};
			current = null;
			$("#" + guid + "_ranking").unbind();
		};

		var rankingStart = function(e)
		{
			var el = BSC.E.GetTarget(e);
			var t = (el.id).split("_");
			var guid = e.data;
			localcache[guid].data = { w: parseInt($("#" + guid + "_RankingCurrent").css("width")) };

			$("#" + guid + "_ranking").bind("mousemove", guid, BSC.UI.Ranking.RankingMousemove).bind("click", guid, BSC.UI.Ranking.RankingMouseclick);
			$("#" + guid + "_value").css("color", "#5b6065");
		};

		var rankingStop = function(e)
		{
			var guid = e.data;
			var d = localcache[guid].data;
			timer = setTimeout(function() { $("#" + guid + "_RankingCurrent").css("width", d.w); }, 300);
			
			$("#" + guid + "_ranking").unbind("mousemove", BSC.UI.Ranking.RankingMousemove).unbind("click", BSC.UI.Ranking.RankingMouseclick);

			tmp = d.w - 6
			point = ((tmp / 2) / 10);
			point = Math.min(point, 10);
			$("#" + guid + "_value").val(point.toFixed(2));


			var pp = Math.floor(point); pp = Math.max(0, Math.min(pp, 9));
			var colors = ["#9c1602", "#b42e04", "#cd470b", "#e66614", "#fc8828", "#3d5b02", "#4e7802", "#5e8e09", "#73a413", "#7faf24"];
			FontColor = colors[pp];

			$("#" + guid + "_value").css("color", FontColor);
		};

		var rankingMousemove = function(e)
		{
			var guid = e.data;
			var w = BSC.UI.Ws.Get(guid);
			var tmp = (e.pageX - w.left) - 124;
			tmp = Math.max(6, Math.min(tmp, 207));
			$("#" + guid + "_RankingCurrent").css("width", tmp);
			tmp = tmp - 6
			point = (tmp / 20);
			point = Math.min(point, 10);
			$("#" + guid + "_value").val(point.toFixed(2));
			if (timer)
				clearTimeout(timer);
		};

		var rankingMouseclick = function(e)
		{
			var guid = e.data;
			var w = BSC.UI.Ws.Get(e.data);
			var tmp = (e.pageX - w.left) - 124;
			var value = $("#" + guid + "_value").getValue();
			if (localcache[guid] && localcache[guid].callback)
				localcache[guid].callback.apply(null, [guid, value]);
			if (localcache[guid] && localcache[guid].remove)
				BSC.UI.Ranking.Remove(guid);
		};

		var setValue = function(p1, p2)
		{
			var guid = p1;
			var value = p2;
			var w = (value * 20) + 6;
			$("#" + guid + "_RankingCurrent").css("width", w);
			$("#" + guid + "_value").val(value.toFixed(2));
		};

		return {
			Add: add,
			Remove: remove,
			RankingStart: rankingStart,
			RankingStop: rankingStop,
			RankingMousemove: rankingMousemove,
			RankingMouseclick: rankingMouseclick,
			SetValue: setValue
		};
	} ();
})();*/
