Ciao a tutti,
ho un problema, non riesco a creare una funzione che mi fa il check (uncheck) dei checkbox di una struttura ad albero.

la struttura è la seguente

codice:
<ul>
	[*] 
		<input type="checkbox" value="1" name="accessi[]" id="1">VALORE 1
		<ul>
			[*]
				<input type="checkbox" value="2" name="accessi[]" id="2">VALORE 1.1
			
			[*] 
				<input type="checkbox" value="3" name="accessi[]" id="3">VALORE 1.2
			
			[*]
				<input type="checkbox" value="4" name="accessi[]" id="4">VALORE 1.3
				<ul>
					[*] 
						<input type="checkbox" value="5" name="accessi[]" id="5">VALORE 1.3.1
					
				[/list]
			
		[/list]
	
	[*]
		<input type="checkbox" value="6" name="accessi[]" id="6">VALORE 2
	[/list]
Se seleziono il VALORE 1.3.1 si dovrebbero selezionare automanticamente VALORE 1.3 e VALORE 1

SE DESELEZIONO il VALORE 1.3.1 si dovrebbe deselezionare il VALORE 1.3 e se il VALORE 1 non ha altri figli selezionati si dovrebbe DESELEZIONARE.

In rete non sono riuscito a trovare uno script adatto alle mie esigenze.
Mi potete dare una mano?

Grazie mille.