/*  
	Developer: Neil Berg
	Date: 8/27/09
	Email: neil@neilberg.net
	Purpose: This JS file facilitates the linking of jCarousel and Google Calendar jSON feeds.
	Feed File: getdata.cfm
	Dependencies: 
		JS: jquery-1.3.2.min.js, jquery.jcarousel.pack.js
		CSS: jquery.jcarousel.css 
		Images: arrow-up.gif, arrow-down.gif, loading.gif
		CFM: getdata.cfm, jGCal.cfm
*/		
	
function mycarousel_initCallback(carousel, state)
{
    carousel.lock();

    $.getJSON("/jGcal/getdata.cfm",
        function(data){
			mycarousel_itemAddCallback(carousel, data);
        });

};


function mycarousel_itemAddCallback(carousel, data)
{
   	var items = data.feed.entry;

	$(items).each(function(i) {
        carousel.add(i + 1, mycarousel_getItemHTML(this));
    });
	
	carousel.size($(items).size());    
	
	// Unlock and setup.
    carousel.unlock();
    carousel.setup();

};


function mycarousel_getItemHTML(item)
{
	var newslink = '';
	var title = item.title.$t;
	var content = item.content.$t;
	if (typeof(item.gd$recurrence) != "undefined"){
		var eventdate = parseRecurringDate(item.gd$recurrence.$t);
		};
	if (typeof(item.gd$when) != "undefined"){		
		var eventdate = parseISO8601(item.gd$when[0].startTime);
		};

	return '<div class="text11pxgreen"><strong>'+eventdate+'</strong></div>'+
          	'<div class="text11pxwhite"><strong>' + title + '</strong></div>'+
			'<div class="text10px" style="word-wrap:break-word;">' + content + '</div>';


};


function parseRecurringDate(str) {
// Parse funky google date
var parts = str.split('\r\n');
startdate = parts[0].split(':');	
enddate = parts[2].split('UNTIL=');

if (typeof(enddate[1]) != "undefined"){
	startdatestring = startdate[1];
		
		startdatemonth = startdatestring.substr(4,2);
		startdateday =	startdatestring.substr(6,2);	
		startdateyear = startdatestring.substr(0,4);
		
		startdatestring = startdatemonth + '/' + startdateday + '/' + startdateyear;
	
	enddatestring = enddate[1].substr(0,8);

		enddatemonth = enddatestring.substr(4,2);
		enddateday =	enddatestring.substr(6,2);	
		enddateyear = enddatestring.substr(0,4);
		
		enddatestring = enddatemonth + '/' + enddateday + '/' + enddateyear;
	

	return startdatestring + ' til ' + enddatestring;
 }
 else{
	 return '';
 }
}


function parseISO8601(str) {
 // we assume str is a UTC date ISO8601 format

var parts = str.split('T'),
dateParts = parts[0].split('-'),
_date = new Date;
var parseYear = Number(dateParts[0]);
var parseMonth = Number(dateParts[1]);
var parseDate = Number(dateParts[2]);

return parseMonth + '/' + parseDate + '/' + parseYear;
}



$(document).ready(function() {
	
	$().ajaxStart(function() {
        $(".jcarousel-clip-vertical").addClass('loading');
    });

    $().ajaxStop(function() {
        $(".jcarousel-clip-vertical").removeClass('loading');
    });

	
	$('#mycarousel').jcarousel({
	   vertical: true,
	   scroll: 1,
       initCallback: mycarousel_initCallback
    });

});