/** 
 * @projectDescription	Harvest Digital Website
 * @author 	Matt Hobbs matt.hobbs@harvestdigital.com
 * @version 	0.1 
 */

/** @id documentReady
* Document ready function
*/
jQuery(function($){
	/**
	 * Create External Links
	 */
	$('a[href^="http://"]').attr({
	    target: "_blank"
  	}).addClass("externalLink");
	
	/**
	 * SIFR Setup
	 */
	$.sifr({
		path: '/js/',
		save: true,
		font: 'FSLola Bold'
	});
	$('#largeText h1, h2, #thatsHarvest h1').sifr();
	
	/**
	 * Include the Showreel on the frontpage
	 */
	if($('#showreel').length){
		$("#hdShowreel p").hide();
		$('#hdShowreel').flash({
		    src: '/flv/player.swf',
		    width: 448,
		    height: 252,
			allowfullscreen: 'true',
			allowscriptaccess: 'always',
			flashvars: { 
				author: 'HarvestDigital Ltd',
				description: 'Harvest Digital Showreel',
				file: 'http://harvestdigital.s3.amazonaws.com/hds.flv',
				controlbar: 'none',
				image: '/flv/bg.jpg'
			} 
		});
	}
	
	/**
	 * Fire lightbox on the Work Pages
	 */
	if($("#clientWork").length){
		$('#moreClientWork a').lightBox({
			imageLoading: '/images/lightbox-ico-loading.gif',		
			imageBtnPrev: '/images/lightbox-btn-prev.gif',
			imageBtnNext: '/images/lightbox-btn-next.gif',
			imageBtnClose: '/images/lightbox-btn-close.gif',
			imageBlank: '/images/lightbox-blank.gif'
		});
	}
	
	/**
	 * Google Map Contact Page
	 */
	if($("#contactUs").length){
		//Google Maps
		var mapdiv = document.getElementById("map");
		var map = new GMap2(mapdiv);
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		
		var latlng = new GLatLng(51.51493, -0.13462);
		map.setCenter(latlng, 15);
		
		var marker = new GMarker(latlng);
		GEvent.addListener(marker, "click", function(){
		marker.openInfoWindowHtml("<p>Harvest Digital lives here.</p>");
		});
		map.addOverlay(marker);
		
		//Tube Status
		var tubeURL = "http://pipes.yahoo.com/pipes/pipe.run?_id=tMv54kYO3hGZ1v_h3XBDOQ&_render=json&_callback=?";
		$.getJSON(tubeURL,
			function(data){
				var lineName, lineStatus, lineID;
				var lineHTML = "<h3 id='tube'>Tube Status</h3><div id='tubeHolder'>";
				
				$.each(data.value.items, function(i,item){
					lineName = data.value.items[i].title;
					lineStatus = data.value.items[i].description;
					switch(lineName){
						case "H'smith & City":
							lineName = "Hammersmith & City";
							lineID = "HSmith";
							lineHTML += "<div class='tubeLine' id=" + lineID + "><p><strong>" + lineName + ":</strong></p> <p class='status'>" + lineStatus + "</p></div>";
							break;
						case "Waterloo & City":
							lineName = "Waterloo & City";
							lineID = "Waterloo";
							lineHTML += "<div class='tubeLine' id=" + lineID + "><p><strong>" + lineName + ":</strong></p> <p class='status'>" + lineStatus + "</p></div>";
							break;
						default:
							lineHTML += "<div class='tubeLine' id=" + lineName + "><p><strong>" + lineName + ":</strong></p> <p class='status'>" + lineStatus + "</p></div>";
							break;
					}
				});
				lineHTML += "</div>";
				$("p#nearest").after(lineHTML);
				
				$("div.tubeLine").not("#Central, #Northern, #Piccadilly").hide();
				
				var linkHTML = " <b>(Show all lines)</b>";
				$("h3#tube").append(linkHTML);
				
				$("h3#tube b").one("click", function(){
					var outer = function(){
						var a = 0;
						var $startHidden = $("div.tubeLine:hidden");
						var inner = function(){
							$startHidden.eq(a).slideDown("slow");
							if(a == $startHidden.length){clearInterval(cycleMe);}
							a++;
						};
						return inner;
					};
					
					var lineFader = outer();
					var cycleMe = setInterval(lineFader, 200);
					$("h3#tube b").remove();
				});
			});
	}
});