
function getMapObject(callFromIframe) {

	try {
		//return parent.parent.map.myMap.map;
		if(callFromIframe) var oIframePage = parent.document.getElementById("map");
		else var oIframePage = document.getElementById("map");
		var oDoc = (oIframePage.contentWindow || oIframePage.contentDocument);// left ie, right firefox
		return oDoc.myMap.map;
  } 
  catch(e) { 
  	return null; 
  }

}


function getMapObjectTabs(){
	try {
		var oIframePage = parent.document.getElementById("map")
		var oDoc = (oIframePage.contentWindow || oIframePage.contentDocument);// left ie, right firefox
		return oDoc.myMap.map;
	}
	catch(e) {return null;}
}


function resetPage(){
	//document.location = "http://geoserver3/acsar/estudi-immigracio.php";
	document.location = "http://oslo.geodata.es/acsar/estudi-immigracio.php";	
}


function defaultExtension () {
	var map = getMapObjectTabs();
	if (map != null) {
		map.showgml("box", 0, map.defaultextent["left"]+","+map.defaultextent["top"]+","+map.defaultextent["right"]+","+map.defaultextent["bottom"], true);
	}
}


function getVisibleLayers(){
	//get all the layers that are visible
  var sServiceName = "orto,topo";
  
  var layers_visible = new Array();
  var map = getMapObjectTabs();
  if (map!=null) 
  {
    for (var i = 0; i < map.connections.length; i++) 
    {
		  refresh = false;
		  if (sServiceName.indexOf(map.connections[i].name) == -1)
		  {
		  	refresh = true;
		  	for (var j = 0; j < map.connections[i].layers.length; j++) 
		  	{
        	if (map.getvisible(i,j)) 
        	{
         		layers_visible.push(map.connections[i].layers[j].name);
         	}
	    	}
  		}
  	}
		if (layers_visible.length > 0)
			return layers_visible.join(",");
		else
			return false;
	}
	
}


function setInitBackground() {
	var map = getMapObject();
	if (map != null){
		for (var i = 0; i < backgrounds.length; i++) {
			if (map.getvisible(backgrounds[i].server, backgrounds[i].name))
				document.getElementById(backgrounds[i].name).checked = true;
			else
				document.getElementById(backgrounds[i].name).checked = false;
		}
	}
}



function changeBackground(title) {

	var map = getMapObject();
	if (map != null){
		for (var i = 0; i < backgrounds.length; i++) {
			for (var j = 0; j < backgrounds[i].length; j++) {
				if (backgrounds[i][j].title == title) {
					map.setvisible(backgrounds[i][j].server, backgrounds[i][j].name, true);
				}
				else { 
					map.setvisible(backgrounds[i][j].server, backgrounds[i][j].name, false);						
				}
				map.loadingcount = 0;
				map.refresh(backgrounds[i][j].server);
			}
		}
	}

}


function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}
