/* - - - - - - - - - - - - - - - - - - - - - - -
 JavaScript
 vendredi 24 juillet 2009 11:54:51
 HAPedit 3.1.11.111
 - - - - - - - - - - - - - - - - - - - - - - - */
//---------------------------------+
// CARPE S l i d e r 1.3 |
// 2005 - 12 - 10 |
// By Tom Hermansson Snickars |
// Copyright CARPE Design |
// http://carpe.ambiprospect.com/ |
//---------------------------------+

var indexFromSlider = 0;
// carpeGetElementByID: Cross-browser version of "document.getElementById()"
function carpeGetElementById(element)             /* utile */
{
   if (document.getElementById) { element = document.getElementById(element); }
   else if (document.all) { element = document.all[element]; }
   else {element = null; }
   return element;
}
// carpeLeft: Cross-browser version of "element.style.left"
function carpeLeft(elmnt, pos)
{
   if (!(elmnt = carpeGetElementById(elmnt))) return 0;
   return crossbrw_setLeft(elmnt,pos);
}
function crossbrw_setLeft(elmnt, pos)   /* utile */
{
   if (elmnt.style && (typeof(elmnt.style.left) == 'string')) {
      if (typeof(pos) == 'number') { elmnt.style.left = pos + 'px'; }
      else
      {
          pos = parseInt(elmnt.style.left);
          if (isNaN(pos)) { pos = 0; }
      }
   }
   else if (elmnt.style && elmnt.style.pixelLeft) {
        if (typeof(pos) == 'number') { elmnt.style.pixelLeft = pos; }
        else { pos = elmnt.style.pixelLeft; }
   }
   return pos;
}
// carpeTop: Cross-browser version of "element.style.top"
function carpeTop(elmnt, pos)
{
   if (!(elmnt = carpeGetElementById(elmnt))) { return 0; }
   return crossbrw_setTop(elmnt,pos);
}
function crossbrw_setTop(elmnt, pos)
{
   if (elmnt.style && (typeof(elmnt.style.top) == 'string')) {
      if (typeof(pos) == 'number') { elmnt.style.top = pos + 'px'; }
      else {
        pos = parseInt(elmnt.style.top);
        if (isNaN(pos)) { pos = 0; }
      }
   }
   else if (elmnt.style && elmnt.style.pixelTop) {
        if (typeof(pos) == 'number') { elmnt.style.pixelTop = pos; }
        else { pos = elmnt.style.pixelTop; }
   }
   return pos;
}

// moveSlider: Handles slider and display while dragging
function moveSlider(evnt)
{
   var evnt = (!evnt) ? window.event : evnt; // The mousemove event
   if (mouseover)// Only if slider is dragged
   {
       x = pxLeft + evnt.screenX - xCoord; // Horizontal mouse position relative to allowed slider positions
       y = pxTop + evnt.screenY - yCoord; // Horizontal mouse position relative to allowed slider positions
       if (x > xMax) x = xMax // Limit horizontal movement
       if (x < 0) x = 0 // Limit horizontal movement
       if (y > yMax) y = yMax // Limit vertical movement
       if (y < 0) y = 0 // Limit vertical movement

       carpeLeft(sliderObj.id, x);
       carpeTop(sliderObj.id, y);

       var i = Math.round(sliderObj.valCount*(x + y)/sliderObj.pxLen);
       indexFromSlider = i;

       var v = fromVal;
       if(i==sliderObj.valCount) {
          v += sliderObj.pxLen * sliderObj.scale;
       } else if(i!=0) {
          v += i * (sliderObj.pxLen/sliderObj.valCount) * sliderObj.scale ;
       }
       onMoveSliderCallback(sliderObj,v);
       return false
   }
   return
}

