/*
 * Arquivo: basico.js
 */
teclado_PermitirAcentuacao=false;

var vetOnLoad = new Array();

function procVetOnLoad() {
	try {
		var i;
		for(i=0; i<vetOnLoad.length; i++) {
			try {
				eval(vetOnLoad[i]);
			}catch(e){
				alert('basicoJS.procVetOnLoad: ERRO executando [' + vetOnLoad[i] + ']: ' + e.toString());
			}
		}
	} catch(e) {
		alert('basicoJS.procVetOnLoad: ERRO generico: ' + e.toString());
	}
}

function incluiOnLoad(comando) {
	try {
		vetOnLoad[vetOnLoad.length]=comando;
	} catch(e) {
		alert('basicoJS.incluiOnLoad: ERRO inserindo comando [' + comando + ']');
	}
}

function $(id) {
	var obj;
	try {
		obj = document.getElementById(id);
	} catch(e) {
		alert('basicoJS.$: ' + e.toString());
	}
	return obj;
}

var logBuffer="";
function mostraLog() {
	alert(logBuffer);
}

function logMsg(msg) {
	try {
		//logBuffer += now() + '> ' + msg + '\n';
		alert(now() + '> ' + msg + '\n');
	} catch(e) {
	}
}

function logErro(msg,url,linha) {
	try {
		logMsg(url + ' (' + linha + '): ' + msg);
	} catch(e) {
	}
	return true;
}

/*
onerror=logErroJS;
function logErroJS(msg,url,linha) {
	//try {
		//logErro('JS>' + msg, url, linha);
		//alert(logBuffer);
		alert('JS erro> ' + url + ' (' + linha + '): ' + msg);
	//} catch(e) {
	//}
	return true;
}
*/

function CriaArray (n) {
	this.length = n;
}

var wLog
var wMensagem 
var lMsgChamadas = 0
var wSenha

/*--------------------------------------------------------------------------------------------------
*/
/*******************************************************************************
 * scripts/Teclado.js
 */
var cpoCorrente		= '';
var cpoProximo		= '';

function aoTeclar(DnEvents) {
    var result		= false;
    var inclui		= false;
	var browser		= navigator.appName;
	var b_version	= navigator.appVersion;
	var version		= parseFloat(b_version);
	var tecla		= null;
    var targ		= null;

	if(browser != "Microsoft Internet Explorer") {
		tecla = DnEvents.which;
	} else {
		tecla = window.event.keyCode;
	}
    
    if(!DnEvents) 
		var DnEvents = window.event;
    
    if(DnEvents.target) {
		targ = DnEvents.target;
    }
    else if(DnEvents.srcElement) {
		targ = DnEvents.srcElement;
    }
    
    var cpoCorrente = targ.id;
    if (cpoCorrente == null) {
		return true;
    }
    if (cpoCorrente == '') {
		return true;
	}
    
    if (tecla<32 || tecla>255) {
		if($(cpoCorrente) != null) {
			tecla = 9;
		} 
		return true;
    } else if($(cpoCorrente).getAttribute("critica") != null) {
		var crit = $(cpoCorrente).getAttribute("critica");
		inclui = eval(crit + "(" + tecla + ")");
		result = inclui;
    } else { // o que é isto???
		var cTecla = String.fromCharCode(tecla);
		//alert(cTecla + ' = ' + tecla);
		switch (cTecla) {
		    case 'á': 
		    case 'à': 
		    case 'ã':
		    case 'â':
		    case 'ä':
				//return false;
				tecla = "a".charCodeAt(); 
				break;
		    case 'é':
		    case 'è':
		    case 'ê':
		    case 'ë':
				//return false;
				tecla = "e".charCodeAt(); 
				break;
		    case 'í':
		    case 'ì':
		    case 'î':
		    case 'ï':
				//return false;
				tecla = "i".charCodeAt(); 
				break; 
		    case 'ó':
		    case 'ò':
		    case 'õ':
		    case 'ô':
		    case 'ö':
				//return false;
				tecla = "o".charCodeAt(); 
				break;
		    case 'ú':
		    case 'ù':
		    case 'û':
		    case 'ü':
				//return false;
				tecla = "u".charCodeAt(); 
				break;
		    case 'ç':
			//return false;
				tecla = "c".charCodeAt();  
				break;
			
		    case 'Á':
		    case 'À':
		    case 'Ã':
		    case 'Â':
		    case 'Ä':
				//return false;
				tecla = "A".charCodeAt();  
				break;		
		    case 'É':
		    case 'È':
		    case 'Ê':
		    case 'Ë':
				//return false;
				tecla = "E".charCodeAt();  
				break;
		    case 'Í':
		    case 'Ì':
		    case 'Î':
		    case 'Ï':
				//return false;
				tecla = "I".charCodeAt();  
				break;
		    case 'Ó':
		    case 'Ò':
		    case 'Õ':
		    case 'Ô':
		    case 'Ö':
				//return false;
				tecla = "O".charCodeAt();  
				break;
		    case 'Ú':
		    case 'Ù':
		    case 'Û':
		    case 'Ü':
				//return false;
				tecla = "U".charCodeAt();  
				break;
		    case 'Ç':
				//return false;
				tecla = "C".charCodeAt();  
				break;
		    case '\'': // Não permitido por causa do postgres.
				return false;
		    case '|': // Não permitido por causa do K2.
				return false;
		}
		
		if(browser == "Microsoft Internet Explorer") {
		    window.event.keyCode = tecla;
		}
		return true;
    }
    return result;
}

function selecionaCampo(cpo) {
    try {
		var aCampo = cpo.split("_");
		if(aCampo.length>1) {
		    if(menuRaiz.menuCorrente != aCampo[0]) {
			menuRaiz.selecionaMenu(aCampo[0]);
		    }
		}
		// vai para o proximo
		try {
		    $(cpo).focus();
		} catch(e) {
		    // Nem todos os campos tem a funcao select.	
		}
		
		try {
		    $(cpo).select();
		} catch(e) {
		    // Nem todos os campos tem a funcao select.	
		}
    } catch(e) {
		logMsg("Teclado.selecionaCampo:" + e.toString())
    }
}

function getCaretPosition(ctrl) {
    var CaretPos = 0;	
    // IE Support	
    if (document.selection) {		
		ctrl.focus();		
		var Sel = document.selection.createRange();		
		Sel.moveStart('character', -ctrl.value.length);		
		CaretPos = Sel.text.length;	
    } else if (ctrl.selectionStart || ctrl.selectionStart == '0') // Firefox support	
		CaretPos = ctrl.selectionStart;	
    
    return (CaretPos);
}

function setCaretPosition(ctrl, pos) {	
    if(ctrl.setSelectionRange)	{		
		ctrl.focus();		
		ctrl.setSelectionRange(pos,pos);	
    } else if (ctrl.createTextRange) {	
		var range = ctrl.createTextRange();
		range.collapse(true);
		range.moveEnd('character', pos);
		range.moveStart('character', pos);
		range.select();
    }
}

var ctrlCip = "";
var ctrlVisita = "";

var auxCip	= "";
var auxVisita	= "";
var auxMedico	= "";
function setaProx(fld, prox) {
    if(fld != null) {
		var aAnterior = cpoCorrente.split("_");
		var aCorrente = fld.id.split("_");
		cpoCorrente = fld.id;
    }
    cpoProximo = prox;
}

//document.onkeydown = aoTeclarControle;
//document.onkeydown = keyDown; // work together to analyze keystrokes

document.onkeypress = aoTeclar; // work together to analyze keystrokes

//document.onkeydown = aoTeclar; // work together to analyze keystrokes
//if (netscape) document.captureEvents(Event.KEYDOWN|Event.KEYUP);

function enviaInsKey() {
    var fireOnThis = $(cpoCorrente);
    if( document.createEvent ) {
		var evObj = document.createEvent('KeyboardEvent');
		
		evObj.initKeyEvent(                                                                                      
		"keypress",        //  in DOMString typeArg,                                                           
		true,             //  in boolean canBubbleArg,                                                        
		true,             //  in boolean cancelableArg,                                                       
		null,             //  in nsIDOMAbstractView viewArg,  Specifies UIEvent.view. This value may be null.     
		false,            //  in boolean ctrlKeyArg,                                                               
		false,            //  in boolean altKeyArg,                                                        
		false,            //  in boolean shiftKeyArg,                                                      
		false,            //  in boolean metaKeyArg,                                                       
		45,              //  in unsigned long keyCodeArg,                                                      
		0);              //  in unsigned long charCodeArg);              
		
		fireOnThis.dispatchEvent(evObj);
	} else if( document.createEventObject ) { //IE
		var evObj = document.createEventObject();
		evObj.keyCode=45;
		//evObj.repeat = false;
		//evObj.returnValue = true;
		fireOnThis.fireEvent('onkeydown',evObj);
	}
    fireOnThis.focus();
}

