function CheckRequired(formId) { if (!formId) { formId = 'form'; }
	var error = false;
	requiredFields = getElementsByClassName(document.getElementById(formId), 'div', 'required');
	for(i=0; i<requiredFields.length; i++) {
		if (requiredFields[i] && requiredFields[i].style.display != 'none') {
			inputTypes = new Array('input', 'select', 'textarea');
			for(j=0; j<inputTypes.length; j++) {
				inputs = requiredFields[i].getElementsByTagName(inputTypes[j]);
				for(c=0; c<inputs.length; c++) {
					if (inputs[c]) {
						if ((inputs[c].value == null || inputs[c].value.length == 0)) {
							error = true;
							inputs[c].className = 'requiredEmpty';
						} else {
							inputs[c].className = 'requiredOkay';
						}
					}
				}			
			}
		}
	}
	if (error) { alert('Please complete the required fields that are in red'); } else {
		document.getElementById(formId).submit();	
	}
}
function getElementsByClassName(oElm, strTagName, oClassNames){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    var arrRegExpClassNames = new Array();
    if(typeof oClassNames == "object"){
        for(var i=0; i<oClassNames.length; i++){
            arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
        }
    }
    else{
        arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
    }
    var oElement;
    var bMatchesAll;
    for(var j=0; j<arrElements.length; j++){
        oElement = arrElements[j];
        bMatchesAll = true;
        for(var k=0; k<arrRegExpClassNames.length; k++){
            if(!arrRegExpClassNames[k].test(oElement.className)){
                bMatchesAll = false;
                break;                      
            }
        }
        if(bMatchesAll){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
};


/* --- */

function Show(obj) { if (obj) { obj.style.display = 'block'; } } 
function Hide(obj) { if (obj) { obj.style.display = 'none'; } }

/* --- */

function $i(id) { return document.getElementById(id); }