/*
 * Gera combo via Js
 *
 */ 
function makeCombo(sName,sSelected,nWidth,aCombo,sPopulaNext) {

	this.Name = sName;
	this.Selected = sSelected;
	this.Width = nWidth;

	eval(sName+"Time = ''");
	sCombo = "";

	var oField = MM_findObj(sName);
	if (oField == null) sCombo += "<input name="+sName+" type=hidden value='"+ sSelected +"'>\n";
		   
	sCombo += "<div id='"+sName+"MainCombo' class=combo onMouseOver=\"showCombo('"+sName+"')\" onMouseOut=\"hideCombo('"+sName+"')\" style=' width:"+nWidth+"px; height: 15px'>\n";
	sCombo += "<table class=itemSelectedCombo>\n";		 
	sCombo += "	<tr> \n";
	sCombo += "	  <td><label id="+sName+"Label>&nbsp;"+getLabelFromValue(aCombo,sSelected)+"</label></td>\n";
	sCombo += "	  <td class=comboArrow><img src='imagens/arrow_bt_white.gif' hspace='3' border='0'> \n";
	sCombo += "	  </td>\n";
	sCombo += "	</tr>\n";
	sCombo += "</table>\n";
	sCombo += "<div id='"+sName+"Combo' class='menuComboLayer'> \n";
	sCombo += makeList(sName, aCombo, sSelected, sPopulaNext);
	sCombo += "  </div>\n";
	sCombo += "</div>\n";
	document.write(sCombo);
		
}

/*
 * Monta o conteudo list do combo 
 *
 */ 
function makeList(sName, aCombo, sSelected, sPopulaNext) {

 	sCombo = "   <table id='"+sName+"List' class='menuComboTable' cellpadding='1' cellspacing='0' border='0' bordercolorlight='#336699' bordercolordark='#FFFFFF'>\n";
	for (i=0; i < aCombo.length; i++) {
		
		sLabel = aCombo[i][0];
		sValue = aCombo[i][1];
		sClass = (sValue == sSelected) ? "itemListSelected" : "itemList";
		
		sActionOnClick  = "trocarClasse(this,'itemListTmp');";
		sActionOnClick += "selectItem('"+sName+"','"+sLabel+"','"+sValue+"');";
		
		if (sPopulaNext != '') 
			sActionOnClick += "popularCombo('"+sPopulaNext+"','"+sValue+"')";
		
		sCombo += "       <tr onClick=\""+ sActionOnClick +"\" onMouseOver=\"trocarClasse(this,'itemListOver')\" onMouseOut=\"trocarClasse(this,'itemList')\" class="+sClass+">\n"; 
		sCombo += "			<td class=\"itemCombo\">&nbsp;"+aCombo[i][0]+"</td>\n";
		sCombo += "		  </tr>\n";
		
	}
	sCombo += "	  </table>\n";

	return sCombo;
} 


/*
 * Retorna o nome de exibição a partir de um valor
 *
 */
function getLabelFromValue(aCombo, sSelected) {
	sRet = '';	
	for (i=0; i < aCombo.length; i++) {			
		sValue = aCombo[i][1];
		if (sValue == sSelected) {
			sRet = aCombo[i][0];			
			break; 
		} 
	}	
	return sRet;
}


/*
 * Seleciona item do combo
 *
 */
function selectItem(sField, sText, sValue) {	

	var oField = MM_findObj(sField);
	if (oField != null) oField.value = sValue;
	var oLabel = MM_findObj(sField+'Label');
	if (oLabel != null) oLabel.innerHTML='&nbsp;' + sText;
			
	//Exibe ou Oculta layers de acordo com a opcao do combo			
	//showHideLayersComplementares(sField, sText);

	var oList = MM_findObj(sField+'List');	
	if (oList != null) {
		for (x = 0; x < oList.rows.length; x++){
			if(oList.rows(x).className != 'itemListTmp'){
				oList.rows(x).className = 'itemList';
			} else {
				oList.rows(x).className = 'itemListSelected';
			}
		}
	}	
	ocultarCombo(sField+'Combo');
}

/*
 * Preenche o combo dinâmicamente
 *
 */
function popularCombo(sField, sFiltroValue) {

	var sPopulaCombo = '';	
	if (sField == 'tfCodOrgao') sPopulaCombo = 'tfCodGerente';
	
	// Java
	//var sUrl = 'ApplicationControllerServlet?SG-HTMLFORM=br.com.bicbanco.sgn.forms.PopulaComboForm';	
	//window.open(sUrl+'&filtro='+sFiltroValue+'&combo='+sField+'&populaCombo='+sPopulaCombo,'appmsg');
}

/*
 * Abre o list do combo
 *
 */
