function FacetManager(empty) {

	this.curSelectedTab = [null, null, -1];
	this.isOpen = false;
	this.empty = empty;
	this.showSave = false;
	this.subTypeLists = [ 'advanced-types-events', 
						  'advanced-types-orgs', 
						  'advanced-types-people', 
						  'advanced-types-places', 
						  'advanced-types-subjects' ];
								  
	this.typeTabs = [ 'advanced-tab-events', 
					  'advanced-tab-orgs', 
					  'advanced-tab-people', 
					  'advanced-tab-places', 
					  'advanced-tab-subjects' ];
	
	this.containers = [ 'advanced-facets' ];
						
	this.form = 'facet-form';
	
	this.typeEnabled = new Array(5);		
	this.selectedFacets = new Array(5);
	for(var i = 0; i < this.selectedFacets.length; i++) {
		this.typeEnabled[i] = true;
		this.selectedFacets[i] = null;
	}
	this.numSelected = 0;									
	
}

FacetManager.EVENTS = 0;
FacetManager.ORGANIZATIONS = 1;
FacetManager.PEOPLE = 2;
FacetManager.PLACES = 3;
FacetManager.SUBJECTS = 4;


FacetManager.prototype = { "advanceToggle": 	function(el) {
									
													if(this.isOpen) {
														for(var i = 0; i < this.containers.length; i++) {
															document.getElementById(this.containers[i]).style.display = 'none';
														}
														
														el.innerHTML = "View categories to refine your search";
														Core.removeClass(el.parentNode,"advanced-open");
														
														this.isOpen = false;
													}
													else {
														
														for(var i = 0; i < this.containers.length; i++) {
															document.getElementById(this.containers[i]).style.display = 'block';
														}
																											
														for(var i = 0; i < this.subTypeLists.length; i++) {
															document.getElementById(this.subTypeLists[i]).style.display = 'block';
														}
														
														for(var i = 0; i < this.typeTabs.length; i++) {
															Core.removeClass(document.getElementById(this.typeTabs[i]),'advanced-type-selected');
														}
														
														el.innerHTML = "[ Hide ]";
														Core.addClass(el.parentNode,"advanced-open");
														
														this.isOpen = true;
														
													}
													this.tabToggle(-1);
												
												},
							 
							 "tabToggle":		function(index,fake) {
								 					
								 					if(arguments.length == 1) fake = false;
	
													if(index != -1) {
														subtypeElement = document.getElementById(this.subTypeLists[index]);
														typeElement = document.getElementById(this.typeTabs[index]);
													}
													else {
														subtypeElement = null;
														typeElement = null;
													}
													
													if(this.curSelectedTab[0]) {
														Core.removeClass(this.curSelectedTab[0], "advanced-type-selected");
														//this.curSelectedTab[1].style.display = "none";
														
														var doReturn = (typeElement == this.curSelectedTab[0]);
														this.curSelectedTab = [null, null,-1];
														
														if(doReturn) return;
												
													}
													
													if(this.selectedFacets[index] || !this.typeEnabled[index]) return;													
													
													this.curSelectedTab = [typeElement, subtypeElement, index];
													
													if(typeElement && subtypeElement && !fake) {
														Core.addClass(typeElement, "advanced-type-selected");
														subtypeElement.style.display = "block";
													}
				
												},
												
												
							"facetToggle":		function(facetValue,facetName,facetIndex,apply) {
								 
													if(arguments.length < 4) apply = true;
													
													if(facetIndex != -1) {
														subtypeElement = document.getElementById(this.subTypeLists[facetIndex]);
														typeElement = document.getElementById(this.typeTabs[facetIndex]);
													}
													else {
														subtypeElement = null;
														typeElement = null;
													}
													
													if(this.selectedFacets[facetIndex]) {
									 					this.selectedFacets[facetIndex] = null;
									 					Core.removeClass(document.getElementById(this.typeTabs[facetIndex]), "advanced-type-disabled");
									 					this.numSelected--;
							 						}
							 						else {
								 						//facetName += " (" + this.curSelectedTab[0].innerHTML + ")";
								 						this.selectedFacets[facetIndex] = [facetValue, facetName, facetIndex];
								 						Core.addClass(subtypeElement, "advanced-type-disabled");
								 						//this.tabToggle(this.curSelectedTab[2]);
								 						this.numSelected++;
								 						
							 						}
										
								 					//this.facetDisplay();
							 						if(apply) this.applyFacets();
								 					
						 						},
							 							
						 						
						 	"facetDisplay":		function() {
							 	
							 						var list = document.getElementById("advanced-selected-list");
							 						list.innerHTML = "";
							 						for(var i = 0; i < this.selectedFacets.length; i++) {
								 						if(this.selectedFacets[i])
								 							list.innerHTML += this.facetMarkUp(this.selectedFacets[i]);
						 							}
						 							
						 							var save = document.getElementById("advanced-apply");
						 							var cont = document.getElementById(this.containers[1]);
						 							
						 							
						 							if(list.innerHTML == "") {
							 							list.innerHTML = "<li>&nbsp;</li>";
							 							
							 							if(this.empty) {
								 							//save.style.display="none";
								 							cont.style.display="none";
						 								}
						 								else {
							 								//save.style.display="inline";
						 								}
						 								
						 							}
						 							else {
							 							/*if(this.showSave) {
							 								save.style.display="inline";
						 								}*/
							 							cont.style.display="block";
						 							}
						 							
					 							},
								 						
						 						
						 	"facetMarkUp":		function(facet) {
							 	
							 						var facetValue = facet[0];
							 						var facetName = facet[1];
							 						var facetIndex = facet[2];
							 	
							 						return "<li><a onclick=\"manager.facetToggle('" +facetValue+"','" + facetName + "','" + facetIndex + "');return false;\" href=\"#\"><span class=\"advanced-selected-x\">&times;</span><span>" + facetName + "</span></a></li>";
							 						
						 						},
						 	"applyFacets":		function() {
							 	
							 						var f = document.getElementById(this.form);
							 						var first = true;
							 						f.facet.value = "";
							 						
							 						for(var i = 0; i < this.selectedFacets.length; i++) {
								 						if(this.selectedFacets[i]) {
									 						if(!first) f.facet.value += ";";
									 						
									 						f.facet.value += this.selectedFacets[i][0];
									 						
									 						first = false;
									 						
								 						}
							 						}
							 						
							 						f.submit();
						 						},
						 						
						 	"disableType":		function(index) {
							 				
							 						var tab = document.getElementById(this.typeTabs[index]);
							 						Core.addClass(tab, "advanced-type-disabled");
							 						this.typeEnabled[index] = false;
							 						
						 						},
						 						
						 	"displayToggle":		function(id) {
							 	
							 						obj = document.getElementById(id);
							 						obj.style.display = (obj.style.display == 'block') ? 'none' : 'block';
							 						
						 						}
												
										};
								
	
							
								
								
							