function neverSliderBar(id,callback) { with(this) {
 this.sldID        		= id;
 this.sldObj       		= null;
 this.instance     		= this;
 this.barStyle    		= "sliderBar";
 this.objStyle     		= "sliderObj";
 this.sldBar       		= null;
 this.sldBarRight  		= null;
 this.sldMoved     		= false;
 this.sldClicked   		= false;
 this.sldRightMoved     = false;
 this.sldRightClicked   = false;
 this.callback     		= callback;
 this.sldObjOffset 		= null;
 this.sldBarOffset 		= null;
 this.sldBarRightOffset = null;
 this.sldMax       		= 100;
 this.sldIncrement 		= 5;
 this.fineTuning 		= 1;
 this.sldPoint     		= 0;
 this.sldRightPoint     = 0;
 this.leftPoint  		= null;
 this.rightPoint		= null;
 this.leftValue  		= null;
 this.rightValue		= null;
 this.submitForm     	= null;
}};
neverSliderBar.prototype.setObjStyle=function(classname) { with(this)
{
 objStyle=classname;
}};
neverSliderBar.prototype.setMaxPoint=function(maxpoint) { with(this)
{
 sldMax=maxpoint;
}};
neverSliderBar.prototype.setLeftPoint=function(left_point) { with(this)
{
 leftPoint=left_point;
}};
neverSliderBar.prototype.setRightPoint=function(right_point) { with(this)
{
 rightPoint=right_point;
}};
neverSliderBar.prototype.setLeftValue=function(left_value) { with(this)
{
 leftValue=left_value;
}};
neverSliderBar.prototype.setRightValue=function(right_value) { with(this)
{
 rightValue=right_value;
}};
neverSliderBar.prototype.setSubmitForm=function(f) { with(this)
{
 submitForm=f;
}};
neverSliderBar.prototype.setIncrement=function(increment) { with(this)
{
 if (isNaN(parseInt(increment))) return;
 sldIncrement = increment;
}};
neverSliderBar.prototype.setFineTuning=function(tuning) { with(this)
{
 if (isNaN(parseInt(tuning))) return;
 fineTuning = tuning;
}};
neverSliderBar.prototype.getIncrement=function() { with(this)
{
 return sldIncrement;
}};
neverSliderBar.prototype.setBarStyle=function(classname) { with(this)
{
 barStyle=classname;
}};

neverSliderBar.prototype.getSldPoint=function() { with(this)
{
 sldBarOffset = Offset(sldBar);
 sldObjOffset = Offset(sldObj);
 sldBarRightOffset = Offset(sldBarRight);
 var sldObjwidth = sldObjOffset.w-sldBarOffset.w-sldBarRightOffset.w;
 var sldBarwidth = sldBarOffset.l-sldObjOffset.l;
 var sldLocation = parseInt(sldBarwidth/sldObjwidth*sldMax);
 return sldLocation;
}};

neverSliderBar.prototype.getSldRightPoint=function() { with(this)
{
 sldBarRightOffset = Offset(sldBarRight);
 sldBarOffset = Offset(sldBar);
 sldObjOffset = Offset(sldObj);
 var sldObjwidth = sldObjOffset.w-sldBarRightOffset.w-sldBarOffset.w;
 var sldBarRightwidth = sldBarRightOffset.l-sldObjOffset.l-sldBarOffset.w;
 
 var sldLocation = parseInt(sldBarRightwidth/sldObjwidth*sldMax);
 return sldLocation;
}};

neverSliderBar.prototype.setSldPoint=function(point) { with(this)
{
 if (isNaN(parseInt(point))) return;
 if (point<0) point=0;
 if (point>sldMax) point=sldMax;
 var sldObjwidth  = sldObjOffset.w-sldBarOffset.w-sldBarRightOffset.w;
 sldPoint  = parseInt(point);
 var p = sldPoint*sldObjwidth/sldMax+sldObjOffset.l+fineTuning;
 sldBar.style.left = p + 'px';
 instance.getSldPoint();
}};

neverSliderBar.prototype.setSldRightPoint=function(point) { with(this)
{
 if (isNaN(parseInt(point))) return;
 if (point<0) point=0;
 if (point>sldMax) point=sldMax;
 var sldObjwidth  = sldObjOffset.w-sldBarRightOffset.w-sldBarOffset.w;
 sldPoint  = parseInt(point);
 var p = sldPoint*sldObjwidth/sldMax+sldObjOffset.l+sldBarOffset.w+fineTuning;
 sldBarRight.style.left = p + 'px';
 instance.getSldRightPoint();
}};

