var slideshow = {
	init: function (page) {
		$.ajax({
			'url': 'homepage_slideshow.js',
			'success': function () {
				slideshow.loadImages(page, function () {
					
				});
			}
		});
	},
	loadImages: function (page, callback) {
		page.append('<div id="slideshow"></div>');
		var slideshow = page.find('#slideshow');
		
		for (var i=0, len=this._images.items.length; i<len; i++) {
			slideshow.append('<img src="resources/homepage_slideshow/'+this._images.items[i]+'" />');
		}
		$('#slideshow').jqFancyTransitions({ width: 936, height: 400, effect: 'fountainTop', strips: 20, stripDelay: 25, delay: 2500 });
	}
};

var site = {
	_currentNav: null,
	_dataAttr: 'data-name',
	init: function () {
		$('#navigation li a').click(function () {
			if ($('#navigation li.selected').attr(site._dataAttr) != $(this).parent().attr(site._dataAttr)) {
				site._currentNav = $(this).parent();
				site.switchPage($(this).attr('href'));
			}
			return false;
		});
		
		this._currentNav = $('#navigation li.selected');
		
		this.hash.init();
		this.initPage($('#pages .page'));
	},
	initPage: function (page) {
		if (page.attr('id') == 'page_home') {
			slideshow.init(page);
		}
		else if (page.attr('id') == 'page_contact') {
			var latlng = $('#map').attr('data-latlng').split(', ');
			var myLatlng = new google.maps.LatLng(latlng[0], latlng[1]);
			var myOptions = {
				zoom: 18,
				center: myLatlng,
				mapTypeId: google.maps.MapTypeId.HYBRID
			};
			var map = new google.maps.Map(document.getElementById("map"), myOptions);
		}
	},
	hash: {
		init: function () {
			this._hash = location.hash.replace(/\#/, '').split('/');
			var match = null;
			for (var i=0, len=this._hash.length; i<len; i++) {
				if (match = this._hash[i].match(/([^:]*)\:([0-9]*)/)) {
					this._hash[i] = [match[1], match[2]];
				}
			}
			this.processURL();
		},
		processURL: function () {
			//process first segment
			var segment1 = this._hash[0];
			var link     = $('#navigation li[data-name='+segment1+']');
			if (link.size() && link.attr(site._dataAttr) != site._currentNav.attr(site._dataAttr)) {
				site._currentNav = link;
				site.switchPage(link.find('a').attr('href'), false);
			}
		}
	},
    /*
	switchPage: function (url, animate) {
		animate = animate === undefined ? true : animate;
		$.ajax({
			'url': url,
			'success': function (data) {
				if (!data) return false;
				
				var page = $('.page', data);
				
				//grab current page
				var current = $('#pages .page');
				current.addClass('current');
				
				//add new page to #pages and add class
				page.appendTo('#pages');
				page.addClass('new');
				
				//animate
				if (animate) {
					current.animate({
						'left': -958
					}, 350);
					page.animate({
						'left': 0
					}, 350, function () {
						current.remove();
						page.removeClass('new');
					});
				}
				else {
					page.css({
						'left': 0
					});
					current.remove();
					page.removeClass('new');
				}
				
				site.initPage(page);
				
				$('#navigation li').removeClass('selected');
				site._currentNav.addClass('selected');
				location.href = '#' + site._currentNav.attr(site._dataAttr);
			},
			'error': function () {
				
			}
		});
	}
    */
};

$(function () {
	site.init();
});
