terom@85: /* terom@85: * Get current value for given head/attr. terom@85: * terom@85: * Returns undefined if no such attr. terom@85: */ terom@83: function dmx_input (head, attr) { terom@83: var value = $('.dmx-input#' + head + '-' + attr).val(); terom@83: terom@83: if (value == undefined ) terom@83: return undefined; terom@83: terom@83: if (value == "") terom@83: return 0; // default terom@83: terom@83: return parseInt(value); terom@83: } terom@83: terom@83: /* terom@85: * Update current output value. terom@85: */ terom@85: function dmx_update (input) { terom@85: var name = input.attr('name'); terom@85: var value = input.val(); terom@85: terom@85: console.log("dmx_update: " + name + ": " + value); terom@85: terom@85: var data = { }; data[name] = value; terom@85: terom@85: $.ajax({ terom@85: type: 'POST', terom@85: data: data, terom@85: }); terom@85: } terom@85: terom@85: /* terom@83: * Update color for head. terom@83: */ terom@83: function dmx_color (head) { terom@83: var alpha = dmx_input(head, 'alpha'); terom@83: terom@83: if (alpha) terom@83: alpha = alpha / 255; terom@83: terom@83: $('.dmx-color#' + head + '-color').background_color( terom@83: dmx_input(head, 'red') / 255, terom@83: dmx_input(head, 'green') / 255, terom@83: dmx_input(head, 'blue') / 255, terom@83: alpha terom@83: ); terom@83: } terom@83: terom@83: /* terom@83: * Update slider from . terom@83: */ terom@83: function _slider_input (input, slider) { terom@83: var value; terom@83: terom@83: if (input.val()) terom@83: value = parseInt(input.val()); terom@83: else terom@83: value = 0; terom@83: terom@83: slider.slider('value', value); terom@83: } terom@83: terom@83: /* terom@83: * Bind given to given slider. terom@83: */ terom@83: function slider_input (input, slider) { terom@83: // bind terom@85: input.change(function () { terom@85: dmx_update(input); terom@85: _slider_input(input, slider); terom@85: }); terom@83: terom@83: // initialize terom@83: _slider_input(input, slider); terom@83: } terom@83: terom@83: $(function () { terom@83: $('.dmx-input').each(function () { terom@83: var attr = this.id; terom@83: var head = attr.split('-', 1)[0]; terom@83: var input = $(this); terom@83: var slider = $('.dmx-slider#' + attr + '-slider'); terom@83: var color = $('.dmx-color#' + head + '-color'); terom@83: terom@83: // slider control terom@83: slider.slider({ terom@83: orientation: 'horizontal', terom@83: range: 'min', terom@83: min: 0, terom@83: max: 255, terom@83: terom@83: slide: function () { terom@83: var value = slider.slider('value'); terom@83: terom@83: // update input terom@83: input.val(value.toString()); terom@83: terom@83: if (color) { terom@83: // update color value terom@83: dmx_color(head); terom@83: } terom@83: terom@85: // send output terom@85: dmx_update(input); terom@83: }, terom@83: }); terom@83: terom@83: // update slider from terom@83: slider_input(input, slider); terom@83: terom@83: // init terom@83: if (color) { terom@83: dmx_color(head); terom@83: } terom@83: }); terom@83: });