// JScript File

/************************************************************************************************************
(C) www.dhtmlgoodies.com, June 2006

This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Thank you!

www.dhtmlgoodies.com
Alf Magne Kalleland

************************************************************************************************************/	

function slider(innerDivID, outerDivID, colCount, cellCount, leftArrowID, rightArrowID, objectID, pager, imgPath)
{
    this.slideSpeed = 1;	// Czas animacji
    this.slideSteps = 15;	// Liczba o ile pikseli przesowa sie obrazek - szerokosc diva musi byc podzielna przez ta liczbe
    var rest = cellCount - (colCount % cellCount);
    if(rest == cellCount)
        rest = 0;
    this.columnsOfThumbnails = parseInt((parseInt(colCount) + parseInt(rest)));
    this.cellCount = cellCount;
	this.imgPath = imgPath;
	
    this.thumbsColIndex = 0;
    this.thumbsLeftPos = false;
    
    this.DHTMLgoodies_slideWidth = false;
    this.DHTMLgoodies_thumbTotalWidth = false;
    this.DHTMLgoodies_viewableWidth = false;
	
    this.DHTMLgoodies_thumbDiv = document.getElementById(innerDivID);
    this.leftArrowObj = document.getElementById(leftArrowID);
    this.rightArrowObj = document.getElementById(rightArrowID);
    
    this.DHTMLgoodies_thumbSlideInProgress = false;
    
    this.DHTMLgoodies_thumbs_outer_ID = outerDivID;
    
    this.Pager = pager.split(";");
    
    this.slideThumbs = slideThumbs;
    
    this.moveThumbnailsLeft = moveThumbnailsLeft;
    
    this.moveThumbnailsRight = moveThumbnailsRight;
    
    this.moveMultiplePages = moveMultiplePages;
    
    this.ID = objectID;
    
    if(this.columnsOfThumbnails > 0)
    {	
	    this.leftArrowObj.style.cursor = 'pointer';	
	    this.rightArrowObj.style.cursor = 'pointer';
	    var slider = this;	
	    this.leftArrowObj.onclick = function(e) 
	    {
	        slider.moveThumbnailsLeft(slider);
	    }
	    this.rightArrowObj.onclick = function(e)
	    {
	        slider.moveThumbnailsRight(slider);
	    }
	    this.DHTMLgoodies_slideWidth = this.DHTMLgoodies_thumbDiv.getElementsByTagName('DIV')[0].offsetWidth;
	    this.DHTMLgoodies_thumbDiv.style.left = '0px';
		
	    var subDivs = this.DHTMLgoodies_thumbDiv.getElementsByTagName('DIV');
	    this.DHTMLgoodies_thumbTotalWidth = 0;
	    var tmpLeft = 0;
	    for(var no = 0; no < subDivs.length; no++)
	    {
		    if(subDivs[no].className == 'strip_of_thumbnails')
		    {
			    this.DHTMLgoodies_thumbTotalWidth = this.DHTMLgoodies_thumbTotalWidth + this.DHTMLgoodies_slideWidth;
			    subDivs[no].style.left = tmpLeft + 'px';
			    subDivs[no].style.top = '0px';
			    tmpLeft = tmpLeft + subDivs[no].offsetWidth;
		    }
	    }
	    this.DHTMLgoodies_thumbTotalWidth = this.DHTMLgoodies_slideWidth * this.columnsOfThumbnails;
	    this.DHTMLgoodies_viewableWidth = document.getElementById(this.DHTMLgoodies_thumbs_outer_ID).offsetWidth;
	    this.DHTMLgoodies_slideWidth = this.DHTMLgoodies_slideWidth * cellCount;
	}
	else
	{	
	    this.leftArrowObj.style.visibility = 'hidden';
	    this.rightArrowObj.style.visibility = 'hidden';
	}
}

function moveThumbnailsLeft(slider)
{
	if(slider.DHTMLgoodies_thumbSlideInProgress)
	    return;
	slider.DHTMLgoodies_thumbSlideInProgress = true;
	
	slider.thumbsColIndex--;
	slider.slideThumbs(slider.slideSteps,0);
	
	for(var k=0; k < slider.Pager.length; k++)
	{
	    if(k == slider.thumbsColIndex)
	        document.getElementById(slider.Pager[k]).src = this.imgPath+"/img/slider_sel_page.gif";
	    else
	        document.getElementById(slider.Pager[k]).src = this.imgPath+"/img/slider_disel_page.gif";
	}
}

