﻿// JScript File
var requestObj;
var loadingText = "Loading..."
var outputDivId = "infobox";
function GetXMLHttp() {
    requestObj = false;
    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
    	try {
			requestObj = new XMLHttpRequest();
        } catch(e) {
			requestObj = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	requestObj = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		requestObj = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		requestObj = false;
        	}
		}
    }
    return requestObj;
}


// parameters expected:
// URL: the URL of the page (e.g. Caption.ashx)
// parameters: the query string to conatenate to the URL (e.g. ?CaptionID=1)
// finishHandler: what function to be called when the request returns.
function StartRequest(url, parameters , finishHandler) {    
    requestObj = false;    
    requestObj = GetXMLHttp();    
    if(requestObj)
    {
        // browser successfully returned XML request object          
        // set the functions to be called when the request completes
        requestObj.onreadystatechange = finishHandler;        
        requestObj.open("GET", url+ parameters, true);        
        var resultDiv = document.getElementById(outputDivId);
        // set the result div to show whatever the text in loadingText is set to
        // this can be set in the calling method and can be text or html
        // a progressbar maybe?
        resultDiv.innerHTML = loadingText;        
        requestObj.send(null);
    }
}

function FillCaptionDivContent(captionID)
{
    //alert("starting fillCaptionDivCOntent" + captionID);
    var url = "AjaxHandler.ashx";
    var parameters = "?CaptionID="+ captionID + "&fn=caption";
    outputDivId = "captionDiv";
  //  alert("will now call start request in fillCaptionDivContent with url" + url+parameters);
    StartRequest(url , parameters , CaptionRequestComplete);        
}

function CaptionRequestComplete()
{
    if(requestObj && requestObj.readyState == 4)
    {
        if(requestObj.status == 200 || requestObj.status == 0)
        {
        //alert("request finished");
            var captionDiv = document.getElementById(outputDivId);
            //alert("return captionDiv = " + captionDiv);
            if(captionDiv)
            {
                var xmlDoc = requestObj.responseXML.documentElement;  
                var captionText = xmlDoc.getElementsByTagName("CaptionText")[0];   
//                alert("xmlhttp return:" + captionText);                 
                if(captionText)
                {
                    captionDiv.innerHTML = captionText.firstChild.data;
                }
                else
                {
                    var error = xmlDoc.getElementsByTagName("Error");
                    if(error)
                    {                    
                        captionDiv.innerHTML = "Error retrieving caption";//error;
                    }
                }                    
            }
            else
            {
                alert("outputDivId set to  " + outputDivId + "not found.")
            }
        }
    }
}


// fills the speakersHolderDiv with the speakers for this event
// viewMethod can be either 'norm' or 'chron' (chronological)
function FillSpeakersDivContent(siteID,eventID , viewMethod)
{
    var url = "AjaxHandler.ashx";
    var parameters = "?SiteID="+siteID+"&EventID="+ eventID + "&fn=speakers"+"&view="+viewMethod;
    outputDivId = "divSpeakerHolder";    
    StartRequest(url , parameters , SpeakersRequestComplete);        
}


// called when a postback call is completed.
// fills outputDivId set in FillSpeakersDivContent with the
// result from the request (ajaxhandler.aspx currently returns html so we want the innerText no the innerXML)
function SpeakersRequestComplete()
{
    if(requestObj && requestObj.readyState == 4)
    {
        if(requestObj.status == 200 || requestObj.status == 0)
        {
            var speakerDiv = document.getElementById(outputDivId);
            if(speakerDiv)
            {            
                speakerDiv.innerHTML = requestObj.responseText; 
            }
            else
            {
                alert("outputDivId set to  " + outputDivId + "not found.")
            }
        }
    }
}
