var executing;
var isDebugging = true;



function validaLoginCandidatoNovaHome(){

	if(frmLoginCandidato.txtLoginCandidato.value.trim() == ""){
		alert('Por favor, digite o login.');
		frmLoginCandidato.txtLoginCandidato.focus();
		return false;
	}
	if(frmLoginCandidato.txtPasswordCandidato.value.trim() == ""){
		alert('Por favor, digite sua senha.');
		frmLoginCandidato.txtPasswordCandidato.focus();
		return false;
	}
	
	return true;
}

// Função que faz o download de um segmento de página
// e carrega o conteúdo em um div (independente de browser)
function urlDownload(url, divTarget){
	if(divTarget.innerHTML == ""){
		// só inicia o download se o DIV target não possui conteúdo
		divTarget.innerHTML = "<div class='clsDivWaitMessage'>Carregando... Aguarde um instante...</div>";
		timerId = window.setTimeout("timedOutDownload('" + divTarget.id + "')", 60000);
		divTarget.setAttribute("timeoutId", timerId);
		var oIfr, oWin;
		oIfr = document.getElementById("ifrDownloads");
		// foram acrescentados os dois argumentos abaixo porque o Opera e o Konqueror tiveram problemas com esta execução
		//Sharlley. 27/06/2005. 10h56min.
		if(navigator.userAgent.indexOf("IE") > -1 && navigator.userAgent.indexOf("Opera") <0 && navigator.userAgent.indexOf("Konqueror") <0) {
			oWin = window.frames(oIfr.id);
			oIfr.onreadystatechange = finishedURLDownload;
		} else {
			oWin = null;
			for(i = 0; i < window.frames.length && oWin == null; i++)
				if(window.frames[i].frameElement.id == oIfr.id) oWin = window.frames[i];
			var executing = window.setInterval("finishedURLDownload(true)", 1000);
		}
		oWin.location = url;
	}
}

function timedOutURLDownload(divId){
	var oDiv = document.getElementById(divId);
	var timerId = new Number(oDiv.getAttribute("timeoutId"));
	window.clearTimeout(timerId);
	oDiv.removeAttribute("timeoutId");
	oDiv.innerHTML = "";
	if(executing)
		window.clearInterval(executing);
	alert(msgErrorDownload);
}

function finishedURLDownload(isOtherBrowser) {
	var ready = false;
	var msg = null;
	var oIfr, oDoc, oData, oTarget, scriptToRun;
	if(isOtherBrowser){
		oIfr = document.getElementById("ifrDownloads");
		try {
			oDoc = null;
			for(i = 0; i < window.frames.length && oDoc == null; i++)
				if(window.frames[i].frameElement.id == oIfr.id) oDoc = window.frames[i].document;
			if(oDoc == null) return;
			oData = oDoc.getElementById("htmlData");
			if(oData == null) return;
			oTarget = document.getElementById(oData.getAttribute("target"));
			scriptToRun = oData.getAttribute("onload");
			var timerId = new Number(oTarget.getAttribute("timeoutId"));
			window.clearTimeout(timerId);
			window.clearInterval(executing);
			executing = null;
			oTarget.innerHTML = oData.innerHTML;
			oDoc.body.innerHTML = "";
		} catch(e) {
			msg = msgErrorExecuting + e.message;
		} finally {
			if(msg){ 
				if(executing){
					window.clearInterval(executing);
					executing = null;
				}
				alert(msg);
			} else {
				if(scriptToRun) eval(scriptToRun);
			}
		}
	} else {
		oIfr = window.event.srcElement;
		if(oIfr.readyState != "complete") return;
		try {
			oDoc = document.frames(oIfr.id).document;
			oData = oDoc.getElementById("htmlData");
			oTarget = document.getElementById(oData.getAttribute("target"));
			scriptToRun = oData.getAttribute("onload");
			var timerId = new Number(oTarget.getAttribute("timeoutId"));
			window.clearTimeout(timerId);
			oTarget.innerHTML = oData.innerHTML;
		} catch(e) {
			msg = msgErrorExecuting + e.message;
		} finally {
			oIfr.onreadystatechange = null;
			document.body.removeChild(oIfr);
			if(msg){ 
				alert(msg);
			} else {
				if(scriptToRun) eval(scriptToRun);
			}
		}
	}
}

