/*by Marco Samy - (c)2006 - marco_s2@hotmail.com*/
var waitDuration=2400,curPublicRoom='',friendsUpdate=true,thisUser='';
var tryCount=0,testTimer=-1,Retry=0;
var isBaned=0;b_t=-1;
var mstrs=new Array('بلوك','الغاء البلوك',' التحق بالغرفة',' ترك الغرفة',' تم طرده :','يرسل محادثة خاصة','يدعوك','اظهار الأشخاص في كافة العرف','اخفاء الاشخاص من الغرف الأخرى','تنبيه','ظهور أوفلاين','ظهور أونلاين','موضوع الغرفة','لا يوجد أصدقاء أونلاين','سجل دخوله','خرج','جاري التحميل','يقوم بكتابة رسالة','انقر للرد');
//                  0                     1               2             3           4                5        6                          7                               8       9
var dJx;
var mfc=null;

function doClick(obj){
if(br_moz){var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,0, 0, 0, 0, 0, false, false, false, false, 0, null);
var canceled = !obj.dispatchEvent(evt);
}else obj.click();
}

function downNow(url){
	if (document.getElementById) {
		dJx = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
	}
	if (dJx) {
		dJx.onreadystatechange = function() {
			if (dJx.readyState == 4 && dJx.status == 200) {
				onRecieve(dJx.responseText);
			}
		}
	}
	dJx.open("GET", url, true);
	dJx.send(null);
}



function testConnection(){
	if(tryCount>0){
		if(tryCount=3){
			onConnResponse();
			Retry++;
			SendRequest();
		}
		else{
			setupTest();
		}
	}
}

function endLastTest(){
	if(testTimer!=-1){
		clearTimeout(testTimer);testTimer=-1;
	}
}

function setupTest(){
	endLastTest();
	testTimer=setTimeout('testConnection();',10000);
	tryCount+=1;
}

function onConnResponse(){
	tryCount=1;
	endLastTest();
}

var arrPrvts=new Array();var vsubs=new Array();var wins=new Array();

function GetPvt(l){
	return arrPrvts[l];
}

function AddPvt(l,win){
	arrPrvts=add(arrPrvts,l);
	vsubs=add(vsubs,win);
	return (arrPrvts.length-1);
}

function RemovePvt(l){
	arrPrvts=removeex(arrPrvts,l);
	vsubs=removeex(vsubs,l);
	//shift them up !!!
	var i;
	for(i=0;i<tblmsgs.rows.length;i++){
		if(tblmsgs.rows[i].className=='PRVTCHAT'){
			if(Math.ceil(tblmsgs.rows[i].b)>l)tblmsgs.rows[i].b=(Math.ceil(tblmsgs.rows[i].b)-1);
		}
	}
}

function AddToPvt(data,l){
	if(arrPrvts[l]==''){arrPrvts[l]=data;}else{arrPrvts[l]=arrPrvts[l]+'+^D^+'+data;}
}

function ExtractPvt(l){
	var ret=GetPvt(l);
	RemovePvt(l);
	return ret;
}

function play(snd){
	soundplayer.src='Chat/'+snd;
}

var myWaitingRequest=-1;
var isWaiting=false;

function onRecieve(ss){
	onConnResponse();
	isWaiting=false;
	var isMFChat=false;
	if(curPublicRoom!='')isMFChat=true;
	var datas=ss.split('|D|');
	if(friendsUpdate==true){
		LoadFriends(datas[0]);
	}else{
		ProcessOnlineData(datas[0]);
	}
		var ChatRemains=LocalProcessChatData(datas[1]);
		var mfwindow=mfc==null?document.getElementById('mf').contentWindow:mfc;
		if(isMFChat==true&&ChatRemains!=''){
			mfwindow.PreProcess(ChatRemains);
		}else{
			ProcessChatRemains(ChatRemains);
		}
		var cRet=Math.ceil(datas[2]);
		if(cRet==Retry)myWaitingRequest=setTimeout('SendRequest();',waitDuration);
}



function LocalProcessChatData(sdata){
	var myRemains='';
	var curRemains='';
	var splitter='+^D^+';
	
	if(sdata==''||sdata=='1')return '';

	if(sdata.substring(0,2)=='ud'){
		doRespWr(sdata.substring(2));return '';
	}

	var datas=sdata.split('+^D^+');
	var i, line, xitems;


	for(i=0;i<datas.length;i++){
		line=datas[i];
		xitems=line.split('+^U^+');
		curRemains=Process(xitems[0],xitems[1],xitems[2],xitems[3],xitems[4],xitems[5],xitems[6],xitems[7]);
		if(curRemains=='1'){
			myRemains+=myRemains==''?'':splitter;
			myRemains+=line;
		}
	}
	return myRemains;
}

function ProcessChatRemains(sdata){
	//reject all remains
}

function ProcessOnlineData(sdata){
	if(sdata=='x'){LoadFriends(sdata);return;}
	if(sdata=='1')return;
	var datas,dats,i;
	datas=sdata.split('||');
	for(i=0;i<datas.length;i++){
		dats=datas[i].split('|');
		loadOnlineEvent(dats[0],dats[1]);
	}
}

function loadOnlineEvent(evt,data){
	switch (evt){
		case '1':
			LoadFriend(data,true);
			break;
		case '2':
			deleteFriend(Math.ceil(data),true);
			break;
		case '3':
			ProcessCast(data);
	}
}

function ProcessCast(csData){
	var dts=csData.split(',');
	if(dts.length==0)return;
	var i;
	showCast(dts[0],dts[1],dts[2],dts[3],dts[4]);
}

var selectedUserID=-1;
var selectedUsername='';

function showUA(sID,sUn,evtSender,event){
	selectedUserID=sID;
	selectedUsername=sUn;
	var ubObject=document.getElementById('ub'+sID);
	var btObject=document.getElementById('tblua').rows[2].cells[0].childNodes[0].childNodes[0];
	if(ubObject.style.visibility!='visible'){
		btObject.innerHTML=mstrs[10];
	}else{
		btObject.innerHTML=mstrs[11];
	}
	document.getElementById('tblua').style.display='block';
	var x=event.clientX-document.getElementById('tblua').clientWidth;
	var y=event.clientY+document.body.scrollTop;
	document.getElementById('tblua').style.left=x;
	document.getElementById('tblua').style.top=y;
}

