
// Copyright (C)2001 Interactive Intelligence Inc.
// All rights reserved, for use only by i3 customers
//
// $Archive:  $
// $Date:  $
// $Revision:    $
// $Author:    $

// Requires Config_Variables.js be included first

var ENDL = "\n";
var chatStarted = false;
var collabStarted = false;

//DSR added for testing purposes
//
//DSR added generic create div function for use with debug window prints
function CreateDiv(root, divName, divClass, styleString, innerHTML)
{
	
	newDiv = root.getElementById(divName);
	
	if(null == newDiv)
	{
		newDiv = root.createElement("div");
		newDiv.className = divClass;
		newDiv.id = divName;
		newDiv.style.cssText = styleString;
		if(null != innerHTML)
		{
			newDiv.innerHTML = innerHTML;
		}

		root.body.appendChild(newDiv);
		
		var addedDiv = root.getElementById(newDiv.id);
		
		return addedDiv;
	}
	else 
	{
	    if(null != innerHTML)
		{
			newDiv.innerHTML += "<br>" + innerHTML;
		}
		return newDiv;
	}
	
}
//
//DSR call this function with the root of the page you want the debug print window to be on
function DebugPrintWindow(root, text)
{
	if(-1 == parent.name.indexOf("Debug")) //check if debug mode enabled by html debug check box
	{
		return;
	}
	var styleString = "position:absolute;left:450px;top:5px;z-index:10;width:350px;height:130px;";
	styleString += "border:1px solid rgb(194,225,254);font: bold 8px verdana;background-color:rgb(0,0,0);text-align:left;";
	styleString += "color:rgb(255,225,255);padding:0px;overflow:auto;";
	
	var outputDiv = CreateDiv(root, "DebugOutput", "className", styleString, text);

}
//
//
function ChatQuery()
{
	DebugPrintWindow(parent.document, "ChatHistory.html: doing query");
	//return;
	
	if (parent.frames['chatHistory'].document.frmInteraction.interactionId.value	!= "" && parent.frames['chatHistory'].document.frmInteraction.interactionId.value !=	"0")
	{
		if (parent.frames['chatHistory'].document.frmInteraction.statusCode.value !=	"4")
		{
			if (document != null)
			{
				parent.frames['chatHistory'].document.frmInteraction.userTypingIndicator.value = document.frmChat.userTypingIndicator.value;
			}
			parent.frames['chatHistory'].document.frmInteraction.action= REL_SERVLET_PATH + "/chat?a=queryStatus";
			parent.frames['chatHistory'].document.frmInteraction.submit();

			if (parent.frames['chatHistory'].document.frmInteraction.xICInteractionID.value != "0")
			{
				document.frmChat.xICInteractionID.value = parent.frames['chatHistory'].document.frmInteraction.xICInteractionID.value;
			}

			return false;
		}
	}
	parent.frames['chatHistory'].document.frmInteraction.message.value =	"";
}
//end DSR add

function disconnectChat(frm)
{
	frm.action = REL_SERVLET_PATH + "/chat?a=disconnect";
	frm.submit();
	return true;
}

//////////////////////////////////////////////////////////
function getStatusText(statusCode)
{
	var status = "";

    if (statusCode.length == 0)
        statusCode = "0";
    
    // NOCONNECTION
    if (statusCode == "0")
        status = parent.NOCONNECTION_TEXT;
    
    // CONNECTING
    if (statusCode == "1")
        status = parent.CONNECTING_TEXT;
    
    // ALERTING
    if (statusCode == "2")
        status = parent.ALERTING_TEXT;
    
    // CONNECTED
    if (statusCode == "3")
        status = parent.CONNECTED_TEXT;

    // DISCONNECTED
    if (statusCode == "4")
        status = parent.DISCONNECTED_TEXT;

	return status;
}

//////////////////////////////////////////////////////////
function getStatusImage(statusCode)
{
    // NOCONNECTION
    if (statusCode == "0" || statusCode == "")
    {
        image = "/I3Root/Images/DisconnectedStatic.gif";
    }
    
    // ALERTING
    if (statusCode == "2")
    {
        image = "/I3Root/Images/ConnectingDynamic.gif";
    }
    
    // CONNECTING
    if (statusCode == "1")
    {
        image = "/I3Root/Images/ConnectingDynamic.gif";
    }
    
    // CONNECTED
    if (statusCode == "3")
    {
        image = "/I3Root/Images/ConnectingStatic.gif";
    }
        

    // DISCONNECTED
    if (statusCode == "4")
    {
        image = "/I3Root/Images/DisconnectedStatic.gif";
    }
    
    return image;
}

//////////////////////////////////////////////////////////
function setUpPolling()
{
	setTimeout('querySession()', POLL_RATE);
}

