$.fn.vectorTree=function(options){options=$.extend({cssChecked:"tree_check",cssUnchecked:"tree_uncheck",cssSemichecked:"tree_semicheck",cssCollapsed:"tree_collapsed",cssExpanded:"tree_expanded",cssLastNo:"tree_sheet",cssPlus:"tree_plus",cssMinus:"tree_minus",oneInMin:true},options);$(this).find("ul").hide().addClass(options.cssCollapsed);$(this).find("li:has( > ul )").prepend('<button type="button" class="'+options.cssPlus+'">+</button>').find('button').click(function(){$(this).siblings("ul:first").toggle().toggleClass(options.cssExpanded).toggleClass(options.cssCollapsed);if($(this).hasClass(options.cssPlus))
{$(this).text("-").removeClass(options.cssPlus).addClass(options.cssMinus);}
else
{$(this).text("+").removeClass(options.cssMinus).addClass(options.cssPlus);}});$(this).find("li:has( > ul ) input:checkbox").click(function(){var UlFilha=$(this).siblings("ul:first");if($(this).attr("checked"))
UlFilha.find("input:checkbox").attr("checked","checked");else
UlFilha.find("input:checkbox").removeAttr("checked");$(this).parents("ul:first").siblings(":checkbox").change();}).change(function(){if($(this).siblings('ul:first').length!=0)
{var UlAbaixo=$(this).siblings('ul:first');var any_checked=UlAbaixo.find(':checkbox:checked:first').length==1;var any_unchecked=UlAbaixo.find(':checkbox:not(:checked):first').length==1;if(any_checked){$(this).attr('checked','checked');if(any_unchecked){$(this).addClass(options.cssSemichecked).removeClass(options.cssChecked).removeClass(options.cssUnchecked);}
else{$(this).addClass(options.cssChecked).removeClass(options.cssSemichecked).removeClass(options.cssUnchecked);}}
else{$(this).removeClass(options.cssChecked+' '+options.cssSemichecked).addClass(options.cssUnchecked);$(this).attr('checked','');}
$(this).parents("ul:first").siblings(":checkbox").change();}});$(this).find("button:first ").click();};