function doBlock(){
	var ubObject=document.getElementById('ub'+selectedUserID);
	if(ubObject.style.visibility!='visible'){
		ubObject.style.visibility='visible';
		addData('b,'+selectedUserID);
	}else{
		ubObject.style.visibility='hidden';
		addData('ub,'+selectedUserID);
	}
}

function PopUpPrivate(user2,begin,dontcheck,padd){
	var oadd=padd==null||padd=='undefined'?'':padd;

	var win=ifopen(user2);
	if(win==null){
		if(dontcheck!=true){
			var rqret=rqinlist(user2);
			if(rqret!=null){
				doClick(rqret.childNodes[0].childNodes[0]);
				return;
			}
		}
		var myuser;
		myuser=thisUser;
		var win,bbb,trid;
		if(begin==null||begin=='undefined'){
			bbb=-1;
			trid=-1;
		}
		else{
			bbb=begin.b;
			trid=begin.id;
		}
		win=window.open(padd+"Chat/Client.aspx?Sessions=1&User1="+escape(myuser)+"&User2="+escape(user2)+"&b="+bbb+"&tr="+trid,"_blank","directories=no,location=no,menubar=no,height=350,resizable=yes,width=500,status=yes,titlebar=no,toolbar=no");		
	}
	else
	{
		win.focus();
		win.document.getElementById('txtinput').focus();
	}
}


function doPrivate(){
	PopUpPrivate(selectedUsername,null,null,'');
}

function doProfile(){
	window.open("Profile.aspx?npc=1&id="+selectedUserID,"profile","directories=no,location=no,menubar=no,height=350,resizable=yes,width=500,status=no,titlebar=no,toolbar=no,scrollbars=1");
}

var wr='';

function AddWr(rid){
	var sep=wr==''?'':',';
	wr=wr+sep+rid;
}

function respWr(win,txt){
	var datas=txt.split('+^D^+');
	var i,line,xitems;
	if(win==null)return;
	clearUsers(win);
	var ximg;
	if(datas[0]!=''&&datas[0]!=' ')doadd('',mstrs[12],'<b>'+datas[0]+'</b>','#000000','','','',win);
	for(i=1;i<datas.length;i++){
		line=datas[i];
		xitems=line.split('+^U^+');
		ximg=xitems[1];
		if(ximg==''){
			ximg="../Users/avs/no.gif";
			}
			else
			{
			ximg="../Users/avs/"+ximg;
		}
		adduser(ximg,xitems[0],win);
	}
}


function doRespWr(txt){
	var ss=txt.split("|D|");
	var i,s,win,rom;
	for(i=0;i<ss.length;i++){
		s=ss[i].split('|U|');
		rom=s[0];
		if((rom.length>3&&rom.substring(0,3)=='rom')||(rom.substring(0,1).toUpperCase()=='G')){
			if(curPublicRoom=='')continue;else win=mfc==null?document.getElementById('mf').contentWindow:mfc;
		}else{
			win=getprvtwin(rom.substring(3));
		}
		respWr(win,s[1]);
	}
}

var dataToSend='';

function addData(sdata){
	var sep=dataToSend==''?'':'|';
	dataToSend=dataToSend+sep+sdata;
}

function removeData(sdata){
	if(dataToSend=='')return;
	var ds=dataToSend.split('|');
	var i;
	dataToSend='';
	for(i=0;i<ds.length;i++){
		if(ds[i]!=sdata)addData(ds[i]);
	}
}

function SendRequest(){
	var t=new Date;
	var sss;
	var dt=dataToSend==''?'':'&d='+escape(dataToSend);
	var ud=wr==''?'':"&listusers="+escape(wr);
	var chParams="ID="+escape(curPublicRoom)+"&UserID="+escape(thisUser)+ud;
	if(curPublicRoom!='')chParams+='&allusers='+(mfc==null?document.getElementById('mf').contentWindow:mfc).getAll;
	if(friendsUpdate==true){
		sss="odata.aspx?init=1"+"&"+chParams+dt+"&r="+Retry;
	}else{
		sss="odata.aspx?"+chParams+dt+"&r="+Retry;
	}
	setupTest();
	dataToSend='';
	wr='';
	isWaiting=true;
	try{
		downNow(sss);
	}catch(e){
		if(friendsUpdate==true){
			sss="odata.aspx?init=1"+"&"+chParams;
		}else{
			sss="odata.aspx?"+chParams;
		}
		downNow(sss);
	}
}

function LoadFriends(sss){
	clearTable('tblusers',0);
	var ss,ssx;
	ssx=sss.split('|||');
	ss=ssx[0];if(ssx.length>1)ProcessOnlineData(ssx[1]);
	if(ss=='x'){
		var r=document.getElementById('tblusers').insertRow(-1).insertCell(-1);
		r.className='lfc3';
		r.align='center';
		r.innerHTML="لم تسجل دخولك";
		r.id='usermsg';
		friendsUpdate=true;
	}else{
		var xx,i;
		xx=ss.split('|');
		thisUser=xx[0];
		if(xx.length>1){
			for(i=1;i<xx.length;i++){
				LoadFriend(xx[i]);
			}
		}else{
			var r=document.getElementById('tblusers').insertRow(-1).insertCell(-1);
			r.className='lfc3';
			r.align='center';
			r.innerHTML=mstrs[13];
			r.id='usermsg';
		}
		friendsUpdate=false;
	}
	document.getElementById('tblua').style.zIndex=1;
	document.getElementById('tblinfo').style.zIndex=1;
}

function clearTable(tId,vs){
	var tt=document.getElementById(tId);
	if(!tt)return;
	var c=tt.rows;
	if(c)c=c.length;else return;
	var i;
	if(c<=vs)return;
	for(i=vs;i<c;i++){
		tt.deleteRow(vs);
	}
}

