/* 
 * Item @ BuscoPensión
 */

var ItemMarker = new Array();
var ItemInfo = new Array();

var valor = new Array('$0 a $60.000','$60.001 a $100.000','$100.001 a $160.000','$160.001 a $200.000');
var tipo = new Array('Completa','Media','Solo Pieza');
var sexo = new Array('Hombre','Mujer','Ambos');
var pieza = new Array('Compartida','Individual');
var lavado = new Array('Con Lavado','Sin Lavado');
var internet = new Array('Con Internet','Sin Internet');
var cocina = new Array('Con Cocina','Sin Cocina');
var amoblada = new Array('Si','No');

function loadItem() {

    var bounds = map.getBounds();
    var tmp = new Array();
    var items = new Array();

    showInfo('Buscando Pensiones ...');

    $.getJSON("/pensiones/show.json", {
        value: bounds.toUrlValue()
    }, function(json){
        showInfo('<strong>' + json.length + '</strong> Pensiones Encontradas');
        $.each(json, function(i,Item){
            tmp.push(Item.Item.id);
            tmp.push(Item.Item.address);
            tmp.push(Item.Item.lat);
            tmp.push(Item.Item.lng);

            tmp.push(Item.Info.sexo);
            tmp.push(Item.Info.tipo);
            tmp.push(Item.Info.valor);

            items.push(tmp);

            tmp = new Array();
        });

        setItem(map, items);
    });

}

function setItem(map, locations) {

    var image = new google.maps.MarkerImage('/img/pension.png',
        new google.maps.Size(24, 24),
        new google.maps.Point(0,0),
        new google.maps.Point(0, 32));

    var shape = {
        coord: [1, 1, 1, 20, 18, 20, 18 , 1],
        type: 'poly'
    };

    for (var i = 0; i < locations.length; i++) {
        var point = locations[i];
        if(ItemMarker[point[0]] == undefined) {
            var myLatLng = new google.maps.LatLng(parseFloat(point[2]), parseFloat(point[3]));

            ItemMarker[point[0]] = new google.maps.Marker({
                position: myLatLng,
                map: map,
                icon: image,
                shape: shape,
                title: point[1]
            });

            setItemInfo(ItemMarker[point[0]],point);


        }
    }
}

function setItemInfo(marker,point) {
    var info = new google.maps.InfoWindow({
        content:
        "<p>&nbsp;</p>"+
        "<p>Dirección: <strong>"+point[1]+"</strong></p>"+
        "<p>Tipo Pensión: <strong>"+tipo[point[5]]+"</strong></p>"+
        "<p>Valor Mensual (CLP) <strong>"+valor[point[6]]+"</strong></p>"+
        "<p>Sexo: <strong>"+sexo[point[4]]+"</strong></p>"
    });

    google.maps.event.addListener(marker, 'click', function() {
        info.open(map,marker);
    });
}

function showInMap(lat,lng) {
    var latLng = new google.maps.LatLng(lat, lng);
    map.setCenter(latLng);
    map.setZoom(15);

    showInfo('Buscado coordenadas: <strong>' + lat + ', ' + lng + '</strong>...');

}

function showInMapCity(city) {
    if (geocoder) {
        geocoder.geocode( {
            'address': city
        }, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                map.setCenter(results[0].geometry.location);
            } else {
                showInfo("Error al buscar la ciudad: <strong>" + status+"</strong>");
            }
        });
    }
    else {
        showInfo("<strong>Error al buscar la dirección.</strong>");
    }
}
