blob: 10ecdfb1309caf98ac680f9171a1235ea058fe60 [file] [log] [blame]
/*
* get link to mirror system
* depends on array-list
*/
function mirrorbrain_getLink( version ) {
return mirrorbrain_getLink( version, "old" );
}
/*
* get link to mirror system in combination with schema for download-set
* depends on array-list
*/
function mirrorbrain_getLink( version, schema ) {
var a = getArray();
var platform = getPlatform();
var link = null;
if ( hasMirrorLink() ) {
// use mirror link
if ( version == VERSION ) {
link = MIRROR_MIRRORBRAIN_URL + "files/";
if ( getLanguageISO().indexOf( "en-US" ) > -1 ) {
link = link + "stable/" + version + "/";
} else {
link = link + "localized/" + getLanguageISO() + "/" + version + "/";
}
return link + mirrorbrain_getFileName( version, schema );
} else if ( version == OLD_VERSION ) {
link = MIRROR_MIRRORBRAIN_URL + "files/";
if ( getLanguageISO().indexOf( "en-US" ) > -1 ) {
link = link + "stable/" + version + "/";
} else {
link = link + "localized/" + getLanguageISO() + "/" + version + "/";
}
return link + mirrorbrain_getFileName( version, schema );
} else if ( version == RC_VERSION ) {
link = MIRROR_MIRRORBRAIN_URL + "files/extended/" + mirrorbrain_getVersionForDownloadFolder( version ) + "/";
return link + mirrorbrain_getFileName( version, schema );
} else if ( version == BETA_VERSION ) {
link = MIRROR_MIRRORBRAIN_URL + "files/extended/" + version + "/";
return link + mirrorbrain_getFileName( version, schema );
} else if ( version == DEV1_VERSION ) {
link = MIRROR_MIRRORBRAIN_URL + "files/extended/developer/" + version + "/";
return link + mirrorbrain_getFileName( version, schema );
} else if ( version == DEV2_VERSION ) {
link = MIRROR_MIRRORBRAIN_URL + "files/extended/developer/" + version + "/";
return link + mirrorbrain_getFileName( version, schema );
} else if ( version == DEVB_VERSION ) {
link = MIRROR_MIRRORBRAIN_URL + "files/extended/developer/" + version + "/";
return link + mirrorbrain_getFileName( version, schema );
} else if ( version == TEST_VERSION ) {
link = MIRROR_MIRRORBRAIN_URL + "files/";
if ( getLanguageISO().indexOf( "en-US" ) > -1 ) {
link = link + "stable/" + version + "/";
} else {
link = link + "localized/" + getLanguageISO() + "/" + version + "/";
}
return link + mirrorbrain_getFileName( version, schema );
}
// error
return null;
} else {
// The following lines are no longer valid and commented out as the porting is done and Mac an official build
// if ( platform.indexOf( "Mac" ) != -1 ) {
// send MAC requests to porting.o.o
// return "http://porting.openoffice.org/mac/download/";
// } else {
// use direct link
return a[2];
// }
}
}
/*
* special tupel for tracking
*/
function mirrorbrain_getTupel( href ) {
var retVal = "";
var file;
file = mirrorbrain_getTagFileName( href );
if ( file != null ) {
var product, os, lang, version;
product = mirrorbrain_getTagProduct( file );
version = mirrorbrain_getTagVersion( file );
os = mirrorbrain_getTagOS( file );
lang = mirrorbrain_getTagLang( file );
retVal = product + " " + version + "-" + os + "-" + lang + "-" + version;
}
return retVal;
}
/*
* extract file name from url
*/
function mirrorbrain_getTagFileName( href ) {
var retVal;
if ( href.indexOf( MIRROR_MIRRORBRAIN_URL + "files/" ) > -1 ) {
var s = href.split( "/" );
retVal = s[s.length-1];
}
return retVal;
}
/*
* get product name for tracking, external used method
*/
function mirrorbrain_getProduct( href ) {
var file;
file = mirrorbrain_getTagFileName( href );
return mirrorbrain_getTagProduct( file ) + " " + mirrorbrain_getTagVersion( file );
}
/*
* get version for tracking, external used method
*/
function mirrorbrain_getVersion( href ) {
var file;
file = mirrorbrain_getTagFileName( href );
return mirrorbrain_getTagVersion( file );
}
/*
* get os for tracking, external used method
*/
function mirrorbrain_getOS( href ) {
var file;
file = mirrorbrain_getTagFileName( href );
return mirrorbrain_getTagOS( file );
}
/*
* get language code for tracking, external used method
*/
function mirrorbrain_getLang( href ) {
var file;
file = mirrorbrain_getTagFileName( href );
return mirrorbrain_getTagLang( file );
}
/*
* get language code for tracking, internal method
*/
function mirrorbrain_getTagLang( file ) {
var retVal;
if ( file != null && (
file.indexOf( "_install-" ) > -1 || (
file.indexOf( "_install_" ) > -1 && (
file.indexOf( "_Linux_" ) > -1 || file.indexOf( "_MacOS_" ) > -1 || file.indexOf( "_Win_" ) > -1 || file.indexOf( "_Solaris_" ) > -1
)
) ) ) {
var s = file.split( "_install" );
s = s[1].split( "." );
s = s[0].split( "_" );
retVal = s[s.length-1];
} else if ( file != null && file.indexOf( "_install_" ) > -1 ) {
var s = file.split( "_install_" );
s = s[1].split( "." );
s = s[0].split( "_" );
if ( s[s.length-1].indexOf( "deb" ) > -1 ) {
retVal = s[s.length-2];
} else {
retVal = s[s.length-1];
}
}
return retVal;
}
/*
* get os name for tracking, internal method
*/
function mirrorbrain_getTagOS( file ) {
var retVal;
if ( file != null && (
file.indexOf( "_install-" ) > -1 || (
file.indexOf( "_install_" ) > -1 && (
file.indexOf( "_Linux_" ) > -1 || file.indexOf( "_MacOS_" ) > -1 || file.indexOf( "_Win_" ) > -1 || file.indexOf( "_Solaris_" ) > -1
)
) ) ) {
var s = file.split( "_install" );
s = s[0].split( "_" );
retVal = s[ s.length -2 ] + s[ s.length -1 ];
retVal = retVal.toLowerCase();
if ( retVal.indexOf( "winx86" ) > -1 ) {
retVal = "win";
} else if ( retVal == "linuxx86" ) {
retVal = "linuxintel";
} else if ( retVal == "macosx86" ) {
retVal = "macosxintel";
} else if ( retVal == "macosppc" ) {
retVal = "macosxppc";
}
if ( file.toLowerCase().indexOf( "wjre" ) > -1 ) {
retVal = retVal + "wjre";
} else if ( file.indexOf( "install-deb" ) > -1 ) {
retVal = retVal + "deb";
}
} else if ( file != null && file.indexOf( "_install_" ) > -1 ) {
var s = file.split( "_install_" );
s = s[0].split( "_" );
retVal = s[ s.length -1 ];
retVal = retVal.toLowerCase();
if ( retVal.indexOf( "win32intel" ) > -1 ) {
retVal = "win";
}
if ( file.toLowerCase().indexOf( "wjre" ) > -1 ) {
retVal = retVal + "wjre";
} else if ( file.indexOf( "_deb" ) > -1 ) {
retVal = retVal + "deb";
} else if ( file.indexOf( "install-deb" ) > -1 ) {
retVal = retVal + "deb";
}
}
return retVal;
}
/*
* get product name for tracking, internal method
*/
function mirrorbrain_getTagProduct( file ) {
var retVal = null;
if ( file != null ) {
var s = file.split( "_" );
retVal = s[0];
}
return retVal;
}
/*
* get version for tracking, internal method
*/
function mirrorbrain_getTagVersion( file ) {
var retVal = null;
if ( file != null ) {
var s = file.split( "_" );
retVal = s[1];
if ( s[0] == "OOo-Dev" ) {
if ( file.indexOf( "_install-" ) > -1 || (
file.indexOf( "_install_" ) > -1 && (
file.indexOf( "_Linux_" ) > -1 || file.indexOf( "_MacOS_" ) > -1 || file.indexOf( "_Win_" ) > -1 || file.indexOf( "_Solaris_" ) > -1
)
) ) {
// new schema
if ( s[1].indexOf( "_m" ) > -1 ) {
retVal = s[1];
} else if ( s[1].indexOf( "m" ) > -1 ) {
var s2 = s[1].split( "m" );
retVal = s2[0] + "_m" + s2[1];
} else {
retVal = s[1];
}
} else {
// old schema
retVal = s[1] + "_" + s[2];
}
}
}
return retVal;
}
/*
* method trim timestamp from version, required for RC, requested by MLA
*/
function mirrorbrain_getVersionForDownloadFolder( version ) {
var s = null;
if ( version.indexOf( "_" ) > -1 ) {
s = version.split( "_" )[0];
} else {
s = version;
}
if ( version == VERSION ) {
return version;
} else if ( version == OLD_VERSION ) {
return version;
} else if ( version == RC_VERSION ) {
return s;
} else if ( version == BETA_VERSION ) {
return version;
} else if ( version == DEV1_VERSION ) {
return version;
} else if ( version == DEV2_VERSION ) {
return version;
} else if ( version == TEST_VERSION ) {
return version;
}
// error
return null;
}
function mirrorbrain_getFileName( version, schema ) {
var a = getArray();
var platform = getPlatform();
var fileName = null;
if ( hasMirrorLink() ) {
// use mirror link
if ( schema == "old" ) {
if ( version == VERSION ) {
fileName = "OOo_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else if ( version == OLD_VERSION ) {
fileName = "OOo_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else if ( version == RC_VERSION ) {
fileName = "OOo_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else if ( version == BETA_VERSION ) {
fileName = "OOo_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else if ( version == DEV1_VERSION ) {
fileName = "OOo-Dev_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else if ( version == DEV2_VERSION ) {
fileName = "OOo-Dev_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else if ( version == DEVB_VERSION ) {
fileName = "OOo-Dev_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else if ( version == TEST_VERSION ) {
fileName = "OOo_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else {
fileName = null;
}
} else if ( schema == "new" ) {
if ( version == VERSION ) {
fileName = "OOo_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else if ( version == OLD_VERSION ) {
fileName = "OOo_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else if ( version == RC_VERSION ) {
fileName = "OOo_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else if ( version == BETA_VERSION ) {
fileName = "OOo_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else if ( version == DEV1_VERSION ) {
fileName = "OOo-Dev_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else if ( version == DEV2_VERSION ) {
fileName = "OOo-Dev_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else if ( version == DEVB_VERSION ) {
fileName = "OOo-Dev_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else if ( version == TEST_VERSION ) {
fileName = "OOo_" + version + "_" + mirrorbrain_getPlatformForMirror( schema ) + "_" + getLanguageISO() + mirrorbrain_getExtension( schema );
} else {
fileName = null;
}
}
return fileName;
}
// error
return null;
}
/*
* get platform for mirror-link
*/
function mirrorbrain_getPlatformForMirror( schema ) {
var a = getArray();
if ( navigator.platform != null ) {
if ( schema == "old" ) {
if ( navigator.platform.indexOf( "Win32" ) != -1 ) {
return ( a[3] == 'y' ) ? "Win32Intel_install_wJRE" : "Win32Intel_install";
} else if ( navigator.platform.indexOf( "Win64" ) != -1 ) {
return ( a[3] == 'y' ) ? "Win32Intel_install_wJRE" : "Win32Intel_install";
} else if ( navigator.platform.indexOf( "Win" ) != -1 ) {
return ( a[3] == 'y' ) ? "Win32Intel_install_wJRE" : "Win32Intel_install";
} 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 "LinuxX86-64_install";
} else {
return ( a[3] == 'y' ) ? "LinuxX86-64_install_wJRE" : "LinuxX86-64_install";
}
} else {
return ( a[3] == 'y' ) ? "LinuxX86-64_install_wJRE" : "LinuxX86-64_install";
}
} else {
if ( navigator.userAgent != null ) {
if ( navigator.userAgent.toLowerCase().indexOf( "debian" ) != -1 || navigator.userAgent.toLowerCase().indexOf( "ubuntu" ) != -1 ) {
return ( a[3] == 'y' ) ? "LinuxIntel_install_wJRE" : "LinuxIntel_install";
} else {
return ( a[3] == 'y' ) ? "LinuxIntel_install_wJRE" : "LinuxIntel_install";
}
} else {
return ( a[3] == 'y' ) ? "LinuxIntel_install_wJRE" : "LinuxIntel_install";
}
}
if ( navigator.userAgent != null ) {
if ( navigator.userAgent.toLowerCase().indexOf( "debian" ) != -1 || navigator.userAgent.toLowerCase().indexOf( "ubuntu" ) != -1 ) {
return ( a[3] == 'y' ) ? "LinuxIntel_install_wJRE" : "LinuxIntel_install";
} else {
return ( a[3] == 'y' ) ? "LinuxIntel_install_wJRE" : "LinuxIntel_install";
}
} else {
return ( a[3] == 'y' ) ? "LinuxIntel_install_wJRE" : "LinuxIntel_install";
}
} else if ( navigator.platform.indexOf( "SunOS i86pc" ) != -1 ) {
return ( a[3] == 'y' ) ? "Solarisx86_install_wJRE" : "Solarisx86_install";
} else if ( navigator.platform.indexOf( "SunOS sun4u" ) != -1 ) {
return ( a[3] == 'y' ) ? "SolarisSparc_install_wJRE" : "SolarisSparc_install";
} else if ( navigator.platform.indexOf( "SunOS" ) != -1 ) {
return ( a[3] == 'y' ) ? "SolarisSparc_install_wJRE" : "SolarisSparc_install";
} else if ( navigator.platform.indexOf( "Mac" ) != -1 && navigator.platform.indexOf( "Intel" ) != -1 ) {
return "MacOSXIntel_install";
} else if ( navigator.platform.indexOf( "Mac" ) != -1 && navigator.platform.indexOf( "PPC" ) != -1 ) {
return "MacOSXPPC_install";
} else if ( navigator.platform.indexOf( "Mac" ) != -1 ) {
return "MacOSXIntel_install";
// testing if this code will help to redirect the iPad, iPhone, iPod entries
} else if ( navigator.platform.indexOf( "iPad" ) != -1 || navigator.platform.indexOf( "iPhone" ) != -1 || navigator.platform.indexOf( "iPod" ) != -1 ) {
return "MacOSXIntel_install" ;
} else {
// return plain platform
return navigator.platform;
}
} else if ( schema == "new" ) {
if ( navigator.platform.indexOf( "Win32" ) != -1 ) {
return ( a[3] == 'y' ) ? "Win_x86_install-wJRE" : "Win_x86_install";
} else if ( navigator.platform.indexOf( "Win64" ) != -1 ) {
return ( a[3] == 'y' ) ? "Win_x86_install-wJRE" : "Win_x86_install";
} else if ( navigator.platform.indexOf( "Win" ) != -1 ) {
return ( a[3] == 'y' ) ? "Win_x86_install-wJRE" : "Win_x86_install";
} 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_x86-64_install-deb";
} else {
return ( a[3] == 'y' ) ? "Linux_x86-64_install-rpm-wJRE" : "Linux_x86-64_install-rpm";
}
} else {
return ( a[3] == 'y' ) ? "Linux_x86-64_install-rpm-wJRE" : "Linux_x86-64_install-rpm";
}
} else {
if ( navigator.userAgent != null ) {
if ( navigator.userAgent.toLowerCase().indexOf( "debian" ) != -1 || navigator.userAgent.toLowerCase().indexOf( "ubuntu" ) != -1 ) {
return "Linux_x86_install-deb";
} else {
return ( a[3] == 'y' ) ? "Linux_x86_install-rpm-wJRE" : "Linux_x86_install-rpm";
}
} else {
return ( a[3] == 'y' ) ? "Linux_x86_install-rpm-wJRE" : "Linux_x86_install-rpm";
}
}
if ( navigator.userAgent != null ) {
if ( navigator.userAgent.toLowerCase().indexOf( "debian" ) != -1 || navigator.userAgent.toLowerCase().indexOf( "ubuntu" ) != -1 ) {
return "Linux_x86_install-deb";
} else {
return ( a[3] == 'y' ) ? "Linux_x86_install-rpm-wJRE" : "Linux_x86_install-rpm";
}
} else {
return ( a[3] == 'y' ) ? "Linux_x86_install-rpm-wJRE" : "Linux_x86_install-rpm";
}
} else if ( navigator.platform.indexOf( "SunOS i86pc" ) != -1 ) {
return ( a[3] == 'y' ) ? "Solaris_x86_install-wJRE" : "Solaris_x86_install";
} else if ( navigator.platform.indexOf( "SunOS sun4u" ) != -1 ) {
return ( a[3] == 'y' ) ? "Solaris_Sparc_install-wJRE" : "Solaris_Sparc_install";
} else if ( navigator.platform.indexOf( "SunOS" ) != -1 ) {
return ( a[3] == 'y' ) ? "Solaris_Sparc_install-wJRE" : "Solaris_Sparc_install";
} else if ( navigator.platform.indexOf( "Mac" ) != -1 && navigator.platform.indexOf( "Intel" ) != -1 ) {
return "MacOS_x86_install";
} else if ( navigator.platform.indexOf( "Mac" ) != -1 && navigator.platform.indexOf( "PPC" ) != -1 ) {
return "MacOS_PPC_install";
} else if ( navigator.platform.indexOf( "Mac" ) != -1 ) {
return "MacOS_x86_install";
// testing if this code will help to redirect the iPad, iPhone, iPod entries
} else if ( navigator.platform.indexOf( "iPad" ) != -1 || navigator.platform.indexOf( "iPhone" ) != -1 || navigator.platform.indexOf( "iPod" ) != -1 ) {
return "MacOS_x86_install" ;
} else {
// return plain platform
return navigator.platform;
}
}
}
return ( a[3] == 'y' ) ? "Win_x86_install-wJRE" : "Win_x86_install";
}
/*
* get extension for mirror-link
*/
function mirrorbrain_getExtension( schema ) {
var a = getArray();
if ( navigator.platform != null ) {
if ( navigator.platform.indexOf( "Win32" ) != -1 ) {
return ".exe";
} else if ( navigator.platform.indexOf( "Win64" ) != -1 ) {
return ".exe";
} else if ( navigator.platform.indexOf( "Win" ) != -1 ) {
return ".exe";
} else if ( navigator.platform.indexOf( "Linux" ) != -1 ) {
if ( navigator.userAgent != null ) {
if ( navigator.userAgent.toLowerCase().indexOf( "debian" ) != -1 || navigator.userAgent.toLowerCase().indexOf( "ubuntu" ) != -1 ) {
if ( schema == "old" ) {
return "_deb.tar.gz";
} else if ( schema == "new" ) {
return ".tar.gz";
} else {
return ".tar.gz";
}
} else {
return ".tar.gz";
}
} else {
return ".tar.gz";
}
} else if ( navigator.platform.indexOf( "SunOS i86pc" ) != -1 ) {
return ".tar.gz";
} else if ( navigator.platform.indexOf( "SunOS sun4u" ) != -1 ) {
return ".tar.gz";
} else if ( navigator.platform.indexOf( "SunOS" ) != -1 ) {
return ".tar.gz";
} else if ( navigator.platform.indexOf( "Mac" ) != -1 && navigator.platform.indexOf( "Intel" ) != -1 ) {
return ".dmg";
} else if ( navigator.platform.indexOf( "Mac" ) != -1 && navigator.platform.indexOf( "PPC" ) != -1 ) {
return ".dmg";
} else if ( navigator.platform.indexOf( "Mac" ) != -1 ) {
return ".dmg";
// this code provides working entries for iPad, iPhone, iPod
} else if ( navigator.platform.indexOf( "iPad" ) != -1 || navigator.platform.indexOf( "iPhone" ) != -1 || navigator.platform.indexOf( "iPod" ) != -1 ) {
return ".dmg" ;
} else {
return navigator.platform;
}
}
return null;
}