// Variável de controle do status dos botões da toolbar.
var toolbarOptionStatus = 0;

// Array de controle de opções para foco.
var arrayToolbarOptions = [];

Event.observe(window, 'load', function() {
	if(typeof(toolbarCountPM) != 'undefined')
		arrayToolbarOptions.push('toolbarOptionPM');

	if(typeof(toolbarCountSolicitations) != 'undefined')
		arrayToolbarOptions.push('toolbarOptionSolicitations');

	if(arrayToolbarOptions.length > 0)
		window.setInterval('setToolbarOptionStatus();', 500);
});

/**
 * Controla o status das opções da toolbar.
 */
function setToolbarOptionStatus() {
	for(var i = 0; i < arrayToolbarOptions.length; i++) {
		$(arrayToolbarOptions[i]).style.marginTop = (toolbarOptionStatus == 1 ? 0 : -42);
		$(arrayToolbarOptions[i]).style.marginBottom = (toolbarOptionStatus == 1 ? -42 : 0);
	}

	toolbarOptionStatus = toolbarOptionStatus == 0 ? 1 : 0;	
}

/**
* ARQUIVO DE FUNÇÕES GERAIS DE JAVASCRIPT DO CONEXÃO MIX.
**/
// Codifica HTML Para URL
function codificarHTML(str){
	var htmlCodificado = escape(str);
	htmlCodificado = htmlCodificado.replace(/\//g,"%2F");
	htmlCodificado = htmlCodificado.replace(/\?/g,"%3F");
	htmlCodificado = htmlCodificado.replace(/=/g,"%3D");
	htmlCodificado = htmlCodificado.replace(/&/g,"%26");
	htmlCodificado = htmlCodificado.replace(/@/g,"%40");

	return htmlCodificado;
}

// Retorna o tamanho da tela do usuário
function capturaTamanhoTela(){
	var body = document.getElementsByTagName("body")[0];
	var clientWidth = body.clientWidth;
	var clientHeight = body.clientHeight;
	return new Array(clientWidth, clientHeight);
}

// Centraliza um objeto na tela
function centralizaObjeto(nomeObjeto, widthObjeto, heightObjeto){
	var tamanhoTela = capturaTamanhoTela()
	var body = document.getElementsByTagName("body")[0];
	var posicaoScroll = body.scrollTop;
	$(nomeObjeto).style.left = (tamanhoTela[0] / 2) - (widthObjeto / 2);
	$(nomeObjeto).style.top = posicaoScroll + ((tamanhoTela[1] / 2) - (heightObjeto / 2));
}

// Fecha um objeto (div)
function fechaObjeto(nomeObjeto){
	$(nomeObjeto).className = "DIVHIDE";
	try{
		$("divDesabilitaTela").className = "DIVHIDE";
	}catch(e){}
	visibilitySelects("visible");
}

// Desabilita os selects da tela em virtude do BUG do IE (visibility: "visible" ou "hidden")
function visibilitySelects(visibility){
	var selects = document.getElementsByTagName("select");
	for(i = 0; i < selects.length; i++)
		selects[i].style.visibility = visibility;
}

// Exibe a div que desabilita a tela
function desabilitaTela(){
	var tamanhoTela = capturaTamanhoTela()
	visibilitySelects("hidden");
	if($("divDesabilitaTela"))
		$("divDesabilitaTela").className = "DIVDESABILITATELA";
	else{
		var body = document.getElementsByTagName("body")[0];
		var div = document.createElement("div");
		div.id = "divDesabilitaTela";
		div.className = "DIVDESABILITATELA";
		div.style.width = tamanhoTela[0];
		//div.style.height = tamanhoTela[1];
		div.style.height = body.scrollHeight;
		body.appendChild(div);
	}
}

// Cria uma DIV Auxiliar e carrega o seu conteúdo
function criaDivAuxiliar(nomeDiv, widthDiv, heightDiv, flagDesabilitaTela, url, parametros, methodAction){
	if(flagDesabilitaTela)
		desabilitaTela();

	if(!$(nomeDiv)){
		var body = document.getElementsByTagName("body")[0];
		var div = document.createElement("div");
		div.id = nomeDiv;
		div.style.width = widthDiv;
		div.style.height = heightDiv;
		body.appendChild(div);
	}

	$(nomeDiv).className = "DIVAUXILIAR";
	centralizaObjeto(nomeDiv, widthDiv, heightDiv);
	var pars = parametros + "&nomeDiv=" + nomeDiv;
	new Ajax.Updater({success: nomeDiv}, url, {method: methodAction, parameters: pars, evalScripts: true});
}

// Habilita / Desabilita os botões de um Form (disabled: true ou false)
function disableButtonsForm(nomeForm, disabled){
	//Varre os Elementos do Form
	for(i = 0; i < $(nomeForm).elements.length; i++){
		var objFrm = $(nomeForm).elements[i];
		if(objFrm.type == "button")
  			$(objFrm).disabled = disabled;
	}
}

// Exibe o preview de uma imagem
function showPreviewImage(tempName){
	var body = document.getElementsByTagName("body")[0];
	var link = document.createElement("a");
	link.id = "linkPreviewImage";
	link.href = pathWeb + "/temp/visualizacao/" + tempName;
	link.rel = "lightbox";
	body.appendChild(link);
	initLightbox();
	$("linkPreviewImage").click();
	Element.remove($("linkPreviewImage"));
}

// Atualiza a sessão do usuário
function updateSessaoUsuario(){
	var url = pathWeb + "/portal/request/updateSessaoUsuario.php";
	new Ajax.Request(url);
}

// Carrega uma sala
function openSala(cdSala, cdTopico, cdFoto){
	var url = pathWeb + "/space/" + cdSala;
	if(typeof(cdTopico) != "undefined" && cdTopico != "")
		url += "/topic/" + cdTopico;

	if(typeof(cdFoto) != "undefined")
		url += "/photo/" + cdFoto;

	window.location.href = url;
}

// Enviar MP para usuário
function enviarMP(nmUsuario){
	window.location.href = pathWeb + "/pm/" + nmUsuario;
}

// Abre a pop-up de download
function downloadFile(type, id){
	var popUp = window.open(pathWeb + "/download/" + type + "/" + id, "download", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,menubar=no");
	if(!popUp)
		alert("É necessário desabilitar o seu bloqueador de pop-ups para realizar esta operação.");
}

function msnChat(dsMsn){
	window.location.href = "msnim:chat?contact=" + dsMsn;
}

// Cria o objeto FCKEdtitor
function createEditor(object){
	var oFCKeditor = new FCKeditor(object.field);
	oFCKeditor.Height = object.height;
	oFCKeditor.Container = object.container;
	oFCKeditor.Value = (object.value ? object.value : '');

	if(object.toolbar)
		oFCKeditor.ToolbarSet = object.toolbar;

	oFCKeditor.Create();
}

// Retorna o número de caracteres do objeto FCKEditor
function getFCKEditorLength(objectName){
	var oEditor = FCKeditorAPI.GetInstance(objectName);
	var oDOM = oEditor.EditorDocument;
	var iLength;

	if(document.all){
		// If Internet Explorer.
		iLength = oDOM.body.innerText.length;
	}else{
		// If Gecko.
		var r = oDOM.createRange();
		r.selectNodeContents(oDOM.body);
		iLength = r.toString().length;
	}

	return iLength;
}

// Captura o HTML do objeto FCKEditor
function getFCKEditorHTML(objectName){
	var oEditor = FCKeditorAPI.GetInstance(objectName);
	var objectValue = oEditor.GetXHTML(true);

	objectValue = objectValue.replace(/\n/g, "");
	objectValue = objectValue.replace(/'/g, "");
	objectValue = objectValue.replace(/&/g, "<REPLACE_E>");
	return codificarHTML(objectValue);
}