var timerID; 
var refresh_rate = 10000; 
var callsessionid; 

// KNS ++
var intervalID;
var pollStatus=1;
var cust_id = "";
var dept_id = "";
// KNS --

function monitorSite(crmcustId,departmentId)
{
	var visiting_url = window.location; 
	var referrer_url=document.referrer;
	var szRequest="";
	
	cust_id = crmcustId;
	dept_id = departmentId;
	szRequest = "cust_id=";
	szRequest += cust_id;
	szRequest = szRequest +  "&dept_id=" + dept_id +"&visit_url="+visiting_url+"&refUrl="+referrer_url;
	var objHTTP = new ActiveXObject("MSXML2.XMLHttp"); //for ASP.Net
	var szURL = "http://www.voicenow.com/ecrm/ProM/RecordUserVisit.asmx/EnterUserVisitInfo"; // for ASP.Net
	//var szURL = "RecordUserVisit.asmx/EnterUserVisitInfo"; // for ASP.Net
	var szHttpMethod = "POST";
	objHTTP.Open(szHttpMethod, szURL, false);
	objHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	objHTTP.Send(szRequest); //for ASP.Net
	
	var szReply = objHTTP.ResponseText;
	if (objHTTP.status != 200)
	{
		//failure
		szReply = "";
	}

	var objXmlDom = new ActiveXObject("Microsoft.XMLDOM");
	objXmlDom.async="false";
	
	try
	{
		objXmlDom.loadXML(szReply);
		//var nodes = objXmlDom.childNodes;
		var nodes = objXmlDom.documentElement.childNodes;
		callsessionid=nodes[0].text;
		//alert("Call Session ID: "+ callsessionid);
	}
	catch(e)
	{
		var sErr = "Response XML String is messed up B\n" + szReply;
		alert(sErr);
	}
	pollStatus = 1;
	timerID = setTimeout("updateDBIfConnected();",refresh_rate); 
}

function updateDBIfConnected()
{
	//alert("In updateDBIfConnected");
	var szRequest = "CallSessionToken=";
	szRequest += callsessionid;
	var objHTTP = new ActiveXObject("Microsoft.XMLHttp"); //for ASP.Net
	
	var szURL = "http://www.voicenow.com/ecrm/ProM/RecordUserVisit.asmx/ClientIsConnected"; // for ASP.Net
	var szHttpMethod = "POST";
	objHTTP.Open(szHttpMethod, szURL, false);
	objHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	objHTTP.Send(szRequest); //for ASP.Net

	var szReply = objHTTP.ResponseText;
	if (objHTTP.status != 200)
	{
		//failure
		szReply = "";
	}
	
	timerID = setTimeout("updateDBIfConnected();",refresh_rate);
	timerId2 = setTimeout("StartMessagePolling();",5000);
}

// eCRM 2.0 ++ 
// KNS Code for getting new messages
// An XMLHTTP module that checks for new messages every X seconds 
// To be triggered after a successful entry is made in the database.

// The following 5 variables need to be got from somewhere
var callSessToken = callsessionid; //"<%=callSessionToken%>";
var textemail = "support@voicenow.com"; // "<%=textEmail%>"; currently hardcoded

function StartMessagePolling()
{
	if (pollStatus == 1)
	{
		//alert("StartMessagePolling:pollStatus=1")
		clearTimeout(intervalID);
		GetNewMessages();
		var intervalD = setTimeout("StartMessagePolling();",3000);
	}
	else
	{
		StopPolling();
	}
}

function StopPolling()
{
	clearTimeout(intervalID);
}


function GetNewMessages()
{
	var xmlMessages = GetNewMsg();
	var objXmlDom = new ActiveXObject("Microsoft.XMLDOM");
	
	try
	{
		objXmlDom.loadXML(xmlMessages);
		var nodes = objXmlDom.selectNodes("/Response/Message");
		if (nodes.length >0)
		{
			pollStatus = 0;
			window.open("http://crm.voicenow.com/enduser/TextChat/ProActiveChatSession.aspx?&crmcustid=" + cust_id + "&callsessiontoken=" + callsessionid + "&requesttype=proactive",'proMon','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,left=200,top=100,width=460,height=135');
		}					
	}
	catch(e)
	{
		var sErr = "Response XML String is messed up A\n" + xmlMessages;
		alert(sErr);
	}

}

function GetNewMsg()
{
	var szRequest = "<RequestMsg CurrMsgCount='";
	//szRequest += document.ChatReceive.latestCount.value;
	szRequest += "-1";
	szRequest = szRequest +  "' CallSessionToken='" + callsessionid + "'></RequestMsg>";
	//alert(szRequest);
	
	var objHTTP = new ActiveXObject("MSXML2.XMLHttp"); //for ASP.Net
	var szURL = "http://www.voicenow.com/ecrm/ProM/chatread.aspx"; // for ASP.Net
	//var szURL = "chatread.aspx"; // for ASP.Net
	var szHttpMethod = "POST";
	objHTTP.Open(szHttpMethod, szURL, false);
	objHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	objHTTP.Send("xml=" + szRequest); //for ASP.Net
	
	var szReply = objHTTP.ResponseText;
	//alert(objHTTP.status);
	//alert(szReply);
	if (objHTTP.status != 200)
	{
		//failure
		szReply = "";
	}
	return szReply;
}

StartMessagePolling();