diff options
Diffstat (limited to 'themes/elegant/js/jquery.jBreadCrumb.js')
-rw-r--r-- | themes/elegant/js/jquery.jBreadCrumb.js | 206 |
1 files changed, 0 insertions, 206 deletions
diff --git a/themes/elegant/js/jquery.jBreadCrumb.js b/themes/elegant/js/jquery.jBreadCrumb.js deleted file mode 100644 index bb722868e..000000000 --- a/themes/elegant/js/jquery.jBreadCrumb.js +++ /dev/null @@ -1,206 +0,0 @@ -/** - * @author Jason Roy for CompareNetworks Inc. - * Thanks to mikejbond for suggested udaptes - * - * Version 1.1 - * Copyright (c) 2009 CompareNetworks Inc. - * - * Licensed under the MIT license: - * http://www.opensource.org/licenses/mit-license.php - * - */ -(function($) -{ - - // Private variables - - var _options = {}; - var _container = {}; - var _breadCrumbElements = {}; - var _autoIntervalArray = []; - var _easingEquation; - - // Public functions - - jQuery.fn.jBreadCrumb = function(options) - { - _options = $.extend({}, $.fn.jBreadCrumb.defaults, options); - - return this.each(function() - { - _container = $(this); - setupBreadCrumb(); - }); - - }; - - // Private functions - - function setupBreadCrumb() - { - //Check if easing plugin exists. If it doesn't, use "swing" - if(typeof(jQuery.easing) == 'object') - { - _easingEquation = 'easeOutQuad' - } - else - { - _easingEquation = 'swing' - } - - //The reference object containing all of the breadcrumb elements - _breadCrumbElements = jQuery(_container).find('li'); - - //Keep it from overflowing in ie6 & 7 - jQuery(_container).find('ul').wrap('<div style="overflow:hidden; position:relative; width: ' + jQuery(_container).css("width") + ';"><div>'); - //Set an arbitrary width width to avoid float drop on the animation - jQuery(_container).find('ul').width(5000); - - //If the breadcrumb contains nothing, don't do anything - if (_breadCrumbElements.length > 0) - { - jQuery(_breadCrumbElements[_breadCrumbElements.length - 1]).addClass('last'); - jQuery(_breadCrumbElements[0]).addClass('first'); - - //If the breadcrumb object length is long enough, compress. - - if (_breadCrumbElements.length > _options.minimumCompressionElements) - { - compressBreadCrumb(); - }; - }; - }; - - function compressBreadCrumb() - { - - // Factor to determine if we should compress the element at all - var finalElement = jQuery(_breadCrumbElements[_breadCrumbElements.length - 1]); - - - // If the final element is really long, compress more elements - if (jQuery(finalElement).width() > _options.maxFinalElementLength) - { - if (_options.beginingElementsToLeaveOpen > 0) - { - _options.beginingElementsToLeaveOpen--; - - } - if (_options.endElementsToLeaveOpen > 0) - { - _options.endElementsToLeaveOpen--; - } - } - // If the final element is within the short and long range, compress to the default end elements and 1 less beginning elements - if (jQuery(finalElement).width() < _options.maxFinalElementLength && jQuery(finalElement).width() > _options.minFinalElementLength) - { - if (_options.beginingElementsToLeaveOpen > 0) - { - _options.beginingElementsToLeaveOpen--; - - } - } - - var itemsToRemove = _breadCrumbElements.length - 1 - _options.endElementsToLeaveOpen; - - // We compress only elements determined by the formula setting below - - //TODO : Make this smarter, it's only checking the final elements length. It could also check the amount of elements. - jQuery(_breadCrumbElements[_breadCrumbElements.length - 1]).css( - { - background: 'none' - }); - - $(_breadCrumbElements).each(function(i, listElement) - { - if (i > _options.beginingElementsToLeaveOpen && i < itemsToRemove) - { - - jQuery(listElement).find('a').wrap('<span></span>').width(jQuery(listElement).find('a').width() + 10); - - // Add the overlay png. - // jQuery(listElement).append(jQuery('<div class="' + _options.overlayClass + '"></div>').css( - // { - // display: 'block' - // })).css( - // { - // background: 'none' - // }); - - var options = - { - id: i, - width: jQuery(listElement).width(), - listElement: jQuery(listElement).find('span'), - isAnimating: false, - element: jQuery(listElement).find('span') - - }; - jQuery(listElement).bind('mouseover', options, expandBreadCrumb).bind('mouseout', options, shrinkBreadCrumb); - jQuery(listElement).find('a').unbind('mouseover', expandBreadCrumb).unbind('mouseout', shrinkBreadCrumb); - listElement.autoInterval = setInterval(function() - { - clearInterval(listElement.autoInterval); - jQuery(listElement).find('span').animate( - { - width: _options.previewWidth - }, _options.timeInitialCollapse, _options.easing); - }, (150 * (i - 2))); - - } - }); - - }; - - function expandBreadCrumb(e) - { - var elementID = e.data.id; - var originalWidth = e.data.width; - jQuery(e.data.element).stop(); - jQuery(e.data.element).animate( - { - width: originalWidth - }, - { - duration: _options.timeExpansionAnimation, - easing: _options.easing, - queue: false - }); - return false; - - }; - - function shrinkBreadCrumb(e) - { - var elementID = e.data.id; - jQuery(e.data.element).stop(); - jQuery(e.data.element).animate( - { - width: _options.previewWidth - }, - { - duration: _options.timeCompressionAnimation, - easing: _options.easing, - queue: false - }); - return false; - }; - - // Public global variables - - jQuery.fn.jBreadCrumb.defaults = - { - maxFinalElementLength: 400, - minFinalElementLength: 200, - minimumCompressionElements: 4, - endElementsToLeaveOpen: 1, - beginingElementsToLeaveOpen: 1, - timeExpansionAnimation: 800, - timeCompressionAnimation: 500, - timeInitialCollapse: 600, - easing: _easingEquation, - overlayClass: 'chevronOverlay', - previewWidth: 40 - }; - -})(jQuery); |