
// 'stacks' is the Stacks global object.
// All of the other Stacks related Javascript will 
// be attatched to it.
var stacks = {};


// this call to jQuery gives us access to the globaal
// jQuery object. 
// 'noConflict' removes the '$' variable.
// 'true' removes the 'jQuery' variable.
// removing these globals reduces conflicts with other 
// jQuery versions that might be running on this page.
stacks.jQuery = jQuery.noConflict(true);

// Javascript for stacks_in_7140_page117
// ---------------------------------------------------------------------

// Each stack has its own object with its own namespace.  The name of
// that object is the same as the stack's id.
stacks.stacks_in_7140_page117 = {};

// A closure is defined and assigned to the stack's object.  The object
// is also passed in as 'stack' which gives you a shorthand for referring
// to this object from elsewhere.
stacks.stacks_in_7140_page117 = (function(stack) {

	// When jQuery is used it will be available as $ and jQuery but only
	// inside the closure.
	var jQuery = stacks.jQuery;
	var $ = jQuery;
	
// jSnow, a jQuery Plugin v1.2
// Licensed under GPL licenses.
// Copyright (C) 2009 Nikos "DuMmWiaM" Kontis, dummwiam@gmail.com
// http://www.DuMmWiaM.com/jSnow
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A($){$.L.M=A(h){F(!1u.1v.1w().1x(/1y/)){4 j=$.1z({},$.L.M.Y,h);4 k,G;N();4 l=j.Z;4 m=j.11;4 n=j.12;4 o=j.13;4 p=j.14;4 q=j.15;4 r=j.16;4 s=j.17;4 t=j.18;4 u=j.19;4 v=j.1a;F($.1b.1A&&(1B($.1b.1C)<8)&&v=="1c"){v=0}4 w=$("<1D \\/>");w.B({O:k+"6",P:1,1d:"1e",H:"1E",1f:"1g",7:$("I").1h()+1+"6",D:"1F"});$("I").B({"H-y":"1G","H-x":"1i",P:"1H%"});$("1j").1I(w).B({"H":"1i"});4 x=1J();Q(l,1k);4 u=1K(1l,u);R.1L=N}A N(){k=$(\'1j\').O();G=R.1M||1N.1O.1P};1m.1Q=A(){1R(u);u=1n;S(4 i=0;i<x.J;i++){4 f=x[i];E.1o(f);f.T()}x=1n;w.T()};R.1S=A(){w.B({7:$("I").1h()+"6"})};A Q(a,b){a=a||1;b=b||1k;4 i=0;S(i=0;i<a;i++){4 c=$("<1T \\/>");4 d=o+5.C(5.9()*p);4 e=m[5.C(5.9()*m.J)];F(e.1p(".1U")!=-1||e.1p(".1V")!=-1){4 f=1W 1X();f.1q=e;e="<1Y 1q=\'"+e+"\' 1Z=\' \'>"}c.I(e).B({21:n[5.C(5.9()*n.J)],22:d+"6",1d:"1e",1f:"1g",23:"24","z-26":v});$(w).27(c);U=5.C(5.9()*(k-c.O()-K))+25;V=(b)?-1*c.P():5.C(5.9()*(G-K));4 g=5.C(5.9()*(t-s))+s;E.1r(c,"1s",{7:V,D:U,W:5.9()*K,i:5.28(q+5.9()*(r-q)),1t:g});c.B({7:V+"6",D:U+"6"});x.29(c)}};A 1l(){4 i=0;S(i=x.J-1;i>=0;i--){4 f=x[i];4 a=E.1r(f,"1s");a.7+=a.i;4 b=2a();b=5.2b((a.W/2c)*5.2d);a.W+=2;4 X=a.D-b*a.1t;f.B({7:a.7+"6",D:X+"6"});F(a.7>G){E.1o(f);f.T();x.2e(i,1);Q(1,2f)}}};2g 1m};$.L.M.Y={Z:2h,15:1,16:3,14:20,13:10,11:["&2i;"],12:["#2j"],1a:"1c",19:K,17:0,18:2k}})(E);',62,145,'||||var|Math|px|top||random|||||||||||||||||||||||||||function|css|floor|left|jQuery|if|WIN_HEIGHT|overflow|html|length|50|fn|jSnow|setWaH|width|height|generateFlake|window|for|remove|f_left|f_top|rad||defaults|flakes||flakeCode|flakeColor|flakeMinSize|flakeMaxSize|fallingSpeedMin|fallingSpeedMax|swingMin|swingMax|interval|zIndex|browser|auto|display|block|position|absolute|scrollTop|hidden|body|false|animateFlakes|this|null|removeData|indexOf|src|data|posData|swingRange|navigator|userAgent|toLowerCase|match|iPhone|extend|msie|parseFloat|version|div|visible|1px|scroll|100|prepend|Array|setInterval|onresize|innerHeight|document|documentElement|clientHeight|kill|clearInterval|onscroll|span|gif|png|new|Image|img|alt||color|fontSize|cursor|default||index|append|ceil|push|Number|cos|180|PI|splice|true|return|30|bull|fff|200'.split('|'),0,{}));
jQuery(document).ready(function(){
	var today=new Date();
	var startDate=new Date(2012,11,1,0,0,0);
	var endDate=new Date(2012,11,31,0,0,0);
	if((today>startDate) && (today<endDate)){
		jQuery().jSnow();
	}
});
	return stack;
})(stacks.stacks_in_7140_page117);


// Javascript for stacks_in_20908_page117
// ---------------------------------------------------------------------

// Each stack has its own object with its own namespace.  The name of
// that object is the same as the stack's id.
stacks.stacks_in_20908_page117 = {};

// A closure is defined and assigned to the stack's object.  The object
// is also passed in as 'stack' which gives you a shorthand for referring
// to this object from elsewhere.
stacks.stacks_in_20908_page117 = (function(stack) {

	// When jQuery is used it will be available as $ and jQuery but only
	// inside the closure.
	var jQuery = stacks.jQuery;
	var $ = jQuery;
	
/*
 * jQuery EasyTabs plugin 2.3.3
 *
 * Copyright (c) 2010-2011 Steve Schwartz (JangoSteve)
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Date: Thu Sep 15 09:50:00 2011 -0500
 */
jQuery(document).ready(function(jQuery){
( function($) {

  // Triggers an event on an element and returns the event result
	function fire(obj, name, data) {
		var event = $.Event(name);
		obj.trigger(event, data);
		return event.result !== false;
	}
  
  $.fn.easyTabs = function(){ $.error("easyTabs() is no longer used. Now use easytabs() -- no capitalization."); }
  
  $.fn.easytabs = function(options) {
    
    var args = arguments;

    return this.each(function() {
      var $container = $(this),
          data = $container.data("easytabs");
      
      // Initialization was called with $(el).easytabs( { options } ); 
      if ( ! data ) {
        $.fn.easytabs.methods.init.apply($container,[options]);
        $.fn.easytabs.methods.initHashChange.apply($container);
        $.fn.easytabs.methods.initCycle.apply($container);
      }
      
      // User called public method
      if ( $.fn.easytabs.publicMethods[options] ){
        return $.fn.easytabs.publicMethods[ options ].apply( $container, Array.prototype.slice.call( args, 1 ));
      }
    });
  }
  
  $.fn.easytabs.defaults = {
    animate: true, 
    panelActiveClass: "active", 
    tabActiveClass: "active", 
    defaultTab: "li:first-child", 
    animationSpeed: "normal", 
    tabs: "> ul > li", 
    updateHash: true, 
    cycle: false,
    collapsible: false,
    collapsedClass: "collapsed",
    collapsedByDefault: true,
    uiTabs: false,
    transitionIn: 'fadeIn',
    transitionOut: 'fadeOut',
    transitionCollapse: 'slideUp',
    transitionUncollapse: 'slideDown',
    cache: true
  }
  
  $.fn.easytabs.methods = {
    init: function(options){
      var $container = this,
          opts,
          $tabs,
          $panels = $(),
          $defaultTab,
          $defaultTabLink,
          animationSpeeds = {
            fast: 200,
            normal: 400,
            slow: 600
          };

      if ( options && options['uiTabs'] ) {
        $container.addClass('ui-tabs');
        $.extend($.fn.easytabs.defaults, {
          tabActiveClass: 'ui-tabs-selected'
        });
      }
      // If collapsible is true and defaultTab specified, assume user wants defaultTab showing (not collapsed)
      if ( options && options.collapsible && options.defaultTab ) $.fn.easytabs.defaults.collapsedByDefault = false;
      opts = $.extend({}, $.fn.easytabs.defaults, options);
      // Convert 'normal', 'fast', and 'slow' animation speed settings to their respective speed in milliseconds
      if( typeof(opts.animationSpeed) == 'string' ) opts.animationSpeed = animationSpeeds[opts.animationSpeed];
      $tabs = $container.find(opts.tabs);

      $tabs.each(function(){
        var $tab = $(this), $a = $tab.children('a'), targetId = $tab.children('a').data('target');

        // If the tab has a `data-target` attribute, and is thus an ajax tab
        if ( targetId !== undefined && targetId !== null ) {
          $tab.data('easytabs', { ajax: $a.attr('href') });
        } else {
          targetId = $a.attr('href');
        }

        targetId = targetId.match(/#([^\?]+)/)[0].substr(1);
        $matchingPanel = $container.find("#" + targetId);
        if ( $matchingPanel.size() > 0 ) {
          // Store panel height before hiding
          $matchingPanel.data('easytabs', {position: $matchingPanel.css('position'), visibility: $matchingPanel.css('visibility')});
          $panels = $panels.add($matchingPanel.hide());
          $tab.data('easytabs', $.extend($tab.data('easytabs'), {panel: $matchingPanel}));
        } else {
          $tabs = $tabs.not($tab); // excludes tabs from set that don't have a target div
        }
      });
      $('a.anchor').remove().prependTo('body');
      
      $container.data("easytabs", {
        opts: opts,
        skipUpdateToHash: false,
        tabs: $tabs,
        panels: $panels
      }).attr('data-easytabs', true);
      
      $.fn.easytabs.methods.setDefaultTab.apply($container);
      
      $tabs.children("a").bind("click.easytabs", function(e) {
        e.preventDefault();
        $container.data("easytabs").opts.cycle = false;
        $container.data("easytabs").skipUpdateToHash = false;
        $clicked = $(this);
        $.fn.easytabs.methods.selectTab.apply($clicked, [$container]);
      });
    },
    loadFromData: function(){
      return this.data("easytabs");
    },
    setDefaultTab: function(){
      var $container = this,
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          opts = data.opts,
          $tabs = data.tabs,
          $panels = data.panels,
          hash = window.location.hash.match(/^[^\?]*/)[0],
          $selectedTab = $.fn.easytabs.methods.matchTab($tabs, hash).parent(),
          $defaultTab,
          $defaultTabLink,
          $defaultPanel,
          $defaultAjaxUrl,
          $panel;
      
      // If hash directly matches one of the tabs, active on page-load
      if( $selectedTab.size() == 1 ){
        $defaultTab = $selectedTab;
        $container.data("easytabs").opts.cycle = false;
      } else {
        $panel = $.fn.easytabs.methods.matchInPanel($panels, hash);
        // If one of the panels contains the element matching the hash,
        // make it active on page-load
        if ( $panel.length ) {
          hash = '#' + $panel.attr('id');
          $defaultTab = $.fn.easytabs.methods.matchTab($tabs, hash).parent();
        // Otherwise, make the default tab the one that's active on page-load
        } else {
          $defaultTab = $tabs.parent().find(opts.defaultTab);
          if ( $defaultTab.size() == 0 ) { $.error("The specified default tab ('" + opts.defaultTab + "') could not be found in the tab set."); }
        }
      }
      $defaultTabLink = $defaultTab.children("a").first();
      $container.data("easytabs").defaultTab = $defaultTab;
      $container.data("easytabs").defaultTabLink = $defaultTabLink;
      
      if( opts.collapsible && $selectedTab.size() == 0 && opts.collapsedByDefault ){
        $defaultTab.addClass(opts.collapsedClass).children().addClass(opts.collapsedClass);
      } else {
        $defaultPanel = $( $defaultTab.data('easytabs').panel );
        $defaultAjaxUrl = $defaultTab.data('easytabs').ajax;

        if ( $defaultAjaxUrl && (!opts.cache || !$defaultTab.data('easytabs').cached) ) {
          $container.trigger('easytabs:ajax:beforeSend', [$defaultTabLink, $defaultPanel]);
          $defaultPanel.load($defaultAjaxUrl, function(response, status, xhr){
            $defaultTab.data('easytabs').cached = true;
            $container.trigger('easytabs:ajax:complete', [$defaultTabLink, $defaultPanel, response, status, xhr]);
          });
        }

        $defaultTab.data('easytabs').panel.show().addClass(opts.panelActiveClass);
        $defaultTab.addClass(opts.tabActiveClass).children().addClass(opts.tabActiveClass);
      }
    },
    getHeightForHidden: function(){
      if( this.data('easytabs') && this.data('easytabs').lastHeight ) return this.data('easytabs').lastHeight;
      var display = this.css('display'), // this is the only property easytabs changes, so we need to grab its value on each tab change
          height = this
            // Workaround, because firefox returns wrong height if element itself has absolute positioning
            .wrap($('<div>', {position: 'absolute', 'visibility': 'hidden', 'overflow': 'hidden'}))
            .css({'position':'relative','visibility':'hidden','display':'block'})
            .outerHeight();
      this.unwrap();
      // Return element to previous state
      this.css({
        position: this.data('easytabs').position,
        visibility: this.data('easytabs').visibility,
        display: display
      });
      // Cache height
      $.extend(this.data('easytabs'), {lastHeight: height});
      return height;
    },
    setAndReturnHeight: function() {
      // Since the height of the visible panel may have been manipulated due to interaction,
      // we want to re-cache the visible height on each tab change
      var height = this.outerHeight(),
          cache = {lastHeight: height};
      if( this.data('easytabs') ) {
        $.extend(this.data('easytabs'), cache);
      } else {
        this.data('easytabs', cache);
      }
      return height;
    },
    selectTab: function($container,callback){
      var $clicked = this,
          url = window.location,
          hash = url.hash.match(/^[^\?]*/)[0],
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          opts = data.opts,
          skipUpdateToHash = data.skipUpdateToHash,
          $tabs = data.tabs,
          $panels = data.panels,
          $targetPanel = $clicked.parent().data('easytabs').panel,
          ajaxUrl = $clicked.parent().data('easytabs').ajax,
          $defaultTabLink = data.defaultTabLink,
          transitions = ( opts.animate ) ? {
            show: opts.transitionIn,
            hide: opts.transitionOut,
            speed: opts.animationSpeed,
            collapse: opts.transitionCollapse,
            uncollapse: opts.transitionUncollapse,
            halfSpeed: opts.animationSpeed / 2
          } :
          {
            show: "show",
            hide: "hide",
            speed: 0,
            collapse: "hide",
            uncollapse: "show",
            halfSpeed: 0
          };
      
      // Tab is collapsible and active => needs to be collapsed
      if( opts.collapsible && ! skipUpdateToHash && ($clicked.hasClass(opts.tabActiveClass) || $clicked.hasClass(opts.collapsedClass)) ) {
        $panels.stop(true,true);
        if( fire($container,"easytabs:before", [$clicked, $targetPanel, data]) ){
          $tabs.filter("." + opts.tabActiveClass).removeClass(opts.tabActiveClass).children().removeClass(opts.tabActiveClass);
          if( $clicked.hasClass(opts.collapsedClass) ){
            if( ajaxUrl && (!opts.cache || !$clicked.parent().data('easytabs').cached) ) {
              $container.trigger('easytabs:ajax:beforeSend', [$clicked, $targetPanel]);
              $targetPanel.load(ajaxUrl, function(response, status, xhr){
                $clicked.parent().data('easytabs').cached = true;
                $container.trigger('easytabs:ajax:complete', [$clicked, $targetPanel, response, status, xhr]);
              });
            }
            $clicked.parent()
              .removeClass(opts.collapsedClass)
              .addClass(opts.tabActiveClass)
              .children()
                .removeClass(opts.collapsedClass)
                .addClass(opts.tabActiveClass);
            $targetPanel
              .addClass(opts.panelActiveClass)
              [transitions.uncollapse](transitions.speed, function(){
                $container.trigger('easytabs:midTransition', [$clicked, $targetPanel, data]);
                if(typeof callback == 'function') callback();
              });
          } else {
            $clicked.parent().addClass(opts.collapsedClass).children().addClass(opts.collapsedClass);
            $targetPanel
              .removeClass(opts.panelActiveClass)
              [transitions.collapse](transitions.speed, function(){
                $container.trigger("easytabs:midTransition", [$clicked, $targetPanel, data]);
                if(typeof callback == 'function') callback();
              });
          }
        }
      // Tab is not active and panel is not active => select tab
      } else if( ! $clicked.hasClass(opts.tabActiveClass) || ! $targetPanel.hasClass(opts.panelActiveClass) ){
        $panels.stop(true,true);
        if( fire($container,"easytabs:before", [$clicked, $targetPanel, data]) ){
          var $visiblePanel = $panels.filter(":visible"),
              $panelContainer = $targetPanel.parent(),
              targetHeight,
              visibleHeight,
              heightDifference,
              showPanel;

          if (opts.animate) {
            targetHeight = $.fn.easytabs.methods.getHeightForHidden.apply($targetPanel);
            visibleHeight = $visiblePanel.length ? $.fn.easytabs.methods.setAndReturnHeight.apply($visiblePanel) : 0;
            heightDifference = targetHeight - visibleHeight;
          }

          showPanel = function(){
            // At this point, the previous panel is hidden, and the new one will be selected
            $container.trigger("easytabs:midTransition", [$clicked, $targetPanel, data]);

            // Gracefully animate between panels of differing heights, start height change animation *after* panel change if panel needs to contract,
            // so that there is no chance of making the visible panel overflowing the height of the target panel
            if (opts.animate && opts.transitionIn == 'fadeIn') {
              if (heightDifference < 0)
                $panelContainer.animate({
                  height: $panelContainer.height() + heightDifference
                }, transitions.halfSpeed ).css({ 'min-height': '' });
            }

            if ( opts.updateHash && ! skipUpdateToHash ) {
              //window.location = url.toString().replace((url.pathname + hash), (url.pathname + $clicked.attr("href")));
              // Not sure why this behaves so differently, but it's more straight forward and seems to have less side-effects
              window.location.hash = '#' + $targetPanel.attr('id');
            } else {
              $container.data("easytabs").skipUpdateToHash = false;
            }
            $targetPanel
              [transitions.show](transitions.speed, function(){
                // Save the new tabs and panels to the container data (with new active tab/panel)
                $container.data("easytabs").tabs = $tabs;
                $container.data("easytabs").panels = $panels;

                $panelContainer.css({height: '', 'min-height': ''}); // After the transition, unset the height
                $container.trigger("easytabs:after", [$clicked, $targetPanel, data]); 
                // callback only gets called if selectTab actually does something, since it's inside the if block
                if(typeof callback == 'function'){
                  callback();
                }
            });
          };

          if ( ajaxUrl && (!opts.cache || !$clicked.parent().data('easytabs').cached) ) {
            $container.trigger('easytabs:ajax:beforeSend', [$clicked, $targetPanel]);
            $targetPanel.load(ajaxUrl, function(response, status, xhr){
              $clicked.parent().data('easytabs').cached = true;
              $container.trigger('easytabs:ajax:complete', [$clicked, $targetPanel, response, status, xhr]);
            });
          }
          // Gracefully animate between panels of differing heights, start height change animation *before* panel change if panel needs to expand,
          // so that there is no chance of making the target panel overflowing the height of the visible panel
          if( opts.animate && opts.transitionOut == 'fadeOut' ) {
            if( heightDifference > 0 ) {
              $panelContainer.animate({
                height: ( $panelContainer.height() + heightDifference )
              }, transitions.halfSpeed );
            } else {
              // Prevent height jumping before height transition is triggered at midTransition
              $panelContainer.css({ 'min-height': $panelContainer.height() });
            }
          }

          // Change the active tab *first* to provide immediate feedback when the user clicks
          $tabs.filter("." + opts.tabActiveClass).removeClass(opts.tabActiveClass).children().removeClass(opts.tabActiveClass);
          $tabs.filter("." + opts.collapsedClass).removeClass(opts.collapsedClass).children().removeClass(opts.collapsedClass);
          $clicked.parent().addClass(opts.tabActiveClass).children().addClass(opts.tabActiveClass);
          
          $panels.filter("." + opts.panelActiveClass).removeClass(opts.panelActiveClass);
          $targetPanel.addClass(opts.panelActiveClass);

          if( $visiblePanel.size() > 0 ) {
            $visiblePanel
              [transitions.hide](transitions.speed, showPanel);
          } else {
            $targetPanel
              [transitions.uncollapse](transitions.speed, showPanel);
          }
        }
      }
    },
    matchTab: function($tabs, hash) {
      return $tabs.find("[href='" + hash + "'],[data-target='" + hash + "']").first();
    },
    matchInPanel: function($panels, hash) {
      return ( hash ? $panels.filter(':has(' + hash + ')').first() : [] );
    },
    selectTabFromHashChange: function() {
      var $container = this,
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          opts = data.opts,
          $tabs = data.tabs,
          $panels = data.panels,
          $defaultTab = data.defaultTab,
          $defaultTabLink = data.defaultTabLink,
          hash = window.location.hash.match(/^[^\?]*/)[0],
          $tab = $.fn.easytabs.methods.matchTab($tabs, hash),
          $panel;
      if ( opts.updateHash ) {
        // If hash directly matches tab
        if( $tab.length ){
          $container.data("easytabs").skipUpdateToHash = true;
          $.fn.easytabs.methods.selectTab.apply( $tab, [$container] );
        } else {
          $panel = $.fn.easytabs.methods.matchInPanel($panels, hash);
          // If panel contains element matching hash
          if ( $panel.length ) {
            hash = '#' + $panel.attr('id');
            $tab = $.fn.easytabs.methods.matchTab($tabs, hash);
            $container.data('easytabs').skipUpdateToHash = true;
            $.fn.easytabs.methods.selectTab.apply( $tab, [$container] );
          // If default tab is not active...
          } else if ( ! $defaultTab.hasClass(opts.tabActiveClass) && ! opts.cycle ) {
            // ...and hash is blank or matches a parent of the tab container
            if ( hash == '' || $container.closest(hash).length ) {
              $container.data("easytabs").skipUpdateToHash = true;
              $.fn.easytabs.methods.selectTab.apply( $defaultTabLink, [$container] );
            }
          }
        }
      }
    },
    cycleTabs: function(tabNumber){
      var $container = this,
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          opts = data.opts,
          $tabs = data.tabs;
      if(opts.cycle){
        tabNumber = tabNumber % $tabs.size();
        $tab = $($tabs[tabNumber]).children("a").first();
        $container.data("easytabs").skipUpdateToHash = true;
        $.fn.easytabs.methods.selectTab.apply($tab, [$container, function(){
          setTimeout(function(){ $.fn.easytabs.methods.cycleTabs.apply($container,[tabNumber + 1]);}, opts.cycle);
        }]);
      }
    },
    initHashChange: function(){
      var $container = this;
      // enabling back-button with jquery.hashchange plugin
      // http://benalman.com/projects/jquery-hashchange-plugin/
      if(typeof $(window).hashchange == 'function'){
        $(window).hashchange( function(){
          $.fn.easytabs.methods.selectTabFromHashChange.apply($container);
        });
      }else if($.address && typeof $.address.change == 'function'){ // back-button with jquery.address plugin http://www.asual.com/jquery/address/docs/
        $.address.change( function(){
          $.fn.easytabs.methods.selectTabFromHashChange.apply($container);
        });
      }
    },
    initCycle: function(){
      var $container = this,
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          opts = data.opts,
          $tabs = data.tabs,
          $defaultTab = data.defaultTab,
          tabNumber;
      if (opts.cycle) {
        tabNumber = $tabs.index($defaultTab);
        setTimeout( function(){ $.fn.easytabs.methods.cycleTabs.apply($container, [tabNumber + 1]); }, opts.cycle);
      }
    }
  }
  
  $.fn.easytabs.publicMethods = {
    select: function(tabSelector){
      var $container = this,
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          $tabs = data.tabs,
          $tab;
      if ( ($tab = $tabs.filter(tabSelector)).size() == 0 ) {                       // Find tab container that matches selector (like 'li#tab-one' which contains tab link)
        if ( ($tab = $tabs.find("a[href='" + tabSelector + "']")).size() == 0 ) {   // Find direct tab link that matches href (like 'a[href="#panel-1"]')
          if ( ($tab = $tabs.find("a" + tabSelector)).size() == 0 ) {               // Find direct tab link that matches selector (like 'a#tab-1')
            if ( ($tab = $tabs.find("[data-target='" + tabSelector + "']")).size() == 0 ) { // Find direct tab link that matches data-target (lik 'a[data-target="#panel-1"]')
              $.error('Tab \'' + tabSelector + '\' does not exist in tab set');
            }
          }
        }
      } else {
        $tab = $tab.children("a").first();                                          // Select the child tab link, since the first option finds the tab container (like <li>)
      }
      $.fn.easytabs.methods.selectTab.apply($tab, [$container]);
    }
  }
})(jQuery);
});


jQuery(document).ready(function(){ 
    jQuery('#stacks_in_20908_page117 .tab-container-1').easytabs({
    defaultTab: "li:nth-child(1)",
    cycle: 0,
    animationSpeed: "normal",
    transitionIn: 'fadeIn', transitionOut: 'fadeOut'
  
    }); 
  });
	return stack;
})(stacks.stacks_in_20908_page117);


// Javascript for stacks_in_20925_page117
// ---------------------------------------------------------------------

// Each stack has its own object with its own namespace.  The name of
// that object is the same as the stack's id.
stacks.stacks_in_20925_page117 = {};

// A closure is defined and assigned to the stack's object.  The object
// is also passed in as 'stack' which gives you a shorthand for referring
// to this object from elsewhere.
stacks.stacks_in_20925_page117 = (function(stack) {

	// When jQuery is used it will be available as $ and jQuery but only
	// inside the closure.
	var jQuery = stacks.jQuery;
	var $ = jQuery;
	
/*
 * jQuery EasyTabs plugin 2.3.3
 *
 * Copyright (c) 2010-2011 Steve Schwartz (JangoSteve)
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Date: Thu Sep 15 09:50:00 2011 -0500
 */
jQuery(document).ready(function(jQuery){
( function($) {

  // Triggers an event on an element and returns the event result
	function fire(obj, name, data) {
		var event = $.Event(name);
		obj.trigger(event, data);
		return event.result !== false;
	}
  
  $.fn.easyTabs = function(){ $.error("easyTabs() is no longer used. Now use easytabs() -- no capitalization."); }
  
  $.fn.easytabs = function(options) {
    
    var args = arguments;

    return this.each(function() {
      var $container = $(this),
          data = $container.data("easytabs");
      
      // Initialization was called with $(el).easytabs( { options } ); 
      if ( ! data ) {
        $.fn.easytabs.methods.init.apply($container,[options]);
        $.fn.easytabs.methods.initHashChange.apply($container);
        $.fn.easytabs.methods.initCycle.apply($container);
      }
      
      // User called public method
      if ( $.fn.easytabs.publicMethods[options] ){
        return $.fn.easytabs.publicMethods[ options ].apply( $container, Array.prototype.slice.call( args, 1 ));
      }
    });
  }
  
  $.fn.easytabs.defaults = {
    animate: true, 
    panelActiveClass: "active", 
    tabActiveClass: "active", 
    defaultTab: "li:first-child", 
    animationSpeed: "normal", 
    tabs: "> ul > li", 
    updateHash: true, 
    cycle: false,
    collapsible: false,
    collapsedClass: "collapsed",
    collapsedByDefault: true,
    uiTabs: false,
    transitionIn: 'fadeIn',
    transitionOut: 'fadeOut',
    transitionCollapse: 'slideUp',
    transitionUncollapse: 'slideDown',
    cache: true
  }
  
  $.fn.easytabs.methods = {
    init: function(options){
      var $container = this,
          opts,
          $tabs,
          $panels = $(),
          $defaultTab,
          $defaultTabLink,
          animationSpeeds = {
            fast: 200,
            normal: 400,
            slow: 600
          };

      if ( options && options['uiTabs'] ) {
        $container.addClass('ui-tabs');
        $.extend($.fn.easytabs.defaults, {
          tabActiveClass: 'ui-tabs-selected'
        });
      }
      // If collapsible is true and defaultTab specified, assume user wants defaultTab showing (not collapsed)
      if ( options && options.collapsible && options.defaultTab ) $.fn.easytabs.defaults.collapsedByDefault = false;
      opts = $.extend({}, $.fn.easytabs.defaults, options);
      // Convert 'normal', 'fast', and 'slow' animation speed settings to their respective speed in milliseconds
      if( typeof(opts.animationSpeed) == 'string' ) opts.animationSpeed = animationSpeeds[opts.animationSpeed];
      $tabs = $container.find(opts.tabs);

      $tabs.each(function(){
        var $tab = $(this), $a = $tab.children('a'), targetId = $tab.children('a').data('target');

        // If the tab has a `data-target` attribute, and is thus an ajax tab
        if ( targetId !== undefined && targetId !== null ) {
          $tab.data('easytabs', { ajax: $a.attr('href') });
        } else {
          targetId = $a.attr('href');
        }

        targetId = targetId.match(/#([^\?]+)/)[0].substr(1);
        $matchingPanel = $container.find("#" + targetId);
        if ( $matchingPanel.size() > 0 ) {
          // Store panel height before hiding
          $matchingPanel.data('easytabs', {position: $matchingPanel.css('position'), visibility: $matchingPanel.css('visibility')});
          $panels = $panels.add($matchingPanel.hide());
          $tab.data('easytabs', $.extend($tab.data('easytabs'), {panel: $matchingPanel}));
        } else {
          $tabs = $tabs.not($tab); // excludes tabs from set that don't have a target div
        }
      });
      $('a.anchor').remove().prependTo('body');
      
      $container.data("easytabs", {
        opts: opts,
        skipUpdateToHash: false,
        tabs: $tabs,
        panels: $panels
      }).attr('data-easytabs', true);
      
      $.fn.easytabs.methods.setDefaultTab.apply($container);
      
      $tabs.children("a").bind("click.easytabs", function(e) {
        e.preventDefault();
        $container.data("easytabs").opts.cycle = false;
        $container.data("easytabs").skipUpdateToHash = false;
        $clicked = $(this);
        $.fn.easytabs.methods.selectTab.apply($clicked, [$container]);
      });
    },
    loadFromData: function(){
      return this.data("easytabs");
    },
    setDefaultTab: function(){
      var $container = this,
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          opts = data.opts,
          $tabs = data.tabs,
          $panels = data.panels,
          hash = window.location.hash.match(/^[^\?]*/)[0],
          $selectedTab = $.fn.easytabs.methods.matchTab($tabs, hash).parent(),
          $defaultTab,
          $defaultTabLink,
          $defaultPanel,
          $defaultAjaxUrl,
          $panel;
      
      // If hash directly matches one of the tabs, active on page-load
      if( $selectedTab.size() == 1 ){
        $defaultTab = $selectedTab;
        $container.data("easytabs").opts.cycle = false;
      } else {
        $panel = $.fn.easytabs.methods.matchInPanel($panels, hash);
        // If one of the panels contains the element matching the hash,
        // make it active on page-load
        if ( $panel.length ) {
          hash = '#' + $panel.attr('id');
          $defaultTab = $.fn.easytabs.methods.matchTab($tabs, hash).parent();
        // Otherwise, make the default tab the one that's active on page-load
        } else {
          $defaultTab = $tabs.parent().find(opts.defaultTab);
          if ( $defaultTab.size() == 0 ) { $.error("The specified default tab ('" + opts.defaultTab + "') could not be found in the tab set."); }
        }
      }
      $defaultTabLink = $defaultTab.children("a").first();
      $container.data("easytabs").defaultTab = $defaultTab;
      $container.data("easytabs").defaultTabLink = $defaultTabLink;
      
      if( opts.collapsible && $selectedTab.size() == 0 && opts.collapsedByDefault ){
        $defaultTab.addClass(opts.collapsedClass).children().addClass(opts.collapsedClass);
      } else {
        $defaultPanel = $( $defaultTab.data('easytabs').panel );
        $defaultAjaxUrl = $defaultTab.data('easytabs').ajax;

        if ( $defaultAjaxUrl && (!opts.cache || !$defaultTab.data('easytabs').cached) ) {
          $container.trigger('easytabs:ajax:beforeSend', [$defaultTabLink, $defaultPanel]);
          $defaultPanel.load($defaultAjaxUrl, function(response, status, xhr){
            $defaultTab.data('easytabs').cached = true;
            $container.trigger('easytabs:ajax:complete', [$defaultTabLink, $defaultPanel, response, status, xhr]);
          });
        }

        $defaultTab.data('easytabs').panel.show().addClass(opts.panelActiveClass);
        $defaultTab.addClass(opts.tabActiveClass).children().addClass(opts.tabActiveClass);
      }
    },
    getHeightForHidden: function(){
      if( this.data('easytabs') && this.data('easytabs').lastHeight ) return this.data('easytabs').lastHeight;
      var display = this.css('display'), // this is the only property easytabs changes, so we need to grab its value on each tab change
          height = this
            // Workaround, because firefox returns wrong height if element itself has absolute positioning
            .wrap($('<div>', {position: 'absolute', 'visibility': 'hidden', 'overflow': 'hidden'}))
            .css({'position':'relative','visibility':'hidden','display':'block'})
            .outerHeight();
      this.unwrap();
      // Return element to previous state
      this.css({
        position: this.data('easytabs').position,
        visibility: this.data('easytabs').visibility,
        display: display
      });
      // Cache height
      $.extend(this.data('easytabs'), {lastHeight: height});
      return height;
    },
    setAndReturnHeight: function() {
      // Since the height of the visible panel may have been manipulated due to interaction,
      // we want to re-cache the visible height on each tab change
      var height = this.outerHeight(),
          cache = {lastHeight: height};
      if( this.data('easytabs') ) {
        $.extend(this.data('easytabs'), cache);
      } else {
        this.data('easytabs', cache);
      }
      return height;
    },
    selectTab: function($container,callback){
      var $clicked = this,
          url = window.location,
          hash = url.hash.match(/^[^\?]*/)[0],
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          opts = data.opts,
          skipUpdateToHash = data.skipUpdateToHash,
          $tabs = data.tabs,
          $panels = data.panels,
          $targetPanel = $clicked.parent().data('easytabs').panel,
          ajaxUrl = $clicked.parent().data('easytabs').ajax,
          $defaultTabLink = data.defaultTabLink,
          transitions = ( opts.animate ) ? {
            show: opts.transitionIn,
            hide: opts.transitionOut,
            speed: opts.animationSpeed,
            collapse: opts.transitionCollapse,
            uncollapse: opts.transitionUncollapse,
            halfSpeed: opts.animationSpeed / 2
          } :
          {
            show: "show",
            hide: "hide",
            speed: 0,
            collapse: "hide",
            uncollapse: "show",
            halfSpeed: 0
          };
      
      // Tab is collapsible and active => needs to be collapsed
      if( opts.collapsible && ! skipUpdateToHash && ($clicked.hasClass(opts.tabActiveClass) || $clicked.hasClass(opts.collapsedClass)) ) {
        $panels.stop(true,true);
        if( fire($container,"easytabs:before", [$clicked, $targetPanel, data]) ){
          $tabs.filter("." + opts.tabActiveClass).removeClass(opts.tabActiveClass).children().removeClass(opts.tabActiveClass);
          if( $clicked.hasClass(opts.collapsedClass) ){
            if( ajaxUrl && (!opts.cache || !$clicked.parent().data('easytabs').cached) ) {
              $container.trigger('easytabs:ajax:beforeSend', [$clicked, $targetPanel]);
              $targetPanel.load(ajaxUrl, function(response, status, xhr){
                $clicked.parent().data('easytabs').cached = true;
                $container.trigger('easytabs:ajax:complete', [$clicked, $targetPanel, response, status, xhr]);
              });
            }
            $clicked.parent()
              .removeClass(opts.collapsedClass)
              .addClass(opts.tabActiveClass)
              .children()
                .removeClass(opts.collapsedClass)
                .addClass(opts.tabActiveClass);
            $targetPanel
              .addClass(opts.panelActiveClass)
              [transitions.uncollapse](transitions.speed, function(){
                $container.trigger('easytabs:midTransition', [$clicked, $targetPanel, data]);
                if(typeof callback == 'function') callback();
              });
          } else {
            $clicked.parent().addClass(opts.collapsedClass).children().addClass(opts.collapsedClass);
            $targetPanel
              .removeClass(opts.panelActiveClass)
              [transitions.collapse](transitions.speed, function(){
                $container.trigger("easytabs:midTransition", [$clicked, $targetPanel, data]);
                if(typeof callback == 'function') callback();
              });
          }
        }
      // Tab is not active and panel is not active => select tab
      } else if( ! $clicked.hasClass(opts.tabActiveClass) || ! $targetPanel.hasClass(opts.panelActiveClass) ){
        $panels.stop(true,true);
        if( fire($container,"easytabs:before", [$clicked, $targetPanel, data]) ){
          var $visiblePanel = $panels.filter(":visible"),
              $panelContainer = $targetPanel.parent(),
              targetHeight,
              visibleHeight,
              heightDifference,
              showPanel;

          if (opts.animate) {
            targetHeight = $.fn.easytabs.methods.getHeightForHidden.apply($targetPanel);
            visibleHeight = $visiblePanel.length ? $.fn.easytabs.methods.setAndReturnHeight.apply($visiblePanel) : 0;
            heightDifference = targetHeight - visibleHeight;
          }

          showPanel = function(){
            // At this point, the previous panel is hidden, and the new one will be selected
            $container.trigger("easytabs:midTransition", [$clicked, $targetPanel, data]);

            // Gracefully animate between panels of differing heights, start height change animation *after* panel change if panel needs to contract,
            // so that there is no chance of making the visible panel overflowing the height of the target panel
            if (opts.animate && opts.transitionIn == 'fadeIn') {
              if (heightDifference < 0)
                $panelContainer.animate({
                  height: $panelContainer.height() + heightDifference
                }, transitions.halfSpeed ).css({ 'min-height': '' });
            }

            if ( opts.updateHash && ! skipUpdateToHash ) {
              //window.location = url.toString().replace((url.pathname + hash), (url.pathname + $clicked.attr("href")));
              // Not sure why this behaves so differently, but it's more straight forward and seems to have less side-effects
              window.location.hash = '#' + $targetPanel.attr('id');
            } else {
              $container.data("easytabs").skipUpdateToHash = false;
            }
            $targetPanel
              [transitions.show](transitions.speed, function(){
                // Save the new tabs and panels to the container data (with new active tab/panel)
                $container.data("easytabs").tabs = $tabs;
                $container.data("easytabs").panels = $panels;

                $panelContainer.css({height: '', 'min-height': ''}); // After the transition, unset the height
                $container.trigger("easytabs:after", [$clicked, $targetPanel, data]); 
                // callback only gets called if selectTab actually does something, since it's inside the if block
                if(typeof callback == 'function'){
                  callback();
                }
            });
          };

          if ( ajaxUrl && (!opts.cache || !$clicked.parent().data('easytabs').cached) ) {
            $container.trigger('easytabs:ajax:beforeSend', [$clicked, $targetPanel]);
            $targetPanel.load(ajaxUrl, function(response, status, xhr){
              $clicked.parent().data('easytabs').cached = true;
              $container.trigger('easytabs:ajax:complete', [$clicked, $targetPanel, response, status, xhr]);
            });
          }
          // Gracefully animate between panels of differing heights, start height change animation *before* panel change if panel needs to expand,
          // so that there is no chance of making the target panel overflowing the height of the visible panel
          if( opts.animate && opts.transitionOut == 'fadeOut' ) {
            if( heightDifference > 0 ) {
              $panelContainer.animate({
                height: ( $panelContainer.height() + heightDifference )
              }, transitions.halfSpeed );
            } else {
              // Prevent height jumping before height transition is triggered at midTransition
              $panelContainer.css({ 'min-height': $panelContainer.height() });
            }
          }

          // Change the active tab *first* to provide immediate feedback when the user clicks
          $tabs.filter("." + opts.tabActiveClass).removeClass(opts.tabActiveClass).children().removeClass(opts.tabActiveClass);
          $tabs.filter("." + opts.collapsedClass).removeClass(opts.collapsedClass).children().removeClass(opts.collapsedClass);
          $clicked.parent().addClass(opts.tabActiveClass).children().addClass(opts.tabActiveClass);
          
          $panels.filter("." + opts.panelActiveClass).removeClass(opts.panelActiveClass);
          $targetPanel.addClass(opts.panelActiveClass);

          if( $visiblePanel.size() > 0 ) {
            $visiblePanel
              [transitions.hide](transitions.speed, showPanel);
          } else {
            $targetPanel
              [transitions.uncollapse](transitions.speed, showPanel);
          }
        }
      }
    },
    matchTab: function($tabs, hash) {
      return $tabs.find("[href='" + hash + "'],[data-target='" + hash + "']").first();
    },
    matchInPanel: function($panels, hash) {
      return ( hash ? $panels.filter(':has(' + hash + ')').first() : [] );
    },
    selectTabFromHashChange: function() {
      var $container = this,
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          opts = data.opts,
          $tabs = data.tabs,
          $panels = data.panels,
          $defaultTab = data.defaultTab,
          $defaultTabLink = data.defaultTabLink,
          hash = window.location.hash.match(/^[^\?]*/)[0],
          $tab = $.fn.easytabs.methods.matchTab($tabs, hash),
          $panel;
      if ( opts.updateHash ) {
        // If hash directly matches tab
        if( $tab.length ){
          $container.data("easytabs").skipUpdateToHash = true;
          $.fn.easytabs.methods.selectTab.apply( $tab, [$container] );
        } else {
          $panel = $.fn.easytabs.methods.matchInPanel($panels, hash);
          // If panel contains element matching hash
          if ( $panel.length ) {
            hash = '#' + $panel.attr('id');
            $tab = $.fn.easytabs.methods.matchTab($tabs, hash);
            $container.data('easytabs').skipUpdateToHash = true;
            $.fn.easytabs.methods.selectTab.apply( $tab, [$container] );
          // If default tab is not active...
          } else if ( ! $defaultTab.hasClass(opts.tabActiveClass) && ! opts.cycle ) {
            // ...and hash is blank or matches a parent of the tab container
            if ( hash == '' || $container.closest(hash).length ) {
              $container.data("easytabs").skipUpdateToHash = true;
              $.fn.easytabs.methods.selectTab.apply( $defaultTabLink, [$container] );
            }
          }
        }
      }
    },
    cycleTabs: function(tabNumber){
      var $container = this,
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          opts = data.opts,
          $tabs = data.tabs;
      if(opts.cycle){
        tabNumber = tabNumber % $tabs.size();
        $tab = $($tabs[tabNumber]).children("a").first();
        $container.data("easytabs").skipUpdateToHash = true;
        $.fn.easytabs.methods.selectTab.apply($tab, [$container, function(){
          setTimeout(function(){ $.fn.easytabs.methods.cycleTabs.apply($container,[tabNumber + 1]);}, opts.cycle);
        }]);
      }
    },
    initHashChange: function(){
      var $container = this;
      // enabling back-button with jquery.hashchange plugin
      // http://benalman.com/projects/jquery-hashchange-plugin/
      if(typeof $(window).hashchange == 'function'){
        $(window).hashchange( function(){
          $.fn.easytabs.methods.selectTabFromHashChange.apply($container);
        });
      }else if($.address && typeof $.address.change == 'function'){ // back-button with jquery.address plugin http://www.asual.com/jquery/address/docs/
        $.address.change( function(){
          $.fn.easytabs.methods.selectTabFromHashChange.apply($container);
        });
      }
    },
    initCycle: function(){
      var $container = this,
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          opts = data.opts,
          $tabs = data.tabs,
          $defaultTab = data.defaultTab,
          tabNumber;
      if (opts.cycle) {
        tabNumber = $tabs.index($defaultTab);
        setTimeout( function(){ $.fn.easytabs.methods.cycleTabs.apply($container, [tabNumber + 1]); }, opts.cycle);
      }
    }
  }
  
  $.fn.easytabs.publicMethods = {
    select: function(tabSelector){
      var $container = this,
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          $tabs = data.tabs,
          $tab;
      if ( ($tab = $tabs.filter(tabSelector)).size() == 0 ) {                       // Find tab container that matches selector (like 'li#tab-one' which contains tab link)
        if ( ($tab = $tabs.find("a[href='" + tabSelector + "']")).size() == 0 ) {   // Find direct tab link that matches href (like 'a[href="#panel-1"]')
          if ( ($tab = $tabs.find("a" + tabSelector)).size() == 0 ) {               // Find direct tab link that matches selector (like 'a#tab-1')
            if ( ($tab = $tabs.find("[data-target='" + tabSelector + "']")).size() == 0 ) { // Find direct tab link that matches data-target (lik 'a[data-target="#panel-1"]')
              $.error('Tab \'' + tabSelector + '\' does not exist in tab set');
            }
          }
        }
      } else {
        $tab = $tab.children("a").first();                                          // Select the child tab link, since the first option finds the tab container (like <li>)
      }
      $.fn.easytabs.methods.selectTab.apply($tab, [$container]);
    }
  }
})(jQuery);
});


jQuery(document).ready(function(){ 
    jQuery('#stacks_in_20925_page117 .tab-container-1').easytabs({
    defaultTab: "li:nth-child(1)",
    cycle: 0,
    animationSpeed: "normal",
    transitionIn: 'fadeIn', transitionOut: 'fadeOut'
  
    }); 
  });
	return stack;
})(stacks.stacks_in_20925_page117);


// Javascript for stacks_in_20954_page117
// ---------------------------------------------------------------------

// Each stack has its own object with its own namespace.  The name of
// that object is the same as the stack's id.
stacks.stacks_in_20954_page117 = {};

// A closure is defined and assigned to the stack's object.  The object
// is also passed in as 'stack' which gives you a shorthand for referring
// to this object from elsewhere.
stacks.stacks_in_20954_page117 = (function(stack) {

	// When jQuery is used it will be available as $ and jQuery but only
	// inside the closure.
	var jQuery = stacks.jQuery;
	var $ = jQuery;
	
/*
 * jQuery EasyTabs plugin 2.3.3
 *
 * Copyright (c) 2010-2011 Steve Schwartz (JangoSteve)
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Date: Thu Sep 15 09:50:00 2011 -0500
 */
jQuery(document).ready(function(jQuery){
( function($) {

  // Triggers an event on an element and returns the event result
	function fire(obj, name, data) {
		var event = $.Event(name);
		obj.trigger(event, data);
		return event.result !== false;
	}
  
  $.fn.easyTabs = function(){ $.error("easyTabs() is no longer used. Now use easytabs() -- no capitalization."); }
  
  $.fn.easytabs = function(options) {
    
    var args = arguments;

    return this.each(function() {
      var $container = $(this),
          data = $container.data("easytabs");
      
      // Initialization was called with $(el).easytabs( { options } ); 
      if ( ! data ) {
        $.fn.easytabs.methods.init.apply($container,[options]);
        $.fn.easytabs.methods.initHashChange.apply($container);
        $.fn.easytabs.methods.initCycle.apply($container);
      }
      
      // User called public method
      if ( $.fn.easytabs.publicMethods[options] ){
        return $.fn.easytabs.publicMethods[ options ].apply( $container, Array.prototype.slice.call( args, 1 ));
      }
    });
  }
  
  $.fn.easytabs.defaults = {
    animate: true, 
    panelActiveClass: "active", 
    tabActiveClass: "active", 
    defaultTab: "li:first-child", 
    animationSpeed: "normal", 
    tabs: "> ul > li", 
    updateHash: true, 
    cycle: false,
    collapsible: false,
    collapsedClass: "collapsed",
    collapsedByDefault: true,
    uiTabs: false,
    transitionIn: 'fadeIn',
    transitionOut: 'fadeOut',
    transitionCollapse: 'slideUp',
    transitionUncollapse: 'slideDown',
    cache: true
  }
  
  $.fn.easytabs.methods = {
    init: function(options){
      var $container = this,
          opts,
          $tabs,
          $panels = $(),
          $defaultTab,
          $defaultTabLink,
          animationSpeeds = {
            fast: 200,
            normal: 400,
            slow: 600
          };

      if ( options && options['uiTabs'] ) {
        $container.addClass('ui-tabs');
        $.extend($.fn.easytabs.defaults, {
          tabActiveClass: 'ui-tabs-selected'
        });
      }
      // If collapsible is true and defaultTab specified, assume user wants defaultTab showing (not collapsed)
      if ( options && options.collapsible && options.defaultTab ) $.fn.easytabs.defaults.collapsedByDefault = false;
      opts = $.extend({}, $.fn.easytabs.defaults, options);
      // Convert 'normal', 'fast', and 'slow' animation speed settings to their respective speed in milliseconds
      if( typeof(opts.animationSpeed) == 'string' ) opts.animationSpeed = animationSpeeds[opts.animationSpeed];
      $tabs = $container.find(opts.tabs);

      $tabs.each(function(){
        var $tab = $(this), $a = $tab.children('a'), targetId = $tab.children('a').data('target');

        // If the tab has a `data-target` attribute, and is thus an ajax tab
        if ( targetId !== undefined && targetId !== null ) {
          $tab.data('easytabs', { ajax: $a.attr('href') });
        } else {
          targetId = $a.attr('href');
        }

        targetId = targetId.match(/#([^\?]+)/)[0].substr(1);
        $matchingPanel = $container.find("#" + targetId);
        if ( $matchingPanel.size() > 0 ) {
          // Store panel height before hiding
          $matchingPanel.data('easytabs', {position: $matchingPanel.css('position'), visibility: $matchingPanel.css('visibility')});
          $panels = $panels.add($matchingPanel.hide());
          $tab.data('easytabs', $.extend($tab.data('easytabs'), {panel: $matchingPanel}));
        } else {
          $tabs = $tabs.not($tab); // excludes tabs from set that don't have a target div
        }
      });
      $('a.anchor').remove().prependTo('body');
      
      $container.data("easytabs", {
        opts: opts,
        skipUpdateToHash: false,
        tabs: $tabs,
        panels: $panels
      }).attr('data-easytabs', true);
      
      $.fn.easytabs.methods.setDefaultTab.apply($container);
      
      $tabs.children("a").bind("click.easytabs", function(e) {
        e.preventDefault();
        $container.data("easytabs").opts.cycle = false;
        $container.data("easytabs").skipUpdateToHash = false;
        $clicked = $(this);
        $.fn.easytabs.methods.selectTab.apply($clicked, [$container]);
      });
    },
    loadFromData: function(){
      return this.data("easytabs");
    },
    setDefaultTab: function(){
      var $container = this,
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          opts = data.opts,
          $tabs = data.tabs,
          $panels = data.panels,
          hash = window.location.hash.match(/^[^\?]*/)[0],
          $selectedTab = $.fn.easytabs.methods.matchTab($tabs, hash).parent(),
          $defaultTab,
          $defaultTabLink,
          $defaultPanel,
          $defaultAjaxUrl,
          $panel;
      
      // If hash directly matches one of the tabs, active on page-load
      if( $selectedTab.size() == 1 ){
        $defaultTab = $selectedTab;
        $container.data("easytabs").opts.cycle = false;
      } else {
        $panel = $.fn.easytabs.methods.matchInPanel($panels, hash);
        // If one of the panels contains the element matching the hash,
        // make it active on page-load
        if ( $panel.length ) {
          hash = '#' + $panel.attr('id');
          $defaultTab = $.fn.easytabs.methods.matchTab($tabs, hash).parent();
        // Otherwise, make the default tab the one that's active on page-load
        } else {
          $defaultTab = $tabs.parent().find(opts.defaultTab);
          if ( $defaultTab.size() == 0 ) { $.error("The specified default tab ('" + opts.defaultTab + "') could not be found in the tab set."); }
        }
      }
      $defaultTabLink = $defaultTab.children("a").first();
      $container.data("easytabs").defaultTab = $defaultTab;
      $container.data("easytabs").defaultTabLink = $defaultTabLink;
      
      if( opts.collapsible && $selectedTab.size() == 0 && opts.collapsedByDefault ){
        $defaultTab.addClass(opts.collapsedClass).children().addClass(opts.collapsedClass);
      } else {
        $defaultPanel = $( $defaultTab.data('easytabs').panel );
        $defaultAjaxUrl = $defaultTab.data('easytabs').ajax;

        if ( $defaultAjaxUrl && (!opts.cache || !$defaultTab.data('easytabs').cached) ) {
          $container.trigger('easytabs:ajax:beforeSend', [$defaultTabLink, $defaultPanel]);
          $defaultPanel.load($defaultAjaxUrl, function(response, status, xhr){
            $defaultTab.data('easytabs').cached = true;
            $container.trigger('easytabs:ajax:complete', [$defaultTabLink, $defaultPanel, response, status, xhr]);
          });
        }

        $defaultTab.data('easytabs').panel.show().addClass(opts.panelActiveClass);
        $defaultTab.addClass(opts.tabActiveClass).children().addClass(opts.tabActiveClass);
      }
    },
    getHeightForHidden: function(){
      if( this.data('easytabs') && this.data('easytabs').lastHeight ) return this.data('easytabs').lastHeight;
      var display = this.css('display'), // this is the only property easytabs changes, so we need to grab its value on each tab change
          height = this
            // Workaround, because firefox returns wrong height if element itself has absolute positioning
            .wrap($('<div>', {position: 'absolute', 'visibility': 'hidden', 'overflow': 'hidden'}))
            .css({'position':'relative','visibility':'hidden','display':'block'})
            .outerHeight();
      this.unwrap();
      // Return element to previous state
      this.css({
        position: this.data('easytabs').position,
        visibility: this.data('easytabs').visibility,
        display: display
      });
      // Cache height
      $.extend(this.data('easytabs'), {lastHeight: height});
      return height;
    },
    setAndReturnHeight: function() {
      // Since the height of the visible panel may have been manipulated due to interaction,
      // we want to re-cache the visible height on each tab change
      var height = this.outerHeight(),
          cache = {lastHeight: height};
      if( this.data('easytabs') ) {
        $.extend(this.data('easytabs'), cache);
      } else {
        this.data('easytabs', cache);
      }
      return height;
    },
    selectTab: function($container,callback){
      var $clicked = this,
          url = window.location,
          hash = url.hash.match(/^[^\?]*/)[0],
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          opts = data.opts,
          skipUpdateToHash = data.skipUpdateToHash,
          $tabs = data.tabs,
          $panels = data.panels,
          $targetPanel = $clicked.parent().data('easytabs').panel,
          ajaxUrl = $clicked.parent().data('easytabs').ajax,
          $defaultTabLink = data.defaultTabLink,
          transitions = ( opts.animate ) ? {
            show: opts.transitionIn,
            hide: opts.transitionOut,
            speed: opts.animationSpeed,
            collapse: opts.transitionCollapse,
            uncollapse: opts.transitionUncollapse,
            halfSpeed: opts.animationSpeed / 2
          } :
          {
            show: "show",
            hide: "hide",
            speed: 0,
            collapse: "hide",
            uncollapse: "show",
            halfSpeed: 0
          };
      
      // Tab is collapsible and active => needs to be collapsed
      if( opts.collapsible && ! skipUpdateToHash && ($clicked.hasClass(opts.tabActiveClass) || $clicked.hasClass(opts.collapsedClass)) ) {
        $panels.stop(true,true);
        if( fire($container,"easytabs:before", [$clicked, $targetPanel, data]) ){
          $tabs.filter("." + opts.tabActiveClass).removeClass(opts.tabActiveClass).children().removeClass(opts.tabActiveClass);
          if( $clicked.hasClass(opts.collapsedClass) ){
            if( ajaxUrl && (!opts.cache || !$clicked.parent().data('easytabs').cached) ) {
              $container.trigger('easytabs:ajax:beforeSend', [$clicked, $targetPanel]);
              $targetPanel.load(ajaxUrl, function(response, status, xhr){
                $clicked.parent().data('easytabs').cached = true;
                $container.trigger('easytabs:ajax:complete', [$clicked, $targetPanel, response, status, xhr]);
              });
            }
            $clicked.parent()
              .removeClass(opts.collapsedClass)
              .addClass(opts.tabActiveClass)
              .children()
                .removeClass(opts.collapsedClass)
                .addClass(opts.tabActiveClass);
            $targetPanel
              .addClass(opts.panelActiveClass)
              [transitions.uncollapse](transitions.speed, function(){
                $container.trigger('easytabs:midTransition', [$clicked, $targetPanel, data]);
                if(typeof callback == 'function') callback();
              });
          } else {
            $clicked.parent().addClass(opts.collapsedClass).children().addClass(opts.collapsedClass);
            $targetPanel
              .removeClass(opts.panelActiveClass)
              [transitions.collapse](transitions.speed, function(){
                $container.trigger("easytabs:midTransition", [$clicked, $targetPanel, data]);
                if(typeof callback == 'function') callback();
              });
          }
        }
      // Tab is not active and panel is not active => select tab
      } else if( ! $clicked.hasClass(opts.tabActiveClass) || ! $targetPanel.hasClass(opts.panelActiveClass) ){
        $panels.stop(true,true);
        if( fire($container,"easytabs:before", [$clicked, $targetPanel, data]) ){
          var $visiblePanel = $panels.filter(":visible"),
              $panelContainer = $targetPanel.parent(),
              targetHeight,
              visibleHeight,
              heightDifference,
              showPanel;

          if (opts.animate) {
            targetHeight = $.fn.easytabs.methods.getHeightForHidden.apply($targetPanel);
            visibleHeight = $visiblePanel.length ? $.fn.easytabs.methods.setAndReturnHeight.apply($visiblePanel) : 0;
            heightDifference = targetHeight - visibleHeight;
          }

          showPanel = function(){
            // At this point, the previous panel is hidden, and the new one will be selected
            $container.trigger("easytabs:midTransition", [$clicked, $targetPanel, data]);

            // Gracefully animate between panels of differing heights, start height change animation *after* panel change if panel needs to contract,
            // so that there is no chance of making the visible panel overflowing the height of the target panel
            if (opts.animate && opts.transitionIn == 'fadeIn') {
              if (heightDifference < 0)
                $panelContainer.animate({
                  height: $panelContainer.height() + heightDifference
                }, transitions.halfSpeed ).css({ 'min-height': '' });
            }

            if ( opts.updateHash && ! skipUpdateToHash ) {
              //window.location = url.toString().replace((url.pathname + hash), (url.pathname + $clicked.attr("href")));
              // Not sure why this behaves so differently, but it's more straight forward and seems to have less side-effects
              window.location.hash = '#' + $targetPanel.attr('id');
            } else {
              $container.data("easytabs").skipUpdateToHash = false;
            }
            $targetPanel
              [transitions.show](transitions.speed, function(){
                // Save the new tabs and panels to the container data (with new active tab/panel)
                $container.data("easytabs").tabs = $tabs;
                $container.data("easytabs").panels = $panels;

                $panelContainer.css({height: '', 'min-height': ''}); // After the transition, unset the height
                $container.trigger("easytabs:after", [$clicked, $targetPanel, data]); 
                // callback only gets called if selectTab actually does something, since it's inside the if block
                if(typeof callback == 'function'){
                  callback();
                }
            });
          };

          if ( ajaxUrl && (!opts.cache || !$clicked.parent().data('easytabs').cached) ) {
            $container.trigger('easytabs:ajax:beforeSend', [$clicked, $targetPanel]);
            $targetPanel.load(ajaxUrl, function(response, status, xhr){
              $clicked.parent().data('easytabs').cached = true;
              $container.trigger('easytabs:ajax:complete', [$clicked, $targetPanel, response, status, xhr]);
            });
          }
          // Gracefully animate between panels of differing heights, start height change animation *before* panel change if panel needs to expand,
          // so that there is no chance of making the target panel overflowing the height of the visible panel
          if( opts.animate && opts.transitionOut == 'fadeOut' ) {
            if( heightDifference > 0 ) {
              $panelContainer.animate({
                height: ( $panelContainer.height() + heightDifference )
              }, transitions.halfSpeed );
            } else {
              // Prevent height jumping before height transition is triggered at midTransition
              $panelContainer.css({ 'min-height': $panelContainer.height() });
            }
          }

          // Change the active tab *first* to provide immediate feedback when the user clicks
          $tabs.filter("." + opts.tabActiveClass).removeClass(opts.tabActiveClass).children().removeClass(opts.tabActiveClass);
          $tabs.filter("." + opts.collapsedClass).removeClass(opts.collapsedClass).children().removeClass(opts.collapsedClass);
          $clicked.parent().addClass(opts.tabActiveClass).children().addClass(opts.tabActiveClass);
          
          $panels.filter("." + opts.panelActiveClass).removeClass(opts.panelActiveClass);
          $targetPanel.addClass(opts.panelActiveClass);

          if( $visiblePanel.size() > 0 ) {
            $visiblePanel
              [transitions.hide](transitions.speed, showPanel);
          } else {
            $targetPanel
              [transitions.uncollapse](transitions.speed, showPanel);
          }
        }
      }
    },
    matchTab: function($tabs, hash) {
      return $tabs.find("[href='" + hash + "'],[data-target='" + hash + "']").first();
    },
    matchInPanel: function($panels, hash) {
      return ( hash ? $panels.filter(':has(' + hash + ')').first() : [] );
    },
    selectTabFromHashChange: function() {
      var $container = this,
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          opts = data.opts,
          $tabs = data.tabs,
          $panels = data.panels,
          $defaultTab = data.defaultTab,
          $defaultTabLink = data.defaultTabLink,
          hash = window.location.hash.match(/^[^\?]*/)[0],
          $tab = $.fn.easytabs.methods.matchTab($tabs, hash),
          $panel;
      if ( opts.updateHash ) {
        // If hash directly matches tab
        if( $tab.length ){
          $container.data("easytabs").skipUpdateToHash = true;
          $.fn.easytabs.methods.selectTab.apply( $tab, [$container] );
        } else {
          $panel = $.fn.easytabs.methods.matchInPanel($panels, hash);
          // If panel contains element matching hash
          if ( $panel.length ) {
            hash = '#' + $panel.attr('id');
            $tab = $.fn.easytabs.methods.matchTab($tabs, hash);
            $container.data('easytabs').skipUpdateToHash = true;
            $.fn.easytabs.methods.selectTab.apply( $tab, [$container] );
          // If default tab is not active...
          } else if ( ! $defaultTab.hasClass(opts.tabActiveClass) && ! opts.cycle ) {
            // ...and hash is blank or matches a parent of the tab container
            if ( hash == '' || $container.closest(hash).length ) {
              $container.data("easytabs").skipUpdateToHash = true;
              $.fn.easytabs.methods.selectTab.apply( $defaultTabLink, [$container] );
            }
          }
        }
      }
    },
    cycleTabs: function(tabNumber){
      var $container = this,
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          opts = data.opts,
          $tabs = data.tabs;
      if(opts.cycle){
        tabNumber = tabNumber % $tabs.size();
        $tab = $($tabs[tabNumber]).children("a").first();
        $container.data("easytabs").skipUpdateToHash = true;
        $.fn.easytabs.methods.selectTab.apply($tab, [$container, function(){
          setTimeout(function(){ $.fn.easytabs.methods.cycleTabs.apply($container,[tabNumber + 1]);}, opts.cycle);
        }]);
      }
    },
    initHashChange: function(){
      var $container = this;
      // enabling back-button with jquery.hashchange plugin
      // http://benalman.com/projects/jquery-hashchange-plugin/
      if(typeof $(window).hashchange == 'function'){
        $(window).hashchange( function(){
          $.fn.easytabs.methods.selectTabFromHashChange.apply($container);
        });
      }else if($.address && typeof $.address.change == 'function'){ // back-button with jquery.address plugin http://www.asual.com/jquery/address/docs/
        $.address.change( function(){
          $.fn.easytabs.methods.selectTabFromHashChange.apply($container);
        });
      }
    },
    initCycle: function(){
      var $container = this,
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          opts = data.opts,
          $tabs = data.tabs,
          $defaultTab = data.defaultTab,
          tabNumber;
      if (opts.cycle) {
        tabNumber = $tabs.index($defaultTab);
        setTimeout( function(){ $.fn.easytabs.methods.cycleTabs.apply($container, [tabNumber + 1]); }, opts.cycle);
      }
    }
  }
  
  $.fn.easytabs.publicMethods = {
    select: function(tabSelector){
      var $container = this,
          data = $.fn.easytabs.methods.loadFromData.apply($container),
          $tabs = data.tabs,
          $tab;
      if ( ($tab = $tabs.filter(tabSelector)).size() == 0 ) {                       // Find tab container that matches selector (like 'li#tab-one' which contains tab link)
        if ( ($tab = $tabs.find("a[href='" + tabSelector + "']")).size() == 0 ) {   // Find direct tab link that matches href (like 'a[href="#panel-1"]')
          if ( ($tab = $tabs.find("a" + tabSelector)).size() == 0 ) {               // Find direct tab link that matches selector (like 'a#tab-1')
            if ( ($tab = $tabs.find("[data-target='" + tabSelector + "']")).size() == 0 ) { // Find direct tab link that matches data-target (lik 'a[data-target="#panel-1"]')
              $.error('Tab \'' + tabSelector + '\' does not exist in tab set');
            }
          }
        }
      } else {
        $tab = $tab.children("a").first();                                          // Select the child tab link, since the first option finds the tab container (like <li>)
      }
      $.fn.easytabs.methods.selectTab.apply($tab, [$container]);
    }
  }
})(jQuery);
});


jQuery(document).ready(function(){ 
    jQuery('#stacks_in_20954_page117 .tab-container-1').easytabs({
    defaultTab: "li:nth-child(1)",
    cycle: 0,
    animationSpeed: "normal",
    transitionIn: 'fadeIn', transitionOut: 'fadeOut'
  
    }); 
  });
	return stack;
})(stacks.stacks_in_20954_page117);


// Javascript for stacks_in_7184_page117
// ---------------------------------------------------------------------

// Each stack has its own object with its own namespace.  The name of
// that object is the same as the stack's id.
stacks.stacks_in_7184_page117 = {};

// A closure is defined and assigned to the stack's object.  The object
// is also passed in as 'stack' which gives you a shorthand for referring
// to this object from elsewhere.
stacks.stacks_in_7184_page117 = (function(stack) {

	// When jQuery is used it will be available as $ and jQuery but only
	// inside the closure.
	var jQuery = stacks.jQuery;
	var $ = jQuery;
	

//-- RSS JS Stack v1.3.0 by Joe Workman --//

//---------------------------
// Start Common RSS Code
//---------------------------
formatString = function(str) {
	str = str.replace(/<[^>]+>/ig,'');
	str=' '+str;
	return $.trim(str);
}

enrichString = function(str) {
	str = str.replace(/((ftp|https?):\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?)/gm,'<a href="$1" target="_blank">$1</a>');
	str = str.replace(/([^\w])\@([\w\-]+)/gm,'$1@<a href="http://twitter.com/$2" target="_blank">$2</a>');
	str = str.replace(/([^\w])\#([\w\-]+)/gm,'$1<a href="http://twitter.com/search?q=%23$2" target="_blank">#$2</a>');
	return $.trim(str);
}

parse_date = function(str) {
    if (str.match(/^\d+\-\d+\-\d+T/)) {
        str = str.replace(/T.+$/,'');
    }
	var d = new Date(str);
	var m = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec'];
	if (d.getUTCDate()) {
		return d.getUTCDate() + ' ' + m[d.getUTCMonth()] + ' ' + d.getFullYear();
    }
    return str;
};

find_link = function(obj) {
    var default_string = '#';
    if (obj == null || obj == undefined) {
        return default_string;
    }	
    else if (typeof obj.origLink == 'string') {
        return obj.origLink;
    }
    else if ($.isArray(obj.link)) {
        var mylink = obj.link[0].href;
        $.each(obj.link,function(index, value){
            if (value.rel === 'alternate') {
                mylink = value.href;
            }
		})
        return mylink;
    }
    else if (typeof obj.link == 'object') {
        return obj.link.href;
    }
    else if (typeof obj.link == 'string') {
        return obj.link;
    }
    else if (typeof obj.enclosure == 'object' && typeof obj.enclosure.url == 'string') {
        return obj.enclosure.url;
    }
    return default_string;
};

find_title = function(obj) {
    var default_string = 'No Items in RSS Feed';
    if (obj == null || obj == undefined) {
        return default_string;
    }	
    else if (typeof obj.title.content == 'string') {
        return formatString(obj.title.content);
    }
    else if (typeof obj.title == 'string') {
        return formatString(obj.title);
    }
    else if (typeof obj.title == 'object') {
        return formatString(obj.title[0]);
    }
    return default_string;
};

find_date = function(obj) {
    var default_string = 'Date Unknown';
    if (obj == null || obj == undefined) {
        return default_string;
    }	
    else if (typeof obj.pubDate == 'string') {
		return parse_date(obj.pubDate);
    }
    else if (typeof obj.date == 'string') {
		return parse_date(obj.date);
    }
    else if (typeof obj.published == 'string') {
		return parse_date(obj.published);
    }
    else if (typeof obj.updated == 'string') {
		return parse_date(obj.updated);
    }
    return default_string;
};

find_descr = function(obj) {
    var default_string = 'RSS Feed Invalid. No Description Found.';
    if (obj == null || obj == undefined) {
        return default_string;
    }	
    else if (typeof obj.description == 'string') {
		return formatString(obj.description);
    }
    else if (typeof obj.encoded == 'string') {
		return formatString(obj.encoded);
    }
    else if (typeof obj.content == 'object' && typeof obj.content.content == 'string') {
		return formatString(obj.content.content);
    }
    return default_string;
};

find_author = function(obj) {
    var default_string = 'Unknown Author';
    if (obj == null || obj == undefined) {
        return default_string;
    }	
    else if (typeof obj.creator == 'string') {
		return obj.creator;
    }
    else if ($.isArray(obj.author)) {
        return obj.author[0];
    }
    else if (typeof obj.author == 'object' && typeof obj.author.email == 'string') {
		return obj.author.email;
    }
    else if (typeof obj.author == 'string') {
		return obj.author;
    }
    return default_string;
};

$(document).ready(function() {
	/* Forming the query: */
	var feed = "http://catalogs.infocommiq.com/dataserve/rss/industrynews_3244.xml";
	feed = feed.replace(/feed:\/\//,'http://'); // Replace feed:// with http://
	var query = 'select * from feed where url="' + feed + '" LIMIT 5';

	/* Forming the URL to YQL: */
	var url = "http://query.yahooapis.com/v1/public/yql?q="+encodeURIComponent(query)+"&format=json&callback=?";

	$.getJSON(url,function(data){
		if (data.query == null || data.query == undefined || data.query.results == null || data.query.results == undefined) {
			// Invalid or Empty RSS Feed - Add Blank/Default Entries
			add_feed_item();
	 	}
	 	else if ($.isArray(data.query.results.item || data.query.results.entry) ) {  //item exists in RSS and entry in ATOM feeds
			$.each(data.query.results.item || data.query.results.entry,function(){
	       		//Normal RSS Feed
	       		add_feed_item(this);
			})
		}
		else {
		    // RSS Feed with only one item in it
			add_feed_item(data.query.results.item || data.query.results.entry || null);
		}
		post_process_feed(this);
	});
});
//---------------------------
// End Common RSS Code
//---------------------------

function add_feed_item(obj) {
    var maxLength = 150;
	$('#rss-js-list-stacks_in_7184_page117').append('<li><a class="tiptip" title="'+ find_date(obj) +' - '+ find_descr(obj).substring(0, maxLength) +'" href="'+ find_link(obj) +
	  '" target="_blank"><p class="rss-js-title">'+ find_title(obj) +
	  '</p><p class="rss-js-date">'+ find_date(obj) + 
	  '</p><p class="rss-js-desc">'+ find_descr(obj).substring(0, maxLength) +
	  '</p></a></li>'
	);
	return;    	        
};
function post_process_feed(obj) {
	if ($().tipTip) { $(".tiptip").tipTip(); }
	return;    	        
};
//-- End RSS JS Stack --//

	return stack;
})(stacks.stacks_in_7184_page117);



