﻿//Minifiy with http://fmarcia.info/jsmin/test.html

////////////////////////////////////////////////////////////////
// This script is used by the ContentSlider Agility Module
////////////////////////////////////////////////////////////////

var CSliderCurrIndex = 0;
var AllowLeftClick = true;
var AllowRightClick = true;

function CSliderLoadContent(mainDivName, CSliderArray, slideDirection)
{
    var currentSelectArray = CSSliderGetArrayElements(CSliderArray);
    var divToAddTo = document.getElementById(mainDivName);
    
    if(slideDirection==null || slideDirection == undefined || slideDirection=="")
    {
        while(divToAddTo.hasChildNodes())
        {
            divToAddTo.removeChild(divToAddTo.lastChild);
        }
        
        for(var i=0; i<CSDisplayCount; i++)
        {
            var item = CSCreateSliderItem(currentSelectArray[i], i);
            divToAddTo.appendChild(item);
        }
    }
    else if(slideDirection=="left")
    {
    
        // remove all nodes that are displayed
        while(divToAddTo.hasChildNodes())
        {
            divToAddTo.removeChild(divToAddTo.lastChild);
        }
        
        // add nodes to be displayed
        for (var i = 0; i < CSDisplayCount; i++) {
            var item = CSCreateSliderItem(currentSelectArray[i], i);
            divToAddTo.appendChild(item);
        }
        
        
        divToAddTo.childNodes[0].className = "SliderItemLeft";
        
        // if more than two nodes displayed, then add style for centre and right most
        if (CSDisplayCount > 2) {
        
            for (var i = 1; i < CSDisplayCount - 1; i++) {
                divToAddTo.childNodes[i].className = "SliderItem";
            }
            divToAddTo.childNodes[3].className = "SliderItemRight";
        }
        
        divToAddTo.style.marginLeft = "0px";
        
        $("a.SliderItemLeft").css("display","none");
        $("a.SliderItem").css("display","none");
        $("a.SliderItemRight").css("display","none");
        $("a.SliderItemLeft").fadeIn("slow");
        $("a.SliderItem").fadeIn("slow");
        $("a.SliderItemRight").fadeIn("slow");
        
        AllowLeftClick = true;
    }
    else if(slideDirection=="right")
    {
        // remove all nodes that are displayed
        while(divToAddTo.hasChildNodes())
        {
            divToAddTo.removeChild(divToAddTo.lastChild);
        }
        
        for (var i = 0; i < CSDisplayCount; i++) {
            var item = CSCreateSliderItem(currentSelectArray[i], i);
            if (i == 0) {
                item.className = "SliderItemLeft";
            }
            if (i > 0 && i < CSDisplayCount - 1) {
                item.className = "SliderItem";
            }
            if (i == CSDisplayCount - 1) {
                item.className = "SliderItemRight";
            }
            divToAddTo.appendChild(item);
        }
        divToAddTo.style.marginLeft = "0px";
        
        $("a.SliderItemLeft").css("display","none");
        $("a.SliderItem").css("display","none");
        $("a.SliderItemRight").css("display","none");
        $("a.SliderItemLeft").fadeIn("slow");
        $("a.SliderItem").fadeIn("slow");
        $("a.SliderItemRight").fadeIn("slow");
        
        AllowRightClick = true;
        
    }
    
}

function CSCreateSliderItem(Item, index)
{
    ImageRotatorObj = Item;
        
    if(ImageRotatorObj == null || ImageRotatorObj == undefined)
    {
        return null;
    }

    var item = $("<a/>");
    if (index == 0) {
        item.addClass("SliderItemLeft");
    }
    else if (index < (CSDisplayCount - 1) && index > 0) {
        item.addClass("SliderItem");
    }
    else {
        item.addClass("SliderItemRight");
    }
    item.append($("<img/>").attr("src", ImageRotatorObj.ThumbUrl).attr("alt", ImageRotatorObj.Label));
    item.append($("<span/>").html(ImageRotatorObj.Title));

    if (ImageRotatorObj.LinkUrl != null && ImageRotatorObj.LinkUrl != undefined) {
        item.attr("href", ImageRotatorObj.LinkUrl);
        item.attr("target", ImageRotatorObj.LinkTarget);
    }
    
    return item.get(0);
}


function CSSliderGetArrayElements(CSliderArray)
{
    
    var currentArray = new Array();
    
    var indexList = new Array();
    
    var index = CSliderCurrIndex;
    var indexCount =0;
    

    
    while(index <= CSlider_MaxIndex && indexCount < CSDisplayCount)
    {
        
        indexList[indexList.length] = index;
        index++;
        indexCount++;
    }
    
    if(indexCount<CSDisplayCount)
    {
        index = 0;
        while(indexCount<CSDisplayCount && index < CSlider_MaxIndex)
        {
            
            indexList[indexList.length] = index;
            index++;
            indexCount++;
        }
    }

    for(var i=0; i<indexList.length; i++)
    {
        var currIndex = indexList[i];
        
        var currObject = CSliderArray[currIndex];
       
        currentArray[i] = currObject;
       
    }

    return currentArray;
}

function AdvanceRight()
{
    if(AllowRightClick){
        AllowRightClick = false;
        if(CSliderCurrIndex>CSDisplayCount)
        {
            CSliderCurrIndex-=CSDisplayCount;
        }
        else
        {
            CSliderCurrIndex = ((CSlider_MaxIndex+1) - (CSDisplayCount-CSliderCurrIndex)) % (CSlider_MaxIndex+1);
        }

        $("div.PanelItems").animate({ marginLeft:"920px"}, CSSlideSpeed-200);
        setTimeout("BindCSlider('right')", CSSlideSpeed);
    }

}

function AdvanceLeft()
{
    if(AllowLeftClick){
        AllowLeftClick = false;
        if(CSliderCurrIndex+CSDisplayCount<CSlider_MaxIndex+1)
        {
            CSliderCurrIndex+=CSDisplayCount;
        }
        else
        {
            CSliderCurrIndex = ((CSliderCurrIndex+CSDisplayCount)-(CSlider_MaxIndex+1)) % (CSlider_MaxIndex+1);
        }
        
        $("div.PanelItems").animate({ marginLeft:"-920px"}, CSSlideSpeed-200);
        setTimeout("BindCSlider('left')", CSSlideSpeed);
    }

}

function AutoSlideLeft(interval) {
    setTimeout('AdvanceLeft(); AutoSlideLeft('+interval+');', interval);   
}

function AutoSlideRight(interval) {
    setTimeout('AdvanceRight(); AutoSlideRight('+interval+');', interval);   
}