dojo.declare("com.mgh.EventsCategories",[com.mgh.Categories], {
	constructor : function(configParams) 
	{
		
	},
		
	updateQuery : function()
	{
		var m = this.queryParams;
		this.query = m.href + '?az=' + m.az + '&age=' + m.age + '&cat=' + m.cat +  '&subcat=' + m.subcat + '&type=' + m.type + '&query=' + m.query + 
		'&month=' + (m.month + 1) + '&audience=' + m.audience + '&eventType=' + m.eventType + '&mediaType=' + m.mediaType + '&newsType=' + m.newsType +
		'&year=' + m.year + '&topic=' + m.topic;
	}, 
		
	//modified 11/05/2009 one column
	buildCategories : function ()
 	{
		var i;
		var regEx = /\(.*\)/;
		var myCategories = this.categories.getElementsByTagName("NAME");
		var myCatIds = this.categories.getElementsByTagName("ID");
		var output = '<h3>Topic:</h3><ul>%1</ul>';
		var trimmed = '';
		var sortedCats = new Array();
		var link = '<li><a href="#" onclick="filterEventsByCategory(\'%1\'); updateEventsCategories(\'%1\',\'%2\')">%2</a></li>';
		var links = '';

		//first store the category and its ids and sort this new array
		//Modification 4/13/2010: 
		//The first category is the data type so start from index 1.		
		for (i=1; i < myCategories.length; i++){
			sortedCats[i-1] = myCategories[i].childNodes[0].nodeValue + '|' + myCatIds[i].childNodes[0].nodeValue;
		}
		
		sortedCats = sortedCats.sort();
			
        // now with the ids sorted, use the sorted categories arrray to get an alphabetized list. use the 
        // sortedCats array instead of the original nodeList elements myCats and myCatIds
		for (i=0; i < this.linksToDisplay; i++){
			try {
				trimmed = sortedCats[i].split('|')[0].replace(regEx,'');
				links += formatString(link,sortedCats[i].split('|')[1],trimmed);
				if (i >= (this.linksToDisplay - 1)){
					links += '<li><a href="#" class="goBack" onclick="buildHiddenPanel(\'categoriesContent\',\'categories\'); dijit.byId(\'categoriesDialog\').show()">Display All</a></li>';		        		
				}
			} catch (e) {
				break;
			} 
		}	        
        output = formatString(output,links);
		dojo.byId('categories1').innerHTML = output;	
	},

	updateCategories : function (id,nodeName)
	{
		var link = formatString('<li id="%1" class="active"><strong>%1</strong></li>',nodeName);
		var output = '<h3>Select a Topic:</h3>';
		output += '<ul>%1<li><a href="#" class="goBack" onclick="removeFilter(\'eventsCategories1\')">Show all topics</a></li></ul>';
		output = formatString(output,link);
		dojo.byId('categories1').innerHTML = output;
		this.previousCat = id;
	},
	
	buildFilter1 : function (){
		var filter1 = ['General Public','Medical Professionals','Researchers','Media'];
		var ids = [257,258,260,259];
		var output = '<h3>View Events For:</h3><ul>%1</ul>';
		var link = '<li id="%1" class="active"><a href="#" onclick="updateEventsFilter1(\'%2\')">%1</a></li>';		
		var links = '';
		for (var i = 0; i < filter1.length; i++){
			links += formatString(link,filter1[i],ids[i]);
		}
		output = formatString(output,links);
		dojo.byId('filter1').innerHTML = output;
	},
	
	updateFilter1 : function (id){
		var filter = new Array();
		filter["257"] = 'General Public';
		filter["258"] = 'Medical Professionals';
		filter["260"] = 'Researchers';
		filter["259"] = 'Media';
		var link = formatString('<li id="%1" class="active"><strong>%2</strong></li>',id,filter[id]);
		var output = '<H3>View Events For:</H3><ul>%1</ul>';
		output += '<li><a href="#" class="goBack" onclick="removeFilter(\'eventsFilter1\')">Show all events</a></li>';
		output = formatString(output,link);
		dojo.byId('filter1').innerHTML = output;
	}		
});