// JavaScript Document
/* Create a new XMLHttpRequest object to talk to the Web server */

function createRequest() {
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = false;
      }
    }
  }

  if (!request)
    alert("Error initializing XMLHttpRequest!");
  else
  	return request;
}

function doBlank(){
	return true;	
}

/* USE CASE Functions */
function postNote(){
	ajaxReq = createRequest();
	if (ajaxReq != undefined){
		
		//Esconder form e mostrar loading
		Hide('hp_notesFormDiv');
		Show('hp_notesStatusDiv');
		
		ajaxReq.open("POST", "ajaxadm.php?idpaginas=90", true);
        ajaxReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        ajaxReq.onreadystatechange = noteResult;
		var param = 'noteTxt=' + document.getElementById('noteTxt').value;
		param += '&noteObj=' + document.getElementById('noteObj').value;
		param += '&noteObjId=' + document.getElementById('noteObjId').value;
		
		ajaxReq.send(param);
		
		//Limpar form
		document.getElementById('noteTxt').value = '';
	}
}

function noteResult(){
	if (ajaxReq.readyState == 4){
		
		//alert(ajaxReq.responseText); //DEBUG
		
		//Pegar resposta do servidor
		var xmlRes = ajaxReq.responseXML;
		var erro = xmlRes.getElementsByTagName('erro');
		
		if (erro[0].firstChild){
			var errov = erro[0].firstChild.nodeValue;
		}

		if (errov == '1'){
			alert("Erro ao cadastrar anotação");
			return false;
		}else{
			//Pegar texto da nova anotação
			var itemNode = xmlRes.getElementsByTagName('item');
			
			
			if (itemNode[0].firstChild){
				var newNote = itemNode[0].firstChild.nodeValue;
			
				//Pegar DIV
				var noteDiv = document.getElementById('hp_notesDiv');
					
				if (noteDiv.innerText.substr(0,7) == 'nenhuma'){
					noteDiv.innerHTML = unescape(newNote);
				}else{
					noteDiv.innerHTML += unescape(newNote);
				}
			
			}else{
				alert('Erro ao adicionar anotação')	
			}
			

		}
		
		//Re-estabelecer form
		Show('hp_notesFormDiv');
		Hide('hp_notesStatusDiv');
	
	}
}


function postFB(){
	ajaxReq = createRequest();
	if (ajaxReq != undefined){
		
		//Esconder form e mostrar loading
		Hide('hp_fbFormDiv');
		Show('hp_fbStatusDiv');
		
		ajaxReq.open("POST", "ajaxadm.php?idpaginas=91", true);
        ajaxReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        ajaxReq.onreadystatechange = fbResult;
		var param = 'fbPergunta=' + document.getElementById('fbPergunta').value;
		param += '&fbChamado=' + document.getElementById('fbChamado').value;
		
		if (document.getElementById('fbAtendimento')){
			param += '&fbAtendimento=' + document.getElementById('fbAtendimento').value;
		}
		if (document.getElementById('fbAtendimentoTmp')){
			param += '&fbAtendimentoTmp=' + document.getElementById('fbAtendimentoTmp').value;
		}
		
		ajaxReq.send(param);
		
		//Limpar form
		document.getElementById('fbPergunta').value = '';
	}
}

function fbResult(){
	if (ajaxReq.readyState == 4){
		
		//alert(ajaxReq.responseText); //DEBUG
		
		//Pegar resposta do servidor
		var xmlRes = ajaxReq.responseXML;
		var erro = xmlRes.getElementsByTagName('erro');
		
		if (erro[0].firstChild){
			var errov = erro[0].firstChild.nodeValue;
		}

		if (errov == '1'){
			alert("Erro ao cadastrar feedback");
			return false;
		}else{
			//Pegar texto da nova anotação
			var itemNode = xmlRes.getElementsByTagName('item');
			
			
			if (itemNode[0].firstChild){
				
				var litem = itemNode[0].firstChild.nodeValue;
				
				//Adicionar link na lista
				var linksDiv = document.getElementById('hp_fbListDiv'); 
				
				//Pegar primeiro fliho
				var first = linksDiv.firstChild;
				
				//Verificar se é UL ou não
				if (first.nodeName != 'UL'){ //Não tem UL, criar
					linksDiv.innerHTML = '';
					var ul = document.createElement('ul');
					linksDiv.appendChild(ul);
				}else{
					var ul = first;
				}
				//Adicionar LI
				var li = document.createElement('li');
				li.innerHTML = unescape(litem);
				
				ul.appendChild(li);		
				
				
			}else{
				alert('Erro ao adicionar feedback.')	
			}
		}
		
		//Re-estabelecer form
		Show('hp_fbFormDiv');
		Hide('hp_fbStatusDiv');
	
	}
}

