var activePassenger;
var passengerList = new Array();
var passengerConfiguration = new Array();
var passengerCounter = -1;
var passengerTotalAmount;
var passengerInit = false;
var toggledPassengers = 0;
var poppedOut = false;
var activeStep = 'bs1';
var lastclickedFare = false;
var giftcard = false;
var giftcardInit = false;

$(document).ready(function(){
   
   // Giftcard Specials
   $('.giftcardTable input:radio').click(function(){
      xName = $(this).next('span').text();
      document.getElementById('gc_optionText').value = xName;
   });
   
   
   
   //giftcard setup
   if($('#mainDiv').hasClass('giftcard'))
   {
      giftcard = true;
      
      // Format Forma
      $('.detailsBox').removeClass('detailsBox').addClass('commentsBox');
      $('#sum_tourDateBox,#sum_cancellationPolicyBox,#sum_pickuplocationBox,#bs1bt').css({display:'none'});
      
      
      //updateChars
      charx = 200;
      $('#cc_actChars').text(charx-$('#form_giftcard_message').val().length);
        $('#form_giftcard_message').keyup(function(){
          charlength = $(this).val().length;
          
          xValArray=$(this).val().replace(/\r/g,'').split('\n');
          if(xValArray.length>4)
          {
            $(this).val(xValArray.slice(0,-1).join('\n'));
          }
          if(charlength > charx)
          {
            xVal = $(this).val();
            xVal = $(this).val().slice(0,charx);
            $(this).val(xVal);
          }
          $('#cc_actChars').text(charx-$(this).val().length); 
      });
      
      //Template Chooser
      $('.giftcardDesignBox:eq(0)').toggleClass('giftcardDesignBoxAct');
      
      
      $('.giftcardDesignBox').click(function(){
        $(this).parent().parent().find('.giftcardDesignBox').removeClass('giftcardDesignBoxAct');
        $(this).toggleClass('giftcardDesignBoxAct');
        $(this).find('input').attr('checked',true);
      });
      
      $('.giftcardDesign a').lightBox({autoplay:false});
   }
   
});

//GiftCard Functions

function giftcardSt2()
{
   
   // Validate
   
   err = 0;
   if($('#form_giftcard_from').val() == '') err = 1;
   if($('#form_giftcard_to').val() == '') err = 1;
   if($('#form_giftcard_mobile').val() == '') err = 1;
   
   if(err)
   {
    document.getElementById('errorGiftcard').style.display = '';
    document.getElementById('block').style.display = '';
   }
   else
   {
    $('#bs0').css({display:'none'});
    $('#bs1,#proceedGiftcardButton2').css({display:'block'});
   }
}

function giftcardSt1()
{
   $('#bs0').css({display:'block'});
   $('#bs1,#proceedGiftcardButton2').css({display:'none'});
}

function giftcardSt3()
{
   $('#buttonPrevGf2').css({display:'block'});
   $('#bs1,#proceedGiftcardButton2').css({display:'none'});
   
   if($('#giftcardAvailabilityCheck').attr('checked'))
   {
    activeStep = 'bs2';
    document.getElementById('bsAvailabilityMessage').style.display = 'block';
    if(giftcardInit) xInit = 0;
    else
    {
        giftcardInit = true;
        xInit = 1;
    }
    tx_haba_pi1checkAvailability(document.getElementById('datepickerDate').value,xInit);
   }
   else
   {
     if(giftcardInit)
     {
        $('#bs2').css({display:'block'});
        showPassenger(0);
     }
     else 
     {
        giftcardInit = true;
        initPassenger();
     }
   }
}

function back2giftcard()
{
   $('#bs2').css({display:'none'});
   $('#bs1,#proceedGiftcardButton2').css({display:'block'});
}

function countPassengers()
{
   passengerAmount = (document.getElementsByName('adults')[0][document.getElementsByName('adults')[0].selectedIndex].value*1) + (document.getElementsByName('infants')[0][document.getElementsByName('infants')[0].selectedIndex].value*1) + (document.getElementsByName('children')[0][document.getElementsByName('children')[0].selectedIndex].value*1) + (document.getElementsByName('toddlers')[0][document.getElementsByName('toddlers')[0].selectedIndex].value*1);
   passengerTotalAmount = passengerAmount;
   return passengerAmount;
}

