/**
 *  Eventure Media
 *  @author James Floyd <james@floydtech.co.uk>
 */
function addItem(key, val, target)
{
    var elm = document.getElementById(target);
    var itemCount = elm.length;
    elm.options[itemCount] = new Option(val, key);
    elm.options[itemCount].selected = true;
}

function removeSelected(target)
{
    // get selected item index
    var elm = document.getElementById(target);
    var selIndex = elm.selectedIndex;
    
    if (selIndex != -1) {
        if (confirm('Are you sure you want to remove ' + 
                'the selected page from this event?')) {
            elm.options[selIndex] = null;
        }
    } else {
        alert('Before you can remove a page from this ' +
        'even you must select the page to be removed from ' +
        'the current pages list.');
    }
}

function moveItem(target, direction) {
    var elm = document.getElementById(target);
    var selIndex = elm.selectedIndex;
    var targetIndex = (direction == 'up') ? (selIndex - 1) : (selIndex + 1);
    var itemCount = elm.length;
    
    if (itemCount == 0) {
        return;
    }
    
    if (selIndex == -1) {
        alert('Please select an item to move ' + direction + '.');
        return;
    }
    
    if (selIndex == 0 && direction == 'up') {
        return;
    }
    
    if (selIndex == (itemCount - 1) && direction == 'down') {
        return;
    }
    
    holdId = elm.options[selIndex].value;
    holdText = elm.options[selIndex].text;
    
    elm.options[selIndex].value = elm.options[targetIndex].value;
    elm.options[selIndex].text = elm.options[targetIndex].text;
    
    elm.options[targetIndex].value = holdId;
    elm.options[targetIndex].text = holdText;
    elm.options[targetIndex].selected = true;
}

function getKey(source)
{
    var elm = document.getElementById(source);
    return elm.options[elm.selectedIndex].value;
}

function getValue(source)
{
    var elm = document.getElementById(source);
    return elm.options[elm.selectedIndex].text;
}

/**
 * As I don't want a multi-select I need to 
 * store all values in a selimited string for
 * evaluation on the server, this is where its
 * set.
 */
function eventPagesOnSubmit()
{
    var elm = document.getElementById('eventPages');
    var itemCount = elm.length;
    var str = '';
    
    for(i = 0; i < itemCount; i++) {
        str += elm.options[i].value + '||~||';
    }
    // set string
    document.getElementById('aEventPages').value = str;
}