IRepository repository, IContext repositoryContext)
IHierarchicalRepository repository, IContext repositoryContext)
    private void writeScriptTag_multiWindow(FacesContext facesContext,            JspWriter writer, String uri, String jsBaseURI,            IRepository repository, IContext repositoryContext)            throws IOException {        String javascriptCharset = IHtmlRenderContext.JAVASCRIPT_CHARSET;        writer.print("<SCRIPT");        if (htmlProcessContext.useMetaContentScriptType() == false) {            writer.write(" type=\"");            writer.write(IHtmlRenderContext.JAVASCRIPT_TYPE);            writer.write('\"');        }        writer.write('>');        if (htmlProcessContext.useScriptCData()) {            writer.write(IHtmlRenderContext.JAVASCRIPT_CDATA_BEGIN);        }        writer.println();        Map symbols = JavaScriptRepositoryServlet.getSymbols(facesContext);        IJavaScriptWriter jsWriter = new JavaScriptTag.JavaScriptWriterImpl(                facesContext, symbols, writer);        if (disabledCookiesPageURL != null) {            writeCookieTest(jsWriter);        }        jsWriter.write("for(var cl,v=window;v && !cl;v=v.opener)try{ cl=v.");        jsWriter.writeSymbol("_classLoader");        jsWriter.writeln("}catch(x){}");        jsWriter.write("if (!cl && top) cl=top.");        jsWriter.writeSymbol("_classLoader");        jsWriter.writeln(";");        jsWriter.write("if (cl) cl.");        jsWriter.writeSymbol("_newWindow");        jsWriter.write(".call(window, cl, function(x){return eval(x)});");        jsWriter.write(" else document.write(\"<SCRIPT");        if (htmlProcessContext.useMetaContentScriptType() == false) {            jsWriter.write(" type=\\\"");            jsWriter.write(IHtmlRenderContext.JAVASCRIPT_TYPE);            jsWriter.write("\\\"");        }        jsWriter.write(" src=\\\"");        String u = jsBaseURI + "/" + uri;        jsWriter.write(u);        jsWriter.write("\\\"");        if (javascriptCharset != null) {            jsWriter.write(" charset=\\\"");            jsWriter.write(javascriptCharset);            jsWriter.write("\\\"");        }        jsWriter.write("></\"+\"SCRIPT>");        List l = Collections.singletonList(MULTI_WINDOW_FILENAME);        IRepository.IFile files[] = repository.computeFiles(l,                IRepository.FILENAME_COLLECTION_TYPE, repositoryContext);        if (files != null && files.length > 0) {            Locale locale = repositoryContext.getLocale();            for (int i = 0; i < files.length; i++) {                jsWriter.write("<SCRIPT");                if (htmlProcessContext.useMetaContentScriptType() == false) {                    jsWriter.write(" type=\\\"");                    jsWriter.write(IHtmlRenderContext.JAVASCRIPT_TYPE);                    jsWriter.write("\\\"");                }                jsWriter.write(" src=\\\"");                u = jsBaseURI + "/" + files[i].getURI(locale);                jsWriter.write(u);                jsWriter.write("\\\"");                if (javascriptCharset != null) {                    jsWriter.write(" charset=\\\"");                    jsWriter.write(javascriptCharset);                    jsWriter.write("\\\"");                }                jsWriter.write("></\"+\"SCRIPT>");            }        }        jsWriter.writeln("\");");        if (htmlProcessContext.useScriptCData()) {            writer.println(IHtmlRenderContext.JAVASCRIPT_CDATA_END);        }        jsWriter.end();        writer.println("</SCRIPT>");    }