jQuery(document).ready(function(){
	checkWidth();
	jQuery(window).resize(function(){
		checkWidth();
	});
	
	var $learnMore = jQuery('#learn-more');
	if($learnMore.children('li').length >=6) {
		$learnMore.parent()
			.removeClass('alt1')
			.removeClass('alt2')
			.removeClass('alt3')
			.removeClass('alt4')
			.removeClass('alt5')
			.addClass('alt6');
	} 	else if($learnMore.children('li').length == 5 ){
		$learnMore.parent()
			.removeClass('alt1')
			.removeClass('alt2')
			.removeClass('alt3')
			.removeClass('alt4')
			.removeClass('alt6')
			.addClass('alt5');
	} 	else if($learnMore.children('li').length == 4 ){
			$learnMore.parent()
			.removeClass('alt1')
			.removeClass('alt2')
			.removeClass('alt3')
			.removeClass('alt5')
			.removeClass('alt6')
			.addClass('alt4');
	} 	else if($learnMore.children('li').length == 3 ){
			$learnMore.parent()
			.removeClass('alt1')
			.removeClass('alt2')
			.removeClass('alt4')
			.removeClass('alt5')
			.removeClass('alt6')
			.addClass('alt3');
	} 	else if($learnMore.children('li').length == 2 ){
			$learnMore.parent()
			.removeClass('alt1')
			.removeClass('alt4')
			.removeClass('alt3')
			.removeClass('alt5')
			.removeClass('alt6')
			.addClass('alt2');
	} 	else if($learnMore.children('li').length == 1 ){
			$learnMore.parent()
			.removeClass('alt2')
			.removeClass('alt3')
			.removeClass('alt4')
			.removeClass('alt5')
			.removeClass('alt6')
			.addClass('alt1');
	}
	
	
	
	//lightbox
	var videoWidth = jQuery('.lightbox').attr('width');
	var videoHeight = jQuery('.lightbox').attr('height');
	if(!videoWidth)	{videoWidth=600;}
	if(!videoHeight) {videoHeight=500;}
	jQuery('.lightbox').colorbox({iframe:true, slideshow:false, innerWidth:videoWidth, innerHeight:videoHeight, title:function(){
		return jQuery(this).attr('lbTitle'); 
	}});
	
	//top carousel - 0 ordial	
	topCarousel();
	
	// pagination with carousel
	paginationCarousel();
	
	// Carousel 2	
	customCarousel(4);
	
	//tabs
	jQuery('.tabs ul li a').click(function(e){
		e.preventDefault();
		e.stopPropagation();
		//window.location.hash = jQuery(this).attr('id');
		var $anchor = jQuery(this);
		var $tab = $anchor.parent();
		var tabContent = $anchor.attr("tabContent");
		var $tabcontent = jQuery('.tab-content');
		var $loader = jQuery('#loader');
		
		$tabcontent.children('.tab-container').hide();
		$loader.show(); 
		//setTimeout(fx, 200);
		
		jQuery.get(tabContent, function(data) {
			$tab.siblings().removeClass('selected');
			$tab.addClass('selected');
			setTimeout(function(){
				$loader.hide();
				$tabcontent.children('.tab-container').html(data).fadeIn();
				tabContentEqualHeight();
			}, 1000); 
		});
	});
	
	// Ajax Hash
	var curHash = window.location.hash;
	if(curHash.match(/tab/g)) {
		jQuery(curHash).trigger('click');
	}
	
	//tabs
	jQuery('.carousel-selection .carousel-list2 ul li a').click(function(e){
		e.preventDefault();
		var $anchor = jQuery(this);
		var $tab = $anchor.parent();
		var href = $anchor.attr("href");
		var $tabcontent = jQuery('.tab-content-alternate');
		var $loader = jQuery('#loader');
		
		$tabcontent.hide();
		$loader.show(); 
		//setTimeout(fx, 200);
		
		jQuery.get(href, function(data) {
			$tab.siblings().removeClass('selected');
			$tab.addClass('selected');
			setTimeout(function(){
				$loader.hide();
				$tabcontent.html(data).hide().fadeIn();
				tabAltEqualHeight();
			}, 1000); 
		});
	});
	
	//Hubpage homebanner
	homeBanner();
	
	//Hubpage child banners
	hubBannerFlash();
	
	//Lightbox alt image for flash
	lightboxFlash();
	
	//check if DDCQ page. if yes, remove orverflow for tabs/carousel so that ddcq will display properly
	jQuery('img').each(function(){
		if(jQuery(this).attr('src')=='/HP/images/debugDcq/iconDebug.jpg'){
		 	jQuery(this).css({
		 		'width':'32px',
		 		'height':'32px'
		 	});
		 	
		 	jQuery(this).parent('a').click(function(){
			 	if((jQuery(this).attr('href').search(/dcqDetailHPHubChildSpiderSeriesCarouselView/i)!=-1) || (jQuery(this).attr('href').search(/dcqDetailHPHubParentRangeCarouselView/i) !=-1)){
			 		jQuery(this).parent().addClass('dcqVisible');
			 		jQuery(this).parent().parent().addClass('dcqVisible');
			 		jQuery(this).parent().parent().parent().addClass('dcqVisible');
			 		jQuery(this).parent().parent().parent().parent().addClass('dcqVisible');
			 		jQuery('body').addClass('dcqVisible');
					
					if(jQuery.browser.msie){
						jQuery(this).next('div.debugDCQ').addClass('ieDDCQ');
					}
					
					jQuery('.maincol div#loader').hide();
					jQuery('.maincol div.tab-content-alternate').show();
			 	
			 		var ULleftVal = jQuery(this).parents('ul').offset();
			 		if(isRtl()){
			 			jQuery(this).next('div.debugDCQ').css('margin-right',Math.abs(ULleftVal.left)+50);
			 		}else{
						jQuery(this).next('div.debugDCQ').css('margin-left',Math.abs(ULleftVal.left)+50);
					}
			 	}
			 	
			 	if((jQuery(this).attr('href').search(/dcqDetailHPHubParentRangeCarouselView/i)!=-1) || (jQuery(this).attr('href').search(/dcqDetailHPHubParentMarketing2View/i)!=-1)){
			 		if(jQuery.browser.msie){
						jQuery(this).next('div.debugDCQ').addClass('ieDDCQ');
					}
			 	}
			});
			
			jQuery('a').click(function(){
				if(jQuery(this).attr('href').search(/javascript:HideContent/i)!= -1){
					jQuery('.dcqVisible').removeClass('dcqVisible');
					jQuery('body').removeClass('dcqVisible');
					
					jQuery('.maincol div#loader').hide();
					jQuery('.maincol div.tab-content-alternate').show();
				}
			});
		}	
	});	
	
	
});

