var position = 0;
var goal = 0;
var auto = 0;
var slideSize = 500;

function slide(target) {
    if(position == goal) {
        slider = document.getElementById('slideshow').getElementsByTagName('ul')[0];
        end = (slider.getElementsByTagName('li').length * slideSize);
        if(target == 'next') {
            target = position + slideSize;
            if(target >= end) {
                target = 0;
            }
        }
        if(target == 'prev') {
            target = position - slideSize;
            if(target < 0) {
                target = end - slideSize;
            }
        }
        goal = target;
        original_difference = goal - position;
        breaking_point = Math.abs(original_difference) / 5;
        speed = Math.round(original_difference / 20);
        document.getElementById('slide_menu_' + Math.round(position / slideSize)).src='http://image.loebeshop.dk/x/x/scale/p/rotation/slider_dot.gif';
        document.getElementById('slide_menu_' + (target / slideSize)).src='http://image.loebeshop.dk/x/x/scale/p/rotation/slider_dot_selected.gif';
        smooth_move();
    }
}

function smooth_move() {
    if(position != goal) {
        difference = goal - position;
        distance = Math.abs(difference);
        if(distance <= breaking_point) {
            move = Math.round(speed * (distance / breaking_point)); 
            if(move == 0) {
                if(difference > 0) {
                    move = 1;
                } else {
                    move = -1;
                }
            }
            position += move;
        } else { 
            position += speed;
        }
        slider.style.right = position + 'px';
        setTimeout("smooth_move();", 15);
    }
}

function autoSlide() {
    if(auto == 1) {
        slide('next');
        setTimeout("autoSlide();", 5000);
    }
}

function startAutoSlide() {
    auto = 1;
    setTimeout("autoSlide();", 5000);
}

function stopAutoSlide() {
    auto = 0;
}

function setSlideSize(size) {
    slideSize = size;
}