function changeSelect(xObj)
{
   xClass = xObj.name;
   if(xClass == 'adults') faretype = 'AF';
   else if(xClass == 'children') faretype = 'CF';
   else if(xClass == 'toddlers') faretype = 'TF';
   else faretype = 'IF';


   if(passengerInit)
   {
     xNum = passengerTotalAmount - countPassengers();
     if(xNum < 0)
     {
       xLen = xNum * (-1);
       

       for(z=0;z<xLen;z++)
       {
         addPassengerSt2(faretype);
       }
       
       
       updatePassengerList();
       updateTotal();
       updateButtons();
     }
     else
     {
       linksContainer = document.getElementById('removeLinks');

       noType = 0;
       remLinks = '';
       toggledPassengers = 0;
       alreadyDeleted = 0;
       for(i=(passengerList.length-1);i>-1;i--)
       {
          if(passengerList[i]['faretype'] == faretype && passengerList[i]['act'] != 100 && alreadyDeleted < xNum)
          {
            deleteFromArray(i,passengerList);
            alreadyDeleted++;
          }
       }


       if(alreadyDeleted < xNum)
       {
       xTbd = xNum - alreadyDeleted;
       k=0;
       for(i=0;i<passengerList.length;i++)
       {
            if(passengerList[i]['faretype'] == faretype)
            {
                k++;
                remLinks += '<a href="javascript:void(0);" onclick="togglePassenger(this,' + i + ','+xTbd+');">'+passengerList[i]['name']+'</a>';
                lastk = i;
            }
       }
       linksContainer.innerHTML = remLinks;
       
       if(k==1) togglePassenger(false,lastk,xTbd); 
       else
       {
          document.getElementById('deleteMessage').style.display = '';
          document.getElementById('block').style.display = '';
       }
       
       
       }
       
       if(alreadyDeleted > 0)
       {
         updatePassengerList();
         updateTotal();
         updateButtons();
       }


     }
   }
}

function togglePassenger(xObj,i,xNum)
{
   //alert(i + ' ' +activePassenger + 'toogled' + toggledPassengers + 'xNum' + xNum);
   
   if(xObj) xObj.style.display = 'none';
   
   deleteFromArray(i,passengerList);
   toggledPassengers++;
   
   if(toggledPassengers == xNum)
   {
     document.getElementById('deleteMessage').style.display = 'none';
     document.getElementById('block').style.display = 'none';
     
     //updatePassengerList();
     activePassenger = 0;
     showPassenger(0);
   }
}


function deleteFromArray(i,xArray)
{
   xArray1 = passengerList.slice(0,i);
   xArray2 = passengerList.slice((i+1),passengerList.length);
   passengerList = xArray1.concat(xArray2);   
}


function addPassengerSt2(faretype)
{
   i = passengerList.length;
   passengerList[i] = new Array();
   passengerList[i]['faretype'] = faretype;
   passengerList[i]['name'] = document.getElementById('passengerOverviewTemplate').innerHTML + ' ' + passengerList.length;
   passengerList[i]['nameStatus'] = 1;
}

function fareFocus()
{
	objId = 'faretype';
	lastclickedFare = document.getElementById(objId)[document.getElementById(objId).selectedIndex].value;
	
	//alert(lastclickedFare);
}