//////////////////////////////////////////////////////////
function querySession()
{
	var startChat 	= getCookie(PUSHCHAT_KEY);
	var startCollab = getCookie(PUSHCOLLAB_KEY);
	
	var pushURL = getCookie(PUSHURL_KEY);
	var pushMsg	= getCookie(PUSHMSG_KEY); 
	
	if (startChat == "true" && !chatStarted)
	{
		var interactionId 	= getCookie(INTERACTIONID_KEY);
		var target 			= getCookie(TARGET_KEY);
		var sessionId 		= getCookie(SESSIONID_KEY);
		
		var html = genHTML_chat("User Queue:"+target, "0", sessionId, false, false, false, true);
	    windowFeatures = "width=800,height=440,dependent=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes";
		var win = window.open("", "Chat", windowFeatures);
		win.document.write(html);
		
		setCookie(PUSHCHAT_KEY, "", "/");
		startChat = "";
		chatStarted = true;
	}
	
	if (startCollab == "true" && !collabStarted)
	{
		var interactionId 	= getCookie(INTERACTIONID_KEY);
		var target 			= getCookie(TARGET_KEY);
		var sessionId 		= getCookie(SESSIONID_KEY);
		var launchURL 		= getCookie(LAUNCHURL_KEY);

		var html = genHTML_trackerCollaboration("User Queue:"+target, sessionId, launchURL);
		windowFeatures = "width=500,height=40,dependent=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no";
		var win = window.open("", "Collaboration", windowFeatures);
		win.document.write(html);

		setCookie(PUSHCOLLAB_KEY, "", "/");
		startCollab = "";
		collabStarted = true;
	}
	
	if (pushURL != null && pushURL.length > 0)
	{
		if (pushURL.indexOf("http") == -1)
			pushURL = "http://" + pushURL;
			
		windowFeatures = "width=800,height=440,dependent=no,toolbar=yes,location=yes,directories=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes";
		var win = window.open(pushURL, "URL", windowFeatures);
		
		setCookie(PUSHURL_KEY, "", "/");
		pushURL = null;
	}

	if (pushMsg != null && pushMsg !="") {
		alert( pushMsg ); 
		setCookie(PUSHMSG_KEY, "", "/"); 
		pushMsg = null;
	}
	
	document.images['tracker'].src = REL_SERVLET_PATH + "/tracker?a=queryStatus";
	eval(document.images['tracker'].src);
	setUpPolling();
	
}

    
//////////////////////////////////////////////////////////
function loadTracker(page,queue) 
{
	var userId = getCookie(LOGINNAME_KEY);
	if (userId == null)
		userId = "";
		
	var dotNet = "false";
	if (isNET)
		dotNet = "true";
		
    var retVal = "";

    var src = "";
    
    src = REL_SERVLET_PATH + "/tracker?a=trackPage&page=" + page + "&queue="+ queue + "&poll=" + POLLING + "&userId=" + userId + "&dotNet=" + dotNet;
    
    retVal += '<html>' + ENDL;
    retVal += '<img src=' + src + ' width=1 length=1 id=tracker>' + ENDL;
//  retVal += '		<!—misc HTML code goes here -->' + ENDL;
    retVal += '</html>';

    document.write(retVal);

    if (POLLING == "true") setUpPolling();
    
}

function showCookies()
{
    alert( "image onLoad cookies - " + document.cookie );
}


//////////////////////////////////////////////////////////
function genHTML_trackerCollaboration (p_qname, p_sessionId, p_launchURL)
{
    var retVal = "";
    var index = navigator.appVersion.indexOf("MSIE ");
    
    //DSR added for scr #:43921
	if (isLoggedIn ()) 
	{
		PARTY_NAME = getLoginId();
	}
	else
	{
		PARTY_NAME = "Sample User";
	}
	
    if (index > -1)
    {
		if (parseInt(navigator.appVersion.substring(index)) < 6)
		{
			retVal += '<HTML>BODY><br><br>&nbsp;&nbsp;Version 6.0 or later of Internet Explorer is required to run Collaboration.</BODY></HTML>';
			return retVal;
		}
	}

   	var postUrl = "http://" + parent.location.host + REL_SERVLET_PATH + "/";
	var cabVersion = "1,0,0,8";

	if (p_launchURL.length == 0) {
		p_launchURL = LAUNCHURL;
	}

	retVal = '<HTML>' + ENDL;
	
	retVal += '<script type="text/JavaScript"><!--' + ENDL;
	retVal += 'function closeIt() { window.close(); }' + ENDL;
	retVal += '//--></script>' + ENDL;

	retVal += '<BODY style="margin:0px;" scroll="no">' + ENDL;

	retVal += '<OBJECT id="Downloader" ';
	retVal += 'codebase="AxDownloader.cab#version='+cabVersion+'"';
	retVal += 'style="WIDTH: 100%; HEIGHT: 100%" ';
	retVal += 'classid="clsid:A01F3506-7399-43CD-941E-C12EEC37E030" >' + ENDL; 
	
	retVal += '<param name="LAUNCHURL"		value=/LAUNCHURL="'		+ p_launchURL	+ '">' + ENDL;
	retVal += ('<param name="NOCHAT"		value=/NOCHAT="'		+ NOCHAT		+ '">') + ENDL;
	retVal += ('<param name="NOCOLLAB"		value=/NOCOLLAB="'		+ NOCOLLAB		+ '">') + ENDL;
	retVal += '<param name="PARTY_NAME"		value=/PARTY_NAME="'	+ removeSpaces(PARTY_NAME)	+ '">' + ENDL;
	retVal += ('<param name="QUEUE"			value=/QUEUE="'			+ removeSpaces(p_qname)		+ '">') + ENDL;
	retVal += ('<param name="POSTURL"		value=/POSTURL="'		+ postUrl		+ '">') + ENDL;
	retVal += '<param name="USERID"			value=/USERID="'		+ removeSpaces(USERID)		+ '">' + ENDL;
	retVal += ('<param name="USER_COLOR0"	value=/USER_COLOR0="'	+ DOT_NET_CHAT_USER_COLOR0		+ '">') + ENDL;
	retVal += ('<param name="USER_COLOR1"	value=/USER_COLOR1="'	+ DOT_NET_CHAT_USER_COLOR1		+ '">') + ENDL;
	retVal += ('<param name="USER_COLOR2"	value=/USER_COLOR2="'	+ DOT_NET_CHAT_USER_COLOR2		+ '">') + ENDL;
	retVal += ('<param name="USER_COLOR3"	value=/USER_COLOR3="'	+ DOT_NET_CHAT_USER_COLOR3		+ '">') + ENDL;
	retVal += ('<param name="USER_COLOR4"	value=/USER_COLOR4="'	+ DOT_NET_CHAT_USER_COLOR4		+ '">') + ENDL;
	retVal += '</OBJECT>';
	
	retVal += '</BODY></HTML>';

	// Removing because it looks like the browser window is
	// closing before the control has a chance to start.
	// SCR 40622.  -Jared Alford
	// retVal += '<script type="text/JavaScript"><!--' + ENDL;
	// retVal += 'setTimeout("closeIt()", 60000)' + ENDL;
	// retVal += '//--></script>' + ENDL;

    return retVal;
}

