/*****************************************************************************\
					CAPITALIZAÇÃO 
\*****************************************************************************/
	String.prototype.capitalize = function(){ //v1.0
	    return this.replace(/\w+/g, function(a){
	        return a.charAt(0).toUpperCase() + a.substr(1).toLowerCase();
	    });
	};
/*****************************************************************************\
					TESTE VAZIO
\*****************************************************************************/
	String.prototype.isEmpty = function(){ 
		this == ""  || this == "null";
	};

	/**
	* 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, "")
	}
	
	/*AUMENTAR E REDUZIR FONTE */
    var sizes = new Array('09', '10', '11', '12', '13');
    var si = 2;
    function setFontByTag(e, v) {
          try { 
                var elements = document.getElementsByTagName(e);
                for(var i = 0; i < elements.length; i++) {
                     elements.item(i).style['fontSize'] = v;
                }
                var iframes = window.frames;
                for(var i = 0; i < iframes.length; i++) {
                     var documentIframe = iframes[0].document;
                     var elementsIframe = documentIframe.getElementsByTagName(e);
                     for(var i = 0; i < elementsIframe.length; i++) {
                           elementsIframe.item(i).style['fontSize'] = v;
                     }
                }
          } catch (e) {

          }
    }

    function changeSize(inc) {
    	//var seletor = ".coluna-eventos,.invista,.conheca,.numeros-minas";
    	var seletor = "body";
    	var atual = parseInt(jQuery("body").css("font-size"));
    	var novo = atual+parseInt(inc);
    	jQuery(seletor).css("font-size",novo);
    	jQuery.cookie("siteFontSize",novo,{ expires: 30, path: '/'});
    }
    
/*    function changeSize(inc) {
          try {
                if (!document.getElementsByTagName) {return false;}
                // If the browser doesn't support
                // getElementsByTagName then don't do anything
                if (inc == '1') {
                     si+=1;
                     if (si>4) {
                           si = 4; 
                           size=4;
                     }
                } else if (inc == '-1') {
                     si-=1;
                     if (si<0) {
                           si = 0;
                           size=0;
                     }
                }
                setFontByTag('*', sizes[si]+'px');
          } catch (e) {

        }
    }*/

	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(prefixo, esconder){

			debug = false;

			if(typeof prefixo == "undefined" || prefixo == ""){
				prefixo = "";
			}else{
				prefixo = prefixo+"_";
			}
			
			var exibeLink 		= getVarGlobal("NAVEGACAO_EXIBE_HIPERLINKS");
			var link	 		= "<a href='"+getVarGlobal(prefixo + "NAVEGACAO_TAX_LINK")+"'>[LINK]</a>";
			if(debug) alert("link: "+link)
			var pagina			= getVarGlobal("NAVEGACAO_ID_PAGINA");
			if(debug) alert("pagina: "+pagina)
			var nivel1Nv		= getVarGlobal(prefixo + "NAVEGACAO_NIVEL_1_NV");
			if(debug) alert("nivel1Nv: "+nivel1Nv)

			var nomeComunidade 	= getVarGlobal("NAVEGACAO_NOME_COMUNIDADE");
			var nomePagina 		= getVarGlobal("NAVEGACAO_NOME_PAGINA");

			var nivel1	 		= getVarGlobal(prefixo + "NAVEGACAO_NIVEL_1") ? getVarGlobal(prefixo + "NAVEGACAO_NIVEL_1") : "";
			var nivel1H	 		= getVarGlobal(prefixo + "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(prefixo == "TV_")	{
				posApp			= nivel1.indexOf("/");
				nomeApp			= nivel1.substring(0,posApp);
				nivel1 = nivel1.substring(posApp+1);
				nv1Array		= nivel1.split("/");
			}
			*/
			
			if(debug) alert("nv1Array: "+nv1Array);
			
			var nivelAtual	 		= getVarGlobal(prefixo + "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;
			var indChPlc	= 2;
			var titulo		= "";

			if(prefixo == "TV_")	{
				contTax = 0;
			}
			
			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;
				}

				if(token.indexOf("ATUAL") >= 0){
					contTax = contTax - 1;
					if(prefixo == ""){
						indChPlc = indChPlc - 1;					
					}
				}
				
				
				linkAux	= link;
				if(indTk < 4 || ((indTk+4) % 2 == 0) || token.indexOf("ATUAL") >= 0){

					if(debug) alert("NOVO LINK PARA TOKEN "+indTk+": "+token)

					if(	(prefixo + token).indexOf(prefixo + "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)
							
							if(prefixo == "TV_")	{
								contTax++;
							}else{
								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];
				
				
				//Limpando link
				if(token.indexOf("COMUNIDADE") >= 0)
					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 +": "+ prefixo + token+"\nPor: "+linkAux)

				separador	= prefixo + "SEPARADOR_"+ token;
				posToken 	= conteudo.indexOf("$"+ prefixo + token+"$");
				posIni 		= conteudo.indexOf("$"+separador+"$");
				posFim 		= posToken + (("$"+prefixo + token +"$").length - 1);

				if (token.indexOf("CONTEUDO") >= 0 || token.indexOf("COMUNIDADE") >= 0){
					if(typeof tokensVal[indTk] != "undefined" && tokensVal[indTk] != ""){
						titulo += titulo != "" ? " - " + tokensVal[indTk] : tokensVal[indTk];
					}
				}
				
				if(posToken >= 0 && tokensVal[indTk] != null && !tokensVal[indTk] == "" && 
				(!esconder || token.indexOf('COMUNIDADE') > -1 || token.indexOf('PAGINA') > -1 )){
					linkAux = linkAux.replaceAll("[LINK]",tokensVal[indTk]);
					if(typeof nivel1HArray[indChPlc] == "undefined" || nivel1HArray[indChPlc] == ""){
						linkAux = linkAux.replaceAll("[CHPLC]","&chPlc="+nivel1HArray[contTax-1]);
					}else{
						linkAux = linkAux.replaceAll("[CHPLC]","&chPlc="+nivel1HArray[indChPlc]);
					}
					indChPlc++;
					conteudo = conteudo.replaceAll("$"+ prefixo + token+"$",linkAux);
					conteudo = conteudo.replaceAll("$"+ separador +"$", "");
					
				}	
				else{
					var rplc = "";
					if(posIni > 0){
						rplc = conteudo.substring(posIni, posFim + 1);
					}
					else{
						rplc = "$"+ prefixo + token+"$";
					}
					
					// Codigo para compatibilizar com IE7
					for(i = 0; i <= 14; i++){
						conteudo = conteudo.replaceAll("<LI nodeIndex=\""+i+"\">"+rplc+"</LI>","");
						conteudo = conteudo.replaceAll("<li nodeIndex=\""+i+"\">"+rplc+"</li>","");
						conteudo = conteudo.replaceAll("<LI nodeIndex=\""+i+"\">"+rplc+" </LI>","");
						conteudo = conteudo.replaceAll("<li nodeIndex=\""+i+"\">"+rplc+" </li>","");
					}
					
					conteudo = conteudo.replaceAll("<li>"+rplc+"</li>", "");
					conteudo = conteudo.replaceAll("<LI>"+rplc+"</LI>", "");
					conteudo = conteudo.replaceAll(rplc+"</li>", "");
					conteudo = conteudo.replaceAll(rplc+"</LI>", "");
					conteudo = conteudo.replaceAll(rplc, "");
					conteudo = conteudo.replaceAll("<LI></LI>", "");
					conteudo = conteudo.replaceAll("<LI> </LI>", "");
					
				}

				divNavegacao.innerHTML = conteudo;
			}
			
			
			//if(typeof titulo != "undefined" && titulo != ""){
				//document.title = getVarGlobal("NAVEGACAO_NOME_COMUNIDADE") getVarGlobal("NAVEGACAO_NOME_CONTEUDO");
			//}
			//divNavegacao.style.display = 'block';
	}

	function alterarTituloPagina(){
		var titulo = getVarGlobal("NAVEGACAO_NOME_COMUNIDADE");
		var nomeConteudo = getVarGlobal("NAVEGACAO_NOME_CONTEUDO_TITULO");
		if(typeof  nomeConteudo != "undefined" && nomeConteudo != null && !nomeConteudo.isEmpty()){
			titulo += " - " + nomeConteudo;
		}
		if(typeof titulo != "undefined" && titulo != null && !titulo.isEmpty()){
			//var tituloCap = new String(titulo);
			//document.title = tituloCap.capitalize();
			document.title = titulo;
		}
	}
	
	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;
	}

