﻿function AbrirNovaJanela(pLink) {
	window.open(pLink, "new");
	setTimeout("VoltarPagina('" + window.location + "')", 50);
}

function VoltarPagina(pLink) {
	window.location.href = pLink;
}

function ASPxCallbackPanel_CallbackError(s, e) {
	CallbackError(e);
	e.handled = true;
}

function CallbackError(e) {
	ASPxCallbackError.PerformCallback(e.message);
	vMensagem = "<h2>Falha não tratada encontrada</h2>";
	vMensagem += "<p>O site de suporte on-line encontrou um problema, para sua segurança a sessão foi encerrada. ";
	vMensagem += "Por este motivo, dados nos procedimentos que estavam em execução, podem ter sido perdidos.</p>";
	vMensagem += "<p>Um e-mail contendo informações sobre a falha foi enviado automaticamente para o ";
	vMensagem += "núcleo de desenvolvimento responsável na Data Cempro Informática.</p>";
	vMensagem += "<p>Desculpe-nos pela inconveniência.</p>";
	vMensagem += "<p><a href='../../Livre/Inicial.aspx' target='_parent'>Clique aqui</a> para ser redirecionado a página inicial.</p>";
	ExibirNotificacao(vMensagem, "F");
}

//#region Funções

//Notificações (avisos de confirmação, falha e outros)
function ExibirNotificacao(pMensagem, pTipo) {
	var vHeader;
	switch (pTipo) {
		case "C":
			{
				vHeader = "Confirmação";
				if ((pMensagem == null) || (pMensagem == "")) {
					pMensagem = "<p>Procedimento efetuado com sucesso.</p>";
				}
				break;
			}
		case "F":
			{
				vHeader = "Falha não tratada";
				if ((pMensagem == null) || (pMensagem == "")) {
					pMensagem = "<p>Uma falha não tratada foi encontrada, uma mensagem de e-mail foi enviada ao núcleo de desenvolvimento responsável com as informações necessárias.</p>";
				}
				break;
			}
		case "M":
			{
				vHeader = "E-mail enviado com sucesso";
				if ((pMensagem == null) || (pMensagem == "")) {
					pMensagem = "<p>Mensagem enviada com sucesso, obrigado.</p><p>Se necessário estaremos entrando em contato o mais breve possível.</p>";
				}
				break;
			}
		case "SE":
			{
				vHeader = "Sessão expirada";
				break;
			}
		default:
			{
				vHeader = "Atenção";
				break;
			}
	}
	JGrowlNotificacao(pMensagem, vHeader);
}

function JGrowlNotificacao(pMensagem, vHeader) {
	$.jGrowl(pMensagem, { header: vHeader, sticky: true });
}

function ContarCaracteresRestantes(Campo, Limite, Restante) {
	if (Campo.value.length > Limite) {
		Campo.value = Campo.value.substring(0, Limite);
	}
	else {
		Restante.value = Limite - Campo.value.length;
	}
}

function ContarCaracteresRestantesDevExpress(Campo, Limite, Restante) {
	if (Campo.GetText().length > Limite) {
		Campo.SetText(Campo.GetText().substring(0, Limite));
	}
	else {
		Restante.SetText(Limite - Campo.GetText().length);
	}
}

//Validações dos componentes DevExpress.
function ValidarGrupo(Grupo) {
	var validationProcs = [ExecutarValidacaoDx, ExecutarValidacaoPadrao];
	var result = true;

	for (var index = 0; index < validationProcs.length; index++) {
		result = validationProcs[index](Grupo) && result;
	}

	if (!result) {
		ExibirNotificacao("<p>Alguns dados não foram informados corretamente, verifique os campos em destaque.</p>");
	}

	return result;
}

function ExecutarValidacaoDx(Grupo) {
	if (typeof (ASPxClientEdit) != "undefined" && typeof (ASPxClientEdit.ValidateGroup) == "function") {
		return ASPxClientEdit.ValidateGroup(Grupo);
	}
	else {
		return true;
	}
}

function ExecutarValidacaoPadrao(Grupo) {
	if (typeof (Page_IsValid) != "undefined" && Page_IsValid != null && typeof (Page_ClientValidate) == "function") {
		Page_ClientValidate(Grupo);
		return Page_IsValid;
	}

	return true;
}
//Fim das funções de validação.

//Verifica a existência de um elemento no JS.
function VerificarExistenciaElemento(ElementoNome) {
	if (typeof (window[ElementoNome]) == "undefined") {
		return false;
	}
	else {
		return true;
	}
}

//Verifica a existência e acessibilidade de um elemento no JS.
function VerificarAcessibilideElemento(Elemento) {
	var thisObj = eval("document.getElementById('" + Elemento.name + "')")

	if (thisObj == null) {
		return false;
	}
	else {
		return true;
	}
}

//Verifica a existência de um elemento no JS.
function VerificarExistenciaElementoPopUp(ElementoNome) {
	if (typeof (parent.window[ElementoNome]) == "undefined") {
		return false;
	}
	else {
		return true;
	}
}

//Verifica a existência e acessibilidade de um elemento no JS.
function VerificarAcessibilideElementoPopUp(Elemento) {
	var thisObj = eval("parent.document.getElementById('" + Elemento.name + "')")

	if (thisObj == null) {
		return false;
	}
	else {
		return true;
	}
}

//#endregion
