

function expandit(obj)
{
    var square='plusMinus' + obj
    var plusSrc = "/images/resources/day_list_plus.gif"
    var minusSrc = "/images/resources/day_list_minus.gif"
    var objx = document.getElementById(obj);
    var squarex = document.getElementById(square);
    if (objx.style.display != "block")
    {
        squarex.src = minusSrc;
        objx.style.display = "block";
    }
    else
    {
        squarex.src = plusSrc;
        objx.style.display = "none";
    }
}

function expandall()
{
    plusSrc = "/images/resources/day_list_plus.gif"
    minusSrc = "/images/resources/day_list_minus.gif"
    var e = document.getElementsByName("pm");
    var img = e[0];
    var dt = img.parentNode.parentNode;
    var dd = dt.nextSibling;
    if (dd.style.display != "block")
    {
        for (var i=0;i<e.length;i++)
        {
            var pm = e[i];
            pm.src = minusSrc;
            dt = pm.parentNode.parentNode;
            dd = dt.nextSibling;
            dd.style.display = "block";
        }
    }
    else
    {
        for (var i=0;i<e.length;i++)
        {
            var pm = e[i];
            pm.src = plusSrc;
            dt = pm.parentNode.parentNode;
            dd = dt.nextSibling;
            dd.style.display = "none";
        }
    }
}

function openpopup(url) 
{
    openURL="/popup.aspx?" + url;
    window.open( 

openURL,"helpWindow","WIDTH=400,HEIGHT=400,screenX=300,toolbars=no,scrollbars=yes,status=no");
}

function findCabin(shipCode,cabinCategoryCode)
{
  for ( var i=0; i<cabinCategories.length; i++ )
  {
    if ( cabinCategories[i].ship==shipCode && cabinCategories[i].code==cabinCategoryCode )
    {
      return cabinCategories[i];
    }
  }
  return null;
}

function findShip(shipCode)
{
  for ( var i=0; i<ships.length; i++ )
  {
    if ( ships[i].code==shipCode )
    {
      return ships[i];
    }
  }
  return null;
}

function findTour(tourCode)
{
  for ( var i=0; i<tours.length; i++ )
  {
    if ( tours[i].code==tourCode )
    {
      return tours[i];
    }
  }
  return null;
}

function findDeparture(shipCode,cabinCode,departureDate)
{
  for ( var i=0; i<departures.length; i++ )
  {
    if ( departures[i].departureDate==departureDate && departures[i].ship==shipCode && 

departures[i].cabin==cabinCode )
    {
      return departures[i];
    }
  }
  return null;
}

function findCabinsForShip(shipCode)
{
  var result = new Array();
  for ( var i=0; i<cabinCategories.length; i++ )
  {
    if ( cabinCategories[i].ship==shipCode )
    {
      result.push(cabinCategories[i]);
    }
  }
  return result.reverse();
}

function getShortDirectionNameFromCode(directionCode)
{
  if ( directionCode=="N" )
    return "NORTHBOUND";
  else if ( directionCode=="S" )
    return "SOUTHBOUND";
  else if ( directionCode=="RT" )
    return  "ROUND TRIP";
  else if ( directionCode=="3N" )
    return  "3-NIGHT";
  else if ( directionCode=="4N" )
    return  "4-NIGHT";
  else if ( directionCode=="P-CR" )
    return  "PANAMA - COSTA RICA";
  else if ( directionCode=="CR-P" )
    return  "COSTA RICA - PANAMA";
  else 
    return directionCode;
}
        
function hoverDeparture(id,cabinCategoryCode)
{
  if ( hoveredDepartureID>=0 )
  {
    var old_td = document.getElementById('dep_td_'+hoveredDepartureID);
    if ( old_td!=null ) 
    {
      if ( selectedDepartureID==hoveredDepartureID )
        old_td.className='priceblockcell_selected CabinCategory_'+hoveredCabinCategoryCode; 
      else
        old_td.className='priceblockcell CabinCategory_'+hoveredCabinCategoryCode; 
    }
  }

  if ( id>=0 && selectedDepartureID!=id )  // dont touch currently selected cell
  {
    var td = document.getElementById('dep_td_'+id);
    if ( td!=null ) td.className='priceblockcell_hover CabinCategory_'+cabinCategoryCode; 
    hoveredDepartureID = id;
    hoveredCabinCategoryCode = cabinCategoryCode;
  }
}
        
