/*
 * DrivingSales jQuery Library
 * File:	jquery.ds.main.js
 * Purpose: site-wide functions
 *
 * Copyright (c) 2010 DrivingSales, Inc.
 *
 * Date: 1/29/2010
 */

var m_in_dd = false;
var m_orig = null;
var menus = null;
var cur_dd = null;
var last_dd = null;
var m_in_mp = false;
var m_over_name = false;

function checkCloseDropdown(dd) {
	if(!m_in_dd && cur_dd.attr('id') == dd && cur_dd.is(':visible'))
	{
		$("#menu .item").removeClass('active').removeClass('current');
		m_orig.addClass('current');
		cur_dd.hide();
	}
}

function checkCloseMiniProfile()
{
	if(!m_in_mp && !m_over_name)
	{
		$("#mini-profile").hide('fast');
	}
}

function addMiniProfileActions()
{
	$('.username').hover(function() {
		var user_id = this.id.toString().split('-')[2];
		
		m_over_name = true;
		
		// Clear mini profile box
		$("#mini-profile .avatar").hide();
		$("#mini-profile .info").hide();
		$("#mini-profile .links").hide();
		
		// Move box
		var newTop = $(this).position().top - 166;
		if(newTop < 0)
		{
			newTop = $(this).position().top + 20;
		}
		
		$("#mini-profile").css('left', $(this).position().left).css('top', newTop);
		
		// Show ajax loader + box
		$("#mini-profile .ajax-loader").show();
		$("#mini-profile").show('fast');
		
		// Get user details
		$.getJSON(baseUrl+'ajax/calls_nu/mini_profile/'+user_id, function(json){
			if(json.success==1){
				// Success
				$("#mini-profile .avatar").attr('src', json.avatar).show('fast');
				
				$("#mini-profile h2").html(json.name);
				$("#mini-profile .job-title").html(json.job_title);
				$("#mini-profile .company").html(json.company);
				
				$("#mini-profile .links .profile-link").attr('href', json.link);
				$("#mini-profile .links .invite-link").attr('href', baseUrl+"profile/invites/send/"+user_id);
				$("#mini-profile .links .message-link").attr('href', baseUrl+"profile/messages/write/"+user_id);
				
				$("#mini-profile .info").show('fast');
				$("#mini-profile .links").show('fast');
				$("#mini-profile .ajax-loader").hide('fast');
			} else {
				// Error
				$("#mini-profile").hide();
			}
		});
	}, function() {
		m_over_name = false;
		setTimeout("checkCloseMiniProfile()", 500);
	});
}

$(document).ready(function() {
	menus = { "m_home":"dd_home", "m_profile":"dd_profile", "m_about":"dd_about", "m_vr":"dd_vr" };
	cur_dd = $("#menu .dropdown");
	m_orig = $("#menu .item.current");

	// Hide dropdowns
	$("#menu .dropdown").hide();
	 
	// Hide widget contents (all but first)
	$(".widget .frames > *").hide();
	$(".widget .frames div:first-child").show();

	// Dropdown hover functions
	$('#menu .dropdown').hover(function(){ m_in_dd=true; }, function(){ m_in_dd=false; });
	// Close dropdown when click is outside
	$(document).mouseup(function(){ if(!m_in_dd) { $("#menu .item").removeClass('active').removeClass('current'); m_orig.addClass('current'); cur_dd.hide(); } });

	// Dropdown functions
	$("#menu .item").mouseenter(function() {
		m_in_dd = true;
		var newTop = '62px';
		cur_dd.mouseleave();
		cur_dd = $("#"+menus[this.id]);
		$("#menu .item").removeClass('active').removeClass('current');
		$("#"+this.id).addClass('active').addClass('current');
		$("#"+menus[this.id]).css({top: newTop, left: $("#"+this.id).position().left-1, position: 'absolute'}).show();
	});

	// Close dropdown when mouse leaves	
	$("#menu .item").mouseleave(function() {
		setTimeout("checkCloseDropdown('"+menus[this.id]+"')", 100);
	});
	
	$("#menu .dropdown").mouseleave(function() {
		$("#menu .item").removeClass('active').removeClass('current');
		m_orig.addClass('current');
		$("#"+this.id).hide();
	});

	// Widget menu function
	$(".widget .menu .item").hover(function() {
		var x = $("#"+this.id).closest(".widget");
		$("#"+x.attr('id')+" .content").hide();
		$("#"+x.attr('id')+" .menu .item").removeClass('active');
		$("#"+this.id+"_content").show();
		$("#"+this.id).addClass('active');
	});
	
	// Mini profile functions
	$('#mini-profile').mouseleave(function() { $('#mini-profile').hide('fast'); } );
	$('#mini-profile').hover(function() { m_in_mp = true; }, function() { m_in_mp = false; });
});
