/* Data/AJAX Functions */

function initData() {
	// $.get( "parks/?q=parks/xml", function(data) {
	$.get( "parks.xml", function(data) {
		parks = data;
		
		closure_list_content = $("<div id='closure_content' />");
		
		var list_table = $("<table id='closure_list_table' cellpadding='0' cellspacing='0' border='0' width='100%'>");
		
		$(data).find("node").each(function(index) {
			
			var title = $(this).find("title:first").text();
			var caption = $(this).find("caption").text();
			var info = $(this).find("info").text();
			var video = $(this).find("youtube").text();
			var tags = $(this).find("tags").text().toLowerCase().split(", ");
			
			$(this).find("images image:first").each(function() {
				var image_url = $(this).find("url").text();
				var thumb_url = image_url.replace("/park/images", "/styles/square_thumbnail/public/park/images");
				var author = $(this).find("alttxt").text();
				var image_caption = $(this).find("title").text();
				
				var big_img = "<img src='" + thumb_url + "' title='" + title + "' border='0' width='96' />";
				var thumb = $("<div class='thumbnail' id='" + index + "'>" + big_img + "</div>");
				
				$(thumb).animate({opacity: .6}, 1).mouseover(function() {
					if ( !$(this).hasClass('currentPark') )
						$(this).animate({opacity:1}, 1);
				}).mouseout(function(){
					if ( !$(this).hasClass('currentPark') )
						$(this).animate({opacity:.6}, 1);
				});
				
				var list_img = "<img src='" + thumb_url + "' title='" + title + "' border='0' width='70' style='margin-right: 10px;' />";
				var img_cell = $("<td>" + list_img + " </td>");
				var title_cell = $("<td style='font-size: 16pt;'>" + title + "<br /><span style='font-size: 11pt;'>" + caption + "</span></td>");
				var row = $("<tr class='thumb_row' valign='top' />").append(img_cell).append(title_cell);				
				list_table.append(row);
				
				// list_table += "<tr class='thumb_row'><td>" + list_img + " </td><td width='10'>&nbsp;</td><td valign='top' style='font-size: 16pt;'>" + title + "<br /><span style='font-size: 13pt;'>" + caption + "</span></td></tr>";
				$("#parks").append(thumb);
			});
			
		});
		
		// list_table += "</table>";
		
		//$(list_table).find(".thumb_row")
		var closure_map = $("<div id='map_canvas' />");
		$(closure_list_content).append(list_table).append(closure_map);
		
		// autocomplete setup:
		populateSearch(data);
		
		// var _url = window.location.href;
		
		index = Math.floor(Math.random() * $(data).find("node").length);
		
		loadPark(index);
		
		
	});
	
	// Preload overview
	$.get("parks/?q=node/77.xml", function(data) {
		var overview_wrapper = $("<div />");
		overview_wrapper.append($(data).find("body value").text());		
		overview_content = overview_wrapper;
	});
	
	// preload video
	$.get("parks/?q=node/76.xml", function(data) {
		
		var video_wrapper = $("<div />");

		$(data).find("field_global_video item").each( function(i) {
			var video_id;
			var video_url = $(this).text();
			var description = $($(data).find("field_video_description item").get(i)).text();
			
			if ( video_url.indexOf('youtube') >= 0 ) {
				video_id = video_url.replace('http://www.youtube.com/watch?v=', '').replace('http://youtube.com/watch?v=', '');
				var thumb_url = "http://i2.ytimg.com/vi/"+video_id+"/hqdefault.jpg";
				var embed_template = '<iframe id="videoframe_'+i+'" width="320" height="210" src="http://www.youtube.com/embed/VIDEO_ID?rel=0" frameborder="0" allowfullscreen></iframe>';
				embed_code = "<table class='video_table' border='0' cellspacing='0' cellpadding='0' style='margin: 5px 5px 0 0;'><tr valign='top'><td>" + embed_template.replace("VIDEO_ID", video_id) + "</td><td>" + description + "</td></tr></table>";
			}
			else {
				var parts = video_url.split('/');
				video_id = parts[parts.length-1];
				embed_code = '<table class="video_table" border="0" cellspacing="0" cellpadding="0" style="margin: 5px 5px 0 0;"><tr valign="top"><td><iframe id="videoframe_'+i+'" src="http://player.vimeo.com/video/'+ video_id + '?title=0&amp;byline=0&amp;portrait=0&amp;color=ff0000" width="320" height="210" frameborder="0"></iframe></td><td>' + description + '</td></tr></table>';
			}
			
			var thumbwrapper = $("<div class='video_thumb' />").html(embed_code);
			video_wrapper.append(thumbwrapper); // wrap embed code with video title/description
			
		});
		video_content = video_wrapper.html();
	});	
}

