var map;
var layer;
var lp;
	
function init(WMSURL){
		 
	var extent	= new OpenLayers.Bounds(-183, -58, 183, 88);
	
    map = new OpenLayers.Map('map',
			{
				maxExtent: extent,
				restrictedExtent: extent,
				div:"map",
				fractionalZoom: 'true',
				controls: [new OpenLayers.Control.Navigation(), 
				           new OpenLayers.Control.ZoomPanel()]
			});
    
    layer = new OpenLayers.Layer.WMS( "OpenLayers WMS", WMSURL,
				{	
					layers: 'countries',
					format: 'image/png',
					request: 'getmap',		
					transparent: "false",
					transitionEffect: 'resize'
				},
				{
					singleTile: true,
					ratio: 2
				});   
    
	var mapRef      =new OpenLayers.Layer.Image( 'Map Reference', '/img/mapReference.gif', extent, new OpenLayers.Size(180,76));
	var overview    =new OpenLayers.Control.OverviewMap( 
			{
				layers: [mapRef],
				isSuitableOverview: function() {return true;}, 
				size:	new OpenLayers.Size(180,76),
				minRectSize: 50,
				minRectDisplayClass: 'RectReplacement',
				title: 'Reference map',
				mapOptions: {maxExtent: extent}
			});
	
	controls = map.getControlsByClass('OpenLayers.Control.Navigation');
	for(var i = 0; i<controls.length; i++)
		controls[i].disableZoomWheel();
	
	map.addControl( new OpenLayers.Control.LoadingPanel());
	map.addLayer(layer);

	map.addControl(overview);
	map.addControl(new OpenLayers.Control.GeomapInfo());

	map.zoomToMaxExtent(extent);
	overview.maximizeControl();
	

	
	lp = $('OpenLayers.Control.LoadingPanel_24');
}

function getCountryInfo(vlon, vlat){
    new Ajax.Request('/countries/identify/'+vlon+ '/'+vlat, {method: 'get',
		onComplete: function(transport,json) {
			if(json.success){
				showCountryInfo(json.country.isonum);
			}else {
				alert(json.msg);
			}
		}
	});
}

function submitAction(form_id){
    new Ajax.Request($(form_id).action, {method: $(form_id).method, parameters: $(form_id).serialize(true),
		onSuccess: function(transport,json) {
		if(json.status){
			//showConfirmationMessage(json.message, json.description);
		}else {
			showErrorMessage(json.msg, json.errors);
		} 
		if(json.redirect)
			window.location.href = json.redirect;
	    }
	});
}


function showErrorMessage(msg, errs){
	var error_str = msg + '<br/>';
	for(key in errs)
		error_str += key + ' ' + errs[key]+ '<br/>';
	$('errors').update(error_str);
	$('errors').removeClassName('hidden');
}

function showConfirmationMessage(msg){
	//display message
}

function updateMap(variable){
	$('polygonLayers').value = $('pointLayers').value = '';
	if(variable.geometry == 'polygon')
		$('polygonLayers').value =','+variable.code;
	if(variable.geometry == 'point')
		$('pointLayers').value =','+variable.code;
	$('layers').value = 'countries,'+($('polygonLayers').value ? $('polygonLayers').value : '') + ($('pointLayers').value ? $('pointLayers').value : '');
	
	layer.mergeNewParams($('consult').serialize(true));

	new Ajax.Updater('contenedor_medio_lado', '/variables/classification/'+variable.code, { method: 'get', 
		  onComplete: function() {
			$('welcome').hide();
			$('menu').hide();
			$('guide').hide();
			lp.hide();
		},
		onLoading: function(){
			lp.show();
		}
	});
	$('helpBkg').show();
}

function showMetadata(variableID){
	$('metadata').update();
	new Ajax.Updater('metadata', '/variables/metadata/'+variableID, {
		onLoading: function(){
			lp.show();
		},
		onComplete: function(){
			lp.hide();
		}
	});
	$('metadata').show();
}

function showCountryInfo(countryID){
	$('country_info').update();
	new Ajax.Updater('country_info', '/countries/info/'+countryID, {
		onLoading: function(){
			lp.show();
		},
		onComplete: function(){
			lp.hide();
		}
	});
	$('country_info').style.display = 'block';
}

function closeMetadata(){
	$('metadato').style.display = 'none';
	$('country_info').style.display = 'none';
}

function showHide(element_id){
	if($(element_id).getStyle('display') == 'none')
		$(element_id).show();
	else
		$(element_id).hide();
}

function scc(cat){
	var elements = $('contMetaRght').childElements();
	elements.each(function(item){
		if(cat == item.id)
			$(item.id).show();
		else
			$(item.id).hide();
	});
}
