var current_slide = 1;
var delay = 10000;
var timer = null;
var fade = 650;
var currentSlide = null;
var currentButton = null;

var is_changing = false;

var video_on = false;
var html5_vid_support = false;
var video_playlist = [];

$(document).ready(function(){
	if($('video').first().get(0).play && jQuery.support.noCloneChecked) {
		 html5_vid_support = true;
	}
	$('.slide').css('display', 'none');
	$('.featured_buttons').css('display', 'block');
	startTimer();
	currentSlide =  $('.featured_images .slide').first();
	currentSlide.first().addClass('active');
	currentSlide.css('display', 'block');
	createButtons();
	currentButton = $('.featured_buttons .slide_button').first()
	currentButton.first().addClass('active');
	
	$('.video').each(function(index){
		if(!html5_vid_support){
			video_playlist[index] = { url: $(this).find('source').attr('data'), autoPlay: false};
			$(this).find('video').remove();
		}
		else{
			$(this).find('video').bind('ended', function(){
				$('.video_return a').trigger('click');
			});
		}
	});
	
	$('video').hover(function(e){
		$(this).attr('controls', 'controls');
	});
	
	$('.video_slider').each(function(){
		carousel($(this), 4);
	});
	
	$('.video_slider .item a').click(function(e){
		e.preventDefault();
		if(!video_on){
			$('.home_videos').fadeIn(600, 'easeInOutExpo');
			video_on = true;
			
			if(!html5_vid_support){
				var player_id = $('.video').first().attr('id');
				flowplayer(player_id, 
				{	
					src: '/wp-content/themes/adp/flash/flowplayer-3.2.7.swf', 
					wmode: 'transparent'
				},
				{
					playlist: video_playlist
				});
				flowplayer(player_id).onFinish( function(){
					$('.video_return a').trigger('click');
				});
			}
		}
		
		var index = $(this).closest('.item').index();
		var selector = '.home_videos .video:eq(' + index  + ')';
		
		if(html5_vid_support) {
		
			$('.home_videos video').each(function(){
				$(this).closest('.video').css('z-index', '10');
				var video = $(this).get(0);
				if(video){
					video.pause();
				}
			});
		
			$(selector).css('z-index', '11');
			var play_video = $(selector).find('video').get(0);
			play_video.play();
		}
		else {
			flowplayer(0).play(index);
			$('.video').first().css('z-index', '11');
		}

		return false;
	});
	
	$('.video_return a').click(function(e){
		e.preventDefault();
		if(html5_vid_support){
			$('.home_videos video').each(function(){
				var video = $(this).get(0)
				video.pause();
			});
		}
		
		else {
			flowplayer(0).stop();
		}
		
		$('.home_videos').fadeOut(600, 'easeInOutExpo');
		video_on = false;
		
	});
	
});

function startTimer(){
	timer = window.setTimeout('switchSlide()', delay);
}

function stopTimer(){
	 if(typeof this.timer == "number") {
      	window.clearTimeout(this.timer);
      	this.timer = null;
    }

}

function switchSlide(){
	if(!is_changing){
		is_changing = true;
		$('.slide').fadeOut(fade);
		
		var lastCheck = currentSlide.next('.slide');
	
		if(lastCheck.length == 0){
			currentSlide = $('.slide').first();
		}
		else {
			currentSlide = currentSlide.next();
		}
		
		var lastButton = currentButton.next('.slide_button');	
		if(lastButton.length == 0){
			currentButton = $('.featured_buttons .slide_button').first();
		}
		else{
			currentButton = lastButton;
		}
		$('.featured_buttons .slide_button').removeClass('active');
		currentButton.addClass('active');
	
		currentSlide.fadeIn(fade, function(){
			is_changing = false;
		});
		stopTimer();
		startTimer();
	}
}

function gotoSlide(slide, button){
	if(!is_changing){
		is_changing = true;
		$('.slide').fadeOut(fade);
		currentSlide = $(slide);
		currentSlide.fadeIn(fade, function(){
				is_changing = false;
			});
		if(button){
			$('.featured_buttons .active').removeClass('active');
			button.addClass('active');
			currentButton = button;
		}
		stopTimer();
		startTimer();
	}
}

function previousSlide(){
		var lastCheck = currentSlide.prev('.slide');
		var newSlide = 0;
		var newButton = 0;
		if(lastCheck.length == 0){
			newSlide = $('.slide').last();
		}
		else {
			newSlide = currentSlide.prev('.slide');
		}
		
		var lastButton = currentButton.prev('.slide_button');
		if(lastButton.length == 0 ){
			newButton = $('.featured_buttons .slide_button').last();
		}
		else{
			newButton = lastButton;
		}
		gotoSlide(newSlide, newButton);
}

