KATY.activeFlickrStreams = [];

KATY.flickrStream = {};
KATY.flickrStream.Base = {};
KATY.flickrStream.Base.prototype = {
	initialize: function(name, element, api_key, options) {
		this.name		= name;
		this.element 	= $(element);
		this.api_key	= api_key;
		this.options	= options;
		this.script		= document.createElement("script");
		this.getPhotos();
	},
	
	getPhotos: Prototype.emptyFunction,
	ondisplay: Prototype.emptyFunction,
	
	displayPhotos: function(data) {
		this.data = data;
		this.beforeDisplay();
		this.data.each(function(photo) {
			var url = "http://static.flickr.com/" + photo.server + "/" + photo.id + "_" + photo.secret + "_s.jpg";
			var img = document.createElement("img");
			img.src = url;
			img.width = 45;
			img.height = 45;
			img.alt = photo.title;

			// Create link back to flickr page (required by terms of use)
			var href = "http://www.flickr.com/photos/" + photo.owner + "/" + photo.id + "/";
			//var href = "http://static.flickr.com/" + photo.server + "/" + photo.id + "_" + photo.secret + ".jpg"
			var a = document.createElement("a");
			a.href = href;
			a.target = '_blank';
			a.rel  = 'flickrbox['+this.name+']';
			a.className = 'flickrPhoto';
			a.title = photo.title;
			a.appendChild(img);
			var surround = document.createElement('li');
			surround.appendChild(a);
			this.element.appendChild(surround);
		}.bind(this));
		
		initflickrLightbox();
		
	}
}

KATY.flickrStream.photoSet = Class.create();
Object.extend(Object.extend(KATY.flickrStream.photoSet.prototype, KATY.flickrStream.Base.prototype),
{
	getPhotos: function() {
		this.method = 'flickr.photosets.getPhotos';
		// var src		= 'http://api.flickr.com/services/rest/?api_key=' + this.api_key + '&photoset_id=' + this.options.photoset_id + '&method=' + this.method + '&per_page=12&format=json&jsoncallback=KATY.activeFlickrStreams["'+ this.name +'"].displayPhotos';
		var src		= 'http://api.flickr.com/services/rest/?api_key=' + this.api_key + '&photoset_id=' + this.options.photoset_id + '&method=' + this.method + '&per_page=4&format=json&jsoncallback=KATY'+ this.name;
		this.script.setAttribute("src", src)
		document.getElementsByTagName("body")[0].appendChild(this.script);
	},
	
	beforeDisplay: function() {
		this.data.photoset.photo.each(function(photo) {
			photo.owner = this.data.photoset.owner;
		}.bind(this));
		this.data = this.data.photoset.photo;
	}
});

KATY.flickrStream.tagSearch = Class.create();
Object.extend(Object.extend(KATY.flickrStream.tagSearch.prototype, KATY.flickrStream.Base.prototype),
{
	getPhotos: function() {
		this.method = 'flickr.photos.search';
		//var src		= 'http://api.flickr.com/services/rest/?api_key=' + this.api_key +  '&method=' + this.method + '&tags=' + this.options.tags + '&per_page=12&format=json&jsoncallback=KATY.activeFlickrStreams["'+ this.name +'"].displayPhotos;
		var src		= 'http://api.flickr.com/services/rest/?api_key=' + this.api_key +  '&method=' + this.method + '&tags=' + this.options.tags + '&per_page=4&format=json&jsoncallback=KATY'+ this.name;
		this.script.setAttribute("src", src)
		document.getElementsByTagName("body")[0].appendChild(this.script);
	},
	
	beforeDisplay: function() {
		this.data = this.data.photos.photo;
	}
});

function KATYKATYPhotos(data) {
	KATY.activeFlickrStreams["KATYPhotos"].displayPhotos(data);
}
Event.observe(window,'load', 
	function() {
		KATY.activeFlickrStreams["KATYPhotos"] =
			new KATY.flickrStream.photoSet(
				'KATYPhotos',
				'photos',
				'3adbe2ddcad6509af55c653fdaac3b55',
				{photoset_id: '72157603236267024'}
			)
	}); 