function enviaTecla(tecla) {
    var fireOnThis = $(cpoCorrente);
    if( document.createEvent ) {
		var evObj = document.createEvent('KeyboardEvent');
		
		evObj.initKeyEvent(                                                                                      
			"keypress",       //  in DOMString typeArg,                                                           
			true,             //  in boolean canBubbleArg,                                                        
			true,             //  in boolean cancelableArg,                                                       
			null,             //  in nsIDOMAbstractView viewArg,  Specifies UIEvent.view. This value may be null.     
			false,            //  in boolean ctrlKeyArg,                                                               
			false,            //  in boolean altKeyArg,                                                        
			false,            //  in boolean shiftKeyArg,                                                      
			false,            //  in boolean metaKeyArg,                                                       
			tecla,            //  in unsigned long keyCodeArg,                                                      
			0);               //  in unsigned long charCodeArg);              
		
		fireOnThis.dispatchEvent(evObj);
    } else if( document.createEventObject ) { //IE
		var evObj = document.createEventObject();
		evObj.keyCode=tecla;
		//evObj.repeat = false;
		//evObj.returnValue = true;
		fireOnThis.fireEvent('onkeydown',evObj);
    }
    fireOnThis.focus();
}

var tecla_A =  65;
var tecla_Z =  90;
var tecla_a =  97;
var tecla_z = 120;
var tecla_0 =  48;
var tecla_9 =  57;

function digitos(tecla) {
    try {
		return ((tecla >= tecla_0) && (tecla <= tecla_9)); //0-9
    } catch(e) {
		logMsg("Teclado.digitos: " + e.toString());
		return false;
    }
}
function numerico(tecla) {
    try {
		return (digitos(tecla) || (tecla==46)); // digitos ou .
    } catch(e) {
		logMsg("Teclado.numerico: " + e.toString());
		return false;
    }
}
function maiuscula(tecla) {
    try {
		return ((tecla>=tecla_A) && (tecla<=tecla_Z)); // maiusculas
    } catch(e) {
		logMsg("Teclado.maiuscula: " + e.toString());
    } 
}
function minuscula(tecla) {
    try {
		return ((tecla>=tecla_a) && (tecla<=tecla_z)); // minusculas
    } catch(e) {
		logMsg("Teclado.minuscula: " + e.toString());
    }
}
function alfabetico(tecla) {
    try {
		return (maiuscula(tecla) || minuscula(tecla)); // maiusculas e minusculas
    } catch(e) {
		logMsg("Teclado.alfabetico: " + e.toString());
    }
}
function alfanumerico(tecla) {
    try {
		return digitos(tecla) || alfabetico(tecla); // digitos e letras
    } catch(e) {
		logMsg("Teclado.alfanumerico: " + e.toString());
    }
}

function critTelefone(cpo,obrigatorio) {
    try {
	if(obrigatorio && cpo.value=="") {
	    msgErro("Campo obrigatorio.");
	    cpo.select();
	    cpo.focus();
	    return false;
	}
	// regex validos
	// restritivo -> /^\d{0,3}\(\d{3,4}\)\d{8}$/
	// generico impreciso -> /^\d*\(?\d*\)?\d*\-?\d*$/
	// ex: 55(021)12345678
	return cpo.value.match(/^\d{0,3}\(\d{3,4}\)\d{8}$/);
    } catch(e) {
		logMsg("Teclado.critTelefone: " + e.toString());
    }
    return false;
}

function critData(dia, mes, ano) {
    var result = true;
    try {
		var dt = new Date(ano, mes-1, dia);
		if((dt.getDate()!=dia) || (dt.getMonth()+1!=mes) || (dt.getFullYear()!=ano)) {
		    result = false;
		}
    } catch(e) {
		logMsg("basicoJS.critData: " + e.toString());
    }
    
    return result;
}

function critDataDMA(cpo,obrigatorio) {
    var result = false;
    try {
	if(obrigatorio && cpo.value=="") {
	    msgErro("Campo obrigatorio.");
	    cpo.select();
	    cpo.focus();
	} else {
	    var dia = cpo.value.substring(0,2);
	    var mes = cpo.value.substring(2,4);
	    var ano = cpo.value.substring(4);
	    if(!critData(dia, mes, ano)) {
			msgErro("Data inválida [" + cpo.value + "]");
			cpo.select();
			cpo.focus();
	    } else {
			result = true;
	    }
	}
	/*
	if(result) 
	    msgLimpa();
	 */
    } catch(e) {
		logMsg("basicoJS.critDataDMA: " + e.toString());
    }
    return result;
}

function critDataAMD(cpo,obrigatorio) {
    var result = false;
    try {
	if(obrigatorio && cpo.value=="") {
	    msgErro("Campo obrigatorio.");
	    cpo.select();
	    cpo.focus();
	} else {
	    var dia = cpo.value.substring(6);
	    var mes = cpo.value.substring(4,6);
	    var ano = cpo.value.substring(0,4);
	    if(!critData(dia, mes, ano)) {
			msgErro("Data inválida [" + cpo.value + "]");
			cpo.select();
			cpo.focus();
			result = true;
	    } else {
			result = true;
	    }
	}
	/*
	if(result) 
	    msgLimpa();
	 */
    } catch(e) {
		logMsg("basicoJS.critDataAMD: " + e.toString());
    }
    return result;
}

function critHora(cpo,obrigatorio) {
    var result = false;
    try {
	if(obrigatorio && cpo.value == "") {
	    msgErro("Campo obrigatorio.");
	    cpo.select();
	    cpo.focus();
	} else {
	    var h = Number(cpo.value.substring(0,2)).valueOf();
	    if((h<0) || (h>23)) {
		msgErro("TecladoJS.critHora: Hora inválida (0-23)");
		return false;
	    }
	    
	    var m = Number(cpo.value.substring(2,2)).valueOf();
	    if((m<0) || (m>59)) {
		msgErro("TecladoJS.critHora: Minuto inválido (0-59)");
		return false;
	    }
	    
	    var s = Number(cpo.value.substring(4,2)).valueOf();
	    if((s<0) || (s>59)) {
		msgErro("TecladoJS.critHora: Segundo inválido (0-59)");
		return false;
	    }
	}
    } catch(e) {
		logMsg("Teclado.critHora: " + e.toString());
    }
    return result;
}

var xmlConsAsp = null;
function xmlConsAspRegistra(url) { 
	xmlConsAsp = url;
} 

function cmdConsAspRegistra(url) {
	cmdConsAsp = url;
}

function xmlCons(cmd, param, fnret) { 
	try {
		if(xmlConsAsp == null) {
			alert('basico_js.xmlCons: xmlConsAsp não foi definido.');
			return;
		}
		ajaxExecXML(xmlConsAsp, cmd + "&" + param, fnret);
	} catch(e) {
		logMsg('basico_js.xmlCons: ' + e.toString());
	}
} 

function setCookie( c_name, value, expires, path, domain, secure ) {
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );

	/*
	if the expires variable is set, make the correct
	expires time, the current script below will set
	it for x number of days, to make it for hours,
	delete * 24, for minutes, delete * 60 * 24
	*/
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );

	document.cookie = c_name + "=" +escape( value ) +
		( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
		( ( path ) ? ";path=" + path : "" ) +
		( ( domain ) ? ";domain=" + domain : "" ) +
		( ( secure ) ? ";secure" : "" );
}

// this fixes an issue with the old method, ambiguous values
// with this test document.cookie.indexOf( name + "=" );
function getCookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f

	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );


		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}

function IdiomaMuda(pais) {
	try {
		//setCookie('/sergiofranco/idioma',pais);
		setCookie( 'sergiofranco-idioma', pais, 365, '/', '', '')
		//alert('IdiomaMuda: Idioma solicitado [' + pais + ']. Idioma alterado para [' + getCookie('sergiofranco-idioma') + ']');
		window.location.reload();
	} catch(e) {
	}
}

function IdiomaObtem() {
	try {
		return getCookie('sergiofranco-idioma');
	} catch(e) {
		logMsg('IdiomaObtem: Erro obtendo idioma. Assumindo Brasil.');
		return 1;
	}
}

/* MENSAGENS */
/*******************************************************************************
 * scripts/Msg.js
 */ 
var strMsgNormal = null;
var strMsgErro   = null;

function msgMostraX() {
	try {
		var strN = "<p class='avisoVazio'></p>";
		var strE = "";
		
		if(strMsgNormal!=null) 
			strN = strMsgNormal;
		
		if(strMsgErro!=null) 
			strE = strMsgErro;
		
		if(strE.length>0) {
			$('divMensagem').innerHTML = strE;
			strMsgNormal = null;
		}	 else {
			$('divMensagem').innerHTML = strN;
			strMsgErro = null;
		}
		//$('divMensagem').style.display = 'block';

    } catch(e) {
		//alert('basicoJS.msgMostraX:' + e.toString());
    }
    //$("divMensagem").innerHTML =  strN + strE;
}

