src/content/images_www/v6/download/7.3.1/js/common.js (407 lines of code) (raw):

/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved. * * Oracle and Java are registered trademarks of Oracle and/or its affiliates. * Other names may be trademarks of their respective owners. * * The contents of this file are subject to the terms of either the GNU General * Public License Version 2 only ("GPL") or the Common Development and Distribution * License("CDDL") (collectively, the "License"). You may not use this file except in * compliance with the License. You can obtain a copy of the License at * https://netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the * License for the specific language governing permissions and limitations under the * License. When distributing the software, include this License Header Notice in * each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP. Oracle * designates this particular file as subject to the "Classpath" exception as * provided by Oracle in the GPL Version 2 section of the License file that * accompanied this code. If applicable, add the following below the License Header, * with the fields enclosed by brackets [] replaced by your own identifying * information: "Portions Copyrighted [year] [name of copyright owner]" * * Contributor(s): * * The Original Software is NetBeans. The Initial Developer of the Original Software * is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All * Rights Reserved. * * If you wish your version of this file to be governed by only the CDDL or only the * GPL Version 2, indicate your decision by adding "[Contributor] elects to include * this software in this distribution under the [CDDL or GPL Version 2] license." If * you do not indicate a single choice of license, a recipient has the option to * distribute your version of this file under either the CDDL, the GPL Version 2 or * to extend the choice of license to its licensees as provided above. However, if * you add GPL Version 2 code and therefore, elected the GPL Version 2 license, then * the option applies only if the new code is made subject to such option by the * copyright holder. */ /* Languages and their ids which NetBeans is available*/ var LANGUAGES = new Array(); var BUILD_INFO = new Array(); var PLATFORM_IDS = new Array(); var PLATFORM_LONG_NAMES = new Array(); var PLATFORM_SHORT_NAMES = new Array(); var BUNDLE_IDS = new Array(); var BUNDLE_LONG_NAMES = new Array(); var BUNDLE_SHORT_NAMES = new Array(); var FILES = new Array(); PLATFORM_IDS [0] = "windows"; PLATFORM_IDS [1] = "linux"; PLATFORM_IDS [2] = "solaris-x86"; PLATFORM_IDS [3] = "solaris-sparc"; PLATFORM_IDS [4] = "macosx"; PLATFORM_IDS [5] = "zip"; /* // Commented since NBI installers are not used for now PLATFORM_IDS [4] = "macosx-x86"; PLATFORM_IDS [5] = "macosx-ppc"; */ BUNDLE_IDS [0] = "javase"; //BUNDLE_IDS [1] = "javafx"; BUNDLE_IDS [1] = "javaee"; //BUNDLE_IDS [2] = "ruby"; BUNDLE_IDS [2] = "cpp"; BUNDLE_IDS [3] = "php"; BUNDLE_IDS [4] = "all"; var DEFAULT_LANGUAGE = "DEFAULT"; var PAGELANG_SEP = "pagelang="; var OMNITURE_CODE_JS = "https://netbeans.org/images_www/js/s_code_remote.js"; var GOOGLE_ANALYTICS_JS = "http://www.google-analytics.com/ga.js"; function getNameById(id,ids,names) { for(var i = 0 ; i < ids.length; i++) { if(ids[i] == id) { return names[i]; } } return ""; } function getPlatformShortName(id) { return getNameById(id, PLATFORM_IDS, PLATFORM_SHORT_NAMES); } function getPlatformLongName(id) { return getNameById(id, PLATFORM_IDS, PLATFORM_LONG_NAMES); } function getLanguageName(id) { var ids = new Array(); var names = new Array(); for(var i=0;i<LANGUAGES.length;i++) { ids.push(LANGUAGES[i].id); names.push(LANGUAGES[i].name); } return getNameById(id, ids, names); } function getBundleShortName(id) { return getNameById(id, BUNDLE_IDS, BUNDLE_SHORT_NAMES); } function getBundleLongName(id) { return getNameById(id, BUNDLE_IDS, BUNDLE_LONG_NAMES); } function get_overridden_language() { var url = "" + window.location; var idx = url.indexOf(PAGELANG_SEP); var langcode = DEFAULT_LANGUAGE; if(idx != -1) { langcode = url.substring(idx + PAGELANG_SEP.length, url.length); } return langcode; } function get_language_id() { return get_language(0); } function get_language_suffix() { return get_language(1); } function get_language_location() { var lang_suffix = get_language_suffix(); for(var i = 0; i < LANGUAGES.length; i++) { if(lang_suffix == LANGUAGES[i].suffix) { return LANGUAGES[i].location; } } } function is_suitable_location(lang_id, location) { for(var i = 0; i < LANGUAGES.length; i++) { if(lang_id == LANGUAGES[i].id) { return LANGUAGES[i].location == location; } } return false; } function get_language(option) { var variants = LANGUAGES; var resultLanguage = ""; if(variants) { var lang = (option == 0 ) ? variants[0].id : variants[0].suffix; var override = get_overridden_language(); if (override != DEFAULT_LANGUAGE) lang = override; else if(navigator.userLanguage) lang = navigator.userLanguage; else if(navigator.language) lang = navigator.language; lang = lang.replace("-", "_"); for(var i=0; i < variants.length; i++ ) { var value = (option == 0 ) ? variants[i].id : variants[i].suffix; if(value && lang.toLowerCase().indexOf(value.toLowerCase())!=-1) { if(value.length > resultLanguage.length) { resultLanguage = value; } } } } //no language (for id) selected - fallback to en if it is available if (resultLanguage == "" && option == 0) { for(var i=0; i < variants.length; i++ ) { if(variants[i].id == "en") { return "en"; } } } return resultLanguage; } function load_js(script_filename) { document.write('<script language="javascript" type="text/javascript" src="' + script_filename + '"></script>'); } function load_page_js_locale(name,ext) { load_js_locale(name, ext); } function useAnotherLocation() { var loc = get_language_location(); return loc != getPageArtifactsLocation(false); } function isMainLanguage(language) { for(var i=0; i < LANGUAGES.length; i++ ) { if(LANGUAGES[i].id == language) { return LANGUAGES[i].location == getPageArtifactsLocation(false); } } return false; } function load_js_locale(script_filename, extension) { var suffix = ""; var locale_suffix = ""; locale_suffix = get_language_suffix(); if(locale_suffix!="") { suffix = "_" + locale_suffix; } var a = useAnotherLocation(); load_page_js(script_filename + suffix + extension, a); } function load_page_img(img,add) { if(add) { document.write('<img src="' + getImagesLocation() + img + '" ' + add + '/>'); } else { document.write('<img src="' + getImagesLocation() + img + '"/>'); } } function load_page_css(css) { document.write('<link rel="stylesheet" type="text/css" href="' + getCSSLocation() + css + '" media="screen"/>'); } function other_webpage_langs_available() { for(var i=0 ; i < LANGUAGES.length; i++) { if ( LANGUAGES[i].suffix && LANGUAGES[i].suffix.length > 0) { return true; } } return false; } function page_languages_sort_function(a, b){ if (a.webpagename && b.webpagename) { return a.webpagename > b.webpagename ? 1 : (a.webpagename == b.webpagename ? 0 : -1); } else { return a.suffix > b.suffix ? 1 : (a.suffix == b.suffix ? 0 : -1); } } function write_page_languages() { var locale_suffix = get_language_suffix(); if(other_webpage_langs_available()) { document.getElementById("pagelanguagesbox").style.visibility = 'visible'; } var url = "" + window.location; var qIndex = url.indexOf("?")!=-1 ? url.indexOf("?") : url.length; var aIndex = url.indexOf("&")!=-1 ? url.indexOf("&") : url.length; var page = url.substring(0, Math.min(qIndex, aIndex)); var get_request = url.substring(url.indexOf(page) + page.length, url.length); if(get_request.indexOf(PAGELANG_SEP)==-1) { if(get_request.indexOf("?")==-1) { get_request += "?"; } else if(get_request.indexOf("&")) { get_request += "&"; } get_request += PAGELANG_SEP; } else { var regexp = new RegExp(PAGELANG_SEP + "[a-zA-Z]+(_[a-zA-Z]+){0,2}","g"); get_request = get_request.replace(regexp, PAGELANG_SEP); } var languages_sorted = LANGUAGES.slice().sort(page_languages_sort_function); for(var i=0;i<languages_sorted.length;i++) { if(languages_sorted[i].webpagename && locale_suffix!=languages_sorted[i].suffix) { document.write('<li><a href="' + page + get_request.replace(PAGELANG_SEP, PAGELANG_SEP + languages_sorted[i].suffix) + '">' + languages_sorted[i].webpagename + '</a></li>'); } } } function startList() { // source: https://netbeans.org/branding/scripts/lang-pulldown.js if (document.all&&document.getElementById) { navRoot = document.getElementById("nav"); if (navRoot!=null) { //if the language panel is active for (i=0; i<navRoot.childNodes.length; i++) { node = navRoot.childNodes[i]; if (node.nodeName=="LI") { node.onmouseover=function() { this.className+=" over"; } node.onmouseout=function() { this.className=this.className.replace(" over", ""); } } } } } } function get_file_list(dir,lang_id) { lst = new Array(); if(FILES.length > 0) { for (var i = 0; i < FILES.length; i++) { if(FILES[i].name.indexOf(dir)==0 && languageCompatible(FILES[i].locales, lang_id) && is_suitable_location(lang_id, FILES[i].location)) { var stripped = FILES[i].name.substring(dir.length, FILES[i].name.length); if(stripped.indexOf('/')==-1) { lst[lst.length] = stripped; } } } } return lst; } function languageCompatible(language_list, lang_id) { for(var i = 0; i < language_list.length; i++) { if(language_list[i]==lang_id) return true; } return false; } function get_file_info(filename,lang_id) { var file = null; if(FILES.length > 0) { for (var i = 0; i < FILES.length; i++) { if(FILES[i].name == filename && languageCompatible(FILES[i].locales, lang_id)) { file = FILES[i]; break; } } } return file; } function getSize(filename, lang_id) { var file = get_file_info(filename, lang_id); return file!=null ? file.size : ""; } function getMD5(filename, lang_id) { var file = get_file_info(filename, lang_id); return file!=null ? file.md5 : ""; } function get_file_name(platform, option, language) { var fn = ""; if(platform=="zip") { fn += "zip/"; } else { fn += "bundles/"; } return fn + get_file_name_short(platform, option, language); } function is_file_available(platform, option, language) { return get_file_info(get_file_name(platform, option, language), language) != null; } function get_build_location(lang_id) { var mainLanguage = isMainLanguage(lang_id); var location = get_build_info(mainLanguage).BUILD_LOCATION; if(!mainLanguage && location == "") { location = get_build_info(true).ADDITIONAL_BUILD_LOCATION; } return location; } function get_zip_files_prefix(lang_id) { return get_build_info(isMainLanguage(lang_id)).ZIP_FILES_PREFIX; } function get_bundles_files_prefix(lang_id) { return get_build_info(isMainLanguage(lang_id)).BUNDLE_FILES_PREFIX; } function get_file_name_short(platform, option, language) { var file_name = ""; if(platform=="zip") { if(option == "javadoc" || option == "platform-src" || option == "src") { file_name += get_zip_files_prefix(language).replace("-ml",""); } else { file_name += get_zip_files_prefix(language); } } else { file_name += get_bundles_files_prefix(language); } if (option != "all") { file_name += "-" + option; } if ( platform != "zip" ) { file_name += "-" + platform; } if (platform == "windows") { file_name += ".exe"; } else if ((platform == "macosx-x86") || (platform == "macosx-ppc")) { file_name += ".tgz"; } else if (platform == "macosx") { file_name += ".dmg"; } else if(platform == "zip"){ file_name += ".zip" } else { file_name += ".sh"; } return file_name; } function get_file_url(filename, lang_id) { var url = get_build_location(lang_id); url += filename; return url; } function get_file_bouncer_url(platform, option, language) { var url = get_build_info(isMainLanguage(language)).BOUNCER_URL; url += "?" + "product=" + get_build_info(isMainLanguage(language)).BOUNCER_PRODUCT_PREFIX; if(option != "all") { url += "-" + option; } url += "&" + "os=" + platform; return url; } function message(msg) { document.write(msg); } function writeUrl(url,msg) { document.write('<a href="' + url + '">' + msg + '</a>'); } function set_page_title(title) { document.title = title; var titleElement = document.getElementsByTagName("title"); if(titleElement.length == 1) { titleElement[0].text = title; } else { document.write('<title>' + title + '</title>'); } } function set_page_description(desc) { document.write('<meta name="description" content="' + desc + '"/>'); } function add_file(name, size, md5, locales) { var index = FILES.length; FILES[index] = new Object; FILES[index].name = name; FILES[index].size = size; FILES[index].md5 = md5; FILES[index].locales = locales.split(","); FILES[index].location = currentLocation; } function load_files_information(additional) { if(!additional) { load_page_js("files.js", false); } else if(get_build_info(true).SHOW_ADDITIONAL_LANGUAGES == 1) { load_page_js("files.js", true); } } function add_language(id, name, suffix, webpagename) { var index = LANGUAGES.length; for(var i=0;i<index;i++) { if(LANGUAGES[i].id == id) { if(id == "en" && isCommunityBuild()) { var newLanguages = new Array(); for(var j=0;j<index;j++) { if(j!=i) { newLanguages[newLanguages.length] = LANGUAGES[j]; } } LANGUAGES = newLanguages; index--; } else { return; } } } LANGUAGES[index] = new Object; LANGUAGES[index].name = name; LANGUAGES[index].id = id; if(suffix || webpagename) { LANGUAGES[index].suffix = suffix; LANGUAGES[index].webpagename = webpagename; } LANGUAGES[index].location = currentLocation; } function load_languages(additional) { if(!additional) { load_page_js("languages.js", false); } else if(get_build_info(true).SHOW_ADDITIONAL_LANGUAGES == 1) { load_page_js("languages.js", true); } } function add_build_info(build_info) { var index = BUILD_INFO.length; BUILD_INFO[index]=build_info; } function get_build_info(mainLanguage) { var index = (!mainLanguage && BUILD_INFO.length == 2) ? 1 : 0; return BUILD_INFO[index]; } function isCommunityBuild() { return get_build_info(true).COMMUNITY_BUILD == 1; } function load_build_info(additional) { if(!additional) { load_page_js("build_info.js", false); } else if(get_build_info(true).SHOW_ADDITIONAL_LANGUAGES == 1) { load_page_js("build_info.js", true); } }