/*
 * South Hollow Art Gallery and Studio site-wide scripts
 *
 * Targets jQuery 1.3.1.
 *
 * Copyright (c) 2009 Dialect Communications Group (dialect.ca)
 *
 * $Package: SouthHollow $
 */

var SouthHollow = {

	/**
	 * Handle email newsletter signups
	 *
	 * Posts to API hook and attempts to track using Google Analytics.
	 */
	initNewsletterHandler: function () {
		$('#newsletter_form').submit( function() {
			$.post(this.action + '?xhr', $('#newsletter_form').serialize(), function (d, s) {
				if ( $('#newsletter_form .notice').length < 1 ) {
					$('#newsletter_form').append('<p class="notice">' + d + '</p>');
				} else {
					$('#newsletter_form .notice').html(d);
				}

				try {
					var re = /success/i;
					if(re.test(d)) {
						pageTracker._trackEvent('Email list', 'Sign up success');
					} else {
						pageTracker._trackEvent('Email list', 'Sign up failure', d);
					}
				} catch(e) { }
			});
			return false;
		});
	},

	initOverlay: function () {
		$("#thumbs a, #gallery_page .feature_thumb").click( function() {
			SouthHollow.startOverlay( $(this).attr('href') );
			return false;
		});
	},

	startOverlay: function (url) {
		$('body').append('<div id="overlay_bg"></div>');
		$('body').append('<div id="overlay_window"></div>');
		SouthHollow.loadOverlay(url);
	},

	positionOverlay : function() {

		//$('#overlay_bg').css({'height' : $(window).height(), 'width' : '100%', 'left' : 0});

		//var imgHeight = $('#overlay_window .viewport img').height();
		///imgHeight = $(window).height() - ($(window).height()*.1);


		$('#overlay_window').css({
			'top' : '5%',
			'left' : '50%'
			//,'height': imgHeight
		});

		if ( true === $.support.opacity) {
			$('#overlay_bg').animate({'opacity':'0.9'}, 200, 'linear');
			$('#overlay_window').css('opacity', 1);
		} else if ( window.XMLHttpRequest ) {
			//alert('ie7');
			//$('#overlay').css('opacity', .9);
			//$('#overlay_window').css('opacity', 1);
		} else {
		
			// For browsers that don't support opacity we replace the 
			// transparent PNGs with opaque ones and skip the 
			// fancy opacity effects
			//$('.attachment-page .viewport').css({'background-image' : 'url("/wp-content/themes/southhollow/inc/frame_519w_t-opaque.png")'});
			//$('.attachment-page .viewport img').css({'background-image' : 'url("/wp-content/themes/southhollow/inc/frame_519w-opaque.png")'});
			//$('#prev_attachment a, #next_attachment a').css({'background-image' : 'url("/wp-content/themes/southhollow/inc/icons-opaque.png")'});
			$('#overlay_bg, #overlay_window').show();
		}

			
	},

	loadOverlay: function (url) {

		if( url === undefined ) {
			return false;
		}

		url += '?xhr';
		$('#overlay_window').load(url, null, function (data, status, req) {
			SouthHollow.positionOverlay();
			SouthHollow.addOverlayListeners();
		});
	},

	/**
	 * Setup key press and click event handlers.
	 */
	addOverlayListeners: function () {
		$('#overlay_bg, #overlay_window').bind('click.southhollow', function() {
			SouthHollow.closeOverlay();
			return false;
		});

		$('#prev_attachment a, #next_attachment a').click( function () {
			SouthHollow.loadOverlay($(this).attr('href'));
			return false;
		});

		$(document).bind('keyup.southhollow', function (e) {
			var code = (e.keyCode ? e.keyCode : e.which);

			switch(code) {
				case 27: // escape
					SouthHollow.closeOverlay();
					return false;
				case 32: // space bar
				case 39: // right arrow
				case 40: // down arrow
					SouthHollow.loadOverlay($('#next_attachment a').attr('href'));
					return false;					
				case 37: // left arrow
				case 38: // up arrow
					SouthHollow.loadOverlay($('#prev_attachment a').attr('href'));
					return false;
			}
		});	
	},
	
	removeOverlayListeners : function() {
		$(document).unbind('keyup.southhollow');
		$('#overlay_bg, #overlay_window').unbind('click.southhollow');
	},

	closeOverlay: function () {
		//$('html, body').css({'overflow':'auto'});
		$('#overlay_window, #overlay_bg').remove();
		SouthHollow.removeOverlayListeners();
	},
	
	initMap : function() {
		if ( typeof (GMap2) === 'undefined' ) {
			//if(window.console) window.console.log('no map');
			return false;
		}
		
		try {
			if ( GBrowserIsCompatible() ) {
				var map = new GMap2(document.getElementById('map'));
				var geocoder = new GClientGeocoder();
				geocoder.getLatLng('218 - 5th Street, Courtenay, BC, V9N 1J6, Canada',  function (point) {
					if (point) {
						map.setCenter(point, 15);
						var marker = new GMarker(point);
						var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10));
						map.addOverlay(marker);
						map.addControl(new GSmallMapControl(), topRight);
					}
				});
			}
		} catch (e) {
			//if(window.console) window.console.log(e.message);
		}
	}
};


$(document).ready( function() {
	SouthHollow.initNewsletterHandler();
	SouthHollow.initMap();
	SouthHollow.initOverlay();	
	// for ie 6
	try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {}  
});


$(document).unload( function() {
	if ( GUnload ) {
		GUnload();
	}
});
