									

/*Cookie操作*/

function createIMCookie(name,value)
{
	var setTime = 1;
	if (setTime)
	{
		var date = new Date();
		date.setTime(date.getTime()+(setTime*60*60*24));
		var expires = "; expires="+date.toGMTString();
	}
	else 
		var expires = "";
	document.cookie = name+"="+escape(value)+expires+"; path=/; DOMAIN="+yourdomain+";";
}
function getIMCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length,c.length));
	}
	return "";	
}

function clearIMCookie(name)
{
	var exp = new Date();
    exp.setTime(exp.getTime() - 100000000);
    var cval=getIMCookie(name);
	if(cval) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
    createIMCookie(name,"");
   // alert(getIMCookie(name));
}


		

var Buddylist={
		buddyListWin:null,
		create:function(){
			Event.observe(window,"resize",Buddylist.fixBuddyList);
			if(!$("bl")){
				this.buddyListWin=new Window({id:"bl",className:"dialog",width:210,height:(Browser.height()-60),zIndex:100,resizable:true,title:Languages.get("buddyList"),draggable:true,closable:false,maximizable:false,detachable:false,minWidth:205,minHeight:150,showEffectOptions:{duration:0},hideEffectOptions:{duration:0}});
				this.buddyListWin.setConstraint(true,{left:0,right:0,top:0,bottom:0})
			}
			this.buddyListWin.getContent().innerHTML='<div id="blTopToolbar"><span class="toolbarButton"><img id="addbuddy" src="themes/'+theme+'/window/addbuddy.png" class="toolbarButton" onclick="Dialogs.newBuddy();" alt="'+Languages.get("addBuddyButton")+'" title="'+Languages.get("addBuddyButton")+'" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onmousedown="buttonDown(this);" onmouseup="buttonNormal(this);" /></span><span class="toolbarButton toolbarSpacer"><img id="removebuddy" src="themes/'+theme+'/window/removebuddy.png" class="toolbarButton" onclick="Dialogs.removeBuddy();" alt="'+Languages.get("removeBuddyButton")+'" title="'+Languages.get("removeBuddyButton")+'" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onmousedown="buttonDown(this);" onmouseup="buttonNormal(this);" /></span><span class="toolbarButton"><img id="imanyone" src="themes/'+theme+'/window/imanyone.png" class="toolbarButton" onclick="Dialogs.newIM();" alt="'+Languages.get("IMAnyoneButton")+'" title="'+Languages.get("IMAnyoneButton")+'" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onmousedown="buttonDown(this);" onmouseup="buttonNormal(this);" /></span><span class="toolbarButton toolbarSpacer"><img id="joinroom" src="themes/'+theme+'/window/joinroom.png" class="toolbarButton" onclick="Dialogs.newRoom();" alt="'+Languages.get("joinChatroomButton")+'" title="'+Languages.get("joinChatroomButton")+'" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onmousedown="buttonDown(this);" onmouseup="buttonNormal(this);"/></span><span class="toolbarButton"><img id="changepassword" src="themes/'+theme+'/window/changepassword.png" class="toolbarButton" onclick="Dialogs.changeSettings();" alt="'+Languages.get("changeSettingsButton")+'" title="'+Languages.get("changeSettingsButton")+'" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onmousedown="buttonDown(this);" onmouseup="buttonNormal(this);" /></span><span class="toolbarButton"><img id="toggleaudio" src="themes/'+theme+"/window/audio_"+(audioNotify?"on":"off")+'.png" onclick="toggleAudio();" alt="'+Languages.get("toggleSoundButton")+'" title="'+Languages.get("toggleSoundButton")+'" /></span>'+(typeof (Status)!="undefined"?'<div id="statusSettings"><input type="text" id="customStatus" onkeypress="Status.processCustomAway(event);" style="display:none" onblur="if($(\'customStatus\').style.display != \'none\') { $(\'customStatus\').style.display = \'none\'; $(\'curStatus\').style.display = \'block\'; }" /><a href="#" id="curStatus" onclick="Status.toggleStatusList();return false;">'+Languages.get("available")+"</a></div>":"")+'</div><div id="blContainer"><ul id="buddylist" class="sortable box"><li style="display:none"></li></ul></div><div id="blBottomToolbar"><a href="#" style="-moz-outline-style: none;" onclick="System.logout();return false;"><img src="themes/'+theme+'/window/signoff.png" style="border:0;" alt="'+Languages.get("signOff")+'" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onmousedown="buttonDown(this);" onmouseup="buttonNormal(this);" /></a></div>';
			Event.observe(this.buddyListWin.getContent(),"contextmenu",function(){return false});
			$("bl_minimize").setStyle({left:(this.buddyListWin.getSize()["width"]-21)+"px"});
			this.sizeBuddyList();
			this.buddyListWin.showCenter(false,(((Browser.height()-40)/2)-(this.buddyListWin.getSize()["height"]/2)),(buddyListLoc==0?10:(Browser.width()-this.buddyListWin.getSize()["width"]-10)));
			this.buddyListWin.toFront();

			this.list={};
			this.listObjects={};
			this.blocked={}
		}, //buddylist create
		destroy:function(){this.buddyListWin.destroy()},
		fixBuddyList:function(){
			if(Buddylist.buddyListWin.isVisible()){
				Buddylist.buddyListWin.setSize(210,(Browser.height()-60));
				Buddylist.buddyListWin.setLocation((((Browser.height()-40)/2)-(Buddylist.buddyListWin.getSize()["height"]/2)),(buddyListLoc==0?10:(Browser.width()-Buddylist.buddyListWin.getSize()["width"]-10)));
				Buddylist.sizeBuddyList()}},
		sizeBuddyList:function(){
			if (typeof XMLHttpRequest!='undefined') {
				$("blContainer").setStyle({width:(this.buddyListWin.getSize()["width"]-6)+"px",height:(this.buddyListWin.getSize()["height"]-95)+"px"});
			}else{
				$("blContainer").setStyle({width:(this.buddyListWin.getSize()["width"]-20)+"px",height:(this.buddyListWin.getSize()["height"]-95)+"px"});
			}
			
			$("blBottomToolbar").setStyle({width:(this.buddyListWin.getSize()["width"]-8)+"px",top:(this.buddyListWin.getSize()["height"]-7)+"px"});
			$("bl_minimize").setStyle({left:(this.buddyListWin.getSize()["width"]-21)+"px"})},
			
		addNewBuddy:function(C,A){
			//C=C.toLowerCase();
			
		//	if(!inArray(Buddylist.list,C)&&(!Buddylist.listObjects[C]||!$(Buddylist.listObjects[C].obj))){
				
				
				var B=new XHConn();
				B.connect(pingTo,"POST","call=isuser&username="+C,
						  function(E){																																																																																																								                             if(E.responseText=="not_exists"){
							  $("newbuddy_error_msg").innerHTML=Languages.get("noSuchUser")
							  }else{
								  if(!$(A.replace(/\s/,"_")+"_group")){
									  Buddylist.addGroup(A);
									  Buddylist.list[A]=[]
								   }
								   Buddylist.addBuddy(C,"Offline","none");
								   if(parseInt(E.responseText)==0){
									   Buddylist.moveBuddy(C,"Offline");
									   $(Buddylist.listObjects[C].img).src="themes/"+theme+"/offline.png"
									}else{
										if(parseInt(E.responseText)==2){
											Buddylist.moveBuddy(C,A);
											$(Buddylist.listObjects[C].img).src="themes/"+theme+"/away.png"
										}else{
											Buddylist.moveBuddy(C,A);
											$(Buddylist.listObjects[C].img).src="themes/"+theme+"/online.png"
										}
									}
									var D=new XHConn();
									D.connect(pingTo,"POST","call=addbuddy&username="+encodeURIComponent(C)+"&group="+encodeURIComponent(A),function(H){																																																																																																								                             if(H.responseText=="already_on_buddylist"){
							  $("newbuddy_error_msg").innerHTML=Languages.get("alreadyOnBuddylist")
							  }else{
								  Buddylist.list[A][C]={username:C,blocked:false,status:parseInt(E.responseText)};
									
							  }
																																					 }
																																		 );
									Windows.close("newBuddy")
									}
									})
			//	}else{
				//	$("newbuddy_error_msg").innerHTML=Languages.get("alreadyOnBuddylist")
			//	}
			},
					
	  addBuddy:function(F,B,A){
		  if(!$(B.replace(/\s/,"_")+"_group")){this.addGroup(B)}
		  var C=$(B.replace(/\s/,"_")+"_group");
		  var E=(A=="none"?defaultIcon:pathToIcons+F+"."+A);
		  var D=Math.floor(Math.random()*1000000000);
		  while($(D+"_blItem")){D=Math.floor(Math.random()*1000000000)}
		  C.innerHTML+='<li id="'+D+'_blItem" class="buddy'+(useIcons&&showInList?" buddyicon":"")+'" onmousedown="Buddylist.clickBuddy(event, \''+F+'\');return false;" onselectstart="return false;" onmouseover="Buddylist.selectBuddy(this, \''+F+"', true);\" onmouseout=\"Buddylist.selectBuddy(this, '"+F+'\', false);" ondblclick="Buddylist.onBuddyDblClick();">'+(useIcons&&showInList?(defaultIcon==""&&A=="none"?"":'<img class="blIcon" src="'+E+'" alt="" id="'+D+'_blIcon" />'):"")+'&nbsp;&nbsp;&nbsp;&nbsp;<img src="themes/'+theme+'/online.png" alt="" id="'+D+'_blImg" />&nbsp;'+F+"</li>";
		  Buddylist.listObjects[F]={};
		  Buddylist.listObjects[F].obj=D+"_blItem";
		  Buddylist.listObjects[F].img=D+"_blImg";
		  Buddylist.listObjects[F].icon=A;
		  Buddylist.listObjects[F].group=B;
		  $(Buddylist.listObjects[F].obj).setStyle({listStyleType:"none"})},
		  
	  moveBuddy:function(C,A){
		  if(A==null){return }
		  if($(Buddylist.listObjects[C].obj).parentNode==$(A.replace(/\s/,"_")+"_group")){return }
		  if(!$(A.replace(/\s/,"_")+"_group")){this.addGroup(A)}
		  var B=$(A.replace(/\s/,"_")+"_group");
		  B.insertBefore($(Buddylist.listObjects[C].obj),null)
	  },
	  
	  addGroup:function(A){
		  
		  var B=$("buddylist");
		  B.innerHTML=(A=="Offline"?B.innerHTML:"")+'<li id="'+A.replace(/\s/,"_")+'_groupTop" class="groupTop" onmousedown="return false;" onselectstart="return false;" onclick="Buddylist.toggleGroup(\''+A+'\');"><img id="'+A.replace(/\s/,"_")+'_groupArrow" src="themes/'+theme+'/window/arrow.png" />&nbsp;&nbsp;'+A+(A!="Offline"?' <a href="#" class="delLink" onclick="Dialogs.removeGroup(\''+A+'\');return false;"><img src="themes/'+theme+'/window/smallx.png" style="border:0;" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" /></a>':"")+'</li>\n<ul id="'+A.replace(/\s/,"_")+'_group" class="group"></ul>'+(A!="Offline"?B.innerHTML:"")
	  },
	  
	  deleteBuddy:function(F){
		  if(F.indexOf("_group")!=-1){
			  this.deleteGroup(F.substring(0,F.length-6));return 
		  }
		  var C=F;
		  var E=null;
		  for(var D in this.list){
			  if(typeof (this.list[D][F])!=="undefined"&&this.list[D][F].username==F){
				  E=D;break
			  }
		  }
		  
		  var A=$(Buddylist.listObjects[F].obj);
		  if(typeof (A)!=="undefined"){
			  A.parentNode.removeChild(A);
			  if(this.list[E]){
				  this.list[E][F]=null;
				  var B=new XHConn();
				  B.connect(pingTo,"POST","call=removebuddy&username="+encodeURIComponent(F),null)
			  }
			  Dialog.closeInfo()
		   }
	 },
	 
	 blockBuddy:function(E){
		 var C=this.blocked.inArray(E);
		 if(C){for(var B=0;B<this.blocked.length;B++){if(this.blocked[B]==E){this.blocked.splice(B,1)}break}}else{this.blocked[this.blocked.length]=E}var A=new XHConn();A.connect(pingTo,"POST","call=blockbuddy&username="+encodeURIComponent(E)+(C?"&status="+(Status.state+1):""),null);for(var D in this.list){if(typeof (this.list[D][E])!=="undefined"&&this.list[D][E].username==E){this.list[D][E].blocked=(C?false:true);$(Buddylist.listObjects[E].img).src=(!C?"themes/"+theme+"/blocked.png":(Buddylist.list[D][E].status==1?"themes/"+theme+"/online.png":(Buddylist.list[D][E].status>=2?"themes/"+theme+"/away.png":"themes/"+theme+"/offline.png")));if(!blockedBuddyStatus&&C){Buddylist.moveBuddy(E,Languages.get("offline"))}break}}},     
		 deleteGroup:function(B){var G=B.replace(/\s/,"_");var F=$(G+"_group");var E=$(G+"_groupTop");if(typeof (F)!=="undefined"){F.parentNode.removeChild(F);E.parentNode.removeChild(E);for(var D=0;D<this.list[B].length;D++){var A=$(Buddylist.listObjects[this.list[B][D].username].obj);if(typeof (A)!=="undefined"){A.parentNode.removeChild(A)}}delete this.list[B];var C=new XHConn();C.connect(pingTo,"POST","call=removegroup&group="+encodeURIComponent(B),null);Dialog.closeInfo()}else{$("deletebuddy_error_msg").innerHTML=Languages.get("noSuchGroup");$("deletebuddy_error_msg").show();Dialog.win.updateHeight()}},         
		 toggleGroup:function(B){var C=$(B.replace(/\s/,"_")+"_group");var A=$(B.replace(/\s/,"_")+"_groupArrow");if(C.style.display!="none"){C.hide();A.src="themes/"+theme+"/window/arrow_up.png"}else{C.show();A.src="themes/"+theme+"/window/arrow.png"}},
		 selectBuddy:function(B,D,A){if(A===false){if(curSelected!=D){try{Element.addClassName(B,"listNotSelected");Element.removeClassName(B,"listSelected");Element.removeClassName(B,"listHover")}catch(C){}}else{Element.addClassName(B,"listSelected");Element.removeClassName(B,"listNotSelected");Element.removeClassName(B,"listHover")}}else{Element.addClassName(B,"listHover");Element.removeClassName(B,"listSelected");Element.removeClassName(B,"listNotSelected")}},
		 
		 clickBuddy:function(C,E){C=C||window.event;if(C.button==2){Context.lastClicked=E}else{Context.lastClicked=null;if(curSelected.length>0){try{var B=$(Buddylist.listObjects[curSelected].obj);Element.addClassName(B,"listNotSelected");Element.removeClassName(B,"listSelected");Element.removeClassName(B,"listHover")}catch(D){}}curSelected=E;var A=$(Buddylist.listObjects[curSelected].obj);Element.addClassName(A,"listSelected");Element.removeClassName(A,"listNotSelected");Element.removeClassName(A,"listHover")}return false},
		 
		 onBuddyDblClick:function(){
			 if(curSelected.length>0){
				 if(typeof (IM.windows[curSelected])=="undefined"){
					 IM.create(curSelected,curSelected)
				  }else{
					  if(IM.windows[curSelected].detached){
						  if(IM.windows[curSelected].popup.closed){
							  IM.windows[curSelected]=IM.windows[curSelected].old;
							  IM.windows[curSelected].show()
						   }else{IM.windows[curSelected].popup.focus()}}else{if(!IM.windows[curSelected].isVisible()){IM.windows[curSelected].show();IM.windows[curSelected].toFront();setTimeout("scrollToBottom('"+IM.windows[curSelected].getId()+"_rcvd')",125);setTimeout("$('"+IM.windows[curSelected].getId()+"_sendBox').focus();",250)}else{IM.windows[curSelected].toFront();setTimeout("$('"+IM.windows[curSelected].getId()+"_sendBox').focus();",250)}}}}}};var Status={state:0,awayMessage:"",wasSetAutoAway:false,lastIM:null,
		 
		 set:function(A,B){lastIM=new Date().getTime();if(A==1){this.state=1;this.awayMessage=B;$("curStatus").innerHTML=this.awayMessage.substring(0,30)+(this.awayMessage.length>30?"...":"")}else{this.state=A;this.awayMessage="";$("curStatus").innerHTML=B}$("statusList").hide()},
		 
		 customAway:function(){$("curStatus").hide();$("customStatus").show().focus()},
		 
		 processCustomAway:function(B){B=B||B.window;var A=document.all?B.keyCode:B.which;if(A==13){awayMessage=$("customStatus").value;$("curStatus").innerHTML=awayMessage.substring(0,30)+(awayMessage.length>30?"...":"");$("curStatus").show();$("customStatus").hide();Status.set(1,awayMessage)}return A!=13},
		 
		 toggleStatusList:function(){var A=$("statusList");if(A.style.display=="block"){A.hide();if(A.style.zIndex>Windows.maxZIndex){Windows.maxZIndex=A.style.zIndex}}else{Element.setStyle(A,{left:parseInt(Buddylist.buddyListWin.getLocation()["left"])+$("statusSettings").offsetLeft+$("blTopToolbar").offsetLeft+"px",top:parseInt(Buddylist.buddyListWin.getLocation()["top"])+$("statusSettings").offsetTop+$("blTopToolbar").offsetTop+$("statusSettings").offsetHeight+"px",zIndex:Windows.maxZIndex+20,display:"block"})}}};
		 
		 
