Just going to be some guesses, have you looked into modifying the InitiateChat.js at around this section here?
this.AcceptInitiatedChat = function (roomID) {
if (lastRoomID > 0) {
openWindow(lastRoomID);
}
else {
CallWebService("AcceptChatRequest", function () {
lastRoomID = roomID;
openWindow(roomID);
}, Error, [roomID]);
}
};
My guess is you can add another fucntion before this logic to open your contact window, then when it returns it will continue to the openWindow() OR simply have that as part of your "contact submit" logic where it calls the openWindow with the RoomID.