function LoadFriend(s,useAlert){
	var ss=s.split(',');
	var blc=0;
	if(ss[0].indexOf('*')>-1){blc=1;ss[0]=ss[0].replace('*','');}
	var blcc=blc==1?'visible':'hidden';
	if(isFriendHere(ss[1])!=-1)return;
	var tt=document.getElementById('tblusers');
	if(tt.rows[0]!=null)if(tt.rows[0].cells[0].id=='usermsg')tt.deleteRow(tt.rows[0].rowIndex);
	var r=tt.insertRow(-1).insertCell(-1);
	r.className='f';
	r.align='center';
	r.id='user'+ss[1];
	var txt='<img id="ub'+ss[1]+'" src="images/ub.gif" style="visibility:'+blcc+'" align="middle">'+'<a id="sua'+ss[1]+'"'+
	' onmouseover="if(document.getElementById('+"'"+'tblua'+"'"+').style.display!='+"'"+'block'+"'"+')showI('+ss[1]+','+"'"+ss[6]+"'"+','+ss[5]+','+"'"+ss[3]+"'"+','+"'"+ss[4]+"'"+','+"'"+ss[7]+"'"+','+"'"+ss[8]+"'"+')"'+
	' onmouseout="hideI()"'+
	' onmousemove="movI(event)"'+
	' onclick="event.cancelBubble=true;showUA('+ss[1]+','+"'"+ss[0]+"'"+',this,event);hideI()"'+
	' dir=ltr class="lfc3 b" href="#">'+ss[0]+'</a>';
	r.innerHTML=txt;
	//MoveTops();
	if(useAlert==true){showAlert(ss[0],mstrs[14],'sua'+ss[1],9000);play('Enter.mid');}
}

function deleteFriend(friendId,useAlert){
	var tt=document.getElementById('tblusers');
	var foundIdx=isFriendHere(friendId);
	if(foundIdx!=-1){
		var bText=tt.rows[foundIdx].cells[0].childNodes[1].childNodes[0].innerHTML;
		tt.deleteRow(foundIdx);
		if(useAlert==true){showAlert(bText,mstrs[15],'',9000);play('Leave.wav');}
	}
	//close it's privates
	var win=ifopen(bText);
	if(win!=null)win.close();
	//delete it's requests
	var rr=rqinlist(bText);
	if(rr!=null)document.getElementById('tblmsgs').deleteRow(rr.rowIndex);
	//checkTblMsgs();
}

function isFriendHere(friendId){
	var i;
	var tt=document.getElementById('tblusers');
	for(i=0;i<tt.rows.length;i++){
		if(tt.rows[i].cells[0].id=='user'+friendId)return tt.rows[i].rowIndex;
	}
	return -1;
}

var displayedAlerts=0;
var createdAlerts=0;
var cAlerts=new Array();

function createAlert(user,msg,owner_tr_id){
	createdAlerts+=1;
	var alIdx=getAlIndex();
	var otbl=document.createElement('table')
	otbl.onclick=function (){alert_onClick(createdAlerts,owner_tr_id)}
    otbl.border="0";
    otbl.width="150";
    otbl.cellpadding="0";
    otbl.className="normborder b2";
    otbl.style.visibility="hidden";
    otbl.style.position="absolute";
    if(!br_moz){
        otbl.style.cursor="hand";
        otbl.style.filter="progid:DXImageTransform.Microsoft.Fade(duration=0.5,overlap=1.0) progid:DXImageTransform.Microsoft.Alpha( style=0,opacity=90)";
    }
	document.body.appendChild(otbl);
	var c;
	c=otbl.insertRow(-1).insertCell(-1);
	c.align="center";
	c.className="normborder b1 f";
	c.innerHTML='<b>'+user+'</b>';
	
	c=otbl.insertRow(-1).insertCell(-1);
	c.align="center";
	c.className="f";
	c.height="50";
	c.innerHTML=msg;
	otbl.id='Alert'+createdAlerts;
	otbl.alIndex=alIdx;
	addAl(otbl);
	return createdAlerts;
}

function addAl(al){
	cAlerts=add(cAlerts,al);
}

function removeAl(al){
	cAlerts=remove(cAlerts,al);
}

function disposeAlert(alertID){
	displayedAlerts-=1;
	var theAlert=document.getElementById('Alert'+alertID);
	if(theAlert==null)return;
	removeAl(theAlert);
	theAlert.parentNode.removeChild(theAlert);
	offsetAlerts();
}

function offsetAlerts(){
	var i;
	for(i=0;i<cAlerts.length;i++){
		cAlerts[i].alIndex=getAlIndex();
	}
	moveAlertsEx();
}

function moveAlert(al){
	var x=document.body.clientWidth-(al.clientWidth+30);

	var yAdds=(90*Math.ceil(al.alIndex));

	var y=document.body.scrollTop+document.body.clientHeight;
	y-=yAdds;

	al.style.left=x;
	al.style.top=y;
}

function getAlIndex(){
	var x=0;
	var i;
	var found=1;
	while(found==1){
		x+=1;
		found=0;
		for(i=0;i<cAlerts.length;i++){
			if(Math.ceil(cAlerts[i].alIndex)==Math.ceil(x)){
				found=1;
				break;
			}
		}
	}	
	return x;
}

var moveWait=-1;

function moveAlertsEx(){
	var i;
	for(i=0;i<cAlerts.length;i++){
		moveAlert(cAlerts[i]);
	}
}

function moveAlerts(){
	if(moveWait!=-1){
		clearTimeout(moveWait);
	} 
	moveWait=setTimeout('moveAlertsEx();moveWait=-1;',200);
}

function showAlert(user,msg,owner_tr_id,duration,sl){
	focus();
	var alertID=createAlert(user,msg,owner_tr_id);
	var theAlert=document.getElementById('Alert'+alertID);
	moveAlert(theAlert);
	try{theAlert.filters(0).Apply()}catch(e){}
	theAlert.style.visibility='visible';
	try{theAlert.filters(0).Play()}catch(e){}
	displayedAlerts+=1;
	setTimeout('hideAlert('+alertID+');',duration);
	
	if(sl!=0){
		setTimeout("msgr_show()",1000);
		setTimeout("msgr_hide()",4000);
	}
}
var msMenu,msTop;