function fareChange()
{
   objId = 'faretype';
   passengerList[activePassenger]['faretype'] = document.getElementById(objId)[document.getElementById(objId).selectedIndex].value;
   passengerList[activePassenger]['fare'] = priceMatrix[passengerList[activePassenger]['faretype']]['fare'];
   resetArea('reefaction');
   resetArea('glassbottomboat');
   resetArea('numberofdives1');
   resetArea('numberofdives2');
   resetArea('gear');


   // Reset Reefaction Boxes
   document.getElementById('reefaction').style.display = '';
   

   if(passengerList[activePassenger]['faretype'] == 'CFDEACTIVATED')
   {
     activateOption(document.getElementById('reefactionDef'),'glassbottomboat');
     document.getElementById('reefactionDef').checked = true;
     document.getElementById('reefactionHide').style.display = '';

	 
   }
   
   if(passengerList[activePassenger]['faretype'] == 'TF' || passengerList[activePassenger]['faretype'] == 'IF')
   {
     document.getElementById('reefaction').style.display = 'none';
     passengerList[activePassenger]['glassbottomboat'] = true;
   }
   
   // Adjust Sidepanel Selects
   if(passengerList[activePassenger]['faretype'] == 'CF') setSelect('children',(document.getElementById('children')[document.getElementById('children').selectedIndex].value*1 + 1));
   if(passengerList[activePassenger]['faretype'] == 'TF') setSelect('toddlers',(document.getElementById('toddlers')[document.getElementById('toddlers').selectedIndex].value*1 + 1));
   if(passengerList[activePassenger]['faretype'] == 'IF') setSelect('infants',(document.getElementById('infants')[document.getElementById('infants').selectedIndex].value*1 + 1));
   if(passengerList[activePassenger]['faretype'] == 'AF') setSelect('adults',(document.getElementById('adults')[document.getElementById('adults').selectedIndex].value*1 + 1));


   if(lastclickedFare == 'CF') setSelect('children',(document.getElementById('children')[document.getElementById('children').selectedIndex].value*1 - 1));
   if(lastclickedFare == 'TF') setSelect('toddlers',(document.getElementById('toddlers')[document.getElementById('toddlers').selectedIndex].value*1 - 1));
   if(lastclickedFare == 'IF') setSelect('infants',(document.getElementById('infants')[document.getElementById('infants').selectedIndex].value*1 - 1));
   if(lastclickedFare == 'AF') setSelect('adults',(document.getElementById('adults')[document.getElementById('adults').selectedIndex].value*1 - 1));   
   
   updatePrices();
   document.getElementById('subfare').innerHTML = setPrice(passengerList[activePassenger]['fare'],'subfare',false);
}

function initPassenger()
{
   passengerInit = true;
   activePassenger = 0;
   initPassengerList();
    
   document.getElementById('bs2').style.display = 'block';
   
   document.getElementById('bsAvailabilityMessage').style.display = 'none';
   
   activatePassenger();
   initPassenger = true;
}

function nextPassenger()
{
   // Check Status
   if((passengerList[activePassenger]['glassbottomboat'] && document.getElementById('nameofpassenger').value != '' && document.getElementById('nameofpassenger').value != document.getElementById('nameofpassenger').title) || (passengerList[activePassenger]['faretype'] == 'IF' && document.getElementById('nameofpassenger').value != document.getElementById('nameofpassenger').title && document.getElementById('nameofpassenger').value != '') || (passengerList[activePassenger]['faretype'] == 'TF' && document.getElementById('nameofpassenger').value != document.getElementById('nameofpassenger').title && document.getElementById('nameofpassenger').value != ''))
   {
      activePassenger++;
      if(passengerCounter < activePassenger) activatePassenger();
      else showPassenger(activePassenger)
   }
   else displaybs2Error();
}

function nextStep()
{
   if(passengerList[activePassenger]['glassbottomboat'] && document.getElementById('nameofpassenger').value != '' && document.getElementById('nameofpassenger').value != document.getElementById('nameofpassenger').title)
   {
     document.getElementById('bs2').style.display = 'none';
     document.getElementById('bs4').style.display = 'none';
     document.getElementById('bs3').style.display = 'block';
     document.getElementById('grandTotal').innerHTML = '$' + calculateTotal();
     //selIndex = document.getElementById('pickupLocationsSelect').selectedIndex;
     //if(selIndex == 0) document.getElementById('pickupLocationsSelect').innerHTML = document.getElementById('pickupLocationsSelect').innerHTML + pickupLocations;
   }
   else displaybs2Error();
}

