﻿var infoWindow;
var mapClicked;

$(document).ready(function () {
    $('.googleMap').each(function () {
        var elm = $(this)[0];
        var inputs = $(this).find('input$type:hidden');
        var location = $($(inputs)[0]).val();
        var scale = $($(inputs)[1]).val();
        var noMapTypeControl = $($(inputs)[2]).val();
        if (location.indexOf('address:') == 0) {
            var address = location.substr(8);
            geocoder = new google.maps.Geocoder();
            geocoder.geocode({ 'address': address }, function (results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    $('.googleMap').removeClass('hidden');
                    latlng = results[0].geometry.location;                    
                    loadMap(elm, latlng, scale, noMapTypeControl);
                }
                else {
                    $('.googleMap').addClass('hidden');
                }
            });
        }
        else {
            var coordinates = location;
            var scale = $($(inputs)[1]).val();
            var noMapTypeControl = $($(inputs)[2]).val();
            var lat = coordinates.split(',')[0];
            var lng = coordinates.split(',')[1];
            var latlng = new google.maps.LatLng(lat, lng);
            loadMap(elm, latlng, scale, noMapTypeControl);
        }
    });
});

function loadMap(elm, latlng, scale, noMapTypeControl) {
    var parent = $(elm).parent();
    var link = parent.attr('href');
    var hasLink = (link != null && link != '');
    
    var myOptions = {
        zoom: parseInt(scale),
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        scrollwheel: false,
        mapTypeControl: (noMapTypeControl==0)
    };
    var map = new google.maps.Map(elm, myOptions);
    var image = 'http://www.google.com/intl/en_us/mapfiles/ms/micons/red-dot.png';
    var marker = new google.maps.Marker({
        clickable: hasLink,
        position: latlng,
        map: map,
        icon: image
    });
    if (hasLink) {
        parent.removeAttr('href');
        google.maps.event.addListener(marker, 'click', function () { markerClick(link); });
    }

    var streetView = $(elm).parent().parent().find('.streetView')[0];
    if ($(streetView) != null) {
        var panoramaOptions = {
            position: latlng,
            pov: {
                heading: 34,
                pitch: 10,
                zoom: 1
            }
        };
        var panorama = new google.maps.StreetViewPanorama($(streetView)[0], panoramaOptions);
        map.setStreetView(panorama);
    }
    //createMarkers();
    google.maps.event.addListener(map, 'click', function () { activateScrollwheel(map); });
    google.maps.event.addListener(map, 'dragstart', function () { activateScrollwheel(map); });
}

function markerClick(link) {
    window.location = link;
}

function activateScrollwheel(map) {
    var myOptions = {
        scrollwheel: true
    };
    map.setOptions(myOptions);
    google.maps.event.removeListener(map, 'click');
    google.maps.event.removeListener(map, 'dragstart');
}