function msgr_show(){
    //goexec('msexec()','msn');
}

function msexec(){

}

function outmsexec(){
}

function msgr_hide(){
    //outexec('outmsexec()','msn');
}

function alert_onClick(alertID,owner_tr_id){
	if(owner_tr_id!=''){
		var theTrObject=document.getElementById(owner_tr_id);
		if(theTrObject!=null)doClick(theTrObject);
}
disposeAlert(alertID);
}

function hideAlert(alertID){
	var theAlert=document.getElementById('Alert'+alertID);
	if(theAlert==null)return;
	try{theAlert.filters(0).Apply()}catch(e){}
	theAlert.style.visibility='hidden';
	try{theAlert.filters(0).Play()}catch(e){}
	setTimeout('disposeAlert('+alertID+');',600);
}

function AddRequestRow(Username, pvtID){
	var t=document.getElementById('tblmsgs');
	var r=t.insertRow(-1);
	r.id='rq'+Username;
	r.b=pvtID;
	var c;
	c=r.insertCell(-1);
	c.className='c1 sf';
	c.innerHTML='<div id="divq'+Username+'" align="center" width="100%"'+
	' style="cursor:hand" onclick="PopUpPrivate('+"'"+Username+"'"+',this.parentNode.parentNode,true,'+"''"+');this.parentNode.parentNode.style.display='+"'"+'none'+"'"+';"'+
	'><b>'+Username+'</b></div>';
	//checkTblMsgs();
	return r;
}

var pendingCasts=0;

function showCast(Title, Msg, Link, Timeout1, Timeout2){
	if(Msg.length==1){
		if(Msg=='x'){signOut();}
		if(Msg=='b'){clearTimeout(b_t);isBaned=1;if(Math.ceil(Timeout1)>0){b_t=setTimeout('isBaned=0;b_t=-1',Math.ceil(Timeout1)*60000);}}
		if(Msg=='u'){clearTimeout(b_t);isBaned=0;b_t=-1;}
		return;
	}
	var obj_toclick,tid;
	var doslide=0;
	if(Timeout2!='0'&&Timeout2!=''&&Link!=''){
		obj_toclick=AddCastRow(Title,Link,Math.ceil(Timeout2)*1000);
		tid=obj_toclick.childNodes[0].childNodes[0].id;
		doslide=1;
	}else{
		tid='';
		doslide=0;
	}
	showAlert(Title,Msg,tid,Math.ceil(Timeout1)*1000,doslide);
	play('m.mid');
}

function AddCastRow(Title, Link, Timeout){
	var t=document.getElementById('tblcast');
	var r;
	r=isLinkFound(t,Link);
	if(r!=null){
		clearTimeout(r.timeout)
		r.timeout=setTimeout('EndCastRow('+r.castID+')',Math.ceil(Timeout));
		return r;
	}
	r=t.insertRow(-1);
	pendingCasts+=1;
	r.id='cast'+pendingCasts;
	var clickTxt='';
	if(Link!=''){
		clickTxt=' onclick="document.getElementById('+"'"+'mf'+"'"+').contentWindow.document.location='+"'"+Link+"'"+';EndCastRow('+pendingCasts+');" ';
	}
	r.Link=Link;
	var c;
	c=r.insertCell(-1);
	c.className='lfc3 b';
	c.innerHTML='<div id="dcast'+pendingCasts+'" align="center" width="100%"'+
	' style="cursor:hand"'+clickTxt+
	'><b>'+Title+'</b></div>';
	r.castID=pendingCasts;
	r.timeout=setTimeout('EndCastRow('+pendingCasts+')',Math.ceil(Timeout));
	return r;
}

function isLinkFound(t,Link){
	var i;
	for(i=0;i<t.rows.length;i++){
		if(t.rows[i].Link==Link)return t.rows[i];
	}return null;
}

function EndCastRow(CastID){
	var thisCast=document.getElementById('cast'+CastID);
	if(thisCast!=null)document.getElementById('tblcast').deleteRow(thisCast.rowIndex);
}


function Process(type,myroom,msgtxt,byname,avatargif,aff,begin,inv,w){
    var color;
	var noal=0;
    switch(type){
		case '1':color='#0000FF';break;
		case '2':color='#006400';break;
		case '3':color='#FF0000';break;
		case '4':color='#000000';break;
		case '5':color='#FF0000';break;
		case '6':color='#FF0000';break;
		case '7':color='#2e6881';break;
		case '8':color='#0000FF';break;
		default:color='#ff9933';
	}
	var ximg=avatargif;
	if(ximg==''){
		ximg="../Users/avs/no.gif";
		}
		else
		{
		ximg="../Users/avs/"+ximg;
	}
	if(myroom!='1'&&type=='4'){
		
			PrivateRequest(byname,ximg,color,mstrs[18],'',noal);
	}
	var win;
	if(w==null||w==undefined){
		switch(myroom){
			case '1':
				return '1';
			case '0':
				return '1';
			default:
				if(myroom.substring(0,3)=="rom"){
					return '1';
				}else{//pvt
					win=getprvtwin(myroom.substring(3));
					if(win==null){
						var vwin=getvWin(myroom.substring(3));
						if(vwin==-1){
							return;
						}else{
							AddToPvt(type+'+^U^+'+myroom+'+^U^+'+msgtxt+'+^U^+'+byname+'+^U^+'+avatargif+'+^U^+'+aff+'+^U^+'+begin+'+^U^+'+inv,vwin);
							if(noal==1){
								var rqr=document.getElementById('rq'+byname);
								if(rqr.style.display!='none')PopUpPrivate(byname,rqr,true,'');rqr.style.display='none';//checkTblMsgs();
							}
							return;
						}
					}
				}
		}
	}else{
		win=w
	}
	if(type=='2'){
		removeuser(byname,win);
	}
	if(type=='3'){
		removeuser(aff,win);
	}

	if(type=='1'){
		adduser(ximg, byname,win);
	}
	
	if(myroom!='1'){
		if(myroom.substring(0,3)=="rom")return '1';
	}
	var outmsg;
	switch(type){
		case '1'://enter
			outmsg=win.mstrs[2];
			win.play('Enter.mid');
			break;
		case '2'://leave
			return;
		case '3'://kick
			outmsg='<b>' + aff + '</b>' + mstrs[4] + msgtxt;
			win.play('Kick.wav');
			break;
		case '4'://msg
			outmsg=ss(msgtxt);
			if(win.isMePRVT==true)win.play('m.mid')
			break;
		case '5'://prvt
			outmsg=win.mstrs[5];
			break;
		case '6'://sys
			outmsg=msgtxt;
			break;
		case '7'://invite
			outmsg=win.mstrs[6];
			win.play('Private.wav');
			break;
		case '8':
			doCmd(msgtxt,byname,ximg,color,win);
			return;
	}
	if (type=='5'){
		win.PrivateRequest(byname,ximg,color,outmsg,'');		
	}
	else
	{
		if (type=='7'){
			win.InviteRequest(byname,ximg,color,outmsg,begin,inv);		
		}
		else
		{
			doadd(ximg, byname.replace('*','(Admin)').replace('~~','').replace('~',''),outmsg, color, '','','',win);
		}
	}
}

