function EnhancedCategoriesPlugin(){this._settings={expandText:'&raquo;',contractText:'&laquo;',leafText:'-',expandImage:'',contractImage:'',leafImage:'',buttonColor:'#CC0000',buttonWidth:'10px',buttonMargin:'0 5px 0 0',isButtonAfter:false}}jQuery.extend(EnhancedCategoriesPlugin.prototype,{setSettings:function(a){jQuery.extend(this._settings,a||{})},getSettings:function(){return this._settings},getButtonText:function(a,b){var c='';if(b==''){c+=a}else{c+='<img src="'+b+'" alt="'+a+'" title="'+a+'" />'}return c}});jQuery(document).ready(function(){enhancedCategoriesPlugin=new EnhancedCategoriesPlugin()});jQuery.fn.enhancedCategories=function(d){var e=enhancedCategoriesPlugin.getSettings();jQuery.extend(e,d);return jQuery('li.cat-item',this).each(function(){var a=jQuery(this).children('ul');var b=(a.length>0);var c='';jQuery('img',this).css({margin:'0 5px',padding:'0'});if(b){if(e.contractChildren==1){c+='<span class="button is_expanded" style="cursor: pointer;">';c+=enhancedCategoriesPlugin.getButtonText(e.expandText,e.expandImage);c+='</span>'}else{c+='<span class="button is_contracted" style="cursor: pointer;">';c+=enhancedCategoriesPlugin.getButtonText(e.contractText,e.contractImage);c+='</span>'}}else{c+='<span class="button" style="">';c+=enhancedCategoriesPlugin.getButtonText(e.leafText,e.leafImage);c+='</span>'}if(e.isButtonAfter){if(b){jQuery(this).children('ul').before(c)}else{jQuery(this).append(c)}}else{jQuery(this).prepend(c)}jQuery(this).css({listStyleType:'none'}).children('span.button').css({width:e.buttonWidth,margin:e.buttonMargin,color:e.buttonColor}).click(function(){jQuery(this).siblings('ul').slideToggle().end().each(function(){if(jQuery(this).hasClass('is_expanded')){jQuery(this).html(enhancedCategoriesPlugin.getButtonText(e.contractText,e.contractImage)).removeClass('is_expanded').addClass('is_contracted')}else{jQuery(this).html(enhancedCategoriesPlugin.getButtonText(e.expandText,e.expandImage)).removeClass('is_contracted').addClass('is_expanded')}return this})});jQuery(this).children('ul').css({paddingLeft:e.buttonWidth});if(e.contractChildren==1){jQuery(this).children('ul').hide()}return this})};