/**
 * Global.js
 *
 * @version $Id: global.js $
 */

var change_date;
$(function() {
	//initialize lavalamp menu
	$(".lavaLamp").lavaLamp({ fx: "backout", speed: 700 });
	
	 // initialize scrollable 
    $("div.scrollable").scrollable().circular().navigator().autoscroll({ 
        autoplay: true, 
        api: false 
    });
    
    //Load the slideshow
	theRotator();
	
	// Overlay with Jquery Tools
    // it is assumed to be the onBeforeLoad event listener 
    $("a[rel]").overlay({ 
 
    	// some expose tweaks suitable for modal dialogs 
        expose: { 
            color: '#333', 
            loadSpeed: 400, 
            opacity: 0.9 
        },  
        effect: 'apple', 
 
        onBeforeLoad: function() { 
 
            // grab wrapper element inside content 
            var wrap = this.getContent().find(".contentWrap"); 
 
            // load the page specified in the trigger 
            wrap.load(this.getTrigger().attr("href"));
            
        },
        
        onLoad: function(){
        	//Google maps Initialize
            initialize_single_map();
        }
 
    }); 
    
    //Login Dropdown
    $(".signin").click(function() {
    	var pos = $(".signin").offset();  
        var width = $(".signin").width();
        var height = $(".signin").height();
        $("fieldset#signin_menu").css( { "left": (pos.left + width - 140) + "px", "top":(pos.top + height - 5) + "px" } );
        $("fieldset#signin_menu").fadeIn(500);
    });
    
    $("fieldset#signin_menu").mouseleave(function(){
    	$("fieldset#signin_menu").fadeOut(500);
    });
	
	$("fieldset#signin_menu").mouseup(function() {
		return false
	});
	
	$(document).mouseup(function(e) {
		if($(e.target).parent("a.signin").length==0) {
			$("fieldset#signin_menu").fadeOut(500);
		}
	});	

	change_date = function(new_time)
	{
		$.ajax({
		   type: "GET",
		   url: "/get_calendar",
		   data: "time="+new_time,
		   success: function(msg){
				$('#calendar_wrapper').html(msg);
				
				
				$('.date_has_event').each(function () {
					// options
					var distance = 10;
					var time = 250;
					var hideDelay = 500;

					var hideDelayTimer = null;

					// tracker
					var beingShown = false;
					var shown = false;

					var trigger = $(this);
					var popup = $('.events ul', this).css('opacity', 0);

					// set the mouseover and mouseout on both element
					$([trigger.get(0), popup.get(0)]).mouseover(function () {
						// stops the hide event if we move from the trigger to the popup element
						if (hideDelayTimer) clearTimeout(hideDelayTimer);

						// don't trigger the animation again if we're being shown, or already visible
						if (beingShown || shown) {
							return;
						} else {
							beingShown = true;

							// reset position of popup box
							popup.css({
								top: 20,
								left: -76,
								display: 'block' // brings the popup back in to view
							})

							// (we're using chaining on the popup) now animate it's opacity and position
							.animate({
								bottom: '+=' + distance + 'px',
								opacity: 1
							}, time, 'swing', function() {
								// once the animation is complete, set the tracker variables
								beingShown = false;
								shown = true;
							});
						}
					});
					$([trigger.get(0), popup.get(0)]).mouseout(function () {
						// reset the timer if we get fired again - avoids double animations
						if (hideDelayTimer) clearTimeout(hideDelayTimer);

						// store the timer so that it can be cleared in the mouseover if required
						hideDelayTimer = setTimeout(function () {
							hideDelayTimer = null;
							popup.animate({
								bottom: '-=' + distance + 'px',
								opacity: 0
							}, time, 'swing', function () {
								// once the animate is complete, set the tracker variables
								shown = false;
								// hide the popup entirely after the effect (opacity alone doesn't do the job)
								popup.css('display', 'none');
							});
						}, hideDelay);
					});
				});
				
				
		   }
		 });
	}
    
});



