$(document).ready(function() {
	togglerSlideNews();
	slideEvNewsBar();
	toggleMosaicPieces();
	//toggleRolloverStates();
	rolloveredMenu();
	toggleFaqSection();
	initOverlay();
	hashOpenProductInformation();
	togglegetPluggedIn();
	toggleMosaicContainer();
	applyRolloverStateTitleText();
	findexternalLinks();
	iPhoneVideo();
	findexternalLinks();
});

var fadeShield = 0;

function toggleMosaicContainer() {
	var mosaicContainer = $('#mosaicContainerBox');
	var mosaicInner = $('#mosaicContainer');
	var toggleOpen = $('#openMosaic');
	var toggleClose = $('#closeMosaic');
	var fullHeight = 460;
	var minHeight = 0;
	var milliseconds = 1000;
	
	toggleOpen.click(function(){
		if(fadeShield == 0) {
			fadeShield = 1; 
			//mosaicContainer.fadeIn(1000, function() {
			//	fadeShield = 0;
			//});
			mosaicContainer.animate({
				opacity: 1,
				height: fullHeight
			}, milliseconds, function() {
				fadeShield = 0;
			});
			toggleOpen.hide();
			toggleClose.show();
		}
		return false;
	});
	toggleClose.click(function(){
	   if(fadeShield == 0) {
			fadeShield = 1; 
			//mosaicContainer.fadeOut(1000, function() {
			//	fadeShield = 0;
			//});
			mosaicContainer.animate({
				opacity: 0,
				height: minHeight
			}, milliseconds, function() {
				fadeShield = 0;
			});
			toggleOpen.show();
			toggleClose.hide();
		}
		return false;
	});
}

var currentActiveItem = 0;

function applyCarouselText(carousel, dir) {
	var totalSize = carousel.options.size;
	
	if(dir == 'next') {
		currentActiveItem--;
		if(currentActiveItem < 0) {
			currentActiveItem = totalSize-1;
		}
	} else {
		currentActiveItem++;
		if(currentActiveItem == totalSize) {
			currentActiveItem = 0;
		}
		
	}
	
	var productTitle = $('a#carouselText');
	var carouselList = $('ul#carouselProductsTexts li:eq('+(currentActiveItem)+') span');
	
	var fadeMilliseconds = 500;
	
	productTitle.html(carouselList.html());
	Cufon.replace('a#carouselText');
	
	productTitle.attr("href", $('ul#carouselProductsTexts li:eq('+(currentActiveItem)+') a').attr("href"))
}

function carouselProducts_initCallback(carousel) {
    jQuery('#mycarousel-prev').bind('click', function() {
		carousel.prev();
		applyCarouselText(carousel, 'next');
        return false;
    });

    jQuery('#mycarousel-next').bind('click', function() {
		carousel.next();
		applyCarouselText(carousel, 'prev');
        return false;
    });
};

function replaceTitleText() {
	var productTitle = $('a#carouselText');
	var carouselList = $('ul#carouselProductsTexts li:eq(0) span');
	productTitle.html(carouselList.html());
	productTitle.attr("href", $('ul#carouselProductsTexts li:eq(0) a').attr("href"))
}
function applyRolloverStateTitleText() {
	var productTitle = $('a#carouselText');
	$(productTitle).hover(function(){
		$(this).addClass('rolled');
		//Cufon.replace('a#carouselText');
	}, function() {
		$(this).removeClass('rolled');
		//Cufon.replace('a#carouselText');
	});
	
}

var loadFlag_replaceTitleText = 0;

function initAccordeon() {
	if(loadFlag_replaceTitleText == 0) {
		replaceTitleText();
		loadFlag_replaceTitleText = 1;
	}
	jQuery("#carouselProducts").jcarousel({
        scroll: 1,
        initCallback: carouselProducts_initCallback,
        buttonNextHTML: null,
        buttonPrevHTML: null,
		wrap: 'circular'
    });

}

var togglegetPluggedInFlag = 0;

function togglegetPluggedIn() {
	var getPluggedIn = $('#getPluggedIn');
	var toggler = $(getPluggedIn).find('#togglegetPluggedIn, #togglegetPluggedInClose');
	toggler.click(function() {
		if(togglegetPluggedInFlag == 0) {
			$(getPluggedIn).animate({
				width: 808
			});
			$(getPluggedIn).removeClass('close_pluggedIn').addClass('open_pluggedIn');
			togglegetPluggedInFlag = 1;
		} else {
			togglegetPluggedInFlag = 0;
			$(getPluggedIn).animate({
				width: 38
			});
			$(getPluggedIn).removeClass('open_pluggedIn').addClass('close_pluggedIn');
		}
		return false;
	});
}

var currentActiveProduct = 0;

