/* 

	Sitemap Styler v0.1
	written by Alen Grakalic, provided by Css Globe (cssglobe.com)
	visit http://cssglobe.com/lab/sitemap_styler/
	
*/

this.sitemapstyler = function(){
	var sitemap = document.getElementById("sitemap")
	if(sitemap){
		
		this.listItem = function(li){
			if(li.getElementsByTagName("ul").length > 0){
				var ul = li.getElementsByTagName("ul")[0];
				ul.style.display = "none";
				var span = document.createElement("span");
				span.className = "collapsed";
				span.onclick = function(){
					ul.style.display = (ul.style.display == "none") ? "block" : "none";
					this.className = (ul.style.display == "none") ? "collapsed" : "expanded";
				};
				li.appendChild(span);
			};
		};
		
		var items = sitemap.getElementsByTagName("li");
		for(var i=0;i<items.length;i++){
			listItem(items[i]);
		};
	};	
};

function opencurrentsection() {
	var current_section = $$('li.current_section').first();
	if(current_section) {
	current_section.up('ul').show();
	var parent_section = current_section.up('ul');
	parent_section.next('span').addClassName('expanded').removeClassName('collapsed');
	while (parent_section.up('ul')) { 
		parent_section.up('ul').show();		
		parent_section.next('span').addClassName('expanded').removeClassName('collapsed');
		parent_section = parent_section.up('ul');
	}
	}
}

function setclasses() {
	$$('#sitemap li').each(function(el) {
		el.observe('mouseover', function(event) {
			el.down('div.toolbox').addClassName('toolbox_hover');
		});
		el.observe('mouseout', function(event) {
			el.down('div.toolbox').removeClassName('toolbox_hover');
		});
	});
	var current_children = $$('#sitemap li.current_section > ul > li').invoke('addClassName', 'current_children');
	current_children.each(function(el){
		var sort_handle = el.down('em.sort_handle').addClassName('current_child_sort');
		
		sort_handle.observe('mouseover', function(event) {
			sort_handle.up('li.current_children').addClassName('move_me');
		});
		sort_handle.observe('mouseout', function(event) {
			sort_handle.up('li.current_children').removeClassName('move_me');
		});
	});
}
document.observe("dom:loaded", function() {
	sitemapstyler();
	opencurrentsection();
	setclasses();
});
