/**
 * @class FlamingoWrapper
 * @extends Ext.util.Observable
 *
 * Wraps the JS api that comes with Flamingo.
 *
 * @author ssmeman
 * @version 1.0
 */

/**
 * @constructor
 * @param {Object} config Configuration options
 */
Roo.data.FlamingoWrapper = Ext.extend(Ext.util.Observable, {
	constructor: function(config) {
		// call parent contructor
		Roo.data.FlamingoWrapper.superclass.constructor.apply(this, arguments);
	}

	,initialize: function() {
		eventHub.on({
			scope: this
			,'selectedPlan': function(plan) { }
		});

		// call parent initialize
		Roo.data.FlamingoWrapper.superclass.initComponent.apply(this, arguments);
	} // e/o function initialize

	,moveToCoord: function(x, y) {
		if (Roo.flamingoInitialized) { window.moveToCoord(x, y); }
	}

	,moveToExtent: function(minX, minY, maxX, maxY) {
		if (Roo.flamingoInitialized) { window.moveToExtent(minX, minY, maxX, maxY); }
	}

	,getExtent: function() {
		if (Roo.flamingoInitialized) { return window.getExtend(); }
		return null;
	}

	,setLocation: function(x, y, name) {
		if (Roo.flamingoInitialized) { window.setLocation(x, y, name); }
	}

	,removeLocation: function() {
		if (Roo.flamingoInitialized) { window.removeLocation(); }
	}

	,setLayersVisible: function(playerName, mapName, layerNamesString, visible) {
		if (Roo.flamingoInitialized) { window.setLayersVisible(playerName, mapName, layerNamesString, visible); }
	}

	,addFilter: function(name, filter, update) {
		if (Roo.flamingoInitialized) { window.addFilter(name, filter, update); }
	}

	,removeFilter: function(name, update) {
		if (Roo.flamingoInitialized) { window.removeFilter(name, update); }
	}

	,highlightFeature: function(wmsUrl, sldServletUrl, featureTypeName, propertyName, value, alpha, name) {
		if (Roo.flamingoInitialized) { window.highlightFeature(wmsUrl, sldServletUrl, featureTypeName, propertyName, value, alpha, name); }
	}

	,resetFeature: function(name) {
		if (Roo.flamingoInitialized) { window.resetFeature(name); }
	}

	,showEnkelBestemmingHoofdgroepen: function(groepen) {
		if (Roo.flamingoInitialized) {
			window.showEnkelBestemmingHoofdgroepen(groepen);
		}
	}
	,showDubbelBestemmingen: function(groepen) {
		if (Roo.flamingoInitialized) {
			window.showDubbelBestemmingen(groepen);
		}
	}

	,releaseFilterButton: function() {
		if(Roo.flamingoInitialized) { window.releaseFilterButton(); }
	}
	,releasePlantreeButton: function() {
		if(Roo.flamingoInitialized) { window.releasePlanTreeButton(); }
	}

	,enableMaptip: function(layer, onOff) {
		if(Roo.flamingoInitialized) { window.enableMaptip(layer, onOff); }
	}

	,highlightLayerVVP: function(wmsUrl, layername, alpha, name) {
		if(Roo.flamingoInitialized) {  window.highlightLayerVVP(wmsUrl, layername, alpha, name); }
	}

	,drawLayerVVP: function(layername) {
		if(Roo.flamingoInitialized) {
			window.drawLayerVVvP(layername);
		}
	}

	,setButtonVisible: function(button, visible) {
		if(Roo.flamingoInitialized) {
			window.setButtonVisible(button, visible);
		}
	}
	,setAlpha: function(layers) {
		if(Roo.flamingoInitialized) {
			var layerList = layers.split(',');
			for(var i=0; i<layerList.length; i++) {
				window.setAlpha(layerList[i], Roo.defaultAlpha);
			}
		}
	}
});