// default

//
var map;
var map_info = {};

//
$.postJSON = function (url, data, callback) {
	$.post(url, data, callback, 'json');
};

//
$(function(){

	// css navigation dropdown/flyout replacement for ie 6
	if($.browser.msie && $.browser.version < 7){
		$('#nav ul>li').hover(/*over*/function(){ $(this).children('ul:first').css({display:'block'})},/*out*/function(){ $(this).children('ul:first').css({display:'none'})});
		$('li>a').hover(/*over*/function(){$(this).parent('li').addClass('hover')},/*out*/function(){$(this).parent('li').removeClass('hover')});
	}
	
	// event tracker for outgoing links/file downloads
	$('a').each(function(){
		var path;
		
		if(path = $(this).attr('href')){
			var outgoing 	= /^(http|https)/i;
			var ext 		= /[^/].(?:doc|eps|jpg|jpeg|png|svg|xls|ppt|pdf|xls|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3|mp4)/i;
			
			if (path.match(outgoing) && !path.match(document.domain) ) {
				$(this).click(function(){
					// old ga code
					//pageTracker._trackEvent('Link', 'Outgoing', $(this).attr('href'));
					
					// new ga code
					_gaq.push(['_trackEvent', 'Link', 'Outgoing', $(this).attr('href')]);
				});
			} else if(path.match(ext)){
				$(this).click(function(){
					// old ga code
					//pageTracker._trackEvent('File', 'Download', $(this).attr('href'));
					
					// new ga code
					_gaq.push(['_trackEvent', 'File', 'Download', $(this).attr('href')]);
				});	
			}
		}
	});
	
	// search
	$('#q').focus(function(){
		if($(this).val() == 'search our site'){ $(this).val(''); }
	}).blur(function(){
		if($(this).val() == ''){ $(this).val('search our site'); }
	});
	
	// forms
	$('form:not(.not-ajax)').ajaxForm({
        beforeSubmit:  	function(formData, form, options){
							$('input.warning,textarea.warning,checkbox.warning,select.warning').removeClass('warning');
							$('.validate').slideUp();
							return true;
						}, 
        success:       	function(data, status, xhr, form){
							if(data.success == true){
								$('.validate>p').html(data.thank_you);
								$('.validate').slideDown();
								$('html, body').animate({ scrollTop: 100 }, 1000);
								form.slideUp();
							} else {
								$('.validate>p').html('');
								
								for (var i in data.error){
									$('.validate>p').append(data.error[i] + '<br />');
								}
								
								for (var i in data.error){
									$('[name=' + data.name[i] + ']').addClass('warning');
								}
								
								$('html, body').animate({ scrollTop: $('#form').offset().top }, 1000, function(){$('.validate').slideDown();});
								
							}
						},
		type:			'post',
		dataType:		'json'
	});
	
	// billboard
	$('#billboard').cycle({ 
		fx:				'fade', 
		speed:			1000,
		timeout:		6500,
		cleartype:		1,
		cleartypeNoBg:	1
	 });
	
	// gallery
	$(".gallery>ul>li>a,a.image,table.eye-store a").fancybox({
		'titlePosition'		: 'over',
		'overlayColor'		: '#000000',
		'overlayOpacity' 	: .5
	});
	
	// calendar
	$('#prev_month>a').bind('click', function(){
		var date 	 = $('table.calendar:first').attr('data-date');
		var type 	 = $('table.calendar:first').attr('data-type');
		var audience = $('table.calendar:first').attr('data-audience');
		
		if(type != ''){ type = 'type:' + type +  '/'; }
		if(audience != ''){ audience = 'audience:' + audience +  '/'; }
		
		$.getJSON('/ajax/command:mini-cal/direction:previous/date:' + date + '/' + type + audience, function(data){
			if(data.success == true){
				$('table.calendar:first').before(data.html);
				$('table.calendar:last').remove()
			}
		})
		
		return false;
	});
	
	$('#next_month>a').bind('click', function(){
		var date 	 = $('table.calendar:last').attr('data-date');
		var type 	 = $('table.calendar:last').attr('data-type');
		var audience = $('table.calendar:last').attr('data-audience');
		
		if(type != ''){ type = 'type:' + type +  '/'; }
		if(audience != ''){ audience = 'audience:' + audience +  '/'; }
		
		
		$.getJSON('/ajax/command:mini-cal/direction:next/date:' + date + '/' + type + audience, function(data){
			if(data.success == true){
				$('table.calendar:last').after(data.html);
				$('table.calendar:first').remove();
			}
		})
		
		return false;
	});
	
	// map
	$('.map,.small-map').each(function(){
		if (GBrowserIsCompatible()) {
			
			var lat_lng = $(this).data('options');
			
        	map = new GMap2(this);
			map.addControl(new GSmallMapControl());

        	map.setCenter(new GLatLng(lat_lng.lat, lat_lng.lng), 15 /*,G_PHYSICAL_MAP*/);
 			
			marker = new GMarker(new GLatLng(lat_lng.lat, lat_lng.lng), {title:'Click for Directions'});
			map.addOverlay(marker);
			  
			GEvent.addListener(marker, "click", function() {
				window.open(lat_lng.url);
			});
			
		}	
	});
	
	// map
	$('.events-map').each(function(){
		if (GBrowserIsCompatible()) {
			
        	map = new GMap2(this);
			map.addControl(new GSmallMapControl());
 			
			$('.location').each(function(){
			
				var lat_lng = $(this).data('options');
			
				marker = new GMarker(new GLatLng(lat_lng.lat, lat_lng.lng), {title:lat_lng.title});

				map.addOverlay(marker);
				  
				GEvent.addListener(marker, "click", function() {
					window.location = lat_lng.url;
				});
				
				mapCenter(lat_lng.lat, lat_lng.lng);
			
			});
			
			var centerLat = (map_info.minLat + (map_info.maxLat - map_info.minLat) / 2);
			var centerLng = (map_info.minLng + (map_info.maxLng - map_info.minLng) / 2);
			
			var miles = (3958.75 * Math.acos(Math.sin(map_info.minLat / 57.2958) * Math.sin(map_info.maxLat / 57.2958) + Math.cos(map_info.minLat / 57.2958) * Math.cos(map_info.maxLat / 57.2958) * Math.cos(map_info.maxLng / 57.2958 - map_info.minLng / 57.2958)));
			
			
			if(miles < 0.2){
				zoom = 16;
			} else if(miles < 0.5){  
				zoom = 15;
			} else if(miles < 1){  
				zoom = 14;
			} else if(miles < 2){  
				zoom = 13;
			} else if(miles < 3){  
				zoom = 12;
			} else if(miles < 7){ 
				zoom = 11;
			} else if(miles < 15){ 
				zoom = 10;
			} else if(miles < 30){ 
				zoom = 9;
			} else { 
				zoom = 8;
			}
			
			map.setCenter(new GLatLng(centerLat,centerLng), zoom);
			
		}	
	});
	
	//windowshade
	$('.windowshade').each(function(){
		$(this).find('.string').bind('click', function(){
			$(this).parent('p').siblings('.shade').slideToggle();
			return false;
		});
	});
	
	// more
	$('.moreLink,.moreBtn').click(function(){
		$(this).siblings('.moreTxt').show('slow', function(){ $(this).css({'display':'inline'})});
		$(this).siblings('.moreBtn').hide();
	});
	
	//
	$('.hide').hide();
	
});

function mapCenter(lat, lng){

	if(!map_info.minLat || map_info.minLat > lat){ map_info.minLat = parseFloat(lat) }
	if(!map_info.maxLat || map_info.maxLat < lat){ map_info.maxLat = parseFloat(lat) }
	
	if(!map_info.minLng || map_info.minLng > lng){ map_info.minLng = parseFloat(lng) }
	if(!map_info.maxLng || map_info.maxLng < lng){ map_info.maxLng = parseFloat(lng) }
	
}
