(function($){
    $.fn.extend({
     //   currentStatus          : 'offline', // offline, online, away
        options         : false,
        user            : undefined,
        
        tile : function (_userdata,_options)
        {
            if(!$(this).attr('initialized')){
                // altrimenti istanzia la classe dimensione e colore
                $(this).addClass('tile tile-size');
                $(this).append('<div class="status"></div>');
                $(this).append('<div class="filter"></div>');
                $(this).attr('initialized',true);
            }
            // se ho i dati utente va a caricare l'immagine
            if(_userdata) this._defineUser(_userdata,_options);
        },
        _defineUser : function (_userdata,_options){
            var userdata = {
                id:     undefined,
                sex:    undefined
            };
            var options = {
                filter:		false,	//filtred
                banner:		false
            };
            this.user = $.extend(userdata, _userdata);
            
            var img = "http://"+imageserver+'/profile/'+this.user.id+'/picture';
            $(this).css('background-image', 'url('+img+')');
            this.options = $.extend(options, _options);
            // 	$(this).find('.status').status(); // resetta lo stato cancellando il puntino
            $(this).attr('id', 'tile_'+this.user.id);
            $(this).attr('sex', this.user.sex);
            $(this).attr('category', this.user.category);
            var thisTile = $(this);
            
            $(this+' img[src=' + img + ']').attr('src',img);
            if(!$.browser.msie){
            	$.cacheImage(img, {
                    complete: function (e) {
                        var event = $.Event('cacheImageComplete');
                        thisTile.trigger(event);
                    },
                    load : function (e) {
                    	var rand=Math.floor(Math.random()*3);
                        //if(rand == 0 ) thisTile.find('.status').status('offline'); // solo x test, dopo sarà FMS a settare
                        if(rand == 1 ) thisTile.find('.status').status('online'); // solo x test, dopo sarà FMS a settare
                        if(rand == 2 ) thisTile.find('.status').status('away'); // solo x test, dopo sarà FMS a settare
                    },
                    error: function (e) {
                        thisTile.css('background-image', '');
                    },
                    abort: function (e) {
                        thisTile.css('background-image', '');
                    }
                });
            } 
        },
        setFilter : function (options){
//            var defaults = {
//                filter: false
//            };
//            var o = $.extend(defaults, options);
//            var objData = $(this).data( 'Data' );
//            if(!objData) return;
//            if(objData.filter != o.filter){
//                objData.filter = o.filter;
//                $(this).data( 'Data', objData);
//            }
        },
//        setStatus : function(_status)
//        {
//            $(this).find('.status').status(_status);
//        },
        setUpdate : function (){
//            var objData = $(this).data( 'Data' );
//            if(!objData) return;
//            $('#filter-' + objData.name + objData.rel).hide();
//            if(objData.filter){
//                if(objData.presence) $('#filter-' + objData.name + objData.rel).show(); else $('#filter-' + objData.name + objData.rel).show();
//            }
//            $('#presence-' + objData.name + objData.rel).css({
//                opacity: 1
//            });
//            $('#presence-' + objData.name + objData.rel).hide();
//            if(objData.presence) $('#presence-' + objData.name + objData.rel).show();
//            if(objData.filter &&  objData.presence) $('#presence-' + objData.name + objData.rel).css({
//                opacity: 0.2
//            });
        }
    });
})(jQuery);