function msgLimpa() {
	try {
		//$('divMensagem').style.display = 'none';
	    strMsgNormal = null;
	    strMsgErro   = null;
	    //$("divMensagem").innerHTML = "<p class='avisoInformacao'></p>";
	    msgMostraX();
	} catch(e) {
	}
	document.body.style.cursor = "default";
}

function msgMostra(msg, classe) {
    if(msg == null | msg=="") {
	msg="OK";
	/*
	msgLimpa();
	return;
	 */
    }
    if(classe == null | classe == "") {
	classe = "avisoInformacao";
    }
    else {
	if(classe == "mensagemProcesso" | classe == "mensagemAjax" | classe == "avisoProcesso" | classe == "avisoAjax") {
	    document.body.style.cursor = "wait";
	}
	else {
	    document.body.style.cursor = "default";
	}
    }
    
    switch(classe) {
	case "avisoAjax":
	case "avisoSucesso":
	case "avisoInformacao":
	case "avisoProcesso":
	case "avisoDica":
	case "mensagemAjax":
	case "mensagemSucesso":
	case "mensagemInformacao":
	case "mensagemProcesso":
	case "mensagemDica":
	    strMsgNormal = "<p class='" + classe + "'>" + msg + "</p>";
	    break;
	    
	case "avisoErro":
	case "avisoAlerta":
	case "avisoArquivo":
	case "avisoDiretorio":
	case "avisoUsuario":
	case "avisoGrupo":
	case "avisoAjuda":
	case "avisoApagado":
	case "avisoAnotacao":
	case "mensagemErro":
	case "mensagemAlerta":
	case "mensagemArquivo":
	case "mensagemDiretorio":
	case "mensagemUsuario":
	case "mensagemGrupo":
	case "mensagemAjuda":
	case "mensagemApagado":
	case "mensagemAnotacao":
	    //strMsgErro   = (strMsgErro==null?"":strMsgErro) + "<p class='" + classe + "'>" + msg + "</p>";
	    strMsgErro   = "<p class='" + classe + "'>" + msg + "</p>";
	    break;
    }
    /*
    var aux = $("divMensagem").innerHTML;
    aux = "<p class='" + classe + "'>" + msg + "</p>";
    $("divMensagem").innerHTML = aux;
     */
    msgMostraX(strMsgNormal,strMsgErro);
}

// Mensagens
function msgNormal(msg)	    { 
	msgMostra(msg, "avisoInformacao"); 
}
function msgErro(msg)	    { msgMostra(msg, "avisoErro"); }
function msgAviso(msg)	    { msgMostra(msg, "avisoAlerta"); }
function msgAjax(msg)	    { msgMostra(msg, "avisoAjax"); }
function msgSucesso(msg)    { msgMostra(msg, "avisoSucesso"); }
function msgInformacao(msg) { msgMostra(msg, "avisoInformacao"); }
function msgArquivo(msg)    { msgMostra(msg, "avisoArquivo"); }
function msgDiretorio(msg)  { msgMostra(msg, "avisoDiretorio"); }
function msgUsuario(msg)    { msgMostra(msg, "avisoUsuario"); }
function msgGrupo(msg)	    { msgMostra(msg, "avisoGrupo"); }
function msgAjuda(msg)	    { msgMostra(msg, "avisoAjuda"); }
function msgApagado(msg)    { msgMostra(msg, "avisoApagado"); }
function msgProcesso(msg)   { msgMostra(msg, "avisoProcesso"); } 
function msgAnotacao(msg)   { msgMostra(msg, "avisoAnotacao"); }
function msgDica(msg)	    { msgMostra(msg, "avisoDica"); }

// Avisos
function msgGrNormal(msg)   { msgMostra(msg, "mensagemInformacao"); }
function msgGrErro(msg)	    { msgMostra(msg, "mensagemErro"); }
function msgGrAviso(msg)    { msgMostra(msg, "mensagemAlerta"); }
function msgGrAjax(msg)	    { msgMostra(msg, "mensagemAjax"); }
function msgGrSucesso(msg)  { msgMostra(msg, "mensagemSucesso"); }
function msgGrInformacao(msg){ msgMostra(msg, "mensagemInformacao"); }
function msgGrArquivo(msg)  { msgMostra(msg, "mensagemArquivo"); }
function msgGrDiretorio(msg){ msgMostra(msg, "mensagemDiretorio"); }
function msgGrUsuario(msg)  { msgMostra(msg, "mensagemUsuario"); }
function msgGrGrupo(msg)    { msgMostra(msg, "mensagemGrupo"); }
function msgGrAjuda(msg)    { msgMostra(msg, "mensagemAjuda"); }
function msgGrApagado(msg)  { msgMostra(msg, "mensagemApagado"); }
function msgGrProcesso(msg) { msgMostra(msg, "mensagemProcesso"); }
function msgGrAnotacao(msg) { msgMostra(msg, "mensagemAnotacao"); }
function msgGrDica(msg)	    { msgMostra(msg, "mensagemDica"); }

/*************************************************************************
 * Arquivo: funcoes.js
 */
// funcoes.js - inicio ------------------------------------------------------------
function createXMLHTTP(){
/*
	var xmlHttp;
	try {  // Firefox, Opera 8.0+, Safari  
		xmlHttp=new XMLHttpRequest();  
	} catch (e) {  // Internet Explorer  
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {      
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
    return xmlHttp;  
*/
	var ajax;
	try {
		ajax = new ActiveXObject("Microsoft.XMLHTTP");
	} catch(e) {
		try {
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
			//alert(ajax);
		} catch(ex) {
			try {
				ajax = new XMLHttpRequest();
			} catch(exc) {
				alert("Esse browser não tem recursos para uso do Ajax");
				ajax = null;
			}
		}
		return ajax;
	}

	var arrSignatures = [
		"MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
		"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
		"Microsoft.XMLHTTP"
		];
	for (var i=0; i < arrSignatures.length; i++) {
		try {
			var oRequest = new ActiveXObject(arrSignatures[i]);
			return oRequest;
		} catch (oError) {
		}
	}

	throw new Error("MSXML is not installed on your system.");
}


function ajaxExec(pagina, cmd, fnret) {
	try {
		// criacao do objeto XMLHTTP do arquivo ajax.js
		var oHTTPRequest = createXMLHTTP(); 
		oHTTPRequest.open("post", pagina, true); //enviamos para a página que faz o select do que foi digitado e traz a lista preenchida.

		// para solicitacoes utilizando o metodo post deve ser acrescentado 
		// este cabecalho HTTP
		oHTTPRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

		// a funcao abaixo e executada sempre que o estado do objeto muda (onreadystatechange)
		oHTTPRequest.onreadystatechange=function(){
			// o valor 4 significa que o objeto ja completou a solicitacao
			if (oHTTPRequest.readyState==4){// abaixo o texto gerado no arquivo executa.asp e colocado no div
				fnret(oHTTPRequest.responseText);
				//document.all.divTeste.innerHTML = oHTTPRequest.responseText;
				}
		}
		oHTTPRequest.send(cmd);
	} catch(e) {
	}
}

function ajaxExecXML(pagina, cmd, fnret) {
	try {
		// criacao do objeto XMLHTTP do arquivo ajax.js
		var oHTTPRequest = createXMLHTTP(); 
		cmd = pagina + '?op=' + cmd;
		//alert(cmd);
		oHTTPRequest.open("GET", cmd, true); 

		// para solicitacoes utilizando o metodo post deve ser acrescentado 
		// este cabecalho HTTP
		//oHTTPRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

		// a funcao abaixo e executada sempre que o estado do objeto muda (onreadystatechange)
		oHTTPRequest.onreadystatechange=function(){
			// o valor 4 significa que o objeto ja completou a solicitacao
			if (oHTTPRequest.readyState==4){// abaixo o texto gerado no arquivo executa.asp e colocado no div
				fnret(oHTTPRequest.responseXML);
				//document.all.divTeste.innerHTML = oHTTPRequest.responseText;
				}
		}
		oHTTPRequest.send(null);
	} catch(e) {
	}
}

function XMLGet(obj,tag) {
	try {
		if(obj==null) {
			alert("XMLGet: Parâmetro <obj> não pode ser nulo.");
			return null;
		}
		
		if(tag==null) {
			alert("XMLGet: Parâmetro <tag> não pode ser nulo.");
		}
		
		var sValor = null;
		try {
			sValor = obj.getElementsByTagName(tag)[0].childNodes[0].nodeValue;
		} catch(e) {
			//alert('XMLGet: Tag [' + tag + '] não encontrada.\n\n[' + e + ']');
		}
		return sValor;
	} catch(e) {
		return null;
	}
}

