/*
	Autore: Danilo Cicognani
	Script: popajax.js
	Applicazione: AscomDoc
	Versione: 1.00
	Data: 09/10/2008
	Scopo: Visualizza un simil-popup in Ajax
	Copyright (c) 2008 CicoNET di Danilo Cicognani
*/

var popAjaxStarted = false;
var popAjaxName = '';
var $popAjaxCall;

$('document').ready(function() {
	$('body').append('<div id="popajax_page"><div id="popajax_window"><div id="popajax_title"></div><div id="popajax_container"><div id="popajax_content"></div><img id="popajax_loading" src="' + FWCONFIG_PresentationIMG + 'ajax-loading.gif" /></div></div></div>');
});
	
/**
 * Visualizza un simil-popup in Ajax
 *
 * @param string strUrl L'url da caricare dentro al popup
 * @param string strTitle Il titolo del popup
 * @param int intWidth Larghezza del popup
 * @param int intHeight Altezza del popup
 * @param bool blnModal Se il popup deve essere modale (oscurare il resto della pagina)
 * @param bool blnClose Se il popup deve essere chiudibile (dal pulsante sulla barra del titolo o cliccando fuori)
 * @param string strHTML Eventuale contenuto html del popajax (in questo caso non fa la chiamata Ajax all'url strUrl)
 * @param string strName Eventuale nome del popajax
 */
function popAjax(strUrl, strTitle, intWidth, intHeight, blnModal, blnClose, strHTML, strName) {
	if (typeof(strTitle) == 'undefined' ) strTitle = '';
	if (typeof(intWidth) == 'undefined' ) intWidth = 400;
	if (typeof(intHeight) == 'undefined' ) intHeight = 300;
	if (typeof(blnModal) == 'undefined' ) blnModal = true;
	if (typeof(blnClose) == 'undefined' ) blnClose = true;
	if (typeof(strHTML) == 'undefined' ) strHTML = '';
	if (typeof(strName) == 'undefined' ) strName = '';
	popAjaxName = strName;
	if (blnModal) {
		$('#popajax_page').addClass('popajax_modal')
			.css({
				width: $(document).width(),
				height: $(document).height()
			});
	}
	$('#popajax_window').css({
		width: intWidth + 'px',
		height: intHeight + 'px',
		'margin-left': Math.floor(-intWidth / 2) + 'px',
		'margin-top': Math.floor(-intHeight / 2) + 'px'
	});
	$('#popajax_container').css({
		width: (intWidth - 2) + 'px',
		height: (intHeight - 20) + 'px'
	});
	var strHtmlTitle = '<h1>' + strTitle;
	if (blnClose)
		strHtmlTitle += '<a href="javascript:popAjaxClose()"><img src="' + FWCONFIG_PresentationIMG + 'popajaxclose.gif" border="0" /></a>';
	strHtmlTitle += '</h1>';
	$('#popajax_title').html(strHtmlTitle);
	$('#popajax_loading').show();
	$('#popajax_page').fadeIn();
	popAjaxStarted = true;
	if(strUrl != '')
	{
		$popAjaxCall = $.get(strUrl, function(data) {
			$('#popajax_content').html(data).fadeIn();
			$('#popajax_loading').hide();
			popAjaxStarted = false;
		});
	}
	else if(strHTML != '')
	{
		$('#popajax_content').html(strHTML).fadeIn();
		$('#popajax_loading').hide();
		popAjaxStarted = false;
	}
}

function popAjaxClose() {
	if (popAjaxStarted)
		$popAjaxCall.abort();	// Fermo la chiamata Ajax
	popAjaxStarted = false;
	popAjaxName = '';
	$('#popajax_content').hide();
	$('#popajax_page').hide();
}