
		/**
		 * Fun??o utilizada como callback de janelas que foram criadas com o objectivo
		 * de selecionar algum bean.
		 * Possui as informa??es necess?rias para a janela saber como deve preencher o
		 * formu?rio que a chamou
		 */
		function selecionarCallbackObject(valueInput, labelInput, valueType, button, buttonUnselect){
		    this.valueInput = valueInput;
			this.labelInput = labelInput;
			this.valueType  = valueType;
			this.button = button;
			this.buttonUnselect = buttonUnselect;
		}
		
		function imprimirVoltar(){
			if(top.cadastrar){
				document.write("<input type='button' value='Voltar' onclick='refreshPai()'>");
			}
		}
		
		function refreshPai() {
			//top.opener.document.forms[0].ACAO.value = top.cadastrar;
			//alert(top.opener.document.forms[0].ACAO.value);
			top.opener.document.forms[0].submit();
			top.close();
		}
		
		/**
		 * Imprime o bot?o selecionar onde for necess?rio
		 * O bot?o selecionar s? ? impresso onde a classe for da hierarquia da classe que pediu para selecionar
		 */
		function imprimirSelecionar(listaClasses, valor, label){
			//alert('valor '+valor+'  label '+label+'    listaclasses '+listaClasses);
			//alert(top.selecionarCallback);
			if(top.selecionarCallback){
				
				//document.write("dd");
				var ok = false;
				for(i in listaClasses){
					var clazz = listaClasses[i];
					if(clazz == top.selecionarCallback.valueType){
						ok = true;
					}
				}
				if(ok){
					//document.write("<a href=\"javascript:alert('Info: valor="+valor+" label="+label+"')\">info</a>&nbsp;");
					document.write("<a href=\"javascript:selecionar('"+valor+"','"+label+"')\">selecionar</a>&nbsp;");				
				}
				//DEBUG ----- c?digo abaixo ? debug descomente se nao aparecer o botao selecionar
				//else {
				//	alert('A classe \n'+listaClasses[0]+' \nn?o ? a mesma ou uma subclasse de \n'+top.selecionarCallback.valueType);
				//}
			}
		}
		
		/**
		 *
		 */
		function selecionar(valor, label){
			
			if(top.selecionarCallback){
				var callback = top.selecionarCallback;
				var onchangeFunction = callback.labelInput.onchange;
				callback.valueInput.value = valor;
				callback.labelInput.value = label;
				top.close();
				if(onchangeFunction){
					onchangeFunction();
				}
				callback.button.style.display = 'none';
				callback.buttonUnselect.style.display = '';				
			}
		}
		
		function preparaHtmlArea(editorurl){
			_editor_url = editorurl;
			var win_ie_ver = parseFloat(navigator.appVersion.split("MSIE")[1]);
			if (navigator.userAgent.indexOf('Mac')        >= 0) { win_ie_ver = 0; }
			if (navigator.userAgent.indexOf('Windows CE') >= 0) { win_ie_ver = 0; }
			if (navigator.userAgent.indexOf('Opera')      >= 0) { win_ie_ver = 0; }
			if (win_ie_ver >= 5.5) {
			  document.write('<scr' + 'ipt src="' +editorurl+ 'editor.js"');
			  document.write(' language="Javascript1.2"></scr' + 'ipt>');  
			}
			else { 
				document.write('<scr'+'ipt>function editor_generate() { return false; }</scr'+'ipt>'); 
			}
			//alert(_editor_url);
		}
		
		function limparCombo(combo, includeblank){
			pararEm = 0;

			while(combo.options.length > pararEm){
				//alert((combo.options.length -1));
				combo.remove((combo.options.length -1));
			}		
			var op = new Option();
			op.text = ' ';
			op.value = '<null>';
			combo.options.add(op);//forçar o redimensionamento do form
			combo.remove(pararEm);
			
			
			if(includeblank){
				op = new Option();
				op.text = ' ';
				op.value = '<null>';
				combo.options.add(op);
			}
		}