$(document).ready(function(){
	$("a[rel=dialog]").live('click', function(){
		dialog_open($(this).attr("href"));
		return false;
	});
});

var dialog_open = function(url, callback){
	var type = dialog_determine_type(url);
	dialog_create();
	$("div.overlay").show().click(function(){
		dialog_hide();
	});
	$("div.dialog div.inside").html(" ... loading ...");
	
	if(type=='image')
	{
		return dialog_insert_image(url, callback);
	}
	else
	{
		return dialog_insert_remote(url, callback);
	}
}

var dialog_insert_image = function(url, callback){
	var image = $("<img />").attr('src', url);
	image.load(function(){
		dialog_fix_position();
		if(callback) callback();
	});
	$("div.dialog div.inside").html('').append(image);
	image.css({cursor: 'pointer'}).click(function(){
		dialog_hide();
	});
}

var dialog_insert_remote = function(url, callback){
	$("div.dialog").css({width: 600});
	$("div.dialog div.inside").load(url, function(){
		dialog_fix_position();
		if(callback) callback();
	});
}

var dialog_create = function(){
	$("<div />").addClass("overlay").appendTo("body");
	$("<div />").addClass("dialog").append($("<div />").addClass("inside")).appendTo("body");
}

var dialog_hide = function(){
	$("div.overlay").remove();
	$("div.dialog").remove();
}

var dialog_fix_position = function(){
	var dialog = $("div.dialog");
	
	var height = dialog.outerHeight(true);
	var height_doc = $(window).height();
	
	var width = dialog.outerWidth(true);
	var width_doc = $(window).width();
	
	var top = (height_doc - height) / 2;
	var left = (width_doc - width) / 2;
	
	dialog.css({top: top, left: left});
	
	dialog.show();
}

var dialog_determine_type = function(url){
	var chunks = url.split('.');
	var type = chunks[chunks.length-1];
	if(type=='jpg'||type=='png'||type=='gif'||type=='tiff')
	{
		return 'image';
	}
}