function selectDeparture(id,date,cabinCategoryCode,shipCode,direction)
{
  var old_td = document.getElementById('dep_td_'+selectedDepartureID);
  if ( old_td!=null ) old_td.className='priceblockcell CabinCategory_'+selectedCabinCategoryCode; 
  var td = document.getElementById('dep_td_'+id);
  if ( td!=null ) td.className='priceblockcell_selected CabinCategory_'+cabinCategoryCode;
  selectedDepartureID = id;
  selectedCabinCategoryCode = cabinCategoryCode;
  
  
  
  var old_td2 = document.getElementById('ShipSelector_'+selectedShipCode);
  if ( old_td2!=null ) old_td2.className="ShipSelector"; 
  var td2 = document.getElementById('ShipSelector_'+shipCode);
  if ( td2!=null ) td2.className="ShipSelector_selected";   
  selectedShipCode=shipCode;


  
//  var departure_details_1 = document.getElementById('departure_details_1');
  var cabinCategory = findCabin(shipCode,cabinCategoryCode);
  var ship = findShip(shipCode);
  var departure = findDeparture(shipCode,cabinCategoryCode,date);
  var tour = null;
  if ( departure!=null ) tour=findTour(departure.tour);
  if ( cabinCategory!=null && ship!=null && departure!=null && tour!=null ) 
  {
    var cwcDepartureSummary_imgDirectionChoice = 

document.getElementById("cwcDepartureSummary_imgDirectionChoice");
    if ( cwcDepartureSummary_imgDirectionChoice )
    {
        cwcDepartureSummary_imgDirectionChoice.src = 

"../../images/resources/"+direction+"_direction_display.gif";
    }
    var cwc_departure_cost = document.getElementById("cwc_departure_cost");
    if ( cwc_departure_cost )
    {
        cwc_departure_cost.innerHTML = departure.cost;
    }
    var cwc_departure_duration = document.getElementById("cwc_departure_duration");
    var departure_summary_direction = document.getElementById("departure_summary_direction");
    if ( departure_summary_direction )
    {
        departure_summary_direction.innerHTML = getShortDirectionNameFromCode(direction);
    }

    var departure_summary_direction_2 = document.getElementById("departure_summary_direction_2");
    if ( departure_summary_direction_2 )
    {
        departure_summary_direction_2.innerHTML = getShortDirectionNameFromCode(direction);
    }
    
    var cwc_departure_places = document.getElementById("cwc_departure_places");
    if ( cwc_departure_places )
    {
        cwc_departure_places.innerHTML = tour.places;
    }
    var cwc_departure_departures = document.getElementById("cwc_departure_departures");
    var cwc_departure_departing = document.getElementById("cwc_departure_departing");
    if ( cwc_departure_departing )
    {
        cwc_departure_departing.innerHTML = departure.departureDate;
    }
    
    var cwc_departure_returning = document.getElementById("cwc_departure_returning");
    if ( cwc_departure_returning )
    {
        cwc_departure_returning.innerHTML = departure.returnDate;
    }
    var hlShipLink = document.getElementById("hlShipLink");
    if ( hlShipLink )
    {
        hlShipLink.innerHTML = ship.name;
    }

    var hlShipLink_2 = document.getElementById("hlShipLink_2");
    if ( hlShipLink_2 )
    {
        hlShipLink_2.innerHTML = ship.name;
    }

    var hlShipProfileImage = document.getElementById("hlShipProfileImage");
    if ( hlShipProfileImage )
    {
        hlShipProfileImage.src = ship.profile_small;
    }

    var hlShipProfileImage_2 = document.getElementById("hlShipProfileImage_2");
    if ( hlShipProfileImage_2 )
    {
        hlShipProfileImage_2.src = ship.profile_small;
    }

    var tour_code_2 = document.getElementById("tour_code_2");
    if ( tour_code_2 )
    {
        tour_code_2.src = tour.code;
    }

    var cwc_cabin_category = document.getElementById("cwc_cabin_category");
    if ( cwc_cabin_category ) 
    {
        cwc_cabin_category.innerHTML = cabinCategoryCode;
    }
    
    var cwc_cabin_category2 = document.getElementById("cwc_cabin_category2");
    if ( cwc_cabin_category2 ) 
    {
        cwc_cabin_category2.innerHTML = cabinCategoryCode;
    }
    
    var imgShipCabin = document.getElementById("imgShipCabin");
    if ( imgShipCabin )
    {
        imgShipCabin.src = cabinCategory.image_large;
    }

    var imgShipCabin_2 = document.getElementById("imgShipCabin_2");
    if ( imgShipCabin_2 )
    {
        imgShipCabin_2.src = cabinCategory.image_small;
    }

    var cwc_cabin_category_descr = document.getElementById("cwc_cabin_category_descr");
    if ( cwc_cabin_category_descr )
    {
        cwc_cabin_category_descr.innerHTML = cabinCategory.description;
    }
    
    var cwc_cabin_category_descr_2 = document.getElementById("cwc_cabin_category_descr_2");
    if ( cwc_cabin_category_descr_2 )
    {
        cwc_cabin_category_descr_2.innerHTML = cabinCategory.description;
    }
    
    // ************* and now for tab 4 *************
    
    var deckplan1_Ship_details2 = document.getElementById("deckplan1_Ship_details2");
    if ( deckplan1_Ship_details2 )
    {
        var s = "<ul>";
        for ( var i in shipFeatures ) 
        {
            var feature = shipFeatures[i];
            if ( feature.ship == shipCode ) s += "<li>"+feature.feature+"</li>";
        }
        s += "</ul>";
        deckplan1_Ship_details2.innerHTML = s;
    }
    
    var ship_profile = document.getElementById("ship_profile");
    if ( ship_profile )
    {
        ship_profile.src = ship.profile;
    }
    
    var ship_photo = document.getElementById("ship_photo");
    if ( ship_photo )
    {
        ship_photo.src = ship.photo;
    }
    
    var ship_plan = document.getElementById("ship_plan");
    if ( ship_plan )
    {
        ship_plan.src = ship.plan;
    }
    
    var ship_name = document.getElementById("deckplan1_ship_name");
    if ( ship_name )
    {
        ship_name.innerHTML = ship.name;
    }
    
    var ship_description = document.getElementById("deckplan1_ship_description");
    if ( ship_description )
    {
        ship_description.innerHTML = ship.details;
    }
    
    var cabinCategories = findCabinsForShip(shipCode);
    var deckplan1_Ship_plan3 = document.getElementById("deckplan1_Ship_plan3");
    if ( deckplan1_Ship_plan3 ) 
    {
        var s = "";
        for ( var i in cabinCategories )
        {
            var cabinCategory = cabinCategories[i];
            if ( cabinCategory!=null && cabinCategory.name!="" )
            {
                var t="<div class='CabinTitle CabinCategory_"+cabinCategory.code+"'>" +cabinCategory.name 

+"</div><br />"+
                   "<img src='" + cabinCategory.image_small + "' /><br /><br /><br />";
//                s += cabinCategory.description;
                s += t;
            }
        }
        deckplan1_Ship_plan3.innerHTML = s;
    }
    
    
/*
    departure_details_1.innerHTML = 
                    "<table style=\"width:400px;height:45px;border:1px solid red;\"><tr>"+
                    "<td align=\"left\" style=\"font-weight:bold;\">'+ship.name+'</td>"+
                    "<td align=\"right\" rowspan=2><img src=\"'+ship.image+'\"></td>" +
                    "</tr><tr>"+
                    "<td align=\"left\">TOUR " + tour.TourCode + " '+direction+'</td>" +
                    "</tr></table>';
*/                    
  }
}
 
