// 
//  map.php
//  thegrandatdiamondbeach.hzdesign.com
//  
//  Created by Craig Hoover on 2009-08-27.
//  Copyright 2009 HZDG. All rights reserved.
// 

var Map = {
   
   init:function(){
	  
      this.preloadQuadrants();   
      this.bindQuadrantHoverStates();
      $('#key>span').click(Map.openKey);    
      $('#key').jqDrag('span');  
   },

   preloadQuadrants:function(){
	   
      $('.quadrant').each(function(){
         $('<img>').attr('src','/images/'+$(this).attr('id')+'.gif');      
      });
   },
   
   bindQuadrantHoverStates:function(){
	   //alert('bindQuadrantHoverStates');
      $('.quadrant').bind('mouseover', Map.showOverlay).bind('mouseout',Map.removeOverlay);
   },
   
   unBindQuadrantHoverStates:function(){
	   //alert('unbindQuadrantHoverStates');
      $('.quadrant').unbind('mouseover',Map.showOverlay).unbind('mouseout', Map.removeOverlay);
   },
   
   showOverlay:function(){
	   //alert('showOverlay');
      $(this).addClass('overlay').bind('click', Map.changeQuadrant);      
   },
   
   removeOverlay:function(){
	    //alert('removeOverlay');
      $(this).removeClass('overlay').unbind('click', Map.changeQuadrant);
   },
   
   restoreMap:function(){
	   //alert($('.areamap').class);
      $('#areamap').removeClass();    
	  $('#areamap').addClass('areamap');
   },
   
   showKey:function(){
      $('#key').show();
   },
   hideKey:function(){
      $('#key').hide();
   },   
   openKey:function(e){
      e.stopPropagation();
      $('#key').animate({height:335},250,function(){
         $('#key>span.title').text('Close Legend').bind('click',Map.closeKey);
      }); 
   },
   closeKey:function(e){
      $('#key').animate({height:25},function(){
         $('#key>span.title').text('Open Legend').unbind('click', Map.closeKey);
      }); 
   },
   
   changeQuadrant:function(e){
      //alert('changeQuadrant');
	  e.stopPropagation();
      
      $('.areamap').bind('click', Map.closeQuadrant).addClass($(this).attr('id')).attr('title','Click to return to map')
      //alert('now');
      Map.showKey();
      Map.removeOverlay.call(this);
      Map.unBindQuadrantHoverStates();      
   },
   
   closeQuadrant:function(e){    
      e.stopPropagation();    
	 
      Map.hideKey();
      Map.restoreMap();
      Map.bindQuadrantHoverStates();
   }
}

Map.init();
