google.load("feeds", "1");

function initialize() {
	var feed = new google.feeds.Feed("http://www.reverbnation.com/controller/rss/artist_shows_rss/dieselphoenix");
	feed.setResultFormat(google.feeds.Feed.XML_FORMAT);
	feed.setNumEntries(100);
	feed.load(function(result) {
		var container = document.getElementById("tour");
		var loading = document.getElementById("loading");
		loading.style.display = 'none';
		
		if (!result.error) {
			var items = result.xmlDocument.getElementsByTagName("item");
			for (var i = 0; i < items.length; i++) {
				var gig = document.createElement("div");
					gig.className = 'gig';
					container.appendChild(gig);
		
				addElement(items[i], gig, 'span', 'title', 'date');
				addElement(items[i], gig, 'span', 'loc');
				var moreInfo = document.createElement('span');
					moreInfo.className = 'moreinfo';
					moreInfo.appendChild(document.createTextNode('(click for more info)'));
				gig.appendChild(moreInfo);
				var details = document.createElement('div');
					details.className = 'details';
					addElement(items[i], details, 'div', 'show_price', 'price');
					addElement(items[i], details, 'span', 'venue');
					details.appendChild(document.createTextNode(' - '))
					addElement(items[i], details, 'span', 'address');
					addElement(items[i], details, 'div', 'note');
				gig.appendChild(details);
			}
			
			$(".gig").click(
				function() { 
					$(this).find(".details").slideToggle(400);
					$(this).find(".moreinfo").toggle();
					$(this).toggleClass("gigopen");
				}
			);
			$(".gig").hover(
				function() {
					if (!$(this).hasClass("gigopen")) {
						$(this).find(".moreinfo").show();
					}
					$(this).addClass("gighighlight");
				},
				function() {
					$(this).find(".moreinfo").hide();
					$(this).removeClass("gighighlight");
				}
			);
		}
	});
}

function addElement(item, parent, type, field, opt_fieldName) {
	var element = document.createElement(type);
	if (opt_fieldName) {
		element.className = opt_fieldName;
	}
	else {
		element.className = field;
	}
	element.appendChild(document.createTextNode(item.getElementsByTagName(field)[0].firstChild.nodeValue));
	parent.appendChild(element);
}

google.setOnLoadCallback(initialize);