//////////////////////////////////////////////////////////
function genHTML_collaboration (p_qname)
{
    var retVal = "";
    var index = navigator.appVersion.indexOf("MSIE ");
    if (index > -1)
    {
		if (parseInt(navigator.appVersion.substring(index)) < 6)
		{
			retVal += '<HTML>BODY><br><br>&nbsp;&nbsp;Version 6.0 or later of Internet Explorer is required to run Collaboration.</BODY></HTML>';
			return retVal;
		}
	}

	//DSR added for scr #:43921
	if (isLoggedIn ()) 
	{
		PARTY_NAME = getLoginId();
	}
	else
	{
		PARTY_NAME = "Sample User";
	}

   	var postUrl = "http://" + parent.location.host+ REL_SERVLET_PATH + "/";
	var cabVersion = "1,0,0,8";

	retVal = '<HTML>' + ENDL;
	
	retVal += '<script type="text/JavaScript"><!--' + ENDL;
	retVal += 'function closeIt() { window.close(); }' + ENDL;
	retVal += '//--></script>' + ENDL;

	retVal += '<BODY style="margin:0px;" scroll="no">' + ENDL;

	retVal += '<OBJECT id="Downloader" ';
	retVal += 'codebase="AxDownloader.cab#version='+cabVersion+'"';
	retVal += 'style="WIDTH: 100%; HEIGHT: 100%" ';
	retVal += 'classid="clsid:A01F3506-7399-43CD-941E-C12EEC37E030" >' + ENDL; 
	
	retVal += '<param name="LAUNCHURL"	value=/LAUNCHURL="'	+ LAUNCHURL			+ '">' + ENDL;
	retVal += ('<param name="NOCHAT"	value=/NOCHAT="'	+ NOCHAT			+ '">') + ENDL;
	retVal += ('<param name="NOCOLLAB"	value=/NOCOLLAB="'	+ NOCOLLAB			+ '">') + ENDL;
	retVal += '<param name="PARTY_NAME"	value=/PARTY_NAME="'	+ removeSpaces(PARTY_NAME)	+ '">' + ENDL;
	retVal += ('<param name="QUEUE"		value=/QUEUE="'		+ removeSpaces(p_qname)		+ '">') + ENDL;
	retVal += ('<param name="POSTURL"	value=/POSTURL="'	+ postUrl			+ '">') + ENDL;
	retVal += '<param name="USERID"		value=/USERID="'	+ removeSpaces(USERID)		+ '">' + ENDL;
	retVal += ('<param name="USER_COLOR0"	value=/USER_COLOR0="'	+ DOT_NET_CHAT_USER_COLOR0	+ '">') + ENDL;
	retVal += ('<param name="USER_COLOR1"	value=/USER_COLOR1="'	+ DOT_NET_CHAT_USER_COLOR1	+ '">') + ENDL;
	retVal += ('<param name="USER_COLOR2"	value=/USER_COLOR2="'	+ DOT_NET_CHAT_USER_COLOR2	+ '">') + ENDL;
	retVal += ('<param name="USER_COLOR3"	value=/USER_COLOR3="'	+ DOT_NET_CHAT_USER_COLOR3	+ '">') + ENDL;
	retVal += ('<param name="USER_COLOR4"	value=/USER_COLOR4="'	+ DOT_NET_CHAT_USER_COLOR4	+ '">') + ENDL;
	retVal += '</OBJECT>';
	
	retVal += '</BODY></HTML>';

	// Removing because it looks like the browser window is
	// closing before the control has a chance to start.
	// SCR 40622.  -Jared Alford
	// retVal += '<script type="text/JavaScript"><!--' + ENDL;
	// retVal += 'setTimeout("closeIt()", 60000)' + ENDL;
	// retVal += '//--></script>' + ENDL;

    return retVal;
}

