(function($){$.lightTreeview={toggle:function(o,speed){exec(o,speed,'toggle');},close:function(o,speed){exec(o,speed,'hide');},open:function(o,speed){exec(o,speed,'show');}};function exec(o,s,act){var f=$(o).parent();var ico=f.find('>.flex-ico');flex(ico,f,{animate:isNaN(s)?100:s},act);}$.fn.lightTreeview=function(s1){if(typeof(s1)=='undefined')s1={};var settings=defaultSettings();$.extend(settings,s1);this.addClass('lightTreeview');if(!settings.line)this.addClass('treeview-noline');if(settings.style)this.addClass('treeview-'+settings.style);var node=$('li:has(ul,ol)',this);$('li:last-child',this).addClass('branch-last');if(settings.collapse){node.addClass('node-normal').filter(':last-child').attr('class','node-last');if(settings.fileico)$('li:not(:has(ul,ol))>:first-child',this).addClass('treeview-file');if(settings.folderico)$('>:first-child',node).addClass('treeview-folder');node.css('cursor','pointer').prepend('<span class="flex-ico"></span>').find('>ul,>ol').filter(':hidden').parent().find('>.flex-ico').addClass('flex-close');$('>.flex-ico',node.filter(':last-child')).addClass('flex-none');$('>ul,>ol',node.filter(':last-child')).filter(':hidden').parent().addClass('node-last-close');node.find('>ul,>ol').filter(':hidden').parent().find('>.treeview-folder').addClass('treeview-folder-close');if(settings.nodeEvent)node.find('>:nth-child(2)').click(function(){$(this).parent().find('>.flex-ico').trigger('click');});$('>.flex-ico',node).click(function(){var f=$(this).parent();if(settings.unique&&$('>ul,>ol',f).is(':hidden')){var ff=$('>li:has(ul,ol)',f.parent()).not(f);flex($('>:first-child',ff),ff,settings,'hide');}flex($(this),f,settings);});}};function flex(ico,father,settings,type){var list=$('>ul,>ol',father);var ln=ico.filter('.flex-none').parent();var ic=ico.not('.flex-none');var fl=$('>.treeview-folder',father);if(type=='hide'){ln.addClass('node-last-close');ic.addClass('flex-close');fl.addClass('treeview-folder-close');list.hide(settings.animate);}else if(type=='show'){ln.removeClass('node-last-close');ic.removeClass('flex-close');fl.removeClass('treeview-folder-close');list.show(settings.animate);}else{ln.toggleClass('node-last-close');ic.toggleClass('flex-close');fl.toggleClass('treeview-folder-close');list.toggle(settings.animate);}}var defaultSettings=function(){return{collapse:true,line:true,animate:200,nodeEvent:true,unique:false,style:'',fileico:false,folderico:false}};})(jQuery);