var mousePX = 0;
var mousePY = 0;
Event.observe(window, 'load', function () {
    Event.observe('txtLogin', 'keydown', function(ev) {
        if (ev.keyCode == 13)
        	loginAttemp();
    });
    Event.observe('txtPassword', 'keydown', function(ev) {
        if (ev.keyCode == 13)
        	loginAttemp();
    });
	Event.observe('txtLogin', 'focus', function() {
		if (this.value == 'Matricula')
		{
		  this.value = '';
		}
	});
    Event.observe('txtLogin', 'blur', function() {
		if (this.value == '')
		{
		  this.value = 'Matricula';
		}
    });
	Event.observe('txtPassword', 'focus', function() {
		if (this.value == 'Senha')
		{
		  this.value = '';
		}
	});
    Event.observe('txtPassword', 'blur', function() {
		if (this.value == '')
		{
		  this.value = 'Senha';
		}
    });
	Event.observe('btnLogin','click',function () {
		loginAttemp();
	});
	Event.observe('lkMain','click',function () {
		loadPage("mainContent","pages/page.main.php");
	});
	Event.observe('lkGallery','click',function () {
		loadPage("mainContent","pages/page.gallery.php");
	});
	Event.observe('lkContact','click',function () {
		loadPage("mainContent","pages/page.contact.php");
	});
	Event.observe('lkFilosofy','click',function () {
		loadPage("mainContent","pages/page.filosofy.php");
	});
	Event.observe('lkPromo','click',function () {
		loadPage("mainContent","pages/page.promo.php");
	});
	Event.observe('lkProjects','click',function () {
		loadPage("mainContent","pages/page.projects.php");
	});
	Event.observe('lkEvents','click',function () {
		loadPage("mainContent","pages/page.events.php");
	});
	Event.observe('lkCourses','click',function () {
		loadPage("mainContent","pages/page.courses.php");
	});
	loadPage("mainContent","pages/page.main.php");
	new Ajax.Updater("newsList","funct/funct.admNews.php", {
		method: 'post',
		parameters: { showNews:1 },
		onComplete: function () {
			$("footer").innerHTML = $("footer").innerHTML;	
		}
	});
	new Event.observe(document,"mousemove", function (e) {
		mousePX = e.pointerX();
		mousePY = e.pointerY();
		if (ajaxInUse)
			setLoading(e.pointerX(),e.pointerY());
	});
	function setLoading (px, py) {
		$("loadingDiv").setStyle({
			top: py - ($("loadingDiv").getStyle("height").replace("px","")/2) - 5,
			left: px - 15	
		});	
	}
});
function changeInnerHTML (aId, aText,aKeep) {
	if (aKeep != null)
	{
		$(aId).innerHTML = $(aId).innerHTML + aText;
	}
	else
	{
		$(aId).innerHTML = aText;
	}
	$("footer").innerHTML = $("footer").innerHTML;
}
function loginAttemp() {
	if ($('txtLogin').value == '' || $('txtLogin').value == "Matricula") {
		alert("Preencha a Matricula");
		$('txtLogin').focus();	
		return false;
	}
	else if ($('txtPassword').value == '' || $('txtPassword').value == "Senha") {
		alert("Preencha a Senha");
		$('txtPassword').focus();	
		return false;
	}
	new Ajax.Request("funct/funct.validateLogin.php", {
		method: 'post',
		parameters: { login:$('txtLogin').value, passw:$('txtPassword').value, validateLogin:1 },
		onSuccess: function (output) {
				if (output.responseText == 1) {	
					loginOk();	
				}
				else if (output.responseText == 2) {
					alert("As tentativas de acesso foram excedidas, favor aguardar 5 minutos.");	
				}
				else {
					alert("Login ou Senha incorretos");
				}
		},
		onFailure: function () {
				alert("Erro ao validar Login/Senha, tente novamente em alguns minutos.");
		}
	});	
}
function loadPage (idTo, pageName) {
	new Ajax.Updater(idTo, pageName, {
		evalScripts: true,
		onComplete: function () {
			$("footer").innerHTML = $("footer").innerHTML;
		}
	});
}
function removeNews (loginG,passwG,XML) {
	new Ajax.Request("funct/funct.admNews.php", {
		method: 'post',
		parameters: { login:loginG, passw:passwG, removeXml:XML },
		onSuccess: function (output) {
			if (output.responseText == 0) {
				alert("Erro ao acessar o banco de dados.\r\nTente novamente em alguns minutos.");	
			}
			else if (output.responseText == 2) {
				alert("Endereço não encontrado no banco de dados.");	
			}
			else if (output.responseText == 1) {
				loadPage("mainContent","pages/page.adm.cfgNews.php");
			}
		}
	});
}
function addNews (loginG,passwG,XML) {
	if (XML.substr(0,7) != "http://") {
		alert("O endereço deve ser preenchido com um arquivo endereço válido.\r\nExemplos:\r\nhttp://dominio.com/RSS/arquivo.xml\r\nhttp://www.dominio.org.br/rss/rss.cfm?D942ED78");
		return;
	}
	new Ajax.Request("funct/funct.admNews.php", {
		method: 'post',
		parameters: { login:loginG, passw:passwG, addXml:XML },
		onSuccess: function (output) {
			if (output.responseText == 0) {
				alert("Erro ao acessar o banco de dados.\r\nTente novamente em alguns minutos.");	
				return;
			}
			else if (output.responseText == 2) {
				alert("Endereco já existe no banco de dados.");	
				return;
			}
			else if (output.responseText == 1) {
				loadPage("mainContent","pages/page.adm.cfgNews.php");
			}
			else if (output.responseText == 8) {
		alert("O endereço deve ser preenchido com um arquivo endereço válido.\r\nExemplos:\r\nhttp://dominio.com/RSS/arquivo.xml\r\nhttp://www.dominio.org.br/rss/rss.cfm?D942ED78");
			}
		}
	});
}
function addAccount (newLoginG,emailG,nameG,levelG,courseG) {
	if ((emailG.length != 0) && (emailG.indexOf("@") < 1)) {
		alert('Verifique o preenchimento do campo Email');
		return;
	}
	if (newLoginG == "Matricula") {
		alert("Verifique o preenchimento do campo Matrícula");
		return;	
	}
	if (nameG == "Nome") {
		alert("Verifique o preenchimento do campo Nome");
		return;	
	}
	if (courseG == "Curso") {
		alert("Verifique o preenchimento do campo Curso");
		return;	
	}
	if (isNaN(levelG)) {
		alert('Verifique o preenchimento do campo Nivel de Acesso');
		return;
	}
	var confirmation = true;
	if (levelG > 1)
		var confirmation = confirm("Confirma inclusão de matrícula com nível maior que 1?");
	if (!confirmation)
		return;
	new Ajax.Request("funct/funct.admAccounts.php", {
		method: 'post',
		parameters: { newLogin:newLoginG, email:emailG, name:nameG, level:levelG, course:courseG },
		onSuccess: function (output) {
			if (output.responseText == 0) {
				alert("Erro ao acessar o banco de dados.\r\nTente novamente em alguns minutos.");	
				return;
			}
			else if (output.responseText == 2) {
				alert("Matrícula já cadastrada");	
				return;
			}
			else if (output.responseText == 3) {
				alert("Nome já cadastrado");	
				return;
			}
			else if (output.responseText == 4) {
				alert("Email já cadastrado");	
				return;
			}
			else if (output.responseText == 5) {
				alert("Erro ao validar login e senha.\r\nTente novamente em alguns minutos.");	
				return;
			}
			else if (output.responseText.length == 4) {
				alert("Matrícula cadastrada com sucesso.\r\nInforme a senha: "+output.responseText);
				loadPage("mainContent","pages/page.adm.cfgAccounts.php");	
				return;
			}
		}
	});
}
function delAccount (delLoginG) {
	var confirmation = confirm("Confirma remoção da matrícula "+delLoginG+"?");
	if (!confirmation)
		return;
	new Ajax.Request("funct/funct.admAccounts.php", {
		method: 'post',
		parameters: { delLogin:delLoginG },
		onSuccess: function (output) {
			if (output.responseText == 0) {
				alert("Erro ao acessar o banco de dados.\r\nTente novamente em alguns minutos.");	
				return;
			}
			else if (output.responseText == 2) {
				alert("Matrícula não encontrada para remoção");	
				return;
			}
			else if (output.responseText == 3) {
				alert("Erro ao validar login e senha.\r\nTente novamente em alguns minutos.");
				return;
			}
			else if (output.responseText == 5) {
				alert("Erro ao remover a matrícula\r\nPermissão negada para remover matrícula da seção atual");
				return;
			}
			else if (output.responseText == 1) {
				alert("Conta removida do sistema");	
				loadPage("mainContent","pages/page.adm.cfgAccounts.php");	
				return;
			}
			else {
				alert("Erro inesperado ao remover conta");	
				return;
			}
		}
	});
}
var logged = false;
function loginOk () {
	logged = true;
	new Ajax.Request("funct/funct.retrieveLoginData.php", {
		method: 'post',
		parameters: { login:$('txtLogin').value, passw:$('txtPassword').value },
		onSuccess: function (output) {
			changeInnerHTML("rightMenuContent",output.responseText);
			loadPage("mainContent","pages/page.login.main.php");
		}
	});
}
var ajaxInUse = false;
Ajax.Responders.register({
	onCreate: function() {
		ajaxInUseF(true);
	},
	onComplete: function() {
		ajaxInUseF(false);
	}
}); 
var timeoutRef;
function ajaxInUseF (inUse) {
	if (logged) {
	  clearTimeout(timeoutRef)
		timeoutRef = setTimeout("document.location.reload()",300000);
	}
	if (inUse) {
		vsbl = 'visible';
		curs = 'wait';
		ajaxInUse = true;
	}
	else {
		vsbl = 'hidden';
		curs = 'default';
		ajaxInUse = false;
	}
	$("loadingDiv").setStyle({
		visibility: vsbl,
		top: mousePY - ($("loadingDiv").getStyle("height").replace("px","")/2) - 5,
		left: mousePX - 15,
		opacity:0.75
	});	
	document.body.style.cursor = curs;	
}
function editAccount (loginEdit) {
	new Ajax.Updater("mainContent","pages/page.adm.editAccount.php", {
		method: 'post',
		parameters: { loginE:loginEdit },
		onComplete: function () {
			$("footer").innerHTML = $("footer").innerHTML; // Correção BUG FireFox	
		}
	});
}
function editAccountResetPass (login) {
	new Ajax.Request("funct/funct.admAccounts.php", {
		method: 'post',
		parameters: { resetPass:"1", resetLogin:login },
		onSuccess: function (output) {
			if (output.responseText == 0) {
				alert("Erro ao acessar o banco de dados.\r\nTente novamente em alguns minutos.");	
				return;
			}
			else if (output.responseText == 2) {
				alert("Matricula nao cadastrada");	
				return;
			}
			else if (output.responseText == 3) {
				alert("Erro ao validar login e senha.\r\nTente novamente em alguns minutos.");	
				return;
			}
			else if (output.responseText.length == 4) {
				alert("Informe a nova senha: "+output.responseText);	
				return;
			}
		}
	});
}
function editAccountSetNewData (editLogin,newEmail,newName,newCourse,newPrints) {
	if ((newEmail.length != 0) && ((newEmail.indexOf("@") < 1) || (newEmail.indexOf('.') < 7)) || (newEmail.length == 0)) {
		alert('Verifique o preenchimento do campo Email');
		return;
	}
	if (isNaN(newPrints)) {
		alert('Verifique o preenchimento do campo Número de Impressões Restantes');
		return;
	}
	new Ajax.Request("funct/funct.admAccounts.php", {
		method: 'post',
		parameters: { editLogin:editLogin, email:newEmail, name:newName, prints:newPrints, course:newCourse },
		onSuccess: function (output) {
			if (output.responseText == 0) {
				alert("Erro ao acessar o banco de dados.\r\nTente novamente em alguns minutos.");	
				return;
			}
			else if (output.responseText == 2) {
				alert("Matricula nao cadastrada");	
				return;
			}
			else if (output.responseText == 3) {
				alert("Erro ao validar login e senha.\r\nTente novamente em alguns minutos.");	
				return;
			}
			else if (output.responseText == 4) {
				alert("Nome digitado incorretamente.");	
				return;
			}
			else if (output.responseText == 5) {
				alert("Email digitado incorretamente.");	
				return;
			}
			else if (output.responseText == 6) {
				alert("Curso digitado incorretamente.");	
				return;
			}
			else if (output.responseText == 7) {
				alert("Numero de impressoes digitado incorretamente.");	
				return;
			}
			else if (output.responseText == 1) {
				alert("Matricula alterada.");
				loadPage("mainContent","pages/page.adm.cfgAccounts.php");	
				return;
			}
		}
	});
}
function removePrints (loginPrints,numPrints) {
	new Ajax.Request("funct/funct.admPrints.php", {
		method: 'post',
		parameters: { printLogin:loginPrints, retrieve:1 },
		onSuccess: function (output) {
			if (output.responseText == 0) {
				alert("Erro ao acessar o banco de dados.\r\nTente novamente em alguns minutos.");	
			}
			if (output.responseText == "2") {
				alert("Matrícula não encontrada.");
				return;
			}
			respText = output.responseText.evalJSON();
			printsBefore = respText.prints;
			var confirmation = confirm("Associado: "+respText.name+"\r\nImpressões restantes: "+respText.prints+"\r\nImpressões após atual: "+(respText.prints - numPrints)+"\r\n\r\nConfirma?");
			if (confirmation) {
				new Ajax.Request("funct/funct.admPrints.php", {
					method: 'post',
					parameters: { printLogin:loginPrints, printsNum:numPrints },
					onSuccess: function (output) {
						if (output.responseText == 0) {
							alert("Erro ao acessar o banco de dados.\r\nTente novamente em alguns minutos.");	
						}
						else if (output.responseText == 2) {
							alert("Matrícula não encontrada.");
						}
						else if (output.responseText == 3) {
							alert("Erro ao cadastrar impressão.\r\nVerifique o número de impressões preenchido.");	
						}
						else if (output.responseText == 4) {
							if (printsBefore < 0)
								value = numPrints;
							else
								value = numPrints - printsBefore;
							if (value < 0)
								value = value * -1;
							cost = ((value) * 0.03).toFixed(2);
							if (cost < 0)
								cost = cost * -1;
							
							alert("O valor a ser cobrado será de R$"+cost+".\r\n\r\n"+numPrints+" impressão(oes) debitada(s) da matrícula "+loginPrints+".");
							loadPage("mainContent","pages/page.adm.cfgPrints.php");
						}
						else if (output.responseText == 1) {
							alert("Impressão cadastrada com sucesso.");
							loadPage("mainContent","pages/page.adm.cfgPrints.php");
						}
						else
							alert(output.responseText);
					}
				});
			}
		}
	});
}
function photoOpen (file) {
	$('photoLink').style.visibility = 'visible';
	$('photoLink').style.top = document.viewport.getScrollOffsets().top;
	$('photoLink').innerHTML = "<a href=\"upload/photos/"+file+"\" target=\"_blank\" class=\"photoLink\">Abrir em nova janela</a>";
	$('showPhoto').style.visibility = 'visible';
	$('showPhoto').style.left = ((document.viewport.getWidth()/2) - 25);
	$('showPhoto').style.top = ((document.viewport.getHeight()/2) - 25) + document.viewport.getScrollOffsets().top;
	if (navigator.appName == "Microsoft Internet Explorer" && parseFloat(navigator.appVersion) <= 6)
		$('darkLayer').style.top = document.viewport.getScrollOffsets().top;
	$('darkLayer').style.visibility = 'visible';
	$('showPhoto').innerHTML = '<img src="images/loading.gif">';
	Event.observe('darkLayer', 'click', function () {
		$('showPhoto').style.visibility = 'hidden';
		$('darkLayer').style.visibility = 'hidden';
		$('photoLink').style.visibility = 'hidden';
		document.body.style.overflow='auto';
	});
	Event.observe('showPhoto', 'click', function () {
		$('showPhoto').style.visibility = 'hidden';
		$('darkLayer').style.visibility = 'hidden';
		$('photoLink').style.visibility = 'hidden';
		document.body.style.overflow='auto';
	});
	document.body.style.overflow='hidden';
	obImg = new Image();
	obImg.onload=function () {
		$('showPhoto').innerHTML = "<img src=\"upload/photos/"+file+"\">";
		$('showPhoto').style.left = (document.viewport.getWidth()/2) - ($('showPhoto').getWidth()/2);
		$('showPhoto').style.top = (document.viewport.getHeight()/2) - ($('showPhoto').getHeight()/2) + document.viewport.getScrollOffsets().top;
	};
	obImg.src = "upload/photos/"+file;
}
function photoDel (dFile) {
	var confirmation = confirm("Remover imagem "+dFile+"?");
	if (!confirmation)
		return;
	new Ajax.Request("funct/funct.admPhotos.php", {
		method: 'post',
		parameters: { opt:'e', file:dFile },
		onSuccess: function (output) {
			if (output.responseText == 0)
				alert("Erro ao remover imagem (return: 0).\r\nTente novamente em alguns minutos ou contate o administrador.");
			else if (output.responseText == 1) {
				alert("Imagem removida com sucesso.");
				loadPage("mainContent","pages/page.gallery.php");
			}
			else if (output.responseText == 2) 
				alert("Arquivo não encontrado para remoção.\r\nTente novamente em alguns minutos ou contate o administrador.");
			else if (output.responseText == 3) 
				alert("Erro ao remover o arquivo "+file+".\r\nTente novamente em alguns minutos ou contate o administrador.");
			else if (output.responseText == 4) 
				alert("Erro ao validar seu Login/Senha.\r\nTente novamente em alguns minutos ou contate o administrador.");
		}
	});
}
function photoEdit (aFile,newFile) {
	if (!newFile)
		desc = prompt("Nova descrição para "+aFile+ ":");
	else
		desc = prompt("Digite a descrição para "+aFile+ ":");
	if (!desc && !newFile)
		return;
	else if (!desc && newFile) {
		alert("Foto enviada com sucesso.");
		return;
	}
	new Ajax.Request("funct/funct.admPhotos.php", {
		method: 'post',
		parameters: { opt:'a', file:aFile, newDesc:desc },
		onSuccess: function (output) {
			if (output.responseText == 0)
			{
				if (!newFile)
					alert("Erro ao editar descrição (return: 0).\r\nTente novamente em alguns minutos ou contate o administrador.");
				else
					alert("Erro ao cadastrar descrição (return: 0).\r\nTente novamente em alguns minutos ou contate o administrador.");
			}
			else if (output.responseText == 1) {
				if (!newFile) {
					alert("Descrição cadastrada com sucesso.");
					loadPage("mainContent","pages/page.gallery.php");
				}
				else
					alert("Foto enviada com sucesso.");
			}
			else if (output.responseText == 2) 
				alert("Arquivo não encontrado.\r\nTente novamente em alguns minutos ou contate o administrador.");
			else if (output.responseText == 3) 
				alert("Erro ao validar seu Login/Senha.\r\nTente novamente em alguns minutos ou contate o administrador.");
			else if (output.responseText == 5) 
			{
				if (newFile) {
					alert("Erro:\r\nNúmero máximo de caracteres da descrição: 90\r\n\r\nA descrição da foto ficará em branco.");
					alert("Foto enviada com sucesso.");
				}
				else {
					alert("Erro:\r\nNúmero máximo de caracteres da descrição: 90");
				}
			}
		}
	});
}
function updateGeneral (footer,adStreet,adNumber,adDistrict,adCity,email,phone,prints) {
	if (isNaN(prints)) {
		alert('Verifique o preenchimento do campo Número de Impressões');
		return;
	}
	if (prints <= 0) {
		alert("Número de impressões deve ser maior do que 0 (zero).");
		return;
	}
	new Ajax.Request("funct/funct.admGeneral.php", {
		method: 'post',
		parameters: { footer:footer,adStreet:adStreet,adNumber:adNumber,adDistrict:adDistrict,adCity:adCity,email:email,phone:phone,prints:prints },
		onSuccess: function (output) {
			if (output.responseText == 0) 
				alert("Erro ao atualizar opções.\r\nTente novamente em alguns minutos ou contate o administrador.");
			else if (output.responseText == 1) 
			{
				alert("Opções alteradas.");
				loadPage("mainContent","pages/page.adm.general.php");
			}
			else if (output.responseText == 2) 
				alert("Erro ao validar seu Login/Senha.\r\nTente novamente em alguns minutos ou contate o administrador.");
		}
	});
}

