(function() {
   try {
      document.execCommand("BackgroundImageCache", false, true); }
   catch(C) {
      }
   var A = function(F) {
      var D; if(F.wheelDelta) {
         D = F.wheelDelta / 120; }
      else {
         if(F.detail) {
            D =- F.detail / 3; }
         }
      if(!D) {
         return ; }
      var E = F.element().fire("mouse:wheel", {
         delta : D}
      ); if(E.stopped) {
         F.stop(); }
      }; document.observe("mousewheel", A).observe("DOMMouseScroll", A); var B = function(H) {
      var F; var I = /[<>/?#=,]/;var D=H.which||H.keyCode;var E=String.fromCharCode(D).toLowerCase();if((E=="x")||(E=="c")||(D==Event.KEY_ESC)){F="close";}else{if(D==Event.KEY_RETURN){F="submit";}else{if(I.test(E)){F="invalidate";}}}if(!F){return ;}var G=H.element().fire("keyboard:type",{action:F});if(G.stopped){H.stop();}};document.observe("keypress",B);})();
      var SunGard = {
         init : function() {
            new SunGard.UiHistory(); 
            new SunGard.Tabs(); 
            new SunGard.Search.SitewideFilter(); 
            new SunGard.SIFR(); 
            new SunGard.Carousel(); 
            new SunGard.RequestInfo(); 
            //new SunGard.ExpandableSidebar(); 
            new SunGard.MediaLinks(); 
            }
         }; 
      SunGard.SIFR = Class.create( {
         initialize : function() {
            if(typeof sIFR == "function") {
               sIFR.replaceElement("#logo-segment", named( {
                  sFlashSrc : rootPath + "flash/common/avenir-55-roman.swf", sColor : "#FFFFFF", sWmode : "transparent", sCase : "upper"}
               )); sIFR.replaceElement(".corporate .home #content h1", named( {
                  sFlashSrc : rootPath + "flash/common/avenir-45-book.swf", sColor : "#666666", sWmode : "transparent"}
               )); sIFR.replaceElement("#content h1", named( {
                  sFlashSrc : rootPath + "flash/common/avenir-65-medium.swf", sColor : "#3A3A3A", sWmode : "transparent", sCase : "upper", nPaddingBottom : "12"}
               )); }
            }
         }
      ); 
      SunGard.Search = Class.create( {
         initialize : function() {
            this.history = new SunGard.Search.History(this); this.attachEvents(); }
         , attachEvents : function() {
            document.observe("history:set", this.setBrowserHistory.bind(this)); }
         , setBrowserHistory : function(A) {
            this.initialLoad = A.memo.initialLoad; this.currentSearchData = A.memo.data; this.currentSearchOrder = A.memo.order; this.currentPage = A.memo.currentPage; this.newSearch = (this.currentSearchOrder.length == 0) && (this.currentPage == 1); this.resetSearchCriteria(); this.setSearchCriteria(); this.callWebService(); }
         , resetSearchCriteria : function() {
            this.searchCriteria = Object.clone(this.searchCriteriaObject); }
         , callWebService : function() {
            new Ajax.Request(this._webServicePath, {
               postBody : this.postBody, contentType : "application/json; charset=utf-8", onSuccess : this.renderResults.bind(this), onFailure : this.renderError.bind(this)}
            ); }
         , renderError : function(A) {
            document.fire("search:failed"); }
         , getTemplateType : function(A) {
            if(A.ResourceType == null || A.MediaType == "internal" || A.MediaType == "video" || A.MediaType == "audio") {
               return ; }
            if(A.ResourceType == "webcasts-and-webinars" || A.ResourceType == "events" || A.MediaType == "external") {
               A.OmnitureTagging = " onclick=\"var title=$(this).childNodes[0].data.strip(); var s=s_gi(s_account); s.tl(this,'e',title);\""; }
            else {
               A.OmnitureTagging = " onclick=\"var title=$(this).childNodes[0].data.strip(); var s=s_gi(s_account); s.linkTrackVars='prop11,prop12,eVar11,eVar12,events'; s.linkTrackEvents='event1'; s.prop11=title; s.prop12='" + A.ResourceType + "'; s.eVar11=s.prop11; s.eVar12=s.prop12; s.events='event1'; s.tl(this,'d',title);\""; }
            }
         }
      ); 
      SunGard.Search.GenericField = Class.create( {
         initialize : function() {
            this.defaultDisplayText = this.fld.readAttribute("value"); this.value = ""; this.changed = false; this.attachEvents(); }
         , attachEvents : function() {
            this.fld.observe("focus", this.onFieldFocus.bind(this)).observe("blur", this.onFieldBlur.bind(this)).observe("keyboard:type", this.onFieldKeypress.bind(this)); }
         , onFieldFocus : function(A) {
            if(!this.changed) {
               this.fld.clear(); }
            this.changed = true; }
         , onFieldBlur : function(A) {
            if(this.fld.value != "") {
               return ; }
            if(this.value == "") {
               this.fld.value = this.defaultDisplayText; this.changed = false; }
            else {
               if(this.keypressAction == null) {
                  this.fld.value = this.value; }
               }
            }
         , onFieldKeypress : function(A) {
            if(A.memo.action == "submit") {
               A.stop(); this.keypressAction = true; this.fld.blur(); this.fld.value = this.fld.getValue().strip(); if((this.value == "" && this.fld.value == this.defaultDisplayText) || this.fld.value == this.value) {
                  return ; }
               this.keypressAction = null; this.runQuery(); }
            else {
               if(A.memo.action == "invalidate") {
                  A.stop(); return ; }
               }
            }
         , setValue : function(A) {
            this.fld.enable(); if(A == "") {
               this.fld.value = this.defaultDisplayText; this.value = ""; this.fld.blur(); this.changed = false; }
            else {
               this.fld.value = A; this.value = A; this.changed = true; }
            }
         , disable : function() {
            this.fld.disable(); this.fld.value = "Unavailable"; }
         }
      ); 
      SunGard.Search.SitewideFilter = Class.create(SunGard.Search.GenericField, {
         initialize : function($super) {
            if($("search") == null) {
               return ; }
            this.fld = $$("#search input")[0]; $super(); }
         , runQuery : function() {
            if(String(window.location).toLowerCase().indexOf("searchresults.aspx") ==- 1) {
               window.location = "Contact/search.aspx?qu=" + this.fld.value.replace(/\s/g,"+");}else{document.fire("filter:selected",{group:"Query",attribute:this.fld.value});$$("#query input")[0].value=this.fld.value;this.setValue("");}}});
               SunGard.UiHistory = Class.create( {
                  _initialized : false, _subscribers : {
                     }
                  , _delimiter : "/", initialize : function() {
                     document.observe("uiHistory:subscribe", this.attachEvents.bind(this)); }
                  , attachEvents : function(A) {
                     this._subscribers[A.memo.key] = {
                        }; this._subscribers[A.memo.key]["obj"] = A.memo.obj; this._subscribers[A.memo.key]["method"] = A.memo.method; if(this._initialized) {
                        return ; }
                     this._initialized = true; SWFAddress.addEventListener(SWFAddressEvent.CHANGE, this.onChange.bind(this)); document.observe("uiHistory:add", this.add.bind(this)); }
                  , onChange : function(A) {
                     this.parseQueryString(A.path); }
                  , parseQueryString : function(A) {
                     var B = A.toQueryParams([separator = this._delimiter]); $H(this._subscribers).each(function(C) {
                        var D = C.value.obj; var E = C.value.method; if(A == this._delimiter || A == "" || A == "#") {
                           D[E](""); }
                        else {
                           D[E](B[C.key]); }
                        }
                     .bind(this)); }
                  , add : function(A) {
                     SWFAddress.setValue(A.memo.key + "=" + A.memo.value); }
                  }
               ); 
               SunGard.Tabs = Class.create( {
                  _activePrefix : "active-", _tabPrefix : "tab-", _key : "tab", initialize : function() {
                     if($("tabs") == null || $$("#tabs #controls").length == 0) {
                        return ; }
                     $$("#tabs div.tab").invoke("hide"); this.controlContainer = $$("#tabs #controls ul")[0]; this.attachEvents(); }
                  , attachEvents : function() {
                     document.fire("uiHistory:subscribe", {
                        key : this._key, obj : this, method : "setActiveTab"}
                     ); this.controlContainer.observe("click", this.onClick.bindAsEventListener(this)).observe("mouse:wheel", this.onWheeledOver.bindAsEventListener(this)); }
                  , onClick : function(B) {
                     B.stop(); var A = B.element(); if(A.tagName != "A") {
                        return ; }
                     $(A).blur(); document.fire("uiHistory:add", {
                        key : this._key, value : A.hash.substr(1)}
                     ); }
                  , onWheeledOver : function(B) {
                     B.stop(); var C = this._tabPrefix + this.activeTab; var A = (B.memo.delta > 0) ? $(C).next() : $(C).previous(); if(A == undefined) {
                        return ; }
                     document.fire("uiHistory:add", {
                        key : this._key, value : A.id.split(this._tabPrefix)[1]}
                     ); }
                  , setActiveTab : function(A) {
                     $$("#tabs div.tab").invoke("hide"); $$("#tabs #controls ul li").invoke("removeClassName", "active"); if(A == "" || ($(A) == null && this.activeTab == null)) {
                        this.activeTab = $$("#tabs div.tab:first-of-type")[0].id; }
                     else {
                        if($(A)) {
                           this.activeTab = A; }
                        else {
                           this.activeTab = this.activeTab; }
                        }
                     $(this.activeTab).show(); this.controlContainer.id = this._activePrefix + this.activeTab; $(this._tabPrefix + this.activeTab).addClassName("active"); }
                  }
               ); 
               SunGard.MediaLinks = Class.create( {
                  _videoClassName : "video", _audioClassName : "audio", _modalCache : {
                     }
                  , initialize : function() {
                     document.observe("copy:reset", this.reset.bind(this)); this.mediaLinks = $$("a." + this._videoClassName + ", a." + this._audioClassName); if(this.mediaLinks.size() == 0) {
                        return ; }
                     this.attachEvents(); }
                  , attachEvents : function() {
                     this.bOnLinkClick = this.onLinkClick.bindAsEventListener(this); this.mediaLinks.invoke("observe", "click", this.bOnLinkClick); }
                  , detachEvents : function() {
                     if(this.mediaLinks) {
                        this.mediaLinks.invoke("stopObserving", "click", this.bOnLinkClick); }
                     }
                  , reset : function() {
                     this.detachEvents(); this.mediaLinks = $$("a." + this._videoClassName + ", a." + this._audioClassName); this.attachEvents(); }
                  , onLinkClick : function(B) {
                     B.stop(); var A = B.element(); if(A.tagName == "IMG") {
                        A = Event.findElement(B, "A"); }
                     if(A.tagName != "A") {
                        return ; }
                     $(A).blur(); this.omnitureTagging(A); var C = $w(A.className); this.mediaType = C[0]; this.webserviceMethodName = C[1]; this.ID = A.hash.substr(1); this[(this._modalCache[this.ID]) ? "showModal" : "callWebService"](); }
                  , load : function(A) {
                     this._modalCache[this.ID] = new SunGard.ModalTemplate[(this.mediaType == this._videoClassName) ? "FlashVideo" : "FlashAudio"](A.responseJSON.d.evalJSON()); this.showModal(); }
                  , error : function(A) {
                     alert("This video is currently unavailable."); }
                  , callWebService : function() {
                     new Ajax.Request("/webservices/FlashVideoService.asmx/" + this.webserviceMethodName, {
                        postBody : "{ID:'" + this.ID + "'}", contentType : "application/json; charset=utf-8", onSuccess : this.load.bind(this), onFailure : this.error.bind(this)}
                     ); }
                  , omnitureTagging : function(A) {
                     var C = A.innerHTML.stripTags().strip(); var B = s_gi(s_account); B.linkTrackVars = "prop15,eVar15,events"; B.linkTrackEvents = "event5"; B.prop15 = C; B.eVar15 = B.prop15; B.events = "event5"; B.tl(A, "o", C); }
                  , showModal : function() {
                     $("footer").insert( {
                        before : this._modalCache[this.ID]}
                     ); document.fire("modal:show"); }
                  }
               ); 
               SunGard.Carousel = Class.create( {
                  initialize : function() {
                     if($("carousel") == null) {
                        return ; }
                     this.carouselContainer = $("carousel"); this.viewportContainer = $("viewport"); this.controls = $$("#carousel #nav-carousel ul")[0]; this.bStopAutomatedRotation = this.stopAutomatedRotation.bind(this); this.bStartAutomatedRotation = this.startAutomatedRotation.bind(this); this.currentItem = 1; this.numberOfItems = $$("#carousel #viewport>li").length; this.carouselItem = $("item-" + this.currentItem); this.navItem = this.controls.select("li:first-of-type")[0]; this.plusOne = new Element("li", {
                        id : "item-" + (this.numberOfItems + 1)}
                     ); this.plusOne.innerHTML = this.carouselItem.innerHTML; this.viewportContainer.insert(this.plusOne); if(this.controls.select("li").size() == 1) {
                        this.controls.hide(); return ; }
                     this.setInterval(); this.attachEvents(); this.insertNavIndicator(); }
                  , setInterval : function() {
                     this.interval = carouselInterval * 1000; }
                  , attachEvents : function() {
                     this.startAutomatedRotation(); this.viewportContainer.observe("mouseenter", this.bStopAutomatedRotation).observe("mouseleave", this.bStartAutomatedRotation); this.controls.observe("click", this.onNavClick.bindAsEventListener(this)); }
                  , insertNavIndicator : function() {
                     var B = this.carouselContainer.cumulativeOffset(); var A = this.controls.cumulativeOffset(); this.navTopPosition = A.top - B.top + 3; this.indicator = new Element("div", {
                        id : "indicator"}
                     ); this.indicator.setStyle( {
                        top : this.navTopPosition + "px", left : this.navItem.cumulativeOffset().left - B.left - 3 + "px"}
                     ); this.carouselContainer.insert(this.indicator); }
                  , startAutomatedRotation : function() {
                     this.rotation = setInterval(this.rotate.bind(this), this.interval); }
                  , stopAutomatedRotation : function() {
                     clearInterval(this.rotation); }
                  , rotate : function() {
                     if(this.currentItem <= this.numberOfItems) {
                        this.currentItem++; }
                     else {
                        this.currentItem = 1; }
                     this.carouselItem = $("item-" + this.currentItem); this.navItem = this.controls.select("li")[((this.currentItem == this.numberOfItems + 1) ? 1 : this.currentItem) - 1]; this.animate(); }
                  , onNavClick : function(B) {
                     B.stop(); var A = B.element(); if(A.tagName != "A") {
                        return ; }
                     $(A).blur(); this.stopAutomatedRotation(); this.viewportContainer.stopObserving("mouseenter", this.bStopAutomatedRotation).stopObserving("mouseleave", this.bStartAutomatedRotation); if(this.itemEffect || this.indicatorEffect) {
                        this.itemEffect.cancel(); this.indicatorEffect.cancel(); }
                     this.carouselItem = $(A.hash.substr(1)); this.navItem = Event.findElement(B, "LI"); this.animate(); }
                  , animate : function() {
                     this.moveItem(); this.moveNavIndicator(); }
                  , moveItem : function() {
                     var A = this.viewportContainer.cumulativeOffset(); var B = this.carouselItem.cumulativeOffset(); this.itemEffect = new Effect.Move(this.viewportContainer, {
                        mode : "absolute", duration : 0.6, x : A.left - B.left, y : A.top - B.top, afterFinish : function(C) {
                           if(this.currentItem == this.numberOfItems + 1) {
                              this.currentItem = 1; C.element.setStyle( {
                                 left : "0px"}
                              ); }
                           }
                        .bind(this)}
                     ); }
                  , moveNavIndicator : function() {
                     this.indicatorEffect = new Effect.Fade(this.indicator, {
                        duration : 0.3, afterFinish : function(A) {
                           A.element.setStyle( {
                              top : this.navTopPosition + "px", left : this.navItem.cumulativeOffset().left - this.carouselContainer.cumulativeOffset().left - 3 + "px"}
                           ); new Effect.Appear(A.element, {
                              duration : 0.3}
                           ); }
                        .bind(this)}
                     ); }
                  }
               ); 
               /*
               SunGard.Expandable = Class.create( {
                  _expandedClassName : "expanded", _collapsedClassName : "collapsed", initialize : function() {
                     this.buildUI(); }
                  , buildUI : function() {
                     
                     this.controls = new Element("ul", {
                        className : "controls-expandable"}
                     ).insert(new Element("li", {
                        className : "expand-all"}
                     ).insert(new Element("a", {
                        href : "#expand"}
                     ).update("Expand All"))).insert(new Element("li", {
                        className : "collapse-all"}
                     ).insert(new Element("a", {
                        href : "#collapse"}
                     ).update("Collapse All"))).observe("click", this.onControlsClick.bindAsEventListener(this)); this.container.insert( {
                        before : this.controls}
                     ); }
                  , onHeaderClick : function(A) {
                     A[A.hasClassName(this._collapsedClassName) ? "removeClassName" : "addClassName"](this._collapsedClassName); }
                  , onControlsClick : function(B) {
                     B.stop(); var A = B.element(); if(A.tagName != "A") {
                        return ; }
                     $(A).blur(); var C = A.hash.substr(1); this.groups.invoke((C == "expand") ? "removeClassName" : "addClassName", this._collapsedClassName); }
                  }
               ); 
               SunGard.ExpandableSidebar = Class.create(SunGard.Expandable, {
                  initialize : function($super) {
                     if($("expandable") == null) {
                        return ; }
                     this.container = $("expandable"); this.groups = this.container.select("div.group"); this.headers = this.container.select("div.group h4"); if(this.groups.size() == 0) {
                        $("expandable").remove(); return ; }
                     else {
                        if(this.groups.size() == 1) {
                           $("sidebar").replaceChild(this.groups[0], this.container); return ; }
                        else {
                           $super(); }
                        }
                     }
                  , buildUI : function($super) {
                     this.groups.each(function(B, A) {
                        this.headers[A].observe("click", this.onHeaderClick.bindAsEventListener(this)); if(A == 0) {
                           return ; }
                        B.addClassName(this._collapsedClassName); }
                     .bind(this)); $super(); }
                  , onHeaderClick : function($super, C) {
                     C.stop(); var B = C.element(); var A = B.up("div.group"); $super(A); }
                  }
               ); 
               */
               SunGard.ModalTemplate = Class.create( {
                  _className : "modal", _topMargin : 17, _leftMargin : 20, _maxWidth : 512, _overlayOpacity : 0.525, _duration : 0.5, initialize : function(A) {
                     this.data = A; this.bOnKeyboardType = this.onKeyboardType.bindAsEventListener(this); this.bOnOverlayClick = this.onOverlayClick.bindAsEventListener(this); this.bRender = this.render.bind(this); this.bReset = this.reset.bind(this); this.pageHead = $$("head")[0]; this.pageDimensions = $("header").getDimensions(); this.defaultTop = this.pageDimensions.height + this._topMargin; this.overlayPrintCssFile = new Element("link", {
                        type : "text/css", rel : "stylesheet", media : "print", href : rootPath + "styles/common/print-overlay.css"}
                     ); this.print = new Element("li", {
                        id : "print"}
                     ).insert(new Element("a", {
                        href : ""}
                     ).update("Print")); this.close = new Element("li", {
                        id : "close"}
                     ).insert(new Element("a", {
                        href : ""}
                     ).update("Close")); this.controlList = new Element("ul").insert(this.print).insert(this.close).observe("click", this.onControlsClick.bindAsEventListener(this)); this.controls = new Element("div", {
                        id : "controls"}
                     ).insert(this.controlList); this.iframeShim = new Element("iframe", {
                        src : "javascript:false;", id : "shim", frameBorder : 0}
                     ); if($("overlay")) {
                        this.overlay = $("overlay"); }
                     else {
                        this.overlay = new Element("div", {
                           id : "overlay", style : "display: none"}
                        ); $(document.body).insert(this.overlay); }
                     }
                  , toElement : function() {
                     document.observe("modal:show", this.bRender).observe("keyboard:type", this.bOnKeyboardType); this.overlay.observe("click", this.bOnOverlayClick); Event.observe(document.onresize ? document : window, "resize", this.bReset); return this.container.show(); }
                  , disablePrintButton : function() {
                     this.controlList.addClassName("close"); }
                  , onControlsClick : function(B) {
                     B.stop(); var A = B.element(); if(A.tagName != "A") {
                        return ; }
                     $(A).blur(); (Event.findElement(B, "LI").id == "print") ? window.print() : this.hide(); }
                  , onOverlayClick : function(A) {
                     this.hide(); }
                  , onKeyboardType : function(A) {
                     if(A.memo.action == "close") {
                        this.hide(); }
                     }
                  , render : function() {
                     this.pageHead.insert(this.overlayPrintCssFile); this.bodyDimensions = $(document.body).getDimensions(); this.viewportDimensions = $(document.viewport).getDimensions(); this.containerDimensions = this.container.getDimensions(); var A = this.getVerticalPosition(); var C = this.getHorizontalPosition(); this.setOverlaySize(parseInt(A.top)); this.showOverlay(); this.container.setStyle(Object.extend(C, A)); if(Prototype.Browser.IE) {
                        var B = {
                           width : this.containerDimensions.width, height : this.containerDimensions.height, zIndex : this.overlay.getStyle("z-index") - 1}; this.iframeShim.setStyle(Object.extend(B, A)); $(document.body).insert(this.iframeShim); }
                     }
                  , reset : function() {
                     this.bodyDimensions = $(document.body).getDimensions(); this.viewportDimensions = $(document.viewport).getDimensions(); var A = this.getVerticalPosition(); var B = this.getHorizontalPosition(); this.setOverlaySize(parseInt(A.top)); this.container.setStyle(Object.extend(B, A)); if(Prototype.Browser.IE) {
                        this.iframeShim.setStyle(B); }
                     }
                  , showOverlay : function() {
                     new Effect.Appear(this.overlay, {
                        duration : this._duration, from : 0, to : this._overlayOpacity}
                     ); }
                  , setOverlaySize : function(B) {
                     var A = (this.bodyDimensions.height > this.viewportDimensions.height) ? this.bodyDimensions.height : this.viewportDimensions.height; var C = this.containerDimensions.height + B; if(C + this._topMargin > A) {
                        A = C + this._topMargin; }
                     this.overlay.setStyle( {
                        width : (this.viewportDimensions.width < this.pageDimensions.width) ? this.pageDimensions.width + "px" : "100%", height : A + "px"}
                     ); }
                  , hide : function() {
                     this.overlayPrintCssFile.remove(); this.container.hide().remove(); if(Prototype.Browser.IE) {
                        this.iframeShim.remove(); }
                     new Effect.Fade(this.overlay, {
                        duration : this._duration}
                     ); document.stopObserving("modal:show", this.bRender).stopObserving("keyboard:type", this.bOnKeyboardType); this.overlay.stopObserving("click", this.bOnOverlayClick); Event.stopObserving(document.onresize ? document : window, "resize", this.bReset); }
                  , getVerticalPosition : function() {
                     var A = $("content").cumulativeScrollOffset().top; return {
                        top : ((A > this.defaultTop) ? A + this._topMargin : this.defaultTop) + "px"}; }
                  , getHorizontalPosition : function() {
                     return(this.viewportDimensions.width < this.pageDimensions.width) ? {
                        left : "0", marginLeft : this._leftMargin + "px"}
                     : {
                        left : "50%", marginLeft : "-457px"}; }
                  }
               ); 
               SunGard.RequestInfo = Class.create( {
                  _modalCache : {
                     }
                  , initialize : function() {
                     if($$("#request-a-briefing a", "a.request-info").length == 0) {
                        return ; }
                     this.requestLinks = $$("#request-a-briefing a", "a.request-info"); this.attachEvents(); }
                  , attachEvents : function() {
                     this.requestLinks.invoke("observe", "click", this.onLinkClick.bindAsEventListener(this)); }
                  , onLinkClick : function(B) {
                     B.stop(); var A = B.element(); $((A.tagName != "A") ? Event.findElement(B, "A") : A).blur(); this.iframeSrc = A.href; this.iframeHeight = $w(A.className)[1]; if(this._modalCache[this.iframeSrc] == null) {
                        this.createModal(); }
                     this.showModal(); }
                  , createModal : function() {
                     this._modalCache[this.iframeSrc] = new SunGard.ModalTemplate.M2L( {
                        Src : this.iframeSrc, Height : this.iframeHeight}
                     ); }
                  , showModal : function() {
                     $("footer").insert( {
                        before : this._modalCache[this.iframeSrc]}
                     ); document.fire("modal:show"); }
                  }
               ); 
               SunGard.ModalTemplate.M2L = Class.create(SunGard.ModalTemplate, {
                  initialize : function($super, A) {
                     $super(A); this.iframe = new Element("iframe", {
                        frameBorder : 0, src : this.data.Src, style : "height:" + this.data.Height + "px"}
                     ); var B = new Element("div", {
                        id : "copy"}
                     ).insert(this.iframe); this.container = new Element("div", {
                        id : "m2l", className : this._className}
                     ).insert(this.controls).insert(B); }
                  , toElement : function($super) {
                     this.iframe.src = this.data.Src; return $super(); }
                  }
               ); 
               SunGard.Search.History = Class.create( {
                  _delimiter : "/", initialize : function(A) {
                     this.searchManager = A; this.initialLoad = true; this.key; this.value; this.currentHash; this.pair; this.attachEvents(); }
                  , attachEvents : function() {
                     SWFAddress.addEventListener(SWFAddressEvent.CHANGE, this.onChange.bind(this)); document.observe("filter:selected", this.add.bind(this)).observe("criteria:removed", this.remove.bind(this)).observe("criteria:cleared", this.clear.bind(this)); }
                  , onChange : function(A) {
                     this.parseHash(A.path); document.fire("history:set", {
                        initialLoad : this.initialLoad, data : this.data, order : this.order, currentPage : this.currentPage}
                     ); }
                  , parseHash : function(A) {
                     this.data = {
                        }; this.order = []; this.currentPage = 1; if(A == this._delimiter) {
                        return ; }
                     A.split(this._delimiter).each(function(C, D) {
                        if(C == "" || C == "#") {
                           return ; }
                        var B = C.split("="); this.key = (B[0] == "q") ? "Query" : B[0].capitalize().camelize(); this.value = (this.key == "Query") ? B[1].replace(/\+/g," "):B[1];if(this.key=="CurrentPage"){this.currentPage=this.value;}else{this.data[this.key]=this.value;this.order.push(this.key);}}.bind(this));},setInternalData:function(A){this.initialLoad=false;this.key=A.memo.group;this.urlFriendlyKey=(this.key=="Query")?"q":this.key.underscore().dasherize();this.value=(this.key=="Query")?A.memo.attribute.replace(/\s/g,"+"):A.memo.attribute;this.currentHash=SWFAddress.getValue();this.pair=this.urlFriendlyKey+"="+this.value+this._delimiter;},add:function(D){this.setInternalData(D);if(this.key!="CurrentPage"&&this.currentPage&&this.currentPage!=1){this.currentHash=this.currentHash.replace(/(current-page)\=\d+\//,"");}var C=this.data[this.key];var B=(this.key=="CurrentPage"&&this.currentHash.indexOf("current-page")!=-1);if(C||B){var A=new RegExp(this.urlFriendlyKey+"=(\\w+\\s*'*\\+*\"*)+/");SWFAddress.setValue(this.currentHash.replace(A,this.pair));}else{SWFAddress.setValue(this.currentHash+this.pair);}},remove:function(A){this.setInternalData(A);SWFAddress.setValue(this.currentHash.replace(this.pair,""));},clear:function(){this.initialLoad=false;SWFAddress.setValue("");}});
                        SunGard.Search.UI = Class.create( {
                           initialize : function(A) {
                              this.searchManager = A; this.loadingIcon = $("loading").select("img")[0]; this.animatedLoadingIconSrc = this.loadingIcon.src; this.disabledLoadingIconSrc = this.animatedLoadingIconSrc.split("-animated.gif")[0] + "-disabled.gif"; this.infoContainer = $("results-info"); this.resultsContainer = $("results-body"); this.itemsContainer = $("items"); this.queryFilter = new SunGard.Search.UI.QueryFilter(this.searchManager); this.searchTotals = new SunGard.Search.UI.Totals(this, this.infoContainer); this.pagination = new SunGard.Search.UI.Pagination(this.searchManager, this, this.itemsContainer); this.messaging = new SunGard.Search.UI.Messaging(this.customError, this.searchSpecificErrorHint); this.attachEvents(); }
                           , attachEvents : function() {
                              document.observe("search:failed", this.clearItems.bind(this)).observe("search:actionPerformed", this.hideResults.bind(this)).observe("search:resultsDisplayed", this.showResults.bind(this)).observe("search:noResultsDisplayed", this.showResults.bind(this)).observe("history:set", this.showLoadingIcon.bind(this)).observe("search:succeeded", this.buildUI.bind(this)); }
                           , buildUI : function(A) {
                              this.data = A.memo.data; this.searchCriteria = A.memo.searchCriteria; this.omnitureTagging(); this.clearItems(); if(this.data.TotalResults > 0) {
                                 this.buildResults(); }
                              }
                           , omnitureTagging : function() {
                              if(s == undefined || s == null) {
                                 return ; }
                              s.events = "event11"; s.prop1 = Object.toQueryString(this.searchCriteria); var A = unescape(this.searchCriteria.Query).toLowerCase(); s.prop2 = (this.searchCriteria.Query == "") ? "faceted search" : A; s.eVar1 = s.prop2; s.prop3 = this.data.TotalResults; s.eVar2 = s.prop3; s.linkTrackVars = ""; s.linkTrackEvents = ""; s.eVar11 = ""; s.eVar12 = ""; s.eVar15 = ""; s.prop11 = ""; s.prop12 = ""; s.prop15 = ""; s.t(); }
                           , buildResults : function() {
                              var A = new Element("ul", {
                                 className : "list-results"}
                              ); this.data.Results.each(function(B) {
                                 A.insert(this.searchManager.getTemplateType(B)); }
                              .bind(this)); this.itemsContainer.insert(A); document.fire("search:resultsDisplayed", {
                                 currentPage : parseInt(this.searchCriteria.CurrentPage), resultsPerPage : parseInt(this.searchCriteria.ResultsPerPage), numberOfReturnedResults : this.data.Results.length, totalResults : parseInt(this.data.TotalResults)}
                              ); document.fire("copy:reset"); $("header").scrollTo(); }
                           , clearItems : function() {
                              this.itemsContainer.childElements().invoke("remove"); }
                           , showResults : function() {
                              if(this.fadeOut) {
                                 this.fadeOut.cancel(); this.fadeIn = new Effect.Opacity(this.resultsContainer, {
                                    duration : 1, from : 0.3, to : 1}
                                 ); }
                              this.hideLoadingIcon(); }
                           , hideResults : function() {
                              this.showLoadingIcon(); this.fadeOut = new Effect.Opacity(this.resultsContainer, {
                                 duration : 1, from : 1, to : 0.3}
                              ); }
                           , showLoadingIcon : function() {
                              this.loadingIcon.src = this.animatedLoadingIconSrc; }
                           , hideLoadingIcon : function() {
                              this.loadingIcon.src = this.disabledLoadingIconSrc; }
                           }
                        ); 
                        SunGard.Search.UI.QueryFilter = Class.create(SunGard.Search.GenericField, {
                           initialize : function($super, A) {
                              this.searchManager = A; this.fld = $$("#query input")[0]; $super(); }
                           , attachEvents : function($super) {
                              document.observe("search:failed", this.disable.bind(this)).observe("search:succeeded", this.setValue.bind(this)); $super(); }
                           , setValue : function($super, A) {
                              $super(unescape(A.memo.searchCriteria.Query)); }
                           , runQuery : function() {
                              document.fire("search:actionPerformed"); if(this.fld.value == "") {
                                 document.fire("criteria:removed", {
                                    group : "Query", attribute : this.value}
                                 ); }
                              else {
                                 document.fire("filter:selected", {
                                    group : "Query", attribute : this.fld.value}
                                 ); }
                              }
                           }
                        ); 
                        SunGard.Search.UI.Totals = Class.create( {
                           initialize : function(A, B) {
                              this.uiManager = A; this.parentContainer = B; this.container = new Element("div", {
                                 id : "totals"}
                              ); this.parentContainer.insert(this.container); this.attachEvents(); }
                           , attachEvents : function() {
                              document.observe("search:resultsDisplayed", this.buildUI.bind(this)).observe("search:noResultsDisplayed", this.destroyUI.bind(this)); }
                           , buildUI : function(F) {
                              var E = F.memo.currentPage; var B = F.memo.resultsPerPage; var D = F.memo.numberOfReturnedResults; var A = F.memo.totalResults; var G = (B * (E - 1)) + 1; var C = (D == B) ? (E * B) : A; this.container.update(new Element("p").update("Results " + G + "&#8211;" + C + " of " + A)); }
                           , destroyUI : function() {
                              this.container.update(""); }
                           }
                        ); 
                        SunGard.Search.UI.Pagination = Class.create( {
                           _maxNumberOfDisplayedPages : 9, initialize : function(B, A, C) {
                              this.searchManager = B; this.uiManager = A; this.parentContainer = C; this.buffer = Math.floor(this._maxNumberOfDisplayedPages / 2); this.container = new Element("div", {
                                 id : "pagination"}
                              ).observe("click", this.onClick.bind(this)); this.parentContainer.insert( {
                                 after : this.container}
                              ); this.attachEvents(); }
                           , attachEvents : function() {
                              document.observe("search:resultsDisplayed", this.buildUI.bind(this)).observe("search:noResultsDisplayed", this.destroyUI.bind(this)); }
                           , buildUI : function(E) {
                              this.currentPage = E.memo.currentPage; this.resultsPerPage = E.memo.resultsPerPage; this.totalResults = E.memo.totalResults; if(this.totalResults <= this.resultsPerPage) {
                                 this.destroyUI(); return ; }
                              this.numberOfPages = this.getNumberOfPages(); this.numberOfDisplayedPages = this.getNumberOfDisplayedPages(); var D = (this.currentPage == 1) ? new Element("p", {
                                 id : "previous", className : "off"}
                              ).update("Previous") : new Element("p", {
                                 id : "previous", className : "on"}
                              ).insert(new Element("a", {
                                 href : "#" + (this.currentPage - 1)}
                              ).update("Previous")); var F = new Element("ul"); for(var B = 1, A = this.getFirstPageNumber(); B <= this.numberOfDisplayedPages; B++, A++) {
                                 F.insert((A == this.currentPage) ? new Element("li").update("<strong>" + A + "</strong>") : new Element("li").insert(new Element("a", {
                                    href : "#" + A}
                                 ).update(A))); }
                              var C = (this.currentPage == this.numberOfPages) ? new Element("p", {
                                 id : "next", className : "off"}
                              ).update("Next") : new Element("p", {
                                 id : "next", className : "on"}
                              ).insert(new Element("a", {
                                 href : "#" + (this.currentPage + 1)}
                              ).update("Next")); this.container.update(D).insert(F).insert(C); }
                           , destroyUI : function() {
                              this.container.update(""); }
                           , getNumberOfPages : function() {
                              return Math.ceil(this.totalResults / this.resultsPerPage); }
                           , getNumberOfDisplayedPages : function() {
                              return this[(this.numberOfPages > this._maxNumberOfDisplayedPages) ? "_maxNumberOfDisplayedPages" : "numberOfPages"]; }
                           , getFirstPageNumber : function() {
                              if(this.numberOfPages <= this._maxNumberOfDisplayedPages || (this.currentPage - this.buffer) < 1) {
                                 return 1; }
                              else {
                                 if((this.currentPage + this.buffer) > this.numberOfPages) {
                                    return(this.numberOfPages - this._maxNumberOfDisplayedPages + 1); }
                                 else {
                                    return(this.currentPage - this.buffer); }
                                 }
                              }
                           , onClick : function(B) {
                              B.stop(); var A = B.element(); if(A.tagName != "A") {
                                 return ; }
                              $(A).blur(); document.fire("search:actionPerformed"); document.fire("filter:selected", {
                                 group : "CurrentPage", attribute : A.hash.substr(1)}
                              ); }
                           }
                        ); 
                        SunGard.Search.UI.Messaging = Class.create( {
                           initialize : function(A, B) {
                              this.customError = A; this.searchSpecificErrorHint = B; this.container = $("messages"); this.title = new Element("h3"); this.instructions = new Element("div"); this.errorTitle = "We apologize&#8212;this service is temporarily unavailable. Please try again later."; this.defaultInstructions = "<p>Suggestions:</p><ul><li>Make sure all words are spelled correctly.</li><li>Try different search terms.</li><li>Try fewer or more general search terms.</li><li>" + this.searchSpecificErrorHint + "</li></ul>"; this.attachEvents(); }
                           , attachEvents : function() {
                              document.observe("search:succeeded", this.buildUI.bind(this)).observe("search:failed", this.buildError.bind(this)); }
                           , buildUI : function(A) {
                              this.data = A.memo.data; this.searchCriteria = A.memo.searchCriteria; this.clear(); if(this.data.TotalResults == 0) {
                                 this.buildNoResults(); }
                              }
                           , buildNoResults : function() {
                              if(this.customError && this.searchCriteria.Query == "") {
                                 this.title.update(this.customError); this.instructions.update(""); }
                              else {
                                 this.title.update((this.searchCriteria.Query == "") ? "Your search has returned no results." : "Your search &#8212; <strong>&#8220;" + unescape(this.searchCriteria.Query) + "&#8221;</strong> &#8212; has returned no results."); this.instructions.update(this.defaultInstructions); }
                              this.display(); }
                           , buildError : function() {
                              this.title.update(this.errorTitle); this.instructions.update(""); this.clear(); this.display(); }
                           , display : function() {
                              this.container.insert(this.title).insert(this.instructions); document.fire("search:noResultsDisplayed"); }
                           , clear : function() {
                              this.container.childElements().invoke("remove"); }
                           }
                        ); 
                        SunGard.MediaTypeIcons = {
                           internal : "", pdf : '<img alt="PDF file" src="' + rootPath + '/images/Common/icons/pdf.gif" width="16" height="16" />', external : '<img alt="external link" src="' + rootPath + '/images/Common/icons/external.gif" width="14" height="14" />', video : '<img alt="video file" src="' + rootPath + '/images/Common/icons/video.gif" width="16" height="16" />', audio : '<img alt="audio file" src="' + rootPath + '/images/Common/icons/audio.gif" width="16" height="16" />'}; 
                        SunGard.ModalTemplate.FlashVideo = Class.create(SunGard.ModalTemplate, {
                           initialize : function($super, C) {
                              $super(C); this.disablePrintButton(); var E = new Element("h1").update(this.data.Title); var B = new Element("div", {
                                 id : "overlay-video", className : "flash"}
                              ).update('<p><a href="http://www.adobe.com/go/EN_US-H-GET-FLASH"><img alt="Get Adobe&#0174; Flash&#0174; Player" src="' + rootPath + 'images/common/icons/get-flashplayer.gif" width="160" height="41" /> Please install the latest version of the Adobe&#0174; Flash&#0174; Player.</a></p>'); var A = (this.data.Summary == "") ? "" : new Element("p").update(this.data.Summary); var D = new Element("div", {
                                 id : "copy"}
                              ).insert(E).insert(B).insert(A); if(this.data.IsYouTubeVideo) {
                                 this.data.VideoUrl = this.data.VideoUrl.toQueryParams()["v"]; }
                              this.script = '<script type="text/javascript">var flashvars = {isyoutube: "' + this.data.IsYouTubeVideo + '", omnitureaccount: "' + s_account + '", imagePath: "' + this.data.PreviewImagePath + '", videoTitle: "' + s.pageName + ":" + this.data.Title + '", videoURL: "' + this.data.VideoUrl + '"}; var params = {menu: "false", quality: "best", scale: "showall", allowFullScreen: "false", allowScriptAccess: "always"}; var attributes = {}; swfobject.embedSWF("' + rootPath + 'flash/common/video-player.swf", "overlay-video", "464", "261", "9.0.0", "' + rootPath + 'flash/common/express-install.swf", flashvars, params, attributes);<\/script>'; this.container = new Element("div", {
                                 id : "media-link", className : this._className}
                              ).insert(this.controls).insert(D); }
                           , toElement : function($super) {
                              this.container.insert(this.script); return $super(); }
                           }
                        ); 
                        SunGard.ModalTemplate.FlashAudio = Class.create(SunGard.ModalTemplate, {
                           initialize : function($super, C) {
                              $super(C); this.disablePrintButton(); var E = new Element("h1").update(this.data.Title); var B = new Element("div", {
                                 id : "overlay-audio", className : "flash"}
                              ).update('<p><a href="http://www.adobe.com/go/EN_US-H-GET-FLASH"><img alt="Get Adobe&#0174; Flash&#0174; Player" src="' + rootPath + 'images/common/icons/get-flashplayer.gif" width="160" height="41" /> Please install the latest version of the Adobe&#0174; Flash&#0174; Player.</a></p>'); var A = (this.data.Summary == "") ? "" : new Element("p").update(this.data.Summary); var D = new Element("div", {
                                 id : "copy"}
                              ).insert(E).insert(B).insert(A); this.script = '<script type="text/javascript">var flashvars = {audioPath: "' + this.data.Path + '"}; var params = {menu: "false", quality: "best", wmode: "transparent"}; var attributes = {}; swfobject.embedSWF("' + rootPath + 'flash/common/audio-player.swf", "overlay-audio", "412", "50", "8.0.0", "' + rootPath + 'flash/common/express-install.swf", flashvars, params, attributes);<\/script>'; this.container = new Element("div", {
                                 id : "media-link", className : this._className}
                              ).insert(this.controls).insert(D); }
                           , toElement : function($super) {
                              this.container.insert(this.script); return $super(); }
                           }
                        ); 
                        document.observe("dom:loaded", SunGard.init.bind(SunGard));