function doadd(av,nm,tx,color,prvt,begin,inv,w){
	var nr,nd,minv;
	w.status='';
	var wtm=w.document.getElementById('tblmsgs');
	var wds=w.document.getElementById('divscroll');
	var imgtxt='',colortxt=color,clstxt='lborder c1',onclicktxt='';
	if(wtm.rows.length>50){wtm.deleteRow(0);}
	if(av!='')imgtxt='<img border="0" src="' + av +'">';
	nr = wtm.insertRow(-1);
	nd = nr.insertCell(-1);
	nd.innerHTML='<table border="0" width="100%" class="'+clstxt+'"'+onclicktxt+'><tr><td rowspan="2" width="50">'+imgtxt+'</td>'+'<td><font color="'+colortxt+'" size="2"><b>'+
	nm+' :</b></font>'+
	'</td></tr><tr><td width="100%"><font class="f">'+ConvEmots(tx)+'</font></td></tr></table>';
	wds.scrollTop=wds.scrollHeight - wds.clientHeight; 		
}

function ConvEmots(txt){
	var i, rtxt;
	rtxt=txt;
	for(i=0;i<20;i++){
		rtxt=rtxt.replace('('+(i+1)+')',GetEmotPath(i));
	}
	return rtxt;
}

function GetEmotPath(i){
	return '<img src='+'"../images/c/'+(i+1)+'.gif"'+'>';
}


var fwin=null;
function PrivateRequest(user2,imgav,color,msg,begin,noal){
	var win=ifopen(user2);
	if(win==null){
		var rr=rqinlist(user2);
		if(rr==null){
			var bb=AddPvt(begin,'pvt'+thisUser+'|'+user2);
			rr=AddRequestRow(user2,bb);
		}else{
			var idx=Math.ceil(rr.b);
		}
		if(noal!=1)showAlert(user2,msg,rr.childNodes[0].childNodes[0].id,10000);
		play('Private.wav');
	}
	else
	{
		ww(win);
	}
}

function ifopen(user2){
	var i;
	var room,u ;var win;
	for(i=0;i<wins.length;i++){
		win = wins[i];
		room=win.roomid;
		u=retuser2(room);
		if(u==user2)return win;
	}
	return null;
}

function rqinlist(wu){
	var nr,i;
	for(i=0;i<tblmsgs.rows.length;i++){
		nr=tblmsgs.rows[i];
		if(nr.id=="rq" + wu){
			return nr;
		}
	}
	return null;
}

function deltr(objname){
	var obj=document.getElementById(objname);
	tblmsgs.deleteRow(obj.rowIndex);
}

function PreProcess(txt){
	if(txt==''||txt=='undefined'||txt==null)return false;
	var datas=txt.split('+^D^+');
	var i, line, xitems;

	for(i=0;i<datas.length;i++){
		line=datas[i];
		xitems=line.split('+^U^+');
		Process(xitems[0],xitems[1],xitems[2],xitems[3],xitems[4],xitems[5],xitems[6],xitems[7]);
	}return true;
}

function addpvtwindow(win){
	wins=add(wins,win);
}

var closing=0;

function dounload(){
	{
		closing=1;
		var w,i;
		for(i=0;i<wins.length;i++){
			w=wins[i];
			w.close();
		}
	}
}

function pnp(padd,Why){
win=window.open(padd+"Chat/NoPvt.aspx?Why="+Why,"_blank","directories=no,location=no,menubar=no,height=350,resizable=yes,width=500,status=yes,titlebar=no,toolbar=no");		
}

function endprivate(roomwin){
	if(closing==1)return;
	wins=remove(wins,roomwin);
}

function getprvtwin(the2onlystr){
	var i,temp,elem;
	var myTarget,u1,u2,us,tu1,tu2;
	var xx;
	us=the2onlystr.split('|');
	u1=us[0];
	u2=us[1];

	for(i=0;i<wins.length;i++){
		elem=wins[i].roomid;
		if(elem!=null){
			xx=elem.substring(3);
			temp=xx.split('|');
			if(temp.length>0){
				tu1=temp[0];
				tu2=temp[1];
				if(compareusers(u1,u2,tu1,tu2)==true)return wins[i];
			}
		}
	}
	return null;
}

function compareusers(u1,u2,u3,u4){
	if(u1==u3){
		if(u2==u4){
			return true;
		}
		else{
			return false;
		}
	}
	else{
		if(u1==u4){
			if(u2==u3){
				return true;
			}
			else{
				return false;
			}
		}
		else{
			return false;
		}
	}
}

function getvWin(the2onlystr){
	var i,temp;
	var myTarget,u1,u2,us,tu1,tu2;
	var xx;
	us=the2onlystr.split('|');
	u1=us[0];
	u2=us[1];

	for(i=0;i<vsubs.length;i++){
		xx=vsubs[i].substring(3);
		temp=xx.split('|');
		if(temp.length>0){
			tu1=temp[0];
			tu2=temp[1];
			if(compareusers(u1,u2,tu1,tu2)==true)return i;
		}
	}
	return -1;
}

