dojo.declare("com.mgh.MultimediaCategories",[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;
	}, 
 	
 	buildCategories : function ()
 	{
		var i;
		//removes all category names from display
		var regEx = /\(.*\)/;
		var myCategories = this.categories.getElementsByTagName("NAME");
		var myCatIds = this.categories.getElementsByTagName("ID");
		var output = '<h3>Medical Category:</h3>';
		if (this.linksToDisplay > myCategories.length){
			this.linksToDisplay = myCategories.length;
		}        
	    var trimmed = '';
	    var rows = 0;

		var sortedCats = new Array();

		//first store the category and its ids and sort this new array
		for (i=0; i<myCategories.length; i++){
			sortedCats[i] = 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
        output += '<table width="100%" border="0" cellspacing="0" cellpadding="5" valign="top">'
        output += '<tr>';
                
        for (var x=0; x < 3; x++){
	    	output += '<td width="33%" valign="top">';
	    	output += '<ul>';        	
	        for (i=rows; i < (this.linksToDisplay * (x+1)); i++){
				try {
		        	trimmed = sortedCats[i].split('|')[0].replace(regEx,'');
		        	output += '<li><a href="#" onclick="filterMultimediaByCategory(\''+
		        	sortedCats[i].split('|')[1] + '\'); updateMultimediaCategories(\'' + 
		        	sortedCats[i].split('|')[1] +'\',\'' + 
		        	trimmed + '\')">' + 
		        	trimmed + '</a></li>';
		        	rows +=1;
		        	if (i > (this.linksToDisplay *3)-1){
						output += '<li><a href="#" class="goBack" onclick="buildHiddenPanel(\'categoriesContent\',\'categories\'); dijit.byId(\'categoriesDialog\').show()">Display All</a></li>';		        		
		        	}
				} catch (e) {
					break;
				} 
	        }	        
        }
        output += '</tr>';
        output += '</table>';
		dojo.byId('categories1').innerHTML = output;	
	},
		
	updateCategories : function (id,nodeName){
		var output = '<h3>Medical Category:</h3>';
        output += '<ul>';
		var nodes = dojo.query('li', id);
		output += '<li id="' + nodeName + '" class="active"><strong>' + nodeName + '</strong></li>';
		output += '<li><a href="#" class="goBack" onclick="removeFilter(\'multimediaCategories\')">Show all medical categories</a></li>';
		output += '</ul>'
		dojo.byId('categories1').innerHTML = output;
		this.previousCat = id;
	},
	
	buildFilter1 : function (){
		//Question: what parameter is being set with this filter?
		var filter1 = ['Videos','Slideshows','Audio'];
		var ids = [244,243,242];
		var output = '<h3>View Only:</h3>';
		//var nodes = dojo.query('li', id);
		for (var i = 0; i < filter1.length; i++){
			output += '<li id="' + filter1[i] + '" class="active"><a href="#" onclick="updateMultimediaFilter1(\'' + ids[i]+ '\')">' + filter1[i] + '</a></li>';			
		}
		dojo.byId('filter1').innerHTML = output;
	},
	
	buildFilter2 : function (){
		var filter1 = ['Mass General','Clinical','Research'];
		var ids = [233,234,235];
		var output = '<h3>Topic:</h3>';
		//var nodes = dojo.query('li', id);
		for (var i = 0; i < filter1.length; i++){
			output += '<li id="' + filter1[i] + '" class="active"><a href="#" onclick="updateMultimediaFilter2(\'' + ids[i]+ '\')">' + filter1[i] + '</a></li>';			
		}
		dojo.byId('filter2').innerHTML = output;
	},
	
	updateFilter1 : function (id){
		var filter = new Array();
		filter["244"] = 'Videos';
		filter["243"] = 'Slideshows';
		filter["242"] = 'Audio';		
		var output = '<H3>View Only:</H3>';
		output += '<li id="' + id + '" class="active"><strong>' + filter[id] + '</strong></li>';
		output += '<li><a href="#" class="goBack" onclick="removeFilter(\'multiMediaFilter1\')">Show all</a></li>';
		dojo.byId('filter1').innerHTML = output;
	},
	
	updateFilter2 : function (id){
		var filter = new Array();
		filter["233"] = 'Mass General';
		filter["234"] = 'Clinical';
		filter["235"] = 'Research';			
		var output = '<H3>Topic:</H3>';
		output += '<li id="' + id + '" class="active"><strong>' + filter[id] + '</strong></li>';
		output += '<li><a href="#" class="goBack" onclick="removeFilter(\'multiMediaFilter2\')">Show all topics</a></li>';
		dojo.byId('filter2').innerHTML = output;
	}		
});