var timeInterval_Email = 15000; // 15 seconds
var popWin = null;
var prevMessageCount = 0;
var newMessageCount = 0;
var friendCount = 0;
var favouriteCount = 0;
var ajaxMessenger = new sack();
var MemberID = 0
var RootFolder = ""

function initMessengerService(root) {
	RootFolder="../"
	if (root=="x")
		RootFolder=""
//	if ((root=="") || (String(typeof(root)) == "undefined") )  
	startTimer();
}

function callMessengerService() {
	ajaxMessenger.requestFile = RootFolder + "include/MessengerNotifier_ajax.asp";
	ajaxMessenger.method = "GET";
	ajaxMessenger.onCompletion = resultMessengerService;
	params='MemberID=' + MemberID;
	ajaxMessenger.runAJAX(params);
}

function resultMessengerService() {
	if (ajaxMessenger.responseStatus) {
		response=String(ajaxMessenger.response).split("|");
		updateCounters(response[0],response[1],response[2]);}
}

//MESSENGER SERVICE TIMER
var gTimer = null;
var gTimerCount = 0;
function myTimer() {
	gTimerCount++;
	callMessengerService();
}
function startTimer() {
	gTimer = window.setInterval("myTimer()",timeInterval_Email);
}
function stopTimer() {
	window.clearInterval(gTimer);
}

function updateCounters(myMessageCount, myFriendCount, myFavouriteCount) {
	if (myMessageCount >= 0) { newMessageCount = myMessageCount; }
	if (myFriendCount >= 0) { friendCount = myFriendCount; }
	if (myFavouriteCount >= 0) { favouriteCount = myFavouriteCount; }

	//get the previous message count
	if (document.getElementById('lblMessageCount') != null)	{
		prevMessageCount = document.getElementById('lblMessageCount').innerHTML;
		if (prevMessageCount == "") { prevMessageCount = 0; }
	}

	//Update Icons & Text
	messageIcon();
	friendIcon();
	favouriteIcon();

	//Check for new messages
	if (newMessageCount > prevMessageCount) {
		//View messages Popup
		viewMessages();
	}
}

function updateMessageCount(intMessages) {
	prevMessageCount = intMessages;
	newMessageCount = intMessages;
	if (document.getElementById('lblMessageCount') != null) {
		document.getElementById('lblMessageCount').innerHTML = newMessageCount; }
	messageIcon();
}
function updateFriendCount(intFriends) {
	friendCount = intFriends;
	if (document.getElementById('lblFriendCount') != null) {
		document.getElementById('lblFriendCount').innerHTML = friendCount; }
	friendIcon();
}
function updateFavouriteCount(intFavourites) {
	favouriteCount = intFavourites;
	if (document.getElementById('lblFavouriteCount') != null) {
		document.getElementById('lblFavouriteCount').innerHTML = favouriteCount; }
	favouriteIcon();
}

function messageIcon() {
	if (newMessageCount>0) {
		if (document.getElementById('imgMessages') != null) {
			document.getElementById('imgMessages').src = RootFolder + "images/icon_mess_new.gif"; }
		if (document.getElementById('lblMessageCount') != null) {
			document.getElementById('lblMessageCount').innerHTML = newMessageCount;
			}
		if (document.getElementById('lblMessageText') != null) {
			document.getElementById('lblMessageText').innerHTML = "&nbsp;" + "Messages";
			}
	} else {
		if (document.getElementById('imgMessages') != null) {
			document.getElementById('imgMessages').src = RootFolder + "images/icon_mess.gif"; }
		if (document.getElementById('lblMessageCount') != null) {
			document.getElementById('lblMessageCount').innerHTML = "";
			}
		if (document.getElementById('lblMessageText') != null) {
			document.getElementById('lblMessageText').innerHTML = "Messages";
			}
	}
}
function friendIcon() {
	if (friendCount>0) {
		//friends online icon
		if (document.getElementById('imgFriends') != null) {
			document.getElementById('imgFriends').src = RootFolder + "images/icon_friend_online.gif"; }
		if (document.getElementById('lblFriendCount') != null) {
			document.getElementById('lblFriendCount').innerHTML = friendCount; }
		if (document.getElementById('lblFriendText') != null) {
			document.getElementById('lblFriendText').innerHTML = "&nbsp;" + "Friends"; }
	} else {
		if (document.getElementById('imgFriends') != null) {
			document.getElementById('imgFriends').src = RootFolder + "images/icon_friend.gif"; }
		if (document.getElementById('lblFriendCount') != null) {
			document.getElementById('lblFriendCount').innerHTML = ""; }
		if (document.getElementById('lblFriendText') != null) {
			document.getElementById('lblFriendText').innerHTML = "Friends"; }
	}
}
function favouriteIcon() {
	if (favouriteCount>0) {
		//favourites online icon
		if (document.getElementById('imgFavourites') != null) {
			document.getElementById('imgFavourites').src = RootFolder + "images/icon_fav_online.gif"; }
		if (document.getElementById('lblFavouriteCount') != null) {
			document.getElementById('lblFavouriteCount').innerHTML = favouriteCount; }
		if (document.getElementById('lblFavouriteText') != null) {
			document.getElementById('lblFavouriteText').innerHTML = "&nbsp;" + "Favourites"; }
	} else {
		if (document.getElementById('imgFavourites') != null) {
			document.getElementById('imgFavourites').src = RootFolder + "images/icon_fav.gif"; }
		if (document.getElementById('lblFavouriteCount') != null) {
			document.getElementById('lblFavouriteCount').innerHTML = ""; }
		if (document.getElementById('lblFavouriteText') != null) {
			document.getElementById('lblFavouriteText').innerHTML = "Favourites"; }
	}
}

