google.load("feeds", "1");
var picasaUrl = "http://picasaweb.google.com/";
var activeAlbum;
var currentImage = new Array();
var feed;
var items;
var img;
var loading;
var newImg;
var div;
var running = false;
var caption;
var mouseover;

function verifyCaption() {
	if (mouseover != div) return;
	if (div.childNodes[0].childNodes[1].innerHTML == '' &&
	    div.childNodes[0].childNodes[1].style.visibility == 'visible') {
		div.childNodes[0].childNodes[1].style.visibility = 'hidden';
		div.style.zIndex = 0
	} else if (div.childNodes[0].childNodes[1].innerHTML != '' &&
	    div.childNodes[0].childNodes[1].style.visibility == 'hidden') {
		div.childNodes[0].childNodes[1].style.visibility = 'visible';
		div.style.zIndex = 100;
	}
}

function getUrl(id) {
	return picasaUrl + "data/feed/base/user/DR2000/albumid/" + id + 
		"?hl=en_US";
}

function loadNewFeed(id) {
	feed = new google.feeds.Feed(getUrl(id));
  	feed.setResultFormat(google.feeds.Feed.XML_FORMAT);
	feed.setNumEntries(google.feeds.Feed.MAX_ENTRIES);
	feed.load(feedLoaded);
}

function feedLoaded(result) {
	if (!result.error) {
      		items = result.xmlDocument.getElementsByTagName("entry");
      	} else {
		feed = false;
		alert("No feed avaliable. Try later.");
    	}
	finishRun();
}

function processText(text) {
	if (text.substr(text.length - 3, 3).toLowerCase() == "jpg")
		return '';
	return text;
}

function imageLoad() {
	div.removeChild(img);
	div.appendChild(newImg);
	div.getElementsByTagName("div")[0].childNodes[0].innerHTML = processText(caption);
	div.getElementsByTagName("div")[0].childNodes[1].innerHTML = processText(caption);
	hideLoading(loading);
}

function updateImage(img, src, width, height) {
	newImg = new Image();
	newImg.style.width = width + "px";
	newImg.style.height = height + "px";
	newImg.style.paddingTop = (144 - height) / 2 + "px";
	newImg.style.paddingLeft = (144 - width) / 2 + "px";
	newImg.src = src;
	newImg.id = img.id;
	newImg.onload = imageWait();
}

function imageWait() {
	if (newImg.complete) {
		imageLoad();
	} else {
		setTimeout('imageWait()', 250);
	}
}

function finishRun() {
	if (feed && items.length > 0) {
		id = activeAlbum;
		if (!currentImage[id] || (currentImage[id] == items.length)) {
			currentImage[id] = 0;
		}
		var thumbnail = google.feeds.getElementsByTagNameNS(items[currentImage[id]], "http://search.yahoo.com/mrss/", "thumbnail")[1];
		caption = items[currentImage[id]].getElementsByTagName("title")[0].firstChild.nodeValue;
		currentImage[id]++;
		var url = thumbnail.getAttributeNode("url").nodeValue;
		var width = thumbnail.getAttributeNode("width").nodeValue;
		var height = thumbnail.getAttributeNode("height").nodeValue;
		updateImage(img, url, width, height);
	} else {
		hideLoading(loading);
	}
}

function pullFromFeed(id) {
	if (activeAlbum != id || !feed) {
		activeAlbum = id;
		loadNewFeed(activeAlbum);
	} else {
		finishRun();
	}
}

function nextImage(which) {
	if (running) return false;
	div = which;
	images = which.getElementsByTagName("img");
	loading = images[0];
	img = images[1];
	showLoading(loading);
	pullFromFeed(img.id.substr(1));
}

function showLoading(img) {
	running = true;
	img.style.visibility = 'visible';
}

function hideLoading(img) {
	img.style.visibility = 'hidden';
	verifyCaption();
	running = false;
}

//google.setOnLoadCallback(initialize);
 
