var currentDesignerIndex = 0;
var currentNewsItemIndex = 0;
var t;

$(document).ready(function(){

    if($("#NewsTicker").length > 0)
    {
        var NewsTicker = $("#NewsTicker");
        var newsItems = $("#NewsTicker .newsItem");
        
        newsItems.each(function(i){
            if(i != 0)
            {
                $(this).hide();                
            }
            MakeItemClickable($(this),true, "clickable");
        });
        
        NewsTicker.fadeTo(0,0.6);
        NewsTicker.bind("mouseenter", function(){
            NewsTicker.fadeTo(500, 1);
        });
        NewsTicker.bind("mouseleave", function(){
            NewsTicker.fadeTo(500, 0.6);
        });
        
        
    }
    
    $(".hoverable").each(function(){
        MakeHoverable($(this),"over");
    })
    
    $(".frontPageClickable").each(function(){
        MakeItemClickable($(this), false, "over");
    })
    
    if($("#HomeManImages").length > 0)
    {
        var homeManufacturers = $("#HomeManImages .manufacturerItem");
        
        homeManufacturers.each(function(i){
        
            var homeManImage = $(this);
            MakeItemClickable(homeManImage, true, "clickable");
            MakeHoverable(homeManImage, "over");
            if(i != 4)
            {
                homeManImage.hide();                          
            }
        });
    }
    
    if($(".DesignerPageList .item").length > 0)
    {
        var catList = $(".DesignerPageList .item");
        
        catList.each(function(){
            MakeHoverable($(this), "hover");
            MakeItemClickable($(this), true, "clickable");
        });
    }
    
    if($("#DesignerImages").length > 0)
    {
        var designerImages = $("#DesignerImages .manufacturerItem");
        var allManItemsWidth = 0;
        
        designerImages.each(function(){        
            $(this).hide();
        });
    }
    
    //Hoverable ourBrides
    if($(".ourBrides").length > 0)
    {
        var brides = $(".ourBrides .ourBride");
        var brideText = $(".ourBrides .ourBride .text")
        
        brides.each(function(){
            var bride = $(this);
            var link = bride.find(".more").attr("href");
            
            bride.find(".text").addClass("callout");            
            
            bride.bind("click", function(){window.location = link;});
            
            bride.bind("mouseenter", function(){
                bride.addClass("over");
                bride.find(".text").fadeIn("fast");
            });
            
            bride.bind("mouseleave", function(){
                bride.removeClass("over");
                bride.find(".text").fadeOut("slow");
            });            
            
        });
        
        brideText.each(function(){
            $(this).hide();
        });
    }
    
    //Menu system in ourBrides
    if($(".ourBridesSmall").length > 0)
    {
        var brides = $(".ourBridesSmall .ourBrideSmall");
                
        brides.each(function(){
            var bride = $(this);
            var link = bride.find(".more").attr("href");
            
            bride.find(".text .summary").hide();
            bride.find(".text").addClass("callout");            
            
            bride.bind("click", function(){window.location = link;});
            
            bride.bind("mouseenter", function(){
                bride.addClass("over");
            });
            
            bride.bind("mouseleave", function(){
                bride.removeClass("over");
            });            
            
        });
    }

});

