$(document).ready(function() {
	// bottom menu animations
	if (typeof window.menuSpeed != 'number') {
		window.menuSpeed = 400;
	}
	$('#BottomMenu a').addClass('withJS')
		.hover(function() {
			$(this).stop().animate({
				height: '90px'
			  }, window.menuSpeed);
		}, function() {
			$(this).animate({
				height: '30px'
			  }, window.menuSpeed);
	});
	
	
	// news ticker
	var newsItems = $('#NewsTicker li');
	if (newsItems.length == 0) {
		$('.newsButton').css('display', 'none');
	} else if (newsItems.length == 1) {
		$('.newsButton').css('display', 'none');
	} else {
		if (typeof window.newsTime != 'number') {
			window.newsTime = 0;
		}
		if (typeof window.newsSpeed != 'number') {
			window.newsSpeed = 1000;
		}
		
		$('#NewsTicker').cycle({ 
			prev:   '#NewsPrev',
			next:   '#NewsNext',
			timeout: window.newsTime,
			speed: window.newsSpeed,
			pause: true
		});
	}
	
	
	
	// search form
	searchForm.form = $('#SearchForm_SearchForm');
	
	searchForm.form.find('.actionLink').click(function() {
		searchForm.form.submit();
		return false;
	});
	
	
	
});

var searchForm = {
	form: '',
	initAjax:function() {
		
	
		searchForm.form.submit(function() {
			var searchFor = $('#SearchForm_SearchForm_Search').attr('value');
			if (searchFor == '') {
				return false;
			}
			
			var resultHolder = $('#SidebarSearchResultsContainer');
			if (resultHolder) {
				resultHolder.remove();
			}
			
			var expandedHeight = searchForm.form.parent().outerHeight();
			
			$.get($(this).attr('action'), { Search: searchFor, ajax: 1 },
				function(data){
					searchForm.form.append(data)
									.animate({height: expandedHeight}, 500);
					
				var closeButtonString = "<a href='#' id='CloseSearchButton' class='closeSearchForm'>X</a>";
				
				$('#SearchForm_SearchForm h3').before(closeButtonString);
				$('.closeSearchForm').click(function() {
					$('#SidebarSearchResultsContainer').remove();
					$('.closeSearchForm').remove();
					searchForm.form.animate({height: 56}, 500);
					return false;
				});
					
				//	var insertString = "<p class='buttonHolder clearfix'><a href='' class='buttonArrowRight'>next</a><a href='' class='buttonArrowLeft'>prev</a></p>"
				//	$('#SidebarSearchResults').before(insertString).after(insertString);
				
					$('#SidebarSearchResults').cycle({ 
															timeout:0,
															prev:   '#SearchForm_SearchForm .buttonHolder .buttonArrowLeft',
															next:   '#SearchForm_SearchForm .buttonHolder .buttonArrowRight',
															speed: window.newsSpeed,
															pager: $('#SidebarSearchResultsContainer .paginator a')
														});
				
				
				});
			
			return false;
		});
	}
	
}


var accordion = {
	callback: false,
	originalBanner:null,
	init:function() {
		this.originalBanner = $('#Banner').css('backgroundImage');
		
		var settings = {
			collapsible: true,
			header: '.accordionHeader',
			autoHeight: false
		};
		
		var hash = window.location.hash;
		if (hash != '') {
			targetLink = $('a[name='+hash.replace('#', '')+']');
			if (targetLink) {
				settings['active'] = targetLink.parent();
			}
		} else {
			settings['active'] =0;
		}
		
	
		$('.accordion').accordion(settings);
		
		var firstItem = $('.ui-accordion-content-active');
		accordion.changeBanner(firstItem);
		
		
		$('.accordion').bind('accordionchange', function(event, ui) {
			accordion.changeBanner(ui.newContent.parent());
		});
		

		
		
		if (accordion.callback) {
			accordion.callback();
		}
	},
	
	changeBanner: function(src) {
			var img = $('.bannerPreloader', src);
			
			if (img.length > 0) {
				$('#Banner').css('backgroundImage', 'url('+$(img).attr('src')+')');
			} else {
				$('#Banner').css('backgroundImage', this.originalBanner);
			}
		
		
	}
};


var googleMap = {
	markers: {},
	marker: false,
	initialMarker: false,
	map: false,
	apiLoaded: false,
	width: 300,
	height: 300,
	init: function(params) {
		googleMap.markers = params.markers;
		googleMap.width = params.width;
		googleMap.height = params.height;
		googleMap.apiKey = params.apiKey;
				
		accordion.callback = googleMap.updateMap;

		$('.accordion').bind('accordionchangestart', function(event, ui) {
			googleMap.updateMap();
		});
		
		$('#Banner').addClass('withMap')
						  .append('<div id="MapContainer"></div>');
		
	},
	
	updateMap: function() {
		var name = $('.accordionHeader.ui-state-active a').attr('name');
		
		googleMap.goToMarker(name);
	},
	
	goToMarker: function(name) {
		if (!googleMap.markers[name]) {
			$('#MapContainer').css('display', 'none');
			return;
		}
	
		if (!googleMap.apiLoaded) {
			googleMap.initialMarker = name;
			return;
		}
		$('#MapContainer').css('display', 'block');
		var markerParams = googleMap.markers[name];
		var mapLatLng = new google.maps.LatLng(markerParams.Lat, markerParams.Lng);
		var markerLatLng = new google.maps.LatLng(markerParams.MarkerLat, markerParams.MarkerLng);
		
		if (!googleMap.map) {
			var mapOptions = {
				zoom: markerParams.Zoom*1,
				center: mapLatLng,
				mapTypeId: google.maps.MapTypeId.ROADMAP,
				mapTypeControl: false
			};
			googleMap.map = new google.maps.Map(document.getElementById('MapContainer'), mapOptions);

			var markerIcon = new google.maps.MarkerImage('themes/nzhl/images/marker2.png',
				new google.maps.Size(49, 55),
				// The origin for this image is 0,0.
				new google.maps.Point(0,0),
				// The anchor for this image is the base of the flagpole at 0,32.
				new google.maps.Point(14, 55)
			);
			
			var markerShadow = new google.maps.MarkerImage('themes/nzhl/images/marker2_shadow.png',
				new google.maps.Size(77, 55),
				// The origin for this image is 0,0.
				new google.maps.Point(0,0),
				// The anchor for this image is the base of the flagpole at 0,32.
				new google.maps.Point(14, 55)
			);
    
			googleMap.marker = new google.maps.Marker({
				position: markerLatLng,
				map: googleMap.map,
				icon: markerIcon,
				shadow: markerShadow
			});
		
		} else {
			googleMap.map.setCenter(mapLatLng);
			googleMap.map.setZoom(markerParams.Zoom*1);
			googleMap.marker.setPosition(markerLatLng);
		}
		

		
		
	},
	
	onApiLoaded: function() {
		googleMap.apiLoaded = true;
		if (googleMap.initialMarker) {
			googleMap.goToMarker(googleMap.initialMarker);
			googleMap.initialMarker = false;
		}
	}
	
}