var curriculumTree = function( content )
{
	var mynamespace = namespace;
	var template = content.find(".template").text();
	
	var myResizeIframe = undefined;
	if( window.parent && $.isFunction( window.parent.resizeIframe ) )
	{
		myResizeIframe = window.parent.resizeIframe;
	}
	
	content.find(".removeLink").click( function( eventObject ) 
	{ 
		eventObject.preventDefault();
		eventObject.stopPropagation();
		var li = $(this).parent();
		li.remove();
	} );
	
	var eventListener = function( eventObject )
	{
		var li = $(this).parent();
		var parent = li.parent();
		//find the top level parent
		while( !parent.is( "ul.treeview" ) )
		{
			parent = parent.parent();
		}
		
		if( parent.hasClass( "followLink" ) )
		{
			return;
		}
		
		eventObject.preventDefault();
		eventObject.stopPropagation();
		
		if( parent.hasClass("singleSelect") )
		{
			var id = parent.attr( 'id' );
			$('#' + id + 'Input').val( li.find("> span.curriculumId").text() );
			parent.find("span.highlightLabel").removeClass("highlightLabel");
			li.find(">span.curriculumLabel").addClass("highlightLabel");
		}
		else 
		{
			var selectedContainer = $(".selected-curriculum-topics", content);
			var newTopic = selectedContainer.find(".exampleSelectedTopic").clone(true)
					.removeClass("exampleSelectedTopic").appendTo(selectedContainer);
			newTopic.find("span.selectedLabel").text( li.find("> span.curriculumLabel").text() );
			newTopic.find("input").val( li.find("> span.curriculumId").text() );
		}
	};
	
	content.find('.treeview li span.curriculumLabel').click( eventListener );
	var treeviews = content.find('ul.treeview');
	treeviews.each
	( 
		function( index, element )
		{
			var treeview = $(element);
			var reset = treeview.hasClass( "nostate" );
			var newStyle = treeview.hasClass( "newStyle" );
			var showZero = treeview.hasClass( "showzero" );
			var showHidden = treeview.hasClass( "showhidden" );
			var addChild = treeview.hasClass( "addchild" );
			var url = ctxp + mynamespace + '/curriculumtree.action';
			
			//treeview.css( "background-color", "#f90" );
			
			treeview.treeview
			( 
				{
					collapsed: true,
					prerendered: true,
					toggle: function()
					{
						var $this = $(this);
						
						if( !$this.hasClass('ccloaded') )
						{
							$this.addClass( 'ccloaded' );
							var ul = $this.find("ul");
							ul.load
							( 
								url, 
								{
									decorator: 'ajax',
									parentId: $this.find('span.curriculumId').text(),
									r: (reset ? "true" : "false"),
									newStyle: (newStyle ? "true" : "false" ),
									template: template,
									showZeroItems: (showZero ? "true" : "false" ),
									showHiddenItems: (showHidden ? "true" : "false" ),
									addChild: (addChild ? "true" : "false" )
								},
								function()
								{
									var lis = $('> li', ul);
									
									treeview.treeview
									({
										add: lis
									});
									//attach events to these new items
									lis.find("span.curriculumLabel").click( eventListener );
									
									if( $.isFunction( myResizeIframe ) )
									{
										myResizeIframe();
									}
								}
							);
						}
						if( $.isFunction( myResizeIframe ) )
						{
							myResizeIframe();
						}
					}
				}
			);
		} 
	);
	
};
