// global variables
//var emailFormBadFields = new Array();
var currentErrorMessage = new String();
var EFBrowser = new BrowserObj();

// instantiate data field validation object
_DataValidationHash = function() {}
_DataValidationHash.prototype.add = function(addSectionFieldMap) {
	for (var i in addSectionFieldMap) {
		if (typeof addSectionFieldMap[i] == "string") {
			this[i] = addSectionFieldMap[i];
		} else {
			// add new entry if none exists; otherwise append
			if (!this[i]) {
				this[i] = {};
				this[i]["fieldMap"] = {};
			}
			for (var field in addSectionFieldMap[i]) this[i]["fieldMap"][field] = addSectionFieldMap[i][field];
		}
	}
}
var dataValidation = new _DataValidationHash();

// generic field validation-- does not correspond to any particular section!!
function _validate_GenericFieldData(someForm, fieldMap) {
	var badFields = new Array();
	for (var fieldName in fieldMap) {
		if (someForm[fieldName] && (someForm[fieldName].type != "hidden") && eval("window." + fieldMap[fieldName])) {
			if (eval("!" + fieldMap[fieldName] + "(someForm[fieldName].value)")) badFields[badFields.length] = someForm[fieldName];
		}
	}
	return badFields;
}

// populate hidden "label" fields to support i18n data exchange leads
function populateLabels(someForm, suffix, labelMap) {
    // if allFields is null, it means we need to grab it dynamically from the form fields
    if (allFields == null){
        allFields = createFieldsHash(someForm["all_fields"], "|");
        for (var fieldname in allFields) {
            if (someForm[fieldname + suffix]) someForm[fieldname + suffix].value = allFields[fieldname];
        }
    // else if allFields ISNT null, it means we already have a JS var with the fields
    }else{
        // then we use labelMap to map our Struts field names to the proper ADF names
        if (labelMap){
            for (var fieldname in allFields) {
                if (someForm[labelMap[fieldname]]) someForm[labelMap[fieldname]].value = allFields[fieldname];
            }
        }
    }
}
