var cfg = (jQuery.hoverintent = {
	sensitivity: 7,
	interval: 100
});
	
jQuery(document).ready(function($){
	jQuery.event.special.hoverintent = {
		setup: function() {
			jQuery(this).bind("mouseover", jQuery.event.special.hoverintent.handler);
		},
		teardown: function() {
			jQuery(this).unbind("mouseover", jQuery.event.special.hoverintent.handler);
		},
		handler: function(event) {
			event.type = "hoverintent";
			var self = this,
				args = arguments,
				target = jQuery(event.target),
				cX, cY, pX, pY;
			

			function track(event) {
				cX = event.pageX;
				cY = event.pageY;
			};
			pX = event.pageX;
			pY = event.pageY;
			function clear() {
				target.unbind("mousemove", track).unbind("mouseout", arguments.callee);
				clearTimeout(timeout);
			}
			function handler() {
				if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
					clear();
					jQuery.event.handle.apply(self, args);
				} else {
					pX = cX; pY = cY;
					timeout = setTimeout(handler, cfg.interval);
				}
			}
			var timeout = setTimeout(handler, cfg.interval);
			target.mousemove(track).mouseout(clear);
			return true;
		}
	};
	
	// set accordion on #side-nav 
	$("#side-nav").accordion({ autoHeight: false, event: 'mouseover' });
	// set accordion on #side-nav sublists
	$("#side-nav ul").accordion({ navigation:true, autoHeight: false, event: 'hoverintent' });
	$("#side-nav a.ui-state-active").parent().parent().parent().addClass('expanded');
	// set event setting up "expanded" class
	$('.ui-accordion').bind('accordionchangestart', function(event, ui) {
		if (ui.newHeader.parent().children('ul').size() > 0 ) {
			ui.newHeader.parent().addClass('expanded');
		}
	});    
	// set event clearing up "expanded" class
	$('#side-nav ul').bind('accordionchange', function(event, ui) {      
		ui.oldHeader.parent().removeClass('expanded');
	});                   
});

