/**
 * - Forms Library -  
 * Copyright 1999, 2000 Haussmann Intranets 
 * All Rights reserved.
 * E-Mail: info@haussmann-hl.de
 * Web: www.haussmann-hl.de
 */

// GLOBALS //
var DEFAULT = new Object;

// OPTIONS /////////////////////////////////////////////////////////////////////
function selected(optName) {
    var opt = new Object;
    if ((opt = GetFormItem(optName)) != null) {
        return opt.options[opt.selectedIndex];
    }
    return null;
}

// STANDARD FORM VALUES ////////////////////////////////////////////////////////

function StdForm(formIndex) {
    var idx = (formIndex) ? formIndex : 0;
    this.elements = _collectStdInput(idx);
    this.get = _getbyname;
}

function _collectStdInput(formIndex) {
    var i, j = 0, aryStdVals = new Array();
    var el = document.forms[formIndex].elements;
    for (i = 0; i < el.length; i++) {
        aryStdVals[j++] = new BaseInput(el[i].name, el[i].value);   
    }
    return aryStdVals;
}

// retrieves array element by its name property
function _getbyname(elementName) { 
    if (elementName) {
        for (var i = 0; i < this.elements.length; i++) {
            if ((el = this.elements[i]) && el.name == elementName ) 
                return el;
        }
    }
   
   return null; // not found
}

function BaseInput(name, value) {
    this.name  = (name)  ? name  : null;
    this.value = (value) ? value : null;
}

// VALIDATION //////////////////////////////////////////////////////////////////
// to be moved to validation.js - 24.Dec.'99

function validAmount(el) {   
    
    var defVal = DEFAULT.get(el.name).value;
    var newVal = el.value;
    
    if ( !isCurrency(newVal) || Number(newVal) < Number(defVal) ) { 
        //alert("Incorrect amount specified.\nPlease enter a valid amount.");
        //el.value = defVal;
        //el.focus();
        //Mirek 1/2/2004 there was a problem with this funciton
    }
}


// retrieves form element if exists (in any frame, by name)
function GetFormItem(el) {
    var i, j, item = new Object;
    var local = document.forms;
  
    // first look here
    for (i = 0; i < local.length; i++) { 
        if ((item = local[i].elements[el]))
            return item;
    }
    // then search all others
    if (parent.frames) {
        for (i = 0; i < parent.frames.length; i++) {
            var p = parent.frames[i].document;
            for (j = 0; j < p.forms.length; j++) {
                if ((item = p.forms[j].elements[el])) 
                    return item;
            }
        }
    }
    if (top.frames) {
        for (i = 0; i < top.frames.length; i++) {
            var t = top.frames[i].document;
            for (j = 0; j < t.forms.length; j++) {
                if ((item = t.forms[j].elements[el])) 
                    return item;
            }
        }
    }
 
    return null;   
} 