var System={
	 login:function(C,D){
		 var E=(C?C:$("username").value);
		 var B=(D?D:$("password").value);
		 
		 createIMCookie("LoginIM",E);
		  
		 var A=new XHConn();
		 A.connect(pingTo,"POST","call=login&username="+encodeURIComponent(E)+"&password="+encodeURIComponent(B),
					function(H){
						//alert(H.responseText);
						if(H.responseText=="invalid"||H.responseText=="banned"){$("login_error_msg").innerHTML=(H.responseText=="invalid"?Languages.get("incorrectInfo"):Languages.get("userBanned"));$("login_error_msg").show();new Effect.Shake("modal")
						}else{
							loggedIn=true;user=E;pass=B;
							defaultTitle=document.title=document.title+": "+user;
							$("languageList").hide();
							if(1){
								
								// Buddylist=Class.create();
								   Buddylist.create();
								
								if(trim(H.responseText).length==0){System.logout()}
								
								var F=H.responseText.parseJSON();
								
								//alert(H.responseText);
								pingTimer=setInterval("System.ping()",pingFrequency);
								$("modal").hide();
								
								if(F.blocked&&F.blocked.length>0){
									var J=F.blocked.parseJSON();
									
									Buddylist.blocked=J
									
								}else{
									Buddylist.blocked={}
								}
								var G;
							if(F.buddy&&F.buddy.length>0){
								
								var L=F.buddy.parseJSON();
							  for(var K in L){
								 
								if(!$(K.replace(/\s/,"_")+"_group")&&K!="toJSONString"){Buddylist.addGroup(K)}
								if(!Buddylist.list[K]){Buddylist.list[K]={}}	
								
								for(i=0;i<L[K].length;i++){
									G=L[K][i];
									
									Buddylist.list[K][G.username]={username:G.username,blocked:(Buddylist.blocked.inArray(G.username)?true:false),status:G.is_online,icon:G.icon};
									
									if(typeof (Buddylist.listObjects[G.username])=="undefined"){
										Buddylist.addBuddy(G.username,K,G.icon)
									}
									$(Buddylist.listObjects[G.username].obj).setStyle({display:"block"});
									
									if(!blockedBuddyStatus&&Buddylist.list[K][G.username].blocked){
										Buddylist.moveBuddy(G.username,Languages.get("offline"));
										$(Buddylist.listObjects[G.username].img).src="themes/"+theme+"/blocked.png"
									}else{
										if(G.is_online==0||G.is_online==50){
											Buddylist.moveBuddy(G.username,Languages.get("offline"));
											$(Buddylist.listObjects[G.username].img).src="themes/"+theme+"/offline.png"
									    }else{
											if(G.is_online==2){
												Buddylist.moveBuddy(G.username,K);
												$(Buddylist.listObjects[G.username].img).src="themes/"+theme+"/away.png"
											}else{
												Buddylist.moveBuddy(G.username,K);
												$(Buddylist.listObjects[G.username].img).src="themes/"+theme+"/online.png"
											}
										}
										
										if(Buddylist.list[K][G.username].blocked==true){
											$(Buddylist.listObjects[G.username].img).src="themes/"+theme+"/blocked.png"
										}
									}
								   }//for
								   }//for
								 }//if
								}else{
								  alert('Buddylist undefined');	
									
								}//undefined
								 
								 
								 if(F.admin==1){
									
									var I=document.createElement("script");
									 I.src="js/admin.js?"+(new Date()).getTime();
									 I.type="text/javascript";
									 document.getElementsByTagName("head").item(0).appendChild(I);
									 $("blBottomToolbar").innerHTML+='<a id="admin-button" href="#" onclick="AdminWindows.userSearch();return false;" title="Admin"><img src="themes/'+theme+'/window/admin.png" alt="Admin" style="border:0;" /></a>';
									 $("admin-button").setStyle({position:"absolute",left:"0",top:"0"})
							     }
								 
								 
								 Event.observe(document,"focus",function(){blinkerOn(false)});
								 Event.observe(window,"focus",function(){blinkerOn(false)});
								 Event.observe(document,"blur",function(){blinkerOn(true)});
								 Event.observe(window,"blur",function(){blinkerOn(true)});
								 Event.observe(document,"keypress",function(M){M=M||window.event;if(Windows.focusedWindow.getId().indexOf("_im")!=-1&&IM.sendBoxWithFocus==null){var N=$(Windows.focusedWindow.getId()+"_sendBox");N.focus();N.value+=String.fromCharCode(M.charCode)}});
								 Event.stopObserving(window,"resize",recenterModal);
								 Status.lastIM=new Date().getTime();
								 System.ping();
								 
		                       								 
								 }})// end connet();
		 
		 
		 
		 },
		 
		 
		 
		 keyHandler:function(C,B){C=C||window.event;var A=document.all?C.keyCode:C.which;if(A==13&&typeof B=="function"){B()}return A!=13},
		 
		 logout:function(){
			 
			 if(user==""||pass==""){return }
			
			clearIMCookie("LoginIM");
			//alert(getIMCookie("LoginIM"));
			var xmlhttp=false;		
			try {
				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			} 
			catch (e) 
			{
				try {
					xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				} 
				catch (E) {
					xmlhttp = false;
				}
			}
			if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
				xmlhttp = new XMLHttpRequest();
			}
			
			 
			// alert(xmlhttp);
			 xmlhttp.open("POST",pingTo,false);
			 xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			 xmlhttp.send("call=logout");
			 clearTimeout(pingTimer);
			 
			 defaultTitle=document.title=document.title.replace(": "+user,"");
			 user="";pass="";loggedIn=false;
			 if(typeof (Status)!="undefined"){
				 Status.state=0;Status.awayMessage=""
			 }
			 Element.stopObserving(window,"resize",recenterModal);
			 if(typeof (Buddylist)!="undefined"){
				 Buddylist.destroy()
			  }
			  
			  for(var name in IM.windows){
				  if(typeof (IM.windows[name].getId)!="undefined"&&typeof ($(IM.windows[name].getId()))!="undefined"){
					  try{if(IM.windows[name].detached){IM.windows[name].popup.close()}else{IM.windows[name].destroy()}
					  }catch(e){}
				   }
			  }
			  
			  for(var name in Chatroom.windows){
				  if(typeof (Chatroom.windows[name].getId)!="undefined"&&typeof ($(Chatroom.windows[name].getId()))!="undefined"){
					  try{Chatroom.windows[name].destroy()}catch(e){}
				   }
			   }
				   if($("admin-userSearch")){Windows.getWindow("admin-userSearch").destroy()}
			   
			  
			   
     // Dialog.alert('<span class="dialog_long_label">'+Languages.get("signedOff")+"</span>",{windowParameters:{className:"alert",width:alertWidth,height:85},okLabel:Languages.get("reconnect"),ok:function(win){try{window.location.href='/im';}catch(e){}}})
	   
	   
	   }
	   
	   ,register:function(){if(!allowNewUsers){return }var D="";var E=$("register_button");Event.stopObserving(E,"click",System.register);if(($("newpassword").value==$("newpassword2").value)){if(checkEmailAddr($("newemail").value)){if($("newpassword").value.length>=6&&$("newpassword").value.length<=20){if($("newusername").value.isAlphaNumeric()&&$("newusername").value.length>=3&&$("newusername").value.length<=16){var C=new XHConn();var F=$("newusername").value.toLowerCase();var B=$("newpassword").value;var A=$("newemail").value;C.connect(pingTo,"POST","call=register&username="+F+"&password="+B+"&email="+A,function(G){																																																																																																																																																																																																																																																																																																																																																																																																																																																																																					    switch(G.responseText){																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																              case"user_registered":																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																                        Dialog.alert('<span class="dialog_long_label">'+Languages.get("registerSuccess")+'</span><div style="clear:both"></div>',{windowParameters:{className:"alert",width:alertWidth},ok:function(H){clearInputs();Dialog.closeInfo();Dialogs.login()}});Event.observe(E,"click",System.register);return ;																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																						              case"username_taken":D=Languages.get("registerUsernameTaken");break;case"username_bad":D=Languages.get("registerUsernameBad");break;																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									              case"password_bad_length":D=Languages.get("registerPasswordShort");break;case"invalid_email":D=Languages.get("registerInvalidEmail");break;																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																												              case"email_already_used":D=Languages.get("registerEmailTaken");break;default:D=Languages.get("registerFailed")}$("register_error_msg").innerHTML=D;$("register_error_msg").setStyle({display:"block"});new Effect.Shake("modal");Event.observe(E,"click",System.register)});return }else{D=Languages.get("registerUsernameBad")}}else{D=Languages.get("registerPasswordShort")}}else{D=Languages.get("registerInvalidEmail")}}else{D=Languages.get("registerPasswordsMatch")}$("register_error_msg").innerHTML=D;$("register_error_msg").setStyle({display:"block"});new Effect.Shake("modal");Event.observe(E,"click",System.register)},
	   
	   idle:function(){var A=new Date().getTime()-(idleTime*60*1000);if(Status.lastIM<A&&typeof (Status)!="undefined"&&Status.state==0){Status.set(1,Languages.get("away"));Status.wasSetAutoAway=true}},
	   
	   ping:function(B){
		   if(idleTime>0){System.idle()}
		   var A=new XHConn();
		   A.connect(pingTo,"POST",
					 "call=ping&away="+(typeof (Status)!="undefined"?Status.state:0)+(B==true?"&initial=true":""),
					 function(J){
						 var P;
						 if((typeof J.status!="undefined"&&J.status!=200)||J.responseText=="not_logged_in"){
							 System.logout();
							 return 
					      }
						  if(trim(J.responseText).length==0){return }
						  var C=J.responseText.parseJSON();
						  var N,T,U;
						  var G=(typeof (C.messages)!=="undefined"?C.messages.length:0);
						  for(P=0;P<G;P++){
							  U=C.messages[P].chatroom;
							  if(!U){
								  N=C.messages[P].sender;who=N
							   }else{
								   var S=C.messages[P].sender.split(".");
								   N=S[1];
								   who=S[0]
							   }
							   T=C.messages[P].message;
							   var K=null;
							   try{
								   K=window[U?"Chatroom":"IM"].windows[who].getId()
							   }catch(R){}
							   
							   if(!$(K)){
								   window[U?"Chatroom":"IM"].create(who,who)
							    }else{
									if(!window[U?"Chatroom":"IM"].windows[who].detached&&!window[U?"Chatroom":"IM"].windows[who].isVisible()){
										window[U?"Chatroom":"IM"].windows[who].show();
										setTimeout("scrollToBottom('"+window[U?"Chatroom":"IM"].windows[who].getId()+"_rcvd')",125)
										}
								}
								var Q=(!window[U?"Chatroom":"IM"].windows[who].detached?$(window[U?"Chatroom":"IM"].windows[who].getId()+"_rcvd"):window[U?"Chatroom":"IM"].windows[who].popup.$(window[U?"Chatroom":"IM"].windows[who].getId()+"_rcvd"));
								T=T.replace(/(\s|\n|>|^)(\w+:\/\/[^<\s\n]+)/,'$1<a href="$2" target="_blank">$2</a>');
								T=IM.emoteReplace(T,smilies);
								if(T.replace(/<([^>]+)>/ig,"").indexOf("/me")==0){
									Q.innerHTML+='<b class="user'+(N==user&&U?"A":"B")+'">'+IM.createTimestamp()+" <i>"+N+" "+T.replace(/<([^>]+)>/ig,"").replace(/\/me/,"")+"</i></b><br>\n"
								}else{
									Q.innerHTML+='<b class="user'+(N==user&&U?"A":"B")+'">'+IM.createTimestamp()+" "+N+":</b> "+T+"<br>\n"
								}
								
								Q.scrollTop=Q.scrollHeight-Q.clientHeight+6;
								if(!B){
									if(Q.innerHTML.toLowerCase().replace(/<\S[^>]*>/g,"").indexOf(user.toLowerCase()+": ("+Languages.get("autoreply").toLowerCase()+")")==-1&&typeof (Status)!="undefined"&&Status.state==1&&who==N){
										var I=$(K+"_setFont").innerHTML;
										var E=$(K+"_setFontSize").innerHTML;var D=$(K+"_setFontColorColor").style.backgroundColor;window[U?"Chatroom":"IM"].sendMessage(N,"("+Languages.get("autoreply")+") "+Status.awayMessage,false,false,false,I,E,D)}if(Windows.getFocusedWindow().getId()!=window[U?"Chatroom":"IM"].windows[who].getId()&&pulsateTitles==true){new Effect.Pulsate(window[U?"Chatroom":"IM"].windows[who].getId()+"_top")}if(titlebarBlinker==true&&useBlinker==true){clearTimeout(blinkerTimer);blinkerTimer=setTimeout("titlebarBlink('"+who+"', \""+T.replace(/\"/,'"').replace(/<([^>]+)>/ig,"")+'", 0, '+U+")",blinkSpeed)}}Q=null}if(G>0&&audioNotify==true){soundManager.play("msg_in")}N=null;T=null;var H="",M="",O="";var F=(typeof (C.events)!=="undefined"?C.events.length:0);for(P=0;P<F;P++){N=C.events[P].sender;T=C.events[P].event;who=(C.events[P].recipient==user?N:C.events[P].recipient);O=T.split(",");switch(O[0]){case"status":if(typeof (Buddylist)!="undefined"){H=C.events[P].group;if(H&&!$(H.replace(/\s/,"_")+"_group")&&H!="toJSONString"){Buddylist.addGroup(H)}if(typeof (Buddylist.listObjects[N])=="undefined"){Buddylist.addBuddy(N,H,"none");Buddylist.list[H][N]={username:N,blocked:false,status:O[1]};$(Buddylist.listObjects[N].obj).setStyle({display:"block"})}else{if(H==null){H=Buddylist.listObjects[N].group}}Buddylist.list[H][N].status=O[1];if(!blockedBuddyStatus&&typeof (Buddylist.list[H][N])!=="undefined"&&Buddylist.list[H][N].blocked){Buddylist.moveBuddy(N,Languages.get("offline"));$(Buddylist.listObjects[N].img).src="themes/"+theme+"/blocked.png"}else{if(O[1]==0||O[1]==50){Buddylist.moveBuddy(N,Languages.get("offline"));IM.notifyUser(N,Languages.get("signedoff").replace("%1",N));$(Buddylist.listObjects[N].img).src=(typeof (Buddylist.list[H][N])!=="undefined"&&Buddylist.list[H][N].blocked?"themes/"+theme+"/blocked.png":"themes/"+theme+"/offline.png")}else{if(O[1]==2){Buddylist.moveBuddy(N,H);IM.notifyUser(N,Languages.get("wentaway").replace("%1",N));$(Buddylist.listObjects[N].img).src=(typeof (Buddylist.list[H][N])!=="undefined"&&Buddylist.list[H][N].blocked?"themes/"+theme+"/blocked.png":"themes/"+theme+"/away.png")}else{Buddylist.moveBuddy(N,H);IM.notifyUser(N,Languages.get("cameback").replace("%1",N));$(Buddylist.listObjects[N].img).src=(typeof (Buddylist.list[H][N])!=="undefined"&&Buddylist.list[H][N].blocked?"themes/"+theme+"/blocked.png":"themes/"+theme+"/online.png")}}}}break;case"chat":var L=$(Chatroom.windows[O[2]].getId()+"_rcvd");if(O[1]=="join"){if(!$(N+"_"+O[2]+"_chatUser")&&typeof (Chatroom.windows[O[2]])!="undefined"){Chatroom.windows[O[2]].addUser(N)}L.innerHTML=L.innerHTML+'<b class="userB">'+IM.createTimestamp()+" <i>"+N+" "+Languages.get("hasJoined")+"</i></b><br>";scrollToBottom(Chatroom.windows[O[2]].getId()+"_rcvd")}else{if(O[1]=="left"){if(typeof (Chatroom.windows[O[2]])!="undefined"){Chatroom.windows[O[2]].deleteUser(N)}L.innerHTML=L.innerHTML+'<b class="userB">'+IM.createTimestamp()+" <i>"+N+" "+Languages.get("hasLeft")+"</i></b><br>";scrollToBottom(Chatroom.windows[O[2]].getId()+"_rcvd")}}break}O=null}N=null;T=null;who=null});A=null},
	   
	   changeProfile:function(){var C=$("changeprofile_textarea").value,B="";if(C.replace(/\s/g,"")!=""){var A=new XHConn();A.connect(pingTo,"POST","call=changeprofile&profile="+encodeURIComponent(C),function(D){if(D.responseText=="success"){Dialog.closeInfo();Dialog.alert('<span class="dialog_long_label lang-changeProfileSuccess">'+Languages.get("changeProfileSuccess")+'</span><div style="clear:both"></div>',{windowParameters:{className:"alert",width:alertWidth,height:85},ok:function(E){Dialog.closeInfo();Windows.close("changeProfile")}})}else{B=Languages.get("changeProfileFailed")}if(B.length>0){$("changeprofile_error_msg").innerHTML=B}})}else{B=Languages.get("changeProfileEmpty")}if(B.length>0){$("changeprofile_error_msg").innerHTML=B}},
	   
	   changeIcon:function(){var C=$("changeicon_iframe");if(C.contentDocument){var D=C.contentDocument}else{if(C.contentWindow){var D=C.contentWindow.document}else{var D=window.frames.changeicon_iframe.document}}if(D.location.href=="about:blank"){return }var B="",A=D.body.innerHTML;if(A=="success"){Dialog.closeInfo();Dialog.alert('<span class="dialog_long_label lang-changeBuddyiconSuccess">'+Languages.get("changeBuddyiconSuccess")+'</span><div style="clear:both"></div>',{windowParameters:{className:"alert",width:alertWidth,height:85},ok:function(E){Dialog.closeInfo();Windows.close("changeIcon")}})}else{if(A=="nofile"){B=Languages.get("changeIconSelectFile")}else{if(A=="size"){B=Languages.get("changeIconSize")}else{if(A=="bad_type"){B=Languages.get("changeIconBadType")}else{if(A=="bad_extension"){B=Languages.get("changeIconBadExtension")}else{B=Languages.get("changeIconFailed")}}}}}if(B.length>0){$("changeicon_error_msg").innerHTML=B}},
	   
	   changePass:function(){var C=$("currentpw").value,D=$("newpw").value,B="";if(hex_md5(C)==pass){if(D==$("confirmpw").value){var A=new XHConn();A.connect(pingTo,"POST","call=pwdchange&username="+user+"&password="+hex_md5(C)+"&newpwd="+D,function(E){if(E.responseText=="pw_changed"){Dialog.closeInfo();Dialog.alert('<span class="dialog_long_label lang-changeSuccess">'+Languages.get("changeSuccess")+'</span><div style="clear:both"></div>',{windowParameters:{className:"alert",width:alertWidth,height:85},ok:function(F){Dialog.closeInfo();Windows.close("changePass");setTimeout("System.logout();",250)}})}else{if(E.responseText=="invalid_pw"){B=Languages.get("currentPassInvalid");$("currentpw").value=""}else{if(E.responseText=="password_bad_length"){B=Languages.get("changePasswordShort");$("newpw").value="";$("confirmpw").value=""}else{B=Languages.get("changeFailed")}}}if(B.length>0){$("changepass_error_msg").innerHTML=B}})}else{B=Languages.get("changeNoMatch")}}else{B=Languages.get("currentPassInvalid")}if(B.length>0){$("changepass_error_msg").innerHTML=B}},
	   
	   resetPass:function(){var A=new XHConn();A.connect(pingTo,"POST","call=reset&email="+encodeURIComponent($("resetto").value),function(C){var B="";if(C.responseText=="pw_reset"){Dialog.alert('<span class="dialog_long_label lang-newPasswordEmailed langinsert-clear">'+Languages.get("newPasswordEmailed").replace("%1",$("resetto").value)+'</span><div style="clear:both"></div>',{windowParameters:{className:"alert",width:alertWidth},ok:function(D){clearInputs();Dialog.closeInfo();Dialogs.login()}})}else{if(C.responseText=="no_email_on_record"){B=Languages.get("noEmailOnRecord")}else{B=Languages.get("problemResetting")}}if(B.length>0){$("forgotpass_error_msg").innerHTML=B;$("forgotpass_error_msg").setStyle({display:"block"});new Effect.Shake("modal")}})}};
	   
	   
	   var Dialogs={login:function(){clearInputs();$("login_error_msg").innerHTML="";this.mainDialogShow("login");this.currentMainDialog="login";setTimeout("try { $('username').focus(); } catch(e) { }",1125)},
	   register:function(){clearInputs();$("register_error_msg").innerHTML="";Dialogs.mainDialogShow("register");this.currentMainDialog="register";setTimeout("try { $('newusername').focus(); } catch(e) { }",505)},
	   
	   forgotPass:function(){clearInputs();$("forgotpass_error_msg").innerHTML="";Dialogs.mainDialogShow("forgotPass");this.currentMainDialog="forgotPass";setTimeout("try { $('resetto').focus(); } catch(e) { }",505)},
	   
	   mainDialogShow:function(A){if(this.currentMainDialog){Element.setStyle(this.currentMainDialog+"Dialog",{display:"none"})}Element.setStyle(A+"Dialog",{display:"block"})},
	   
	   newIM:function(){var A;if($("newIM")){Windows.getWindow("newIM").toFront();return }A=new Window({id:"newIM",className:"dialog",width:240,height:120,resizable:false,title:Languages.get("newIM"),draggable:true,closable:true,maximizable:false,minimizable:false,detachable:false,minWidth:240,minHeight:120,showEffectOptions:{duration:0},hideEffectOptions:{duration:0}});A.setConstraint(true,{left:0,right:0,top:0,bottom:0});A.getContent().innerHTML='<div class="dialog_info lang-newIMPlease langinsert-clear" style="padding:3px;">'+Languages.get("newIMPlease")+'</div>                                          <span id="newim_error_msg" class="errorMsg">&nbsp;</span>                                          <div id="newim_box" style="padding-left:30px;width:100%;">                                          <div style="display:block;float:left;margin-right:5px;padding-top:4px;">'+Languages.get("username")+':</div><input type="text" style="width:120px;" id="sendto" name="sendto" onkeypress="handleInput(event, function() { IM.newIMWindow(); })" />                                          </div>                                          <div id="newim_buttons">'+ButtonCtl.create(Languages.get("openIM"),"IM.newIMWindow();")+ButtonCtl.create(Languages.get("cancel"),"Windows.close('newIM');")+"</div>";$("newim_buttons").setStyle({position:"absolute",top:"110px",left:"25px"});A.setDestroyOnClose();A.showCenter();setTimeout("$('sendto').focus();",125)},
	   
	   newRoom:function(){var A;if($("newRoom")){Windows.getWindow("newRoom").toFront();return }A=new Window({id:"newRoom",className:"dialog",width:240,height:300,resizable:false,title:Languages.get("newRoom"),draggable:true,closable:true,maximizable:false,minimizable:false,detachable:false,minWidth:240,minHeight:120,showEffectOptions:{duration:0},hideEffectOptions:{duration:0}});A.setConstraint(true,{left:0,right:0,top:0,bottom:0});A.getContent().innerHTML='<div class="dialog_info lang-newRoomPlease langinsert-clear"  style="padding:3px;">'+Languages.get("newRoomPlease")+'</div>                                            <span id="newroom_error_msg" class="errorMsg">&nbsp;</span>                                            <div id="newroom_box" style="padding-left:3px;width:100%;" alert=left>                                            '+Languages.get("roomname")+':<input type="text" style="width:150px;margin-left:0px;" id="roomname" name="roomname" onkeypress="handleInput(event, function() {Chatroom.join($(\'roomname\').value); }, function(){$(\'roomname\').value = $(\'roomname\').value;})" />                                            <div id="newroom_room_list" alert=left></div>                                            </div>                                            <div id="newroom_buttons">'+ButtonCtl.create(Languages.get("joinRoom"),"Chatroom.join($('roomname').value);")+ButtonCtl.create(Languages.get("cancel"),"Windows.close('newRoom');")+"</div>";$("newroom_buttons").setStyle({position:"absolute",top:"290px",left:"25px"});ChatroomList.get($("newroom_room_list"));A.setDestroyOnClose();A.showCenter();setTimeout("$('roomname').focus();",125)},
	   
	   newBuddy:function(){var A;if($("newBuddy")){Windows.getWindow("newBuddy").toFront();return }A=new Window({id:"newBuddy",className:"dialog",width:240,height:160,resizable:false,title:Languages.get("newBuddy"),draggable:true,closable:true,maximizable:false,minimizable:false,detachable:false,minWidth:240,minHeight:120,showEffectOptions:{duration:0},hideEffectOptions:{duration:0}});A.setConstraint(true,{left:0,right:0,top:0,bottom:0});A.getContent().innerHTML='<div class="dialog_info" style="padding:3px;">'+Languages.get("newBuddyPlease")+'</div>                                             <span id="newbuddy_error_msg" class="errorMsg">&nbsp;</span>                                             <div id="newbuddy_box" style="padding-left:22px;width:100%;">                                             <div style="display:block;float:left;margin-right:24px;padding-top:4px;">'+Languages.get("username")+':</div><input type="text" style="width:110px;" id="newBuddyUsername" name="newBuddyUsername" onkeypress="handleInput(event, function() { Buddylist.addNewBuddy($(\'newBuddyUsername\').value, $(\'newBuddyGroup\').value); })" /><br />                                             <div style="display:block;float:left;margin-right:5px;padding-top:4px;">'+Languages.get("addtogroup")+':</div><input type="text" style="width:110px;" id="newBuddyGroup" name="newBuddyGroup" value="Friends" onfocus="this.select();" onkeypress="handleInput(event, function() { Buddylist.addNewBuddy($(\'newBuddyUsername\').value, $(\'newBuddyGroup\').value); })" />                                             </div>                                             <div id="newbuddy_buttons">'+ButtonCtl.create(Languages.get("add"),"Buddylist.addNewBuddy($('newBuddyUsername').value, $('newBuddyGroup').value);")+ButtonCtl.create(Languages.get("cancel"),"Windows.close('newBuddy');")+"</div>";$("newbuddy_buttons").setStyle({position:"absolute",top:"150px",left:"25px"});A.setDestroyOnClose();A.showCenter();setTimeout("$('newBuddyUsername').focus();",125)},
	   
	   removeBuddy:function(B){var A;if(typeof B=="undefined"){var B=curSelected}if(B==""||B.length==0){return }if($("delBuddy")){Windows.getWindow("delBuddy").toFront();return }A=new Window({id:"delBuddy",className:"dialog",width:240,height:70,resizable:false,title:Languages.get("removeBuddy"),draggable:true,closable:true,maximizable:false,minimizable:false,detachable:false,minWidth:240,minHeight:70,showEffectOptions:{duration:0},hideEffectOptions:{duration:0}});A.setConstraint(true,{left:0,right:0,top:0,bottom:0});A.getContent().innerHTML='<div class="dialog_info" style="padding:3px;">'+Languages.get("removeBuddyAreYouSure").replace("%1",B)+'</div>                                             <div id="delbuddy_buttons">'+ButtonCtl.create(Languages.get("ok"),"Buddylist.deleteBuddy('"+B+"');Windows.close('delBuddy');")+ButtonCtl.create(Languages.get("cancel"),"Windows.close('delBuddy');")+"</div>";$("delbuddy_buttons").setStyle({position:"absolute",top:"60px",left:"25px"});A.setDestroyOnClose();A.showCenter()},
	   
	   blockBuddy:function(A){var B;if($("blockBuddy")){Windows.getWindow("blockBuddy").toFront();return }B=new Window({id:"blockBuddy",className:"dialog",width:240,height:70,resizable:false,title:Languages.get("blockBuddy"),draggable:true,closable:true,maximizable:false,minimizable:false,detachable:false,minWidth:240,minHeight:70,showEffectOptions:{duration:0},hideEffectOptions:{duration:0}});B.setConstraint(true,{left:0,right:0,top:0,bottom:0});B.getContent().innerHTML='<div class="dialog_info" style="padding:3px;">'+(Buddylist.blocked.inArray(A)?Languages.get("unblockBuddyAreYouSure").replace("%1",A):Languages.get("blockBuddyAreYouSure").replace("%1",A))+'</div>                                             <div id="blockbuddy_buttons">'+ButtonCtl.create(Languages.get("ok"),"Buddylist.blockBuddy('"+A+"');Windows.close('blockBuddy');")+ButtonCtl.create(Languages.get("cancel"),"Windows.close('blockBuddy');")+"</div>";$("blockbuddy_buttons").setStyle({position:"absolute",top:"60px",left:"25px"});B.setDestroyOnClose();B.showCenter()},
	   
	   removeGroup:function(B){var A;if($("delGroup")){Windows.getWindow("delGroup").toFront();return }A=new Window({id:"delGroup",className:"dialog",width:240,height:70,resizable:false,title:Languages.get("removeGroup"),draggable:true,closable:true,maximizable:false,minimizable:false,detachable:false,minWidth:240,minHeight:70,showEffectOptions:{duration:0},hideEffectOptions:{duration:0}});A.setConstraint(true,{left:0,right:0,top:0,bottom:0});A.getContent().innerHTML='<div class="dialog_info" style="padding:3px;">'+Languages.get("removeGroupAreYouSure").replace("%1",B)+'</div>                                             <div id="delgroup_buttons">'+ButtonCtl.create(Languages.get("ok"),"Buddylist.deleteGroup('"+B+"');Windows.close('delGroup');")+ButtonCtl.create(Languages.get("cancel"),"Windows.close('delGroup');")+"</div>";$("delgroup_buttons").setStyle({position:"absolute",top:"60px",left:"25px"});A.setDestroyOnClose();A.showCenter()},
	   
	   changeSettings:function(){var A;if($("changeSettings")){Windows.getWindow("changeSettings").toFront();return }A=new Window({id:"changeSettings",className:"dialog",width:300,height:160,resizable:false,title:Languages.get("changeSettings"),draggable:true,closable:true,maximizable:false,minimizable:false,detachable:false,minWidth:240,minHeight:150,showEffectOptions:{duration:0},hideEffectOptions:{duration:0}});A.setConstraint(true,{left:0,right:0,top:0,bottom:0});A.getContent().innerHTML='<div class="dialog_info lang-changeSettingsInstructions langinsert-clear" style="padding:3px;">'+Languages.get("changeSettingsInstructions")+'</div>                                                <div id="changesettings_buttons">'+ButtonCtl.create(Languages.get("changeSettingsProfile"),"Dialogs.changeProfile();if($('changeSettings')){Windows.close('changeSettings');}")+(useIcons?ButtonCtl.create(Languages.get("changeSettingsBuddyicon"),"Dialogs.changeIcon();if($('changeSettings')){Windows.close('changeSettings');}"):"")+ButtonCtl.create(Languages.get("cancel"),"Windows.close('changeSettings');")+"</div>";$("changesettings_buttons").setStyle({position:"absolute",top:"60px",left:"85px"});A.setDestroyOnClose();A.showCenter()},
	   
	   changeProfile:function(){var B;if($("changeProfile")){Windows.getWindow("changeProfile").toFront();return }B=new Window({id:"changeProfile",className:"dialog",width:300,height:250,resizable:false,title:Languages.get("changeProfile"),draggable:true,closable:true,maximizable:false,minimizable:false,detachable:false,minWidth:240,minHeight:240,showEffectOptions:{duration:0},hideEffectOptions:{duration:0}});B.setConstraint(true,{left:0,right:0,top:0,bottom:0});B.getContent().innerHTML='<div class="dialog_info lang-changeProfileInstructions langinsert-clear" style="padding:3px;">'+Languages.get("changeProfileInstructions")+'</div>                                             <span id="changeprofile_error_msg" class="errorMsg">&nbsp;</span>                                             <textarea style="width:97%;height:150px;" id="changeprofile_textarea"></textarea>                                             <div id="changeprofile_buttons">'+ButtonCtl.create(Languages.get("change"),"System.changeProfile();")+ButtonCtl.create(Languages.get("cancel"),"Windows.close('changeProfile');")+"</div>";$("changeprofile_buttons").setStyle({position:"absolute",top:"245px",left:"55px"});var A=new XHConn();A.connect(pingTo,"POST","call=getprofile&user="+encodeURIComponent(user),function(C){$("changeprofile_textarea").value=C.responseText});B.setDestroyOnClose();B.showCenter()},
	   
	   changeIcon:function(){if(!useIcons){return }var A;if($("changeIcon")){Windows.getWindow("changeIcon").toFront();return }A=new Window({id:"changeIcon",className:"dialog",width:300,height:160,resizable:false,title:Languages.get("changeBuddyicon"),draggable:true,closable:true,maximizable:false,minimizable:false,detachable:false,minWidth:240,minHeight:120,showEffectOptions:{duration:0},hideEffectOptions:{duration:0}});A.setConstraint(true,{left:0,right:0,top:0,bottom:0});A.getContent().innerHTML='<div class="dialog_info lang-changeBuddyiconInstructions langinsert-clear" style="padding:3px;">'+Languages.get("changeBuddyiconInstructions")+'</div>                                             <span id="changeicon_error_msg" class="errorMsg">&nbsp;</span>                                             <form target="changeicon_iframe" id="changeicon_form" enctype="multipart/form-data" method="post" action="'+pingTo+'">                                             <input type="hidden" name="call" value="changeicon" style="display:none;" />                                             <input id="changeicon_input_file" type="file" name="icon" />                                             <div id="changeicon_buttons">'+ButtonCtl.createSubmit(Languages.get("change"))+"  "+ButtonCtl.create(Languages.get("cancel"),"Windows.close('changeIcon');")+'</form><iframe src="about:blank" onload="System.changeIcon()" style="display:none" id="changeicon_iframe" name="changeicon_iframe"></iframe></div>';$("changeicon_buttons").setStyle({position:"absolute",top:"150px",left:"55px"});A.setDestroyOnClose();A.showCenter()},
	   
	   changePass:function(){var A;if($("changePass")){Windows.getWindow("changePass").toFront();return }A=new Window({id:"changePass",className:"dialog",width:300,height:160,resizable:false,title:Languages.get("changePassword"),draggable:true,closable:true,maximizable:false,minimizable:false,detachable:false,minWidth:240,minHeight:120,showEffectOptions:{duration:0},hideEffectOptions:{duration:0}});A.setConstraint(true,{left:0,right:0,top:0,bottom:0});A.getContent().innerHTML='<div class="dialog_info lang-changePasswordInstructions langinsert-clear" style="padding:3px;">'+Languages.get("changePasswordInstructions")+'</div>                                             <span id="changepass_error_msg" class="errorMsg">&nbsp;</span>                                             <div id="changepass_box" style="padding-left:12px;width:100%;">                                             <div style="display:block;float:left;margin-right:5px;padding-top:4px;" class="lang-currentPassword langinsert-replace">'+Languages.get("currentPassword")+':</div><input type="password" style="width:110px;" id="currentpw" name="currentpw" onkeypress="handleInput(event, function() { System.changePass(); })" /><br />                                             <div style="display:block;float:left;margin-right:20px;padding-top:4px;" class="lang-currentPassword langinsert-replace">'+Languages.get("newPassword")+':</div><input type="password" style="width:110px;" id="newpw" name="newpw" onkeypress="handleInput(event, function() { changePass(); })" />                                             <div style="display:block;float:left;margin-right:4px;padding-top:4px;" class="lang-currentPassword langinsert-replace">'+Languages.get("confirmPassword")+':</div><input type="password" style="width:110px;" id="confirmpw" name="confirmpw" onkeypress="handleInput(event, function() { System.changePass(); })" />                                             </div>                                             <div id="changepass_buttons">'+ButtonCtl.create(Languages.get("change"),"System.changePass();")+ButtonCtl.create(Languages.get("cancel"),"Windows.close('changePass');")+"</div>";$("changepass_buttons").setStyle({position:"absolute",top:"150px",left:"55px"});A.setDestroyOnClose();A.showCenter();setTimeout("$('currentpw').focus();",125)}};

		 
		 
		 
		 var Profile={windows:{},create:function(C,F){var E=Math.round(Math.random()*(Browser.width()-360))+"px";var A=Math.round(Math.random()*(Browser.height()-400))+"px";var D=randomString(32)+"_profile";this.windows[C]=new Window({id:D,className:"dialog",width:320,height:335,top:A,left:E,resizable:true,title:F,draggable:true,detachable:false,minWidth:320,minHeight:150,showEffectOptions:{duration:0},hideEffectOptions:{duration:0}});this.windows[C].setConstraint(true,{left:0,right:0,top:0,bottom:0});var B=new XHConn();B.connect(pingTo,"POST","call=getprofile&user="+encodeURIComponent(C),function(G){Profile.windows[C].getContent().innerHTML='<div class="userProfile" id="'+C+'_userProfile">'+(G.responseText==""?Languages.get("hasNoProfile"):G.responseText)+'</div><div class="updateProfile">'+ButtonCtl.create(Languages.get("update"),"Profile.update('"+C+"');")+"</div>"}.bind(C));this.windows[C].show();this.windows[C].toFront();Windows.focusedWindow=this.windows[C]},
		 
		 update:function(B){if($(B+"_userProfile")){var A=new XHConn();A.connect(pingTo,"POST","call=getprofile&user="+encodeURIComponent(B),function(C){$(B+"_userProfile").innerHTML=(C.responseText==""?Languages.get("hasNoProfile"):C.responseText)})}}};
		 
		 
		 var IM={handleResize:function(A,D,C){if(D.getId()=="bl"){Buddylist.sizeBuddyList()}else{if(D.getId().indexOf("_im")!=-1){var B=D.getId();var E=$(B+"_rcvd");E.setStyle({height:(D.getSize()["height"]-135)+"px",width:(D.getSize()["width"]-10)+"px"});$(B+"_toolbar").setStyle({top:(D.getSize()["height"]-73)+"px",width:(D.getSize()["width"]-10)+"px"});$(B+"_setFont").setStyle({top:(D.getSize()["height"]-65)+"px"});$(B+"_setFontSize").setStyle({top:(D.getSize()["height"]-65)+"px"});$(B+"_setFontColor").setStyle({top:(D.getSize()["height"]-65)+"px"});$(B+"_insertEmoticon").setStyle({top:(D.getSize()["height"]-65)+"px"});$(B+"_sendBox").setStyle({top:(D.getSize()["height"]-45)+"px",width:(D.getSize()["width"]-16)+"px"});E.scrollTop=E.scrollHeight-E.clientHeight+6}else{if(D.getId().indexOf("_chat")!=-1){Chatroom.handleResize(D.room)}else{if(D.getId().indexOf("admin-")!=-1){AdminWindows.handleResize(D)}}}}}};Object.extend(IM,AjaxIM);
		 
		 var IMWindow=Class.create(AjaxIMWindow);IMWindow.addMethods({send:function($super){$super();var G=this.getId();var C=$(G+"_sendBox");var D=(C.style.fontWeight=="400"?"false":"true");var A=(C.style.fontStyle=="normal"?"false":"true");var E=(C.style.textDecoration=="none"?"false":"true");var B=$(G+"_setFont").innerHTML;var J=$(G+"_setFontSize").innerHTML;var H=$(G+"_setFontColorColor").style.backgroundColor;var F=(typeof (this.room)!=="undefined"?"true":"false");if(trim(C.value).length>0){var I=C.value;C.value="";IM.sendMessage((F=="true"?this.room:this.username),I.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\n/g,"<br/>"),F,D,A,E,B,J,H);Status.lastIM=new Date().getTime();if(typeof (Status)!="undefined"&&Status.wasSetAutoAway){Status.set(1,Languages.get("available"))}}scrollToBottom(G+"_rcvd");C.focus()}});
		 
		 var Chatroom={windows:{},create:function(A,E){var D=Math.round(Math.random()*(Browser.width()-360))+"px";var F=Math.round(Math.random()*(Browser.height()-400))+"px";var C=randomString(32)+"_chat";this.windows[A]=new ChatWindow({id:C,className:"dialog",width:475,height:340,top:F,left:D,resizable:true,title:E,draggable:true,detachable:false,minWidth:475,minHeight:150,showEffectOptions:{duration:0},hideEffectOptions:{duration:0}});this.windows[A].setConstraint(true,{left:0,right:0,top:0,bottom:0});this.windows[A].getContent().innerHTML='<div class="rcvdMessages" id="'+C+'_rcvd"></div>\n<div class="chatUserList" id="'+C+'_userlist"><ul id="'+C+'_ul" class="sortable box"><li style="display:none"></li></ul></div>\n<div class="imToolbar" id="'+C+'_toolbar" onmousemove="return false;" onselectstart="return false;"><img src="themes/'+theme+'/window/bold_off.png" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onclick="Chatroom.windows[\''+A+'\'].toggleBold();" onmousedown="return false;" alt="'+Languages.get("bold")+'" id="'+C+'_bold" /> <img src="themes/'+theme+'/window/italic_off.png" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onclick="Chatroom.windows[\''+A+'\'].toggleItalic();" onmousedown="return false;" alt="'+Languages.get("italic")+'" id="'+C+'_italic" /> <img src="themes/'+theme+'/window/underline_off.png" onmouseover="buttonHover(this);" onmouseout="buttonNormal(this);" onclick="Chatroom.windows[\''+A+'\'].toggleUnderline();" onmousedown="return false;" alt="'+Languages.get("underline")+'" id="'+C+'_underline" /></div> <a href="#" class="setFontLink" id="'+C+'_setFont" onclick="Chatroom.windows[\''+A+'\'].toggleFontList();return false;" onselectstart="return false;">Tahoma</a> <a href="#" class="setFontSizeLink" id="'+C+'_setFontSize" onclick="Chatroom.windows[\''+A+'\'].toggleFontSizeList();return false;" onselectstart="return false;">12</a> <a href="#" class="setFontColorLink" id="'+C+'_setFontColor" onclick="Chatroom.windows[\''+A+'\'].toggleFontColorList();return false;" onselectstart="return false;"><div id="'+C+'_setFontColorColor" style="width:14px;height:14px;display:block;"></div></a> <a href="#" class="insertEmoticonLink" id="'+C+'_insertEmoticon" onclick="Chatroom.windows[\''+A+'\'].toggleEmoticonList();return false;" onselectstart="return false;"><img src="themes/'+theme+'/emoticons/mini_smile.gif" width="14" height="14" style="border:0;" /></a>\n<div style="overflow:auto;"><textarea class="inputText" id="'+C+'_sendBox" onfocus="blinkerOn(false);" onkeypress="return Chatroom.windows[\''+A+"'].keyHandler(event);\"></textarea></div>";this.windows[A].setRoom(A);$(C+"_userlist").setStyle({left:(this.windows[A].getSize().width-155)+"px",height:(this.windows[A].getSize().height-12)+"px"});$(C+"_rcvd").setStyle({marginTop:"5px",height:(this.windows[A].getSize().height-103)+"px",width:(this.windows[A].getSize().width-170)+"px"});$(C+"_toolbar").setStyle({top:(this.windows[A].getSize().height-73)+"px",width:(this.windows[A].getSize().width-170)+"px"});$(C+"_setFont").setStyle({top:(this.windows[A].getSize().height-65)+"px"});$(C+"_setFontSize").setStyle({top:(this.windows[A].getSize().height-65)+"px"});$(C+"_setFontColor").setStyle({top:(this.windows[A].getSize().height-65)+"px"});$(C+"_setFontColorColor").setStyle({backgroundColor:"#000"});$(C+"_insertEmoticon").setStyle({top:(this.windows[A].getSize().height-65)+"px"});var B=$(C+"_sendBox");B.setStyle({top:(this.windows[A].getSize().height-45)+"px",left:"2px",width:(this.windows[A].getSize().width-175)+"px",fontWeight:"400",fontStyle:"normal",textDecoration:"none"});this.windows[A].show();this.windows[A].toFront();Windows.focusedWindow=this.windows[A];setTimeout("$('"+C+"_sendBox').focus();",250)},
		 handleResize:function(A){var B=this.windows[A].getId();$(B+"_userlist").setStyle({left:(this.windows[A].getSize().width-155)+"px",height:(this.windows[A].getSize().height-12)+"px"});$(B+"_rcvd").setStyle({height:(this.windows[A].getSize().height-103)+"px",width:(this.windows[A].getSize().width-170)+"px"});$(B+"_toolbar").setStyle({top:(this.windows[A].getSize().height-73)+"px",width:(this.windows[A].getSize().width-170)+"px"});$(B+"_setFont").setStyle({top:(this.windows[A].getSize().height-65)+"px"});$(B+"_setFontSize").setStyle({top:(this.windows[A].getSize().height-65)+"px"});$(B+"_setFontColor").setStyle({top:(this.windows[A].getSize().height-65)+"px"});$(B+"_setFontColorColor").setStyle({backgroundColor:"#000"});$(B+"_insertEmoticon").setStyle({top:(this.windows[A].getSize().height-65)+"px"});$(B+"_sendBox").setStyle({top:(this.windows[A].getSize().height-45)+"px",left:"2px",width:(this.windows[A].getSize().width-175)+"px"})},
		 join:function(B){B=B.toLowerCase();var A=new XHConn();A.connect(pingTo,"POST","call=joinroom&room="+encodeURIComponent(B),function(C){if(C.responseText.indexOf('"')==-1){switch(C.responseText){case"already_joined":$("newroom_error_msg").innerHTML=Languages.get("alreadyInRoom").replace("%1",B);break;case"room_is_user":$("newroom_error_msg").innerHTML=Languages.get("invalidRoom");break;case"invalid_chars":$("newroom_error_msg").innerHTML=Languages.get("invalidRoomChars");break}}else{if(!$(B+"_im")){Chatroom.create(B,B)}else{if(!Chatroom.windows[B].isVisible()){Chatroom.windows[B].show();setTimeout("scrollToBottom('"+B+"_rcvd')",125)}}var E=C.responseText.parseJSON().users;for(var D=0;D<E.length;D++){if(!$(E[D]+"_"+name+"_chatUser")){Chatroom.windows[B].addUser(E[D])}}Windows.close("newRoom");Chatroom.windows[B].toFront();setTimeout("$('"+Chatroom.windows[B].getId()+"_sendBox').focus()",125)}})},
		 
		 leave:function(B){var A=new XHConn();A.connect(pingTo,"POST","call=leaveroom&room="+encodeURIComponent(B),null)}};var ChatWindow=Class.create();Object.extend(ChatWindow.prototype,IMWindow.prototype);Object.extend(ChatWindow.prototype,{curSelected:"",
																																																							  
																																																							  setRoom:function(A){this.room=A},
																																																							  addUser:function(A){$(this.getId()+"_ul").innerHTML+='<li id="'+A+"_"+this.room+'_chatUser" class="buddy" onmousedown="Chatroom.windows[\''+this.room+"'].clickUser('"+A+'\');return false;" onselectstart="return false;" onmouseover="Chatroom.windows[\''+this.room+"'].selectUser(this, '"+A+"', true);\" onmouseout=\"Chatroom.windows['"+this.room+"'].selectUser(this, '"+A+"', false);\" ondblclick=\"Chatroom.windows['"+this.room+'\'].onUserDblClick();" style="padding:0px;"><img src="themes/'+theme+'/online.png" alt="" id="'+A+"_"+this.room+'_chatImg" />&nbsp;'+A+"</li>";$(A+"_"+this.room+"_chatUser").setStyle({listStyleType:"none"})},
																																																							  
																																																							  deleteUser:function(B){var A=$(B+"_"+this.room+"_chatUser");if(typeof (A)!=="undefined"){A.parentNode.removeChild(A)}},
																																																							  
																																																							  selectUser:function(B,D,A){if(A===false){if(this.curSelected!=D){try{Element.addClassName(B,"listNotSelected");Element.removeClassName(B,"listSelected");Element.removeClassName(B,"listHover")}catch(C){}}else{Element.addClassName(B,"listSelected");Element.removeClassName(B,"listNotSelected");Element.removeClassName(B,"listHover")}}else{Element.addClassName(B,"listHover");Element.removeClassName(B,"listSelected");Element.removeClassName(B,"listNotSelected")}},
																																																							  
																																																							  clickUser:function(D){if(this.curSelected.length>0){try{var B=$(this.curSelected+"_"+this.room+"_chatUser");Element.addClassName(B,"listNotSelected");Element.removeClassName(B,"listSelected");Element.removeClassName(B,"listHover")}catch(C){}}this.curSelected=D;var A=$(this.curSelected+"_"+this.room+"_chatUser");Element.addClassName(A,"listSelected");Element.removeClassName(A,"listNotSelected");Element.removeClassName(A,"listHover")},
																																																							  
																																																							  onUserDblClick:function(){if(this.curSelected.length>0){if(typeof (IM.windows[this.curSelected])=="undefined"){IM.create(this.curSelected,this.curSelected)}else{if(!IM.windows[this.curSelected].isVisible()){IM.windows[this.curSelected].show();IM.windows[this.curSelected].toFront();setTimeout("scrollToBottom('"+IM.windows[this.curSelected].getId()+"_rcvd')",125);setTimeout("$('"+IM.windows[this.curSelected].getId()+"_sendBox').focus();",250)}else{IM.windows[this.curSelected].toFront();setTimeout("$('"+IM.windows[this.curSelected].getId()+"_sendBox').focus();",250)}}}}});
		 
		 
		 var ChatroomList={curSelected:"",get:function(B){var A=new XHConn();A.connect(pingTo,"POST","call=roomlist",function(C){var F=C.responseText.parseJSON();B.innerHTML='<ul id="join_room_ul" class="sortable box" style="padding: 0px; margin: 0px;"><li style="display:none;"></li>';if(F.length>0||predefRooms.length>0){for(var D=0;D<F.length;D++){var E=hex_md5(F[D]);if(!$("chatroom_list_"+E)){B.innerHTML+='<li id="chatroom_list_'+E+'" class="buddy" style="padding-left:1%;" onmousedown="ChatroomList.clickRoom(\''+F[D]+"');return false;\" onmouseover=\"ChatroomList.selectRoom(this, '"+F[D]+"', true);\" onmouseout=\"ChatroomList.selectRoom(this, '"+F[D]+"', false);\">"+F[D]+"</li>"}}for(var D=0;D<predefRooms.length;D++){var E=hex_md5(predefRooms[D]);if(!$("chatroom_list_"+E)){B.innerHTML+='<li id="chatroom_list_'+E+'" class="buddy" style="padding-left:1%;" onmousedown="ChatroomList.clickRoom(\''+predefRooms[D]+"');return false;\" onmouseover=\"ChatroomList.selectRoom(this, '"+predefRooms[D]+"', true);\" onmouseout=\"ChatroomList.selectRoom(this, '"+predefRooms[D]+"', false);\">"+predefRooms[D]+"</li>"}}}else{B.innerHTML+='<li class="buddy" style="margin: 2px 0px 0px 0px; padding: 0px; text-align: center;">'+Languages.get("noRoomsExist")+"</li>"}B.innerHTML+="</ul>"})},
		 
		 selectRoom:function(C,A,B){if(B===false){if(this.curSelected!=A){try{Element.addClassName(C,"listNotSelected").removeClassName("listSelected").removeClassName("listHover")}catch(D){}}else{Element.addClassName(C,"listSelected").removeClassName("listNotSelected").removeClassName("listHover")}}else{Element.addClassName(C,"listHover").removeClassName("listSelected").removeClassName("listNotSelected")}},
		 
		 clickRoom:function(A){if(this.curSelected.length>0){try{Element.addClassName($("chatroom_list_"+hex_md5(this.curSelected)),"listNotSelected").removeClassName("listSelected").removeClassName("listHover")}catch(B){}}this.curSelected=A;$("roomname").value=A;Element.addClassName($("chatroom_list_"+hex_md5(A)),"listSelected").removeClassName("listNotSelected").removeClassName("listHover")}};var Languages={current:"",previous:"",available:languageOptions,loaded:[],dictionary:{},lingodict:{},
		 
		 load:function(D){for(var B=0;B<Languages.loaded.length;B++){if(Languages.loaded[B][0]==D){return Languages.set(D)}}var C=document.createElement("script");C.src="languages/"+D+"/lang.js?"+(new Date()).getTime();C.type="text/javascript";document.getElementsByTagName("head").item(0).appendChild(C);if(useLingo){var A=document.createElement("script");A.src="languages/"+D+"/lingo.js?"+(new Date()).getTime();A.type="text/javascript";document.getElementsByTagName("head").item(0).appendChild(A)}},
		 
		 onLoad:function(C,B){for(var A=0;A<Languages.available.length;A++){if(Languages.available[A][0]==C){Languages.loaded[Languages.loaded.length]=Languages.available[A];break}}Languages.dictionary[C]=B;Languages.set(C)},
		 
		 onLingoLoad:function(B,A){Languages.lingodict[B]=A},
		 
		 set:function(B){Languages.previous=Languages.current;Languages.current=B;var A=$$('[class*="lang-"]');A.each(function(F){var H=F.className.split(" ");var E;for(E=0;E<H.length;E++){if(H[E].indexOf("lang-")>-1){break}}H=H[E].substring(5);var C=Languages.get(H);var G=Languages.get(H,Languages.previous);var D=$(document.createElement("div"));D.setStyle({display:"none"});D.innerHTML=G+"";document.body.appendChild(D);G=D.innerHTML;if(F.className.indexOf("langinsert-post")>-1&&F.innerHTML.indexOf(G)==-1){F.innerHTML+=Languages.get(H)}else{if(F.className.indexOf("langinsert-clear")>-1){F.innerHTML=Languages.get(H)}else{if(F.className.indexOf("langinsert-pre")>-1&&F.innerHTML.indexOf(G)==-1){F.innerHTML=Languages.get(H)+F.innerHTML}else{if(F.innerHTML.length==0){F.innerHTML=C;return }if(C.indexOf("%1")>-1){C=C.split(/%1/);G=D.innerHTML.split(/%1/);F.innerHTML=F.innerHTML.replace(G[0],C[0]).replace(G[1],C[1])}else{F.innerHTML=F.innerHTML.replace(G,C)}}}}document.body.removeChild(D)})},
		 
		 get:function(A,B){if(B!=null&&B.length==0){return -1}return Languages.dictionary[B!=null?B:Languages.current][A]},
		 
		 lingoReplace:function(C,B){var E=RegExp(B[0]+"$");var A=C.replace(E,"");var D=trim(A.substring(A.lastIndexOf(" "),A.length)).replace(E,"");A=A.substring(0,A.length-D.length);return A+Languages.lingo(D)+B[1]},
		 
		 lingo:function(A,B){if(B!=null&&B.length==0){return A}B=B!=null?B:Languages.current;if(typeof Languages.lingodict[B]!="undefined"){if(typeof Languages.lingodict[B][A.toLowerCase()]!="undefined"){return Languages.lingodict[B][A.toLowerCase()]}}return A}};
		 
		 var Context={
			 currentUser:null,lastClicked:null,
		 
		 loaded:function(){if(typeof document.oncontextmenu!="undefined"){document.oncontextmenu=Context.oncontextmenu}else{window.oncontextmenu=Context.oncontextmenu}document.onmousedown=window.onmousedown=Context.onmousedown},
		 
		 profile:function(){$("divContext").style.display="none";if(typeof (Profile.windows[Context.currentUser])=="undefined"){Profile.create(Context.currentUser,Context.currentUser)}else{if(!Profile.windows[Context.currentUser].isVisible()){Profile.windows[Context.currentUser].show();Profile.windows[Context.currentUser].toFront()}else{Profile.windows[Context.currentUser].toFront()}}},
		 
		 createIM:function(){$("divContext").style.display="none";if(typeof (IM.windows[Context.currentUser])=="undefined"){IM.create(Context.currentUser,Context.currentUser)}else{if(IM.windows[Context.currentUser].detached){if(IM.windows[Context.currentUser].popup.closed){IM.windows[Context.currentUser]=IM.windows[Context.currentUser].old;IM.windows[Context.currentUser].show()}else{IM.windows[Context.currentUser].popup.focus()}}else{if(!IM.windows[Context.currentUser].isVisible()){IM.windows[Context.currentUser].show();IM.windows[Context.currentUser].toFront();setTimeout("scrollToBottom('"+IM.windows[Context.currentUser].getId()+"_rcvd')",125);setTimeout("$('"+IM.windows[Context.currentUser].getId()+"_sendBox').focus();",250)}else{IM.windows[Context.currentUser].toFront();setTimeout("$('"+IM.windows[Context.currentUser].getId()+"_sendBox').focus();",250)}}}},
		 
		 blockBuddy:function(){$("divContext").style.display="none";Dialogs.blockBuddy(Context.currentUser)},
		 
		 removeBuddy:function(){$("divContext").style.display="none";Dialogs.removeBuddy(Context.currentUser)},
		 
		 oncontextmenu:function(A){
			 if(loggedIn&&Context.lastClicked!=null){
				 A=A||window.event;
				 Context.currentUser=Context.lastClicked;
				 var C=document.body.scrollTop?document.body.scrollTop:document.documentElement.scrollTop;
				 var D=document.body.scrollLeft?document.body.scrollLeft:document.documentElement.scrollLeft;
				
				 $("divContext").style.display="none";var B=Buddylist.listObjects[Context.currentUser].group;$("contextBlock").innerHTML=(typeof Buddylist.list[B]!="undefined"&&Buddylist.list[B][Context.currentUser].blocked==true?Languages.get("contextUnblock"):Languages.get("contextBlock"));Element.setStyle($("divContext"),{left:(A.clientX+D-5)+"px",top:(A.clientY+C-5)+"px",zIndex:Windows.maxZIndex+20,display:"block"});Context.lastClicked=null;return false}else{if($("divContext")){$("divContext").style.display="none"}}},
		 
		 onmousedown:function(A){if(loggedIn){A=A||window.event;if(A.button!=2&&A.button!=3){setTimeout("$('divContext').style.display='none';",100)}}}};
		 
		 var ButtonCtl={create:function(B,A,C){return'<a href="#" '+(C!=null?'id="'+C+'" ':"")+'class="stdButton" onclick="'+A+'return false;" onmouseover="ButtonCtl.hover(this);" onmousedown="ButtonCtl.down(this);" onmouseup="ButtonCtl.normal(this);" onmouseout="ButtonCtl.normal(this);">'+B+"</a>"},
		 
		 createSubmit:function(A,B){return'<input type="submit" '+(B!=null?'id="'+B+'" ':"")+'class="stdButton" onmouseover="ButtonCtl.hover(this);" onmousedown="ButtonCtl.down(this);" onmouseup="ButtonCtl.normal(this);" onmouseout="ButtonCtl.normal(this);" value="'+A+'"" />'},
		 
		 hover:function(A){A.className="stdButton btnHover"},
		 
		 down:function(A){A.className="stdButton btnDown"},
		 normal:function(A){A.className="stdButton"}};
		 
		 
		 var Browser={
			 width:function(){if(self.innerWidth){return self.innerWidth}else{if(document.documentElement&&document.documentElement.clientWidth){return document.documentElement.clientWidth}else{if(document.body){return document.body.clientWidth}}}return 630},
		     height:function(){if(self.innerWidth){return self.innerHeight}else{if(document.documentElement&&document.documentElement.clientWidth){return document.documentElement.clientHeight}else{if(document.body){return document.body.clientHeight}}}return 470}};
			 
		//inint	 
		var user="";
		var pass="";
		var curSelected="";
		var loggedIn=false;
		var titlebarBlinker=false;
		var defaultTitle=document.title=(siteName.length>0?siteName:document.title);
		var blinkerTimer;
		var pingTimer;
		var newWin,newWinRcvd;
		var windowButtons;
		var smilies=[];
		var soundManager;
	    
		window.onload=function(){
			Windows.addObserver({onResize:IM.handleResize});
			Windows.addObserver({onClose:IM.handleClose});
			Windows.addObserver({onMaximize:IM.handleResize});
			Windows.addObserver({onMinimize:IM.handleMinimize});
			soundManager=new SoundManager();
			soundManager.onload=function(){
				soundManager.createSound({id:"msg_in",url:"../sounds/msg_in.mp3",autoLoad:true});
				soundManager.createSound({id:"msg_out",url:"../sounds/msg_out.mp3",autoLoad:true});
				//soundManager.play("msg_out")
				};
			soundManager.beginDelayedInit();
			Element.observe(window,"beforeunload",soundManager.destruct);
			setTimeout(function(){recenterModal(null)},1000);
			Event.observe(window,"resize",recenterModal);
			/*
			Event.observe(window,"unload",function(){
													   if(loggedIn){System.logout()}
													   });
			*/
			clearInputs();
			$("statusList").getElementsBySelector("img").each(function(B){B.src=B.src.replace(/images/g,"themes/"+theme)});
			Context.loaded();
			var A=(document.onmousedown?document.onmousedown:new Function());
			document.onmousedown=window.onmousedown=function(B){showHide(B);A(B)};
			if(!allowNewUsers){
				$$(".registerObject").each(function(B){B.remove()});
			
			}
			
			
			 var D=new XHConn();
									   D.connect("themes/"+theme+"/emoticons/emoticons.html","GET","",
												 function(E){
												   document.body.innerHTML+=E.responseText;
												   var F=new XHConn();
												   F.connect("themes/"+theme+"/emoticons/emoticons.js","GET","",
															 function(G){
																 window.smilies=G.responseText.parseJSON()
															  })
												   });
									   
									   var C=document.createElement("script");
									   C.src="languages/"+languageOptions[0][0]+"/lang.js?"+(new Date()).getTime();
									   C.type="text/javascript";document.getElementsByTagName("head").item(0).appendChild(C);
									
									   if(useLingo){
													 var A=document.createElement("script");
													 A.src="languages/"+languageOptions[0][0]+"/lingo.js?"+(new Date()).getTime();
													 A.type="text/javascript";
													 document.getElementsByTagName("head").item(0).appendChild(A)
										}
												  
												  
										if(languageOptions.length>1){
													  for(var B=0;B<languageOptions.length;B++){
														  $("languageList").innerHTML+='<a href="#" onclick="Languages.load(\''+languageOptions[B][0]+"');return false;\">"+languageOptions[B][1]+"</a> | "
													   }
													   
													   $("languageList").innerHTML=$("languageList").innerHTML.substring(0,$("languageList").innerHTML.length-3)
										 }
			
			
			if(getIMCookie("LoginIM")){  //duoci
				System.login(getIMCookie("LoginIM"),'qwe');
				
			}
			
		}	
			
			window.onerror =function(){return true;}
			
			
										 
		/*	Event.onReady(          function(){
									  
										 
						});
			
		*/	
			
			function clearInputs(){
				
				var B=document.getElementsByTagName("input");
				for(var A=0;A<B.length;A++){
					if(B[A].type=="text"||B[A].type=="password"){
						//B[A].value=""
					}
				}
				
			}
			
			function recenterModal(B){
				var E=WindowUtilities.getWindowScroll();
				var A=WindowUtilities.getPageSize();
				var D=(A.windowHeight-$("modal").getHeight())/2;
				D+=E.top;var C=(A.windowWidth-$("modal").getWidth())/2;
				C+=E.left;
				$("modal").setStyle({top:D+"px",left:C+"px",display:"block"})
			}
			
			function showHide(A){
				var B;
				A=A||window.event;
				if(document.all){
					B=A.srcElement
				}else{
					B=A.target
				}
				if(!B){return }
				
				if(loggedIn&&B.id!="statusList"&&B.id!="fontsList"&&B.id!="statusSettings"&&B.id!="curStatus"&&B.parentNode.id!="statusList"&&B.parentNode.id!="fontsList"&&B.id!="customMessage"&&B.parentNode.id!="customMessage"&&B.id!="emoticonList"&&B.className!="emotIcon"&&B.id!="fontSizeList"&&B.parentNode.id!="fontSizeList"&&B.id!="fontColorList"&&B.className!="colorItem"&&B.className!="tTable"){
					
					Element.setStyle($("statusList"),{display:"none"});
					Element.setStyle($("emoticonList"),{display:"none"});
					Element.setStyle($("fontsList"),{display:"none"});
					Element.setStyle($("fontSizeList"),{display:"none"});
					Element.setStyle($("fontColorList"),{display:"none"});return 
					}
			}
			
			
			function handleInput(D,C,A){
				D=D||D.window;var B=document.all?D.keyCode:D.which;if(B==13){C();return false}if(typeof A=="function"){A()}return true}
				
			function regExpEscape(B){if(!arguments.callee.sRE){var A=["/",".","*","+","?","|","(",")","[","]","{","}","\\"];arguments.callee.sRE=new RegExp("(\\"+A.join("|\\")+")","g")}return B.replace(arguments.callee.sRE,"\\$1")}
			function scrollToBottom(A){$(A).scrollTop=$(A).scrollHeight-$(A).clientHeight}
			
			function trim(A){if(A==null){return null}return A.replace(/^[ \t]+|[ \t]+$/g,"")}
			function toggleAudio(){if(audioNotify==true){audioNotify=false;$("toggleaudio").src="themes/"+theme+"/window/audio_off.png"}else{audioNotify=true;$("toggleaudio").src="themes/"+theme+"/window/audio_on.png"}}function titlebarBlink(B,C,A,D){if(titlebarBlinker==false){document.title=defaultTitle;return }if(D==0&&IM.windows[B].detached){IM.windows[B].popup.titlebarBlink(B,C,A);return }if(A==0){document.title=B+"!";blinkerTimer=setTimeout("titlebarBlink('"+B+"', '"+C+"', 1, "+D+")",1000)}else{if(A==1){document.title='"'+C.substring(0,10)+(C.length>10?"...":"")+'"';blinkerTimer=setTimeout("titlebarBlink('"+B+"', '"+C+"', 2, "+D+")",1000)}else{if(A==2){document.title=defaultTitle;blinkerTimer=setTimeout("titlebarBlink('"+B+"', '"+C+"', 0, "+D+")",1000)}}}}
			
			function blinkerOn(A){titlebarBlinker=(A==true?true:false)}function buttonHover(A){var B=A.src;B=B.replace(/_hover/,"");A.src=B.replace(/\.png/,"_hover.png")}
			
			function buttonDown(A){A.src=A.src.replace(/_hover\.png/,"_down.png")}
			
			function buttonNormal(A){A.src=A.src.replace(/\_hover.png/,".png").replace(/\_down.png/,".png")}
			
			function checkEmailAddr(A){var B=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;return B.test(A)}
			
			function randomString(D){var C="abcdefghijklmnopqrstuvwxyz1234567890";var B="";var A=C.length;for(x=0;x<D;x++){i=Math.floor(Math.random()*A);B+=C.charAt(i)}return B}
			
			function inArray(A,C){
				var B;
				for(var D in A){
					for(B=0;B<A[D].length;B++){
						if(A[D][B]===C){
							return true
						}
					}
				}
			return false
			
			}
			
			Array.prototype.inArray=function(B){
				var A=this.length;
				if(A>0){
					do{
						if(this[A]===B){return true}
					}while(A--)
				}
				return false
			};
			
			String.prototype.isAlphaNumeric=function(){
				return/^[A-Za-z0-9_\d]+$/.test(this)
			};
			
			var loadCSS=document.createElement("link");
			loadCSS.setAttribute("rel","stylesheet");
			loadCSS.setAttribute("type","text/css");
			loadCSS.setAttribute("href","themes/"+theme+"/style.css");
			if(typeof loadCSS!="undefined"){
				document.getElementsByTagName("head")[0].appendChild(loadCSS)
			};
			
			
			
	

