﻿

var gimao = {
    jQueyUrl: "http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js",
    gimaoCssUrl: "css/widget.css",
    gimaoWinContentUrl: "default.aspx",
    timer: null,
    isFirstTime: true,
    socialBase: "",
    widgetBase: "",
    selectedFolder: "",
    selectedInstance: "",
    selectedSocialBase: "",
    rssLink: "",
    selectedRssLink: "",
    windowMinHeight: 640,

    //INSTALL WIDGET
    //*******************************************************
    Init: function() {
        this.widgetBase = document.getElementById("gimao_src").getAttribute("src").replace("js/widget.js", "");
        this.AddEvent(window, "load", function() { gimao.Install() });
    },
    Install: function() {

        if (!this.IsJQueryExist()) {
            this.ImportScript(this.jQueyUrl, "myJQuery");
        }

        var cssUrl = this.widgetBase + this.gimaoCssUrl;
        this.ImportStyle(cssUrl, "myGimaoCss");
        this.timer = setInterval("gimao.CheckInstallStatus()", 2000);

    },
    IsInstalled: function() {
        return ($(".gimao_sidebutton").length > 0);
    },
    IsJQueryExist: function() {
        return (typeof (jQuery) == "function");
        //return ((typeof (jQuery) == "function") && (typeof (jQuery.noop) == "function")); // checks for jQuery version, later than or equal to 1.4
    },
    ImportScript: function(url, id) {
        var item = document.createElement("script");
        item.src = url;
        item.type = "text/javascript";
        item.defer = true;
        item.id = id;
        var head = document.getElementsByTagName("head").item(0);
        if (head)
            head.appendChild(item);
        else
            document.body.appendChild(item);
    },
    ImportStyle: function(url, id) {

        var item = document.createElement("link");
        item.href = url;
        item.type = "text/css";
        item.rel = "stylesheet";
        item.id = id;
        var head = document.getElementsByTagName("head").item(0);
        if (head)
            head.appendChild(item);
        else
            document.body.appendChild(item);
    },
    AddEvent: function(obj, evt, func) {
        if (document.addEventListener)
            obj.addEventListener(evt, func, false);
        else if (document.attachEvent)
            obj.attachEvent("on" + evt, func);
        else
            eval(obj + ".on" + evt + "=" + func);
    },
    CheckInstallStatus: function() {
        if (this.IsJQueryExist()) {
            clearInterval(this.timer);
            this.OnDocumentReady();
        }
    },

    //WIDGET METHODS
    //*******************************************************
    OnDocumentReady: function() {


        if (!this.IsInstalled()) {

            //jQuery.noConflict();


            this.AddSideButton();

            this.InitInlineLinks();

            //this.WindowShow();

        }
    },
    InitInlineLinks: function() {

        $("a.GimaoFolderLink").each(function(index) {
            var item = $(this);

            item.attr("onclick", "");

            item.unbind("click").click(function() {
                return gimao.WindowShowWithSelection(item.attr("sb"), item.attr("code"), "f");
            });
        });
        $("a.GimaoInstanceLink").each(function(index) {
            var item = $(this);

            item.attr("onclick", "");

            item.unbind("click").click(function() {
                return gimao.WindowShowWithSelection(item.attr("sb"), item.attr("code"), "i");
            });
        });
        $("a.GimaoRssLink").each(function(index) {
            var item = $(this);

            item.attr("onclick", "");

            item.unbind("click").click(function() {
                return gimao.WindowShowWithSelection("", item.attr("rsslink"), "rss");
            });
        });

    },
    AddSideButton: function() {

        var item = document.createElement("div");
        item.className = "gimao_sidebutton";
        document.body.appendChild(item);

        item = document.createElement("div");
        item.className = "gimao_window_cover";
        document.body.appendChild(item);

        item = document.createElement("div");
        item.className = "gimao_window";
        item.innerHTML = "<div class='gimao_window_close'></div><div class='gimao_window_reload'></div><div class='gimao_window_loader'></div><iframe class='gimao_window_frame' src='about:blank' frameborder='0' scrolling='no'>"
        document.body.appendChild(item);

        $(".gimao_sidebutton").attr("top", $(".gimao_sidebutton").position().top);
        //$(".gimao_window").attr("top", $(".gimao_window").position().top);





        if ((this.socialBase) || (this.rssLink)) {
            var btn = $(".gimao_sidebutton");
            if (btn && btn.length > 0) {
                btn.show();
                btn.animate({ backgroundPosition: "-4px" }, "slow", function() {

                    $(window).scroll(function() {

                        var top = parseInt($(".gimao_sidebutton").attr("top")) + $(window).scrollTop();
                        //$(".gimao_sidebutton").css("top", top );
                        $(".gimao_sidebutton").stop().animate({ top: top + "px" }, 500, null);

                        top = ($(".gimao_window").attr("top"));
                        if (top)
                            top = parseInt(top) + $(window).scrollTop();
                        else
                            top = 0;

                        $(".gimao_window").stop().animate({ top: top + "px" }, 500, null)
                    });

                });
                btn.mouseover(function() {
                    //$(this).addClass("over");
                    $(this).stop().animate({ backgroundPosition: "0px" }, 200, null);
                }).mouseout(function() {
                    //$(this).removeClass("over");
                    $(this).stop().animate({ backgroundPosition: "-4px" }, 200, null);
                }).click(function() {
                    gimao.WindowShow();
                })
            }
        }
    },
    WindowShowWithSelection: function(sbGuid, itemGuid, itemType, item) {

        //this.socialBase = sbGuid;
        if (sbGuid)
            this.selectedSocialBase = sbGuid;

        if (itemType == "f") {

            if (this.selectedFolder != itemGuid) {
                this.isFirstTime = true;
                this.selectedFolder = itemGuid;
            }
            this.selectedRssLink = "";
        }
        else if (itemType == "i") {
            if (this.selectedInstance != itemGuid) {
                this.isFirstTime = true;
                this.selectedInstance = itemGuid;
            }
            this.selectedRssLink = "";
        }
        else if (itemType == "rss") {
            if (this.selectedRssLink != itemGuid) {
                this.isFirstTime = true;
                this.selectedRssLink = itemGuid;
            }
            this.selectedInstance = "";
            this.selectedFolder = "";
        }

        this.WindowOpen();

        return false;
    },
    WindowShow: function() {

        if (gimao.rssLink || gimao.selectedRssLink) {
            gimao.isFirstTime = (gimao.selectedRssLink != gimao.rssLink);
            gimao.selectedRssLink = gimao.rssLink;
        }
        else {
            if (gimao.selectedSocialBase)
                gimao.isFirstTime = (gimao.selectedSocialBase != gimao.socialBase);
        }

        //when pressing on the side button
        if (gimao.isFirstTime) {
            gimao.selectedSocialBase = "";
            gimao.selectedInstance = "";
            gimao.selectedFolder = "";
            gimao.selectedRssLink = "";
        }

        this.WindowOpen();
        return false;
    },
    WindowOpen: function() {


try
  {
     $.alerts._hide();
  }
catch(err)
  {}



var cover = $(".gimao_window_cover");
        var popup = $(".gimao_window");

        if (cover && cover.length > 0) {
            var w = $(window).width();
            var h = this.BrowserWindowHeight();
            var wBody = $(document).width();
            var hBody = $(document).height();


            $(window).resize(function() {

                var w = $(window).width();
                var h = this.BrowserWindowHeight();
                var wBody = $(document).width();
                var hBody = $(document).height();

                if (cover.is(":visible")) {
                    cover.css("width", wBody + "px").css("height", hBody + "px");
                }
                if (popup.is(":visible")) {
                    var x = (w - popup.width()) / 2;
                    var y = (h - popup.height()) / 2;
                    //popup.css("top", y + "px").css("left", x + "px");
                }
            });


            gimao.ToggleObjects(true);

            cover.css("opacity", 0).css("width", wBody + "px").css("height", hBody + "px").show();
            cover.animate({ opacity: 0.75 }, 200, function() {

                if (popup && popup.length > 0) {

                    if (h < gimao.windowMinHeight)
                        popup.addClass("mini");
                    else
                        popup.removeClass("mini");

                    var x = (w - popup.width()) / 2;
                    var y = ((h - popup.height()) / 2) + $(window).scrollTop();

                    popup.css("top", y + "px").css("left", x + "px");
                    popup.show();

                    $(".gimao_window").attr("top", $(".gimao_window").position().top - $(window).scrollTop());

                    if (gimao.isFirstTime) {
                        gimao.isFirstTime = false;

                        $(".gimao_window_close").unbind().click(function() {
                            gimao.WindowHide();
                        }).mouseover(function() {
                            $(this).addClass("over");
                        }).mouseout(function() {
                            $(this).removeClass("over");
                        });

                        $(".gimao_window_reload").unbind().click(function() {
                            gimao.WindowReload();
                        }).mouseover(function() {
                            $(this).addClass("over");
                        }).mouseout(function() {
                            $(this).removeClass("over");
                        });

                        gimao.LoaderShow(gimao.FrameSetUrl);

                        $(".gimao_window_frame").unbind().load(function() {
                            gimao.FrameOnLoad();
                        });
                    }
                }
            });
        }
    },
    WindowHide: function() {
        var popup = $(".gimao_window");
        var cover = $(".gimao_window_cover");
        if (popup && popup.length > 0 && cover && cover.length > 0) {
            popup.hide();
            //gimao.FrameHide();
            cover.animate({ opacity: 0.75 }, 200, function() {
                cover.hide();
                gimao.ToggleObjects(false);
            });
        }
    },
    WindowReload: function() {
        this.LoaderShow(this.FrameSetUrl());
    },
    LoaderShow: function(func) {
        var loader = $(".gimao_window_loader");
        if (loader && loader.length > 0) {
            loader.css("opacity", 0).show();
            loader.animate({ opacity: 1 }, 0, func);
        }
    },
    LoaderHide: function() {
        var loader = $(".gimao_window_loader");
        if (loader && loader.length > 0) {
            loader.animate({ opacity: 0 }, 500, function() {
                $(this).hide();
            });
        }
    },
    FrameShow: function() {
        $(".gimao_window_frame").show();
    },
    FrameHide: function() {
        $(".gimao_window_frame").hide();
    },
    FrameSetUrl: function() {
        var url = gimao.widgetBase + gimao.gimaoWinContentUrl;
        if (gimao.selectedRssLink) {
            var rss = gimao.selectedRssLink;
            url += "?rss=" + rss;
        }
        else {
            var sb = (gimao.selectedSocialBase) ? gimao.selectedSocialBase : gimao.socialBase;
            url += "?sb=" + sb;
            //gimao.rsslink = "";

            if (gimao.selectedInstance.length > 0) {
                url += "&i=" + gimao.selectedInstance;
            }
            else if (gimao.selectedFolder.length > 0) {
                url += "&f=" + gimao.selectedFolder;
                //gimao.selectedFolder = "";
            }
        }
        $(".gimao_window_frame").attr("src", "").attr("src", url);
    },
    FrameOnLoad: function() {
        gimao.LoaderHide();
        gimao.FrameShow();
    },
    ToggleObjects: function(hide) {

        $("object").each(function() {
            if (hide)
                $(this).css("visibility", "hidden");
            else
                $(this).css("visibility", "visible");
        });

        $("embed").each(function() {
            if (hide)
                $(this).css("visibility", "hidden");
            else
                $(this).css("visibility", "visible");
        });

    },
    BrowserWindowHeight: function() {
        var h;

        if (jQuery && jQuery.noop)
            h = $(window).height();
        else if (typeof (window.innerWidth) != "undefined") // browsers (mozilla/netscape/opera/IE7)
            h = window.innerHeight
        else
            if ((typeof (document.documentElement) != "undefined") &&
                (typeof document.documentElement.clientHeight != "undefined") &&
                (document.documentElement.clientHeight != 0)) // IE6 in standards compliant mode
            h = document.documentElement.clientHeight
        else // older versions of IE
            h = document.getElementsByTagName("body")[0].clientHeight

        return h;
    }
}

gimao.Init();

 
