var selectorElementWidth = 959;
var elementCount = 0;
var imageIndex = 0;
var rotateTimeout;
var waitTime = 4000;
var animationTime = 250;
var productContentElementWidth = 900;
var productCurrentIndex = 1;
var productElementCount = 0;
var productElementOffset = 0;
var bVersion;


// JS for Home Page ONLY!

$(document).ready(function() {
    
    /* Image Rotation Functionality */
    
    // this statement requires getInternetExplorerVersion() found in utils.js 
    bVersion = getInternetExplorerVersion();    
	elementCount = $('#channelSelectorList').children('li').length;

    $('#channelSelectorList').width((elementCount * selectorElementWidth)+959);
	$('#channelSelectorList').css({'position': 'relative'});
	$('#channelSelectorList').append('<li>'+$('#channelSelectorList li:eq(0)').html()+'</li>');
	if(bVersion == 6 || bVersion == 7 || bVersion == 8) {
	} else {
	    $('.featureImageOverlay').css({opacity: 1});
	}
    
    $('#csPrev').click(function(e) {
		e.preventDefault();
	    $('#channelSelectorList li.activated .featureImageOverlay').css({top: '525px'});
        $('#channelSelectorList li.activated .featureImage').css({left: '0px'});
        $('#channelSelectorList .featureImageOverlay').stop(true, true);
		if((imageIndex) == 0) {
            updateContent(elementCount-1);
	    } else {
            updateContent(imageIndex-1);
	    }
	});
	$('#csNext').click(function(e) {
		e.preventDefault();
		$('#channelSelectorList li.activated .featureImageOverlay').css({top: '525px'});
        $('#channelSelectorList li.activated .featureImage').css({left: '0px'});
        $('#channelSelectorList .featureImageOverlay').stop(true, true);
            updateContent(imageIndex+1);
	});
	
	if(bVersion == 6 || bVersion == 7) {
        setTimeout('initGalleryIE();', 1000);
    } else {
        setTimeout('initGallery();', 1000);
    }
    

    /* Product Carousel Functionality */
    $('body').prepend('<span id="productSetOverlay"></span>')
    $('#productSet a.productItem').mouseover(function() {
        $('#productSetOverlay').html($('.productSetOverlayContent', this).html());
        $('#productSetOverlay').stop(true, true);
        $('#productSetOverlay').animate({opacity: 0.8}, 200, "swing");
        $('#page').mousemove(function(e){
            $('#productSetOverlay').css({top: e.pageY+25+'px', left: e.pageX+25+'px'});
        });
    });
    $('#productSet').mouseout(function() {
        $('#productSetOverlay').stop(true, true);
        $('#productSetOverlay').css({top: '-9999px', left: '0px', opacity: 0.0});
        $('#page').unbind();
    });
    $('#productSet a.productItem').mouseout(function() {
        $('#page').unbind();
    });
    $('#productSetListWrapper a').click(function(e) {
        e.preventDefault();
    });
    
    
    productElementCount = $('#productSetListWrapper').children().length;
    productTotalElementsWidth = productElementCount * productContentElementWidth; 
    $('#productSetListWrapper').width(productTotalElementsWidth);
    $('#productSetListWrapper').css({'position': 'relative'});
    
    $('#leftArrow').click(function(e) {
       e.preventDefault();
       $('#productSetListWrapper').stop(true, true);
       if(productCurrentIndex > 1) {
           productCurrentPosition = productElementOffset; 
           productElementOffset = productCurrentPosition - productContentElementWidth;
           productNewPosition = productElementOffset; 
           productCurrentIndex = productCurrentIndex-1;
           $('#productSetListWrapper').animate({right: productNewPosition+'px'}, 500, "easeOutExpo");
       }
    });
    
    $('#rightArrow').click(function(e) {
       e.preventDefault();
       $('#productSetListWrapper').stop(true, true);
       if(productCurrentIndex < productElementCount) {
           productCurrentPosition = productElementOffset; 
           productElementOffset = productCurrentPosition + productContentElementWidth;
           productNewPosition = productElementOffset; 
           productCurrentIndex = productCurrentIndex+1;
           $('#productSetListWrapper').animate({right: productNewPosition+'px'}, 500, "easeOutExpo");
       }
    });
    
});