function sendAction(){
	
	//Validar informações
	if (document.getElementById('softwares_idsoftwares').selectedIndex == 0 || document.getElementById('acttipo').selectedIndex == 0){
		alert('Pro favor escolha um Software e um tipo de ação para continuar');
		return false;
	}
	
	var params 	 = 'softwares_idsoftwares='+document.getElementById('softwares_idsoftwares').value;
	params 		+= '&vsoftware='+document.getElementById('softwares_idsoftwares').options[document.getElementById('softwares_idsoftwares').selectedIndex].text;
	params 		+= '&acttipo='+document.getElementById('acttipo').value;
	params 		+= '&vacttipo='+document.getElementById('acttipo').options[document.getElementById('acttipo').selectedIndex].text;
	
	params 		+= '&obs='+document.getElementById('aobs').value;
	params 		+= '&notes='+document.getElementById('anotes').value;
	
	params 		+= '&atendimentoTmpId='+document.getElementById('atendimentoTmpId').value;
	params 		+= '&clientes_idclientes='+document.getElementById('clientes_idclientes').value;
	
	//Resetar form
	document.getElementById('softwares_idsoftwares').selectedIndex = 0;
	document.getElementById('acttipo').selectedIndex = 0;
	document.getElementById('aobs').value = '';
	document.getElementById('anotes').value = '';
	
	ajaxSendAdm(params,'84','hp_atActList','hp_atActStatus','hp_atActForm','LI');
}

function getKbaseList(string){
	//alert(string);
	ajaxReq = createRequest();
	if (ajaxReq != undefined){
		
		ajaxReq.open("POST", "ajaxadm.php?idpaginas=99", true);
        ajaxReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        ajaxReq.onreadystatechange = getKbaseReturn;
		
		var params = "string="+string;
		
		ajaxReq.send(params);
	}	
}

function getKbaseReturn(){
	if (ajaxReq.readyState == 4){
		//alert(ajaxReq.responseText); //DEBUG
		
		//Pegar resposta do servidor
		var xmlRes = ajaxReq.responseXML;
		var erro = xmlRes.getElementsByTagName('erro');
		
		if (erro[0].firstChild){
			var errov = erro[0].firstChild.nodeValue;
		}

		if (errov == '1'){
			alert("Erro ao executar operação.");
			return false;
		}else{
			
			var itemNodes = xmlRes.getElementsByTagName('item');
			var cntNodes = itemNodes.length;
			
			var kbDiv = document.getElementById('kb_infoDIV');
					
			kbDiv.innerHTML = '';
			
			if (cntNodes > 0){
				var list = document.createElement('ul');
				kbDiv.appendChild(list);
				
				for (i=0; i<cntNodes; i++){
					
					var id = itemNodes[i].getAttribute('id');
					var perg = unescape(itemNodes[i].getAttribute('pergunta'));
					var li = document.createElement('li');
					var a = document.createElement('a');
					a.href = '#';
					a.id = id;
					a.onclick = function (){
						openKbaseView(this.id);
					}
					a.innerHTML = perg;
					
					li.appendChild(a);
					list.appendChild(li);	
	
				}
			}else{
				kbDiv.innerHTML = 'nenhuma pergunta encontrada.';
			}
		}
	}
}

