openoffice-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r911596 [1/3] - in /websites/staging/ooo-site/trunk: cgi-bin/ content/ content/download/download.js content/download/exceptions.css content/download/globalvars.js content/download/index.html content/download/release_matrix.js
Date Fri, 06 Jun 2014 15:28:40 GMT
Author: buildbot
Date: Fri Jun  6 15:28:40 2014
New Revision: 911596

Log:
Staging update by buildbot for ooo-site

Modified:
    websites/staging/ooo-site/trunk/cgi-bin/   (props changed)
    websites/staging/ooo-site/trunk/content/   (props changed)
    websites/staging/ooo-site/trunk/content/download/download.js
    websites/staging/ooo-site/trunk/content/download/exceptions.css
    websites/staging/ooo-site/trunk/content/download/globalvars.js
    websites/staging/ooo-site/trunk/content/download/index.html
    websites/staging/ooo-site/trunk/content/download/release_matrix.js

Propchange: websites/staging/ooo-site/trunk/cgi-bin/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Fri Jun  6 15:28:40 2014
@@ -1 +1 @@
-1600910
+1600920

Propchange: websites/staging/ooo-site/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Fri Jun  6 15:28:40 2014
@@ -1 +1 @@
-1600910
+1600920

Modified: websites/staging/ooo-site/trunk/content/download/download.js
==============================================================================
--- websites/staging/ooo-site/trunk/content/download/download.js (original)
+++ websites/staging/ooo-site/trunk/content/download/download.js Fri Jun  6 15:28:40 2014
@@ -1,147 +1,535 @@
 /*
  * Overview of all functions defined below
- * ---------------------------------------
- * function getLanguage   ()
- * function hasMirrorLink ()
- * function getLink       ( rel_mode )
- * function getPlatform   ()
- * function getFilesize   ()
- * function openItem      ( itemid, uri )
+ * ------------------------------------------
+ * function init		()
+ * function initVars		()
+ * function getLanguage		()
+ * function fillOSSel		()
+ * function fillLangSel		()
+ * function fillVerSel		()
+ * function getOSSel		()
+ * function getLangSel		()
+ * function getVerSel		()
+ * function setOSSel		()
+ * function setLangSel		()
+ * function setVerSel		()
+ * function resetElements	()
+ * function showWindow		( target_url )
+ * function showErrorMessage	( error_text )
+ * function isLangSupported	()
+ * function getLink		( rel_mode )
+ * function getLinkSel		()
+ * function getPlatform		()
+ * function getReleaseMatrixPos	()
+ * function getFileData		( ver )
+ * function openItem		( itemid, uri )
+ * function alertDbg		( location )
  */
 
 /*
- * Define global variables
- */
-var LANG_ISO			= "";	 // The language as ISO code
-var LANG_ARRAY			= "";	 // This array contains all language specific data
-var RELEASE_MATRIX_PLATFORM_POS	= -1;	 // The position of the platform in the release matrix array
-var RELEASE_MATRIX_PLATFORM	= "";	 // The platform in the release matrix array
-var UI_PLATFORM			= "";	 // The platform as readable string
-var URL_PLATFORM		= "";	 // The platform as part of the download URL
-var OLD_PLATFORM		= false; // The browser platform is old (true) or not (false)
-var FILENAME			= "";	 // The complete filename of the download URL
-var FILESIZE			= 0;	 // The filesize of the download file
-var EXTENSION			= "";	 // The file extension of the download URL
-var LINK			= "";	 // The complete download URL
-var CHECKSUM_KEYS		= "";	 // The KEYS file as download URL
-var CHECKSUM_ASC		= "";	 // The ASC file as download URL
-var CHECKSUM_MD5		= "";	 // The MD5 file as download URL
-var CHECKSUM_SHA256		= "";	 // The SHA256 file as download URL
-var SOURCEFORGE			= false; // The download URL points to Soureforge
-var OTHER			= false; // The download URL points to 'other.html'
-var ARCHIVE			= false; // The download URL points to the ASF archive
-var ERROR			= false; // The download URL is correct (false) or not (true)?
+ * Init function
+ */
+function init( a ) {
+	// Set global variables.
+	initVars( 1 );
+
+	// Fill the OS, language and version select boxes.
+	fillOSSel()
+	fillLangSel();
+	fillVerSel();
+
+	// Get the platform and language from the browser data.
+	getPlatform();
+	getLanguage();
+
+	// Set the recognized platform and language as default.
+	setOSSel();
+	setLangSel();
+	setVerSel();
+
+	
+	// Get release mode and analyze mode from "index.html" respective "analyze.html".
+	R_MODE = a;
+	getLinkSel();
+
+	return;
+}
 
 /*
- * Output values of variables for debugging
+ * Define all global variables with default values
  */