function hideOverlay() {
    $('#productSetOverlay').animate({opacity: 0.0}, 100, "swing", function() {
        $('#productSetOverlay').css({top: '-9999px', left: '0px'});
    });
}

function updateContent(index) {
    imageIndex = index-1;
    clearTimeout(rotateTimeout);
    rotateImage();
}

function initGalleryIE() {
    $('#channelSelectorList li:first').addClass('activated');
    $('#channelSelectorList li:first .featureImageOverlay').animate({top: '0px'}, {
        duration:300, 
        queue:false, 
        easing:"easeOutExpo",
        complete: function() {
            $('#channelSelectorList li:first .featureImageOverlay').animate({top: '0px'}, {
                duration:3500, 
                queue:true, 
                easing:"linear"
            });
            $('#channelSelectorList li:first .featureImageOverlay').animate({top: '-525px'}, {
                duration:200, 
                queue:true, 
                easing:"easeInExpo"
            });
        }
    });
    rotateTimeout = setTimeout(function() {
    	rotateImage();
    }, waitTime);
}

function initGallery() {
	$('#channelSelectorCanvas').animate({opacity: 1}, 1000, "swing", function() {
	    $('#channelSelectorList li:first').addClass('activated');
        $('#channelSelectorList li:first .featureImageOverlay').animate({top: '0px'}, {
            duration:300, 
            queue:false, 
            easing:"easeOutExpo",
            complete: function() {
                $('#channelSelectorList li:first .featureImageOverlay').animate({top: '0px'}, {
                    duration:3500, 
                    queue:true, 
                    easing:"linear"
                });
                $('#channelSelectorList li:first .featureImageOverlay').animate({top: '-525px'}, {
                    duration:200, 
                    queue:true, 
                    easing:"easeInExpo"
                });
            }
        });
    	rotateTimeout = setTimeout(function() {
    		rotateImage();
    	}, waitTime);
	});
	
};

function rotateImage() {
    
    $('#channelSelectorList li.activated .featureImageOverlay').css({top: '525px'});
    $('#channelSelectorList li.activated .featureImage').css({left: '0px'});
    imageIndex++;
    if(imageIndex == elementCount+1) {
        imageIndex = 1;
        $('#channelSelectorList').css({right: '0px'});
    }
    $('#channelSelectorList .featureImageOverlay').stop(true, true);
    $('#channelSelectorList .featureImage').stop(true, true);
    $('#channelSelectorList').stop(true, true);
    $('#channelSelectorList li:eq('+imageIndex+')').addClass('activated');
    $('#channelSelectorList').animate({right: (imageIndex*selectorElementWidth)+'px'}, {
        duration:animationTime, 
        queue:false, 
        easing:"swing"
    });
    
    $('#channelSelectorList li:eq('+imageIndex+') .featureImage').animate({left: '-50px'}, {
        duration:3300, 
        queue:false, 
        easing:"easeOutExpo"
    });
    
    if(bVersion == 6 || bVersion == 7) {
        $('#channelSelectorList li:eq('+imageIndex+') .featureImageOverlay').animate({top: '0px'}, {
            duration:300, 
            queue:false, 
            easing:"easeOutExpo",
            complete: function() {
                $('#channelSelectorList li:eq('+imageIndex+') .featureImageOverlay').animate({top: '0px'}, {
                    duration:3500, 
                    queue:true, 
                    easing:"linear"
                });
                $('#channelSelectorList li:eq('+imageIndex+') .featureImageOverlay').animate({top: '-525px'}, {
                    duration:200, 
                    queue:true, 
                    easing:"easeInExpo"
                });
            }
        });
    } else { 
        $('#channelSelectorList li:eq('+imageIndex+') .featureImageOverlay').animate({top: '0px'}, {
            duration:300, 
            queue:false, 
            easing:"easeOutExpo",
            complete: function() {
                $('#channelSelectorList li:eq('+imageIndex+') .featureImageOverlay').animate({top: '0px'}, {
                    duration:3500, 
                    queue:true, 
                    easing:"linear"
                });
                $('#channelSelectorList li:eq('+imageIndex+') .featureImageOverlay').animate({top: '-525px'}, {
                    duration:200, 
                    queue:true, 
                    easing:"easeInExpo"
                });
            }
        });
    }
     
	rotateTimeout = setTimeout(function() {
		rotateImage();
	}, waitTime); 
};
