// Setup and initiate mega menus sub-menu overs
$(document).ready(function () {
    $('.yacht-res div').hide();
	$('.yacht-res .default').show();
    $('#site_nav ul.product_nav ul li a').mouseover(function () {
        var i = $(this).attr('id');
        $('.yacht-res div').hide();
        $('#yacht-' + i).show();
    });
});



// Drop Down

var TOUCH_DEVICE = !!('ontouchstart' in window);

$(document).ready(function() {
	var header = new KaiserHeader(), f, families = {};
	$('#site_nav .dd').each(function(){ new KaiserDropDown(this); }); //dropdown
	$('#site_nav #site_nav_company .dd'); //company dropdown	
	$('#site_nav #site_nav_modelrange .dd'); //model range dropdown
});

var KaiserHeader = function() {
	var th = this;
	
	$.extend(th, {
		$els : {
			header : $("#hd"),
			headerBar : $("#hd_bar"),
			overlay : $("<div/>", {"id":"blackOverlay"}).fadeTo(0, 0).hide().appendTo("body"),
			shaderStrip : $("<div/>", {"class":"shaderStrip checkedOverlay"}).appendTo("#hd"),
			shadow : $("<div/>", {"class":"shadow"}).appendTo("#hd_nav")
		}
	});
	
	$("#hd").find(".dd").each(function() { $("<div/>", {"class":"shadow"}).appendTo(this) });
}

var KaiserDropDown = function(el){
	var t = this, $el = $(el);
	
	$.extend(t, {
		$el : $el,
		wrapper : $el.children('.sub_nav_wrapper').eq(0),
		master : $el.parent(),
		ol : $("#blackOverlay")
	});
	
	t.$el.show();
	// Drop Down
	t.upMarg = (t.wrapper.children('ul').eq(0).height() * t.wrapper.children('ul').length * -1) - 6;	
	t.wrapper.css('margin-top', t.upMarg);
	
	if(!TOUCH_DEVICE) {
		t.master.hoverIntent({
			over:function(){t.onOver()},
			out:function(){t.onOut()},
			interval:200,
			timeout:200
		})
	}
}
KaiserDropDown.prototype.onOver = function(){
	var t = this, b = $('body');
	t.wrapper.animate({'margin-top' : 0}, {duration:250, easing:'easeOutCirc'});
	t.ol.stop(true).show().fadeTo(200, 0.3);
	t.master.addClass('down');
}
KaiserDropDown.prototype.onOut = function(){
	var t = this;
	t.wrapper.animate({'margin-top' : t.upMarg}, {duration:250, easing:'easeOutCirc'});
	t.ol.stop(true).fadeTo(200, 0, function() { $(this).hide(); });
	t.master.removeClass('down');
}



// 

	
