/**************************************************************************************************

2010-05-25	TM	Added play/pause behavior, update animation
				Added functionality for sub-feature animation
2010-06-14	TM	Updated size of sub-features

**************************************************************************************************/

/***********************************************/
// document ready, apply behaviors

$( document ).ready(function(){
	
	/***********************************************/
	// MAIN FEATURE
	
	// set element count
	$( '#home_feature_main' ).data( 'element_count', 0 );
	
	// set current and previous element trackers
	$( '#home_feature_main' ).data( 'element_current', 0 );
	$( '#home_feature_main' ).data( 'element_previous', 0 );
	
	// content placement
	$( '#home_feature_main .element_container .feature_element' ).each(
	function ()
	{
		
		// increment element count
		var temp_element_count = ( $( '#home_feature_main' ).data( 'element_count' ) * 1 ) + 1;
		$( '#home_feature_main' ).data( 'element_count', temp_element_count );
		
		// set location via top position
		var element_top = ( 0 - 530 ) + 'px';
		$( this ).css( 'top', element_top );
		
	}
	);
	
	// element selector behavior
	$( '#home_feature_main .selector_container .selector_element' ).each(
	function ()
	{
		
		$( this ).click(
		function ()
		{
			
			// clear interval
			feature_main_auto_clear();
			
			// get element number
			var element_number = $( this ).attr( 'alt' );
			
			// call change
			feature_main_change( element_number );
			
		}
		);
		
	}
	);
	
	// play/pause behavior
	$( '.selector_toggle_element' ).data( 'state', true );
	$( '.selector_toggle_element' ).click(
	function ()
	{
		
		if ( $( this ).data( 'state' ) == true )
		{
			
			$( this ).addClass( 'selector_toggle_element_active' );
			
			$( this ).data( 'state', false );
			feature_main_auto_clear();
			
		} else
		{
			
			$( this ).removeClass( 'selector_toggle_element_active' );
			
			$( this ).data( 'state', true );
			feature_main_auto_set();
			
		}
		
	}
	);
	
	// set automatic feature change
	feature_main_auto_set();
	
	// call first item
	feature_main_change( 1 );
	
	
	/***********************************************/
	// SUB FEATURES
	
	// element selector behavior
	$( '.subfeature_element_wrapper' ).each(
	function ()
	{
		
		$( this ).hover(
		function ()
		{
			
			$( this ).children( '.subfeature_element_content' ).stop(true, false);
			$( this ).children( '.subfeature_element_content' ).animate(
				{ top: -170 }, 400, 'swing'
			);
			
		}, function ()
		{
			
			$( this ).children( '.subfeature_element_content' ).stop(true, false);
			$( this ).children( '.subfeature_element_content' ).animate(
				{ top: 0 }, 400, 'swing'
			);
			
		}
		);
		
	}
	);
	
}
);


/***********************************************/
// MAIN FEATURE FUNCTIONS

/***********************************************/
// change item display

function feature_main_change ( sent_element )
{
	
	if ( sent_element != $( '#home_feature_main' ).data( 'element_current') )
	{
		
		// set previous and current feature trackers
		$( '#home_feature_main' ).data( 'element_previous', $( '#home_feature_main' ).data( 'element_current') );
		$( '#home_feature_main' ).data( 'element_current', sent_element );
		
		// adjust location of element container
		var element_top = ( 0 - 530 ) + 'px';
		var current_element = '#home_feature_main .element_container #feature_element_' + sent_element;
		$( current_element ).css( 'top', element_top );
		
		// animate current element
		$( current_element ).animate(
			{ 
			top: 0
			}, 500, 'swing'
		);
		
		// animate previous element
		var previous_element = '#home_feature_main .element_container #feature_element_' + $( '#home_feature_main' ).data( 'element_previous' );
		$( previous_element ).animate(
			{ 
			top: 530
			}, 500, 'swing'
		);
		
		// set previous element selector style
		var previous_selector = '#selector_element_' + ( $( '#home_feature_main' ).data( 'element_previous' ) );
		$( previous_selector ).removeClass( 'selector_element_active' );
		
		// set current element selector style
		var current_selector = '#selector_element_' + ( sent_element );
		$( current_selector ).addClass( 'selector_element_active' );
		
	}
	
}


/***********************************************/
// automatic rotation

var home_feature_main_interval;

function feature_main_auto_set ()
{
	
	feature_main_auto_clear();
	home_feature_main_interval = window.setInterval( feature_main_auto, 5000 );
	
	// set play/pause style
	$( '.selector_toggle_element' ).removeClass( 'selector_toggle_element_active' );
	$( '.selector_toggle_element' ).data( 'state', true );
	
}

function feature_main_auto_clear ()
{
	
	clearInterval( home_feature_main_interval );
	
	// set play/pause style
	$( '.selector_toggle_element' ).addClass( 'selector_toggle_element_active' );
	$( '.selector_toggle_element' ).data( 'state', false );
	
}

function feature_main_auto ()
{
	
	// increment current feature
	var element_current_temp = ( $( '#home_feature_main' ).data( 'element_current' ) * 1 ) + 1;
	
	if ( element_current_temp > $( '#home_feature_main' ).data( 'element_count' ) )
		element_current_temp = 1
	
	// call item toggle
	feature_main_change( element_current_temp );
	
}


/***********************************************/
// SUB-FEATURE FUNCTIONS


