﻿$.loadmapa = function(divMap, LatLong, zoom,funcao,tipo) {
    if (tipo == null) tipo = 'map';
    if (LatLong != null)
        var latLong = LatLong.split(',');
    else var latLong = [0,0];//[-51.92528, -14.235004]; //latLong = [-49.2732515, -25.4283563];
    if (zoom == null) zoom = 2;
    $(divMap).jmap('init', { 'mapCenter': [latLong[1], latLong[0]], 'mapType': tipo, 'mapZoom': zoom },funcao);
}
$.adicionaponto = function(divMap, LatLong, htmlPopup, isRemove, isDrag, isCenter, icone,funcaoClick,funcaoOver) {
    //icone = new GIcon(G_DEFAULT_ICON, "iconemapa.png");
    if (GIcon == null) GIcon = undefined;
    if (isRemove == null) isRemove = false;
    if (isDrag == null) isDrag = false;
    if (isCenter == null) isCenter = false;
    $(divMap).jmap('AddMarker', {
        'pointLatLng': [LatLong[1], LatLong[0]],
        'pointHTML': htmlPopup,
        'pointIsRemovable': isRemove,
        'pointIsDraggable': isDrag,
        'centerMap': isCenter,
        'pointIcon': icone,
        'pointOpenHTMLEvent': 'mouseover'
    }, function(marker, options) {
            if (funcaoClick != null)
                GEvent.addListener(marker, "click", funcaoClick);
            if (funcaoOver != null)
                GEvent.addListener(marker, "infowindowopen", funcaoOver);
        }
    );
}
$.centralizamapa = function(divMap, endereco, zoom) {
    if (zoom == null) zoom = 13;
    $(divMap).jmap('SearchAddress', {
        'query': endereco,
        'returnType': 'getLocations'
    }, function(result, options) {
        var valid = Mapifies.SearchCode(result.Status.code);
        if (valid.success) {
            $.each(result.Placemark, function(i, point) {
                $(divMap).jmap('MoveTo', {
                    'mapType': 'map',
                    'mapCenter': [point.Point.coordinates[1], point.Point.coordinates[0]],
                    'mapZoom': zoom
                });
            });
        } else {
            $('#InvalidResp').append(valid.message);
        }
    });
}
$.centralizamapalatlong = function (divMap, latitude, longitude, zoom) {
    if (zoom == null)
        zoom = 13;
    $(divMap).jmap('MoveTo', {
        'mapType': 'map',
        'mapCenter': [latitude, longitude],
        'mapZoom': zoom
    });
}
$.procuraponto = function(divMap, endereco, htmlPopup, isRemove, isDrag, isCenter, GIcon, spanResult,loadmapa,zoom) {
    $(divMap).jmap('SearchAddress', {
        'query': endereco,
        'returnType': 'getLocations'
    }, function(result, options) {
        var valid = Mapifies.SearchCode(result.Status.code);
        if (valid.success) {
            $.each(result.Placemark, function(i, point) {
                if(spanResult != null) $(spanResult).html(point.Point.coordinates[1]+","+point.Point.coordinates[0]);
		$.loadmapa(divMap, point.Point.coordinates[1] + "," + point.Point.coordinates[0], zoom);
                $.adicionaponto(divMap, [point.Point.coordinates[0], point.Point.coordinates[1]], htmlPopup, isRemove, isDrag, isCenter, GIcon);
            });
        } else {
            $.show("Endereço não encontrado.");
        }
    });
}
