
	/**
	* Função para inibir clicks em links e botões se for preview
	* de estatística
	*/
	setFuncaoOnLoad("configEventosPreviewEstatistica()");
	function configEventosPreviewEstatistica(){
		if(getParametroUrl("nca") == 's'){
			setUpOnEventoTag ('INPUT', 'onclick', 'inibeOnClick');
			setUpOnEventoTag ('A', 'onclick', 'inibeOnClick');
			configEventosMouse("mousedown");
			configEventosMouse("contextmenu");
		}	
	}
	function EcpEvento(){}
	var ecpEvento = new EcpEvento();
	EcpEvento.prototype.handlerOnResize = function(){
		ecpEvento.evtOnResize();
	}
	EcpEvento.prototype.evtOnResize = function(){
	}
	if(ExpYes)
		window.attachEvent("onresize", ecpEvento.handlerOnResize);
	else	
		window.addEventListener("resize", ecpEvento.handlerOnResize,true)

	function addToFavorites(title, url){

		if(title == "")
			title = document.title;
		if(url == "")	
			url = document.location.href;
		if (document.all)
			window.external.AddFavorite(url, title);
		else if (window.sidebar)
			window.sidebar.addPanel(title, url, "")
	}

	function enviarEmail(assunto, nomeDiv, email, nome){
		var emailPortal = "&emailPortal=S";
		var conteudo = getElementoPorId(nomeDiv).innerHTML;
		conteudo = conteudo.substring(0,conteudo.indexOf("<MENU_OPCOES>")) + conteudo.substring(conteudo.indexOf("</MENU_OPCOES>")+14, conteudo.length);
		var head = getCabecalho();
		conteudo = incluiEndAbsoluto(head+conteudo);
		
		if(email != ""){
			email = "&email="+email
			emailPortal = "&emailPortal=A";
			if(nome != "")
				nome = "&nome="+nome
		}	
		setVarGlobal("emailConteudo",conteudo)
		setVarGlobal("emailAssunto",assunto)
		if(ExpYes)
			janela(plcGeral.contextPath+"/ecp/webmailnovamsg.do?evento=novaMensagem&acao=N&acao=N"+emailPortal+email+nome,400,370);
		else
			janela(plcGeral.contextPath+"/ecp/webmailnovamsg.do?evento=novaMensagem&acao=N&acao=N"+emailPortal+email+nome,405,380);
	}

	function enviarEmailSimples(assunto, remetente, destinatario, nome, corpo){
		var emailPortal = "&emailPortal=S";
		if(destinatario != ""){
			destinatario = "&email="+destinatario
			emailPortal = "&emailPortal=A";
			if(nome != "")
				nome = "&nome="+nome
		}	
		setVarGlobal("emailConteudo",corpo)
		setVarGlobal("emailAssunto",assunto)

		if(ExpYes)
			janela(plcGeral.contextPath+"/ecp/webmailnovamsg.do?evento=novaMensagem&acao=N&acao=N"+emailPortal+destinatario+nome,400,370);
		else
			janela(plcGeral.contextPath+"/ecp/webmailnovamsg.do?evento=novaMensagem&acao=N&acao=N"+emailPortal+destinatario+nome,405,380);
	}

	function incluiEndAbsoluto(conteudo){
		var host = document.location.hostname;
		var port = document.location.port;
		port = typeof port == "undefined" || port == null ? "" : ":"+port;
		var urlBase = "http://"+host+port+plcGeral.contextPath+"/";

		do{
			conteudo = conteudo.replace("href=\""+plcGeral.contextPath+"/","href=\""+urlBase)
		}while(conteudo.indexOf("href=\""+plcGeral.contextPath) > -1)
		do{
			conteudo = conteudo.replace("src=\""+plcGeral.contextPath+"/","src=\""+urlBase)
		}while(conteudo.indexOf("src=\""+plcGeral.contextPath) > -1)
		do{
			conteudo = conteudo.replace("\/ecp\/images.do","images.do")
		}while(conteudo.indexOf("\/ecp\/images.do"+plcGeral.contextPath) > -1)
		do{
			conteudo = conteudo.replace("/ecp/files.do","files.do")
		}while(conteudo.indexOf("/ecp/files.do"+plcGeral.contextPath) > -1)
		
		conteudo = conteudo.replace(/images.do/g,urlBase+"images.do")
		conteudo = conteudo.replace(/files.do/g,urlBase+"/ecp/files.do")
		
		return conteudo;
	}

	function getCabecalho(){

		var head = "";
		if(ExpYes)
			head = document.all.tags('head')[0].innerHTML;
		else	
			head = document.getElementsByTagName('head')[0].innerHTML;
		return head;
	}


	/*
	 * File Authors:
	 * 		Paul Moers (mail@saulmade.nl)
	 * 		Thanks to Christian Fecteau (webmaster@christianfecteau.com)
	 */
	/***************************************************\
		REDIMENSIONA OBJETO PARA TELA CHEIA
	\***************************************************/
	function EcpResize(name,print){
		this.Name = name;
		this.objetoResize = parent.document.getElementById(this.Name);
		this.documentElementOverflow;
		this.bodyCssText;
		this.bodyClassName;
		this.originalCssText;
		this.originalWidth;
		this.originalHeight;
		this.autoFitToResize = true;
		this.objetoCentralizado = true;
	}
	var ecpResize = new EcpResize();
	EcpResize.prototype.hasBeenResized = null;
	EcpResize.prototype.Resize = function(evt, name, resize, print){
			if(typeof name != "undefined"){
					ecpResize.Name = name;
					ecpResize.objetoResize = parent.document.getElementById(ecpResize.Name);
			}	
			if(ExpYes){
				evt = event;
			}
			
			if(evt.type == 'resize'){
					ecpResize.Execute(false);
					ecpResize.Execute(true);
			}	else if(typeof resize == "undefined" || resize == "")
					ecpResize.Execute(!ecpResize.hasBeenResized);
			else 
					ecpResize.Execute(true);
			if(print && ecpResize.hasBeenResized)	
				window.print();
	}

	EcpResize.prototype.Execute = function(hasBeenResized)
	{
		var viewPaneWidth, viewPaneHeight;
		ecpResize.hasBeenResized = (hasBeenResized == null) ? false : hasBeenResized;
		if (ecpResize.originalCssText == null || ecpResize.hasBeenResized == true){
			if (hasBeenResized && ecpResize.autoFitToResize){
				if (ExpYes)
					window.attachEvent("onresize", ecpResize.Resize);
				else 
					window.addEventListener("resize", ecpResize.Resize, true);
			}
			// preparing the body for the editor in fullsize and hiding the scrollbars in Firefox
			with (top.document.getElementsByTagName("body")[0].style){
				ecpResize.bodyCssText= cssText; cssText= "";overflow= "hidden";
				margin= "0px";padding= "0px";height= "0px";width= "0px";
				position= "static";top= "0px";left= "0px";
			}
			// also storing a possible className
			ecpResize.bodyClassName = top.document.getElementsByTagName("body")[0].className;
			// hide IE scrollbars (in strict mode)
			if (ExpYes){
				ecpResize.documentElementOverflow = top.document.documentElement.style.overflow;
				top.document.documentElement.style.overflow = "hidden";
			}
			// now when the scrollbar is hidden, find the viewPane's dimensions
			viewPaneWidth = findViewPaneWidth();
			viewPaneHeight = findViewPaneHeight();
			// resize
			with (ecpResize.objetoResize.style){
				ecpResize.originalCssText					= cssText;
				ecpResize.originalWidth						= ecpResize.objetoResize.width;
				ecpResize.originalHeight						= ecpResize.objetoResize.height;
				position= "absolute";zIndex= "9999999";left= "0px";
				top= "0px";width= viewPaneWidth + "px";
				//height= viewPaneHeight + "px";
				height= viewPaneHeight;
				// giving the frame some (huge) borders on his right and bottom side to hide the background that would otherwise show when the editor is in fullsize mode and the window is increased in size
				// not for IE, because IE immediately adapts the editor on resize, without showing any of the background
				// oddly in firefox, the editor seems not to fill the whole frame, so just setting the background of it to white to cover the page laying behind it anyway
				if (NavYes){
					borderRight= "9999px solid white";borderBottom= "9999px solid white";
				}backgroundColor						= "white";
			}
			// scroll to top left
			top.window.scrollTo(0, 0);
		}// original style properties available? Resize to original size.
		else{
			// Removing the event handler of windowresizing
			if (ecpResize.autoFitToResize == true){
				if (top.detachEvent)
					top.detachEvent("onresize", ecpResize.Resize);
				//else if(top.removeEventListener)
					//top.removeEventListener("resize", ecpResize.Resize, true);
			}
			// restoring the body and restoring the scrollbars in Firefox
			with (top.document.getElementsByTagName("body")[0].style)
				cssText										= ecpResize.bodyCssText;
			// maybe it had a className...
			top.document.getElementsByTagName("body")[0].className = ecpResize.bodyClassName;
			// show IE scrollbars
			if (ExpYes)
				top.document.documentElement.style.overflow = ecpResize.documentElementOverflow;
			// restore original size
			with (ecpResize.objetoResize.style){
				try{
				cssText										= ecpResize.originalCssText;
				width											= ecpResize.originalWidth;
				height										= ecpResize.originalHeight;
				position									= "static";
				}catch(e){}
			}
			// scrolling so that the editor appears centered in the viewPane
			var adjustX, adjustY = 0;
			if (ecpResize.objetoCentralizado){
				viewPaneWidth = findViewPaneWidth();
				viewPaneHeight = findViewPaneHeight();
				adjustX = (viewPaneWidth - ecpResize.objetoResize.width) / 2;
				adjustY = (viewPaneHeight - ecpResize.objetoResize.height) / 2;
				if (adjustX < 1)
					adjustX = 0;
				if (adjustY < 1)
					adjustY = 0;
			}
			// Scroll to the editor
			top.window.scrollTo(findPosX(ecpResize.objetoResize) - adjustX, findPosY(ecpResize.objetoResize) - adjustY);
			// empty CSS buffer
			ecpResize.originalCssText = null;
		}
	}
	// finding the viewPane's width
	function findViewPaneWidth(){
		var viewPaneWidth = 0;
		if (top.window.clientWidth) // all except Explorer
			viewPaneWidth = top.window.clientWidth;
		else if (top.document.documentElement && top.document.documentElement.clientWidth) // Explorer 6 Strict Mode
			viewPaneWidth = top.document.documentElement.clientWidth;
		else if (top.document.body) // other Explorers
			viewPaneWidth = top.document.body.clientWidth;
		return viewPaneWidth;
	}
	// finding the viewPane's height
	function findViewPaneHeight(){
		var viewPaneHeight = "100%";
		//Comentado para que a altura seja retornada como 100%
	/*	if (top.window.clientHeight) // all except Explorer
			viewPaneHeight = top.window.clientHeight;
		else if (top.document.documentElement && top.document.documentElement.clientHeight) // Explorer 6 Strict Mode
			viewPaneHeight = top.document.documentElement.clientHeight;
		else if (top.document.body) // other Explorers
			viewPaneHeight = top.document.body.clientHeight;
	*/	
		return viewPaneHeight;
	}

	function findPosX(obj){
		var curleft = 0;
		if (obj.offsetParent)	{
			while (obj.offsetParent){
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		}	else if (obj.x)
			curleft += obj.x;
		return curleft;
	}
	function findPosY(obj){
		var curtop = 0;
		var printstring = '';
		if (obj.offsetParent)	{
			while (obj.offsetParent){
				printstring += ' element ' + obj.tagName + ' has ' + obj.offsetTop;
				curtop += obj.offsetTop
				obj = obj.offsetParent;
			}
		}	else if (obj.y)
			curtop += obj.y;
		return curtop;
	}

	/***************************************************\
	MENU FLUTUANTE BUSCA
	\***************************************************/

	/*
	Floating Menu script-  Roy Whittle (http://www.javascript-fx.com/)
	Script featured on/available at http://www.dynamicdrive.com/
	This notice must stay intact for use
	*/
	//Enter "frombottom" or "fromtop"
	var verticalpos="fromtop"
	if (!document.layers)
	document.write('</div>')

	function JSFX_FloatTopDiv()
	{
		var startX = 0,
		startY = 0;
		var ns = (navigator.appName.indexOf("Netscape") != -1);
		var d = document;
		function ml(id)
		{
			var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
			if(d.layers)el.style=el;
			el.sP=function(x,y){this.style.left=x;this.style.top=y;};
			el.x = startX;
			if (verticalpos=="fromtop")
			el.y = startY;
			else{
			el.y = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight;
			el.y -= startY;
			}
			return el;
		}
		window.stayTopLeft=function()
		{
			if (verticalpos=="fromtop"){
			var pY = ns ? pageYOffset : document.body.scrollTop;
			ftlObj.y += (pY + startY - ftlObj.y)/8;
			}
			else{
			var pY = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight;
			ftlObj.y += (pY - startY - ftlObj.y)/8;
			}
			ftlObj.sP(ftlObj.x, ftlObj.y);
			setTimeout("stayTopLeft()", 10);
		}
		
		ftlObj = ml("divStayTopLeft");
		stayTopLeft();
	}

	function novaMensagem(email, pele){
		WEBMAIL_ACAO = "MNV";
		email = typeof email != "undefined" ? email : "";
		if(email.indexOf("<") > -1){
			email = email.substring(email.indexOf("<")+1);
			email = email.substring(0,email.indexOf(">"));
		}
		if(email != "")
			email = "&email="+email.toLowerCase();
			
		janela(plcGeral.contextPath+"/ecp/webmailnovamsg.do?evento=novaMensagem&wmAcao="+WEBMAIL_ACAO+email+"&pelePlc"+pele,850,600);
	}

	function verificarEnquete(acao, url, w, h, props,campo, form, caminho){
		var winEnquete;	
		var resposta;
		if(acao == "v")	{
			resposta = get(campo,form);
			url += resposta
			if(resposta == ""){
				exibeMsg(msgErroEnquete)
				return false;
			}
		}
		url += "&app="+getParametroUrl ('app');
		if (caminho){
			jQuery("#enqueteResultado").hide();
			jQuery("#enqueteResultado").load(url+" "+caminho,"",function(){
				jQuery("#enquetePergunta").hide();
				jQuery("#enqueteResultado").show();
				try{alterarTituloEnquete(acao);}catch(e){};
			});
			return;
		}
		if(props != "" && ""+props != "undefined")
			winEnquete = janela(url,"",props);
		else
			winEnquete = janela(url,"","resizable=no,scrollbars=no,width="+w+",height="+h);
	}

	function montaMultiplasRespostasEnquete(check, campoResp, valResp, formResp){
		var respostas = get(campoResp, formResp);
		if(check.checked && respostas.indexOf(""+valResp) == -1){
			respostas += "+"+valResp;
		}else {
			respostas = respostas.replace("+"+valResp,"");
		}
		set(campoResp, respostas,'',formResp);		
	}

	function montaCaminhoNavegacao(conteudo){

			debug = false;


			var exibeLink 		= getVarGlobal("NAVEGACAO_EXIBE_HIPERLINKS");
			var link	 		= "<a href='"+getVarGlobal("NAVEGACAO_TAX_LINK")+"'>[LINK]</a>";
			//if(debug) alert("link: "+link)
			var pagina			= getVarGlobal("NAVEGACAO_ID_PAGINA");
			//if(debug) alert("pagina: "+pagina)
			var nivel1Nv		= getVarGlobal("NAVEGACAO_NIVEL_1_NV");
			if(debug) alert("nivel1Nv: "+nivel1Nv)

			var nomeComunidade 	= getVarGlobal("NAVEGACAO_NOME_COMUNIDADE");
			var nomePagina 		= getVarGlobal("NAVEGACAO_NOME_PAGINA");

			var nivel1	 		= getVarGlobal("NAVEGACAO_NIVEL_1") ? getVarGlobal("NAVEGACAO_NIVEL_1") : "";
			var nivel1H	 		= getVarGlobal("NAVEGACAO_NIVEL_1_H");
			var nivel1HArray	= nivel1H ? nivel1H.split("/") : new Array();
			if(debug) alert("nivel1: "+nivel1)
			//if(debug) alert("nivel1H: "+nivel1H)
			if(debug) alert("nivel1HArray: "+nivel1HArray)

			var	posApp			= nivel1.indexOf("/");
			var nomeApp			= nivel1.substring(0,posApp);
			nivel1 = nivel1.substring(posApp+1);
			var nv1Array		= nivel1.split("/");
			if(debug) alert("nv1Array: "+nv1Array);

			var nivelAtual	 		= getVarGlobal("NAVEGACAO_NIVEL_ATUAL");
			if(nivelAtual == null || nivelAtual == "")
				nv1Array.pop();
			if(debug) alert("nivelAtual: "+nivelAtual)

			var nomeConteudo 	= getVarGlobal("NAVEGACAO_NOME_CONTEUDO");

			var divNavegacao 	= getElementoPorId("DIV_CAMINHO_NAVEGACAO");
			if(!divNavegacao)
				return;

			var conteudo 	= divNavegacao.innerHTML;
				
			var tokens 		= new Array("COMUNIDADE","PAGINA","CONTEUDO");
			var tokensVal 	= new Array(nomeComunidade,nomePagina,nomeConteudo);

			for(var ind = 0; ind < nv1Array.length; ind++){
				tokens[tokens.length] = "NIVEL_" + Math.abs(ind + 1);
				tokensVal[tokensVal.length] = nv1Array[ind];
			}
			for(var ind2 = ind; ind2 < 10; ind2++){
				tokens[tokens.length] = "NIVEL_" + Math.abs(ind2 + 1);
				tokensVal[tokensVal.length] = "";
			}

			tokens[tokens.length] = "NIVEL_ATUAL";
			tokensVal[tokensVal.length] = nivelAtual;

			if(debug) alert("tokens: "+tokens)
			if(debug) alert("tokensVal: "+tokensVal)

			var token 		= "";
			var separador	= "";
			var linkAux		= "";
			var linkAnt		= "";
			var contTax		= 2;
			for(var indTk = 0; indTk < 14; indTk++){
				
				if(indTk > 7)
					debug = false;

				if(tokens[indTk]){
					token = tokens[indTk];
				} else if (indTk == 10){
					token = "NIVEL_ATUAL";
				}else{
					token = "NIVEL_"+indTk;
				}

				linkAux	= link;
				if(indTk < 4 || ((indTk+4) % 2 == 0) || token.indexOf("ATUAL") >= 0){

					if(debug) alert("NOVO LINK PARA TOKEN "+indTk+": "+token)

					if(token.indexOf("NIVEL") >= 0 && token.indexOf("ATUAL") < 0 &&  nivel1HArray[contTax]){
						if(debug) alert("contTax: "+ contTax)
						if(indTk >= 4 && contTax < nivel1HArray.length && nivel1HArray[contTax]){
							linkAux = linkAux.replaceAll("[TAX]","&tax="+nivel1HArray[contTax]);
							linkAux = linkAux.replaceAll("[TAXP]","&taxp="+nivel1HArray[contTax]);
							if(debug) alert("NOVO LINK NIVEL: "+linkAux)
							contTax+=2;
						}
					}else if(token.indexOf("ATUAL") >= 0 && tokensVal[indTk]){
						linkAux = tokensVal[indTk];
					}
					
					if(linkAux != "")
						linkAnt = linkAux;

				}else{
					if(debug) alert("USANDO LINK ANTERIOR: "+linkAnt)
					linkAux = linkAnt;
				}

				if(token.indexOf("CONTEUDO") >= 0 && typeof tokensVal[indTk] != "undefined")
					linkAux = tokensVal[indTk];
				if (token.indexOf("COMUNIDADE") >= 0 || token.indexOf("PAGINA") >= 0)
					linkAux	= link;
				if (exibeLink == 'N' && tokensVal[indTk])
					linkAux	= tokensVal[indTk];
				
				linkAux = linkAux.replaceAll("[LINK]",tokensVal[indTk]);

				//Limpando link
				if(token.indexOf("COMUNIDADE"))
					linkAux = linkAux.replaceAll("[PAGINA]","");
				if(pagina != null && pagina != "")
					linkAux = linkAux.replaceAll("[PAGINA]","&pg="+pagina);
				linkAux = linkAux.replaceAll("[TAX]","");
				linkAux = linkAux.replaceAll("[TAXP]","");

				if(debug) alert("Trocando token "+ indTk +": "+ token+"\nPor: "+linkAux)

				separador	= "SEPARADOR_"+token;
				posToken 	= conteudo.indexOf("$"+token+"$");
				posIni 		= conteudo.indexOf("$"+separador+"$");
				posFim 		= posToken + (("$"+token+"$").length - 1);
				if(posToken >= 0 && tokensVal[indTk] != null && !tokensVal[indTk] == ""){
					conteudo = conteudo.replaceAll("$"+token+"$",linkAux);
					conteudo = conteudo.replaceAll("$"+separador+"$", "");
				}	
				else{
					var replace = "";
					if(posIni > 0)
						replace = conteudo.substring(posIni, posFim + 1);
					else
						replace = "$"+token+"$";
					conteudo = conteudo.replaceAll(replace, "");
				}
			}
			
			divNavegacao.innerHTML = conteudo;
			divNavegacao.style.display = 'block';
	}

	setAtalho("CTRL#SHIFT#R", "executaRefresh()");
	function executaRefresh(){

		var url = location.href;
		removerParametroUrl(url,"refresh");
		removerParametroUrl(url,"refreshAll");
		incluirParametroUrl(url,"refresh","s")
		redirect(url);
	}

	function removerParametroUrl(url,param)
	{
		var paramUrl = getParametroUrl(param,url);
		url = url.replaceAll("&"+param+"="+paramUrl,"");
		url = url.replaceAll(param+"="+paramUrl,"");
		return url;
	}

	function incluirParametroUrl(url,paramNome,paramVal)
	{
		var posAncora = url.indexOf("#");
		var ancora = "";
		if(posAncora > 0){
			ancora = "#"+url.substring(posAncora+1, url.length);
			url = url.replace(ancora , "");
		}
		url = removerParametroUrl(url,paramNome);
		url += url.indexOf("?") >= 0 ?	"&" : "?";
		url += paramNome+"="+paramVal;
		return url +  ancora;
	}

	function getAlturaInternaJanela() {
	  var myHeight = 0;
	  if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		myHeight = window.innerHeight;
	  } else if( document.documentElement && document.documentElement.clientHeight) {
		//IE 6+ in 'standards compliant mode'
		myHeight = document.documentElement.clientHeight;
	  } else if( document.body && document.body.clientHeight) {
		//IE 4 compatible
		myHeight = document.body.clientHeight;
	  }

	  return myHeight;
	}

