﻿/*
#Region "History"
'20090311 - RH - Class added, deals with accommodation availability requests.
'20090315 - RH - Changed start function added display function, for consistency and for autosearching
'20090316 - RH - Added close function
'20090318 - RH - Added autopopulate function, this will look for data to auto populate the form with.
'20090327 - RH - Added code to display form elements which are hidden on lightsout
'20090408 - RH - ie6 fix
'20090408 - RH - Added startdate paramater to display function so that it overrides whatever is stored in defaults field
#End Region
*/

function AccommodationSearch()
{

    this.Start = function()
    {
        if($('as_autostart'))
        {
            this.Display();
        }
    }
    
    this.Display = function(name, destinationlocationid, departurelocationid, startdate)
    {
        Website.SnapTop();
        Website.LightsOff();
        $('Hover_AccommodationSearch').show();        
        $('Hover_AccommodationSearch').style.zIndex="1";    
        this.PopulateDuration();   
        this.PopulatePassengers(); 
        $('as_name').innerHTML=name;
        $('as_des').value=destinationlocationid; 
        $('as_dep').value=departurelocationid || 0; 
        
        $('as_holiday').setStyle('visibility: visible;');
        $('as_accommodation').setStyle('visibility: visible;');
        $('as_dep').setStyle('visibility: visible;');
        $('as_sd').setStyle('visibility: visible;');
        $('as_rm').setStyle('visibility: visible;');
        $('as_dur').setStyle('visibility: visible;');
        $('as_des').setStyle('visibility: visible;');
        $('as_ad_1').setStyle('visibility: visible;');
        $('as_ch_1').setStyle('visibility: visible;');
        $('as_in_1').setStyle('visibility: visible;'); 
        $('as_ad_2').setStyle('visibility: visible;');
        $('as_ch_2').setStyle('visibility: visible;');
        $('as_in_2').setStyle('visibility: visible;'); 
        $('as_ad_3').setStyle('visibility: visible;');
        $('as_ch_3').setStyle('visibility: visible;');
        $('as_in_3').setStyle('visibility: visible;'); 
        $('as_ad_4').setStyle('visibility: visible;');
        $('as_ch_4').setStyle('visibility: visible;');
        $('as_in_4').setStyle('visibility: visible;'); 
        $('as_ad_5').setStyle('visibility: visible;');
        $('as_ch_5').setStyle('visibility: visible;');
        $('as_in_5').setStyle('visibility: visible;'); 
        $('as_ad_6').setStyle('visibility: visible;');
        $('as_ch_6').setStyle('visibility: visible;');
        $('as_in_6').setStyle('visibility: visible;'); 
        
        this.AutoPopulate();
        
        if(startdate) {
            $('as_sd').value=startdate;  
        }
    }
    
    this.Close = function()
    {
        Website.LightsOn();
        $('Hover_AccommodationSearch').hide();  
    }
    
    this.Go=function()
    {
        var s='';
                       
        if($('as_holiday').checked) 
        {
            if($F('as_dep')==0)
            {   
                return;
            }
            s=qsb(s, 'Action', 'PS');
            s=qsb(s, 'StartDate', $F('as_sd'));
            s=qsb(s, 'Duration', $F('as_dur'));
            s=qsb(s, 'Occupancy', this.GetOccupancyString());
            s=qsb(s, 'DepartureLocationID', $F('as_dep'));
            s=qsb(s, 'DestinationLocationID', $F('as_des'));  
            s=qsb(s, 'AccommodationName', $('as_name').innerHTML);               
        }
        
        if($('as_accommodation').checked) 
        {
            s=qsb(s, 'Action', 'AS');
            s=qsb(s, 'StartDate', $F('as_sd'));
            s=qsb(s, 'Duration', $F('as_dur'));
            s=qsb(s, 'DestinationLocationID', $F('as_des'));              
            s=qsb(s, 'AccommodationName', $('as_name').innerHTML);     
            s=qsb(s, 'Occupancy', this.GetOccupancyString());      
        }
                
        top.location.href='Search.aspx?Searching=True&ClearBasket=True' + s;
        
        return false;
    }
    
    this.AutoPopulate=function()
    {
        if($('sb_def_m'))
        {
            switch($F('sb_def_m'))
            {
                case 'PS' : 
                    $('as_holiday').checked=true; 
                    $('AccommodationSearch_Departure').show();
                    break;
                case 'AS' : 
                    $('as_accommodation').checked=true; 
                    $('AccommodationSearch_Departure').hide();
                    break;
            }
        }
        
        if($('sb_def_sd')) $('as_sd').value=$F('sb_def_sd');
        
        if($('sb_def_oc'))
        {
            var occupancy= $F('sb_def_oc').split('|');
            
            $('as_rm').value=occupancy.size(); 
            
            this.PopulatePassengers();
            
            occupancy.each(function(s, index) {        
                $('as_ad_' + (index+1)).value=occupancy[index].split(',')[0];            
                $('as_ch_' + (index+1)).value=occupancy[index].split(',')[1];
                $('as_in_' + (index+1)).value=occupancy[index].split(',')[2];
            });   
        }
        
        if($('sb_def_d')) $('as_dur').value=$F('sb_def_d');
    }
         
    this.PopulateDuration=function()
    {
        var currval=$F('as_dur');
        
        $('as_dur').options.length=0;
        
        for(var i=1; i<29; i++)
        {
            if(i%7==0)
            {
                if(i==7)
                {
                    $('as_dur').options.add(new Option('1 Week', 7, true));
                }
                else
                {
                    $('as_dur').options.add(new Option((i/7) + ' Weeks', i));
                }
            }
            else
            {   
               
                
                if(i==1)
                {
                     $('as_dur').options.add(new Option(i + ' Night', i));
                }
                else
                {
                     $('as_dur').options.add(new Option(i + ' Nights', i));
                }
                
                
            }
        }  
        
        $('as_dur').value=currval;    
    }
    
    this.PopulatePassengers=function()
    {
        var ca;
        var cc;
        var ci;
        
        for(var i=1; i<=6; i++)
        {
            $('as_ad_' + i).style.display='none';
            $('as_ch_' + i).style.display='none';
            $('as_in_' + i).style.display='none';
        }
        
        for(var i=1; i<=$F('as_rm'); i++)
        {
            ca=$F('as_ad_' + i);
            cc=$F('as_ch_' + i);
            ci=$F('as_in_' + i);
            
            //adults,children,infants
            $('as_ad_' + i).options.length=0;
            $('as_ch_' + i).options.length=0;
            $('as_in_' + i).options.length=0;
            
            $('as_ad_' + i).style.display='block';
            $('as_ch_' + i).style.display='block';
            $('as_in_' + i).style.display='block';
            
            for(var j=0;j<10;j++)
            {               
                $('as_ad_' + i).options.add(new Option(j + (j==1?' Adult':' Adults'),j));
                $('as_ch_' + i).options.add(new Option(j + (j==1?' Child':' Children'),j));
                $('as_in_' + i).options.add(new Option(j + (j==1?' Infant':' Infants'),j));
            }   
            
            $('as_ad_' + i).value=ca;
            $('as_ch_' + i).value=cc;
            $('as_in_' + i).value=ci;
        } 
    }
    
    this.GetOccupancyString=function()
    {
        var occ='';
        
        for(var i=1; i<=$F('as_rm');i++)
        {       
            occ += $F('as_ad_' + i) + ',' + $F('as_ch_' + i)+',' + $F('as_in_' + i);
            if(i<$F('as_rm'))
            {
                occ+='|'
            }
        } 
        
        return occ;
    }    
}