/**
 * @requires OpenLayers/Map.js
 */

Ext.namespace('mapfish.widgets');

/**
 * Class: mapfish.widgets.miniMap
 * Window that containe the miniMap.
 *
 * Typical usage:
 * (start code)
 * var minimap = new mapfish.widgets.miniMap({
 *    contentEl : 'miniMap',
 *    map: map,
 *    positionXY : 'br'   
 * });
 * (end)
 *
 * Inherits from:
 * - {Ext.Window}
 */


/**
 * Constructor: mapfish.widgets.miniMap
 *
 * Parameters:
 * config - {Object} The config object
 */
mapfish.widgets.miniMap = function(config) {
    Ext.apply(this, config);
    mapfish.widgets.miniMap.superclass.constructor.call(this);
};


Ext.extend(mapfish.widgets.miniMap, Ext.Window, {
   
    /**
     *  Defaults property params
     */
    title : 'Mini Map',
    closable : false,
    resizable : false,
    margins: '0 0 0 0',   
    hideBorder : false,
    collapsible : true,
    width : 190,
    height : 120,
  
    initComponent: function() {
        var mMap = new Ext.Window({
		title: this.title,
		closable : this.closable,
		resizable : this.resizable,
		margins: this.margins,   
		hideBorder : this.hideBorder,
		collapsible : this.collapsible,
		width : this.width,
		height : this.height	     
    });
        this.items = mMap;      
        mapfish.widgets.Shortcuts.superclass.initComponent.call(this);
  },
     
    // private
    onRender: function(container, position) {
            if (!this.el) {
                    //this.el = document.createElement('divMiniMap');
                    this.contentEl = document.createElement('divMiniMap');
            }           
            miniMap = new OpenLayers.Control.OverviewMap({div : $(this.contentEl) });
            map.addControl(miniMap);     
            mapfish.widgets.miniMap.superclass.onRender.apply(this, arguments);
    }   
   
});
Ext.reg('miniMap', mapfish.widgets.miniMap);