// moveSlider: Handles the start of a slider move.
function slide(evnt,orientation)
{
 //var display = "display_"+slider_id;
 if (!evnt) evnt = window.event;
    sliderObj = (evnt.target) ? evnt.target : evnt.srcElement; // Get the activated slider element.
    //sliderObj = carpeGetElementById(sliderObj.id);

    if (orientation == 'vertical') // Set limits and scale for vertical sliders.
    {
      fromVal = sliderObj.fromVal+sliderObj.scale*sliderObj.pxLen;
      xMax = 0
      yMax = sliderObj.pxLen
      sliderObj.scale = -sliderObj.scale // Invert scale for vertical sliders. "Higher is more."
    }
    else// Set limits for horizontal sliders.
    {
      fromVal = sliderObj.fromVal;
      xMax = sliderObj.pxLen
      yMax = 0
    }
   //pxLeft = crossbrw_getLeft(sliderObj); // Sliders horizontal position at start of slide.
   //pxTop = crossbrw_getTop(sliderObj) // Sliders vertical position at start of slide.
   pxLeft = carpeLeft(sliderObj.id); // Sliders horizontal position at start of slide.
   pxTop = carpeTop(sliderObj.id) // Sliders vertical position at start of slide.

   xCoord = evnt.screenX // Horizontal mouse position at start of slide.
   yCoord = evnt.screenY // Vertical mouse position at start of slide.
   mouseover = true
   document.onmousemove = moveSlider // Start the action if the mouse is dragged.
   document.onmouseup = sliderMouseUp // Stop sliding.
}

// sliderMouseup: Handles the mouseup event after moving a slider.
// Snaps the slider position to allowed/displayed value.
function sliderMouseUp()
{
   mouseover = false // Stop the sliding.
   if (document.removeEventListener) { // Remove event listeners from 'document' (Moz&co).
      document.removeEventListener('mousemove', moveSlider,false)
      document.removeEventListener('mouseup', sliderMouseUp,false)
   }
   else if (document.detachEvent) { // Remove event listeners from 'document' (IE&co).
      document.detachEvent('onmousemove', moveSlider)
      document.detachEvent('onmouseup', sliderMouseUp)
   }
   onSliderMouseUpCallback(sliderObj.id);
}



//--- comments in slide() + added initSlider()
function initSlider(sliderObj,length,count,from,to) /* utile */
{
   sliderObj.pxLen = length                         // Le mouvement slider permis en pixels.
   sliderObj.valCount = count ? count - 1 : length  // Le nombre permis de valeurs dans l'intervalle.
   sliderObj.scale = (to-from) / length             // L'échelle de Slider-étalage [le changement de valeur par pixel de mouvement].
   sliderObj.fromVal = from;                        // slider horizontal
}

//added
function setSliderPosFromValue(sliderObj, value)    /* utile */
{
   return crossbrw_setLeft(sliderObj,getSliderPosFromValue(sliderObj,value));  /* function ligne 29 */
}

function getSliderPosFromValue(sliderObj, value)
{
   //var sliderObj = carpeGetElementById(slider_id);
   var pos;
   if(value == sliderObj.fromVal) {
      pos = 0; }
   else if(value == sliderObj.fromVal+sliderObj.pxLen*sliderObj.scale) {
      pos = sliderObj.pxLen; }
   else {
      pos =(value-sliderObj.fromVal)/sliderObj.scale; }
   return pos;
}

function crossbrw_getLeft(elmnt)
{
   var pos;
   if (elmnt.style && (typeof(elmnt.style.left) == 'string')) {
      pos = parseInt(elmnt.style.left);
   } else if (elmnt.style && elmnt.style.pixelLeft) {
      pos = elmnt.style.pixelLeft;
   }
   return pos;
}
function crossbrw_getTop(elmnt)
{
   var pos;
   if (elmnt.style && (typeof(elmnt.style.top) == 'string')) {
      pos = parseInt(elmnt.style.top);
   } else if (elmnt.style && elmnt.style.pixelTop) {
      pos = elmnt.style.pixelTop;
   }
   return pos;
} 