function MostraDataHora() {
	try {
		var hoje = new Date()
		var dia = hoje.getDate()
		var dias = hoje.getDay()
		var mes = hoje.getMonth()
		var ano = hoje.getFullYear()

		if (dia < 10)
				dia = '0' + dia;
		if (ano < 2000)
				ano = '1900' + ano;

		var hours   = hoje.getHours()
		var minutes = hoje.getMinutes()
		var seconds = hoje.getSeconds()

		hours = '' + hours;
		if (minutes<=9)
			minutes='0'+minutes;
		if (seconds<=9)
			seconds='0'+seconds;

		meurelogio = '' + hours + ':' + minutes; // + ':' + seconds;
		if(fmtDt.indexOf('mda')!=-1) {
				meurelogio = NomeDia[dias] + '<br>' + NomeMes[mes] + '/' + dia + '/' + ano + '<br>' + meurelogio;
		} else {
			if(fmtDt.indexOf("amd")!=-1) {
				meurelogio = NomeDia[dias] + '<br>' + ano + '/' + NomeMes[mes] + '/' + dia + '<br>' + meurelogio;
			} else {
				meurelogio = NomeDia[dias] + '<br>' + dia + '/' + NomeMes[mes] + '/' + ano + '<br>' + meurelogio;
			}
		}
		document.getElementById('area_cab_info_tempo_datahora').innerHTML = meurelogio;
	} catch(e) {
		//alert('funcoesJS.MostraDataHora: ' + e.toString());
	}
}

function PadraoEncontrado(crit, cpo) {
	try {
		str = new String(cpo.value);
		return crit.test(str);
	} catch(e) {
		return false;
	}
}

function CritCIP(cpo) {
	try {
		if (cpo.value == "") return true;
		if (PadraoEncontrado(/\D+/, cpo)) {
			alert("CIP: Apenas dígitos são permitidos. Não digite espaços, pontuação ou outros caracteres diferentes de 0 a 9.");
			return false;
			}
		return true;
	} catch(e) {
		return false;
	}
}

function CritSENHA(cpo) {
	try {
		if (cpo.value == "") return true;

		if (PadraoEncontrado(/\D+/, cpo)) {
			alert("SENHA: Apenas dígitos são permitidos. Não digite espaços, pontuação ou outros caracteres diferentes de 0 a 9.");
			return false;
			}

		if (!PadraoEncontrado(/\d{6}/, cpo)) {
			alert("SENHA: 6 dígitos obrigatórios.");
			return false;
			}

		return true;

		cri = /[^\d]*/
		str = new String(cpo.value)
		if(!str.match(cri))
			{
			alert('Apenas dígitos são permitidos. Não digite espaços, pontuação ou outros caracteres diferentes de 0 a 9.');
			//str.length = str.length - 1
			cpo.value = str.substr(0, str.length-1)
			return false
			}
		return true
	} catch(e) {
		return false;
	}
}

function CritDIG(cpo) {
	try {
		if (cpo.value == "") return true;

		if (PadraoEncontrado(/\D+/, cpo)) {
			alert("Apenas dígitos são permitidos. Não digite espaços, pontuação ou outros caracteres diferentes de 0 a 9.");
			return false;
			}

		return true;
	} catch(e) {
		return false;
	}
}

function CritINT(cpo) {
	try {
		if (cpo.value == "") return true;

		if (PadraoEncontrado(/\D+/, cpo)) {
			alert("Apenas dígitos são permitidos. Não digite espaços, pontuação ou outros caracteres diferentes de 0 a 9.");
			return false;
			}

		return true;
	} catch(e) {
		return false;
	}
}

function Mensagem(sMsg)	{
	try {
		if (sMsg=='') {
			if (lMsgChamadas==1) {
				wMensagem.close();
				lMsgChamadas = 0;
				}
			else {
				if (lMsgChamadas!=0) {
					wMensagem.document.write ('<center><form name="frmMensagem"><input class=botao type="button" name=OK onClick="window.close()" value="	 OK	   "></form></center>');
				}
			}
		}
		else	{
			if (lMsgChamadas==0) {
				wMensagem=window.open('', 'Mensagem', 'scrollbars=no, personalbar=no, statusbar=no,	toolbar=no,	menubar=no,	locationbar=no');
				wMensagem.resizeTo(400,220);
				wMensagem.document.write ('<html><head><title>Mensagem</title></head><body bgColor=navy	text=white><h3 align=center>' +	sMsg + '</h3>');
				lMsgChamadas = 1;
			}
			else {
				lMsgChamadas = lMsgChamadas	= 2;
				wMensagem.document.write ('<center>' + sMsg	+ '</center>');
			}
		}
	} catch(e) {
		return false;
	}
}

function ValEMail(sEMail) {
	try {
		cri = /^\.*@\.*..*/
		if(!sEMail.value.match(cri)){
			alert('e-mail inválido [' + sEMail.value + ']');
			return false
		}
		return true
	} catch(e) {
		return false;
	}
}

function Rola(cO,cD) {
	try{
		if(cO.value.length == cO.maxLength) {
			cD.focus();
			return false;
			}
	} catch(e){
		logMsg(e.toString());
	}
	return true;
}

function CriaLaudo(parametros,sessao) {
	try {
		var w, h
		w = window.screen.availWidth;
		h = window.screen.availHeight;
		parametros += '&ss=' + sessao;
		wLaudo = window.open(parametros, 'wLaudo', 'menubar=yes,dependent,resizable,scrollbars'); //,width=' + w + ',height=' + h);
	} catch(e) {
	}
	return false;
}

function ValidaSenha(oSENHA, sSENHARE){
	try {
		return true;

		var nSenha = Number(oSENHA.Value)
		var cri = /^\d{6}$/
		//if ((nSenha.toString()!=oSENHA.value) || (oSENHA.value.length!=6))
		if(!oSENHA.value.match(cri)){
					//alert ('Senha [' + oSENHA.value + '] deve ter 6 dígitos numéricos.')
					alert ('Senha deve ter 6 números.');
					oSENHA.select();
					return false;
					}
		if (oSENHA.value!=sSENHARE){
			alert ('Nova senha não confere com a redigitada.')
			return false
			}
		return true
	} catch(e) {
		return false;
	}
}

function AbreURL(sURL){
	try {
		document.URL = sURL
	} catch(e) {
		return false;
	}
}

function NovaJanela(pURL, pNOME){
	try {
		var w
		if (pURL!='' && pNOME!=''){
			w=window.open(pURL,pNOME,'scrollbars=no, personalbar=no, statusbar=no, toolbar=no, menubar=no, locationbar=no')
		}
	} catch(e) {
		return false;
	}
}

function MsgTemp(tit,msg) {
	try {
		var obj = document.getElementById('divMsgTemp');
		//obj.style.visibility='visible';
		obj.style.display='block';
		document.getElementById('divMsgTemp_Titulo').innerHTML=tit;
		document.getElementById('divMsgTemp_Mensagem').innerHTML=msg;
		obj.style.left = (screen.availWidth - obj.offsetWidth) / 2;
		obj.style.top = screen.availHeight / 2; //(screen.availHeight - obj.offsetHeight) / 2;
		
		alert('screen.availWidth = ' + screen.availWidth);
		alert('screen.availHeight = ' + screen.availHeight);
		alert('left = ' + obj.style.left);
		alert('top = ' + obj.style.top);
		alert('largura = ' + obj.offsetWidth);
		alert('altura = ' + obj.offsetHeight);
		
	} catch(e) {
		return false;
	}
}

function MsgTempLimpa() {
	try {
		//document.getElementById('divMsgTemp').style.visibility='hidden';
		document.getElementById('divMsgTemp').style.display='none';
	} catch(e) {
		return false;
	}
}

function tabLimpa(id,ini,fim) {
	try{
		if(ini<0) {
			ini=0;
		}
		if(fim<0) {
			fim = document.getElementById(id).tBodies[0].rows.length-1;
		}
	    //var numLins = document.getElementById(id).tBodies[0].rows.length;
	    for(var i=fim; i>=ini; i--) {
	        document.getElementById(id).deleteRow(i);
	    }
	}catch(e){
	    //msgErro("limpaTab: " + e.toString());
	}
}

function mostraMsgNormal(msg) {
    try {
		var mostra=false;
		if((msg!=null)&&(msg.length>0)) {
			var objCorpo = document.getElementById('divMsgNormal'); 
			if(objCorpo.innerHTML != '') { 
				objCorpo.innerHTML = objCorpo.innerHTML + '<br>'; 
			} 
			objCorpo.innerHTML = objCorpo.innerHTML + msg; 
			objCorpo.style.display="block";
			mostra=true;
		}	
		if(mostra) {
			//document.getElementById('divMsg').style.visibility="visible"; 
			document.getElementById('divMsg').style.display="block"; 
		}
	} catch (e){
		//alert(e);
	}
}

