var pos = 0;
var max_pos;

var auto;

var pause = false;

var fading = false;

var slides;

jQuery(document).ready(function($) {
								
	if($('#main-promo-slider')) {
		slides = $('#main-promo-slider').children();
		
		if(slides.length > 0 ) {
			
			for(i=0; i < slides.length; i++) {
			
				$(slides[i]).attr('id', 'slide-' + i);
			
				if(i == 0) {
					$(slides[i]).addClass('current');	
				}
			
				if(i == 1) {
					$(slides[i]).addClass('alt-slide');	
				}
			
			}
		
			//set max position
			max_pos = slides.length - 1;
			
			//create nav
			create_nav(slides);
			
			//start fade
			start_auto();
			
		}
		
		//Pause
		$('#main-promo-slider').mouseenter(function(){
			clearTimeout(auto);
			pause = true;
		}).mouseleave(function(){
			pause= false;
			start_auto();
		});
		
		$('#slidernav-container').mouseenter(function(){
			clearTimeout(auto);
			pause = true;
		});
	
	} //do this if promo slider exists
	
	//make sure the image and content divs are the same height
	
	if($('.contentItem').length > 0){
		
		$('.contentItem img').one("load", function(){
		
			$(this).parent().parent().each(function(){		
				var parentHeight = $(this).innerHeight() + 'px';
				$(this).find('.contentImageWrapper').css('height', parentHeight);
				$(this).find('.contentWrapper').css('height', parentHeight);			
				
			});	
		
		}).each(function() {
        	if(this.complete) $(this).trigger("load");
   	 	});
	
	} 
	
	//adjust form labels in two column layout
	function adjust_form() {
	
		if($('label') && $('.three-col').length == 0){
			var label_max = 0;
			var action_left;
			
			$('#content').find('label').each(function(){
				if ($(this).width() > label_max)
					label_max = $(this).width();   
			});
			
			$("label").width(label_max);
			
			//fix button position in IE
			if ( $.browser.msie ) {
				if($.browser.version <= 7) {
					action_left = label_max + 295 + 'px';
				} else {
					action_left = label_max + 285 + 'px';
				}
			} else {
				action_left = label_max + 285 + 'px';
			}
			
			$('.Actions').css('left',action_left);	
			
		}
	}
	
	adjust_form();
	
	//needs nav
	
	if($('#promo-sect-two-col') && $('#promo-sect-three-col')){
						   
		var needs_1 = $('#promo-sect-two-col');
		var needs_2 = $('#promo-sect-three-col').css('display', 'none');
		
		$('#nav-needs-1').bind('click', function() {
				
				needs_2.css('display', 'none');
				needs_1.css('display', 'block');
				
				$('#promo-nav').children('.current').removeClass('current');
				$(this).parent().addClass('current');
				
				return false;
				
		});
		
		$('#nav-needs-2').bind('click', function() {
				
				needs_1.css('display', 'none');
				needs_2.css('display', 'block');
				
				$('#promo-nav').children('.current').removeClass('current');
				$(this).parent().addClass('current');
				
				return false;
				
		});
	}
	
	// product tour
	
	var tourEnabled = false;
	
	tourEnabled = $('a').each(function(){
					if($(this).attr('href').indexOf('/tour/') > 0){
						$(this).addClass('tourLauncher');
					}		
				});
	
	if(tourEnabled){		
		
		$('.tourLauncher').click(function(e){
			e.preventDefault();
			initTourOverlay();
		});			
	}	
	
	if(window.location.href.indexOf('/tour/') > 0){
		initTourOverlay();
	}
	
});//end document ready

//function to start automatic fading
function start_auto() {
	
	if(pause == false) {
		
		auto = setTimeout(function() {
								   
      		fade_current(get_next());
			
		}, 5000);
		
	}
	
}

//function to do fade
function fade_current(next_slide) {
	
	fading = true;
	
	clearTimeout(auto);
	
	//place next slide that is to fade in
	$('.alt-slide').removeClass('alt-slide');
	$(next_slide).addClass('alt-slide');
	
	//fade slide
	$('#main-promo-slider').children('.current').stop(true, true).fadeOut('slow', function() {
		
		$('.alt-slide').addClass('current').removeClass('alt-slide');
		$(this).removeClass('current').addClass('alt-slide').css('display', 'block');
		
		start_auto();
		
		setTimeout('fading = false;', 10);
		
	});
		
	active_button(next_slide);
		
}

//function to get next slide in group or return to beginning
function get_next() {
	
	if(fading == false) {
	
	var next_slide_id
	  
	//get current slide id + 1
	var current_slide_id = slide_id($('#main-promo-slider').children('.current'));
	
	//check not at end of slides
	if(pos < max_pos) {
		
		//increase position marker
		pos= parseInt(pos) + 1;
		
		next_slide_id = parseInt(current_slide_id) + 1;
		
	} else {
		
		//reset position marker
		pos = 0;
		
		next_slide_id = 0;
			
	}
	
	var next_slide = $('#slide-' + next_slide_id);
	
	//return next slide object
	return next_slide;
	
	}
	
}

function slide_id(slide) {
	
	//function to get slide id
	
	var slide_id= String($(slide).attr('id'));
	
	var split_id = slide_id.split('-');
	
	return split_id[1];
	
}

//add active state to new button
function active_button(next_slide) {
	
	//remove active state of initial button
	$('#slidernav').children('li').find('a').removeClass('current');
	
	//get position
	curr_pos = slide_id(next_slide);
	
	//add active state to new position
	$('#'+curr_pos).addClass('current');
	
}

function clickedNav(next_slide_id) {
	
	//check is not currently fading and clicked position does not match current position
	if(fading == false && next_slide_id != pos) {
		
		//update position
		pos = next_slide_id;
	
		//do fade
		fade_current(slides[pos]);
	
	}
	
	return false;
	
}

function create_nav(slides) {
	
	//calculate slidernav ul width
	var nav_width = 21 * slides.length +"px";
	
	$('<ul id="slidernav"></ul>').css('width', nav_width).appendTo('#slidernav-container');
	
	//create buttons
	for(i=0; i < slides.length; i++) {
		
		if(i == 0) {
		
			$('<li><a class="current" href="#"></a></li>').appendTo('#slidernav').children().attr("id", i)
	
		} else {
		
			$('<li><a href="#"></a></li>').appendTo('#slidernav').children().attr("id", i);
			
		}	
		
		$('#slidernav-'+i);
		
	}
	
	//get buttons
	var buttons = $('#slidernav').children();
	
	for(i=0; i < buttons.length; i++) {
		
		//add on click event and pass id to clickedNav()

 			$(buttons[i]).bind('click', {index:i}, function(e){
															
				next_slide_id = e.data.index;
				
				clickedNav(next_slide_id);
				
				return false;
				
  			});
		
	}
	
}


function setUniformHeights(identifier) {	
	
	if($(identifier).length > 0){
		var heights = [];
		if($(identifier).length > 0){
			$(identifier).each( function(){			
				heights.push($(this).outerHeight(true));			
			});	
			heights.sort(function(a,b){return b - a});	
			$(identifier).each( function(){		
				$(this).height(heights[0]);
				
			});	
			return heights[0];
		}		
	}
}