var last_park_loaded = false;
function loadPark(i) {
	// var this_park = parks[i];
	dataComplete = false;
	var this_park = $(parks).find("node").get(i);
	$("#parks").animate({ left: -110 * i }, 500);
	$("#loading").show();
	if ( currentIndex != i ) {
		$(".currentPark").unbind('mouseover');
		$(".thumbnail").removeClass("currentPark");
		$($("#parks .thumbnail").get(i)).addClass("currentPark").animate({opacity:1},1);
		
		index = i;
		
		if ( this_park != null && this_park != undefined ) {
			parkData(this_park);
		}
	}
	else {
		var img = $(currentPark).find("images image:first url").text();
		var cap = $(currentPark).find("images image:first title").text();
		var auth = $(currentPark).find("images image:first alttxt").text();		
		transition( img, 'fade', auth, cap ); //"parks/" + park.path + "/" + park.images[0], dir);	
		$(".currentThumb").removeClass("currentThumb").animate({opacity:.6},1);;
		$($("#parks .thumbnail").get(i)).addClass("currentPark").animate({opacity:1},1);
	}
	hideGlobalWindow();
}

function parkData(park) {
	
	currentPark = park;
	
	$("#park_name, #park_name_shadow").text( $(park).find("title:first").text() ); // park.name );
	$("#caption_text, #caption_text_shadow").html($(park).find("caption").text() ); // park.caption);
	$("#thumbs").html("");
	
	$(currentPark).find("images image").each( function(i) {
		if ( i > 0 ) {
			var img_path = $(this).find("url").text(); // "parks/" + park.path + "/" + image;
			var thumb_path = img_path.replace("/park/images", "/styles/square_thumbnail/public/park/images"); // "thumbnail.php?path=" + img_path;
			var author = $(this).find("alttxt").text();
			var caption = $(this).find("title").text();
			var thumb = $("<div class='thumbnail'><img src='" + thumb_path + "' width='50' />");
			$(thumb).animate({opacity: .6}, 1).mouseover(function() {
				if ( !$(this).hasClass('currentThumb') ) {
					$(this).animate({opacity:1}, 1);
				}
			}).mouseout(function(){
				if ( !$(this).hasClass('currentThumb') )
					$(this).animate({opacity:.6}, 1);
			}).click( function() {
				loadThumb(img_path, thumb, author, caption);
			});
			$("#thumbs").append(thumb);		
		}
	});
	
	$("#caption").animate( { opacity: 1}, 500, function() {
		jQuery.each(jQuery.browser, function(i) {
			if($.browser.msie){
				$('#list_box').css({opacity:''});
			}
		});
	});
	
	var dir = ( index > currentIndex ) ? 'left' : 'right';		
	var img = $(park).find("images image:first url").text();
	var cap = $(park).find("images image:first title").text();
	var auth = $(park).find("images image:first alttxt").text();
		
	populateStory();
	
	transition( img, 'fade', auth, cap ); //"parks/" + park.path + "/" + park.images[0], dir);	
	currentIndex = index;
	
}

function loadThumb(path, thumb, author, caption) {
	$('.currentThumb').removeClass('currentThumb');
	$(thumb).addClass('currentThumb');
	$("#loading").show();
	$(".thumbnail").animate({opacity: .6}, 1);
	$('.currentThumb').animate({opacity: 1}, 1);
	transition(path, 'fade', author, caption);
}

