/**
* Form checker
*
* @param object frmObj form to be checked
* @return boolean true if form is ok, error code if form is not ok
* @access public
*/
function checkForm(frmObj) {
    with(frmObj) {
        for(i=0;i<elements.length;i++) {
            var tmp = elements[i].name.split("__");
            if(tmp.length >= 2) {
                switch(tmp[1]) {
                    case "integer" :
                        if(!elements[i].value.match(/^-?\d+$/))
												{
													  if(!(elements[i].value=='' && tmp.length==2))
                            return("ERR_INTEGER : " + elements[i].name);
											  }	
                    break;
                    case "float" :
                        if(!elements[i].value.match(/^-?\d+((\.|,)\d*)?$/))
												{
													  if(!(elements[i].value=='' && tmp.length==2))
                            return("ERR_FLOAT : " + elements[i].name);
												}
                    break;
                }
            }
            if( tmp.length == 3 ){

								var testField=tmp[0]+'__'+tmp[1]+'Text';
							  	if(tmp[1].match(/string(F|I)(_\d+)?/) && document.getElementById(testField))
								{
									var testField=tmp[0]+'__'+tmp[1]+'Text';
									if(document.getElementById(testField).value.length<4)
									return( "ERR_NULL : " + elements[i].name );
								}
								else if( elements[i].value.replace(/(\s)*/, "") == "" )
                return( "ERR_NULL : " + elements[i].name );
						switch(tmp[1]){ /* Cristofoli: controllo dei campi mselect obbligatori*/
							case "mselect":
								if (elements[i].type == 'radio') {
								  var group = frmObj[elements[i].name];
								  var checked = false;
								  if (!group.length)
									checked = elements[i].checked;
								  else
									for (var r = 0; r < group.length; r++)
									  if ((checked = group[r].checked))
										break;
								  if (!checked) {
									elements[i].focus();
									return("ERR_NULL : " + elements[i].name);
									//return false;
								  }
								}
								else if (elements[i].type == 'checkbox') {
								  var group = frmObj[elements[i].name];
								  if (group.length) {
									var checked = false;
									for (var r = 0; r < group.length; r++)
									  if ((checked = group[r].checked))
										break;
									if (!checked) {
									  elements[i].focus();
									  return("ERR_NULL : " + elements[i].name);
									  //return false;
									}
								  }
									else if(!elements[i].checked)
										return("ERR_NULL : " + elements[i].name);
								}
							break;
						}
			}
        }
    }
    return true;
}

function checkBulkForm(frmObj) {
    with(frmObj) {
        for(i=0;i<elements.length;i++) {
            var tmp = elements[i].name.split("__");
            if(tmp.length >= 2) {
                switch(tmp[1].substring(0, 5)) {
                    case "integ" :
                        if(!elements[i].value.match(/^-?\d+$/))
                            return("ERR_INTEGER : " + elements[i].name);
                    break;
                    case "float" :
													if(!elements[i].value.match(/^-?\d+((\.|,)\d*)?$/))
                            return("ERR_FLOAT : " + elements[i].name);
                    break;
                }
            }
            if( tmp.length == 3 )
                if( elements[i].value.replace(/(\s)*/, "") == "" )
                    return( "ERR_NULL : " + elements[i].name );
        }
    }
    return true;
}