/*
	var initMediaBox = false;
	var GALERIA_1	= "GALERIA_1";
	var IMAGENS		= "IMAGENS";
	//setFuncaoOnLoad("setUpMediaShadowbox('GALERIA_1', 'shadowbox[GALERIA_1]')");
	//setFuncaoOnLoad("iniciarShadowbox()");
	function setUpMediaShadowbox (NOME, REL) {

		//Recupera LINKS
		var elementos = document.getElementsByName(NOME);
		if(elementos && elementos.length > 0 && typeof jQuery != "undefined") {
			var elementoAnterior = elementos;
			if(!elementos.length){
				elementos = new Array();
				elementos[elementos.length] = elementoAnterior
			}
			initMediaBox = true;
			for (e = 0; e < elementos.length; e++) {
				var umElemento = elementos[e];
				if(umElemento && umElemento.tagName == 'A'){
					umElemento.rel	= REL;
				}
				else if (umElemento && umElemento.tagName == 'IMG'){
					var a = document.createElement('A');
					a.href = umElemento.src;
					a.className = "ESCONDIDO";
					a.rel	= REL;
					document.body.appendChild(a);
				}

			}

			//Recupera IMAGENS
			var elementos = document.getElementsByTagName("IMG");
			if(elementos && elementos.length > 0 && typeof jQuery != "undefined") {
				initMediaBox = true;
				var elementoAnterior = elementos;
				if(!elementos.length){
					elementos = new Array();
					elementos[elementos.length] = elementoAnterior
				}
				for (i = 0; i < elementos.length; i++) {
					var umElemento = elementos[i];
					if(umElemento.id == NOME){
						var a = document.createElement('A');
						a.href = umElemento.src;
						a.className = "ESCONDIDO";
						a.rel	= REL;
						document.body.appendChild(a);
					}
				}
			}
		}
	}

	function gerarArrayElementos(origElem){
		var elementoAnterior = origElem;
		origElem = new Array();
		origElem[origElem.length] = elementoAnterior
		return origElem;
	}

*/


	/**********************************************************************************
									PORTLET BANNER
	**********************************************************************************/

	function criarBanner(idBanner, velocidade, efeito, possuiLinks){

		var tFx = traduzEfeito(efeito);
		var proximo = !possuiLinks ? '#'+idBanner : "";

		var opcoes = { 
			fx:     tFx, 
			speed:  300, 
			next:   proximo,
			timeout: velocidade 
		};
		criarBannerComOpcoes(idBanner, opcoes, possuiLinks);

	}

	function criarBannerComOpcoes(idBanner, opcoes, possuiLinks){

		var config = { 
				fx:     "slideX", 
				speed:  300, 
				next:   '#'+idBanner,
				timeout: 10000 
		}

		$.extend(config, opcoes);
			
		$('#'+idBanner).cycle(config);

	}

	function traduzEfeito(fx){

		if("Rolar Hor." == fx)
			return 'scrollHorz';
		else if("Rolar Vert." == fx)
			return 'scrollVert';
		else if("Trocar" == fx)
			return 'fade';
		else if("Aleatório" == fx)
			return 'shuffle';
		else return "fade"
	}

	/***********************************************************************************
									PORTLET GALERIA
	************************************************************************************/

	var opcoesPadrao = {
			loadingImage: "/plc/javascript/jquery/shadowbox/images/loading.gif", //The URL of an image to use as a loading indicator while loading content. Defaults to "images/loading.gif".
			resizeLgImages:     false,
			handleLgImages:		"drag", //The mode to use for handling images that are too large for the viewport. May be one of "none", "resize", or "drag". Defaults to "resize".
			displayNav:         true, //Set this false to hide the gallery navigation controls. Defaults to true.
			continuous: true, //Set this true to enable "continuous" galleries. 
			counterType: 'default', //The mode to use for the gallery counter. May be either 'default' or 'skip'. Defaults to "default".
			initialHeight: 160, //The height of Shadowbox (in pixels) when it first appears on the screen. Defaults to 160. 
			initialWidth: 320, //The width of Shadowbox (in pixels) when it first appears on the screen. Defaults to 320. 
			animate: true, //Set this false to disable all fancy dimension and opacity animations. This can improve the overall effect on computers with poor performance. Defaults to true.
			overlayColor: "#000", //The color to use for the overlay. Defaults to "#000".
			overlayOpacity: 0.85, //The transparency of the overlay. Defaults to 0.85.
			resizeDuration: 0.35,//The duration (in seconds) of the resizing animations. Defaults to 0.35.
			fadeDuration: 0.35, //The duration (in seconds) of the resizing animations. Defaults to 0.35.
			displayCounter: true, //Set this false to hide the gallery counter. Defaults to true.
			viewportPadding: 20, //The amount of padding (in pixels) to maintain around the edge of the browser window. Defaults to 20.
			enableKeys: true, //Set this false to disable keyboard navigation of galleries. Defaults to true.
			keysClose:     ['c', 27], // c or esc
			text:           {
				loading: 'Carregando...',   
				cancel: 'Cancelar',
				close: 'Fechar',
				next: '<b>></b>' ,
				prev: '<b><</b>'
			},
			skin: 	{		
				main:	'<div id="shadowbox_overlay"></div>' + 
						'<div id="shadowbox_container">' + 
							'<div id="shadowbox">' + 
								'<div id="shadowbox_title">' + 
									'<div id="shadowbox_title_inner"></div>' + 
								'</div>' + 
								'<div id="shadowbox_body">' + 
									'<div id="shadowbox_body_inner"></div>' + 
									'<div id="shadowbox_loading"></div>' + 
								'</div>' + 
								'<div id="shadowbox_toolbar">' + 
										'<div id="shadowbox_toolbar_inner"></div>' + 
								'</div>' + 
							'</div>' + 
						'</div>', 
				loading:    '<img src="{0}" alt="{1}" />' +
							'<span><a href="javascript:Shadowbox.close();">{2}</a></span>',
				counter: '<div id="shadowbox_counter">{0}</div>', 
				close: '<div id="shadowbox_nav_close">' + '<a href="javascript:Shadowbox.close();">{0}</a>' + '</div>', 
				next: '<div id="shadowbox_nav_next">' + '<a href="javascript:Shadowbox.next();">{0}</a>' + '</div>', 
				prev: '<div id="shadowbox_nav_previous">' + '<a href="javascript:Shadowbox.previous();">{0}</a>' + '</div>' 
		}

	};

	function criarGaleria(nomeGaleria, opcoes){

		$(document).ready(function(){
			iniciarShadowbox(nomeGaleria, opcoes)
		});
	}

	function iniciarShadowbox(nomeGaleria, opcoes){

		if(typeof opcoes == "undefined")
			opcoes = {};
		var options = {
			//gallery: nomeGaleria,
			loadingImage:		typeof opcoes.loadingImage != "undefined" ? opcoes.loadingImage : plcGeral.contextPath+opcoesPadrao.loadingImage,
			resizeLgImages:     typeof opcoes.resizeLgImages != "undefined" ? opcoes.resizeLgImages : opcoesPadrao.resizeLgImages,
			handleLgImages:		typeof opcoes.handleLgImages != "undefined" ? opcoes.handleLgImages : opcoesPadrao.handleLgImages,
			displayNav:         typeof opcoes.displayNav != "undefined" ? opcoes.displayNav : opcoesPadrao.displayNav,
			continuous:			typeof opcoes.continuous != "undefined" ? opcoes.continuous : opcoesPadrao.continuous,
			counterType:		typeof opcoes.counterType != "undefined" ? opcoes.counterType : opcoesPadrao.counterType,
			initialHeight:		typeof opcoes.initialHeight != "undefined" ? opcoes.initialHeight : opcoesPadrao.initialHeight,
			initialWidth:		typeof opcoes.initialWidth != "undefined" ? opcoes.initialWidth : opcoesPadrao.initialWidth,
			keysClose:			typeof opcoes.keysClose != "undefined" ? opcoes.keysClose : opcoesPadrao.keysClose,
			animate:			typeof opcoes.animate != "undefined" ? opcoes.animate : opcoesPadrao.animate,
			overlayColor:		typeof opcoes.overlayColor != "undefined" ? opcoes.overlayColor : opcoesPadrao.overlayColor,
			overlayOpacity:		typeof opcoes.overlayOpacity != "undefined" ? opcoes.overlayOpacity : opcoesPadrao.overlayOpacity,
			resizeDuration:		typeof opcoes.resizeDuration != "undefined" ? opcoes.resizeDuration : opcoesPadrao.resizeDuration,
			fadeDuration:		typeof opcoes.fadeDuration != "undefined" ? opcoes.fadeDuration : opcoesPadrao.fadeDuration,
			displayCounter:		typeof opcoes.displayCounter != "undefined" ? opcoes.displayCounter : opcoesPadrao.displayCounter,
			counterType:		typeof opcoes.counterType != "undefined" ? opcoes.counterType : opcoesPadrao.counterType,
			viewportPadding:	typeof opcoes.viewportPadding != "undefined" ? opcoes.viewportPadding : opcoesPadrao.viewportPadding,
			enableKeys:			typeof opcoes.enableKeys != "undefined" ? opcoes.enableKeys : opcoesPadrao.enableKeys,
			skin:				typeof opcoes.skin != "undefined" ? opcoes.skin : opcoesPadrao.skin,
			text:           {
				cancel:     typeof opcoes.cancel != "undefined" ? opcoes.cancel : opcoesPadrao.text.cancel,
				loading:    'Carregando...',   
				close:      typeof opcoes.close != "undefined" ? opcoes.close : opcoesPadrao.text.close,
				next:       typeof opcoes.next != "undefined" ? opcoes.next : opcoesPadrao.text.next,
				prev:       typeof opcoes.prev != "undefined" ? opcoes.prev : opcoesPadrao.text.prev,
				errors:     {
					single: 'Para ver este conteúdo é necessário instalação deste plugin: <a href="{0}">{1}</a>.',
					shared: 'Para ver este conteúdo é necessário instalação destes plugins: <a href="{0}">{1}</a> e <a href="{2}">{3}</a>.',
					either: 'Para ver este conteúdo é necessário instalação de algum destes plugins: <a href="{0}">{1}</a> ou <a href="{2}">{3}</a>.'
				}
			},
			ext:     {
				img:        ['png', 'jpg', 'jpeg', 'gif', 'bmp'],
				qt:         ['dv', 'mov', 'moov', 'movie', 'mp4'],
				wmp:        ['asf', 'wm', 'wmv'],
				qtwmp:      ['avi', 'mpg', 'mpeg'],
				iframe:     ['asp', 'aspx', 'cgi', 'cfm', 'htm', 'html', 'pl', 'php',
							'php3', 'php4', 'php5', 'phtml', 'rb', 'rhtml', 'shtml',
							'txt', 'vbs', 'do']
			}
	        //onClose: "desativarPreview"
			
		};

		Shadowbox.init(options);
	}

