

function NewWindow(mypage, myname, w, h, scroll) {
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	var winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable';
	var win = window.open(mypage, myname, winprops);
	if (parseInt(navigator.appVersion) >= 4) win.window.focus();
	return win;
}


function getExtentValues(){
	return document.forms[0].imgext.value.split(' ');	
}
function getCellSize(width,height){
	
	var extent=getExtentValues();
	return Math.max((extent[2] - extent[0])/(width-1), (extent[3] - extent[1])/(height-1));
	
}
function open_win(url, name, w, h, x, y, props) {
	if (x < 0) {
		x = (screen.width  - w) / 2;
		y = (screen.height - h) / 2;
	}

	var winprops = 'width='+w+',height='+h+',top='+y+',left='+x+','+props;
	window.open(url, name, winprops);
}

/*
function NewWindow(mypage, myname, w, h, scroll) {
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	var winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable';
	var win = window.open(mypage, myname, winprops);
	if (parseInt(navigator.appVersion) >= 4) win.window.focus();
	return win;
}
*/


function mouseenter_handler(name) {
}

function mouseexit_handler(name) {
}

function AdjustExtent(extent, width, height) 
{
  var cellsize1 = getCellSize(width,height);

  if(cellsize1 > 0) {
    var ox = Math.max(((width-1) - (extent[2] - extent[0])/cellsize1)/2,0);
    var oy = Math.max(((height-1) - (extent[3] - extent[1])/cellsize1)/2,0);

    extent[0] = extent[0] - ox*cellsize1;
    extent[1] = extent[1] - oy*cellsize1;
    extent[2] = extent[2] + ox*cellsize1;
    extent[3] = extent[3] + oy*cellsize1;
  }
  cellsize=cellsize1
  return(cellsize1);
}
function mousemove_handler(name, x, y) {
	/*var xx = Math.round( minx + x * scaleFactor );
	var yy = Math.round( miny + y * scaleFactor );
	//document.forms[0].xyref.value = "minx=" + minx + " miny=" + miny + " x: " + x + "   y: " + y;
	document.forms[0].xyref.value = "x: " + x + "   y: " + y;*/
		var extent=getExtentValues();
		var cellsize=getCellSize(getMapWidth(),getMapHeight());
		
    var text = '';	
    var utmx = Number(extent[0]) + Number(x)*Number(cellsize);
    
    var utmy = Number(extent[3]) - Number(y)*Number(cellsize);	
	  
    var latlon = calcularLatLon(utmy, utmx); 			
    var text = "x = " + utmx.toFixed(2) + " - y = " + utmy.toFixed(2) + " lat/lon"+latlon;

		document.forms[0].xyref.value=text;
/*	var cp = document.getElementById("coordPlanas");	
	var cg = document.getElementById("coordGeo");
    if(cp){
	   cp.innerHTML = text;	   
	}	
    if(cg){
	  cg.innerHTML = latlon;
    }*/
}

function reset_handler(name, minx, miny, maxx, maxy) {

}

function setbox_handler(name, minx, miny, maxx, maxy) {
	extent = new Array(minx, miny, maxx, maxy);
	var op = document.forms[0].cur_op.value;
	if (op != 'lupa_mas' && op != 'lupa_menos' &&
		op != 'centrar' && op != 'info' && op != 'move') return;

	document.forms[0].imgxy.value = minx + " " + miny; // alejar, centrar, drag
	
	if (document.forms[0].cur_op.value == 'lupa_mas') {
		document.forms[0].imgbox.value = minx + " " + miny + " " + maxx + " " + maxy;
	}

	if (document.forms[0].cur_op.value == 'info') {	// mode.value == 'query'

		var radio = frames['capas'].document.forms[0].qlayer;
		for (var i=0; i < radio.length; i++) {
			if (radio[i].checked == true) {
				document.forms[0].qlayer.value = radio[i].value;
				break;
			}
		}

		document.forms[0].target = '_queryWin';
		open_win('about:blank', '_queryWin', 290, 120, -1, -1, 'scrollbars=yes,resizable=yes,alwaysRaised');
		document.forms[0].submit();
		document.forms[0].target = '_self';

		return;
	}

	iframe_cgi();
	document.forms[0].submit();
}

function seterror_handler(message) {
	alert(message);
}

function measure_handler(name, s, t, n, a) {
	if ((s > 0) || (t > 0)) {
		document.forms[0].status.value = " TOTAL = " + Math.round(t*scaleFactor) + " mts. (" + Math.round(t*scaleFactor/1000) + " Km)  Segmento = " + Math.round(s*scaleFactor) + " mts. (" + Math.round(s*scaleFactor/1000) + " Km)  Vértices = " + n ;
	}
}

