var selectedCats = new Array();
var selectedPCats = new Array();
var error =   "";

Array.prototype.remove = function(from, to) {
	var rest = this.slice((to || from) + 1 || this.length);
	this.length = from < 0 ? this.length + from : from;
	return this.push.apply(this, rest);
};

$(document).ready(function() { 
	initMenu(); 
	menuSetup();
	
	// menu leaf node click handler
	$('#topicsnav li').bind("click", function(e) {
		$('.loadbar').show();

		$('.error').remove();
		
		var idstring = $(this).attr('id');
		idstring = idstring.replace(/cat/,'');

		if ( jQuery.inArray( parseInt(idstring), selectedCats)  > -1 ) {
			showError('Measure already selected', '.instruct');
			return;
		}
		
		selectedCats.push(idstring);
		var params = 'action=getMeasures';
		
		if ( selectedCats.length>0 ) {
			for(var i=0;i<selectedCats.length;i++) {
				params+='&catID=' + selectedCats[i];
			}
		}
			
		var url = '/datacenter/servlet/CreateTable?' + params;
		showMeasures(url);
	});
	
		// menu leaf node click handler
	$('#policymenu li').bind("click", function(e) {
		 $('.loadbar').show(); 
		$('.error').remove();
	
		var idstring = $(this).attr('id');
		idstring = idstring.replace(/pcat/,'');
					
		selectedPCats.push(idstring);
		var params = 'action=getMeasures&t=p';
				
		if ( selectedPCats.length>0 ) {
			for(var i=0;i<selectedPCats.length;i++) {
				params+='&catID=' + selectedPCats[i];
			}
		}
				
		var url = '/datacenter/servlet/CreateTable?' + params;
		showMeasures(url);
	});

    
	  $("#next img, #next a img").click(function() {
                getStates('p');
        });

	//hover states on the static widgets
	$('#dialog_link, ul#icons li').hover(
		function() { $(this).addClass('ui-state-hover'); }, 
		function() { $(this).removeClass('ui-state-hover'); }
	); 
}); // document ready

function getTable() {
        $('.error').remove();
        if ( $("input:checked").length<1 ) {
                if ($('.maxxed').length==0) {
                        showError("No states selected", '.instruct');
                }
           return;
        } else { 
                $('#states').hide();
                $('.instruct').hide();
                $('#loadingbar').show();
                document.states.submit();
        }
}

function getStates() {

	if ( selectedCats.length<1 && selectedPCats.length<1) {
		showError('No indicators selected','#selectedMeasures');
		return;
	} else {
	    var params = 'action=getStates';
		if (selectedPCats.length>=1) {
			params+='&t=p';
			selectedCats=selectedPCats; 
		}
		
		$('#leftcolumn').empty();
		$('#contentwindow').empty();
		$('#pagemenu').empty();
			
		current = urlEncode(selectedCats);
		params+='&gID=' + current;
		var url = '/datacenter/servlet/CreateTable?';
		
		$.ajax({
			type: "POST",
			url: url,
 			data: params,
			success: function(xhr) { 
				$('#contentwindow').append(xhr);
				
				$('img#tablebutton, a img#tablebutton').bind("click", function(e){
					getTable();
   				 });				 
   						 
				$('img#checkall, a img#checkall').bind("click", function(e){
					checkAll();
   				 });
   				 
				$('img#deselect, a img#deselect').bind("click", function(e){
					uncheckAll();
   				 });   			  			
			}
		});
	}
}
	
function showMeasures(url) {

	$("#next").show();
	$('#selectedMeasures').empty();
	selectedCats = [];
	selectedPCats = [];

	
	$.getJSON(url, function(json) {		
		
		var categories = json.categories;
		var error = json.error;
		if (error!==undefined && $('div.error').length==0) {
			showError(error, '.instruct');
		}
		var count = json.count;
	
		var type = json.type;	
		
		$.each(categories, function(i,thiscat) {
			var group = new Array();
			var catID = thiscat.catID;
			var subcat = thiscat.subcat;
			var measures = thiscat.Measures;
									
			$('#selectedMeasures').append('<div class="measureGrp">');
				
			if (subcat!==undefined) {
				$('#selectedMeasures').append('<h2>' + subcat + '</h2>');
			}
				
			$.each(measures, function(i,meas) {
			
			var removeurl='javascript:removeMeasure(' + catID + ');';
				var id = 'm' + meas.measureID;
				var stripe;

				
				myHTML = '<div id="' + id + '" class="measure">';
				$('#selectedMeasures').append(myHTML);
			       
				if (i==0) {	
					$('#' + id).append('<div class="remove"><a href="' + removeurl +'"><img src="/datacenter/images/remove.gif" border="0" width="82" height="28" class="removeImg" /></a>');
				}

				$('#selectedMeasures').append('<div class="measuretext">' + meas.measure);
							
				group.push(meas.measureID);
			}); // end measure loop
			
			if (type=="policy") {
				selectedPCats.push(catID);
			} else {
				selectedCats.push(catID);
			}
			$('#selectedMeasures').append('</div>');
		}); // end category loop
	}); // end getJSON	
	$('.loadbar').hide();
}
	
function removeMeasure(id) {
	$('div.error').remove();
	selectedCats.splice(jQuery.inArray(id.toString(),selectedCats),1);
	selectedPCats.splice(jQuery.inArray(id.toString(),selectedPCats),1);

	$('#selectedMeasures').empty();
	$('#next').hide();
	
	var url = '/datacenter/servlet/CreateTable?';
	
	var params = 'action=getMeasures';
		
	if (selectedCats.length>0) {
		for(var i=0;i<selectedCats.length;i++) {
				params+='&catID=' + selectedCats[i]; 
		}
		
		url+=params;
		showMeasures(url);
	} 
	
    if (selectedPCats.length>0) {
		for(var i=0;i<selectedPCats.length;i++) {
				params+='&t=p&catID=' + selectedPCats[i]; 
		}
		
		url+=params;
		// alert(url);
		showMeasures(url);
	}
	
	
}

function urlEncode(selected) {
	var current = selected.join('%20');
	return current;
}

function clearMeasures() {
	selectedCats.splice(0,selectedCats.length);
	selectedPCats.splice(0,selectedPCats.length);
	$('#selectedMeasures').empty();
	$('.instruct').hide();

}