function nlFilterFrom(){
	
	var ftipo = document.getElementById('f_usrtipo');
	var fnome = document.getElementById('f_usrnome');
	
	var params = '';
	if (ftipo.selectedIndex != 0) params += '&f_usrtipo='+ftipo.options[ftipo.selectedIndex].value;
	if (fnome.value != '' && fnome.value != 'Digite o nome') params += '&f_usrnome='+fnome.value;
	
	ajaxSendAdm(params,'109','fromSelect','','','addSelect');
}

function nlInitSend(idnletter){
	
	//Mostrar, ou manter monstrando DIV de a follow
	Show('nl_working');
	//Sumir ou conitnuar sumind com Botao
	Hide('nl_initDiv');
	
	var doneFlag = document.getElementById('doneFlag').value;
	
	//var doneFlag = window.prompt("fala ae");
	
	if (doneFlag != 0){ //Terminou o envio
		//Esconde aviso
		Hide('nl_anim');
		//Esconde Animação
		Hide('nl_warnDiv');
	}else{
		Show('nl_warnDiv');
		var params = 'idnletter='+idnletter;
		ajaxSendAdm(params,'108','nl_followInfo','','','innerHTML','nlInitSend('+idnletter+');');
	}
}
/***********************************************************************************
*
* Funções da administração de Contatos no Cliente
*
***********************************************************************************/
function cliContactSend(){
	
	var params = 'usrtipo=cli';
	params    += '&ajaxReturn=1';
	
	//Definir e verificar parametros
	var usrnome = document.getElementById('usrnome').value;
	if (usrnome.length < 0){
		alert('Dado incompleto: nome do contato');
		return false;
	}else{
		params += '&usrnome='+usrnome;
	}
	
	var usremail = document.getElementById('usremail').value;
	if (usremail.length < 0 || !isEmail(usremail)){
		alert('Dado incompleto: email do contato');
		return false;
	}else{
		params += '&usremail='+usremail;
	}
	
	params += '&usrcargo='+document.getElementById('usrcargo').value;
	params += '&usrtelefone='+document.getElementById('usrtelefone').value;
	params += '&clientes_idclientes='+document.getElementById('idclientes').value;
	params += '&tmpid='+document.getElementById('tmpid').value;
	params += '&idusers='+document.getElementById('idusers').value;
	
	if (typeof cliContactFormTarget == 'undefined')
		cliContactFormTarget = '125';
	
	ajaxSendAdm(params,cliContactFormTarget,'cli_contactList','cli_contactStatus','cli_contactForm','LI','');

	//Reset Form
	cliContactFormReset();
	
}

function cliContactEdit(idusers){
	
	if (typeof _users == 'undefined' || typeof _users[idusers] == 'undefined'){
	
		alert('Finalize a edição do cliente antes de alterar este contato');
		return false;
	
	}
	
	//Preencher form
	document.getElementById('usrnome').value = _users[idusers]['usrnome'];
	document.getElementById('usremail').value = _users[idusers]['usremail'];
	document.getElementById('usrcargo').value = _users[idusers]['usrcargo'];
	document.getElementById('usrtelefone').value = _users[idusers]['usrtelefone'];
	document.getElementById('idusers').value = _users[idusers]['idusers'];
	
	//alterar target do form
	cliContactFormTarget = '126';
	
	//alterar campo do form
	document.getElementById('cli_contactFormBtn').value = "Fazer Alteração";
	document.getElementById('cli_contactFormTitle').innerHTML = "Alterar Contato";
	
	//Mostrar Campo de cancelar
	document.getElementById('cli_contactFormCancelBtn').style.display = 'block';
	
	//Esconder LI
	document.getElementById('usrLi_'+idusers).style.display = 'none';
	
}

function cliContactEditCancel(){
	document.getElementById('usrLi_'+document.getElementById('idusers').value).style.display = 'block';	
	cliContactFormReset();
}

