﻿/*-------------------------------------------------------------------
--- 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!');
  }
}
