/**
* SABS Agent Search And Booking Software
* <http://www.sabsagent.com>
* Copyright(c) 2001-2009, Micros Travel
*
* @author Jacek Spera <jspera@micros.com>
*/

SerialPollWorker = Ext.extend(PollWorker, {
    ticker: null,
    delay: 2000,
    repeat: 15,
    start: function(){
        this.ticker = ExtFactory.get('DelayedTask', this.doAction, this);
        this.fireEvent('start', this);
        this.ticker.delay(this.delay);
    },
    doAction: function(){
        var wkr = this.getPollWorker();
        this.repeat--;
        wkr.start();
    },

    getPollWorker: function(){
        var thisPollWorker = new PollWorker({
            offset: this.offset,
            url: this.url,
            session: this.session,
            searchType:this.searchType,
            searchDate: this.searchDate,
				extraParams:this.extraParams,
            SABSConfig: this.SABSConfig,
            listeners: {
                scope: this,
                'results': this.onResults,
                'complete': this.onComplete,
                'error': this.onError
            }
        });
		  return thisPollWorker;
    },
    onError:function(wkr, searchType, errorMsg){
        this.fireEvent('error', this, searchType, errorMsg);
    },
    onResults:function(wkr, searchType, results){
        this.lastResponse = wkr.lastResponse;
        this.fireEvent('results', this, searchType, results);
        this.offset+=results.length;
        if(this.repeat > 0){
           this.ticker.delay(this.delay);
        } else {
            this.onComplete();
        }
    },
    onComplete:function(wkr, searchType){
        this.ticker.cancel();
        this.fireEvent('complete', this, this.searchType);
    }
});