function cliContactFormReset(){
	document.getElementById('usrnome').value = '';
	document.getElementById('usremail').value = '';
	document.getElementById('usrcargo').value = '';
	document.getElementById('usrtelefone').value = '';
	
	cliContactFormTarget = '125';
	
	document.getElementById('cli_contactFormBtn').value = "Cadastrar Contato";
	document.getElementById('cli_contactFormTitle').innerHTML = "Adicionar Contato";
	document.getElementById('cli_contactFormCancelBtn').style.display = 'none';
}

function cliContactDel(idusers){
	
	if (!confDel()){ return false;}
	
	ajaxReq = createRequest();
	
	//Enviar Del Comand
	ajaxReq.open("GET", "ajaxadm.php?idpaginas=6&act=del&idusers="+idusers+"&ajaxReturn=1", true);
    ajaxReq.onreadystatechange = cliContactDelFinish;
		
	ajaxReq.send(null);
	
	removeli = document.getElementById('usrLi_'+idusers);
}

function cliContactDelFinish(){
	if (ajaxReq.readyState == 4){
	
		//alert(ajaxReq.responseText); //DEBUG
		
		//Pegar resposta do servidor
		
		var xmlRes = ajaxReq.responseXML;
		var erro = xmlRes.getElementsByTagName('erro');
		
		if (erro[0].firstChild){
			var errov = erro[0].firstChild.nodeValue;
		}

		if (errov == '1'){
			alert("Erro ao executar operação.");
			return false;
		}else{
			removeli.parentNode.removeChild(removeli);
		}
	}
}

/***********************************************************************************
*
* Funções da administração de Licencas no Cliente
*
***********************************************************************************/
function cliLicSend(){
	
	var params = 'ajaxReturn=1';
	
	//Definir e verificar parametros
	var startdate = document.getElementById('startdate').value;
	if (startdate.length < 0 || !check_date(document.getElementById('startdate'))){
		alert('Dado incompleto/inválido: data de início');
		return false;
	}else{
		params += '&startdate='+document.getElementById('startdate').value.replace('/','-');
	}
	
	//Definir e verificar parametros
	var enddate = document.getElementById('enddate').value;
	if (enddate.length < 0 || !check_date(document.getElementById('enddate'))){
		alert('Dado incompleto/inválido: data de término');
		return false;
	}else{
		params += '&enddate='+document.getElementById('enddate').value.replace('/','-');
	}


	var lgrantnum = document.getElementById('lgrantnum').value;
	if (lgrantnum.length < 0){
		alert('Dado incompleto: Grant Number');
		return false;
	}else{
		params += '&lgrantnum='+lgrantnum;
	}
	
	var lqtde = document.getElementById('lqtde').value;
	if (lqtde.length < 0){
		alert('Dado incompleto: Quantidade');
		return false;
	}else{
		params += '&lqtde='+lqtde;
	}

	var ltipo = document.getElementById('ltipo').value;
	if (ltipo.length < 0){
		alert('Dado incompleto: Tipo de licença');
		return false;
	}else{
		params += '&ltipo='+ltipo;
		params += '&vltipo='+document.getElementById('ltipo').options[document.getElementById('ltipo').selectedIndex].label;
	}

	var ssuites = document.getElementById('ssuites_idssuites');
	
	params += '&ssuites_idssuites='+ssuites.value;
	params += '&ssnome='+ssuites.options[ssuites.selectedIndex].label;
	//params += '&softwares_idsoftwares='+document.getElementById('softwares_idsoftwares').value;
	params += '&clientes_idclientes='+document.getElementById('idclientes').value;
	params += '&tmpid='+document.getElementById('tmpid').value;
	params += '&idlicencas='+document.getElementById('idlicencas').value;
	
	if (typeof cliLicFormTarget == 'undefined')
		cliLicFormTarget = '113';
	
	ajaxSendAdm(params,cliLicFormTarget,'cli_licList','cli_licStatus','cli_licForm','LI','');

	//Reset Form
	cliLicFormReset();
	
}

