source: branches/2.2/jabberit_messenger/jmessenger/js/trophyim.mini.js @ 4479

Revision 4479, 42.3 KB checked in by alexandrecorreia, 13 years ago (diff)

Ticket #1885 - Correção para o funcionamento dentro dos navegadores Chrome11 e Safari

  • Property svn:executable set to *
Line 
1DOMObjects={xmlParse:function(xmlString){var xmlObj=this.xmlRender(xmlString);if(xmlObj){try{if(this.processor==undefined){this.processor=new XSLTProcessor();this.processor.importStylesheet(this.xmlRender('<xsl:stylesheet version="1.0"\
2                    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\
3                    <xsl:output method="html" indent="yes"/><xsl:template\
4                    match="@*|node()"><xsl:copy><xsl:copy-of\
5                    select="@*|node()"/></xsl:copy></xsl:template>\
6                    </xsl:stylesheet>'));}
7var htmlObj=this.processor.transformToDocument(xmlObj).documentElement;if(htmlObj.tagName.toLowerCase()=='html'){htmlObj=htmlObj.firstChild.firstChild;}
8return document.importNode(htmlObj,true);}catch(e){try{var htmlObj=document.importNode(xmlObj.documentElement,true);if(htmlObj.tagName.toLowerCase()=="div"){var div_wrapper=document.createElement('div');div_wrapper.appendChild(htmlObj);if(div_wrapper.innerHTML){div_wrapper.innerHTML=div_wrapper.innerHTML;}
9htmlObj=div_wrapper.firstChild;}
10return htmlObj;}catch(e){alert("TrophyIM Error: Cannot add html to page "+e.message);}}}},xmlRender:function(xmlString){try{var renderObj=new ActiveXObject("Microsoft.XMLDOM");renderObj.async="false";if(xmlString){renderObj.loadXML(xmlString);}}catch(e){try{if(this.parser==undefined){this.parser=new DOMParser();}
11var renderObj=this.parser.parseFromString(xmlString,"application/xml");}catch(e){alert("TrophyIM Error: Cannot create new html for page");}}
12return renderObj;},getHTML:function(page)
13{return this.xmlParse(HTMLSnippets[page]);},getScript:function(script)
14{var newscript=document.createElement('script');newscript.setAttribute('src',script);newscript.setAttribute('type','text/javascript');return newscript;}};TrophyIM={controll:{notificationNewUsers:0},autoConnection:{connect:true},activeChatRoom:{name:[]},chatHistory:{},constants:{stale_roster:false},posWindow:{left:400,top:100},statusConn:{connected:false},_timeOut:{renderRoster:null},removeResult:{idResult:[]},setCookie:function(name,value)
15{var expire=new Date();expire.setDate(expire.getDate()+365);document.cookie=name+"="+value+"; expires="+expire.toGMTString();},delCookie:function(name)
16{var expire=new Date();expire.setDate(expire.getDate()-365);document.cookie=name+"= ; expires="+expire.toGMTString();delete TrophyIM.cookies[name];},getCookies:function()
17{var cObj={};var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++)
18{while(cookies[i].charAt(0)==' ')
19{cookies[i]=cookies[i].substring(1,cookies[i].length);}
20if(cookies[i].substr(0,8)=="trophyim")
21{var nvpair=cookies[i].split("=",2);cObj[nvpair[0]]=nvpair[1];TrophyIM.setCookie(nvpair[0],nvpair[1]);}}
22return cObj;},load:function()
23{if(loadscript.getUserCurrent()==null)
24{loadscript.setUserCurrent();}
25if(!TrophyIM.statusConn.connected)
26{TrophyIM.cookies=TrophyIM.getCookies();setTimeout("TrophyIM.showLogin()",550);}
27else
28{loadscript.rosterDiv();}},storeData:function()
29{if(TrophyIM.connection&&TrophyIM.connection.connected)
30{TrophyIM.setCookie('trophyim_bosh_xid',TrophyIM.connection.jid+"|"+
31TrophyIM.connection.sid+"|"+TrophyIM.connection.rid);TrophyIM.rosterObj.save();}},showLogin:function()
32{if(typeof(JSON)!=undefined&&typeof(Strophe)!=undefined)
33{TrophyIM.JSONStore=new TrophyIMJSONStore();if(TrophyIM.JSONStore.store_working&&TrophyIM.cookies['trophyim_bosh_xid'])
34{var xids=TrophyIM.cookies['trophyim_bosh_xid'].split("|");TrophyIM.delCookie('trophyim_bosh_xid');TrophyIM.constants.stale_roster=true;TrophyIM.connection=new Strophe.Connection(TROPHYIM_BOSH_SERVICE);TrophyIM.connection.rawInput=TrophyIM.rawInput;TrophyIM.connection.rawOutput=TrophyIM.rawOutput;Strophe.info('Attempting Strophe attach.');TrophyIM.connection.attach(xids[0],xids[1],xids[2],TrophyIM.onConnect);TrophyIM.onConnect(Strophe.Status.CONNECTED);}
35else
36{loadscript.rosterDiv();var _getUserCurrent=null;_getUserCurrent=loadscript.getUserCurrent();if(_getUserCurrent==null)
37{setTimeout("TrophyIM.showLogin()",500);}
38else
39{TrophyIM.login(Base64.decode(_getUserCurrent.jid),Base64.decode(_getUserCurrent.password));}}}
40else
41{setTimeout("TrophyIM.showLogin()",500);}},log:function(level,msg)
42{if(TrophyIM.logging_div&&level>=TROPHYIM_LOGLEVEL)
43{while(TrophyIM.logging_div.childNodes.length>TROPHYIM_LOG_LINES)
44{TrophyIM.logging_div.removeChild(TrophyIM.logging_div.firstChild);}
45var msg_div=document.createElement('div');msg_div.className='trophyimlogitem';msg_div.appendChild(document.createTextNode(msg));TrophyIM.logging_div.appendChild(msg_div);TrophyIM.logging_div.scrollTop=TrophyIM.logging_div.scrollHeight;}},rawInput:function(data)
46{Strophe.debug("RECV: "+data);},rawOutput:function(data)
47{Strophe.debug("SEND: "+data);},login:function()
48{if(TrophyIM.JSONStore.store_working)
49{TrophyIM.JSONStore.delData(['groups','roster','active_chat','chat_history']);}
50TrophyIM.connection=new Strophe.Connection(TROPHYIM_BOSH_SERVICE);TrophyIM.connection.rawInput=TrophyIM.rawInput;TrophyIM.connection.rawOutput=TrophyIM.rawOutput;if(arguments.length>0)
51{var barejid=arguments[0];var password=arguments[1];TrophyIM.connection.connect(barejid+TROPHYIM_RESOURCE,password,TrophyIM.onConnect);}
52else
53{var barejid=document.getElementById('trophyimjid').value
54var fulljid=barejid+TROPHYIM_RESOURCE;var password=document.getElementById('trophyimpass').value;var button=document.getElementById('trophyimconnect');loadscript.setUserCurrent(barejid,password);if(button.value=='connect')
55{button.value='disconnect';TrophyIM.login(barejid,password);_winBuild('window_login_page','remove');}}
56TrophyIM.setCookie('trophyimjid',barejid);},logout:function()
57{TrophyIM.autoConnection.connect=false;TrophyIM.delCookie('trophyim_bosh_xid');delete TrophyIM['cookies']['trophyim_bosh_xid'];TrophyIM.connection.disconnect();},onConnect:function(status)
58{var loading_gif=document.getElementById("JabberIMRosterLoadingGif");if(status==Strophe.Status.CONNECTING)
59{loading_gif.style.display="block";Strophe.info('Strophe is connecting.');}
60if(status==Strophe.Status.CONNFAIL)
61{TrophyIM.delCookie('trophyim_bosh_xid');TrophyIM.statusConn.connected=false;loading_gif.style.display="block";}
62if(status==Strophe.Status.DISCONNECTING)
63{TrophyIM.statusConn.connected=false;}
64if(status==Strophe.Status.DISCONNECTED)
65{if(TrophyIM.autoConnection.connect)
66{loading_gif.style.display="block";TrophyIM.delCookie('trophyim_bosh_xid');TrophyIM.statusConn.connected=false;setTimeout(function()
67{TrophyIM.showLogin();},10000);loadscript.clrAllContacts();loadscript.setStatusJabber(i18n.STATUS_ANAVAILABLE,"unavailable");delete TrophyIM.rosterObj.roster;delete TrophyIM.rosterObj.groups;}}
68if(status==Strophe.Status.CONNECTED)
69{loadscript.setStatusJabber(i18n.STATUS_AVAILABLE,'available');TrophyIM.statusConn.connected=true;TrophyIM.showClient();}},showClient:function()
70{TrophyIM.setCookie('trophyim_bosh_xid',TrophyIM.connection.jid+"|"+
71TrophyIM.connection.sid+"|"+TrophyIM.connection.rid);TrophyIM.rosterObj=new TrophyIMRoster();TrophyIM.connection.addHandler(TrophyIM.onVersion,Strophe.NS.VERSION,'iq',null,null,null);TrophyIM.connection.addHandler(TrophyIM.onRoster,Strophe.NS.ROSTER,'iq',null,null,null);TrophyIM.connection.addHandler(TrophyIM.onPresence,null,'presence',null,null,null);TrophyIM.connection.addHandler(TrophyIM.onMessage,null,'message',null,null,null);TrophyIM.connection.send($iq({type:'get',xmlns:Strophe.NS.CLIENT}).c('query',{xmlns:Strophe.NS.ROSTER}).tree());TrophyIM.connection.send($pres().tree());setTimeout(TrophyIM.renderRoster,1000);},clearClient:function()
72{if(TrophyIM.logging_div)
73{var logging_div=TrophyIM.client_div.removeChild(document.getElementById('trophyimlog'));}
74else
75{var logging_div=null;}
76while(TrophyIM.client_div.childNodes.length>0)
77{TrophyIM.client_div.removeChild(TrophyIM.client_div.firstChild);}
78return logging_div;},onVersion:function(msg)
79{Strophe.debug("Version handler");if(msg.getAttribute('type')=='get')
80{var from=msg.getAttribute('from');var to=msg.getAttribute('to');var id=msg.getAttribute('id');var reply=$iq({type:'result',to:from,from:to,id:id}).c('query',{name:"TrophyIM",version:TROPHYIM_VERSION,os:"Javascript-capable browser"});TrophyIM.connection.send(reply.tree());}
81return true;},onRoster:function(msg)
82{var roster_items=msg.firstChild.getElementsByTagName('item');for(var i=0;i<roster_items.length;i++)
83{with(roster_items[i])
84{var groups=getElementsByTagName('group');var group_array=[];for(var g=0;g<groups.length;g++)
85{if(groups[g].hasChildNodes())
86group_array[group_array.length]=groups[g].firstChild.nodeValue;}
87if(getAttribute('ask')&&getAttribute('ask').toString()==="subscribe")
88{if(getAttribute('subscription').toString()==="none")
89{TrophyIM.rosterObj.addContact(getAttribute('jid'),getAttribute('ask'),getAttribute('name'),group_array);}
90if(getAttribute('subscription').toString()==="remove")
91{TrophyIM.rosterObj.removeContact(getAttribute('jid').toString());}}
92else
93{if((getAttribute('ask')==null&&getAttribute('subscription').toString()==="remove")||getAttribute('subscription').toString()==="remove")
94{TrophyIM.rosterObj.removeContact(getAttribute('jid').toString());}
95else
96{TrophyIM.rosterObj.addContact(getAttribute('jid'),getAttribute('subscription'),getAttribute('name'),group_array);}}}}
97if(msg.getAttribute('type')=='set')
98{var _iq=$iq({type:'reply',id:msg.getAttribute('id'),to:msg.getAttribute('from')});TrophyIM.connection.send(_iq.tree());}
99return true;},onPresence:function(msg)
100{TrophyIM.onPresenceChatRoom(msg);var type=msg.getAttribute('type')?msg.getAttribute('type'):'available';var show=msg.getElementsByTagName('show').length?Strophe.getText(msg.getElementsByTagName('show')[0]):type;var status=msg.getElementsByTagName('status').length?Strophe.getText(msg.getElementsByTagName('status')[0]):'';var priority=msg.getElementsByTagName('priority').length?parseInt(Strophe.getText(msg.getElementsByTagName('priority')[0])):0;if(msg.getAttribute('from').toString().indexOf(TROPHYIM_CHATROOM)<0)
101{var _from=Strophe.getBareJidFromJid(msg.getAttribute('from'));var _flag=true;if(TrophyIM.removeResult.idResult.length>0)
102{for(var i=0;i<TrophyIM.removeResult.idResult.length;i++)
103{if(TrophyIM.removeResult.idResult[i]==_from)
104{_flag=false;TrophyIM.removeResult.idResult.splice(i,1);i--;if(show.toLowerCase()==='subscribe')
105_flag=true;}}}
106if(_flag)
107TrophyIM.rosterObj.setPresence(msg.getAttribute('from'),priority,show,status);}
108return true;},onPresenceChatRoom:function(msg)
109{var xquery=msg.getElementsByTagName("x");var _error=msg.getElementsByTagName("error");if(_error.length>0)
110{for(var i=0;i<_error.length;i++)
111{if(_error[i].getElementsByTagName("text"))
112{var _errorMsg=Strophe.getText(_error[i].getElementsByTagName("text")[0]);if(_errorMsg=="Room creation is denied by service policy")
113{alert(i18n.ROOM_CREATION_IS_DENIED_BY_SERVICE_POLICY);}
114else
115{alert(" Informe ao seu Administrador ERRO : \n"+_errorMsg);}}}}
116else
117{if(xquery.length>0)
118{for(var i=0;i<xquery.length;i++)
119{var xmlns=xquery[i].getAttribute("xmlns");if(xmlns.indexOf("http://jabber.org/protocol/muc#user")==0)
120{var _from=xquery[i].parentNode.getAttribute('from');var _to=xquery[i].parentNode.getAttribute('to');var nameChatRoom=Strophe.getBareJidFromJid(_from);var nickName=Strophe.getResourceFromJid(_from);var type=(xquery[i].parentNode.getAttribute('type')!=null)?xquery[i].parentNode.getAttribute('type'):'available';var show=(xquery[i].parentNode.firstChild.nodeName=="show")?xquery[i].parentNode.firstChild.firstChild.nodeValue:type;var _idElement=nameChatRoom+"_UserChatRoom__"+nickName;var _UserChatRoom=document.createElement("div");_UserChatRoom.id=_idElement;_UserChatRoom.style.paddingLeft='18px';_UserChatRoom.style.margin='3px 0px 0px 2px';_UserChatRoom.style.background='url("'+path_jabberit+'templates/default/images/'+show+'.gif") no-repeat center left';_UserChatRoom.appendChild(document.createTextNode(nickName));var nodeUser=document.getElementById(_idElement);if(nodeUser==null)
121{if(document.getElementById(nameChatRoom+'__roomChat__participants')!=null)
122{nameChatRoom=document.getElementById(nameChatRoom+'__roomChat__participants');nameChatRoom.appendChild(_UserChatRoom);}
123else
124{if(type!='unavailable')
125{TrophyIM.makeChatRoom(nameChatRoom,nameChatRoom.substring(0,nameChatRoom.indexOf('@')));nameChatRoom=document.getElementById(nameChatRoom+'__roomChat__participants');nameChatRoom.appendChild(_UserChatRoom);}}}
126else
127{if(type=='unavailable')
128{nodeUser.parentNode.removeChild(nodeUser);}
129else if(show)
130{nodeUser.style.backgroundImage='url("'+path_jabberit+'templates/default/images/'+show+'.gif")';}}}}}}},onMessage:function(msg)
131{var checkTime=function(i)
132{if(i<10)i="0"+i;return i;};var messageDate=function(_date)
133{var _dt=_date.substr(0,_date.indexOf('T')).split('-');var _hr=_date.substr(_date.indexOf('T')+1,_date.length-_date.indexOf('T')-2).split(':');(_date=new Date).setTime(Date.UTC(_dt[0],_dt[1]-1,_dt[2],_hr[0],_hr[1],_hr[2]));return(_date.toLocaleDateString().replace(/-/g,'/')+' '+_date.toLocaleTimeString());};var data=new Date();var dtNow=checkTime(data.getHours())+":"+checkTime(data.getMinutes())+":"+checkTime(data.getSeconds());var from=msg.getAttribute('from');var type=msg.getAttribute('type');var elems=msg.getElementsByTagName('body');var delay=(msg.getElementsByTagName('delay'))?msg.getElementsByTagName('delay'):null;var stamp=(delay[0]!=null)?"<font style='color:red;'>"+messageDate(delay[0].getAttribute('stamp'))+"</font>":dtNow;var barejid=Strophe.getBareJidFromJid(from);var jidChatRoom=Strophe.getResourceFromJid(from);var jid_lower=barejid.toLowerCase();var contact="";var state="";var chatBox=document.getElementById(jid_lower+"__chatState");var chatStateOnOff=null;var active=msg.getElementsByTagName('active');contact=barejid.toLowerCase();contact=contact.substring(0,contact.indexOf('@'));if(TrophyIM.rosterObj.roster[barejid])
134{if(TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name'])
135{contact=TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name'];}}
136if(elems.length>0)
137{state="";chatStateOnOff=document.getElementById(jid_lower+"__chatStateOnOff");if(active.length>0&chatStateOnOff!=null)
138{chatStateOnOff.value='on';}
139var _message=document.createElement("div");var _text=Strophe.getText(elems[0]);_text=_text.replace(/onblur/gi,"EVENT_DENY");_text=_text.replace(/onchange/gi,"EVENT_DENY");_text=_text.replace(/onclick/gi,"EVENT_DENY");_text=_text.replace(/ondblclick/gi,"EVENT_DENY");_text=_text.replace(/onerror/gi,"EVENT_DENY");_text=_text.replace(/onfocus/gi,"EVENT_DENY");_text=_text.replace(/onkeydown/gi,"EVENT_DENY");_text=_text.replace(/onkeypress/gi,"EVENT_DENY");_text=_text.replace(/onkeyup/gi,"EVENT_DENY");_text=_text.replace(/onmousedown/gi,"EVENT_DENY");_text=_text.replace(/onmousemove/gi,"EVENT_DENY");_text=_text.replace(/onmouseout/gi,"EVENT_DENY");_text=_text.replace(/onmouseover/gi,"EVENT_DENY");_text=_text.replace(/onmouseup/gi,"EVENT_DENY");_text=_text.replace(/onresize/gi,"EVENT_DENY");_text=_text.replace(/onselect/gi,"EVENT_DENY");_text=_text.replace(/onunload/gi,"EVENT_DENY");_text=_text.replace(/style/gi,"EVENT_DENY");_text=_text.replace(/img /gi,"IMG_DENY ");_text=_text.replace(/script /gi,"SCRIPT_DENY ");_text=_text.replace(/div /gi,"DIV_DENY ");_text=_text.replace(/span /gi,"SPAN_DENY ");_text=_text.replace(/iframe /gi,"IFRAME_DENY ");_message.innerHTML=_text;var scripts=_message.getElementsByTagName('script_deny');for(var i=0;i<scripts.length;i++){_message.removeChild(scripts[i--]);}
140var _imgSrc=_message.getElementsByTagName('img_deny');for(var i=0;i<_imgSrc.length;i++){_imgSrc[i].parentNode.removeChild(_imgSrc[i--]);}
141var _Div=_message.getElementsByTagName('div_deny');for(var i=0;i<_Div.length;i++){_Div[i].parentNode.removeChild(_Div[i--]);}
142var _Span=_message.getElementsByTagName('span_deny');for(var i=0;i<_Span.length;i++){_Span[i].parentNode.removeChild(_Span[i--]);}
143var _Iframe=_message.getElementsByTagName('iframe_deny');for(var i=0;i<_Iframe.length;i++){_Iframe[i].parentNode.removeChild(_Iframe[i--]);}
144var _aHref=_message.getElementsByTagName('a');for(var i=0;i<_aHref.length;i++){_aHref[i].parentNode.removeChild(_aHref[i--]);}
145_message.innerHTML=_message.innerHTML.replace(/^\s+|\s+$|^\n|\n$/g,"");_message.innerHTML=loadscript.getSmiles(_message.innerHTML);if(type=='chat'||type=='normal')
146{if(_message.hasChildNodes())
147{var message={contact:"["+stamp+"] <font style='font-weight:bold; color:black;'>"+contact+"</font>",msg:"</br>"+_message.innerHTML};TrophyIM.addMessage(TrophyIM.makeChat(from),jid_lower,message);}}
148else if(type=='groupchat')
149{if(_message.hasChildNodes())
150{var message={contact:"["+stamp+"] <font style='font-weight:bold; color:black;'>"+jidChatRoom+"</font>",msg:"</br>"+_message.innerHTML};TrophyIM.addMessage(TrophyIM.makeChatRoom(barejid),jid_lower,message);}}}
151else
152{if(chatBox!=null)
153state=TrophyIM.getChatState(msg);}
154var clearChatState=function()
155{chatBox.innerHTML='';}
156if(chatBox!=null)
157{var clearChatStateTimer;chatBox.innerHTML="<font style='font-weight:bold; color:grey; float:right;'>"+state+"</font>";var _composing=msg.getElementsByTagName('composing');if(_composing.length==0)
158clearChatStateTimer=setTimeout(clearChatState,2000);else
159clearTimeout(clearChatStateTimer);}
160return true;},getChatState:function(msg)
161{var state=msg.getElementsByTagName('inactive');if(state.length>0)
162{return i18n.INACTIVE;}
163else
164{state=msg.getElementsByTagName('gone');if(state.length>0)
165{return i18n.GONE;}
166else
167{state=msg.getElementsByTagName('composing');if(state.length>0)
168{return i18n.COMPOSING;}
169else
170{state=msg.getElementsByTagName('paused');if(state.length>0)
171{return i18n.PAUSED;}}}}
172return'';},makeChat:function(fulljid)
173{var barejid=Strophe.getBareJidFromJid(fulljid);var titleWindow="";var paramsChatBox={'enabledPopUp':((loadscript.getBrowserCompatible())?"block":"none"),'idChatBox':barejid+"__chatBox",'jidTo':barejid,'path_jabberit':path_jabberit};titleWindow=barejid.toLowerCase();titleWindow=titleWindow.substring(0,titleWindow.indexOf('@'));if(TrophyIM.rosterObj.roster[barejid])
174{if(TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name'])
175{titleWindow=TrophyIM.rosterObj.roster[barejid.toLowerCase()]['contact']['name'];}}
176TrophyIM.posWindow.top=TrophyIM.posWindow.top+10;if(TrophyIM.posWindow.top>200)
177TrophyIM.posWindow.top=100;TrophyIM.posWindow.left=TrophyIM.posWindow.left+5;if(TrophyIM.posWindow.left>455)
178TrophyIM.posWindow.left=400;var _content=document.createElement('div');_content.innerHTML=loadscript.parse("chat_box","chatBox.xsl",paramsChatBox);_content=_content.firstChild;var _messages=_content.firstChild.firstChild;var _textarea=_content.getElementsByTagName('textarea').item(0);var _send=_content.getElementsByTagName('input').item(0);var _chatStateOnOff=_content.getElementsByTagName('input').item(1);var _send_message=function()
179{if(!TrophyIM.sendMessage(barejid,_textarea.value))
180return false;TrophyIM.addMessage(_messages,barejid,{contact:"<font style='font-weight:bold; color:red;'>"+i18n.ME+"</font>",msg:"<br/>"+_textarea.value});_textarea.value='';_textarea.focus();};var composingTimer_=0;var isComposing_=0;var timeCounter;var setComposing=function()
181{var checkComposing=function()
182{if(!isComposing_){composingTimer_=0;clearInterval(timeCounter);TrophyIM.sendContentMessage(barejid,'paused');}else{TrophyIM.sendContentMessage(barejid,'composing');}
183isComposing_=0;}
184if(!composingTimer_){composingTimer_=1;timeCounter=setInterval(checkComposing,4000);}
185isComposing_=1;};loadscript.configEvents(_send,'onclick',_send_message);loadscript.configEvents(_textarea,'onkeyup',function(e)
186{if(e.keyCode==13){_send_message();composingTimer_=0;clearInterval(timeCounter);}else{if(_chatStateOnOff.value=='on')
187setComposing();}});var winChatBox={id_window:"window_chat_area_"+barejid,barejid:barejid,width:387,height:375,top:TrophyIM.posWindow.top,left:TrophyIM.posWindow.left,draggable:true,visible:"display",resizable:true,zindex:loadscript.getZIndex(),title:titleWindow,closeAction:"hidden",content:_content}
188_win=_winBuild(winChatBox);loadscript.notification(barejid);loadscript.getPhotoUser(barejid);_textarea.focus();_messages=_win.content().firstChild;while(_messages&&_messages.nodeType!==1)
189{_messages=_messages.nextSibling;}
190return(_messages);},makeChatRoom:function()
191{var jidChatRoom=arguments[0];var titleWindow="ChatRoom - "+unescape(arguments[1]);var paramsChatRoom={'idChatRoom':jidChatRoom+"__roomChat",'jidTo':jidChatRoom,'lang_Send':i18n.SEND,'lang_Leave_ChatRoom':i18n.LEAVE_CHATROOM,'path_jabberit':path_jabberit};TrophyIM.posWindow.top=TrophyIM.posWindow.top+10;if(TrophyIM.posWindow.top>200)
192TrophyIM.posWindow.top=100;TrophyIM.posWindow.left=TrophyIM.posWindow.left+5;if(TrophyIM.posWindow.left>455)
193TrophyIM.posWindow.left=400;var _content=document.createElement('div');_content.innerHTML=loadscript.parse("chat_room","chatRoom.xsl",paramsChatRoom);_content=_content.firstChild;var _messages=_content.firstChild.firstChild;var _textarea=_content.getElementsByTagName('textarea').item(0);var _send=_content.getElementsByTagName('input').item(0);var _leaveChatRoom=_content.getElementsByTagName('input').item(1);var _send_message=function()
194{if(!TrophyIM.sendMessageChatRoom(jidChatRoom,_textarea.value))
195return false;_textarea.value='';_textarea.focus();};loadscript.configEvents(_send,'onclick',_send_message);loadscript.configEvents(_leaveChatRoom,'onclick',function()
196{TrophyIM.leaveChatRoom(jidChatRoom);if(TrophyIM.activeChatRoom.name.length>0)
197{for(var i=0;i<TrophyIM.activeChatRoom.name.length;i++)
198{if(TrophyIM.activeChatRoom.name[i].indexOf(jidChatRoom)>=0)
199{TrophyIM.activeChatRoom.name[i]="";}}}
200setTimeout(function()
201{_winBuild("window_chat_room_"+jidChatRoom,"remove");},650);});loadscript.configEvents(_textarea,'onkeyup',function(e)
202{if(e.keyCode==13)
203{_send_message();}});var winChatRoom={id_window:"window_chat_room_"+arguments[0],barejid:jidChatRoom,width:500,height:450,top:TrophyIM.posWindow.top,left:TrophyIM.posWindow.left,draggable:true,visible:"display",resizable:true,zindex:loadscript.getZIndex(),title:titleWindow,closeAction:"hidden",content:_content}
204_win=_winBuild(winChatRoom);_messages=_win.content().firstChild;while(_messages&&_messages.nodeType!==1)
205{_messages=_messages.nextSibling;}
206return(_messages);},addContact:function(jidTo,name,group)
207{var _flag=true;if(TrophyIM.removeResult.idResult.length>0)
208{for(var i=0;i<TrophyIM.removeResult.idResult.length;i++)
209{if(TrophyIM.removeResult.idResult[i]==jidTo)
210{_flag=false;TrophyIM.removeResult.idResult.splice(i,1);i--;}}}
211if(_flag)
212{var _id=TrophyIM.connection.getUniqueId('add');var newContact=$iq({type:'set',id:_id});newContact=newContact.c('query').attrs({xmlns:'jabber:iq:roster'});newContact=newContact.c('item').attrs({jid:jidTo,name:name});newContact=newContact.c('group').t(group).tree();TrophyIM.connection.send(newContact);}},addMessage:function(chatBox,jid,msg)
213{msg.msg=loadscript.getSmiles(msg.msg);var messageDiv=document.createElement("div");messageDiv.style.margin="3px 0px 1em 3px";messageDiv.innerHTML=msg.contact+" : "+msg.msg;chatBox.appendChild(messageDiv);chatBox.scrollTop=chatBox.scrollHeight;},renameContact:function(jid)
214{var name=TrophyIM.rosterObj.roster[jid].contact.name;if((name=prompt(i18n.ASK_NEW_NAME_QUESTION+name+"!",name)))
215if((name=name.replace(/^\s+|\s+$|^\n|\n$/g,""))=="")
216name="";if(name==null||name=="")
217name="";var jidTo=jid
218var name=(name)?name:TrophyIM.rosterObj.roster[jid].contact.name;var group=TrophyIM.rosterObj.roster[jid].contact.groups[0];TrophyIM.addContact(jidTo,name,group);document.getElementById('itenContact_'+jid).innerHTML=name;},renameGroup:function(jid)
219{var group=TrophyIM.rosterObj.roster[jid].contact.groups[0];var presence=TrophyIM.rosterObj.roster[jid].presence;if((group=prompt(i18n.ASK_NEW_GROUP_QUESTION,group)))
220if((group=group.replace(/^\s+|\s+$|^\n|\n$/g,""))=="")
221group="";if(group==null||group=="")
222group="";var jidTo=TrophyIM.rosterObj.roster[jid].contact.jid;var name=TrophyIM.rosterObj.roster[jid].contact.name;var group=(group)?group:TrophyIM.rosterObj.roster[jid].contact.groups[0];TrophyIM.rosterObj.removeContact(jid);TrophyIM.addContact(jidTo,name,group);document.getElementById("JabberIMRoster").innerHTML="";TrophyIM.renderRoster();setTimeout(function()
223{for(var i in presence)
224{if(presence[i].constructor==Function)
225continue;TrophyIM.rosterObj.setPresence(jid,presence[i].priority,presence[i].show,presence[i].status);}},500);},createChatRooms:function()
226{var nickName=document.getElementById('nickName_chatRoom_jabberit').value;var nameChatRoom=document.getElementById('name_ChatRoom_jabberit').value;var _from=Base64.decode(loadscript.getUserCurrent().jid)+TROPHYIM_RESOURCE;var _to=escape(nameChatRoom)+"@"+TROPHYIM_CHATROOM+"/"+nickName;var new_room=$pres({from:_from,to:_to}).c("x",{xmlns:Strophe.NS.MUC});TrophyIM.activeChatRoom.name[TrophyIM.activeChatRoom.name.length]=_to;TrophyIM.connection.send(new_room.tree());},joinChatRoom:function(roomName)
227{var presence=$pres({from:TrophyIM.connection.jid,to:roomName}).c("x",{xmlns:Strophe.NS.MUC});TrophyIM.connection.send(presence);},leaveChatRoom:function(roomName)
228{var room_nick=roomName;var presenceid=TrophyIM.connection.getUniqueId();var presence=$pres({type:"unavailable",id:presenceid,from:TrophyIM.connection.jid,to:room_nick}).c("x",{xmlns:Strophe.NS.MUC});TrophyIM.connection.send(presence);},getListRooms:function()
229{if(TrophyIM.statusConn.connected)
230{var _error_return=function(element)
231{alert("ERRO : Tente novamente !");};var iq=$iq({to:TROPHYIM_CHATROOM,type:"get"}).c("query",{xmlns:Strophe.NS.DISCO_ITEMS});TrophyIM.connection.sendIQ(iq,loadscript.listRooms,_error_return,500);}
232else
233{alert("ERRO : Sem conexão com o servidor "+TROPHYIM_CHATROOM);}},removeContact:function(jidTo)
234{var divItenContact=null;if((divItenContact=document.getElementById('itenContact_'+jidTo)))
235{var _id=TrophyIM.connection.getUniqueId();TrophyIM.removeResult.idResult[TrophyIM.removeResult.idResult.length]=jidTo;var delContact=$iq({type:'set',id:_id})
236delContact=delContact.c('query').attrs({xmlns:'jabber:iq:roster'});delContact=delContact.c('item').attrs({jid:jidTo,subscription:'remove'}).tree();TrophyIM.connection.send(delContact);loadscript.removeElement(document.getElementById('itenContactNotification_'+jidTo));var spanShow=document.getElementById('span_show_itenContact_'+jidTo)
237spanShow.parentNode.removeChild(spanShow);loadscript.removeGroup(divItenContact.parentNode);divItenContact.parentNode.removeChild(divItenContact);}},renderRoster:function()
238{var roster_div=document.getElementById('JabberIMRoster');if(roster_div)
239{var users=new Array();var loading_gif=document.getElementById("JabberIMRosterLoadingGif");if(loading_gif.style.display=="block")
240loading_gif.style.display="none";for(var user in TrophyIM.rosterObj.roster)
241{if(TrophyIM.rosterObj.roster[user].constructor==Function)
242continue;users[users.length]=TrophyIM.rosterObj.roster[user].contact.jid;}
243users.sort();var groups=new Array();var flagGeral=false;for(var group in TrophyIM.rosterObj.groups)
244{if(TrophyIM.rosterObj.groups[group].constructor==Function)
245continue;if(group)
246groups[groups.length]=group;if(group=="Geral")
247flagGeral=true;}
248if(!flagGeral&&users.length>0)
249groups[groups.length]="Geral";groups.sort();for(var i=0;i<groups.length;i++)
250{TrophyIM.renderGroups(groups[i],roster_div);}
251TrophyIM.renderItensGroup(users,roster_div);}
252TrophyIM._timeOut.renderRoster=setTimeout("TrophyIM.renderRoster()",1000);},renderGroups:function(nameGroup,element)
253{var _addGroup=function()
254{var _nameGroup=nameGroup;var _element=element;var paramsGroup={'nameGroup':_nameGroup,'path_jabberit':path_jabberit}
255_element.innerHTML+=loadscript.parse("group","groups.xsl",paramsGroup);}
256if(!element.hasChildNodes())
257{_addGroup();}
258else
259{var _NodeChild=element.firstChild;var flagAdd=false;while(_NodeChild)
260{if(_NodeChild.childNodes[0].nodeName.toLowerCase()==="span")
261{if(_NodeChild.childNodes[0].childNodes[0].nodeValue===nameGroup)
262{flagAdd=true;}}
263_NodeChild=_NodeChild.nextSibling;}
264if(!flagAdd)
265{_addGroup();}}},renderItensGroup:function(users,element)
266{var addItem=function()
267{if(arguments.length>0)
268{var objContact=arguments[0];var group=arguments[1];var element=arguments[2];var showOffline=loadscript.getShowContactsOffline();var presence="unavailable";var status="";var statusColor="black";var statusDisplay="none";var _resource="";var _presence=function(objContact)
269{if(objContact.presence)
270{for(var resource in objContact.presence)
271{if(objContact.presence[resource].constructor==Function)
272continue;if(objContact.presence[resource].show!='invisible')
273presence=objContact.presence[resource].show;if(objContact.contact.subscription!="both")
274presence='subscription';if(objContact.presence[resource].status)
275{status=" ( "+objContact.presence[resource].status+" ) ";statusDisplay="block";}}}};var _subscription=function(objContact)
276{if(objContact.contact.subscription!="both")
277{switch(objContact.contact.subscription)
278{case"none":status=" (( "+i18n.ASK_FOR_AUTH+" )) ";statusColor="red";break;case"to":status=" (( "+i18n.CONTACT_ASK_FOR_AUTH+" )) ";statusColor="orange";break;case"from":status=" (( "+i18n.AUTHORIZED+" )) ";statusColor="green";break;case"subscribe":status=" (( "+i18n.AUTH_SENT+" )) ";statusColor="red";break;case"not-in-roster":status=" (( "+i18n.ASK_FOR_AUTH_QUESTION+" )) ";statusColor="orange";break;default:break;}
279statusDisplay="block";}};if(objContact.contact.subscription!="remove")
280{var itensJid=document.getElementById("itenContact_"+objContact.contact.jid);if(itensJid==null)
281{var nameContact="";if(objContact.contact.name)
282nameContact=objContact.contact.name;else
283{nameContact=objContact.contact.jid;nameContact=nameContact.substring(0,nameContact.indexOf('@'));}
284_presence(objContact);var paramsContact={divDisplay:"block",id:'itenContact_'+objContact.contact.jid,jid:objContact.contact.jid,nameContact:nameContact,path_jabberit:path_jabberit,presence:presence,spanDisplay:statusDisplay,status:status,statusColor:"black",subscription:objContact.contact.subscription,resource:_resource}
285_subscription(objContact);if(group!="")
286{var _NodeChild=element.firstChild;while(_NodeChild)
287{if(_NodeChild.childNodes[0].nodeName.toLowerCase()==="span")
288{if(_NodeChild.childNodes[0].childNodes[0].nodeValue===group)
289{_NodeChild.innerHTML+=loadscript.parse("itens_group","itensGroup.xsl",paramsContact);}}
290_NodeChild=_NodeChild.nextSibling;}}}
291else
292{_presence(objContact);var is_open=itensJid.parentNode.childNodes[0].style.backgroundImage;is_open=is_open.indexOf("arrow_down.gif");_subscription(objContact);itensJid.setAttribute('subscription',objContact.contact.subscription);with(document.getElementById('span_show_'+'itenContact_'+objContact.contact.jid))
293{if(presence=="unavailable"&&!showOffline)
294{style.display="none";}
295else
296{if(is_open>0)
297{style.display=statusDisplay;style.color=statusColor;innerHTML=status;}}}
298if(presence=="unavailable"&&!showOffline)
299{itensJid.style.display="none";}
300else
301{if(is_open>0)
302{itensJid.style.display="block";}}
303itensJid.style.background="url('"+path_jabberit+"templates/default/images/"+presence+".gif') no-repeat center left";}
304if(!objContact.presence&&!showOffline)
305{if(objContact.contact.subscription!="remove")
306{with(document.getElementById('span_show_'+'itenContact_'+objContact.contact.jid))
307{style.display="none";}
308with(document.getElementById('itenContact_'+objContact.contact.jid))
309{style.display="none";}}}}}};var flag=false;for(var i=0;i<users.length;i++)
310{if(TrophyIM.rosterObj.roster[users[i]].contact.jid!=Base64.decode(loadscript.getUserCurrent().jid))
311{var _subscription=TrophyIM.rosterObj.roster[users[i]].contact.subscription;if(_subscription==="to")
312{flag=true;}
313if(_subscription==="not-in-roster")
314{flag=true;}
315if(TrophyIM.rosterObj.roster[users[i]].contact.groups)
316{var groups=TrophyIM.rosterObj.roster[users[i]].contact.groups;if(groups.length>0)
317{for(var j=0;j<groups.length;j++)
318{addItem(TrophyIM.rosterObj.roster[users[i]],groups[j],element);}}
319else
320{addItem(TrophyIM.rosterObj.roster[users[i]],"Geral",element);}}
321else
322{addItem(TrophyIM.rosterObj.roster[users[i]],"Geral",element);}}}
323if(flag)
324{if(TrophyIM.controll.notificationNewUsers==0)
325{loadscript.enabledNotificationNewUsers();TrophyIM.controll.notificationNewUsers++;}}
326else
327{loadscript.disabledNotificationNewUsers();TrophyIM.controll.notificationNewUsers=0;}},rosterClick:function(fulljid)
328{TrophyIM.makeChat(fulljid);},setAutorization:function(jidTo,jidFrom,_typeSubscription)
329{var _id=TrophyIM.connection.getUniqueId();TrophyIM.connection.send($pres().attrs({from:jidFrom,to:jidTo,type:_typeSubscription,id:_id}).tree());},setPresence:function(_type)
330{var presence_chatRoom="";if(_type!='status')
331{if(_type=="unavailable"&&TrophyIM.statusConn.connected)
332{var loading_gif=document.getElementById("JabberIMRosterLoadingGif");if(TrophyIM._timeOut.renderRoster!=null)
333clearTimeout(TrophyIM._timeOut.renderRoster);if(TrophyIM.statusConn.connected)
334TrophyIM.connection.send($pres({type:_type}).tree());for(var i=0;i<TrophyIM.connection._requests.length;i++)
335{if(TrophyIM.connection._requests[i])
336TrophyIM.connection._removeRequest(TrophyIM.connection._requests[i]);}
337TrophyIM.logout();loadscript.clrAllContacts();delete TrophyIM.rosterObj.roster;delete TrophyIM.rosterObj.groups;setTimeout(function()
338{if(loading_gif.style.display=="block")
339loading_gif.style.display="none";},1000);}
340else
341{if(!TrophyIM.autoConnection.connect)
342{TrophyIM.autoConnection.connect=true;TrophyIM.load();}
343else
344{if(TrophyIM.statusConn.connected)
345{if(loadscript.getStatusMessage()!="")
346{var _presence=$pres();_presence.node.appendChild(Strophe.xmlElement('show')).appendChild(Strophe.xmlTextNode(_type));_presence.node.appendChild(Strophe.xmlElement('status')).appendChild(Strophe.xmlTextNode(loadscript.getStatusMessage()));TrophyIM.connection.send(_presence.tree());presence_chatRoom=_type;}
347else
348{TrophyIM.connection.send($pres().c('show').t(_type).tree());presence_chatRoom=_type;}}}}}
349else
350{var _show="available";var _status="";if(arguments.length<2)
351{if(loadscript.getStatusMessage()!="")
352_status=prompt(i18n.TYPE_YOUR_MSG,loadscript.getStatusMessage());else
353_status=prompt(i18n.TYPE_YOUR_MSG);var _divStatus=document.getElementById("JabberIMStatusMessage");if((_status=_status.replace(/^\s+|\s+$|^\n|\n$/g,""))!="")
354_divStatus.firstChild.innerHTML="( "+_status+" )";}
355else
356{_status=arguments[1];}
357for(var resource in TrophyIM.rosterObj.roster[Base64.decode(loadscript.getUserCurrent().jid)].presence)
358{if(TrophyIM.rosterObj.roster[Base64.decode(loadscript.getUserCurrent().jid)].presence[resource].constructor==Function)
359continue;if(TROPHYIM_RESOURCE===("/"+resource))
360_show=TrophyIM.rosterObj.roster[Base64.decode(loadscript.getUserCurrent().jid)].presence[resource].show;}
361if(TrophyIM.statusConn.connected)
362{var _presence=$pres();_presence.node.appendChild(Strophe.xmlElement('show')).appendChild(Strophe.xmlTextNode(_show));_presence.node.appendChild(Strophe.xmlElement('status')).appendChild(Strophe.xmlTextNode(_status));TrophyIM.connection.send(_presence.tree());presence_chatRoom=_show;}}
363if(TrophyIM.activeChatRoom.name.length>0)
364{for(i=0;i<TrophyIM.activeChatRoom.name.length;i++)
365{if(TrophyIM.activeChatRoom.name[i]!="")
366TrophyIM.connection.send($pres({to:TrophyIM.activeChatRoom.name[i]}).c('show').t(presence_chatRoom));}}},sendMessage:function()
367{if(arguments.length>0)
368{var jidTo=arguments[0];var message_input=arguments[1];message_input=message_input.replace(/^\s+|\s+$|^\n|\n$/g,"");if(message_input!=""){var newMessage=$msg({to:jidTo,from:TrophyIM.connection.jid,type:'chat'});newMessage=newMessage.c('body').t(message_input);newMessage.up();newMessage=newMessage.c('active').attrs({xmlns:'http://jabber.org/protocol/chatstates'});TrophyIM.connection.send(newMessage.tree());return true;}}
369return false;},sendMessageChatRoom:function()
370{if(arguments.length>0)
371{var room_nick=arguments[0];var message=arguments[1];var msgid=TrophyIM.connection.getUniqueId();var msg=$msg({to:room_nick,type:"groupchat",id:msgid}).c("body",{xmlns:Strophe.NS.CLIENT}).t(message);msg.up();TrophyIM.connection.send(msg);return true;}},sendContentMessage:function()
372{if(arguments.length>0)
373{var jidTo=arguments[0];var state=arguments[1];var newMessage=$msg({to:jidTo,from:TrophyIM.connection.jid,type:'chat'});newMessage=newMessage.c(state).attrs({xmlns:'http://jabber.org/protocol/chatstates'});TrophyIM.connection.send(newMessage.tree());}}};function TrophyIMRoster()
374{if(TrophyIM.JSONStore.store_working)
375{var data=TrophyIM.JSONStore.getData(['roster','groups']);this.roster=(data['roster']!=null)?data['roster']:{};this.groups=(data['groups']!=null)?data['groups']:{};}
376else
377{this.roster={};this.groups={};}
378this.changes=new Array();if(TrophyIM.constants.stale_roster)
379{for(var jid in this.roster)
380{this.changes[this.changes.length]=jid;}}
381this.addChange=function(jid)
382{for(var c=0;c<this.changes.length;c++)
383{if(this.changes[c]==jid)
384{return;}}
385this.changes[this.changes.length]=jid;this.changes.sort();}
386this.addContact=function(jid,subscription,name,groups)
387{if(subscription==="remove")
388{this.removeContact(jid);}
389else
390{var contact={jid:jid,subscription:subscription,name:name,groups:groups}
391var jid_lower=jid.toLowerCase();if(this.roster[jid_lower])
392{this.roster[jid_lower]['contact']=contact;}
393else
394{this.roster[jid_lower]={contact:contact};}
395groups=groups?groups:[''];for(var g=0;g<groups.length;g++)
396{if(!this.groups[groups[g]])
397{this.groups[groups[g]]={};}
398this.groups[groups[g]][jid_lower]=jid_lower;}}}
399this.getContact=function(jid)
400{if(this.roster[jid.toLowerCase()])
401{return this.roster[jid.toLowerCase()]['contact'];}}
402this.getPresence=function(fulljid)
403{var jid=Strophe.getBareJidFromJid(fulljid);var current=null;if(this.roster[jid.toLowerCase()]&&this.roster[jid.toLowerCase()]['presence'])
404{for(var resource in this.roster[jid.toLowerCase()]['presence'])
405{if(this.roster[jid.toLowerCase()]['presence'][resource].constructor==Function)
406continue;var presence=this.roster[jid.toLowerCase()]['presence'][resource];if(current==null)
407{current=presence}
408else
409{if(presence['priority']>current['priority']&&((presence['show']=="chat"
410||presence['show']=="available")||(current['show']!="chat"||current['show']!="available")))
411{current=presence}}}}
412return current;}
413this.groupHasChanges=function(group)
414{for(var c=0;c<this.changes.length;c++)
415{if(this.groups[group][this.changes[c]])
416{return true;}}
417return false;}
418this.removeContact=function(jid)
419{if(this.roster[jid])
420{var groups=this.roster[jid].contact.groups;if(groups)
421{for(var i=0;i<groups.length;i++)
422{delete this.groups[groups[i]][jid];}
423for(var i=0;i<groups.length;i++)
424{var contacts=0;for(var contact in this.groups[groups[i]])
425{if(this.groups[groups[i]][contact].constructor==Function)
426continue;contacts++;}
427if(!contacts)
428delete this.groups[groups[i]];}}
429if(this.roster[jid])
430delete this.roster[jid];}}
431this.setPresence=function(fulljid,priority,show,status)
432{var barejid=Strophe.getBareJidFromJid(fulljid);var resource=Strophe.getResourceFromJid(fulljid);var jid_lower=barejid.toLowerCase();if(show!=='unavailable'||show!=='error')
433{if(!this.roster[jid_lower])
434{this.addContact(barejid,'not-in-roster');}
435var presence={resource:resource,priority:priority,show:show,status:status}
436if(!this.roster[jid_lower]['presence'])
437{this.roster[jid_lower]['presence']={};}
438this.roster[jid_lower]['presence'][resource]=presence;}}
439this.save=function()
440{if(TrophyIM.JSONStore.store_working)
441{TrophyIM.JSONStore.setData({roster:this.roster,groups:this.groups,active_chat:TrophyIM.activeChats['current'],chat_history:TrophyIM.chatHistory});}}}
442function TrophyIMJSONStore(){this.store_working=false;this._newXHR=function(handler){var xhr=null;if(window.XMLHttpRequest){xhr=new XMLHttpRequest();if(xhr.overrideMimeType){xhr.overrideMimeType("text/xml");}}else if(window.ActiveXObject){xhr=new ActiveXObject("Microsoft.XMLHTTP");}
443return xhr;}
444this.getData=function(vars){if(typeof(TROPHYIM_JSON_STORE)!=undefined){Strophe.debug("Retrieving JSONStore data");var xhr=this._newXHR();var getdata="get="+vars.join(",");try{xhr.open("POST",TROPHYIM_JSON_STORE,false);}catch(e){Strophe.error("JSONStore open failed.");return false;}
445xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');xhr.setRequestHeader('Content-length',getdata.length);xhr.send(getdata);if(xhr.readyState==4&&xhr.status==200){try{var dataObj=JSON.parse(xhr.responseText);return this.emptyFix(dataObj);}catch(e){Strophe.error("Could not parse JSONStore response"+
446xhr.responseText);return false;}}else{Strophe.error("JSONStore open failed. Status: "+xhr.status);return false;}}}
447this.emptyFix=function(obj){if(typeof(obj)=="object"){for(var i in obj){if(obj[i].constructor==Function)
448continue;if(i=='_empty_'){obj[""]=this.emptyFix(obj['_empty_']);delete obj['_empty_'];}else{obj[i]=this.emptyFix(obj[i]);}}}
449return obj}
450this.delData=function(vars){if(typeof(TROPHYIM_JSON_STORE)!=undefined){Strophe.debug("Retrieving JSONStore data");var xhr=this._newXHR();var deldata="del="+vars.join(",");try{xhr.open("POST",TROPHYIM_JSON_STORE,false);}catch(e){Strophe.error("JSONStore open failed.");return false;}
451xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');xhr.setRequestHeader('Content-length',deldata.length);xhr.send(deldata);if(xhr.readyState==4&&xhr.status==200){try{var dataObj=JSON.parse(xhr.responseText);return dataObj;}catch(e){Strophe.error("Could not parse JSONStore response");return false;}}else{Strophe.error("JSONStore open failed. Status: "+xhr.status);return false;}}}
452this.setData=function(vars)
453{if(typeof(TROPHYIM_JSON_STORE)!=undefined)
454{var senddata="set="+JSON.stringify(vars);var xhr=this._newXHR();try
455{xhr.open("POST",TROPHYIM_JSON_STORE,false);}
456catch(e)
457{Strophe.error("JSONStore open failed.");return false;}
458xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');xhr.setRequestHeader('Content-length',senddata.length);xhr.send(senddata);if(xhr.readyState==4&&xhr.status==200&&xhr.responseText=="OK"){return true;}else{Strophe.error("JSONStore open failed. Status: "+xhr.status);return false;}}}
459var testData=true;if(this.setData({testData:testData})){var testResult=this.getData(['testData']);if(testResult&&testResult['testData']==true){this.store_working=true;}}}
460if(document.ELEMENT_NODE==null){document.ELEMENT_NODE=1;document.ATTRIBUTE_NODE=2;document.TEXT_NODE=3;document.CDATA_SECTION_NODE=4;document.ENTITY_REFERENCE_NODE=5;document.ENTITY_NODE=6;document.PROCESSING_INSTRUCTION_NODE=7;document.COMMENT_NODE=8;document.DOCUMENT_NODE=9;document.DOCUMENT_TYPE_NODE=10;document.DOCUMENT_FRAGMENT_NODE=11;document.NOTATION_NODE=12;}
461if(!document.importNode){document.importNode=function(node,allChildren){switch(node.nodeType){case document.ELEMENT_NODE:var newNode=document.createElement(node.nodeName);if(node.attributes&&node.attributes.length>0){for(var i=0;i<node.attributes.length;i++){newNode.setAttribute(node.attributes[i].nodeName,node.getAttribute(node.attributes[i].nodeName));}}
462if(allChildren&&node.childNodes&&node.childNodes.length>0){for(var i=0;i<node.childNodes.length;i++){newNode.appendChild(document.importNode(node.childNodes[i],allChildren));}}
463return newNode;break;case document.TEXT_NODE:case document.CDATA_SECTION_NODE:case document.COMMENT_NODE:return document.createTextNode(node.nodeValue);break;}};}
464var oldonunload=window.onunload;window.onunload=function()
465{if(oldonunload)
466{oldonunload();}
467TrophyIM.setPresence('unavailable');}
Note: See TracBrowser for help on using the repository browser.