function go2Summary()
{
   error = false;
   if(document.getElementById('form_name').value == '' || document.getElementById('form_email').value == '' || document.getElementById('form_mobile').value == '') error = true;
   
   if(!giftcard)
   {
   if(document.getElementsByName('pickup')[0].checked == false && document.getElementsByName('pickup')[1].checked == false) error = true;
   if(document.getElementsByName('pickup')[1].checked == true && document.getElementById('pickupLocationsSelect').selectedIndex == 0) error = true;
   }
   
   if(error) 
   {
      document.getElementById('errorSt2').style.display = '';
      document.getElementById('block').style.display = '';
      
      return true;
   }
   
   
   
   document.getElementById('bs3').style.display = 'none';
   document.getElementById('bs4').style.display = 'block';

   // Copy personal details
   document.getElementById('summary_title').innerHTML = document.getElementById('form_title').options[document.getElementById('form_title').selectedIndex].value;
   document.getElementById('summary_name').innerHTML = document.getElementById('form_name').value;
   document.getElementById('summary_email').innerHTML = document.getElementById('form_email').value;
   document.getElementById('summary_mobile').innerHTML = document.getElementById('form_mobile').value;
   document.getElementById('summary_tourdate').innerHTML = document.getElementById('datepickerDate').value;
   
   // Pickup
   if(!giftcard)
   {
   document.getElementById('summary_pickup').innerHTML = document.getElementById('pickupLocationsSelect').options[document.getElementById('pickupLocationsSelect').selectedIndex].text;
   
   if(document.getElementById('puNo').checked)
   {
     document.getElementById('summary_pickup').style.display = 'none';
	 document.getElementById('summary_nopickup').style.display = '';
   }
   else
   {
	 document.getElementById('summary_pickup').style.display = '';
	 document.getElementById('summary_nopickup').style.display = 'none';
   }
   
   document.getElementById('summary_pickuplocationtext').value = document.getElementById('pickupLocationsSelect').options[document.getElementById('pickupLocationsSelect').selectedIndex].text;
   }
   
   
   // Grand Total
   document.getElementById('grandTotalSummary').innerHTML = '$' + calculateTotal();
   
   generatePassengerList(passengerList);
}

function generatePassengerList(passengerListArray)
{
   // Display Summary
   childObj = document.getElementById('passengerDetails');

   
   cell = childObj;
   if ( cell.hasChildNodes() )

	{

	while ( cell.childNodes.length >= 1 )

	{

	cell.removeChild(cell.firstChild ); 

	} 

	}

   for(i=0;i<passengerListArray.length;i++)
   {
        newTr = document.createElement("tr");
        childObj.appendChild(newTr);
        
        newText = document.createTextNode(passengerListArray[i]['name']);
        newTd = document.createElement("td");
        childObj.childNodes[i].appendChild(newTd);
        childObj.childNodes[i].childNodes[0].appendChild(newText);
        
        newText = document.createTextNode(passengerListArray[i]['faretype']);
        newTd = document.createElement("td");
        childObj.childNodes[i].appendChild(newTd);
        childObj.childNodes[i].childNodes[1].appendChild(newText);
        
        if(passengerListArray[i]['reefaction']) newText = document.createTextNode($('#reefaction_' + passengerListArray[i]['reefaction']).text());
        else newText = document.createTextNode('-'); 
        newTd = document.createElement("td");
        childObj.childNodes[i].appendChild(newTd);
        childObj.childNodes[i].childNodes[2].appendChild(newText);
        
        if(passengerListArray[i]['numberofdives1']) newText = document.createTextNode(passengerListArray[i]['numberofdives1']);
        else if(passengerListArray[i]['numberofdives2']) newText = document.createTextNode(passengerListArray[i]['numberofdives2']);
        else newText = document.createTextNode('-');
        newTd = document.createElement("td");
        childObj.childNodes[i].appendChild(newTd);
        childObj.childNodes[i].childNodes[3].appendChild(newText);
        
        if(passengerListArray[i]['gear']) newText = document.createTextNode(passengerListArray[i]['gear']);
        else newText = document.createTextNode('incl.');
        newTd = document.createElement("td");
        childObj.childNodes[i].appendChild(newTd);
        childObj.childNodes[i].childNodes[4].appendChild(newText);
        
        if(passengerListArray[i]['glassbottomboat']) newText = document.createTextNode(passengerListArray[i]['glassbottomboat']);
        else newText = document.createTextNode('-');
        newTd = document.createElement("td");
        childObj.childNodes[i].appendChild(newTd);
        childObj.childNodes[i].childNodes[5].appendChild(newText);
        
        newText = document.createTextNode('$'+passengerListArray[i]['total']);
        newTd = document.createElement("td");
        childObj.childNodes[i].appendChild(newTd);
        childObj.childNodes[i].childNodes[6].appendChild(newText);
        childObj.childNodes[i].childNodes[6].className = 'totalFare';
   }
   
   if(giftcard && ($('input[name=giftcard_option]:checked').attr('price')) != '')
   {
        newTr = document.createElement("tr");
        childObj.appendChild(newTr);
        
        xValue = document.getElementById('gc_optionText').value;
        newText = document.createTextNode(xValue);
        newTd = document.createElement("td");
        childObj.childNodes[i].appendChild(newTd);
        childObj.childNodes[i].childNodes[0].appendChild(newText);
        childObj.childNodes[i].childNodes[0].colSpan = "6";
        
        newText = document.createTextNode('$'+$('input[name=giftcard_option]:checked').attr('price'));
        newTd = document.createElement("td");
        childObj.childNodes[i].appendChild(newTd);
        childObj.childNodes[i].childNodes[1].appendChild(newText);
        childObj.childNodes[i].childNodes[1].className = 'totalFare';
   }
}

