var popParams = "toolbar=no, scrollbars=yes, status=yes, resizable=yes, location=no, menubar=yes";

function aviso(msg){
	if (msg != 'null' && msg != ''){
		alert(msg);
	}
}

function openPopup(url, name, p, position, w, h ) {
    //default options
    if (p==undefined) {
        p = popParams;
        if (position==undefined) {
            position = "center";
        }
        if (w==undefined) {
            w = "550";
        }
        if (h==undefined) {
            h = "310";
        }
        p += ',width=' + w + ',' + 'height=' + h ;
    }
    
    
    win = window.open(url, name, p)
    
    win.focus()
}

function doNew(page, codes, w, h){      
    n = nameWin(page);
    p = popParams + ',width=' + w + ',' + 'height=' + h ;
    page += '?metodo=carregar&'+codes;    
    openPopup(page, n, p);
}

function doDelete(f){
    if (confirm('Confirma exclusão?')) {
        f.metodo.value = 'excluir';
        f.submit();
    }
}

function doSelect(page, codes, w, h){
    n = nameWin(page);
    p = popParams + ',width=' + w + ',' + 'height=' + h ;
    page += '?metodo=selecionar&'+codes;    
    openPopup(page, n, p);
}

function doConfirm(f){
	var metodo = f.metodo.value;
	if(metodo == 'carregar')
		f.metodo.value = 'incluir';
	else if(metodo == 'selecionar')
		f.metodo.value = 'alterar';	
		
	f.submit();
}

function nameWin(name) {
    x = name.indexOf('.')
    if (x > 0) {
        name = name.substring(0, x)
    }
    return name
}

function closeWin(){
    window.opener.document.forms[0].submit();
    window.close();
}

/**********ALTERAR PERFIL X PRIVILEGIO**/
function setPrivilegio(origem, destino){
		
    var novo = document.createElement("option");	
	novo.setAttribute("id", "opcoes");	
	novo.value = origem.options[origem.selectedIndex].value;	
	novo.text  = origem.options[origem.selectedIndex].text;		
	destino.options.add(novo);	
    
    origem.options[origem.selectedIndex] = null;
         
}

function doConfirmPerfilPrivilegio(origem, destino){
		
    destino.value = '';
    for(var i=0; i < origem.options.length;) {
    	var option = origem.options.item(i);
        destino.value += option.value;
        if (i + 1 < origem.options.length)
        	destino.value += ',';
           	i++;
    }
    
    doConfirm(document.forms[0]);
         
}

/*************CONSULTA TN**************/
function doInsertTN(indice) {

	indice = Number(indice) + 1;
	var tbl = document.getElementById('tblTns');
	var lastRow = tbl.rows.length;
	var iteration = lastRow;

	if (lastRow > 20){
		alert('O limite máximo de TN por consulta foi atingido. Não é possível adicionar mais TN para consulta.');
	} else {
		
		//duplica a linha
		var row = tbl.insertRow(-1);	
		nRow = indice + 1;
	
			//imagem delete
			var tag = row.insertCell(-1); 
			tag.innerHTML = '<tr><td><div align="center" class="texto">TN:<input type="text" name="tns" maxlength="12" size="12" value="" class="form"></div></td></tr>';
					
			//add to control var 
			document.forms[1].indice.value = indice;
		}
}

/**************PARAMETROS - ALTERAR SENHA**********/
function alterarSenha(){
	if(!confirm('Deseja realmente que os usuários mudem a senha do próximo login?'))
		return;
	
	var idPerfil = document.forms[0].idPerfil.value;
	 
	dados = 'metodo=alterarSenha&idPerfil='+idPerfil;
	envia_ajax("POST", "cadastrarParametros.do", false, dados, showAlterarSenha);
}

function showAlterarSenha(httpRequest){
	alert('Usuários atualizados com sucesso.');   
} 

/*************CADASTRO DE DOMINIO*************/
function colapseSpid(){
	
	m = document.getElementById('dvSpid');

	if(document.dominioForm.idPerfil.value == '3'){		
		m.style.display = 'inline';
	} else {		
		m.style.display = 'none';
	}
	
}

