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

PollWorker = function(cfg){
    //Ext.apply(this, cfg);
    this.addEvents('results');
    PollWorker.superclass.constructor.call(this, cfg);
};
Ext.extend(PollWorker, BaseWorker, {
    /**
    * @cfg {Date} searchDate
    */
    searchDate:null,
	 extraParams:null,
    /**
    * @cfg {Number} offset number of elements already received
    * @default 0
    */
    offset: 0,
    /**
    * @cfg {Number} page number of results to get from server
    * optional
    */
    page: null,
    onOkInHeader: function(response){
        var result = this.interpretMessageText(response[0].MessageText);
        //response.shift(); // get rid of now useless header
        this.fireEvent('results', this, this.searchType, response);
        if(result.finished){
            this.fireEvent('complete', this, this.searchType);
        }
    },
    interpretMessageText: function(message){
        var result = {};
        if(message.indexOf('Done') >= 0){
            result.finished = true;
        }
        return result;
    },
	 getParams: function(type){
        var lparams = {
            session: this.session,
            //'date': this.searchDate.format('ymd'),
            'want': this.getWantParam(type),
				timeout:10,
            reqhcached:1
        };
        if (this.extraParams !== null)
		  {
		      Ext.apply(lparams,this.extraParams);
		  }
		  return lparams;
    },
    getWantParam: function(type){
        var want = this.getApiType(type)+':'+ this.offset;
        if(this.page){
            want += ':'+this.page;
        }
        return want;
    }
});
