var gCalendar;
var entries;
var events = new Array();
var map;
var gdir;
//google.load("gdata", "1");

window.addEvent('domready', function() {
	var menuItems = $$("#menu_items li");
	new Request.HTML({
				method: 'get',
				url:"/about.html",
				update: $('content')
			}).send();
			
	menuItems.each(function(item) {
		item.addEvent('click', function(e) {
			
			menuItems.each(function(item) {
				item.removeClass('selected');
			});
			
//			evt = new Event(e).stop();

			var indexOfHash = e.target.id.indexOf('#');
			var targetUrl; 
			
			if (indexOfHash < 0) {
				targetUrl = "/" + e.target.id + ".html";
			} else {
				targetUrl = "/" + e.target.id.substring(0, indexOfHash)
					+ ".html" + e.target.id.substring(indexOfHash, e.target.id.length);
			}
			
			var target = $(e.target);
			target.getParent().addClass('selected');
				
			/**
			 * The simple way for an Ajax request, use onRequest/onComplete/onFailure
			 * to do add your own Ajax depended code.
			 */
			
			new Request.HTML({
				method: 'get',
				url:targetUrl,
				update: $('content'),
				onComplete: function () {
					if (targetUrl.contains('photo_gallery')) {
						features();
					} else if (targetUrl.contains('availability')) {
						getGoogleCalendar();
//						availability();
					} else if (targetUrl.contains('location')) {
						initialize();
					} else if (targetUrl.contains('faq')) {
						faq();
					} else if (targetUrl.contains('enquiry')) {
						enquiry();
					}
				}
			}).send();
		});
	});
});

function enquiry() {
	window.addEvent('domready', function(){
		$('contactForm').addEvent('submit', function(e) {

			new Event(e).stop();
			alert('Thank you for your enquiry.  We will be in contact shortly.');
			this.send({
				update: $('log_res'),
				onComplete: function() {
					log.removeClass('ajax-loading');
				}
			});
		});		
	});
}

function initialize(){
	var posMarker;
	window.addEvent('domready', function(){
		map = new GMap2(document.getElementById("g_map", {draggableCursor:"crosshair"}));
		map.setCenter(new GLatLng(-35.133402, 139.301197), 13);
    	map.addControl(new GLargeMapControl3D());
		gdir = new GDirections(map, document.getElementById("dir_text")); 
		posMarker = new GMarker(new GLatLng(-35.133402, 139.301197));
		posMarker.show();
		map.addOverlay(posMarker);
	});
}

function getDirections(from) {
	gdir.load("from: " + from + " to: Long Island Recreation Park, South Australia, Australia" );
}

function getGoogleCalendar() {
	var calendarUrl = "http://www.google.com/calendar/feeds/q755gmv5ber7poeq4ndtp7hjos%40group.calendar.google.com/public/free-busy";
	gCalendar = new google.gdata.calendar.CalendarService('fifthdimension');
	gCalendar.getEventsFeed(calendarUrl, handleMyFeed, handleError);	
}

function handleMyFeed(myResultsFeedRoot) {
  entries = myResultsFeedRoot.feed.getEntries();
  for (var i = 0; i < entries.length; i++) {
  	var times = entries[i].getTimes();
  	var jsonObj = {
  		title: entries[i].getTitle().getText(),
  		start: times[0].getStartTime().getDate().strftime(),
  		end: times[0].getEndTime().getDate().strftime()
  	}
	events[i] = jsonObj;
  }
  availability();
}


function handleError(e) {
  alert("There was an error!");
  alert(e.cause ? e.cause.statusText : e.message);
}

function availability() {
	window.addEvent('domready', function() {
		new Calendar({
			calContainer: 'avail_calendar',
			cEvents: events
		});  
	});
}

function features() {
	window.addEvent('domready', function() {
		var imgCount = 0;
		var imgWidth = 135;
		var images = $('image_div').getChildren();
		
		for (var i=0; i < images.length; i++) {
			images[i].id = "boat_img_" + i;	
			
			$(images[i]).addEvent('click', function(event) {
				$('full_image').innerHTML = "<img src=" + event.target.src + "></img>";
			});
		}
		
		var scroll = new Fx.Scroll('image_list', {
			wait:false,
			duration:1000,
			transition: Fx.Transitions.Quad.easeInOut
		});
		
		$('next').addEvent('click', function(){
			if (imgCount <= (images.length - 4)) {
				imgCount++;
				scroll.start(imgCount * imgWidth, 0);
			}
		});
		
		$('previous').addEvent('click', function(){
			if (imgCount > 0) {
				imgCount--;
				scroll.start(imgCount * imgWidth, 0);
			}
		});
						
	});
}
