// form; check for mandatory fields
function checkMandatories(formName,alertText)
    {
    var theForm=document[formName];
    var m=theForm.mgnlMandatory;
    var i=0;
    var ok=true;
    if (m)
        {
        if (!m[0])
            {
            var tmp=m;
            m=new Object();
            m[0]=tmp;
            }
        while (m[i])
            {
            var name=m[i].value;
            var type;
            var mgnlField;
            if(document.all) mgnlField=theForm(name);
            else mgnlField=theForm[name];

            if (mgnlField.type) type=mgnlField.type;
            else if (mgnlField[0] && mgnlField[0].type) type=mgnlField[0].type

            switch (type)
                {
                case "select-one":
                    if (mgnlField.selectedIndex==0) ok=false;
                    break;
                case "checkbox":
                case "radio":
                    var obj=new Object();
                    if (!mgnlField[0]) obj[0]=mgnlField;
                    else obj=mgnlField;
                    var okSmall=false;
                    var ii=0;
                    while (obj[ii])
                        {
                        if (obj[ii].checked)
                            {
                            okSmall=true;
                            break;
                            }
                        ii++;
                        }
                    if (!okSmall) ok=false;
                    break;
                default:
                    if (!mgnlField.value) ok=false;
                }
            if (!ok)
                {
                alert(alertText);
                if (!mgnlField[0]) mgnlField.focus();
                return false;
                }
            i++;
            }
        }
    if (ok) return true;
    else return false;
    }
function initForm() {
	var inputs = YAHOO.util.Dom.getElementsByClassName('submit', 'input');
	YAHOO.util.Event.on(inputs, 'click', function() {
		if (checkMandatories('mainForm', warning)) {
			var button = this;
			button.disabled = true;
			button.oldValue = button.value;
			button.value = 'Sending';
			var callback =  { 
				success: function(o) {/*success handler code*/
					eval(o.responseText);
					if (answer.result == 'fail') {
						var img = document.getElementById('captchaImg');
						if ( ! img._origSrc) {
							img._origSrc = img.src;
						}
						img.src = img._origSrc + new Date().getTime();
						alert('Incorrect value for verification.  Please check image and try again.');
						document.getElementById('jcaptcha').value = '';
						document.getElementById('jcaptcha').focus();
						button.disabled = false;
						button.value = button.oldValue;
					} else {
						button.disabled = false;
						document.getElementById('captcha_uuid').value = answer.uuid;
						document.getElementById('mainForm').action = formAct;
						document.getElementById('mainForm').submit();
					}
				}, 
				failure: function(o) {/*failure handler code*/
					alert('Server Error.  Please try again.');
					button.disabled = false;
					button.value = button.oldValue;
				} 
			};
			YAHOO.util.Connect.asyncRequest('GET', ctxPath + '/captchaVerify?jcaptcha=' + document.getElementById('jcaptcha').value, callback);
		}
	});
}
YAHOO.util.Event.onDOMReady(initForm);