function displaybs2Error()
{
   document.getElementById('errorSt1').style.display = '';
   document.getElementById('block').style.display = '';
   
   //alert('Please fill in your name and choose at least one option from displayed categories.');
}

function hideMessage(xId)
{
  document.getElementById(xId).style.display = 'none';
  document.getElementById('block').style.display = 'none';
}

function prevPassenger()
{
   activePassenger--;
   showPassenger(activePassenger);
   
   if(giftcard && activePassenger == 0) $('#buttonPrevGf2').css({display:'block'});
}

function openLastPassenger()
{
   showPassenger(activePassenger);
   document.getElementById('bs2').style.display = '';
   document.getElementById('bs3').style.display = 'none';
   document.getElementById('bs4').style.display = 'none';
}

function activatePassenger()
{
   updatePassengerList();
   passengerList[activePassenger]['activated'] = true;
   setSelect('faretype',passengerList[activePassenger]['faretype']);
   //alert(passengerList[activePassenger]['faretype']);

   passengerCounter++;


   resetArea('reefaction');
   resetArea('glassbottomboat');
   resetArea('numberofdives1');
   resetArea('numberofdives2');
   resetArea('gear');


   document.getElementById('nameofpassenger').value = document.getElementById('nameofpassenger').title;
   faretype = passengerList[activePassenger]['faretype'];
   document.getElementById('subfare').innerHTML = setPrice(priceMatrix[faretype]['fare'],'subfare',false);


   if(passengerList[activePassenger]['faretype'] == 'AF' || passengerList[activePassenger]['faretype'] == 'CF') document.getElementById('reefaction').style.display = '';
   else
   {
      document.getElementById('reefaction').style.display = 'none';
      passengerList[activePassenger]['glassbottomboat'] = true;
   }
   
   if(passengerList[activePassenger]['faretype'] == 'CFDEACTIVATED')
   {
      document.getElementById('reefactionHide').style.display = '';
      activateOption(document.getElementById('reefactionDef'),'glassbottomboat');
   }
   else document.getElementById('reefactionHide').style.display = 'none';

   updateButtons();
   updatePrices();
   updateTotal();
}

function updateButtons()
{
   if(activePassenger > 0)
   {
      document.getElementById('buttonPrev').style.display = 'block';
      $('#buttonPrevGf2').css({display:'none'});
   }
   else document.getElementById('buttonPrev').style.display = 'none';
   if((activePassenger+1) < countPassengers())
   {
     document.getElementById('buttonNext').style.display = 'block';
     document.getElementById('buttonNextStep').style.display = 'none';
   }
   else
   {
     document.getElementById('buttonNext').style.display = 'none';
     document.getElementById('buttonNextStep').style.display = 'block';
   }
}