function selectShip(shipCode)
{
    for ( var i in departures )
    {
        var departure = departures[i];
        if ( departure.ship == shipCode )
        {
            var tour = findTour(departure.tour);
            selectDeparture(departure.id,departure.departureDate,departure.cabin,shipCode,tour.direction);
            break;
        }
    }
}

function hoverShip(shipCode)
{
  if ( hoveredShipCode!="" )
  {
    var old_td = document.getElementById('ShipSelector_'+hoveredShipCode);
    if ( old_td!=null ) 
    {
      if ( selectedShipCode==hoveredShipCode )
        old_td.className="ShipSelector_selected"; 
      else
        old_td.className="ShipSelector"; 
    }
  }

  if ( shipCode!="" && selectedShipCode!=shipCode )  // dont touch currently selected cell
  {
    var td = document.getElementById('ShipSelector_'+shipCode);
    if ( td!=null ) td.className="ShipSelector_hover"; 
    hoveredShipCode = shipCode;
  }
}

function WindowWidth()
{
    //Non-IE
    if( window.document.body!=null && typeof( window.document.body.clientWidth ) == 'number' )
      return window.document.body.clientWidth; 

    //IE 6+ in 'standards compliant mode'
    else if ( window.document.documentElement && window.document.documentElement.clientWidth ) 
      return window.document.documentElement.clientWidth;

    //IE 4 compatible
    else if ( window.document.body && window.document.body.clientWidth ) 
      return window.document.body.clientWidth;
}