function mostraErro(msgErro, msgAlerta) {
    try {
		var mostra=false;
		if((msgErro!=null)&&(msgErro.length>0)) {
			var objCorpo = document.getElementById('divMsgErro'); 
			if(!objCorpo) {
				return;
			}
			if(objCorpo.innerHTML != '') { 
				//objCorpo.innerHTML += '<br>'; 
			} 
			objCorpo.innerHTML += '<div class="mensagemErro">' + msgErro + '</div>'; 
			objCorpo.style.display="block";
			mostra=true;
		}	
		
		if((msgAlerta!=null)&&(msgAlerta.length>0)) {
			var objAlerta = document.getElementById('divMsgAlerta');
			if(!objAlerta) {
				return;
			}
			if(objAlerta.innerHTML != '') { 
				//objAlerta.innerHTML = objAlerta.innerHTML + '<br>'; 
			} 
			objAlerta.innerHTML += '<div class="mensagemAlerta">' + msgAlerta + '</div>'; 
			objAlerta.style.display="block";
			mostra=true;
		}
		
		if(mostra) {
			//document.getElementById('divMsg').style.visibility="visible"; 
			var divMsg = document.getElementById('divMsg');
			if(!divMsg) {
				alert(msgErro + '\n' + msgAlerta);
				return;
			}
			divMsg.style.display="block"; 
		}
	} catch (e){
		//alert(e);
	}
}

function escondeErro() {
	try {
		document.getElementById('divMsg').style.visibility="hidden"; 
	} catch(e) {
		return false;
	}
}

function fazNada() {
}

/**************************************************************************
 * Arquivo: rps.js
 */
//<script language=javascript>
// rps.js - inicio ------------------------------------------------------------
var rps_erro;
var xmlRPS;
var xmlHttp;
var xmlSite;
var cmdSite;

function onClick(obj) {
	try {
		//alert('entrou');
		if(!obj) {
			alert('onClick: ' + top.msgParametroNaoExiste); // Parametro não existe
			return false;
		}
		if(obj.id.substr(0,3)=='mnu') {
			selMenu(obj.id);
		}
		switch(obj.id) {
			// MEUS DADOS --------------------------------------------------
			case 'rps_DadosSeguroSalva':
				salvaDadosSeguros();
				break;
			
			default: 
				//alert('onClick: ' + top.msgEventoNaoConfiguradoParaObjeto + ' [' + obj.id + ']'); 

				// Nenhum evento não configurado especificamente para o objeto.
				// Tentando tratar o campo de forma genérica.
				if(obj.attributes.cpoMacro) {
					switch(obj.attributes.cpoMacro.value) {
						case 'lstIns':
							alert('Inclusao na lista [' + obj.attributes.cpoLista.value + ']');
							break;
						case 'lstDel':
							alert('Deleção na lista [' + obj.attributes.cpoLista.value + ']');
							break;
						case 'lstAbre':
							alert('Abre item da lista [' + obj.attributes.cpoLista.value + ']');
							break;
					}
				} else {
				}
		}
	} catch(e) {
		//alert('onClick: ' + e.toString());
	}
}

function onChange(obj) {
	try {
		if(!obj) {
			alert('onChange: ' + top.msgParametroNaoExiste); // Parametro não existe
			return false;
		}
		switch(obj.id) {
			case '***':
				alert('onChange: ***');
				break;
			default: // Evento não configurado para objeto
				//alert('onChange: ' + top.msgEventoNaoConfiguradoParaObjeto + ' [' + obj.id + ']'); 
		}
	} catch(e) {
		//alert('onChange: ' + e.toString());
	}
}

function onFocus(obj) {
	try {
		if(!obj) {
			alert('onFocus: ' + top.msgParametroNaoExiste); // Parametro não existe
			return false;
		}
		
		if(obj.className=='cpoLeitura') {
			//alert('Este campo não pode ser editado');
			obj.blur();
		}
		
		switch(obj.id) {
			case '***':
				alert('onFocus: ***');
				break;
			default: // Evento não configurado para objeto
				//alert('onFocus: ' + top.msgEventoNaoConfiguradoParaObjeto + ' [' + obj.id + ']'); 
		}
	} catch(e) {
		//alert('onFocus: ' + e.toString());
	}
}

function onBlur(obj) {
	try {
		if(!obj) {
			alert('onBlur: ' + top.msgParametroNaoExiste); // Parametro não existe
			return false;
		}
		switch(obj.id) {
			case '***':
				alert('onBlur: ***');
				break;
			default: // Evento não configurado para objeto
				//alert('onBlur: ' + top.msgEventoNaoConfiguradoParaObjeto + ' [' + obj.id + ']'); 
		}
	} catch(e) {
		//alert('onBlur: ' + e.toString());
	}
}

function limpaMenuAtivo(item) {
	try {
		if($(item).className == "inativo") {
			return;
		}
		$(item).className = "";
	} catch(e) {
	}
}
function limpaMenu() { // deprecated
	try{
		limpaMenuAtivo("selmnuMeusDados");
		limpaMenuAtivo("selmnuVacinas");
		limpaMenuAtivo("selmnuDoencas");
		limpaMenuAtivo("selmnuInternacoes");
		limpaMenuAtivo("selmnuLaudos");
		limpaMenuAtivo("selmnuOutrosLaudos");
		limpaMenuAtivo("selmnuMedicamentos");
		limpaMenuAtivo("selmnuAlergias");
		limpaMenuAtivo("selmnuCirurgias");
		limpaMenuAtivo("selmnuCicloMenstrual");
		limpaMenuAtivo("selmnuConsideracoesImportantes");
	} catch(e) {
	    //msgErro("rpsJS.limpaMenu:\n\n" + e.toString());
	}
}

function selMenu(item) {
	if(item==null) {
	    return;
	}
	
	try {
		if($(item).className == "inativo") {
			return;
		}
		limpaMenu();
	    $(item).className = "selected";
	    //alert('selMenu: Menu [' + item + '] selecionado.');
	} catch (e) {
	    //alert("Menu.seleciona(1):\n\n" + e.toString());
	    return;
	}
	//alert('Novo = ' + itemMnuNovo + ' = [' + $(itemMnuNovo).className + ']');
	
	//item.style.visibility	= "visible";
}

function desabilitaByTagName(doc, tagName) {
	var inputs;
	//var lista="";
	try {
		inputs=doc.getElementsByTagName(tagName);
		for(i=0;i<inputs.length;i++) {
			if(inputs[i].className=='cpoLeitura') {
				/*
				if(lista.length>0)
					lista += ', ';
				lista += inputs[i].id;
				*/
				inputs[i].enabled=false;
			}
		}
		//alert('Campos do tipo [' + tagName + '] desabilitados:\n\n' + lista);
	} catch(e) {
		//alert('rpsJS.desabilitaByTagName: ' + e.toString());
	}
}
	
function desabilitaCpoLeitura(doc) {
	try {
		//alert('entrou');
		desabilitaByTagName(doc,'input');
		desabilitaByTagName(doc,'select');
		desabilitaByTagName(doc,'textarea');
	} catch(e) {
		//alert('rpsJS.desabilitaCpoLeitura: ' + e.toString());
	}
}

function rpsInicializa(cip) {
	try {
		//rpsLeGeral(cip);
	} catch(e) {
		//alert('rpsJS.rpsInicializa: ' + e.toString());
	}
}

function rpsRegistra(xmlSite, cmdSite) {
	try {
		window.top.xmlSite = xmlSite;
		window.top.cmdSite = cmdSite;
	} catch(e) {
		//alert('rpsJS.rpsRegistra: ' + e.toString());
	}
}

function limpaObj(obj) {
	try {
		if(!obj) {return;}
		if(obj=='') {return;}
		$(obj).value = '';
	} catch(e){
		//alert('rpsJS.limpaObj: ' + e.toString());
	}
}

function limpa() {
	try {
		rps_erro = null;
		limpaObj("rps_DadosPessoaisCIP");
		limpaObj("rps_DadosPessoaisNome");
		limpaObj("rps_DadosPessoaisDtNasc");
		limpaObj("rps_DadosPessoaisSexo");
		limpaObj("rps_DadosPessoaisEndereco");
		limpaObj("rps_DadosPessoaisEmail");
		limpaObj("rps_DadosPessoaisSangueGrupo");
		limpaObj("rps_DadosPessoaisSangueFatorRH");
		limpaObj("rps_DadosPessoaisTelefones");
		limpaObj("rps_DadosPessoaisCelulares");
	} catch(e) {
		//alert('rpsJS.limpa: ' + e.toString());
	}
}