// Função de carga inicial da HomePage do site
// (verifica se recebeu algum parametro via query string e repassa-o)
function loadHome(url){
	// Verifica se está dentro de algum frame
	if(window.frameElement != null && window.frameElement.id != "ifrDefaultTopJob") {
		var oWin;
		if(window.top.document.body != null)
			oWin = window.top;
		else
			oWin = window.top.frames["ifrDefaultTopJob"];
		oWin.location.href = url;
		return;
	}

	var query = "Home.aspx";
	var pos = url.indexOf("?");
	if(pos != -1) {
		document.body.setAttribute("redirectTo", url);
		if(url.substr(pos).indexOf("expired=true") > 0)
			query = "ExpiredSession.aspx" + url.substr(pos);
		else if(url.substr(pos).indexOf("newuser=true") > 0)
			query = "NovoCandidato.aspx" + url.substr(pos);
		else if(url.substr(pos).indexOf("browsererror=true") > 0)
			query = "BrowserError.aspx" + url.substr(pos);
		else
			query += url.substr(pos);
	}
	urlDownload(query, document.getElementById("home"));
}

// Função de carga inicial da página de cadastro de empresas parceiras
// (verifica se recebeu algum parametro via query string e repassa-o)
function loadMainCadastroEmpresa(url){
	var query = "Candidato/divCadastroEmpresaSimplificado.aspx";
	var pos = url.indexOf("?");
	if(pos != -1) query += url.substr(pos); 
	pageDownload(query, bodyMainCadastroEmpresa);
}

// Função que valida o Login da Empresa
function validaLoginEmpresa(){
	var xmlMsg=validation_messages.XMLDocument;

	if(Trim(frmLoginEmpresa.txtCodigoEmpresa.value) == ""){
		alert(xmlMsg.selectSingleNode("//codigo_empresa_obrigatorio").text);
		frmLoginEmpresa.txtCodigoEmpresa.focus();
		return false;
	}
	var idEmpresa = new Number(frmLoginEmpresa.txtCodigoEmpresa.value);
	if(idEmpresa == 0){
		alert(xmlMsg.selectSingleNode("//codigo_empresa_obrigatorio").text);
		frmLoginEmpresa.txtCodigoEmpresa.focus();
		return false;
	}
	if(Trim(frmLoginEmpresa.txtLoginEmpresa.value) == ""){
		alert(xmlMsg.selectSingleNode("//login_obrigatorio").text);
		frmLoginEmpresa.txtLoginEmpresa.focus();
		return false;
	}
	if(Trim(frmLoginEmpresa.txtPasswordEmpresa.value) == ""){
		alert(xmlMsg.selectSingleNode("//password_obrigatorio").text);
		frmLoginEmpresa.txtPasswordEmpresa.focus();
		return false;
	}
	validaLogin(2);
}

// Função que valida o Login do Candidato
function validaLoginCandidato(){
	var xmlMsg=validation_messages.XMLDocument;

	if(Trim(frmLoginCandidato.txtLoginCandidato.value) == ""){
		alert(xmlMsg.selectSingleNode("//login_obrigatorio").text);
		frmLoginCandidato.txtLoginCandidato.focus();
		return false;
	}
	if(Trim(frmLoginCandidato.txtPasswordCandidato.value) == ""){
		alert(xmlMsg.selectSingleNode("//password_obrigatorio").text);
		frmLoginCandidato.txtPasswordCandidato.focus();
		return false;
	}
	validaLogin(1);
}

