var SocialTwitter = new Class({

    options: {
        'profiles' : null,
        'keywords' : null,
        'order' : null,
        'max' : null,
        'uniqid' : null,
        'cacheid' : null,
        'cacheexpire' : null,
        'preloaderObject': null,
        'messagesObject': null
    },

    initialize: function( profiles, keywords, order, max, uniqid, cacheid, cacheexpire ) {
        this.options.profiles = profiles;
        this.options.keywords = keywords;
        this.options.order = order;
        this.options.max = max;
        this.options.uniqid = uniqid;
        this.options.cacheid = cacheid;
        this.options.cacheexpire = cacheexpire;

        //set preloader
        this.options.preloaderObject = $( 'social-twitter-preloader-' + this.options.uniqid );
        this.options.messagesObject = $( 'social-twitter-messages-' + this.options.uniqid );
        if ( this.options.preloaderObject ) {
            this.options.preloaderObject.fade( 'hide' );
            this.options.preloaderObject.setStyle( 'display', 'block' );
        }

        this.load();
    },

    load: function() {
        var _this = this;
        new Request({
            'url': '/Request/html/social/getTwitterMessages/'+this.options.profiles+'/'+this.options.keywords+'/'+this.options.order+'/'+this.options.max+'/'+this.options.uniqid+'/'+this.options.cacheid+'/'+this.options.cacheexpire+'.html',
            onRequest: function() {
                _this.options.preloaderObject.fade('in');
            },
            onSuccess: function( response ) {
                _this.options.messagesObject.set( 'html', response );
                _this.options.preloaderObject.fade('out');

                //refresh cache
                new Request({
                    'url': '/Request/html/social/cacheTwitterMessages/'+_this.options.profiles+'/'+_this.options.keywords+'/'+_this.options.order+'/'+_this.options.max+'/'+_this.options.uniqid+'/'+_this.options.cacheid+'/'+_this.options.cacheexpire+'.html',
                    onRequest: function() {
                        if ( !response )
                            _this.options.preloaderObject.fade( 'in' );
                    },
                    onSuccess: function() {
                        new Request({
                            'url': '/Request/html/social/getTwitterMessages/'+_this.options.profiles+'/'+_this.options.keywords+'/'+_this.options.order+'/'+_this.options.max+'/'+_this.options.uniqid+'/'+_this.options.cacheid+'/'+_this.options.cacheexpire+'.html',
                            onRequest: function() {
                                _this.options.preloaderObject.fade('in');
                            },
                            onSuccess: function( response2 ) {
                                if ( response2 )
                                    _this.options.messagesObject.set( 'html', response2 );
                                if ( !response && !response2 )
                                    _this.options.messagesObject.set( 'html', '<div class="nomessages"><span>Geen berichten gevonden.</span></div>' );
                                _this.options.preloaderObject.fade('out');
                            }
                        }).send();
                    }
                }).send();
            }
        }).send();
    }

});
