jQuery( document ).ready(function(){

	/* -------- Pufferfish Implementation -------- */
  if ( jQuery( "#site-credits" ).length ){
    jQuery( '#site-credits a' ).append( '<span class="hover"></span>' );
  	jQuery( '#site-credits a' ).hover( function() {
  		jQuery( 'span.hover', this ).stop().animate( {
  			'opacity': 1
  		}, 400, 'easeOutSine' )
  	}, function(){
  		jQuery( 'span.hover', this ).stop().animate( {
        'opacity': 0
  		}, 2000, 'easeOutExpo' )
  	})
	}
  
  /* -------- Email Address De-obfuscation -------- */
  if ( jQuery( "span.addy" ).length ){
    jQuery( "span.addy" ).each( function( index, span ){
      addy = span.innerHTML.replace( " -at- ", "@" );
      addy = addy.replace( " -dot- ", "." );
      addy = addy.replace( "[\(]", "" );
      addy = addy.replace( "[\)]", "" );
      span.innerHTML = '<a href="mailto:' + addy + '">' + addy + '</a>';
    } );
  };

	/* -------- Menu and Navigational Elements -------- */
	var welcomeY      = 460;
	var about_usY     = 926;
	var our_partnersY = 1390;
	var contactY      = 1880;
	$( '#welcome-link' ).click( function(){
		$( "html, body" ).animate( { scrollTop: ( welcomeY + 5 ) }, 1700, "easeOutQuad" );
		return false;
	} );
	
	$( '#about-us-link' ).click( function(){
		$( "html, body" ).animate( { scrollTop: ( about_usY + 5 ) }, 1700, "easeOutQuad" );
		return false;
	} );
	
	$( '#our-partners-link' ).click( function(){
		$( "html, body" ).animate( { scrollTop: ( our_partnersY + 5 ) }, 1700, "easeOutQuad" );
		//window.location = "#our-partners";
		return false;
	} );
	
	$( '#contact-link' ).click( function(){
		$( "html, body" ).animate( { scrollTop: ( contactY + 5 ) }, 1700, "easeOutQuad" );
		//window.location = "#contact";
		return false;
	} );

	function checkPosition(){
		var posy = $( window ).scrollTop();
   	if ( posy <= 400 ){
			$( "nav" ).stop().css( "top", 520 + ( posy * -1 ) );
		} else {
			$( "nav" ).stop().animate( { top: 120, opacity: 0.93 }, 300, "easeInOutQuad" );
		}
	}
	
	/* On enter we want to reset the nav Y coordinates
	   and slowly fade in the menu */
	checkPosition();
	$( "nav" ).fadeIn( 'slow' );
	
	/* And everytime we scroll */
	$( window ).scroll( checkPosition );

	/* Window Resizing / Liquid'esque Layout */
	$( window ).resize( doResize );
	
	var resizeTimer = null;
	
	function doResize(){
		clearTimeout( resizeTimer );
		resizeTimer = setTimeout( resizeComplete, 200 );
	}
	
	function resizeComplete(){
		var inner = $( "#wrapper section .inner, footer .inner" );
		var $html = $( "html" );
		var $body = $( "body" );
		var winWidth = $( window ).width();
		var minWidth = 942;

		$body.css( "overflowX", "hidden" );

		if ( winWidth < minWidth ){
			inner.stop().animate( { marginLeft: "40px" }, 500 );
		} else {
			inner.stop().animate( { marginLeft: "240px" }, 500 );
			$body.css( "overflowX", "visible" );
		}        

		$( document ).trigger( "resizeComplete" );
	}
		
	resizeComplete();

	/* -------- Our Partners -------- */
	var current_partner = "#partner1";
	$( '#partners li a' ).click( function(){
		var selected_partner = $( this ).attr( "hash" );
		$( current_partner + '-link' ).removeClass( "selected" );
		$( this ).addClass( "selected" );
		
		$( "#partner-photos img" + current_partner ).fadeOut( "slow", function(){
			$( "#partner-photos img" + selected_partner ).fadeIn( "slow" );
		} );
		
		$( "span" + current_partner + "-bio" ).fadeOut( "slow", function(){
			$( "span" + selected_partner + "-bio" ).fadeIn( "slow" );
		} );
		
		current_partner = selected_partner;
		return false;
	} );	

	/* -------- Google Maps -------- */
	var latlng     = new google.maps.LatLng( 43.6686455, -79.3944094 );
	var off_center = new google.maps.LatLng( 43.6696455, -79.3956094 );
	var opts = {
	  zoom: 16,
	  center: off_center,
	  mapTypeId: google.maps.MapTypeId.ROADMAP,
		mapTypeControl: false		
	};
	var map = new google.maps.Map( document.getElementById("map_canvas"), opts );
	
  var image = "http://clients.carbonmedia.ca/wmgb_map_marker.png";
  var beachMarker = new google.maps.Marker( {
		position: latlng,
    map: map,
    icon: image
  } );

} );
