//<![CDATA[

var feature_position = 0;
var features = [];
var feature_timer_id = null;
var action = false;

var headline_timer_id = null;
var headline_position = 0;
var num_headlines = 0;
var headlines = [];

function init() {
	jQuery(document).keyup(onKeyUp);
	
	jQuery('.snip').mouseover(
		function () {
			jQuery(this).addClass('pointer');
			jQuery(this).children('.top').addClass('snip-hover-top');
			jQuery(this).children('.middle').addClass('snip-hover-middle');
			jQuery(this).children('.bottom').addClass('snip-hover-bottom');
		}
	);
	jQuery('.snip').mouseout(
		function () {
			jQuery(this).children('.top').removeClass('snip-hover-top');
			jQuery(this).children('.middle').removeClass('snip-hover-middle');
			jQuery(this).children('.bottom').removeClass('snip-hover-bottom');
		}
	);
	jQuery('.vision').click(
		function () {
			window.location.href = 'company/vision';
		}
	);
	jQuery('.team').click(
		function () {
			window.location.href = 'company/team';
		}
	);
	jQuery('.employment').click(
		function () {
			window.location.href = 'company/employment';
		}
	);
	jQuery('.contact').click(
		function () {
			window.location.href = 'contact-us';
		}
	);
	
	num_headlines = jQuery('#headlines-container p').length;
	jQuery('#headlines-container p').each(
		function (i) {
			headlines.push(jQuery(this).text());
		}
	);
	jQuery('#headlines-container').html('<p>' + headlines[0] + '</p>');
	
	jQuery('#topmenu a').mouseover(
		function() {
			jQuery(this).css({ color:'#FFF' });
			jQuery(this).css({ backgroundPosition:'100% 0' });
			jQuery(this).parent().css({ backgroundPosition:'0 0' });
		}
	);
	jQuery('#topmenu a').mouseout(
		function() {
			jQuery(this).css({ color:'#999' });
			jQuery(this).css({ backgroundPosition:'100% 30px' });
			jQuery(this).parent().css({ backgroundPosition:'0 30px' });
		}
	);
	
	doHeadlinesTimer();
	
	initFeatures();
}

function initFeatures() {
	jQuery('.previous').mouseover(onFeatureNavOver);
	jQuery('.previous').mouseout(onFeatureNavOut);
	jQuery('.previous').click(doPreviousFeature);
	
	jQuery('.next').mouseover(onFeatureNavOver);
	jQuery('.next').mouseout(onFeatureNavOut);
	jQuery('.next').click(doNextFeature);
	
	features = jQuery('.feature');
	
	jQuery('#features-container').empty().append(features[feature_position]);
	
	jQuery('#features-position').css({ width: 15 * features.length + 'px' });
	for (var i = 0; i < features.length; i++) {
		jQuery('#features-position').append('<span class="featured-position-item"></span>');
	}

	// binding need to occur after the elements are created (above)
	jQuery('.featured-position-item').mouseover(onFeaturePositionOver);
	jQuery('.featured-position-item').mouseout(onFeaturePositionOut);
	jQuery('.featured-position-item').click(onFeaturePositionClick);
	
	updateFeatureStatus();
	updateFeatureSprite();
	
	doFeatureTimer();
}

function updateFeatureStatus() {
	for (var i = 0; i < jQuery('.featured-position-item').length; i++) {
		if (i == feature_position) {
			jQuery.data(jQuery('.featured-position-item')[i], 'active', true);
		}
		else {
			jQuery.data(jQuery('.featured-position-item')[i], 'active', false);
		}
	}
}

function updateFeatureSprite() {
	var i = 0;
	var pos = '0 0';
	var len = jQuery('.featured-position-item').length;
	for (i = 0; i < len; i++) {
		if (jQuery.data(jQuery('.featured-position-item')[i], 'over')) {
			pos = (i == feature_position) ? '0 -45px' : '0 -30px';
		} else {
			pos = (i == feature_position) ? '0 -15px' : '0 0';
		}
		jQuery(jQuery('.featured-position-item')[i]).css({ backgroundPosition:pos });
	}
}

function onKeyUp(e) {
	switch (e.keyCode) {
		case 37 :
			doPreviousFeature(e);
			break;
		case 39 :
			doNextFeature(e);
			break;
	}
}

function onFeatureNavOver(e) {
	jQuery(e.target).css({ cursor:'pointer', color:'#FFF' });
}

function onFeatureNavOut(e) {
	jQuery(e.target).css({ cursor:'auto', color:'#999' });
}

function makePointer(e) {
	jQuery(e.target).css({ cursor:'pointer', color:'#FFF' });
}

function onFeaturePositionOver(e) {
	jQuery.data(e.target, 'over', true);
	updateFeatureSprite();
}

function onFeaturePositionOut(e) {
	jQuery.data(e.target, 'over', false);
	updateFeatureSprite();
}

function onFeaturePositionClick(e) {
	clearInterval(feature_timer_id);
	
	if (action) return;

	var index = jQuery('.featured-position-item').index(e.target);
	
	if (feature_position == index) return;
	
	var direction = (feature_position < index) ? 1 : -1;
	
	feature_position = index;	
	
	animateFeature(direction);
}

function doFeatureTimer() {
	feature_timer_id = setInterval(doNextFeature, 5000, null);
}

function doPreviousFeature(e) {
	if (action) return;
	
	if (e) {
		clearInterval(feature_timer_id);
	}
	
	feature_position --;
	if (feature_position < 0) {
		feature_position = features.length - 1;
	}
	
	animateFeature(-1);
}

function doNextFeature(e) {
	if (action) return;
	
	if (e) {
		clearInterval(feature_timer_id);
	}
	
	feature_position ++;
	
	if (feature_position >= features.length) {
		feature_position = 0;
	}
	
	animateFeature(1);
}

function animateFeature(direction) {
	if (action) return;
	
	action = true;
	
	updateFeatureStatus();
	updateFeatureSprite();
	
	if (-1 == direction) {
		jQuery('.feature:first').before(features[feature_position]);
		jQuery('.feature:first').css('marginLeft', '-600px');
		jQuery('.feature:first').animate(
			{ marginLeft: '0px' },
			500,
			null,
			function () {
				jQuery('.feature:eq(1)').remove();
				action = false;
			}
		);
	} else {
		jQuery('.feature:first').after(features[feature_position]);
	
		jQuery('.feature:first').animate(
			{ marginLeft: '-600px' }, 
			500, 
			null, 
			function() {
				jQuery(this).remove();
				jQuery(this).css({ marginLeft:'0px' });
				action = false;
			}
		);
	}
}

function doHeadlinesTimer() {
	if (num_headlines == 1) return;
	headline_timer_id = setInterval(doNextHeadline, 8000, null);
}

function doNextHeadline() {
	headline_position ++;
	if (headline_position >= headlines.length) headline_position = 0;
	
	jQuery('#headlines-container').animate(
		{ opacity:0 }, 1000, null, function() {
			jQuery('#headlines-container').html('<p>' + headlines[headline_position] + '</p>');
			jQuery('#headlines-container').animate(
				{ opacity:100 }, 1000, null
			);
		}
	);
}

jQuery(document).ready(init);

// ]]>