2016-11-09 11:10:51 +08:00
function validateForm ( form ) {
2017-05-19 01:50:56 +08:00
var errors = new Array ( ) ;
2016-11-09 11:10:51 +08:00
2017-05-19 01:50:56 +08:00
// If "Can Move" is enabled, then the end user must also select at least one of the other check boxes (excluding Can Move Diagonally)
if ( form . elements [ 'newControl[CanMove]' ] . checked ) {
2020-01-04 04:58:57 +08:00
if ( ! (
2020-09-04 22:02:43 +08:00
form . elements [ 'newControl[CanMoveCon]' ] . checked ||
form . elements [ 'newControl[CanMoveRel]' ] . checked ||
form . elements [ 'newControl[CanMoveAbs]' ] . checked ||
2020-01-04 04:58:57 +08:00
form . elements [ 'newControl[CanMoveMap]' ] . checked
) ) {
errors [ errors . length ] = 'In addition to "Can Move", you also must select at least one of: "Can Move Mapped", "Can Move Absolute", "Can Move Relative", or "Can Move Continuous"' ;
2017-05-19 01:50:56 +08:00
}
} else {
2016-11-09 11:10:51 +08:00
// Now lets check for the opposite condition. If any of the boxes below Can Move are checked, but Can Move is not checked then signal an error
2020-09-04 22:02:43 +08:00
if ( form . elements [ 'newControl[CanMoveCon]' ] . checked ||
form . elements [ 'newControl[CanMoveRel]' ] . checked ||
form . elements [ 'newControl[CanMoveAbs]' ] . checked ||
form . elements [ 'newControl[CanMoveMap]' ] . checked ||
2020-01-04 04:58:57 +08:00
form . elements [ 'newControl[CanMoveDiag]' ] . checked
) {
errors [ errors . length ] = '"Can Move" must also be selected if any one of the movement types are selected.' ;
}
}
// If "Can Zoom" is enabled, then the end user must also select at least one of the other check boxes
if ( form . elements [ 'newControl[CanZoom]' ] . checked ) {
if ( ! (
2020-09-04 22:02:43 +08:00
form . elements [ 'newControl[CanZoomCon]' ] . checked ||
form . elements [ 'newControl[CanZoomRel]' ] . checked ||
2020-01-04 04:58:57 +08:00
form . elements [ 'newControl[CanZoomAbs]' ] . checked
) ) {
errors [ errors . length ] = 'In addition to "Can Zoom", you also must select at least one of: "Can Zoom Absolute", "Can Zoom Relative", or "Can Zoom Continuous"' ;
}
} else {
// Now lets check for the opposite condition. If any of the boxes below Can Zoom are checked, but Can Zoom is not checked then signal an error
2020-09-04 22:02:43 +08:00
if ( form . elements [ 'newControl[CanZoomCon]' ] . checked ||
form . elements [ 'newControl[CanZoomRel]' ] . checked ||
2020-01-04 04:58:57 +08:00
form . elements [ 'newControl[CanZoomAbs]' ] . checked
) {
errors [ errors . length ] = '"Can Move" must also be selected if any one of the zoom types are selected.' ;
}
}
// If "Can Zoom" is enabled, then the end user must also select at least one of the other check boxes
if ( form . elements [ 'newControl[CanFocus]' ] . checked ) {
if ( ! (
2020-09-04 22:02:43 +08:00
form . elements [ 'newControl[CanFocusCon]' ] . checked ||
form . elements [ 'newControl[CanFocusRel]' ] . checked ||
2020-01-04 04:58:57 +08:00
form . elements [ 'newControl[CanFocusAbs]' ] . checked
) ) {
errors [ errors . length ] = 'In addition to "Can Focus", you also must select at least one of: "Can Focus Absolute", "Can Focus Relative", or "Can Focus Continuous"' ;
}
} else {
// Now lets check for the opposite condition. If any of the boxes below Can Zoom are checked, but Can Zoom is not checked then signal an error
2020-09-04 22:02:43 +08:00
if ( form . elements [ 'newControl[CanFocusCon]' ] . checked ||
form . elements [ 'newControl[CanFocusRel]' ] . checked ||
2020-01-04 04:58:57 +08:00
form . elements [ 'newControl[CanFocusAbs]' ] . checked
) {
errors [ errors . length ] = '"Can Focus" must also be selected if any one of the focus types are selected.' ;
}
}
// If "Can White" is enabled, then the end user must also select at least one of the other check boxes
if ( form . elements [ 'newControl[CanWhite]' ] . checked ) {
if ( ! (
2020-09-04 22:02:43 +08:00
form . elements [ 'newControl[CanWhiteCon]' ] . checked ||
form . elements [ 'newControl[CanWhiteRel]' ] . checked ||
2020-01-04 04:58:57 +08:00
form . elements [ 'newControl[CanWhiteAbs]' ] . checked
) ) {
errors [ errors . length ] = 'In addition to "Can White Balance", you also must select at least one of: "Can White Bal Absolute", "Can White Bal Relative", or "Can White Bal Continuous"' ;
}
} else {
// Now lets check for the opposite condition. If any of the boxes below Can Zoom are checked, but Can Zoom is not checked then signal an error
2020-09-04 22:02:43 +08:00
if ( form . elements [ 'newControl[CanWhiteCon]' ] . checked ||
form . elements [ 'newControl[CanWhiteRel]' ] . checked ||
2020-01-04 04:58:57 +08:00
form . elements [ 'newControl[CanWhiteAbs]' ] . checked
) {
errors [ errors . length ] = '"Can White Balance" must also be selected if any one of the white balance types are selected.' ;
}
}
// If "Can Iris" is enabled, then the end user must also select at least one of the other check boxes
if ( form . elements [ 'newControl[CanIris]' ] . checked ) {
if ( ! (
2020-09-04 22:02:43 +08:00
form . elements [ 'newControl[CanIrisCon]' ] . checked ||
form . elements [ 'newControl[CanIrisRel]' ] . checked ||
2020-01-04 04:58:57 +08:00
form . elements [ 'newControl[CanIrisAbs]' ] . checked
) ) {
errors [ errors . length ] = 'In addition to "Can Iris", you also must select at least one of: "Can Iris Absolute", "Can Iris Relative", or "Can Iris Continuous"' ;
}
} else {
// Now lets check for the opposite condition. If any of the boxes below Can Zoom are checked, but Can Zoom is not checked then signal an error
2020-09-04 22:02:43 +08:00
if ( form . elements [ 'newControl[CanIrisCon]' ] . checked ||
form . elements [ 'newControl[CanIrisRel]' ] . checked ||
2020-01-04 04:58:57 +08:00
form . elements [ 'newControl[CanIrisAbs]' ] . checked
) {
errors [ errors . length ] = '"Can Iris" must also be selected if any one of the iris types are selected.' ;
2016-11-09 11:10:51 +08:00
}
2017-05-19 01:50:56 +08:00
}
2016-11-09 11:10:51 +08:00
2017-05-19 01:50:56 +08:00
if ( errors . length ) {
2020-01-04 04:58:57 +08:00
alert ( errors . join ( "\n" ) ) ;
return false ;
2017-05-19 01:50:56 +08:00
}
2020-01-04 04:58:57 +08:00
return true ;
2016-11-09 11:10:51 +08:00
}