/*------------------------------------------------------------------*\
      author: mathias gumz <mathias gumz at gmail com>
   copyright: 2008 by mathias gumz, all rights reserved
\*------------------------------------------------------------------*/
function fetchDates() {

    var f = 'http://www.google.com/calendar/feeds/4bft7bnc86fnt1k98j642g9se0%40group.calendar.google.com/public/full?' +
        'hl=de_DE&' +
        'orderby=starttime&' +
        'start-min=' + Date.parse('t').toString('yyyy-MM-dd&') +
        'alt=json-in-script&' +
        'callback=?';

    $.getJSON(f, function(dates) {

        c = $('<ul />').appendTo('#dates');

        var entries = dates.feed.entry.reverse();

        for (var i = 0; i < entries.length; ++i) {

            e = entries[i];

            // 2008-07-05T22:00:00.000+02:00
            t = e.gd$when[0].startTime.replace(/.000.*$/, '');
            d = Date.parse(t);

            l = $('<li />').appendTo(c);
            l.append($('<h3>' + d.toString("d. MMM HH:mm ") + e.title.$t + '</h3>'));
            if (e.content.$t)
                l.append($('<p>' + e.content.$t + '</p>'));
        }
    });
}

function currentAlbumId() {
    return $('#albums').attr('class');
}

function currentAlbumName() {
    return '#album_'+currentAlbumId();
}

function toggleOverview(ev) {

    ev.preventDefault();

    var id = this.href.split('#')[1];
    var old = currentAlbumId();

    /* toggle current album if phots are already loaded */
    if (old == id && $('#album_'+old).children().length) {
        if ($('#album_'+old+':visible').length) {
            $('#album_'+old).slideUp('slow');
        } else {
            $('#album_'+old).slideDown('slow');
        }
        return;
    }

    $('#albums').removeClass().addClass(id);

    $('div#album_'+old).slideUp('slow', function() {

        var ca = $(currentAlbumName());
        if (ca.children().length) {
            ca.slideDown("slow");
            return;
        }

        var fp = 'http://picasaweb.google.com/data/feed/api/user/soundsclub/albumid/'+currentAlbumId()+'?kind=photo&hl=de_DE&imgmax=640&alt=json-in-script&callback=?';
        $.getJSON(fp, function(photos) {

            var id = currentAlbumId();
            var ca = $(currentAlbumName());
            var pe = photos.feed.entry;
            for (var j = 0; j < pe.length; ++j) {

                ca.append($('<a rel="album_'+id+'" href="'+pe[j].media$group.media$content[0].url+'">'+
                           '<img src="'+pe[j].media$group.media$thumbnail[0].url+'" /></a>'));
            }

            ca.slideDown('slow', function() {
                $('div.album a').fancybox({
                    'zoomSpeedIn': 500,
                    'zoomSpeedOut': 250,
                    'overlayShow': true,
                    'overlayOpacity': 0.9});
            });
        });
    });
}

function fetchAlbums(base) {

    var f = base + '?kind=album&hl=de_DE&access=public&alt=json-in-script&callback=?';

    $.getJSON(f, function(albums) {

        var c = $('<ul />').appendTo('#albums');

        var entries = albums.feed.entry;
        for (var i = 0; i < entries.length; ++i) {

            var e = entries[i];
            var id = e.gphoto$id.$t;
            var url = e.media$group.media$thumbnail[0].url;

            $('#albums').removeClass().addClass(id);

            var l = $('<li class="album"/>');
            c.append(l);
            var d = $('<div class="album_meta" />');
            l.append(d);
            d.append('<a class="cover" rel="overview" href="#'+id+'" >'+
                     '<img width="146" height="151" src="'+url+'" /></a>');
            d.append($('<h3>'+e.title.$t+'</h3>'));
            d.append(
                '<ul class="album_controls">'+
                '<li><a rel="overview" href="#'+id+'" >Fotos</a></li>'+
                '<li><a href="'+e.link[1].href+'">Download</a></li>'+
                '</ul>');
            l.append($('<div id="album_'+id+'" class="album" />').hide());
        }
        $('a[@rel="overview"]').click(toggleOverview);
    });
}



$(document).ready(function() {

    if ($('#dates').length) {
        fetchDates();
    }

    if ($('#albums').length) {
        fetchAlbums('http://picasaweb.google.com/data/feed/api/user/soundsclub');
    }

});