$(window).load(function(){

    if($("#NewsTicker").length > 0)
    {
        setTimeout(function(){showNextNewsItem();},5000);
    }

    if($(".ourBrides .ourBride").length > 0)
    {
    var brides = $(".ourBrides .ourBride");
    
    brides.each(function(){
    
        var bride = $(this);
        var imageCont = $(this).find(".image");
        var image = $(this).find(".image img");

        var imageContWidth = imageCont.width();
        var imageContHeight = imageCont.height();

        var imageWidth = image.width();
        var imageHeight = image.height();

        var imageLeftPosition = (imageContWidth - imageWidth)/2;
        var imageTopPosition = (imageContHeight - imageHeight)/2;

        image.css("position","absolute");
        image.css("left",imageLeftPosition);
        image.css("top",imageTopPosition);
    });
    }
    
    if($("#DesignerImages").length > 0)
    {       
	//turn off loading background
        $("#DesignerImages").css("background","none");
        
        var designerImages = $("#DesignerImages .manufacturerItem");
        var allManItemsWidth = 0;
    
        designerImages.each(function(){
        
            $(this).fadeIn("slow");
        
            var man = $(this);
            var manText = man.find(".text");
            MakeItemClickable(man, true);
            
            manText.fadeTo("slow", 0.8);
            manText.addClass("callout");
            
            manText.wrap("<div class=\"textcontainer\"></div>");
            
            //get text container and set its width to the width of the image;
            $(this).find(".textcontainer").css("width",$(this).width() + "px");
            
            $(man).hover(                
                function(){
                    man.addClass("over");
                    $(this).stop("true","true");
                },
                
                function(){
                    man.removeClass("over");
                    $(this).stop("true","true");
                }
            )
            
            allManItemsWidth = allManItemsWidth + man.width() + 30;        
                
        });
        
        designerImages.wrapAll("<div class=\"scrollerBase\" style=\"float: left; position: absolute; overflow: visible; width: " + allManItemsWidth + "px; top: 10px;\">", "</div>");

        var scrollerBase = $("#DesignerImages").find(".scrollerBase");
        scrollerBase.before("<img class=\"pngFix\" id=\"PreviousDesigner\" style=\"position: absolute; left: 0px; top: 0px; z-index: 99;\" src=\"/App_Themes/TimsCSK/images/designersScroll_Left.png\" />");
        scrollerBase.before("<img class=\"pngFix\" id=\"NextDesigner\" style=\"position: absolute; right: 0px; top: 0px; z-index: 99;\" src=\"/App_Themes/TimsCSK/images/designersScroll_Right.png\" />");      
        
        $("#PreviousDesigner").bind("click", function(){
            ShowPreviousDesigner(designerImages, 200);
            
        });
        
        $("#NextDesigner").bind("click", function(){
            ShowNextDesigner(designerImages, 200);
            
        });
        
        //make the buttons clickable
        MakeHoverable($("#PreviousDesigner"),"hover");
        MakeHoverable($("#NextDesigner"),"hover");
        
        //Mouse movement for designerImages
        var border = 180;        
        var extra = scrollerBase.width() - $("#DesignerImages").width() + border;
        var centerPoint = extra / 2;
        var centerOfFirstDesigner = ($("#DesignerImages").width() - designerImages.width())/2;
        var ratio = extra / $("#DesignerImages").width();        
                
        //set the current image to the start and start the carousel
        currentDesignerIndex = 4;
        StartCarousel(designerImages);
    }
});

function ShowNextDesigner(designers, timeToMove){
    designers.stop();
    //HideAllText(designers);
    
    //loop around
    if(currentDesignerIndex >= designers.length-1)
    {
        currentDesignerIndex = 0;
    }
    else
    {
        currentDesignerIndex++;
    }
    
    ShowDesigner(currentDesignerIndex, designers, timeToMove);
}

function ShowPreviousDesigner(designers, timeToMove){
    designers.stop();
    //HideAllText(designers);
    
    //loop around
    if(currentDesignerIndex <= 0)
    {
        currentDesignerIndex = designers.length -1;
    }
    else
    {
        currentDesignerIndex--;
    }
    ShowDesigner(currentDesignerIndex, designers, timeToMove);    
}

