// JavaScript Document

function BookingPriceUpdater(anElementId, aText)
{
  this.parentId=anElementId;
  this.parent=null;  
  this.text = aText;
}

BookingPriceUpdater.prototype.createDiagramInfo=function(aAdultCount, aChildCount, aKidCount, aDepOffer, aDestOffer)
{
  var theInfo = new DIVElement();
  theInfo.addAttribute('class','diagram_info_text');
  var thePElement = new PElement();
  thePElement.addContent(this.text+' (Erwachsene: ');
  thePElement.addContent(aAdultCount+' Kinder: '+aChildCount+' Kleinkinder: ' + aKidCount + ' einschl. Steuern): ');
  thePElement.addContent(this.createPriceSum(aAdultCount, aChildCount, aKidCount, aDepOffer, aDestOffer)+' &#8364;'); 
  theInfo.addElement(thePElement);
  return theInfo;
}

/**
 * Price computation
 */
BookingPriceUpdater.prototype.createPriceSum=function(aAdultCount, aChildCount, aKidCount, aDepOffer, aDestOffer)
{
  var thePrice = '-';
  
  var theAdult = Number(aAdultCount);
  if (isNaN(theAdult))
  {
    theAdult = 1;
  }
  var theChild = Number(aChildCount);
  if (isNaN(theChild))
  {
    theChild = 0;
  }
  var theKid = Number(aKidCount);
  if (isNaN(theKid))
  {
    theKid = 0;
  }
  
  var theCount = Math.abs(theAdult)+Math.abs(theChild);
  
  var thePrice = 0;
   if (aDepOffer)
    {
     var theDepPrice = Number(aDepOffer.getPrice()) * (theCount);
     thePrice = theDepPrice;
    }
   if (aDestOffer)
   {  
    var theDestPrice = Number(aDestOffer.getPrice()) * (theCount);
    thePrice = thePrice+theDestPrice;
   }
    return thePrice;
}

BookingPriceUpdater.prototype.updatePrice=function(aAdultCount, aChildCount, aKidCount, aDepOffer, aDestOffer)
{
  var theElement = this.createDiagramInfo(aAdultCount, aChildCount, aKidCount, aDepOffer, aDestOffer);
  
  if (this.parent == null)
  {
    this.parent = document.getElementById(this.parentId);
  }
  if (this.parent)
  {
    this.parent.innerHTML=theElement.write();
  } 
  else
  {
    alert('No Content for diagram footer');
  } 
}
