/*
  $Id: dom.js,v 1.1 2007/11/16 17:08:58 steve Exp $
*/

// Generic HTML Functions
//
function deleteNodeById(id) {

    if (document.getElementById(id)) {
        var node = document.getElementById(id)
        node.parentNode.removeChild(node)
    }
}

function createDropDown(id, str) {

    menu      = document.createElement('select')
    menu.id   = id
    menu.name = id
    options = str.split(',')
    for (i = 0; i < options.length; i++) {
        options[i] = options[i].replace(/ /g, "") ;
        menuItem = document.createElement('option') ;
        menuItem.text  = options[i]
        menuItem.value = options[i]
        try {
             menu.add(menuItem,null); // standards compliant
        }
        catch(ex) {
            menu.add(menuItem);      // IE only
        }
    }
    return menu
}

function isInDropDown(value, elem) {

    var opts = document.getElementById(elem).options
    for (i = 0; i < opts.length; i++) {
        if (value == opts[i].text) {
            return 1
        }
    }
    return 0
}

function addToDropDown(elem, value) {

    var opt  = document.createElement('option')
    opt.text = value
    try {
        elem.add(opt, null)   // standards compliant
    } catch(ex) {
        elem.add(opt)         // IE only
    }
}

function deleteFromDropDown(elem, value) {

    var opts  = elem.options
    for (i = 0; i < opts.length; i++) {
        if (opts[i].text == value) {
            elem.remove(i)
        }
    }
}

var Element = new function()
{
    function Create(type, id, elemClass, value, append) {
        if (!document.getElementById(id)) {
            var elem    = document.createElement(type)

            if (id) {
                elem.id = id
            }
            if (value) {
                if (type == 'td' || type == 'h1' || type == 'h4' || type == 'p' || type == 'li'
                      || type == 'code' || type == 'span') {
                    elem.innerHTML = ''
                    elem.appendChild(document.createTextNode(value))
                } else {
                    alert('Values not implemented for creating ' + type)
                }
            }
        } else {
           var elem = document.getElementById(id)
        }
        if (append) {
            append.appendChild(elem)
        }
        if (elemClass) {
           elem.className = elemClass ;
        }
        return elem
    }
    this.Create = Create
}

var Hidden = new function()
{
    function Create(id, value) {
        if (!document.getElementById(id)) {
            hidden       = document.createElement('input')
            hidden.type  = 'hidden'
            hidden.id    = id
            document.appendChild(hidden)
        }
        if (value) {
           this.Set(id, value)
        }
    }
    this.Create = Create

    function Set(id, value) {
        document.getElementById(id).value = value
    }
    this.Set = Set

    function Get(id, value) {
        return document.getElementById(id).value
    }
    this.Get = Get
}

var Button = new function()
{
    function Create(label, id) {

        button           = document.createElement('input')
        button.type      = 'button'
        button.value     = label
        button.className = 'button'
        button.id        = id

        return button
    }
    this.Create = Create
}

var TextArea = new function()
{
    function Create(id, lines, cols) {

        textarea = document.createElement('textarea')
        textarea.id = id
        if (lines) {
            textarea.rows = lines
        }
        if (cols) {
            textarea.cols = cols
        }
        return textarea
    }
    this.Create = Create
}