/*****************************************************************************\
					MENU DESTAQUE (JQUERY JQMODAL E JQDNR)
\*****************************************************************************/

var termosBusca = "";
function criarMenuDestaque(){
	var listaTermos = getParametroUrl("termos");
	if(termosBusca != ""){
		listaTermos = termosBusca;
	}
	listaTermos = unescape(listaTermos)
	if(listaTermos){
		listaTermos = listaTermos.replaceAll("%20"," ");
		listaTermos = listaTermos.replaceAll("+"," ");
		var termos = listaTermos.split(' ');
		var linkTermos = "";
		var c = 0;
		for(var i=0; i<termos.length; i++){
			linkTermos += "<a href='#' onclick=\"destacarTermo('"+termos[i]+"', 'destaque"+getContadorDestaque()+"');   return false;\" title='Clique para destacar este termo.'><span class='bt'>"+termos[i].toLowerCase()+"</span></a>&nbsp;";
			//c = c++ > 4 ? 0 : c;
		}
		var campoBusca = "<form class=\"form\" name=\"destaqueForm\" style=\"margin-top:10px;\">Outro Termo: <input class=\"campo\" type=\"text\" name=\"novoTermo\" value=\"\"  style=\"height:20px;\"><input type=\"button\" value=\"Destacar\" onclick=\"destacarTermo(get('novoTermo','destaqueForm'), 'destaque'+getContadorDestaque()); set('novoTermo','','','destaqueForm'); return false;\" style=\"height:20px;\"></form>"
		$("#MENU_DESTAQUE").prepend("<b>Termos para destaque:</b>&nbsp;<span>"+linkTermos+"</span> [<a href='#' onclick='removerDestaqueTermo(); return false;' title='Clique pare remover todos os destaques.'>Limpar</a>]");
		$(".jqmdMSG").html("<span>"+linkTermos+"</span> [<a href='#' onclick='removerDestaqueTermo(); return false;' title='Clique pare remover todos os destaques.'>Limpar</a>]"+campoBusca);
		$("#ex3aTrigger").click(function(){
			esconderMenuDestaque();
		});
		$("#MENU_DESTAQUE_FECHAR").click(function(){
			mostraMenuDestaque();
		});
		mostraMenuDestaque()
	}
}