*/


/**********************************************************************************
								JQUERY CYCLE
**********************************************************************************/

function JQCycle(){};

var jqCycle = new JQCycle();

JQCycle.prototype.criarComNavegador = function (seletor, optsCycle){

	var opts = { 
		fx:     "fade", 
		speed:  0, 
		timeout: 0,
		continuous: true,
		prev:   '#prev', 
		next:   '#next',
		pager:  '#pager'
		//,pagerAnchorBuilder: function(idx, slide) {
		//	return '#pager li:eq(' + idx + ') a';
		//}	
	};

	opts = $.extend(opts, optsCycle);

	$(seletor).cycle(opts);

}

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(){
	if(listaTermos){
		var listaTermos = getParametroUrl("busca", document.location.search);
		var ultPosicao = listaTermos.length;
		listaTermos = listaTermos.replaceAll("%20"," ");
		listaTermos = listaTermos.replaceAll("+"," ");
		var termos = listaTermos.split(' ');
		for(var i=0; i<termos.length; i++){
			if(termos[i].length > 1)
				$('#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(escopoBusca){
	guardaValorEscopoBusca(escopoBusca);
	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);
	//busca = busca.replace("\"","'");
	busca	= busca.trim();
	//busca	= busca.replaceAll("'","\"");
	if(typeof busca == "undefined" || busca == ""){
		busca = getValorCampoBusca();
	}
	busca = jQuery.trim(busca);
	//jQuery("input[name=busca]").val("");
	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");


	var escopoBusca = getValorEscopoBusca();
	url = url.replaceAll("&escBusca="+escopoBusca,"");
	url = url.replaceAll("escBusca="+escopoBusca,"");
	url = url.replaceAll("escBusca="+escape(escopoBusca),"");
	//if("aplicacaoCorrente" == escopoBusca){
		//url = incluirParametroUrl(url,"escBusca", escape(getParametroUrl("app")));
		url = incluirParametroUrl(url,"escBusca", escopoBusca);
	//}

	return url;
}

function getValorCampoBusca(){
	//$(btBusca).parent().parent().find("input[name=busca]").val();
	var termoBusca = getVarGlobal("termoBusca");
	setVarGlobal("termoBusca", "");
	return termoBusca;
}

function getValorEscopoBusca(){
	var escopoBusca = getVarGlobal("escopoBusca");
	if(typeof escopoBusca == "undefined"){
		escopoBusca = "";
	}
	setVarGlobal("escopoBusca", "");
	return escopoBusca;
}

function guardaValorCampoBusca(campoBusca){
	setVarGlobal("termoBusca", $(campoBusca).val());
	//setVarGlobal("escopoBusca", $(campoBusca).siblings("input[name=escBusca]").val());
}

function guardaValorEscopoBusca(escopoBusca){
	setVarGlobal("escopoBusca", escopoBusca);
}

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 JQTreeView(){};

var jqTreeView = new JQTreeView();

JQTreeView.prototype.gerar = function (seletor, opcoes){
	criarTreeView(seletor, opcoes);
}

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, seletor){

	if(!jqAutocompletar.antesAdicionarAoCampo(nomeCampo)){
		return;
	}

	var lookup = getCampo(nomeCampo);
	if(typeof lookup == "undefined"){
		lookup = jqAutocompletar.getCampoPorSeletor(seletor);
	}
	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, seletor);
}

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, seletor){

	if(!jqAutocompletar.antesAdicionarAoCampo(nomeCampo)){
		return;
	}

	jqAutocompletar.retirarDoCampo(nomeCampo, seletor);

	var lookup = getCampo(nomeCampo);
	if(typeof lookup == "undefined"){
		lookup = jqAutocompletar.getCampoPorSeletor(seletor);
	}

	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();
		});
		var url = plcGeral.contextPath+"/soa/struts/plc/listaac/"+nomeAction+"/"+propPadrao;
		if(typeof opts.urlRest != "undefined"){
			url = opts.urlRest;
		}
		$(lookup).autocomplete(url, 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, seletor){
	var lookup = getCampo(nomeCampo);
	if(typeof lookup == "undefined"){
		lookup = jqAutocompletar.getCampoPorSeletor(seletor);
	}
	
	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;
};

JQAutocompletar.prototype.getCampoPorSeletor = function (seletor){
	return jQuery(seletor);
};

