var lat = "36.1146";
var lng = "-115.1728";
var map = null;
var geocoder = null;
var bounds = null;
var streetview = null;
var streetviewclient = null;

jQuery(document).ready(function() {
    bounds = new GLatLngBounds;
    initialize();
});

function initialize() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(lat, lng), 13);
        geocoder = new GClientGeocoder();
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        	if(property_lat != 0 && property_lng != 0){
        		showAddressByLatLng(property,property_lat,property_lng,jQuery('#'+property).html());
        		showStreetViewByLatLng();
        	}else{
        		showAddressByAddress(property,property_address,jQuery('#'+property).html());
        		showStreetViewByAddress();
        	}
    }
}

function showAddressByLatLng(property,addrLat, addrLng, address_str)
{
    if(addrLat && addrLng){
        point = new GLatLng(addrLat, addrLng);
        var marker = new GMarker(point);
        map.addOverlay(marker);
        bounds.extend(marker.getPoint());
        GEvent.addListener(marker, "mouseover", function() {
            marker.openInfoWindowHtml(address_str);
        });
        map.setMapType(G_HYBRID_MAP);
        map.setZoom(map.getBoundsZoomLevel(bounds));
        map.setCenter(bounds.getCenter());
    }
}

function showAddressByAddress(property,address, address_str)
{
    if(address){
    	geocoder.getLatLng(address,function(point) {
            var marker = new GMarker(point);
            map.addOverlay(marker);
            bounds.extend(marker.getPoint());
            GEvent.addListener(marker, "mouseover", function() {
				alert(marker.openInfoWindowHtml);
                marker.openInfoWindowHtml(address_str);
            });
            map.setMapType(G_HYBRID_MAP);
            map.setZoom(map.getBoundsZoomLevel(bounds));
            map.setCenter(bounds.getCenter());
    	});
    }
}

function showStreetViewByLatLng(property_lat,property_lng){
	
	var streetOverlay = new GStreetviewOverlay();
    streetviewclient = new GStreetviewClient( );
    var latlang = map.getCenter();

    streetviewclient.getNearestPanorama( latlang, streetviewclient_callback);
    myPano = new GStreetviewPanorama(document.getElementById("streetview"));
    myPano.setLocationAndPOV(latlang);
}
function showStreetViewByAddress(){
	/*this function will show the street view by address need to implement
	 */
}


function streetviewclient_callback(streetviewdata)
{
  if ( streetviewdata.code != GStreetviewClient.ReturnValues.SUCCESS )
  {
   	document.getElementById('streetview').style.display = 'none';    
    var previousInnerHTML = new String();
    previousInnerHTML = document.getElementById('stview_error').innerHTML;
    previousInnerHTML = "";   
    previousInnerHTML = previousInnerHTML.concat("<h3></h3>");
    document.getElementById('stview_error').innerHTML = previousInnerHTML;  
    document.getElementById('stview_error').style.display = 'block'; 
    return true;
  }
  else
  {
	  var previousInnerHTML = new String();
	  previousInnerHTML = document.getElementById('streetview').innerHTML;
	  previousInnerHTML = "";   
	  document.getElementById('streetview').innerHTML = previousInnerHTML;
	  document.getElementById('streetview').style.display = 'block';
	  document.getElementById('streetview').style.height = '500px';
  }
}