jQuery(window).load(function() {
	//height equal
	tabContentEqualHeight();
	setEqualHeight(jQuery('.item-container #learn-more li h3'));
	setEqualHeight(jQuery('.item-container #learn-more li p'));
	setEqualHeight(jQuery('.item-container #learn-more li'));
	setEqualHeight(jQuery('.tabs ul li a'));
	tabAltEqualHeight();
	//tabs-content equal height align
	jQuery('.tabs ul li a span').vAlign();
	
	if(jQuery(".carousel-selection .carousel-list-tech li").length < 6) {
		jQuery(".carousel-selection .forward").addClass('disabled');
	}
	
	if(jQuery(".carousel-selection .carousel-list2 li").length < 6) {
		jQuery(".carousel-selection .next").addClass('disabled');
	}
});

function tabContentEqualHeight() {
	setEqualHeight(jQuery('.tab-content ul li .desc:lt(4)'));
	setEqualHeight(jQuery('.tab-content ul li .desc:gt(3)'));
	setEqualHeight(jQuery('.tab-content ul li .content-title:lt(4)'));
	setEqualHeight(jQuery('.tab-content ul li .content-title:gt(3)'));
	setEqualHeight(jQuery('.tab-content ul li .swatch:lt(4)'));
	setEqualHeight(jQuery('.tab-content ul li .swatch:gt(3)'));
}