function generateSheet () {
	$('iframeSheet').src="funct/funct.generateSheet.php";
}

function addComm (title, content, enabled) {
	new Ajax.Request("funct/funct.admComm.php", {
		method: 'post',
		parameters: { opt:'a', title:title, content:content, enabled:enabled },
		onSuccess: function (output) {			
			if (output.responseText == 0)
				alert("Erro ao Inserir comunicado.\r\nTente novamente em alguns minutos ou contate o administrador.");
			else if (output.responseText == 1) {
				alert("Comunicado adicionado com sucesso!");
				document.location.reload();
			}
			else if (output.responseText == 2) 
				alert("Já existe comunicado com o mesmo título");
			else if (output.responseText == 3) 
				alert("Erro ao validar seu Login/Senha.\r\nTente novamente em alguns minutos ou contate o administrador.");
			else if (output.responseText == 4) 
				alert("Verifique o preenchimento dos campos Titulo e Conteudo.\r\nAmbos são obrigatórios.");
		}
	});
}
function editComm (title) {
	content = prompt("Novo conteúdo para \""+title+ "\":");
	if (!content)
		return;
	enabled = true;
	new Ajax.Request("funct/funct.admComm.php", {
		method: 'post',
		parameters: { opt:'u', title:title, content:content, enabled:enabled },
		onSuccess: function (output) {			
			if (output.responseText == 0)
				alert("Erro ao editar comunicado.\r\nTente novamente em alguns minutos ou contate o administrador.");
			else if (output.responseText == 1) {
				alert("Comunicado editado com sucesso!");
				loadPage("mainContent","pages/page.main.php");
			}
			else if (output.responseText == 2) 
				alert("Não foi encontrado comunicado para alteração.\r\nTente novamente em alguns minutos ou contate o administrador.");
			else if (output.responseText == 3) 
				alert("Erro ao validar seu Login/Senha.\r\nTente novamente em alguns minutos ou contate o administrador.");
			else 
				alert("Erro ao requisitar alteração.\r\nTente novamente em alguns minutos ou contate o administrador.");
		}
	});
}
function delComm (title) {
	content = confirm("Tem certeza que deseja remover \""+title+"\"?");
	if (!content)
		return;
	enabled = true;
	new Ajax.Request("funct/funct.admComm.php", {
		method: 'post',
		parameters: { opt:'d', title:title },
		onSuccess: function (output) {			
			if (output.responseText == 0)
				alert("Erro ao remover comunicado.\r\nTente novamente em alguns minutos ou contate o administrador.");
			else if (output.responseText == 1) {
				alert("Comunicado removido com sucesso!");
				loadPage("mainContent","pages/page.main.php");
			}
			else if (output.responseText == 2) 
				alert("Não foi encontrado comunicado para exclusão.\r\nTente novamente em alguns minutos ou contate o administrador.");
			else if (output.responseText == 3) 
				alert("Erro ao validar seu Login/Senha.\r\nTente novamente em alguns minutos ou contate o administrador.");
			else 
				alert("Erro ao requisitar exclusão.\r\nTente novamente em alguns minutos ou contate o administrador.");
		}
	});
}
function stopAutoReload()
{
  clearTimeout(timeoutRef);
}
function changeOnFocus (id,txtChange,focusBlur) {
	if (focusBlur == "focus") {
		if ($(id).value == txtChange)
		{
		  $(id).value = '';
		}
	}
	if (focusBlur == "blur") {
		if ($(id).value == '')
		{
		  $(id).value = txtChange;
		}
	}
}