// JavaScript Document

// Esta função instancia o objeto XMLHttpRequest
function openAjax()
{
	var ajax;
	
	try
	{
		ajax = new XMLHttpRequest();
	}
	catch(ee)
	{
		try
		{
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				ajax = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(E)
			{
				ajax = false;
			}
		}
	}
	
	return ajax;
}

// Utilizado para evitar de digitar: document.getElementById toda hora, tornando o processo mais prático
function gE(ID)
{
	return document.getElementById(ID);
}

// Utilizado para evitar de digitar: document.getElementsByTagName toda hora, tornando o processo mais prático
function gEs(tag)
{
	return document.getElementsByTagName(tag);
}

// Utilizado para criar o fundo sobre a página (wiewport), body.
function exibirBgBody() // Tela preta
{
	// Seleciona a tag body. item(0) por que só existe uma tag body
	var tagBody = gEs('body').item(0);
	
	// Pega os tamanhos atuais da página, como largura, altura, ...
	var sizesPage = getPageSize();
	
	// Vamos criar uma tag div
	var bgBody = document.createElement('div');
	
	// Setar o atributo ID a div criada
	bgBody.setAttribute('id','bgBody');
	
	// Essa div terá o tamanho exato da página
	bgBody.style.height = arrayPageSize[1] + 'px';
	//bgBody.style.height = '100%';
	//bgBody.style.height = document.body.clientHeight + "px";
	
	// Essa div terá a largura exata da página
	//bgBody.style.width = arrayPageSize[0] + 'px';
	bgBody.style.width = '100%';
	
	// Evita criar a div novamente
	if (!gE('bgBody'))
	{
		tagBody.insertBefore(bgBody, tagBody.firstChild);
	}	
}

// Cria a div denominada como boxCad, a qual conterá o formulário de cadastro
function boxCad() // a área para o formulário de inclusão/alteração
{
	// Cria um 'container' que comportará o formulário de cadastro.
	var objBody = gEs('body').item(0);
	var sizesPage = getPageSize();
	var boxCad = document.createElement('div');
	boxCad.setAttribute('id','boxCad');
	
	var wPage = arrayPageSize[0]; // Largura total da página
	var hPage = arrayPageSize[1]; // tamanho total da página
	//boxCad.style.width = '500px'; // metade da largura da página*/
	//boxCad.style.height = (wPage / 2) + 'px'; // metada da altura da página
	//boxCad.style.marginTop = -(wPage / 4 - 100) + 'px'; // 1 quarto da largura

	var vLeft = wPage-500;
	vLeft = vLeft - (vLeft%2);
	vLeft /= 2 ;

	boxCad.style.marginLeft = vLeft + 'px'; // 1 quarto da altura
	objBody.insertBefore(boxCad, objBody.lastChild);
}

// Esta função elimina da página o fundo criado sobre o body e o boxCad;
function removerDivs()
{
	var bgBody = gE('bgBody'); // Elimina a tela preta
	var boxCad = gE('boxCad'); // Elimina o formulário
	
	bgBody.parentNode.removeChild(bgBody);
	if (boxCad)
	{ // Por que ao clicar X (para deletar um registro) cria-se somente o encobridor e não o boxCad	
		boxCad.parentNode.removeChild(boxCad);
	}
}

