/**
*@fileoverview In dieser Datei werden Methoden für den einfacheren Umgang mit
*Reisenden definiert
*@author Guido Fünders, fuenders@traveltainment.de
*/

/**
*Erzeugt eine neue "Reisende" Instanz
*@param {String} strPersonen Personenstring (Alter Semikolon-getrennt z.B.: 25;25;7;8)
*@constructor
*@extends TTIBE
*/
function Reisende(strPersonen){
  /**
  *Personenstring
  *@type {String}
  */
  this.Personen = strPersonen;
  /**
  *Anzahl Erwachsene
  *@type {Int}
  */
  this.AnzErwachsene = 0;
  /**
  *Anzahl Kinder
  *@type {Int}
  */
  this.AnzKinder = 0;
  /**
  *Alter der Erwachsenen
  *@type {Array}
  */
  this.AlterErwachsene = [];
  /**
  *Alter der Erwachsenen
  *@type {Array}
  */
  this.AlterKinder = [];

  /**
  *Füllt die Klassenattribute anhand des Personenstrings
  */
  this.updateFromPersonen = function(){
    this.AnzErwachsene = 0;
    this.AnzKinder = 0;
    this.AlterErwachsene = [];
    this.AlterKinder = [];
    var arrTmp = this.Personen.split(";");
    for(var i=0;i<arrTmp.length;++i){
      if(arrTmp[i]=="" ||  parseInt(arrTmp[i],10)<=0)
        continue;
      var aktAlter = parseInt(arrTmp[i],10);
      if(aktAlter<=16){
        this.AnzKinder++;
        this.AlterKinder.push(aktAlter);
      }else{
        this.AnzErwachsene++;
        this.AlterErwachsene.push(aktAlter);
      }
    }
    this.AlterErwachsene.sort();
    this.AlterKinder.sort();
    this.updateToPersonen();
  };

  /**
  *Füllt den Personenstrings anhand der Klassenattribute
  */
  this.updateToPersonen = function(){
    this.Personen = "";
    for(var i=0;i<this.AlterErwachsene.length;++i)
      this.Personen += this.AlterErwachsene[i]+";";
    for(var i=0;i<this.AlterKinder.length;++i)
      this.Personen += this.AlterKinder[i]+";";
    if(this.Personen!="")
      this.Personen = this.Personen.substr(0,this.Personen.length-1);
  };

  /**
  *Aktualisiert die Klassenattribute anhand der eingestellten Formulardaten
  */
  this.getPersonenFromForm = function(){
    var fKind = ['alter1', 'alter2','alter3'];
    var bform = document.forms[this.formname];
    var strPers = bform.erwachsene.value+";";
    for(var i=0;i<fKind.length;++i){
      if(bform[fKind[i]] && bform[fKind[i]].value!='-1')
        strPers+=bform[fKind[i]].value+";";
    }
    this.Personen = strPers.substr(0,strPers.length-2);
    this.updateFromPersonen();
  };
  
  this.updateFromPersonen();
}