var contadorDestaque = 0;
function getContadorDestaque(){
	return contadorDestaque++ > 4 ? 0 : contadorDestaque;
}

function buscaDestaque(){
	var listaTermos = getParametroUrl("busca", document.location.search);
	if(listaTermos){
		listaTermos = listaTermos.replaceAll("%20"," ");
		listaTermos = listaTermos.replaceAll("+"," ");
		var termos = listaTermos.split(' ');
		for(var i=0; i<termos.length; i++){
			$('#RESULTADO_BUSCA').each(function() { $.highlight(this,termos[i].toUpperCase(), "destaqueResBusca"); }); 
		}
	}
	if(getParametroUrl("grp") == "I")
		$('#RESULTADO_BUSCA').each(function() { $.highlight(this,"Imagens", "destaqueResBusca"); }); 
}


function destacarTermo(termo, classe){
	if(typeof termo != "undefined" && termo != ""){
		$('#CONTEUDO_DESTAQUE').each(function() { $.highlight(this,termo.toUpperCase(), classe); }); 
	}else{
		alert("Informe termo para destaque.");
	}
}
function removerDestaqueTermo(){
	$('#CONTEUDO_DESTAQUE').removeHighlight();
}

function esconderMenuDestaque(){
	$("#MENU_DESTAQUE").css("display","none");
}

function mostraMenuDestaque(){
	$("#MENU_DESTAQUE").css("display","block");
}

/*****************************************************************************\
							PORTLET BUSCA
\*****************************************************************************/
function executaBuscaPadrao(){
	var url = plcGeral.contextPath+"/ecp/busca.do";
	url = montaParamBuscaPadrao(url);
	redirect(url);
}
function montaParamBuscaPadrao(url, form){
	return montaParamBusca(url, "portalForm")
}

function montaParamBusca(url, form){
	if(ExpYes && form != "buscaAvancadaForm"){
		form = "";
	}
	var busca = get("busca",form);
	url = url.replaceAll("&busca="+busca,"");
	url = url.replaceAll("busca="+busca,"");
	url = url.replaceAll("busca="+escape(busca),"");
	url = incluirParametroUrl(url,"busca", escape(busca));
	url = url.replaceAll("?&busca","?busca");
	return url;
}

var disparouBusca = false;
function buscarSlide(botao, tipo)
{
  var numForms 	= document.forms.length;
  var numCampos	= ""; 

	if(tipo != "" && ""+tipo != "undefined")
	{
		var url = document.location.pathname+document.location.search;
		
		var _argumento = get('busca','buscaAvancadaForm');
		var _metadado = get('metadadoSlide','buscaAvancadaForm');
		
		if(_argumento.length < 2){
			alert("Informe termo para busca com pelo menos 2 caracteres.");
			return;
		}
		//url = incluirParametroUrl(url,"busca",escape(_argumento));
		url = montaParamBuscaAvancada(url);
		url = incluirParametroUrl(url,"dirSlide",tipo);
		url = incluirParametroUrl(url,"mtSlide",_metadado);
		url += "#slide_"+tipo;

		url = montaUrlBuscaAvancadaSlide(url)

		//alert(url)

		redirect(url);
	}

  if(disparouBusca){
		disparouBusca = false;
  		return true;
  }
  
  for (var i = 0; i < numForms; i++){
    numCampos = document.forms[i].elements.length;
    for (var j = 0; j < numCampos; j++){
      if (document.forms[i].elements[j].value == botao && 
		  (document.forms[i].elements[j].id == "SUBMIT_BUSCA" || document.forms[i].elements[j].id == "SUBMIT_BUSCA_SLIDE")){
		if(!disparouBusca){
			disparaBotao(document.forms[i].elements[j]);
			return false;
		}
      }
    }
  }
  
  if(!disparouBusca){
  		return false;
  }else{
  		return true;
  }
}

function montaUrlBuscaAvancadaSlide(url){

	limparUrlBuscaAvancada(url);
	
	var fmt = get("fmt","buscaAvancadaForm");
	if(typeof fmt != "undefined"){
		url = incluirParametroUrl(url, "fmt", fmt);
	}

	var aprox = get("aprox","buscaAvancadaForm");
	if(typeof aprox == "undefined"){
		aprox = 10;
	}
	if(typeof aprox != "undefined"){
		url = incluirParametroUrl(url, "aprox", aprox);
	}

	return url;
}


var argumento = "";
function guardaArgumento(arg){
	argumento = arg;
}

var metadado = "";
function guardaMetadado(meta){
	metadado = meta;
}

function abrirAjuda(){
	var win = janela(plcGeral.contextPath+"/ecp/ajudabusca.do?evento=x",400);
}

function janelaDownload(url){
	url = url.substring(0,url.indexOf("?f="))+"?td=conf&f="+url.substring(url.indexOf("?f=")+3);
	url = url.substring(url.indexOf("dSldAt=")+7)
	win = janela(url,200,200);
}

/*****************************************************************************\
					GRID TABELA (JQUERY TABLESORTER)
\*****************************************************************************/
function criarGridTabela(seletor, opcoes, temNav, opcoesPager){

	var ops = {widthFixed: true, widgets: ['zebra']};
	var opsPager = {
				container: $(seletor+"pager"),
				positionFixed: false,
				size: 5,
				seperator: " de "
		};

	$.extend(true, ops, opcoes);
	$.extend(true, opsPager, opcoesPager);

	if(temNav || temNav == "S"){
		$(seletor)
		.tablesorter(ops)
		.tablesorterPager(opsPager);
	}else{
		$(seletor)
		.tablesorter(ops);
		$(seletor+"pager").css("display","none");
	}
}