function showPassenger(i)
{
   if(i == '') i = 0;
   activePassenger = i;
   
   passengerList[i]['subfare'] = priceMatrix[passengerList[i]['faretype']]['fare'];
   
   setSelect('faretype',passengerList[activePassenger]['faretype']);
   setRadio('glassbottomboat',passengerList[i]['glassbottomboat']);
   setRadio('reefaction',passengerList[i]['reefaction']);
   setRadio('numberofdives1',passengerList[i]['numberofdives1']);
   setRadio('numberofdives2',passengerList[i]['numberofdives2']);
   setRadio('gear',passengerList[i]['gear']);
   
   if(passengerList[i]['nameStatus'] == 1) document.getElementById('nameofpassenger').value = document.getElementById('nameofpassenger').title;
   else document.getElementById('nameofpassenger').value = passengerList[i]['name'];
   
   document.getElementById('subfare').innerHTML = setPrice(passengerList[i]['subfare'],'subfare',false);

   document.getElementById('numberofdives1').style.display = 'none';
   document.getElementById('numberofdives2').style.display = 'none';
   document.getElementById('gear').style.display = 'none';
   document.getElementById('reefaction').style.display = 'none';
   document.getElementById('glassbottomboat').style.display = 'none';

   if(passengerList[i]['faretype'] != 'IF' || passengerList[i]['faretype'] != 'TF')
   {
       document.getElementById('glassbottomboat').style.display = '';
       document.getElementById('reefaction').style.display = '';
   }
   if(passengerList[i]['faretype'] == 'IF' || passengerList[i]['faretype'] == 'TF')
   {
       document.getElementById('glassbottomboat').style.display = 'none';
       document.getElementById('reefaction').style.display = 'none';
       passengerList[i]['glassbottomboat'] = true;
   }
   if(passengerList[i]['reefaction'] == 'certifiedDiving' && (passengerList[i]['faretype'] == 'AF' || passengerList[i]['faretype'] == 'CF'))
   {
     document.getElementById('numberofdives1').style.display = '';
     document.getElementById('gear').style.display = '';
   }
   
   if(passengerList[i]['faretype'] == 'CFDEACTIVATED') document.getElementById('reefactionHide').style.display = '';
   else document.getElementById('reefactionHide').style.display = 'none';
   
   
   if(passengerList[i]['reefaction'] == 'introductoryDiving' && passengerList[i]['faretype'] == 'AF') document.getElementById('numberofdives2').style.display = '';
   updatePassengerList();
   updateTotal();
   updateButtons();
   updatePrices();
}

function updateTotal()
{
   setPrice(passengerList[activePassenger]['subfare'],'subfare',false);
}

function setRadio(objId,xValue)
{
   if(!passengerList[activePassenger][objId + 'Price']) passengerList[activePassenger][objId + 'Price'] = 0;
   
   for(i=0;i<document.getElementsByName(objId).length;i++)
   {
      document.getElementsByName(objId)[i].checked = false;
      if(document.getElementsByName(objId)[i].value == xValue)
      {
        document.getElementsByName(objId)[i].checked = true;
      }
   }
   
   document.getElementById(objId + 'Total').innerHTML = '$' + (passengerList[activePassenger][objId + 'Price']*1);
}

function setSelect(xObj,xValue)
{
   document.getElementById(xObj).selectedIndex = 0;
   for(i=0;i<document.getElementById(xObj).length;i++)
   {
      if(document.getElementById(xObj)[i].value == xValue) document.getElementById(xObj).selectedIndex = i;
   }
}



function updatePrices()
{
   faretype = document.getElementById('faretype')[document.getElementById('faretype').selectedIndex].value;

   if(faretype == 'CF' || faretype == 'AF') document.getElementById('introductoryDivingPrice').innerHTML = priceMatrix[faretype]['reefaction']['introductoryDiving'];
   if(faretype == 'CF' || faretype == 'AF') document.getElementById('certifiedDivingPrice').innerHTML = priceMatrix[faretype]['reefaction']['certifiedDiving'];
   if(faretype == 'CF' || faretype == 'AF') document.getElementById('3Price').innerHTML = priceMatrix[faretype]['numberofdives1']['3'];
   if(faretype == 'CF' || faretype == 'AF') document.getElementById('2Price2').innerHTML = priceMatrix[faretype]['numberofdives2']['2'];
   if(faretype == 'CF' || faretype == 'AF') document.getElementById('allgearPrice').innerHTML = priceMatrix[faretype]['gear']['allgear'];

   if(faretype == 'CF' || faretype == 'AF')
   {
     document.getElementById('yesPrice').innerHTML = priceMatrix[faretype]['glassbottomboat']['yes'];
   }
}