function tabAltEqualHeight() {
	setEqualHeight(jQuery('.tab-content-alternate ul li .desc:lt(3)'));
	setEqualHeight(jQuery('.tab-content-alternate ul li .desc:gt(2)'));
	setEqualHeight(jQuery('.tab-content-alternate ul li .content-title:lt(3)'));
	setEqualHeight(jQuery('.tab-content-alternate ul li .content-title:gt(2)'));
	setEqualHeight(jQuery('.tab-content-alternate ul li .swatch:lt(3)'));
	setEqualHeight(jQuery('.tab-content-alternate ul li .swatch:gt(2)'));
}


var detectFlash = function() {
    if(swfobject.getFlashPlayerVersion().release > 0) {
		return true;
    } else {
		return false;
    }
}


function setEqualHeight(columns){
	var tallestcolumn = 0;
	columns.each(function()	{
		currentHeight = jQuery(this).height();
		if(currentHeight > tallestcolumn) {
			tallestcolumn = currentHeight;
		}
	});
	columns.height(tallestcolumn);
}

function customCarousel(numVisibleSlide) {
	var $slides = jQuery('#slides');
	var item_width = jQuery('#slides li').outerWidth();
    var left_value = item_width * (-1); 	
	jQuery("#carousel-control-prev").show();
	
	if($slides.find('li').length <= numVisibleSlide) {
		jQuery("#carousel-control-next").addClass("disabled");		
	}
	
	jQuery("#carousel-control-prev").click(function(e) {
		if(jQuery(this).hasClass('disabled') ){
			return false;
		}
		e.preventDefault();
		
		if(isRtl()) {
			//get the right position           
			var left_indent = parseInt(jQuery('#slides ul').css('right')) + item_width;
			
			//slide the item           
			jQuery('#slides ul').animate({'right' : 0}, 1000,function(){   
	 
				//move the last item and put it as first item              
				//jQuery('#slides li:first').before(jQuery('#slides li:last'));          
	 
				//set the default item to correct position
				//jQuery('#slides ul').css({'left' : left_value * 4});
				//jQuery('#slides ul').css({'left' : (parseInt(jQuery('#slides ul').css('left')) + left_indent)});
				jQuery('#slides ul').css({'right' : 0 });
			});
		}else{
			//get the right position           
			var left_indent = parseInt(jQuery('#slides ul').css('left')) + item_width;
			
			//slide the item           
			jQuery('#slides ul').animate({'left' : 0}, 1000,function(){   
	 
				//move the last item and put it as first item              
				//jQuery('#slides li:first').before(jQuery('#slides li:last'));          
	 
				//set the default item to correct position
				//jQuery('#slides ul').css({'left' : left_value * 4});
				//jQuery('#slides ul').css({'left' : (parseInt(jQuery('#slides ul').css('left')) + left_indent)});
				jQuery('#slides ul').css({'left' : 0 });
			});
		}
		
		
		jQuery("#carousel-control-next").removeClass("disabled");
		jQuery(this).addClass("disabled");
	});
	
	 jQuery('#carousel-control-next').click(function(e) {
		if(jQuery(this).hasClass('disabled') ){
			return false;
		}
	 
        e.preventDefault();
		
		if(isRtl()) {
			var leftOffset = parseInt(jQuery('#slides ul').css('right'));
			if(isNaN(leftOffset)) { //auto in IE
				leftOffset = 0;
			}
			var left_indent = leftOffset - item_width;
			jQuery('#slides ul').animate({
				'right': (left_indent * numVisibleSlide)
				}, 1000, function () {
				 
				//move the first item and put it as last item
				//jQuery('#slides li:last').after(jQuery('#slides li:first'));                 
				
				//set the default item to correct position
				jQuery('#slides ul').css({'right' : left_value * numVisibleSlide});
			});
		}else{
			var leftOffset = parseInt(jQuery('#slides ul').css('left'));
			if(isNaN(leftOffset)) { //auto in IE
				leftOffset = 0;
			}
			 //get the right position
			var left_indent = leftOffset - item_width;
			
			//slide the item
			jQuery('#slides ul').animate({
				'left': (left_indent * numVisibleSlide)
				}, 1000, function () {
				 
				//move the first item and put it as last item
				//jQuery('#slides li:last').after(jQuery('#slides li:first'));                 
				
				//set the default item to correct position
				jQuery('#slides ul').css({'left' : left_value * numVisibleSlide});
			 
			});
		}
	
		jQuery("#carousel-control-prev").removeClass("disabled");
		jQuery(this).addClass("disabled");
         
    });
}