/*****************************************************************************\
					TREE VIEW (JQUERY TREEVIEW)
\*****************************************************************************/
function criarTreeView(seletor, opcoes){


	var ops = {
		control: "#treecontrol",
		//animated: "normal",
//		collapsed: true,
//		unique: true,
		persist: "location"
//		cookieId: "treeview-"+seletor
//		prerendered: true,
	};

	$.extend(true, ops, opcoes);

	$(seletor).treeview(ops);
}


function recuperaNivelPaiTreeView(nivel){
	//alert("troca nivel pai")
	var url = document.location.href;
	url = removerParametroUrl(url,"mpNvF")
	url = incluirParametroUrl(url,"mpNv",nivel)
	//plcAjax.ajaxGet(url, true, false, "");
	redirect(url)
}

function recuperaNivelFilhoTreeView(nivel){
	//alert("troca nivel filho")
	var url = document.location.href;
	url = removerParametroUrl(url,"mpNv")
	url = incluirParametroUrl(url,"mpNvF",nivel)
	//plcAjax.ajaxGet(url, true, false, "");
	redirect(url);
}
/*****************************************************************************\
							PORTLET SLIDE
\*****************************************************************************/

function navDiretoriAnteriorSlide(dirRetorno){

	var url = document.location.href;
	url = incluirParametroUrl(url,"pAcDir",dirRetorno);
	url = removerParametroUrl(url,"busca");
	redirect(url);
}

/*****************************************************************************\
							PROCURA TERMO
\*****************************************************************************/

/*
function procurarTermo(termo){
	if(ExpYes)
		procurarTermoIE(termo);
	else
		procurarTermoFF(termo);
}

function procurarTermoIE(termo) {
   // get the selection range and text range
   //var findRange = document.selection.createRange();
   //var textRange = document.body.createTextRange();

   var findRange = ($("#CONTEUDO_DESTAQUE").get()[0]).createTextRange();
   var textRange = ($("#CONTEUDO_DESTAQUE").get()[0]).createTextRange();
   // make sure selection is in editor 
   if (!textRange.inRange(findRange)) {
	  // if selection not in editor place it in editor en re-execute button
	  textRange.collapse(true);
	  textRange.select();          
	  findRange = textRange;
	  //procurarTermoIE(termo);
   } //else {
	  var text_length = textRange.htmlText.length;
	  var updown = 1;
	  // set the searchflags
	  var iFlags = 2;
	  // set the searchscope
	  var iSearchScope  = text_length  * updown;
	  // search the string and position  
	  if ( updown == 1 ) {
		 if (findRange.htmlText != '') {
			// nondegenerate range : deplace start position
			findRange.moveStart("word");
		 }
		 //findRange.moveEnd("textedit");
	  } else {
		 iFlags = iFlags + 1;
		 findRange.moveStart("character",1);
		 findRange.moveEnd("character",-1);
	  }
	  if (findRange.findText(termo,iSearchScope,iFlags)){
		 // found: select the text
		 findRange.select();
		 findRange.scrollIntoView();
	  } else {
		 // not found : give a warning
		 alert('Fim da busca.');
	  }
   //}
}
function procurarTermoFF(termo){
	// window.find( searchString, caseSensitive, backwards, wrapAround, wholeWord, searchInFrames, showDialog ) ;
	//window.find( termo, false, false, false, true, false, false );

}
*/

/*****************************************************************************\
							JQUERY AUTOCOMPLETE
\*****************************************************************************/
function JQAutocompletar(){};

var jqAutocompletar = new JQAutocompletar();

var jqAutocompletar_Args = null;	
JQAutocompletar.prototype.adicionarArgumentoExtra = function (nomeProp, valorProp, nomeCampo){

	if(typeof nomeCampo == "undefined"){
		nomeCampo = "generico";
	}
	jqAutocompletar_Args = getVarGlobal(nomeCampo+"_argumento_extra");
	if(jqAutocompletar_Args == null || typeof jqAutocompletar_Args == "undefined"){
		jqAutocompletar_Args = new Array();
	}
	jqAutocompletar_Args[jqAutocompletar_Args.length] = new jqAutocompletar.argumento(nomeProp, valorProp); 

	setVarGlobal(nomeCampo+"_argumento_extra",jqAutocompletar_Args);
}

var jqAutocompletar_Retornos = null;
JQAutocompletar.prototype.adicionarRetornoExtra = function (nomeProp, nomeCampo){

	if(typeof nomeCampo == "undefined"){
		nomeCampo = "generico";
	}
	jqAutocompletar_Retornos = getVarGlobal(nomeCampo+"_retorno_extra");
	if(jqAutocompletar_Retornos == null || typeof jqAutocompletar_Retornos == "undefined"){
		jqAutocompletar_Retornos = new Array();
	}
	jqAutocompletar_Retornos[jqAutocompletar_Retornos.length] = new jqAutocompletar.argumento(nomeProp); 
	setVarGlobal(nomeCampo+"_retorno_extra",jqAutocompletar_Retornos);
}

JQAutocompletar.prototype.argumento = function(nomeProp, valorProp){
	this.nome 	= nomeProp;
	this.valor	= valorProp;
}

JQAutocompletar.prototype.criarArgumentosExtras = function(nomeCampo){

	var strArgs = "";
	if(getVarGlobal(nomeCampo+"_argumento_extra") != null){
		jqAutocompletar_Args = getVarGlobal(nomeCampo+"_argumento_extra");
	}
	if(getVarGlobal("generico_argumento_extra") != null){
		jqAutocompletar_Args = getVarGlobal("generico_argumento_extra");
	}
	if(jqAutocompletar_Args && jqAutocompletar_Args.length > 0){
		for(j = 0; j < jqAutocompletar_Args.length; j++){
			var umArg = jqAutocompletar_Args[j];
			strArgs += strArgs != "" ? "&" : ""; 
			strArgs += umArg.nome+"="+umArg.valor;
		}
		setVarGlobal("generico_argumento_extra",null);
	}
	setVarGlobal(nomeCampo+"_argumento_extra",jqAutocompletar_Args);
	jqAutocompletar_Args = null;
	return strArgs;
}
			
JQAutocompletar.prototype.criarRetornosExtras = function(nomeCampo){

	var strArgsRetornos = "";
	
	if(getVarGlobal(nomeCampo+"_retorno_extra") != null){
		jqAutocompletar_Retornos = getVarGlobal(nomeCampo+"_retorno_extra");
	}
	if(getVarGlobal("generico_retorno_extra") != null){
		jqAutocompletar_Retornos = getVarGlobal("generico_retorno_extra");
	}
	if(jqAutocompletar_Retornos && jqAutocompletar_Retornos.length > 0){
		for(j = 0; j < jqAutocompletar_Retornos.length; j++){
			var umArg = jqAutocompletar_Retornos[j];
			strArgsRetornos += strArgsRetornos != "" ? "#" : ""; 
			strArgsRetornos += umArg.nome;
		}
		setVarGlobal("generico_retorno_extra",null);
	}
	setVarGlobal(nomeCampo+"_retorno_extra",jqAutocompletar_Retornos);
	jqAutocompletar_Retornos = null;
	return strArgsRetornos;
}

JQAutocompletar.prototype.adicionarAoCampoComMultiplosValores = function (nomeCampo, nomeAction, propPadrao, listaCamposAutocompletar, optsExtras){

	if(!jqAutocompletar.antesAdicionarAoCampo(nomeCampo)){
		return;
	}

	var lookup = getCampo(nomeCampo);
	var optsMultiple = {
		matchContains: true,
		autoFill: false,
		multiple: true,
		multipleSeparator: ",",
		fieldBind: $(lookup),
		formatItem: function(row) {
			var campoVal = this.fieldBind[0].value;
			if(campoVal != "" && campoVal.indexOf(row[0]+optsMultiple["multipleSeparator"]) == -1){
				return row[0];
			}
			return false;
		}
	};
	optsExtras = $.extend(optsMultiple,optsExtras);

	var optsMultiple2 = {
		formatItem: function(row) {
			var campoVal = this.fieldBind[0].value;
			if(campoVal != "" && campoVal.indexOf(row[0]+optsExtras["multipleSeparator"]) == -1){
				return row[0];
			}
			return false;
		}
	};
	optsExtras = $.extend(optsMultiple2,optsExtras);

	$(lookup).blur(function() {
		var campoVal = $(this).val();
		campoVal = campoVal.replace(",,",",");
		campoVal = campoVal.replace(",,,",",");
		if(campoVal.lastIndexOf(optsExtras["multipleSeparator"]) == campoVal.length - 1){
			$(this).val(campoVal.substring(0,campoVal.length - 1));
		}
	});

	$(lookup).focus(function() {
		var campoVal = $(this).val();
		if(campoVal != "" && (campoVal.lastIndexOf(optsExtras["multipleSeparator"]) != campoVal.length - 1)){
			$(this).val(campoVal + optsExtras["multipleSeparator"]);
		}
	});

	jqAutocompletar.adicionarAoCampo(nomeCampo, nomeAction, propPadrao, listaCamposAutocompletar, optsExtras);
}

JQAutocompletar.prototype.antesAutocompletar = function (nomeCampo, data){};

JQAutocompletar.prototype.aposAutocompletar = function (nomeCampo, data){};

JQAutocompletar.prototype.antesAutocompletarFormatarItem = function (nomeCampo, data){};

JQAutocompletar.prototype.adicionarAoCampo = function (nomeCampo, nomeAction, propPadrao, listaCamposAutocompletar, optsExtras){

	if(!jqAutocompletar.antesAdicionarAoCampo(nomeCampo)){
		return;
	}

	jqAutocompletar.retirarDoCampo(nomeCampo);

	var lookup = getCampo(nomeCampo);

	if(typeof lookup != "undefined"){
		var opts = {
			scrollHeight: 200,
			cacheLength: 0,
			width: 260, 
			delay: 200, 
			minChars: 3,	
			fieldBind: $(lookup),
			extraParams: {querySel: jqAutocompletar.criarArgumentosExtras(nomeCampo) ,
						  argSel: jqAutocompletar.criarRetornosExtras(nomeCampo)},
			formatItem: function(row) {
				var campoVal = this.fieldBind[0].value;
				var retorno = jqAutocompletar.antesAutocompletarFormatarItem(this.fieldBind[0].name, row, listaCamposAutocompletar);
				if(retorno === false){
					return false;
				}
				return row[0];
			}
			};

		opts = $.extend(opts, optsExtras);	 	

		$(lookup).focus(function(){
			$(this).select();
		});
		$(lookup).autocomplete(plcGeral.contextPath+"/soa/struts/plc/listaac/"+nomeAction+"/"+propPadrao, opts);
		
		if(!opts["multiple"]){
			$(lookup).result(function(event, data, formatted) {
				jqAutocompletar.antesAutocompletar($(this).attr("name"), data);
				 if (data){
					setVarGlobal("VALOR_ORIGINAL_"+$(this).attr("name"), null);
					jqAutocompletar.completaCampos(data, listaCamposAutocompletar);
				 }
				jqAutocompletar.aposAutocompletar($(this).attr("name"), data);
			});
		}
	}
}

