// Animate second level menus (but not active menus)
// --------------------------

function animateLiStart(el)
	{
	if (el.className.indexOf('active') == -1 && el.parentNode.parentNode.getAttribute('id') == 'nav')
		{
		var uls, newNavBottom, containerEl, containerTargetHeight;

		uls = el.getElementsByTagName('ul');
		if (uls.length)
			{
			uls[0].style.position = 'static';
			animatePixelValue(uls[0], 'height', 0, 3, uls[0].offsetHeight, 10);
			}
		}
	}
function animateLiEnd(el)
	{
	if (el.className.indexOf('active') == -1 && el.parentNode.parentNode.getAttribute('id') == 'nav')
		{
		var uls;
		uls = el.getElementsByTagName('ul');
		if (uls.length)
			{
			el.style.height = 'auto';
			animatePixelValue(uls[0], 'height', null, -3, 0, 10, function ()
				{
				uls[0].setAttribute('style', ''); // Safari 4.0 (PC)
				el.setAttribute('style', '');
				uls[0].removeAttribute('style');
				el.removeAttribute('style');
				});
			}
		}
	}
	
// Library functions
// -----------------
	
function animatePixelValue(element, property, start, increment, end, delay, callback)
	{
	/* Animate a pixel based style property from start to end
	 */
	var current;
	if (start == null)
		{
		// Can start from current value if property is an offset* 
		if (property == 'height') current = element.offsetHeight;
		else if (property == 'width') current = element.offsetWidth;
		else if (property == 'left') current = element.offsetLeft;
		else if (property == 'top') current = element.offsetTop;		
		else current = 0;
		current += increment;
		}
	else current = start + increment;
	if ((increment < 0 && current <= end) || (increment > 0 && current >= end))
		{
		element.style[property] = end.toString().concat('px');
		if (typeof(callback)=='function') callback();
		}
	else
		{
		element.style[property] = current.toString().concat('px');
		setTimeout(function() { animatePixelValue(element, property, current, increment, end, delay, callback); }, delay);
		}
	}

jQuery.fn.slideshow = function (selection, speed, delay, endDelay)
	{
	var parent, slides_JQ, index, len;
	parent = this;
	slides_JQ = parent.find(selection);
	len = slides_JQ.length;

	function next_slide()
		{
		if (index != len)
			{
			slides_JQ.eq(index).fadeIn(speed, function ()
				{
				++index;
				setTimeout(next_slide, delay);
				});
			}
		else
			{
			setTimeout(function ()
				{
				slides_JQ.slice(1, len-1).hide();
				slides_JQ.eq(len-1).fadeOut(speed, function ()
					{
					index = 1;
					setTimeout(next_slide, delay);
					});
				}, endDelay);
			}
		}
		
	slides_JQ.slice(1).hide();
	index = 1;
	setTimeout(next_slide, delay);
	};

var ieversion; // !! GLOBAL !!

jQuery(document).ready(function()
	{
	// Test for IE
	// -----------
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) //test for MSIE x.x;
		ieversion=new Number(RegExp.$1);
	else
		ieversion = null;

	// Nav bar space
	// -------------
	var maxH, maxMenu, navEl, containerEl;

	navEl = document.getElementById('nav');
	containerEl = document.getElementById('container');

	maxH = 0;
	jQuery('#nav > ul > li > ul').each(function () { if (this.offsetHeight > maxH && !this.parentNode.className.match(/\bactive\b/)) maxH = this.offsetHeight; });

	maxMenu = navEl.offsetTop + navEl.offsetHeight + maxH;
	if (maxMenu > jQuery(containerEl).height())
		{
		if (ieversion == null || ieversion > 6) containerEl.style.minHeight = maxMenu.toString().concat('px');
		else containerEl.style.height = maxMenu.toString().concat('px');
		}
	});
	
// Rotating images
// ---------------

jQuery(window).load(function()
	{
	var images_div;
	images_div = document.getElementById('rotating-banner-images');
	if (images_div)
		{
		jQuery(images_div.getElementsByTagName('img')).remove().hide().appendTo(document.getElementById('main-image')).parent().slideshow('img', 2000, 4000, 0);
		}
	});



