//<![CDATA[
/* A lot of the code is taken from other tutorials. */
//var map;
//var minimap;
var mapTypeControl;
var topRight;
var zoomlevel;
var id;
var index = -1;
var gmarkers = [];
var idmarkers = [];
var xhair;
var map_moving = 0;
var minimap_moving = 0;


var CAT_ICONS = [];
CAT_ICONS["DEFAULT_ICON"] = tinyIcon("red");
CAT_ICONS["user_icon"] = tinyIcon("purple");
CAT_ICONS["cupon"] = tinyIconPers();

var Zonas = new Array();
//Zonas["CATALUNYA"] = [41.013066,2.021484, 7];
Zonas["CATALUNYA"] = [41.104191, 2.449951, 7];
//Zonas["CATALUNYA"] = [40.979898,2.625732, 7];
/**
* Marker icon
*/
function tinyImage(opt_color, opt_preload) {
    var color = opt_color || "red";
    var src_ = "http://labs.google.com/ridefinder/images/mm_20_" + color + ".png";
    if (opt_preload) {
        var preImage = new Image();
        preImage.src = src_;
    }
    return src_;
}

function tinyIcon(opt_color) {
    var tiny = new GIcon();
    tiny.image = tinyImage(opt_color);
    tiny.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
    tiny.iconSize = new GSize(12, 20);
    tiny.shadowSize = new GSize(22, 20);
    tiny.iconAnchor = new GPoint(6, 20);
    tiny.infoWindowAnchor = new GPoint(5, 1);
    tiny.imageMap = [4, 0, 0, 4, 0, 7, 3, 11, 4, 19, 7, 19, 8, 11, 11, 7, 11, 4, 7, 0];
    tiny.transparent = "http://maps.google.com/mapfiles/transparent.png?bogus=.png";
    return tiny;
}

function tinyIconPers() {
    var tiny = new GIcon();
    tiny.image = "http://tubarriotuoferta.com/images/geotag_16.png";
    tiny.iconSize = new GSize(20, 23);
    tiny.iconAnchor = new GPoint(20, 23);
    tiny.infoWindowAnchor = new GPoint(5, 1);
    tiny.imageMap = [4, 0, 0, 4, 0, 7, 3, 11, 4, 19, 7, 19, 8, 11, 11, 7, 11, 4, 7, 0];
    return tiny;
}

var icons = ["black", "brown", "red", "orange", "yellow", "green", "blue", "purple", "gray", "white"];
for (var color in icons) {
    tinyImage(icons[color], true);
}

// create the crosshair icon, which will indicate where we are on the minimap
// Lets not bother with a shadow
var Icon = new GIcon();
Icon.image = "xhair.png";
Icon.iconSize = new GSize(21, 21);
Icon.shadowSize = new GSize(0, 0);
Icon.iconAnchor = new GPoint(11, 11);
Icon.infoWindowAnchor = new GPoint(11, 11);
Icon.infoShadowAnchor = new GPoint(11, 11);

var blueIcon = new GIcon(G_DEFAULT_ICON);
blueIcon.image = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";
markerOptions = {
    icon: blueIcon
};
blueIcon.iconSize = new GSize(32, 32);

