jQuery.noConflict();

(function($){

			$(document).ready(function(){

				    $('#marker_list li').shuffle();






			if(GMap2) 
			{
				$('#map').height(399);
				$('#marker_list li').hide();
				//$('.buttons #marker_list li a').removeClass('rounded_by_jQuery_corners').corners('1px 1px top-left');
			}
				var map = new GMap2($("#map").get(0));
				
				var derbyshire = new GLatLng(53.1223220, -1.5136821);
				map.setCenter(derbyshire, 9);
				//map.setMapType(G_SATELLITE_MAP);
				//map.setMapType(G_SATELLITE_3D_MAP);
				map.setMapType(G_PHYSICAL_MAP);
				
				//map.enableContinuousZoom();
				map.enableScrollWheelZoom();
				zoomControl = new GSmallZoomControl();
				map.addControl(zoomControl);

// Google Map Custom Marker Maker 2009
// Please include the following credit in your code

// Sample custom marker code created with Google Map Custom Marker Maker
// http://www.powerhut.co.uk/googlemaps/custom_markers.php

var myIcon = new GIcon();
myIcon.image = 'assets/images/markers/blue/image.png';
myIcon.shadow = 'assets/images/markers/blue/shadow.png';
myIcon.iconSize = new GSize(10,10);
myIcon.shadowSize = new GSize(15,10);
myIcon.iconAnchor = new GPoint(5,10);
myIcon.infoWindowAnchor = new GPoint(5,0);
myIcon.printImage = 'assets/images/markers/blue/printImage.gif';
myIcon.mozPrintImage = 'assets/images/markers/blue/mozPrintImage.gif';
myIcon.printShadow = 'assets/images/markers/blue/printShadow.gif';
myIcon.transparent = 'assets/images/markers/blue/transparent.png';
myIcon.imageMap = [7,0,8,1,9,2,9,3,9,4,9,5,9,6,9,7,8,8,7,9,2,9,1,8,0,7,0,6,0,5,0,4,0,3,0,2,1,1,2,0];



				
				// setup 10 random points
				var bounds = map.getBounds();
				var southWest = bounds.getSouthWest();
				var northEast = bounds.getNorthEast();
				var lngSpan = northEast.lng() - southWest.lng();
				var latSpan = northEast.lat() - southWest.lat();
				var markers = [];
				/*for (var i = 0; i < 10; i++) {
				    var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
				        southWest.lng() + lngSpan * Math.random());
					marker = new GMarker(point);
					map.addOverlay(marker);
					markers[i] = marker;
				}*/
				
				
				/*
				$(markers).each(function(i,marker){
					$('<li class="buttons" />')
						.html(markers_content[i])
						.data('markerid',i)
						.click(function(){
							displayPoint(marker, i);
						})
						.appendTo("#list");
					
					GEvent.addListener(marker, "click", function(){
						displayPoint(marker, i);
					$('#list').stopTime();
			$('#list').everyTime($(this).find('li').length*4000,restartTimers);
						
					});
				});
				*/

				var geocoder_url = 'http://maps.google.com/maps/geo?output=json&oe=utf8&sensor=false&key=ABQIAAAAxIvms1Hl_WRBgFaHKWWwKRQenZJ01_di6m0UUH-yTyzdAlMGMBRPENkWocZ4oWx2HKf8ojQ4-fRwJQ&q=';
				
				
				var Ggeo = new GClientGeocoder();
				var coordinate_string ='';
				
				$('#marker_list li').each(function(i,item){


					$this = $(this);
					
					var address = $this.find('.address').text();
					//console.log(address);
					
					
					//$.getJSON(geocoder_url+address+"+UK&callback=?",
				    var geoCallback = 
				        function(data){
							//$.each(data.postalCodes, function(i,item){

if($this.find('.address').length && typeof(data.Status) !== 'undefined' && data.Status.code==200) {

				    var AAAApoint = new GLatLng(southWest.lat() + latSpan * Math.random(),
				        southWest.lng() + lngSpan * Math.random());
				        
				        var x = data.Placemark[0].Point.coordinates[0];
				        var y = data.Placemark[0].Point.coordinates[1];

				        //console.log('initial y*40: '+parseInt(y*40)+' ');
				        
				        
				        while((coordinate_string).indexOf(parseInt(x*40)+' '+parseInt(y*40))!==-1) {
				        y=y+0.015;
				        //console.log('new y: '+y);
				        }
				    var point = new GLatLng(y,x);
					//marker = new OffsetableMarker(point,{ icon:myIcon },-15,-15);
					marker = new GMarker(point,{ icon:myIcon });
					map.addOverlay(marker);
					markers[i] = marker;
//console.log(markers);
					coordinate_string += ' '+parseInt(markers[i].C.x*40)+' '+parseInt(markers[i].C.y*40)+' ';

			        //console.log('coordinate_string: '+coordinate_string);

					
					$this.live('slideto',function(){
						//$(this).closest('ul').find('li').not(this).fadeOut();
						//$(this).fadeIn();
						displayPoint(marker, i);
						//return false;
					});

					GEvent.addListener(marker, "click", function(){
						if($(item).is(':visible')) {
						$(item).fadeOut();
						startTimers();
						} else {
						displayPoint(marker, i);
						}					
						$('#marker_list').stopTime();
						//startTimers();	
					});
} else {
//console.log('removing '+$this.index(this));
	$(item).remove();
}				
		
					//});
			        }//);//gclientgeocoder
				    Ggeo.getLocations(escape(address)+'+UK',geoCallback);

				
				});
				
				$('#map').mouseup(function(){	
										//console.log('map interacted with. timers stopped.');
										$('#marker_list').stopTime();
										//startTimers();
									});
				
				// static-attach list to map
				$("#marker_list").parent().appendTo(map.getPane(G_MAP_FLOAT_SHADOW_PANE)).find('li').fadeOut();
				
				restartTimers = function(){
			//console.log('restartTimers started');
					$('#marker_list').stopTime();
			var $markers_list = $('li:not(.disabled)','#marker_list');
				var length = $markers_list.length;
				//console.log('length: '+length);
				//$markers_list.eq(0).show().trigger('slideto');
				displayPoint('',$('#marker_list li').index($markers_list.eq(0)))
			//console.log('event triggered on eq:0');
					$('#marker_list').everyTime(4000,function(i) {
						if(i==length && length>1) {
							restartTimers();
						} else if(length>1) {
						//$markers_list.eq(i).trigger('slideto');
						displayPoint('',$('#marker_list li').index($markers_list.eq(i)))
			//console.log('event triggered on eq:'+i);
			
							//restartTimers();
						}
					},length);
					}


				startTimers = function(){
				//console.log('startTimers started');
					$('#marker_list').stopTime();
				$('#marker_list').oneTime(10000,restartTimers);
				//$('#marker_list').everyTime((length*4000)+4000,restartTimers,length);
				}



				function displayPoint(marker, index){
					//$("#message").hide();

					var moveEnd = GEvent.addListener(map, "moveend", function(){
						var markerOffset = map.fromLatLngToDivPixel(markers[index].getLatLng());
						//$("#message")
						$("#marker_list li").hide();
						$("#marker_list li")
							.eq(index)
							.fadeIn();
							
							// enable this if static-attaching list to map (using appendTo above)
							$('#marker_list').css({ top:markerOffset.y-18, left:markerOffset.x-19 });
					
						GEvent.removeListener(moveEnd);
					});
					
					map.panTo(markers[index].getLatLng());
					
					$("#marker_list li").eq(index).oneTime(500,function(){
							$(this).not('.disabled').fadeIn();
							});
				}
				

				$('li:not(.disabled) a','#marker_list').filter(function(){return $(this).find('.h4').text().toLowerCase()=='news'}).eq(0).trigger('slideto');
				$('#marker_list').oneTime(10000,startTimers);
				//restartTimers();
				
				$('#map>div:first-child>div:first-child>div:eq(1)').css('opacity',0.5);
				
				//temporary!!!
				$('#top_menu li a').css({display:'none'});
				
				$('#top_menu li').addClass('selected').find('a').click(function(e){
					e.preventDefault();
					$clicked = $(this);

					if($clicked.data('timing')) {
						$('#map').fadeOut();
						$('#top_menu li, #hint').not(this).animate('opacity',0,'normal','linear',function(){return true;});
						//return true;
					}
					
					$clicked.data('timing',true).oneTime(300,function(){$clicked.data('timing',null).stopTime();},100);
					
					$clicked_li = $clicked.closest('li');

					$clicked_li.is('.selected') ? $clicked_li.removeClass('selected').find('a').css('background-color','#cccccc') : $clicked_li.addClass('selected').find('a').css('background-color',null);
					
					$('#marker_list a').each(function(){
						if(this.href.indexOf($clicked.attr('href'))!==-1) {
							$clicked_li.is('.selected') ? $(this).closest('li').removeClass('disabled').fadeIn() : $(this).closest('li').addClass('disabled').hide();
							markerindex = $('#marker_list a').index(this);
							//console.log(markerindex);
							$clicked_li.is('.selected') ? markers[markerindex].show() : markers[markerindex].hide();						
						}
					});
					
					
					$('#marker_list li').hide();
					restartTimers();
					$clicked.blur();
					return false;
				}).mouseout(function(){
					$(this).css('background-color',null);
				});
				

$('body').append('<span id="hint" style="display:none;">refine map / double click to enter &raquo;</span>');
$('#top_menu').bind('mouseover', function(e){
	$top_menu_li = $(this);
//	$('#hint').corners($.browser.msie?'3px':'').css({position:'absolute',zIndex:1,top:$top_menu_li.offset().top+$top_menu_li.outerHeight()+5,left:e.pageX-($('#hint').innerWidth()*0.5)}).fadeIn();
	$('#hint').corners($.browser.msie?'3px':'').css({position:'absolute',zIndex:1,top:$('#top_menu').offset().top-2,left:$('#top_menu').offset().left-$('#hint').outerWidth()-5}).data('timing',null).stop().fadeIn();
}).bind('mouseout',function(){
	$('#hint').data('timing',true).oneTime(100,function(){if($('#hint').data('timing'))$('#hint').fadeOut();});
});

			});

})(jQuery);
