
    /*$RCSfile: validateDouble.js,v $ $Rev: 376673 $ $Date: 2007/12/04 14:15:01 $ */
    /**
    * Check to see if fields are a valid long.
    * Fields are not checked if they are disabled.
    * <p>
    * @param form The form validation is taking place on.
    */
    function validateDouble(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
 
        var oDouble = eval('new ' + jcv_retrieveFormName(form) +  '_double()');
        for (var x in oDouble) {
            if (!jcv_verifyArrayElement(x, oDouble[x])) {
                continue;
            }
            var field = form[oDouble[x][0]];
            if (!jcv_isFieldPresent(field)) {
              continue;
            }

            if ((field.type == 'hidden' ||
                field.type == 'text' ||
                field.type == 'textarea' ||
                field.type == 'select-one' ||
                field.type == 'radio')) {

                var value = '';
                // get field's value
                if (field.type == "select-one") {
                    var si = field.selectedIndex;
                    if (si >= 0) {
                        value = field.options[si].value;
                    }
                } else {
                    value = field.value;
                }

				if (field.className.indexOf("_ERROR") > 0){
                	lib_tmp = "lib_" + field.name;
                	if (document.getElementById(lib_tmp) != null){
                		document.getElementById(lib_tmp).className = document.getElementById(lib_tmp).className.substr(0,document.getElementById(lib_tmp).className.indexOf("_ERROR"));
					}
					field.className = field.className.substr(0,field.className.indexOf("_ERROR"));
				}
				
                if (value.length > 0) {

                    
                        var iValue = parseFloat(value);
                        if (isNaN(iValue) || !(iValue >= -1.401e-045 && iValue <= 3.40282e+038)) {
                            if (i == 0) {
                                focusField = field;
                            }
                            fields[i++] = oDouble[x][1];
                            lib_tmp = "lib_" + field.name;
		                    if (document.getElementById(lib_tmp) != null){
		                		document.getElementById(lib_tmp).className = document.getElementById(lib_tmp).className + '_ERROR';
							}
                            field.className = field.className + '_ERROR';
                            bValid = false;
                       }
                   
               }
            }
        }
        if (fields.length > 0) {
           jcv_handleErrors(fields, focusField);
        }
        return bValid;
    }