function retuser2(roomname){
	var users, user1, user2, thetwo, ret, myuser;
	users=roomname.substring(3);
	thetwo=users.split("|");
	user1=thetwo[0];
	user2=thetwo[1];
	myuser=thisUser;
	ret=user1==myuser?user2:user1;
	return ret;
}

function startWriting(pvtID){
	addData('w,'+pvtID.replace('|','~'));
}

function cancelWriting(pvtID){
	removeData('w,'+pvtID.replace('|','~'));
}

function sendToChat(pvtID,CMD,data){
	while(data.indexOf(';')>-1||data.indexOf('|')>-1||data.indexOf(',')>-1){
		data=data.replace(';',':');
		data=data.replace('|',':');
		data=data.replace(',',':');
	}
	addData('s,'+pvtID.replace('|','~')+';'+CMD+';'+data);
	if(isWaiting==true)return;
	clearTimeout(myWaitingRequest);
	myWaitingRequest=setTimeout('SendRequest();',140);
}

var cw=0,tw=-1;
function sw(){
	cw=1;
	if(tw!=-1)clearTimeout(tw);
	tw=setTimeout('ew();tw=-1;',3000);
}

function ew(){
	cw=0;
	if(fwin!=null){fwin.focus();fwin.document.getElementById('txtinput').focus();fwin=null}
}

function ww(w){
	if(cw==0){w.focus();w.document.getElementById('txtinput').focus()}else{fwin=w;}
}

function gnp(w){
	var bs='<table id="divloading" style="width: 92%; height: 100%; font-size:24pt" align="center"><tr><td height="95%" class="bspace" align="center">'+mstrs[16]+'...</td></tr></table><table id="tblall" style="display:none;" height="460" cellSpacing="5" cellPadding="0" width="100%" border="0"><tr id="trroom"><td colSpan="2" height="30"><table class="normborder" cellPadding="0" width="100%" border="0"><tr><td width="50%"><FONT size="2">You are in&nbsp;<font id="lblRoom" Class="f c2"></font></font>&nbsp;&nbsp;&nbsp;<b><FONT size="1"> <a class="alink" Href="../home.aspx">Exit</a></font></b>&nbsp;&nbsp;<b><FONT size="1"> <a class="alink" Href="Default.aspx">Change Room</a></font></b></td></tr><TR><TD colSpan="3"><u><B><FONT size="1" style="CURSOR: '+(br_moz?'default':'hand')+'" onclick="chShowAll(this)">Show users in all rooms</FONT></B></u></TD></TR></table></td></tr><tr id="trprvt" style="DISPLAY: none"><td colSpan="2" height="10"><table border="0" width="100%" Class="normborder" cellpadding="0"><tr><td> <font size="2">Private convarsation with <font id="lblTarget" class="f c2"></font></font></td></tr></table></td></tr><tr><td id="tduserscont" width="150"><table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0"><tr><td id="tdusers" class=normborder><div onselectstart="event.returnValue=false;" id="divlist" dir="ltr" style="OVERFLOW: auto; HEIGHT: 100%;" class="b3"><table class="b3 c1" onselectstart="event.returnValue=false;" id="tblusers" dir="rtl" cellSpacing="1" cellPadding="0" width="100%" border="0"></table></div></td><td style="CURSOR: hand;" class="normborder" onclick="autousers()" width="7"><IMG id="imgua" height="14" src="../images/mslfa.gif" width="7" border="0"></td></tr></table></td><td class="normborder"><div width="100%" id="divscroll" class="b3" style="overflow-y: auto;overflow-x: hidden;text-overflow :clip; HEIGHT: 100%;"><table id="tblmsgs" cellPadding="0" width="100%" border="0"><tr><td><table class="HLPCHAT" width="100%" border="0"><tr><td width="50" rowSpan="2"><IMG height="40" src="../Users/avs/no.gif" width="50" border="0"></td><td><a target=_blank href="http://www.msamy.info/" style="font-size:10pt;color:#000000" dir=ltr>&copy;2006 - yso3.com, by <b>Marco Samy</b></a></td></tr><tr><td><a target=_blank href="../Privacy.aspx" style="font-size:10pt;color:#000000"><b>Privacy Statment</b></a></td></tr></table></td></tr></table></div></td></tr><tr><td colSpan="2" height="60"><table height="100%" cellSpacing="3" cellPadding="0" width="100%" border="0"><tr><td class="normborder"><table border="0" width="100%" id="table4" cellpadding="0"><tr><td id="Emotpicker" onclick="wef();ShowExtras(document.getElementById('+"'"+'tblEmot'+"'"+'),this,event)" align="center" width="20" class="normborder"><img border="0" src="../images/Emots.gif" width="20" height="20" alt="Emotions"></td><td id="colorpicker" onclick="wef();ShowExtras(document.getElementById('+"'"+'tblColors'+"'"+'),this,event)" align="center" width="20" class="normborder"><img border="0" src="../images/colourpick.gif" width="18" height="17" alt="Font Color"></td><td><table id="tblprvttools" border="0"><tr><td width="10">&nbsp;</td><td id="tdprvttool1" width="20" class="normborder" style="display:none;" onclick="o.SendAttention(window)"><p align="center"><img border="0" src="../images/i.gif" width="7" height="16" alt="Attention!"></td><td width="20">&nbsp;</td></tr></table></td></tr></table></td>'+
		'<td width="150" rowSpan="2" align="center" class="b2 lborder" style="cursor:default" onclick="o.doSend(window);"><b>'+
		'<font size="4" style="cursor:hand">Send</font></b></td></tr><tr><td class="normborder"><input maxlength="150" onkeypress="if(event.keyCode==13){o.doSend(window);event.returnValue=false;}else{sendWritingStart();o.sw();}" id="txtinput" class="ChatBox b3 c1" type="text" size="100" name="txtinput">&gt;</td></tr></table></td></tr></table><table onclick="HideMainMenu(this);" id="tblMM" class="LIGHTMMM" cellSpacing="0" cellPadding="0" width="140" border="0"><tr onmouseover="try{this.cells[1].filters(0).enabled=true}catch(e){}" onmouseout="try{this.cells[1].filters(0).enabled=false}catch(e){}" onclick="o.BeginPrvt(window)"><td width="32"><img border="0" src="../images/users_icon.gif" width="32" height="28"></td><td class="mn"><b><FONT size="1" style="cursor:default">Private Chat</font></b></td></tr><tr onmouseover="try{this.cells[1].filters(0).enabled=true}catch(e){}" onmouseout="try{this.cells[1].filters(0).enabled=false}catch(e){}" onclick="o.ViewProfile(window)"><td width="32"><p align="center"><img border="0" src="../images/prof.gif" width="19" height="19"></p></td><td class="mn"><b><FONT size="1" style="cursor:default">Profile</font></b></td></tr><tr onmouseover="try{this.cells[1].filters(0).enabled=true}catch(e){}" onmouseout="try{this.cells[1].filters(0).enabled=false}catch(e){}" onclick="o.doBlocka(window);"><td width="32"><p align="center"><img border="0" src="../images/block.gif" width="16" height="16"></p></td><td class="mn"><b><FONT id="fontobj" size="1" style="cursor:default">Block</FONT></b></td></tr><tr onmouseover="try{this.cells[1].filters(0).enabled=true}catch(e){}" onmouseout="try{this.cells[1].filters(0).enabled=false}catch(e){}" onclick="o.DoKick(window)"><td width="32">&nbsp;</td><td class="mn"><b><FONT size="1" style="cursor:default">Kick</font></b></td></tr><tr onmouseover="try{this.cells[1].filters(0).enabled=true}catch(e){}" onmouseout="try{this.cells[1].filters(0).enabled=false}catch(e){}" onclick="o.DoBan(window)"><td width="32">&nbsp;</td><td class="mn"><b><FONT size="1" style="cursor:default">Ban</font></b></td></tr></table><div id="addextras"></div>';
	var bcpt=w.showcpt==true?'<div id="pnlCpt" align="center"><Div Width="94%"><script src="pubc.js"></script><br><table border="0" width="100%" cellpadding="0"><tr><td align="center" class="chbg chfc sf" style="cursor:hand" onclick="chb()"><img border="0" src="../images/msupa.gif" id=barr>&nbsp;&nbsp;<b>Keep Browsing ...</b></td></tr><tr><td align="center" id="tdb"><iframe scrolling="no" width="100%" id="mybrowser" onload="resme()" onresize="resit(window)" name="mybrowser" marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" frameborder="0"></iframe></td></tr></table></Div></div>':'';
	var b=w.document.body;
	b.bottomMargin="1";
	b.leftMargin="1";
	b.topMargin="1";
	b.rightMargin="1";
	w.document.write(bs+bcpt);
	if(w.roomname!='')w.document.getElementById('lblRoom').innerHTML=' '+w.roomname;
	if(w.targetid!='')w.document.getElementById('lblTarget').innerHTML=' '+w.targetid;
}