function rpsLeGeral(grupo) {
	try {
		xmlHttp=createXMLHTTP();
		if (xmlHttp==null)
			{
			alert ("Seu browser não suporta AJAX!");
			return;
			}
		if(!grupo) {
			alert('rpsJS.rpsLeGeral: Parametro [grupo] nulo');
			return;
		}
		if(grupo=='') {
			alert('rpsJS.rpsLeGeral: Parametro [grupo] vazio');
			return; 
		}
		msgAjax(msgAguarde);
		var url=window.top.xmlSite;
		url=url+'?op=' + grupo;
		xmlHttp.onreadystatechange=rpsLeGeralCB;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	
	} catch(e) {
		//alert('rpsJS.rpsLeGeral: ' + e.toString());
	}
}

function rpsLeGeralCB() {
	try {
		msgLimpa();
		if (xmlHttp.readyState!=4)
			return;
		
		xmlRPS=xmlHttp.responseXML;
		limpa();
		var x;
		var y;
		x=xmlRPS.documentElement.childNodes;
		for(var ind=0;ind<x.length;ind++) {
			if(x[ind].nodeType==1) {
				if(x[ind].childNodes.length>0) {
					var nome = (new String(x[ind].nodeName)).toString();
					var valor = (new String(x[ind].childNodes[0].nodeValue)).toString();
					cpoSet(nome, valor);
				}
			}
		}
		
		if(rps_erro != null) {
			alert(rps_erro);
		} else {
		}
	} catch(e) {
		//alert('rpsJS.rpsLeGeralCB: ' + e.toString());
	}
}

function cpoSet(nomeobj,valor) {
	try {
		if((!nomeobj) || (nomeobj==null) || (nomeobj.length<1)) {
			return;
		}
		var obj = $(nomeobj);
		if((!obj) || (obj==null)) {
			return;
		}
		var tipo = (new String(obj.type)).toString();
		tipo = tipo.toLowerCase();
		if(obj.attributes.lstarquivos) {
			var varqs = (new String(valor)).split(',');
			for(var ind=0; ind<varqs.length; ind++) {
				var y=document.createElement('option');
				y.text=varqs[ind];
				if(netscape) {
					obj.add(y,null);
				} else {
					obj.add(y);
				}
			}
			//return arqs;
		} else {
			switch(tipo) {
				case 'text':
					obj.value = valor;
					break;
				case 'textarea':
					obj.value = valor;
					break;
				case 'checkbox':
					obj.checked = (valor.toLowerCase()=='s');
					break;
				case 'select-one':
					obj.value = valor;
					break;
				default:
					obj.value = valor;
			}
		}
	} catch(e) {
		//alert('rpsJS.cpoSet: ' + e.toString());
	}
}

function cpoGet(nomeobj) {
	try {
		if((!nomeobj) || (nomeobj==null) || (nomeobj.length<1)) {
			return null;
		}
		var obj = $(nomeobj);
		if((!obj) || (obj==null)) {
			return null;
		}
		var tipo = (new String(obj.type)).toString();
		tipo = tipo.toLocaleLowerCase();
		if(obj.attributes.lstarquivos) {
			var arqs = new String();
			for(var ind=0; ind<obj.options.length; ind++) {
				if(arqs.length>0) {
					arqs += ",";
				}
				arqs += obj.options[ind].value;
			}
		} else {
			switch(tipo) {
				case 'text':
					return obj.value;
				
				case 'textarea':
					return obj.value;
				
				case 'checkbox': 
					return (obj.checked) ? 's' : 'n';
				
				case 'select-one':
					return obj.value;
					
				default:
					return obj.value;
			}
		}
	} catch(e) {
		//alert('rpsJS.cpoGet: ' + e.toString());
	}
}

// rps.js - fim ------------------------------------------------------------
function rpsCmd(cmd) {
	try {
		msgAjax(msgAguarde);
		ajaxExec(window.top.cmdSite, cmd, rpsCmdCB);
	} catch(e) {
		//alert('rpsJS.rpsLeGeral: ' + e.toString());
	}
}

function rpsCmdCB(oHTTPRequest) {
	try {
		msgLimpa();
		if(!oHTTPRequest) {
			return;
		}
		$('rpsFrameMiolo').innerHTML = oHTTPRequest;
		var cmd = oHTTPRequest.toString().split("--")[1];
		if(cmd && (cmd!='')) {
			rpsLeGeral(cmd);
		}
	} catch(e) {
		//alert('rpsJS.rpsLeGeralCB: ' + e.toString());
	}
}

function leDados(cmd) {
	alert('rpsJS.leDados: ' + cmd);
}

function escapeHTML(str) {
	try {
	return escape(str);
		var div = document.createElement('div');
		var text = document.createTextNode(str);
		div.appendChild(text);
		return div.innerHTML;
	} catch(e) {
	}
}

function salvaDadosContatos() {
	try {
		var cmd='op=dados-contatos:salva&buffer=';
		for(var i=1;i<=4;i++) {
			if(i>1) {
				cmd += '|';
			}
			cmd += escapeHTML(cpoGet('rps_DadosContatoNome' + i) + '^');
			cmd += escapeHTML(cpoGet('rps_DadosContatoRelacao' + i) + '^');
			cmd += escapeHTML(cpoGet('rps_DadosContatoEndereco' + i) + '^');
			cmd += escapeHTML(cpoGet('rps_DadosContatoTelefone' + i) + '^');
			cmd += escapeHTML(cpoGet('rps_DadosContatoEmail' + i));
		}
		//alert('rpsJS.salvaDadosContatos: \n' + cmd);
		//rpsCmdSalva('dados-contatos',cmd);
		rpsCmd(cmd);
	} catch(e) {
		//alert('rpsJS.salvaDadosContatos: ' + e.toString());
	}
}

function rpsCmdSalva(grupo,buffer) {
	try {
		msgAjax(msgSalvando);
		ajaxExec(window.top.cmdSite, 'op=' + grupo + ":salva&" + buffer, rpsCmdSalvaCB);
	} catch(e){
		//alert('rpsJS.rpsCmdSalva: ' + e.toString());
	}
}

function rpsCmdSalvaCB(oHTTPRequest) {
	try {
		if(!oHTTPRequest) {
			return;
		}
		var res = oHTTPRequest.toString();
		if(res && (res!='')) {
			if(res=='ok') {
				msgNormal(msgOperacaoBemSucedida);
			} else {
				alert(res);
				//msgErro('rpsJS.rpsCmdSalvaCB: ' + res);
			}
		}
	} catch(e) {
		msgErro('rpsJS.rpsCmdSalvaCB: ' + e.toString());
	}
}

function salvaDadosMedFam() {
	try {
		var cmd='op=dados-medicofamilia:salva&buffer=';
		for(var i=1;i<=4;i++) {
			if(i>1) {
				cmd += '|';
			}
			cmd += escapeHTML(cpoGet('rps_DadosMedFamNome' + i) + '^');
			cmd += escapeHTML(cpoGet('rps_DadosMedFamCRM' + i) + '^');
			cmd += escapeHTML(cpoGet('rps_DadosMedFamEndereco' + i) + '^');
			cmd += escapeHTML(cpoGet('rps_DadosMedFamTelefone' + i) + '^');
			cmd += escapeHTML(cpoGet('rps_DadosMedFamEmail' + i));
		}
		//alert('rpsJS.salvaDadosMedFam: \n' + cmd);
		//rpsCmdSalva('dados-medicofamilia',cmd);
		rpsCmd(cmd);
	} catch(e) {
		alert('rpsJS.salvaDadosMedFam: ' + e.toString());
	}
}

function salvaDadosSeguros() {
	try {
		var cmd='op=dados-seguros:salva&buffer=';
		for(var i=1;i<=3;i++) {
			if(i>1) cmd += '|';
			cmd += escapeHTML(cpoGet('rps_DadosSeguroTipo' + i) + '^');
			cmd += escapeHTML(cpoGet('rps_DadosSeguroSeguradora' + i) + '^');
			cmd += escapeHTML(cpoGet('rps_DadosSeguroDtVal' + i) + '^');
			cmd += escapeHTML(cpoGet('rps_DadosSeguroPlano' + i) + '^');
			cmd += escapeHTML(cpoGet('rps_DadosSeguroCobertura' + i) + '^');
			cmd += escapeHTML(cpoGet('rps_DadosSeguroDtPgto' + i));
		}
		//alert('rpsJS.salvaDadosMedFam: \n' + cmd);
		//rpsCmdSalva('dados-seguros',cmd);
		rpsCmd(cmd);
	} catch(e) {
		alert('rpsJS.salvaDadosSeguros: ' + e.toString());
	}
}