function validaLoginCandidatoPopUp(){
	var xmlMsg=validation_messages.XMLDocument;

	if(Trim(frmLoginCandidato.txtLoginCandidato.value) == ""){
		alert(xmlMsg.selectSingleNode("//login_obrigatorio").text);
		frmLoginCandidato.txtLoginCandidato.focus();
		return false;
	}
	if(Trim(frmLoginCandidato.txtPasswordCandidato.value) == ""){
		alert(xmlMsg.selectSingleNode("//password_obrigatorio").text);
		frmLoginCandidato.txtPasswordCandidato.focus();
		return false;
	}
	validaLogin(3);
}
// Função que confirma o login
// Recebe:
// - tipologin -> 1=Candidato, 2=Empresa
function validaLogin(tipologin){
	var obj;
	var arrInput;
	
	if(tipologin == 1){
		arrInput=frmLoginCandidato.getElementsByTagName("input");
	}
	else if(tipologin == 3){
		arrInput=frmLoginCandidato.getElementsByTagName("input");
	} else {
		arrInput=frmLoginEmpresa.getElementsByTagName("input");
	}

	// Cria IFRAME com o FORM dinâmico
	var queryString = "";
	var url = document.location.href;
	var pos = url.indexOf("?");
	if(pos != -1) queryString += url.substr(pos); 
	oIfr = createForm("frmLogin", "Home.aspx" + queryString);
	oDoc = document.frames(oIfr.id).document;
	oFrm = oDoc.forms("frmLogin");
	
	// Cria os campos e seta os valores para o submit
	for(i=0; i<arrInput.length; i++){
		obj = arrInput[i];
		oInput = oDoc.createElement("input");
		oInput.type = "hidden";
		oInput.name = obj.name;
		oInput.value = obj.value;
		oFrm.appendChild(oInput);
	}

	// Seta o tipo de login
	oIfr.setAttribute("tipoLogin", tipologin);
	
	// Registra a função de tratamento da resposta
	oIfr.onreadystatechange = responseLogin;

	// Faz o submit
	oFrm.submit();
}

// Função que trata a resposta da validacao do login
// disparada pelo evento onreadystatechange do iframe de controle
function responseLogin(){
	var oIfr, oDoc, oXML, oNode, msg, url, tipoLogin;
	oIfr = window.event.srcElement;
	if(oIfr.readyState == "complete"){
		try {
			oDoc = parseResponse(oIfr.id);
			tipoLogin = oIfr.getAttribute("tipoLogin");
			oXML = oDoc.getElementById("responseLogin").XMLDocument;
			msg = oXML.selectSingleNode("//mensagem").text;
			url = oXML.selectSingleNode("//url").text;
		} catch(e) {
			msg = msgErrorExecuting + e.message;
		} finally {
			oIfr.onreadystatechange = null;
			document.body.removeChild(oIfr);
			if(msg != ""){ 
				alert(msg);
			} else {
				if(url != "") {
					if(tipoLogin == "1")
					{
						document.location.replace(url);
					}
					else if(tipoLogin == "3") //Area do Candidato PopUp
					{
						window.open(url, "_blank", "resizable=yes, scrollbars=yes, fullscreen=no, status=yes, toolbar=no, menubar=no, location=no, top=0, left=0, height=" + (screen.height - 90) + " ,width=" + (screen.width - 12));
					}
					else
						window.open(url, "_blank", "resizable=yes, scrollbars=yes, fullscreen=no, status=yes, toolbar=no, menubar=no, location=no, top=0, left=0, height=" + (screen.height - 90) + " ,width=" + (screen.width - 12));
				}
			}
		}
	}
}


//-------------------------------------------------------

//Paginação no Data Island XML


// JavaScript Document  
function backPage()
{
	if(pageNumber.innerHTML!='1'){var n=0; n=pageNumber.innerText; n--; pageNumber.innerHTML=n;}
}

function nextPage()
{
	if(pageNumber.innerHTML!=totalPages.innerHTML){var n=0; n=pageNumber.innerText; n++; pageNumber.innerHTML=n;}
}

