var countryCatId = 1;
var lang = 'es';
var _LUGAR_NO_ENCONTRADO = '';
var countryName = '';

var marker = null;
var insubmit = false;
var hasControl = 0;
var map = null;
var marker = null;
var geoXml = null;
var hasControl = 0;
var map = null;
var marker = null;
var geoXml = null;
var isMarksLoaded = false;
var exml;

var cct_pt = '39.3999';
var ccn_pt = '-8.22425';
var cct_fr = '46.2276';
var ccn_fr = '2.21375';
var cct_uk = '54.4';
var ccn_uk = '-3.43597';
var cct_es = '40.4637';
var ccn_es = '-3.74922';
var cct_it = '41.8719';
var ccn_it = '12.5672';

var cct_de = '51.1657';
var ccn_de = '10.4515';


function loadMain( linkEs, linkFr, linkUk, linkPt, linkIt, linkDe ) {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("gmmap"));
		map.setCenter(new GLatLng(47.07,-0.505759), 4);
		//Spain
		var point = new GLatLng(cct_es, ccn_es);
		map.addOverlay(createCountryMarker(point, linkEs));
		// France
		var point = new GLatLng(cct_fr, ccn_fr);
		map.addOverlay(createCountryMarker(point, linkFr));
		// UK
		var point = new GLatLng(52.2627, -1.37735);
		map.addOverlay(createCountryMarker(point, linkUk));
		// PT
		var point = new GLatLng(cct_pt, ccn_pt);
		map.addOverlay(createCountryMarker(point, linkPt));
		// IT
		var point = new GLatLng(cct_it, ccn_it);
		map.addOverlay(createCountryMarker(point, linkIt));
		// DE
		var point = new GLatLng(cct_de, ccn_de);
		map.addOverlay(createCountryMarker(point, linkDe));

	}
}

function loadCountry(countryCenterLat, countryCenterLon, zoom){
	map = new GMap2(document.getElementById("gmmap"));
	var lat = document.getElementById('lat');
	var lng = document.getElementById('lng');

	if (lat.value != '' && lng.value != ''){
		searchLoc();
		map.addControl(new GLargeMapControl());
		hasControl = 1;

		GEvent.addListener(map, "dragend", function() {
			var center = map.getCenter();
			var lat1 = document.getElementById('lat');
			var lng1 = document.getElementById('lng');
			lat1.value = center.lat();
			lng1.value = center.lng();
				loadMarks();

		});

	}
	else {
		map.setCenter(new GLatLng(countryCenterLat, countryCenterLon), zoom);
	}
	loadMarks();
}


function createCountryMarker(point, url) {
	var marker = new GMarker(point);
	GEvent.addListener(marker, "click", function() {
		document.location = url;
	});
	return marker;
}

function setLocation( point ){
	var d_location = document.getElementById('d_location');
	var lat = document.getElementById('lat');
	var lng = document.getElementById('lng');
	
	d_location.innerHTML = "("+point.lat()+", "+point.lng()+")";
	lat.value=point.lat();
	lng.value=point.lng();
}

function showAddress(address) {
	// var map = new GMap2(document.getElementById("gmmap"));
	var geocoder = new GClientGeocoder();
	geocoder.getLatLng(
		address+" "+countryName,
		function(point) {
			if (!point) {
				alert(sprintf(_LUGAR_NO_ENCONTRADO+address));
			} else {
				setLocation( point );
				if(insubmit) {
					var frm = document.getElementById("frm");
					frm.submit();
				}
				else {
					var zoom = 10;
					if (address == '') {
						zoom = 5;
					}

					map.setCenter(point, zoom);
					// Create our "tiny" marker icon
					var icon = new GIcon();
					icon.image = "http://www.bicirutas.net/images/m.png";
					icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
					icon.iconSize = new GSize(32, 32);
					icon.shadowSize = new GSize(22, 20);
					icon.iconAnchor = new GPoint(16, 32);
					icon.infoWindowAnchor = new GPoint(5, 1);
					
					
					if (marker) {
						map.removeOverlay(marker);
					}
					
					/*
					marker = new GMarker(point, {draggable: true, icon: icon});
					map.addOverlay(marker);
					GEvent.addListener(marker, "dragend", function() {
						var lat = document.getElementById('lat');
						var lng = document.getElementById('lng');
						lat.value = marker.getPoint().lat();
						lng.value = marker.getPoint().lng();
						loadMarks();
					});
					*/

					//marker.openInfoWindowHtml(address);
					loadMarks();
				}
			}
		}
	);	
}

function marksLoaded() {
	if(geoXml.hasLoaded()){
		if (geoXml.loadedCorrectly()){
		}
	}
}

function searchLoc(){
	var loc = document.getElementById("loc");
	showAddress(loc.value);

	if (hasControl == 0) {
		map.addControl(new GLargeMapControl());
		hasControl = 1;
	}
	return false;
}

function go() {
	insubmit = true;
	searchLoc();
	return false;
}
function marksLoaded() {
	if(geoXml.hasLoaded()){
		if (geoXml.loadedCorrectly()){
		}
	}
}


function loadMarks(){
	var dist = document.getElementById('dist');
	var lat = document.getElementById('lat');
	var lng = document.getElementById('lng');
	var k1 = document.getElementById('k1');
	var k2 = document.getElementById('k2');
	var k3 = document.getElementById('k3');
	var k4 = document.getElementById('k4');
	var k5 = document.getElementById('k5');
	var i1 = document.getElementById('i1');
	var i2 = document.getElementById('i2');
	var i3 = document.getElementById('i3');
	var loc = document.getElementById('loc');
	
	if (isMarksLoaded) { 
		//map.removeOverlay(geoXml);
		if (exml.gmarkers.length != 0)
			exml.removeOverlay();
		isMarksLoaded = false;
	}
	var url = "/index.php?i=3&rr=1&n1=1";
	if (lat.value != '' && lng.value != '' && loc.value != '') {
		url = url + "&lat="+ lat.value +"&lng=" + lng.value;
	}
	url = url + "&cci="+countryCatId+lang;
	
	if (k1.checked){
		url += "&k1=1";
	}
	if (k2.checked == '1'){
		url += "&k2=1";
	}
	if (k3.checked == '1'){
		url += "&k3=1";
	}
	if (k4.checked == '1'){
		url += "&k4=1";
	}
	if (k5.checked == '1'){
		url += "&k5=1";
	}
	if (i1.checked == '1'){
		url += "&i1=1";
	}
	if (i2.checked == '1'){
		url += "&i2=1";
	}
	if (i3.checked == '1'){
		url += "&i3=1";
	}
	exml = new EGeoXml("exml", map, url, {nozoom:true,icontype:"style"});
	isMarksLoaded = true;
	exml.parse();


	urchinTracker( url );
}

function loadFile( id ) {
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		var url = "/components/com_content/data/"+id+"/a"+id+".kml";
		map.setCenter(new GLatLng(40.4637, -3.74922), 1);
		
		exml = new EGeoXml("exml", map, url, {icontype:"style"});
		exml.parse();
		
		ov = new GOverviewMapControl(null);
		map.addControl(ov);
		ovmap=ov.getOverviewMap();
		
		GEvent.addListener(ovmap, "zoomend", function() {
			ovmap.setZoom(6);
		});
	}
}

function setCountryCatId ( vari ) {
	countryCatId = vari;
}
function setLang ( vari ) {
	lang = vari;
}
function set_LUGAR_NO_ENCONTRADO( vari ){
	_LUGAR_NO_ENCONTRADO = vari;
}
function setCountryName( vari ){
	countryName = vari;
}


