﻿/*-------------------------------------------------------------------
--- Liste der mölichen Platformen (sortiert nach nach Auftreten in
---	der Auswahlbox) Platform list
---		<key>,<Bezeichnung>
-------------------------------------------------------------------*/

var platforms =	[
	['win', 'Windows'],
	['lin_x86', 'Linux x86 (RPM)'],
	['lin_x86_deb', 'Linux x86 (DEB)']
	//['mac',	 'MacOS X 10.3.x'],
	//['prooobox', 'PrOOo-Box'],
	//['freebsd_6', 'FreeBSD 6.0 x86'],
	//['freebsd_5', 'FreeBSD 5.4 x86'],
	//['freebsd_5.3x86', 'FreeBSD 5.3 x86'],
	//['freebsd_4.10x86', 'FreeBSD 4.10 x86'],

	//['sol_x86', 'Solaris x86'],
	//['sol_sparc', 'Solaris Sparc'],
	//['lin_ppc', 'Linux PowerPC'],
	//['lin_sparc', 'Linux Sparc']
];

/*-------------------------------------------------------------------
--- Liste der mölichen Versionen nach Plattform 
---	(sortiert nach nach Auftreten in der Auswahlbox)  The location on the server.
---		<platform_key>, <key>, <Bezeichnung>, <pfad auf server>  
-------------------------------------------------------------------*/
var versions =	[
	['win', '2.0',	'2.0.2','localized/en-GB/2.0.2/OOo_2.0_windows_install_en-GB.exe'],
	//['win', '1.1.5',	'1.1.5','localized/de/1.1.5/OOo_1.1.5_Win32Intel_install_de.zip'],
	//['win', '1.1.0',	'1.1.0','localized/de/1.1.0/OOo_1.1.0_Win32Intel_install_de.zip'],
	//['win', '1.0.3.1',	'1.0.3.1','localized/de/1.0.3/OOo_1.0.3.1_Win32Intel_install_de.zip'],
	//['win', 'rc',	'(RC)','contrib/rc/'],
	//['win', 'dev',	'(Snapshot)',	'developer/'],

	['lin_x86', '2.0', '2.0.2','localized/en-GB/2.0.2/OOo_OOB680_m5_LinuxIntel_install_en-GB_rpm.tar.gz'],
	['lin_x86_deb', '2.0', '2.0.2','localized/en-GB/2.0.2/OOo_OOB680_m5_LinuxIntel_install_en-GB_deb.tar.gz']
	
	
	//['lin_x86', '1.1.5',	'1.1.5','localized/de/1.1.5/OOo_1.1.5_LinuxIntel_install_de.tar.gz'],
	//['lin_x86', '1.1.0',	'1.1.0','localized/de/1.1.0/OOo_1.1.0_LinuxIntel_install_de.tar.gz'],
	//['lin_x86', '1.0.3.1',	'1.0.3.1','localized/de/1.0.3/OOo_1.0.3.1_LinuxIntel_install_de.tar.gz'],
	//['lin_x86', 'rc', '(RC)', 'contrib/rc/'],
	//['lin_x86', 'dev', '(Snapshot)', 'developer/'],


    //     ['mac','2.0', '2.0.1', 'localized/de/2.0.1/OOo_2.0.1_MacOSX_install_de.dmg'],
    //     ['mac','1.1.4', '1.1.4', 'localized/de/1.1.4/OOo_1.1.4_MacOSX_Panther_de.dmg'],
	//['mac', '1.1.4_secpatch',	'1.1.4 SecPatch','stable/1.1.4secpatch/libsot645mxp.dylib'],
	//['mac','1.0.3', '1.0.3', 'contrib/MacOSX/ooo103darwingm.dmg.gz'],
	//['mac','1.0.3_lang', '1.0.3 (Sprachpaket)', 'contrib/MacOSX/ooo103l18ngm.dmg.gz'],

	//['prooobox', '20060126', '2.0.1-1 (20060126)',	'contrib/iso/de/ooo_2.0.1_20060126_win_lin_mac_de.iso'],

	//['lin_ppc','1.0.0',	'1.0.0', 'localized/de/1.0.0/OOo_1.0.0_LinuxPPC_install_de.tar.gz'],


	//['sol_x86', '2.0', '2.0.1','localized/de/2.0.1/OOo_2.0.1_Solarisx86_install_de.tar.gz'],
	//['sol_x86', '1.1.5', '1.1.5','localized/de/1.1.5/OOo_1.1.5_Solarisx86_install_de.tar.gz'],
	//['sol_x86', '1.0.1', '1.0.1','localized/de/1.0.1/OOo_1.0.1_SolarisIntel_install_de.tar.gz'],
	//['sol_x86', 'rc', '(RC)','contrib/rc/'],
	//['sol_x86', 'dev',	'(Snapshot)',	'developer/'],

	//['sol_sparc', '2.0', '2.0','localized/de/2.0/OOo_2.0.1_SolarisSparc_install_de.tar.gz'],
    //['sol_sparc', '20rc', '2.0 RC5','contrib/rc/2.0.1rc5/OOo_2.0.1rc5_051215_SolarisSparc_install.tar.gz'],
	//['sol_sparc', '1.1.5', '1.1.5RC','contrib/rc/1.1.5rc4/OOo_1.1.5rc_050903_SolarisSparc_install_de.tar.gz'],
	//['sol_sparc', '1.0.1', '1.0.1','localized/de/1.0.1/OOo_1.0.1_SolarisSparc_install_de.tar.gz'],
	//['sol_sparc', 'rc',	'(RC)','contrib/rc/'],
	//['sol_sparc', 'dev',	'(Snapshot)',	'developer/'],


	//['freebsd_6', '2.0', '2.0', 'FreeBSD/2.0/FreeBSD6/OOo_2.0.1_FreeBSD60Intel_install_de.tbz'],
	//['freebsd_5', '2.0', '2.0', 'FreeBSD/2.0/FreeBSD5/OOo_2.0.1_FreeBSD54Intel_install_de.tbz'],
	//['freebsd_5.3x86', '1.1.4', '1.1.4RC','pub/OpenOffice.org/ooomisc/FreeBSD/OOo_1.1.4_FreeBSD53Intel_install_de.tbz'],
	//['freebsd_4.10x86', '1.1.3', '1.1.3RC','pub/OpenOffice.org/ooomisc/FreeBSD/OOo_1.1.3_FreeBSD410Intel_install_de.tgz']
];