/*************CADASTRO DE USUARIO***************/
function showDadosComplementares(idPerfil){	
	var f = document.usuarioForm;
	
	dominio = f.dominio.value;
	
	if (idPerfil=='4') {
		m = document.getElementById('dvOrgao');
		m.style.display = 'inline';
		m = document.getElementById('dvPrestadora');
		m.style.display = 'none';
		m = document.getElementById('dvDados');
		m.style.display = 'inline';
		f.descricaoPerfil.value = 'Orgão Público';
	}	else if(idPerfil=='3') {
		m = document.getElementById('dvOrgao');
		m.style.display = 'none';
		m = document.getElementById('dvPrestadora');
		m.style.display = 'inline';
		m = document.getElementById('dvDados');
		m.style.display = 'inline';
		f.descricaoPerfil.value = 'Prestadoras';
	}	else if(idPerfil=='2') {
		m = document.getElementById('dvOrgao');
		m.style.display = 'none';
		m = document.getElementById('dvPrestadora');
		m.style.display = 'none';
		m = document.getElementById('dvDados');
		m.style.display = 'inline';
		f.descricaoPerfil.value = 'Operadores';
	} else if (idPerfil=='0') {
		m = document.getElementById('dvOrgao');
		m.style.display = 'none';
		m = document.getElementById('dvPrestadora');
		m.style.display = 'none';
		m = document.getElementById('dvDados');
		m.style.display = 'none';
		f.descricaoPerfil.value = '';
	}
	
	carregarDominio(idPerfil);
		
	f.dominio.value = dominio;
}

function carregarDominio(idPerfil){
	dados = 'metodo=carregarDominio&idPerfil='+idPerfil;
	envia_ajax("POST", "cadastrarUsuarioSemLogin.do", false, dados, showDominio);
}

function showDominio(httpRequest){        
    var dataArray  = httpRequest.responseXML.getElementsByTagName("item");

	//remove dados
    for(i=(document.usuarioForm.dominio.length-1); i>=0; i--){
        document.usuarioForm.dominio.options[i] = null;
    }

	  //total de elementos contidos na tag cidade
	  if(dataArray.length > 0) {
	     //percorre o arquivo XML paara extrair os dados
         for(var i = 0 ; i < dataArray.length ; i++) {
            var item = dataArray[i];
			//contéudo dos campos no arquivo XML
			var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
			var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;

			//idOpcao.innerHTML = "--Selecione--";
						
			//cria um novo option dinamicamente  
			var novo = document.createElement("option");
			    //atribui um ID a esse elemento
			    novo.setAttribute("id", "opcoes");
				//atribui um valor
			    novo.value = codigo;
				//atribui um texto
			    novo.text  = descricao;
				//finalmente adiciona o novo elemento
				objItem = document.usuarioForm.dominio;
				objItem.options.add(novo);
		 }
	  } else {
	    //sem dados
	  }	    
}	

/********* MASCARA**********/
function isExplorer() {
	if (document.all)
		return true;
	return false;
}

function getElementFromDocument(document, name) {
	var obj;	
	if (document.all) {	
		obj = document.all[name];
	}
	if (! obj && document.getElementByName) {	
		obj = document.getElementByName(name);
	} 
	if (! obj && document.getElementById) {	
		obj = document.getElementById(name);
	} 	
			
	return obj;
}

function getElement(name) {
    
	var obj=getElementFromDocument(document, name);
	if (! obj) {
		try {
			obj = eval("document.frm."+name);
		} catch(e) {
		}
	}
	return obj;
}

function addMaskLR(element) {
	if (! element.mask)
		return;
	var value = new String(element.value);
	var text = "";
	var psm = 0;
	var psv = 0;
	var cc;
	while (psm < element.mask.length && psv < value.length) {
		cc = element.mask.charAt(psm);
		if (cc == '#') {
			text += value.charAt(psv);
			psv++;
		} else {
			text += cc;
		}
		psm++;
	}
	if (psv < value.length)
		text += value.substring(psv);
	element.value = text;
}

