function setImageExpandedState(i){
	if(i.parentNode.isExpanded ){
		i.src = 'nav/assets/collapse.gif';
		i.alt = 'Collapse section';
		i.title = 'Collapse section';
	}
	else{
		i.src = 'nav/assets/expand' + ( (i.parentNode.tagName.toLowerCase() == 'h2') ? '' : 'Child')  + '.gif';
		i.alt = 'Expand section';
		i.title = 'Expand section';
	}
}

function setItemState(e){
	var tagName = this.tagName.toLowerCase();
	if(tagName == 'h2'){
		var expandedClass = 'content_item_tn';
		var collapsedClass = 'content_item_collapsed';
	}
	else if(tagName == 'h3'){
		var expandedClass = 'content_item_child';
		var collapsedClass = 'content_item_child_collapsed';
	}
	else{
		return;
	}
	
	if(this.isExpanded){
		Spry.Utils.removeClassName(this.parentNode, expandedClass );
		Spry.Utils.addClassName(this.parentNode, collapsedClass);
		this.isExpanded = false;	
	}
	else{
		this.isExpanded = true;
		Spry.Utils.removeClassName(this.parentNode, collapsedClass);
		Spry.Utils.addClassName(this.parentNode, expandedClass);
	}
	
	Spry.$$("img.expandable", this).forEach( setImageExpandedState );
}

function setupHeaders(node){
	Spry.$$("img.expandable", node).forEach( setImageExpandedState );
	Spry.Utils.addEventListener(node, 'click', setItemState, false );
	Spry.Utils.addEventListener(node, 'mouseover', function(e){ this.style.cursor = 'pointer'; }, false );
}

function expandCollapseAll(node, header, expandCollapse, addClass, removeClass){
	Spry.Utils.removeClassName(node, removeClass);
	Spry.Utils.addClassName(node, addClass);
	Spry.$$(header, node).forEach(function(h){
		h.isExpanded = (expandCollapse == 'expand') ? true : false;
		Spry.$$("img.expandable", h).forEach( setImageExpandedState );
	});
}

function InitPage(){
	Spry.$$(".content_item_tn").forEach(function(n) {
			Spry.Utils.removeClassName(n,'content_item_tn');
			Spry.Utils.addClassName(n,'content_item_collapsed');
			Spry.$$("h2").forEach( setupHeaders );
		}
	 );
	Spry.$$(".content_item_child").forEach(function(n) {
			Spry.Utils.removeClassName(n,'content_item_child');
			Spry.Utils.addClassName(n,'content_item_child_collapsed');
			Spry.$$("h3", n).forEach( setupHeaders );
		}
	 );
	
	Spry.$$(".expand_all_items").addEventListener("click", function(e){
			Spry.$$(".content_item_collapsed").forEach(function(n){ expandCollapseAll(n, 'h2', 'expand', 'content_item_tn', 'content_item_collapsed'); } );
			Spry.$$(".content_item_child_collapsed").forEach(function(n){ expandCollapseAll(n, 'h3', 'expand', 'content_item_child', 'content_item_child_collapsed'); } );
		}, false);
	
	Spry.$$(".collapse_all_items").addEventListener("click", function(e){
			Spry.$$(".content_item").forEach(function(n){ expandCollapseAll(n, 'h2', 'collapse', 'content_item_collapsed', 'content_item_tn'); } );
			Spry.$$(".content_item_child").forEach(function(n){ expandCollapseAll(n, 'h3', 'collapse', 'content_item_child_collapsed', 'content_item_child' ); } );
		}, false);
	
	Spry.$$("#expand_collapse").forEach(function(n) {
			n.style.display = 'block';
			Spry.$$("img", n).addEventListener('mouseover', function(e){ this.style.cursor = 'pointer'; }, false );
		}
	);
	
	if(window.print){		
		Spry.$$("#reportPrint").forEach(function(n) {
				n.style.display = 'block';
				n.style.cursor = 'pointer';
				Spry.Utils.addEventListener(n, 'click', function(e){ window.print(); } );
			}
		);
	}
}

Spry.Utils.addLoadListener(InitPage);