﻿/***************************************************/
/**************   STEFANO'S MAGIC SLIDER **************/
/***************************************************/


var counter = 0;
var stepper = 0;
var objectNumber = 2;
var intervalRightID = 0;
var intervalLeftID = 0;
var Range = 276;
var MaxObjects = 1;
var bRightPressed = false;
var bLeftPressed = false;
var SlidingRightInProgress = false;
var SlidingLeftInProgress = false;
var iSpeed = 6;
var iSlowLimit = 4;




/*** 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('aProdottiLeft').disabled = true;
        counter = 0;
        DeselectCurrentObject();
        objectNumber++;
        intervalRightID = setInterval("SlidingRight()", 20);
    }
}

/*** spostamento di uno scatto a sinistra ***/
function MoveOneStepLeft() {
    if (objectNumber > 1) {
        document.getElementById('aProdottiRight').disabled = true;
        counter = 0;
        DeselectCurrentObject();
        objectNumber--;
        intervalLeftID = setInterval("SlidingLeft()", 20);
    }
}




/*** funzioni di spostamento generale  ***/
function SlidingRight() {
    var divScroll = document.getElementById('divProdottiScroller');
    SlidingRightInProgress = true;
    var iStart = divScroll.style.marginLeft ? parseInt(divScroll.style.marginLeft) : 0;

    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('aProdottiLeft').disabled = false;
        CheckEndSliding();
        SelectPreviousOrNextObject();
        clearInterval(intervalRightID);
        
        if (bRightPressed)   // se sto ancora premendo il pulsante, faccio compiere un altro scatto
            MoveOneStepRight(MaxObjects);
    }
}


function SlidingLeft(direction) {
    var divScroll = document.getElementById('divProdottiScroller');
    SlidingLeftInProgress = true;
    var iStart = divScroll.style.marginLeft ? parseInt(divScroll.style.marginLeft) : 0;

    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('aProdottiRight').disabled = false;
        CheckEndSliding();
        SelectPreviousOrNextObject();
        clearInterval(intervalLeftID);

        if (bLeftPressed)      // se sto ancora premendo un pulsante, faccio compiere un altro scatto
            MoveOneStepLeft();
    }
}



/**** funzioni per selezionare l'oggetto successivo o precedente  ****/
function DeselectCurrentObject() {
    document.getElementById('divObjectTitle_' + objectNumber).className = 'divObjectTitle';
    document.getElementById('aProdottoVert_' + objectNumber).className = 'aProdottoVert';
}

function SelectPreviousOrNextObject() {
    document.getElementById('divObjectTitle_' + objectNumber).className = 'divObjectTitle_sel';
    document.getElementById('aProdottoVert_' + objectNumber).className = 'aProdottoVert_sel';
}



function CheckEndSliding() {
    if (objectNumber == 1)
        document.getElementById('aProdottiLeft').className = 'aProdottiLeft_end';
   else
       document.getElementById('aProdottiLeft').className = 'aProdottiLeft';

   if (objectNumber == MaxObjects)
       document.getElementById('aProdottiRight').className = 'aProdottiRight_end';
   else
       document.getElementById('aProdottiRight').className = 'aProdottiRight';
}





