﻿
var oCurrentQuestion;
var oCurrentQuestionName;
var oCurrentQuestionID;
var oCurrentQuestionText;
var nextQuest;
var oNextQuestion;
var selectedAnswerTxt;
var selectedAnswerID;
var questionNo = 1;
var oCurrentKnowledge;
var oSummary = "";
var bMoreDetail = "False";
var summaryAddFullStop = "False";
var listOptions;
var boxVisible = false;

function pageLoad()
{
   GetQuestion("HI_BULLIED");
}

function GetQuestion(sQuestionName)
{
    NathansService.GetQuestion(sQuestionName, GetQuestion_Response, call_failed);
}

function GetQuestion_Response(oQuestion)
{
   $get('divQuestion').innerHTML = "";
   oCurrentQuestion = oQuestion;
   oCurrentQuestionName = oCurrentQuestion.qName;
   oCurrentQuestionText = oCurrentQuestion.qText;
   oCurrentQuestionID = oCurrentQuestion.QuestionID;

   $get('divQuestion').innerHTML += "<span class='questText'>" + oCurrentQuestionText + "</span>";
       
    if (oCurrentQuestion.qType == "OPEN")
    {
        $get('divQuestion').innerHTML += "<br /><textarea id='answerBox'></textarea><br />";
        document.form1.answerBox.focus()
    }
    else 
    {
       call_failed;
    }
}

function DisplayList()
{
    NathansService.GetMultiOptions(oCurrentQuestionID, DisplayMultiOptions);
}

function DisplayMultiOptions(oOptions)
{   
    listOptions = oOptions;
    $get('divOptionBox').innerHTML = "<div id='divOptions' style='float:left;'><div id='divMultiQuestions' style='float:left;'></div></div>";
    $get('divMultiQuestions').innerHTML = "";
    $get('divOptions').innerHTML += "<img id='imgClose' src='../images/closeButton.gif' alt='Close' style='float:left;margin:0px;padding:0px;padding-left:5px;' onclick='ClearOptions(); return false;' />";
    for(i in listOptions)
    {
      var iAnsID = listOptions[i].iAnswerID;
      var sAnsTxt =  listOptions[i].sAnswerText;
      var sAnswerName = "answer_" + iAnsID;
      $get('divMultiQuestions').innerHTML += "<span class='greyTextMulti'><input type='radio' name='answers' id='" + sAnswerName + "' value='" + sAnsTxt + "' /><label for='" + sAnswerName + "'>" + sAnsTxt + "</label></span><br />";
    }
    $get('divMultiQuestions').innerHTML += "<br /><button style='float:left;margin:0px;padding:0px;margin-bottom:5px;' onclick='GetAnswer(); return false;'>Submit</button>";
}

function ClearOptions()
{
   $get('divOptionBox').innerHTML = "";  
}

// GET ANSWER EITHER AS 'TEXT' OR 'SELECTION'
function GetAnswer()
{
   selectedAnswerTxt = "";
   selectedAnswerID = "";

    var txtAnswer = $get('answerBox');
    selectedAnswerTxt = txtAnswer.value;
    if(selectedAnswerTxt != "")
    {
       NathansService.GetKeyword(oCurrentQuestionID, selectedAnswerTxt, GetKB_Response);
    }
    else 
    {
      for(i in listOptions)
      {
        var iAnsID = listOptions[i].iAnswerID;
        var sAnsTxt =  listOptions[i].sAnswerText;
        if($get('answer_' + iAnsID).checked == true)
        {
          selectedAnswerID = iAnsID;
          selectedAnswerTxt = sAnsTxt;
        }
      }
      NathansService.GetKnowledge(selectedAnswerID, oCurrentQuestionText, selectedAnswerTxt, GetKB_Response);
    }
 }  


function GetKB_Response(oKnowledge)
{
    oCurrentKnowledge = oKnowledge;
    GetKBLink();
}

