/* jQuery googleMap Copyright Dylan Verheul <dylan@dyve.net>
 * Licensed like jQuery, see http://docs.jquery.com/License */

$.googleMap = { maps:{},mapNum:1 };

$.fn.googleMap = function(lat,lng,zoom) {
  // If we aren't supported, we're done
  if (!window.GBrowserIsCompatible || !GBrowserIsCompatible()) return this;

  // Map all our elements
  return this.each(function() {
    // Make sure we have a valid id
    if (!this.id) this.id = 'gMap' + $.googleMap.mapNum++;
    // Create a map and a shortcut to it at the same time
    var map = $.googleMap.maps[this.id] = new GMap2(this);
    // Center and zoom the map
    map.setCenter(new GLatLng(lat,lng),zoom);
  });
};

function makeMap(lat,lng,village)
{
  var root = deriveRoot();
  
  if($('#gMap').googleMap(lat,lng,10))
  {
    var mapControl = new GLargeMapControl(); // Zoom/Pan Controls
    $.googleMap.maps['gMap'].addControl(mapControl);
    var mapControl = new GMapTypeControl(); // Map/Satellite/Hybrid Controls
    $.googleMap.maps['gMap'].addControl(mapControl);
    $.googleMap.maps['gMap'].setMapType(G_NORMAL_MAP); // Basic Map Mode
    
    switch( village )
    {
      case 'HemsbyBeach':
        // Add Hemsby Beach Marker
        var icon = new GIcon();
        icon.image = root+'media/img/common/gmap-icon.png';
        icon.size = new GSize(34,58);
        icon.iconAnchor = new GPoint(17,58);
        icon.infoWindowAnchor = new GPoint(14,20);
        
        var hemsby  = new GLatLng(52.702863,1.708031);
        var hemsbyM = new GMarker(hemsby,icon);
        
        $.googleMap.maps['gMap'].addOverlay(hemsbyM);
        
        GEvent.addListener(hemsbyM,'click',function()
        {
          hemsbyM.openInfoWindowHtml('<p><strong>Hemsby Beach Holiday Village</strong><br />Beach Road<br />Hemsby<br />NR29 4HT</p>');
        });
        break;
      case 'Summerfields':
        // Add Summerfields Marker
        var icon = new GIcon();
        icon.image = root+'media/img/common/gmap-icon.png';
        icon.size = new GSize(34,58);
        icon.iconAnchor = new GPoint(17,58);
        icon.infoWindowAnchor = new GPoint(14,20);
        
        var summerfields  = new GLatLng(52.684396,1.716013);
        var summerfieldsM = new GMarker(summerfields,icon);
        
        $.googleMap.maps['gMap'].addOverlay(summerfieldsM);
        
        GEvent.addListener(summerfieldsM,'click',function()
        {
          summerfieldsM.openInfoWindowHtml('<p><strong>Summerfields Holiday Village</strong><br />Beach Road<br />Scratby, Norfolk<br />NR29 3NW</p>');
        });
        break;
      case 'Seacroft':
        // Add Seacroft Marker
        var icon = new GIcon();
        icon.image = root+'media/img/common/gmap-icon.png';
        icon.size = new GSize(34,58);
        icon.iconAnchor = new GPoint(17,58);
        icon.infoWindowAnchor = new GPoint(14,20);
        
        var seacroft  = new GLatLng(52.702759,1.70228);
        var seacroftM = new GMarker(seacroft,icon);
        
        $.googleMap.maps['gMap'].addOverlay(seacroftM);
        
        GEvent.addListener(seacroftM,'click',function()
        {
          seacroftM.openInfoWindowHtml('<p><strong>Seacroft Holiday Village</strong><br />Beach Road<br />Hemsby, Norfolk<br />NR29 4HR</p>');
        });
        break;
      case 'Mundesley':
        // Add Mundesley Marker
        var icon = new GIcon();
        icon.image = root+'media/img/common/gmap-icon.png';
        icon.size = new GSize(34,58);
        icon.iconAnchor = new GPoint(17,58);
        icon.infoWindowAnchor = new GPoint(14,20);
        
        var mundesley  = new GLatLng(52.87716,1.449337);
        var mundesleyM = new GMarker(mundesley,icon);
        
        $.googleMap.maps['gMap'].addOverlay(mundesleyM);
        
        GEvent.addListener(mundesleyM,'click',function()
        {
          mundesleyM.openInfoWindowHtml('<p><strong>Mundesley Holiday Village</strong><br />Paston Road<br />Mundesley, Norfolk<br />NR11 8BT</p>');
        });
        break;
      case 'SouthDowns':
        // Add South Downs Marker
        var icon = new GIcon();
        icon.image = root+'media/img/common/gmap-icon.png';
        icon.size = new GSize(34,58);
        icon.iconAnchor = new GPoint(17,58);
        icon.infoWindowAnchor = new GPoint(14,20);
        
        var southDowns  = new GLatLng(50.774302,-0.85084);
        var southDownsM = new GMarker(southDowns,icon);
        
        $.googleMap.maps['gMap'].addOverlay(southDownsM);
        
        GEvent.addListener(southDownsM,'click',function()
        {
          southDownsM.openInfoWindowHtml('<p><strong>South Downs Holiday Village</strong><br />Bracklesham Bay<br />Chichester, Sussex<br />PO20 8JE</p>');
        });
        break;
    }
    
    // Hide Peripheral Info
    $('#gMap').find('div[class="gmnoprint"]:nth-child(2)').css('visibility','hidden');
    $('#gMap').find('div[class="gmnoprint"]:nth-child(3)').css('visibility','hidden');
  }
  else
  {
    $('div#gMap img').css('display','block');
  }
}

$(document).ready(function()
{
  $('div#gMap img').css('display','none');
  
  var village = $('div#gMap img').attr('class');
  
  if ( village == 'SouthDowns' )
  {
    makeMap(50.774302,-0.85084,'SouthDowns');
  }
  else if ( village == 'Mundesley' )
  {
    makeMap(52.806063,1.39200,'Mundesley');
  }
  else
  {
    makeMap(52.64437,1.391905,village);
  }
});

function deriveRoot()
{
  var root = window.location.protocol+'//'+window.location.hostname+'/';
  
  if ( ( pos = window.location.pathname.search('public_html') ) != -1 )
  {
    root += window.location.pathname.substring(1,pos+12);
  }
  
  if ( window.location.pathname.search('demo') != -1 )
  {
    root += 'demo/';
  }
  
  //root = 'http://001.furtheronline.co.uk/richardsons/holiday_villages/';
  
  return root;
}