function moveThumbnailsRight(slider)
{
	if(slider.DHTMLgoodies_thumbSlideInProgress)
	    return;
	slider.DHTMLgoodies_thumbSlideInProgress = true;

	slider.thumbsColIndex++;
	var t = slider.slideThumbs((slider.slideSteps * -1), 0);

	for(var k=0; k< slider.Pager.length; k++)
	{
	    if(k == slider.thumbsColIndex)
	        document.getElementById(slider.Pager[k]).src = this.imgPath+"/img/slider_sel_page.gif";
	    else
	        document.getElementById(slider.Pager[k]).src = this.imgPath+"/img/slider_disel_page.gif";
	}
}

function moveMultiplePages(pageIndex, slider)
{
    //slide left
    var temp = slider.thumbsColIndex;
    if(temp > pageIndex)
    {
        for(var i = 0; i < (temp - pageIndex); i++)
        {
            slider.moveThumbnailsLeft(slider);
        }
    }
    //slide right
    else if(temp < pageIndex)
    {
        for(var i = 0; i < (pageIndex - temp); i++)
        {
            slider.moveThumbnailsRight(slider);
        }
    }
}

function slideThumbs(speed,currentPos)
{
	var leftPos;
	if(this.thumbsLeftPos)
		leftPos = this.thumbsLeftPos;
	else
	{
		var leftPos = this.DHTMLgoodies_thumbDiv.style.left.replace('px','')/1;
		this.thumbsLeftPos = leftPos;
	}
	currentPos = currentPos + Math.abs(speed);	
	var tmpLeftPos = leftPos;
	leftPos = leftPos + speed;
	this.thumbsLeftPos = leftPos;
	this.DHTMLgoodies_thumbDiv.style.left = leftPos + 'px';
	if(currentPos < this.DHTMLgoodies_slideWidth)
	    setTimeout(this.ID + '.slideThumbs(' + speed + ',' + currentPos + ')', this.slideSpeed);
	this.DHTMLgoodies_thumbSlideInProgress = false;
	if(leftPos <= -this.DHTMLgoodies_thumbTotalWidth)
	{
	    this.thumbsLeftPos = this.DHTMLgoodies_slideWidth;
	    currentPos = 0;
	    this.thumbsColIndex = 0;
	    
	    for(var k=0; k < this.Pager.length; k++)
	    {
	        if(k == this.thumbsColIndex)
	            document.getElementById(this.Pager[k]).src = this.imgPath+"/img/slider_sel_page.gif";
	        else
	            document.getElementById(this.Pager[k]).src = this.imgPath+"/img/slider_disel_page.gif";
	    }
	    
	    if(currentPos < this.DHTMLgoodies_slideWidth)
	        setTimeout(this.ID + '.slideThumbs(' + speed + ',' + currentPos + ')', this.slideSpeed);
	}
	if(leftPos >= this.DHTMLgoodies_slideWidth)
	{
	    this.DHTMLgoodies_thumbDiv.style.left = -this.DHTMLgoodies_thumbTotalWidth + 'px';
	    this.thumbsLeftPos = -this.DHTMLgoodies_thumbTotalWidth;
	    currentPos = 0;
	    this.thumbsColIndex = (this.columnsOfThumbnails / this.cellCount) - 1;
	    
	    for(var k=0; k < this.Pager.length; k++)
	    {
	        if(k == this.thumbsColIndex)
	            document.getElementById(this.Pager[k]).src = this.imgPath+"/img/slider_sel_page.gif";
	        else
	            document.getElementById(this.Pager[k]).src = this.imgPath+"/img/slider_disel_page.gif";
	    }
	    
	    if(currentPos < this.DHTMLgoodies_slideWidth)
	        setTimeout(this.ID + '.slideThumbs(' + speed + ',' + currentPos + ')', this.slideSpeed);
	}
	return this.thumbsColIndex;
}

