/* **************************************************************
*                         --XJS--	                            *
* Desenvolvedora: Rhianna Cantarelli							*
* Versão: 1.5													*
* Data: 17.05.2007												*
* Email: r.rhianna@yahoo.com.br									*
************************************************************** */







/*
	- CONFIGURAÇÃO DO SCRIPT PRINCIPAL NA ADIÇÃO DE UM MODAL:
	
	EM 'executeOnLoad()'
	Add:
	if(xjs_browser.type == 'IE'&& xjs_browser.version == '6'){
		searchAndInsertIframe('div', 'iFrame'); 
		autoResizeIframes();
	}


	Em 'executeOnResize()'
	Add:
	if(xjsBool_ModalIsOpen == true) { 
		extendToNode('divShadow', 'Screen', 'yes', 'yes'); 
		if(xjs_browser.type == 'IE' && xjs_browser.version == '6') { autoResizeIframes(); }
	}


	- EDITAR OS SEGUINTES MÉTODOS DESTA FOLHA
	resetModal();
	setModalContent();
	setModalDimensions();
*/





/* **************************************************************
Abre/Fecha Sombra - Usada para Modal
************************************************************** */
function showHideShadow(toDo) {
	if(toDo == 'show') {
		setDisplay('divShadow', 'block');
		extendToNode('divShadow', 'Screen', 'yes', 'yes');
	}
	else if(toDo == 'hide') { setDisplay('divShadow', 'none'); }

	if(toDo == 'show' && xjs_browser.type == 'IE' && xjs_browser.version == '6') { 
		searchAndInsertIframe('div', 'iFrame'); 
	}
}




/* **************************************************************
Abre/Fecha Modal + Sombra
    Principal função de Layout.
    Recebe o status do Modal (toDo) se é para mostrar(show) ou se é
    para esconder(hide).
    
    Alem destes parametros devem ser passados todos os outros que
    serão usados pelo método 'setModalContent()'
************************************************************** */
function showHideModal(toDo) {
	if(toDo == 'show') {
		xjsBool_ModalIsOpen = true;
		showHideShadow(toDo);
		resetModal();
	    setDisplay('divContainModal', 'block');
		setModalContent(arguments);
	}
	else if(toDo == 'hide') {
		xjsBool_ModalIsOpen = false;
		showHideShadow(toDo);
		resetModal();
		setDisplay('divContainModal', 'none');
	}
}


function showHideModalComente(toDo) {
	if(toDo == 'show') {
		xjsBool_ModalIsOpen = true;
		showHideShadow(toDo);
	    setDisplay('divContainModal', 'block');
		setDisplay('divComente', 'block');
		setModalComenteCoords();
		setModalContent(arguments);
	}
	else if(toDo == 'hide') {
		xjsBool_ModalIsOpen = false;
		showHideShadow(toDo);
		setModalComenteCoords();
		setDisplay('divComente', 'block');
		setDisplay('divContainModal', 'none');
	}
}




/* **************************************************************
Reseta Posição, Elementos e Dimensoes do Modal
	- Este Método Preenche o conteudo do Modal com o HTML temporário
	até que o novo seja carregado. Alem disso ele é responsavel pelo
	pré-posicionamento e dimensionamento do mesmo.
************************************************************** */
function resetModal() {
    id('divModal').innerHTML = '';
	id('divModal').className += ' transparencia100';
	setModalCoords();
}







/* **************************************************************
	Faz Ajuste de Posição em que o Modal deve Permanecer
************************************************************** */
function setModalCoords()
{
    coordY = 0; coordX = 0; dimenW = 0; dimenH = 0;

    atualY = getPageYScroll();
    atualX = getPageXScroll();
    
    atualW = id('divModal').clientWidth;
    atualH = id('divModal').clientHeight;

    // Posiciona eixo Vertical
    if(xjsInt_ModalY == 'middle') {
        bodyY = xjs_thisPage.windowH/2;
        xjsInt_modalY = atualH/2;
        coordY = atualY + (bodyY - xjsInt_modalY);
    }
    else { coordY = atualY + xjsInt_ModalY; }

    // Posiciona eixo Horizontal    
    if(xjsInt_ModalX == 'middle') {
        bodyX = xjs_thisPage.windowW/2;
        xjsInt_modalX = atualW/2;
        coordX = atualX + (bodyX - xjsInt_modalX);
    }
    else { coordX = atualX + xjsInt_ModalX; }
    
    id('divModal').style.top = coordY + 'px';
    id('divModal').style.left = coordX + 'px';
}




function setModalComenteCoords()
{
    coordY = 0; coordX = 0; dimenW = 0; dimenH = 0;

    atualY = getPageYScroll();
    atualX = getPageXScroll();
    
    atualW = id('divComente').clientWidth;
    atualH = id('divComente').clientHeight;

    // Posiciona eixo Vertical
    if(xjsInt_ModalY == 'middle') {
        bodyY = xjs_thisPage.windowH/2;
        xjsInt_modalY = atualH/2;
        coordY = atualY + (bodyY - xjsInt_modalY);
    }
    else { coordY = atualY + xjsInt_ModalY; }

    // Posiciona eixo Horizontal    
    if(xjsInt_ModalX == 'middle') {
        bodyX = xjs_thisPage.windowW/2;
        xjsInt_modalX = atualW/2;
        coordX = atualX + (bodyX - xjsInt_modalX);
    }
    else { coordX = atualX + xjsInt_ModalX; }
    
    id('divComente').style.top = coordY + 'px';
    id('divComente').style.left = coordX + 'px';
}





/* **************************************************************
Esta Função é responsavel pela criação do conteúdo do Modal
************************************************************** */
function setModalContent(param) {
    var modalType = param[1];
    var modalParam = param[2];

    if (xjs_browser.type != 'IE') { modalParam = encodeURI(param[2]); }

	
	idTarget = 'divModal';
    if(param[3] != undefined) { idTarget = param[3]; }

	RequestConfig.setConfig('POST', false, false, '', '');
    RequestConfig.setState(4, 'onLoadModal();', true);

	var urlModal = '../modal/' + modalType + '.aspx?' + modalParam;
	XmlHttp.LoadPage(urlModal, modalParam, idTarget);

    // Refaz o Iframe do Modal - Pode se sobrepor ao conteudo
	if(xjs_browser.type == 'IE' && xjs_browser.version == '6') { autoResizeIframes(); }
}




/* **************************************************************
Dependendo da Formatação exigida, o Modal necessitará de ajuste
em suas dimensões apos o conteudo ser carregado
************************************************************** */
function setModalDimensions() {}





/* **************************************************************
Esta é a Função que será Executada ao Ser Carregado o Conteúdo
Do Modal
************************************************************** */
function onLoadModal() {
    setDisplay('divContainModal', 'block');
    setModalCoords();
    id('divModal').className = '';

    // Se for IE, Reinicia Objetos de Ajax
    if(xjs_browser.type == 'IE') {
        RequestConfig = new objXmlHttpRequestConfig();
        XmlHttp = new objXmlHttpRequest(RequestConfig);
    }
}




function ModalComentsError() {
    alert('Houve um erro ao carregar esta tela.');
    showHideModalComente('hide');    
}