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

/**
 * Factory separating Ext library; makes it easy to substitute
 * actual Ext classes with their mocks
 * @singleton
 */
ExtFactory = {
    get: function(clsName, cfg){
        var ext = this.getExt();
        if(ext){
            switch(clsName){
                case 'Connection':
                    return new Ext.data.Connection(cfg);
                case 'Panel':
                    return new Ext.Panel(cfg);
                case 'TabPanel':
                    return new Ext.TabPanel(cfg);
                case 'DelayedTask':
                    return new Ext.util.DelayedTask(cfg, arguments[2]);
                default:
                    throw new TypeError("Class not found in Ext namespace");
            }
        }
        throw new TypeError('Ext namespace does not exist');
    },
    getExt: function(){
        return Ext;
    }
};