//Navegação - Visuzalização de vagas
//------------------------------------------
function NavAnterior(atual,total)
{
	if(atual>1)
	{
		eval("tbVaga_" + atual + ".style.visibility='hidden'");
		eval("tbVaga_" + atual + ".style.display='none'");
		
		eval("tbVaga_" + (parseInt(atual)-1) + ".style.visibility='visible'");
		eval("tbVaga_" + (parseInt(atual)-1) + ".style.display=''");
	}

} 

function NavProximo(atual,total)
{
	if(atual<total)
	{
		eval("tbVaga_" + atual + ".style.visibility='hidden'");
		eval("tbVaga_" + atual + ".style.display='none'");
		
		eval("tbVaga_" + (parseInt(atual) +1) + ".style.visibility='visible'");
		eval("tbVaga_" + (parseInt(atual) +1) + ".style.display=''");
		
	}
} 
// -------------------------------------------------

function toggleDetail(anchor, display, tableName){
	var tbls, tblDetail;
	tbls = anchor.parentElement.getElementsByTagName("table");
	tblDetail = null;
	for(i=0; i<tbls.length && tblDetail == null; i++) {
		if(tbls[i].name == tableName){
			tblDetail = tbls[i];
		}
	}
	if(tblDetail != null){
		if(display == null){
			display = (tblDetail.currentStyle.display == "none" ? "block" : "none");
		}
		tblDetail.style.display = display;
		
		if(display == "block"){
			if((tblDetail.offsetWidth + tblDetail.offsetLeft) > tblDetail.offsetParent.offsetWidth) {
				var newPos = tblDetail.offsetParent.offsetWidth - (tblDetail.offsetWidth + (tblDetail.parentElement.offsetWidth / 2) );
				tblDetail.style.left = newPos;
			}
		}
	}
}

function totalPaginas(xmlisland, tabela, labelTotal, labelAtual, navigationCell, tagName){
	var total, links, rows;
	if(tagName == null) tagName = "*/linha";
	rows = xmlisland.XMLDocument.selectNodes(tagName).length;

	if(rows == 0){
		tabela.parentElement.style.display = "none";
	}else{
		if(tabela.dataPageSize==0)
			tabela.dataPageSize = 10;
		total = Math.ceil(rows / tabela.dataPageSize);
		labelTotal.innerHTML = total;
		links = "";
		for(i=1; i<=total; i++){
			if(links != "") links += " |";
			links += "<a href=#divWorSpace onclick='javascript: goPage(";
			links += tabela.id;
			links += ", ";
			links += labelAtual.id;
			links += ", ";
			links += i;
			links += ");'>";
			links += i;
			links += "</a>";
		}
		navigationCell.innerHTML = links;
		tabela.parentElement.style.display = "block";
	}
}

function goPage(tabela, labelAtual, destino){
	atual = new Number(labelAtual.innerText);
	if(atual<destino){
		for(i=atual; i<destino; i++) tabela.nextPage();
	} else {
		for(i=atual; i>destino; i--) tabela.previousPage();
	}
	labelAtual.innerHTML = destino;
}

function changeRowsPerPage(rows, tabela, xmldata, labelTotal, labelAtual, navigationCell){
	tabela.dataPageSize = rows; 
	totalPaginas(xmldata, tabela, labelTotal, labelAtual, navigationCell); 
	labelAtual.innerHTML = "1";
	tabela.firstPage(); 
}

function addArgument(buffer, checkbox) {
	var argumentos = "";
	if(checkbox.checked) {
		argumentos = "|" + checkbox.parentElement.lastChild.innerText;
		buffer.value += (buffer.value == "" ? argumentos.substr(1) : argumentos );
	} else {
		allchecks = document.getElementsByName(checkbox.name);
		for(i=0; i<allchecks.length; i++) {
			if(allchecks[i].checked){
				argumentos += ("|" + allchecks[i].parentElement.lastChild.innerText); 
			}
		}
		buffer.value = argumentos.substr(1);
	}
}

