// JavaScript Document

var current_subnav = sliding_in = sliding_out = 0;
var counter =0;
jQuery(function(){
	
	// Build subnavigation from original markup
	jQuery("#nav > li").each(function() {
		var curr_id = jQuery(this).attr("id");
		var subnav_obj = jQuery(this).children("ul");
		if(subnav_obj.length > 0) // has subnavigation
		{
			jQuery("#subnav").append('<ul id="subnav-' + curr_id + '" class="subnav-content">' + subnav_obj.html() + '</ul>');
			subnav_obj.prev("a").mouseover(function() {
				jQuery("#subnav").stopTime('subnav');
				var pos = jQuery(this).position();
				var width = jQuery(this).width();
				slide_subnav_in(curr_id, 1 * pos.left + width/2 - 5);
			}).mouseout(function() {
				jQuery("#subnav").oneTime('1s', 'subnav', function() {
					close_subnav();
				});
			});
			subnav_obj.remove();
		}
		else
		{
			jQuery(this).children("a").mouseover(function() {
				jQuery("#subnav").stopTime('subnav');
				close_subnav();	
			});
		}
	});
	
	jQuery("#subnav").mouseover(function() {
		jQuery("#subnav").stopTime('subnav');
	}).mouseout(function() {
		jQuery("#subnav").oneTime('1s', 'subnav', function() {
			close_subnav();
		});
	});
	
	jQuery("#subnav li.level3 > a").prepend("-&nbsp;");
	jQuery("#subnav li.level1 > a > span > span").not("#subnav-nav-1 li.level1 > a > span > span").append(".");
	
	var special_pos = 2;
	var distr_obj = jQuery("#subnav li.nav-"+special_pos+"-1 li");
	var num_elems = distr_obj.length;
	var level2_obj = distr_obj.filter("li.level2");
	var count_level2 = level2_obj.length;
	var num_cols = Math.ceil( num_elems / 12);
	var curr_num_elems = 0;
	var curr_col = 1;
	var curr_obj;
	var curr_target;
	var curr_class = '';
	var curr_length = 0;
	var sub_length = 0;
	var max_length = 12;
	
	for(var curr_elem_id=1; curr_elem_id <= count_level2; curr_elem_id++)
	{
		curr_class = 'nav-'+special_pos+'-1-' + curr_elem_id;
		curr_obj = level2_obj.filter("." + curr_class);
		sub_length = curr_obj.find("li").length;

		if((curr_length + 1 + sub_length) > max_length)
		{
			curr_col++;
			jQuery("#subnav-nav-"+special_pos).append('<li class="level1 nav-'+special_pos+'-' + curr_col + '" id="subnav-nav-'+special_pos+'-' + curr_col + '"><a href="javascript:;">&nbsp;</a><ul class="level1"></ul></li>');
			curr_length = 0;
			curr_target = jQuery("#subnav-nav-"+special_pos+"-" + curr_col + " > ul");
			
		}
		
		curr_length += (1 + sub_length);
		
		if(curr_col < 2)
		{
			continue;
		}
		
		curr_obj.appendTo(curr_target);
	}	
	
	jQuery("#search, #newsletter").focus(function() {
		jQuery(this).addClass("black");
	}).blur(function() {
		jQuery(this).removeClass("black");
	}).change(function() {
		jQuery(this).css("color", "black");
	});
});

function slide_subnav_in(target, pos) 
{
	if(target == current_subnav)
	{
		return true;
	}
	
	if(!current_subnav)
	{
		open_subnav(target);
		current_subnav = target;
		jQuery("#pointer-blue").stop().animate({"margin-left": pos+'px'}, 600);
		return true;
	}
	
	if(!sliding_in)
	{
		jQuery("#subnav-"+target).animate({top: '0px'}, 300, function() {
			sliding_in = 0;
		});
		if(target == 'nav-1')
		{
			jQuery("#subnav").animate({height: '343px'}, 300);
		}
		jQuery("#pointer-blue").stop().animate({"margin-left": pos+'px'}, 600);
		sliding_in = target;
	}
	else
	{
		jQuery("#subnav-"+target).oneTime('50ms', 'sliding', function() {
			slide_subnav_in(target, pos);
		});
		return true;
	}
	
	if(current_subnav)
	{
		jQuery("#subnav-"+current_subnav).animate({top: '350px'}, 300, function() {
			jQuery(".subnav-content").not("#subnav-"+target).css("top", "-350px");
			//jQuery(this).css("top", "-240px");
			sliding_out = 0;
		});	
		
		if(current_subnav == 'nav-1')
		{
			jQuery("#subnav").animate({height: '290px'}, 300);
		}
		sliding_out = current_subnav;
	}
	current_subnav = target;
	
}

function open_subnav(target) 
{	
	if(target == 'nav-1')
	{
		jQuery("#subnav").css({height: '343px'});
	}
	else
	{
		jQuery("#subnav").css({height: '290px'});
	}
	jQuery("#subnav-"+target).css("top", "0px");
	jQuery("#subnav-container").slideDown("fast");
}

function close_subnav() 
{
	jQuery("#subnav-container").slideUp("fast", function() {
		jQuery("#subnav-"+current_subnav).css("top", "-350px");
		current_subnav = 0;
	});
}