function WindowHeight()
{
    //Non-IE
    if( typeof( window.innerHeight ) == 'number' )
      return window.innerHeight;

    //IE 6+ in 'standards compliant mode'
    else if ( window.document.documentElement && window.document.documentElement.clientHeight ) 
      return window.document.documentElement.clientHeight;

    //IE 4 compatible
    else if ( window.document.body && window.document.body.clientHeight ) 
      return window.document.body.clientHeight;
}

function examine(obj)
{      
  var simple = true;
    if ( obj )
    {
        var rpt = "";
        for (var item in obj)
        {
        if ( item )
        {
            try
            {
            if ( obj[item] )
            {
                if ( item=="innerHTML" || item=="outerHTML" )
                {
                    if ( simple )
                        rpt += item+" = [suppressed]\n";
                    else
                        rpt += "<span style='font-weight:bold;'>"+item+" = [suppressed]\n";
                }
                else
                {
                    if ( simple )
                        rpt += item+" = "+obj[item]+"\n";
                    else
                        rpt += "<span style='font-weight:bold;'>"+item+" = "+obj[item]+"\n";
                }
            }
            else
            {
                if ( simple )
                rpt += item+" = null\n";
                else
                rpt += "<span style='font-weight:bold;'>"+item+" = <span style='color:blue;'>null</span>\n";
            }
            }
            catch( e )
            {
            if ( simple )
                rpt += item+" = error\n";
            else
                rpt += "<span style='font-weight:bold;'>"+item+" = <span style='color:red;'>error</span>\n";
            }
        }
        else
        {
            if ( simple )
            rpt += "invalid member\n";
            else
            rpt += "<span style='color:red;'>invalid member</span>\n";
        }
        }
    }
    else
    {
        if ( simple )
        rpt = "null";
        else
        rpt = "<span style='color:red;'>null</span>\n";
    }
    if ( false )
        alert(rpt);
    else
    {
        var w = window.open("","_blank","status=yes,resizable=yes,scrollbars=yes,width=400,height=300");
        w.document.write("<html><body><pre>"+rpt+"</pre></body></html>\n");
        w.document.close();
    }
}

function show(rpt)
{
    var w = window.open("","_blank","status=yes,resizable=yes,scrollbars=yes,width=400,height=300");
    w.document.write("<html><body>"+rpt+"</body></html>\n");
    w.document.close();
}
      
function pageScrollTop()
{
  if (document.documentElement && document.documentElement.scrollTop)
    return document.documentElement.scrollTop;
  else if (document.body)
    return document.body.scrollTop;
  else
    return 0;
}


