dojo.declare("com.mgh.ArchiveCategories",[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;
		var regEx = /\(.*\)/;
		var myCategories = this.categories.getElementsByTagName("NAME");
		var myCatIds = this.categories.getElementsByTagName("ID");
		var categoryId;
		var categoryName;
		var sortedCats = new Array();
		var output = '<h3>Type:</h3><ul>%1</ul>';
		var link = '<li><a href="#" onclick="filterArchiveByCategory(\'%1\'); updateArchiveCategories(\'%1\',\'%2\')">%2</a></li>';
		var links = '';		
	    
		if (this.linksToDisplay > myCategories.length){
			this.linksToDisplay = myCategories.length;
		}
		
		//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();
	
		for (i=0; i < this.linksToDisplay; i++){
			try {
				categoryId = sortedCats[i].split('|')[1];
				categoryName = sortedCats[i].split('|')[0].replace(regEx,'');
				links += formatString(link,categoryId,categoryName);
				if (i > (this.linksToDisplay *3)-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('filter1').innerHTML = output;	
	},
	
	updateCategories : function (id,nodeName){
		var output = '<h3>Type:</h3><ul>%1</ul>';
		var link = '<li id="%1" class="active"><strong>%1</strong></li>';
		var links  = formatString(link,nodeName);
			links += '<li><a href="#" class="goBack" onclick="removeFilter(\'archiveCategories\')">Show all</a></li>';
		output = formatString(output,links);
		dojo.byId('filter1').innerHTML = output;
		this.previousCat = id;
	}	
});