JQAutocompletar.prototype.completaCampos = function (data, listaCamposAutocompletar){
	var campos = listaCamposAutocompletar.split(",");
	for(c = 0; c < campos.length; c++){
		$(getCampo(campos[c])).val(data[c]);
	}
};

JQAutocompletar.prototype.retirarDoCampo = function (nomeCampo){
	var lookup = getCampo(nomeCampo);
	jqAutocompletar_Args = new Array();
	$(lookup).unautocomplete();
}

JQAutocompletar.prototype.limparCache = function (nomeCampo){
	setVarGlobal(nomeCampo+"_retorno_extra",null);
	setVarGlobal(nomeCampo+"_argumento_extra",null);
}

JQAutocompletar.prototype.mudarOpcoes = function (nomeCampo, novasOpcoes){
	var lookup = getCampo(nomeCampo);
	$(lookup).setOptions(novasOpcoes);
}

JQAutocompletar.prototype.antesAdicionarAoCampo = function (nomeCampo){
	return true;
};

/*****************************************************************************\
							JQUERY DATEPICKER
\*****************************************************************************/
function JQCalendario(){};

var jqCalendario = new JQCalendario();

function montarArrayDatas(seletor){

	var valData = $(seletor).val();
//alert("valData: "+valData)
	var datas	= null;
	if(valData && valData != ""){
		datas = valData.split("\/");
		var dia = datas[0];
		var mes = datas[1];
		var ano = datas[2];
	}
	return datas;
}

JQCalendario.prototype.adicionarAoCampoComPeriodo = function(seletor, seletorMin, seletorMax, optsExtras){

//	alert("seletor: "+seletor)
	var opcoes = {};
	var datasMin = montarArrayDatas(seletorMin);
//	alert("datasMin: "+datasMin)
	var datasMax = montarArrayDatas(seletorMax);
//	alert("datasMax: "+datasMax)
	if(datasMin != null && datasMax != null){
		opcoes = {minDate: new Date(datasMin[2], datasMin[1] - 1, datasMin[0]), maxDate: new Date(datasMax[2], datasMax[1] - 1, datasMax[0])};
	}else if(datasMin != null && datasMax == null){
		opcoes = {minDate: new Date(datasMin[2], datasMin[1] - 1, datasMin[0])};
	}else if(datasMin == null && datasMax != null){
		opcoes = {maxDate: new Date(datasMax[2], datasMax[1] - 1, datasMax[0])};
	}
	opcoes = $.extend(opcoes, optsExtras);

	jqCalendario.adicionarAoCampo(seletor, opcoes);

}


JQCalendario.prototype.adicionarAoCampoDataMinima = function(seletor, seletorMin, optsExtras){

//	alert("seletor: "+seletor)
	var datasMin = montarArrayDatas(seletorMin);
//	alert("datasMin: "+datasMin)
	var opcoes = {};
	if(datasMin != null){
		opcoes = {minDate: new Date(datasMin[2], datasMin[1] - 1, datasMin[0])};
	}
	opcoes = $.extend(opcoes, optsExtras);
	
	jqCalendario.adicionarAoCampo(seletor, opcoes);

}

JQCalendario.prototype.adicionarAoCampoDataMaxima = function(seletor, seletorMax, optsExtras){

	var datasMax = montarArrayDatas(seletorMax);
	var opcoes = {};
	if(datasMax != null){
		opcoes = {maxDate: new Date(datasMax[2], datasMax[1] - 1 , datasMax[0])}
	}
	opcoes = $.extend(opcoes, optsExtras);
	
	jqCalendario.adicionarAoCampo(seletor, opcoes);

}


JQCalendario.prototype.adicionarAoCampo = function(seletor, optsExtras){
	try{
	var opts = {
//			startDate: lookup,
			numberOfMonths: 3, 
			showButtonPanel: true, 
			buttonText: '...',
			showOn: 'button',
			changeMonth: true,
			changeYear: true
	};
//alert(seletor)
//alert(optsExtras.minDate)
	opts = $.extend(opts, optsExtras);

//alert("minDate: "+opts.minDate)
//alert("maxDate: "+opts.maxDate)

	jQuery(seletor).datepicker('destroy');
	jQuery(seletor).datepicker(opts);
	}catch(e){
		jQuery(seletor).css("display","block");
	}

};

JQCalendario.prototype.substituirAutomatico = function(seletor, optsExtras){

	if(plcGeral.contextPath == "/eprj"){
		$("a[href=#]").each(function(i){
			try{
			if(($(this).attr("onclick")+"").indexOf("abrirCalendario") > -1){
				var nomeCampo = $(this).prev("input").attr("name");
				//if(nomeCampo.indexOf("_Arg") == -1){
					$(this).css("display","none"); // esconde botão anterior de calendário
					jqCalendario.adicionarAoCampo("input[name="+nomeCampo+"]"); //inclui novo botão de calendário
				//}
			} 
			}catch(e){
				$(this).css("display","block"); // mostra botão anterior de calendário
			}
		});
	}
}


/*****************************************************************************\
							JQUERY CASCADE
\*****************************************************************************/

function JQCascata(){};

var jqCascata = new JQCascata();

JQCascata.prototype.adicionarArgumentoExtra = function (nomeProp, valorProp, nomeAction){

	jqAutocompletar.adicionarArgumentoExtra(nomeProp, valorProp,nomeAction);
}

JQCascata.prototype.criarArgumentosExtras = function(nomeAction){

	var querySel = jqAutocompletar.criarArgumentosExtras(nomeAction);
	while(querySel.indexOf("&") > -1){
		querySel = querySel.replace("&","*");
	}
	while(querySel.indexOf("=") > -1){
		querySel = querySel.replace("=","$");
	}
	return querySel;
}

JQCascata.prototype.aposCarregarComboAninhado = function (combo){};

JQCascata.prototype.adicionarAoCampo = function (seletorDe, seletorPara, nomeAction, propDe, optsExtras){

	var querySel	= "?querySel=" + jqCascata.criarArgumentosExtras(nomeAction);

	var opts = {
		template: function(item) { 
			return "<option value='" + item.value + "'>" + item.text + "</option>"; 
		},
		match: function(selectedValue) { 
			return true;
		},
		timeout: 200, //just to show loading indicator				
		//data: { myotherdata: jQuery("#ajax_header").html() }
		//event: "blur",
		getParentValue: function(parent){ 
			var selecionado = jQuery(parent).val();
			//alert("selecionado: "+selecionado)
			return  selecionado; 
		},
		ajax: { 
			url: plcGeral.contextPath+"/soa/struts/plc/comboaninhado/"+nomeAction+"/"+propDe + querySel
			//complete: function(){ 
			//	alert('Combo recuperado.'); 
			//}
		}
	};
	opts = $.extend(opts, optsExtras);
	
	jqCascata.retirarDoCampo(seletorPara);
	jQuery(seletorPara).cascade(seletorDe, opts)
	.bind("loaded.cascade",function(source , target) { 
		var textFirstItem	= "";
		var textEmpty		= "";
		if(typeof optsExtras.textFirstItem != "undefined"){
			textFirstItem = optsExtras.textFirstItem;
		}

		var indexUltItem = this.options.length;	
		do{
			if(this.options[indexUltItem - 1].text == "EXECUTA_FUNCAO"){
				var funcao = this.options[indexUltItem - 1].value;
				var nameField = $(source)[0].target.name;
				funcao = funcao.replace(")","");
				//Adicionar origem e destino
				funcao += ",'"+nameField+"')";
				eval(funcao);
				jQuery(this.options[indexUltItem - 1]).remove();
			}
			indexUltItem = this.options.length;	
		}while(this.options[indexUltItem - 1].text == "EXECUTA_FUNCAO")

		if(this.options[0].value === "VAZIO"){
			if(typeof optsExtras.textEmpty != "undefined"){
				textFirstItem = optsExtras.textEmpty;
				jQuery(this).empty();
				jQuery(this).prepend("<option value='' selected='true'>"+textFirstItem+"</option>");
				jQuery(this).attr("disable", true);
				jQuery(this).find("option:first")[0].selected = true;
			}
		}else{
			jQuery(this).prepend("<option value='' selected='true'>"+textFirstItem+"</option>");
			var nameField = ""+$(source)[0].target.name;
			nameField = nameField.replace("_Arg","");
			nameField = nameField.replace("_",".");
			var valSelected = "";
			try{
				valSelected = eval("val"+nameField);
			}catch(e){}

			jQuery(this).find("option").each(function(){
				var val = jQuery(this).val();
				valSelected = valSelected == val ? valSelected : "";
			});
			if(typeof valSelected != "undefined" && valSelected != ""){
				jQuery(this).val(valSelected)
			}else if(optsExtras.cascata == "S"){
				jQuery(this).find("option")[1].selected = true;
			}else{
				jQuery(this).find("option:first")[0].selected = true;
			}
		}

	})	
	.bind("loading.cascade",function(e , target) { 
		jqCascata.aposCarregarComboAninhado(target);
	})
		
};

JQCascata.prototype.getValComboManter = function (nameField){
	var valSelected = eval("val"+nameField);
	return valSelected;
}

JQCascata.prototype.retirarDoCampo = function (seletorPara){
	jQuery(seletorPara).unbind("loaded.cascade").unbind("cascade");
}

/*****************************************************************************\
							JQUERY TRACK CHANGES
\*****************************************************************************/

function JQTrackChange(){};

var jqTrackChange = new JQTrackChange();

JQTrackChange.prototype.nomeCacheListaAlteracoes	= "TRACK_CHANGE_CACHE_ALTERACOES";

JQTrackChange.prototype.nomeCacheValoresOriginais	= "TRACK_CHANGE_CACHE_VALORES_ORIGINAIS";

JQTrackChange.prototype.nomeCampoListaAlteracoes	= "formModificadoLista";

JQTrackChange.prototype.listaEventosPadrao			= "change keypress keydow";