function createMarker(tipo, point, id, marker_id, name, address, author, link)
 {
    if (tipo == "cupon") {
        var marker = new GMarker(point, {
            icon: CAT_ICONS[tipo] || CAT_ICONS["DEFAULT_ICON"],
            title: name
        });
        var htmltab1 = "<div class='tabMapContent' style='width:200px; height:100px'><div class='nom' style='font-size:14px; font-weight:bold; padding: 7px;'><a href='" + link + "' target='_blank'>" + author + " | " + name + "</a></div><div style='font-size:10px; padding: 7px'><p>" + address.replace(/_br_/g, '<br/>') + "</p>";
        htmltab1 = htmltab1 + "</div></div>";

        GEvent.addListener(marker, "click",
        function() {
            marker.openInfoWindowHtml(htmltab1);
        });
    }
	else
	{
		 var marker = new GMarker(point, {
	            icon: CAT_ICONS[tipo] || CAT_ICONS["DEFAULT_ICON"],
	            title: name
	        });
	}

    // save the info we need to find this marker
    gmarkers.push(marker);
    idmarkers[marker_id.toLowerCase()] = marker;
    return (marker);
}
function getMarks(url, lat, lng, radius) 
{
    map.closeInfoWindow();
    /*close any InfoWindows that happen to be open */
    map.clearOverlays();
    var request = GXmlHttp.create();
    /* use the XML methods */
    //alert('entro en la funcion getMarkers');
    request.open("GET", url + '?noCache=' + new Date().getTime(), true);
    request.onreadystatechange = function() {
        if (request.readyState == 4) {
            //alert(request.readyState);
            var xmlDoc = request.responseXML;
            //alert(xmlDoc);
            /* php returns 'XML' */
            var markers = xmlDoc.documentElement.getElementsByTagName("marker");
            //alert('lat '+lat+' lng: '+lng+' radius: '+radius);
			
			var userPosition = new GLatLng(parseFloat(lat), parseFloat(lng));
			//var radius = parseFloat(document.getElementById("radius"));
			
			var zoom = 10;
			
			switch (radius)
			{
				case 0.5:
					zoom = 16;
					break;
				case 1:
					zoom = 15;
					break;
				case 1.5:
					zoom = 14;
					break;
				case 2:
					zoom = 13;
					break;
				case 5:
					zoom = 12;
					break;	
			}
			
			map.setCenter(userPosition, zoom);

            for (var loop1 = 0; loop1 < markers.length; loop1++)
            {
                var lati = parseFloat(markers[loop1].getAttribute("lat"));
                var lngi = parseFloat(markers[loop1].getAttribute("lng"));
				var tipo = markers[loop1].getAttribute("tipo");
                var point = new GLatLng(lati, lngi);
				//alert(point);

				var distance = userPosition.distanceFrom(point, 6371.3929).toFixed(1);
				
				if (distance <= radius)
				{			
                	var id = markers[loop1].getAttribute("id");
                	var marker_id = "cupon_" + markers[loop1].getAttribute("id");
                	var name = markers[loop1].getAttribute("name");
                	var address = markers[loop1].getAttribute("address");
                	var author = markers[loop1].getAttribute("author");
					var link = markers[loop1].getAttribute("link");
                	var marker = createMarker(tipo, point, id, marker_id, name, address, author, link);
                	map.addOverlay(marker);
				}
            }
			var marker = createMarker("user_icon", userPosition, 9999, "userPosition" + 9999, "Mi posición", "", "", "");
        	map.addOverlay(marker);
        }
        if (idMarkerSelected != undefined && idmarkers[idMarkerSelected]) {
            //alert(idMarkerSelected);
            GEvent.trigger(idmarkers[idMarkerSelected], "click");
        }
    };
    request.send(null);
}
function centrarMapa(zona) {
    map.setCenter(new GLatLng(Zonas[zona][0], Zonas[zona][1]), Zonas[zona][2]);
    //minimap.setCenter(new GLatLng(Zonas[zona][0], Zonas[zona][1]), 3);
}

function showMarker(id) {
    // open the info window
    //alert('idfilial'+id);
    if (idmarkers[id]) {
        GEvent.trigger(idmarkers[id], "click");
    }
}
//jQuery.noConflict();
jQuery(document).ready(function() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("googlemap"));
        map.addControl(new GMapTypeControl());
        mapTypeControl = new GMapTypeControl();
        //centrarMapa("CATALUNYA");
        map.addControl(new GLargeMapControl());
        getMarks('wp-includes/getCupones.php', lat, lng, radius);
    }
});
//]]>

