/******************************************************************************
* Module: custom.js
* Author:  Scott Wang
* Email: scott@bmalloc.com
* Web: http://www.bmalloc.com
* Date:  July 27, 07
* Purpose: Interact with GOOGLE MAP API
* Modified History: 
* Aguest 8, 08 - Try to add Nisa Map Logo in the map
*******************************************************************************/
var baseIcon = new GIcon();
baseIcon.shadow = "icons/shadow.png";
baseIcon.iconSize = new GSize(20, 34);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(20, 34);
baseIcon.infoWindowAnchor = new GPoint(20, 34);
baseIcon.infoShadowAnchor = new GPoint(37, 34);

var load_map = function(t){
    
   var map = new GMap2($('map'));
   
   //add map control, Zoom In, Zoom Out
   map.addControl(new GLargeMapControl());

   //add map control, satellite, hybird
   map.addControl(new GMapTypeControl());
   
   //Nisa is at 49.181238, -123.951205
   var default_center = new GLatLng(49.581238, -123.951205);
   //default zoom level
   var default_zoom = 7;
   
   //get variable from get_listings.php
   var listings = eval('(' + t.responseText +')');  
   
   if(gup('li') != ''){
      var default_center = new GLatLng(listings[0].latitude,listings[0].longitude);
      var default_zoom = 14;
     
   }
  
   
   map.setCenter(default_center, default_zoom);
   
   /*  Create multiple icons  */
   for(var i = 0; i < listings.length; i++){
        var pos = new GLatLng(listings[i].latitude,listings[i].longitude);

        //setting tabs
        var tabs = [
            $H({'title': 'Listing',
                'contents': '<div class="tab" id="tab1" align="center"></div>'
            }),
            $H({'title': 'Photos',
                'contents': '<div class="tab" id="tab2" align="center"></div>'
            }),
            $H({'title': 'Contact Us',
                'contents': '<div class="tab" id="tab3" align="center"></div>'
            })
        ];
        
        var infoTabs = new Array();
        for(var j = 0; j < tabs.length; j++){
            infoTabs[j] = new GInfoWindowTab(tabs[j]['title'],tabs[j]['contents']);
        }
        map.addOverlay(createMarker(pos, infoTabs, listings[i]));
   }
  // map.addOverlay(createNisaMarker(map));
}

function createNisaMarker(map){
   var bounds = map.getBounds();
   var center = bounds.getSouthWest();
   var off_lat =  0.33/map.getZoom();
   var lat = center.lat() + 0.004;
   var lng = center.lng()+0.01;
   var icon = new GIcon();
   icon.iconSize = new GSize(228, 75);
   icon.image = "icons/NISA-mapping-systems-logo.gif";
   icon.shadowSize = new GSize(37, 34);
   icon.iconAnchor = new GPoint(20, 34);
   icon.infoWindowAnchor = new GPoint(20, 34);
   icon.infoShadowAnchor = new GPoint(37, 34);
   var marker = new GMarker(new GLatLng(lat,lng), icon);
   return marker;
}

function createMarker(point, infoTabs, listing) {
      // Create a lettered icon for this point using our icon class
      var icon = new GIcon(baseIcon);
      
      // Set Up Icons
      if(listing.salestatus == 1){
         if(listing.sold_icon != ''){
            icon.image = "icons/" + listing.sold_icon;
         }else{
            icon.image = "icons/red.png"; 
         }
      }else{
         if(listing.sale_icon != ''){ 
            icon.image = "icons/" + listing.sale_icon; 
         }else{
            icon.image = "icons/blue.png"; 
         }
      }
      
     
      var marker = new GMarker(point, icon);

      GEvent.addListener(marker, "click", function() {
           marker.openInfoWindowTabsHtml(infoTabs);
           new Ajax.Updater('tab1', 'get_tab.php', {postBody: 'tab=1&id=' + listing.li});
           new Ajax.Updater('tab2', 'get_tab.php', {postBody: 'tab=2&id=' + listing.li});
           new Ajax.Updater('tab3', 'get_tab.php', {postBody: 'tab=3&id=' + listing.li});
      });
      
   /*   GEvent.addListener(marker, "mouseover", function() {
           marker.openInfoWindowTabsHtml(infoTabs);
           new Ajax.Updater('tab1', 'get_tab.php', {postBody: 'tab=1&id=' + listing.li});
           new Ajax.Updater('tab2', 'get_tab.php', {postBody: 'tab=2&id=' + listing.li});
           new Ajax.Updater('tab3', 'get_tab.php', {postBody: 'tab=3&id=' + listing.li});
      });            
           */
      return marker;
}

function go(){
    var source_addr = document.getElementById('source_addr').value;
    var dest_addr = document.getElementById('dest_addr').value;
    var url = 'http://maps.google.com/maps?saddr='
                    + source_addr + '&daddr=' + dest_addr;
    window.open(url);
}


function change_image(direction){
    var images = document.getElementsByName('images');
    var image_index = parseInt(document.getElementById('image_index').value);
    var directions = new Array();
    directions['prev'] = -1;
    directions['next'] = 1;
    image_index += directions[direction];
    if(image_index < 1){
        image_index = images.length;
    }else if(image_index > images.length){
        image_index = 1;
    }

    var image_obj = document.getElementById('image_src');
    image_obj.src = images[image_index-1].value;
    document.getElementById('image_index').value = image_index + '';
}

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}



