var _winHandler;
var objTimer;
function ShowInstantMessagePopUp()
{
var _queryString;
var width=screen.width;
var height=screen.height;
var top=height/2-200;
var left=width/2-200;
var Path;
var PageName;
var toUserIDs="",toUserID="",fromUserID="";
if(document.getElementById("hidInstantMessage")!=null)
{
if(document.getElementById("hidInstantMessage").value!="")
{
alert(document.getElementById("hidInstantMessage").value);
return false;
}
}
if(document.getElementById("hidFromUserID")!=null&&document.getElementById("hidToUserID")!="")
{
fromUserID=document.getElementById("hidFromUserID").value;
toUserIDs=document.getElementById("hidToUserID").value;
Path=self.location.href;
PageName=Path.substring(Path.lastIndexOf("/")+1,Path.length);
var AryUserid=toUserIDs.split(",");
for(iIndex=0;iIndex<AryUserid.length;iIndex++)
{
toUserID=AryUserid[iIndex];
if(toUserID!="")
{
if((PageName=="MyHomePage.aspx")||((PageName=="HomePage.aspx")))
{
_queryString="Webpages/IM/InstantMessage.aspx?FromUserID="+fromUserID+"&ToUserID="+toUserID;
}
else
{
_queryString="../IM/InstantMessage.aspx?FromUserID="+fromUserID+"&ToUserID="+toUserID;
}
_winHandler=window.open(_queryString,"InstantMessage_"+fromUserID+"_"+toUserID,"height=375,width=525,toolbars=0,scrollbars=0,resizable=0");
}
}
}
}
var xmlHttpFetchObject;
var xmlHttpFetchChatObject;
function GetXmlHttpObject()
{
var objXMLHttp;
if(window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return objXMLHttp;
}
function UpdateWindowArray()
{
if(arrWindow!=null)
{
for(var key in arrWindow)
{
if(key!=null)
{
var objWindow=arrWindow[key];
if(objWindow!=null)
{
objWindow.UpdateParentData();
}
}
}
}
}
function FetchData()
{
var Path,PageName;
var _queryString;
xmlHttpFetchObject=GetXmlHttpObject();
if(xmlHttpFetchObject==null)
{
alert("Browser does not support HTTP Request.");
return;
}
Path=self.location.href;
PageName=Path.substring(Path.lastIndexOf("/")+1,Path.length);
if((PageName=="MyHomePage.aspx")||((PageName=="HomePage.aspx")))
{
_queryString="Webpages/IM/ProcessAction.aspx";
}
else
{
_queryString="../IM/ProcessAction.aspx";
}
xmlHttpFetchObject.onreadystatechange=stateChangedFetchData;
xmlHttpFetchObject.open("GET",_queryString,true);
xmlHttpFetchObject.send(null);
return false;
}
function stateChangedFetchData()
{
var data,msgData,ChatLog="";
var Message="",toUserid,responseData,FriendData;
var fromUserId,key;
var windowHandler;
var OnlineFriends,PrevOnlineFriends;
var OnlineUsers,PrevOnlineUsers;
var updateFlag;
if(xmlHttpFetchObject==null)
{
return;
}
if(xmlHttpFetchObject.readyState==4)
{
var virtualdata=xmlHttpFetchObject.responseText;
if(virtualdata!="")
{
FriendData=virtualdata.split("%%^%%");
if(FriendData!=null)
{
if(FriendData[0]!=null)
{
var objDiv=document.getElementById("TopFrame1_pnlIMPopUp");
if(objDiv!=null)
{
if(objDiv.style.display!='none')
{
OnlineFriends=FriendData[0].replace("OnlineFriendList=","");
OnlineUsers=FriendData[1].replace("OnlineUserList=","");
PrevOnlineFriends=document.getElementById("TopFrame1_hidPrevOnlineFriendsList").value;
PrevOnlineUsers=document.getElementById("TopFrame1_hidPrevOnlineUsersList").value;
updateFlag=CheckWhetherUpdated(OnlineFriends,PrevOnlineFriends);
if(updateFlag==false)
{
updateFlag=CheckWhetherUpdated(OnlineUsers,PrevOnlineUsers);
}
if(updateFlag==true)
{
CheckForOfflineMessage(OnlineFriends+","+OnlineUsers);
var btnGetFriends=document.getElementById("TopFrame1_btnGetFriends");
if(btnGetFriends!=null)
{
var _onlineFriends=document.getElementById("TopFrame1_hidOnlineFriendsList");
if(_onlineFriends!=null)
{
_onlineFriends.value=OnlineFriends;
}
var _onlineUsers=document.getElementById("TopFrame1_hidOnlineUsersList");
if(_onlineUsers!=null)
{
_onlineUsers.value=OnlineUsers;
}
var is_Safari=navigator.userAgent.indexOf('Safari');
if(is_Safari!=-1)
{
btnGetFriends.click();
}
else
{
if(document.all)
{
btnGetFriends.click();
}
else
{
var e=document.createEvent("MouseEvents");
e.initEvent("click",true,true);
btnGetFriends.dispatchEvent(e);
}
}
}
}
}
}
virtualdata=virtualdata.replace(FriendData[0]+"%%^%%","");
virtualdata=virtualdata.replace(FriendData[1]+"%%^%%","");
}
}
if(virtualdata!="")
{
responseData=virtualdata.split("%%$%%");
if(responseData!=null)
{
for(count=0;count<responseData.length;count++)
{
data=virtualdata.split("##$$@$$##");
if(data[0]!=null)
{
toUserid=data[0];
toUserid=toUserid.replace("toUserID=","");
}
if(data[1]!=null)
{
ChatLog=data[1].replace("ChatLog=","");
}
if(data[2]!=null)
{
OnlineFriends=data[1].replace("OnlineFriends=","");
}
fromUserId=document.getElementById("PageFooter_hUserId").value;
key="IM-"+fromUserId+"-"+toUserid;
if(arrWindow[key]!=null)
{
windowHandler=arrWindow[key];
}
else
{
key="IM-"+toUserid+"-"+fromUserId;
if(arrWindow[key]!=null)
{
windowHandler=arrWindow[key];
}
}
if(windowHandler!=null)
{
var ChatMsgDiv=windowHandler.document.getElementById('divChatMsg');
var ChatMsgTxt=windowHandler.document.getElementById('txtChatMsg');
if(ChatLog!="")
{
if(ChatMsgDiv!=null)
{
ChatMsgDiv.innerHTML=ChatLog;
ChatMsgDiv.scrollTop=ChatMsgDiv.scrollHeight;
}
if(ChatMsgTxt!=null)
{
ChatMsgTxt.focus();
}
}
}
else
{
if(ChatLog!="")
{
ShowInstantMessageWin(toUserid);
}
}
}
}
}
}
setTimeout("FetchData()",5000);
}
}
function ShowInstantMessageWin(toUserID)
{
var _queryString;
var width=screen.width;
var height=screen.height;
var top=height/2-200;
var left=width/2-200;
var Path;
var PageName;
var fromUserID="";
if(document.getElementById("PageFooter_hUserId")!=null&&toUserID!="")
{
fromUserID=document.getElementById("PageFooter_hUserId").value;
var key="IM-"+fromUserID+"-"+toUserID;
if(document.getElementById("PageFooter_hidInstantMessage")!=null)
{
if(document.getElementById("PageFooter_hidInstantMessage").value!="")
{
alert(document.getElementById("PageFooter_hidInstantMessage").value);
document.getElementById("PageFooter_hidInstantMessage").value="";
return false;
}
}
Path=self.location.href;
PageName=Path.substring(Path.lastIndexOf("/")+1,Path.length);
if(toUserID!="")
{
if((PageName=="MyHomePage.aspx")||((PageName=="HomePage.aspx")))
{
_queryString="Webpages/IM/InstantMessage.aspx?FromUserID="+fromUserID+"&ToUserID="+toUserID;
}
else
{
_queryString="../IM/InstantMessage.aspx?FromUserID="+fromUserID+"&ToUserID="+toUserID;
}
window.open(_queryString,"InstantMessage_"+fromUserID+"_"+toUserID,"height=375,width=525,toolbars=0,scrollbars=0,resizable=0");
}
}
}
function CheckForOpenIMWindow(toUserID,AllowedMsg)
{
if(AllowedMsg==0)
{
ShowMessageBox("Sorry, you do not have access to send Instant Message to this user.");
return;
}
if(document.getElementById("PageFooter_hUserId")!=null&&toUserID!="")
{
var windowHandler;
var fromUserID=document.getElementById("PageFooter_hUserId").value;
var key="IM-"+fromUserID+"-"+toUserID;
if(arrWindow[key]!=null)
{
windowHandler=arrWindow[key];
}
else
{
key="IM-"+toUserID+"-"+fromUserID;
if(arrWindow[key]!=null)
{
windowHandler=arrWindow[key];
}
}
if(windowHandler==null)
{
ShowInstantMessageWin(toUserID);
}
}
}
function CheckWhetherUpdated(OnlineFriends,PrevOnlineFriends)
{
var matchFound;
if((PrevOnlineFriends=="")&&(OnlineFriends!=""))
{
return true;
}
if((PrevOnlineFriends!="")&&(OnlineFriends==""))
{
return true;
}
if((PrevOnlineFriends=="")&&(OnlineFriends==""))
{
return false;
}
var AryPrevOnlineFriends,AryOnlineFriends;
var lenPrevOnlineFriends,lenOnlineFriends;
AryPrevOnlineFriends=PrevOnlineFriends.split(",");
AryOnlineFriends=OnlineFriends.split(",");
if((AryPrevOnlineFriends!=null)&&(AryOnlineFriends!=null))
{
lenPrevOnlineFriends=AryPrevOnlineFriends.length;
lenOnlineFriends=AryOnlineFriends.length;
if(lenOnlineFriends!=lenPrevOnlineFriends)
{
return true;
}
var count1,count2;
for(count1=0;count1<lenPrevOnlineFriends;count1++)
{
matchFound=0;
for(count2=0;count2<lenOnlineFriends;count2++)
{
if(AryPrevOnlineFriends[count1]==AryOnlineFriends[count2])
{
matchFound=1;
break;
}
}
if(matchFound==0)
{
return true;
}
}
return false;
}
}
function CheckForMessageWin()
{
var objHidden=document.getElementById("hidUpdateChatLogFlag");
if(objHidden!=null&&objHidden!="")
{
if(objHidden.value=="yes")
{
objHidden.value="";
document.getElementById("divChatMsg").innerHTML=document.getElementById("hidCurrentChatLog").value;
document.getElementById("divChatMsg").scrollTop=document.getElementById("divChatMsg").scrollHeight;
}
document.getElementById("txtChatMsg").focus();
}
}
function CheckForOfflineMessage(onlineUserList)
{
var aryOnlineUserList=new Array();
var objWindow;
var flag,count;
aryOnlineUserList=onlineUserList.split(",");
if(arrWindow!=null)
{
for(var key in arrWindow)
{
if(key!=null)
{
var AryUserId=key.split("-");
if(AryUserId!=null)
{
var toUserid=AryUserId[2];
flag=false;
for(count=0;count<aryOnlineUserList.length;count++)
{
if(aryOnlineUserList[count]==toUserid)
{
flag=true;
break;
}
}
if(flag==false)
{
objWindow=arrWindow[key];
if(objWindow!=null)
{
if(objWindow.divChatMsg!=null)
{
objWindow.divChatMsg.innerHTML=objWindow.divChatMsg.innerHTML+"User is now offline ....";
}
}
}
}
}
}
}
}