function apagaMedicamento() {
	try {
		var cmd='op=medmt:apaga';
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		rpsCmd(cmd);
	} catch(e) {
		alert('rpsJS.apagaDoenca: ' + e.toString());
	}
}
function salvaMedicamento() {
	try {
		//var cmd='';
		var cmd='op=medmt:salva';
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		cmd += '&nome=' + escapeHTML(cpoGet('rps_MedmtNome'));
		cmd += '&dtini=' + escapeHTML(cpoGet('rps_MedmtDtIni'));
		cmd += '&dtfim=' + escapeHTML(cpoGet('rps_MedmtDtFim'));
		cmd += '&usoc=' + escapeHTML(cpoGet('rps_MedmtUsoCont'));
		cmd += '&auto=' + escapeHTML(cpoGet('rps_MedmtAutomed'));
		cmd += '&obs=' + escapeHTML(cpoGet('rps_MedmtObs'));
		
		//rpsCmdSalva('medmt-raiz',cmd);
		rpsCmd(cmd);
	} catch(e) {
		alert('rpsJS.salvaMedicamento: ' + e.toString());
	}
}

function salvaVacina() {
	try {
		//var cmd='';
		var cmd='op=vacina:salva';
		
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		cmd += '&data=' + escapeHTML(cpoGet('rps_VacinaData'));
		cmd += '&nome=' + escapeHTML(cpoGet('rps_VacinaNome'));
		cmd += '&obs=' + escapeHTML(cpoGet('rps_VacinaObs'));
		rpsCmd(cmd);
	} catch(e) {
		alert('rpsJS.salvaVacina: ' + e.toString());
	}
}

function apagaDoenca() {
	try {
		var cmd='op=doenca:apaga';
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		rpsCmd(cmd);
	} catch(e) {
		alert('rpsJS.apagaDoenca: ' + e.toString());
	}
}

function salvaDoenca() {
	try {
		var cmd='op=doenca:salva';
		
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		cmd += '&data=' + escapeHTML(cpoGet('rps_DoencaData'));
		cmd += '&nome=' + escapeHTML(cpoGet('rps_DoencaNome'));
		cmd += '&obs=' + escapeHTML(cpoGet('rps_DoencaObs'));
		rpsCmd(cmd);
	} catch(e) {
		alert('rpsJS.salvaDoenca: ' + e.toString());
	}
}

function apagaVacina() {
	try {
		var cmd='op=vacina:apaga';
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		rpsCmd(cmd);
	} catch(e) {
		alert('rpsJS.apagaVacina: ' + e.toString());
	}
}

function salvaInternacao() {
	try {
		//var cmd='';
		var cmd='op=inter:salva';
		
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		cmd += '&dtini=' + escapeHTML(cpoGet('rps_InterDtIni'));
		cmd += '&dtfim=' + escapeHTML(cpoGet('rps_InterDtFim'));
		cmd += '&inst=' + escapeHTML(cpoGet('rps_InterInstituicao'));
		cmd += '&pais=' + escapeHTML(cpoGet('rps_InterPais'));
		cmd += '&estado=' + escapeHTML(cpoGet('rps_InterEstado'));
		cmd += '&motivo=' + escapeHTML(cpoGet('rps_InterMotivo'));
		cmd += '&crm=' + escapeHTML(cpoGet('rps_InterMedRespCRM'));
		cmd += '&nome=' + escapeHTML(cpoGet('rps_InterMedRespNome'));
		cmd += '&obs=' + escapeHTML(cpoGet('rps_InterObs'));
		//rpsCmdSalva('cirurg',cmd);
		rpsCmd(cmd);
	} catch(e) {
		alert('rpsJS.salvaInternacao: ' + e.toString());
	}
}

function apagaInternacao() {
	try {
		var cmd='op=inter:apaga';
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		rpsCmd(cmd);
		//rpsCmd('op=cirurg-raiz');
	} catch(e) {
		alert('rpsJS.apagaInternacao: ' + e.toString());
	}
}

function salvaCicloMenstrual() {
	try {
		//var cmd='';
		var cmd='op=cmens:salva';
		
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		cmd += '&dtini=' + escapeHTML(cpoGet('rps_CMensDtIni'));
		cmd += '&dtfim=' + escapeHTML(cpoGet('rps_CMensDtFim'));
		cmd += '&obs=' + escapeHTML(cpoGet('rps_CMensObs'));
		//rpsCmdSalva('cirurg',cmd);
		rpsCmd(cmd);
	} catch(e) {
		alert('rpsJS.salvaInternacao: ' + e.toString());
	}
}

function apagaCicloMenstrual() {
	try {
		var cmd='op=cmens:apaga';
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		rpsCmd(cmd);
		//rpsCmd('op=cirurg-raiz');
	} catch(e) {
		alert('rpsJS.apagaInternacao: ' + e.toString());
	}
}

function salvaCirurgia() {
	try {
		//var cmd='';
		var cmd='op=cirurg:salva';
		
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		cmd += '&proc=' + escapeHTML(cpoGet('rps_CirurgProc'));
		cmd += '&data=' + escapeHTML(cpoGet('rps_CirurgData'));
		cmd += '&crm=' + escapeHTML(cpoGet('rps_CirurgMedRespCRM'));
		cmd += '&nome=' + escapeHTML(cpoGet('rps_CirurgMedRespNome'));
		cmd += '&obs=' + escapeHTML(cpoGet('rps_CirurgObs'));
		//rpsCmdSalva('cirurg',cmd);
		rpsCmd(cmd);
	} catch(e) {
		alert('rpsJS.salvaCirurgia: ' + e.toString());
	}
}

function apagaCirurgia() {
	try {
		var cmd='op=cirurg:apaga';
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		rpsCmd(cmd);
		//rpsCmd('op=cirurg-raiz');
	} catch(e) {
		alert('rpsJS.apagaCirurgia: ' + e.toString());
	}
}

function salvaAlergia() {
	try {
		//var cmd='';
		var cmd='op=alerg:salva';
		
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		cmd += '&desc=' + escapeHTML(cpoGet('rps_AlergDescr'));
		cmd += '&dtini=' + escapeHTML(cpoGet('rps_AlergDtIni'));
		cmd += '&dtfim=' + escapeHTML(cpoGet('rps_AlergDtFim'));
		cmd += '&obs=' + escapeHTML(cpoGet('rps_AlergObs'));
		//rpsCmdSalva('cirurg',cmd);
		rpsCmd(cmd);
	} catch(e) {
		alert('rpsJS.salvaCirurgia: ' + e.toString());
	}
}

function salvaConsideracao() {
	try {
		//var cmd='';
		var cmd='op=consid:salva';
		
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		cmd += '&ass=' + escapeHTML(cpoGet('rps_ConsAssunto'));
		cmd += '&obs=' + escapeHTML(cpoGet('rps_ConsObs'));
		rpsCmd(cmd);
	} catch(e) {
		alert('rpsJS.salvaCirurgia: ' + e.toString());
	}
}

function apagaAlergia() {
	try {
		var cmd='op=alerg:apaga';
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		rpsCmd(cmd);
		//rpsCmd('op=cirurg-raiz');
	} catch(e) {
		alert('rpsJS.apagaCirurgia: ' + e.toString());
	}
}

function apagaConsideracao() {
	try {
		var cmd='op=consid:apaga';
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		rpsCmd(cmd);
	} catch(e) {
		alert('rpsJS.apagaConsideracao: ' + e.toString());
	}
}

function salvaLaudo() {
	try {
		//var cmd='';
		var cmd='op=laudo:salva';
		
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		cmd += '&data=' + escapeHTML(cpoGet('rps_LaudoData'));
		cmd += '&tit=' + escapeHTML(cpoGet('rps_LaudoTitulo'));
		cmd += '&obs=' + escapeHTML(cpoGet('rps_LaudoObs'));
		rpsCmd(cmd);
	} catch(e) {
		alert('rpsJS.salvaLaudo: ' + e.toString());
	}
}

function apagaLaudo() {
	try {
		var cmd='op=laudo:apaga';
		cmd += '&numseq=' + escapeHTML(cpoGet('numseq'));
		rpsCmd(cmd);
		//rpsCmd('op=cirurg-raiz');
	} catch(e) {
		alert('rpsJS.apagaLaudo: ' + e.toString());
	}
}

function arqsRelAtualiza(area, seq, elemId) {
	try {
		var cmd = new String();
		cmd = 'op=lista-arq-rel&area=' + area + '&seq=' + seq + '&elem=' + elemId;
		var oHTTPRequest = createXMLHTTP(); 
		oHTTPRequest.open("post", window.top.cmdSite, false);
		oHTTPRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		oHTTPRequest.onreadystatechange=function(){
			try {
				if (oHTTPRequest.readyState==4){
					var resp = new String(oHTTPRequest.responseText);
					var id = resp.split('\\')[0];
					var div = resp.split('\\')[1];
					window.top.document.getElementById(id).innerHTML = div;
					}
			} catch(e) {
				alert('rpsJS.arqsRelAtualiza(CB): '+e.toString());
			}
		}
		oHTTPRequest.send(cmd);
	} catch(e){
		alert('rpsJS.arqsRelAtualiza: ' + e.toString());
	}
}