-function alertDbg( function_name ) {
-	alert ( ""
-	+ function_name												+ "\n"
-	+ "LANG_ISO: "				+ "\t\t\t\t\t"		+ LANG_ISO				+ "\n"
-	+ "LANG_ARRAY: "			+ "\t\t\t\t\t"		+ LANG_ARRAY				+ "\n"
-	+ "RELEASE_MATRIX_PLATFORM_POS: "	+ "\t"			+ RELEASE_MATRIX_PLATFORM_POS		+ "\n"
-	+ "RELEASE_MATRIX_PLATFORM: "		+ "\t\t\t"		+ RELEASE_MATRIX_PLATFORM		+ "\n"
-	+ "UI_PLATFORM: "			+ "\t\t\t\t\t"		+ UI_PLATFORM				+ "\n"
-	+ "URL_PLATFORM: "			+ "\t\t\t\t\t"		+ URL_PLATFORM				+ "\n"
-	+ "OLD_PLATFORM: "			+ "\t\t\t\t\t"		+ OLD_PLATFORM				+ "\n"
-	+ "FILENAME: "				+ "\t\t\t\t"		+ FILENAME				+ "\n"
-	+ "FILESIZE: "				+ "\t\t\t\t\t"		+ FILESIZE				+ "\n"
-	+ "EXTENSION: "				+ "\t\t\t\t\t"		+ EXTENSION				+ "\n"
-	+ "BASE_URL: "				+ "\t\t\t\t\t"		+ SOURCEFORGE_BASE_URL			+ "\n"
-	+ "LINK: "				+ "\t\t\t\t\t\t"	+ LINK					+ "\n"
-	+ "CHECKSUM_ASC: "			+ "\t\t\t\t\t"		+ CHECKSUM_ASC				+ "\n"
-	+ "CHECKSUM_MD5: "			+ "\t\t\t\t\t"		+ CHECKSUM_MD5				+ "\n"
-	+ "CHECKSUM_SHA256: "			+ "\t\t\t\t\t"		+ CHECKSUM_SHA256			+ "\n"
-	+ "SOURCEFORGE: "			+ "\t\t\t\t\t\t"	+ SOURCEFORGE				+ "\n"
-	+ "OTHER: "				+ "\t\t\t\t\t\t"	+ OTHER					+ "\n"
-	+ "ARCHIVE: "				+ "\t\t\t\t\t\t"	+ ARCHIVE				+ "\n"
-	+ "ERROR: "				+ "\t\t\t\t\t\t"	+ ERROR					+ "\n"
-	+ "" );
+function initVars( init_all ) {
+	// Define variables without "var" to make them globally available.
+
+	// The following are used in "download.js" only.
+	element_ids_sub_green = [ "dl_rel_info", "dl_f_info", "dl_f_chk_keys", "space1", "dl_f_chk_asc", "space2",
+	"dl_f_chk_md5", "space3", "dl_f_chk_sha256", "dl_lp_info", "dl_lp_chk_keys", "space4", "dl_lp_chk_asc", "space5",
+	"dl_lp_chk_md5", "space6", "dl_lp_chk_sha256", "dl_hlp_img", "dl_hlp", "dl_chk_img", "dl_chk", "dl_rpt_img",
+	"dl_rpt" ];
+
+	element_ids_links = [ "dl_f_link", "dl_lp_link", "dl_f_chk_keys", "dl_f_chk_asc", "dl_f_chk_md5", "dl_f_chk_sha256",
+	"dl_lp_chk_keys", "dl_lp_chk_asc", "dl_lp_chk_md5", "dl_lp_chk_sha256", "dl_hlp", "dl_chk", "dl_rpt" ];
+
+	// The following are used in "download.js". and "index.html".
+	if( init_all === 1 ) {
+		R_MODE				= "";	 // The release mode (1 = stable release (default), 2 = beta release, etc.).
+		LANG_ISO			= "";	 // The language as ISO code.
+		LANG_SEL			= "";	 // The selected language as ISO code from select box.
+		UI_PLATFORM_NO_SUP		= "";	 // The platform as readable string, if not supported.
+		OLD_PLATFORM			= false; // Is the browser platform old (true) or not (false)?
+		PLATFORM_SEL			= "";	 // The selected platform from select box.
+		VERSION_SEL			= "";	 // The selected version from select box.
+	}
+
+	UI_PLATFORM				= "";	 // The platform as readable string.
+	PLATFORM				= "";	 // The platform in short form.
+	PLATFORM_FULL				= "";	 // The platform as part of the download URL (full install).
+	PLATFORM_LP				= "";	 // The platform as part of the download URL (langpack).
+	RELEASE_PLATFORM_POS_FULL		= -1;	 // The position of the platform in the release matrix array (full install).
+	RELEASE_PLATFORM_POS_LP			= -1;	 // The position of the platform in the release matrix array (langpack).
+	RELEASE_PLATFORM			= "";	 // The platform in the release matrix array.
+	RELEASE_LANG				= "";	 // The language specific data depending on LANG_ISO.
+	REL_TEXT				= "";	 // The release data (milestone, build ID, svn rev, release date).
+	FILENAME_FULL				= "";	 // The complete filename of the download URL (full install).
+	FILENAME_LP				= "";	 // The complete filename of the download URL (langpack).
+	FILESIZE_FULL				= -1;	 // The filesize of the download file (full install).
+	FILESIZE_LP				= -1;	 // The filesize of the download file (langpack).
+	EXTENSION				= "";	 // The file extension of the download URL.
+	SOURCEFORGE_BASE_URL			= "";	 // The base URL for all binary files on Sourceforge.
+	SOURCEFORGE_PREV_URL			= "";	 // The base URL for all binary files (prev. version) on Sourceforge.
+	ASF_BASE_URL				= "";	 // The base URL for all binary files on Apache.
+	ASF_ARC_BASE_URL			= "";	 // The base URL for all checksum files on Apache.
+	ASF_ARC_PREV_URL			= "";	 // The base URL for all checksum files (prev. version) on Apache.
+	LINK_FULL				= "";	 // The complete download URL (full install).
+	LINK_LP					= "";	 // The complete download URL (langpack).
+	LINK_CHK_KEYS				= "";	 // The KEYS file as download URL.
+	LINK_CHK_ASC_FULL			= "";	 // The ASC file as download URL (full install).
+	LINK_CHK_MD5_FULL			= "";	 // The MD5 file as download URL (full install).
+	LINK_CHK_SHA256_FULL			= "";	 // The SHA256 file as download URL (full install).
+	LINK_CHK_ASC_LP				= "";	 // The ASC file as download URL (langpack).
+	LINK_CHK_MD5_LP				= "";	 // The MD5 file as download URL (langpack).
+	LINK_CHK_SHA256_LP			= "";	 // The SHA256 file as download URL (langpack).
+	SF					= false; // Does the download URL points to Soureforge?
+	OTHER					= false; // Does the download URL points to the porting webpage?
+	ARCHIVE					= false; // Does the download URL points to the ASF archive?
+	ERROR					= true;	 // Is the download URL in general correct (false) or not (true)?
+
+	return;
 }
 
 /*
  * Get array and ISO code for language
- * Depends on $NL_LANGUAGE
+ * Depends on $NL_LANG and array-list
  */
 function getLanguage() {
 	var language = "";
 
-	if ( NL_LANGUAGE != "" )
-		language = NL_LANGUAGE;
-	else if ( navigator.language )
+	// If available, use the manual set ISO code (see "index.html") that overrides $LANG_ISO.
+	if( NL_LANG !== "" )
+		language = NL_LANG;
+
+	// Else if available, use the selected language from select box.
+	else if( LANG_SEL !== "" )
+		language = LANG_SEL;
+
+	// Else try to recognize the language from browser data.
+	else if( navigator.language )
 		language = navigator.language;
-	else if ( navigator.userLanguage )
+	else if( navigator.userLanguage )
 		language = navigator.userLanguage;
-	else if ( navigator.browserLanguage )
+	else if( navigator.browserLanguage )
 		language = navigator.browserLanguage;
-	else if ( navigator.systemLanguage )
+	else if( navigator.systemLanguage )
 		language = navigator.systemLanguage;
 
-	// Convert "en" to "en-US" as well as setting it as fall-back language
-	if ( !language || language == "" || language == "null" || language == "en" )
+	// Assign "en-US" as fall-back language if only "en" is set or nothing at all.
+	if( !language || language === "" || language == null || language === "en" )
 		language = "en-US";
-	if ( language == "pt" )
+	// Assign "pt-PT" if only "pt" is set.
+	if( language === "pt" )
 		language = "pt-PT";
 
-	// Konqueror uses '_' where other browsers use '-'
-	if ( language.indexOf( "_" ) != -1 )
+	// Konqueror uses '_' where other browsers use '-'.
+	if( language.indexOf( "_" ) !== -1 )
+		// Change a contained '_' into a '-'.
 		language = language.split( "_" ).join( "-" );
 
-	language		= language.toLowerCase();
-	var languageCode	= language.split( "-" )[ 0 ];
-	var regionCode		= language.split( "-" )[ 1 ];
-	var thisLanguageSet	= languages[ languageCode ];
+	language		= language.toLowerCase();	// Change the language into lower case.
+	var languageCode	= language.split( "-" )[ 0 ];	// Part before "-" is the language code.
+	var regionCode		= language.split( "-" )[ 1 ];	// Part behind "-" is the region code.
+	var thisLanguageSet	= languages[ languageCode ];	// Assign the complete language data of the language code.
 
-	if ( thisLanguageSet == null ) {
-		// Language code not found inside array
+	if( thisLanguageSet == null ) {
+		// Assign "en-US" when the language code was not found inside array.
 		language	= "en-US";
 		languageCode	= "en";
 		regionCode	= "us";
 		thisLanguageSet	= languages[ languageCode ];
 	}
 
-	if ( regionCode != null ) {
-		// Fix for Portuguese pt-PT downloads named only pt without region code!
-		if ( regionCode == "pt" && languageCode == "pt" )
+	if( regionCode != null ) {
+		// Fix for Portuguese (European) downloads as they are named only "pt" without region code!
+		if( languageCode === "pt" && regionCode === "pt" )
 			language = languageCode;
 
-		// If an additional region code was found
-		if ( thisLanguageSet[ regionCode ] != null ) {
-			// Then choose langCode-regionCode
+		// If an additional region code was found.
+		if( thisLanguageSet[ regionCode ] != null ) {
+			// Assign langCode-regionCode.
 			language     = languageCode + "-" + regionCode.toUpperCase();
 			thisLanguage = thisLanguageSet[ regionCode ];
 		} else {
-			// Choose the default langCode
-			thisLanguage = thisLanguageSet[ "-" ];
-			if ( languageCode == "en" ) {
-				// Special case, default is en-US for en-XX
+			// Choose the default languageCode.
+			var thisLanguage = thisLanguageSet[ "-" ];
+			if( languageCode === "en" ) {
+				// Special case: If language code is "en" then assign "en-US" for all "en-XX" cases.
 				language	= "en-US";
 				regionCode	= "us";
 				thisLanguageSet	= languages[ languageCode ];
 				thisLanguage	= thisLanguageSet[ regionCode ];
 			} else {
+				// Else assign the language code as language.
 				language	= languageCode;
 			}
 		}
 	} else {
-		// Choose the default for none given region code
+		// Choose the default for none given region code.
 		thisLanguage = thisLanguageSet[ "-" ];
 	}
 
-	LANG_ISO   = language;
-	LANG_ARRAY = thisLanguage;
+	LANG_ISO = language;
+	return LANG_ISO;
+}
+
+/*
+ * Set values into the <select> element for OS (select box)
+ * Depends on array-list
+ */
+function fillOSSel() {
+	var sel_os = document.getElementById( "os" );
+	var option = "";
+
+	// Fill the <select> element until all OS's are used.
+	for( var i = 0, j = SEL_OS.length; i < j; i = i + 3 ) {
+		option       = document.createElement( "option" );
+		// Assign the platform abbreviation as index value.
+		option.value = SEL_OS[ i ];
+		// Assign the UI platform name.
+		option.text  = SEL_OS[ i + 1 ];
+		sel_os.appendChild( option );
+	}
+
+	return;
 }
 
 /*
- * Get flag for mirror link
+ * Set values into the <select> element for language (select box)
  * Depends on array-list
  */
-function hasMirrorLink() {
-	// Check the flag in "languages.js", 'y' -> provide download link, 'n' -> redirect to alternative webpage
-	if ( LANG_ARRAY[ 3 ] == 'y' ) {
+function fillLangSel() {
+	var sel_lang = document.getElementById( "lang" );
+	var option   = "";
+
+	// Fill the <select> element until all languages are used.
+	for( var i = 0, j = SEL_LANG.length; i < j; i = i + 2 ) {
+		option       = document.createElement( "option" );
+		// Assign the language ISO code as index value.
+		option.value = SEL_LANG[ i ];
+		// Assign the UI name like "English (Native) (ISO code)".
+		option.text  = SEL_LANG[ i + 1 ];
+		sel_lang.appendChild( option );
+	}
+
+	return;
+}
+
+/*
+ * Set values into the <select> element for version (select box)
+ * Depends on array-list
+ */
+function fillVerSel() {
+	var sel_ver = document.getElementById( "ver" );
+	var option  = "";
+
+	// Fill the <select> element until all versions are used.
+	for( var i = 0, j = SEL_VER.length; i < j; i = i + 2 ) {
+		option       = document.createElement( "option" );
+		// Assign the version as index value.
+		option.value = SEL_VER[ i ];
+		// Assign the UI version.
+		option.text  = SEL_VER[ i + 1 ];
+		sel_ver.appendChild( option );
+	}
+
+	return;
+}
+
+/*
+ * Set value in the <select> element for OS (select box)
+ * Depends on OS data from browser
+ */
+function setOSSel() {
+	// Depending on $PLATFORM assign the platform string of the release matrix.
+	var sel_os = document.getElementById( "os" );
+
+	// Set the recognized browser platform as default for the select box.
+	for( var i = 0, j = SEL_OS.length; i < j; i = i + 3 ) {
+		// If the platform was found, assign the found index to the select box.
+		if( SEL_OS[ i ] === PLATFORM ) {
+			sel_os.selectedIndex = i / 3;
+			break;
+		}
+	}
+
+	// If no selected platform for was set in the select box because it was not recognized from browser data,
+	// assign "Windows" as default.
+	if( sel_os.selectedIndex === 0 ) {
+		// Default: Assign "Windows".
+		for( var i = 0, j = SEL_OS.length; i < j; i = i + 3 ) {
+			// If the platform was found, assign the found index to the select box.
+			if( SEL_OS[ i ] === "Win_x86_install" ) {
+				sel_os.selectedIndex = i / 3;
+				break;
+			}
+		}
+	}
+
+	PLATFORM_SEL = sel_os.value;
+	return PLATFORM_SEL;
+}
+
+/*
+ * Set value in the <select> element for language (select box)
+ * Depends on language data from browser
+ */
+function setLangSel() {
+	// Depending on $LANG_ISO assign the language position of the release matrix.
+	var sel_lang   = document.getElementById( "lang" );
+	var lang_found = false;
+
+	// Set the recognized browser language as default for the select box.
+	for( var i = 0, j = SEL_LANG.length; i < j; i = i + 2 ) {
+		// If the language was found, assign the found index to the select box.
+		if( SEL_LANG[ i ] === LANG_ISO ) {
+			sel_lang.selectedIndex = i / 2;
+			lang_found = true;
+			break;
+		}
+	}
+
+	// If no selected language was set in the select box because it was not recognized from browser data,
+	// assign "en-US" as default.
+	if( ! lang_found ) {
+		// Default: Assign "en-US".
+		for( var i = 0, j = SEL_LANG.length; i < j; i = i + 2 ) {
+			// If the language was found, assign the found index to the select box.
+			if( SEL_LANG[ i ] === "en-US" ) {
+				sel_lang.selectedIndex = i / 2;
+				break;
+			}
+		}
+	}
+
+	LANG_SEL = sel_lang.value;
+	return LANG_SEL;
+}
+
+/*
+ * Set value in the <select> element for version (select box)
+ * Depends on nothing
+ */
+function setVerSel() {
+	// Depending on $VERSION assign the version.
+	var sel_ver = document.getElementById( "ver" );
+
+	// Set the value of $VERSION as default for the select box.
+	for( var i = 0, j = SEL_VER.length; i < j; i = i + 2 ) {
+		// If the version was found, assign the found index to the select box.
+		if( SEL_VER[ i ] === VERSION ) {
+			sel_ver.selectedIndex = i/2;
+			break;
+		}
+	}
+
+	// If no version was set as global variable,
+	// assign the most recent version as default.
+	if( sel_ver.selectedIndex === 0 ) {
+		// Default: Assign "4.1.0".
+		for( var i = 0; i < SEL_VER.length; i = i + 2 ) {
+			// If the version was found, assign the found index to the select box.
+			if( SEL_VER[ i ] === "4.1.0" ) {
+				sel_ver.selectedIndex = i / 2;
+				break;
+			}
+		}
+	}
+
+	VERSION_SEL = sel_ver.value;
+	return VERSION_SEL;
+}
+
+/*
+ * Get values from the <select> element for OS (select box)
+ * Depends on chosen OS
+ */
+function getOSSel() {
+	var os_value = document.download.os.options[document.download.os.selectedIndex].value;
+
+	// Search through the <select> element until the chosen OS is found.
+	for( var i = 0, j = SEL_OS.length; i < j; i = i + 3 ) {
+		if( SEL_OS[ i ] === os_value ) {
+			PLATFORM_SEL	= SEL_OS[ i ];
+			UI_PLATFORM	= SEL_OS[ i + 1 ];
+			EXTENSION	= SEL_OS[ i + 2 ];
+			break;
+		}
+	}
+
+	PLATFORM = PLATFORM_SEL;
+	return PLATFORM_SEL;
+}
+
+/*
+ * Get values from the <select> element for language (select box)
+ * Depends on chosen language
+ */
+function getLangSel() {
+	var lang_value = document.download.lang.options[document.download.lang.selectedIndex].value;
+
+	// Search through the <select> element until the chosen language is found.
+	for( var i = 0, j = SEL_LANG.length; i < j; i = i + 2 ) {
+		if( SEL_LANG[ i ] === lang_value ) {
+			LANG_SEL = lang_value;
+			break;
+		}
+	}
+
+	LANG_ISO = LANG_SEL;
+	return LANG_SEL;
+}
+
+/*
+ * Get values from the <select> element for version (select box)
+ * Depends on chosen version
+ */
+function getVerSel() {
+	var ver_value = document.download.ver.options[document.download.ver.selectedIndex].value;
+
+	// Search through the <select> element until the chosen version is found.
+	for( var i = 0, j = SEL_VER.length; i < j; i = i + 2 ) {
+		if( SEL_VER[ i ] === ver_value ) {
+			VERSION_SEL = ver_value;
+			break;
+		}
+	}
+
+	return VERSION_SEL;
+}
+
+/*
+ * Reset CSS style for all elements with ID to make them invisible
+ */
+function resetElements() {
+	// Change CSS styles for all elements with ID in the green and sub-green colored boxes.
+	// Emtpy the values for all elements, make them invisible.
+	for( var i = 0, j = element_ids_sub_green.length; i < j; i++ ) {
+		document.getElementById( element_ids_sub_green[ i ] ).style.display = "none";
+	}
+
+	for( var i = 0, j = element_ids_links.length; i < j; i++ ) {
+		document.getElementById( element_ids_links[ i ] ).style.display	  = "none";
+	}
+
+	return;
+}
+
+/*
+ * Show a popup window
+ * Depends on received target link
+ */
+function showWindow( target_link ) {
+	// Open a popup window with specific parameters to show the file from "target_link".
+	window = window.open( target_link, "_blank",
+	"location=no, menubar=no, resizable=yes, scrollbars=yes, status=no, titlebar=no, toolbar=no, \
+	left=100, top=250, width=800, height=550");
+	window.focus();
+
+	return;
+}
+
+/*
+ * Show error message
+ * Depends on set text data
+ */
+function showErrorMessage( error_text ) {
+	// The chosen items from select boxes lead to no download link, show an error message about reason and alternative.
+
+	// In general, reset the data for link, text and title of all elements.
+	resetElements();
+
+	// Now set again the values for all elements that should be shown with changed data.
+	document.getElementById( "dl_f_link"	 ).style.display	= "inline";
+	document.getElementById( "dl_f_link"	 ).style.cursor		= "not-allowed";
+	document.getElementById( "dl_f_link"	 ).href			= "javascript:void( 0 )";
+	document.getElementById( "dl_f_link"	 ).target		= "";
+	document.getElementById( "dl_f_link"	 ).innerHTML		= "No full installation available";
+	document.getElementById( "dl_f_link"	 ).title		= "Please select another language, platform or version.";
+	document.getElementById( "dl_lp_link"	 ).style.display	= "inline";
+	document.getElementById( "dl_lp_link"	 ).style.cursor		= "not-allowed";
+	document.getElementById( "dl_lp_link"	 ).href			= "javascript:void( 0 )";
+	document.getElementById( "dl_lp_link"	 ).target		= "";
+	document.getElementById( "dl_lp_link"	 ).innerHTML		= "No language pack available";
+	document.getElementById( "dl_lp_link"	 ).title		= "Please select another language, platform or version.";
+
+	document.getElementById( "sub_green_box" ).className		= "sub-green-sel_error";
+
+	document.getElementById( "dl_err_img"    ).src			= "cachedimages/exclamation-icon.png";
+	document.getElementById( "dl_err_img"    ).title		= "The selected download file is not available";
+	document.getElementById( "dl_err_img"    ).alt			= "Error text";
+	document.getElementById( "dl_err_img"	 ).style.display	= "inline-block";
+	document.getElementById( "dl_err"	 ).innerHTML		= "<br />" + error_text;
+	document.getElementById( "dl_err"	 ).title		= "The selected download file is not available";
+	document.getElementById( "dl_err"	 ).style.fontSize	= "1.2em";
+	document.getElementById( "dl_err"	 ).style.cursor		= "default";
+	document.getElementById( "dl_err"	 ).style.display	= "inline-block";
+
+	// Delete previously set string to get the possibility back to choose a different platform
+	// and then to assemble a new download link.
+	UI_PLATFORM_NO_SUP = "";
+	ERROR		   = true;
+	return ERROR;
+}
+
+/*
+ * Is flag set for chosen language (y/n)?
+ * Depends on array-list of "languages.js"
+ * Depends on language and array-list of "release_matrix.js"
+ */
+function isLangSupported() {
+	// Check the flag in "release_matrix.js", 'y' -> provide download link, 'n' -> redirect to alternative webpage.
+
+	if( VERSION_SEL === undefined || VERSION_SEL === "" )
+		VERSION_SEL = VERSION;
+
+	switch( VERSION_SEL ) {
+		case "4.1.0":
+			RELEASE_LANG = release_410[ LANG_ISO ][ 0 ];
+			break;
+		case "4.0.1":
+			RELEASE_LANG = release_401[ LANG_ISO ][ 0 ];
+			break;
+		case "4.0.0":
+			RELEASE_LANG = release_400[ LANG_ISO ][ 0 ];
+			break;
+		default:
+			RELEASE_LANG = "";
+			ERROR = true;
+	}
+
+	if( RELEASE_LANG[ 3 ] === 'y' ) {
+		ERROR = false;
 		return true;
 	} else {
+		NOT_AVAILABLE = RELEASE_LANG[ 1 ] + " is not available";
 		ERROR = true;
 		return false;
 	}
@@ -149,210 +537,242 @@ function hasMirrorLink() {
 
 /*
  * Get link to mirror system for download file and checksum file
- * Depends on array-list
+ * Depends on chosen OS, language and type
  */
-function getLink( rel_mode ) {
-	var chk_link = "";
+function getLinkSel() {
+	// Reset all variables that could have been set until now.
+	initVars( 0 );
+
+	// If no mode was given, assume it is the release mode (stable release).
+	if( R_MODE === undefined )
+		R_MODE = 1;
+
+	// Get the selected data from the select boxes.
+	getOSSel();
+	getLangSel();
+	getVerSel();
+
+	// If recognized platform is not Windows, Linux or Mac, show the none-availability to the user.
+	if( UI_PLATFORM_NO_SUP !== "" ) {
+		// Show an error message that the chosen items do not lead to a download.
+		error_text = "<b>Problem:</b> Apache OpenOffice " + VERSION_SEL + " is not available for <b>"
+			     + UI_PLATFORM_NO_SUP + "</b>."
+			     + "<br /><b>Solution:</b> Please select a download for Windows, Linux or OS X.";
+
+		showErrorMessage( error_text );
+		return false;
+	}
 
-	// If no release mode was given, assume it's about the stable release
-	if ( rel_mode == undefined )
-		rel_mode = 1;
+	// If version is '4.1.0' (or newer) and platform is 'Mac OS X <= 10.6', show the none-availability to the user.
+	if( VERSION_SEL === "4.1.0" && PLATFORM === "mac32" ) {
+		// Show an error message that the chosen items do not lead to a download.
+		error_text = "<b>Problem:</b> &nbsp;Apache OpenOffice " + VERSION_SEL + " is not available for <b>"
+			     + UI_PLATFORM + "</b>."
+			     + "<br /><b>Solution:</b> Please select version 4.0.1.";
 
-	getLanguage();
-	getPlatform();
-	if ( hasMirrorLink() ) {
-		getFilesize();
+		showErrorMessage( error_text );
+		return false;
+	}
+
+	// If version is '4.0.1' (or older) and platform is 'Mac OS X >= 10.7', show the none-availability to the user.
+	if( ( VERSION_SEL === "4.0.1" || VERSION_SEL === "4.0.0" ) && PLATFORM === "mac64" ) {
+		// Set the values for all elements that should not be empty.
+		error_text = "<b>Problem:</b> Apache OpenOffice " + VERSION_SEL + " is not available for <b>"
+			     + UI_PLATFORM + "</b>."
+			     + "<br /><b>Solution:</b> Please select version 4.1.0 or newer.";
+
+		showErrorMessage( error_text );
+		return false;
+	}
+
+	// If platform is 'other', create a download link that leads to the Porting webpage.
+	if( PLATFORM_SEL === "other" ) {
+		// In general, reset the data for link, text and title of all elements.
+		resetElements();
+
+		// Set the URL to the archive as download link.
+		LINK_FULL = FILE_PORTING;
+
+		// Set the values for only one download text button.
+		document.getElementById( "dl_f_link"	 ).href		 = LINK_FULL;
+		document.getElementById( "dl_f_link"	 ).target	 = "_blank";
+		document.getElementById( "dl_f_link"	 ).innerHTML	 = "Porting: Click to choose from 3rd party vendors";
+		document.getElementById( "dl_f_link"	 ).title	 = "Click to browse to the porting webpage and download from 3rd party vendors";
+		document.getElementById( "dl_f_link"	 ).style.cursor	 = "pointer";
+		document.getElementById( "dl_f_link"	 ).style.display = "inline";
+		document.getElementById( "dl_lp_link"	 ).style.display = "none";
+		document.getElementById( "sub_green_box" ).style.display = "none";
+
+		OTHER = true;
+		ERROR = false;
+		return LINK_FULL;
 	}
-	/*
-	if ( NL_LANGUAGE == "" )
-		NL_LANGUAGE = LANG_ISO;
-	*/
-	/*
-	Trim timestamp from version, required for RC
-	if ( version.indexOf( "_" ) > -1 )
-		version = version.split( "_" )[0];
-	*/
-
-	// If language is supported, then provide a download link. 
-	if ( hasMirrorLink() ) {
-		// Release mode
-		if ( rel_mode == 1 ) {
-			// If platform is too old, then provide a general download link to the archive.
-			if ( OLD_PLATFORM ) {
-				// If platform is Mac OS X <=10.6, then provide a download link with previous AOO version.
-
-				if ( UI_PLATFORM == "Mac OS X (10.6 or older)" ) {
-
-					FILENAME	= "Apache_OpenOffice_" + PRE_VERSION + "_" + URL_PLATFORM + "_";
-					FILENAME	= FILENAME + LANG_ISO + EXTENSION;
-					LINK		= SOURCEFORGE_PREVIOUS_URL + LANG_ISO + "/" + FILENAME;
-					LINK		= LINK + "/download";
-
-					chk_link	= APACHE_DIST_PREVIOUS_URL + "/binaries/" + LANG_ISO + "/";
-					chk_link	= chk_link + FILENAME;
-
-					CHECKSUM_KEYS	= "https://people.apache.org/keys/group/openoffice.asc";
-					CHECKSUM_ASC	= chk_link + ".asc";
-					CHECKSUM_MD5	= chk_link + ".md5";
-					CHECKSUM_SHA256	= chk_link + ".sha256";
-
-					SOURCEFORGE	= false;
-					OTHER		= false;
-					ARCHIVE		= true;
-					ERROR		= true;
-					return LINK;
-				}
-
-				// If platform is Solaris, FreeBSD or OS/2,
-				// then provide a download link to the porting webpage.
-				if ( UI_PLATFORM == "Solaris x86 (PKG)"   ||
-				     UI_PLATFORM == "Solaris SPARC (PKG)" ||
-				     UI_PLATFORM == "FreeBSD (PKG)"       ||
-				     UI_PLATFORM == "OS/2" ) {
-
-					LINK		= "http://www.openoffice.org/porting/index.html";
-
-					SOURCEFORGE	= false;
-					OTHER		= true;
-					ARCHIVE		= false;
-					ERROR		= true;
-					return LINK;
-				}
-				LINK		= "http://archive.apache.org/dist/openoffice/";
-
-				CHECKSUM_KEYS	= "https://people.apache.org/keys/group/openoffice.asc";
-				CHECKSUM_ASC	= "http://archive.apache.org/dist/openoffice/";
-				CHECKSUM_MD5	= "http://archive.apache.org/dist/openoffice/";
-				CHECKSUM_SHA256	= "http://archive.apache.org/dist/openoffice/";
-
-				SOURCEFORGE	= false;
-				OTHER		= true;
-				ARCHIVE		= false;
-				ERROR		= true;
-				return LINK;
-			}
-			// If no platform was recognized, then provide a general download link to the "other.html" webpage.
-			if ( URL_PLATFORM == "" ) {
-				// If no UI string was set, then show it to the user.
-				if ( UI_PLATFORM == "" ) {
-					UI_PLATFORM = "unknown platform/OS";
-				}
-				LINK		= "http://www.openoffice.org/download/other.html";
-
-				SOURCEFORGE	= false;
-				OTHER		= true;
-				ARCHIVE		= false;
-				ERROR		= true;
-				return LINK;
-			}
 
-			// If platform was recognized, assemble the filenames for download and checksums
-			FILENAME	= "Apache_OpenOffice_" + VERSION + "_" + URL_PLATFORM + "_" + LANG_ISO;
-			FILENAME	= FILENAME + EXTENSION;
-
-			// Assign the file name (column 3) from the release matrix of language and platform
-			// FILENAME	= release_matrix_410[ LANG_ISO ][ RELEASE_MATRIX_PLATFORM_POS ][ 3 ];
-
-			// LINK	= SOURCEFORGE_BASE_URL + LANG_ISO + "/Apache_OpenOffice_" + VERSION + "_";
-			// LINK	= LINK + URL_PLATFORM + "_" + LANG_ISO + EXTENSION + "/download";
-			LINK		= SOURCEFORGE_BASE_URL + LANG_ISO + "/" + FILENAME + "/download";
-
-			// chk_link	= APACHE_DIST_BASE_URL + "/binaries/" + LANG_ISO + "/Apache_OpenOffice_";
-			// chk_link	= chk_link + VERSION + "_" + URL_PLATFORM + "_" + LANG_ISO + EXTENSION;
-			chk_link	= APACHE_DIST_BASE_URL + "/binaries/" + LANG_ISO + "/" + FILENAME;
-
-			CHECKSUM_KEYS	= "https://people.apache.org/keys/group/openoffice.asc";
-			CHECKSUM_ASC	= chk_link + ".asc";
-			CHECKSUM_MD5	= chk_link + ".md5";
-			CHECKSUM_SHA256	= chk_link + ".sha256";
-
-			/*
-			// Used for debugging
-			LINK		= PEOPLE_BASE_URL + "/binaries/" + LANG_ISO + "/Apache_OpenOffice_";
-			LINK		= LINK + "/Apache_OpenOffice_" + "_" + LANG_ISO + EXTENSION;
-			chk_link	= PEOPLE_BASE_URL + "/binaries/" + LANG_ISO + "/Apache_OpenOffice_" + VERSION;
-			chk_link	= chk_link + "_" + URL_PLATFORM + "_" + LANG_ISO + EXTENSION;
-			*/
-
-			SOURCEFORGE	= true;
-			OTHER		= false;
-			ARCHIVE		= false;
-			ERROR		= false;
-			return LINK;
+	// If version is 'older', create a download link that leads to the archive webpage.
+	if( VERSION_SEL === "older" ) {
+		// In general, reset the data for link, text and title of all elements.
+		resetElements();
+
+		// Set the URL to the archive as download link.
+		LINK_FULL = FILE_ARCHIVE;
+
+		// Set the values for only one download text button.
+		document.getElementById( "dl_f_link"	 ).href		 = LINK_FULL;
+		document.getElementById( "dl_f_link"	 ).target	 = "_blank";
+		document.getElementById( "dl_f_link"	 ).innerHTML	 = "Archive: Click to choose from legacy releases";
+		document.getElementById( "dl_f_link"	 ).title	 = "Click to browse to the archive and download legacy releases";
+		document.getElementById( "dl_f_link"	 ).style.cursor	 = "pointer";
+		document.getElementById( "dl_f_link"	 ).style.display = "inline";
+		document.getElementById( "dl_lp_link"	 ).style.display = "none";
+		document.getElementById( "sub_green_box" ).style.display = "none";
+
+		ARCHIVE = true;
+		ERROR   = false;
+		return LINK_FULL;
+	}
+
+	// If language is not supported, show the none-availability to the user.
+	if( ! isLangSupported() ) {
+		if( R_MODE === 1 ) {
+			// Release mode.
+			// Provide the link from the Native Language (NL) group.
+			LINK_FULL     = "http://www.openoffice.org/" + RELEASE_LANG[ 4 ];
+			LINK_LP	      = LINK_LP;
+			FILESIZE_FULL = 0;
+			FILESIZE_LP   = 0;
 		} else {
-			// Beta release mode
-			// If platform is too old, then provide a general download link to the archive.
-			if ( OLD_PLATFORM ) {
-				// If platform is Mac OS X <=10.6, then provide a download link with previous AOO version.
-				if ( UI_PLATFORM == "Mac OS X (10.6 or older)" ) {
-
-					FILENAME	= "Apache_OpenOffice_" + PRE_VERSION + "_" + URL_PLATFORM + "_";
-					FILENAME	= FILENAME + LANG_ISO + EXTENSION;
-					LINK		= SOURCEFORGE_PREVIOUS_URL + LANG_ISO + "/" + FILENAME;
-					LINK		= LINK + "/download";
-
-					chk_link	= APACHE_DIST_PREVIOUS_URL + "/binaries/" + LANG_ISO + "/";
-					chk_link	= chk_link + FILENAME;
-
-					CHECKSUM_KEYS	= "https://people.apache.org/keys/group/openoffice.asc";
-					CHECKSUM_ASC	= chk_link + ".asc";
-					CHECKSUM_MD5	= chk_link + ".md5";
-					CHECKSUM_SHA256	= chk_link + ".sha256";
-
-					SOURCEFORGE	= false;
-					OTHER		= false;
-					ARCHIVE		= true;
-					ERROR		= true;
-					return LINK;
-				}
-				LINK	= "http://www.openoffice.org/download/all_beta.html";
-
-				SOURCEFORGE	= false;
-				OTHER		= true;
-				ARCHIVE		= false;
-				ERROR		= true;
-				return LINK;
-			}
+			// Beta release mode.
+			// Provide the "all_beta.html" as download link.
+			LINK_FULL     = "http://www.openoffice.org/download/all_beta.html";
+			LINK_LP	      = LINK_LP;
+		}
+		// Show an error message that the chosen items do not lead to a download.
+		error_text = "<b>Problem:</b> Apache OpenOffice " + VERSION_SEL + " is not available for <b>"
+			     + RELEASE_LANG[ 1 ] + " (" + RELEASE_LANG[ 2 ] + ") (" + LANG_SEL + ")</b>."
+			     + "<br /><b>Solution:</b> Please select another language or version.";
 
-			// If platform was recognized, assemble the filenames for download and checksums
-			FILENAME	= "Apache_OpenOffice_" + VERSION + "_" + URL_PLATFORM + "_" + LANG_ISO;
-			FILENAME	= FILENAME + EXTENSION;
-
-			// Assign the file name (column 3) from the release matrix of language and platform
-			// FILENAME	= release_matrix_410_beta[ LANG_ISO ][ RELEASE_MATRIX_PLATFORM_POS ][ 3 ];
-
-			// LINK	= BETA_SOURCEFORGE_BASE_URL + LANG_ISO + "/Apache_OpenOffice_Beta_" + VERSION + "_";
-			// LINK	= LINK + URL_PLATFORM + "_" + LANG_ISO + EXTENSION + "/download";
-			LINK		= BETA_SOURCEFORGE_BASE_URL + LANG_ISO + "/" + FILENAME + "/download";
-
-			// chk_link	= BETA_APACHE_DIST_BASE_URL + "/binaries/" + LANG_ISO;
-			// chk_link	= chk_link + "/Apache_OpenOffice_Beta_" + VERSION + "_" + URL_PLATFORM + "_";
-			// chk_link	= chk_link + LANG_ISO + EXTENSION;
-			chk_link	= BETA_APACHE_DIST_BASE_URL + "/binaries/" + LANG_ISO + "/" + FILENAME;
-
-			CHECKSUM_KEYS	= "https://people.apache.org/keys/group/openoffice.asc";
-			CHECKSUM_ASC	= chk_link + ".asc";
-			CHECKSUM_MD5	= chk_link + ".md5";
-			CHECKSUM_SHA256	= chk_link + ".sha256";
-		}
-		SOURCEFORGE	= true;
-		OTHER		= false;
-		ARCHIVE		= false;
-		ERROR		= false;
- 		return LINK;
+		showErrorMessage( error_text );
+		return false;
 	} else {
-		// Release mode
-		if ( rel_mode == 1 ) {
-			// If language is not supported, then provide the link from the Native Language (NL) group.
-			LINK	= LANG_ARRAY[ 4 ];
-		} else {
-			// Beta release mode
-			// If language is not supported, then provide the "all_beta.html" as download link.
-			LINK	= "http://www.openoffice.org/download/all_beta.html";
+		// If language is supported, assemble the filenames and text for download and checksums. 
+
+		getReleaseMatrixPos();
+		getFileData( VERSION_SEL );
+
+		SOURCEFORGE_BASE_URL = SOURCEFORGE + VERSION_SEL + "/binaries/";
+		ASF_ARC_BASE_URL     = ASF_ARC     + VERSION_SEL;
+
+		// Assign the file name (column 3) from the release matrix of language and platform.
+		LINK_FULL	     = SOURCEFORGE_BASE_URL		  + LANG_SEL + "/" + FILENAME_FULL  + "/download";
+		LINK_LP		     = SOURCEFORGE_BASE_URL		  + LANG_SEL + "/" + FILENAME_LP    + "/download";
+
+		LINK_CHK_KEYS	     = "https://people.apache.org/keys/group/openoffice.asc";
+		LINK_CHK_ASC_FULL    = ASF_ARC_BASE_URL  + "/binaries/"   + LANG_SEL + "/" + FILENAME_FULL + ".asc";
+		LINK_CHK_MD5_FULL    = ASF_ARC_BASE_URL  + "/binaries/"   + LANG_SEL + "/" + FILENAME_FULL + ".md5";
+		LINK_CHK_SHA256_FULL = ASF_ARC_BASE_URL  + "/binaries/"   + LANG_SEL + "/" + FILENAME_FULL + ".sha256";
+
+		LINK_CHK_ASC_LP	     = ASF_ARC_BASE_URL  + "/binaries/"   + LANG_SEL + "/" + FILENAME_LP   + ".asc";
+		LINK_CHK_MD5_LP	     = ASF_ARC_BASE_URL  + "/binaries/"   + LANG_SEL + "/" + FILENAME_LP   + ".md5";
+		LINK_CHK_SHA256_LP   = ASF_ARC_BASE_URL  + "/binaries/"   + LANG_SEL + "/" + FILENAME_LP   + ".sha256";
+
+		SF		     = true;
+		ERROR		     = false;
+
+		// Set the values for both download text buttons and set the focus to the "full install".
+		document.getElementById( "dl_f_link"	    ).href	= LINK_FULL;
+		document.getElementById( "dl_f_link"	    ).innerHTML	= "Download full installation";
+		document.getElementById( "dl_f_link"	    ).title	= "Click to download: " + FILENAME_FULL;
+		document.getElementById( "dl_f_link"	    ).focus()
+		document.getElementById( "dl_lp_link"	    ).href	= LINK_LP;
+		document.getElementById( "dl_lp_link"	    ).innerHTML	= "Download language pack";
+		document.getElementById( "dl_lp_link"	    ).title	= "Click to download: " + FILENAME_LP;
+
+		// Set the values in the sub-green box for the 3 text lines.
+		document.getElementById( "dl_rel_info"      ).innerHTML	= "<b>Release info:</b> " + REL_TEXT;
+		document.getElementById( "dl_f_info"	    ).innerHTML = "<b>Full installation:</b> File size ~ " + FILESIZE_FULL + " MByte | Signatures and hashes: ";
+		document.getElementById( "dl_f_chk_keys"    ).href	= LINK_CHK_KEYS;
+		document.getElementById( "dl_f_chk_keys"    ).innerHTML	= "KEYS";
+		document.getElementById( "dl_f_chk_keys"    ).title	= "KEYS signature file";
+		document.getElementById( "space1"	    ).innerHTML	= " , ";
+		document.getElementById( "dl_f_chk_asc"	    ).href	= LINK_CHK_ASC_FULL;
+		document.getElementById( "dl_f_chk_asc"	    ).innerHTML	= "ASC";
+		document.getElementById( "dl_f_chk_asc"	    ).title	= "ASC signature for: " + FILENAME_FULL;
+		document.getElementById( "space2"	    ).innerHTML	= " , ";
+		document.getElementById( "dl_f_chk_md5"	    ).href	= LINK_CHK_MD5_FULL;
+		document.getElementById( "dl_f_chk_md5"	    ).innerHTML	= "MD5";
+		document.getElementById( "dl_f_chk_md5"	    ).title	= "MD5 hash for: " + FILENAME_FULL;
+		document.getElementById( "space3"	    ).innerHTML	= " , ";
+		document.getElementById( "dl_f_chk_sha256"  ).href	= LINK_CHK_SHA256_FULL;
+		document.getElementById( "dl_f_chk_sha256"  ).innerHTML	= "SHA256";
+		document.getElementById( "dl_f_chk_sha256"  ).title	= "SHA256 hash for: " + FILENAME_FULL;
+		document.getElementById( "dl_lp_info"	    ).innerHTML	= "<b>Language pack:</b> File size ~ " + FILESIZE_LP + " MByte  | Signatures and hashes: ";
+		document.getElementById( "dl_lp_chk_keys"   ).href	= LINK_CHK_KEYS;
+		document.getElementById( "dl_lp_chk_keys"   ).innerHTML	= "KEYS";
+		document.getElementById( "dl_lp_chk_keys"   ).title	= "KEYS signature file";
+		document.getElementById( "space4"	    ).innerHTML	= " , ";
+		document.getElementById( "dl_lp_chk_asc"    ).href	= LINK_CHK_ASC_LP;
+		document.getElementById( "dl_lp_chk_asc"    ).innerHTML	= "ASC";
+		document.getElementById( "dl_lp_chk_asc"    ).title	= "ASC signature for: " + FILENAME_LP;
+		document.getElementById( "space5"	    ).innerHTML	= " , ";
+		document.getElementById( "dl_lp_chk_md5"    ).href	= LINK_CHK_MD5_LP;
+		document.getElementById( "dl_lp_chk_md5"    ).innerHTML	= "MD5";
+		document.getElementById( "dl_lp_chk_md5"    ).title	= "MD5 hash for: " + FILENAME_LP;
+		document.getElementById( "space6"	    ).innerHTML	= " , ";
+		document.getElementById( "dl_lp_chk_sha256" ).href	= LINK_CHK_SHA256_LP;
+		document.getElementById( "dl_lp_chk_sha256" ).innerHTML	= "SHA256";
+		document.getElementById( "dl_lp_chk_sha256" ).title	= "SHA256 hash for: " + FILENAME_LP;
+
+		// Set the values in the sub-green box below the 3 text lines.
+		document.getElementById( "dl_hlp_img"	    ).src	= "cachedimages/help-information-icon.png";
+		document.getElementById( "dl_hlp_img"	    ).title	= "What is the difference between full installation and language pack?";
+		document.getElementById( "dl_hlp_img"	    ).alt	= "Install info";
+		document.getElementById( "dl_hlp"	    ).href	= FILE_FULL_LP;
+		document.getElementById( "dl_hlp"	    ).innerHTML	= "What is a language pack?";
+		document.getElementById( "dl_hlp"	    ).title	= "What is the difference between full installation and language pack?";
+		document.getElementById( "dl_chk_img"	    ).src	= "cachedimages/help-information-icon.png";
+		document.getElementById( "dl_chk_img"	    ).title	= "How to verify the downloaded file with checksums?";
+		document.getElementById( "dl_chk_img"	    ).alt	= "Checksum verify";
+		document.getElementById( "dl_chk"	    ).href	= FILE_CHECKSUMS;
+		document.getElementById( "dl_chk"	    ).innerHTML	= "How to verify the download?";
+		document.getElementById( "dl_chk"	    ).title	= "How to verify the downloaded file with checksums?";
+		document.getElementById( "dl_rpt_img"	    ).src	= "cachedimages/help-report-broken-link-icon.png";
+		document.getElementById( "dl_rpt_img"	    ).title	= "Broken download link? Click here to report.";
+		document.getElementById( "dl_rpt_img"	    ).alt	= "Broken link";
+		document.getElementById( "dl_rpt"	    ).href	= FILE_ANALYZE;
+		document.getElementById( "dl_rpt"	    ).innerHTML	= "Report broken link";
+		document.getElementById( "dl_rpt"	    ).title	= "Broken download link? Click here to report.";
+
+		// Reset the CSS styles for the elements in the sub-green colored boxes.
+		document.getElementById( "sub_green_box"    ).className	       = "sub-green-sel";
+		document.getElementById( "dl_err_img"	    ).style.display    = "none";
+		document.getElementById( "dl_err"	    ).style.display    = "none";
+
+		// Change CSS styles for all elements with ID in the green and sub-green colored boxes.
+		// Set the cursor style for elements to default and make the elements visible.
+		for( var i = 0, j = element_ids_sub_green.length; i < j; i++ ) {
+			document.getElementById( element_ids_sub_green[ i ] ).style.display = "inline";
+			document.getElementById( element_ids_sub_green[ i ] ).style.cursor  = "default";
 		}
-		ERROR	= true;
- 		return LINK;
+
+		// Set the cursor style for elements with links to pointer and make the elements visible.
+		for( var i = 0, j = element_ids_links.length; i < j; i++ ) {
+			document.getElementById( element_ids_links[ i ] ).style.display	    = "inline";
+			document.getElementById( element_ids_links[ i ] ).style.cursor	    = "pointer";
+		}
+
+		// Set the cursor style for the 3 links with icon to a help sign.
+		document.getElementById( "dl_hlp_img"	    ).style.cursor     = "help";
+		document.getElementById( "dl_hlp"	    ).style.cursor     = "help";
+		document.getElementById( "dl_chk_img"	    ).style.cursor     = "help";
+		document.getElementById( "dl_chk"	    ).style.cursor     = "help";
+		document.getElementById( "dl_rpt_img"	    ).style.cursor     = "help";
+		document.getElementById( "dl_rpt"	    ).style.cursor     = "help";
+
+		// Make the sub-green box and therefore all elements visible.
+		document.getElementById( "sub_green_box"    ).style.display    = "block";
 	}
+
+	return LINK_FULL;
 }
 
 /*
@@ -360,210 +780,317 @@ function getLink( rel_mode ) {
  * Depends on internal browser data
  */
 function getPlatform() {
-	// For more help or data see: "http://www.useragentstring.com"
+	// For more help or data see: "http://www.useragentstring.com".
 
-	var os		= navigator.platform.toLowerCase();	// Get the platform string in lower cases
-	var ua		= navigator.userAgent.toLowerCase();	// Get the User Agent string in lower cases
-	var av		= navigator.appVersion.toLowerCase();	// Get the application version in lower cases
-	UI_PLATFORM	= "";					// Delete any previously set string
-	URL_PLATFORM	= "";					// Delete any previously set string
-	EXTENSION	= "";					// Delete any previously set string
-
-	// Add ECMA262-5 Array methods if not supported natively
-	// To workaround that MSIE 8 and older do not support this function
-	if ( !( 'indexOf' in Array.prototype ) ) {
-		Array.prototype.indexOf= function( find, i /*opt*/ ) {
-			if ( i === undefined )
+	var av		   = navigator.appVersion.toLowerCase();	// Get the application version in lower case.
+	var os		   = navigator.platform.toLowerCase();		// Get the platform string in lower case.
+	var ua		   = navigator.userAgent.toLowerCase();		// Get the user agent string in lower case.
+	var ve		   = navigator.vendor.toLowerCase();		// Get the vendor string in lower case.
+	UI_PLATFORM	   = "";					// Delete previously set string.
+	UI_PLATFORM_NO_SUP = "";					// Delete previously set string.
+	PLATFORM	   = "";					// Delete previously set string.
+	EXTENSION	   = "";					// Delete previously set string.
+
+	// Add ECMA262-5 Array methods if not supported natively.
+	// To workaround that MSIE 8 and older do not support this function.
+	if( !( 'indexOf' in Array.prototype ) ) {
+		Array.prototype.indexOf= function( find, i ) {		// 'i' is an optional parameter.
+			if( i === undefined )
 				i = 0;
-			if ( i < 0 )
+			if( i < 0 )
 				i+= this.length;
-			if ( i < 0 )
+			if( i < 0 )
 				i = 0;
-			for ( var n = this.length; i < n; i++ ) {
-				if ( i in this && this[ i ] === find )
+			for( var n = this.length; i < n; i++ ) {
+				if( i in this && this[ i ] === find )
 					return i;
 			}
 			return -1;
 		};
 	}
 
-	if ( os ) {
-	  // Recognized but not supported platforms/OS, set $UI_PLATFORM to show it to the user.
-	  if ( os.indexOf( "os/2"		) != -1 )	UI_PLATFORM	= "OS/2";
-	  if ( os.indexOf( "freebsd"		) != -1 )	UI_PLATFORM	= "FreeBSD (PKG)";
-	  if ( os.indexOf( "openbsd"		) != -1 )	UI_PLATFORM	= "OpenBSD";
-	  if ( os.indexOf( "netbsd"		) != -1 )	UI_PLATFORM	= "NetBSD";
-	  if ( os.indexOf( "pcbsd"		) != -1 )	UI_PLATFORM	= "PC-BSD";
-	  if ( os.indexOf( "dragonfly"		) != -1 )	UI_PLATFORM	= "DragonFly BSD";
-	  if ( os.indexOf( "amiga"		) != -1 )	UI_PLATFORM	= "AmigaOS";
-	  if ( os.indexOf( "darwin"		) != -1 )	UI_PLATFORM	= "Darwin";
-	  if ( os.indexOf( "aix"		) != -1 )	UI_PLATFORM	= "IBM AIX";
-	  if ( os.indexOf( "irix"		) != -1 )	UI_PLATFORM	= "IRIX";
-	  if ( os.indexOf( "vms"		) != -1 )	UI_PLATFORM	= "OpenVMS";
-	  if ( os.indexOf( "alphaserver"	) != -1 )	UI_PLATFORM	= "AlphaServer";
-	  if ( os.indexOf( "qnx"		) != -1 )	UI_PLATFORM	= "QNX";
-	  if ( os.indexOf( "x11"		) != -1 )	UI_PLATFORM	= "unknown OS (X11 support)";
-	  if ( os.indexOf( "arm"		) != -1 )	UI_PLATFORM	= "ARM mobile devices";
-	  if ( os.indexOf( "sunos"		) != -1 ) {	UI_PLATFORM	= "Solaris x86 (PKG)";
-								OLD_PLATFORM	= true;
-	  }
-	  if ( ua.indexOf( "sun4u"		) != -1 ) {	UI_PLATFORM	= "Solaris SPARC (PKG)";
-								OLD_PLATFORM	= true;
-	  }
-	  if ( ua.indexOf( "ppc"		) != -1 ||
-	       ua.indexOf( "power_pc"		) != -1 ) {	UI_PLATFORM	= "Mac OS PPC (DMG)";
-								OLD_PLATFORM	= true;
-	  }
-	  if ( ua.indexOf( "iphone"		) != -1 ||
-	       ua.indexOf( "ipad"		) != -1 ||
-	       ua.indexOf( "ipod"		) != -1	)	UI_PLATFORM	= "Apple iPhone/iPad/iPod";
-	  if ( ua.indexOf( "android"		) != -1 ||
-	       av.indexOf( "android"		) != -1 )	UI_PLATFORM	= "Android mobile devices";
-	  if ( ua.indexOf( "blackberry"		) != -1 )	UI_PLATFORM	= "Blackberry smartphones";
-	  if ( ua.indexOf( "nokia"		) != -1 )	UI_PLATFORM	= "Nokia mobile devices";
-	  if ( ua.indexOf( "symbian"		) != -1 )	UI_PLATFORM	= "mobile phones (Symbian OS)";
-	  if ( ua.indexOf( "symbos"		) != -1 )	UI_PLATFORM	= "mobile phones (Symbian OS)";
-	  if ( ua.indexOf( "s60"	        ) != -1 )	UI_PLATFORM	= "mobile phones (Series60/S60)";
-	  if ( ua.indexOf( "series60"		) != -1 )	UI_PLATFORM	= "mobile phones (Series60/S60)";
-	  if ( ua.indexOf( "palm"		) != -1 )	UI_PLATFORM	= "mobile phones (Palm OS)";
-	  if ( ua.indexOf( "webos"		) != -1 )	UI_PLATFORM	= "mobile phones (Palm webOS)";
-	  if ( ua.indexOf( "pike"		) != -1 )	UI_PLATFORM	= "mobile phones (Pike)";
-	  if ( ua.indexOf( "ce.net"		) != -1 )	UI_PLATFORM	= "mobile phones (Windows CE)";
-	  if ( ua.indexOf( "widerweb"		) != -1 )	UI_PLATFORM	= "mobile phones (WiderWeb)";
-	  if ( ua.indexOf( "brew"		) != -1 )	UI_PLATFORM	= "smartphones (BREW)";
-	  if ( ua.indexOf( "hiptop"		) != -1 )	UI_PLATFORM	= "smartphones (Hiptop)";
-	  if ( ua.indexOf( "playstation"	) != -1 )	UI_PLATFORM	= "Sony Playstation";
-	  if ( ua.indexOf( "psp"		) != -1 )	UI_PLATFORM	= "Sony Playstation Portable";
-	  if ( ua.indexOf( "nintendo"		) != -1 )	UI_PLATFORM	= "Nintendo game console";
-	  if ( ua.indexOf( "wii"		) != -1 )	UI_PLATFORM	= "Nintendo Wii game console";
-
-	  // If the $UI_PLATFORM variable is already filled, then something was recognized and no more work is need.
-	  if ( UI_PLATFORM != "" )
-		return;
-
-	  // Windows, x86 or mobile?
-	  if ( os.indexOf( "windows"		) != -1 ||
-	       os.indexOf( "win"		) != -1 ) {	UI_PLATFORM	= "Windows (EXE)";
-								URL_PLATFORM	= "Win_x86_install";
-								EXTENSION	= ".exe";
-	    if ( ua.indexOf( "phone"		) != -1 ||
-		 ua.indexOf( "mobile"		) != -1 )	UI_PLATFORM	= "Windows Mobile device";
-	  }
-
-	  // Linux, x86 or x86-64, DEB or RPM?
-	  if ( os.indexOf( "linux"		) != -1 ) {
-		// 32-bit, DEB or RPM?
-		if ( os.indexOf( "x86"		) != -1 ||
-		     os.indexOf( "i686"		) != -1 ||
-		     os.indexOf( "i586"		) != -1 ||
-		     os.indexOf( "i486"		) != -1 ||
-		     os.indexOf( "i386"		) != -1 ||
-		     av.indexOf( "x86"		) != -1 ||
-		     av.indexOf( "i686"		) != -1 ||
-		     av.indexOf( "i586"		) != -1 ||
-		     av.indexOf( "i486"		) != -1 ||
-		     av.indexOf( "i386"		) != -1 ) {	UI_PLATFORM	= "Linux 32-bit (RPM)";
-								URL_PLATFORM	= "Linux_x86_install-rpm";
-								EXTENSION	= ".tar.gz";
-		     if ( ua.indexOf( "debian"    ) != -1 ||
-			  ua.indexOf( "ubuntu"    ) != -1 ||
-			  ua.indexOf( "iceweasel" ) != -1 ) {	UI_PLATFORM	= "Linux Debian 32-bit (DEB)";
-								URL_PLATFORM	= "Linux_x86_install-deb";
-								EXTENSION	= ".tar.gz";
-		     }
-		}
-		// 64-bit, DEB or RPM?
-		if ( os.indexOf( "_64"		) != -1 ||
-		     os.indexOf( "-64"		) != -1 ||
-		     os.indexOf( "x64"		) != -1 ||
-		     os.indexOf( "amd64"	) != -1 ||
-		     av.indexOf( "_64"		) != -1 ||
-		     av.indexOf( "-64"		) != -1 ||
-		     av.indexOf( "x64"		) != -1 ||
-		     av.indexOf( "amd64"	) != -1 ) {	UI_PLATFORM	= "Linux 64-bit (RPM)";
-								URL_PLATFORM	= "Linux_x86-64_install-rpm";
-								EXTENSION	= ".tar.gz";
-		     if ( ua.indexOf( "debian"	  ) != -1 ||
-		          ua.indexOf( "ubuntu"	  ) != -1 ||
-		          ua.indexOf( "iceweasel" ) != -1 ) {	UI_PLATFORM	= "Linux Debian 64-bit (DEB)";
-								URL_PLATFORM	= "Linux_x86-64_install-deb";
-								EXTENSION	= ".tar.gz";
-		     }
-		}
-	  }
-
-	  // Mac OS X?
-	  if ( os.indexOf( "mac"		) != -1 ) {	UI_PLATFORM	= "OS X 64-bit Intel (DMG)";
-								URL_PLATFORM	= "MacOS_x86-64_install";
-								EXTENSION	= ".dmg";
-		// OS X is 10.6 or older?
-		if ( ua.indexOf( "10.6"		) != -1 ||
-		     ua.indexOf( "10_6"		) != -1 ||
-		     ua.indexOf( "10.5"		) != -1 ||
-		     ua.indexOf( "10_5"		) != -1 ||
-		     ua.indexOf( "10.4"		) != -1 ||
-		     ua.indexOf( "10_4"		) != -1 ||
-		     ua.indexOf( "10.3"		) != -1 ||
-		     ua.indexOf( "10_3"		) != -1 ) {	UI_PLATFORM	= "Mac OS X (10.6 or older)";
-								URL_PLATFORM	= "MacOS_x86_install";
-								OLD_PLATFORM	= true;
+	// If the browser's user agent string is set with something, try to recognize its content.
+	if( ua !== "" ) {
+		// Recognized but *not supported* platforms/OS, set $UI_PLATFORM_NO_SUP to show it to the user.
+
+		// Mobile devices.
+		if( ua.indexOf( "android"		) !== -1 )
+		    if( ua.indexOf( "nexus"		) !== -1 &&
+			ve.indexOf( "google"		) !== -1 )	UI_PLATFORM_NO_SUP	= "Google Nexus";
+		    else if( ua.indexOf( "moble"	) !== -1 )	UI_PLATFORM_NO_SUP	= "mobile devices (Android)";
+		if( os.indexOf( "arm"			) !== -1 )	UI_PLATFORM_NO_SUP	= "mobile devices (ARM processor)";
+		if( ua.indexOf( "blackberry"		) !== -1 )	UI_PLATFORM_NO_SUP	= "Blackberry smartphones";
+		if( ua.indexOf( "brew"			) !== -1 )	UI_PLATFORM_NO_SUP	= "smartphones (BREW)";
+		if( ua.indexOf( "ce.net"		) !== -1 )	UI_PLATFORM_NO_SUP	= "mobile phones (Windows CE)";
+		if( ua.indexOf( "galaxy"		) !== -1 )	UI_PLATFORM_NO_SUP	= "Samsung Galaxy";
+		if( ua.indexOf( "hiptop"		) !== -1 )	UI_PLATFORM_NO_SUP	= "smartphones (Hiptop)";
+		if( ua.indexOf( "htc"			) !== -1 )	UI_PLATFORM_NO_SUP	= "HTC mobile devices";
+		if( ua.indexOf( "ipad"			) !== -1 ||
+		    ua.indexOf( "iphone"		) !== -1 ||
+		    ua.indexOf( "ipod"			) !== -1 )	UI_PLATFORM_NO_SUP	= "Apple iPhone/iPad/iPod";
+		if( ua.indexOf( "kindle"		) !== -1 )	UI_PLATFORM_NO_SUP	= "Amazon Kindle";
+		if( ua.indexOf( "lg"			) !== -1 )	UI_PLATFORM_NO_SUP	= "LG mobile devices";
+		if( ua.indexOf( "nokia"			) !== -1 )	UI_PLATFORM_NO_SUP	= "mobile phones (Nokia)";
+		if( ua.indexOf( "palm"			) !== -1 )	UI_PLATFORM_NO_SUP	= "mobile phones (Palm OS)";
+		if( ua.indexOf( "pike"			) !== -1 )	UI_PLATFORM_NO_SUP	= "mobile phones (Pike)";
+		if( ua.indexOf( "s60"	        	) !== -1 )	UI_PLATFORM_NO_SUP	= "mobile phones (S60)";
+		if( ua.indexOf( "sonyericsson"		) !== -1 )	UI_PLATFORM_NO_SUP	= "Sony/Ericsson mobile devices";
+		if( ua.indexOf( "symbian"		) !== -1 )	UI_PLATFORM_NO_SUP	= "mobile phones (Symbian OS)";
+		if( ua.indexOf( "symbos"		) !== -1 )	UI_PLATFORM_NO_SUP	= "mobile phones (Symbian OS)";
+		if( ua.indexOf( "webos"			) !== -1 )	UI_PLATFORM_NO_SUP	= "mobile phones (Palm webOS)";
+		if( ua.indexOf( "widerweb"		) !== -1 )	UI_PLATFORM_NO_SUP	= "mobile phones (WiderWeb)";
+		if( os.indexOf( "win"			) !== -1 ||
+		    os.indexOf( "windows"		) !== -1 )
+			if( ua.indexOf( "mobile"	) !== -1 ||
+			    ua.indexOf( "phone"		) !== -1 )	UI_PLATFORM_NO_SUP	= "smartphones (Windows Phone)";
+
+		// Other platforms.
+		if( os.indexOf( "aix"			) !== -1 )	UI_PLATFORM_NO_SUP	= "IBM AIX";
+		if( os.indexOf( "alphaserver"		) !== -1 )	UI_PLATFORM_NO_SUP	= "AlphaServer";
+		if( os.indexOf( "amiga"			) !== -1 )	UI_PLATFORM_NO_SUP	= "AmigaOS";
+		if( os.indexOf( "darwin"		) !== -1 )	UI_PLATFORM_NO_SUP	= "Darwin";
+		if( os.indexOf( "dragonfly"		) !== -1 )	UI_PLATFORM_NO_SUP	= "DragonFly BSD";
+		if( os.indexOf( "freebsd"		) !== -1 )	UI_PLATFORM_NO_SUP	= "FreeBSD (PKG)";
+		if( os.indexOf( "irix"			) !== -1 )	UI_PLATFORM_NO_SUP	= "IRIX";
+		if( os.indexOf( "netbsd"		) !== -1 )	UI_PLATFORM_NO_SUP	= "NetBSD";
+		if( ua.indexOf( "nintendo"		) !== -1 )	UI_PLATFORM_NO_SUP	= "Nintendo game console";
+		if( os.indexOf( "openbsd"		) !== -1 )	UI_PLATFORM_NO_SUP	= "OpenBSD";
+		if( os.indexOf( "os/2"			) !== -1 )	UI_PLATFORM_NO_SUP	= "OS/2";
+		if( os.indexOf( "pcbsd"			) !== -1 )	UI_PLATFORM_NO_SUP	= "PC-BSD";
+		if( ua.indexOf( "playstation"		) !== -1 )	UI_PLATFORM_NO_SUP	= "Sony Playstation";
+		if( ua.indexOf( "psp"			) !== -1 )	UI_PLATFORM_NO_SUP	= "Sony Playstation Portable";
+		if( os.indexOf( "qnx"			) !== -1 )	UI_PLATFORM_NO_SUP	= "QNX";
+		if( os.indexOf( "vms"			) !== -1 )	UI_PLATFORM_NO_SUP	= "OpenVMS";
+		if( ua.indexOf( "wii"			) !== -1 )	UI_PLATFORM_NO_SUP	= "Nintendo Wii game console";
+		if( os.indexOf( "x11"			) !== -1 )	UI_PLATFORM_NO_SUP	= "unknown OS (X11 support)";
+
+		// Legacy, no longer supported platforms.
+		if( ua.indexOf( "power_pc"		) !== -1 ||
+		    ua.indexOf( "ppc"			) !== -1 ) {	UI_PLATFORM_NO_SUP	= "Mac OS PPC (DMG)";
+									OLD_PLATFORM		= true;
+		}
+		if( ua.indexOf( "sun4u"			) !== -1 ) {	UI_PLATFORM_NO_SUP	= "Solaris SPARC (PKG)";
+									OLD_PLATFORM		= true;
+		}
+		if( os.indexOf( "sunos"			) !== -1 ) {	UI_PLATFORM_NO_SUP	= "Solaris x86 (PKG)";
+									OLD_PLATFORM		= true;
+		}
+
+		// If $UI_PLATFORM_NO_SUP is already filled, something was recognized and no more work is needed.
+		if( UI_PLATFORM_NO_SUP !== "" ) {
+			ERROR = true;
+			return UI_PLATFORM_NO_SUP;
+		}
+
+		// Recognized and *supported* platforms/OS, set $UI_PLATFORM to show it to the user.
+
+		// Windows?
+		if( os.indexOf( "win"			) !== -1 ||
+		    os.indexOf( "windows"		) !== -1 ) {	UI_PLATFORM	= "Windows (EXE)";
+									PLATFORM	= "win32";
+									EXTENSION	= ".exe";
+		}
+
+		// Linux: x86 or x86-64, DEB or RPM?
+		if( os.indexOf( "linux"			) !== -1 ) {
+			// 32-bit: DEB or RPM?
+			if( os.indexOf( "x86"		) !== -1 ||
+			    os.indexOf( "i686"		) !== -1 ||
+			    os.indexOf( "i586"		) !== -1 ||
+			    os.indexOf( "i486"		) !== -1 ||
+			    os.indexOf( "i386"		) !== -1 ||
+			    av.indexOf( "x86"		) !== -1 ||
+			    av.indexOf( "i686"		) !== -1 ||
+			    av.indexOf( "i586"		) !== -1 ||
+			    av.indexOf( "i486"		) !== -1 ||
+			    av.indexOf( "i386"		) !== -1 ) {	UI_PLATFORM	= "Linux 32-bit (x86) (RPM)";
+									PLATFORM	= "lnx32r";
+									EXTENSION	= ".tar.gz";
+			     if( ua.indexOf( "debian"	 ) !== -1 ||
+				 ua.indexOf( "iceweasel" ) !== -1 ||
+				 ua.indexOf( "ubuntu"	 ) !== -1 ) {	UI_PLATFORM	= "Linux Debian 32-bit (x86) (DEB)";
+									PLATFORM	= "lnx32d";
+									EXTENSION	= ".tar.gz";
+			     }
+			}
+
+			// 64-bit: DEB or RPM?
+			if( os.indexOf( "_64"		) !== -1 ||
+			    os.indexOf( "-64"		) !== -1 ||
+			    os.indexOf( "x64"		) !== -1 ||
+			    os.indexOf( "amd64"		) !== -1 ||
+			    av.indexOf( "_64"		) !== -1 ||
+			    av.indexOf( "-64"		) !== -1 ||
+			    av.indexOf( "x64"		) !== -1 ||
+			    av.indexOf( "amd64"		) !== -1 ) {	UI_PLATFORM	= "Linux 64-bit (x86-64) (RPM)";
+									PLATFORM	= "lnx64r";
+									EXTENSION	= ".tar.gz";
+			     if( ua.indexOf( "debian"	 ) !== -1 ||
+				 ua.indexOf( "iceweasel" ) !== -1 ||
+				 ua.indexOf( "ubuntu"	 ) !== -1 ) {	UI_PLATFORM	= "Linux Debian 64-bit (x86-64) (DEB)";
+									PLATFORM	= "lnx64d";
+									EXTENSION	= ".tar.gz";
+			     }
+			}
 		}
-	  } 
+
+		// Mac OS X?
+		if( os.indexOf( "mac"			) !== -1 ) {	UI_PLATFORM	= "OS X 64-bit (x86-64) (DMG)";
+									PLATFORM	= "mac64";
+									EXTENSION	= ".dmg";
+			// OS X: 10.6 or older?
+			if( ua.indexOf( "10.6"		) !== -1 ||
+			    ua.indexOf( "10_6"		) !== -1 ||
+			    ua.indexOf( "10.5"		) !== -1 ||
+			    ua.indexOf( "10_5"		) !== -1 ||
+			    ua.indexOf( "10.4"		) !== -1 ||
+			    ua.indexOf( "10_4"		) !== -1 ||
+			    ua.indexOf( "10.3"		) !== -1 ||
+			    ua.indexOf( "10_3"		) !== -1 ) {	UI_PLATFORM	= "Mac OS X (<= 10.6)";
+									PLATFORM	= "mac32";
+									OLD_PLATFORM	= true;
+			}
+		} 
 	} 
 
-	// If nothing was recognized until now, set $UI_PLATFORM to show it to the user
-	if ( UI_PLATFORM == "" ) {
-		UI_PLATFORM = "unknown platform/OS";
-		ERROR	    = true;
+	// If nothing was recognized until now, set $UI_PLATFORM_NO_SUP to show it to the user.
+	if( UI_PLATFORM === "" ) {
+		UI_PLATFORM_NO_SUP = "unknown operating system / platform";
+		ERROR		   = true;
 	}
 
-	return;
+	return PLATFORM;
 }
 
 /*
- * Get file size for download file
- * Depends on array-list
+ * Get positions of platform in release matrix
+ * Depends on platform and array-list of "release_matrix.js"
  */
-function getFilesize() {
-	// Depending on $URL_PLATFORM assign the platform position of the release matrix
-	switch ( URL_PLATFORM ) {
-		case "Linux_x86-64_install-deb":
-			RELEASE_MATRIX_PLATFORM_POS = 1;
+function getReleaseMatrixPos() {
+	// Depending on $PLATFORM, assign the platform position from the release matrix.
+	switch( PLATFORM ) {
+		case "lnx64d":
+			RELEASE_PLATFORM_POS_FULL = 1;
+			RELEASE_PLATFORM_POS_LP	  = 2;
+			PLATFORM_FULL		  = "Linux_x86-64_install-deb";
+			PLATFORM_LP		  = "Linux_x86-64_langpack-deb";
 			break;
-		case "Linux_x86-64_install-rpm":
-			RELEASE_MATRIX_PLATFORM_POS = 3;
+		case "lnx64r":
+			RELEASE_PLATFORM_POS_FULL = 3;
+			RELEASE_PLATFORM_POS_LP	  = 4;
+			PLATFORM_FULL		  = "Linux_x86-64_install-rpm";
+			PLATFORM_LP		  = "Linux_x86-64_langpack-rpm";
 			break;
-		case "Linux_x86_install-deb":
-			RELEASE_MATRIX_PLATFORM_POS = 5;
+		case "lnx32d":
+			RELEASE_PLATFORM_POS_FULL = 5;
+			RELEASE_PLATFORM_POS_LP	  = 6;
+			PLATFORM_FULL		  = "Linux_x86_install-deb";
+			PLATFORM_LP		  = "Linux_x86_langpack-deb";
 			break;
-		case "Linux_x86_install-rpm":
-			RELEASE_MATRIX_PLATFORM_POS = 7;
+		case "lnx32r":
+			RELEASE_PLATFORM_POS_FULL = 7;
+			RELEASE_PLATFORM_POS_LP	  = 8;
+			PLATFORM_FULL		  = "Linux_x86_install-rpm";
+			PLATFORM_LP		  = "Linux_x86_langpack-rpm";
 			break;
-		case "MacOS_x86-64_install":
-			RELEASE_MATRIX_PLATFORM_POS = 9;
+		case "mac64":
+			RELEASE_PLATFORM_POS_FULL = 9;
+			RELEASE_PLATFORM_POS_LP	  = 10;
+			PLATFORM_FULL		  = "MacOS_x86-64_install";
+			PLATFORM_LP		  = "MacOS_x86-64_langpack";
 			break;
-		case "MacOS_x86_install":
-			RELEASE_MATRIX_PLATFORM_POS = 9;
+		case "mac32":
+			RELEASE_PLATFORM_POS_FULL = 9;
+			RELEASE_PLATFORM_POS_LP	  = 10;
+			PLATFORM_FULL		  = "MacOS_x86_install";
+			PLATFORM_LP		  = "MacOS_x86_langpack";
 			break;
-		case "Win_x86_install":
-			RELEASE_MATRIX_PLATFORM_POS = 11;
+		case "win32":
+			RELEASE_PLATFORM_POS_FULL = 11;
+			RELEASE_PLATFORM_POS_LP	  = 12;
+			PLATFORM_FULL		  = "Win_x86_install";
+			PLATFORM_LP		  = "Win_x86_langpack";
 			break;
 		default:
-			RELEASE_MATRIX_PLATFORM_POS = -1;
+			RELEASE_PLATFORM_POS_FULL = -1;
+			RELEASE_PLATFORM_POS_LP	  = -1;
+			ERROR			  = true;
 	}
 
-	// If a platform was found and no error occurred, assign the array data and filesize from the release matrix
-	if ( RELEASE_MATRIX_PLATFORM_POS > -1 && !ERROR ) {
-		// Assign all values from the release matrix of language and platform
-		RELEASE_MATRIX_PLATFORM	= release_matrix_410[ LANG_ISO ][ RELEASE_MATRIX_PLATFORM_POS ];
-		// Assign the file size (column 2) from the release matrix of language and platform
-		FILESIZE		= release_matrix_410[ LANG_ISO ][ RELEASE_MATRIX_PLATFORM_POS ][ 2 ];
-	} else {
-		ERROR	 = true;
-		FILESIZE = 0;
+	return RELEASE_PLATFORM_POS_FULL;
+}
+
+/*
+ * Get file name for download file
+ * Depends on version and array-list of "release_matrix.js"
+ */
+function getFileData( ver ) {
+	// Depending on $ver, a different release matrix has to be used to assemble the download filenames.
+	switch( ver ) {
+		case "4.1.0":
+			// Assign all values from the release matrix of language and platform.
+			RELEASE_PLATFORM = release_410[ LANG_ISO ][ RELEASE_PLATFORM_POS_FULL ];
+
+			// Assemble filename: Product name + version + platform as URL part + language ISO + file extension.
+			FILENAME_FULL	 = "Apache_OpenOffice_" + ver + "_" + PLATFORM_FULL + "_" + LANG_ISO + EXTENSION;
+			FILENAME_LP	 = "Apache_OpenOffice_" + ver + "_" + PLATFORM_LP   + "_" + LANG_ISO + EXTENSION;
+
+			// Assign the file size (column 2) from the release matrix of language and platform.
+			FILESIZE_FULL	 = release_410[ LANG_ISO ][ RELEASE_PLATFORM_POS_FULL ][ 1 ];
+			FILESIZE_LP	 = release_410[ LANG_ISO ][ RELEASE_PLATFORM_POS_LP   ][ 1 ];
+
+			// Assign all values from the release data.
+			REL_TEXT	 = "Milestone "     + release_410[ "src" ][ 1 ][ 0 ]
+					 + " | Build ID "   + release_410[ "src" ][ 1 ][ 1 ]
+					 + " | SVN "        + release_410[ "src" ][ 1 ][ 2 ]
+					 + " | Released "   + release_410[ "src" ][ 1 ][ 3 ];
+			break;
+		case "4.0.1":
+			// Assign all values from the release matrix of language and platform.
+			RELEASE_PLATFORM = release_401[ LANG_ISO ][ RELEASE_PLATFORM_POS_FULL ];
+
+			// Assemble filename: Product name + version + platform as URL part + language ISO + file extension.
+			FILENAME_FULL	 = "Apache_OpenOffice_" + ver + "_" + PLATFORM_FULL + "_" + LANG_ISO + EXTENSION;
+			FILENAME_LP	 = "Apache_OpenOffice_" + ver + "_" + PLATFORM_LP   + "_" + LANG_ISO + EXTENSION;
+
+			// Assign the file size (column 2) from the release matrix of language and platform.
+			FILESIZE_FULL	 = release_401[ LANG_ISO ][ RELEASE_PLATFORM_POS_FULL ][ 1 ];
+			FILESIZE_LP	 = release_401[ LANG_ISO ][ RELEASE_PLATFORM_POS_LP   ][ 1 ];
+
+			// Assign all values from the release data.
+			REL_TEXT	 = "Milestone "     + release_401[ "src" ][ 1 ][ 0 ]
+					 + " | Build ID "   + release_401[ "src" ][ 1 ][ 1 ]
+					 + " | SVN "        + release_401[ "src" ][ 1 ][ 2 ]
+					 + " | Released "   + release_401[ "src" ][ 1 ][ 3 ];
+			break;
+		case "4.0.0":
+			// Assign all values from the release matrix of language and platform.
+			RELEASE_PLATFORM = release_400[ LANG_ISO ][ RELEASE_PLATFORM_POS_FULL ];
+
+			// Assemble filename: Product name + version + platform as URL part + language ISO + file extension.
+			FILENAME_FULL	 = "Apache_OpenOffice_" + ver + "_" + PLATFORM_FULL + "_" + LANG_ISO + EXTENSION;
+			FILENAME_LP	 = "Apache_OpenOffice_" + ver + "_" + PLATFORM_LP   + "_" + LANG_ISO + EXTENSION;
+
+			// Assign the file size (column 2) from the release matrix of language and platform.
+			FILESIZE_FULL	 = release_400[ LANG_ISO ][ RELEASE_PLATFORM_POS_FULL ][ 1 ];
+			FILESIZE_LP	 = release_400[ LANG_ISO ][ RELEASE_PLATFORM_POS_LP   ][ 1 ];
+
+			// Assign all values from the release data.
+			REL_TEXT	 = "Milestone "     + release_400[ "src" ][ 1 ][ 0 ]
+					 + " | Build ID "   + release_400[ "src" ][ 1 ][ 1 ]
+					 + " | SVN "        + release_400[ "src" ][ 1 ][ 2 ]
+					 + " | Released "   + release_400[ "src" ][ 1 ][ 3 ];
+			break;
+		default:
+			FILENAME_FULL	 = "";
+			FILENAME_LP	 = "";
+			FILESIZE_FULL	 = 0;
+			FILESIZE_LP	 = 0;
+			REL_TEXT	 = "Milestone ? | Build ID ? | SVN ? | Released ?";
+			ERROR		 = true;
 	}
 
-	return FILESIZE;
+	return FILENAME_FULL;
 }
 
 /*
@@ -575,3 +1102,53 @@ function openItem( itemid, uri ) {
 	document.location = uri;
 }
 
+/*
+ * Output values of variables for debugging
+ */
+function alertDbg( location ) {
+	if( location === "" )
+		location = "No location named!";
+
+	alert( ""
+	+ location												+ "\n"
+	+ "NL_LANG: "				+ "\t\t\t\t\t\t\t"	+ NL_LANG				+ "\n"
+	+ "LANG_ISO: "				+ "\t\t\t\t\t\t"	+ LANG_ISO				+ "\n"
+	+ "LANG_SEL: "				+ "\t\t\t\t\t\t"	+ LANG_SEL				+ "\n"
+	+ "UI_PLATFORM: "			+ "\t\t\t\t\t\t"	+ UI_PLATFORM				+ "\n"
+	+ "UI_PLATFORM_NO_SUP: "		+ "\t\t\t\t"		+ UI_PLATFORM_NO_SUP			+ "\n"
+	+ "PLATFORM: "				+ "\t\t\t\t\t\t"	+ PLATFORM				+ "\n"
+	+ "PLATFORM_FULL: "			+ "\t\t\t\t\t"		+ PLATFORM_FULL				+ "\n"
+	+ "PLATFORM_LP: "			+ "\t\t\t\t\t\t"	+ PLATFORM_LP				+ "\n"
+	+ "PLATFORM_SEL: "			+ "\t\t\t\t\t\t"	+ PLATFORM_SEL				+ "\n"
+	+ "OLD_PLATFORM: "			+ "\t\t\t\t\t"		+ OLD_PLATFORM				+ "\n"
+	+ "RELEASE_PLATFORM_POS_FULL: "		+ "\t\t\t"		+ RELEASE_PLATFORM_POS_FULL		+ "\n"
+	+ "RELEASE_PLATFORM_POS_LP: "		+ "\t\t\t"		+ RELEASE_PLATFORM_POS_LP		+ "\n"
+	+ "RELEASE_PLATFORM: "			+ "\t\t\t\t\t"		+ RELEASE_PLATFORM			+ "\n"
+	+ "RELEASE_LANG: "			+ "\t\t\t\t\t\t"	+ RELEASE_LANG				+ "\n"
+	+ "REL_TEXT: "				+ "\t\t\t\t\t\t\t"	+ REL_TEXT				+ "\n"
+	+ "VERSION_SEL: "			+ "\t\t\t\t\t\t"	+ VERSION_SEL				+ "\n"
+	+ "FILENAME_FULL: "			+ "\t\t\t\t\t"		+ FILENAME_FULL				+ "\n"
+	+ "FILENAME_LP: "			+ "\t\t\t\t\t\t"	+ FILENAME_LP				+ "\n"
+	+ "FILESIZE_FULL: "			+ "\t\t\t\t\t\t"	+ FILESIZE_FULL				+ "\n"
+	+ "FILESIZE_LP: "			+ "\t\t\t\t\t\t"	+ FILESIZE_LP				+ "\n"
+	+ "EXTENSION: "				+ "\t\t\t\t\t\t"	+ EXTENSION				+ "\n"
+	+ "SOURCEFORGE_BASE_URL: "		+ "\t\t\t"		+ SOURCEFORGE_BASE_URL			+ "\n"
+	+ "ASF_BASE_URL: "			+ "\t\t\t\t\t"		+ ASF_BASE_URL				+ "\n"
+	+ "ASF_ARC_BASE_URL: "			+ "\t\t\t\t\t"		+ ASF_ARC_BASE_URL			+ "\n"
+	+ "LINK_FULL: "				+ "\t\t\t\t\t\t"	+ LINK_FULL				+ "\n"
+	+ "LINK_LP: "				+ "\t\t\t\t\t\t\t"	+ LINK_LP				+ "\n"
+	+ "LINK_CHK_ASC_FULL: "			+ "\t\t\t\t\t"		+ LINK_CHK_ASC_FULL			+ "\n"
+	+ "LINK_CHK_MD5_FULL: "			+ "\t\t\t\t\t"		+ LINK_CHK_MD5_FULL			+ "\n"
+	+ "LINK_CHK_SHA256_FULL: "		+ "\t\t\t\t"		+ LINK_CHK_SHA256_FULL			+ "\n"
+	+ "LINK_CHK_ASC_LP: "			+ "\t\t\t\t\t"		+ LINK_CHK_ASC_LP			+ "\n"
+	+ "LINK_CHK_MD5_LP: "			+ "\t\t\t\t\t"		+ LINK_CHK_MD5_LP			+ "\n"
+	+ "LINK_CHK_SHA256_LP: "		+ "\t\t\t\t"		+ LINK_CHK_SHA256_LP			+ "\n"
+	+ "SF: "				+ "\t\t\t\t\t\t\t\t"	+ SF					+ "\n"
+	+ "OTHER: "				+ "\t\t\t\t\t\t\t"	+ OTHER					+ "\n"
+	+ "ARCHIVE: "				+ "\t\t\t\t\t\t\t"	+ ARCHIVE				+ "\n"
+	+ "ERROR: "				+ "\t\t\t\t\t\t\t"	+ ERROR					+ "\n"
+	+ "" );
+
+	return;
+}
+

Modified: websites/staging/ooo-site/trunk/content/download/exceptions.css
==============================================================================
--- websites/staging/ooo-site/trunk/content/download/exceptions.css (original)
+++ websites/staging/ooo-site/trunk/content/download/exceptions.css Fri Jun  6 15:28:40 2014
@@ -1,19 +1,19 @@
 /*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 img { border: 0px; }
 h1 { padding-left: 0.5em; }
@@ -24,47 +24,51 @@ h1 { padding-left: 0.5em; }
 #navcol { display: none; }
 .warning { border: solid 3px #F00; background: #FDD; padding: 1em; }
 
+.btn_analyze { background-color: lightgrey; border-radius: 5px; padding: 0px 15px 0px 15px; font-size: 1.2em; cursor: pointer; }
+.tbl_analyze table, th, td { border: 1px solid black; }
+
 #content h2 { margin-top: 0; }
 
-.optionset { margin: 0 0 0 -2px; float: left; width: 77%; max-width: 1200px; }
+.overall_optionset { min-width: 880px; max-width: 1400px; overflow: auto; }
+.optionset { margin: 0 0 0 0; float: left; width: 77%; min-width: 680px; max-width: 1200px; }
 .optionset a { margin: 0; padding: .1em 0 .25em 3%; color: #333; }
 .optionset p { margin: 0; padding: .1em 0 .25em 3%; color: #333; }
 .optionset p a { margin: 0; padding: 0; color: #333; }
 .optionset a p { margin: 0; padding: 0; color: #333; }
 #bodycol .optionset p a:hover, #bodycol .optionset .button:hover p a { color: #000; }
 .optionset .button { border-radius: 15px; margin-top: 10px; }
-.optionset .button h2 { margin: 0 0 0 -1px; padding: 0; cursor: pointer; border: none; }
+.optionset .button h2 { margin: 0 0 0 -1px; padding: 0; border: none; cursor: pointer; }
 .optionset .button h2 a { display: block; padding: 25px 25% 0 3%; font-weight: bold; text-decoration: none; cursor: pointer; }
 .optionset .button a h2 { display: block; padding: 0px 0% 0 3%; font-weight: bold; text-decoration: none; cursor: pointer; }
-.optionset .button h3 { margin: 0 0 0 -1px; padding: 0; cursor: pointer; border: none; }
-.optionset .button h3 a { display: block; padding: 5px 25% 0 3%; font-weight: bold; text-decoration: none; cursor: pointer; }
+.optionset .button h3 { margin: 0 0 0 -1px; padding: 0; border: none; cursor: pointer; }
+.optionset .button h3 a { display: inline; padding: 5px 0 0 3%; font-weight: bold; text-decoration: none; cursor: pointer; }
+.optionset .button h3 p a { display: inline; padding: 5px 0 0 3%; font-weight: bold; text-decoration: none; cursor: pointer; }
 .optionset .button p { padding: 0; font-size: .9em; padding-bottom: 25px; cursor: pointer; }
 .optionset .button p a { display: block; padding: .1em 25% .25em 3%; text-decoration: none; cursor: pointer; }
 .optionset .button a p { display: block; padding: .1em 25% .25em 3%; text-decoration: none; cursor: pointer; }
 .optionset .first { margin-top: 0; }
 .optionset p.promotional { margin-top: 25px; }
 
-.green { background: url(cachedimages/button-green.png) #D1EAA0 right top no-repeat; }
-.green:hover { background: url(cachedimages/button-green.png) #C3E480 right -200px no-repeat; }
-.green h2 a { color: #718D36; }
-.green:hover h2 a, #bodycol .green h2 a:hover { color: #546828; }
-.sub-green { background: #E9FEBE; border-top: 1px solid #C3E480; border-bottom: 1px solid #C3E480; border-radius: 15px; font-size: .8em; }
-.sub-green p { padding: .1em 3%; width: 72%; }
-
-.grey { background: #C0C0C0 right top no-repeat; cursor: default; }
-.grey:hover { background: #A0A0A0 right -200px no-repeat; cursor: default; }
-.grey h2 a { color: #404040; cursor: default; }
-.grey h3 { color: #404040; cursor: default; }
-.grey h3 a { color: #404040; cursor: default; }
-.grey p { color: #404040; cursor: default; }
-.grey p a { color: #404040; cursor: default; }
-.grey:hover h2 a, #bodycol .grey h2 a:hover { color: #202020; cursor: default; }
-.grey:hover h3 a, #bodycol .grey h3 a:hover { color: #202020; cursor: default; }
-.grey:hover p a, #bodycol .grey p a:hover { color: #202020; cursor: default; }
-.sub-grey { background: #E0E0E0; border-top: 1px solid #E0E0E0; border-bottom: 1px solid #E0E0E0; border-radius: 15px; font-size: .8em; cursor: default; }
-.sub-grey p { padding: .1em 3%; width: 72%; cursor: default; }
+.green-sel { background: url(cachedimages/button-green.png) #D1EAA0 right top no-repeat; }
+.green-sel:hover { background: url(cachedimages/button-green.png) #C3E480 right -200px no-repeat; }
+.green-sel h2 a { color: #718D36; cursor: default; }
+.green-sel h3 a { color: #718D36; }
+.green-sel p { cursor: default; }
+.green-sel p a { cursor: default; }
+.green-sel:hover h2 a, #bodycol .green-sel h2 a:hover { color: #546828; cursor: default; }
+.green-sel:hover h3 a, #bodycol .green-sel h3 a:hover { color: #546828; }
+.green-sel:hover p, #bodycol .green-sel p:hover { cursor: default; }
+.green-sel:hover p a, #bodycol .green-sel p a:hover { cursor: default; }
+.green-sel form { padding: 0px 0px 0px 3%; margin: 0 0 20px 0; }
+.green-sel .sel-os { background: transparent; border: 2px solid #718D36; height: 27px; width: 200px; padding: 2px; }
+.green-sel .sel-lang { background: transparent; border: 2px solid #718D36; height: 27px; width: 360px; padding: 2px; }
+.green-sel .sel-ver { background: transparent; border: 2px solid #718D36; height: 27px; width: 80px; padding: 2px; }
+.green-sel .btn_dl h3 a { background: #E9FEBE; padding: 5px 5px 5px 5px; border: 3px solid #546828; border-radius: 15px; color: #546828; }
+.green-sel .btn_dl h3 a:hover { background: #546828; padding: 5px 5px 5px 5px; border: 3px solid #E9FEBE; border-radius: 15px; color: #E9FEBE; }
+.sub-green-sel { height: 83px; background: #E9FEBE; border: 1px solid #C3E480; border-radius: 15px; font-size: .8em; padding: 5px 5px 5px 0px; }
+.sub-green-sel p { padding: .1em 3%; width: 100%; }
+.sub-green-sel_error { height: 83px; background: #FECBCB; border: 1px solid #C00000; border-radius: 15px; font-size: .8em; padding: 5px 5px 5px 0px; }
 
-/* exchanged the normal picture with one that includes the extension repository graphic */
 .blue { background: url(cachedimages/button-blue-ext.png) #D8E5F6 right top no-repeat; }
 .blue:hover { background: url(cachedimages/button-blue-ext.png) #C3D9F1 right -200px no-repeat; }
 .blue h2 a { color: #2D72CE; }
@@ -73,7 +77,7 @@ h1 { padding-left: 0.5em; }
 .blue:hover h2 a, #bodycol .blue h2 a:hover { color: #21549A; }
 .blue:hover a h2, #bodycol .blue a h2:hover { color: #21549A; }
 .sub-blue { background: #E1E1FF; border-top: 1px solid #D1D1FF; border-bottom: 1px solid #D1D1FF; border-radius: 15px; font-size: .8em; }
-.sub-blue p { padding: .1em 3%; width: 72%; }
+.sub-blue p { padding: .1em 3%; width: 75%; }
 
 .lightblue { background: url(cachedimages/button-lightblue.png) #D8E5F6 right top no-repeat; }
 .lightblue:hover { background: url(cachedimages/button-lightblue.png) #C3D9F1 right -200px no-repeat; }
@@ -82,7 +86,7 @@ h1 { padding-left: 0.5em; }
 .lightblue:hover h2 a, #bodycol .lightblue h2 a:hover { color: #21549A; }
 .lightblue:hover a h2, #bodycol .lightblue a h2:hover { color: #21549A; }
 .sub-lightblue { background: #E1E1FF; border-top: 1px solid #D1D1FF; border-bottom: 1px solid #D1D1FF; border-radius: 15px; font-size: .8em; }
-.sub-lightblue p { padding: .1em 3%; width: 72%; }
+.sub-lightblue p { padding: .1em 3%; width: 75%; }
 
 .yellow { background: url(cachedimages/button-yellow.png) #FFF379 right top no-repeat; }
 .yellow:hover { background: url(cachedimages/button-yellow.png) #FFF24F right -200px no-repeat; }
@@ -91,57 +95,21 @@ h1 { padding-left: 0.5em; }
 .yellow:hover h2 a, #bodycol .yellow h2 a:hover { color: #C80; }
 .yellow:hover a h2, #bodycol .yellow a h2:hover { color: #C80; }
 .sub-yellow { background: #FFFEAF; border-top: 1px solid #FBD34E; border-bottom: 1px solid #FBD34E; border-radius: 15px; font-size: .8em; }
-.sub-yellow p { padding: .1em 3%; width: 72%; }
-
-.yellow_wo_icon { background: #FFF379 right top no-repeat; }
-.yellow_wo_icon:hover { background: #FFF24F right -200px no-repeat; }
-/*.yellow_wo_icon { background: url(cachedimages/button-yellow.png) #FFF379 right top no-repeat; } */
-/*.yellow_wo_icon:hover { background: url(cachedimages/button-yellow.png) #FFF24F right -200px no-repeat; } */
-.yellow_wo_icon h2 a { color: #E09C09; }
-.yellow_wo_icon a h2 { color: #E09C09; }
-.yellow_wo_icon:hover h2 a, #bodycol .yellow_wo_icon h2 a:hover { color: #C80; }
-.yellow_wo_icon:hover a h2, #bodycol .yellow_wo_icon a h2:hover { color: #C80; }
-.sub-yellow_wo_icon { background: #FFFEAF; border-top: 1px solid #FBD34E; border-bottom: 1px solid #FBD34E; border-radius: 15px; font-size: .8em; }
-.sub-yellow_wo_icon p { padding: .1em 3%; width: 72%; }
-
-.yellow_gradient { 
-background: url(cachedimages/button-yellow-top.png) #FFF379 right top no-repeat; /* Old browsers */
-background: url(cachedimages/button-yellow-top.png) right top no-repeat -moz-linear-gradient(top, #fceabb 0%, #f8b500 0%, #fccd4d 0%, #fcffb6 0%, #fcffb6 0%, #fbe977 100%); /* FF3.6+ */
-background: url(cachedimages/button-yellow-top.png) right top no-repeat -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceabb), color-stop(0%, #f8b500), color-stop(0%, #fccd4d), color-stop(0%, #fcffb6), color-stop(0%, #fcffb6), color-stop(100%, #fbe977)); /* Chrome,Safari4+ */
-background: url(cachedimages/button-yellow-top.png) right top no-repeat -webkit-linear-gradient(top, #fceabb 0%, #f8b500 0%, #fccd4d 0%, #fcffb6 0%, #fcffb6 0%, # fbe977 100%); /* Chrome10+,Safari5.1+ */
-background: url(cachedimages/button-yellow-top.png) right top no-repeat -o-linear-gradient(top, #fceabb 0%, #f8b500 0%, #fccd4d 0%, #fcffb6 0%, #fcffb6 0%, #fbe977 100%); /* Opera 11.10+ */
-background: url(cachedimages/button-yellow-top.png) right top no-repeat -ms-linear-gradient(top, #fceabb 0%, #f8b500 0%, #fccd4d 0%, #fcffb6 0%, #fcffb6 0%, #fbe977 100%); /* IE10+ */
-background: url(cachedimages/button-yellow-top.png) right top no-repeat linear-gradient(to bottom, #fceabb 0%, #f8b500 0%, #fccd4d 0%, #fcffb6 0%, #fcffb6 0%, #fbe977 100%); /* W3C */
-background: url(cachedimages/button-yellow-top.png) right top no-repeat filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fceabb', endColorstr='#fbe977', GradientType=0 ); /* IE6-9 */ }
-.yellow_gradient:hover { 
-background: url(cachedimages/button-yellow-bottom.png) #FFF24F right top no-repeat; /* Old browsers */
-background: url(cachedimages/button-yellow-bottom.png) right top no-repeat, -moz-linear-gradient(top, #fceabb 0%, #f8b500 0%, #fccd4d 0%, #fcffb6 0%, #fbffa4 0%, #fac81d 100%); /* FF3.6+ */
-background: url(cachedimages/button-yellow-bottom.png) right top no-repeat, -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceabb), color-stop(0%, #f8b500), color-stop(0%, #fccd4d), color-stop(0%, #fcffb6), color-stop(0%, #fbffa4), color-stop(100%, #fac81d)); /* Chrome,Safari4+ */
-background: url(cachedimages/button-yellow-bottom.png) right top no-repeat, -webkit-linear-gradient(top, #fceabb 0%, #f8b500 0%, #fccd4d 0%, #fcffb6 0%, #fbffa4 0%, #fac81d 100%); /* Chrome10+,Safari5.1+ */
-background: url(cachedimages/button-yellow-bottom.png) right top no-repeat, -o-linear-gradient(top, #fceabb 0%, #f8b500 0%, #fccd4d 0%, #fcffb6 0%, #fbffa4 0%, #fac81d 100%); /* Opera 11.10+ */
-background: url(cachedimages/button-yellow-bottom.png) right top no-repeat, -ms-linear-gradient(top, #fceabb 0%, #f8b500 0%, #fccd4d 0%, #fcffb6 0%, #fbffa4 0%, #fac81d 100%); /* IE10+ */
-background: url(cachedimages/button-yellow-bottom.png) right top no-repeat, linear-gradient(to bottom, #fceabb 0%, #f8b500 0%, #fccd4d 0%, #fcffb6 0%, #fbffa4 0%, #fac81d 100%); /* W3C */
-background: url(cachedimages/button-yellow-bottom.png) right top no-repeat, filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fceabb', endColorstr='#fac81d', GradientType=0 ); /* IE6-9 */ }
-.yellow_gradient h2 a { color: #E09C09; }
-.yellow_gradient a h2 { color: #E09C09; }
-.yellow_gradient:hover h2 a, #bodycol .yellow_gradient h2 a:hover { color: #C80; }
-.yellow_gradient:hover a h2, #bodycol .yellow_gradient a h2:hover { color: #C80; }
-.sub-yellow_gradient { background: #FFFEAF; border-top: 1px solid #FBD34E; border-bottom: 1px solid #FBD34E; border-radius: 15px; font-size: .8em; }
-.sub-yellow_gradient p { padding: .1em 3%; width: 72%; }
+.sub-yellow p { padding: .1em 3%; width: 75%; }
 
 .orange { background: url(cachedimages/button-orange.png) #FFD9A7 right top no-repeat; }
 .orange:hover { background: url(cachedimages/button-orange.png) #FFBE67 right -200px no-repeat; }
 .orange h2 a { color: #D36812; }
 .orange:hover h2 a, #bodycol .orange h2 a:hover { color: #C94800; }
 .sub-orange { background: #FFE2B5; border-top: 1px solid #FFB15E; border-bottom: 1px solid #FFB15E; border-radius: 15px; font-size: .8em; }
-.sub-orange p { padding: .1em 3%; width: 72%; }
+.sub-orange p { padding: .1em 3%; width: 75%; }
 
 .red { background: #FFD9A7 right top no-repeat; cursor: default; }
 .red h2 a { color: #D36812; cursor: default; }
 .sub-red { background: #FFE2B5; border-top: 1px solid #FFB15E; border-bottom: 1px solid #FFB15E; border-radius: 15px; font-size: .8em; cursor: default; }
-.sub-red p { padding: .1em 3%; width: 72%; cursor: default; }
+.sub-red p { padding: .1em 3%; width: 75%; cursor: default; }
 
-.additionalinformation { background: none; float: right; width: 21%; clear: none; }
+.additionalinformation { background: none; float: right; width: 21%; white-space: nowrap; clear: none; }
 .additionalinformation h2 { border-bottom: 1px solid #CCC; margin-bottom: 5px; margin-top: 0px; }
 .additionalinformation h3 { margin-left: 5px; margin-bottom: 5px; }
 .additionalinformation li { margin-left: 5px; font-size: 12px; }



Mime
View raw message