function populateStory() {
	
	var infoBody = $(currentPark).find("info").text();
	var tags = $(currentPark).find("tags").text();
	var content = $("<div id='infoContent' />");
	var coopName = $(currentPark).find("association").text();
	if ( coopName != '' ) {
		var coopURL = $(currentPark).find("coop_url").text();
		var coopLink = $("<a href='" + coopURL + "' target='_blank'>" + coopName + "</a>");
		
		$("#park_links").html("<h3>Get Involved:</h3>").append(coopLink);
	}	
	else {
		$("#park_links").html('');
	}
	
	$(content).append(infoBody);
	$(content).find("p:first").addClass('dropCap');
	var first_text = $(content).find("p:first").text();
	var first_words = first_text.split(" ");
	var line = first_words[0] + " " + first_words[1];
	var emphasis = line.toUpperCase();
	emphasis = first_text.replace( line, emphasis );
	$(content).find("p:first").text( $(content).find("p:first").text().replace(first_text, emphasis) );
	
	var related_parks = $("<div id='related_parks'><h3>Related Parks:</h3></div>");
	$("#related_content #tags").html(related_parks);
	api_thumbs.getContentPane().html("Loading...");
	var tags = $(currentPark).find("tags").text().split(",");
	
	api_thumbs.getContentPane().html("Loading...");
	
	for ( var i = 0; i < tags.length; i++ ) {
		var tag = $.trim(tags[i]);
		// $(related_parks).append('<a class="related_link" href="javascript:getRelated(\'' + tag + '\');">' + tag + '</a>&nbsp;&nbsp;');		
		getRelated(tag, index);
		
	}	

	api_story.getContentPane().html(content);
	refreshScrollbars();
}

function populateMapData() {
	$.ajax( { 
		url: "closures.xml", 
		success: function(data) {
			closures = data;
			// append to closure list content:
		}
	});
}

function populateSearch(data) {
	var searchData = $("node", data).map(function(i) {
		return {
			value: $("title:first", this).text(),
			id: i	
		}
	}).get();
	 
	$("#search").autocomplete({
		source: searchData,
		minLength: 0,
		select: function( event, ui ) {
			var park_index;
			var index = $(parks).find("node > title").each(function(i) {
				if ( $(this).text() == ui.item.value ) {
					park_index = i;
				}
			});
			loadPark(park_index);
			$("#searchbar").hide();
			$("#search").blur();
			$("#global_menu #links li.selected").removeClass('selected');
		}
	}).focus(function() {
		$(this).css('color', "#000").val("");
	}).blur(function() {
		$(this).css('color', "#999").val('SEARCH');
	});
}


function getRelated( tag, relatedIndex ) {

	var relatedNodes = $(parks).find("node:has(tags:contains('"+tag+"'))");
	var sectionHead = $("<h3><a href='#'><span style='font-size: 8pt; font-weight: bold; color: #666;'>" + tag + "</span></a></h3>");
	var sectionBody = $("<div />");
	
	$(relatedNodes).each(function() {								  
		if ( api_thumbs.getContentPane().html() == "Loading..." ) api_thumbs.getContentPane().html("");
			
		var title = $(this).find("title:first").text();	
		if ( title == $(currentPark).find("title:first").text() ) return;
		var image_url = $(this).find("images image:first url").text();
		var thumb_url = image_url.replace("/park/images", "/styles/square_thumbnail/public/park/images");
		
		var park_index;
		var index = $(parks).find("node > title").each(function(i) {
			if ( $(this).text() == title ) {
				park_index = i;
			}
		});
		
		var thumb = $("<div class='related_thumb'><img src='" + thumb_url + "' title='" + title + "' border='0' width='25' /></div>");
		$(thumb).css('cursor', 'pointer').click( function() {
			loadPark(park_index);
		});
				
		$(sectionBody).append(thumb);
		
	});	
	var section = $("<div class='related_section' />").html(sectionHead).append(sectionBody);
	api_thumbs.getContentPane().append(section);		
	refreshScrollbars();
}