//////////////////////////////////////////////////////////
function genHTML_instant_question(p_qname, p_useDebug, p_usePopup)
{
    var retVal = "";
    
    retVal = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"' + ENDL;
    retVal += '"http://www.w3.org/TR/html4/strict.dtd">' + ENDL;
    retVal += genHTMLHeader(IQ_NAME, "0", "0", p_useDebug, p_qname, p_usePopup);
    retVal += '    <frameset cols="*,150">' + ENDL;
    retVal += '        <frameset rows="1,*,30">' + ENDL;
    retVal += '            <frame src="/I3Root/IQQuery.html" name="iqQuery" id="iqQuery" frameborder="1" marginwidth="0" marginheight="0" scrolling="no">' + ENDL;
    retVal += '            <frame src="/I3Root/IQAnswer.html" name="iqAnswer" id="iqAnswer" frameborder="1" marginwidth="0" marginheight="0" scrolling="no">' + ENDL;
    retVal += '            <frame src="/I3Root/IQ.html" name="iq" id="iq" frameborder="1" marginwidth="0" marginheight="0" scrolling="no">' + ENDL;
    retVal += '        </frameset>' + ENDL;
    retVal += '        <frameset rows="150,*">' + ENDL;
    retVal += '            <frame src="/I3Root/Logo.html" name="iqLogo" id="iqLogo" frameborder="1" marginwidth="0" marginheight="0" scrolling="no">' + ENDL;
    retVal += '            <frame src="/I3Root/IQConnection.html" name="iqConnection" id="iqConnection" frameborder="1" marginwidth="0" marginheight="0" scrolling="auto">' + ENDL;
    retVal += '        </frameset>' + ENDL;
    retVal += '    </frameset>' + ENDL;
    retVal += '</html>' + ENDL;

    return retVal;
}

//////////////////////////////////////////////////////////
function genHTML_callback(p_qname, p_useDebug, p_usePopup)
{
    var retVal = "";
    
    retVal = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"' + ENDL;
    retVal += '"http://www.w3.org/TR/html4/strict.dtd">' + ENDL;
    retVal += genHTMLHeader(CB_NAME, "0", "0", p_useDebug, p_qname, p_usePopup);
    retVal += '    <frameset cols="*,180">' + ENDL;
    retVal += '        <frameset rows="1,300,*" >' + ENDL;
    retVal += '            <frame src="/I3Root/CBResponse.html" name="cbResponse" id="cbResponse" frameborder="1" scrolling="yes">' + ENDL;
    retVal += '            <frame src="/I3Root/CBInfo.html" name="cbInfo" id="cbInfo" frameborder="1" scrolling="no">' + ENDL;
    retVal += '            <frame src="/I3Root/CBResponseText.html" name="cbResponseText" id="cbResponseText" frameborder="1" scrolling="yes">' + ENDL;
    retVal += '        </frameset>' + ENDL;
    retVal += '        <frameset rows="*">' + ENDL;
    retVal += '            <frame src="/I3Root/Logo.html" name="iqLogo" id="iqLogo" frameborder="1" scrolling="no">' + ENDL;
    retVal += '        </frameset>' + ENDL;
    retVal += '    </frameset>' + ENDL;
    retVal += '</html>' + ENDL;
    
    return retVal;
}