function cliLicEdit(idlicencas){
	//Preencher form
	document.getElementById('startdate').value = _lics[idlicencas]['startdate'];
	document.getElementById('enddate').value = _lics[idlicencas]['enddate'];
	document.getElementById('lgrantnum').value = _lics[idlicencas]['lgrantnum'];
	document.getElementById('lqtde').value = _lics[idlicencas]['lqtde'];
	document.getElementById('idlicencas').value = _lics[idlicencas]['idlicencas'];
	selectByValue('ltipo',_lics[idlicencas]['ltipo']);
	selectByValue('ssuites_idssuites',_lics[idlicencas]['ssuites_idssuites']);
	
	//alterar target do form
	cliLicFormTarget = '114';
	
	//alterar campo do form
	document.getElementById('cli_licFormBtn').value = "Fazer Alteração";
	document.getElementById('cli_licFormTitle').innerHTML = "Alterar Licença";
	
	//Mostrar Campo de cancelar
	document.getElementById('cli_licFormCancelBtn').style.display = 'block';
	
	//Esconder LI
	document.getElementById('licLi_'+idlicencas).style.display = 'none';
	
}

function cliLicEditCancel(){
	document.getElementById('licLi_'+document.getElementById('idlicencas').value).style.display = 'block';	
	cliLicFormReset();
}

function cliLicFormReset(){
	document.getElementById('startdate').value = '';
	document.getElementById('enddate').value = '';
	document.getElementById('lgrantnum').value = '';
	document.getElementById('lqtde').value = '';
	document.getElementById('ssuites_idssuites').selectedIndex = 0;
	document.getElementById('ltipo').selectedIndex = 0;
	
	cliLicFormTarget = '113';
	
	document.getElementById('cli_licFormBtn').value = "Cadastrar Licença";
	document.getElementById('cli_licFormTitle').innerHTML = "Adicionar Licença";
	document.getElementById('cli_licFormCancelBtn').style.display = 'none';
}

function cliLicDel(idlicencas){
	
	if (!confDel()){ return false;}
	
	ajaxReq = createRequest();
	
	//Enviar Del Comand
	ajaxReq.open("GET", "ajaxadm.php?idpaginas=115&idlicencas="+idlicencas+"&ajaxReturn=1", true);
    ajaxReq.onreadystatechange = cliLicDelFinish;
		
	ajaxReq.send(null);
	
	removeli = document.getElementById('licLi_'+idlicencas);
}

function cliLicDelFinish(){
	if (ajaxReq.readyState == 4){
	
		//alert(ajaxReq.responseText); //DEBUG
		
		//Pegar resposta do servidor
		
		var xmlRes = ajaxReq.responseXML;
		var erro = xmlRes.getElementsByTagName('erro');
		
		if (erro[0].firstChild){
			var errov = erro[0].firstChild.nodeValue;
		}

		if (errov == '1'){
			alert("Erro ao executar operação.");
			return false;
		}else{
			removeli.parentNode.removeChild(removeli);
		}
	}
}

function getCliContatos(idclientes){
	
	var params = 'idclientes='+idclientes;
	document.getElementById('hp_addCdadosContatos').innerHTML = '&nbsp;';
	
	ajaxSendAdm(params,'116','hp_addCdadosContatos','hp_addCdadosContatosStatus','','LI','');
	
}

function initGetClientInfo(id){
	
	//cRIAR DIV OU USAR DIV
	var ciDiv = document.getElementById('hp_clientInfoDiv');
	
	if (ciDiv == null){
		//Criar Div escondida
		var ciDiv = document.createElement('div');
		ciDiv.id = 'hp_clientInfoDiv';

		var objBody = document.getElementsByTagName('body');
		objBody[0].appendChild(ciDiv);
	}
	
	ciDiv.innerHTML = '<img src="images/icons/loading.gif" hspace="5" vspace="5" align="absmiddle" /> Buscando dados...';
	ciDiv.style.display = 'block';

	
	new Draggable('hp_clientInfoDiv',{});

	var params = 'idclientes='+id;
	
	//chamar Ajax com custum function no final
	ajaxSendAdm(params,'124','hp_clientInfoDiv','','','innerHTML','endGetClientInfo')
}
function endGetClientInfo(){

	//mostrar DIV com efeitos
	var div = document.getElementsById('hp_clientInfoDiv');
	div.style.display = 'block';

}