/*****************************************************************************\
							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.adicionarAoCampoHoraUsa = function(seletor, optsExtras){
	
	try{
		var opts = {
				constrainInput: false, 
				onSelect: function(dateText, inst) { 
			
					var hoje = new Date();
					dateText += hoje.getHours()+":"+hoje.getMinutes();
				}
		};
		opts = $.extend(opts, optsExtras);
		jqCalendario.adicionarAoCampo(seletor, opts);
	}catch(e){
		jQuery(seletor).css("display","block");
	}
};

JQCalendario.prototype.adicionarAoCampo = function(seletor, optsExtras){
	try{
	var opts = {
//			startDate: lookup,
			numberOfMonths: 3, 
			showButtonPanel: true, 
			buttonText: '...',
			//buttonText: '<img src=\'./plc/midia/ico_calendario.gif\' border=\'0\'>',
			showOn: 'button',
			changeMonth: true,
			changeYear: true,
			yearRange: '-20:+20'
	};

	opts = $.extend(opts, optsExtras);

	var optsTimer = {
        hour: 0,
        minute: 0,
        second: 0,
        ampm: 'false',
		stepHour: 1,
		stepMinute: 10,
		stepSecond: 30,
		holdDatepickerOpen: false,
		alwaysSetTime: false
    };

	opts = $.extend(opts, optsTimer);


	jQuery(seletor).datepicker('destroy');
	//jQuery(seletor).datepicker(opts);
	jQuery(seletor).datetimepicker(opts);

	}catch(e){
		jQuery(seletor).css("display","block");
	}

};

JQCalendario.prototype.substituirAutomatico = function(seletor, optsExtras){

	if(plcGeral.contextPath == "/ecp"){
		var optsEcp = {
				numberOfMonths: 1, 
				buttonText: '<img src=\'./plc/midia/ico_calendario.gif\' border=\'0\'>'
		};
		optsExtras = $.extend(optsEcp, 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");
				$(this).css("display","none"); // esconde botão anterior de calendário
				if(jQuery(this).attr("class").indexOf("hora-usa") == -1){
					jqCalendario.adicionarAoCampo("input[name="+nomeCampo+"]", optsExtras); //inclui novo botão de calendário
				}else{
					jqCalendario.adicionarAoCampoHoraUsa("input[name="+nomeCampo+"]", optsExtras); //inclui novo botão de calendário
				}
			} 
			}catch(e){
				$(this).css("display","block"); // mostra botão anterior de calendário
			}
		});
	//}

	//Retira a borda dos botões de popup de calendario
	if(plcGeral.contextPath == "/ecp"){
		jQuery(".ui-datepicker-trigger").css("border","0");
	}
	
}


/*****************************************************************************\
							JQUERY CASCADE
\*****************************************************************************/

function JQCascata(){};

var jqCascata = new JQCascata();
var naoColocaSelected;

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.aposComplementaCamposComboAninhado = function ( valorParam ){};

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 if(typeof naoColocaSelected == "undefined"){
			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");
}

JQCascata.prototype.complementaParamentrosComboAninhado = function( valorParam, nomesCampo ) {	
	naoColocaSelected = "S";
	for ( var n in valorParam ) {
		if(typeof n != "undefined") {
			$(getCampo(n)).val(valorParam[n]);
		}
	}
	
	this.aposComplementaCamposComboAninhado(valorParam);
}

/*****************************************************************************\
							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.abrirAntes = function (url){
	return true;
}

JQJanelaModal.prototype.fecharApos = function (){}

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);

	if(!jqJanelaModal.abrirAntes(url)){
		return null;
	}

	// Cria a Janela Modal!
	var dialogModal = JQPlc.dialogWindow(opts);
	
	dialogModal.dialog.dialogClose = function(){
		jQuery(dialogModal).parent().jqJanelaModal.fechar(dialogModal);
	};

	return dialogModal;
	
}

JQJanelaModal.prototype.fechar = function (dialogModal){

	//dialogModal.close();

	dialogModal.dialog('close');
	jqJanelaModal.fecharApos();

}

/*****************************************************************************\
							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);

	try{$(seletorContainer).Sortable(opts);	}catch(e){}
}

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); 
}

JQBlockUI.prototype.bloquearPagina = function (optsBloqueio){

	var opts = {
		message:  null
		/*
		,overlayCSS:  { 
			backgroundColor:'coral'
		}
		,fadeOut: 0
		*/
	};

	opts = $.extend(opts, optsBloqueio);

	$.blockUI(opts); 
}

JQBlockUI.prototype.desbloquearPagina = function (){

	$.unblockUI()
}

/*****************************************************************************\
						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);
}

/*****************************************************************************\
							JQUERY QUICKSEARCH
\*****************************************************************************/

function JQQuicksearch(){};

var jqQuicksearch = new JQQuicksearch();

JQQuicksearch.prototype.criar = function(seletor, optsQs){

	var opts = {
		attached: "#quicksearch",
		formId: 'form-quicksearch',
		position: 'append',
		inputClass: 'texto',
		loaderText: 'Buscando...',
		labelText: 'Buscar por:',
		loaderImg: plcGeral.contextPath+'/plc/midia/carregando.gif',
		delay: 500,
		focusOnLoad: false
	};

	opts = $.extend(opts, optsQs);

	$(seletor).quicksearch(opts);

}

/*****************************************************************************\
							JQUERY MEDIA
\*****************************************************************************/

function JQMedia(){};

var jqMedia = new JQMedia();

JQMedia.prototype.gerar = function(seletor, optsMedia){

	var opts = { 
		autoplay:	0,         // normalized cross-player setting 
		bgColor:	'#ffffff' // background color 
	};

	opts = $.extend(opts, optsMedia);

	$(seletor).media(opts);

}

JQMedia.prototype.gerarYouTube = function(seletorBase, optsYouTube){

	var opts = { 
		autoplay:	0,         // normalized cross-player setting 
		type:	'swf',
		bgColor:	'#ffffff' // background color 
	};

	opts = $.extend(opts, optsYouTube);
	$(seletorBase+"-youtube").media(opts);
}


JQMedia.prototype.ajustarUrl = function(seletor){
	$(seletor).each(function(){
		seletor = seletor.replace(".","");
		var url = "";
		if(this.tagName == "A"){
			url = $(this).attr("href");
		}else if(this.tagName == "IMG"){
			url = $(this).attr("src");
		}
		if(url.indexOf("www.youtube.com") > 0){
			url = url.replace("/watch?v=","/v/")
			if(this.tagName == "A"){
				$(this).attr("href",url).removeClass(seletor).addClass(seletor+"-youtube");
			}else if(this.tagName == "IMG"){
				$(this).attr("src",url).removeClass(seletor).addClass(seletor+"-youtube");
			}
		}
	});
}

