
(function ($) {
  Drupal.Panels = {};

  Drupal.Panels.autoAttach = function() {
    if ($.browser.msie) {
      // If IE, attach a hover event so we can see our admin links.
      $("div.panel-pane").hover(
        function() {
          $('div.panel-hide', this).addClass("panel-hide-hover"); return true;
        },
        function() {
          $('div.panel-hide', this).removeClass("panel-hide-hover"); return true;
        }
      );
      $("div.admin-links").hover(
        function() {
          $(this).addClass("admin-links-hover"); return true;
        },
        function(){
          $(this).removeClass("admin-links-hover"); return true;
        }
      );
    }
  };

  $(Drupal.Panels.autoAttach);
})(jQuery);
;
(function ($) {
  Drupal.behaviors.muchomenu = {
    attach: function(context) {
      var timeout				= 500;
      var sizewait			= 250;
      var hoverwait     = 400;
      var hovertimer    = null;
      var sizetimer 		= null;
      var closetimer 		= null;
      var hoverParent 	= null;
      var hoverBin 			= null;
      var hoverSlots 		= null;
      var megaSlots = null;
      var megaParents = null;
      var hideOffset = -9000;

      var megaParents = $('.muchomenu-menu').find('.muchomenu-parent');
      var megaParentTitles = $('.muchomenu-menu').find('.muchomenu-parent-title');
      var megaBins = $('.muchomenu-menu').find('.muchomenu-bin');
      var oldParentIdx = -1;
      var hoverParentIdx = -2;

      megaBins.css('top', hideOffset);
      megaBins.hide();

      $('a.disable-click', megaParents).attr('href', 'javascript:void(0)');

      function muchomenu_open(){
        muchomenu_canceltimer();

        if ($(this).hasClass('muchomenu-parent-title')) {
          hoverParentIdx = megaParentTitles.index($(this));
        }
        else if ($(this).hasClass('muchomenu-bin')) {
          hoverParentIdx = megaParents.index($(this).parents('.muchomenu-parent'));
        }


        hoverParent = megaParents.eq(hoverParentIdx);

        if (hoverParentIdx != oldParentIdx) {
          muchomenu_close();
          muchomenu_hovertimer();
        } else {
          muchomenu_display();

        }
      }

      function muchomenu_display() {
        if (hoverParent) {
          hoverParent.addClass('hovering');
          hoverBin = hoverParent.find('.muchomenu-bin');
          /* display position */
          //hoverBin.css('top', 'auto');
          /* display position end */
          animateIn(hoverBin);
        }
      }

      function muchomenu_close(){

        if (hoverParent) {
          oldParentIdx = $('.muchomenu-parent').index(hoverParent);
        }
        for ( var i=0 ; i < megaParents.length ; i++ ) {
          megaParents.eq(i).removeClass('hovering');
        }
        animateOut(hoverBin);
      }

      function checkHorizontalPosition(item) {
        var parentOffset = item.parents('.muchomenu-parent').offset();
        var screenWidth = $(document).width();
        var itemPosition = item.position();
        // var padding = 30;

        /* var p = item.width() + itemPosition.left + parentOffset.left + padding;
        if (p > screenWidth) {
          var newOffset = screenWidth - p;
          item.css('left', newOffset + 'px');
        }
*/
      }

      function animateIn(item) {
        if(item && !item.is(':visible'))
        {
          item.css('top', '0');
          checkHorizontalPosition(item);

          switch(Drupal.settings.muchomenu.animationEffect) {
            case 'fade':
              item.fadeIn();
              break;

            case 'slide':
              item.slideDown();
              break;

            default:
              item.show();
              break;
          }
        }
      }

      function animateOut(item) {
        if(item)
        {
          switch(Drupal.settings.muchomenu.animationEffect) {
            case 'fade':
              item.fadeOut();
              break;

            case 'slide':
              item.slideUp();
              break;

            default:
              item.hide();
              break;
          }
        }
      }

      function muchomenu_closeAll(){

        if(hoverBin) {
          animateOut(hoverBin);
        hoverBin.css('top', hideOffset);
        }
        for ( var i=0 ; i < megaParents.length ; i++ ) {
          megaParents.eq(i).removeClass('hovering');
        }
        oldParentIdx = -1;
      }

      function muchomenu_stopPropagation(event){
        event.stopPropagation();
      }

      function muchomenu_timer(){
        muchomenu_canceltimer();
        muchomenu_cancelhovertimer();
        closetimer = window.setTimeout(muchomenu_closeAll, timeout);

      }

      function muchomenu_canceltimer(){
        if (closetimer) {
          window.clearTimeout(closetimer);
          closetimer = null;
        }
      }


      function muchomenu_hovertimer(){
        muchomenu_cancelhovertimer();
        hovertimer = window.setTimeout(muchomenu_display, hoverwait);
      }

      function muchomenu_cancelhovertimer(){
        if (hovertimer) {
          window.clearTimeout(hovertimer);
          hovertimer = null;
        }
      }

      function muchomenu_sizetimer(){
        /* waits to resize on initial call to accomodate browser draw */
        sizetimer = window.setTimeout(muchomenu_sizer, sizewait);
      }

      function muchomenu_sizer(){

      }


      $('.muchomenu-parent-title').bind('mouseover', muchomenu_open);
      $('.muchomenu-parent-title').bind('mouseout', muchomenu_timer);

      $('.muchomenu-bin').bind('mouseover', muchomenu_open);
      $('.muchomenu-bin').bind('mouseout', muchomenu_timer);

      $("body").bind('click', muchomenu_closeAll);
      $(".muchomenu-menu").bind('click', muchomenu_stopPropagation);

      $(window).bind('resize', muchomenu_sizer);
      muchomenu_sizetimer();
    }
  };
})(jQuery);;
(function ($) {

$(document).ready(function() {

  // Accepts a string; returns the string with regex metacharacters escaped. The returned string
  // can safely be used at any point within a regex to match the provided literal string. Escaped
  // characters are [ ] { } ( ) * + ? - . , \ ^ $ # and whitespace. The character | is excluded
  // in this function as it's used to separate the domains names.
  RegExp.escapeDomains = function(text) {
    return (text) ? text.replace(/[-[\]{}()*+?.,\\^$#\s]/g, "\\$&") : '';
  }

  // Attach onclick event to document only and catch clicks on all elements.
  $(document.body).click(function(event) {
    // Catch the closest surrounding link of a clicked element.
    $(event.target).closest("a,area").each(function() {

      var ga = Drupal.settings.googleanalytics;
      // Expression to check for absolute internal links.
      var isInternal = new RegExp("^(https?):\/\/" + window.location.host, "i");
      // Expression to check for special links like gotwo.module /go/* links.
      var isInternalSpecial = new RegExp("(\/go\/.*)$", "i");
      // Expression to check for download links.
      var isDownload = new RegExp("\\.(" + ga.trackDownloadExtensions + ")$", "i");
      // Expression to check for the sites cross domains.
      var isCrossDomain = new RegExp("^(https?|ftp|news|nntp|telnet|irc|ssh|sftp|webcal):\/\/.*(" + RegExp.escapeDomains(ga.trackCrossDomains) + ")", "i");

      // Is the clicked URL internal?
      if (isInternal.test(this.href)) {
        // Is download tracking activated and the file extension configured for download tracking?
        if (ga.trackDownload && isDownload.test(this.href)) {
          // Download link clicked.
          var extension = isDownload.exec(this.href);
          _gaq.push(["_trackEvent", "Downloads", extension[1].toUpperCase(), this.href.replace(isInternal, '')]);
        }
        else if (isInternalSpecial.test(this.href)) {
          // Keep the internal URL for Google Analytics website overlay intact.
          _gaq.push(["_trackPageview", this.href.replace(isInternal, '')]);
        }
      }
      else {
        if (ga.trackMailto && $(this).is("a[href^=mailto:],area[href^=mailto:]")) {
          // Mailto link clicked.
          _gaq.push(["_trackEvent", "Mails", "Click", this.href.substring(7)]);
        }
        else if (ga.trackOutbound && this.href) {
          if (ga.trackDomainMode == 2 && isCrossDomain.test(this.href)) {
            // Top-level cross domain clicked. document.location is handled by _link internally.
            _gaq.push(["_link", this.href]);
          }
          else if (ga.trackOutboundAsPageview) {
            // Track all external links as page views after URL cleanup.
            // Currently required, if click should be tracked as goal.
            _gaq.push(["_trackPageview", '/outbound/' + this.href.replace(/^(https?|ftp|news|nntp|telnet|irc|ssh|sftp|webcal):\/\//i, '').split('/').join('--')]);
          }
          else {
            // External link clicked.
            _gaq.push(["_trackEvent", "Outbound links", "Click", this.href]);
          }
        }
      }
    });
  });
});

})(jQuery);
;

