

/*

        Author:		Robbe D. Morris
		Date:		September 22, 2002
		URL:			http://www.robbemorris.com

*/


 function SliderLockClick(nItem)
   {
     
      var oCurImg = document.getElementById('imgSliderLock_' + nItem);

      if (oCurImg.src.indexOf('Slider_Locked') > 0) { oCurImg.src = imgSliderOpen.src;  return true; }
      else { oCurImg.src = imgSliderLocked.src; return true; }
 
      return true;
   }

   function SliderIsLocked(nItem)
   {
      var oCurImg = document.getElementById('imgSliderLock_' + nItem);
      if (oCurImg.src.indexOf('Slider_Locked') > 0) { return true; }
      return false;
   }



   function SliderButtonDown(Idx)
    {
	  try { document.getElementById("imgSliderKnob_" + Idx).style.backgroundColor = SliderBarKnobDownColor;  }
	  catch (e) {}
    }

  function SliderButtonUp(Idx)
  {
      try { document.getElementById("imgSliderKnob_" + Idx).style.backgroundColor = SliderBarKnobColor; }
	  catch (e) {}
  }


    function SliderGrabElement()
   { 

        SliderCurrentElement = event.srcElement; 
        while (SliderCurrentElement.id.indexOf("imgSliderKnob") == -1) 
        { 
            SliderCurrentElement = SliderCurrentElement.parentElement; 
            if (SliderCurrentElement == null) { return } 
         } 
        if (SliderCurrentElement !=  SliderActiveElement) {  SliderActiveElement = SliderCurrentElement;  } 
        SliderCurrentX = (event.clientX + document.body.scrollLeft); 
 
        SliderCurrentIdx = SliderGetNameIndex(SliderCurrentElement.id);
		SliderButtonDown(SliderCurrentIdx);
     
    } 

	function SliderGetNameIndex(sName)
    {
		 
		var oElement = document.getElementById(sName);
        var nNameLength = oElement.id.length;
        var nNameStart = parseFloat(oElement.id.indexOf("_")) + 1;
	 
        return oElement.id.substr(nNameStart, nNameLength - nNameStart);
	}


    function SliderMoveCurrentElement()
   {  
        if (SliderCurrentElement == null) {return; } 

        newX = (event.clientX + document.body.scrollLeft); 
        nDistanceX = (newX - SliderCurrentX); 
        SliderCurrentX = newX; 
        
		var nWeight='0.00';
	    var oSliderRow;
	    var nTmpDistance;
        var oSliderKnob = document.getElementById("imgSliderKnob_" + SliderCurrentIdx);
        var oSliderBar = document.getElementById("divSlider_" + SliderCurrentIdx);
        
	   try
       {

        if (SliderIsLocked(SliderCurrentIdx) == true) { return false; }
        if (SliderCheckLockedItems() == false) { return false; }

        var nSliderKnobOffSet = parseFloat(oSliderKnob.style.pixelLeft);
        var nSliderOffSet = parseFloat(oSliderBar.style.pixelLeft);
    
	    oSliderRow = SliderArrays[SliderCurrentIdx];

        if (nSliderKnobOffSet >= 1) 
       {
          
           if (nSliderKnobOffSet < SliderMaxWidth + SliderMaxBuffer)
           {
			  
			      nDistance = oSliderKnob.style.pixelLeft + nDistanceX;
				  nWeight = SliderConvertWidthToWeight(nDistance);
                  oSliderKnob.style.pixelLeft = nDistance; 
                  oSliderBar.style.width = parseFloat(oSliderKnob.offsetLeft); 
			      document.getElementById("txtSliderWeight_" + SliderCurrentIdx).value = SliderRoundNumber(nWeight,"1");
				  oSliderRow[idxSliderDisplayWeight] = nWeight;
			      SliderArrays[SliderCurrentIdx] = oSliderRow;
			      if (SliderSetOtherSliders() == true) { SliderMoveOtherSliders(); }
			      return false;
           }
       else
           {
		         
			      nWeight = SliderConvertWidthToWeight(SliderMaxWidth);
                  oSliderBar.style.width = SliderMaxWidth;
                  oSliderKnob.style.pixelLeft = nSliderOffSet + parseFloat(oSliderBar.style.width); 
			      document.getElementById("txtSliderWeight_" + SliderCurrentIdx).value = SliderRoundNumber(nWeight,"1");
				  oSliderRow[idxSliderDisplayWeight] = nWeight;
			      SliderArrays[SliderCurrentIdx] = oSliderRow; 
			      SliderDropElement();
			      if (SliderSetOtherSliders() == true) { SliderMoveOtherSliders(); }
				return false;
            }
        }
        else
         {
			 nWeight = SliderConvertWidthToWeight(1);
             oSliderBar.style.width = 1;
             oSliderKnob.style.pixelLeft = nSliderOffSet + 1;
		     document.getElementById("txtSliderWeight_" + SliderCurrentIdx).value = SliderRoundNumber(nWeight,"1");
			 oSliderRow[idxSliderDisplayWeight] = nWeight;
			 SliderArrays[SliderCurrentIdx] = oSliderRow;
			 if (SliderSetOtherSliders() == true) { SliderMoveOtherSliders(); }
			 
          }
           event.returnValue = false; 
        }
        catch (e) { event.returnValue=false;} 

    } 

 




  
 
   function SliderMoveOtherSliders()
   {

      var Idx=0;
      var lArrayLength=0;
      var lLoop=0;
      var lFoundCnt=0;
      var oSliderRow;
	  var nWidth=0;
	  var nWeight=0;
	  var nOffSet=0;
	  var oSliderDIV;
	  var lTotal=0;

      try
	   {

           if (SliderMathOption != SliderMathTypePercent) { return true; }
           lArrayLength = SliderArrays.length;
           if (lArrayLength < 1) { return false; }

           for (lLoop=0; lLoop<lArrayLength; lLoop++)
            {
		  
               oSliderRow = SliderArrays[lLoop];
               Idx = lLoop;
           
               if (oSliderRow[idxSliderDisplay] == true)
               {
       
	              oSliderDIV = document.getElementById('divSlider_' + Idx);
                  lFoundCnt +=1;

			      nWidth = SliderConvertWeightToWidth(oSliderRow[idxSliderDisplayWeight]); 
			               
			      if ((nWidth > SliderMaxWidth) || (nWidth < 0))  {  nWidth = 0; nWeight = SliderConvertWidthToWeight(nWidth);   }
                  else { nWeight = oSliderRow[idxSliderDisplayWeight]; }
                
			      oSliderDIV.style.width=nWidth;
			  
				  nOffSet = parseFloat(oSliderDIV.style.pixelLeft) + parseFloat(oSliderDIV.style.width);
				  
			      if (nWidth == 0) { nOffSet = nOffSet + 1; }

			      document.getElementById("imgSliderKnob_" + Idx).style.pixelLeft = nOffSet;
                 
			      document.getElementById("txtSliderWeight_" + Idx).value = SliderRoundNumber(nWeight,"1");
				  lTotal += nWeight;
              
                 }
	        }
        
	      }
	       catch (exception) 
		  { 
		     if (exception.description == null) { alert("SliderMoveOtherSliders: " + exception.message); }  
		     else {  alert("SliderMoveOtherSliders: " + exception.description); }
		  }




   }
 


   function SliderCheckLockedItems()
   {

      var lArrayLength=0;
      var lLoop=0;
      var lFoundCnt=0;

      try
	   {

           if (SliderMathOption != SliderMathTypePercent) { return true; }
           lArrayLength = SliderArrays.length;
           if (lArrayLength < 1) { return false; }

           for (lLoop=0; lLoop<lArrayLength; lLoop++)
            {

		       oSliderRow = SliderArrays[lLoop];
              
               if (oSliderRow[idxSliderDisplay] == true)
               {
                  if (SliderIsLocked(lLoop) == false) {  lFoundCnt += 1;  }
			   }

            }

	   }
        catch (exception) 
		  { 
		     if (exception.description == null) { alert("SliderCheckLockedItems: " + exception.message); }  
		     else {  alert("SliderCheckLockedItems: " + exception.description); }
		  }
          
		  if (lFoundCnt >1) { return true; }

		  return false;
   }

   
 
   function SliderSaveElements()
   {

      var lArrayLength=0;
      var lLoop=0;
      var oSliderRow;
	  var sKey;
 
   
      try
	  {

        lArrayLength = SliderArrays.length;

    	if (lArrayLength < 1) { return false; }
 
        for (lLoop=0; lLoop<lArrayLength; lLoop++)
       {
		  
           oSliderRow = SliderArrays[lLoop];
    
           if (oSliderRow[idxSliderDisplay] == true)
            {
               oSliderRow[idxSliderDisplayWeight] = document.getElementById("txtSliderWeight_" + lLoop).value;
			   document.getElementById("savSlider_" + oSliderRow[idxSliderDisplayKey]).value = oSliderRow[idxSliderDisplayWeight];
			}
        }
	  }
	  catch (e) {}
   }


    function SliderCheckElement()  { if (SliderCurrentElement!=null) { return false }  } 
    function SliderDropElement()    { SliderSaveElements(); SliderButtonUp(SliderCurrentIdx); 	SliderCurrentElement = null;  } 
    function SliderCursorElement() { if (event.srcElement.id.indexOf("imgSliderKnob") != -1) {  event.srcElement.style.cursor = "hand" } } 
  
    document.onmousedown = SliderGrabElement; 
    document.onmousemove = SliderMoveCurrentElement; 
    document.onmouseup = SliderDropElement; 
    document.onmouseover = SliderCursorElement; 
    document.onselectstart = SliderCheckElement; 
    SliderActiveElement=null;