// slider functions - including ONBLUR and ONKEYUP for sliders working with the sliders...


//**************************************
// general slider functions - NECESSARY for sliders
// REMEMBER:  need to set "defvalue" in the 'slider-value' input tag
//**************************************
function setSliderValue(slider, valuetoset, vid) {
	// due to onChange code above we need this or 
	// a 0 will be put in the text box when you delete the value
	if (valuetoset == '') return;
	if (isNaN(valuetoset)) { 
		dv=parseInt(getAttValue(vid,"defvalue"));
		setSliderValue(slider, dv, vid);
	}
	else {
		slider.setValue(valuetoset);
		$(vid).value=valuetoset;
	}

}
function chkSliderOnBlur(slider, valuetoset, vid) {
	// due to onChange code above we need this or 
	// a 0 will be put in the text box when you delete the value
	dv=parseInt(getAttValue(vid,"defvalue"));
	vmin=parseInt(getAttValue(vid,"v_min"));
	vmax=parseInt(getAttValue(vid,"v_max"));

	if ((valuetoset < vmin) || (valuetoset > vmax) || (isNaN(valuetoset))) {
		$(vid).value=dv;
		setSliderValue(slider, dv, vid);
	}
	else setSliderValue(slider,parseInt(valuetoset),vid);
	return;
}
function getAttValue(id,att) {
	obj=$(id);
	var dv=obj.getAttribute(att);
	return dv;
}

function buildSliderTrack(parElem,tagid,w,hid,imgclass) {
	e = 
	Builder.node('div',{id:'',style:'float:left;position:relative'},[
		Builder.node('div',{id:tagid,style:'width:'+w+'px; height:9px;margin:2px 0;position:relative'},[
			Builder.node('div',{id:'track-left'}),
			Builder.node('div',{id:hid,className:'selected',style:'width: 19px; height: 20px; cursor:move; position: absolute; '},[
				Builder.node('img',{className:imgclass,src:'images/blue_mac_slider.png',alt:'',style:'left: 0px;position: relative;'})
			])
		])
	]);
	$(parElem).appendChild(e);
	return e;
}

function buildSliderInput(parElem,tagid,dv,vmin,vmax,sid,nm,cnames,v) {
	e = 
		Builder.node('input',{id:tagid,type:'text',defvalue:dv,v_min:vmin,v_max:vmax,
			sliderid:sid,name:nm,size:'3',className:cnames,
			value:v,onkeyup:'setSliderValue('+sid+',this.value,this.id);',
			onblur:'chkSliderOnBlur('+sid+', this.value, this.id);'
		});
	$(parElem).appendChild(e);
}

function initSlider(hid,smin,smax,inputid) {
	var s = new Control.Slider(hid, 'track', {
	//	range: $R(smin,smax), alignX: -1,
		range: $R(smin,smax), alignX: -1,
	//	onSlide: function(v) { alert($(inputid).value);alert($(inputid).getValue());$(inputid).value = v.toFixed(); },
	//	onSlide: function(v) { alert(smin);alert(smax);alert($(inputid).getValue()); $(inputid).setAttribute('value', v.toFixed() ); },
	//	onChange: function(v) { $(inputid).value = v.toFixed(); }
	//	onChange: function(v) { $(inputid).setAttribute('value', v.toFixed() ); }
		onChange: function(v) { $(inputid).setAttribute('value', v.toFixed() ); },
		onSlide: function(v) {$(inputid).setAttribute('value', v.toFixed() ); },
		});
	return s;
}