// GET ANY URL LINKS (THAT FOLLOW THE ADVICE)
function GetKBLink()
{
    var iKBid = oCurrentKnowledge.KnowledgeBaseID;
    NathansService.GetKBLinks(iKBid, GetKBLink_Response)
}

function GetKBLink_Response(sLink)
{
   if (sLink != "FALSE")
   {
        oCurrentKnowledge.kbAdvice += " " + sLink;
   }
   GetAll_Response();
}

// DISPLAY INFO IN 'CONVERSATION SO FAR' AND NEXT QUESTION
function GetAll_Response()
{
   nextQuest = oCurrentKnowledge.NextQName;
   $get('divOptionBox').innerHTML = "";
      
   if (oCurrentKnowledge.kbSentence != "" && oCurrentKnowledge.kbSentence != "NULL")
   {
       var sSummary = oCurrentKnowledge.kbSentence;
       var sSummary2 = sSummary.replace(/\.$/,".<br /><br />");

       if (sSummary != sSummary2)
       {
           summaryAddFullStop = "True";
           oSummary += sSummary2;
       }
       else
       {
           oSummary += oCurrentKnowledge.kbSentence + "&nbsp;";
       } 
   }
   if(nextQuest == "NEXT_CAT")
   {     
        var catQuestName = "";
        var questCat = oCurrentQuestion.qCategory;
        switch (questCat)
        {
            case "INTRO":
                catQuestName = "WHO_BULLY";
                break;
            case "WHO":
                catQuestName = "WHY_BULLY";
                break;
            case "WHY":
                catQuestName = "CYBER_BULLY";
                break;
            case "LOCATION":
                catQuestName = "HOW_BULLIED";
                break;
            case "FORM":
                catQuestName = "HOW_FEEL";
                break;
            case "FEELING":
                catQuestName = "TOLD_ANYONE";
                break;
            case "CONFIDANT":
                catQuestName = "HELPED";
                break;
            case "SUMMARY":
                // END QUESTIONS
                nextQuest = "END_QUEST";
                break;
            default:
                // END QUESTIONS
                nextQuest = "END_QUEST";
                break;
        }
       if (nextQuest == "END_QUEST")
       {
           $get('divQuestion').innerHTML = "";
           $get('divQuestionContainer').innerHTML = "<div id='divQuestion'></div><span id='spanThankyou'></span>";
           $get('spanThankyou').innerHTML = "<img id='imgOracle' src='../images/oracle.gif' alt='The Oracle' style='float:right;margin-right:5px;padding-bottom:5px;' /><h2 style='float:right;color:#4D4D4D;background-color:#ffffff;margin-right:5px;margin-top:20px;'>Thank you, The Oracle<br /></h2>";
           $get('divQuestion').innerHTML += "<span class='questText'>" + oSummary + "</span>";
           if (bMoreDetail == "True")
           {
               $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>Oracle. </b> More detailed answer..." + oCurrentQuestionText + "</span><br />";
               bMoreDetail = "False";
           }
           else
           {
               $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>Oracle. </b>" + oCurrentQuestionText + "</span><br />";
           }
           $get('divHistory').innerHTML += "<span class='greyTextSm' style='font-size:70%;'><b>Me. </b>" + selectedAnswerTxt + "</span><br />";    
           if (oCurrentKnowledge.kbAdvice != "")
           {
               $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>Oracles Advice. </b>" + oCurrentKnowledge.kbAdvice + "</span><br />";
           }
           $get('divHistory').innerHTML += "<br />";
           $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>END</span><br />";
       }
       else
       {
           $get('spanAdvice').innerHTML = "";
           if (bMoreDetail == "True")
           {
               $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>Oracle. </b> More detailed answer..." + oCurrentQuestionText + "</span><br />";
               bMoreDetail = "False";
           }
           else
           {
               $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>Oracle. </b>" + oCurrentQuestionText + "</span><br />";
           }
           $get('divHistory').innerHTML += "<span class='greyTextSm' style='font-size:70%;'><b>Me. </b>" + selectedAnswerTxt + "</span><br />";    
           if (oCurrentKnowledge.kbAdvice != "")
           {
               $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>Oracles Advice. </b>" + oCurrentKnowledge.kbAdvice + "</span><br />";
           }
           $get('divHistory').innerHTML += "<br />";
           NathansService.GetNextQuestion(catQuestName, GetQuestion_Response);
           questionNo++;
       }
   }
   else if(nextQuest == "NO_QUEST" || nextQuest == "END_QUEST" || nextQuest == "END_QUEST[S_ELSE]")
   {
       $get('divQuestion').innerHTML = "";
       $get('divQuestionContainer').innerHTML = "<div id='divQuestion'></div><span id='spanThankyou'></span>";
       $get('spanThankyou').innerHTML = "<img id='imgOracle' src='../images/oracle.gif' alt='The Oracle' style='float:right;margin-right:5px;padding-bottom:5px;' /><h2 style='float:right;color:#4D4D4D;background-color:#ffffff;margin-right:5px;margin-top:20px;'>Thank you, The Oracle<br /></h2>";
       $get('divQuestion').innerHTML += "<span class='questText'>" + oSummary + "</span>";
       if (bMoreDetail == "True")
       {
           $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>Oracle. </b> More detailed answer..." + oCurrentQuestionText + "</span><br />";
           bMoreDetail = "False";
       }
       else
       {
           $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>Oracle. </b>" + oCurrentQuestionText + "</span><br />";
       }
       $get('divHistory').innerHTML += "<span class='greyTextSm' style='font-size:70%;'><b>Me. </b>" + selectedAnswerTxt + "</span><br />";    
       if (oCurrentKnowledge.kbAdvice != "")
       {
           $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>Oracles Advice. </b>" + oCurrentKnowledge.kbAdvice + "</span><br />";
       }
       $get('divHistory').innerHTML += "<br />";
       $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>END</span><br />";
   
   }
   else if (nextQuest == "MORE_DETAIL")
   {
       $get('spanAdvice').innerHTML = "<span class='greyText'>Sorry I didn't understand, please can you re-phrase your answer or click on the 'Question Mark' below...<br /></span>";
       $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>Oracle. </b>" + oCurrentQuestionText + "</span><br />";
       $get('divHistory').innerHTML += "<span class='greyTextSm' style='font-size:70%;'><b>Me. </b>" + selectedAnswerTxt + "</span><br />";    
       if (oCurrentKnowledge.kbAdvice != "")
       {
           $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>Oracles Advice. </b>" + oCurrentKnowledge.kbAdvice + "</span><br />";
       }
       $get('divHistory').innerHTML += "<br />";
       NathansService.GetNextQuestion(oCurrentQuestionName, GetQuestion_Response);
       bMoreDetail = "True";
   }
   else
   {  
       if (oCurrentKnowledge.kbAdvice == "")
       {
           $get('spanAdvice').innerHTML = "";
       }
       else
       {
           $get('spanAdvice').innerHTML = "<span class='greyText'>" + oCurrentKnowledge.kbAdvice + "<br /></span>";
       }
       if (bMoreDetail == "True")
       {
           $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>Oracle. </b> More detailed answer..." + oCurrentQuestionText + "</span><br />";
           bMoreDetail = "False";
       }
       else
       {
           $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>Oracle. </b>" + oCurrentQuestionText + "</span><br />";
       }
       $get('divHistory').innerHTML += "<span class='greyTextSm' style='font-size:70%;'><b>Me. </b>" + selectedAnswerTxt + "</span><br />";    
       if (oCurrentKnowledge.kbAdvice != "")
       {
           $get('divHistory').innerHTML += "<span class='questText' style='font-size:70%;'><b>Oracles Advice. </b>" + oCurrentKnowledge.kbAdvice + "</span><br />";
       }
       $get('divHistory').innerHTML += "<br />";
       NathansService.GetNextQuestion(nextQuest, GetQuestion_Response);
       //questionNo++;
   } 
}

function call_failed(args)
{
    
}

