	document.domain = "daum.net";

	var DataIDHandler = new Array();	

	DataIDHandler[1] = DID_LOGIN_FAIL;
	DataIDHandler[2]	= DID_JOIN_FAIL;
	DataIDHandler[3] = DID_SEND_ERROR;
	DataIDHandler[4] = DID_CONNECTION_ERROR;
	DataIDHandler[5] = DID_JOIN_CHANNEL_FULL;
	DataIDHandler[6]	 = DID_JOIN_NO_SUCH_CHANNEL;
	DataIDHandler[7] = DID_JOIN_BAD_KEY;
	DataIDHandler[99]	 = 	DID_COMMAND_FAIL;
	DataIDHandler[101] = 	DID_JOIN_DONE;
	DataIDHandler[200] = DID_MEMBERS_READY;
	DataIDHandler[201] = 	DID_MEMBER_JOIN;
	DataIDHandler[202] = 	DID_MEMBER_PART;
	DataIDHandler[203] = DID_MODE_KEY_READY;
	DataIDHandler[204] = 	DID_MODE_LIMIT_READY;
	DataIDHandler[205] = 	DID_TOPIC_READY;
	DataIDHandler[206] = DID_MY_NICK_READY;
	DataIDHandler[207] = DID_MEMBER_NICK_READY;
	DataIDHandler[208] = DID_MY_CHAT_GRADE_READY;
	DataIDHandler[209] = DID_MEMBER_CHAT_GRADE_READY;
	DataIDHandler[210] = DID_STATUS_LIST_READY;
	DataIDHandler[211] = DID_MEMBER_STATUS_READY;
	DataIDHandler[212] = DID_MEMBER_WARN_READY;
	DataIDHandler[213] = DID_MEMBER_COUNT;
	DataIDHandler[8] = DID_NOSUCHNICK;	

		
	function setDID_MEMBER_COUNT( userFunction ){
		DataIDHandler[213] = userFunction;
	}



	function setDID_NOSUCHNICK( userFunction ){
		DataIDHandler[8] = userFunction;
	}
	
	function setDID_MY_CHAT_GRADE_READY( userFunction ){
		DataIDHandler[208] = userFunction;
	}

	function setDID_MEMBER_WARN_READY( userFunction ){
		DataIDHandler[212] = userFunction;
	}
	function setDID_MEMBER_CHAT_GRADE_READY( userFunction ){
		DataIDHandler[209] = userFunction;
	}


	function setDID_MEMBER_STATUS_READY( userFunction ){
		DataIDHandler[211] = userFunction;
	}

	function setDID_MEMBER_NICK_READY( userFunction ){
		DataIDHandler[207] = userFunction;
	}

	function setDID_MODE_KEY_READY( userFunction ){
			DataIDHandler[203] = userFunction;
	}	
	
	function setDID_TOPIC_READY( userFunction ){
			DataIDHandler[205] = userFunction;
	}	
	

	function setDID_JOIN_DONE( userFunction ){
		DataIDHandler[101] = userFunction;
	}
	
	function setDID_MEMBERS_READY( userFunction ){
		DataIDHandler[200] = userFunction;
	}

	function setDID_MEMBER_JOIN( userFunction ){
		DataIDHandler[201] = userFunction;
	}

	function	setDID_MEMBER_PART( userFunction ){
		DataIDHandler[202] = userFunction;	
	}

	function DID_LOGIN_FAIL(){
		//alert("Ä«Æä¿Â ¼­¹ö ·Î±×ÀÎÀÌ ½ÇÆÐ µÇ¾ú½À´Ï´Ù.");
	}
	function DID_JOIN_FAIL(){
		alert("Ã¤ÆÃ¹æ ·Î±×ÀÎÀÌ ½ÇÆÐ µÇ¾ú½À´Ï´Ù. ¹æÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù.");
		window.close();
	}
	function DID_SEND_ERROR(){
	}
	function DID_CONNECTION_ERROR(){
		//alert("Ä«Æä¿Â ¼­¹ö¿Í ÄÁ³Ø¼ÇÀÌ ½ÇÆÐ µÇ¾ú½À´Ï´Ù.");
	}
	function DID_JOIN_CHANNEL_FULL(){
		alert("¹æ ÀÎ¿ø¼ö°¡ ÃÊ°ú µÇ¾ú½À´Ï´Ù.");
		window.close();
	}
	function DID_JOIN_NO_SUCH_CHANNEL(){
		alert("¹æÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù.");
		window.close();	
	}
	function DID_JOIN_BAD_KEY(){
		alert("ºñ¹Ð¹øÈ£¸¦ Àß¸ø ÀÔ·ÂÇÏ¼Ì½À´Ï´Ù.");
	}

	function DID_COMMAND_FAIL(){
		//alert("¸Þ¼¼Áö¸¦ Àü¼ÛÇÏ´Âµ¥ ½ÇÆÐÇß½À´Ï´Ù");
	}

	function setDID_COMMAND_FAIL( userFunction ){
		DataIDHandler[99]	 = 	userFunction;
	}
	
	function DID_JOIN_DONE(){
	}
	function DID_MEMBERS_READY(){
	}
	function DID_MEMBER_JOIN(){
	}
	function	DID_MEMBER_PART(){
	}
	function DID_MODE_KEY_READY(){
	}
	function DID_MODE_LIMIT_READY(){
	}
	function DID_TOPIC_READY(){
	}
	function DID_MY_NICK_READY(){
	}
	function DID_MEMBER_NICK_READY(){
	}
	function DID_MY_CHAT_GRADE_READY(){
	}
	function DID_MEMBER_CHAT_GRADE_READY(){
	}
	function DID_STATUS_LIST_READY(){
	}
	function DID_MEMBER_STATUS_READY(){
	}
	function DID_MEMBER_WARN_READY(){
	}

	function DID_MEMBER_COUNT(){
	}	

	function DID_NOSUCHNICK(){
	}

	var protocolKey="[@$%#$%*]";
	var msgKey="[%^&*$#$]";			

	function getProtocol( functionCallName, msg ){
		return functionCallName+protocolKey+msg;
	}
	var retryCnt = 0;
	function wrapper_OnSessionEvent( res ){

        try{
            if( res > 1 && reip !="" && retryCnt < 3 ){
                retryCnt++;
                onLoadCafeOn( reip ,report ,regrpcode ,renickname ,receuserid ,reaeuserid ,repeuserid ,rerolecode ,userinfo );
            }
        }catch( Exception ){}

	}
	
	function wrapper_OnDataReady( did, data1, data2, data3 ){
		try{
			DataIDHandler[ did ]( data1, data2, data3 );
		} catch ( e ){
		}
	}	

	function isProtocol(msg){
		var checkMsg = msg.toLowerCase();
		if((checkMsg.indexOf("script")>-1) || (checkMsg.indexOf("document.")>-1)
			|| (checkMsg.indexOf( protocolKey )>-1) || (checkMsg.indexOf( msgKey )>-1)
			|| (checkMsg.indexOf("alert")>-1) || (checkMsg.indexOf("confirm")>-1)
			|| (checkMsg.indexOf("window.")>-1) || (checkMsg.indexOf("frame")>-1)
			|| (checkMsg.indexOf("table")>-1) || (checkMsg.indexOf("xml")>-1) 
			|| (checkMsg.indexOf("object")>-1) || (checkMsg.indexOf("href")>-1) 
			|| (checkMsg.indexOf("xmp")>-1)) 	{
			return true;
		} else {
			return false;
		}
	}

	function isScript(msg){
		var checkMsg = msg.toLowerCase();
		if((checkMsg.indexOf("script")>-1)) 	{
			return true;
		} else {
			return false;
		}
	}
		
	function wrapper_OnMessage( msg, my_inick, your_inick, cnick, cafegrade, ceid, aeid, peid, chatgrade){
		if ( isScript(  msg ) ){
			return;
		}
		var tmp = msg.split( protocolKey );
		eval( tmp[0]+"('"+tmp[1]+"', my_inick, your_inick, cnick, cafegrade, ceid, aeid, peid, chatgrade)" );
	}
	function onLoadTouch( RunTouch, failTouch, ircdip, ircdport, grpcode, cafenickname,  ceuserid, aeuserid, peuserid, rolecode){
		try{
			var code = cafeon.INIT( 0, ircdip, ircdport, grpcode, chop(cafenickname,18),  ceuserid, aeuserid, peuserid, rolecode, "","","");
	
			if ( code == 1 ||  code == -11 ){
				RunTouch();
			}else{
				failTouch();
			}
		} catch ( Exception ){
				failTouch();
		}
	}
		
	function onUnLoadTouch(){
		cafeon.PART();
	}
	var reip = "";
	var report = "";
	var regrpcode = "";
	var renickname = "";
	var receuserid = "";
	var reaeuserid = "";
	var repeuserid = "";
	var rerolecode = "";
	var userinfo = "";
		
	function onLoadCafeOn(IRCDIP, IRCDPORT, GRPCODE, NICKNAME, CAFE_ENCRYPT_LOGIN_USERID, AVATAR_ENCRYPT_LOGIN_USERID, PROFILE_ENCRYPT_LOGIN_USERID, ROLECODE, USERINFO){

		reip = IRCDIP;
		report = IRCDPORT;
		regrpcode = GRPCODE;
		renickname = NICKNAME;
		receuserid = CAFE_ENCRYPT_LOGIN_USERID;
		reaeuserid  = AVATAR_ENCRYPT_LOGIN_USERID;
		repeuserid = PROFILE_ENCRYPT_LOGIN_USERID;
		rerolecode = ROLECODE;
		userinfo = USERINFO;

		setCafeonPrint();
		var code="";

		if ( navigator.userAgent.indexOf("MSIE")>-1 ){
			try{
				code = cafeon.INIT(0, IRCDIP, IRCDPORT, GRPCODE, chop(NICKNAME,18), CAFE_ENCRYPT_LOGIN_USERID, AVATAR_ENCRYPT_LOGIN_USERID, PROFILE_ENCRYPT_LOGIN_USERID, ROLECODE, USERINFO,"","");
				if ( code == 1 ){
					setTimeout( "printMember()", 1000 );
				}
				if ( code == "-11" ){
					printMember();
				}				
			} catch ( Exception ){
			}
		}


	}

	var mbr = "<tr><td height='14' onclick=\"autolayer_on(this,'{GetMemberPEid}','{GetMemberCEid}','{GetMemberINick}','{GetMemberCNick}','{GetMemberCafeGrade}');\" onMouseOut=\"autolayer_off(this);\" style='cursor:hand' id='cafeon_list'>"
		+ "<img src='http://cafeimg.hanmail.net/cf_img/top4/bbs/mem_icon_{GetMemberCafeGrade}.gif' width='13' height='13' border='0' align='absmiddle' vspace='3' hspace='6'>"
		+ "{GetMemberCNick}<br></td></tr>";
		
	var my_mbr = "<tr><td height='14' onMouseOut=\"autolayer_off(this);\" style='cursor:hand' id='cafeon_list'>"
		+ "<img src='http://cafeimg.hanmail.net/cf_img/top4/bbs/mem_icon_{GetMemberCafeGrade}.gif' width='13' height='13' border='0' align='absmiddle' vspace='3' hspace='6'>"
		+ "{GetMemberCNick}<³ª><br></td></tr>";		

	function printMember(){

		var count = cafeon.GetMemberCount();
		var member_list="<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">";
		var member="";
		var mbrCnt=0;
		if ( cafeon.INICK != "" ){
			mbrCnt++;
			member = my_mbr.replace( new RegExp( "{GetMemberINick}","g"), cafeon.INICK);
			member = member.replace( new RegExp( "{GetMemberCNick}","g"), cafeon.CNICK);
			member = member.replace( new RegExp( "{GetMemberCEid}","g"), cafeon.CAFEEID);
			member = member.replace( new RegExp( "{GetMemberAEid}","g"), cafeon.AVATAREID);			
			member = member.replace( new RegExp( "{GetMemberPEid}","g"), cafeon.PROFILEEID);
			member = member.replace( new RegExp( "{GetMemberCafeGrade}","g"), cafeon.CAFEGRADE);
			member = member.replace( new RegExp( "{GetMemberChatGrade}","g"), cafeon.CHATGRADE);
			member_list += member;			
		}
		//alert("cafeon.GetMemberCount() : " + cafeon.GetMemberCount());		
		for( var i=0; i < count ; i++){
			if ( mbrCnt > 39 ){
				break;
			}
			member = "";
			if ( cafeon.GetMemberCEid(i) != cafeon.CAFEEID  && cafeon.GetMemberIsDupID(i) < 1
				&& !( cafeon.GetMemberCEid(i) ==  "_kXK8.TYWc0" || cafeon.GetMemberCEid(i) ==  "7L7EhQXz-Y50" )
			){
				member = mbr.replace( new RegExp( "{GetMemberINick}","g"), cafeon.GetMemberINick(i));
				member = member.replace( new RegExp( "{GetMemberCNick}","g"), cafeon.GetMemberCNick(i));
				member = member.replace( new RegExp( "{GetMemberCEid}","g"), cafeon.GetMemberCEid(i));
				member = member.replace( new RegExp( "{GetMemberAEid}","g"), cafeon.GetMemberAEid(i));			
				member = member.replace( new RegExp( "{GetMemberPEid}","g"), cafeon.GetMemberPEid(i));
				member = member.replace( new RegExp( "{GetMemberCafeGrade}","g"), cafeon.GetMemberCafeGrade(i));
				member = member.replace( new RegExp( "{GetMemberChatGrade}","g"), cafeon.GetMemberChatGrade(i));			
				mbrCnt++;
			}
			member_list += member;
		}
		member_list += "</table>";
		try{
			if ( typeof( frames.down.frames.leftmenu.document.getElementById('cafeOnUserList').innerHTML) != "undefined" ){
				frames.down.frames.leftmenu.document.getElementById('cafeOnUserList').innerHTML = member_list;
			}
		} catch (Exception){
		
		}
		
	}

	function setCafeonPrint(){
		setDID_MEMBERS_READY( printMember );
		setDID_MEMBER_JOIN( printMember );
		setDID_MEMBER_PART( printMember );
		setDID_MEMBER_COUNT( printTotalUserCount );
	}



	function printTotalUserCount(count){
		try{
			if ( typeof( frames.down.frames.leftmenu.document.getElementById('cafeOnUserList').innerHTML) != "undefined" ){
					frames.down.frames.leftmenu.document.getElementById('cafeOnUserCnt').innerHTML = count;			
			}
		} catch (Exception){
		
		}
			
	}

	function is2Byte( s ){
		var b = charCodeAtTest(s);
		if ( 
			( b >=97 && b <= 122 ) ||
			( b >=48 && b <= 57 ) ||
	 		( b >=65 && b <= 90 )
 		){
 			return false;
 		}else{
 			return true;
 		}
	}

	function chop(str, length) {
		length -=2;
		var strLength = 0;
		var retstr = "";

		for ( var i = 0; i < str.length ; i++) {
			var b = str.charAt(i)
			if (
	 			( b >=97 && b <= 122 ) ||
				( b >=48 && b <= 57 ) ||
	 			( b >=65 && b <= 90 )
			 ) {
				strLength++;;
				if (strLength > length) {
					retstr = retstr+"..";
					break;
				}
				retstr+= str.charAt(i);
			} else {
				strLength+=2;
				if (strLength > length) {
					retstr = retstr+"..";
					break;
				}
				retstr += str.charAt(i);
			}
		}
		return retstr;
	}
