/* xBreadcrumbs (Extended Breadcrums) jQuery Plugin © 2009 ajaxBlender.com For any questions please visit www.ajaxblender.com or email us at support@ajaxblender.com */ ;(function($){ /* Variables */ $.fn.xBreadcrumbs = function(settings){ var element = $(this); var settings = $.extend({}, $.fn.xBreadcrumbs.defaults, settings); function _build(){ if(settings.collapsible){ var sz = element.children('LI').length; element.children('LI').children('A').css('white-space', 'nowrap').css('float', 'left'); element.children('LI').children('A').each(function(i, el){ if(i != sz - 1){ $(this).css('overflow', 'hidden'); $(this).attr('init-width', $(this).width()); $(this).width(settings.collapsedWidth); } }); } element.children('LI').mouseenter(function(){ if($(this).hasClass('hover')){ return; } _hideAllSubLevels(); if(!_subLevelExists($(this))){ return; } // Show sub-level var subLevel = $(this).children('UL'); _showHideSubLevel(subLevel, true); if(settings.collapsible && !$(this).hasClass('current')){ var initWidth = $(this).children('A').attr('init-width'); $(this).children('A').animate({width: initWidth}, 'normal'); } }); element.children('LI').mouseleave(function(){ var subLevel = $(this).children('UL'); _showHideSubLevel(subLevel, false); if(settings.collapsible && !$(this).hasClass('current')){ $(this).children('A').animate({width: settings.collapsedWidth}, 'fast'); } }); }; function _hideAllSubLevels(){ element.children('LI').children('UL').each(function(){ $(this).hide(); $(this).parent().removeClass('hover'); }); }; function _showHideSubLevel(subLevel, isShow){ if(isShow){ subLevel.parent().addClass('hover'); if($.browser.msie){ var pos = subLevel.parent().position(); subLevel.css('left', parseInt(pos['left'])); } if(settings.showSpeed != ''){ subLevel.fadeIn( settings.showSpeed ); } else { subLevel.show(); } } else { subLevel.parent().removeClass('hover'); if(settings.hideSpeed != ''){ subLevel.fadeOut( settings.hideSpeed ); } else { subLevel.hide(); } } }; function _subLevelExists(obj){ return obj.children('UL').length > 0; }; // Entry point _build(); }; /* Default Settings */ $.fn.xBreadcrumbs.defaults = { showSpeed: 'fast', hideSpeed: '', collapsible: false, collapsedWidth: 10 }; })(jQuery);