/**
 * CVS $Id: rest.js,v 1.14 2010/12/09 13:19:12 maduv Exp $
 */

var PlatsR_REST = {

	getPageUrl: function(path, includeMapState) {
		var url = location.protocol + "//" + location.host + path;

		if(typeof(PlatsR_map) != 'undefined' && PlatsR_map.map != null) {
			var newQstr = "";
			if (includeMapState) {
				var mapExtent = PlatsR_map.map.getExtent().toBBOX(0);
				var mapZoom = PlatsR_map.map.getZoom();
				/* When the mapsize is small, zoomlevel is 0 at a level where its normally 4+ */
				if(mapZoom == 0 && PlatsR_map.mapSize != 'SMALL_MAP') { 
					mapZoom = 1; /* Zoom in to first cluster level */
					newQstr = "mapZoom="+mapZoom; /* Skip extent on this zoom level */
				} else {
					newQstr = "mapExtent="+mapExtent+"&mapZoom="+mapZoom;
				}
			}
			
			var qstr = window.location.search.replace(/\?/,"&");
			var pair = qstr.split("&");
						
			for (var i=1; i<pair.length; i++) {
				var item = pair[i].split("=");
				if (item.length == 2) {
					if (item[0] != "mapExtent" && item[0] != "mapZoom") {
						newQstr += "&"+item[0]+"="+item[1];
					} 
				}
			}
			
			if (newQstr.length > 0 && newQstr.indexOf('?') == -1) {
				newQstr = '?' + newQstr;
			}
			
			url += newQstr;		
		}
		
		return url;	
	},	
		
	getCurrentPageUrl: function(includeMapState) {
		var url = PlatsR_REST.getPageUrl(location.pathname, includeMapState);
		return url;
	},

	getEncodedPageUrl: function(includeMapState) {
		var url = PlatsR_REST.getCurrentPageUrl(includeMapState);
		url = escape(url);
		return url;
	},
	
	getUrlParameterValue: function(name) {
		var value = '';
		var qstr = window.location.search.replace(/\?/,"&");
		var pair = qstr.split("&");
		for (var i=1; i<pair.length; i++) {
			var item = pair[i].split("=");
			if (item.length == 2) {
				if (item[0] == name) {
					value = item[1];
				} 
			}
		}
		return value;			
	},

	getPopupLoadingHtml: function() {
		return "<div class=\"mapPopup\"><div class=\"loading\">&nbsp;</div></div>";
	},
	
	getPopupHtml: function(placeId) {
		var content = '';
		var url = '/platsr/data/plats/popup/id/' + placeId;
		var pageRequest = new XMLHttpRequest();
		if (pageRequest) {
			pageRequest.open('GET', url, false);
			pageRequest.send(null);
			if (pageRequest.status==200) {
				content = pageRequest.responseText;
			}
		}
		return content;
	}	

};
