
var flickrCols = 0;
var flickrRows = 0;
var flickrCount = 0
var flickrAppletId = null;
var flickrApiKey = null;
var flickrUserId = null;
var flickrGotSets = false;
var flickrSets = null;
var flickrPhotoSetId = null;
var flickrUseSet = false;
var flickrLastSet = null;

function flickrGetUserPhotos(appletid,api_key,user_id,cols,rows,pagename)
{

	perpage = cols * rows;
	
	cells = $$('img.FlickrThumb');
	cells.each(function(i){i.src="/media/images/fetching100x100.png";});
	
	if (!flickrPhotoSetId) {
		url = "http://api.flickr.com/services/rest/?api_key=" + api_key + "&format=json&method=flickr.photos.search&user_id=" + user_id + "&per_page=" + perpage
	}
	else
	{
		url = "http://api.flickr.com/services/rest/?api_key=" + api_key + "&format=json&method=flickr.photosets.getphotos&user_id=" + user_id + "&per_page=" + perpage + "&photoset_id=" + flickrPhotoSetId
	}
	if(pagename)
	{
		url = url + "&page=" + pagename;
	}
	script = new Element("script",{src:url});
	flickrAppletId = appletid
	container = $("flickr"+appletid);
	flickrSets = $('flickrsets'+appletid);
	flickrCols = cols;
	flickrRows = rows;
	flickrCount = 0;
	flickrApiKey = api_key;
	flickrUserId = user_id;
	container.insert({top:script});
	
	if(flickrGotSets == false && flickrUseSet == false)
	{
		flickrGotSets = true;
		url="http://api.flickr.com/services/rest/?api_key=" + api_key + "&format=json&method=flickr.photosets.getlist&user_id=" + user_id;
		script = new Element("script",{src:url});
		container.insert({top:script});
	}
}

function jsonFlickrApi(result){
	
	if (result.stat != "ok") {
		return;
	}
	
	if(result.photosets)
	{
		sets = $A(result.photosets.photoset);
		setdiv = new Element("div",{style:"margin-top:2px"});
		setdiv.update("Photo Sets");
		flickrSets.style.background = "#222222";
		flickrSets.insert({bottom:setdiv});
		flickrSets.insert({bottom:"<hr/>"});
		sets.each(function(set){
			setdiv = new Element("div",{style:"margin:0;cursor:pointer;padding:3px;border-right:solid 1px #888888;"});
			setdiv.update(set.title._content + ' (' + set.photos + ')');
			flickrSets.insert({bottom:setdiv});
			setdiv.observe("click", function(e){
				sdiv = Event.element(e);
				sdiv.style.background = "#000000";
				sdiv.style.borderRight = "1px solid #000000"
				sdiv.style.borderTop = "1px solid #888888"
				sdiv.style.borderBottom = "1px solid #888888"
				sdiv.style.borderLeft = "1px solid #888888"
				if(flickrLastSet)
				{
					flickrLastSet.style.background = "none";
					flickrLastSet.style.borderRight = "1px solid #888888"
					flickrLastSet.style.borderTop = "none"
					flickrLastSet.style.borderBottom = "none"
					flickrLastSet.style.borderLeft = "none"
				}
				flickrLastSet = sdiv;
				flickrPhotoSetId = set.id;
				flickrGetUserPhotos(flickrAppletId, flickrApiKey, flickrUserId, flickrCols, flickrRows, 1);
			});
			
			setdiv.observe("mouseover", function(e){
				sdiv = Event.element(e);
				sdiv.style.color = "#ffff00";
			});
			setdiv.observe("mouseout", function(e){
				sdiv = Event.element(e);
				sdiv.style.color = "#ffffff";
			});
		
		});
	}
	
	if (result.photos || result.photoset) {
	
		if(result.photos)
		{
			photos = $A(result.photos.photo);
			pNum = parseInt(result.photos.page);
		}
		if(result.photoset)
		{
			photos = $A(result.photoset.photo);
			pNum = parseInt(result.photoset.page);

		}
			
		next = $("flickr" + flickrAppletId + "Next");
		prev = $("flickr" + flickrAppletId + "Prev");
		if (next) {
			Event.stopObserving(next);
			next.observe("click", function(){
				flickrGetUserPhotos(flickrAppletId, flickrApiKey, flickrUserId, flickrCols, flickrRows, pNum + 1);
			});
		}
		if (prev) {
			Event.stopObserving(prev);
			prev.observe("click", function(){
				flickrGetUserPhotos(flickrAppletId, flickrApiKey, flickrUserId, flickrCols, flickrRows, pNum -1);
			});
		}
	
		flickrCount = 0;
		if (photos.length > 0) {
		
			photos.each(flickrDisplayPhoto);
			var t = $("ftarg" + flickrAppletId);
			t.style.width = "auto";
			frameDim = $('imgFrame').getDimensions();
			t.src = "http://farm" + photos[0].farm + ".static.flickr.com/" + photos[0].server + "/" + photos[0].id + "_" + photos[0].secret + ".jpg";
			imgDim = t.getDimensions()

			if(imgDim.width > frameDim.width)
			{
				t.style.width = "100%";
			}
			var d = $("fdesc" + flickrAppletId)
			d.update(photos[0].title)
		}
	}
	
	cells = $$('img.FlickrThumb');
	cells.each(function(i){
		if (i.src.endsWith("/media/images/fetching100x100.png")) {
			i.src = "/media/images/blank100x100.png";
		}
	});
	
}

function flickrSetPhotoset(sid)
{
	flickrPhotoSetId = sid;
	flickrUseSet = true;
}

function flickrDisplayPhoto(photo)
{
	var r = Math.floor(flickrCount / flickrCols);
	var c = flickrCount - (r * flickrCols)
	
	img = $("fimg" + flickrAppletId + "-" + r + "-" + c);
	img.src = "http://farm" + photo.farm + ".static.flickr.com/" + photo.server + "/" + photo.id + "_" + photo.secret + "_t.jpg";
	var a = $("fa" + flickrAppletId + "-" + r + "-" + c);
	Event.stopObserving(img);
	img.observe("click",function(){
		var t = $("ftarg" + flickrAppletId);
		t.style.width = "auto";
		frameDim = $('imgFrame').getDimensions();
		t.src="http://farm" + photo.farm + ".static.flickr.com/" + photo.server + "/" + photo.id + "_" + photo.secret + ".jpg";
		imgDim = t.getDimensions()

		if(imgDim.width > frameDim.width)
		{
			t.style.width = "100%";
		}
		var d = $("fdesc" + flickrAppletId)
		d.update(photo.title)
		});
	flickrCount++;
	
}
