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

var overlay =
{
	init:function()
	{
		if(!document.getElementById || !document.createTextNode) return;
		if(!$D.get('t_over')) overlay.prepareDarkening();
		var links = $D.get('photos').getElementsByTagName('a');
		$E.on(links, 'click', overlay.clickHandler);
	},
	clickHandler:function(e)
	{
		$E.stopEvent(e);
		overlay.showDarkening();
		overlay.fetchContent(this);
	},
	prepareDarkening:function()
	{
		var t_over = document.createElement('div');
		t_over.setAttribute('id', 't_over');
		$E.on(t_over, 'click', overlay.hideDarkening);
		document.body.appendChild(t_over);
		$D.setStyle(t_over, 'opacity', '0');
		
	},
	showDarkening:function()
	{
		var t_over = $D.get('t_over');
		$D.setStyle(t_over, 'width', $D.getDocumentWidth() + "px");
		$D.setStyle(t_over, 'height', $D.getDocumentHeight()+ "px");
		$D.setStyle(t_over, 'display', 'block');
		var attributes = { opacity: { from:0, to:.8 }};
      	var anim = new YAHOO.util.Anim( t_over, attributes, .5, YAHOO.util.Easing.easeOut );
      	anim.animate();
		$E.on(window, 'resize', function()
										 {
											 $D.setStyle(t_over, 'width', $D.getDocumentWidth() + "px");
											 $D.setStyle(t_over, 'height', $D.getDocumentHeight()+ "px");
										 });
	},
	hideDarkening:function(e)
	{
		$E.stopEvent(e);
		var attributes = { opacity: { from:.8, to:0 }};
      	var anim = new YAHOO.util.Anim( this, attributes, .4, YAHOO.util.Easing.easeOut );
		anim.animate();
		if($D.getElementsByClassName('yui-overlay')[0]) 
		{
			overlay.c_over.hide();
			overlay.c_over.hideEvent.subscribe(function(){ overlay.c_over.destroy(); });
		}
		anim.onComplete.subscribe(function()
			{
				$D.setStyle($D.get('t_over'), 'display', 'none');
				//if($D.getElementsByClassName('yui-overlay')[0]) overlay.c_over.destroy(); //$D.getElementsByClassName('yui-overlay')[0].parentNode.removeChild($D.getElementsByClassName('yui-overlay')[0]);
			});		
		
	},
	fetchContent:function(el)
	{
		var url = "http://" + location.hostname + "/flickrmania/includes/image.php";
		var src = encodeURI(el.childNodes[0].getAttribute('src'));
		overlay.src = src.replace("_s", "");
		var img = new Image();
		img.src = overlay.src;
		$E.on(img, "load", overlay.imgHandler, el);
		overlay.c_over =  new YAHOO.widget.Overlay("c_over", { fixedcenter:true, visible:true, zIndex:10, width:"16px" } ); 
		overlay.c_over.setHeader("");
		overlay.c_over.setBody("<img src='http://www.dio5.com/flickrmania/images/ajax-loader.gif' alt='loading' />");
		overlay.c_over.setFooter("");
		overlay.c_over.render(document.body);	
	}, 
	imgHandler:function(e, el)
	{
		if($D.getStyle($D.get('t_over'), 'display') == 'none') return;
		var imgwidth = this.width;
		var lin = "<a href='"+ el.href + "' title='Link to Flickr'>Check it out on Flickr!</a>";
		var author = el.childNodes[0].getAttribute('title');
		var photo_id = overlay.src.replace(/http:\/\/(([a-zA-Z0-9]+\.*)+)\/([0-9]*)\/([0-9]*)_([a-zA-Z0-9]*).[a-z]{3}/, "$4");
		getExif.init(photo_id);
		overlay.c_over =  new YAHOO.widget.Overlay("c_over", { fixedcenter:true, visible:false, zIndex:10, width:imgwidth+"px"} ); 
//		,effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25}
		overlay.c_over.setHeader("<p>By " + author + "</p>");
		overlay.c_over.setBody('<img src="'+overlay.src+'" alt="Flickrmania Image from Flickr" />');
		overlay.c_over.setFooter('<p>' + lin + '</p>');
		overlay.c_over.render(document.body);
		overlay.c_over.cfg.setProperty('effect', [{effect:YAHOO.widget.ContainerEffect.FADE,duration:.4}]);
		overlay.c_over.show();
	}
}
$E.onContentReady("photos", overlay.init);
var img = new Image();
img.src = "http://www.dio5.com/flickrmania/images/ajax-loader.gif";