JQMedia.prototype.ajustarUrlYouTube = function(seletorImg){
	$(seletorImg).each(function(){
		//seletorImg = seletor.replace(".","");
		var url = "";
		if(this.tagName == "A"){
			url = $(this).attr("href");
		}else if(this.tagName == "IMG"){
			url = $(this).attr("src");
		}
		if(url.indexOf("www.youtube.com") > 0){
			url = url.replace("/watch?v=","/v/")
			url = url.replace("www.youtube.com/v","img.youtube.com/vi")
			url += "/2.jpg";
			if(this.tagName == "A"){
				$(this).attr("href",url);
			}else if(this.tagName == "IMG"){
				$(this).attr("src",url);
			}
		}
	});

}
/*****************************************************************************\
					EMPRESAS FILIADAS COM QUICKSEARCH
\*****************************************************************************/

function agruparPorInicialNome(seletorAgrupamento){
	$.each( $(seletorAgrupamento), function(i, n){ 

		var cap = new String($(n).text().substring(0,1));
		if(n.tagName == 'A' || n.tagName == 'DIV'){
			n = $(n).parent();
		}
		
		var keychar = cap.charCodeAt(cap)
		if(keychar <= "F".charCodeAt("F")){
			$(n).addClass("AF");
			$(n).parent().addClass("AF");
		}else if(keychar <= "M".charCodeAt("M")){
			$(n).addClass("GM");
			$(n).parent().addClass("GM");
		}else if(keychar <= "S".charCodeAt("S")){
			$(n).addClass("NS");
			$(n).parent().addClass("NS");
		}else {
			$(n).addClass("TZ");
			$(n).parent().addClass("TZ");
		}
	});

	mostraTotalUnidadesPorGrupo(".prt-empresa-count-T", seletorAgrupamento)
	mostraTotalUnidadesPorGrupo(".prt-empresa-count-AF", seletorAgrupamento+".AF")
	mostraTotalUnidadesPorGrupo(".prt-empresa-count-GM", seletorAgrupamento+".GM")
	mostraTotalUnidadesPorGrupo(".prt-empresa-count-NS", seletorAgrupamento+".NS")
	mostraTotalUnidadesPorGrupo(".prt-empresa-count-TZ", seletorAgrupamento+".TZ")


	$(".prt-empresas-linha").addClass("lista-navegacao");
	$(".prt-empresa-label-filtro").addClass("bt");
	//$(".prt-empresa-label-filtro").css("font-weight","bold");
	//$(".prt-empresa-count").css("font-size","9px").css("font-weight","normal");
	//$(".prt-empresa-label-filtro a").css("text-decoration","none");

}


function mostraTotalUnidadesPorGrupo(seletorAtualiza, seletorConta){
	
	var qte = $(seletorConta).length;
	$(seletorAtualiza).html("("+qte+")");
	$(seletorAtualiza).parent().attr("title", qte+" Empresa(s)");
	if(qte == 0){
		$(seletorAtualiza).parent().attr("onclick","return false;");
	}
}

function filtrarPorNome(seletorFiltro, seletorFiltroNav, filtro, seletorPai){
	
	var displayNone = "none";
	var displayList	= "block";
	
	$(".prt-empresa-link").removeClass("current");
	$(".prt-empresa-link-"+filtro).addClass("current");

	$("div"+seletorPai+" div.unidades").remove();

	if($(seletorFiltro).length > 0){
		if( $(seletorFiltro)[0].tagName == "LI"){
			displayList	= "list-item";
		}else if( $(seletorFiltro)[0].tagName == "TR"){
			displayList	= "table-row";
		}
	}

	$("#quicksearch").val("");
	$(seletorFiltro).css("display",displayNone).removeClass("lista-navegacao");
		
	filtro = filtro == "T" ? "" : "."+filtro;
	$(seletorFiltro+filtro).attr("style","display:'"+displayList+"'").addClass("lista-navegacao");
	recriarNavegadorAgrupamentoEmpresas(seletorFiltro+filtro+".lista-navegacao");
	
}

function recriarNavegadorAgrupamentoEmpresas(){}

function criarNavegadorAgrupamentoEmpresas(idTable, optsNav){
		jqCycle.criarComNavegador(idTable, optsNav);
}

function montarJsonAgrupamentoEmpresas(seletorBase){

	var json = "[{";
	var incluiuAlgum = false;
	$.each( $(seletorBase), function(i, n){
		if("table-row" == $(n).css("display") || "block" == $(n).css("display")){
			if(i != 0 && incluiuAlgum){
				json += ",";
			}
			json += "dados_"+i+": {" +
				"empresa: '"+$(n).find(".prt-empresas-item-empresa").find("a").html()+"'" +
				",cidade: '"+$(n).find(".prt-empresas-item-cidade").html()+"'" +
				",url: '"+$(n).find(".prt-empresas-item-empresa").find("a").attr("href")+"'"+
				"}";
			incluiuAlgum = true;
		}
	});
	json += "}]";

	return eval(json)[0];
}

function acertaLinkUrlEmpresa(urlEmpresa){return urlEmpresa};

var numPorPg = 10;
function gerarTabelaAgrupamentoEmpresas(jsonTable, idTable, sufixo){
	
	var htmlTabela = "<div class='unidades'>";
	
		count = 0;
		$.each( jsonTable, function(i, data) {
		 
		if( data.listaVazia == "" || typeof data.listaVazia == "undefined") {
			if( count != 0 && (count % numPorPg ) == 0 ) {
			  htmlTabela += "</tbody></table></div><div class='unidades' style='display:none'>" 
			}
			if( count == 0 || (count % numPorPg ) == 0 ) {
			  htmlTabela += "<table class='vafanapoli' cellspacing='0' cellpadding='0'  border='0'>"+
							"<thead><tr class='par'><th>Munic&iacute;pio</th><th>Unidade</th></tr></thead><tbody>";
			}			
			
			htmlTabela += "<tr class='prt-empresas-linha lista-navegacao'>"+
						  "<td class='prt-empresas-item prt-empresas-item-cidade'>"+data.cidade+"</td>"+
						  "<td class='prt-empresas-item prt-empresas-item-empresa'>"+
						  "<a href='"+acertaLinkUrlEmpresa(data.urlEmpresa)+"#posto'>"+data.nomeEmpresa+"</a>"+
						  "</td></tr>";
			count++;			
			} else {			
				htmlTabela += "<p>"+data.listaVazia+"</p>";				
				$("#"+idTable+sufixo+" div.unidades").remove();
				$(htmlTabela).appendTo("#"+idTable+sufixo);
			}
		});		 
	
	htmlTabela += "</tbody></table></div>";
	
	$("#"+idTable+sufixo+" div.unidades").remove();
	$(htmlTabela).appendTo("#"+idTable+sufixo);
}

