// EnFin v2.0
// Main JS Lib

var callVerb = false;
var lastInit = 'a';
var rnd = Math.round(Math.random()*100000);

function queryAssincResponse(){
	if (http_request.readyState == 4){
		if (http_request.status == 200){
			document.getElementById('topverbetes').className = 'topverbetesQuery';
			
			if(unescape(http_request.responseText).indexOf('Sua')==0){
				document.getElementById('significado').innerHTML = unescape(http_request.responseText);
				document.getElementById('significado').scrollTop       = 0;

				document.getElementById('h2tit').innerHTML = 'Resultado da Pesquisa';
				document.getElementById('topverbetes').className = 'topverbetes';
				
				if(document.getElementById('topverbetes').innerHTML == 'Pesquisa')
					document.getElementById('topverbetes').className = 'topverbetesQuery';
			}
			else{
				document.getElementById('topverbetes').innerHTML = 'Pesquisa';
				document.getElementById('frame').innerHTML       = unescape(http_request.responseText);
//				document.getElementById('frame').scrollTop       = 0;
			}

			ajustFrameSize();
			HideLoading();
		}
		else{
			alert("Problema recebendo os dados:\n" + http_request.statusText);
			ajustFrameSize();
			HideLoading();
		}
	}
}

function query(){
	ShowLoading();
	if(document.getElementById("query") != 'undefined'){
		if(document.getElementById("query").value != ''){
			rnd++;
			makeRequestAssinc('includes/populate_query.php?query=' + document.getElementById("query").value + '&rnd=' + rnd, queryAssincResponse);
		}
		else{
			obj.value = 'Digite sua pesquisa';
			HideLoading();
		}
	}	
}

function getConUseAssincResponse(){
	if (http_request.readyState == 4){
		if (http_request.status == 200){
			document.getElementById('h2tit').innerHTML       = 'Condições de uso';
			document.getElementById('significado').innerHTML = unescape(http_request.responseText);
			document.getElementById('significado').scrollTop = 0;
			ajustFrameSize();
			HideLoading();
		}
		else{
			alert("Problema recebendo os dados:\n" + http_request.statusText);
			ajustFrameSize();
			HideLoading();
		}
	}
}

function getCondUse(){
	ShowLoading();
	rnd++;
	makeRequestAssinc('includes/populate_conduse.php?rnd=' + rnd, getConUseAssincResponse);
}

function getVerbsAssincResponse(){
	if (http_request.readyState == 4){
		if (http_request.status == 200){
			document.getElementById('frame').innerHTML = unescape(http_request.responseText);
//			document.getElementById('frame').scrollTop = 0;
			ajustFrameSize();
			if(callVerb){
				getVerbForID('-1', 'Atualizações');
			}
			else{
				firstId = makeRequestSinc2('includes/populate_verbinitchar.php?init=' + lastInit + '&rnd=' + rnd, getConUseAssincResponse);
				getVerbForID(firstId);
				//ajustFrameSize();
				//HideLoading();
			}
		}
		else{
			alert("Problema recebendo os dados:\n" + http_request.statusText);
			ajustFrameSize();
			HideLoading();
		}
	}
}

function getVerbsForInit(initChar, callVerbBack){
	ShowLoading();
	if( (initChar != 'undefined') && (initChar != '') )	{
		if(callVerbBack == 'undefined'){
			callVerb = true;
		}
		else{
			callVerb = callVerbBack;
		}
		lastInit = initChar;
		document.getElementById('topverbetes').className = 'topverbetes';
		document.getElementById('topverbetes').innerHTML = initChar;
		rnd++;
		makeRequestAssinc('includes/populate_menuverb.php?init=' + initChar + '&rnd=' + rnd, getVerbsAssincResponse);
		document.getElementById('frame').scrollTop       = 0;		
	}
}

function AssincResponse(){
	if (http_request.readyState == 4){
		if (http_request.status == 200){
			document.getElementById('significado').innerHTML = unescape(http_request.responseText.replace(/\+/g," "));
			document.getElementById('significado').scrollTop = 0;
			rnd++;
			//check_session = makeRequestSinc2('includes/check_session.asp?rnd=' + rnd);
			ajustFrameSize();
			HideLoading();
		}
		else{
			alert("Problema recebendo os dados:\n" + http_request.statusText);
			ajustFrameSize();
			HideLoading();
		}
	}
}

