/**
 * Extensão do jquery para amostra de erros
 * Esta extensão serve exclusivamente para amostra de erros executados via js.
 */
 
//------------------------------------------------------------------------------
//
// Variáveis
//
//------------------------------------------------------------------------------

var modalPreload = '';
var contentElementPreload = '';

//------------------------------------------------------------------------------
//
// M�todos
//
//------------------------------------------------------------------------------

/**
 * M�todo para cria��oo do "modal" para a p�gina.
 */
function createModalPreload(closeOnClick) {
	
	// Adiciona o modal
	if(!modalPreload) { 
		modalPreload = $('<div id="mainModalPreload"></div>');
	} else {
		modalPreload.children().remove();
	}
	
	// Definições do css.
	modalPreload.css({
		top:0, 
		bottom:0,
		left:0, 
		right:0,
		background:'#000000',
		position:'fixed',
		zIndex:10000, 
		opacity: 0.7,
		display:'none'
	});
	
	// Adiciona o modal ao corpo.
	$('body').append(modalPreload);
	
	// Mostra o modal.
	modalPreload.fadeIn();
	
	// Verifica se é necessário fechar ao clicar.
	if(closeOnClick) {
		
		// Adiciona o listener para fechamento do modal.
		modalPreload.click(function() {
			removePreloadModal();
		});
	}
	
	
		
}

/**
 * Efetua a definição do texto a ser inclusa no modal.
 */
function settingTextPreload(title, showCloseButton, width, height, closeOnClick) {
	
	if(!contentElementPreload) { 
		contentElementPreload = $('<span class="ui-corner-all" style="font-size:13px;"></span>');
	} else {
		contentElementPreload.children().remove();
	}
			
	// Botão..
	var button = $('<input type="button" id="button-modal" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" value="fechar" />');
	
	if(title) {
		var title = $('<div align="center"><b>'+title+'</b></div><br/>')
		contentElementPreload.append(title);
	}
	
	// Define a barra de progresso.
	var progressBar = $('<div id="progressbar"></div>');
	
	// Verifica se é necessário incluir o botão.
	if(showCloseButton) {
		contentElementPreload.append(button);	
	}
	
	contentElementPreload.append(progressBar);
	
	$('body').append(contentElementPreload);
		
	// Define o padding.
	var padding = 10;
	
	// Define as informações do preloader
	//$(progressBar).css('background-image', 'url(images/pbar-ani.gif)');
	
	// Define o css da estrutura do erro.
	contentElementPreload.css({
		position:'fixed',
		padding:padding+'px', 
		top: '50%',
		left: '50%',
		zIndex:10001, 
		background:'#FFFFFF', 
		display: 'none'
	});
	
	if(width > 0) {
		contentElementPreload.css({
			width:width
		});
	}
	
	if(height > 0) {
		contentElementPreload.css({
			height:height
		});
	}
	
	// Efetua a definição da margem negativa...
	contentElementPreload.css({
		marginLeft: (((contentElementPreload.width()/2) + (padding) )*-1),
		marginTop: (((contentElementPreload.height()/2)+ (padding)) *-1)
	});
	
	contentElementPreload.fadeIn();
	
	$("#progressbar").progressbar({
		value: 100
	});
	
	// Verifica se é necessário utilizar 
	if(closeOnClick) {
		$('#button-modal').click(function() {
			removePreloadModal();
		});
		
		$('#mainModalPreload').click(function() {
			removePreloadModal();
		});
	}
	
}

function removePreloadModal() {
	
	$('body').remove('#mainModalPreload');
	modalPreload.fadeOut('slow');
	contentElementPreload.fadeOut('slow');
}

//------------------------------------------------------------------------------
//
// Extensão.
//
//------------------------------------------------------------------------------

/**
 * Efetua a extensão/criação do método showPreload
 */
$.extend ({
	showPreload:function(title, showCloseButton, width, height, closeOnClick){
		createModalPreload(closeOnClick);
		settingTextPreload(title, showCloseButton, width, height, closeOnClick);
	}
});

/**
 * Efetua o fechamento do preloader.
 */
$.extend ({
	closePreload:function(){
		if(modalPreload) {
			removePreloadModal();
		}
	}
});