/**
 * Recebe uma tabela contedo a quantidade de dados que seram apresentados durante a nagegação. 
 * @param jsonTable
 */
function montaNavegadorAgrupaUnidades(jsonTable, idTable, sufixo, filtro, paraVerifica) {

	var qtParamAba;
	var htmlPesquisaUnidade = "";	
	
	switch( filtro ) {
	
		case 'T':
			qtParamAba = ecpQuantidadeParamentro.qttotal;
			break;
		case 'AF':
			qtParamAba = ecpQuantidadeParamentro.qtaf;
			break;
		case 'GM':
			qtParamAba = ecpQuantidadeParamentro.qtgm;
			break;
		case 'NS':
			qtParamAba = ecpQuantidadeParamentro.qtns;
			break;
		case 'TZ':
			qtParamAba =ecpQuantidadeParamentro.qttz;
			break;
	}
	
	htmlPesquisaUnidade = montaLinksPaginador( qtParamAba, idTable, filtro, paraVerifica );		
	
	$("#"+idTable+sufixo+" div#id-prt-empresa-navegador:last").remove();
	$(htmlPesquisaUnidade).appendTo("#"+idTable+sufixo);	
}

/**
* monta a nova quantidade pesquisa pela busca
*
*/
function visualizaNovoNavegador( jsonTable, idTable, filtro, paraVerifica ) {		
	
	var qtBuscas = jsonTable.length;
	var htmlNovoResultado  = "";
	
	if( qtBuscas > 20 ) {
		htmlNovoResultado = montaLinksPaginador( qtBuscas, idTable, filtro, paraVerifica );		
	}
	
	$("div#id-prt-empresa-navegador:last").remove();
	$(htmlNovoResultado).appendTo( "#"+idTable+filtro );
}

/*
* retorna links que seram utilizados no navegador
*
*/
function montaLinksPaginador( qtParamBusca, idTable, filtro, paramVerifica ) {
	
	var linksJsonTable = "";
	var paramContatodor = Math.ceil(qtParamBusca/20);
	var paramBusca = $("#"+idTable+"-base input[name='nomeUnidadePagina']").val()
	
	if(paramVerifica == "E"){
		for ( var contador = 1; contador <= paramContatodor; contador++ ) {
			linksJsonTable += "<a href='#' onclick=\"recuperarUnidadesPaginador('"+contador+"','"+filtro+"', '"+idTable+"', '-base', '"+paramVerifica+"','empfiliadas/empresafiliadas?idEmp','"+paramBusca+"'); return false;\"' class='unidadePagina'> "+contador+"</a>";
		}		
	}
	
	if(paramVerifica == "S"){
		for ( var contador = 1; contador <= paramContatodor; contador++ ) {
			linksJsonTable += "<a href='#' onclick=\"recuperarUnidadesPaginador('"+contador+"','"+filtro+"', '"+idTable+"', '-base', '"+paramVerifica+"', 'unidades/pesqunidade?idServico','"+paramBusca+"'); return false;\"' class='unidadePagina'> "+contador+"</a>";
		}
	}
	
	var htmlBusca = "<div id='id-prt-empresa-navegador' class='navegacao'>"+linksJsonTable+"</div>";


	return htmlBusca;
}

/**
* mostra a quantidade de municipios que estão sendo pesquisados.
*/
function mostrarQuantidadePaginacao( quantidade ) {

	var htmlPaginacao = "<span class='resultados'>Mostrando'"+quantidade+"'</span>";	
	$(htmlPaginacao).appendTo( ".busca-unidades" );
		
}

var ecpQuantidadeParamentro;
var ecpAbaSelecionada;

/**
 * Recebe como paramentro o id do serviço e retorna as empresa relacionadas. para montar as abas.
 * @param idPai pode ser o servico ou idemp pai
 * @param tipo se servico ou empresa
 */
function agruparPorNomeEQuantidade( idPai, urlJson, paramObj ) {	
	if (urlJson.indexOf("/soa/")<0)
		urlJson="/ecp/soa/"+urlJson;
	
	$.getJSON(urlJson+"="+idPai, function(data,i){
		
		var jSontable; 
		
		//para recebe portlet de serviço
		if( paramObj == "S" ){			
			jSontable = $(data.unidades)[0].unidades;
		}else if( paramObj == "E" ) { //para recebe portlet de empresa 		
			jSontable = $(data.empfiliadas)[0].empresasFiliadas;
		}
		
		//complementa a quantidade de nomes por abas
		preencheNomeQuantidade(jSontable);
		
		montaNavegadorAgrupaUnidades( jSontable, idPai, "-pagina", "T", paramObj);
		
	    $("a.unidadePagina:first").addClass("activeSlide");	    
	});
}

function preencheNomeQuantidade(jSonTable){
	
	ecpQuantidadeParamentro = {"qttotal": jSonTable.quantidadeTotal , "qtaf": jSonTable.quantidadeAF, "qtgm": jSonTable.quantidadeGM, "qtns": jSonTable.quantidadeNS, "qttz": jSonTable.quantidadeTZ} 

	$(".prt-empresa-count-T").append("("+jSonTable.quantidadeTotal+")")
	$(".prt-empresa-count-AF").append("("+jSonTable.quantidadeAF+")")
	$(".prt-empresa-count-GM").append("("+jSonTable.quantidadeGM+")")
	$(".prt-empresa-count-NS").append("("+jSonTable.quantidadeNS+")")
	$(".prt-empresa-count-TZ").append("("+jSonTable.quantidadeTZ+")")
			
	ecpAbaSelecionada = {"abaSel": "T"};

}


/**
 *  monta a tabela com as empresas iniciais 
 *
 *  @param idPai
 *
 */
function configTabelaEmpresas( idPai, paramLinkViewMode, paramVerifica, urlJson ) {
	if (urlJson.indexOf("/soa/")<0)
		urlJson="/ecp/soa/"+urlJson;

		$.getJSON(urlJson+"="+idPai+"&linkViewMode="+paramLinkViewMode, function(data,i){

		var jsonTable = vereficaRetornoJsonUndefined(data, paramVerifica);
		var jsonsublista = sublistaJson(jsonTable, numPorPg);
		gerarTabelaAgrupamentoEmpresas(jsonsublista, idPai, "-base");
	});
}

/**
 * verifica se o json retorna um unico objeto, quando ele retorna um único objeto
 * ele traz como undefined. 
 *
 * @param data - unidades
 *
 */
