// JavaScript Document

var month_labels = new Array();
month_labels[1]  = "January";
month_labels[2]  = "February";
month_labels[3]  = "March";
month_labels[4]  = "April";
month_labels[5]  = "May";
month_labels[6]  = "June";
month_labels[7]  = "July";
month_labels[8]  = "August";
month_labels[9]  = "September";
month_labels[10] = "October";
month_labels[11] = "November";
month_labels[12] = "December";

$(document).ready(function() {

	// Month selection menu made scrollable
	$("div.scrollable").scrollable({
		page: 12,
		next: 'span.scroll a.down',
		prev: 'span.scroll a.up',
		clickable: false
	});
	
	// use AJAX photo month selection
	$("#filter-pane a").click( function() {
		// Move month selection indicators
		// Clear previous photos and clear description label
		$(".photo-batch").remove();
		$("#desc").empty();
		$("#more").empty();
		$("#photos-loading").toggleClass("hide");
		$(".items a").removeClass("active");
		$(this).addClass("active");
		// Construct request for new photos
		args = getArgs($(this).attr("href").split("?").pop());
		page = 0;
		ary_date = args.s.split('-');
		year = ary_date[0];
		month = ary_date[1];
		p_url = "/c/services/more_photos.php";
		// Get the photos and load them
		$.getJSON(p_url,
			{l:limit, p:page, m:month, y:year, f:"json"},
			function(data) {
				$("#photos-loading").toggleClass("hide");
				total = data["total"];
				// Update description label
				$("#desc").html(chgDesc());
				// Check to see if the "Show more" button is still needed.
				var collected = limit * (page + 1);
				if (collected < total) {
					var label = btnLabel();
					$("#more").html(label);
				}
				// Add results to page
				$("#desc").after(data["html"]);
				// Re-apply Lightbox effect
				$(".lightbox").lightbox({
					fitToScreen: true,
					imageClickClose: false
				});
			}
		);	
		
		// Stop link from doing what is normally would
		return false;
	});
	
	// Lightbox
	base_url = document.location.href.substring(0, document.location.href.indexOf('index.html'), 0);
		    
	$(".lightbox").lightbox({
		fitToScreen: true,
		imageClickClose: false
	});
	
	// Add "Show More" button
	if (limit < total) {
		var label = btnLabel();
		$("#more").html(label);
	}
	
	// More Photos
	$("#more").click( function() {
		// Show loading spinner
		$("#more").empty();
		$("#photos-loading").toggleClass("hide");
		// Construct request
		page++;
		p_url = "/c/services/more_photos.php";
		// Get the photos and load them
		$.get(p_url, {l:limit, p:page, m:month, y:year}, function(data){
			// Hide loading spinner
			$("#photos-loading").toggleClass("hide");
			// Add results to page
			$("#photos-loading").before(data);
			// Check to see if the "Show more" button is still needed.
			var collected = limit * (page + 1);
			if (collected >= total) {
				$("#more").empty();
			}
			else {
				var label = btnLabel();
				$("#more").html(label);
			}
			// Re-apply Lightbox effect
			$(".lightbox").lightbox({
				fitToScreen: true,
				imageClickClose: false
			});
		});
	});

});

function btnLabel() {
	next_bin = total - (limit * (page+1));
	if (next_bin > limit) next_bin = limit;
	label = "<a>show next "+next_bin+"</a>";
	return label;
} // btnLabel()

function chgDesc() {
	var t1 = parseInt(month);
	var t2 = month_labels[t1];
	var desc = "<span>" + total + "</span> photos from " + "<span>" + t2 + " " + year + "</span>";
	return desc;
} // chgDesc()

function getArgs(query) {
	// Query string variables into an object
	var args = new Object();
	//var query = location.search.substring(1);
	if (!query) query = location.search.substring(1);
	var pairs = query.split('&');
	for (var i=0; i<pairs.length; i++) {
		var pos = pairs[i].indexOf('=');
		if (pos == -1) continue;
		var argname = pairs[i].substring(0,pos);
		var value = pairs[i].substring(pos+1);
		value = decodeURIComponent(value);
		args[argname] = value;
	}
	return args;
} // getArgs()