
/*
    Displaying Keywords
 */

function expandKeywords(id)
{
    $(id).show();
    $(id+'_show').hide();
    $(id+'_hide').show();
}

function hideKeywords(id)
{
    $(id).hide();
    $(id+'_show').show();
    $(id+'_hide').hide();
}


/*
    Editing Keywords
 */

function getKeywordsFieldName(mainID)
{
    var hidden = $(mainID+'_hidden_input_name');
    if (!hidden) return null;
    return hidden.value;
}

function getKeywordsInputElement(mainID)
{
    return $(mainID+'_input');
}

function addOneKeyword(listID, inputName, value) {
    value = value.strip();
    if (value == '') return;
    var children = $(listID).childElements();
    var terminate = false;
    children.each(function(item) {
        if (item.title == value) {
            terminate = true;
            return;
        }
    });
    if (terminate) return;
    var newItem = '<li title="'+value+'">'
                + '<input type="hidden" name="'+inputName+'[]" value="'+value+'" />'
                + '<a title="remove keyword \''+value+'\'" href="javascript:void(0)" onclick="removeKeyword(\''+listID+'\', Element.ancestors(this)[0])">&nbsp;</a> '
                + '<span>' + value + '</span>'
                + '</li>';
    Element.insert($(listID), newItem );
}

function addKeywords(mainID, inputName) {
    var newTagString = $(mainID+'_input').value;
    newTagString = newTagString.replace(/[^a-zA-Z0-9 _,&\/]*/g, '');
    var newTags = newTagString.split(',');
    newTags.each(function(item) {
        addOneKeyword(mainID+'_list', inputName, item.toLowerCase());
    });
    $(mainID+'_input').value = '';
    $(mainID+'_input').focus();
    
    if ($('ptags'))
        updateKeywordsPreview(mainID+'_list');
}

function removeKeyword(listID, element) {
    Element.remove(element);
    if ($('ptags'))
        updateKeywordsPreview(listID);
}
        
function addKeywordKeydown(event) {
    if (event.keyCode != Event.KEY_RETURN)
        return;

    event.stop();
    var element = event.element();
    var parent = $(element.ancestors()[0]);
    var inputName = getKeywordsFieldName(parent.id);
    addKeywords(parent.id, inputName);
}