function rpsObtemArqs(area,seq,idElem) {
	try {
		alert('rpsJS.rpsObtemArqs: area [' + area + '], seq [' + seq + '], idElem [' + idElem + ']');
		if(!area || area=='') {
			msgErro('rpsJS.obtemArqs(1)');
			return;
		}
		if(!seq || seq=='') {
			msgErro('rpsJS.obtemArqs(2)');
			return;
		}
		if(!idElem || idElem=='') {
			msgErro('rpsJS.obtemArqs(3)');
		}
		
		
		xmlHttp=createXMLHTTP();
		if (xmlHttp==null)
			{
			alert ("Seu browser não suporta AJAX!");
			return;
			}
		if(!grupo) {
			alert('rpsJS.rpsLeGeral: Parametro [grupo] nulo');
			return;
		}
		if(grupo=='') {
			alert('rpsJS.rpsLeGeral: Parametro [grupo] vazio');
			return; 
		}
		ajaxExecXML(
			window.top.xmlSite,
			'lista-arqs&elem=' + idElem 
				+ '&seq=' + seq 
				+ '&area=' + area, 
			rpsObtemArqsCB
			);
	} catch(e) {
	}
}

function rpsObtemArqsCB(oHTTPRequest) {
	try {
		if(!oHTTPRequest) {
			return;
		}
		//msgLimpa();
		if (xmlHttp.readyState!=4)
			return;
		
		xmlRPS=xmlHttp.responseXML;
		limpa();
		var x;
		var y;
		var arqs = new String();
		var seq = new String();
		var elem = new String();
		
		x=xmlRPS.documentElement.childNodes;
		for(var ind=0;ind<x.length;ind++) {
			if(x[ind].nodeType==1) {
				if(x[ind].childNodes.length>0) {
					var nome = (new String(x[ind].nodeName)).toString();
					var valor = (new String(x[ind].childNodes[0].nodeValue)).toString();
					switch(nome) {
						case 'elem': elem = valor;
						case 'seq' : seq = valor;
						default: 
							if(arqs.length>0) {
								arqs += ',';
							}
							arqs += valor;
					}
					cpoSet(elem, arqs);
				}
			}
		}
		
		if(rps_erro != null) {
			alert(rps_erro);
		} else {
		}
		
	} catch(e) {
		alert('rpsJS.rpsObtemArqsCB: ' + e.toString());
	}
}

function delArqRel(area, seq, nome, elemId) {
	try {
		//alert('rpsJS.delArqRel: entrou');
		/*
		msgAjax(msgAguarde);
		ajaxExec(window.top.cmdSite, 'op=exclui-arq-rel&area=' + area + '&seq=' + seq + '&nome=' + nome, delArqsRelCB);
		*/
		
		var cmd = new String();
		cmd = 'op=exclui-arq-rel&area=' + area + '&seq=' + seq + '&nome=' + nome + '&elem=' + elemId;
		var oHTTPRequest = createXMLHTTP(); 
		oHTTPRequest.open("post", window.top.cmdSite, false);
		oHTTPRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		oHTTPRequest.onreadystatechange = function(){
			try {
				if (oHTTPRequest.readyState==4){
					//alert('rpsJS.delArqRel(onReadyStateChange): Entrou');
					arqsRelAtualiza(area,seq,elemId);
					}
			} catch(e) {
				alert('rpsJS.delArqRel(onReadyStateChange.1): '+e.toString());
			}
		}
		oHTTPRequest.send(cmd);
		
	} catch(e){
		alert('rpsJS.delArqRel(2): '+e.toString());
	}
}

function delArqsRelCB(oHTTPRequest) {
	try {
		if(!oHTTPRequest) return;
		alert(oHTTPRequest.toString());
		
	} catch(e) {
		alert('rpsJS.delArqsRelCB: '+e.toString());
	}
}

function mostraEsconde(seq) {
	try {
		if($('divDescricao' + seq).style.display=='block') {
			$('divDescricao' + seq).style.display = 'none';
			$('imgMostra' + seq).src = '../img/plus.gif';
		} else {
			$('divDescricao' + seq).style.display = 'block';
			$('imgMostra' + seq).src = '../img/minus.gif';
		}
	} catch(e) {
		alert('troca: ' + e.toString());
	}
}

/***************************************************************************
 * Arquivo: upload.js
 */
// uploadJS - Ini --------------------------------------------------------------
function delElem(obj) {
	try {obj.parentNode.removeChild(obj);} catch(e) {}
}

function incEvento(obj, evType, fn){
	try {
		if (obj.addEventListener) {
			obj.addEventListener(evType, fn, true);
		}
		
		if (obj.attachEvent) {
			obj.attachEvent("on"+evType, fn);
		}
	} catch(e) {
	}
}

function delEvento( obj, type, fn ) {
	try {
		if ( obj.detachEvent ) {
			obj.detachEvent( 'on'+type, fn );
		} else {
			obj.removeEventListener( type, fn, false ); }
	} catch(e) {
	}
} 

function incluiArqNaLista(cip,area,seq,form, url_action, id_elemento_retorno, html_exibe_carregando, html_erro_http, dir_dest, fnTermino) {
	try {
		upload(form, url_action, id_elemento_retorno, html_exibe_carregando, html_erro_http, dir_dest, fnTermino);
		LstArqsCriaLink(cip,area,seq);
	} catch(e) {
	}
}

function upload(form, url_action, id_elemento_retorno, html_exibe_carregando, html_erro_http, dir_dest, fnTermino){
	try {
		/******
		* upload - Submete um form para um iframe oculto e pega o resultado. Consequentemente pode
		*          ser usado pra fazer upload de arquivos de forma assíncrona.
		* Parametros:
		* form - o form a ser submetido ou seu ID
		* url_action - url pra onde deve ser submetido o form
		* id_elemento_retorno - id do elemento que irá receber a informação de retorno
		* html_exibe_carregando - Texto (ou imagem) que será exibido enquanto se carrega o upload
		* html_erro_http - texto (ou imagem) que será exibido se der erro HTTP.
		*******/
		
		//testando se passou o ID ou o objeto mesmo
		form = typeof(form)=="string"?$(form):form;

		var erro="";
		if(form==null || typeof(form)=="undefined"){ 
			//erro += "O form passado no 1o parâmetro não existe na página.\n";
			return;
		} else if(form.nodeName!="FORM"){ 
			erro += "O form passado no 1o parâmetro da função não é um form.\n";
		}
		
		if($(id_elemento_retorno)==null){ 
			erro += "O elemento passado no 3o parâmetro não existe na página.\n";
		}
		
		if(erro.length>0) {
			//alert("Erro ao chamar a função upload:\n" + erro);
			msgErro('uploadJS.upload: ' + erro);
			return;
		}

		// seta o cookie de diretorio destino.
		setCookie( 'sf-up-dest', dir_dest, 0, '/', '', '');
		//alert(dir_dest);
		
		//criando o iframe
		var iframe = document.createElement("iframe");
		iframe.setAttribute("id","frm-temp");
		iframe.setAttribute("name","frm-temp");
		iframe.setAttribute("width","0");
		iframe.setAttribute("height","0");
		iframe.setAttribute("border","0");
		iframe.setAttribute("style","width: 0; height: 0; border: none;");
		/* Não usei display:none pra esconder o iframe
		pois tem uma lenda que diz que o NS6 ignora
		iframes que tenham o display:none */

		//adicionando ao documento
		form.parentNode.appendChild(iframe);
		window.frames['frm-temp'].name="frm-temp"; //ie sucks

		//adicionando o evento ao carregar
		var carregou = function() { 
			delEvento( $('frm-temp'),"load", carregou);
			var cross = "javascript: ";
			cross += "window.parent.$('" + id_elemento_retorno + "').innerHTML = document.body.innerHTML; void(0);" + fnTermino + ";";

			$(id_elemento_retorno).innerHTML = html_erro_http;
			if(html_erro_http.length>0) {
				//alert('pegou');
			}
			$('frm-temp').src = cross;
			setTimeout(function(){ delElem($('frm-temp'))}, 250);
			//fnTermino();
		}
		incEvento( $('frm-temp'),"load", carregou)
		//incEvento( $('frm-temp'),"unload", fnTermino);

		//setando propriedades do form
		form.setAttribute("target","frm-temp");
		form.setAttribute("action",url_action);
		form.setAttribute("method","post");
		form.setAttribute("enctype","multipart/form-data");
		form.setAttribute("encoding","multipart/form-data");
		//submetendo
		form.submit();

		//se for pra exibir alguma imagem ou texto enquanto carrega
		if(html_exibe_carregando.length > 0){
			$(id_elemento_retorno ).innerHTML = html_exibe_carregando;
		}	
	} catch(e) {
		//alert('uploadJS.upload: ' + e.toString());
	}
	//fnTermino();
}
// uploadJS - Fim --------------------------------------------------------------
