var geocoder;
var map;
var latlng;
var arr_points = new Array();
var arr_content = new Array();
var arr_addresses = new Array();
var globaljson;
var myPano;
function handleNoFlash(errorCode) {

    if (errorCode == 603) {
        alert("Error: Flash doesn’t appear to be supported by your browser");
        return;
    }
    if (errorCode == 600) {
        alert("Street View Not Available For This Location");
        return;
    }

}
function initialize() {
    geocoder = new google.maps.Geocoder();
    latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
        zoom: 12,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        streetViewControl: true
    };
    map = new google.maps.Map(document.getElementById("map"), myOptions);
    google.maps.event.trigger(map, 'resize');
			
}
function streetView(number)
{
    //$("#pano").toggle();
    
    var point = new google.maps.LatLng(globaljson[number].Latitude, globaljson[number].Longitude);
    panoramaOptions  =  {
        position: point,
        enableCloseButton: true,
        addressControl: true,
        pov: {
            heading: 34,
            pitch: 10,
            zoom: 1
        }
    };

    myPano = new  google.maps.StreetViewPanorama(document.getElementById("map"), panoramaOptions);
    map.setStreetView(myPano);
    
/*
    var content = $("#pano").html();
    $.fancybox(
    content,
    {
        'autoDimensions'	: false,
        'width'         		: 650,
        'height'        		: 500,
        'transitionIn'		: 'none',
        'transitionOut'		: 'none'
    }
);*/
}

function attachInfowindow(marker,number, content) {

    google.maps.event.addListener(marker, 'click', function() {

        showInfoWindow(number, content);

    });



}
function showInfoWindow(number, opendetails)
{
    

    var listingurl = '/index/'+globaljson[number].Listingid;
    $.get(listingurl, function(data){
        $("div[class='resultline-wrap']").css("outline", "none");
        el =  $("#resultline"+number);
                
        $(el).parent().css("outline", "1px solid #ccc");
        $("#details").html(data);
        if(opendetails == true ){
            $('#details_link').trigger('click');
        }
    });
     
//
 
/*
    var html = ' <div class="tabsmap" id=\"tabsmap'+number+'\" >'+content+'<span style="position:absolute;bottom:20px;left:10px;"><a href=\"#\" onclick=\"streetView('+number+');return false;\" class=\"panolink\" >Street view</a></span></div></div>';
    var infowindow = new google.maps.InfoWindow(
        {
            maxWidth:600

        });

        infowindow.setContent(html);

        infowindow.open(map,marker);
*/

}

var markersArray = [];

function clearOverlays() {
    if (markersArray) {
        for (i in markersArray) {
            markersArray[i].setMap(null);
        }
    }
}

function codeAddress(arr_addresses) {
    
    var latlngbounds = new google.maps.LatLngBounds();
   
    
    for(var m=0; m<arr_addresses.length; m++) {
        params = arr_addresses[m];
        iconflag = params.icon;           
        
        var marker = new google.maps.Marker({
            map: map,
            title: params.title,
            icon: iconflag,            
            position: params.myLatlng
        });
        
        
        
   
        markersArray.push(marker);
         
        
        latlngbounds.extend(params.myLatlng);
        
    }
    for(var v=0; v<markersArray.length; v++){
        openLink(markersArray[v], arr_addresses[v].link);
    }

    map.fitBounds(latlngbounds);
    map.setCenter(latlngbounds.getCenter());
}
    
      
    function openLink(marker, link){
            google.maps.event.addListener(marker, 'click', function() {

        window.location = link;

    });
    }

  function rad(x) {return x*Math.PI/180;}
function find_closest_marker( event ) {
    var lat = event.latLng.lat();
    var lng = event.latLng.lng();
    var R = 6371;
    var distances = [];
    var closest = -1;
    for( i=1;i<markersArray.length; i++ ) {
        var mlat = markersArray[i].position.lat();
        var mlng = markersArray[i].position.lng();
        var dLat  = rad(mlat - lat);
        var dLong = rad(mlng - lng);
        var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
            Math.cos(rad(lat)) * Math.cos(rad(lat)) * Math.sin(dLong/2) * Math.sin(dLong/2);
        var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
        var d = R * c;
        distances[i] = d;
        if ( closest == -1 || d < distances[closest] ) {
            closest = i;
        }
    }

    alert(markersArray[closest].title);
}
