/*
 * Rutinas de invocación WMS de los tiles
 */

//Default image format, used if none is specified
var FORMAT_DEFAULT="image/png";

function markTile(a, b) {
	if (grafcan.debug.enabled && !grafcan.debug.flag) {
		map.clearOverlays();
	}
	grafcan.debug.flag = true;
	var point = new GPoint(a.x*256,(a.y+1)*256);
	var proy = G_NORMAL_MAP.getProjection();
	var latlng = proy.fromPixelToLatLng(point,b);
	point=null;
	map.addOverlay(new GMarker(latlng, {title:'('+a.x+', '+a.y+') ['+b+']'}));
}
function addAmp(url) {
	var _url = url + ((url.charAt(url.length-1)!="?")?"&":"");
	return _url;
}
getTileUrl_default = function(a,b,c) {
	var lULP = new GPoint(a.x*256,(a.y+1)*256);
	var lLRP = new GPoint((a.x+1)*256,a.y*256);
	var lUL = G_NORMAL_MAP.getProjection().fromPixelToLatLng(lULP,b,c);
	var lLR = G_NORMAL_MAP.getProjection().fromPixelToLatLng(lLRP,b,c);
	lULP=lLRP=null;
	var lBbox=lUL.lng()+","+lUL.lat()+","+lLR.lng()+","+lLR.lat();	
	if (this.minResolution()>zoom || this.maxResolution()<zoom) {
		this.getTileUrl = getTileUrl_blank;
	} else {
		setOriginalTileUrl(this);
	}
	return this.getTileUrl(a,b,c);
}
getTileUrl_opaque = function(tile, zoom) {
	//if (grafcan.debug.enabled) markTile(tile, zoom);
	//
	if (this.minResolution()>zoom || this.maxResolution()<zoom) {
		return getTileUrl_blank(true);
	}
	if (this.myFormat == undefined)
    	this.myFormat = FORMAT_DEFAULT;
	if (typeof(window['this.myStyles'])=="undefined") this.myStyles="";
	var lULP = new GPoint(tile.x*256,(tile.y+1)*256);
	var lLRP = new GPoint((tile.x+1)*256,tile.y*256);
	var lUL = G_NORMAL_MAP.getProjection().fromPixelToLatLng(lULP,zoom);
	var lLR = G_NORMAL_MAP.getProjection().fromPixelToLatLng(lLRP,zoom);
	lULP=lLRP=null;
	var lBbox=lUL.lng()+","+lUL.lat()+","+lLR.lng()+","+lLR.lat();
	var lURL=addAmp(this.myBaseURL);
	lURL+="REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&SRS=EPSG:4326";
	lURL+="&LAYERS="+this.myLayers;
	lURL+="&STYLES="+this.myStyles;
	lURL+="&FORMAT="+this.myFormat;
	lURL+="&BBOX="+lBbox;
	lURL+="&WIDTH=256&HEIGHT=256&reaspect=false";
	lURL+="&ID="+grafcan.uid;
	return lURL;
}
getTileUrl_transparent = function(tile, zoom) {
	if (this.minResolution()>zoom || this.maxResolution()<zoom) {
		return getTileUrl_blank(true);
	}
	if (this.myFormat == undefined)
    	this.myFormat = FORMAT_DEFAULT;
	if (typeof(window['this.myStyles'])=="undefined") this.myStyles="";
	var lULP = new GPoint(tile.x*256,(tile.y+1)*256);
	var lLRP = new GPoint((tile.x+1)*256,tile.y*256);
	var lUL = G_NORMAL_MAP.getProjection().fromPixelToLatLng(lULP,zoom);
	var lLR = G_NORMAL_MAP.getProjection().fromPixelToLatLng(lLRP,zoom);
	lULP=lLRP=null;
	var lBbox=lUL.lng()+","+lUL.lat()+","+lLR.lng()+","+lLR.lat();
	var lURL=addAmp(this.myBaseURL);
	lURL+="REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&SRS=EPSG:4326";
	lURL+="&LAYERS="+this.myLayers;
	lURL+="&STYLES="+this.myStyles;
	lURL+="&FORMAT="+this.myFormat;
	lURL+="&BBOX="+lBbox;
	lURL+="&WIDTH=256&HEIGHT=256&reaspect=false";
	lURL+="&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE";
	lURL+="&ID="+grafcan.uid;
	return lURL;
}
function getTileUrl_blank(trans) {
	if (trans)
		return(document.location.protocol+"//"+document.location.host+document.location.pathname+"img/blank.png");
	else
		return(document.location.protocol+"//"+document.location.host+document.location.pathname+"img/blank.jpg");
}
function customOpacity() { return this.myOpacity; }
//
getTileUrl_single = function(params) {
	var lURL = addAmp(params["baseUrl"]);
	var srs = "EPSG:4326";
	if (params["srs"]) srs = params["srs"];	
	lURL+="REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&SRS="+srs;
	lURL+="&LAYERS="+params["layers"];
	lURL+="&STYLES=";
	lURL+="&FORMAT="+params["format"];
	lURL+="&BBOX="+params["bbox"];
	lURL+="&WIDTH="+params["width"]+"&HEIGHT="+params["height"]+"&reaspect=false";
	lURL+="&TRANSPARENT=TRUE";
	lURL+="&ID="+grafcan.uid;
	return lURL;
}
