}
private static String bindModalLayerShowFormCtrlsMethod(String methodName,ClientDocumentStfulImpl clientDoc)
{
Browser browser = clientDoc.getBrowser();
JSRenderHTMLElementImpl render = JSRenderHTMLElementImpl.getJSRenderHTMLElement(browser);
StringBuilder code = new StringBuilder();
// Necesitamos enviar antes los m�todos usados luego dentro de la funci�n
code.append( render.bindBackupAndSetStylePropertyMethod(clientDoc) );
code.append( render.bindRestoreBackupStylePropertyMethod(clientDoc) );
code.append( "var func = function (elem,show,zIndex1,zIndex2)" );
code.append( "{" );
//code.append( " try{" ); // No se cual es la raz�n pero este try/catch es necesario para evitar que Opera Mobile 9.7 beta (y creo que 9.5 beta tambi�n) de errores imprevisibles (NO ESTA CLARO POR ESO LO HE QUITADO)
code.append( " var zIndex=0,zIndexMax=0;" );
code.append( " var parentNode = elem;" );
code.append( " while(parentNode.nodeType == 1)" ); // 1 == Node.ELEMENT_NODE
code.append( " {" );
code.append( " var style = " + render.getCurrentStyleObject("this","parentNode",clientDoc) + ";" );
code.append( " zIndex = style.zIndex;" );
code.append( " zIndex = parseInt(zIndex);" ); // zIndex normalmente (en W3C) es una string y puede ser el valor "auto" (parseInt devuelve NaN)
code.append( " if (isNaN(zIndex)) zIndex = 0;" );
code.append( " if (zIndex > zIndexMax) zIndexMax = zIndex;" );
code.append( " parentNode = parentNode.parentNode;" );
code.append( " }" );
code.append( " if ((zIndexMax < zIndex1)||(zIndexMax >= zIndex2)) return;" ); // zIndexMax debe estar en el conjunto [zIndex1,zIndex2)
code.append( " if (show)"); // Si el elemento no fue oculto no pasa nada, el c�digo de restauraci�n del backup detecta que no hay backup de la propiedad
code.append( " {" );
code.append( " " + render.getRestoreBackupStyleProperty("elem","visibility",clientDoc) );
code.append( " }" );
code.append( " else" );
code.append( " {" );
code.append( " " + render.getBackupAndSetStyleProperty("elem","visibility","hidden",clientDoc) );
code.append( " }" );
//code.append( " }catch(e){ }" );
code.append( "};" );
code.append("itsNatDoc." + methodName + " = func;\n");