function setArgument(buffer, td) {
	var argumentos = "";
	argumentos = td.lastChild.innerText;
	buffer.value = argumentos;
}

//Função para voltar a tela de Seleção de Universiade
function VoltarSelecaoUniversidade(idVaga,IdCandidato,IdLocalTrabalhoVaga,idFase,idInstituicao,nomeInstituicao){
	var complemento = "";
	if(idInstituicao != null) complemento = "&IdInstituicao=" + idInstituicao + "&nomeInstituicao=" + nomeInstituicao;
	document.location.replace('../Empresa/divSelecionarInstituicaoContrato.aspx?idVaga=' + idVaga + '&IdCandidato=' + IdCandidato + '&IdLocalTrabalhoVaga=' + IdLocalTrabalhoVaga + '&idFase=' + idFase + complemento);
}

function CalculaLargura(windowWidth) {
		var screenWidth = self.screen.width;
		screenWidth = ((screenWidth - windowWidth)/2);
		return screenWidth;
	}

function CalculaAltura(windowHeight) {
		var screenHeight = self.screen.height;
		screenHeight = ((screenHeight - windowHeight)/2);
		return screenHeight;
	}


function registerResizeFunction() {
	var oIfr = window.event.srcElement;
	var oWin = window.frames[oIfr.id];
	if(oIfr.readyState == "complete") {
		try {
		//	oIfr.style.pixelHeight = oWin.document.body.firstChild.offsetHeight;
			oWin.document.onkeydown = checkF5;
			oWin.document.oncontextmenu = blockContext;
			oWin.document.body.firstChild.onresize = eventResizeFrame;
		//  oWin.frameElement.onresize = eventResizeFrame;
			var iframes = oWin.document.body.getElementsByTagName("iframe");
			for(i=0; i<iframes.length; i++){
				iframes[i].onresize = eventResizeFrame;
			}
		} catch (e) {}
	}
	else
	{
		oIfr.InnerHtml = "<BR>Aguarde<BR>";
	}
}

function eventResizeFrame() {
	var oWin = window;
	var oEle;
	
	for(i=0; oWin.event == null && window.frames != null && i < window.frames.length; i++){
		oWin = window.frames[i];
	}
	
	if(oWin.event != null){
		oEle = oWin.event.srcElement;
		resizeFrame(oEle, oWin);
	}
}

function resizeFrame(oEle, oWin) {
	if(oEle != null) {
		var oIfr = oEle.ownerDocument.parentWindow.frameElement;
		try {
			if(oIfr.style.pixelHeight != oWin.document.body.firstChild.offsetHeight) {
			    oIfr.style.pixelHeight = oWin.document.body.firstChild.offsetHeight;
			}
		} catch(e) {
			oIfr.style.pixelHeight = 400;
		}
	}
}

function checkF5(oSourceWin, startIndex, oParentWin){
	var oWin = (oSourceWin == null ? window : oSourceWin);
	startIndex = (oSourceWin == null ? -1 : startIndex);
	
	if(oWin == null) return;
	
	if(oWin.event != null){
		switch(oWin.event.keyCode)
		{
			case 116: // F5
				isExiting = true;
				break;
				
			case 8: // Backspace
				if(oWin.event.srcElement.tagName != "INPUT" 
				   && oWin.event.srcElement.tagName != "TEXTAREA")
					oWin.event.returnValue = false;
				break;
		}
	} else {
		if(oSourceWin == null){
			oWin = window.frames["ifrFrameData"];
			if(oWin != null)
				checkF5(oWin, startIndex, oWin);
		} else {
			oWin = oParentWin;
			startIndex++;
			if(startIndex < oWin.frames.length)
				checkF5(oWin.frames[startIndex], startIndex, oWin);
		}
	}
}

function blockContext() {
	return isDebugging;
}
