/**

* tree class 

*/

function tree(){

	

	/**

	* alllevels - no of levels for tree

	* level - current level

	* name  - current select id

	* value - current value

	*/

	this.Initial = function(alllevels, level, name, select_value){

		this.cleanChildren(alllevels, level, name, 2);

		this.showOptions(select_value, level, name);

		this.copySelectValue(level, name, select_value);

	}

	

	/**

	* clean children tree

	* start - start level

	*/

	this.cleanChildren = function(alllevels, level, name, start){

		//alert(alllevels+" "+level+" "+name+" "+start);

		var start = level+start;

		var stop = alllevels;

		for(i=start; i <= stop; i++){

			if($(name+'_'+i)){

				$(name+'_'+i).options.length=0;

				$(name+'_'+i).options[0] = new Option('Choose One:', '');

			}

			if($(name+'_'+i+'_add')) 	$(name+'_'+i+'_add').hide();

			if($(name+'_'+i+'_edit')) 	$(name+'_'+i+'_edit').hide();

			if($(name+'_'+i+'_delete')) $(name+'_'+i+'_delete').hide();

		}

	}



	/**

	* clean children after adding new parent element

	*/

	this.cleanChildrenAfterAdd = function(){}

	

	/**

	*

	*/

	this.showOptions = function(value, level, name){

		if(value!=''){

			$(name+'_'+level+'_edit').show();

			$(name+'_'+level+'_delete').show();

		}

		else{

			$(name+'_'+level+'_edit').hide();

			$(name+'_'+level+'_delete').hide();

		}

	}

	

	/**

	*

	*/

	this.getCurrentLevelValue = function(id){

		return $(id).value;

	}

	

	/**

	*

	*/

	this.copySelectValue = function(level, name, select_value){

		if($(name+'_'+level+'_copy')){

			$(name+'_'+level+'_copy').value = select_value;

		}	

	}

}

/**
* @id - id of the searchable element
* @elementsclass - group of elements with the same class (resources-categorieslist)
* @prefix - prefix of elements' id cattree-
*/

searchCategory  = function(selectelement, elementsclass, prefix, isLoggedIn){

	if(selectelement.value){
		id = selectelement.value;

		name = selectelement.options[selectelement.selectedIndex].text;

		Element.childrenWithClassName(document, elementsclass).each(
			function(node){
				str = node.id;
				temp = str.split('-');
				if(temp[1] != selectelement.value){
					new Effect.Fade(node,{ from: 1.0, to: 0.3});
				}else{

					new Effect.Fade(node,{ from: 0.3, to: 1.0});
				}
		});

		if(elementsclass != 'resources-subcategorieslist'){
			$('resources-resources').hide();
			$('resources-subcategories').hide();
			new Ajax.Request('/resourcestree/subcatlist/'+id, {asynchronous:true, evalScripts:true, onComplete:function(request, json){$('resources-indicator').hide(); move(id, name, request, isLoggedIn);}, onLoading:function(request, json){$('resources-indicator').show();$('resources-subcategories').hide(); $('resources-resources').hide();}, parameters:'level=2&id='+id});
		}
		else{
			new Ajax.Updater({success:'resources-resources'}, '/resources/index/subcategory_id/'+id, {asynchronous:true, evalScripts:true, onComplete:function(request, json){$('resources-indicator').hide(); $('resources-resources').hide();new Effect.Appear('resources-resources', {});}, onLoading:function(request, json){$('resources-indicator').show();}, parameters:'subcategory_id='+id});
		}

	}
	else{
		Element.childrenWithClassName(document, elementsclass).each(
			function(node){
				new Effect.Fade(node,{ from: 0.3, to: 1.0});
			});

		if(elementsclass != 'resources-subcategorieslist'){
			displaySubcategories($('select_resourcestree1239_1').value);
			displayResources($('select_resourcestree1239_1').value,$('select_resourcestree1239_2').value, $('resources-name').value);
		}else{
			displayResources($('select_resourcestree1239_1').value,$('select_resourcestree1239_2').value, $('resources-name').value);
		}
	}
}



treeObj = new tree();







