Ext.override(Ext.dd.DDProxy, {
    startDrag: function (b, d) {
        var a = Ext.get(this.getDragEl());
        var c = Ext.get(this.getEl());
        this.originContainer = c.findParentNode(".widgetContainer", 5, true).id;
        this.constrainTo("widgets");
        Ext.get("emptySlot").alignTo(c.id, "tl-tl").show();
        a.applyStyles({
            border: "",
            "z-index": 2000
        });
        a.update(c.dom.innerHTML);
        a.addClass(c.dom.className + " dd-proxy");
        a.addClass(" ext-el-mask")
    }, onDragOver: function (f, b) {
        if (("widget1Container" === b || "widget2Container" === b || "widget3Container" === b) && (!this.lastTarget || b != this.lastTarget.id)) {
            var d = Ext.get(b);
            var c = Ext.select("#" + b + " .siteWidget");
            var a = Ext.select("#" + this.originContainer + " .siteWidget");
            this.lastTarget = d;
            Ext.get(this.originContainer).appendChild(c);
            Ext.get(b).appendChild(a);
            this.originContainer = b;
            Ext.get("emptySlot").alignTo(b, "tl-tl").show();
            d.addClass("dd-over")
        }
    }, endDrag: function () {
        var a = Ext.get(this.getDragEl());
        var e = Ext.get(this.getEl());
        Ext.get("emptySlot").hide();
        Ext.get("widget1Container").removeClass("dd-over");
        Ext.get("widget2Container").removeClass("dd-over");
        Ext.get("widget3Container").removeClass("dd-over");
        a.update("");
        this.originConatiner = null;
        var d = Ext.query("#widget1Container .dashboardWidget")[0].id;
        var c = Ext.query("#widget2Container .dashboardWidget")[0].id;
        var b = Ext.query("#widget3Container .dashboardWidget")[0].id;
        var f = new Array(d, c, b);
        MGNT.infoCenter.common.update_widgets_ajax(f, true)
    }
});
MGNT.infoCenter = {};
MGNT.infoCenter.common = function () {
    var d;
    var b;
    var j = [];
    var i;
    var l = [];
    var f, e, c;
    var m = 5 * 60 * 1000;
    var a = 10000;
    var k = 0;
    var h = {
        run: function () {
            MGNT.infoCenter.common.update_earnings()
        }, interval: a
    };
    var g = function (o, n) {
        var o = Ext.get(o);
        if (n) {
            o.child("div.tools").show()
        } else {
            o.child("div.tools").hide()
        }
    };
    return {
        init: function (r) {
            b = r.all_widgets;
            if (r.highlight_row_id) {
                var p = "row_" + r.highlight_row_id + "_a";
                var q = Ext.get(p);
                if (q) {
                    q.highlight("ffff9c", {
                        duration: 2
                    })
                }
            }
            if (Ext.isIE6) {
                Ext.select("tr.tableRow").on({
                    mouseover: function (u, s) {
                        if (!u.within(this, true)) {
                            g(this, true);
                            Ext.get(this).addClass("tableRowHover")
                        }
                    }, mouseout: function (u, s) {
                        if (!u.within(this, true)) {
                            g(this, false);
                            Ext.get(this).removeClass("tableRowHover")
                        }
                    }
                })
            }
            var o = r.datePickerOptions;
            if (r.start_date && r.end_date) {
                o.values = {
                    start_date: r.start_date.replace(/\//g, "-"),
                    end_date: r.end_date.replace(/\//g, "-")
                }
            } else if ( ! r.end_date )
			{
				o.values = {
                    start_date: r.start_date.replace(/\//g, "-")
                }
			}
			var n;
			if ( o.mode == "single" )
			{
				n = new MGNT.ext.DateSingle(o);
				n.addEvents( {"dateRangeChange":true} );
				n.addListener( "dateRangeChange", this.dateSingleChangeHandler, this );
				MGNT.infoCenter.common.dateSingle.component = n;
			} else if ( o.mode == "range" )
			{
				n = new MGNT.ext.DateRange(o);
				n.addEvents( {"dateRangeChange":true} );
				n.addListener( "dateRangeChange", this.dateRangeChangeHandler, this );
				MGNT.infoCenter.common.dateRange.component = n;
			}
        }, customize_handler: function (B, E, r, D, w) {
            B.stopEvent();
            f.dd.lock();
            e.dd.lock();
            c.dd.lock();
            if (w == "earnings") {
                Ext.TaskMgr.stopAll()
            }
            if (l.length > 0) {
                this.close_widget_handler(B, E, r, l[0], l[1])
            }
            l = [D, w];
            i = w;
            var p = Ext.get(D).findParentNode(".widgetContainer", 2, true).id;
            Ext.get(p.substr(0, 7) + "Mask").alignTo(p, "tl-tl").show();
            var v = '<div id="{id}" class="{className}"></div>';
            var y = new Ext.Template(v);
            y.compile();
            y.append(p, {
                id: "left_arrow",
                className: "widgetArrow left"
            });
            y.append(p, {
                id: "right_arrow",
                className: "widgetArrow right"
            });
            var q = '<span id="{id}" class="{className}"><input id="{id2}" value="{html}"></input></span>';
            var C = new Ext.Template(q);
            C.compile();
            C.append(p, {
                id: "select_widget",
                id2: "select_widget_button",
                className: "mbButton",
                html: _("OK")
            });
            var n = [w];
            for (var s = 0; s < b.length; s++) {
                if (j.indexOf(b[s]) == -1) {
                    n.push(b[s])
                }
            }
            var x = Ext.DomHelper;
            var A = x.append(p, {
                tag: "ul",
                id: "widgetDots",
                cls: "widgetDots"
            });
            var z = x.createTemplate({
                tag: "li",
                cls: "{1}",
                id: "{0}Dot",
                html: ""
            });
            for (var u = 0; u < n.length; u++) {
                if (u == 0) {
                    z.append(A, [n[u], "selected"])
                } else {
                    z.append(A, [n[u], ""])
                }
            }
            if (Ext.isIE6) {
                Ext.get("left_arrow").addClass("dummyClass");
                Ext.get("right_arrow").addClass("dummyClass");
                Ext.get("select_widget").addClass("dummyClass");
                Ext.get("widgetDots").addClass("dummyClass")
            }
            Ext.select("#left_arrow").on("click", this.switch_widget_handler.createDelegate(this, ["left", D, n], true));
            Ext.select("#right_arrow").on("click", this.switch_widget_handler.createDelegate(this, ["right", D, n], true));
            Ext.select("#select_widget").on("click", this.close_widget_handler.createDelegate(this, [D, w], true))
        }, switch_widget_handler: function (s, x, q, u, w, p) {
            Ext.select("#" + w + " .widgetSpinner").show();
            var n = p.indexOf(i);
            var v;
            if (u == "left") {
                if (n == 0) {
                    v = p.length - 1
                } else {
                    v = n - 1
                }
            } else {
                if (n == p.length - 1) {
                    v = 0
                } else {
                    v = n + 1
                }
            }
            var r = p[v];
            MGNT.infoCenter.common.get_widget(r, w, "template");
            Ext.select("#" + i + "Dot").removeClass("selected");
            Ext.select("#" + r + "Dot").addClass("selected");
            i = r
        }, close_widget_handler: function (s, n, u, r, q) {
            f.dd.unlock();
            e.dd.unlock();
            c.dd.unlock();
            j[j.indexOf(q)] = i;
            if (i == "geo") {
                Ext.select("#GeoStatsWidget .timeLinks").on("click", this.geo_link_handler.createDelegate(this, [r], true))
            } else {
                if (i == "earnings") {
                    Ext.TaskMgr.start(h)
                }
            }
            switch (r) {
            case "widget1":
                Ext.get(r).dd.setHandleElId(i + "Header");
                break;
            case "widget2":
                Ext.get(r).dd.setHandleElId(i + "Header");
                break;
            case "widget3":
                Ext.get(r).dd.setHandleElId(i + "Header");
                break
            }
            MGNT.infoCenter.common.update_widgets_ajax(j, false);
            Ext.get("left_arrow").remove();
            Ext.get("right_arrow").remove();
            Ext.get("select_widget").remove();
            Ext.get("widgetDots").remove();
            var p = Ext.get(r).findParentNode(".widgetContainer", 2, true).id;
            Ext.get(p.substr(0, 7) + "Mask").hide();
            l = [];
            MGNT.helpTip.enableForElement(Ext.get(i + "Help"))
        }, geo_link_handler: function (s, n, u, r) {
            s.stopEvent();
            var q = null;
            var p = (n.className).replace(/^\s*|\s*$/g, "");
            switch (p) {
            case "geoAllTime":
                q = "AllTime";
                break;
            case "geo30days":
                q = "30days";
                break;
            case "geo90days":
                q = "90days";
                break
            }
            if (q && q != d) {
                d = q;
                Ext.select(".timeLinks .currentLink").removeClass("currentLink");
                MGNT.infoCenter.common.get_widget("geo", r, "data", {
                    time_dimension: q
                })
            }
        }, init_dragndrop: function (p) {
            var q = new Ext.dd.DropZone("widget1Container", {
                ddGroup: "group"
            });
            var o = new Ext.dd.DropZone("widget2Container", {
                ddGroup: "group"
            });
            var n = new Ext.dd.DropZone("widget3Container", {
                ddGroup: "group"
            });
            f = Ext.get("widget1");
            f.dd = new Ext.dd.DDProxy("widget1", "group");
            f.dd.setHandleElId(p[0] + "Header");
            e = Ext.get("widget2");
            e.dd = new Ext.dd.DDProxy("widget2", "group");
            e.dd.setHandleElId(p[1] + "Header");
            c = Ext.get("widget3");
            c.dd = new Ext.dd.DDProxy("widget3", "group");
            c.dd.setHandleElId(p[2] + "Header")
        }, toggle_hovers: function (p, n) {
            var o = Ext.get(p);
            if (n) {
                o.child(".helpTip").show();
                o.child(".moreInsight").show();
                o.child(".customizeWidget").show()
            } else {
                o.child(".helpTip").hide();
                o.child(".moreInsight").hide();
                o.child(".customizeWidget").hide()
            }
        }, dateSingleChangeHandler : function(scope, param) {
			var startDate = param.start_date;
			var datePicker = MGNT.infoCenter.common.dateSingle;
			curStartDay = startDate.format('d');
			curStartMonth = startDate.format('m');
			curStartYear = startDate.format('Y');
			if ( datePicker.startDaySel )
			{
				datePicker.startDaySel.value = curStartDay;
			}
			if ( datePicker.startMonthSel )
			{
				datePicker.startMonthSel.value = curStartMonth;
			}
			if ( datePicker.startYearSel )
			{
				datePicker.startYearSel.value = curStartYear;
			}
			
		}, dateRangeChangeHandler: function(scope, param) {
			//console.log( scope );
			//console.log( param );
			var startDate = param.start_date;
			var endDate = param.end_date;
			var dateRange = MGNT.infoCenter.common.dateRange;
			dateRange.startDateInput.set({value:startDate.format('m/d/Y')});
			dateRange.endDateInput.set({value:endDate.format('m/d/Y')});
			
		}
    }
}();

MGNT.infoCenter.common.sortInfo = {
  sortColumn: 0,
  sortColumnType: -1
}

MGNT.infoCenter.common.scrollInfo = {
	currentPosY: 0,
	toResultsState: false
}

MGNT.infoCenter.common.dateSingle = {
  component:null,
  enabled: false,
  
  startDaySel:null,
	startMonthSel:null,
	startYearSel:null,
  
  startDay:'',
	startMonth:'',
	startYear:''
  
};
MGNT.infoCenter.common.dateRange = {
	component:null,
	firstRender:true,
	enabled:false,
	
	startDateInput:null,
	endDateInput:null,
	
	startDaySel:null,
	startMonthSel:null,
	startYearSel:null,
	endDaySel:null,
	endMonthSel:null,
	endYearSel:null,
	
	startDay:'',
	startMonth:'',
	startYear:'',
	endDay:'',
	endMonth:'',
	endYear:'',
	
	firstClickedCal:null,
	secondClickedCal:null,
	startDateSelection:null,
	endDateSelection:null,
	
	affectedDateField:null
  
	
};