//////////////////////////////////////////////////////////
function genHTML_chat(p_qname, p_interactionId, p_sessionId, p_useDebug, p_usePopup, p_useApplet, p_usehtml)
{
    var retVal = "";

    //DSR added for scr #:43921
    if(isLoggedIn()) 
    {
        PARTY_NAME = getLoginId();
    }
    else
    {
        PARTY_NAME = "Sample User";
    }
    if(!p_usehtml && !p_useApplet)
    {
        var postUrl = "http://" + parent.location.host+ REL_SERVLET_PATH + "/";
        var cabVersion = "1,0,0,7";
        var noChat = "false";
        var noCollab = "true";

        retVal = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">' + ENDL;
        retVal += '<html>' + ENDL;
        retVal += '    <head>' + ENDL;
        retVal += '        <meta name="author" content="Interactive Intelligence">' + ENDL;
        retVal += '        <meta http-equiv="content-type" content="text/html; charset=utf-8">' + ENDL;
        retVal += '        <meta http-equiv="cache-control" content="no-cache">' + ENDL;
        retVal += '        <meta http-equiv="expires" content="0">' + ENDL;
        retVal += '        <title>' + CHAT_NAME + '</title>' + ENDL;
        retVal += '        <script type="text/javascript">' + ENDL;
        retVal += '        function closeIt()' + ENDL;
        retVal += '        {' + ENDL;
        retVal += '            window.close();' + ENDL;
        retVal += '        }' + ENDL;
        retVal += '        </script>' + ENDL;
        retVal += '        <style type="text/css">' + ENDL;
        retVal += '            body.c2 {margin:0px;}' + ENDL;
        retVal += '            object.c1 {WIDTH: 100%; HEIGHT: 100%}' + ENDL;
        retVal += '        </style>' + ENDL;
        retVal += '    </head>' + ENDL;
        retVal += '    <body class="c2">' + ENDL;
        retVal += '        <object id="Downloader" codebase="AxDownloader.cab#version=' + cabVersion + '" class="c1" classid="clsid:A01F3506-7399-43CD-941E-C12EEC37E030">' + ENDL;
        retVal += '            <param name="WEBSESSIONID" value=/WEBSESSIONID="' + p_sessionId + '">' + ENDL;
        retVal += '            <param name="INTERACTIONID" value=/INTERACTIONID="' + p_interactionId + '">' + ENDL;
        retVal += '            <param name="NOCHAT" value=/NOCHAT="' + noChat + '">' + ENDL;
        retVal += '            <param name="NOCOLLAB" value=/NOCOLLAB="' + noCollab + '">' + ENDL;
        retVal += '            <param name="PARTY_NAME" value=/PARTY_NAME="' + removeSpaces(PARTY_NAME) + '">' + ENDL;
        retVal += '            <param name="QUEUE" value=/QUEUE="' + removeSpaces(p_qname) + '">' + ENDL;
        retVal += '            <param name="POSTURL" value=/POSTURL="' + postUrl + '">' + ENDL;
        retVal += '            <param name="USERID" value=/USERID="' + removeSpaces(USERID) + '">' + ENDL;
        retVal += '            <param name="USER_COLOR0" value=/USER_COLOR0="' + DOT_NET_CHAT_USER_COLOR0 + '">' + ENDL;
        retVal += '            <param name="USER_COLOR1" value=/USER_COLOR1="' + DOT_NET_CHAT_USER_COLOR1 + '">' + ENDL;
        retVal += '            <param name="USER_COLOR2" value=/USER_COLOR2="' + DOT_NET_CHAT_USER_COLOR2 + '">' + ENDL;
        retVal += '            <param name="USER_COLOR3" value=/USER_COLOR3="' + DOT_NET_CHAT_USER_COLOR3 + '">' + ENDL;
        retVal += '            <param name="USER_COLOR4" value=/USER_COLOR4="' + DOT_NET_CHAT_USER_COLOR4 + '">' + ENDL;
        retVal += '            <param name="LAUNCHURL" value=/LAUNCHURL="' + LAUNCHURL + '">' + ENDL;
        retVal += '        </object>' + ENDL;
        retVal += "    </body>" + ENDL;
        retVal += "</html>" + ENDL;
 


        // Removing because it looks like the browser window is
        // closing before the control has a chance to start.
        // SCR 40622.  -Jared Alford
        // retVal += '<script type="text/javascript"><!--' + ENDL;
        // retVal += 'setTimeout("closeIt()", 10000)' + ENDL;
        // retVal += '//--></script>' + ENDL;



    }
    else if(p_useApplet)
    {
        retVal = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">' + ENDL;
        retVal += '<html>' + ENDL;
        retVal += '    <head>' + ENDL;
        retVal += '        <meta name="author" content="Interactive Intelligence">' + ENDL;
        retVal += '        <meta http-equiv="content-type" content="text/html; charset=utf-8">' + ENDL;
        retVal += '        <meta http-equiv="cache-control" content="no-cache">' + ENDL;
        retVal += '        <meta http-equiv="expires" content="0">' + ENDL;
        retVal += '        <title>' + CHAT_NAME + '</title>' + ENDL;
        retVal += '    </head>' + ENDL;
        retVal += '    <body>' + ENDL;
        if(navigator.appVersion.indexOf("MSIE")!=-1)
        {
            retVal += genIEHeader(CHAT_NAME, 
                                  CHAT_CODE, 
                                  CHAT_CODEBASE,
                                  CHAT_ARCHIVE,
                                  CHAT_WIDTH,
                                  CHAT_HEIGHT,
                                  p_useDebug,
                                  p_qname,
                                  p_usePopup);
            retVal += '            <param name="POLL_RATE" value="' + POLL_RATE + '">' + ENDL;
            retVal += '            <param name="PROTOCOL" value="' + PROTOCOL + '">' + ENDL;
            retVal += '            <param name="USE_DOUBLE_BYTE" value="' + USE_DOUBLE_BYTE + '">' + ENDL;
            retVal += '            <param name="PARTY_EMAIL" value="' + PARTY_EMAIL + '">' + ENDL;
            retVal += '            <param name="PARTY_PHONE" value="' + PARTY_PHONE + '">' + ENDL;
            retVal += '            <param name="PARTY_NAME" value="' + PARTY_NAME + '">' + ENDL;
            retVal += '            <param name="USER_COLOR0" value="' + JAVA_APPLET_CHAT_USER_COLOR0 + '">' + ENDL;
            retVal += '            <param name="USER_COLOR1" value="' + JAVA_APPLET_CHAT_USER_COLOR1 + '">' + ENDL;
            retVal += '            <param name="USER_COLOR2" value="' + JAVA_APPLET_CHAT_USER_COLOR2 + '">' + ENDL;
            retVal += '            <param name="USER_COLOR3" value="' + JAVA_APPLET_CHAT_USER_COLOR3 + '">' + ENDL;
            retVal += '            <param name="USER_COLOR4" value="' + JAVA_APPLET_CHAT_USER_COLOR4 + '">' + ENDL;
            retVal += '            You must install the Java runtime environment in order to use Java chat' + ENDL;
            retVal += '        </object>' + ENDL;
        }
        else
        {
            retVal += genHeader(CHAT_NAME, 
                                CHAT_CODE, 
                                CHAT_CODEBASE, 
                                CHAT_ARCHIVE, 
                                CHAT_WIDTH, 
                                CHAT_HEIGHT, 
                                p_useDebug, 
                                p_qname, 
                                p_usePopup);
            retVal += '            <param name="POLL_RATE" value="' + POLL_RATE + '">' + ENDL;
            retVal += '            <param name="PROTOCOL" value="' + PROTOCOL + '">' + ENDL;
            retVal += '            <param name="USE_DOUBLE_BYTE" value="' + USE_DOUBLE_BYTE + '">' + ENDL;
            retVal += '            <param name="PARTY_EMAIL" value="' + PARTY_EMAIL + '">' + ENDL;
            retVal += '            <param name="PARTY_PHONE" value="' + PARTY_PHONE + '">' + ENDL;
            retVal += '            <param name="PARTY_NAME" value="' + PARTY_NAME + '">' + ENDL;
            retVal += '            <param name="USER_COLOR0" value="' + JAVA_APPLET_CHAT_USER_COLOR0 + '">' + ENDL;
            retVal += '            <param name="USER_COLOR1" value="' + JAVA_APPLET_CHAT_USER_COLOR1 + '">' + ENDL;
            retVal += '            <param name="USER_COLOR2" value="' + JAVA_APPLET_CHAT_USER_COLOR2 + '">' + ENDL;
            retVal += '            <param name="USER_COLOR3" value="' + JAVA_APPLET_CHAT_USER_COLOR3 + '">' + ENDL;
            retVal += '            <param name="USER_COLOR4" value="' + JAVA_APPLET_CHAT_USER_COLOR4 + '">' + ENDL;
            retVal += '            You must install the Java runtime environment in order to use Java chat' + ENDL;
            retVal += '        </applet>' + ENDL;
        }
        retVal += "    </body>" + ENDL;
        retVal += "</html>" + ENDL;
    }
    else
    {
        retVal = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"' + ENDL;
        retVal += '"http://www.w3.org/TR/html4/strict.dtd">' + ENDL;
        retVal += genHTMLHeader(CHAT_NAME, p_sessionId, p_interactionId, p_useDebug, p_qname, p_usePopup);
        retVal += '    <frameset cols="*,150">' + ENDL;

        //DSR added to make room for debug window
        if(true == p_useDebug)
        {
            retVal += '        <frameset rows="*,150,20">' + ENDL;
        }
        else
        {
            retVal += '        <frameset rows="*,60,20">' + ENDL;
        }
        //End DSR add
        retVal += '            <frame src="/I3Root/ChatHistoryText.html" name="chatHistoryText" id="chatHistoryText" frameborder="1" marginwidth="0" marginheight="0" scrolling="yes">' + ENDL;
        retVal += '            <frame src="/I3Root/Chat.html" name="chatText" id="chatText" frameborder="1" marginwidth="0" marginheight="0" scrolling="no" noresize="noresize">' + ENDL;
        retVal += '            <frame src="/I3Root/ChatIndicator.html" name="chatIndicator" id="chatIndicator" frameborder="1" marginwidth="0" marginheight="0" scrolling="no" noresize="noresize">' + ENDL;
        retVal += '        </frameset>' + ENDL;
        retVal += '        <frameset rows="150,100,*,60,1">' + ENDL;
        retVal += '            <frame src="/I3Root/Logo.html" name="chatLogo" id="chatLogo" frameborder="1" marginwidth="0" marginheight="0" scrolling="no" noresize="noresize">' + ENDL;
        retVal += '            <frame src="/I3Root/ChatParties.html" name="chatParties" id="chatParties" frameborder="1" marginwidth="0" marginheight="0" scrolling="auto">' + ENDL;
        retVal += '            <frame src="/I3Root/ChatAgent.html" name="chatAgent" id="chatAgent" frameborder="1" marginwidth="0" marginheight="0" scrolling="auto" noresize="noresize">' + ENDL;
        retVal += '            <frame src="/I3Root/ChatStatus.html" name="chatStatus" id="chatStatus" frameborder="1" marginwidth="0" marginheight="0" scrolling="no" noresize="noresize">' + ENDL;
        retVal += '            <frame src="/I3Root/ChatHistory.html" name="chatHistory" id="chatHistory" frameborder="1" marginwidth="0" marginheight="0" scrolling="no">' + ENDL;
        retVal += '        </frameset>' + ENDL;
        retVal += '    </frameset>' + ENDL;
        retVal += '</html>' + ENDL;
    }

    return retVal;
}

