﻿/// <reference path="jquery-1.4.2.min.js" />
/// <reference path="netzkern.Wheel.js" />

HubHandler = function () {
    this.ItemList = [];
}

HubHandler.prototype = {
    RegisterItem: function (wheelItem) {
        if (wheelItem)
            hubHandler.ItemList[hubHandler.ItemList.length] = wheelItem;
    },

    InitializeWheel: function () {
        if (hubHandler.ItemList && hubHandler.ItemList.length > 0) {
            wheel.BeginBatch();

            var currentRegion = wheel.CreateRegion("");
            for (var i = 0; i < hubHandler.ItemList.length; i++) {
                wheel.AddItem(currentRegion, hubHandler.ItemList[i]);
            }

            wheel.CommitBatch();
        }
    },

    HandleItemRender: function (e) {
        if (e.ItemInfo.ItemType == "Default") {
            hubHandler.RenderDefaultItem(e);
        }
        else if (e.ItemInfo.ItemType == "ambassador") {
            hubHandler.RenderAmbassadorItem(e);
        }
        else if (e.ItemInfo.ItemType == "news") {
            hubHandler.RenderNewsItem(e);
        }
        else if (e.ItemInfo.ItemType == "press") {
            hubHandler.RenderPressItem(e);
        }
        else if (e.ItemInfo.ItemType == "event") {
            hubHandler.RenderEventItem(e);
        }
        else if (e.ItemInfo.ItemType == "blog post") {
            hubHandler.RenderBlogItem(e);
        }
        else if (e.ItemInfo.ItemType == "webhubvideo") {
            hubHandler.RenderVideoItem(e);
        }
        else if (e.ItemInfo.ItemType == "webhubbanner") {
            hubHandler.RenderBannerItem(e);
        }
        else if (e.ItemInfo.ItemType == "smallbanner") {
            hubHandler.RenderSmallBannerItem(e);
        }
        else {
            hubHandler.RenderDefaultItem(e);
        }
    },

    RenderEventItem: function (e) { },

    //Start Ambassadoritem
    RenderAmbassadorItem: function (e) {
        var contentItem = $j("<div />");
        contentItem.css({
            "height": e.ItemDimensions.Height + "px",
            "margin-top": "10px",
            "text-align": "left",
            "background-image": "url('/Images/Layout/AmbassadorBubble.png')",
            "background-repeat": "no-repeat",
            "background-position": "0px 33px"
        });
        contentItem.attr("ContextId", e.ItemInfo.Context.Id);

        var headText = $j("<div>" + e.ItemInfo.Context.TypeText + "<br />" + e.ItemInfo.Context.DateString + "</div>");
        headText.css({
            "position": "absolute",
            "top": "13px",
            "left": "9px",
            "font-size": "11px",
            "color": "#999999"
        });
        contentItem.append(headText);


        var headText = $j("<div>" + e.ItemInfo.Context.Headline + "</div>");
        headText.css({
            "color": "#DE0004",
            "font-size": "14px",
            "font-weight": "bolder",
            "padding": "42px 10px 0px 10px"
        });
        contentItem.append(headText);

        var contentText = $j("<div>" + e.ItemInfo.Context.Text + "</div>");
        contentText.css({
            "color": "#666666",
            "font-size": "12px",
            "padding": "6px 10px 0px 10px"
        });
        contentItem.append(contentText);


        if (e.ItemInfo.Context.Image) {
            var headImage = $j("<img src=\"" + e.ItemInfo.Context.Image + "\" alt=\"\" style=\"position:absolute; bottom:0px; right:0px;\" />");
            contentItem.append(headImage);
        }

        //        contentItem.click(function () {
        //            if (!wheel.HasBeenMovedWithLastClick) {
        //                //                alert($j(this).attr("ContextId"));
        //                window.location = "/RedirectPage.aspx?RedirectTo=" + $j(this).attr("ContextId").toString();
        //            }
        //        });

        e.jItem.html(contentItem);
    },

    //Ambassadoritem End

    //Start Pressitem

    RenderPressItem: function (e) {
        var contentItem = $j("<div />");
        contentItem.css({
            "height": e.ItemDimensions.Height + "px",
            "margin-top": "10px",
            "text-align": "left",
            "background-image": "url('/Images/Layout/HubBubbleTop.png')",
            "background-repeat": "no-repeat",
            "background-position": "0px 33px"
        });
        contentItem.attr("ContextId", e.ItemInfo.Context.Id);

        var headImage = $j("<div style='background-image:url(/Images/Webhub/news.png);width:30px;height:30px;'></div>");
        headImage.css({
            "position": "absolute",
            "top": "13px",
            "left": "9px",
            "font-size": "11px",
            "color": "#000000"
        });
        contentItem.append(headImage);

        var headText = $j("<div>" + e.ItemInfo.Context.TypeText + "<br />" + e.ItemInfo.Context.DateString + "</div>");
        headText.css({
            "position": "absolute",
            "top": "13px",
            "left": "42px",
            "font-size": "11px",
            "color": "#000000"
        });
        contentItem.append(headText);


        var headText = $j("<div>" + e.ItemInfo.Context.Headline + "</div>");
        headText.css({
            "color": "#DE0004",
            "font-size": "14px",
            "font-weight": "bolder",
            "padding": "48px 10px 0px 10px"
        });
        contentItem.append(headText);

        var contentText = $j("<div>" + e.ItemInfo.Context.Text + "</div>");
        contentText.css({
            "color": "#666666",
            "font-size": "12px",
            "padding": "6px 10px 0px 10px"
        });
        contentItem.append(contentText);

        contentItem.click(function () {
            if (!wheel.HasBeenMovedWithLastClick) {
                //                alert($j(this).attr("ContextId"));
                //window.location = "/RedirectPage.aspx?RedirectTo=" + $j(this).attr("ContextId").toString();
                window.location = e.ItemInfo.Context.ExternLink;
            }
        });

        e.jItem.html(contentItem);
    },

    //End Pressitem

    //Blogitem Start
    RenderBlogItem: function (e) {
        var contentItem = $j("<div />");
        contentItem.css({
            "height": e.ItemDimensions.Height + "px",
            "margin-top": "10px",
            "text-align": "left",
            "background-image": "url('/Images/Layout/blogbox.png')",
            "background-repeat": "no-repeat",
            "background-position": "0px 33px"
        });
        contentItem.attr("ContextId", e.ItemInfo.Context.Id);

        var headImage = $j("<div style='background-image:url(/Images/Webhub/3red.png);width:30px;height:30px;'></div>");
        headImage.css({
            "position": "absolute",
            "top": "13px",
            "left": "9px",
            "font-size": "11px",
            "color": "#000000"
        });
        contentItem.append(headImage);

        var headText = $j("<div>" + "3red - " + e.ItemInfo.Context.TypeText + "<br />" + e.ItemInfo.Context.DateString + "</div>");
        headText.css({
            "position": "absolute",
            "top": "13px",
            "left": "42px",
            "font-size": "11px",
            "color": "#000000"
        });
        contentItem.append(headText);

        if (e.ItemInfo.Context.Image) {
            var headImage = $j("<img src=\"" + e.ItemInfo.Context.Image + "?mw=190&as=1\" alt=\"\" style=\"position:relative; top:50px; left:12px;\" />");
            contentItem.append(headImage);
        }

        var headText = $j("<div>" + e.ItemInfo.Context.Headline + "</div>");
        headText.css({
            "color": "#DE0004",
            "font-size": "14px",
            "font-weight": "bolder",
            "padding": "52px 10px 0px 10px"
        });
        contentItem.append(headText);

        var contentImage = $j("");
        contentImage.css({
            "": "",
            "": ""
        });

        var contentText = $j("<div>" + e.ItemInfo.Context.Text + "</div>");
        contentText.css({
            "color": "#666666",
            "font-size": "12px",
            "padding": "6px 10px 0px 10px"
        });
        contentItem.append(contentText);

        contentItem.click(function () {
            if (!wheel.HasBeenMovedWithLastClick) {
                //                alert($j(this).attr("ContextId"));
                //window.location = "/RedirectPage.aspx?RedirectTo=" + $j(this).attr("ContextId").toString();
                window.location = e.ItemInfo.Context.ExternLink;
            }
        });

        e.jItem.html(contentItem);
    },

    //Blogitem End

    //Start Newsitem

    RenderNewsItem: function (e) {
        var contentItem = $j("<div />");
        contentItem.css({
            "height": e.ItemDimensions.Height + "px",
            "margin-top": "10px",
            "text-align": "left",
            "background-image": "url('/Images/Layout/HubBubbleTop.png')",
            "background-repeat": "no-repeat",
            "background-position": "0px 33px"
        });
        contentItem.attr("ContextId", e.ItemInfo.Context.Id);

        var headImage = $j("<div style='background-image:url(/Images/Webhub/news.png);width:30px;height:30px;'></div>");
        headImage.css({
            "position": "absolute",
            "top": "13px",
            "left": "9px",
            "font-size": "11px",
            "color": "#000000"
        });
        contentItem.append(headImage);

        var headText = $j("<div>" + e.ItemInfo.Context.TypeText + "<br />" + e.ItemInfo.Context.DateString + "</div>");
        headText.css({
            "position": "absolute",
            "top": "13px",
            "left": "42px",
            "font-size": "11px",
            "color": "#000000"
        });
        contentItem.append(headText);

        if (e.ItemInfo.Context.Image) {
            var headImage = $j("<img src=\"" + e.ItemInfo.Context.Image + "?mw=190&as=1\" alt=\"\" style=\"position:relative; top:50px; left:12px;\" />");
            contentItem.append(headImage);
            contentItem.css("background-image", "url('/Images/Layout/blogbox.png')");
        }
        else {
            contentItem.css("background-image", "url('/Images/Layout/HubBubbleTop.png')");
        }

        var headText = $j("<div>" + e.ItemInfo.Context.Headline + "</div>");
        headText.css({
            "color": "#DE0004",
            "font-size": "14px",
            "font-weight": "bolder",
            "padding": "52px 10px 0px 10px"
        });
        contentItem.append(headText);

        var contentText = $j("<div>" + e.ItemInfo.Context.Text + "</div>");
        contentText.css({
            "color": "#666666",
            "font-size": "12px",
            "padding": "6px 10px 0px 10px"
        });
        contentItem.append(contentText);

        contentItem.click(function () {
            if (!wheel.HasBeenMovedWithLastClick) {
                //                alert($j(this).attr("ContextId"));
                //window.location = "/RedirectPage.aspx?RedirectTo=" + $j(this).attr("ContextId").toString();
                window.location = e.ItemInfo.Context.ExternLink;
            }
        });

        e.jItem.html(contentItem);
    },

    //End Newsitem

    //Start Videoitem

    RenderVideoItem: function (e) {
        var contentItem = $j("<div />");
        contentItem.css({
            "height": e.ItemDimensions.Height + "px",
            "margin-top": "10px",
            "text-align": "left",
            "background-image": "url('/Images/Layout/blogbox.png')",
            "background-repeat": "no-repeat",
            "background-position": "0px 33px"
        });
        contentItem.attr("ContextId", e.ItemInfo.Context.Id);

        var headImage = $j("<div style='background-image:url(/Images/Webhub/youtube.png);width:30px;height:30px;'></div>");
        headImage.css({
            "position": "absolute",
            "top": "13px",
            "left": "9px",
            "font-size": "11px",
            "color": "#000000"
        });
        contentItem.append(headImage);

        var headText = $j("<div>" + e.ItemInfo.Context.TypeText + "<br />" + e.ItemInfo.Context.DateString + "</div>");
        headText.css({
            "position": "absolute",
            "top": "13px",
            "left": "42px",
            "font-size": "11px",
            "color": "#000000"
        });
        contentItem.append(headText);

        var headImage = $j("<img src=\"" + e.ItemInfo.Context.Image + "?mw=190&as=0\" alt=\"\" style=\"position:relative; top:50px; left:12px;\" />");
        contentItem.append(headImage);

        var headText = $j("<div>" + e.ItemInfo.Context.Headline + "</div>");
        headText.css({
            "color": "#DE0004",
            "font-size": "14px",
            "font-weight": "bolder",
            "padding": "52px 10px 0px 10px"
        });
        contentItem.append(headText);

        var contentText = $j("<div>" + e.ItemInfo.Context.Text + "</div>");
        contentText.css({
            "color": "#666666",
            "font-size": "12px",
            "padding": "6px 10px 0px 10px"
        });
        contentItem.append(contentText);

        contentItem.click(function () {
            if (!wheel.HasBeenMovedWithLastClick) {
                //                alert($j(this).attr("ContextId"));
                //window.location = e.ItemInfo.Context.ExternLink;
                if (e.ItemInfo.Context.linkTarget == "_blank")
                    window.open(e.ItemInfo.Context.ExternLink);
                else
                    window.location = e.ItemInfo.Context.ExternLink;

            }
        });

        e.jItem.html(contentItem);
    },

    //End Videoitem

    //Start Event

    RenderEventItem: function (e) {
        var contentItem = $j("<div />");
        contentItem.css({
            "height": e.ItemDimensions.Height + "px",
            "margin-top": "10px",
            "text-align": "left",
            "background-image": "url('/Images/Layout/HubBubbleTop.png')",
            "background-repeat": "no-repeat",
            "background-position": "0px 33px"
        });
        contentItem.attr("ContextId", e.ItemInfo.Context.Id);

        var headImage = $j("<div style='background-image:url(/Images/Webhub/cal.png);width:30px;height:30px;'></div>");
        headImage.css({
            "position": "absolute",
            "top": "13px",
            "left": "9px",
            "font-size": "11px",
            "color": "#000000"
        });
        contentItem.append(headImage);

        var headText = $j("<div>" + e.ItemInfo.Context.TypeText + "<br />" + e.ItemInfo.Context.DateString + "</div>");
        headText.css({
            "position": "absolute",
            "top": "13px",
            "left": "42px",
            "font-size": "11px",
            "color": "#000000"
        });
        contentItem.append(headText);


        var headText = $j("<div>" + e.ItemInfo.Context.Headline + "</div>");
        headText.css({
            "color": "#DE0004",
            "font-size": "14px",
            "font-weight": "bolder",
            "padding": "48px 10px 0px 10px"
        });
        contentItem.append(headText);

        var contentText = $j("<div>" + e.ItemInfo.Context.Text + "</div>");
        contentText.css({
            "color": "#666666",
            "font-size": "12px",
            "padding": "6px 10px 0px 10px"
        });
        contentItem.append(contentText);

        contentItem.click(function () {
            if (!wheel.HasBeenMovedWithLastClick) {
                //                alert($j(this).attr("ContextId"));
                //window.location = "/RedirectPage.aspx?RedirectTo=" + $j(this).attr("ContextId").toString();
                window.location = e.ItemInfo.Context.ExternLink;
            }
        });

        e.jItem.html(contentItem);
    },

    //End Event

    //Start Banner

    RenderBannerItem: function (e) {
        var contentItem = $j("<div />");
        contentItem.css({
            "height": e.ItemDimensions.Height + "px",
            "margin-top": "10px",
            "text-align": "left",
            "background-image": "url('/Images/Layout/blogbox.png')",
            "background-repeat": "no-repeat",
            "background-position": "0px 33px"
        });
        contentItem.attr("ContextId", e.ItemInfo.Context.Id);

        var headImage = $j("<div style='background-image:url(/Images/Webhub/banner.png);width:30px;height:30px;'></div>");
        headImage.css({
            "position": "absolute",
            "top": "13px",
            "left": "9px",
            "font-size": "11px",
            "color": "#000000"
        });
        contentItem.append(headImage);

        var headText = $j("<div>" + e.ItemInfo.Context.TypeText + "<br />" + e.ItemInfo.Context.DateString + "</div>");
        headText.css({
            "position": "absolute",
            "top": "13px",
            "left": "42px",
            "font-size": "11px",
            "color": "#000000"
        });
        contentItem.append(headText);

        var headImage = $j("<img src=\"" + e.ItemInfo.Context.Image + "?mw=190&mh=285&as=1\" alt=\"\" style=\"position:relative; top:50px; left:12px;\" />");
        contentItem.append(headImage);

        if (e.ItemInfo.Context.ExternLink != "") {
            contentItem.click(function () {
                if (!wheel.HasBeenMovedWithLastClick) {
                    if (e.ItemInfo.Context.linktype == "media") {
                        if (e.ItemInfo.Context.linkTarget == "_blank")
                            window.open("/~/media" + e.ItemInfo.Context.ExternLink.replace("/sitecore/media library", ""));
                        else
                            window.location = "/~/media" + e.ItemInfo.Context.ExternLink.replace("/sitecore/media library", "");
                    }
                    else {
                        if (e.ItemInfo.Context.linkTarget == "_blank")
                            window.open(e.ItemInfo.Context.ExternLink);
                        else
                            window.location = e.ItemInfo.Context.ExternLink;
                    }
                }
            }
            );
        }
        e.jItem.html(contentItem);
    },

    //End Banner

    //Start Small Banner

    RenderSmallBannerItem: function (e) {
        var contentItem = $j("<div />");
        contentItem.css({
            "height": e.ItemDimensions.Height + "px",
            "margin-top": "10px",
            "text-align": "left",
            "background-image": "url('/Images/Layout/HubBubbleTop.png')",
            "background-repeat": "no-repeat",
            "background-position": "0px 33px"
        });
        contentItem.attr("ContextId", e.ItemInfo.Context.Id);

        var headImage = $j("<div style='background-image:url(/Images/Webhub/banner.png);width:30px;height:30px;'></div>");
        headImage.css({
            "position": "absolute",
            "top": "13px",
            "left": "9px",
            "font-size": "11px",
            "color": "#000000"
        });
        contentItem.append(headImage);

        var headText = $j("<div>" + e.ItemInfo.Context.TypeText + "<br />" + e.ItemInfo.Context.DateString + "</div>");
        headText.css({
            "position": "absolute",
            "top": "13px",
            "left": "42px",
            "font-size": "11px",
            "color": "#000000"
        });
        contentItem.append(headText);

        var headImage = $j("<img src=\"" + e.ItemInfo.Context.Image + "?mw=190&mh=100&as=1\" alt=\"\" style=\"position:relative; top:50px; left:12px;\" />");
        contentItem.append(headImage);

        if (e.ItemInfo.Context.ExternLink != "") {
            contentItem.click(function () {
                if (!wheel.HasBeenMovedWithLastClick) {
                    if (e.ItemInfo.Context.linktype == "media") {
                        if (e.ItemInfo.Context.linkTarget == "_blank")
                            window.open("/~/media" + e.ItemInfo.Context.ExternLink.replace("/sitecore/media library", ""));
                        else
                            window.location = "/~/media" + e.ItemInfo.Context.ExternLink.replace("/sitecore/media library", "");
                    }
                    else {
                        if (e.ItemInfo.Context.linkTarget == "_blank")
                            window.open(e.ItemInfo.Context.ExternLink);
                        else
                            window.location = e.ItemInfo.Context.ExternLink;
                    }
                }
            }
            );
        }
        e.jItem.html(contentItem);
    },

    //End Small Banner


    RenderDefaultItem: function (e) {
        var contentItem = $j("<div />");
        contentItem.css({
            "height": e.ItemDimensions.Height + "px",
            "margin-top": "10px"
        });

        var upperPartOfBubble = $j("<div />");
        upperPartOfBubble.css({
            "background-image": "url('/Images/Layout/HubBubbleTop.png')",
            "background-repeat": "no-repeat",
            "background-position": "0px 25px",
            "height": "47px",
            "text-align": "left"
        });

        var partnerIcon = $j("<img src=\"/Images/Webhub/webhubIcon_world.png\" alt=\"\" />");
        partnerIcon.css({
            "position": "absolute",
            "top": "9px",
            "left": "30px"
        });
        upperPartOfBubble.append(partnerIcon);

        var partnerName = $j("<div>" + e.ItemInfo.Context.TypeText + "<br /></div>");
        partnerName.css({
            "position": "absolute",
            "top": "13px",
            "left": "64px",
            "font-size": "11px",
            "color": "#333333"
        });
        upperPartOfBubble.append(partnerName);

        var lowerPartOfBubble = $j("<div />");
        lowerPartOfBubble.css({
            "background-image": "url('/Images/Layout/HubBubbleTop.png')",
            "background-repeat": "no-repeat",
            "background-position": "0px -25px",
            "background-color": "#F7F7F7",
            "height": (e.ItemDimensions.Height - 50) + "px",
            "text-align": "left"
        });

        if (e.ItemInfo.Context.Image) {
            var headImage = $j("<img src=\"" + e.ItemInfo.Context.Image + "\" alt=\"\" style=\"margin:0px 0px 0px 10px;\" />");
            lowerPartOfBubble.append(headImage);
        }

        var headText = $j("<div>" + e.ItemInfo.Context.Headline + "</div>");
        headText.css({
            "color": "#DE0004",
            "font-size": "14px",
            "font-weight": "bolder",
            "padding": "6px 10px 0px 10px"
        });
        lowerPartOfBubble.append(headText);

        var contentText = $j("<div>" + e.ItemInfo.Context.Text + "</div>");
        contentText.css({
            "color": "#666666",
            "font-size": "12px",
            "padding": "6px 10px 0px 10px"
        });
        lowerPartOfBubble.append(contentText);



        contentItem.append(upperPartOfBubble);
        contentItem.append(lowerPartOfBubble);

        if (e.ItemInfo.Context.ExternLink != "") {
            contentItem.click(function () {
                if (!wheel.HasBeenMovedWithLastClick) {
                    if (e.ItemInfo.Context.linktype == "media") {
                        if (e.ItemInfo.Context.linkTarget == "_blank")
                            window.open("/~/media" + e.ItemInfo.Context.ExternLink.replace("/sitecore/media library", ""));
                        else
                            window.location = "/~/media" + e.ItemInfo.Context.ExternLink.replace("/sitecore/media library", "");
                    }
                    else {
                        if (e.ItemInfo.Context.linkTarget == "_blank")
                            window.open(e.ItemInfo.Context.ExternLink);
                        else
                            window.location = e.ItemInfo.Context.ExternLink;
                    }
                }
            }
            );
        }

        e.jItem.html(contentItem);
    }
}

var hubHandler = new HubHandler();

$j(document).ready(function () {
    wheel.MethodToCallForFillingItem = hubHandler.HandleItemRender;

    hubHandler.InitializeWheel();
});