// Utilizado para criar o efeito de loading
function loading(opt) // Criação do efeito
{
	if (opt == true)
	{
		// A tag que receberá a img de loading
		var refer = gE('bgBody');
		
		// O tamanho da referida tag
		var referHeight = refer.offsetHeight;
		
		// Dizemos que os elementos dentro dela será alinhado ao centro
		refer.style.textAlign = 'center';
		
		// Criamos uma imagem, img.
		var img = document.createElement('img');
		var spacer = document.createElement('img');
		
		// Informamos o caminho da img
		img.setAttribute('src','img/imgLoading.gif');
		spacer.setAttribute('src','img/spacer.gif');
		
		// Setamos um atributo ID na img criada
		img.setAttribute('id','loading');
		spacer.setAttribute('id','spacer');
		
		// Definimos seu tamanho
		img.setAttribute('width','126');
		
		// Dizemos que o margin-top será a metada do tamanho da div
		//img.style.marginTop = (referHeight /2) + 'px';
		spacer.style.marginTop = (referHeight /2) + 'px';
		
		// Evita que seja criada duas ou mais img de loading
		if (!document.getElementById('loading'))
		{
			// Insere a img na tag informada na variável refer
			refer.insertBefore(spacer, refer.firstChild);
			refer.innerHTML+='<div id="mensagem" style="color:#FF6">Carregando...</div><br>';
			refer.insertBefore(img, refer.lastChild);
		}
	}
	else if (opt == false)
	{
		// Referenciamos a img de login através de seu ID
		var imgLoading = gE('loading');
		var imgSpacer = gE('spacer');
		var divMensagem = gE('mensagem');
		
		// Removemos a img de loading
		if (imgLoading)
		{
			imgLoading.parentNode.removeChild(imgLoading);
			imgSpacer.parentNode.removeChild(imgSpacer);
			divMensagem.parentNode.removeChild(divMensagem);
		}
	}
}

/* Funções de terceiros */
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
function getPageSize()
{
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY)
	{	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	}
	else if (document.body.scrollHeight > document.body.offsetHeight)
	{ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	}
	else
	{ // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight)
	{	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
	{ // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	}
	else if (document.body)
	{ // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight)
	{
		pageHeight = windowHeight;
	}
	else
	{ 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth)
	{	
		pageWidth = windowWidth;
	}
	else
	{
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 

}

// Simula um clique no botão referente ao id da aula passada
function abrirAula(aula)
{
	var links = gEs('a');
	for(var i=0; i<=links.length; i++)
	{
		if(links[i].href.indexOf("conteudo.php?id="+aula) >= 0)
		{
			location.href = links[i].getAttribute("link").replace("&null");
			return;
		}
	}
}

// Mostra tela com as informações das aulas. Carrega via Ajax.
function mostraAula(aula)
{
	// Executa a função que cria o fundo sobre página
	exibirBgBody();
	
	// Cria um div - definida como boxCad - que armazenará o formulário de cadastro
	boxCad();
		
	// A tag bgBody conterá o formulário de cadastro
	var recipiente = gE('boxCad');

	// Inicia o Ajax, através da variável Ajax
	ajax = openAjax();
	
	if(ajax)
	{
		// Informamos o método e a página que será requisitada
		ajax.open("GET", "aula.php?id="+aula, true);
	
		// bla
		ajax.onreadystatechange = function()
		{
			if (ajax.readyState == 1)
			{
				// Cria o efeito de loading
				loading(true);
			} // if->readyState->1
			
			if(ajax.readyState == 4)
			{
				// Remove o efeito de loading
				loading(false);
				
				if (ajax.status == 200)
				{
					// Pega o conteúdo - HTML - da página requisitada: formulario.php?ajax=true e coloca dentra da div definida na variável recipiente
					recipiente.innerHTML = ajax.responseText;
				}
				else
				{
					alert("Link Quebrado.");
					removerDivs();
				}
			}
		}
		
		ajax.send(null);
	}
	else
	{
		return true;
	}
	
	return false;
}


function carregaVideoAula(objeto,ID,f,img)
{
	try
	{
		objeto.href = "popmedia.php?ID="+ID+"&f="+f+"&conteudo";
		objeto.target = "frmVideoAula";
		
		var ranNum = Math.random();
		ranNum += "";
		ranNum = ranNum.replace(/\./g,"");
		document.getElementById("imgAula").src = "img/slides/"+img+"?r="+ranNum;
		
		return true;
	}
	catch(e)
	{
		alert("ERRO");
	}
}