var EmotTexts=18;

function InsertOne(i){
	return '<td width="24" height="18" align=center>'+
		'<img src="../images/c/'+i+'.gif" onclick="InsertEmot('+i+')"></td>'
}

function WriteEmots(){
	var ret='<table id="tblEmot" class="LIGHTMMM" cellSpacing="5" cellPadding="0" border="0">';
	var loopend,i,x;
	for(i=0;i<EmotTexts;i+=5){
		loopend=i<(EmotTexts-5)?5:EmotTexts-(i); 
		ret+='<tr>';
		for(x=0;x<loopend;x++){
			ret+=InsertOne(i+x+1);
		}
		ret+='</tr>';
	}
	return ret+'</table>';
}

var ColorItems= new Array('#245266','#0000cc','#000000','#ff0000','#ff33cc','#B86E24','#663333','#3D4D0B','#02ACC4','#0000ff','#9900ff','#868600');

function WriteColors(){
	var ret='<table id="tblColors" class="LIGHTMMM" cellSpacing="5" cellPadding="0" border="0">';
	var loopend,i,x;
	for(i=0;i<ColorItems.length;i+=3){
		loopend=i<(ColorItems.length-3)?3:ColorItems.length-(i); 
		ret+='<tr>';
		for(x=0;x<loopend;x++){
			ret+=InsertColor(ColorItems[i+x]);
		}
		ret+='</tr>';
	}
	return ret+'</table>';
}

function InsertColor(wc){
	return '<td width="16" bgcolor="'+wc+'" class="normborder" height="16" onclick="DoColor('+"'"+wc+"'"+')">	</td>';
}

function clearUsers(w){
	var i,x;
	var tus=w.document.getElementById('tblusers');
	x=tus.rows.length;
	for(i=0;i<x;i++){
		tus.deleteRow(0);
	}
}

function adduser(av,nma,w){
	var imgtxt='';
	var nm=nma,a=0,np=0,npr=0;
	if(nm.indexOf('~~')!=-1)npr=1;
	nm=nm.replace('~~','');
	if(nm.indexOf('~')!=-1)np=1;
	nm=nm.replace('~','');
	if(nm.substring(0,1)=='*'){nm=nm.substring(1);a=1}
	if(userinlist(nm,w)==true){
		return;
	}
	if(av!='')imgtxt='<img border="0" src="' + av +'" width="25" height="20" style="FILTER: progid:DXImageTransform.Microsoft.BasicImage( Grayscale=1,Enabled=false )" >';
	adduserex(imgtxt,nm,w,a,np,npr);
}

function userinlist(wu,w){
	var nr,i;
	var tus=w.document.getElementById('tblusers');
	for(i=0;i<tus.rows.length;i++){
		nr=tus.rows[i];
		if(nr.id=="trun" + wu){
			return true;
		}
	}
	return false;
}

function getav(nm,w){
	var nr,i;
	var tus=w.document.getElementById('tblusers');
	for(i=0;i<tus.rows.length;i++){
		nr=tus.rows[i];
		if(nr.id=="trun" + nm){
			return nr.cells[0].childNodes[0].src;
		}
	}
	return '';
}