function botonera(fc) {
//	document.forms[0].target	   = '_self';
	document.forms[0].cur_op.value = fc;

	switch(fc) {
		case 'lupa_mas':
		 	 document.jBox.boxon();
			 document.forms[0].mode.value	 = 'browse';
			 document.forms[0].zoomdir.value = 1;
			 break;

		case 'lupa_menos':
		 	 document.jBox.dragoff();
		 	 document.jBox.boxoff();
			 document.forms[0].mode.value	 = 'browse';
			 document.forms[0].zoomdir.value = -1;
			 break;
		
		case 'extender':
			 document.forms[0].mode.value	 = 'browse';
			 document.forms[0].zoomdir.value = 0;
			 document.forms[0].imgext.value	 = imgext0;
			 iframe_cgi();
			 document.forms[0].submit();
			 break;
		
		case 'info':
		 	 document.jBox.dragoff();
		 	 document.jBox.boxoff();
//			 document.forms[0].target		  = '_queryWin';
			 document.forms[0].mode.value	  = 'query';
			 document.forms[0].mode.queryfile = ''
			 document.forms[0].mode.map_dptosQy_class_template = ''
			 break;
		
		case 'centrar':
		 	 document.jBox.dragoff();
		 	 document.jBox.boxoff();
			 document.forms[0].mode.value	 = 'browse';
			 document.forms[0].zoomdir.value = 0;
			 break;
			 
		case 'trace':
		 	 document.jBox.dragoff();
		 	 document.jBox.lineon();
			break;
			
		case 'coord':
				document.jBox.dragoff();
		 	 mousemove_handler('jBox',-1, -1);
		 	
			break;

		case 'move':
			 document.forms[0].mode.value	 = 'browse';
			 document.forms[0].zoomdir.value = 0;
		 	 document.jBox.dragon();
	}
}

function init(active_layers) {

	var layer_iframe		= frames['capas'].document.forms[0].layer;
	var radio_layer_iframe	= frames['capas'].document.forms[0].radio_layer;
	
	var capas = active_layers;
	capas = capas.split(' ');
	for (var i=0; i < capas.length; i++) {

		// layer checkboxes
		for (var j=0; j < layer_iframe.length; j++) {
			if (layer_iframe[j].value == capas[i]) {
				layer_iframe[j].checked = true;
				break;
			}
		}

		// layer radios
		if (radio_layer_iframe) {
			for (var k=0; k < radio_layer_iframe.length; k++) {
				if (radio_layer_iframe[k].value == capas[i]) {
					radio_layer_iframe[k].checked = true;
					break;
				}
			}
		}
	}

	var qlayer_iframe = frames['capas'].document.forms[0].qlayer;
	for (var i=0; i < qlayer_iframe.length; i++) {
		if (qlayer_iframe[i].value == document.forms[0].qlayer.value) {
			qlayer_iframe[i].checked = true;
			break;
		}
	}	

	// Botonera
	switch(document.forms[0].cur_op.value) {
		case "lupa_mas":
			botonera('lupa_mas');
			MM_nbGroup('down','herramientas','lupa_mas_1','/mapserver/images/botonera/lupa_mas_2.gif',1);
			break;

		case "lupa_menos":
			botonera('lupa_menos');
			MM_nbGroup('down','herramientas','lupa_menos_1','/mapserver/images/botonera/lupa_menos_2.gif',1);
			break;

		case "centrar":
			botonera('centrar');
			MM_nbGroup('down','herramientas','centrar','/mapserver/images/botonera/centrar_2.gif',1);
			break;

		case "info":
			botonera('info');
			MM_nbGroup('down','herramientas','info_1','/mapserver/images/botonera/info_2.gif',1);
			break;

		case "move":
			botonera('move');
			MM_nbGroup('down','herramientas','move','/mapserver/images/botonera/mover_on.gif',1);

	};
	extent=getExtentValues();

	cellsize=AdjustExtent(extent, document.forms[0].mapwidth.value, document.forms[0].mapheight.value);

}
function getMapWidth(){
	return document.forms[0].mapwidth.value;
}
function getMapHeight(){
	   return document.forms[0].mapheight.value;
	}
function iframe_cgi() {

	// layer checkboxes
	var layer_iframe = frames['capas'].document.forms[0].layer;
	for (var i=0; i < layer_iframe.length; i++) {
		if (layer_iframe[i].checked == true) {
			document.forms[0].layers.value += layer_iframe[i].value + ' ';
		}
	}

	// layer radios
	var radio_layer = frames['capas'].document.forms[0].radio_layer;
	if (radio_layer) {
		for (var i=0; i < radio_layer.length; i++) {
			if (radio_layer[i].checked == true) {
				document.forms[0].layers.value += radio_layer[i].value;
				break;
			}
		}
	}

	// qlayer radios
	var qlayer = frames['capas'].document.forms[0].qlayer;
	for (var i=0; i < qlayer.length; i++) {
		if (qlayer[i].checked == true) {
			document.forms[0].qlayer.value = qlayer[i].value;
			break;
		}
	}
}

function doit_before() {
//	document.forms[0].target		= '_self';
	document.forms[0].mode.value	= 'browse';
	document.forms[0].zoomdir.value = 0;
	document.forms[0].imgxy.value	= center;
	iframe_cgi();
}

function actualizar() {
	doit_before();
	document.forms[0].submit();
}

function check_qlayer() {
	var radio = frames['capas'].document.forms[0].qlayer;
	var qlayer;
	for (var i=0; i < radio.length; i++) {
		if (radio[i].checked == true) {
			qlayer = true;
		 	break;
		}
	}
	if (qlayer == true) {
		MM_nbGroup('down','herramientas','info_1','/mapserver/images/botonera/info_2.gif',1);
	}
	else {
		alert('Seleccione la capa a consultar sobre la columna "I"');
	}
}

function new_proyect(map_file) {
	var url = "/cgi-bin/mapserv?map=m/" + map_file;
}

function new_proyect(target, proyecto) {
	var proyectos = new Array();

	proyectos['sit'] = '/cgi-bin/mapserv?proyectos=m/sit.map';
	window.open(proyectos[proyecto], target);
}