function initPassengerList()
{
   passengerConfiguration['adults'] = document.getElementById('adults')[document.getElementById('adults').selectedIndex].value;
   passengerConfiguration['children'] = document.getElementById('children')[document.getElementById('children').selectedIndex].value;
   passengerConfiguration['toddlers'] = document.getElementById('toddlers')[document.getElementById('toddlers').selectedIndex].value;
   passengerConfiguration['infants'] = document.getElementById('infants')[document.getElementById('infants').selectedIndex].value;

   passengerAmount = countPassengers();
   if(typeof(passengerList) != "object") passengerList = new Array();
   for(i=0;i<passengerAmount;i++)
   {
      if(typeof(passengerList[i]) != "object")
      {
        passengerList[i] = new Array();
        if(passengerConfiguration['adults'] > 0)
        {
           passengerList[i]['faretype'] = 'AF';
           passengerConfiguration['adults']--;
        }
        else if(passengerConfiguration['children'] > 0)
        {
           passengerList[i]['faretype'] = 'CF';
           passengerConfiguration['children']--;
        }
        else if(passengerConfiguration['toddlers'] > 0)
        {
           passengerList[i]['faretype'] = 'TF';
           passengerConfiguration['toddlers']--;
        }
        else if(passengerConfiguration['infants'] > 0)
        {
           passengerList[i]['faretype'] = 'IF';
           passengerConfiguration['infants']--;
        }
        passengerList[i]['name'] = document.getElementById('passengerOverviewTemplate').innerHTML + ' ' + (i+1);
      }
   }

   updatePassengerList();
}

function updatePassengerList()
{
   passengerAmount = countPassengers();
   pList = "";
   for(i=0;i<passengerList.length;i++)
   {
      pList += '<div class="passengerItem ' + (i==activePassenger ? 'active' : '') +'">' + passengerList[i]['name'] + '</div>';
   }
   pList += '<div class="clear"></div>';
   document.getElementById('passengerOverview').innerHTML = pList;
}

function setPrice(price,ptype,opt)
{
   if(ptype!='subfare') passengerList[activePassenger][ptype+'Price'] = price;
   else passengerList[activePassenger][ptype] = price;
   
   passengerList[activePassenger]['act'] = 100;


   if(opt) passengerList[activePassenger][ptype] = opt;

   xTotal = eval(passengerList[activePassenger]['subfare']) + eval(passengerList[activePassenger]['reefactionPrice']) + eval(passengerList[activePassenger]['numberofdives2Price']) + eval(passengerList[activePassenger]['numberofdives1Price']) + eval(passengerList[activePassenger]['gearPrice']) + eval(passengerList[activePassenger]['glassbottomboatPrice']);

   passengerList[activePassenger]['total'] = xTotal;
   document.getElementById('passengerTotal').innerHTML = '$' + xTotal;

   return '$' + price;
}

function calculateTotal()
{
   xTotal2 = 0;
   
   for(i=0;i<passengerList.length;i++)
   {
      xTotal = eval(passengerList[i]['subfare']) + eval(passengerList[i]['reefactionPrice']) + eval(passengerList[i]['numberofdives2Price']) + eval(passengerList[i]['numberofdives1Price']) + eval(passengerList[i]['gearPrice']) + eval(passengerList[i]['glassbottomboatPrice']);
      xTotal2 += xTotal;
   } 
   
   
   /* Giftcard */
   if(giftcard)
   {
      xTotal2 = xTotal2 + $('input[name=giftcard_option]:checked').attr('price')*1;
   }
   
   return xTotal2;
}

function activateOption(xObj,nextArea)
{
   optArea = xObj.name;
   opt = xObj.value;

   faretype = document.getElementById('faretype')[document.getElementById('faretype').selectedIndex].value;
   document.getElementById(optArea + 'Total').innerHTML = setPrice(priceMatrix[faretype][optArea][opt],optArea,opt);

   // Hide
   if(optArea == 'reefaction')
   {
     resetArea('numberofdives1');
     resetArea('numberofdives2');
     resetArea('gear');
     resetArea('glassbottomboat');
   }

   if(optArea == 'numberofdives1')
   {
     resetArea('glassbottomboat');
     resetArea('numberofdives2');
     resetArea('gear');
   }
   
   if(nextArea == 'numberofdives1' || nextArea == 'numberofdives2') resetArea('glassbottomboat');
   if(nextArea) document.getElementById(nextArea).style.display = '';
   
   
   xObj.checked = true;
   
}