/*-------------------------------------------------------------------
--- Mirrorliste (sortiert nach nach Auftreten in der Auswahlbox)
---		<key>, <Bezeichnung>, <Basis-URL> Where the mirrors are
-------------------------------------------------------------------*/
var mirrors =	[
	//['aach_f', 'Aachen (FTP)', 'ftp://sunsite.informatik.rwth-aachen.de/pub/mirror/OpenOffice/'],
	//['aach_h', 'Aachen (HTTP)', 'http://sunsite.informatik.rwth-aachen.de/ftp/pub/mirror/OpenOffice/'],
	//['brau_f', 'Braunschweig (FTP)', 'ftp://ftp.rz.tu-bs.de/pub/mirror/OpenOffice.org/'],
	//['brau_h', 'Braunschweig (HTTP)', 'http://mistral.ext.rz.tu-bs.de/ftp/pub/mirror/OpenOffice.org/'],
	//['chem_f', 'Chemnitz (FTP)', 'ftp://ftp.tu-chemnitz.de/pub/openoffice/'],
	//['chem_h', 'Chemnitz (HTTP)', 'http://wftp.tu-chemnitz.de/pub/openoffice/'],
	//['frfm_f', 'Frankfurt (FTP)', 'ftp://ftp.plusline.de/pub/OpenOffice/'],
	//['frfm_h', 'Frankfurt (HTTP)', 'http://ftp.plusline.de/OpenOffice/'],
	//['essl_f', 'Esslingen (FTP)', 'ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/ftp.openoffice.org/'],
	//['muen_f', 'Muenchen (FTP)', 'ftp://ftp.leo.org/pub/openoffice/'],
	//['muen_h', 'Muenchen (HTTP)', 'http://ftp.leo.org/download/pub/openoffice/'],
	//['mnst_f', 'Muenster (FTP)', 'ftp://ftp.join.uni-muenster.de/pub/software/OpenOffice/'],
	//['wien_f', 'Wien (FTP)', 'ftp://gd.tuwien.ac.at/office/openoffice/'],
	//['wien_h', 'Wien (HTTP)', 'http://gd.tuwien.ac.at/office/openoffice/'],
	//['wolf_f', 'Wolfenbuettel (FTP)', 'ftp://ftp.uasw.edu/pub/openoffice.org/'],
	//['wolf_h', 'Wolfenbuettel (HTTP)', 'http://ftp.uasw.edu/pub/openoffice.org/'],
	//['soln_f', 'SolNet (FTP)', 'ftp://ftp.solnet.ch/mirror/OpenOffice/'],
	//['zuer_f', 'Zuerich (FTP)', 'ftp://mirror.switch.ch/mirror/OpenOffice/'],
	//['zuer_h', 'Zuerich (HTTP)', 'http://mirror.switch.ch/ftp/mirror/OpenOffice/'],
	//['serv_h', 'OOo-Services', 'http://oootranslation.services.openoffice.org/'],
	//['good_f', 'good-day.net', 'ftp://ooopackages.good-day.net/pub/OpenOffice.org/']
	['edu_f', 'Eduserve (FTP)', 'ftp://ftp.mirror.ac.uk/mirror/sunsite.dk/openoffice/'],
	['edu_h', 'Eduserve (HTTP)', 'http://www.mirror.ac.uk/mirror/sunsite.dk/openoffice/'],
	['mirsrv_f', 'UK Mirror Service (FTP)', 'ftp://ftp.mirrorservice.org/sites/ny1.mirror.openoffice.org/'],
	['mirsrv_h', 'UK Mirror Service (HTTP)', 'http://www.mirrorservice.org/sites/ny1.mirror.openoffice.org/'],
	['bluyo_f', 'Blueyonder (FTP)', 'ftp://mirrors.blueyonder.co.uk/sites/openoffice.org/'],
	['bluyo_h', 'Blueyonder (HTTP)', 'http://openoffice.blueyonder.co.uk/']
];

