| /* |
| * get array for language |
| */ |
| function getArray() { |
| if (navigator.language) |
| language = navigator.language; |
| else if (navigator.userLanguage) |
| language = navigator.userLanguage; |
| else if (navigator.systemLanguage) |
| language = navigator.systemLanguage; |
| |
| // Convert "en" to "en-US" as well since en-US build is the canonical |
| // translation, and thus better tested. |
| if (language == "" || language == "null" || language == "en") language = "en-US"; |
| |
| // Konqueror uses '_' where other browsers use '-'. |
| if (language.indexOf("_") != -1) { |
| language = language.split("_").join("-"); |
| } |
| |
| language = language.toLowerCase(); |
| var languageCode = language.split("-")[0]; |
| var regionCode = language.split("-")[1]; |
| |
| var thisLanguageSet = languages[languageCode]; |
| if ( thisLanguageSet == null ) { |
| // language code not found inside array |
| languageCode = "en"; |
| regionCode = "us"; |
| thisLanguageSet = languages[languageCode]; |
| } |
| |
| if ( regionCode != null ) { |
| // found additional region code |
| if (thisLanguageSet[regionCode] != null) { |
| // choose langCode-regionCode |
| thisLanguage = thisLanguageSet[regionCode]; |
| } else { |
| // choose default |
| thisLanguage = thisLanguageSet["-"]; |
| if ( languageCode == "en" ) { |
| // special case, default is en-US for en-XX |
| regionCode = "us"; |
| thisLanguageSet = languages[languageCode]; |
| thisLanguage = thisLanguageSet[regionCode]; |
| } |
| } |
| } else { |
| // choose default for none given region code |
| thisLanguage = thisLanguageSet["-"]; |
| }; |
| return thisLanguage; |
| } |
| |
| /* |
| * get language for user-language |
| */ |
| function getLanguage() { |
| var a = getArray(); |
| return a[1]; |
| } |
| |
| /* |
| * get language for user-language in ISO format |
| */ |
| function getLanguageISO() { |
| if (navigator.language) |
| language = navigator.language; |
| else if (navigator.userLanguage) |
| language = navigator.userLanguage; |
| else if (navigator.systemLanguage) |
| language = navigator.systemLanguage; |
| |
| // Convert "en" to "en-US" as well since en-US build is the canonical |
| // translation, and thus better tested. |
| if (language == "" || language == "null" || language == "en") language = "en-US"; |
| if (language == "pt") language = "pt-PT"; |
| |
| // Konqueror uses '_' where other browsers use '-'. |
| if (language.indexOf("_") != -1) language = language.split("_").join("-"); |
| |
| language = language.toLowerCase(); |
| var languageCode = language.split("-")[0]; |
| var regionCode = language.split("-")[1]; |
| |
| var thisLanguageSet = languages[languageCode]; |
| if ( thisLanguageSet == null ) { |
| return "en-US"; |
| } else if ( regionCode != null ) { |
| if ( regionCode == "pt" && languageCode == "pt" ) { |
| // fix for Port. pt-PT downloads named only pt without region code! |
| return languageCode; |
| } |
| if (thisLanguageSet[regionCode] != null) { |
| // choose langCode-regionCode |
| return languageCode + "-" + regionCode.toUpperCase(); |
| } else { |
| // choose default |
| if ( languageCode == "en" ) { |
| // special case, default is en-US for en-XX |
| return "en-US"; |
| } else |
| return languageCode; |
| } |
| } else { |
| // choose default |
| return languageCode; |
| }; |
| } |
| |
| /* |
| * get flag for mirror link |
| * was old bouncer flag |
| * depends on array-list |
| */ |
| function hasMirrorLink() { |
| var a = getArray(); |
| var platform = getPlatform(); |
| |
| if ( a[4] == 'y' ) { |
| // special handling for MAC, links in combination with general flag a[4] |
| if ( platform.indexOf( "Mac" ) == -1 || a[5] == 'y' ) { |
| return true; |
| } else { |
| return false; |
| } |
| } else { |
| return false; |
| } |
| } |
| |
| /* |
| * get link |
| * depends on array-list |
| */ |
| function getLink( version ) { |
| return bouncer_getLink( version ); |
| } |
| |
| /* |
| * get link |
| * depends on array-list |
| */ |
| function getLink( version, mirror ) { |
| if ( null != mirror ) { |
| return bouncer_getLink( version, mirror, "old" ); |
| } |
| } |
| |
| /* |
| * get link |
| * depends on array-list and download-set nameschema |
| */ |
| function getLink( version, mirror, schema ) { |
| if ( null != mirror ) { |
| if ( mirror.indexOf( "bouncer" ) > -1 ) { |
| return bouncer_getLink( version ); |
| } else if ( mirror.indexOf( "mirrorbrain" ) > -1 ) { |
| return mirrorbrain_getLink( version, schema ); |
| } else if ( mirror.indexOf( "sourceforge" ) > -1 ) { |
| return sourceforge_getLink( version, schema ); |
| } else { |
| return bouncer_getLink( version ); |
| } |
| } |
| } |
| |
| /* |
| * get platform of browser |
| * independant from mirror-system |
| */ |
| function getPlatform() { |
| if ( navigator.platform != null ) { |
| if ( navigator.platform.indexOf( "Win32" ) != -1 ) { |
| return "Windows"; |
| } else if ( navigator.platform.indexOf( "Win64" ) != -1 ) { |
| return "Windows"; |
| } else if ( navigator.platform.indexOf( "Win" ) != -1 ) { |
| return "Windows"; |
| } else if ( navigator.platform.indexOf( "Linux" ) != -1 ) { |
| if ( navigator.platform.indexOf( "64" ) != -1 ) { |
| if ( navigator.userAgent != null ) { |
| if ( navigator.userAgent.toLowerCase().indexOf( "debian" ) != -1 || |
| navigator.userAgent.toLowerCase().indexOf( "ubuntu" ) != -1 ) { |
| return "Linux Debian 64-bit"; |
| } else { |
| return "Linux 64-bit"; |
| } |
| } else { |
| return "Linux 64-bit"; |
| } |
| } else { |
| if ( navigator.userAgent != null ) { |
| if ( navigator.userAgent.toLowerCase().indexOf( "debian" ) != -1 || |
| navigator.userAgent.toLowerCase().indexOf( "ubuntu" ) != -1 ) { |
| return "Linux Debian"; |
| } else { |
| return "Linux"; |
| } |
| } else { |
| return "Linux"; |
| } |
| } |
| } else if ( navigator.platform.indexOf( "SunOS i86pc" ) != -1 ) { |
| return "Solaris x86"; |
| } else if ( navigator.platform.indexOf( "SunOS sun4u" ) != -1 ) { |
| return "Solaris SPARC"; |
| } else if ( navigator.platform.indexOf( "SunOS" ) != -1 ) { |
| return "Solaris SPARC"; |
| } else if ( navigator.platform.indexOf( "Mac" ) != -1 && navigator.platform.indexOf( "Intel" ) != -1 ) { |
| return "Mac OS Intel"; |
| } else if ( navigator.platform.indexOf( "Mac" ) != -1 && navigator.platform.indexOf( "PPC" ) != -1 ) { |
| return "Mac OS PPC"; |
| } else if ( navigator.platform.indexOf( "Mac" ) != -1 ) { |
| return "Mac OS Intel" ; |
| } else if ( navigator.platform.indexOf( "iPad" ) != -1 || navigator.platform.indexOf( "iPhone" ) != -1 || |
| navigator.platform.indexOf( "iPod" ) != -1 ) { |
| // this code will redirect the iPad, iPhone and iPod entries |
| return "Mac OS Intel" ; |
| } else if ( navigator.platform.indexOf( "Series60" ) != -1 ) { |
| // this code will redirect the Series60 entries |
| return "Windows" ; |
| } else if ( navigator.platform.indexOf( "null" ) != -1 ) { |
| return "Windows" ; |
| } else { |
| // return platform name |
| return navigator.platform; |
| } |
| } |
| return "Windows"; |
| } |
| |
| /* |
| * get platform for bouncer-link |
| * must be changed |
| */ |
| function getPlatformForMirror() { |
| return bouncer_getPlatformForMirror(); |
| } |
| |
| /* |
| * deprecated |
| * must be changed |
| */ |
| function getPlatformForBouncer() { |
| return getPlatformForMirror(); |
| } |
| |
| /* |
| * get tupel for tracking |
| */ |
| function getTupel( href ) { |
| if ( href.indexOf( "?" ) > 0 && href.indexOf( MIRROR_BOUNCER_URL ) > -1 ) { |
| return bouncer_getTupel( href ); |
| } else if ( href.indexOf( MIRROR_MIRRORBRAIN_URL + "files/" ) > -1 ) { |
| return mirrorbrain_getTupel( href ); |
| } |
| return ""; |
| } |
| |
| /* |
| * get product name for tracking |
| */ |
| function getProduct( href ) { |
| var retVal = ""; |
| |
| if ( href.indexOf( "?" ) > 0 && href.indexOf( MIRROR_BOUNCER_URL ) > -1 ) { |
| return bouncer_getProduct( href ); |
| } else if ( href.indexOf( MIRROR_MIRRORBRAIN_URL + "files/" ) > -1 ) { |
| return mirrorbrain_getProduct( href ); |
| } |
| return retVal; |
| } |
| |
| /* |
| * get language code for tracking |
| */ |
| function getLang( href ) { |
| var retVal = ""; |
| |
| if ( href.indexOf( "?" ) > 0 && href.indexOf( MIRROR_BOUNCER_URL ) > -1 ) { |
| return bouncer_getLang( href ); |
| } else if ( href.indexOf( MIRROR_MIRRORBRAIN_URL + "files/" ) > -1 ) { |
| return mirrorbrain_getLang( href ); |
| } |
| return retVal; |
| } |
| |
| /* |
| * get os for tracking |
| */ |
| function getOS( href ) { |
| var retVal = ""; |
| |
| if ( href.indexOf( "?" ) > 0 && href.indexOf( MIRROR_BOUNCER_URL ) > -1 ) { |
| return bouncer_getOS( href ); |
| } else if ( href.indexOf( MIRROR_MIRRORBRAIN_URL + "files/" ) > -1 ) { |
| return mirrorbrain_getOS( href ); |
| } |
| return retVal; |
| } |
| |
| /* |
| * get version for tracking |
| */ |
| function getVersion( href ) { |
| var retVal = ""; |
| |
| if ( href.indexOf( "?" ) > 0 && href.indexOf( MIRROR_BOUNCER_URL ) > -1 ) { |
| return bouncer_getVersion( href ); |
| } else if ( href.indexOf( MIRROR_MIRRORBRAIN_URL + "files/" ) > -1 ) { |
| return mirrorbrain_getVersion( href ); |
| } |
| return retVal; |
| } |
| |
| /* |
| * this function is used on the "download.openoffice.org/other.html" website |
| */ |
| function writeJavaSelector() { |
| document.write( "<form action=\"\" method=\"\" name=\"downloadSettings\">" ); |
| document.write( "<input type=\"checkbox\" onclick=\"updateHREFs()\" checked=\"checked\" name=\"cbIncludeJRE\" id=\"cbIncludeJRE\"> " ); |
| //document.write( "<label for=\"cbIncludeJRE\">Include the JRE to the download (this option is not available for Linux 32/64-bit Debian and Mac OS).</label></input>" ); |
| document.write( "Include the JRE to the download (switching is only available for Windows and Linux 32-bit RPM full installation sets).</input>" ); |
| document.write( "<br/>" ); |
| document.write( "</form>" ); |
| } |
| |
| /* |
| * this function is used on the "download.openoffice.org/all_rc.html" website |
| */ |
| function writeJavaSelectorRC() { |
| document.write( "<form action=\"\" method=\"\" name=\"downloadSettings\">" ); |
| document.write( "<input type=\"checkbox\" onclick=\"updateHREFs()\" checked=\"checked\" name=\"cbIncludeJRE\" id=\"cbIncludeJRE\"> " ); |
| //document.write( "<label for=\"cbIncludeJRE\">Include the JRE to the download (this option is not available for Linux 32/64-bit Debian and Mac OS).</label></input>" ); |
| document.write( "Include the JRE to the download (switching is only available for Windows and Linux 32-bit RPM full installation sets).</input>" ); |
| document.write( "<br/>" ); |
| document.write( "</form>" ); |
| } |
| |
| function updateHREFs() { |
| var qabuildsul = document.getElementById("qabuilds"); |
| var anchorsToMirror = document.getElementsByTagName("a"); |
| |
| if (document.downloadSettings.cbIncludeJRE.checked == false) { |
| for (var i = 0; i < anchorsToMirror.length; i++) { |
| if ( anchorsToMirror[i].href.indexOf( "os=linuxinteldeb" ) == -1 |
| && anchorsToMirror[i].href.indexOf( "os=macosx" ) == -1 |
| ) { |
| if ( anchorsToMirror[i].href.indexOf( "?" ) > 0 && anchorsToMirror[i].href.indexOf( MIRROR_BOUNCER_URL ) > -1 ) { |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("wjre&lang=","&lang="); |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("wjre&lang=","&lang="); |
| } else if ( anchorsToMirror[i].href.indexOf( MIRROR_MIRRORBRAIN_URL + "files/" ) > -1 ) { |
| if ( anchorsToMirror[i].href.indexOf( "_install-" ) > -1 || |
| ( anchorsToMirror[i].href.indexOf( "_install_" ) > -1 && |
| ( anchorsToMirror[i].href.indexOf( "_Linux_" ) > -1 || anchorsToMirror[i].href.indexOf( "_MacOS_" ) > -1 || |
| anchorsToMirror[i].href.indexOf( "_Win_" ) > -1 ) ) ) { |
| // new schema |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("-wJRE_","_"); |
| } else { |
| // old schema |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("install_wJRE_","install_"); |
| } |
| } else { |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("wjre&lang=","&lang="); |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("wjre&lang=","&lang="); |
| } |
| } |
| if ( anchorsToMirror[i].href.indexOf( "_Linux_x86-64_install-rpm_" ) > -1 || anchorsToMirror[i].href.indexOf( "_Solaris_" ) > -1) { |
| // do not include Linux x86-64 RPM, Solaris in the JRE switching as only wJRE builds are available |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("_install-rpm_","_install-rpm-wJRE_"); |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("_install_","_install-wJRE_"); |
| } |
| if ( anchorsToMirror[i].href.indexOf( "OOo-SDK_" ) > -1 ) { |
| // do not include SDK in the JRE switching as only non-JRE builds are available |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("_install-wJRE_","_install_"); |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("_install-rpm-wJRE_","_install-rpm_"); |
| } |
| } |
| } else { |
| for (var i = 0; i < anchorsToMirror.length; i++) { |
| if ( anchorsToMirror[i].href.indexOf( "os=linuxinteldeb" ) == -1 |
| && anchorsToMirror[i].href.indexOf( "os=macosx" ) == -1 |
| ) { |
| if ( anchorsToMirror[i].href.indexOf( "?" ) > 0 && anchorsToMirror[i].href.indexOf( MIRROR_BOUNCER_URL ) > -1 ) { |
| // we cannot assume that it is always right, and in order to prevent wjrewjrewjre&... this (should) solve(s) it... |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("wjre&lang=","&lang="); |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("wjre&lang=","&lang="); |
| // and now we add them :) |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("&lang=","wjre&lang="); |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("&lang=","wjre&lang="); |
| } else if ( anchorsToMirror[i].href.indexOf( MIRROR_MIRRORBRAIN_URL + "files/" ) > -1 ) { |
| if ( anchorsToMirror[i].href.indexOf( "_install" ) > -1 && |
| ( anchorsToMirror[i].href.indexOf( "_MacOS" ) > -1 || anchorsToMirror[i].href.indexOf( "_deb" ) > -1 || |
| anchorsToMirror[i].href.indexOf( "_HPPA" ) > -1 || anchorsToMirror[i].href.indexOf( "_IA64" ) > -1 || |
| anchorsToMirror[i].href.indexOf( "_PPC" ) > -1 || anchorsToMirror[i].href.indexOf( "_S390X" ) > -1 || |
| anchorsToMirror[i].href.indexOf( "OOo-SDK_" ) > -1 ) ) { |
| // do nothing for MAC, _deb, Linux HPPA, IA64, PPC, S390X and OOo-SDK |
| } else if ( anchorsToMirror[i].href.indexOf( "_install-" ) > -1 || ( |
| anchorsToMirror[i].href.indexOf( "_install_" ) > -1 && ( |
| anchorsToMirror[i].href.indexOf( "_Linux_" ) > -1 || anchorsToMirror[i].href.indexOf( "_Win_" ) > -1 || |
| anchorsToMirror[i].href.indexOf( "_Solaris_" ) > -1 |
| ) |
| ) ) { |
| // new schema |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("_install_","_install-wJRE_"); |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("_install-rpm_","_install-rpm-wJRE_"); |
| } else { |
| // old schema |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("install_wJRE_","install_"); |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("install_","install_wJRE_"); |
| } |
| } else { |
| // we cannot assume that it is always right, and in order to prevent wjrewjrewjre&... this (should) solve(s) it... |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("wjre&lang=","&lang="); |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("wjre&lang=","&lang="); |
| // and now we add them :) |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("&lang=","wjre&lang="); |
| anchorsToMirror[i].href = anchorsToMirror[i].href.replace("&lang=","wjre&lang="); |
| } |
| } |
| } |
| } |
| } |
| |
| function continueToDownload( uri ) { |
| uri = uri.replace( MIRROR_BOUNCER_URL, "" ); |
| // bonuscheck... noone gets hurt... |
| if (document.downloadSettings.cbIncludeJRE.checked == false) { |
| uri = uri.replace("wjre",""); |
| } |
| document.location = "http://download.openoffice.org/contribute.html" + uri; //absolute to for use at other subdomains |
| } |
| |
| function continueToDownloadTwo( uri ) { |
| uri = uri.replace("http://openoffice.bouncer.osuosl.org/",""); |
| // bonuscheck... noone gets hurt... |
| if (document.downloadSettings.cbIncludeJRE.checked == false) { |
| uri = uri.replace("wjre",""); |
| } |
| document.location = "http://download.openoffice.org/contribute.html" + uri; |
| } |
| |
| function openItem( itemid, uri ) { |
| var thisDocument = document.getElementById("downloadextendedtext"); |
| var thisDocument = document.getElementById(itemid); |
| |
| if ( ( itemid=="optionitem1" || itemid=="optionitem5" || itemid=="optionitem6" || itemid=="optionitem7" || itemid=="optionitem8" ) && uri.indexOf( MIRROR_BOUNCER_URL ) > -1 ) { |
| uri = uri.replace( MIRROR_BOUNCER_URL + "?",""); |
| uri = "http://download.openoffice.org/contribute.html?download=bouncer&" + escape( uri ); |
| } else if ( ( itemid=="optionitem1" || itemid=="optionitem5" || itemid=="optionitem6" || itemid=="optionitem7" || itemid=="optionitem8" ) && uri.indexOf( MIRROR_MIRRORBRAIN_URL ) > -1 ) { |
| uri = uri.replace( MIRROR_MIRRORBRAIN_URL, ""); |
| uri = "http://download.openoffice.org/contribute.html?download=mirrorbrain&" + escape( uri ); |
| } |
| document.location = uri; |
| // start( uri ); |
| }; |
| |
| function makeDownloadLIintoButtons() { |
| var downloadextendedtext = document.getElementById( "downloadextendedtext" ); |
| var liItems = downloadextendedtext.getElementsByTagName("li"); |
| |
| for (var i = 0; i < liItems.length; i++) { |
| var liItemsAnchors = liItems[i].getElementsByTagName("a"); |
| if (liItemsAnchors.length == 1) { |
| var hrefcontents = liItemsAnchors[0].href; |
| if (hrefcontents.search( "bouncer" ) > -1 || hrefcontents.search( MIRROR_MIRRORBRAIN_URL ) > -1) { |
| liItems[i].onclick = function () { |
| var myHref = this.getElementsByTagName("a")[0].href; |
| continueToDownload(myHref); |
| return false; |
| }; |
| } else { |
| liItems[i].onclick = function () { |
| var myHref = this.getElementsByTagName("a")[0].href; |
| document.location = myHref; |
| return false; |
| }; |
| } |
| liItems[i].style.cursor = "pointer"; |
| } |
| } |
| } |
| |
| function start( uri ) { |
| alert( 'Go to OpenOffice.org ' + uri ); |
| |
| } |
| function doLoad( uri ) { |
| // the timeout value should be the same as in the "refresh" meta-tag |
| setTimeout( "download('" + uri + "')", 2*1000 ); |
| } |
| |
| function download( uri ) { |
| // starting the download |
| window.location.href = uri; |
| } |
| |
| function startDownload() { |
| var s = window.location.search; |
| i = s.indexOf( "download=" ); |
| if ( i > -1 ) { |
| if ( s.indexOf( "download=bouncer" ) > -1 ) { |
| uri = unescape( s.split( "download=bouncer" )[1] ); |
| uri = MIRROR_BOUNCER_URL + "?" + uri; |
| } else if ( s.indexOf( "download=mirrorbrain&" ) > -1 ) { |
| uri = unescape( s.split( "download=mirrorbrain&" )[1] ); |
| uri = MIRROR_MIRRORBRAIN_URL + uri; |
| } |
| s_linkType = "d"; |
| s_linkTrackVars = "events,products,eVar3,eVar8,prop19,prop20,prop21"; |
| s_linkTrackEvents = "event7"; |
| s_events = "event7"; |
| s_eVar3 = "ooo"; |
| s_linkName = "ooo:" + getTupel( uri ); |
| s_products = "Downloaded Products;" + getProduct( uri ) + " Download"; |
| s_eVar8 = getTupel( uri ); |
| s_prop19 = getOS( uri ); |
| s_prop20 = getLang( uri ); |
| s_prop21 = getVersion( uri ); |
| if ( uri != null ) { |
| document.write( "Starting download from <a onClick='s_lnk=s_co(this);s_gs(s_account);' href='" + uri + "'>" + uri + "</a>." ); |
| doLoad( uri ); |
| } |
| // document.location = uri; |
| return false; |
| } |
| } |