//////////////////////////////////////////////////////////
function genParam (p_name, p_value){
   return '<param name="'+p_name+'" value="'+p_value+'"> ' + ENDL;
}

//////////////////////////////////////////////////////////
function genIEHeader (p_name, p_code, p_codebase, p_jarName, p_w, p_h, p_debug, p_queue, p_usePopup)
{
    var retVal = '        <object id="' + p_name + '" codebase="http://java.sun.com/update/1.4.2/jinstall-1_4-windows-i586.cab#Version=1,4,0,0" classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" ';

    if(p_usePopup)
    {
        retVal += 'width="1" height="1" name="' + p_name + '">' + ENDL;
    }
    else
    {
        retVal += 'width="' + p_w + '" height="' + p_h + '" name="' + p_name + '">' + ENDL;
    }
    if(p_debug) 
    {
        retVal += '            ' + genParam('TRACELEVEL', '15');
    }
    retVal += '            ' + genParam('archive', p_jarName);
    retVal += '            ' + genParam('codebase', p_codebase);
    retVal += '            ' + genParam('code', p_code);
    if(p_usePopup) 
    {
        retVal += '            ' + genParam('IS_EMBEDDED', 'false');
    }
    else
    {
        retVal += '            ' + genParam('IS_EMBEDDED', 'true');
    }
    retVal += '            ' + genParam('WEBFILTER_PATH', REL_SERVLET_PATH);
    retVal += '            ' + genParam('QUEUE', p_queue);

    return retVal;
}