/*-------------------------------------------------------------------
--- Liste, welcher Mirror welche Plattformen vorh?t ...
---	wenn wir das noch auf die Versionen runterbrechen, werden wir mit tippen nicht fertig
---		<mirror_key>, <plattform_key>
full: ['aach_f', ['freebsd_5.2x86', 'lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
classA: ['aach_f', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],

-------------------------------------------------------------------*/

var mirror_platforms =	[
	//['aach_f', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['aach_h', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['brau_f', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['brau_h', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['chem_f', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['chem_h', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['essl_f', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['klag_f', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['frfm_f', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['frfm_h', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['muen_f', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['muen_h', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['mnst_f', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['wien_f', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['wien_h', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['wolf_f', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['wolf_h', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['soln_f', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['zuer_f', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['zuer_h', ['lin_ppc', 'lin_sparc', 'lin_x86', 'mac', 'sol_sparc', 'sol_x86', 'win', 'prooobox' ]],
	//['serv_h', ['freebsd_5.3x86', 'freebsd_4.10x86']],
	//['good_f', ['freebsd_6', 'freebsd_5']]
	['edu_f', ['win', 'lin_x86', 'lin_x86_deb']],
	['edu_h', ['win', 'lin_x86', 'lin_x86_deb']],
	['mirsrv_f', ['win', 'lin_x86', 'lin_x86_deb']],
	['mirsrv_h', ['win', 'lin_x86', 'lin_x86_deb']],
	['bluyo_f', ['win', 'lin_x86', 'lin_x86_deb']],
	['bluyo_h', ['win', 'lin_x86', 'lin_x86_deb']]
];


/*-------------------------------------------------------------------
--- FormReset beim laden des Windows rufen
-------------------------------------------------------------------*/
if (window.attachEvent) {
	window.attachEvent('onload',resetForm);
} else if (window.addEventListener) {
	window.addEventListener('load',resetForm,false);
	document.addEventListener('load',resetForm,false);
}

/*-----------------------------------------------------------------*/
function resetForm() {
/*--- setzt wie Eingabe fuer Quickdownload auf Initialwerte
*/
	createPlatformList();
	document.download.version.options.length = 0;
	document.download.version.disabled= true;
	document.download.mirror.options.length = 0;
	document.download.mirror.disabled= true;
	document.download.start.disabled= true;
	document.download.copybox.value = "";
}

/*-------------------------------------------------------------------*/
function createPlatformList() {
/*--- baut die Liste verfuegbarer Plattformen im Select-Element
	'platform' auf */
var i;

	/* Liste leeren */
	document.download.platform.options.length = 0;
	document.download.platform.options[0] = new Option('---','dummyplatform' );

	/* Array platforms durchlaufen und Key + Bezeichnug als Optionen einfuegen */
	for ( i=0; i<platforms.length ; i++) {
		document.download.platform.options[i+1] =
			new Option (platforms[i][1], platforms[i][0]);
		}
}

