ami/src/ami.js/submitbox.js

67 lines
1.7 KiB
JavaScript

#include utility.js
#include watcher.js
var AmiSubmitBox = function(parent) {
var pub = {},
watcher = new AmiWatcher,
maxLengthValue = 0,
click = function(ev) {
watcher.call(pub, [ev]);
};
var button = $e({
tag: 'input',
attrs: {
type: 'button',
value: 'Send',
id: 'sendmsg',
onclick: function(ev) { click(ev); },
},
}),
curLength = $e({
tag: 'span',
child: '0',
}),
maxLength = $e({
tag: 'span',
child: maxLengthValue.toString(),
}),
container = $e({
attrs: { id: 'submitButtonContainer' },
child: [
{
tag: 'span',
attrs: { id: 'messageLengthCounter' },
child: [curLength, '/', maxLength],
},
' ',
button,
],
});
parent.appendChild(container);
pub.click = click;
pub.watch = function(callback) {
watcher.watch(callback);
};
pub.unwatch = function(watcher) {
watcher.unwatch(callback);
};
pub.setCurrentLength = function(num) {
num = parseInt(num);
curLength.textContent = num.toLocaleString();
if(num >= maxLengthValue && !curLength.style.color)
curLength.style.color = '#c00';
else if(num < maxLengthValue && curLength.style.color)
curLength.style.color = null;
};
pub.setMaxLength = function(num) {
maxLengthValue = parseInt(num);
maxLength.textContent = maxLengthValue.toLocaleString();
};
return pub;
};