(function($){
$.fn.extend({
sliderAccess: function(options){
options=options||{};
options.touchonly=options.touchonly!==undefined? options.touchonly:true;
if(options.touchonly===true&&!("ontouchend" in document)){
return $(this);
}
return $(this).each(function(i,obj){
var $t=$(this),
o=$.extend({},{
where: 'after',
step: $t.slider('option','step'),
upIcon: 'ui-icon-plus',
downIcon: 'ui-icon-minus',
text: false,
upText: '+',
downText: '-',
buttonset: true,
buttonsetTag: 'span',
isRTL: false
}, options),
$buttons=$('<'+ o.buttonsetTag +' class="ui-slider-access">'+
'<button data-icon="'+ o.downIcon +'" data-step="'+ (o.isRTL? o.step:o.step*-1) +'">'+ o.downText +'</button>'+
'<button data-icon="'+ o.upIcon +'" data-step="'+ (o.isRTL? o.step*-1:o.step) +'">'+ o.upText +'</button>'+
'</'+ o.buttonsetTag +'>');
$buttons.children('button').each(function(j, jobj){
var $jt=$(this);
$jt.button({
text: o.text,
icons: { primary: $jt.data('icon') }})
.click(function(e){
var step=$jt.data('step'),
curr=$t.slider('value'),
newval=curr +=step*1,
minval=$t.slider('option','min'),
maxval=$t.slider('option','max'),
slidee=$t.slider("option", "slide")||function(){},
stope=$t.slider("option", "stop")||function(){};
e.preventDefault();
if(newval < minval||newval > maxval){
return;
}
$t.slider('value', newval);
slidee.call($t, null, { value: newval });
stope.call($t, null, { value: newval });
});
});
$t[o.where]($buttons);
if(o.buttonset){
$buttons.removeClass('ui-corner-right').removeClass('ui-corner-left').buttonset();
$buttons.eq(0).addClass('ui-corner-left');
$buttons.eq(1).addClass('ui-corner-right');
}
var bOuterWidth=$buttons.css({
marginLeft: ((o.where==='after'&&!o.isRTL)||(o.where==='before'&&o.isRTL)? 10:0),
marginRight: ((o.where==='before'&&!o.isRTL)||(o.where==='after'&&o.isRTL)? 10:0)
}).outerWidth(true) + 5;
var tOuterWidth=$t.outerWidth(true);
$t.css('display','inline-block').width(tOuterWidth-bOuterWidth);
});
}});
})(jQuery);