/*-------------------------------------------------------------------*/
function makeOSVersion() {
/*- baut die Liste verfuegbarer Versionen in Abhägigkeit der gewälten
	 Plattform auf */
var i;

	/* gew?lte Plattform holen */
	var platform = document.download.platform.options[document.download.platform.selectedIndex].value;
	/* Liste leeren */
	document.download.version.options.length = 0;

	/* array versions durchlaufen */
	for (i=0; i < versions.length ; i++) {
		if ( versions[i][0] == platform) {
			/* wenn <platform_key> in Array versions gleich der gewälten Plattform ist,
				neuen Eintrag erstellen */
			document.download.version.options[document.download.version.options.length] =
					new Option(versions[i][2], versions[i][1] )
		}
	}
	if ( document.download.version.options.length > 0 ){
		document.download.version.disabled = false;
		makeMirrorList ();
	} else {
		document.download.version.disabled= true;
		document.download.mirror.options.length = 0;
		document.download.mirror.disabled= true;
		document.download.copybox.value = "";
		document.download.start.disabled= true;
	}

}

/*-------------------------------------------------------------------*/
function makeMirrorList() {
/*- Baut die Liste der Mirrors anhand der gewälten Platform / Version auf
 	und w?lt einen zuf?ligen Mirror aus*/
var i;
var j;
var k;

	/* gew?lte Plattform*/
	var platform = document.download.platform.value;

	/* Liste leeren */
	document.download.mirror.options.length = 0;
	if ( ! ( (platform == 'dummyplatform') ||
			 (document.download.version.value == '')
		   ) ) {
		/* array versions durchlaufen */
		for (i=0; i < mirror_platforms.length ; i++) {
			for (j=0; j < mirror_platforms[i][1].length ; j++) {
				if ( mirror_platforms[i][1][j] == platform) {
					/* Mirror ist gueltig - in mirrors array suchen */
					for (k=0; k < mirrors.length ; k++) {
						if ( mirror_platforms[i][0] == mirrors[k][0]) {
							document.download.mirror.options[document.download.mirror.options.length] =
								new Option(mirrors[k][1], mirrors[k][0] )
						}
					}
				}
			}
		}
	}
	if ( document.download.mirror.options.length > 0 ) {
		document.download.mirror.disabled = false;
		document.download.mirror.selectedIndex = Math.floor ( Math.random()*
												(document.download.mirror.options.length - 1) );
		selectMirror();
	} else {
		document.download.mirror.disabled= true;
		document.download.copybox.value = "";
		document.download.start.disabled= true;
	}

}

/*-------------------------------------------------------------------*/
function selectMirror() {
/*- Mirror wurde ausgewhält - URL aus Plattform, Version und Mirror
	ermitteln und in die Copybox eintragen -*/
var i; var j; var k;

	/* gew?lte Plattform, Version und Mirror holen holen */
	var platform = document.download.platform.value;
	var vers = document.download.version.value;
	var mirror = document.download.mirror.value;

	if ( platform != '' & vers != '' & mirror != '' ) {
		/* mirror suchen und Basis-URL holen*/
		for (i=0; i < mirrors.length ; i++) {
			if ( mirrors[i][0] == mirror) {
				myURL = mirrors[i][2];
				/* jetzt noch Pfad entsprechend Platform / Version holen */
				for (j=0; j < versions.length ; j++) {
					if (versions[j][0] == platform & versions[j][1]  == vers ) {
						myURL = myURL + versions[j][3];
					}
				}
			}
		}
		if (myURL != '') {
			document.download.copybox.value = myURL;
			document.download.start.disabled = false;
		} else {
			alert ('Script Error!');
		}
	}
}

/*-------------------------------------------------------------------*/
function startDownload() {
/*- Downloadknopf wurde gedrckt - URL aus Copybox lesen und
	Download starten-*/

	var myURL = document.download.copybox.value;
	if (myURL != '') {
		if ( document.download.version.value == '20beta' ) {
			window.location.href = "../known_issues.html?dl=" + escape(myURL);
		} else {
			//window.location.href = myURL;
			window.location.href = myURL;
		}
	} else {
		alert ('Script Error!');
	}
}