﻿/***************************************************/
/**************   STEFANO'S MAGIC SLIDER **************/
/***************************************************/


var counter = 0;
var stepper = 0;
var objectNumber = 3;
var intervalRightID = 0;
var intervalLeftID = 0;
var Range = 320;     /*tiene conto di un 317 di lunghezza e di un -3 margin left*/
var MaxObjects = 1;
var bRightPressed = false;
var bLeftPressed = false;
var SlidingRightInProgress = false;
var SlidingLeftInProgress = false;
var iSpeed = 9;
var iSlowLimit = 3;




/*** funzioni di inizio movimento ***/
function startSlidingRight(iMax) {
    if (!SlidingRightInProgress) {
        MaxObjects = iMax;
        bRightPressed = true;
        MoveOneStepRight();
    }
}

function startSlidingLeft() {
    if (!SlidingLeftInProgress) {
        bLeftPressed = true;
        MoveOneStepLeft();
    }
}



/*** funzioni di fine movimento ***/
function stopSlidingRight() {
    bRightPressed = false;
}

function stopSlidingLeft() {
    bLeftPressed = false;
}



/*** spostamento di uno scatto a destra ***/
function MoveOneStepRight() {
    if (objectNumber < MaxObjects) {
        document.getElementById('aAdsLeft').disabled = true;
        counter = 0;
        objectNumber++;
        intervalRightID = setInterval("SlidingRight()", 20);
    }
}

/*** spostamento di uno scatto a sinistra ***/
function MoveOneStepLeft() {
    if (objectNumber > 3) {
        document.getElementById('aAdsRight').disabled = true;
        counter = 0;
        objectNumber--;
        intervalLeftID = setInterval("SlidingLeft()", 20);
    }
}




/*** funzioni di spostamento generale  ***/
function SlidingRight() {
    var divScroll = document.getElementById('divAdsScroller');
    SlidingRightInProgress = true;
    var iStart = divScroll.style.marginLeft ? parseInt(divScroll.style.marginLeft) : -3;

    var diff = Range - counter;
    stepper = Math.ceil(diff / iSpeed);
    if (stepper < iSlowLimit) {
        stepper = iSlowLimit;
        if (counter + stepper > Range)
            stepper = Range - counter;
    }
    counter += stepper;

    if (counter < Range)
        divScroll.style.marginLeft = (iStart - stepper) + "px";
    else {
        SlidingRightInProgress = false;
        document.getElementById('aAdsLeft').disabled = false;
        CheckEndSliding();
        clearInterval(intervalRightID);

        if (bRightPressed)   // se sto ancora premendo il pulsante, faccio compiere un altro scatto
            MoveOneStepRight(MaxObjects);
    }
}


function SlidingLeft(direction) {
    var divScroll = document.getElementById('divAdsScroller');
    SlidingLeftInProgress = true;
    var iStart = divScroll.style.marginLeft ? parseInt(divScroll.style.marginLeft) : -3;

    var diff = Range - counter;
    stepper = Math.ceil(diff / iSpeed);
    if (stepper < iSlowLimit) {
        stepper = iSlowLimit;
        if (counter + stepper > Range)
            stepper = Range - counter;
    }
    counter += stepper;

    if (counter < Range)
        divScroll.style.marginLeft = (iStart + stepper) + "px";
    else {
        SlidingLeftInProgress = false;
        document.getElementById('aAdsRight').disabled = false;
        CheckEndSliding();
        SelectPreviousOrNextObject();
        clearInterval(intervalLeftID);

        if (bLeftPressed)      // se sto ancora premendo un pulsante, faccio compiere un altro scatto
            MoveOneStepLeft();
    }
}





function CheckEndSliding() {
    if (objectNumber == 3)
        document.getElementById('aAdsLeft').className = 'aAdsLeft_end';
    else
        document.getElementById('aAdsLeft').className = 'aAdsLeft';

    if (objectNumber == MaxObjects)
        document.getElementById('aAdsRight').className = 'aAdsRight_end';
    else
        document.getElementById('aAdsRight').className = 'aAdsRight';
}





