// ==UserScript==
// @name           Confluence: export select/deselect tree
// @namespace      http://djce.org.uk/greasemonkey
// @description    When exporting pages from Confluence, allows select/deselect of sub-trees
// @include        http://*/confluence/spaces/exportspace.action?key=*
// ==/UserScript==

try {
	// find input[type="checkbox"][name="contentToBeExported"]
	// apply a double-click handler to each one

	var h = function(evt) {
		var e = this;
		var checked = !e.checked;

		if (e) e = e.parentNode; // td
		if (e) e = e.parentNode; // tr

		var x = document.evaluate(
			'.//input[@type="checkbox"][@name="contentToBeExported"]',
		       e, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null
		);
		for (var i=0; i<x.snapshotLength; ++i)
		{
			var e = x.snapshotItem(i);
			e.checked = checked;
		}
	};

        var x = document.evaluate(
		'//input[@type="checkbox"][@name="contentToBeExported"]',
	       document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null
	);

	for (var i=0; i<x.snapshotLength; ++i)
	{
		var e = x.snapshotItem(i);
		e.addEventListener("dblclick", h, false);
	}

} catch(e) {
	alert("Error: "+e);
}

