//setting jQuery to no conflict mode
var $j = jQuery.noConflict();

//document ready
$j(document).ready(function() {
	//global variables
	var d = new Date();
	var curr_year = d.getFullYear();
	var years = jQuery.makeArray();
	var year_num = jQuery.makeArray();
	var year_lat = jQuery.makeArray();
	var year_long = jQuery.makeArray();
	var year_zoom = jQuery.makeArray();
	var year_links = jQuery.makeArray();
	var year_lats = jQuery.makeArray();
	var year_longs = jQuery.makeArray();
	var projects = jQuery.makeArray();
	var project_thumbs = jQuery.makeArray();
	var total_years;
	var year;
	var curr_project;
	var page_load = true;

	if ($j('body').attr('id') == "index"){
		$j("#menu").css("display","none");
	
		//spawn welcome popup
		$j.fn.colorbox({width:"60%", opacity: 0, transition:"elastic", inline:true, href:"#welcome_wrapper",open:true},
		function(){
			$j('#cboxNext').remove();
			$j('#cboxPrevious').remove();
			$j('a.plink').click(
				function() { 
					$j.fn.colorbox.close();
					$j('#map_canvas').jmap('MoveTo',{'centerMethod':'normal','mapCenter':[$j(this).attr('rel'),$j(this).attr('title')],'mapZoom':15,'mapControl':'large'});
					return false;
 				});
			}
		);
	
		//create Google map
		$j('#map_canvas').jmap('init', {'mapType':G_SATELLITE_MAP,'mapCenter':[33.58619429050496, -112.407260729993],'mapZoom':15,'mapControl':'large','mapEnableScrollZoom': true,'mapEnableType': true},
		  function (map, element, options){
			GEvent.addListener(map, "infowindowopen", function(){
					//alert(curr_project);
					
				$j("a[rel='modal']").colorbox({width:"920px", transition:"elastic", inline:true, href:"#work_wrapper"}, getProjectsXML);	
			});
			
			GEvent.addListener(map, "infowindowclose", function(){
					//alert("infowindow closed");
					zoomclose();
			}); 
		});
 
		//load farm kml	 
			$j('#map_canvas').jmap('AddFeed', {'feedUrl':'http://www.early-adopter.com/_clients/matthewmoore/html/data/kml/farm.kml?dummy='+(new Date()).getTime()});
		
		//load years xml
			
			$j.ajax({
					type:"GET",
					url: "data/xml/years.xml",
					dataType:"xml",
					success: parseYearsXML,
					error: function(msg){
						alert("error");
					},
					complete: createSlider
		 });
	}
	

	if ($j('body#workpage')){
	// load projects xml
		$j.ajax({
				type:"GET",
				url: "data/xml/projects.xml",
				dataType:"xml",
				success: parseProjectListXML,
				error: function(msg){
					alert("error");
				},
				complete: null
		});
	}
	
//pull in projects xml
function parseProjectListXML(xml) {
	var project_thumb;
	var project_title;
	var project_code;
	$j(xml).find("project").each(function(){
		project_title = $j(this).find("title").text();
		project_thumb = $j(this).find("image:first").text();
		project_code = $j(this).attr("id");
		$j('#worklist_wrapper ul').append("<li><a href='' title='"+project_code+"' rel='modal' title='project_code'><img src='images/th_"+project_thumb+".jpg'//><br /><span>"+project_title+"</span></a></li>");
		$j("a[rel='modal']").colorbox({width:"920px", transition:"elastic", inline:true, href:"#work_wrapper"},getProjectsXML);
	});
}
	
function getProjectsXML(){
	//alert("get projects xml");

			$j('#cboxNext').remove();
			$j('#cboxPrevious').remove();

	curr_project = $j(this).attr("title");
	zoomclose();
	$j.ajax({
		type:"GET",
		url: "data/xml/projects.xml",
		dataType:"xml",
		success: parseProjectsXML,
		error: function(msg){
			alert("error");
		},
		complete: null //setupZoom
	 });
}	


		 
//create slider

	function createSlider() {
		//alert("years: "+$j(years).length);
		$j('#year_slider').slider({
				orientation: "vertical",
				range: "min",
				min: 0,
				max: $j(years).length-1,
				value: 1,
				step: 1,
				slide: function(event, ui) {
					$j("#amount").val(ui.value);
				},
				change: hideDesc
			});
		total_years = $j(years).length;
		var padding = (Math.round(323/total_years+1))-10;
		//alert(padding);
		$j('#year_list li').css('padding-bottom',padding+'px');
		loadYear();
	}		
		 

//removes zoombox after close and restores original element
	function zoomclose() {
		//alert("zoomclose called");
		$j('.gzoomwrap').after('<div id="zoomtest" class="zoom"></div>');
		$j('.gzoomwrap').remove();
		$j('#flvContent').empty();
		$j('#scroll_wrapper').empty();
		$j('#scroll_wrapper').html('<div id="work_thumbs" class="scroll-pane"><ul></ul></div>');
	}

//hide current year description, load new year
	function hideDesc() {
		$j('#year_description').hide('size',loadYear);
	}
	
//load new year	
	function loadYear() {
		//alert("loadYear");

		if (page_load == true) {
 			index = total_years;
 			page_load = false;
		}


 		var index = parseInt($j("#year_slider").slider("value"));//$j(years.length)
 		var reverse_index = total_years - index - 1;

 		//alert(reverse_index);

		var desc = $j(years)[reverse_index];
		year = $j(year_num)[reverse_index];
		var lat = $j(year_lat)[reverse_index];
		var long = $j(year_long)[reverse_index];		
		var zoom = parseInt($j(year_zoom)[reverse_index]);
		
		$j('#year_description').empty();
		$j('#year_description').html(desc);
		$j('#year_description').append('<ul id="year_links">');
		
		$j.each(
			year_links[reverse_index],
			function( intIndex, objValue ){
				//alert(intIndex);
				//alert(objValue);
				var project_lat = year_lats[reverse_index][intIndex];
				var project_long = year_longs[reverse_index][intIndex];			

				$j('#year_description ul#year_links').append('<li><a rel="'+project_lat+'" title="'+project_long+'" class="plink">'+objValue+'</a></li>');
				$j('a.plink').click(
					function() {
					//alert($j(this));
					//alert("lat: "+project_lat);
					//alert("long: "+project_long);
	 				$j('#map_canvas').jmap('MoveTo',{'centerMethod':'normal','mapCenter':[$j(this).attr('rel'),$j(this).attr('title')],'mapZoom':15,'mapControl':'large'});
	 				return false;
	 			});
			}
		);
		
		$j('#year_description').append('</ul><br /><p>Click blue markers on the map for details.</p><p><a id="instructions">&raquo; Instructions</a></p>');
		//alert("desc: "+desc);
		
		$j('a#instructions').click(
			function() {
				$j.fn.colorbox({width:"60%", opacity: 0, transition:"elastic", inline:true, href:"#welcome_wrapper",open:true});
	 			return false;
	 	});
				
 		$j('#year_description').show('size');
 		
 		if (page_load == false) {
 			$j('.remove-feed').trigger('click');
 		}
 		
 		$j('#map_canvas').jmap('AddFeed', {'feedUrl':'http://www.urbanplough.com/data/kml/'+year+'.kml?dummy='+(new Date()).getTime()},
 			function(feed){ 
 				$j('#map_canvas').jmap('MoveTo',{'centerMethod':'normal','mapCenter':[lat,long],'mapZoom':zoom,'mapControl':'large'});
 				//alert(typeof zoom);
				$j('.remove-feed').click(function(){
					$j('#map_canvas').jmap('RemoveFeed',feed);
				})
 		});	
	}	

/*	function panMap(lat,long) {
		alert("pan map");
	 	$j('#map_canvas').jmap('MoveTo',{'centerMethod':'pan','mapCenter':[lat,long],'mapControl':'large'});
	}*/
	
//pull in years xml	
	function parseYearsXML(xml) {

		$j(xml).find("year").each(function(){
    		years.push($j(this).find("year_description").text());
    		year_num.push($j(this).attr("id"));
    		year_lat.push($j(this).find("year_lat").text());
    		year_long.push($j(this).find("year_long").text());
    		year_zoom.push($j(this).find("year_zoom").text());
    		
    		var project_links = jQuery.makeArray();
			var project_longs = jQuery.makeArray();
			var project_lats = jQuery.makeArray();
			
			$j(this).find("project_link").each(function(){

				project_links.push($j(this).text());
				project_longs.push($j(this).attr("long"));
				project_lats.push($j(this).attr("lat"));
			});
			
			year_links.push(project_links);
			year_lats.push(project_lats);
			year_longs.push(project_longs);
			
    		$j('#year_list').append("<li>"+$j(this).attr("id")+"</li>");
 		 });
	}

//pull in projects xml	
	function parseProjectsXML(xml) {
		//alert ("parseProjectsXML");
		$j(xml).find("project").each(function(){
			var images = jQuery.makeArray();
			var images_attr = jQuery.makeArray();
			if (curr_project == $j(this).attr("id")){
				$j("#titlebar h2").text($j(this).find("title").text());
				$j("#description p").html($j(this).find("description").text());
				var i =0;
				$j(this).find("image").each(function(){
					images.push($j(this).text());
					images_attr.push($j(this).attr('type'))
					
					var thumb_image = new Image();
						thumb_image.onload = function() {
						//alert("thumbnail loaded");
						$j('.scroll-pane').jScrollPane();
					};
					thumb_image.src = 'images/th_'+images[i]+'.jpg';;
					$j("#work_thumbs ul").append("<li><img class='thumb' src='images/th_"+images[i]+".jpg' id='"+images[i]+"'alt='"+i+"' //><//li>");

					var image = new Image();
					image.onload = function() {
    					// always called
    					//alert('image loaded');
					};
					image.src = 'images/'+images[i]+'.jpg';
					i++;
				});
				
				if (images_attr[0] == "video") {
					//alert("load video");
					if (images[1]) {
						$j("#zoomtest").html("<img id='fullimg' src='images/"+images[1]+".jpg'//>");
					}
					$j("#image_wrapper").hide();
					$j('#flvContent').flash({   // test_flashvars.swf is the flash document
						swf: 'swf/flvplayer.swf',   // these arguments will be passed into the flash document
						height: 506,   width: 656,
						params: {   play: true,   loop: false, wmode: "transparent" },
						flashvars: {   path: images[0]+'.f4v'  }
					});				
				} else {
					//alert("load image");
					$j("#video_wrapper").hide();
					$j("#image_wrapper").show();
					
					$j("#zoomtest").html("<img id='fullimg' //>");
					$j("#fullimg").hide();
					var image = new Image();
					image.onload = function() {
						var width = image.width;
						var height = image.height;
						//alert("line 301: "+width);
						//alert("line 302: "+height);
    					setupZoom(width,height);
					};
					image.src = 'images/'+images[0]+'.jpg';
					$j("#fullimg").attr("src","images/"+images[0]+".jpg");
					
				}
				
				$j(".thumb").click(function() {
					//alert(this.alt);
					var type = images_attr[parseInt(this.alt)];

					//alert(type);
					if (type == "still") {						
						$j("#video_wrapper").hide();
						$j("#image_wrapper").show();

						$j('.gzoomwrap').after('<div id="zoomtest" class="zoom"><img id="fullimg"//></div>');
						$j('.gzoomwrap').remove();
						$j("#fullimg").hide();

						//var image_id = this.id;
						var image = new Image();
						image.onload = function() {
							//alert("width: "+image.width());
							var width = image.width;
							var height = image.height;
							//alert("line 321: "+width);
							//alert("line 322: "+height);
    						setupZoom(width,height);
						};
						image.src = 'images/'+this.id+'.jpg';
						$j("#fullimg").attr("src","images/"+this.id+".jpg");

						//$j("#fullimg").load(alert("loaded"));
						//$j(".gzoomSlider").slider('value', 0);
					} else {
						$j("#image_wrapper").hide();
						$j("#video_wrapper").show();
					}
				
					//
				});
				//alert(title);
			}
		 });	
	}
	
//toggle navigation view
	
	$j('#timelinelink').addClass('timelineselected');

	
	$j('#menulink').click(function() {
		$j('#menulink').addClass('menuselected');
		$j('#timelinelink').removeClass('timelineselected');
		$j('#menu').fadeIn();
		$j('#timeline').fadeOut();	
	 });
	 
	$j('body#index #timelinelink').click(function() {
		$j('#timelinelink').addClass('timelineselected');
		$j('#menulink').removeClass('menuselected');
		$j('#menu').fadeOut();
		$j('#timeline').fadeIn();	
	 });
	 
	 $j('body#workpage #timelinelink').click(function() {
		document.location.href = 'index.php';	
	 });
	
//event listeners for year popups
	
	var info=false;
	
	$j("#show_info").click(function() {

		$j("#description").toggle("slow");
		if (info == false) {
			$j("#show_info").text("Hide Info");
			info = true;
		} else {
			$j("#show_info").text("Show Info");
			info = false;
		}
	});
		
//create zoom box
	function setupZoom(width,height) {
			//alert($j("#fullimg").width());
			//alert("setupZoom");
			//alert ($j("#fullimg").src);
			
			if (height > width) {
				var ratio = height/570;
				//alert("Ratio: "+ratio);
				var small_width = width/ratio;
				var small_height = height/ratio;
			} else {
				var ratio = width/710;
				var small_width = width/ratio;
				var small_height = height/ratio;
			}
			
			//alert("width: "+small_width);
			//alert("height: "+small_height);

			$j("#zoomtest").gzoom({
							sW: small_width,
							sH: small_height,
							lW: width,
							lH: height, 
							lighbox : false
			 });
			 $j("#fullimg").show();
			 $j(".gzoomSlider").slider('value', 0);
	}	
});	
	
//scroll pane for popups
/*	$j().bind('cbox_complete', function(){
       $j('.scroll-pane').jScrollPane()
	});*/
	
