Roo.data.UrlHandler = Ext.extend(Ext.util.Observable, {
	constructor: function(config) {
		Roo.data.UrlHandler.superclass.constructor.apply(this, arguments);
		this.addEvents( 'receivedUrlParameters' );
	}
	,parametersPresent: function() {
		if (window.location.search != null && window.location.search.substring(1) != null) {
			var queryParams = Ext.urlDecode(window.location.search.substring(1));
			if (queryParams.woonplaats!=null && queryParams.woonplaats.length>0) {
				return true;
			}
			if (queryParams.bbx1!=null &&
				queryParams.bbx2!=null &&
				queryParams.bby1!=null &&
				queryParams.bby2!=null) {
				return true;
			}
			if (queryParams.planidn!=null && queryParams.planidn.length>0) {
				return true;
			}
			return false;
		}
	}
	,initialize: function() {
		if (window.location.search != null && window.location.search.substring(1) != null) {
			var queryParams = Ext.urlDecode(window.location.search.substring(1));

			if (queryParams.woonplaats!=null && queryParams.woonplaats.length>0) {
				this.fireEvent('receivedUrlParameters', { woonplaats: queryParams.woonplaats });
			}
			else if(queryParams.bbx1!=null &&
					queryParams.bbx2!=null &&
					queryParams.bby1!=null &&
					queryParams.bby2!=null) {

				try {
					// bounding box parameters not empty.
					if(Ext.isNumber( Number(queryParams.bbx1) )
						&& Ext.isNumber( Number(queryParams.bbx2))
						&& Ext.isNumber( Number(queryParams.bby1))
						&& Ext.isNumber( Number(queryParams.bby2))) {
						// bounding box parameters are all greater than 0.

							var boundingBox = 	{
												minX:queryParams.bbx1,
												minY:queryParams.bby1,
												maxX:queryParams.bbx2,
												maxY:queryParams.bby2
												};

							this.fireEvent('receivedUrlParameters', { boundingBox: boundingBox });
					} else {
						Ext.Msg.alert(messages.msg.titleWarning(), messages.urlHandler.msg.noValidNumericParams());
					}
				} catch(ex) {
					console.warn(ex);
					Ext.Msg.alert(messages.msg.titleWarning(), messages.urlHandler.msg.noValidNumericParams());
				}
			}
			else if(queryParams.planidn!=null && queryParams.planidn.length>0) {
				this.fireEvent('receivedUrlParameters', { planidn: queryParams.planidn });
			}
		}
	}
});