function ShowDesigner(index, designers, timeToMove)
{
    var scrollerBase = $("#DesignerImages").find(".scrollerBase");
    var leftOfDesigner = $(designers[index]).position().left;
    var widthOfDesigner = $(designers[index]).width()+10;
    var widthOfWindow = $("#DesignerImages").width();
    var centerOfDesigner = leftOfDesigner - ((widthOfWindow-widthOfDesigner)/2);
    
    //catch to make sure no large spaces on left for first image
    if(centerOfDesigner <= 0)
    {
        centerOfDesigner = -20;
    }
    
    //catch to make sure no large spaces on right for last image
    if((leftOfDesigner + widthOfDesigner) >= scrollerBase.width()-20)
    {
        centerOfDesigner = leftOfDesigner - (widthOfDesigner - 10);
    }
    
    scrollerBase.animate({left: -centerOfDesigner + "px"},timeToMove, function(){
    
        if(currentDesignerIndex < designers.length-1)
        {
            clearTimeout(t);
            t=setTimeout(function(){ShowNextDesigner(designers, 1000);},5000);
        }
        else
        {
            clearTimeout(t);
            t=setTimeout(function(){ShowDesigner(0, designers, 1000);},5000);
        }        
    });
}

function ResetDesigners()
{
    clearTimeout(t);
    currentDesignerIndex = 0;
    var scrollerBase = $("#DesignerImages").find(".scrollerBase");
    var designerImages = $("#DesignerImages .manufacturerItem");
    var centerOfFirstDesigner = ($("#DesignerImages").width() - $(designerImages[0]).width())/2;

	
    
    scrollerBase.animate({left: centerOfFirstDesigner + "px"},1000, function(){
        ShowText($(designerImages[0]));
        t=setTimeout(function(){ShowNextDesigner(designerImages, 1000);},5000);
    });
}

function StartCarousel(designers)
{
    ShowDesigner(currentDesignerIndex, designers, 0);    
}

function StopCarousel()
{
    clearTimeout(t);    
}

function ShowText(itemToShowTextIn)
{
   itemToShowTextIn.find(".text").fadeIn("slow");         
}

function HideText(itemToHideTextIn)
{
    itemToHideTextIn.find(".text").fadeOut("slow");         
}

function HideAllText(itemsToHideTextIn)
{
    itemsToHideTextIn.each(function(){
        $(this).find(".text").hide();
    });
}

//Gets an internal link and makes the whole item clickable
function MakeItemClickable(element, hideLink, itemClickableClass)
{
    var link = element.find("a").attr("href");
    
    //apply the clickable class
    element.addClass(itemClickableClass);
    
    //bind the event
    element.bind("click", function(){window.location = link;});
    
    //hide the link if need be
    if(hideLink)
    {
        element.find("a").hide();
    }
}

//Gets an internal link and makes the whole item clickable
function MakeHoverable(item, mouseOverClass)
{
    item.bind("mouseenter", function(){$(this).addClass("hover")});
    item.bind("mouseleave", function(){$(this).removeClass("hover")});
}

function BindDesignerImages(){
    var border = 180;
    var scrollerBase = $("#DesignerImages").find(".scrollerBase");
    var extra = scrollerBase.width() - $("#DesignerImages").width() + border;
    var centerPoint = extra / 2;
    var ratio = extra / $("#DesignerImages").width();

    $("#DesignerImages").bind("mousemove", function(e){  
                        
        var mousePositionInBox = e.pageX - $("#DesignerImages").offset().left;
        scrollerBase.css("left", -mousePositionInBox*ratio+border/2);
                        
    });
}

function showNextNewsItem()
{
    var newsItems = $("#NewsTicker .newsItem");
    var currentNewsItem = $(newsItems.eq(currentNewsItemIndex));
    var nextNewsItem;
    
    if(currentNewsItemIndex+1 == newsItems.size()-1)
    {
        currentNewsItemIndex = 0;
    }
    else
    {
        currentNewsItemIndex++;
    }
    
    nextNewsItem = $(newsItems.eq(currentNewsItemIndex))
    
    
    currentNewsItem.fadeOut("slow", function(){
        nextNewsItem.fadeIn("slow");
    });
    
    setTimeout(function(){showNextNewsItem();}, 5000);
}
