document.observe('dom:loaded', function() {
function toggleBtn() {
$('save_btn', 'del_btn').each(function(element) {
element.disabled = !($F('edit_id') && $F('edit_display'));
});
if ($H(buttons).keys().length <= 1) $('del_btn').disable();
var i = false;
$$('#att input[type=text]').each(function(element) {i = i || $F(element)});
if (i) $('clear_btn').enable(); else $('clear_btn').disable();
}
function select(element) {
$$('#ed_toolbar span').invoke('removeClassName', 'selected');
element.addClassName('selected');
}
function updateFunc(event) {
var element = Event.element(event);
var id = element.identify().substr(3);
$('edit_id').value = id;
$('edit_display').value = buttons[id].display ? buttons[id].display : '';
$('edit_start').value = buttons[id].start ? buttons[id].start : '';
$('edit_end').value = buttons[id].end ? buttons[id].end : '';
$('edit_access').value = buttons[id].access ? buttons[id].access : '';
select(element);
toggleBtn();
}
function beSortable() {
Sortable.create('ed_toolbar', {
tag: 'span',
overlap: 'horizontal',
constraint: 'horizontal'
});
toggleBtn();
}
beSortable();
$$('#ed_toolbar span').invoke('observe', 'click', updateFunc);
new Form.Observer('att', 0.5, toggleBtn);
$('save_btn').observe('click', function() {
var id = $F('edit_id');
var display = $F('edit_display').escapeHTML();
if (id && display) {
var isExists = buttons[id] ? true : false;
buttons[id] = {};
buttons[id].display = display;
buttons[id].start = $F('edit_start');
buttons[id].end = $F('edit_end');
buttons[id].access = $F('edit_access');
if (isExists) {
$('ed_'+id).update(display);
} else {
var new_btn = new Element('span', {'class': 'ed_button', 'id': 'ed_'+id}).update(display).hide().observe('click', updateFunc);
$('ed_toolbar').appendChild(new_btn);
select(new_btn);
new_btn.appear({duration: 0.6});
beSortable();
}
}
});
$('del_btn').observe('click', function() {
if ($H(buttons).keys().length == 1) return;
var id = $F('edit_id');
if (id && buttons[id]) {
delete buttons[id];
$('ed_'+id).fade({
duration: 0.6,
afterFinishInternal: function(effect){
effect.element.remove();
$$('#att input[type=text]').invoke('clear');
beSortable();
}
});
}
});
$('clear_btn').observe('click', function(){
$$('#att input[type=text]').invoke('clear');
toggleBtn();
});
$('sform').observe('submit', function(){
$('sort').value = Sortable.serialize('ed_toolbar', {tag: 'span'});
$('tags').value = $H(buttons).toJSON();
});
$('cap_check').observe('change', function(){
$$('#roles input[type=checkbox]').invoke(this.checked ? 'enable' : 'disable');
});
$('rform').observe('submit', function(event){
if (!confirm(cfqadminL10n['removeConfirm'])) {
Event.stop(event);
return false;
}
return true;
});
});