var homeBanner = function() {
	var $bannerContainer = jQuery('.banner-container');
	var $bannerAnchor = jQuery(".banner-overview");
	var $controlList = jQuery('.banner-list li');
	
	$bannerAnchor.click(function(e){
		e.preventDefault();
		var $this = jQuery(this);
		var $liContainer = $this.parent();
		var href = $this.attr("href");		
		var idx = $controlList.index($liContainer);
		
		$curBannerContainer = $bannerContainer.hide().filter(function(index) {
			return index == idx;
		}).fadeIn();
				
		if($this.hasClass('hasFlash')) {
			if(!detectFlash()) {
				$curBannerContainer.find('.flash-src').remove();
				$curBannerContainer.find('.banner-src').fadeIn();
				//$curBannerContainer.find('.banner-src').attr('src', href).fadeIn();
			}
		}
		
		$liContainer.siblings().show();
		$liContainer.hide();
	});	
	
	//$bannerContainer.filter(":not(:first)").hide();
	$bannerAnchor.filter(":first").trigger("click");
};

var hubBannerFlash = function(){
	var $curBannerContainer = jQuery('#banner-slide .banner, .maincontainer .marketing-hub-html, #featureHtml .featureContent');
	if(!detectFlash()) {
		$curBannerContainer.find('.flash-src').remove();
		$curBannerContainer.find('.banner-src').fadeIn();
	}else{
		$curBannerContainer.find('.banner-src').hide();
	}
};

var lightboxFlash = function(){
	jQuery('.lightbox').each(function(){
		var $lightbox = jQuery(this);
		var $lightboxAlt = $lightbox.attr('imgsrc');
		var $lightboxHref = $lightbox.attr('href');
		var $lightboxSearch = $lightboxHref.search(/youtube.com\/embed/i);
		
		if(!detectFlash() && $lightboxSearch==-1){
			$lightbox.attr('href',$lightboxAlt);
		}
	});
};