//////////////////////////////////////////////////////////
function genHeader (p_name, p_code, p_codebase, p_jarName, p_w, p_h, p_debug, p_queue, p_usePopup)
{
    var retVal = '        <applet id="' + p_name + '" code="' + p_code + '" archive="' + p_jarName + '" codebase="' + p_codebase + '" ';

    if(p_usePopup)
    {
        retVal += 'width="1" height="1" name="' + p_name + '">' + ENDL;
    }
    else
    {
        retVal += 'width="' + p_w + '" height="' + p_h + '" name="' + p_name + '">' + ENDL;
    }
    if(p_debug) 
    {
        retVal += '            ' + genParam('TRACELEVEL', '15');
    }
    if(p_usePopup) 
    {
        retVal += '            ' + genParam('IS_EMBEDDED', 'false');
    }
    else
    {
        retVal += '            ' + genParam('IS_EMBEDDED', 'true');
    }
    retVal += '            ' + genParam('WEBFILTER_PATH', REL_SERVLET_PATH);
    retVal += '            ' + genParam('QUEUE', p_queue);

    return retVal;
}

//////////////////////////////////////////////////////////
function genHTMLHeader(p_name, p_sessionId, p_interactionId, p_debug, p_queue, p_usePopup)
{
    var retVal = "";

    //DSR added for scr #:43921
    if(isLoggedIn()) 
    {
        PARTY_NAME = getLoginId();
    }
    else
    {
        PARTY_NAME = "Sample User";
    }
    //retVal = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"' + ENDL;
    //retVal += '"http://www.w3.org/TR/html4/strict.dtd">' + ENDL;
    retVal = '<html>' + ENDL;
    retVal += '    <head>' + ENDL;
    retVal += '        <meta name="author" content="Interactive Intelligence">' + ENDL;
    retVal += '        <meta http-equiv="content-type" content="text/html; charset=utf-8">' + ENDL;
    retVal += '        <meta http-equiv="cache-control" content="no-cache">' + ENDL;
    retVal += '        <meta http-equiv="expires" content="0">' + ENDL;
    retVal += '        <base target="top">' + ENDL;
    retVal += '        <link rel="stylesheet" type="text/css" href="/I3Root/Styles/Text.css">' + ENDL;
    retVal += '        <title>' + p_name + '</title>' + ENDL;
    retVal += '        <script type="text/javascript">' + ENDL;
    retVal += '            document.cookie = "cookies=true";' + ENDL;
    retVal += '            if(document.cookie == "")' + ENDL;
    retVal += '            {' + ENDL;
    retVal += '                document.write("Web Interactions cannot be run without session cookies enabled.  If you are using IE 6.x, select Tools|Internet Options from the browser menu.  Select the Privacy tab, then the Advanced button.  Make sure the <u>Always allow session cookies<\/u> option is enabled.  This does not write any cookies to your machine, but allows a particular web session to pass cookies back and forth.");' + ENDL;
    retVal += '                document.close();' + ENDL;
    retVal += '            }' + ENDL;
    if(p_debug)
        retVal += '            var TRACELEVEL=15;' + ENDL;
    else
        retVal += '            var TRACELEVEL=1;' + ENDL;
    retVal += '            var WEBSESSIONID="' + p_sessionId + '";' + ENDL;
    retVal += '            var INTERACTIONID="' + p_interactionId + '";' + ENDL;
    retVal += '            var POLL_RATE="' + POLL_RATE + '";' + ENDL;
    retVal += '            var PROTOCOL="' + PROTOCOL + '";' + ENDL;
    retVal += '            var QUEUE="' + p_queue + '";' + ENDL;
    retVal += '            var I3PATH="' + I3PATH + '";' + ENDL;
    retVal += '            var LAUNCHURL="' + LAUNCHURL + '";' + ENDL;
    retVal += '            var PARTY_NAME="' + PARTY_NAME + '";' + ENDL;
    retVal += '            var PARTY_EMAIL="' + PARTY_EMAIL + '";' + ENDL;
    retVal += '            var PARTY_PHONE="' + PARTY_PHONE + '";' + ENDL;
    retVal += '            var USERID="' + USERID + '";' + ENDL;
    retVal += '            var CUSTOM_INFO="' + CUSTOM_INFO + '";' + ENDL;
    retVal += '            var IMG_ROOT="' + IMG_ROOT + '";' + ENDL;
    retVal += '            var IMG_SUFFIX="' + IMG_SUFFIX + '";' + ENDL;
    retVal += '            var IMG_DEFAULT="' + IMG_DEFAULT + '";' + ENDL;
    retVal += '            var IMG_LOGO_ACTIVE="' + IMG_LOGO_ACTIVE + '";' + ENDL;
    retVal += '            var TYPING_INDICATOR_TEXT="' + TYPING_INDICATOR_TEXT + '";' + ENDL;
    retVal += '            var NOCONNECTION_TEXT="' + NOCONNECTION_TEXT + '";' + ENDL;
    retVal += '            var CONNECTING_TEXT="' + CONNECTING_TEXT + '";' + ENDL;
    retVal += '            var ALERTING_TEXT="' + ALERTING_TEXT + '";' + ENDL;
    retVal += '            var CONNECTED_TEXT="' + CONNECTED_TEXT + '";' + ENDL;
    retVal += '            var DISCONNECTED_TEXT="' + DISCONNECTED_TEXT + '";' + ENDL;
    retVal += '            var USER_COLOR0="' + JAVA_APPLET_CHAT_USER_COLOR0 + '";' + ENDL;
    retVal += '            var USER_COLOR1="' + JAVA_APPLET_CHAT_USER_COLOR1 + '";' + ENDL;
    retVal += '            var USER_COLOR2="' + JAVA_APPLET_CHAT_USER_COLOR2 + '";' + ENDL;
    retVal += '            var USER_COLOR3="' + JAVA_APPLET_CHAT_USER_COLOR3 + '";' + ENDL;
    retVal += '            var USER_COLOR4="' + JAVA_APPLET_CHAT_USER_COLOR4 + '";' + ENDL;
    retVal += '        </script>' + ENDL;
    retVal += '    </head>' + ENDL;

    return retVal;
}

