﻿/* **************************************************************
							--XJS--
Desenvolvedora: Rhianna Cantarelli
Versão: 2.0
Data: 17.10.2007
Email: r.rhianna@yahoo.com.br
************************************************************** */







/* **************************************************************
    Esta deve ser a Única função Publica a ser chamada para 
    Executar a abertura ou fechamento de um Modal.
    
    toDo = 'show/hide'          : Carrega / Descarrega Modal
    arguments[1] = Nome da Div a Ser aberta.
    arguments[2] = Nome da Pagina a ser Aberta.
    arguments[3] = Parametros Enviados.
************************************************************** */
function showHideModal(toDo) {
	if(toDo == 'show') {
		xjs_isModalOpen = true; // Marca Abertura do Modal
		xjs_IDModalOpen = arguments[1];

		// Abre e Posiciona Shadow e ModalContainer
		showHideShadow(toDo);
		// Reseta Modal
		if(xjs_IDModalOpen == 'divModal') { resetModal(); }
		// Posiciona Modal
		setModalCoords();
		// Carrega Modal
		LoadModal(arguments);
	}
	else if(toDo == 'hide') {
		xjs_isModalOpen = false; // Marca que Modal está Fechado
		// Reseta Modal
		resetModal();		
		// Fecha Shadow e ModalContainer
		showHideShadow(toDo);
	}
};



function showHideModalEmbed(toDo) {
	if(toDo == 'show') {
		xjs_isModalOpen = true; // Marca Abertura do Modal
		xjs_IDModalOpen = arguments[1];

		// Abre e Posiciona Shadow e ModalContainer
		showHideShadow(toDo);
		// Reseta Modal
		xGet.get('#' + xjs_IDModalOpen).style.display = 'block';
		// Posiciona Modal
		setModalCoords();
		// Carrega Modal
		//LoadModal(arguments);
	}
	else if(toDo == 'hide') {
		xjs_isModalOpen = false; // Marca que Modal está Fechado
		// Fecha Shadow e ModalContainer
		
		xGet.get('#' + xjs_IDModalOpen).style.display = 'none';
		showHideShadow(toDo);
	}
};





/* **************************************************************
Abre/Fecha Sombra - Usada para Modal
************************************************************** */
function showHideShadow(toDo) {
	if(toDo == 'show') {
        node = xGet.get('#divShadow');
        xGet.DisplayBlock();
        xDoc.extendToScreen(node);
        
        showHideRodapeShadow(toDo);
        
        node = xGet.get('#divContainModal');
        xGet.DisplayBlock();
        xDoc.extendToScreen(node);
	}
	else if(toDo == 'hide') { 
	    xGet.get('#divShadow');
	    xGet.DisplayNone();
	    showHideRodapeShadow(toDo);
	    xGet.get('#divContainModal');
	    xGet.DisplayNone();
	}
};





/* **************************************************************
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() {
    node = xGet.get('#' + xjs_IDModalOpen);
    node.innerHTML = '';
    
    minH = xjs_ModalOnLoadH + 'px';
    minW = xjs_ModalOnLoadW + 'px';
    classH = 'minHeight';
    classW = 'minWidth';

    // Ajusta para IE6
	if(xDoc.userBrowser == 'IE'&& xDoc.userBrowserVersion == '6') { classH = 'height'; classW = 'width'; }

    // Seta Altura e Largura Minima
    xGet.setCss(classH, minH);
    xGet.setCss(classW, minW);
};





/* **************************************************************
	Faz Ajuste de Posição em que o Modal deve Permanecer
************************************************************** */
function setModalCoords() { xDoc.setNodePosition(xGet.get('#' + xjs_IDModalOpen), 'Center', '', ''); };










/* **************************************************************
Esta Função é responsavel pela criação do conteúdo do Modal
************************************************************** */
function LoadModal(param) {
    var modalNode = xGet.get('#' + xjs_IDModalOpen); // Node onde deve ser Carregado o Conteudo do Modal
    var modalType = param[2]; // Nome da Página ASPX na Pasta _modal à ser carregada
	var modalParam = param[3]; // Parametros à serem enviados para a Página a ser Carregada
	var isXML = xjs_isApplicationXml;
	
    // Se for IE deve Restagar como HTML
    if(xDoc.userBrowser == "IE") { isXML = false; }

    // Configura Objeto de Configuração
	RequestConfig.setConfig('POST', isXML, false, '', '');
        // Adiciona Ações para cada Estágio
	    if(param.length >= 5) { RequestConfig.setState(1, param[4], true); }
	    if(param.length >= 6) { RequestConfig.setState(2, param[5], true); }
	    if(param.length == 7) { RequestConfig.setState(3, param[6], true); }

    // Finaliza Configurações
    RequestConfig.setState(4, 'onLoadModal();', true);
    
    // Seta Ações em caso de Erro
    if(xjs_isModalDebug == true) { RequestConfig.execInError('alert("Erro n: " + intStatus); showHideModal("hide");'); }
    else { RequestConfig.execInError('onModalError();'); }


    // Determina Página da Requisição
	var urlPage = '../_modal/' + modalType + '.aspx?' + modalParam;

    // Executa Requisição
	XmlHttp.LoadPage(urlPage, modalParam, modalNode);
	// Refaz Objeto em caso de IE
	if(xDoc.userBrowser == "IE"){ XmlHttp = new objXmlHttpRequest(RequestConfig); }
};






function onLoadModal() { 
    setModalCoords(); 
    // Em caso de IE6 Re-seta Dimensão dos Iframes
    if(xDoc.userBrowser == 'IE' && xDoc.userBrowserVersion == '6') { xIEsupport.resizeIframes(); }
};
function onModalError() { alert(xjs_ModalErrorMessage); showHideModal('hide'); };


function showHideRodapeShadow(toDo) {
    if(xDoc.userIsIE == true) {
        node = xGet.get('#shadowRodape');
        if (toDo == 'show') { 
            xGet.DisplayBlock();
            node.style.width = xDoc.windowW + 'px';
        }
        else if (toDo == 'hide') { xGet.DisplayNone(); }
    }
};