function viewMessages() {
	//Show alert box if messenger window is closed
	var alertBox = true;
	try {
		if (!(popWin.closed)) {
			//Window open - disable alert box
			alertBox = false;
		}
	} catch(ex) {
		//DEBUG: alert(ex);
		//Window not found - allow alert box
		alertBox = true;
	}
	//New Message Alert
	if (alertBox) {
		//if (window.focus) { window.focus(); }
		showMessengerAlert();
	}
}

//LOCAL CLIENT TIMEZONE OFFSET
function GetClientUTC()	{    
	var now = new Date();
	var offset = now.getTimezoneOffset();
	//return minutes as offset
	return offset;
}

function acceptMessengerAlert() {
	ReadMessages()
	//popWindow(winType, winURL, winName);
	hideMessengerAlert();
	return false;
}
function hideMessengerAlert() {
	var myDIV = document.getElementById('divMessengerAlert');
	var myIFRAME = document.getElementById('iframeMessengerAlert');
	if (myDIV != null && myIFRAME != null) {
		myDIV.style.display = "none"; //hide
		myDIV.style.visibility = "hidden";
		myIFRAME.style.display = "none"; //hide
		myIFRAME.style.visibility = "hidden";
	}
} 
function showMessengerAlert() {
	var width = 280;
	var height = 128;
	var myDIV = document.getElementById('divMessengerAlert');
	var myIFRAME = document.getElementById('iframeMessengerAlert');
	if (myDIV != null && myIFRAME != null) {
		var posX = Math.round((document.body.clientWidth / 2) - (width / 2));
		var posY = Math.round((document.body.clientHeight / 2) - (height /2));
		myDIV.style.left = posX + "px";
		myDIV.style.top = posY + "px";
		myDIV.style.display = "block"; //show
		myDIV.style.visibility = "visible";
		//IE BUG: Window controls are rendered over DIV
		//USE AND IFRAME TO COVER CONTROLS - THEN DRAW DIV OVER IFRAME
		myDIV.style.zIndex = myIFRAME.style.zIndex + 1;
		myIFRAME.style.left = posX + "px";
		myIFRAME.style.top = posY + "px";
		myIFRAME.style.display = "block"; //show
		myIFRAME.style.visibility = "visible";

		offsetMessengerAlert();
	}
}
function offsetMessengerAlert() {
	var root = (document.compatMode == "CSS1Compat"?document.documentElement: document.body);
	var myDIV = document.getElementById('divMessengerAlert');
	var myIFRAME = document.getElementById('iframeMessengerAlert');
	var height = 128;
	if (myDIV != null && myIFRAME != null) {
		if (myDIV.style.display == "block") {
			try {
				//Centre MessengerAlert when scrolling
				myDIV.style.top = root.scrollTop + Math.round((document.body.clientHeight / 2) - (height /2)) + "px";
				myIFRAME.style.top = root.scrollTop + Math.round((document.body.clientHeight / 2) - (height /2)) + "px";	
			} catch(ex) { 
				//Failed
			}
		}
	}
}
window.onscroll = function() {
	offsetMessengerAlert();
}
// END: MESSAGE ALERT BOX
// ####################


function popWindow(winType, winURL, winName) {
	var winWidth = 0;
	var winHeight = 0;
	
	switch (winType) {
		case "messages": {
			winWidth = 460;
			winHeight = 315;
			winURL = winURL + "&timezone=" + GetClientUTC();
			break;
		}
		case "friends": {
			winWidth = 320;
			winHeight = 300;
			break;
		}
		case "favourites": {
			winWidth = 320;
			winHeight = 300;
			break;
		}
	}

	//Open Child Window	
	var reWork = new RegExp('object','gi');
	try {
		var winPosX = (window.screen.width/2)-(winWidth/2);
		var winPosY = (window.screen.height/2)-(winHeight/2);
		var winFeatures = "left=" + winPosX + ",top=" + winPosY + ",screenX=" + winPosX + ",screenY=" + winPosY + ",height=" + winHeight + ",width=" + winWidth + ",innerHeight=" + winHeight + ",innerWidth=" + winWidth + ",hotkeys=0,channelmode=0,dependent=0,directories=0,fullscreen=0,location=0,menubar=0,resizable=1,scrollbars=1,status=1,toolbar=0";
		popWin = window.open(winURL, winName, winFeatures);
		return false;
	} catch(ex) { }
	if (!reWork.test(String(popWin))) {
		//Failed to open - killed by pop-up blocker
		alert("The Window could not be opened because you have a 'Pop-Up Blocker' enabled.\n\nPlease disable your 'Pop-Up Blocker' for this website.");
		return false;
	}
}