JQTrackChange.prototype.executandoGravacao			= false;

var oldValuesTrack = "";
JQTrackChange.prototype.adicionarCampos = function (seletorForm, nomeListaAlteracoes, listaEventos){
	jqTrackChange.nomeCacheListaAlteracoes
	oldValuesTrack = $(seletorForm).trackChanges({
		  changeListName: nomeListaAlteracoes,
		  events: listaEventos,
		  changeListVisible: false
	});
	if(jqTrackChange.recuperarListaAlteracoes() == null){
		jqTrackChange.executandoGravacao = false;
		jqTrackChange.guardarListaAlteracoes(nomeListaAlteracoes);
		jqTrackChange.guardarValoresOriginais();
	}else{
		jqTrackChange.montarCacheListaAlteracoes(nomeListaAlteracoes, jqTrackChange.recuperarListaAlteracoes());
	}
}

JQTrackChange.prototype.itemLista = function (nome, valor){
	this.nome	= nome;
	this.valor	= valor;
}

JQTrackChange.prototype.guardarListaAlteracoes = function (nomeListaAlteracoes){
	var listaItens = new Array();
	$("#"+nomeListaAlteracoes+" option").each(function(i) {
		listaItens[listaItens.length] = new jqTrackChange.itemLista(this.text, this.value);
	});
	setVarGlobal(jqTrackChange.nomeCacheListaAlteracoes, listaItens);
}

JQTrackChange.prototype.recuperarListaAlteracoes = function (){
	return getVarGlobal(jqTrackChange.nomeCacheListaAlteracoes);
}

JQTrackChange.prototype.limparListaAlteracoes = function (){
	setVarGlobal(jqTrackChange.nomeCacheListaAlteracoes, null)
}

JQTrackChange.prototype.guardarValoresOriginais = function (){
	setVarGlobal(jqTrackChange.nomeCacheValoresOriginais, oldValuesTrack);
}

JQTrackChange.prototype.recuperarValoresOriginais = function (){
	return getVarGlobal(jqTrackChange.nomeCacheValoresOriginais)
}

JQTrackChange.prototype.limparValoresOriginais = function (){
	setVarGlobal(jqTrackChange.nomeCacheValoresOriginais, null)
}

JQTrackChange.prototype.montarCacheListaAlteracoes = function (nomeListaAlteracoes, novaListaAlteracoes){
	var atualListaAlteracoes = jQuery("select[name='"+nomeListaAlteracoes+"']")[0];
	$.each($(novaListaAlteracoes), function (index , obj){
		try{
			atualListaAlteracoes.options[atualListaAlteracoes.length] = new Option(obj.nome, obj.valor, true, true);		
		}catch(e){}
	});
}

/*****************************************************************************\
					JQUERY JANELA MODAL
\*****************************************************************************/

function JQJanelaModal(){};

var jqJanelaModal = new JQJanelaModal();

JQJanelaModal.prototype.abrir = function (url, optsExtras){

	var opts = {
			title: ''
			,url: url.replace('modal','popup')
			,width: (optsExtras.largura || 720)
			,height: (optsExtras.altura || 480)
			,hide: ''
		};
	
	opts = $.extend(opts, optsExtras);

	// Cria a Janela Modal!
	var dialogModal = JQPlc.dialogWindow(opts);
	
	return dialogModal;
	
}

JQJanelaModal.prototype.fechar = function (dialogModal){
	dialogModal.close();
}

/*****************************************************************************\
							JQUERY TAG CLOUD
\*****************************************************************************/

function JQTagCloud(){};

var jqTagCloud = new JQTagCloud();

JQTagCloud.prototype.gerar = function (seletor, optsTag){


	if(optsTag.tipo == "Destaque"){
			jqTagCloud.gerarTipoDestaque(seletor, optsTag);
	}else{
		jqTagCloud.montarLista(seletor, optsTag);
		if(optsTag.formato == 'Texto'){
			jqTagCloud.gerarFormatoTexto(seletor, optsTag);
		}
		if(optsTag.formato == 'Animado'){
			jqTagCloud.gerarFormatoAnimado(seletor, optsTag);
		}
	}
	
};

JQTagCloud.prototype.gerarTipoDestaque = function (seletor, optsTag){

	$.dynaCloud.max = optsTag.numMaxTags;
	$.dynaCloud.sort = true;
	$.dynaCloud.auto = true;
	$(seletor).dynaCloud(optsTag.seletorSaida);

}

JQTagCloud.prototype.gerarFormatoTexto = function (seletor, optsTag){
	$("#LISTA-TAG-CLOUD").tagcloud(optsTag).find("li").tsort();
}

JQTagCloud.prototype.gerarFormatoAnimado = function (seletor, optsTag){

		var opts = {
			speed: 1,
			slower: 0.7,
			timer: 10,
			radius: optsTag.width / 2.6,
			fontMultiplier: optsTag.sizemin
		}

		opts = $.extend(opts, optsTag);
		
		$('#CONTAINER-TAG-CLOUD').tagoSphere(opts);
		$('#CONTAINER-TAG-CLOUD').css("width",optsTag.width);

	/*
		var rtInterval = setInterval("rotacionar()",1000);
		$('#CONTAINER-TAG-CLOUD').mouseover( function(){
			clearInterval();
		})
		.mouseout(function(){
			rtInterval = setInterval("rotacionar()",1000);
		});
		
		function rotacionar(){
			$('#CONTAINER-TAG-CLOUD').mouseover();
			$('#CONTAINER-TAG-CLOUD').mouseover();
		}
*/
}


JQTagCloud.prototype.montarLista = function (seletor, opts){
		
	var htmlItens = "";
	$.each(opts.dados.dados, function(nomeVar, dados) {
		htmlItens += jqTagCloud.formatarLista(opts.tipo, dados);
	});
	$(seletor).append($("<ul id='LISTA-TAG-CLOUD' class='LISTA-TAG-CLOUD'></ul>").html(htmlItens));

};

JQTagCloud.prototype.formatarLista = function (tipo, dados){
	return "<li class='item-tag-cloud' title='"+dados.valor+"' value='"+dados.valor+"'>"+dados.nome+" </li>";
};
	

function buscarDadosTagCloud (optsTag) {	 

	var optsTagCloud = optsTag;

	var optsAjax = {
		url: optsTag.url,
		type: "GET",
		dataType:"json",
		success: function(json) { 
			var optsJson = {
				dados: json
			};
			optsTagCloud = $.extend(optsTagCloud, optsJson);
			jqTagCloud.gerar(optsTagCloud.seletor, optsTagCloud);
			return optsJson.dados;
		},
		error:	function() { 
			var optsErro = {
				dados: {ERRO_MONTAGEM_TAG_CLOUD: 100}
			};
			optsTagCloud = $.extend(optsTagCloud, optsErro);
			jqTagCloud.gerar(optsTagCloud.seletor, optsTagCloud);
			return optsErro.dados;
		}
	};
	try{
		$.ajax(optsAjax);
	}catch(e){}
}


/*****************************************************************************\
							JQUERY UI MULTISELECT
\*****************************************************************************/

function JQUIMultiselect(){};

var jqUIMultiselect = new JQUIMultiselect();

JQUIMultiselect.prototype.gerar = function (seletor, optsMulti){

		var opts = {
			defaults: {
				sortable: true,
				searchable: true,
				animated: 'fast',
				show: 'slideDown',
				hide: 'slideUp',
				dividerLocation: 0.6,
				nodeComparator: function(node1,node2) {
					var text1 = node1.text(),
						text2 = node2.text();
					return text1 == text2 ? 0 : (text1 < text2 ? -1 : 1);
				}
			},
			locale: {
				addAll:'Adicionar tudo',
				removeAll:'Remover tudo',
				itemsCount:'itens selecionados'
			}
		};

		opts = $.extend(opts, optsMulti);

		$.extend($.ui.multiselect, opts);

		jQuery(seletor).multiselect();

};
		
JQUIMultiselect.prototype.manterSelecao = function (seletor, itensSelecionados){
	var comunidades = ","+itensSelecionados+",";
	jQuery(jQuery(seletor)[0].options).each(function(){
		var opt = this;
		if(comunidades.indexOf(","+opt.value+",") >= 0){
			opt.selected = true;
		}
	});
}


/*****************************************************************************\
							JQUERY TAGGER
\*****************************************************************************/

function JQTagger(){};

var jqTagger = new JQTagger();

JQTagger.prototype.gerar = function (seletor, tagsSelecionadas){

	// add to unnamed element by index
	jQuery(seletor).eq(0).addTag(tagsSelecionadas);
	adicionarFundoTagSelecionada();
	jQuery(seletor)
	.bind('keypress', function(e){
		if( 13 == e.keyCode){
			adicionarTagParaBusca();
			$(this).val('');
			$(this).stop();
			return false;
		}
	});
	adicionarContagemTagSelecionada();

	jQuery("#TD_TAG")
		.append("<b><a href='#' onclick='adicionarTagParaBusca(); return false;' style='color:black;'><span class='bt' id='BT_ADD'>Adicionar tag</span></a></b>")
		//.css("padding","5px")
	;
	jQuery(".tagAdd").css("position","absolute").css("top","100").css("visibility","hidden");
	jQuery(".tagger").addClass("search empty ui-widget-content ui-corner-all");
	jQuery(".tagList").appendTo(jQuery("#TD_LIST_TAG"));
	jQuery("#BT_ADD").css("font-size","10");
	
};
		
function adicionarTagParaBusca(){
	jQuery(".tagAdd").click();
	adicionarFundoTagSelecionada();
	adicionarContagemTagSelecionada();
}

var removerTodasTags = false;
function removerTodasTagSelecionada(){
	jQuery("li.tagName").each(function(){
		jQuery(this).remove();
	});
	adicionarContagemTagSelecionada();
}

function retornarTagsParaBusca(){
	jQuery("li.tagName").each(function(){
		var separador = jQuery(".tags").val() == "" ? "" : ",";
		jQuery(".tags").val(jQuery(".tags").val() + separador + jQuery(this).html() );
	});
}

function adicionarContagemTagSelecionada(){
	jQuery("#NUM_TAG").html(jQuery(".tagName").size()+" tags selecionadas")
}

/*****************************************************************************\
							JQUERY UI SORTABLE
\*****************************************************************************/

function JQUISortable(){};

var jqUISortable = new JQUISortable();