function hashOpenProductInformation() {
	if(window.location.hash) {
		var productId = window.location.hash.substr(1, window.location.hash.length);
		var productsRow = $('#productsRow');
		var productsObj = $(productsRow).find('.productContainerBox');
		productsObj.each(function() {
			if($(this).attr('id') == 'product_'+productId) {
				
				var classNames = $(this).attr('class');
				var classNameToRespond = classNames.split(' ');
				classNameToRespond = classNameToRespond[1];
				var productIdToWorkWith = classNameToRespond.split('_');
				showPopinContainer('show', 'popin_productDetails', productIdToWorkWith[1]);
			}
		});
	}
}

function hideArrows() {
	var leftArrow = $('#popin_productDetails a.arrows_left');
	var rightArrow = $('#popin_productDetails a.arrows_right');
	var productsRow = $('#productsRow');
	var productsObj = $(productsRow).find('.productContainerBox');
	var productsLength = productsObj.length;
	
	if(productsLength == 1) {
		$(leftArrow).hide();
		$(rightArrow).hide();
	} else {	
		if(currentActiveProduct == 1) {
			$(leftArrow).hide();
			$(rightArrow).show();
		} else if(currentActiveProduct == productsLength) {
			$(rightArrow).hide();
			$(leftArrow).show();
		} else {
			$(leftArrow).show();
			$(rightArrow).show();
		}
	}
}

var clickedFlag = 0;

function changeActive(dir) {
	if(dir == 'forward') {
		currentActiveProduct++;
	} else {
		currentActiveProduct--;
	}
	slideProductTo(currentActiveProduct, dir);

}

function slideProductTo(slidePosition, dir) {
	var productWidth = 754;
	var productsRow = $('#productsRow');
	var productsObj = $(productsRow).find('.productContainerBox');
	var slideToLeft = -(currentActiveProduct-1)*productWidth;
	var millisecondsToSlide = 1000;
	
		productsRow.animate({
				left: slideToLeft
			}, millisecondsToSlide, function() {
				hideArrows();
				clickedFlag = 0;
			}
		);
	
}
var loadFlag = 0;

function initSlideProducts() {
	var productWidth = 754;
	var productsRow = $('#productsRow');
	var productsObj = $(productsRow).find('.productContainerBox');
	var productsLength = productsObj.length;
	var leftArrow = $('#popin_productDetails a.arrows_left');
	var rightArrow = $('#popin_productDetails a.arrows_right');
	var slideToLeft = -(currentActiveProduct-1)*productWidth;
	
	$(productsRow).css('width', productWidth*productsLength);
	
	$(productsRow).css('left', slideToLeft);
	
	// Hide arrows
	hideArrows();
	
	// Bind clicks
	if(loadFlag == 0) {
		leftArrow.click(function() {
			if(clickedFlag == 0) {
				clickedFlag = 1;
				changeActive('backward');
			}
			return false;
		});
		rightArrow.click(function() {
			if(clickedFlag == 0) {
				clickedFlag = 1;
				changeActive('forward');
				
			}
			
			return false;
		});
		loadFlag = 1;
	}
	
}

function showPopinContainer(action, showId, active) {
	currentActiveProduct = active;
	var overlayObj = $('#overlay');
	var popinObj = $('#'+showId);
	var milliseconds = 400;
	var bodyScrollTop = $(window).scrollTop();
	//var screenHeight = ($(window).height()/2)-277;
	var screenHeight = ($(window).height()/2)-300;
	var topMargin = bodyScrollTop+screenHeight;
	if(action == 'show') {
		initSlideProducts();
		overlayObj.fadeTo(
			milliseconds,
			0.8,
			function() {
				popinObj.css('top', topMargin);
				popinObj.fadeTo(
					milliseconds,
					1
				);
			}
		);
	} else {
		popinObj.fadeTo(
			milliseconds,
			0,
			function() {
				overlayObj.fadeTo(
					milliseconds,
					0, function() {
						overlayObj.hide();
						popinObj.hide();
					}
				);
			}
		);
	}
}

function initOverlay() {
	var overlayObj = $('#overlay');
	overlayObj.css('height', $('body').height());
}

function toggleFaqSection() {
	var faqSection = $('#accordeonList');
	var togglers = $(faqSection).find('a.head');
	var milliseconds = 500;
	$(togglers).click(function() {
		if($(this).next().is(":hidden")) {
			$(this).next().slideDown(milliseconds);
			$(this).parent().addClass('selected');
		} else {
			$(this).next().slideUp(milliseconds, function() {
				$(this).parent().removeClass('selected');
			});
		}
		return false;
	});
}