neverSliderBar.prototype.init=function() { with(this)
{
  sldBar     = document.createElement("DIV");
  sldBarRight     = document.createElement("DIV");
  sldBar.id  = sldID + '__Bar';
  sldBarRight.id  = sldID + '__BarRight';

 //-------------------------------------------------------------------
 sldObj           	= document.getElementById(sldID);
 sldObj.parentNode.appendChild(sldBarRight);
 sldObj.parentNode.appendChild(sldBar);
 sldObj.className 	= objStyle;
 sldBarOffset     	= Offset(sldBar);
 sldBarRightOffset  = Offset(sldBarRight);
 sldObjOffset     	= Offset(sldObj);
 //-------------------------------------------------------------------
 sldBar.className       = barStyle;
 sldBar.style.position  = "absolute";
 sldBar.style.top       = sldObjOffset.t + 'px';
 sldBar.style.height    = sldObjOffset.h + 'px';
 sldBar.style.left      = sldObjOffset.l + 'px';
 instance.fixed(); 
  //-------------------------------------------------------------------
 sldBarRight.className       = barStyle;
 sldBarRight.style.position  = "absolute";
 sldBarRight.style.top       = sldObjOffset.t + 'px';
 sldBarRight.style.height    = sldObjOffset.h + 'px';
 sldBarRight.style.left      = sldObjOffset.l+sldObjOffset.w - sldBarOffset.w + 'px';
 instance.fixed();

 //-------------------------------------------------------------------
 sldBar.onmousedown = function(e) {instance.handleSldDragStart(e)};
 if (document.all)
 {
	 sldBar.onmousemove = function(e) {instance.handleSldDrag(e)};
	 sldBar.onmouseup   = function(e) {instance.handleSldDragEnd(e)};
 }
 
 //-------------------------------------------------------------------
 sldBarRight.onmousedown = function(e) {instance.handleSldRightDragStart(e)};
 if (document.all)
 {
	 sldBarRight.onmousemove = function(e) {instance.handleSldRightDrag(e)};
	 sldBarRight.onmouseup   = function(e) {instance.handleSldRightDragEnd(e)};
 }
 
}};
neverSliderBar.prototype.fixed=function() { with(this)
{
 sldBarOffset = Offset(sldBar);
 sldBarRightOffset = Offset(sldBarRight);
 sldObjOffset = Offset(sldObj);
 //-------------------------------------------------------------------
 sldBar.style.top       = sldObjOffset.t + 'px';
 sldBar.style.height    = sldObjOffset.h + 'px';
 
  //-------------------------------------------------------------------
 sldBarRight.style.top       = sldObjOffset.t + 'px';
 sldBarRight.style.height    = sldObjOffset.h + 'px';
 
 //-------------------------------------------------------------------
 var p = sldBarOffset.l;
 if (p < sldObjOffset.l) sldBar.style.left=sldObjOffset.l + 'px';
 var w = sldBarRightOffset.l-sldBarOffset.w;
 if (p > w) sldBar.style.left = w + 'px';
 window.setTimeout(function(){instance.fixed()},10)
}};

//-------------sldBar Event
neverSliderBar.prototype.handleSldDragStart=function(e) { with(this)
{
 if (document.all) 
 {
 	sldBar.setCapture();
 }
 else
 {
 	document.onmousemove = function(e) {instance.handleSldDrag(e)};
 	document.onmouseup   = function(e) {instance.handleSldDragEnd(e)};
 }
 sldMoved = true;
 e = e||event
 sldBar.onlosecapture = function(){sldMoved=false;};
 sldPoint = e.clientX-sldBarOffset.l;
}};
neverSliderBar.prototype.handleSldDrag=function(e) { with(this)
{
 if(!sldMoved) return;
 e = e||event
 var p = e.clientX-sldPoint;
 if (p <= sldObjOffset.l) {
  sldBar.style.left = sldObjOffset.l + 'px';
 }
 else if (p >= (sldBarRightOffset.l-sldBarOffset.w)) {
  sldBar.style.left = sldBarRightOffset.l-sldBarOffset.w + 'px';
 }
 else sldBar.style.left = p + 'px';
 instance.callback();
 instance.getSldPoint();
}};
neverSliderBar.prototype.handleSldDragEnd=function(e) { with(this)
{ 
 if (document.all) 
 {
 	sldBar.releaseCapture();
 }
else
{
	document.onmousemove = null;
	document.onmouseup   = null; 		
}
 sldBarRight.focus();
 sldMoved=false;
 slide_sumit(); 
}};

//---------------sldRightBar event
neverSliderBar.prototype.handleSldRightDragStart=function(e) { with(this)
{
 if (document.all) 
 {
 	sldBarRight.setCapture();
 }
 else{
 	document.onmousemove = function(e) {instance.handleSldRightDrag(e)};
 	document.onmouseup   = function(e) {instance.handleSldRightDragEnd(e)};
}
 sldRightMoved = true;
 sldBarRight.onlosecapture = function(){sldRightMoved=false;};
 e = e||event
 sldRightPoint = e.clientX-sldBarRightOffset.l;
}};
neverSliderBar.prototype.handleSldRightDrag=function(e) { with(this)
{
 if(!sldRightMoved) return;
 e = e||event
 var p = e.clientX-sldRightPoint;
 if (p <= sldBarOffset.l + sldBarOffset.w) {
  sldBarRight.style.left = sldBarOffset.l + sldBarOffset.w + 'px';
 }
 else if (p >= (sldObjOffset.l+sldObjOffset.w-sldBarRightOffset.w)) {
  sldBarRight.style.left = sldObjOffset.l+sldObjOffset.w-sldBarRightOffset.w + 'px';
 }
 else sldBarRight.style.left = p + 'px';
 instance.callback();
 instance.getSldPoint();
}};
neverSliderBar.prototype.handleSldRightDragEnd=function(e) { with(this)
{
 if (document.all) 
 {
 	sldBarRight.releaseCapture();
 }
 else
	{
		document.onmousemove = null;
		document.onmouseup   = null; 		
	}
 sldBar.focus();
 sldRightMoved=false;
 slide_sumit();
}};

function Offset(e) {
 var t = e.offsetTop;
 var l = e.offsetLeft;
 var w = e.offsetWidth;
 var h = e.offsetHeight;
 while(e=e.offsetParent) {
  t+=e.offsetTop;
  l+=e.offsetLeft;
 }
 return { t:t, l:l, w:w, h:h }
}

