﻿FlatToRentClient = function()
{
    this.checkbox = [];
}

$j.extend( FlatToRentClient, 
{
    CookieName : "BeApartFlatComparator",
    prototype :
    {
        Init : function( ClientID, FlatID )
        {
            var self = this;
            var $check = $j('#'+ClientID);
            this.checkbox.push({ C : $check, F : FlatID });
        
            $check.click(function() {
                 if (this.checked) self.AddFlat( FlatID )
                 else self.RemoveFlat( FlatID );
             });
             
             if (this.IsSelected( FlatID )) $check.attr('checked', 'checked');
        },

        AddFlat : function( FlatID )
        {
            var c = $j.cookie(FlatToRentClient.CookieName);
            
            c = (c == null || c.length == 0) ? [] : c.split(',') ;
            
            var s = true;
            for (var x=0; x<c.length;x++)
            {
                if ( c[x] == FlatID ) s = false;
            }
            
            if (s) c.push(FlatID);
            
            if (c.length > 4)
            { 
                var i = c[0];
                c = c.slice(1, c.length);
                
                var o;
                for ( var x=0; x<this.checkbox.length;x++)
                {
                    o = this.checkbox[x];
                    if (i == o.F) o.C.removeAttr("checked");
                }
            }
            
            $j.cookie( FlatToRentClient.CookieName, c.join(','), { path: '/', expires: 15 });
            
            return true;
        },
        
        RemoveFlat : function( FlatID )
        {
            var c = $j.cookie(FlatToRentClient.CookieName);
            
            c = (c == null || c.length == 0) ? [] : c.split(',') ;
            
            var n = [];
            for (var x=0; x<c.length;x++)
            {
                if (c[x] != FlatID) n.push(c[x]);
            }
            
            $j.cookie( FlatToRentClient.CookieName, n.join(','), { path: '/', expires: 15 } );
        },
        
        IsSelected : function (FlatID)
        {
            var c = $j.cookie(FlatToRentClient.CookieName);
            
            c = (c == null || c.length == 0) ? [] : c.split(',') ;
            
            for (var x=0; x<c.length;x++) if (c[x] == FlatID) return true;
               
            return false;
        }
    }
});

var FlatToRent = new FlatToRentClient();

FlatToRentBookingView = function(LinkID, PanelID, Url) {
    var $l = $j('#' + LinkID);
    var $p = $j('#' + PanelID);

    $l.click(function() { Cuke.Modal.enter(Url, { size:[500, 275] } ); });
}

FlatToRentUpdateCode = function( LinkID, PanelID )
{
    var $l = $j('#' + LinkID);
    var $p = $j('#' + PanelID);
    $l.click( function() 
    {
        $j.blockUI({
                message : $p,
                css : { top:'30%', width:'300px', height:'100px'}
        });
        $j('.blockOverlay').attr('title','Click to unblock').click($j.unblockUI);
    });
}

FlatToRentViewComparator = function( CloseButtonID, ClientID, FlatID )
{
    var $b = $j('#' + CloseButtonID);
    $b.click( function() 
    {
        var m = $j('#' + ClientID);
        if( m.length > 0 ) m.remove();
        FlatToRent.RemoveFlat( FlatID );
    });
    
    var $l = $j('.listContainer');
    
    $l.each( function()
    {
        var $ulList = $j('.detailList', $(this));
        for(var x=0;x<$ulList.length;x++)
        {
            var $ul = $j($ulList[x]);
            if( $ul.length > 0 )
            {
                var kids = $ul.children();
                for(var i=0;i<kids.length;i++)
                {
                    $j(kids[i]).mouseover( function()
                    {
                        Cuke.SyncDic.Val( 'ItemSelected', $j('li', $j(this).parents('.listContainer')).index(this) );
                    } );
                }
            }
        }
    });
    
    Cuke.SyncDic.Bind( 'ItemSelected', function(value, name) 
    { 
        for(var i=0;i<$l.length;i++)
        {
            $j('li.selected', $l[i]).removeClass('selected');
            $j('li:eq('+value+')', $l[i]).addClass('selected');
        }
    });
}