function vereficaRetornoJsonUndefined( data, paramVerifica ){
	
	if( paramVerifica == "S") {	
		if(typeof data.unidades.unidades != "undefined" ) {  
			jsonTable = jQuery.makeArray(data.unidades.unidades);
		} else if(data.unidades.listaVazia == ""){
			jsonTable = data.unidades;
		} else{
			jsonTable = data;
		}
	}else if( paramVerifica == "E" ) { //para receber portlet de empresa
		if(typeof data.empfiliadas.empresasFiliadas != "undefined" ) {  
			jsonTable =  jQuery.makeArray(data.empfiliadas.empresasFiliadas);
		} else if (data.empfiliadas.listaVazia == ""){
			jsonTable = data.empfiliadas;
		} else{
			jsonTable = data;
		}
	}

	return jsonTable
}

function determinaQuantidadeDeRegistros(data, paramVerifica){
	if( paramVerifica == "S") {	
		if(typeof data.unidades.unidades != "undefined" ) {  
			//jsonTable = jQuery.makeArray(data.unidades.unidades);
			return data.unidades.totalRegistros;
		} else if(data.unidades.listaVazia == ""){
			jsonTable = data.unidades;
		} else{
			jsonTable = data;
		}
	}else if( paramVerifica == "E" ) { //para receber portlet de empresa
		if(typeof data.empfiliadas.empresasFiliadas != "undefined" ) {  
			//jsonTable =  jQuery.makeArray(data.empfiliadas.empresasFiliadas);
			return data.empfiliadas.totalRegistros;
		} else if (data.empfiliadas.listaVazia == ""){
			jsonTable = data.empfiliadas;
		} else{
			jsonTable = data;
		}
	}
	return jsonTable.length;
}

/**
* 
* recebe como paramentro um valor até a quantidade desejada e retorna a pesquisa apartir do contador informado
* recupera a partir do filtro informado(AF, GM. etc);
* 
* @param  contador
* @param filtro
* @param idTable id do serviço responsavél par montar o div + sufixo
* @param sufixo complento do id do div para 
*/
function recuperarUnidadesPaginador( contador, paramAba, idTable, sufixo, paramVerifica, urlJson,paramBusca ){
	if (urlJson.indexOf("/soa/") < 0){
		urlJson = "/soa/" + urlJson;
	}

	urlJson = adicionarContextoUrlRest(urlJson);
	
	$("a.unidadePagina").click(function() {
		$("a.unidadePagina").removeClass("activeSlide");
		$(this).addClass("activeSlide");
	});
	
	$.getJSON(urlJson+"="+idTable+"&paramAba="+paramAba+"&paramPagina="+contador+"&linkViewMode="+linkViewModeAlterado+"&paramBusca="+paramBusca, function(data,i){			
		var jsonTable = vereficaRetornoJsonUndefined(data, paramVerifica);		
		jsonTable = sublistaJson(jsonTable,numPorPg);
		gerarTabelaAgrupamentoEmpresas(jsonTable, idTable, "-base");
	});
}

/**
 * Recebe url REST para adicionar contexto
 * Retorno url REST com contexto configurado
 */
function adicionarContextoUrlRest(urlRestSemContexto){
	var urlRestComContexto = plcGeral.contextPath + urlRestSemContexto;
	return urlRestComContexto;
}

/**
 * retorna objeto json com o retorno da cidade pesquisada 
 *
 * @param textoCompletar, neste ponto e inserido o texto que será completado 
 */
 var filaEsperaPesquisa = new Array();
 function itemPesquisa (id, paramBusca, idPai, linkViewModeAlterado, paraVerifica, urljsonPesq, executado){
	this.id	   = id;	
	this.idPai = idPai;
	this.paramBusca = paramBusca
	this.linkViewModeAlterado = linkViewModeAlterado;
	this.paraVerifica = paraVerifica;
	this.urljsonPesq = urljsonPesq;
	this.executado = executado;
	this.dados = null;
}


var pesquisaAtual; 
var timeoutPesquisaUnidades;
function autoCompletarJsonTable(idPai, linkViewModeAlterado, paraVerifica, urljsonPesq) {
	if (urljsonPesq.indexOf("/soa/")<0){
		urljsonPesq="/ecp/soa/"+urljsonPesq;
	}

	var tempoEspera = 1000; //tempo para esperar a próxima tecla antes de pesquisar
	var tamanhoRetornoBusca;
    $("input#idUnidadePagina").keyup(function () {
		var paramBusca = $(this).val();	
		clearTimeout(timeoutPesquisaUnidades);
		timeoutPesquisaUnidades = setTimeout("pesquisarJsonUnidades('"+unescape(paramBusca)+"',"+ idPai +",'"+ linkViewModeAlterado+"','"+ paraVerifica+"','"+ urljsonPesq+"')",tempoEspera);
	});	
}

function pesquisarJsonUnidades(paramBusca, idPai, linkViewModeAlterado, paraVerifica, urljsonPesq){

	var idPesq = filaEsperaPesquisa.length;
	var umaPesquisa = new itemPesquisa(idPesq, paramBusca, idPai, linkViewModeAlterado, paraVerifica, urljsonPesq, false);
	filaEsperaPesquisa[filaEsperaPesquisa.length] = umaPesquisa;
//	timeoutPesquisaUnidades = setTimeout("executarUmaPesquisaJsonUnidades('"+ escape(umaPesquisa.paramBusca) +"',"+umaPesquisa.idPai+",'"+umaPesquisa.linkViewModeAlterado+"','"+umaPesquisa.paraVerifica+"','"+umaPesquisa.urljsonPesq+"',"+umaPesquisa.id+")",tempoEspera);
	executarUmaPesquisaJsonUnidades(escape(umaPesquisa.paramBusca), umaPesquisa.idPai, umaPesquisa.linkViewModeAlterado, umaPesquisa.paraVerifica, umaPesquisa.urljsonPesq, umaPesquisa.id);

}

function executarUmaPesquisaJsonUnidades(paramBusca, idPai, linkViewModeAlterado, paraVerifica, urljsonPesq, psqAtualId){

	pesquisaAtual = filaEsperaPesquisa[psqAtualId];
	$.getJSON(urljsonPesq+"="+idPai+"&paramAba="+ecpAbaSelecionada.abaSel+"&paramBusca="+unescape(paramBusca)+"&linkViewMode="+linkViewModeAlterado, function(data,i){
		//pesquisaAtual.executado = true;
		pesquisaAtual.dados = data;
/*
		if((filaEsperaPesquisa.length-1) > pesquisaAtual.id){
			for(i = 0; i < filaEsperaPesquisa.length; i++){
				var pesquisa = filaEsperaPesquisa[i];
				if(!pesquisa.executado){
					executarUmaPesquisaJsonUnidades(pesquisa.paramBusca, pesquisa.idPai, pesquisa.linkViewModeAlterado, pesquisa.paraVerifica, pesquisa.urljsonPesq, pesquisa);
				}
			}
		}
*/
		mostrarPesquisaJsonUnidades(pesquisaAtual);

	});
	showLoading(true);
}

