67 lines
1.7 KiB
JavaScript
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;
|
|
};
|