

var results_page = new function()
    {
        this.group = new Array();
        var self = this;
        
        this.init = function()
        {
            jQuery('.new_itinerary').each(function(index){
	var $this = jQuery(this);	                   
	self.group[index] = new i_group();
	self.group[index].init($this);	
                });
        };               
    };

var i_group = function()
{
    this.root;
    this.current_page;
    this.pages = new Array();
    this.speed = 300;
    var self = this;
    
    this.init = function(obj)
    {
        self.root = obj;
        self.current_page = 1;
        self.hide_sailings();
        self.hide_wrapper();
    };
   
    this.hide_sailings = function()
    {
        jQuery(self.root).find('.alt_dates_wrapper').each(function(){
                var wrapper = jQuery(this);                        
                wrapper.find('.alt_sailing_outer').each(function(index){
	    var $this = jQuery(this);
	    if(index != 0)
	        {
	            $this.css('display', 'none');	            
	        }	
	    self.pages.push($this);
	});       
            });        
        self.rebuild_pagination();
    };

    this.hide_wrapper = function()
    {        
        var wrapper = jQuery(self.root).find('.alt_dates_wrapper');
        wrapper.css('display', 'none');       

        var link_container = jQuery(self.root).find('.alt_dates_link');
        var markup = "<a href=\"#\">View Prices By Sailing</a>";
        link_container.empty().append(markup);

        link_container.find('a').bind("click", function(e){
                e.preventDefault();
                var $this = jQuery(this);
                if(wrapper.css('display') == 'block')
	{
	    wrapper.fadeOut(self.speed, function(){
	            $this.empty().append('View Prices By Sailing');
	        });
	}
                else
	{
	    wrapper.fadeIn(self.speed, function(){
	            $this.empty().append('Hide Prices By Sailing');
	        });
	}                
            });        
    };

    this.rebuild_pagination = function()
    {
        var markup = '<span class="label">Results page </span>';
        var pagi_container = (self.root).find('.itinerary_pagi_outer');
        var i = 0;
        for(i; i < self.pages.length; i++)
            {
                if((i + 1) == self.current_page)
	{
	    markup += "<span class=\"pagi_node current\">"+(i + 1)+"</span>";
	}
                else
	{
	    markup += "<a class=\"pagi_node\" href=\"#\">"+(i + 1)+"</a>";
	}
            }        
        pagi_container.empty().append(markup);        

        pagi_container.find('.pagi_node').each(function(index){
                var $this = jQuery(this);
                
                if ( ! $this.hasClass('current') )
                {
			$this.bind("click", function(e){
			    e.preventDefault();
			    
			    self.pages[self.current_page - 1].fadeOut(
				    'fast',
				    function(){self.pages[index].fadeIn('fast');}
				    );
			    
			    self.current_page = index + 1;
			    self.rebuild_pagination();	    
			});
		}
	});
    };
};

jQuery(document).ready(function(){
        if(1 || jQuery('#j_on').length > 0)
            {
                results_page.init();
            }
});