function mostrarPesquisaJsonUnidades(pesquisa){
	var	jsonTable = vereficaRetornoJsonUndefined(pesquisa.dados, pesquisa.paraVerifica);	
	var jsonsub = sublistaJson(jsonTable, numPorPg);
	gerarTabelaAgrupamentoEmpresas( jsonsub, pesquisa.idPai, "-base" );						
	$(".prt-empresa-link").removeClass("current");			
	if( pesquisa.paramBusca == '' ) {
		showLoading(false);
		montaNavegadorAgrupaUnidades( jsonTable, pesquisa.idPai, "-pagina", "T", pesquisa.paraVerifica );
		$(".prt-empresa-link-T").addClass("current");
	} else if( pesquisa.paramBusca != '') {
		contador();	
		visualizaNovoNavegador(jsonTable, pesquisa.idPai, "-pagina", pesquisa.paraVerifica, determinaQuantidadeDeRegistros(pesquisa.dados,pesquisa.paraVerifica));											
	}
	//filaEsperaPesquisa = new Array();
}


function sublistaJson(jsonlista, numMin, numMax){

	numMim = numMin || 20;
	numMax = numMax || numMin;
	var jsonsublista = $.grep( jsonlista, function(obj, index){ 
		if(numMax > numMin){
			return (index >= numMin || index <= numMax); 
		}else{
			return (index <= numMax); 
		}
	});
	return jsonsublista;
}

function showLoading(active) {
	
    if (active === false) {
        $('#partial-loading').remove();
    } else {
        var el = $('#partial-loading');
        if (el.length == 0) {
            var el = $('<div id="partial-loading" class="partial-loading"/>');
            if ($('.busca-unidades').length != 0) {
                $('.busca-unidades').append(el);
            }  else {
                $('body').append(el);
            }
        } else {
            el.show();
        }
    }	
}

var cont = 5;
function contador() {
	
	$('.busca-unidades').innerHTML = cont;
	
	if(cont == 0) {
		showLoading(false);
	}
	if (cont != 0){
		cont = cont-1;
		setTimeout("contador()", 1000);
	}
}

/*****************************************************************************\
				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");

} 

//Redimensiona portlet de iframe
function redimensionaIframe(seletor){

/*
	var funcResize = function(){
		var hgt		= $($($(seletor).attr("contentWindow").document).attr("body")).attr("offsetHeight");
		var scrHgt	= $($($(seletor).attr("contentWindow").document).attr("body")).attr("scrollHeight");
		hgt = scrHgt > hgt ? scrHgt : hgt;
		$(seletor).css("height", hgt).css("overflow","visible");
	}
	setTimeout(function() { try{funcResize();}catch(e){} },100);
*/

	jqEventResize.redimensionarIframeAutomatico(seletor);
	
}

//Portlet formulário
function montarConfirmacaoFormulario(){

	var portletForm =	opener.getElementoPorId(opener.prtFormEntrada);
	var txtSaida	= 	portletForm.elements['txtSaida'].value;
	var camposForm 	= 	portletForm.elements['camposForm'].value;
	var titulo 		= 	portletForm.elements['titulo'].value;
	var btEnvia 	= 	portletForm.elements['btEnvia'].value;
	var btCancela 	= 	portletForm.elements['btCancela'].value;

	var strForm = 
			"<form name=\"popupForm\" action=\""+portletForm.action+"\"  id=\"PRT-FORM-SAIDA\"  method=\"POST\" enctype=\""+portletForm.enctype+"\">";

	var formValoresStr	= opener.jqGetFormValores();
//	formValoresStr		= unescape(formValoresStr);
	var formValores		= formValoresStr.split("&");
	var formElements		= portletForm.elements;
	var formCampo		= null;

	var nomeCampo	= "";
	var valCampo	= "";
	var valTxtSaida = "";
	for(f = 0; f < formValores.length; f++){
		formCampo	= formValores[f].split("=");
		nomeCampo	= formCampo[0];
		valCampo	= formCampo[1];
		formCampo	= portletForm.elements[nomeCampo];

//		valCampo	= unescape(formCampo[1]);
//		nomeCampo	= formCampo.name;
		if(typeof formCampo.type != "undefined" && formCampo.type != "select" && formCampo.type != "radio"){
			valCampo	= portletForm.elements[nomeCampo].value;
		}
		valCampo	= valCampo.replace("+"," ");

		if(nomeCampo != "txtSaida"){
			strForm += "<input  type=\"hidden\" name=\""+nomeCampo+"\" value=\""+valCampo+"\">"
		}
		txtSaida = txtSaida.replace("$"+nomeCampo+"$",valCampo);
	}

	camposForm = camposForm.split(",");
	for(f2 = 0; f2 < camposForm.length; f2++){
		txtSaida = txtSaida.replace("$"+camposForm[f2]+"$","Vazio");
	}

	strForm += "<textarea name=\"txtSaida\" style=\"position: absolute; top: -100px; visibility: hidden;\">"+txtSaida+"</textarea>";

	txtSaida = txtSaida.replace("$BOTAO_CONFIRMAR$","$botao_confirmar$");
	txtSaida = txtSaida.replace("$BOTAO_LIMPAR$","$botao_limpar$");
	txtSaida = txtSaida.replace("$BOTAO_ENVIAR$","$botao_enviar$");
	txtSaida = txtSaida.replace("$BOTAO_CANCELAR$","$botao_cancelar$");

	var strBtEnviar		= "<input  id=\"PRT-FORM-BT-ENVIAR\" type=\"submit\" name=\"enviar\" value=\"Enviar\" >";
	var strBtCancelar	= "<input  id=\"PRT-FORM-BT-CANCELAR\" type=\"button\" name=\"cancelar\" value=\"Cancelar\"  onclick='window.close();'>";

	if(!btEnvia == "") {
		if(txtSaida.indexOf("$botao_enviar$") > -1) {
			txtSaida = txtSaida.replace("$botao_enviar$",strBtEnviar.replace("Enviar",btEnvia));
		}else {
			txtSaida += strBtEnviar;
		}
	}else {
		if(txtSaida.indexOf("$botao_enviar$") > -1) {
			txtSaida = txtSaida.replace("$botao_enviar$",strBtEnviar);
		}else {
			txtSaida += strBtEnviar;
		}	
	}
	
	if(!btCancela == "") {
		if(txtSaida.indexOf("$botao_cancelar$") > -1) {
			txtSaida = txtSaida.replace("$botao_cancelar$",strBtCancelar.replace("Limpar",btCancela));
		}else {
			txtSaida += "&nbsp;"+strBtCancelar;
		}
	}else {
		if(txtSaida.indexOf("$botao_cancelar$") > -1) {
			txtSaida = txtSaida.replace("$botao_cancelar$",strBtCancelar);
		}else {
			txtSaida += "&nbsp;"+strBtCancelar;
		}
	}

	strForm += txtSaida;
	strForm += "</form>";

	//document.getElementById("CONFIRMACAO_FORMULARIO").innerHTML = strForm;
	jQuery("#CONFIRMACAO_FORMULARIO").html(strForm);

}