JQUISortable.prototype.gerar = function (seletorContainer, seletorDrag, optsDrag){

	var opts = {
		accept: seletorDrag,
		helperclass: 'sort_placeholder',
		opacity: 0.7,
		//ghosting: true,
		tolerance: 'intersect'
		,onStart: jqUISortable.aoIniciarDragDrop
		,onChange: jqUISortable.aoMudarDragDrop
		,onStop: jqUISortable.aoPararDragDrop
	};

	opts = $.extend(opts, optsDrag);

	$(seletorContainer).Sortable(opts);
}

JQUISortable.prototype.destruir = function (seletorContainer){
	$(seletorContainer).SortableDestroy();
}

JQUISortable.prototype.aoIniciarDragDrop = function (bandas){}

JQUISortable.prototype.aoMudarDragDrop = function (bandas){}

JQUISortable.prototype.aoPararDragDrop = function (bandas){}

/*****************************************************************************\
							JQUERY BLOCK UI
\*****************************************************************************/
function JQBlockUI(){};

var jqBlockUI = new JQBlockUI();

JQBlockUI.prototype.gerarMensagem = function (optsMsg){

	var opts = {
		message:  "Aguarde processamento...",
		css: {
			width:'300px', 
			margin:'-50px 0 0 -125px', 
			top:'50%', 
			left:'50%', 
			textAlign:'center', 
			fontWeight: 'bold',
			fontSize: '20px',
			color:'#000',
			backgroundColor:'#eee', 
			border:'2px solid #000', 
			cursor: 'none',
			padding:'20px' 
		},
		overlayCSS:  { 
			backgroundColor:'coral'
		},
		fadeOut: 0
	};

	opts = $.extend(opts, optsMsg);

	$.blockUI(opts); 
}


/*****************************************************************************\
						PORTLET MENU FERRAMENTA
\*****************************************************************************/

function ferramentaImprimir(urlImpressao){

	var winImp = null;
	if(typeof urlImpressao != "undefined" && urlImpressao != ""){
		winImp = janelaMaximizada(urlImpressao);
	}else{
		winImp = window;	
		winImp.print();	
	}
}

function ferramentaFavorito(nome){

	var url = document.location.href;
	var titulo = document.title;
	if(typeof nome != "undefined" && nome != ""){
		titulo = nome;
	}

	if (window.sidebar){ // firefox
		//window.sidebar.addPanel(title, url, ""); Dont use until it's fixed
		if(confirm( "Este favorito, criado para Mozilla Firefox, vai ser mostrado em uma barra lateral."+
					" \nPara alterar este comportamento, selecione o favorito com botao direito do mouse, clique em 'Propriedades' " +
					" e desmarque a caixa 'Carregar no painel'\n"+
					" \nQuer incluir este favorito?\n\n" +
					" Se desejar criar um link sem este comportamento por favor pressione juntas as teclas CTRL + D.")){
			window.sidebar.addPanel(titulo, url, ""); 		
		}
	}else if(window.opera && window.print){ // opera
		var elem = document.createElement('a');
		elem.setAttribute('href',url);
		elem.setAttribute('title',titulo);
		elem.setAttribute('rel','sidebar');
		elem.click();
	}else if(document.all){// ie
		window.external.AddFavorite(url, titulo);
	}

/*
	if(typeof nome != "undefined" && nome != ""){
		addToFavorites( nome ,url);
	}else{
		addToFavorites(document.title,url);
	}
*/
}

function ferramentaFonte(contexto, operador, unidade, valor){

	var numRedim = getVarGlobal("NUM_REDIMENSIONAMENTO_"+contexto);
	if(typeof numRedim == "undefined"){
		numRedim = 0;
	}

	if("+val" == operador){
		numRedim++;
	}else{
		numRedim--;
	}
	
	if(numRedim > 3 || numRedim < -2){
		return;
	}

	var opts = {
		size: valor,
		sizemethod: operador, // /*can be: "+val", "pc",, "-pc", "val", "-val"*/
		type: unidade //can be "px", "em" (ONLY VALID FOR THE VAL METHOD)
	};

	jQuery("DIV,TD,LI,strong,em,u,sub,sup,font,b,ul,li,ol,strike,h1,h2,h3,p,span,a", contexto).jFontSizer(opts);

	//Quando utilizar layout em colunas
	try{
		jQuery("DIV,TD,LI,strong,em,u,sub,sup,font,b,ul,li,ol,strike,h1,h2,h3,p,span,a", contexto.replace("#",".")).jFontSizer(opts);
	}catch(e){}

	setVarGlobal("NUM_REDIMENSIONAMENTO_"+contexto, numRedim)
}

var modoConstraste = false;
function ferramentaContraste(){
	if(modoConstraste){
		jQuery("#PRT_LINK_CSS_PADRAO").click();
		modoConstraste = false;
	}else{
		jQuery("#PRT_LINK_CSS_CONTRASTE").click();
		modoConstraste = true;
	}
	eraseCookie("style");
}

function setUpImageShadowbox (REL, CONTEXTO) {

	var listaImg = "";
	if(typeof CONTEXTO == "undefined"){
		CONTEXTO = "BODY";
	}
	jQuery("img", CONTEXTO).each(function(i){ 
		if(listaImg.indexOf(this.src+",") == -1){
			listaImg += this.src+",";
			$(CONTEXTO).append("<a id='"+REL+"_"+i+"' class='ESCONDIDO' rel='shadowbox["+REL+"]' href='"+this.src+"'>"+this.src+"</a><br>");
		}
	});
	criarGaleria(CONTEXTO, {});

}

function ferramentaGaleria (SELETOR) {

	jQuery(SELETOR).click();
}

function ferramentaEmail (tipo, assunto, id, email, nome){
	var emailPortal = "&emailPortal=S";
	if(typeof email != "undefined"){
		email = "&email="+email
		emailPortal = "&emailPortal=A";
	}else{
		email = "";
	}

	if(typeof nome != "undefined"){
		nome = "&nome="+nome
	}else{
		nome = "";
	}

	var paramAssunto = "";
	if(typeof id != "undefined" && id != ""){
		id = "&id="+id;
	}else{
		id = "";
		if(typeof document.title != "undefined"){
			paramAssunto = "&assunto="+document.title;
			assunto = document.title;
		}else{
			paramAssunto = "&assunto=Conte&uacute;do do Portal";
			assunto = "Conte&uacute;do do Portal";
		}
	}
	if(typeof tipo != "undefined"){
		tipo = "&tipo="+tipo
	}else{
		tipo = "";
	}
	var url = plcGeral.contextPath+"/ecp/webmailnovamsg.do?evento=novaMensagem&wmAcao=MNV"+emailPortal+id+email+nome+tipo+paramAssunto;
	/*
	if(ExpYes)
		janela(url,450,390);
	else
		janela(url,410,380);
	*/
	jqJanelaModal.abrir(url,{title: 'Enviar e-mail<br>'+assunto, largura: 500, altura: 450});
}

function ferramentaLayout(seletor, numeroColunas){
	if(numeroColunas == 1){
		jQuery("#IMG_LAYOUT_"+seletor).attr("src",plcGeral.contextPath+"/midia/duas_colunas.gif");
	}else{
		jQuery("#IMG_LAYOUT_"+seletor).attr("src",plcGeral.contextPath+"/midia/uma_coluna.gif");
	}
	gerarConteudoColunas(seletor, numeroColunas);
}

function ferramentaTag (id, tipoObjeto){
	var url = plcGeral.contextPath+"/ecp/tag.do?evento=x&id="+id+"&tipoObjeto="+tipoObjeto;
	jqJanelaModal.abrir(url,{title: 'Adicionar tags', largura: 300, altura: 180});
}

/*****************************************************************************\
					CÓDIGOS GERAIS
\*****************************************************************************/

function configuraCssPortalParaTransitional(){}

/**
 * para podermos manter compatibilidade na chamada função, 
 * estamos especializando ela dessa forma, quando existir 
 * editor ela sera sobreposta no config.js
 * 
 * @return uma função vazia
 */
function montarEditorAba(){}

function fecharChamado(idRequisito, conceitoNome){
	if (idRequisito != null && idRequisito != ""){
		var msgFechamento = "Foi criado um item do tipo \""+conceitoNome+"\" com o código: "+idRequisito+". Atendimento fechado automatico na criação do item.";
		if(!document.forms[0].descricaoSolucao.disabled){
			var ok = confirm('Deseja fechar o chamado?');
			if(ok){
				setBotaoAcaoEnter('<fmt:message key="jcompany.evt.gravar"/>');
				regBotaoEvento('<fmt:message key="jcompany.evt.gravar"/>','GRAVAR');
				document.forms[0].descricaoSolucao.value = msgFechamento;
				disparaBotaoAcao(getBotaoArray('GRAVAR'));
			}
		}
	}
}

/*****************************************************************************\
								ACCORDION
\*****************************************************************************/

function JQAccordion(){};

var jqAccordion = new JQAccordion();

JQAccordion.prototype.criar = function(seletor, optsAcc){

	var opts = {
		active: -1 ,
		autoHeight: false
	};

	opts = $.extend(opts, optsAcc);

	$(seletor).accordion(opts);
}

/*****************************************************************************\
				MEU PORTAL
\*****************************************************************************/
function mensagemAdicionarPortlet(){
	jqBlockUI.gerarMensagem({message:  "Aguarde, adicionando portlet ...", width:'500px' });
}

jqUISortable.aoMudarDragDrop = function (bandas){
		var fazerRefresh = false;
		for(var indB = 0; indB < bandas.length; indB++){
			var idContainer = jQuery("#"+bandas[indB].id).attr("idContainer");
			if(idContainer != "selecaoMeuportalPlc"){
				if(fazerRefresh){
					mensagemAdicionarPortlet();
				}
				var portlets = jQuery(bandas[indB].o).attr(bandas[indB].id);
				for(var indP = 0; indP < portlets.length; indP++){
					gravaPosicaoPortlet("", portlets[indP], (indP + 1 * 2), idContainer);
				}
			}else{
				fazerRefresh = true;
			}
		}
		if(fazerRefresh){
			location.reload(true);
		}
}


/*****************************************************************************\
								PORTLETS
\*****************************************************************************/

//Executa as configurações de layout de todos os portlets após carregamento da página
function configuraLayoutPortlets(){

	//CONTEUDO
	jQuery(".prt-noticia-view-lista").css("margin","3px").css("padding","0");
	jQuery(".prt-noticia-item").css("display","inline");
	jQuery(".prt-noticia-item-cabecalho").css("font-weight","bold");

}
