var results = [];
var markers = { "store": [], "drop_off": [], "arc": [] };
 
function checkForMore() {
	var hidden = $('#map_results div.selected div.hidden');
	
	if(hidden.length > 0) {
		$('#show_more_link').removeClass('hidden');
	}
	else {
		$('#show_more_link').addClass('hidden');
	}
}

function showMore() {
	var hidden = $('#map_results div.selected div.hidden');

	if(hidden.length > 0) {
		var i = 0;
		
		while(i < hidden.length && i < 5) {
			$(hidden.get(i)).removeClass('hidden');
			i++;
		}
		
		checkForMore();
	}
}

function showMarkersFor(from, to) {
	if(from != to) {
		for(var i=0;i<markers[from].length;i++) {
			markers[from][i].hide();
		}
	}
	
	for(var i=0;i<markers[to].length;i++) {
		markers[to][i].show();
	}
}

$(function() {
	var results_links = $('ul#nav_map_results a');		

 	results_links.each(function(){
		$(this).bind('click',function(){
			var self = $(this);
			
			showMarkersFor($('#nav_map_results a.selected').parent('li').attr('class'), self.parent('li').attr('class'));
			
			results_links.removeClass('selected');
			self.addClass('selected');
			
			$('#map_results div.selected').removeClass('selected');

			$('#map_results div#' + self.parent('li').attr('id') + '_results').addClass('selected');
			
			checkForMore();

			return false;
		}); 
  });

  results_links.eq(selected).trigger('click');
	
	$('#show_more_link a').click(function() {
		showMore();
		
		return false;
	});
	
  var results_rows = $('#map_results div.location');

  results_rows.each(function(){
		var self = $(this);
		var link = self.find('a.site')
		
		if(link.length == 1) {
			self.addClass('linked');
			
			self.bind('click', function(event) {
				if(!$(event.target).hasClass('directions')) {
					window.location.href = link.attr('href');
					return false;
				}		
			});

			self.hover(function(){ 
				self.addClass('hover'); 
			},function(){ 
				self.removeClass('hover'); 
			});
		}
		
		/* check length */		
		var lines = self.find('ul li').length;
		var height = (18 * lines) + 10;
		
		self.css('height', height + 'px');
		self.find('div.results_link a').css({ 'height': height + 'px', 'line-height': height + 'px'});
  });
	
	if(results.length > 0) {
		var map = new GMap2($('#map').get(0));
		map.setCenter(new GLatLng(results[0].latitude, results[0].longitude), 9);
		map.addControl(new GSmallMapControl());
		
		for(var i=0;i<results.length;i++) {
			var icon = new GIcon();
			icon.image = "/_images/app/marker_" + results[i].icon + "_" + results[i].letter.toLowerCase() + ".png";
			icon.shadow = "/_images/app/map_icon_shadow.png";
			icon.iconSize = new GSize(20, 34);
			icon.shadowSize = new GSize(59, 32);
			icon.iconAnchor = new GPoint(16, 32);
			icon.infoWindowAnchor = new GPoint(5, 1);
			
			var point = new GLatLng(results[i].latitude, results[i].longitude);
			var marker = new GMarker(point, { icon: icon });
			
			markers[results[i].icon].push(marker);
			
			map.addOverlay(marker);
			
			if(results[i].icon != "store") {
				marker.hide();
			}
		}
	}
});