function addMaskRL(element) {
	if (! element.mask)
		return;
	var value = new String(element.value);
	var text = "";
	var psm = element.mask.length-1;
	var psv = value.length-1;
	var cc;
	while (psm >= 0 && psv >= 0) {
		cc = element.mask.charAt(psm);
		if (cc == '#') {
			text = value.charAt(psv) + text;
			psv--;
		} else {
			if (value.charAt(psv) == '-')
				break;
			text = cc + text;
		}
		psm--;
	}
	if (psv >= 0)
		text = value.substring(0, psv+1) + text;
	element.value = text;
}

function removeMask(element) {
	if (! element.mask)
		return;
	var value = new String(element.value);
	var sign = /^\s*[-]/.test(value);
	element.value = (sign ? "-" : "")+value.replace(/[^0-9]/g,"").replace(/^\s*/,"").replace(/\s*$/,"");
}

function ajustMask() {
	var element = window.fmtElements.pop();
	removeMask(element);
	if (element.style.textAlign == 'right') {
		addMaskRL(element);
	} else {
		addMaskLR(element);
	}
}

function setMask(element, mask) {
	if (! element || ! mask)
		return;
                     			
		if (element) {
			if (! window.fmtElements)
				window.fmtElements = new Array();
			element.mask = mask;
			element.onkeypress=function(event) { 
				if (processKeyNum(this, event)) { 
					window.fmtElements.push(this); 
					if (isExplorer())
						ajustMask();
					else
						setTimeout("ajustMask()",10); 
				} 
			};
			if (isExplorer()) {
				element.onkeyup=function(event) { 
					window.fmtElements.push(this); 
					if (isExplorer())
						ajustMask();
					else
						setTimeout("ajustMask()",10); 
				};
			}
		}
	
}

function processKeyNum(element, event) {
	if (isExplorer()) {
		event = window.event;
		if (event.keyCode < 32 || (event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode == 45))
			return true;
		event.returnValue = 0;
		return false;
	}
	if (! event)
		return true;		
	if (event.keyCode && event.keyCode != 0)
		return true;
	if ((event.charCode >= 48 && event.charCode <= 57) || (event.charCode == 45))
		return true;
	event.preventDefault();
	return false;
}

function setMascaraCPF(name) {
	setMask(name,"###.###.###-##");
}

function setMascaraTN(name) {
	setMask(name,"##-####-####");
}

function setMascaraData(name) {
	setMask(name,"##/##/####");
}


/**********AJAX**********/
function envia_ajax(metodo, url, usaXml, dados, callback) {
    
    var httpRequest;
    
    // Mozilla, Safari, Opera, ...
    if (window.XMLHttpRequest) {
        httpRequest = new XMLHttpRequest();
        if (usaXml && httpRequest.overrideMimeType) {
            httpRequest.overrideMimeType('text/xml');
        }
    } 
    // IE
    else if (window.ActiveXObject) {
        try {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e) {
            try {
                httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e) {}
        }
    }
    
    if (!httpRequest) {
        alert('Erro fatal :( Não consigo criar um objeto XMLHttpRequest');
        return false;
    }
    
    httpRequest.open(metodo, url, true);
    
    if (callback != null) {
        httpRequest.onreadystatechange = function() {
            retorna_ajax(metodo, url, httpRequest, callback);
        };
    }
    
    if (metodo == 'POST' && dados != null) {
        httpRequest.setRequestHeader('Content-Type',
            'application/x-www-form-urlencoded');
    }
    
    httpRequest.send(dados);
}

function retorna_ajax (metodo, url, httpRequest, callback) {
    if (httpRequest.readyState == 4) {
        if (httpRequest.status == 200) {
            if (callback != null) {                
                callback(httpRequest);
            }
        }
        else {
            alert('Erro de AJAX: ' + httpRequest.status + '\n'
                + metodo + ': ' + url);
        }
    }
}

/*******TUTORIAL CONSULTA********/

function colapse(id){
	m = document.getElementById(id);
	if (m.style.display=='none') {
		m.style.display = 'inline';
	}	else {
		m.style.display = 'none';
	}
}

/***Logof***/
function logoff(){
	//window.location.href='logoff.do?metodo=logoff';
	dados = 'metodo=logoff';
	envia_ajax("POST", "logoff.do", false, dados, showLogoff);
}

function showLogoff(httpRequest){        
    
}