﻿    var sessionID = Math.floor(Math.random()*1000000);
    var timer;
    var waitingForResponse = false;
    var firstTime = true;
    var animationSpeed = .5; // seconds
    var inEaseType = Tween.elasticEaseIn; // strongEaseOut, normalEaseOut
    var outEaseType = Tween.elasticEaseOut; // strongEaseOut, normalEaseOut
    var typingAnswer = false;


    function XmlHttpPost(questionTxt, sendQuestion) {
        var xmlHttpReq = false;
        var self = this;
        var strURL = "QuickQuestionChatter.aspx";
        // Mozilla/Safari
        if (window.XMLHttpRequest) {
            self.xmlHttpReq = new XMLHttpRequest();
        }
        // IE
        else if (window.ActiveXObject) {
            self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
        }
        self.xmlHttpReq.open('POST', strURL, true);
        self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        self.xmlHttpReq.onreadystatechange = function() {
            if (self.xmlHttpReq.readyState == 4) {
                UpdateAnswer(self.xmlHttpReq.responseText);
            }
        }
        
        if(sendQuestion)
        {
            var query; 
            query = 'question=' + escape(questionTxt) + '&sessionID=' + sessionID;
            self.xmlHttpReq.send(query);
        }
        else
        {
            var query; 
            query = 'check=true&sessionID=' + sessionID;
            self.xmlHttpReq.send(query);
        }
    }

    function UpdateAnswer(str){
    
        if(str == "")
        {
            DisableQuestion(true);
            str = "One moment please...";
            document.getElementById("AnswerArea").style.display = "";
        }
        else if(str == "Typing answer...")
        {
            if(!typingAnswer)
                ShakeBox("AnswerArea");
            
            typingAnswer = true;
            document.getElementById("AnswerArea").style.display = "";
        }
        else
        {
            typingAnswer = false;
            LaunchAnswer();
            DisableQuestion(false);
        }
    
        document.getElementById("Answer").innerHTML = str;
    }
    
    
    function AskQuestion()
    {
        if(waitingForResponse)
            return;
        
        var question = document.getElementById("Question").value;

        if(question != "")
        {
            UpdateAnswer("");
            DisableQuestion(true);
            waitingForResponse = true;
            XmlHttpPost(question, true);
            LaunchQuestion();
        }
        else
        {
            UpdateAnswer("Please input a question.");
        }
        
    }
    
    function DisableQuestion(disable)
    {
        document.getElementById("Question").disabled = disable;
    }
    
    
    function LaunchQuestion()
    {
        
    
    
        ShakeBox("QuestionArea");
        timer=setTimeout("CheckAnswer()", 2000)
    }
    
    function CheckAnswer()
    {
        XmlHttpPost("", false);
        timer=setTimeout("CheckAnswer()", 2000)
    }

    function LaunchAnswer()
    {
        ShakeBox("AnswerArea");
        clearTimeout(timer);
        waitingForResponse = false;
    }
    
    function ShakeBox(box)
    {
            
            
        document.getElementById(box).style.display = "";
        var shakeTween = new Tween(document.getElementById(box).style,'left',inEaseType,0,25,animationSpeed,'px');
        shakeTween.onMotionFinished = function(){
            var shakeTween2 = new Tween(document.getElementById(box).style,'left',outEaseType,25,0,animationSpeed,'px');
            shakeTween2.start();
        };

        shakeTween.start();
        
       


    }
    
    function CheckKey() 
    {
        if (event.keyCode == 13) 
        {
            AskQuestion();
        }
    }
