$D = YAHOO.util.Dom;
$E = YAHOO.util.Event;
$C = YAHOO.util.Connect;

var clickLinks =
{
	init:function()
	{
		if(!document.getElementById || !document.createTextNode) return;
		var links = $D.get("nav").getElementsByTagName("a");
		$E.on(links, 'click', clickLinks.clickHandler);		
	},
	clickHandler:function(e)
	{
		$E.stopEvent(e);
		var url = clickLinks.makeUrl(this);
		clickLinks.con = $C.asyncRequest('GET', url+"&time="+new Date().getTime(), {success:clickLinks.success, failure:clickLinks.failure, argument:this, timeout:10000});
		clickLinks.handleStatus();
	},
	handleStatus:function()
	{
			if($C.isCallInProgress(clickLinks.con))
			{
				var photoC = $D.get('photoCont');
				var response = '<p id="status">Hang on... we\'re loading.</p>';
				photoC.innerHTML = response;
				
			}
	},
	success:function(o)
	{
		clickLinks.inactive();
		$D.addClass(o.argument, 'active');
		var photos = $D.get('photos');
		var photoC = $D.get('photoCont');
		if($D.get('status')) $D.get('status').parentNode.removeChild($D.get('status'));
		if(photos) photos.parentNode.removeChild(photos);
		
		var response = o.responseText;
		photoC.innerHTML = response;
		$E.onAvailable("photos", loader.addWarning);
		$E.onContentReady("photos", overlay.init);
		$E.onContentReady("photos", loader.removeWarning);
		
	},
	failure:function(o)
	{
		var photoC = $D.get('photoCont');
		photoC.innerHTML = '<p id="status">Oops, couldn\'t get it... <br />Please try again later!</p>';
	},
	inactive:function()
	{
		var links = $D.get("nav").getElementsByTagName("a");
		if($D.hasClass(links, 'active')) $D.removeClass(links, 'active');
	},
	makeUrl:function(el)
	{
		var t = el.href;
		var url = "http://" + location.hostname + "/flickrmania/includes/output.php";
		if( t.indexOf('set') == -1 )
		{
			url += "?pics=all";
		}
		else 
		{
			url += "?pics=" + t.substr(t.indexOf('?set=')+5);	
		}
		return url;
	}	
}
$E.onAvailable( "nav", clickLinks.init);
