/*
* This file is soon to be deprecated. (bug 393634)
*/
var aurora_stub_installer = false;
aurora_stub_installer = true;
var gPlatform = PLATFORM_WINDOWS;
var gCssClass = '';
var PLATFORM_OTHER = 0;
var PLATFORM_WINDOWS = 1;
var PLATFORM_LINUX = 2;
var PLATFORM_MACOSX = 3;
var PLATFORM_MAC = 4;
var PLATFORM_SOLARIS = 5;
var PLATFORM_ANDROID = 6;
if (navigator.platform.indexOf("Win32") != -1 || navigator.platform.indexOf("Win64") != -1) {
gPlatform = PLATFORM_WINDOWS;
gCssClass = 'os_windows';
} else if (navigator.platform.indexOf("armv7l") != -1) {
gPlatform = PLATFORM_ANDROID;
gCssClass = 'os_android';
} else if (navigator.platform.indexOf("Linux") != -1) {
gPlatform = PLATFORM_LINUX;
gCssClass = 'os_linux';
} else if (navigator.userAgent.indexOf("Mac OS X") != -1) {
gPlatform = PLATFORM_MACOSX;
gCssClass = 'os_osx';
} else if (navigator.userAgent.indexOf("MSIE 5.2") != -1) {
gPlatform = PLATFORM_MACOSX;
gCssClass = 'os_osx';
} else if (navigator.platform.indexOf("Mac") != -1) {
gPlatform = PLATFORM_MAC; // This will show up as unsupported (ie. < OS X)
gCssClass = 'os_osx';
// Special case for Opera on OS X emulating IE (bug 402113)
if ((navigator.userAgent.indexOf("Opera") != -1) && (navigator.userAgent.indexOf("Opera 6") == -1)) {
gPlatform = PLATFORM_MACOSX;
}
} else if (navigator.platform.indexOf("SunOS") != -1) {
gPlatform = PLATFORM_SOLARIS;
gCssClass = '';
} else {
gPlatform = PLATFORM_OTHER;
gCssClass = '';
}
/**
* Gets whether or not the client is an officially unsupported platform
*
* Officially unsupported platforms are Windows 95, 98, ME and NT 4.x
*
* The regular expression matches:
*
* - Win16
* - Win9x
* - Win95
* - Win98
* - WinNT (not followed by version or followed bu version < 5)
* - Windows ME
* - Windows CE
* - Windows 9x
* - Windows 95
* - Windows 98
* - Windows 3.1
* - Windows 4.10
* - Windows NT (not followed by version or followed by version < 5)
* - Windows_95
*/
var gPlatformUnsupported = /(Win(16|9[x58]|NT( [1234]| [^0-9]|[^ -]|$))|Windows ([MC]E|9[x58]|3\.1|4\.10|NT( [1234]| [^0-9]|[^ ]|$))|Windows_95)/.test(navigator.userAgent);
function getPlatformName(aPlatform)
{
if (aPlatform == PLATFORM_WINDOWS)
return "Windows";
if (aPlatform == PLATFORM_LINUX)
return "Linux i686";
if (aPlatform == PLATFORM_MACOSX)
return "Mac OS X";
if (aPlatform == PLATFORM_SOLARIS)
return "SunOS";
if (aPlatform == PLATFORM_ANDROID)
return "Android";
return "Unknown";
}
function getPlatformFileSize(aPlatform, aProduct)
{
if (aProduct == "fx") {
if (aPlatform == PLATFORM_WINDOWS)
return "7.7MB";
if (aPlatform == PLATFORM_LINUX)
return "9.4MB";
if (aPlatform == PLATFORM_MACOSX)
return "17.6MB";
} else if (aProduct == "fxold") {
if (aPlatform == PLATFORM_WINDOWS)
return "7.2MB";
if (aPlatform == PLATFORM_LINUX)
return "8.7MB";
if (aPlatform == PLATFORM_MACOSX)
return "17.3MB";
} else if (aProduct == "fxbeta") {
if (aPlatform == PLATFORM_WINDOWS)
return "7.7MB";
if (aPlatform == PLATFORM_LINUX)
return "9.4MB";
if (aPlatform == PLATFORM_MACOSX)
return "17.6MB";
} else if (aProduct == "tb") {
if (aPlatform == PLATFORM_WINDOWS)
return "6.4MB";
if (aPlatform == PLATFORM_LINUX)
return "10.9MB";
if (aPlatform == PLATFORM_MACOSX)
return "18.7MB";
} else if (aProduct == "tbold") {
if (aPlatform == PLATFORM_WINDOWS)
return "6.1MB";
if (aPlatform == PLATFORM_LINUX)
return "10.2MB";
if (aPlatform == PLATFORM_MACOSX)
return "17.8MB";
} else if (aProduct == "tbbeta") {
if (aPlatform == PLATFORM_WINDOWS)
return "6.4MB";
if (aPlatform == PLATFORM_LINUX)
return "10.9MB";
if (aPlatform == PLATFORM_MACOSX)
return "18.7MB";
}
return "";
}
function getProductName(aProduct)
{
if (aProduct == "fx") {
return "firefox";
} else if (aProduct == "fxold") {
return "firefox";
} else if (aProduct == "fxbeta") {
return "firefox";
} else if (aProduct == "fxaurora") {
return "firefox";
} else if (aProduct == "tb") {
return "thunderbird";
} else if (aProduct == "tbold") {
return "thunderbird";
} else if (aProduct == "tbbeta") {
return "thunderbird";
}
return "Unknown";
}
// "" for a version means it should be "Not Yet Available" on all.html,
// null means it should not be listed
// A region code of "-" means that no region code should be used.
var gLanguages = {
"af": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Afrikaans", localName: "Afrikaans" } },
"ach": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Acholi", localName: "Acholi" } },
"ak": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Akan", localName: "Akan" } },
"am": { "et": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Amharic", localName: "አማርኛ" } },
"an": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Aragonese", localName: "aragonés" } },
"ar": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Arabic", localName: "عربي" } },
"as": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Assamese", localName: "অসমীয়া" } },
"ast": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Asturian", localName: "Asturianu" } },
"az": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Azerbaijani", localName: "Azərbaycanca" } },
"be": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Belarusian", localName: "Беларуская" } },
"bg": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Bulgarian", localName: "Български" } },
"bn": { "bd": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Bengali (Bangladesh)", localName: "বাংলা (বাংলাদেশ)" },
"in": { fx: "3.6.28", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Bengali (India)", localName: "বাংলা (ভারত)" } },
"br": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Breton", localName: "Brezhoneg" } },
"bs": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Bosnian", localName: "Bosanski" } },
"ca": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Catalan", localName: "Català" },
"valencia": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Catalan (Valencian)", localName: "català (valencià)" } },
"cs": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Czech", localName: "Čeština" } },
"csb": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Kashubian", localName: "Kaszëbsczi" } },
"cy": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Welsh", localName: "Cymraeg" } },
"da": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Danish", localName: "Dansk" } },
"dbg": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Debug Robot", localName: "Ḓḗƀŭɠ Řǿƀǿŧ" } },
"de": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "German", localName: "Deutsch" },
"at": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "German (Austria)", localName: "Deutsch (Österreich)" },
"ch": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "German (Switzerland)", localName: "Deutsch (Schweiz)" },
"de": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "German (Germany)", localName: "Deutsch (Deutschland)" } },
"dsb": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Lower Sorbian", localName: "Dolnoserbšćina" } },
"el": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Greek", localName: "Ελληνικά" } },
"en": { "au": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "English (Australian)", localName: "English (Australian)" },
"ca": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "English (Canadian)", localName: "English (Canadian)" },
"gb": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "English (British)", localName: "English (British)" },
"nz": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "English (New Zealand)", localName: "English (New Zealand)" },
"us": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "English (US)", localName: "English (US)" },
"za": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "English (South African)", localName: "English (South African)" } },
"eo": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Esperanto", localName: "Esperanto" } },
"es": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Spanish", localName: "Español" },
"ar": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Spanish (Argentina)", localName: "Español (de Argentina)" },
"cl": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Spanish (Chile)", localName: "Español (de Chile)" },
"es": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Spanish (Spain)", localName: "Español (de España)" },
"mx": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Spanish (Mexico)", localName: "Español (de México)" } },
"et": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Estonian", localName: "Eesti keel" } },
"eu": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Basque", localName: "Euskara" } },
"fa": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Persian", localName: "فارسی" } },
"ff": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Fulah", localName: "Pulaar-Fulfulde" } },
"fi": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Finnish", localName: "suomi" } },
"fj": { "fj": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Fijian", localName: "Vosa vaka-Viti" } },
"fr": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "French", localName: "Français" } },
"fur": { "it": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Friulian", localName: "Furlan" } },
"fy": { "nl": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Frisian", localName: "Frysk" } },
"ga": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Irish", localName: "Gaeilge" },
"ie": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Irish", localName: "Gaeilge" } },
"gd": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Gaelic (Scotland)", localName: "Gàidhlig" } },
"gl": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Galician", localName: "Galego" } },
"gu": { "in": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Gujarati", localName: "ગુજરાતી" } },
"he": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Hebrew", localName: "עברית" } },
"hi": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Hindi", localName: "हिन्दी" },
"in": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Hindi (India)", localName: "हिन्दी (भारत)" } },
"hr": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Croatian", localName: "Hrvatski" } },
"hsb": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Upper Sorbian", localName: "Hornjoserbsce" } },
"hu": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Hungarian", localName: "magyar" } },
"hy": { "am": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Armenian", localName: "Հայերեն" } },
"id": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Indonesian", localName: "Bahasa Indonesia" } },
"is": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Icelandic", localName: "íslenska" } },
"it": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Italian", localName: "Italiano" } },
"ja": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Japanese", localName: "日本語" },
"jp": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Japanese", localName: "日本語" } },
"ka": { "-": { fx: "3.6.28", fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Georgian", localName: "ქართული" } },
"kk": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Kazakh", localName: "Қазақ" } },
"km": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Khmer", localName: "ខ្មែរ" } },
"kn": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Kannada", localName: "ಕನ್ನಡ" } },
"ko": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Korean", localName: "한국어" } },
"ku": { "-": { fx: "3.6.28", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Kurdish", localName: "Kurdî" } },
"la": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Latin", localName: "Latina" } },
"lg": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Luganda", localName: "Luganda" } },
"lij": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Ligurian", localName: "Ligure" } },
"lo": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Lao", localName: "ພາສາລາວ" } },
"lt": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Lithuanian", localName: "lietuvių kalba" } },
"lv": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Latvian", localName: "Latviešu" } },
"mai": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Maithili", localName: "मैथिली মৈথিলী" } },
"mg": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Malagasy", localName: "Malagasy" } },
"mi": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Maori (Aotearoa)", localName: "Māori (Aotearoa)" } },
"mk": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Macedonian", localName: "Македонски" } },
"ml": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Malayalam", localName: "മലയാളം" } },
"mn": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Mongolian", localName: "Монгол" } },
"mr": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Marathi", localName: "मराठी" } },
"ms": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Malay", localName: "Melayu" } },
"my": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Burmese", localName: "မြန်မာဘာသာ" } },
"nb": { "no": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Norwegian (Bokmål)", localName: "Norsk bokmål" } },
"ne": { "np": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Nepali", localName: "नेपाली" } },
"nn": { "no": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Norwegian (Nynorsk)", localName: "Norsk nynorsk" } },
"nl": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Dutch", localName: "Nederlands" } },
"nr": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Ndebele, South", localName: "isiNdebele" } },
"nso": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Northern Sotho", localName: "Sepedi" } },
"oc": { "-": { fx: "3.6.28", fxold: null, fxbeta: null, fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Occitan (Lengadocian)", localName: "occitan (lengadocian)" } },
"or": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Oriya", localName: "ଓଡ଼ିଆ" } },
"pa": { "in": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Punjabi", localName: "ਪੰਜਾਬੀ" } },
"pl": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Polish", localName: "Polski" } },
"pt": { "br": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Portuguese (Brazilian)", localName: "Português (do Brasil)" },
"pt": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Portuguese (Portugal)", localName: "Português (Europeu)" } },
"ro": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Romanian", localName: "română" } },
"rm": { "-": { fx: "27.0", fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Romansh", localName: "rumantsch" } },
"ru": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Russian", localName: "Русский" } },
"rw": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Kinyarwanda", localName: "Ikinyarwanda" } },
"sa": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Sanskrit", localName: "संस्कृत" } },
"sah": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Sakha", localName: "Сахалыы" } },
"si": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Sinhala", localName: "සිංහල" } },
"sk": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Slovak", localName: "slovenčina" } },
"sl": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Slovenian", localName: "Slovenščina" } },
"son": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Songhai", localName: "Soŋay" } },
"sq": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Albanian", localName: "Shqip" } },
"sr": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Serbian", localName: "Српски" },
"latn": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Serbian", localName: "Srpski" } },
"ss": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Siswati", localName: "siSwati" } },
"st": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Southern Sotho", localName: "Sesotho" } },
"sv": { "se": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Swedish", localName: "Svenska" } },
"sw": { "-": { fx: null, fxold: null, fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Swahili", localName: "Kiswahili" } },
"ta": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Tamil", localName: "தமிழ்" },
"in": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Tamil (India)", localName: "தமிழ் (இந்தியா)" },
"lk": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: "24.3.0", tbold: null, tbbeta: null, name: "Tamil (Sri Lanka)", localName: "தமிழ் (இலங்கை)" } },
"te": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Telugu", localName: "తెలుగు" } },
"th": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Thai", localName: "ไทย" } },
"tn": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Tswana", localName: "Setswana" } },
"tr": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Turkish", localName: "Türkçe" } },
"ts": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Tsonga", localName: "Xitsonga" } },
"tt": { "ru": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Tatar", localName: "Tatarça" } },
"uk": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Ukrainian", localName: "Українська" } },
"ur": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Urdu", localName: "اُردو" } },
"ve": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Venda", localName: "Tshivenḓa" } },
"vi": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Vietnamese", localName: "Tiếng Việt" } },
"wo": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Wolof", localName: "Wolof" } },
"x": { "testing": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Testing", localName: "Ŧḗşŧīƞɠ" } },
"xh": { "-": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: null, tbold: null, tbbeta: null, name: "Xhosa", localName: "isiXhosa" } },
"zh": { "cn": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Chinese (Simplified)", localName: "中文 (简体)" },
"tw": { fx: "27.0", fxold: "3.6.28", fxbeta: "28.0b1", fxaurora: "29.0a2", tb: "24.3.0", tbold: null, tbbeta: null, name: "Chinese (Traditional)", localName: "正體中文 (繁體)" } },
"zu": { "-": { fx: null, fxold: null, fxbeta: null, fxaurora: null, tb: null, tbold: null, tbbeta: null, name: "Zulu", localName: "isiZulu" } }
};
function getDownloadURLForProduct(product, version)
{
return "https://download.mozilla.org/?product=";
}
// Get a downloadURL given a locale and platform.
// The optional boolean is used when we want to get the download.mozilla.org
// link that points directly to Bouncer.
function getDownloadURLForLanguage(aLangID, aPlatform, directLink)
{
var abCD = aLangID.abCD;
var product = getProductName(aLangID.product);
var version = aLangID[aLangID.product];
// If this is Android we need to use the direct link
if (aPlatform === PLATFORM_ANDROID && aLangID.product === "fxaurora") {
return getDownloadURLForAuroraForLanguage('firefox-' + aLangID.fxaurora, aLangID.fxaurora, aLangID.abCD, aPlatform);
}
// If we are testing the site locally, or if we explicitly asked for it,
// give the direct download URL.
if (window.location.protocol == "file:" ||
directLink == true) {
var url = getDownloadURLForProduct(product, version);
// Otherwise give the download page URL.
} else {
var url = "/products/download.html?product=";
}
// bug 874982
// special case for stub installer
if ((aLangID.product === 'fxbeta' || aLangID.product === 'fx')
//&& abCD === 'en-US' // uncomment if we have to revert to en-US only
&& aPlatform === PLATFORM_WINDOWS) {
version = 'stub';
if (aLangID.product === 'fxbeta') {
version = 'beta-' + version;
}
}
url += product + "-" + version;
if (typeof gDownloadFunnelCake != 'undefined') {
url += gDownloadFunnelCake;
}
url +="&os=";
if (aPlatform == PLATFORM_WINDOWS) {
url += "win";
} else if (aPlatform == PLATFORM_LINUX) {
url += "linux";
} else if (aPlatform == PLATFORM_MACOSX) {
url += "osx";
if (abCD == "ja-JP")
abCD = "ja-JPM";
if (abCD == "ja")
abCD = "ja-JP-mac";
} else if (aPlatform == PLATFORM_SOLARIS) {
return "http://opensolaris.org/os/community/desktop/communities/mozilla/development/";
} else {
return "http://www.mozilla.com/" + abCD + "/" + product + "/all.html";
}
url += "&lang=" + abCD;
if (aLangID.product == "fxaurora" || aLangID.product == "fxbeta") {
url +="&channel=" + aLangID.product;
}
return url;
}
function getDownloadURLForAuroraForLanguage(aProduct, aVersion, aLocale, aPlatform) {
var os_file_ext;
var url;
if (aPlatform == PLATFORM_WINDOWS || aPlatform == 'win') {
os_file_ext = "win32.installer.exe";
if (aurora_stub_installer && aLocale == "en-US") {
os_file_ext = "win32.installer-stub.exe";
}
} else if (aPlatform == PLATFORM_LINUX || aPlatform == 'linux') {
os_file_ext = "linux-i686.tar.bz2";
} else if (aPlatform == PLATFORM_MACOSX || aPlatform == 'osx') {
os_file_ext = "mac.dmg";
if (aLocale == "ja") {
aLocale = "ja-JP-mac";
}
}
if (aPlatform == PLATFORM_ANDROID || aPlatform == 'android') {
url = "https://ftp.mozilla.org/pub/mozilla.org/mobile/nightly/latest-mozilla-aurora-android";
if (aLocale == "en-US") {
url += "/en-US/fennec-";
} else {
url += "-l10n/fennec-";
}
url += "29.0a2." + aLocale + "." + "android-arm.apk";
} else {
// Force en-US locale for now, when we fix other language replace it with "locale"
if (aLocale == "en-US") {
url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora/";
} else {
url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora-l10n/";
}
url += aProduct + "." + aLocale + "." + os_file_ext;
}
return url;
}
function LanguageID(aAB, aCD, aProduct, aBuild)
{
if (aCD == "-")
this.abCD = aAB;
else
this.abCD = aAB + "-" + aCD.toUpperCase();
this.product = aProduct;
for (var prop in aBuild)
this[prop] = aBuild[prop];
}
function buildValidForPlatform(aLangID, aPlatform)
{
var product = getProductName(aLangID.product);
var version = aLangID[aLangID.product];
if ((aLangID.abCD == "gu-IN" ||
(aLangID.abCD == "pa-IN" &&
((product == "firefox" && version < "2.0.0.1") ||
(product == "thunderbird" && version < "2.0.0.0")))) &&
(aPlatform == PLATFORM_MACOSX))
return false;
return true;
}
function getLanguageIDs(aProduct)
{
var language = "";
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 == "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];
// String comparison actually works for version numbers.
var currentVersion = gLanguages["en"]["us"][aProduct];
var bestVersion = "";
var ids = [];
if (gLanguages[languageCode]) {
var region;
var build;
var langid;
for (region in gLanguages[languageCode]) {
build = gLanguages[languageCode][region];
if (build[aProduct] && regionCode == region) {
langid = new LanguageID(languageCode, regionCode, aProduct, build);
if (buildValidForPlatform(langid, gPlatform)) {
ids[ids.length] = langid;
bestVersion = build[aProduct];
}
}
}
// We have a localized build for this language, but not this region.
// Show all available regions and let the user pick.
if (bestVersion != currentVersion) {
var bestRegionVersion = "";
for (region in gLanguages[languageCode]) {
build = gLanguages[languageCode][region];
if (build[aProduct] > bestVersion) {
langid = new LanguageID(languageCode, region, aProduct, build);
if (buildValidForPlatform(langid, gPlatform)) {
ids[ids.length] = langid;
if (build[aProduct] > bestRegionVersion)
bestRegionVersion = build[aProduct];
}
}
}
if (bestRegionVersion > bestVersion)
bestVersion = bestRegionVersion;
}
}
// Bug 373796 -- Norwegian users need to be offered both nb-NO and nn-NO
if (regionCode == "no") {
if (languageCode == "nb") {
ids[ids.length] = new LanguageID("nn", regionCode, aProduct, gLanguages["nn"][regionCode]);
}
if (languageCode == "nn") {
ids[ids.length] = new LanguageID("nb", regionCode, aProduct, gLanguages["nb"][regionCode]);
}
}
// Offer the en-US version if it has a higher version than the locale
if (bestVersion != currentVersion) {
ids[ids.length] = new LanguageID("en", "us", aProduct, gLanguages["en"]["us"]);
}
return ids;
}
function writeDownloadItem(aLanguageID)
{
var item = gDownloadItemTemplate;
if (aLanguageID.product == "fxaurora") {
item = item.replace(/%DOWNLOAD_URL%/g, getDownloadURLForAuroraForLanguage('firefox-' + aLanguageID.fxaurora, aLanguageID.fxaurora, aLanguageID.abCD, gPlatform));
item = item.replace(/%BOUNCER_URL%/g, getDownloadURLForAuroraForLanguage('firefox-' + aLanguageID.fxaurora, aLanguageID.fxaurora, aLanguageID.abCD, gPlatform));
} else {
item = item.replace(/%DOWNLOAD_URL%/g, getDownloadURLForLanguage(aLanguageID, gPlatform));
item = item.replace(/%BOUNCER_URL%/g, getDownloadURLForLanguage(aLanguageID, gPlatform, true));
}
item = item.replace(/%VERSION%/g, aLanguageID[aLanguageID.product]);
item = item.replace(/%PLATFORM_NAME%/g, getPlatformName(gPlatform));
item = item.replace(/%LANGUAGE_NAME%/g, aLanguageID.name);
item = item.replace(/%FILE_SIZE%/g, getPlatformFileSize(gPlatform, aLanguageID.product));
item = item.replace(/%CSS_CLASS%/g, gCssClass);
document.writeln(item);
}
function writeDownloadItemForAndroid(aProduct)
{
var aLanguageID = new LanguageID("en", "us", aProduct, gLanguages["en"]["us"]);
var item = gDownloadItemTemplate;
item = item.replace(/%DOWNLOAD_URL%/g, 'https://market.android.com/details?id=org.mozilla.firefox');
item = item.replace(/%BOUNCER_URL%/g, 'https://market.android.com/details?id=org.mozilla.firefox');
item = item.replace(/%VERSION%/g, aLanguageID[aLanguageID.product]);
item = item.replace(/%PLATFORM_NAME%/g, getPlatformName(gPlatform));
item = item.replace(/%LANGUAGE_NAME%/g, "");
item = item.replace(/%FILE_SIZE%/g, getPlatformFileSize(gPlatform, aLanguageID.product));
item = item.replace(/%CSS_CLASS%/g, gCssClass);
document.writeln(item);
}
function writeDownloadItems(aProduct)
{
// Show the dynamic links
if (gPlatform == PLATFORM_MAC) {
document.writeln(gDownloadItemMacOS9);
} else if (gPlatform == PLATFORM_OTHER) {
document.writeln(gDownloadItemOtherPlatform);
} else if (gPlatform == PLATFORM_ANDROID && aProduct == "fx") {
writeDownloadItemForAndroid(aProduct);
} else {
var languageIDs = getLanguageIDs(aProduct);
for (var i = 0; i < languageIDs.length; ++i)
writeDownloadItem(languageIDs[i]);
}
}
function do_download(link)
{
// get product
var matches = link.match(/product=([^&]+)/);
if (matches != null && matches.length > 1) {
if (matches[1] == 'fx') {
var product = 'firefox';
} else if (matches[1] == 'fxold') {
var product = 'firefox';
} else if (matches[1] == 'fxbeta') {
var product = 'firefox';
} else if (matches[1] == 'fxaurora') {
var product = 'firefox';
} else if (matches[1] == 'tb') {
var product = 'thunderbird';
} else if (matches[1] == 'tbold') {
var product = 'thunderbird';
} else if (matches[1] == 'tbbeta') {
var product = 'thunderbird';
} else {
var product = 'firefox';
}
} else {
var product = 'firefox';
}
// If we have IE, use a new window to push the download.
// We have to do this because other methods did not work in IE.
if (navigator.appVersion.indexOf('MSIE') != -1) {
if (gPlatformUnsupported && product == 'firefox') {
var unsupportedLink = link.replace(/\/products\/download\.html/, '/firefox/unsupported-systems.html');
// redirect to unsupported platform page
window.location = unsupportedLink;
} else {
// start the download
window.open(link, 'download_window', 'toolbar=0,location=no,directories=0,status=0,scrollbars=0,resizeable=0,width=1,height=1,top=0,left=0');
window.focus();
}
}
}