function adduserex(imgtxt,nm,w,a,np,npr){
	var nr,nd,ac;
	ac=a==1?' class=c6':'';
	nr = w.document.getElementById('tblusers').insertRow(-1);
	nr.id="trun" + nm;
	nd = nr.insertCell(-1);
	nd.width="25";
	nd.height="20";
	nr.style.filter="progid:DXImageTransform.Microsoft.BasicImage( Grayscale=1,Enabled=false )"
	nr.np=np;
	nr.npr=npr;
	nr.a=a;
	nd.innerHTML=imgtxt;
	nd = nr.insertCell(-1);
	nd.className="b3 c1";
	nd.style.cursor=br_moz?"default":"hand";
	if(br_moz){
	nr.onmouseover=function(event){w.setuOn('',event)};
	nr.onmouseout=function(event){w.setuOff(event)};
	nr.oncontextmenu=function(event){w.uCtxt(event)};
	nr.onclick=function(event){w.uCtxt(event)};
	}else{
	nr.onmouseover=w.setuOn;
	nr.onmouseout=w.setuOff;
	nr.oncontextmenu=w.uCtxt;
	nr.onclick=w.uCtxt;
	}
	nd.innerHTML='<b><font UNSELECTABLE="on"'+ac+' size="2">'+nm+'</font></b>';
	if(br_moz)nd.style.MozUserSelect="none";
}

function removeuser(nm,w){
	try{var nr=w.document.getElementById("trun"+nm);
	if(nr==null)return;
	w.document.getElementById('tblusers').deleteRow(nr.rowIndex);}catch(e){}
}


function SendData(data,CMD,w){
	var todo;
	if(CMD==null||CMD==""||CMD=='undefined'){
	todo="MSG";
	}else{todo=CMD}
	try{sendToChat(w.roomid,todo,data);return;}catch(e){}
}

function doSend(w){
	if(w.opener!=null)w.opener.cancelWriting(w.roomid);
    var wip=w.document.getElementById('txtinput');
	if(wip.value=='')return;
	if(isBaned==1){
		doadd('','System','<b><font color=red>You are denied from sending for a while</font></b>','#ff0000','','','',w);
	}else{
		var tx='<font color="'+w.myc+'">'+wip.value+'</font>';
		SendData(tx,'MSG',w);
		tx='<font color="'+w.myc+'">'+ss(wip.value)+'</font>';
		var im=getav(w.userid,w);
		doadd(im,w.userid,tx,'#000000','','','',w);
	}
	wip.value='';
}

function ss(t){
while(t.indexOf('  ')>-1)t=t.replace(' ','&nbsp;');return t;
}

function attention(w) {
	if(w.dont_att==true)return;
	w.dont_att=true;
	w.setTimeout('dont_att=false;',10000)
    try{
	for (i=4;i>0;i--){
	    for (x=4;x>0;x--){
            w.moveBy(0,i);
            w.moveBy(i,0);
            w.moveBy(0,-i);
            w.moveBy(-i,0);
    } }
	}catch(e){}
}

function doCmd(cmd,byname,ximg,color,w){
	var outmsg;
	switch (cmd){
		case 'Attention':
			w.play('Attention.wav');
			outmsg='<b><font color="#FF0000">'+mstrs[9]+'</font></b>';
			w.setTimeout('o.attention(window);',860);
			break;
		case 'w':
			w.status=byname+' '+mstrs[17]+' ....';
			if(w.stOut!=-1)w.clearTimeout(w.stOut);
			w.stOut=w.setTimeout("status='';stOut=-1;",8000);
			return;
	}
	doadd(ximg, byname,outmsg, color, '','','',w);
}

function SendAttention(w){
	SendData("Attention","CMD",w);
	var im=getav(w.userid,w);
	outmsg='<b><font color="#FF0000">'+mstrs[9]+'</font></b>';
	doCmd("Attention",w.userid,im,"#FF0000",w)
}

function ViewProfile(w){
	var mytr=w.document.getElementById('trun'+w.owner);
	try{mytr.cells[1].filters(0).enabled=false}catch(e){}
	w.open("../Profile.aspx?npc=1&u="+escape(w.owner),"_blank","directories=no,location=no,menubar=no,height=500,resizable=yes,width=500,status=no,titlebar=no,toolbar=no");
}

function DoKick(w){
	if(w.isMePRVT==true){
		SendData(w.owner,"KICK",w);
	}
	else{
		var mytr=w.document.getElementById('trun'+w.owner);
		try{mytr.cells[1].filters(0).enabled=false}catch(e){}
		w.open("KickUser.aspx?WhoKick="+escape(w.userid)+"&User="+escape(w.owner),"_blank","directories=no,location=no,menubar=no,height=350,resizable=yes,width=500,status=no,titlebar=no,toolbar=no");		
	}
}

function DoBan(w){
	if(w.isMePRVT==true){
		return;
	}
	else{
		var mytr=w.document.getElementById('trun'+w.owner);
		try{mytr.cells[1].filters(0).enabled=false}catch(e){}
		w.open("KickUser.aspx?Ban=1&WhoKick="+escape(w.userid)+"&User="+escape(w.owner),"_blank","directories=no,location=no,menubar=no,height=350,resizable=yes,width=500,status=no,titlebar=no,toolbar=no");		
	}
}

function doBlocka(w){
	var mytr=w.document.getElementById('trun'+w.owner);
	try{mytr.cells[1].filters(0).enabled=false}catch(e){}
	var myImg=w.getTheImg(mytr);
	if(myImg.filters(0).enabled==false){
		try{myImg.filters(0).enabled=true}catch(e){}
		SendData(w.owner,"BLOCK",w);
	}
	else
	{
		try{myImg.filters(0).enabled=false}catch(e){}
		SendData(w.owner,"UNBLOCK",w);
	}
	
}
function BeginPrvt(w){
	if(w.isMePRVT==true)return;
	var mytr=w.document.getElementById('trun'+w.owner);
	var atr=w.document.getElementById('trun'+thisUser);
	if(atr.a!=1){
		if(atr.npr==1){parent.pnp('../','1');return}
		if(mytr.npr==1){parent.pnp('../','2');return}
		if(mytr.np==1){parent.pnp('../','0');return}
	}
	PopUpPrivate(w.owner,null,null,'../');
	try{mytr.cells[1].filters(0).enabled=false}catch(e){}
}
