(function() {
    var Dom = YAHOO.util.Dom,
        Event = YAHOO.util.Event,
        Overlay = YAHOO.widget.Overlay,
        Selector = YAHOO.util.Selector;

    Briefing.namespace('Corp');

    Briefing.Corp = function(){
// ------------------------------------------------------------------------- //
// Menu Code
// ------------------------------------------------------------------------- //
        function initEvents() {
            Event.addListener("aboutus_img", "mouseover", aboutUsOn);
            Event.addListener("aboutus_img", "mouseout", aboutUsOff);
            Event.addListener("services_img", "mouseover", servicesOn);
            Event.addListener("services_img", "mouseout", servicesOff);
            Event.addListener("partners_img", "mouseover", partnersOn);
            Event.addListener("partners_img", "mouseout", partnersOff);
            Event.addListener("news_img", "mouseover", newsOn);
            Event.addListener("news_img", "mouseout", newsOff);
            Event.addListener("contactus_img", "mouseover", contactUsOn);
            Event.addListener("contactus_img", "mouseout", contactUsOff);
            
            Event.addListener("lcenter_img", "mouseover", lcenterOn);
            Event.addListener("lcenter_img", "mouseout", lcenterOff);
            
            var loginOverlay = new Overlay("login.overlay", { visible:false, zIndex:99 });
            loginOverlay.render();

            Event.addListener("login_img", "mouseover", loginOn, loginOverlay, true);
            Event.addListener("login.overlay", "mouseout", loginOff, loginOverlay, false);

            Event.addListener("freetrials_img", "mouseover", freeTrialsOn);
            Event.addListener("freetrials_img", "mouseout", freeTrialsOff);
        }

        function aboutUsOn(e) {
            var elTarget = Event.getTarget(e);
            elTarget.src = "/Common/Images/CorporateWebsite/Menu/aboutus2.gif";
        }
        function aboutUsOff(e) {
            var elTarget = Event.getTarget(e);
            elTarget.src = "/Common/Images/CorporateWebsite/Menu/aboutus1.gif";
        }
        function servicesOn(e) {
            var elTarget = Event.getTarget(e);
            elTarget.src = "/Common/Images/CorporateWebsite/Menu/services2.gif";
        }
        function servicesOff(e) {
            var elTarget = Event.getTarget(e);
            elTarget.src = "/Common/Images/CorporateWebsite/Menu/services1.gif";
        }
        function partnersOn(e) {
            var elTarget = Event.getTarget(e);
            elTarget.src = "/Common/Images/CorporateWebsite/Menu/partners2.gif";
        }
        function partnersOff(e) {
            var elTarget = Event.getTarget(e);
            elTarget.src = "/Common/Images/CorporateWebsite/Menu/partners1.gif";
        }
        function newsOn(e) {
            var elTarget = Event.getTarget(e);
            elTarget.src = "/Common/Images/CorporateWebsite/Menu/news2.gif";
        }
        function newsOff(e) {
            var elTarget = Event.getTarget(e);
            elTarget.src = "/Common/Images/CorporateWebsite/Menu/news1.gif";
        }
         function lcenterOn(e) {
            var elTarget = Event.getTarget(e);
            elTarget.src = "/Common/Images/CorporateWebsite/Menu/lcenter2.gif";
        }
        function lcenterOff(e) {
            var elTarget = Event.getTarget(e);
            elTarget.src = "/Common/Images/CorporateWebsite/Menu/lcenter1.gif";
           
        }
         
        function contactUsOn(e) {
            var elTarget = Event.getTarget(e);
            elTarget.src = "/Common/Images/CorporateWebsite/Menu/contactus2.gif";
        }
        function contactUsOff(e) {
            var elTarget = Event.getTarget(e);
            elTarget.src = "/Common/Images/CorporateWebsite/Menu/contactus1.gif";
        }
        function loginOn(e, overlay) {
            var elTarget = Event.getTarget(e);
            overlay.cfg.setProperty("context", [elTarget, "tr", "tr"]);
            overlay.show();
            overlay.element.style.display = "block";
        }
        function loginOff(e, overlay) {
            var relatedTarget = Event.getRelatedTarget(e);
            if (parentIsEventContainer(relatedTarget)) {return;}
            overlay.hide();
        }
        function freeTrialsOn(e) {
            var elTarget = Event.getTarget(e);
            var imageName = getImageByPageVersion('FreeTrials2', '.png');
            elTarget.src = "/Common/Images/CorporateWebsite/Menu/" + imageName;
        }
        function freeTrialsOff(e) {
            var elTarget = Event.getTarget(e);
            var imageName = getImageByPageVersion('FreeTrials1', '.png');
            elTarget.src = "/Common/Images/CorporateWebsite/Menu/" + imageName;
        }
        
        function getImageByPageVersion(imageName, extension) {
            if (pageVersion) {
                return imageName + pageVersion + extension;
            }
            return imageName + extension;
        }

        function parentIsEventContainer(element) {
            if (!element) {return false;}
            var parentIs = Dom.getAncestorByClassName(element, "parent-container");
            return (parentIs) ? true : false;
        }

        function loginSubmitted() {
            for (var i = 0; i < document.loginform.productUrl.length; i++) {
                var element = document.loginform.productUrl[i];
                if (element.checked) {
                    window.location = element.value;
                }
            }
            return false;
        }

// ------------------------------------------------------------------------- //

        function openNewWindow(URL,WinName,Height,Left,Top,Width) { 
		    var newWindow = window.open(URL, WinName, 'dependent=1,directories=0,height='+Height+',left='+Left+',location=0,menubar=0,personalbar=0,resizable=1,screenX='+Left+',screenY='+Top+',scrollbars=1,status=0,toolbar=0,top='+Top+',width='+Width+'');
		    newWindow.focus();
	    }
	    
// ------------------------------------------------------------------------- //
// Overlay code - Services Learn More
// ------------------------------------------------------------------------- //
        var _iiAdvisorLearnMoreOverlay;
        var _iiInPlayLearnMoreOverlay;
        var _iiInPlayPlusLearnMoreOverlay;
        var _tInPlayLearnMoreOverlay;
        var _tTraderLearnMoreOverlay;
        var _tInstLearnMoreOverlay;
        var _ipInPlayLearnMoreOverlay;
        var _ipProLearnMoreOverlay;
        var _ipInstLearnMoreOverlay;

	    function initializeServicesIIOverlays() {
		    // advisor overlay
            _iiAdvisorLearnMoreOverlay = new Overlay("services.ii.advisor.overlay", { visible:false, zIndex:99 });
            _iiAdvisorLearnMoreOverlay.render();
	        Event.addListener("learnmore.ii.advisor", "click", showLearnMoreOverlay, _iiAdvisorLearnMoreOverlay, true);
            // in play overlay
            _iiInPlayLearnMoreOverlay = new Overlay("services.ii.inplay.overlay", { visible:false, zIndex:99 });
            _iiInPlayLearnMoreOverlay.render();
	        Event.addListener("learnmore.ii.inplay", "click", showLearnMoreOverlay, _iiInPlayLearnMoreOverlay, true);
            // in play plus overlay
            _iiInPlayPlusLearnMoreOverlay = new Overlay("services.ii.inplayplus.overlay", { visible:false, zIndex:99 });
            _iiInPlayPlusLearnMoreOverlay.render();
	        Event.addListener("learnmore.ii.inplayplus", "click", showLearnMoreOverlay, _iiInPlayPlusLearnMoreOverlay, true);
	        // close all
	        Event.addListener("learnmore.ii.advisor.close", "click", _iiAdvisorLearnMoreOverlay.hide, _iiAdvisorLearnMoreOverlay, true);
	        Event.addListener("learnmore.ii.inplay.close", "click", _iiInPlayLearnMoreOverlay.hide, _iiInPlayLearnMoreOverlay, true);
	        Event.addListener("learnmore.ii.inplayplus.close", "click", _iiInPlayPlusLearnMoreOverlay.hide, _iiInPlayPlusLearnMoreOverlay, true);
	    }

	    function initializeServicesTOverlays() {
            // in play overlay
            _tInPlayLearnMoreOverlay = new Overlay("services.t.inplay.overlay", { visible:false, zIndex:99 });
            _tInPlayLearnMoreOverlay.render();
	        Event.addListener("learnmore.t.inplay", "click", showLearnMoreOverlay, _tInPlayLearnMoreOverlay, true);
	        // trader overlay
            _tTraderLearnMoreOverlay = new Overlay("services.t.trader.overlay", { visible:false, zIndex:99 });
            _tTraderLearnMoreOverlay.render();
	        Event.addListener("learnmore.t.trader", "click", showLearnMoreOverlay, _tTraderLearnMoreOverlay, true);
	        // institutional overlay
            _tInstLearnMoreOverlay = new Overlay("services.t.inst.overlay", { visible:false, zIndex:99 });
            _tInstLearnMoreOverlay.render();
	        Event.addListener("learnmore.t.inst", "click", showLearnMoreOverlay, _tInstLearnMoreOverlay, true);
	        // close all
	        Event.addListener("learnmore.t.inplay.close", "click", _tInPlayLearnMoreOverlay.hide, _tInPlayLearnMoreOverlay, true);
	        Event.addListener("learnmore.t.trader.close", "click", _tTraderLearnMoreOverlay.hide, _tTraderLearnMoreOverlay, true);
	        Event.addListener("learnmore.t.inst.close", "click", _tInstLearnMoreOverlay.hide, _tInstLearnMoreOverlay, true);
	    }

	    function initializeServicesIPOverlays() {
            // in play overlay
            _ipInPlayLearnMoreOverlay = new Overlay("services.ip.inplay.overlay", { visible:false, zIndex:99 });
            _ipInPlayLearnMoreOverlay.render();
	        Event.addListener("learnmore.ip.inplay", "click", showLearnMoreOverlay, _ipInPlayLearnMoreOverlay, true);
            // pro overlay
            _ipProLearnMoreOverlay = new Overlay("services.ip.pro.overlay", { visible:false, zIndex:99 });
            _ipProLearnMoreOverlay.render();
	        Event.addListener("learnmore.ip.pro", "click", showLearnMoreOverlay, _ipProLearnMoreOverlay, true);
	        // institutional overlay
            _ipInstLearnMoreOverlay = new Overlay("services.ip.inst.overlay", { visible:false, zIndex:99 });
            _ipInstLearnMoreOverlay.render();
	        Event.addListener("learnmore.ip.inst", "click", showLearnMoreOverlay, _ipInstLearnMoreOverlay, true);
	        // close all
	        Event.addListener("learnmore.ip.inplay.close", "click", _ipInPlayLearnMoreOverlay.hide, _ipInPlayLearnMoreOverlay, true);
	        Event.addListener("learnmore.ip.pro.close", "click", _ipProLearnMoreOverlay.hide, _ipProLearnMoreOverlay, true);
	        Event.addListener("learnmore.ip.inst.close", "click", _ipInstLearnMoreOverlay.hide, _ipInstLearnMoreOverlay, true);
	    }

	    function closeAllLeanMoreOverlays() {
	    	if (_iiAdvisorLearnMoreOverlay) { _iiAdvisorLearnMoreOverlay.hide(); }
	        if (_iiInPlayLearnMoreOverlay) { _iiInPlayLearnMoreOverlay.hide(); }
	        if (_iiInPlayPlusLearnMoreOverlay) { _iiInPlayPlusLearnMoreOverlay.hide(); }

	        if (_tInPlayLearnMoreOverlay) { _tInPlayLearnMoreOverlay.hide(); }
	        if (_tTraderLearnMoreOverlay) { _tTraderLearnMoreOverlay.hide(); }
	        if (_tInstLearnMoreOverlay) { _tInstLearnMoreOverlay.hide(); }

	        if (_ipInPlayLearnMoreOverlay) { _ipInPlayLearnMoreOverlay.hide(); }
	        if (_ipProLearnMoreOverlay) { _ipProLearnMoreOverlay.hide(); }
	        if (_ipInstLearnMoreOverlay) { _ipInstLearnMoreOverlay.hide(); }
	    }

        function showLearnMoreOverlay(e, overlay) {
            if (overlay.element.style.visibility === "hidden") {
                closeAllLeanMoreOverlays();

                var elTarget = Event.getTarget(e);
                setContext(elTarget, overlay);
                
//                overlay.cfg.setProperty("context", [elTarget, "tl", "bl"]);
//                overlay.cfg.setProperty("x", elTarget.x - 184);
                overlay.show();
            } else {
                overlay.hide();
            }
        }
        
        function setContext(target, overlay) {
            // Trader
            if (target.id === 'learnmore.t.inplay') {
                var attach = document.getElementById('learnmore.t.inplay.attach');
                overlay.cfg.setProperty("context", [attach, "tl", "bl"]);
            } else
            if (target.id === 'learnmore.t.trader') {
                var attach = document.getElementById('learnmore.t.trader.attach');
                overlay.cfg.setProperty("context", [attach, "tl", "bl"]);
            } else
            if (target.id === 'learnmore.t.inst') {
                var attach = document.getElementById('learnmore.t.inst.attach');
                overlay.cfg.setProperty("context", [attach, "tr", "br"]);
            } else
            // Individual Investors
            if (target.id === 'learnmore.ii.advisor') {
                var attach = document.getElementById('learnmore.ii.advisor.attach');
                overlay.cfg.setProperty("context", [attach, "tl", "bl"]);
            } else
            if (target.id === 'learnmore.ii.inplay') {
                var attach = document.getElementById('learnmore.ii.inplay.attach');
                overlay.cfg.setProperty("context", [attach, "tl", "bl"]);
            } else
            if (target.id === 'learnmore.ii.inplayplus') {
                var attach = document.getElementById('learnmore.ii.inplayplus.attach');
                overlay.cfg.setProperty("context", [attach, "tr", "br"]);
            } else
            // Investment Professionals
            if (target.id === 'learnmore.ip.inplay') {
                var attach = document.getElementById('learnmore.ip.inplay.attach');
                overlay.cfg.setProperty("context", [attach, "tl", "bl"]);
            } else
            if (target.id === 'learnmore.ip.pro') {
                var attach = document.getElementById('learnmore.ip.pro.attach');
                overlay.cfg.setProperty("context", [attach, "tl", "bl"]);
            } else
            if (target.id === 'learnmore.ip.inst') {
                var attach = document.getElementById('learnmore.ip.inst.attach');
                overlay.cfg.setProperty("context", [attach, "tr", "br"]);
            } else {
                overlay.cfg.setProperty("context", [target, "tl", "bl"]);
            }
        }

// ------------------------------------------------------------------------- //
// Overlay code - Services Learn More
// ------------------------------------------------------------------------- //
        var _dgreenOverlay;
        var _dsouthwardOverlay;
        var _pohareOverlay;
        var _jbuschOverlay;
        var _kdubordOverlay;
        var _ssmithOverlay;
        var _rvgreenOverlay;
        var _cborgmeyerOverlay;
        var _rreidOverlay;

        function initializeBioOverlays() {
            // dgreen
            _dgreenOverlay = new Overlay("dgreen.overlay", {fixedcenter:true, visible:false, zIndex:99, modal:true});
            _dgreenOverlay.render();
	        Event.addListener("bio.dgreen", "click", showBioOverlay, _dgreenOverlay, true);
	        Event.addListener("dgreen.overlay", "click", _dgreenOverlay.hide, _dgreenOverlay, true);
	        // bio.dsouthward
            _dsouthwardOverlay = new Overlay("dsouthward.overlay", {fixedcenter:true, visible:false, zIndex:99, modal:true});
            _dsouthwardOverlay.render();
	        Event.addListener("bio.dsouthward", "click", showBioOverlay, _dsouthwardOverlay, true);
	        Event.addListener("dsouthward.overlay", "click", _dsouthwardOverlay.hide, _dsouthwardOverlay, true);
	        // bio.pohare
            _pohareOverlay = new Overlay("pohare.overlay", {fixedcenter:true, visible:false, zIndex:99, modal:true});
            _pohareOverlay.render();
	        Event.addListener("bio.pohare", "click", showBioOverlay, _pohareOverlay, true);
	        Event.addListener("pohare.overlay", "click", _pohareOverlay.hide, _pohareOverlay, true);
	        // bio.jbusch
            _jbuschOverlay = new Overlay("jbusch.overlay", {fixedcenter:true, visible:false, zIndex:99, modal:true});
            _jbuschOverlay.render();
	        Event.addListener("bio.jbusch", "click", showBioOverlay, _jbuschOverlay, true);
	        Event.addListener("jbusch.overlay", "click", _jbuschOverlay.hide, _jbuschOverlay, true);
	        // bio.kdubord
            _kdubordOverlay = new Overlay("kdubord.overlay", {fixedcenter:true, visible:false, zIndex:99, modal:true});
            _kdubordOverlay.render();
	        Event.addListener("bio.kdubord", "click", showBioOverlay, _kdubordOverlay, true);
	        Event.addListener("kdubord.overlay", "click", _kdubordOverlay.hide, _kdubordOverlay, true);
	        // bio.ssmith
            _ssmithOverlay = new Overlay("ssmith.overlay", {fixedcenter:true, visible:false, zIndex:99, modal:true});
            _ssmithOverlay.render();
	        Event.addListener("bio.ssmith", "click", showBioOverlay, _ssmithOverlay, true);
	        Event.addListener("ssmith.overlay", "click", _ssmithOverlay.hide, _ssmithOverlay, true);
	        // bio.rvgreen
            _rvgreenOverlay = new Overlay("rvgreen.overlay", {fixedcenter:true, visible:false, zIndex:99, modal:true});
            _rvgreenOverlay.render();
	        Event.addListener("bio.rvgreen", "click", showBioOverlay, _rvgreenOverlay, true);
	        Event.addListener("rvgreen.overlay", "click", _rvgreenOverlay.hide, _rvgreenOverlay, true);
	        // bio.cborgmeyer
            _cborgmeyerOverlay = new Overlay("cborgmeyer.overlay", {fixedcenter:true, visible:false, zIndex:99, modal:true});
            _cborgmeyerOverlay.render();
	        Event.addListener("bio.cborgmeyer", "click", showBioOverlay, _cborgmeyerOverlay, true);
	        Event.addListener("cborgmeyer.overlay", "click", _cborgmeyerOverlay.hide, _cborgmeyerOverlay, true);
	        // bio.rreid
            _rreidOverlay = new Overlay("rreid.overlay", {fixedcenter:true, visible:false, zIndex:99, modal:true});
            _rreidOverlay.render();
	        Event.addListener("bio.rreid", "click", showBioOverlay, _rreidOverlay, true);
	        Event.addListener("rreid.overlay", "click", _rreidOverlay.hide, _rreidOverlay, true);
        }

        function showBioOverlay(e, overlay) {
            if (overlay.element.style.visibility === "hidden") {
                closeAllBioOverlays();
                overlay.show();
            } else {
                overlay.hide();
            }
        }

        function closeAllBioOverlays() {
            if (_dgreenOverlay) { _dgreenOverlay.hide(); }
            if (_dsouthwardOverlay) { _dsouthwardOverlay.hide(); }
            if (_pohareOverlay) { _pohareOverlay.hide(); }
            if (_jbuschOverlay) { _jbuschOverlay.hide(); }
            if (_kdubordOverlay) { _kdubordOverlay.hide(); }
            if (_ssmithOverlay) { _ssmithOverlay.hide(); }
            if (_rvgreenOverlay) { _rvgreenOverlay.hide(); }
            if (_cborgmeyerOverlay) { _cborgmeyerOverlay.hide(); }
            if (_rreidOverlay) { _rreidOverlay.hide(); }
        }

// ------------------------------------------------------------------------- //
        return {
            initializeMenu : function() {
                initEvents();
            },
            loginSubmit : function() {
                return loginSubmitted();
            },
            openNewWindow : function(URL,WinName,Height,Left,Top,Width) {
                openNewWindow(URL,WinName,Height,Left,Top,Width);
            },
            initializeServicesIIOverlays : function() {
                initializeServicesIIOverlays();
            },
            initializeServicesTOverlays : function() {
                initializeServicesTOverlays();
            },
            initializeServicesIPOverlays : function() {
                initializeServicesIPOverlays();
            },
            initializeBioOverlays : function() {
                initializeBioOverlays();
            }
        };
    }();

    Event.onDOMReady(Briefing.Corp.initializeMenu);
    Briefing.register('corp', Briefing.Corp);
})();