//////////////////////////////////////////////////////////
function getFrame(p_name, p_qname, p_interactionId, p_sessionId, p_useDebug, p_usePopup, p_useApplet, p_usehtml)
{
    var retVal = "";
    var frameName = "frameit";
	
    //DSR add debug check
    var startIndex = p_name.indexOf("Debug")

    if(-1 != startIndex)
    {
        p_name = p_name.substr(0, startIndex);
        frameName +="Debug";
    }
    //End DSR check
	
    retVal = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"' + ENDL;
    retVal += '"http://www.w3.org/TR/html4/loose.dtd">' + ENDL;
    retVal += genHTMLHeader(p_name, p_sessionId, p_interactionId, p_useDebug, p_qname, p_usePopup);
    retVal += '    <body>' + ENDL;
    if(p_name == "chat")
    {
        retVal += '        <iframe src="/I3Root/ChatFrame.html" frameborder="0" name="'+ frameName + '" id="frameit" class="IFrameStyle"';
        retVal += ' height="' + CB_HEIGHT + '"';
        retVal += ' width="' + CB_WIDTH + '"';
    }
    else if (p_name == "instantquestion")
    {
        retVal += '        <iframe src="/I3Root/IQFrame.html" frameborder="0" name="frameit" id="frameit" class="IFrameStyle"';
        retVal += ' height="' + CB_HEIGHT + '"';
        retVal += ' width="' + CB_WIDTH + '"';
    }
    else if (p_name == "callback")
    {
        retVal += '        <iframe src="/I3Root/CBFrame.html" frameborder="0" name="frameit" id="frameit" class="IFrameStyle"';
        retVal += ' height="' + CB_HEIGHT + '"';
        retVal += ' width="' + CB_WIDTH + '"';
    }
    retVal += '>' + ENDL;
    retVal += '        </iframe>' + ENDL;
    retVal += "    </body>" + ENDL;
    retVal += "</html>" + ENDL;
     
    return retVal;
}

//////////////////////////////////////////////////////////
function removeSpaces(p_string)
{
	p_string = p_string.replace(" ", "^");
	return p_string;
}

//////////////////////////////////////////////////////////
function getColors(p_parties)
{
}
