var chatMenuClass = { 
    tplReference : '#chat_menu',
    datasource : 'chat_menu_html',	
    init : function(menutype){
        switch(menutype){
            case 'messenger':
                this._setupMessenger();
                break;
				
            case 'chattone':
                this._setupChattone();
                break;
        };
    },
	
    // MESSENGER //////////////////////////////
    paginationOptions :
    {
        current_page: 0,
        items_per_page: 5, // replaced by setupPaginationOptions()
        num_display_entries: 10, // replaced by setupPaginationOptions()
        next_text: '>',
        prev_text: '<',
        num_edge_entries: 1 // replaced by setupPaginationOptions()
    },
    _setupMessenger : function(){
        $('#chat_menu .left').icoLinkMenu(
        {
            menuItems :	[	{
                icoClass:'lista_dettagli',
                text:'mostra lista conversazioni'
            }, {
                icoClass:'webcam',
                text:'attiva la webcam'
            }],
            direction : 	'horizontal',
            itemColor : 	'light',
            highlight : 	'text',
            itemType : 		'ico'
        });
		
        chatMenuClass.paginationOptions.callback = chatMenuClass._paginationHandler;
        
        chatMenuClass.action();
    },
    _setupPagination : function( list_length ){ //num_display_entries, num_edge_entries )
        $('#chat_menu .right').pagination(list_length, chatMenuClass._paginationOptions);
    },
    _paginationHandler : function (page_index, pagination_container)
    {
        chatMenuClass.paginationOptions.current_page = page_index;
        chatClass.renderHistory();
    },
	
    // CHATTONE //////////////////////////////
    _setupChattone : function(){

        // LISTA UTENTI /////////////////////////////////////////

        $.get('/global/components/chat/users_list.html',function(html){

            $('#chat_main_container tr').append(html);

            $('#users_list_handler').toggle(
                function (e){
                    chatMenuClass.closeUserlist();
                },
                function(e){
                    chatMenuClass.openUserlist();
                });

            $('#users_list_handler').click(); // chiude la lista all'inizio

        });

        // LISTA CAMERE ////////////////////////

        $.getJSON('/static/global/chatRooms.json',function(jsondata)
        {
            if(!jsondata) return;
            var data =  jsondata.chatRooms;

            $('#rooms_list_handler').html(data.rooms.length+' Camere');

            $.get('/global/components/chat/rooms_list.html',function(html)
            {
                $('#chat_main_container tr').prepend(html);
                for(r in data.rooms){
                    room = data.rooms[r];
                    $('#chat_rooms_list').append("<li id='"+room.name+"'><a href='javascript:;' class='default nowrap'>"+ room.name +" ("+room.lang+")</a></li>");
                }

                $('#rooms_list_handler').click(); // chiude la lista all'inizio

                $('#chat_rooms_list li').click(function(e){
                    var roomname = $(e.currentTarget).attr('id');
                    chatClass.enterRoom(roomname);
                });
            });

            $('#rooms_list_handler').toggle(
                function (e){
                    chatMenuClass.closeRoomslist();
                },
                function(e){
                    chatMenuClass.openRoomslist();
                });

            $('#chat').bind('NetConnection.Connect.Success',function(event,room){
                $('#current_room').html('Connesso a '+room);
            }).bind('NetConnection.Connect.Closed',function(event){
                $('#current_room').html('Non connesso');
            });
           
        });
        
    },
    action:function(){
    	// ACTIONS //////////////////////////////////////////////////////////////////
		
		$('#lista_cont .schedina').click(function(e){
			var room = $(e.currentTarget).data('user').id;
			console.log(room,"selected");
			chatClass.enterRoom(room);
		});
		$('#videos .close_btn').click(function(){
			messengerClass.videosOff();
		});
		$('#chat_cont #chat_menu .left').click(function(e){
			console.log(e.target.id);
			switch(e.target.id){
				case 'a_lista_dettagli':
					$('.grouplist').toggle();
					break;
					
				case 'a_webcam':
					if( messengerClass.videosActive ) messengerClass.videosOff();
					else messengerClass.videosOn();
					break;
			}
		});
    },
    openUserlist : function(){
        $('#container_users_container').show();
        $('#users_list_handler').addClass('opened');
        chatClass.resizeChat();
    },
    closeUserlist : function(){
        $('#container_users_container').hide();
        $('#users_list_handler').removeClass('opened');
        chatClass.resizeChat();
    },
    openRoomslist : function(){
        $('#container_rooms_container').show();
        $('#rooms_list_handler').addClass('opened');
        chatClass.resizeChat();
    }
    ,
    closeRoomslist : function(){
        $('#container_rooms_container').hide();
        $('#rooms_list_handler').removeClass('opened');
        chatClass.resizeChat();
    }
};
