

var mn_map;
var mn_geocoder;
var mn_precision = 2;
var mn_marker = null;
var mn_zoom = 2;
var mn_servlet = "/METEONORM/servlet";
var mn_firstLoad = true;
var mn_period;
var mn_latloninit;
var mn_periodinit;
var mn_result;
var mn_in_progress = false;
var mn_defaultPoint;
var mn_resultTabNumber=5;

function mn_load () {
	if (GBrowserIsCompatible()) {
		mn_reloadInitParameters();
		mn_map = new GMap2(document.getElementById("MAP"));
		mn_map.clearOverlays();
		mn_map.setMapType(G_HYBRID_MAP);
		mn_map.setCenter(new GLatLng(44.56, 3.55), 5);
		mn_map.addControl(new GLargeMapControl());
		mn_map.addControl(new GMapTypeControl());
		mn_map.enableScrollWheelZoom();
		mn_geocoder = new GClientGeocoder();
		mn_addListeners();
		mn_getAddress(mn_defaultPoint, mn_zoom);
		mn_defaultPoint= new GLatLng(52.27,8.61);

	// jQuery(window).unload(GUnload);
    }
}

function mn_getAddress(address, mn_zoom) {
    mn_geocoder.getLatLng (address, function (point) {
	if (!point) {
	    point = mn_defaultPoint;
	}
	mn_map.setCenter(point, mn_zoom);
	document.getElementById("GEO_POINT").value =
	    point.lat().toFixed(mn_precision)
	    + "," + point.lng().toFixed(mn_precision);
	if (mn_marker) {
	    mn_map.removeOverlay(mn_marker);          
	}
	mn_marker = new GMarker(point);
	mn_map.addOverlay(mn_marker);
   });
}

function mn_getMap () {
   var address = document.fm.mapAddress.value;
   if (address) {
       mn_getAddress(address, mn_zoom);
    } else {
	mn_getAddress(document.fm.latlon.value, mn_zoom);
    }
}

function mn_click_callback(overlay, point) {     
	 var myPoint = point.lat().toFixed(mn_precision) + "," + point.lng().toFixed(mn_precision);
	 document.getElementById("GEO_POINT").value = myPoint;
	 mn_map.clearOverlays();          
	 mn_marker = new GMarker(point);
	 mn_map.addOverlay(mn_marker);
	 }

function mn_mousemove_callback(point) {     
	 if (point) {
	 var myPoint = point.lat().toFixed(2) + "," + point.lng().toFixed(2);
	  document.getElementById("CURRENT_CURSOR").innerHTML = myPoint;
	  }
	}

function mn_addListeners () {
 GEvent.addListener(mn_map, "click", mn_click_callback);
 GEvent.addListener(mn_map, "mousemove", mn_mousemove_callback);
}

function mn_call_webservice () {
 if (mn_in_progress == false) {
  mn_in_progress = true;
  jQuery(document.getElementById("container-1")).enableTab(mn_resultTabNumber);
  jQuery(document.getElementById("container-1")).triggerTab(mn_resultTabNumber);
  mn_waitMessageOnResultTab ();
  var request = {};
  request.outputmode = mn_CheckOutputMode ();
  request.latlon = document.fm.latlon.value;
  request.mode = mn_period_mode();
  
  jQuery.get(mn_servlet, request, mn_output_result);
 }
}

function mn_output_result (data) {
	mn_in_progress = false;
    document.getElementById("fragment-result").innerHTML = data;
}

function mn_waitMessageOnResultTab (xhr_object, mesg) {
    document.getElementById("fragment-result").innerHTML = "";
    document.getElementById("fragment-result").innerHTML =
        "<div class='MesorPortletStyle2'>"
	+mesg
	+"<i> ... Meteo Norm Web Service: Computation in Progress ... </i>"
	"</div";
}

function mn_waitMessageOnResultTab () {
    document.getElementById("fragment-result").innerHTML = "";
    document.getElementById("fragment-result").innerHTML =
        "<div class='MesorPortletStyle2'>"
	+"<i> ... Meteo Norm Web Service: Computation in Progress ... </i>"
	"</div";
}

function mn_outputAsError (xhr_object) {
    document.getElementById("fragment-result").innerHTML = "";
    document.getElementById("fragment-result").innerHTML =
	"Meteo Norm Web Service:  Web Service Unavailable";
}

function mn_CheckOutputMode () {
    var radioButton = document.getElementById("inBrowserID");
    if (radioButton.checked) {
	return 'b';
    } else {
	radioButton = document.getElementById("toTextFileID");
	if (radioButton.checked) {
	    return 'e';
	} else {
	    return 'p';
	}
    }
}    
// Modif Lionel pour ne selectionner que Monthly
function mn_period_mode () {
 if(document.fm.choicemode[0].checked) {
     return 'monthly';
 } else if (document.fm.choicemode[1].checked) {
     return 'daily';
 } else {
     return 'monthly';
 }
}

function mn_reloadInitParameters() {
    if  (mn_firstLoad == true) {
	mn_latloninit = document.getElementById("GEO_POINT").innerHTML;
	mn_firstLoad = false;
    } else {
	document.getElementById("inBrowserID").checked= "checked";
	document.getElementById("MAP_ADDRESS").innerHTML = "";
	document.getElementById("GEO_POINT").innerHTML = mn_latloninit;
    }
}

jQuery(document).ready(function() {
    jQuery('#container-1').tabs(1);
    jQuery('#container-1').tabs({ disabled: [5] });
    mn_load();
});



