(function($)
{
	$.fn.internals = function()
	{
		var opts = {
			width: 992,
			height: 544,
			isIE6: $.browser.msie && $.browser.version < 7
		};
		
		var createFrame = function(e)
		{
			e.preventDefault();
			cleanFrame();
			
			body_width = $('body').width();
			body_height = $('body').height();
			
			var target = tranformUrl( $(this).attr('href'), body_width );
			var scroll = $(document).scrollTop();
			var wrapper_top = scroll + 16;
			var left = ( body_width - $('#iframe-wrapper').width() ) / 2;
			
			$.post(target, function(data) {
				$(data).insertAfter($('#iframe-close'));
			});
			
			$('#iframe-wrapper').css({'top': wrapper_top+'px', 'left': left+'px'});
			if (opts.isIE6){
				$('#iframe-overlay').css({'height': body_height+'px', 'width': body_width+'px'});
			}
			
			$('#iframe-overlay, #iframe-wrapper').show();
		}
		
		var closeFrame = function(e)
		{
			e.preventDefault();
			cleanFrame();
			$('#iframe-overlay, #iframe-wrapper').hide();
		}
		
		var cleanFrame = function()
		{
			$('.iframe-border').children().not('#iframe-close').remove();
		}
		
		var tranformUrl = function(url, body_width){
			has_id = url.search('\/[0-9]+\/?$');
			if (has_id == -1){
				new_url = url + '_ajax';
			}else{
				new_url = url.slice(0, has_id) + '_ajax' + url.slice(has_id);
			}
			
			if (new_url.lastIndexOf('/') < (new_url.length - 1)){
				new_url = new_url + '/';
			}
			
			main_gallery = url.search('\/talento');
			if ( (main_gallery != -1) && (body_width < 768) ){
				new_url = new_url + 'mobile';
			}
			
			main_gallery = url.search('\/galeria');
			if (main_gallery != -1){
				if (body_width >= 1045){
					new_url = new_url + 'wide';
				}else if(body_width < 480){
					new_url = new_url + 'mini';
				}else if(body_width < 768){
					new_url = new_url + 'mobile';
				}
			}			
			
			return new_url;
		}
		
		$('a.ajax-link, a.ajax-image').live('click', createFrame);
		$('#iframe-close a').live('click', closeFrame);
	}
	
	$(function()
	{
		new $.fn.internals();
	});
})(jQuery);
