var LP_SERVICE_UP = 0;
var LP_SERVICE_UNAVAILABLE = -1;
var LP_REPS_UNAVAILABLE = -2;

if (typeof(lpServerName) == "undefined")
	lpServerName = "server.iad.liveperson.net";

var lpDOM = (document.getElementById) ? true : false;
var lpIE = (document.all) ? true : false;
var lpMAC_IE = ((navigator.platform) && (navigator.platform.toUpperCase().indexOf("MAC") >= 0) && (lpIE));
var lpFindQueueStatsImage = new Image();
var LPProtocol = document.location.toString().indexOf("https") == 0 ? "https" : "http";

if ((! lpIE) && (lpDOM))
{
	lpFindQueueStatsImage = document.createElement('IMG');
	lpFindQueueStatsImage.style.visibility = "hidden";
	document.body.appendChild(lpFindQueueStatsImage);
} else
if (lpMAC_IE)
{
	document.writeln("<div style='visibility:hidden'><img src='blank' id='lpFindQueueStatsImage' name='lpFindQueueStatsImage'></div>");
	lpFindQueueStatsImage = document.lpFindQueueStatsImage;
}

function lpGetDate()
{
	var d = new Date();
	return d.getTime();
}

var lpCountUnavailable = 0;
var lpStopPolling = false;

function lpFindQueueStatsCheckImage() {
	if (((lpDOM && !lpIE) || (lpMAC_IE)) && (! lpFindQueueStatsImage.complete))
		return false;
	var imageWidth = lpFindQueueStatsImage.width;
	var imageHeight = lpFindQueueStatsImage.height;
	if (imageWidth == 30 || imageWidth == 31) {
	    lpCountUnavailable = lpCountUnavailable + 1;
	    if (lpCountUnavailable == 5)
	        lpStopPolling = true;
        lpNotifyVisitorQueueStats(0, 0, LP_SERVICE_UNAVAILABLE);
		return true;
	} else
	if (imageWidth == 32) {
        lpNotifyVisitorQueueStats(0, 0, LP_REPS_UNAVAILABLE);
		return true;
	}
	if (imageWidth >= 40) {
	    lpCountUnavailable = 0;
        lpNotifyVisitorQueueStats(imageWidth - 40, imageHeight, LP_SERVICE_UP);
		return true;
	}
	return false;
}

function lpFindQueueStatsLoopImage() {
	if (lpFindQueueStatsCheckImage()) {
		if (lpMAC_IE) return;
        if (lpStopPolling) return;
		lpFindQueueStatsImage = new Image();
		if ((! lpIE) && (lpDOM))
		{
			lpFindQueueStatsImage = document.createElement('IMG');
			lpFindQueueStatsImage.style.visibility = "hidden";
			document.body.appendChild(lpFindQueueStatsImage);
		}
		setTimeout("lpCheckFindQueueStats()", 30000);
	} else
		setTimeout("lpFindQueueStatsLoopImage()", 1000);
}

function lpCheckFindQueueStats() {

    var channel = typeof(lpcvqsChannel) != "undefined" ?  lpcvqsChannel : "voice";

    if (typeof(lpcvqsSkill) != "undefined")
        skillparam = "&skill=" + escape(lpcvqsSkill)
    else if (typeof(lpSkill) != "undefined")
		skillparam = "&skill=" + escape(lpSkill)
	else
		skillparam = "";

    var operatorParam = (typeof(lpOperator) != "undefined") ?  "&operator=" + escape(lpOperator) : "";

    lpFindQueueStatsImage.src =
        LPProtocol + "://" + lpServerName + "/hc/" + lpNumber + "/?cmd=queueStats" +
        "&channel=" + channel + "&site=" + lpNumber + skillparam + operatorParam + "&d=" + hcDateCB();

    lpFindQueueStatsLoopImage();
}

var currentImageWidth = -1;
var currentImageHeight = -1;

function lpNotifyVisitorQueueStats(imageWidth, imageHeight, status) {
	if (typeof(visitorQueueStatsNotifyFunction) != "undefined")
	{
		if (currentImageWidth != imageWidth || currentImageHeight != imageHeight)
		{
			currentImageWidth = imageWidth;
			currentImageHeight = imageHeight;
			visitorQueueStatsNotifyFunction(Math.max(30, imageWidth), imageHeight, status);
		}
	}

}

function hcDateCB()
{
	var d = new Date();
	return d.getTime();
}

function hcGetImage(name)
{
	return hcFindImage(document, name);
}

function hcFindImage(doc, name)
{
	if (doc.getElementsByTagName && (typeof(doc.getElementsByTagName("IMG")[name]) != "undefined"))
		return doc.getElementsByTagName("IMG")[name];
    if (typeof(doc[name]) != "undefined")
        return doc[name];

	for (var i = 0; i < doc.images.length; i++) {
		if (doc.images[i].name == name)
			return doc.images[i];
	}
	return null;
}

setTimeout("lpCheckFindQueueStats()", 1000);


