/* Simple Javascript - json gateway */

index_url = 'http://picasaweb.google.com/data/feed/api/user/margit.hartnagel?kind=album&alt=json&callback={callback}'
album_url = 'http://picasaweb.google.com/data/feed/api/user/margit.hartnagel/albumid/'

// JSON for jQuery by Michael Geary
// See http://mg.to/2006/01/25/json-for-jquery
// Free beer and free speech. Enjoy!

$.json = { callbacks: {} }

$.fn.json = function( url, callback ) {
	var _$_ = this
	load( url.replace( /{callback}/, name(callback) ) )
	return this

	function name( callback ) {
		var id = (new Date).getTime()
		var name = 'json_' + id

		var cb = $.json.callbacks[id] = function( json ) {
			delete $.json.callbacks[id]
			eval( 'delete ' + name )
			_$_.each( function() { callback(json); } )
		}

		eval( name + ' = cb' )
		return name
	}

	function load( url ) {
		var script = document.createElement( 'script' )
		script.type = 'text/javascript'
		script.src = url
		document.getElementsByTagName('head')[0].appendChild(script)
	}
};


function showAlbum(json_obj) {
	$('#gallery').empty().html( '<p><a href="werke.html">&lt;&lt; back</a></p>' )
	var feed = json_obj.feed
	var content = document.getElementById('gallery')
	var h3 = document.getElementsByTagName('h3')[0].firstChild
	h3.nodeValue = 'arbeiten '+json_obj.feed.title.$t
	for (var i in feed.entry) {
		var entry = feed.entry[i]

		var title = entry.media$group.media$description.$t
		var albumid = entry.gphoto$id.$t
		var image_url = entry.media$group.media$content[0].url+'?imgmax=800'

		var album_link = document.createElement('a')
		album_link.className = 'thickbox'
		album_link.setAttribute('href', image_url)
		album_link.setAttribute('title', title)
		album_link.setAttribute('rel', 'album')

		album_link.onclick= function() {
			var t = this.title || this.alt || null;
			var a = this.href || this.alt;
			var g = this.rel || false;
			tb_show(t, a, false)
			return false
		}
		content.appendChild(album_link)

		var img = document.createElement('img')
		img.setAttribute('src', entry.media$group.media$thumbnail[0].url)
		img.setAttribute('width', entry.media$group.media$thumbnail[0].width)
		img.setAttribute('height', entry.media$group.media$thumbnail[0].height)
		album_link.appendChild(img)
//		$('#content').append(entry.title.$t+"<br/>")
	}
	return false
}

function showGallery(json_obj) {
	$('#gallery').empty()
	var feed = json_obj.feed
	var content = document.getElementById('gallery')

	for (var i in feed.entry) {
		var entry = feed.entry[i]

		var title = document.createElement('h4')
		content.appendChild(title)
		var title_txt = document.createTextNode(entry.title.$t)
		title.appendChild(title_txt)

/*		var summary = document.createElement('div')
		content.appendChild(summary)
		var summary_txt = document.createTextNode(entry.media$group.media$description.$t)
		summary.appendChild(summary_txt)
		summary.style.position = "absolute"
		summary.style.left = "12%"
		summary.style.marginTop = "1em"
		*/
		var albumid = entry.gphoto$id.$t
		album_link = document.createElement('a')
		album_link.id = albumid
		album_link.setAttribute('href', entry.id.$t)
		album_link.onclick= function() {
			feed_url = album_url + this.id + '?kind=photo&alt=json&callback={callback}'
			$('#gallery').empty()
			$('#gallery').html('Loading...' ).json(feed_url, showAlbum)
			return false
		}
		content.appendChild(album_link)

		var img = document.createElement('img')
		img.setAttribute('src', entry.media$group.media$thumbnail[0].url)
		img.setAttribute('width', '72')
		img.setAttribute('height', '72')
		album_link.appendChild(img)
	}
}


$(document).ready(
	function() {
		$('#gallery').html( 'Loading...' ).json(index_url, showGallery)
	}
);


