var Search = {
	
	ActiveSort : 'Votes',

	Init : function() {
		if( $('#filter').is('form') ) {
			var FilterHTML = '';
					FilterHTML+= 	'<h4>Visa:</h4>';
					FilterHTML+=	'<select size="1" id="dd_parties">';
					FilterHTML+= 		'<option value="all">Alla</option>';
					FilterHTML+= 		'<option value="c">Centerpartiet</option>';
					FilterHTML+= 		'<option value="fp">Folkpartiet</option>';
					FilterHTML+= 		'<option value="kd">Kristdemokraterna</option>';
					FilterHTML+= 		'<option value="mp">Miljöpartiet</option>';
					FilterHTML+= 		'<option value="m">Moderaterna</option>';
					FilterHTML+= 		'<option value="s">Socialdemokraterna</option>';
					FilterHTML+= 		'<option value="v">Vänsterpartiet</option>';																																			
					FilterHTML+= 	'</select>';
					FilterHTML+= 	'<h4>Sortera efter:</h4>';			
					FilterHTML+= 	'<span class="rb active" id="rb_votes">Röster</span>';
					FilterHTML+= 	'<span class="rb" id="rb_party">Parti</span>';
					FilterHTML+= 	'<span class="rb" id="rb_name">Namn</span>';
					//FilterHTML+= 	'<div class="free_text">';
					//FilterHTML+= 	'<h4>Sök:</h4>';
					//FilterHTML+= 	'<input type="search" id="free_search" value="" />';					
					//FilterHTML+= 	'</div';					
						
					
			$('#filter').append(FilterHTML);
			$('#filter #dd_parties').change(Search.Filter);
			$('#filter #rb_votes').click(function() { Load.Init(); setTimeout("Search.Sort('Votes')", 1); });
			$('#filter #rb_party').click(function() { Load.Init(); setTimeout("Search.Sort('Party')", 1); });
			$('#filter #rb_name').click(function() 	{ Load.Init(); setTimeout("Search.Sort('Name')", 1); });						
		}
	},

	Filter : function() {
		$('#people ul li.hidden').removeClass('hidden');
		var parti = $('select#dd_parties option:selected').val();
		if( parti != 'all') {
			$('#people ul li:not(.' + parti + ')').addClass('hidden');
		}
	},
	
	SortByName : function(a, b) {
		var x = a.lastName.toLowerCase();
		var y = b.lastName.toLowerCase();
		return ((x < y) ? -1 : ((x > y) ? 1 : 0));
	},
	
	SortByParty : function(a, b) {
		var x = a.party;
		var y = b.party;
		return ((x < y) ? -1 : ((x > y) ? 1 : 0));
	},
	
	SortByVotes : function(a, b) {
		var x = b.voteTotal;
		var y = a.voteTotal;
		return ((x < y) ? -1 : ((x > y) ? 1 : 0));
	},		
		
	Sort : function( How ) {
		//$('#people').append('<div id="StartLoader"><span class="loader">Laddar...</span></div>');
		if( How != Search.ActiveSort ) {
			Search.ActiveSort = How;
			if( How == 'Name' ) {
				People.People.sort(Search.SortByName);
			} else if( How == 'Party' ) {
				People.People.sort(Search.SortByParty);
			} else if( How == 'Votes' ) {
				People.People.sort(Search.SortByVotes);
			}
			$('#filter .rb').removeClass('active');
			$('#filter #rb_' + How.toLowerCase()).addClass('active');
			
			// Print the new list
			$('#people ul').empty();	
			for( i = 0 ; i < People.People.length; ++i ) {
				$('#people ul').append('<li class="' + People.People[i].party + '" id="People_Li_' + People.People[i].id + '">' + People.People[i].HTML + '</li>');
				$('#people ul li:last a').attr('id', 'People_' + People.People[i].id);
			}
			$('#people .list li a').mouseover(People.DisplayInfo);
			$('#people .list li a').mouseout(People.RemoveInfo);
			$('#people .list li a').append('<span class="p"></span><span class="mo"></span>');
			$('#people .list li a').click( People.DisplayPopup );
			
			Search.Filter();	
			Load.Finish();				
		}
	}
}