function showCombo (sName) {	
	clearTimeout(eval(sName+'Time'));
	var oMainCombo = MM_findObj(sName+'MainCombo');
	if (oMainCombo != null) {
		oMainCombo.style.zIndex = 3000;
		
		var oCombo = MM_findObj(sName+'Combo');
		if (oCombo != null) {
		
			//Define tamanho do list de acordo com a area disponivel na janela
			sListHeight	  = oCombo.clientHeight;	
			sWindowHeight = getHeightWindow(sName+'Combo');
			
			if ((sWindowHeight < 195) && (sListHeight > sWindowHeight))
				 oCombo.style.height = (sWindowHeight -5) + 'px';
			else if (sListHeight > 195 )
				oCombo.style.height = '195px';
			
			var oList = MM_findObj(sName+'List');
			if (oList != null && oList.clientHeight < 195) oCombo.style.height = (oList.clientHeight+2) + 'px';
					
			oCombo.style.visibility = 'visible';
		}	
	}	
}

/*
 * Fecha list do combo chamando a função ocultarCombo()
 * após um timeout definido 
 *
 */
function hideCombo (sName) {
	var oMainCombo = MM_findObj(sName+'MainCombo');
	if (oMainCombo != null) oMainCombo.style.zIndex = 100;				
	eval(sName+"Time = setTimeout(\"ocultarCombo('"+sName+"Combo')\", 10);");
}

/*
 * Oculta combo
 *
 */
function ocultarCombo(sCombo) {
	var oCombo = MM_findObj(sCombo);
	if (oCombo != null)	{
		oCombo.style.visibility = "hidden";
		oCombo.style.height = '';
	}
}	

/*
 * Troca a Classe do Objeto
 *
 */
function trocarClasse(objeto, classe){
	if (objeto.className != 'itemListSelected')
		objeto.className = classe;
}

/*
 * Pega a altura da area disponível na tela
 *
 */
function getHeightWindow( sDiv ) { // v1.0, Vinicius Gallafrio
	var oH = window; oD = document; 
	var iDH, i, oDiv, iY, iAH, iNH, aArg = arguments, sSuf = "";
	if (oH.innerHeight) {iDH = (oH.innerHeight);} // NS6
	else if (oD.body) {iDH = oD.body.clientHeight;} // IE4+
	else if ((oD.documentElement) && (oD.documentElement.clientHeight)) {iDH = oD.documentElement.clientHeight;} // IE6 in standards compliant mode
	else {return;} 
	oDiv = eval("MM_findObj('" + sDiv + "')");
	if (oDiv != null) {
		oDiv = oDiv.style; iY = oDiv.top; 
		if ((oD.all) && (iY == "")) {iY = eval(sDiv + ".offsetTop");}
		iY = parseInt(iY);
		iAH = iDH - iY; 
		if ((parseInt(navigator.appVersion) > 4) || (navigator.userAgent.indexOf("MSIE") > -1)) {sSuf="px";}
		
		return iAH;
	}
	
}

/*
 * Localiza o Objeto desejado
 * 
 * exemplo de utilização: if ((obj1=MM_findObj('Footer?appmsg'))!=null) alert('ok');
 *
 */
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

/*
 * Mostra ou Oculta layers de acordo com a opção selecionada no combo
 * 
 */
function  showHideLayersComplementares(sField, sValue) {

	if (sField == 'estadoCivilId'){	
		if((obj=MM_findObj('CADASTROCONJUGE'))!=null) {
			if (obj.style) obj = obj.style;
			if (sValue == "Casado(a)") 
				obj.display = 'inline'; 
			else
				obj.display = 'none'; 		
		}
	}

	if (sField == 'dataComemorativaId'){		
		if((obj=MM_findObj('DATACOMEMORATIVA'))!=null) {
			if (obj.style) obj = obj.style;
			if (sValue == "Casamento"   || 
				sValue == "Aniversário" || 
				sValue == "Outros") 
				obj.display = 'inline'; 
			else
				obj.display = 'none'; 		
		}
	}	
	
	if (sField == 'txtOpcao1'){		
		if((obj=MM_findObj('PRESENTES'))!=null && (obj2=MM_findObj('VALEPRESENTE'))!=null) {
			if (obj.style) obj = obj.style;
			if (obj2.style) obj2 = obj2.style;
			
			if (sValue == "Vale-Presente") {
				obj.display = 'none'; 		
				obj2.display = 'inline'; 
			} else {
				obj.display = 'inline'; 
				obj2.display = 'none'; 				
			}
		}

		if((obj=MM_findObj('OP_OUTROS1'))!=null) {
			if (obj.style) obj = obj.style;			
	
			if (sValue == "Outros") 
				obj.display = 'inline'; 
			else
				obj.display = 'none'; 
		}

	}	
	
	if (sField == 'txtOpcao2'){		
		if((obj=MM_findObj('OP_OUTROS2'))!=null) {
			if (obj.style) obj = obj.style;			
	
			if (sValue == "Outros") 
				obj.display = 'inline'; 
			else
				obj.display = 'none'; 
		}
	}		
}