var prtFormEntrada = "PRT-FORM-ENTRADA";
function confirmaFormulario(){
	$("div#PRT-FORM-VALIDATE-ERROR").text("").css("display","none");
	jqValidarForm(prtFormEntrada, regras);
}

function jqLimparFormulario(){
	if(confirm("Tem certeza que deseja limpar todos os dados do formulário?")){
		getElementoPorId(prtFormEntrada).reset();
	}
}

function jqGetFormValores(){
	return $("#"+prtFormEntrada).serialize();
}

function jqValidarForm(nomeForm, regras){

	$("#"+nomeForm).validate({
		rules: regras,
		errorPlacement: function(error, element) {
			var imgError = "<img id='PRT-FORM-VALIDATE-ERROR-IMG' src='"+plcGeral.contextPath+"/plc/midia/ico_status_erro.gif' border='0' align='absmiddle'>&nbsp;";
			var nomeElemento	= element.attr("name");
			var msgElemento		= error.html();
			var nomeCampo		= $(".frm-"+nomeElemento).html();
			if(typeof nomeCampo == "undefined" || nomeCampo == "" || nomeCampo == null){
				nomeCampo = $("label[for='"+nomeElemento+"']").text()
			}
			msgElemento = imgError + msgElemento.replace("{nomeCampo}", nomeCampo);
			error.html(msgElemento);
			$("div#PRT-FORM-VALIDATE-ERROR").append(error);
			$("div#PRT-FORM-VALIDATE-ERROR").css("display","block");
		}
	});
}


/*****************************************************************************\
					ORGANIZAÇÃO AUTOMÁTICA MÚLTIPLA
\*****************************************************************************/

var indiceAtual		= 0;
var indicesRemovidos= "";
var taxAdicionadas	= "#";

function antesDevolveSelecaoTreePopup(listaValores){
	var parValores	= listaValores.split(",");
	var valores		= parValores[0].split("#");
	
	if(taxAdicionadas.indexOf("#"+valores[1]+"#") > -1){
		alert(getVarGlobal("avisoTaxonomiaDuplicada"));
		return false;
	}

	registraCamposDevolveSelecaoTreePopup(indiceAtual);
	var novaLinha =  getNovaLinhaTaxonomia(indiceAtual, "", false);
	$(novaLinha).appendTo("#id-tabela-organizar-tax");
	incluiTaxAdicionada(valores[1]);
	return true;
}

function aposDevolveSelecaoTreePopup(listaValores){
	var hierarquia = jQuery("#id-hierarquia-tax-"+indiceAtual).val();
	//Retira nivel pai da organização
	hierarquia = hierarquia.substr(hierarquia.indexOf("/")+1,hierarquia.length);
	jQuery("#id-hierarquia-tax-"+indiceAtual).val(hierarquia);
	indiceAtual++;
	jQuery("#id-img-tax-"+indiceAtual).css("display","block");
}

function registraCamposDevolveSelecaoTreePopup(indice){
	camposRetorno = registrarCamposRetorno('detalheOrganizacao['+indice+'].idTaxonomia#id,detalheOrganizacao['+indice+'].nomeTaxonomiaAux#nome,detalheOrganizacao['+indice+'].endDiretorio#hierarquia', "nome,id", "");
}

function incluiTaxAdicionada(novaTax){
	taxAdicionadas += novaTax+"#";
}

function setExclusao(check){
	if(check.checked){
		check.value = "S";
	}else{
		check.value = "N";
	}
}

function removerTaxonomia(indice){

	taxAdicionadas = taxAdicionadas.replace(jQuery("#id-codigo-tax-"+indice).val()+"#","");
	jQuery("#id-indexc-tax-"+indice).val("S");
	jQuery("#id-linha-tax-"+indice).remove();
}

/*****************************************************************************\
								JQUERY SORT
\*****************************************************************************/
function JQSort(){};

var jqSort = new JQSort();

JQSort.prototype.ordenar = function(seletor){

	$(seletor).sortElements(function(primeiro, ultimo){
		return $.trim($(primeiro).text()) > $.trim($(ultimo).text()) ? 1 : -1;
	});
}


function atualizarBarraProgresso(seletor, propProgresso, propTotal){
	
	var opcoes = {	
			intervalo:3000
	};
	
	var url = "${pageContext.request.contextPath}/soa/progresso/"+propProgresso+"/"+propTotal;
	jQuery.ajax(
			{url:url,
				scriptCharsetString:"UTF-8",
				contentType:"application/x-www-form-urlencoded; charset=UTF-8",
				success:function(data, textStatus, XMLHttpRequest){
				jQuery(seletor).html(data);
		}});
}

/*****************************************************************************\
							JQUERY EVENT RESIZE
\*****************************************************************************/
function JQEventResize(){};

var jqEventResize = new JQEventResize();

JQEventResize.prototype.redimensionarIframeAutomatico= function(seletor){

	// Append an iFrame to the page.
	var iframe = jQuery(seletor);
	
	//Adiciona evento de redimensionamento ao carregar IFRAME
	iframe.load(function(){
		//Recupera o corpo do IFRAME
		var iframe_content = iframe.contents().find('body');
		//Adiciona o evento resize ao corpo do IFRAME. 
		//Assim, alterações no tamanho do IFRAME irão alterar tamanho deste na página
		iframe_content.resize(function(){
			alert('xxx')
			var elem = $(this);
			// Resize the IFrame.
			iframe.css({ height: (elem.outerHeight( true )+20) });
		});
		iframe_content.resize();
	});
}

function redimensionaIframeNovo(seletor){
	jQuery("body",document).resize(function(){
		acertaTamanhoIframe(seletor);
	});
	acertaTamanhoIframe(seletor);
}

function acertaTamanhoIframe(seletor){
	jQuery(parent.document).find(seletor).height(jQuery("body",document).height()+20);
}