function activateTextfield(xObj)
{
   previousClass = xObj.className;
   if(xObj.value == xObj.title)
   {
     xObj.style.fontColor = 'black';
     xObj.value = '';
   }
}

function resetArea(area)
{
   xLength = document.getElementsByName(area).length;
   for(i=0;i<xLength;i++)
   {
      document.getElementsByName(area)[i].checked = false;
   }


   document.getElementById(area + 'Total').innerHTML = setPrice(0,area,'');


   if(area!='reefaction') document.getElementById(area).style.display = 'none';
   if(area=='reefaction') document.getElementById('reefactionHide').style.display = 'none';

   
   // Reset All
   passengerList[activePassenger]['glassbottomboat'] = false;
}

function setPassengerName(xVal)
{
   passengerList[activePassenger]['name'] = xVal;
   passengerList[activePassenger]['nameStatus'] = 0;
   passengerList[activePassenger]['act'] = 100;
   updatePassengerList();
}


function saveOrder()
{
   tx_haba_pi1saveOrder(xajax.getFormValues('xajax_checkout'),calculateTotal(),passengerList);
}

function checkAvailability()
{
   document.getElementById('bs1bt').style.display = 'none';
   poppedOut = true;
   
   activeStep = 'bs2';
   
   xInitAv = 1;
   if(passengerInit) xInitAv = 0;
   $('#mainDiv').animate({width:'960px'},"fast",'linear',function(){document.getElementById('bsAvailabilityMessage').style.display = 'block'; tx_haba_pi1checkAvailability(document.getElementById('datepickerDate').value,xInitAv);});
   $('#mainDiv').animate({height:'375px'},"fast");
   //t1 = new Tween(document.getElementById('mainDiv').style,'width',Tween.regularEaseOut,240,960,1,'px');
   //t1.start();
   //t1 = new Tween(document.getElementById('mainDiv').style,'height',Tween.regularEaseOut,324,375,1,'px');
   //t1.onMotionFinished = function() {  }
   
   //t1.start();
   
   
}

function shutdownBe()
{
  
  poppedOut = false;
  
  document.getElementById('bsAvailabilityMessageError').style.display = 'none';
  document.getElementById('bsAvailabilityMessage').style.display = 'none';
  document.getElementById('bs2').style.display = 'none';
  document.getElementById('bs3').style.display = 'none';
  document.getElementById('bs4').style.display = 'none';
  
  $('#mainDiv').animate({width:'240px'},"fast",'linear',function(){document.getElementById('bs2').style.display = 'none';document.getElementById('bs1bt').style.display = 'block';});
  $('#mainDiv').animate({height:'324px'},"fast");
   
  /*t1 = new Tween(document.getElementById('mainDiv').style,'width',Tween.regularEaseOut,960,240,1,'px');
  t1.start();
  t1 = new Tween(document.getElementById('mainDiv').style,'height',Tween.regularEaseOut,375,324,1,'px');
  t1.onMotionFinished = function() {document.getElementById('bs1bt').style.display = 'block'; }
  t1.start();*/
}


function changeDate()
{
	document.getElementById('bsAvailabilityMessage').style.display = 'block';
	document.getElementById('bsAvailabilityMessageError').style.display = 'none';
	for(i=2;i<5;i++)
	{
		if(document.getElementById('bs' + i).style.display == '' || document.getElementById('bs' + i).style.display == 'block')
		{
				activeStep = 'bs' + i;
		}
		
		document.getElementById('bs' + i).style.display = 'none';
	}
	
	
	tx_haba_pi1checkAvailability(document.getElementById('datepickerDate').value,0);
}

function reactivateStep()
{
  vis('block',activeStep);
}

function vis(mode,xId)
{
	document.getElementById(xId).style.display = mode;
}

function setAlternativeDate(xDate)
{
	document.getElementById('datepickerDate').value = xDate;
	document.getElementById('bsAvailabilityMessage').style.display = 'block';
	document.getElementById('bsAvailabilityMessageError').style.display = 'none';
	
	if(passengerInit) xOpt = 0;
	else xOpt = 1;
	tx_haba_pi1checkAvailability(document.getElementById('datepickerDate').value,xOpt); 
}

function submitPP()
{
	document.getElementById('checkoutst2').submit();
}