/* GENERICAS */
function ajaxSendAdm(params,trget,returnObj,statusDiv,hideDiv,method,reExecFunc){
	ajaxReq = createRequest();
	
	//Variaveis globais para funcao de return
	ajaxSendProps = new Array;
	ajaxSendProps['hideDiv'] = hideDiv;
	ajaxSendProps['returnObj'] = returnObj;
	ajaxSendProps['statusDiv'] = statusDiv;
	ajaxSendProps['method'] = method;
	ajaxSendProps['reExecFunc'] = reExecFunc;
	
	//alert(ajaxSendProps);
	//alert(params);
	
	if (ajaxReq != undefined){
		
		//Esconder DIVs
		if (statusDiv != ''){
			Show(statusDiv);
		}
		
		if (hideDiv != ''){
			Hide(hideDiv);
		}
				
		ajaxReq.open("POST", "ajaxadm.php?idpaginas="+trget, true);
        ajaxReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        ajaxReq.onreadystatechange = ajaxResult;
		
		ajaxReq.send(params);
	}	
}

function ajaxResult(){
	
	if (ajaxReq.readyState == 4){
	
		//alert(ajaxReq.responseText); //DEBUG
		
		//Pegar resposta do servidor
		var xmlRes = ajaxReq.responseXML;
		var erro = xmlRes.getElementsByTagName('erro');
		
		if (erro[0].firstChild){
			var errov = erro[0].firstChild.nodeValue;
		}

		if (errov == '1'){
			alert("Erro ao executa operação.");
			return false;
		}else{
			
			var itemNode = xmlRes.getElementsByTagName('item');
			//Mostrar div
			document.getElementById(ajaxSendProps['returnObj']).style.display = 'block';
			
			//Preparação de retorno
			if (ajaxSendProps['method'] == 'innerHTML'){
				var cntDiv = document.getElementById(ajaxSendProps['returnObj']);
				cntDiv.innerHTML = '';
			}else if(ajaxSendProps['method'] == 'addSelect'){
				var cntSel = document.getElementById(ajaxSendProps['returnObj']);
				//esvaziar
				clearList(cntSel.id);
			}else{
				//Adicionar link na lista
				var cntDiv = document.getElementById(ajaxSendProps['returnObj']); 
				//Pegar primeiro fliho
				var first = cntDiv.firstChild;
				//Verificar se é UL ou não
				//alert(first.nodeName);
				if (first.nodeName != 'UL'){ //Não tem UL, criar
					cntDiv.innerHTML = '';
					var ul = document.createElement('ul');
					cntDiv.appendChild(ul);
				}else{
					var ul = first;
				}
			}

			for(i=0;i<itemNode.length;i++){
				if (itemNode[i].firstChild){
					
					var litem = itemNode[i].firstChild.nodeValue;
					var lid = itemNode[i].getAttribute('id');
					if (ajaxSendProps['method'] == 'innerHTML'){
						cntDiv.innerHTML = unescape(litem);
					}else if(ajaxSendProps['method'] == 'addSelect'){
						cntSel[cntSel.length] = new Option(unescape(litem),lid);
					}else{
						//Adicionar LI
						var li = document.createElement('li');
						li.innerHTML = unescape(litem);
						li.id = lid;
						
						ul.appendChild(li);		
					}
				}else{
						//Re-estabelecer form
						if (ajaxSendProps['hideDiv'] != ''){
							Show(ajaxSendProps['hideDiv']);
						}
						if (ajaxSendProps['statusDiv'] != ''){
							Hide(ajaxSendProps['statusDiv']);
						}
						alert("Erro ao executa operação.");
				}
			}
		}
		
		//Re-estabelecer form
		if (ajaxSendProps['hideDiv'] != ''){
			Show(ajaxSendProps['hideDiv']);
		}
		if (ajaxSendProps['statusDiv'] != ''){
			Hide(ajaxSendProps['statusDiv']);
		}
		//Executar função de saída
		eval(ajaxSendProps['reExecFunc']);
	}
	

}