var scrollOffset = 0;
var scrolling = false;
var maxScrollingSize = 50;
var scrollingTimeOffset = 20;
var numPagesToScroll = 0;
var currentDisplayedPage = 1;
var pageWidth = 0;
var scrollerControlerDisplayed = false;
var selectedPageDot = 1;
var picsDirectory = "pics/";
var savingStateEnabled = false;


function scrollPageRight() {
    if (scrolling == false) {
        scrolling = true;
        if (scrollOffset <= -(pageWidth * numPagesToScroll)) {
            var scrollDiv = document.getElementById("scrollArea");
            scrollOffset = 0;
            scrollDiv.style.left = scrollOffset + "px";
        }
        scrollToRight(pageWidth);
    }
}

function scrollPageLeft() {
    if (scrolling == false) {
        scrolling = true;
        if (scrollOffset >= 0) {
            var scrollDiv = document.getElementById("scrollArea");
            scrollOffset = -pageWidth * numPagesToScroll;
            scrollDiv.style.left = scrollOffset + "px";
        }
        scrollToLeft(pageWidth);
    }
}

function scrollToRight(toScroll)
{
  if (toScroll > 0) {
    var scrollDiv = document.getElementById("scrollArea");
    var nextScroll;
    var scrollSize = toScroll;    
    if (scrollSize > maxScrollingSize)
      scrollSize = maxScrollingSize;

    scrollOffset = scrollOffset - scrollSize;
    scrollDiv.style.left = scrollOffset + "px";
    nextScroll = toScroll - scrollSize;
    setTimeout("scrollToRight("+nextScroll+")",scrollingTimeOffset);
  } else {
    currentDisplayedPage--;
    if (currentDisplayedPage <= 0)
      currentDisplayedPage = numPagesToScroll;
    savePageState();
    scrolling = false;
    if (scrollerControlerDisplayed == true)
      updateScrollerControl();
  }
}

function scrollToLeft(toScroll)
{
  if (toScroll > 0) {
    var scrollDiv = document.getElementById("scrollArea");
    var nextScroll;
    var scrollSize = toScroll;    
    if (scrollSize > maxScrollingSize)
      scrollSize = maxScrollingSize;

    scrollOffset = scrollOffset + scrollSize;
    scrollDiv.style.left = scrollOffset + "px";
    nextScroll = toScroll - scrollSize;
    setTimeout("scrollToLeft("+nextScroll+")",scrollingTimeOffset);
  } else {
    currentDisplayedPage++;
    if (currentDisplayedPage > numPagesToScroll + 1)
      currentDisplayedPage = currentDisplayedPage - numPagesToScroll;
    savePageState();
    scrolling = false;
    if (scrollerControlerDisplayed == true)
      updateScrollerControl();
  }
}

function updateScrollerControl() {
    var currentPageDot = currentDisplayedPage;
    if (currentPageDot > numPagesToScroll)
        currentPageDot = 1;

    if (selectedPageDot == currentPageDot)
        return;
    var prevDot = document.getElementById("pageDot" + selectedPageDot);
    var currDot = document.getElementById("pageDot" + currentPageDot);
    prevDot.src = picsDirectory + 'scroller/dot.png';
    currDot.src = picsDirectory + 'scroller/dotSelected.png';
    selectedPageDot = currentPageDot;
}

function savePageState() {
    if (savingStateEnabled == true) {
        createCookie('offset', scrollOffset, 1);
        createCookie('displayedPage', currentDisplayedPage, 1);
    }
}

function initPageState() {
    var offset = readCookie('offset');
    var displayedPage = readCookie('displayedPage');
    if (offset != null && displayedPage != null) {
        var scrollDiv = document.getElementById("scrollArea");
        scrollOffset = parseInt(offset);
        currentDisplayedPage = parseInt(displayedPage);
        scrollDiv.style.left = scrollOffset + "px";
    } else {
        scrollOffset = 0;
        currentDisplayedPage = 1;
    }
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