function nextSlide(){
		var lastCheck = currentSlide.next('.slide');
		var newSlide = 0;
		var newButton = 0;
		if(lastCheck.length == 0){
			newSlide = $('.slide').first();
		}
		else {
			newSlide = currentSlide.next('.slide');
		}
		
		var lastButton = currentButton.next('.slide_button');
		if(lastButton.length == 0 ){
			newButton = $('.featured_buttons .slide_button').first();
		}
		else{
			newButton = lastButton;
		}
		gotoSlide(newSlide, newButton);
}

function createButtons(){
	if($('.left_btn').length > 0){
		$('.left_btn').click(function(e){
				previousSlide();
				e.preventDefault();
			});
	}
	if($('.right_btn').length > 0){
		$('.right_btn').click(function(e){
				nextSlide();
				e.preventDefault();
			});
	}	
	
	$('.featured_buttons .slide_button').each(function(i){
		$(this).click(function(e){
			
			if(!$(this).hasClass('active')){ 
				var slide = $('.featured_images .slide').eq(i);
				gotoSlide(slide, $(this));
		
			}
			e.preventDefault();
		});

	});
}

function carousel(carousel, items_visible){
	carousel.current_page = 1;
	var urlVars = getUrlVars();
	if(urlVars['item']){
		if(urlVars['item'] <= carousel.find('.item').length){
			carousel.current_page = parseInt(urlVars['item']);
		}
	}
	carousel.find('.paginator').find('.page-'+ carousel.current_page).addClass('active');
	carousel.pages = Math.ceil(carousel.find('.item').length / items_visible);
	if(carousel.pages < 2){
		carousel.find('.slider_next').addClass('inactive');	
	}
	carousel.left_margin = parseInt((carousel.find('.slider').css('margin-left').replace('px', '')));
	var initial_margin = carousel.left_margin - (carousel.find('.item').outerWidth(true) * (carousel.current_page -1));
	carousel.find('.slider').css('margin-left', initial_margin + 'px');
	carousel.find('.page_total').html(carousel.pages);
	carousel.find('.page').click(function(e){
		if($(this).hasClass('slider_prev') || $(this).hasClass('slider_next') ){
			e.preventDefault();
		}
		else {
			e.preventDefault();
			jumpToItem(carousel, $(this).html());
		}
	});
	carousel.find('.slider_next').click(function(e){
		e.preventDefault();
		if(carousel.current_page < carousel.pages){
			moveCarousel(carousel, items_visible, 'forward');
			carousel.find('.slider_prev').removeClass('inactive');
			carousel.current_page++;	
			carousel.find('.page_number').html(carousel.current_page);
			carousel.find('.paginator').find('.page').removeClass('active');
			carousel.find('.paginator').find('.page-'+ carousel.current_page).addClass('active');
			carousel.find('.page_number').html(carousel.current_page);
		}
	});
	carousel.find('.slider_prev').click(function(e){
		e.preventDefault();
		if(carousel.current_page > 1){
			moveCarousel(carousel, items_visible, 'reverse');
			carousel.find('.slider_next').removeClass('inactive');	
			carousel.current_page--;
			carousel.find('.page_number').html(carousel.current_page);
			carousel.find('.paginator').find('.page').removeClass('active');
			carousel.find('.paginator').find('.page-'+ carousel.current_page).addClass('active');
			carousel.find('.page_number').html(carousel.current_page);
		}
	});
	jumpToItem(carousel, carousel.current_page);
}

function moveCarousel(carousel, items_visible, direction){
	var move_amount = carousel.find('.item').outerWidth(true) * items_visible;
	if(direction == "forward"){
		move_amount = 0 - move_amount;
	}
	var delta = parseInt(carousel.find('.slider').css('margin-left').replace("px", "")) + parseInt(move_amount);
	carousel.find('.slider').animate({marginLeft: delta}, 800, 'easeInOutExpo', function(){
		if(carousel.current_page > 1){
				carousel.find('.slider_prev').removeClass('inactive');	
			}
			else {
				carousel.find('.slider_prev').addClass('inactive');
		}
		if(carousel.current_page < carousel.pages){
				carousel.find('.slider_next').removeClass('inactive');	
			}
			else {
				carousel.find('.slider_next').addClass('inactive');
			}
	});
}

function jumpToItem(carousel, item_index){
	var offset = carousel.left_margin - (carousel.find('.item').outerWidth(true) * (item_index -1));
	carousel.find('.slider').animate({marginLeft: offset}, 800, 'easeInOutExpo', function(){
		carousel.current_page = item_index;
		carousel.find('.page_number').html(carousel.current_page);
		carousel.find('.paginator').find('.page').removeClass('active');
		carousel.find('.paginator').find('.page-'+ carousel.current_page).addClass('active');
		carousel.find('.page_number').html(carousel.current_page);
		if(carousel.current_page > 1){
				carousel.find('.slider_prev').removeClass('inactive');	
			}
			else {
				carousel.find('.slider_prev').addClass('inactive');
		}
		if(carousel.current_page < carousel.pages){
				carousel.find('.slider_next').removeClass('inactive');	
			}
			else {
				carousel.find('.slider_next').addClass('inactive');
			}
	});
	
}

