/**
 *
 * JanelAjax
 * Criado por: João Gabriel Fraga - jgfraga@gmail.com
 * Versão: 0.1 BETA
 *
 * Como usar:
 *
 * janelAjax( pagina , data , info )
 *
 * pagina : caminho para a página a ser aberta via ajax
 * data : dados para passar para outra página em formato queryString
 * info : informações complementares da janela, em JSON exemplo:
 *
 * janelAjax( 'pagina.asp' , 'ajax=1&teste=lol' , { altura : 500 , largura : 150 , titulo : 'Exemplo' } )
 *
 *
*/


function janelAjax( pagina , data , info )
{

	if( pagina.length < 1 ){ return false; }
	if( data.length < 1 ){ return false; }
	if( !isDefined(info.titulo) ) info.titulo = '&nbsp;'; // Titulo padrão da página
	if( !isDefined(info.largura) ) info.largura = '500'; // Largura padrão da página
	if( !isDefined(info.altura) ) info.altura = '350'; // Altura padrão da página

	var jAfundo = '<div class="janelAjaxFundo"></div>';
	var jA = '<div class="janelAjax"><h1>' + info.titulo + '<span style="float: right; cursor: pointer;" onclick="janelAjaxFechar();">x</span></h1><div class="loadFrame">carregando...</div></div>';

	$('body').append(jAfundo).append(jA);

	$('.janelAjaxFundo').fadeIn('normal',function(){
		$('.janelAjaxFundo').css({'filter' : 'Alpha(Opacity=30)'})
		$('.janelAjax div.loadFrame').css({
			height : info.altura - 50,
			'margin' : 4
		})
		$('.janelAjax').css({
							width : info.largura,
							height : info.altura,
							'margin-top' : - ( info.altura / 2 ),
							'margin-left' : - ( info.largura / 2 )
							}).fadeIn('normal',function(){

									$.ajax({
										url: pagina,
										method: 'post',
										data: data,
										success: function( ajaxResponse ){
											$('.janelAjax div.loadFrame').empty().append( ajaxResponse );
										},
										error: function(){
											alert( pagina );
										}
									});

								});
	});
	$('.janelAjaxFundo').dblclick(function(){

		$('.janelAjax').fadeIn('slow',function(){$('.janelAjaxFundo').fadeOut('fast')});
		janelAjaxFechar();

	});
}

function janelAjaxFechar()
{
	$('.janelAjaxFundo').remove();
	$('.janelAjax').remove();
}
/** DEPENDENCIAS **/
function isDefined( variable )
{
    return (typeof(variable) == 'undefined')? false : true;
}