/*********
 *
 * Variables globales
 *
 **/
  //indica si se está moviendo el slide
  var loop = 0;
  //indica si se está haciendo un prev o un next
  var sliding = 0;
  //indica donde comenzó el prev o el next
  var slideInit = 0;
  //permite definir el tamaño de las imágenes para el prev y el next
  var _IMAGES_SIZE = 100;
  //tiempo que pasa entre un movimiento y el siguiente
  var _TIME_STEP = 3;
  //desplazamiento horizontal por paso
  var _H_STEP = 3;
  //desplazamiento vertical por paso
  var _V_STEP = 3;

//Recupera un elemento por su ID
function getById(idObj){
  return document.getElementById(idObj);
}

//Mueve el layer lyr a las posiciones x, y.
function shiftTo(lyr, x, y) {
  var theLayer = getById(lyr);
  if(theLayer){
    theLayer.style.left =  x + "px"; 
    theLayer.style.top = y + "px";
  }
}

//Realiza un movimiento de diez pixels a la izquierda sobre el layer identificado por "idLayer"
function slideLeft(idLayer){
  if(getById(idLayer)){
    var x = getById(idLayer).style.left;
/*
//DEBUG
  document.getElementById('lax').innerHTML = x + "<br>" + "width=" + getById(idLayer).clientWidth;
//DEBUG
*/
    if(x.indexOf('px') != 0){
      x = x.substring(0, x.length-2);
      x = parseInt(x);
    }
    if(x >= 0){
      loop = 0;
      return false;
    }
    shiftTo(idLayer, x + _H_STEP, 0);
    if(loop == 1){
      setTimeout('slideLeft("' + idLayer + '")', _TIME_STEP);
    }
  }
}

//Realiza un movimiento de diez pixels a la derecha sobre el layer identificado por "idLayer"
function slideRight(idLayer){
  if(getById(idLayer)){
    var x = getById(idLayer).style.left;
/*
//DEBUG
  document.getElementById('lax').innerHTML = x + "<br>" + "width=" + getById(idLayer).clientWidth;
//DEBUG
*/
    if(x.indexOf('px') != 0){
      x = x.substring(0, x.length-2);
    }
    //parar si se llega al final
    if(parseInt(x) <= -(getById(idLayer).clientWidth - 100)){
      loop = 0;
      return false;
    }
    shiftTo(idLayer, x - _H_STEP, 0);
    if(loop == 1){
      setTimeout('slideRight("' + idLayer + '")', _TIME_STEP);
    }
  }
}

//Realiza un movimiento de diez pixels a la derecha sobre el layer identificado por "idLayer"
function slideDown(idLayer){
  if(getById(idLayer)){
    var y = getById(idLayer).style.top;

//DEBUG
//  document.getElementById('lax').innerHTML = y + "<br>" + "heighty=" + getById(idLayer).clientHeight;
//DEBUG
    if(y.indexOf('px') != 0){
      y = y.substring(0, y.length-2);
    }
    //parar si se llega al final
    //if(parseInt(y) <= -(getById(idLayer).clientHeight - 100)){
	if(parseInt(y) <= -(getById(idLayer).clientHeight - 223)){
      loop = 0;
      return false;
    }
    shiftTo(idLayer, 0, y - _V_STEP);
    if(loop == 1){
      setTimeout('slideDown("' + idLayer + '")', _TIME_STEP);
    }
  }
}


function slideUp(idLayer){
  if(getById(idLayer)){
    var y = getById(idLayer).style.top;
//DEBUG
//  document.getElementById('lax').innerHTML = y + "<br>" + "height=" + getById(idLayer).clientHeight;
//DEBUG

    if(y.indexOf('px') != 0){
      y = parseInt(y.substring(0, y.length-2));
    }
    //parar si se llega al final
    if(parseInt(y) >= 0){
      loop = 0;
      return false;
    }
    shiftTo(idLayer, 0, y + _V_STEP);
    if(loop == 1){
      setTimeout('slideUp("' + idLayer + '")', _TIME_STEP);
    }
  }
}
//Mueve autómaticamente el layer _IMAGES_SIZE píxeles a la derecha
function next(idLayer){
  if(getById(idLayer)){
    var theLayer = getById(idLayer);
    if(sliding == 0){
      if(!theLayer.style.left){
        theLayer.style.left = 0+"px";
      }
      slideInit = parseInt(theLayer.style.left.substring(0, theLayer.style.left.length-2));
      if(slideInit <= -(theLayer.clientWidth - _IMAGES_SIZE)){
        return;
      }
      sliding = 1;
      shiftTo(idLayer, slideInit, 0);
      setTimeout("next('"+idLayer+"')", _TIME_STEP);
    }else{
      var x = parseInt(theLayer.style.left.substring(0, theLayer.style.left.length-2));
/*
//DEBUG
  document.getElementById('lax').innerHTML = "x="+Math.abs(x) + "<br>" + "width=" + getById(idLayer).clientWidth + 
  "slideInit="+slideInit+" slideInit + _IMAGES_SIZE="+Math.abs((slideInit + _IMAGES_SIZE));
//DEBUG
*/
      if(Math.abs(x) >= Math.abs((Math.abs(slideInit) + _IMAGES_SIZE))){
        sliding = 0;
        slideInit = 0;
      }else{
        shiftTo(idLayer, x - 1, 0);
        setTimeout("next('"+idLayer+"')", _TIME_STEP);
      }
    }
  }
}

//Mueve autómaticamente el layer _IMAGES_SIZE píxeles a la izquierda
function prev(idLayer){
    if(getById(idLayer)){
    var theLayer = getById(idLayer);
    if(sliding == 0){
      if(!theLayer.style.left){
        theLayer.style.left = 0+"px";
      }
      slideInit = parseInt(theLayer.style.left.substring(0, theLayer.style.left.length-2));
      if(Math.abs(slideInit) < _IMAGES_SIZE){
        return;
      }
      sliding = 1;
      shiftTo(idLayer, slideInit, 0);
      setTimeout("prev('"+idLayer+"')", _TIME_STEP);
    }else{
      var x = parseInt(theLayer.style.left.substring(0, theLayer.style.left.length-2));
/*
//DEBUG
  document.getElementById('lax').innerHTML = "x="+Math.abs(x) + "<br>" + "width=" + getById(idLayer).clientWidth + 
  "slideInit="+slideInit+" slideInit + _IMAGES_SIZE="+Math.abs((slideInit + _IMAGES_SIZE));
//DEBUG
*/
      if(Math.abs(x) <= Math.abs((Math.abs(slideInit) - _IMAGES_SIZE))){
        sliding = 0;
        slideInit = 0;
      }else{
        shiftTo(idLayer, x + 1, 0);
        setTimeout("prev('"+idLayer+"')", 10);
      }
    }
  }
}