function rolloveredMenu() {
	var menuItems = $('#navigation ul li a');
	menuItems.hover(
		function() {
			$(this).addClass('rolled');
			Cufon.replace('#navigation a');
		},
		function() {
			$(this).removeClass('rolled');
			Cufon.replace('#navigation a');
		}
	);
}

var newsBarOpenedFlag = 0;

function slideNews() {
	var evNewsContainer = $('#evNewsContainer');
	var innerList = $('#evNewsContainer ul');
	var toggler = $(evNewsContainer).find('a.toggleNewsBar');
	var totalHeight = $(innerList).height();
	var milliseconds = 500;
	
	if(newsBarOpenedFlag == 0) {
		$(innerList).parent().addClass('opened')
		$(evNewsContainer).animate({
				height: totalHeight
			},
			milliseconds, 
			function() {
				$(innerList).parent().removeClass('closed');
				newsBarOpenedFlag = 1;
			}
		);
	} else {
		$(evNewsContainer).animate({
				height: 33
			},
			milliseconds, 
			function() {
				$(innerList).parent().removeClass('opened').addClass('closed');
				newsBarOpenedFlag = 0;
			}
		);
	}
	
}

function togglerSlideNews() {
	var toggler = $('#evNewsContainer a.toggleNewsBar');
	$(toggler).click(function() {
		slideNews();
	});
}
var timer;

function slideEvNewsBar() {
	if(newsBarOpenedFlag == 0) {
		var slideEvNewsBarList = $('#evNewsContainer ul');
		
		var currentShowedItem = 0;
		var heightToSlide = 34;
		var totalNumberOfItems = $(slideEvNewsBarList).find('li').length;
		var newHeight = 0;
		var millisecondsToFade = 1000;
		var millisecondsToSlide = 3000;
		
		setInterval(function(){
			if($(slideEvNewsBarList).parent().hasClass('closed')) {
				if(currentShowedItem == 1) {
					currentShowedItem++;
				} else if(currentShowedItem < totalNumberOfItems) {
					currentShowedItem++;
				} else if(currentShowedItem == totalNumberOfItems) {
					currentShowedItem = 1;
				}
				
				newHeight = -((currentShowedItem-1)*heightToSlide);
				
				$(slideEvNewsBarList).animate({
						marginTop: newHeight
					},
					millisecondsToFade, 
					function() {
						
					}
				);
			}
		}, millisecondsToSlide );  
	}
}

function toggleRolloverStates() {
	$('#mosaicContainer div.photo').mouseover(function(){
		$(this).find('img.rolled').fadeTo('fast', 1);
	});
}

function toggleMosaicPieces() {
	var millisecondsAnimation = 300;
	
	$('.mosaicContainer .photo').hover(function(){
		$(".info", this).stop().animate({top:0},{queue:false,duration:millisecondsAnimation});
	}, function() {
		if($(this).hasClass('secondLine')) {
			$(this).find('.info').stop().animate({top:-190},{queue:false,duration:millisecondsAnimation});
		} else {
			$(this).find('.info').stop().animate({top:190},{queue:false,duration:millisecondsAnimation});
		}
	});
}

function findexternalLinks() {
	var thisDomain = window.location.host;
	
	$("a").each(function (i) {
		if (($(this).attr("href").match("http") == "http") && ($(this).attr("href").match(thisDomain) != thisDomain)) {
			$(this).click(function(){
				this.target = "_blank";
			});
		}
	});
}

function iPhoneVideo() {
 if ((navigator.userAgent.indexOf('iPhone') != -1) || (navigator.userAgent.indexOf('iPod') != -1) || (navigator.userAgent.indexOf('iPad') != -1)) {
       $("a").each(function (i) {
       	$(this).removeAttr("target");
       });
    }
   }

Cufon.replace('div.description a.moreInfo', {
	hover: true
});
if ($.browser.mozilla) {
	if (window.addEventListener) {
		window.addEventListener('unload', function() {}, false);
	} 
}

function findexternalLinks() {
			
		$("a").click(function(){
					
			if (
					($(this).attr("href").match("http") == "http") 
					&& ($(this).attr("href").match("avinc.com") != "avinc.com") 
					&& ($(this).attr("id") != "aggreeButton") 
				) {
  					
				/*var triggers = $("#confirm_site_exit").overlay({
					api:true,
					expose: {
						color: '#FFF',
						loadSpeed: 200,
						opacity: 0.8
					},
					closeOnClick: false,
					closeOnEsc: false,
					close: ".button",
					top: '5'
				}).load();
				*/
				
				showPopinContainer('show', 'popin_exitWarning', 0);
					
				$('#aggreeButton').attr("href", $(this).attr("href")).click(function() {
					this.target = "_blank";
					showPopinContainer('hide', 'popin_exitWarning');
				});
				
					
				return false;
	
			}
	
		});
	}
