/**
 * Properties
 */
var gmap;
var gmapIcon;
var gwindow = new google.maps.InfoWindow();
var panorama;

/**
 * Setup events that need to happen on load.
 */
jQuery('document').ready(function() {
  gmapShow(jQuery('#latitude').val(), jQuery('#longitude').val());
  
  
  
});


/**
 * Loads the marker icon
 */


/**
 * Show the map
 */
function gmapShow(latitude, longitude)
{
  //latitude = 44.230065;
  //longitude = -76.50000;
  
  var mapCenter = new google.maps.LatLng(latitude, longitude);
  
  //console.log('lat:'+latitude);
  //console.log('lon:'+longitude);
  
  
  var myOptions = {
	zoom: 13,
	center: mapCenter,
	mapTypeId: google.maps.MapTypeId.ROADMAP,
	streetViewControl: true
  };
  
  gmap = new google.maps.Map(document.getElementById("gmap"), myOptions);
	
  var marker = new google.maps.Marker({
	position: mapCenter,
	map: gmap
  });   

  var panoramaOptions = {
	visible: true,
	//addressControl: true,
	//addressControlOptions: {
	  //style: {backgroundColor: 'grey', color: 'yellow'}
	//},
	position: mapCenter//,
	//enableCloseButton: true,
	//pov: {
	  //heading: 140,
	  //pitch: +10,
	  //zoom: 1
	//}
  }
	
  panorama = new google.maps.StreetViewPanorama(document.getElementById('sview'), panoramaOptions);
  
  google.maps.event.addListener(marker,'click',function(){
	panorama.setPosition(mapCenter);
	panorama.setPov({heading: 140, pitch: +10, zoom: 1});
	//panorama.setVisible(true);
	//jQuery('#sview').css('display','');
	
  });
  //gmap.setStreetView(panorama);
  
  /*
  var marker = new google.maps.Marker({
	position: mapCenter,
	map: gmap
  });   
  
  google.maps.event.addListener(marker,'click',function(){
	panorama.setPosition(center);
	panorama.setPov({heading: 140, pitch: +10, zoom: 1});
  });
  
  var markerPanorama = new google.maps.Marker({
	position: mapCenter,
	map: panorama
  });
  
  panorama.setVisible(true);
  */
  
  //google.maps.event.trigger(panorama,'resize');
  
  
  jQuery('#sview_toggle').click(function(){
  
	jQuery('#sview').toggle();
	google.maps.event.trigger(panorama,'resize');
  });
  
  
}	


/**
 * Adds the overlay
 */
function gmapCommercialAddOverlay(p)
{
  var tabOne = '';  
  tabOne = tabOne + '  <table>';
  tabOne = tabOne + '    <tr>';
  tabOne = tabOne + '      <td><img src="' + p.image + '" width="75" /></td>';
  tabOne = tabOne + '      <td>' + p.address + '<br />' + p.city + ', ' + p.state + ' ' + p.zip + '<br />$' + p.price + '</td>';
  tabOne = tabOne + '    </tr>';
  tabOne = tabOne + '  </table>';
  tabOne = tabOne + '  <table>';
  tabOne = tabOne + '    <tr>';
  tabOne = tabOne + '      <td><strong>View Property:</strong></td>';
  tabOne = tabOne + '      <td><a href="/idx/commercial/' + p.id + '">Click Here</a></td>';
  tabOne = tabOne + '    </tr>';
  tabOne = tabOne + '  </table>';

  var gpoint = new google.maps.LatLng(p.latitude, p.longitude);  
  gmapCommercialCreateMarker(gpoint, tabOne);
}


/**
 * Creates a marker for a commercial listing
 */
function gmapCommercialCreateMarker(point, tabOne)
{

  var MapIcon = new google.maps.MarkerImage('http://idx.impactmedianc.com/2.0/images/houseIcon.png', 
  new google.maps.Size(20, 20)	
  );


var marker = new google.maps.Marker({
  position:point,
  map:gmap,
  icon:MapIcon
  });  
  
  google.maps.event.addListener(marker, 'click', function() {
  gwindow.close;
  gwindow.setContent(tabOne);
  gwindow.open(gmap, marker);
  });


  
}


/**
 * Adds the overlay
 */
function gmapResidentialAddOverlay(p)
{
  var tabOne = '';
  
  tabOne = tabOne + '  <table>';
  tabOne = tabOne + '    <tr>';
  tabOne = tabOne + '      <td><img src="' + p.image + '" width="75" /></td>';
  tabOne = tabOne + '      <td>' + p.address + '<br />' + p.city + ', ' + p.state + ' ' + p.zip + '<br /> $' + p.price + ', ' + p.bedrooms + 'Beds ' + p.baths + 'Baths </td>' ;
  tabOne = tabOne + '    </tr>';
  tabOne = tabOne + '  </table>';
  tabOne = tabOne + '  <table>';
  tabOne = tabOne + '    <tr>';
  tabOne = tabOne + '      <td><strong>View Property:</strong></td>';
  tabOne = tabOne + '      <td><a href="/idx/residential/' + p.id + '">Click Here</a></td>';
  tabOne = tabOne + '    </tr>';
  tabOne = tabOne + '  </table>';

  

  var gpoint = new google.maps.LatLng(p.latitude, p.longitude);  
  gmapResidentialCreateMarker(gpoint, tabOne);

}

/**
 * Creates a marker for a residential listing
 */
function gmapResidentialCreateMarker(point, tab1)
{

  var MapIcon = new google.maps.MarkerImage('http://idx.impactmedianc.com/2.0/images/houseIcon.png', 
  new google.maps.Size(20, 20)	
  );	
  var marker = new google.maps.Marker({
  position:point,
  map:gmap,
  icon:MapIcon
  });  
  
  
  
  google.maps.event.addListener(marker, 'click', function() {
  gwindow.close;
  gwindow.setContent(tab1);
  gwindow.open(gmap, marker);
  });

}


/**
 * Search for nearby listings
 */
function gmapFindNearbyListings(idxClass, id, price)
{
  jQuery.ajax({
    url: '/idx/ajax/dispatch.php',
    dataType: 'json',
    data: { ajaxpage: 'gmapFindNearbyListings', idxClass: idxClass, id: id, price: price },
    success: function(data) {
      
      // Check that we were given at least 1 property
      if(data.length == 0) {
        alert('No nearby properties were returned.');
        return false;
      }
      
      // Loop over the returned properties and add the overlays
      jQuery.each(data, function(key, value) {
        if(idxClass == 'commercial') {
          gmapCommercialAddOverlay(value);
        }
        else {
          gmapResidentialAddOverlay(value);
        }
      });
    }
  });
}

function gmapShowStreet()
{
  var toggle = panorama.getVisible();

  if (toggle == false)
  {
	panorama.setVisible(true);
  }
  else
  {
	panorama.setVisible(false);
  }
}
