'If this is an item type with multiple responses, and it's in EDIT mode, determine the number
'of previous answers associated with this question
If CLng(lngItemTypeID) = SUR_ITEM_MATRIX_SINGLE_SELECT_OPTIONS Or CLng(lngItemTypeID) = SUR_ITEM_MATRIX_MULTISELECT_CHECKBOXES Or CLng(lngItemTypeID) = SUR_ITEM_MATRIX_TEXT_BOXES Or CLng(lngItemTypeID) = SUR_ITEM_SINGLE_SELECT_DROPDOWN Or CLng(lngItemTypeID) = SUR_ITEM_MULTISELECT_CHECKBOXES Or CLng(lngItemTypeID) = SUR_ITEM_SINGLE_SELECT_OPTIONS Then
If strState = SUR_STATE_EDIT Or strState = SUR_STATE_EDIT_REFRESH Then
lngItemID = Request.Form("ItemID")
'Obtain the count of answers previously associated with this question
strSQL = "SELECT count(answer_id) As PreviousAnswerCount FROM sur_item_answer WHERE item_id = " & lngItemID
'If this is EDIT mode, delete the subitems for this item. If the item will still have subitems, they will be
'recreated below. If the item had subitems but no longer will have them, this will clean out the old, unused
'subitems.
If strState = SUR_STATE_EDIT Or strState = SUR_STATE_EDIT_REFRESH Then
strSQL = "DELETE FROM sur_subitem " & _
" WHERE item_id = " & lngItemID
conItem.Execute ConvertSQL(strSQL), , adCmdText
End If
'If the item type contains row names, record the answers in the database.
If CLng(lngItemTypeID) = SUR_ITEM_CONSTANT_SUM Or CLng(lngItemTypeID) = SUR_ITEM_RANKING Or CLng(lngItemTypeID) = SUR_ITEM_MATRIX_SINGLE_SELECT_OPTIONS Or CLng(lngItemTypeID) = SUR_ITEM_MATRIX_RATING_SCALE Or CLng(lngItemTypeID) = SUR_ITEM_MATRIX_MULTISELECT_CHECKBOXES Or CLng(lngItemTypeID) = SUR_ITEM_MATRIX_TEXT_BOXES Or CLng(lngItemTypeID) = SUR_ITEM_OPEN_ENDED_ONE_OR_MORE_LINES Then
'Split the list of row names on the linefeed character.
'Update the SUR_ITEM table with the count of subitems
strSQL = "UPDATE sur_item SET subitem_count = " & lngSubItemCount & " WHERE item_id = " & lngItemID
conItem.Execute ConvertSQL(strSQL), , adCmdText
End If
'If the item type contains multiple answers, record the answers in the database.
If CLng(lngItemTypeID) = SUR_ITEM_MATRIX_SINGLE_SELECT_OPTIONS Or CLng(lngItemTypeID) = SUR_ITEM_MATRIX_MULTISELECT_CHECKBOXES Or CLng(lngItemTypeID) = SUR_ITEM_MATRIX_TEXT_BOXES Or CLng(lngItemTypeID) = SUR_ITEM_SINGLE_SELECT_DROPDOWN Or CLng(lngItemTypeID) = SUR_ITEM_MULTISELECT_CHECKBOXES Or CLng(lngItemTypeID) = SUR_ITEM_SINGLE_SELECT_OPTIONS Then
'Initalize the order number variable, and iterate through all of the answer text boxes.
lngOrderNumber = 1
For i = 1 To Request.Form("AnswerCount")
'Only record an answer where text has actually been inserted
If Len(Trim(Request.Form("txtAnswer" & i))) > 0 Then
If CLng(lngItemTypeID) = SUR_ITEM_MULTISELECT_CHECKBOXES Then
If Request.Form("txtDefaultAnswerYN" & i) = "on" Then
flgDefaultValue = SUR_BOOLEAN_POSITIVE
Else
flgDefaultValue = SUR_BOOLEAN_NEGATIVE
End If
Else 'Must be either a drop down or radio buttons
If Request.Form("txtDefaultAnswerYN") = "txtAnswer" & i Then
flgDefaultValue = SUR_BOOLEAN_POSITIVE
Else
flgDefaultValue = SUR_BOOLEAN_NEGATIVE
End If
End If
'For checkboxes, dropdowns, and option buttons, get the points value from the form; otherwise, set it to 0
If CLng(lngItemTypeID) = SUR_ITEM_SINGLE_SELECT_DROPDOWN Or CLng(lngItemTypeID) = SUR_ITEM_MULTISELECT_CHECKBOXES Or CLng(lngItemTypeID) = SUR_ITEM_SINGLE_SELECT_OPTIONS Then
If Len(Trim(Request.Form("txtAnswerValue" & i))) = 0 Then