var paginationCarousel = function() {
	var visible = 5;
	var numItem = jQuery(".carousel-selection .carousel-list2 li").length;
	var pad = 0;
	if (isRtl()) {
		// Hack RTL
		pad = (numItem % visible == 0) ? 0 : visible - numItem % visible;
		for(var i=0; i<pad; i++) {
			jQuery('<li />')
				.css("border", "0px solid #eee")
				.css("background", "none")
				.appendTo(jQuery(".carousel-selection .carousel-list2 ul"));
		}
		numItem = jQuery(".carousel-selection .carousel-list2 li").length;

	}
	
	var pagingSize = Math.ceil(numItem/visible);
	var template = '<li><a href="#" class="page-#cnt# #thumbActive#"></a></li>';
	var index = getIndex(jQuery(".carousel-selection .carousel-list2 ul li"), "selected") + 1;
	var goTo = Math.ceil(index/visible);
	
	var btns = new Array();
	for (var i = 0; i < pagingSize; i++) {
		btns.push(".page-"+ (i+1));
		var thumbItem = template.replace(/#cnt#/g, (i+1));
		if(i == 0) {
			thumbItem = thumbItem.replace(/#thumbActive#/g, 'thumbActive');
		} else {
			thumbItem = thumbItem.replace(/#thumbActive#/g, ' ');
		}
		jQuery('.carousel-pagination ul.thumbs').append(thumbItem);
	}
	
	var thumbsLength = jQuery('.carousel-pagination ul.thumbs li').length;
	if(thumbsLength===1){
		jQuery('.carousel-pagination ul.thumbs').hide();
	}
	
	if(isRtl()){
		rtlVal = true;
	}
	
	jQuery(".carousel-selection .carousel-list2").jCarouselLite({
		btnNext: ".next",
		btnPrev: ".prev",
		start: 0,
		scroll:5,
		visible: visible,
		rtl: isRtl(),
		isRTL:rtlVal,
		circular: false,
		btnGo: btns,
		beforeStart: function(){
			setTimeout(function(){
				jQuery('.carousel-selection .carousel-list2 ul').css('zoom','100%');
			},200);
		},
		afterEnd: function(a, to, btnGo, conf) {
			if(( btnGo.length * conf.scroll) <= to){
				to = 0;
			}
			var $thumbActive = jQuery(".thumbActive");
			$thumbActive.removeClass("thumbActive");
			var realTo = Math.ceil(to / conf.scroll);
			jQuery(btnGo[realTo]).addClass("thumbActive");
			jQuery('.carousel-selection .carousel-list2 ul').css('zoom','1');
		}
	});
	
	if(isRtl()) {
		var rtlPager = new Array();
		for(var i=0; i<pagingSize; i++) {
			rtlPager.push(i+1);
		}
		rtlPager.reverse();
	}
	jQuery('a.page-'+goTo).trigger('click');
}

function getIndex(list, clasz) {
	var index = 0;
	var answer = -1;
	list.each(function() {
		if(jQuery(this).hasClass(clasz)) answer = index;
		index++;
	});
	return answer;
}
 

function topCarousel() {
	var index = getIndex(jQuery("#carousel-top ul li"), "selected");
	var clength = jQuery("#carousel-top ul li").length;
	
	var topVis = 5;
	var scroll = 5;
	start = index+1;
	var maxPager = Math.floor(index/topVis);
	var lastPage = Math.floor(clength/topVis)
	var pos = 0;
	var disabledNext = false, disabledPrev = false;
	rtlVal = false;
	
	if(((maxPager * topVis) > start) ){
		pos = Math.floor(start/topVis) * topVis;
		if(index<5){pos=0;}
	} else {
		pos = maxPager * topVis;
	}
	
	if(isRtl()){
		rtlVal = true;
	}
	
	jQuery(".carousel-selection #carousel-top").jCarouselLite({
		btnNext: ".carousel-selection .forward",
		btnPrev: ".carousel-selection .back",
		visible: topVis,
		start: pos,
		scroll: scroll,
		rtl: isRtl(),
		isRTL:rtlVal,
		circular: false,
		afterEnd: function(){
					jQuery('#carousel-top').css('zoom','1');
					jQuery('#carousel-top').css('zoom','100%');
				}
	});
	
	if(clength == start || start > (lastPage*topVis)) {
		jQuery('.carousel-selection .forward').addClass('disabled');
	}
	
	if(start <= topVis) {
		jQuery('.carousel-selection .back').addClass('disabled');
	}
	
	jQuery('.carousel-selection .forward').click(function(){
		if(clength == start || start > (lastPage*topVis)) {
			jQuery('.carousel-selection .forward').addClass('disabled');
		}
	});	
	
	//console.log('index: '+index+'\npos: '+pos+'\nstart: '+start+'\ntopVis: '+topVis+'\nmaxPager: '+maxPager+'\nclength: '+clength+'\nlastPage: '+lastPage);
 }
 
function checkWidth(){
	if(jQuery(window).width()<945){
		jQuery('body').css('overflow-x','auto');
	}else{
		jQuery('body').css('overflow-x','hidden');
	}
}
 
(function ($) {
        $.fn.vAlign = function() {
            return this.each(function(i){
                var ah = $(this).height();
                var ph = $(this).parent().height();
                var mh = Math.round((ph - ah) / 2);
                $(this).css('padding-top', mh + "px");
            });
        };
}(jQuery));


// Check rtl
function isRtl() {
	return (jQuery('body#sony').css('direction') === 'rtl');
}