function getVerbForID(id, verbete){
	ShowLoading();
	if( (verbete == undefined) || (verbete == '') || (verbete == 'undefined')){
		rnd++;
		verbete = makeRequestSinc2('includes/populate_getverbname.php?id=' + id + '&rnd=' + rnd);
	}

	if( (id != 'undefined') && (id != '') )	{
		document.getElementById('h2tit').innerHTML = verbete;
		rnd++;
		makeRequestAssinc('includes/populate_verbeteid.php?id=' + id + '&rnd=' + rnd, AssincResponse);
	}	
}

function getVerbForNAME(verbete){
	ShowLoading();
	if( (verbete != 'undefined') && (verbete != '') )	{
		document.getElementById('h2tit').innerHTML = verbete;
		rnd++;
		makeRequestAssinc('includes/populate_verbeteid.php?verbete=' + escape(verbete) + '&rnd=' + rnd, AssincResponse);
	}
}

function getBrowserHeight(){
    if (window.innerHeight)
        return window.innerHeight;
    else if (document.documentElement && document.documentElement.clientHeight != 0)
        return document.documentElement.clientHeight;
    else if (document.body)
        return document.body.clientHeight;
}

function ajustFrameSize(){
	//Browser detection
	var dom = document.getElementById ? true:false;
	var nn4 = document.layers ? true:false;
	var ie4 = document.all ? true:false;
	var docHeigth = getBrowserHeight(); 
	
	if(ie4){
		var topo        = document.all["topo"].clientHeight;
		var menualfa    = document.all["menualfa"].clientHeight;
		var topverbetes = document.all["topverbetes"].clientHeight;
		var fim         = document.all["fim"].clientHeight;
		var h2tit       = document.all["h2tit"].clientHeight;
		var busca       = document.all["busca"].clientHeight;
		var rodape 		= document.all["rodape"].clientHeight;
		document.all["frame"].style.height       = (docHeigth - topo - topverbetes - menualfa - fim - busca - rodape - 20) + "px";
		document.all["significado"].style.height = (docHeigth - topo - topverbetes - menualfa - h2tit - busca - rodape - 20) + "px";
	}
	else{
		var topo        = document.getElementById('topo').clientHeight;
		var menualfa    = document.getElementById('menualfa').clientHeight;
		var topverbetes = document.getElementById('topverbetes').clientHeight;
		var fim         = document.getElementById('fim').clientHeight;
		var h2tit       = document.getElementById('h2tit').clientHeight;
		var busca       = document.getElementById('busca').clientHeight;
		var rodape      = document.getElementById('rodape').clientHeight;
		document.getElementById('frame').style.height       = (docHeigth - topo - topverbetes - menualfa - fim - busca - rodape - 30) + "px";
//		document.getElementById('frame').scrollTop          = 0;
		document.getElementById('significado').style.height = (docHeigth - topo - topverbetes - menualfa - h2tit - busca - rodape - 30) + "px";
		document.getElementById('significado').scrollTop    = 0;
	}
}

function ShowLoading(){
	document.getElementById('loading').style.visibility = "visible";
	document.getElementById('loadingimage').style.visibility = "visible";
}

function HideLoading(){
	document.getElementById('loading').style.visibility = "hidden";
	document.getElementById('loadingimage').style.visibility = "hidden";
}

function bodyOnLoad(){
	ajustFrameSize();
	getVerbsForInit('A', true);
	updateClass('0');
}

function queryKeyDown(e){
	if(document.all) { //it's IE 
		var en = window.event.keyCode; 
	}
	else{ 
		en = e.which; 
	} 

	if (en == 13){
		query();
	}
}	

function updateClass(id){
	var i = 0;
	while(document.getElementById(i) != undefined){
		document.getElementById(i).className='';
		i++;
	}
	document.getElementById(id).className='selected';
}

window.onload   = bodyOnLoad;
window.onresize = ajustFrameSize;