


/***************************************************

Favorite Manager Class
iNum

***************************************************/



function FavoriteManager(_cName, _AJC){

	if(chkN(_cName) || chkN(_AJC)) return errorStr("클래스 변수명 또는 비동기통신클래스에 대한 지정이 올바르지 않습니다.");
	var cName = _cName;
	var AJC = _AJC;

	var LDATA = []; 
	var GDATA = []; 
	var GDATA_GRP = [];
	var LDATA_GRP = [];

	var fvdObj = GEID("favoriteDiv");
	var fvdGD_Obj =  GEID('favGDataDiv');
	var fvdLD_Obj =  GEID('favLDataDiv');

	var openState = false;
	var loadState = false;
	var GroupMoveList = "";

	var mode = COOM.getCookie("DC_GALLOG_FAV_MODE");// _GALLR; // or GALLOG;

	var _MENUMODE = "NOR"; // "ADD" , "MOVE", "DEL"
	
	if(mode != _GALLR && mode != _GALLOG) mode = _GALLOG;

	var databak = {
		gdata : null,
		ldata : null
	};

	var SHOW_MASTER = {
		isUse : false,
		isLoaded : false,
		LDATA : [],
		GDATA : [],
		LDATA_GRP : [],
		GDATA_GRP : [],
		databak : {
				gdata : null,
				ldata : null
		}
	};


	this.onOver = false;

	var level_list;

	level_list = FAV_LEVEL_LIST;
/*
	level_list.lv1.push({name : "가족", code_id : "D10001", code_no : 1});
	level_list.lv1.push({name : "친척", code_id : "D10002", code_no : 1});

	level_list.lv2.push({name : "선배",	code_id : "D20001", code_no : 2});
	level_list.lv2.push({name : "후배",	code_id : "D20002", code_no : 2});
	level_list.lv2.push({name : "직장",	code_id : "D20003", code_no : 2});
	level_list.lv2.push({name : "군대",	code_id : "D20004", code_no : 2});
	level_list.lv2.push({name : "동호회",	code_id : "D20005", code_no : 2});
	level_list.lv2.push({name : "동네",	code_id : "D20006", code_no : 2});
	level_list.lv2.push({name : "초등학교",code_id : "D20007", code_no : 2});
	level_list.lv2.push({name : "중학교",	code_id : "D20008", code_no : 2});
	level_list.lv2.push({name : "고등학교",code_id : "D20009", code_no: 2});

	level_list.lv3.push({name : "아는사람들",	code_id : "D30001", code_no : 3});
	level_list.lv3.push({name : "팬",	code_id : "D30002", code_no : 3});
*/

//http://wstatic.dcinside.com/thum/'+str+'.gif

	this.prvOff = function(){
		try{
			disOff(GEID("fav_prv_img"));
			GEID("fav_prv_img").innerHTML="";
		}catch(e){

		}
	}

	this.openPreviewImg = function(e, type, id){
		var mInfo = getMouseInfo(e);

		if(type==_GALLOG){
			url = "http://image.dcinside.com/glogProfileView.php?gid=" + id + "&dummyCode=" + makesRandom(100000) + "&type=thum";
			GEID('fav_prv_img').style.width="80px";
			GEID('fav_prv_img').style.height="70px";
		}else if(type==_GALLR){
			url = C_URL.thumbGalleryTitle +id+".gif";
			GEID('fav_prv_img').style.width="120px";
			GEID('fav_prv_img').style.height="80px";
		}else return;
		moveToXY(GEID('fav_prv_img'), mInfo.pageX+10, mInfo.pageY+20);
		GEID('fav_prv_img').innerHTML = "<img src='" + url + "' border=0 height='"+GEID('fav_prv_img').style.height+"' width='"+GEID('fav_prv_img').style.width+"' onLoad='disOn(GEID(\"fav_prv_img\"));' onError='FMgr.prvOff()' onMouseOut='FMgr.prvOff();'>";
		//disOn(GEID('fav_img'));
	}

	//dataCheck 데이터가 존재하는지 파악하고 처음 실행시 로딩을 실행한다.

	this.open = function(powerClose){
		if(powerClose==null) powerClose=false;
		if((openState && this.onOver) || (powerClose && !this.onOver)) {
			disOff(fvdObj);
			//GEID('favorite_but_img').src = C_URL.image + "/fav_selector.gif";
			openState = (!openState);
			
		} else if(this.onOver) {
			if(!loadState) {
				getData();
				loadState = true;
			}else{
				disOn(fvdObj);
				openState = (!openState);
			}
			//GEID('favorite_but_img').src = C_URL.image + "/fav_selector_off.gif";
		}

	}

	this.reload = function(){
		getData();
		loadState = true;
	}

	function resetDiv(){
		fvdObj = GEID("favoriteDiv");
		fvdGD_Obj =  GEID('favGDataDiv');
		fvdLD_Obj =  GEID('favLDataDiv');
	}

	function getData(callMaster) {
		if(callMaster == null) callMaster = "false";
		if(!SHOW_MASTER.isUse){
			LDATA=[];
			GDATA=[];
		}else{
			SHOW_MASTER.LDATA=[];
			SHOW_MASTER.GDATA=[];
		}
		var query = [];
		query[query.length] = {name:"gid", value:M_ID};
		query[query.length] = {name:"visit_gid", value:G_ID};
		query[query.length] = {name:"visit_nick", value: profileData.nickname};
		query[query.length] = {name:"callMaster", value: callMaster};
		query[query.length] = {name:"mode", value:"FAV_CALL_DATA"};
		AJC.getAHAHData("/ajdb.php", function(){eval(cName + ".receive_getData();");  }, query);

	}

	this.receive_getData = function(){
		var _LDATA, _GDATA, _LDATA_GRP, _GDATA_GRP;

		if(!SHOW_MASTER.isUse){
			_LDATA = LDATA; 
			_GDATA = GDATA; 
			_LDATA_GRP = LDATA_GRP;
			_GDATA_GRP = GDATA_GRP;
		}else{
			_LDATA = SHOW_MASTER.LDATA; 
			_GDATA = SHOW_MASTER.GDATA; 
			_LDATA_GRP = SHOW_MASTER.LDATA_GRP;
			_GDATA_GRP = SHOW_MASTER.GDATA_GRP;
		}

		var dObj = convertFunc(AJC.getAHAH());
		if(dObj == null) return errorStr("서버와의 통신이 정상적으로 종료되지 못했습니다. 다시 새로고침 후 즐겨찾기 버튼을 클릭해 주십시오.");

		if(dObj.result  > 0 ) {
			//setDataObject(no, type, code_no, code_id, name)

			_LDATA = []; 
			_GDATA = []; 
			_GDATA_GRP = [];
			_LDATA_GRP = [];

			for(var i = 0 ; i < dObj.data.length ; i++){
				setDataObject(dObj.data[i].no, dObj.data[i].type, dObj.data[i].code_no, dObj.data[i].code_id, dObj.data[i].name, dObj.data[i].encodingUrl, dObj.data[i].grouping_code, dObj.data[i].isOpen);
			}
			for(var i = 1; i <= 4 ; i++)
			{	
				for(var j = 0 ; j < level_list["lv"+i].length; j++){
					setGroupObject(level_list["lv"+i][j]);
				}
			}
			var defCode = "D40000";
			//LDATA_GRP.push({no : defCode, name : "친구미지정", grouping_code : defCode, strdata : [],level : 4, num:0 });
			//GDATA_GRP.push({no : "D40000", name : "기본그룹",   grouping_code : "D40000", strdata : []});

		}
		if(SHOW_MASTER.isUse) SHOW_MASTER.isLoaded = true;
		resetDiv();
		draw(_GALLOG);
		draw(_GALLR);

		shot(mode);

		disOn(fvdObj);
		openState = (!openState);

		

	}
	function setGroupObject(data){
		var _LDATA_GRP, _GDATA_GRP;
		if(!SHOW_MASTER.isUse){
			_LDATA_GRP = LDATA_GRP;
			_GDATA_GRP = GDATA_GRP;
		}else{
			_LDATA_GRP = SHOW_MASTER.LDATA_GRP;
			_GDATA_GRP = SHOW_MASTER.GDATA_GRP;
		}
		_LDATA_GRP.push({no : data.code_id, name : data.name, grouping_code : data.code_id, strdata : [],
			level : parseInt(data.code_id.substring(1,2)), num:0 });
	}

	this.delFav = function(no){
		if(!confirm("해당 즐겨찾기를 삭제합니까?")) return;
		var query = [];
		query[query.length] = {name:"gid", value:M_ID};
		query[query.length] = {name:"mode", value:"FAV_DEL_DATA"};
		query[query.length] = {name:"favno", value:no};
		AJC.getAHAHData("/ajdb.php", function(){eval(cName + ".receive_delFav();");  }, query);		
	}

	this.receive_delFav = function(){
		var dObj = convertFunc(AJC.getAHAH());

		if(dObj != null) {
			if(dObj.result == 1)	getData();
			alert(dObj.msg);
		}else return ajaxError(1);


	}

	this.shot = function(type){
		shot(type);
	}

	function shot(type){
		var data;
		var iUrl_log;
		var iUrl_gall;
		var _databak;
		if(!SHOW_MASTER.isUse) _databak = databak;
		else _databak = SHOW_MASTER.databak;

		if(type==_GALLR) {
			data = _databak.gdata;
			iUrl_log = C_URL.image + "/but_fav_gallog.gif";
			iUrl_gall = C_URL.image + "/but_fav_gallery_over_black.gif";
		}else if(type==_GALLOG) {
			data = _databak.ldata;
			iUrl_log = C_URL.image + "/but_fav_gallog_over_black.gif";
			iUrl_gall = C_URL.image + "/but_fav_gallery.gif";
		}
		GEID('favbut_gallog').src = iUrl_log;
		GEID('favbut_gallery').src = iUrl_gall;
		GEID('favbut_gallog').onmouseout = function(){ GEID('favbut_gallog').src = iUrl_log;};
		GEID('favbut_gallery').onmouseout = function(){ GEID('favbut_gallery').src = iUrl_gall; };

		if(mode != type) {
			if(mode == _GALLR) _databak.gdata = GEID('favDataDiv').innerHTML;
			else if(mode == _GALLOG) _databak.ldata = GEID('favDataDiv').innerHTML;
		}
		GEID('favDataDiv').innerHTML = data;
		COOM.setCookie("DC_GALLOG_FAV_MODE", type);

		mode = type;

	}

	this.FavClose = function(){

		
		disOff_T("favoriteDiv");
		openState = false;
		//GEID('favorite_but_img').src=C_URL.image+"/fav_selector.gif";

	}

	function draw(type){
		var data;
		var obj;
		var groupings;

		if(!SHOW_MASTER.isUse){
			if(type==_GALLOG) {
				data = LDATA;
				groupings = LDATA_GRP;
				
			}
			else if(type==_GALLR) {
				data = GDATA;
				groupings = GDATA_GRP;
			}
		}else{
			if(type==_GALLOG) {
				data = SHOW_MASTER.LDATA;
				groupings = SHOW_MASTER.LDATA_GRP;
				
			}
			else if(type==_GALLR) {
				data = SHOW_MASTER.GDATA;
				groupings = SHOW_MASTER.GDATA_GRP;
			}
		}

		//var groupings = [];
		
	
		var strB = [];
		strB.push("<table width=100% cellpadding=0 cellspacing=0 border=0 onMouseOver='disOn_T(\"favoriteDiv\");' onMouseOut='"+cName+".FavClose();'>");
		
		// 각 그룹 첫단추

		var defaultGroupSeq;
		if(type==_GALLOG)
			for(var g = 0 ; g < groupings.length ; g++) {
				if(groupings[g].grouping_code == "D40000") defaultGroupSeq = g;
				
				var strLevel = "";//"<div style='width:16px;height:11px;background-color:#ffffff;'></div>";
				if(0 < groupings[g].level && groupings[g].level < 4 ) strLevel = "<div class='group_level_"+groupings[g].level+"' style='width:16px;height:11px;background-color:#ffffff;'></div>";
				//"L"+groupings[g].level+". ";


				var mbut = "";
			//	if(_MENUMODE == "DEL" && groupings[g].no != '0') mbut = "<img src='"+C_URL.image+"/x_but_black.gif' style='cursor:pointer;font-size:7pt;' onClick='"+cName+".delFav(" + groupings[g].no + ");' onMouseOut='"+cName+".FavClose();' style='padding-left:3px;'> ";
				groupings[g].strdata = [];
				var t_gcode = "group_inner_div_"+type+groupings[g].no;//<img src='" + C_URL.image + "/edit-14.gif' border=0>
				var t_gcode_but = "group_inner_but_"+type+groupings[g].no;
				groupings[g].strdata.push("<tr><td style='text-align:center;vertical-align:middle;' width=15 valign=middle><div id='"+t_gcode_but+"' style='width:8px;height:9px;' class='group_arrow'></td><td width=19>"+strLevel+"</td><td align=left style='width:100px;'>"
										+ "<span onclick='if(GEID(\""+t_gcode+"\").style.display==\"\") {disOff(GEID(\""+t_gcode+"\")); GEID(\""+t_gcode_but+"\").style.backgroundPositionX=\"-8px\";}else{disOn(GEID(\""+t_gcode+"\")); GEID(\""+t_gcode_but+"\").style.backgroundPositionX = \"0px\";}' style='cursor:pointer;'>" + subStrKor(groupings[g].name, 10,"..") + "</span>" + mbut + "</td></tr>");
				groupings[g].strdata.push("<tr><td colspan=3 style='padding-bottom:5px;'><div id='"+t_gcode+"'>");
				groupings[g].strdata.push("<table width=100% cellpadding=0 cellspacing=0 border=0 onMouseOver='disOn_T(\"favoriteDiv\");' onMouseOut='"+cName+".FavClose();'>");
	//			groupings[g].strdata += "<tr><td colspan=3 id='group_"+groupings[g].group_code+"'>" + groupings[g].name + "</td></tr>;
			}


		if( type== _GALLOG && G_ID && M_ID && G_ID != M_ID && false){
			var chk_isAdd = false;
			for(var x = 0 ; x < data.length ; x++)
				if(data[x].code_id == G_ID)	{
					chk_isAdd = true;
				}
			if(!chk_isAdd) {
				strB.push("<tr><td valign=middle align=center width=10></td><td valign=middle align=left height=20>");
				strB.push("<span onClick='FMgr.AddStart();' style='cursor:pointer;' onMouseOver='disOn_T(\"favoriteDiv\");' onMouseOut='"+cName+".FavClose();'><font color='#6F6E7B' >[친구신청]</font></span></td></tr>");
			}
		}
		if( type == _GALLOG && G_ID && M_ID && G_ID != M_ID && false){
			strB.push("<tr><td valign=middle align=center width=10></td><td valign=middle align=left height=20>");
			strB.push("<span onClick='top.document.location.href=\""+_DOMAIN+"/"+M_ID+"\";' style='cursor:pointer;' onMouseOver='disOn_T(\"favoriteDiv\");' onMouseOut='"+cName+".FavClose();'><font color='#6F6E7B' >[내 갤로그]</font></span></td></tr>");
		}

		if(data.length == 0  ) {
			//obj.innerHTML = 
			strB.push("<tr><td colspan=2><br>등록된 즐겨찾기가<br> 없습니다.</td></tr>");
		} else {
			for(var i = 0 ; i < data.length ; i++){
				var onClick="";
				var name = "";
				var but="";
				if(!SHOW_MASTER.isUse){
					if(_MENUMODE == "DEL") but= "<img src='"+C_URL.image+"/x_but_black.gif' style='cursor:pointer;font-size:7pt;' onClick='"+cName+".delFav("+data[i].no+");' onMouseOut='"+cName+".FavClose();' style='padding-right:4px;'> ";
					else if(type== _GALLOG && _MENUMODE == "MOV") but = "<img onClick='FMgr.MoveStart(event, "+i+");' src='"+C_URL.image+"/mov_but_black.gif' style='cursor:pointer;font-size:7pt;' onMouseOut='"+cName+".FavClose();' style='padding-right:4px;'> ";
					else if(type== _GALLOG && _MENUMODE == "SEC") but = "<input id='chkFav"+data[i].no+"' type=checkbox "+(data[i].isOpen==1?"checked":"")+" style='width:10px;height:10px;' onClick='"+cName+".setSec("+i+", "+data[i].no+", this.checked);'> ";
				}
				
					//mov_but_black.gif
				//strB[strB.length] = "<tr><td valign=middle align=center width=10><img src='"+C_URL.image+"/gall_icon.gif' border=0></td><td valign=middle align=left height=20><font color='#6F6E7B'>";
				if(type == _GALLOG) {
					var _onMouse = " onMouseOver='disOn_T(\"favoriteDiv\");"+_cName+".openPreviewImg(event, \"" + _GALLOG + "\", \"" + data[i].encodingUrl + "\");' onMouseOut='"+cName+".FavClose();FMgr.prvOff();' "; 
					if(G_ID == data[i].code_id) {
						name = "<b>" + data[i].name + "</b>";
						onClick = " onClick='alert(\"현재 페이지입니다.\");' " + _onMouse ;
						if(!SHOW_MASTER.isUse) disOff(GEID('addFriendSpan'));
					}
					else {
						name = data[i].name;
						onClick = " onClick='top.document.location.href=\""+_DOMAIN+"/"+data[i].code_id+"\"' " + _onMouse ;
					}
				}
				else if (type == _GALLR) {
					var _onMouse = " onMouseOver='"+_cName+".openPreviewImg(event, \"" + _GALLR + "\", \"" + data[i].code_id + "\");' onMouseOut='"+cName+".FavClose();FMgr.prvOff();' ";
					onClick = " onClick='window.open(\""+_GALL_DOMAIN+"/list.php?id="+data[i].code_id+"\");' " + _onMouse ;
					name = data[i].name;
				}

				var inputDataChk=false;
				for(var g = 0 ; g < groupings.length; g++){
					if(groupings[g].grouping_code == data[i].grouping_code){
						groupings[g].strdata.push("<tr><td valign=middle align=center width=10 height=12 style='padding-left:5px;' ><img src='"+C_URL.image+"/gall_icon.gif' border=0 width=3 height=1></td><td valign=middle align=left><font color='#6F6E7B'>");
						groupings[g].strdata.push(but+"<span style='cursor:pointer;' "+onClick+" onMouseOver='this.style.textDecoration=\"underline\";' onMouseOut='"+cName+".FavClose();this.style.textDecoration=\"\";'>"+subStrKor(name,12, "...") + "</span> <br>");
						groupings[g].strdata.push("</font></td></tr>");
						groupings[g].num++;
						inputDataChk=true;
						break;
					}
				}
				
				if(!inputDataChk && type==_GALLOG) {
					groupings[defaultGroupSeq].strdata.push("<tr><td valign=middle align=center width=10 height=12 style='padding-left:5px;' ><img src='"+C_URL.image+"/gall_icon.gif' border=0 width=3 height=1></td><td valign=middle align=left><font color='#6F6E7B'>");
					groupings[defaultGroupSeq].strdata.push(but+"<span style='cursor:pointer;' "+onClick+" onMouseOver='this.style.textDecoration=\"underline\";' onMouseOut='"+cName+".FavClose();this.style.textDecoration=\"\";'>"+subStrKor(name,12, "...") + "</span> <br>");
					groupings[defaultGroupSeq].strdata.push("</font></td></tr>");
					groupings[defaultGroupSeq].num++;
				}else if(type==_GALLR){
					strB.push("<tr><td valign=middle align=center width=10 height=12 style='padding-left:5px;' ><img src='"+C_URL.image+"/gall_icon.gif' border=0 width=3 height=1></td><td valign=middle align=left><font color='#6F6E7B'>");
					strB.push(but+"<span style='cursor:pointer;' "+onClick+" onMouseOver='this.style.textDecoration=\"underline\";' onMouseOut='"+cName+".FavClose();this.style.textDecoration=\"\";'>"+subStrKor(name,12, "...") + "</span> <br>");
					strB.push("</font></td></tr>");
				}
				
				//alert(groupings.length);
			}

			//obj.innerHTML = strB.join("");

		}
		if(type==_GALLOG)
			for(var g = 0 ; g < groupings.length; g++){
				if(groupings[g].num > 0 ) strB.push(groupings[g].strdata.join("") + "</table></div></td></tr>");
			}

		
		/*strB.push("<tr><td colspan=2 align=left>"
				+ "<input id='txtAddGroup' type='text' style='border-width:0px;border-style:solid;font-size:9pt;width:90px;height:14px;' readonly value='[새 그룹 추가]' "
				+ " onclick='this.style.borderWidth=\"1px\"; this.readOnly=false;this.value=\"\";' onKeyDown='if(ENTER_KEY(event)) FMgr.addGroup(this);'></td></tr>");
		*/
		strB.push("</table>");
		if(!SHOW_MASTER.isUse){
			if(type==_GALLOG) databak.ldata = strB.join("");
			else if(type==_GALLR) databak.gdata = strB.join("");
		}else{
			if(type==_GALLOG) SHOW_MASTER.databak.ldata = strB.join("");
			else if(type==_GALLR) SHOW_MASTER.databak.gdata = strB.join("");
		}

	}
/*
	this.addGroup = function(inpObj){
		var str = trim(inpObj.value);
		if(str.length == 0) return errorStr("그룹명을 입력하셔야 합니다.");
		tempStr = str.replace(/[　\s]/g, "");
		if(tempStr.length == 0) return errorStr("그룹명에 공백문자만을 넣을 수 없습니다");

		var query = [
			{name:"gid", value:M_ID},
			{name:"mode", value:"FAV_ADD_GRP"},
			{name:"name", value:encodeURIComponent(str)},
			{name:"type", value:mode}
		];

		AJC.getAHAHData("/ajdb.php", new Function(cName + ".receive_addGroup();"), query);		
		
	}

	this.receive_addGroup = function(){
		//if(M_ID=='kitty') alert(AJC.getAHAH());
		var dObj = convertFunc(AJC.getAHAH());
		if(dObj == null) return errorStr("잠시 후에 다시 시도해 주십시오");
		if(!dObj.result) return errorStr(URLdecode(dObj.msg, "URI"));
		else {
			
		}
	}
*/	

	function setDataObject(no, type, code_no, code_id, name, _encodingUrl, _grouping_code, _isOpen) {
		var _LDATA, _GDATA, _GDATA_GRP, _LDATA_GRP;
		if(!SHOW_MASTER.isUse){
			_LDATA=LDATA;
			_GDATA=GDATA;
		}else{
			_LDATA=SHOW_MASTER.LDATA;
			_GDATA=SHOW_MASTER.GDATA;
		}
		var obj = {
			no : no,
			type : type,
			code_no : code_no,
			code_id : code_id,
			name : URLdecode(name,"URI"),
			encodingUrl : _encodingUrl,
			grouping_code : _grouping_code,
			strdata : [],
			isOpen : _isOpen
		};

		if(type==_GALLOG){
			_LDATA.push(obj);
		}else if(type==_GALLR){
			_GDATA.push(obj);
		}/*else if(type==_GALLR_GROUP){
			GDATA_GRP.push(obj);
		}else if(type==_GALLOG_GROUP){
			LDATA_GRP.push(obj);
		}*/
	}

	this.setMenuMode = function(menu){
		if(SHOW_MASTER.isUse) return errorStr("주인리스트 모드에선 사용을 할 수 없습니다");
		if(menu.search(/^(NOR|ADD|SEC|MOV|DEL)$/) < 0) return errorStr("잘못된 접근입니다");
		if(mode == _GALLR && menu=="MOV") return errorStr("갤러리 즐겨찾기는 이동기능이 지원되지 않습니다");
		_MENUMODE = menu;
		draw(mode);
		shot(mode);

	}
	var loadSetSec = false;
	this.setSec = function(seq, no, value){
		if(loadSetSec) return;
		
		loadSetSec=true;
		if(LDATA[seq].no != no) return errorStr("잘못된 접근입니다");

		var query = [
			{name:"gid", value:M_ID},
			{name:"mode", value:"FAV_SET_SEC"},
			{name:"no", value:no},
			{name:"chkFlag", value: (value?"true":"false")}
		];

		AJC.getAHAHData("/ajdb.php", new Function(cName + ".receive_setSec("+no+");"), query);		
	}

	this.receive_setSec = function(no){
		var dObj = convertFunc(AJC.getAHAH());
		if(dObj == null) {
			loadSetSec=false;
			return errorStr("잠시 후에 다시 시도해 주십시오");
		}
		if(!dObj.result) {
			loadSetSec=false;
			return errorStr(URLdecode(dObj.msg, "URI"));
		}else {
			GEID('chkFav'+no).checked = (dObj.data.open==1)?true:false;
			loadSetSec=false;
		}
		
	}

	this.goRandom = function(){
		var query = [
			{name:"gid", value:G_ID},
			{name:"mode", value:"FAV_RANDOM"}
		];

		AJC.getAHAHData("/ajdb.php", new Function(cName + ".receive_goRandom();"), query);		
		
	}

	this.receive_goRandom = function(){
		//if(M_ID!='kitty') return errorStr("잠시만 기다려요 ~");
		var dObj = convertFunc(AJC.getAHAH());
		if(dObj == null) return errorStr("잠시 후에 다시 시도해 주십시오");
		if(!dObj.result) return errorStr(URLdecode(dObj.msg, "URI"));
		else {
			top.document.location.href="/"+dObj.data.gid;
		}
	}


	this.addFavorite = function(code){
		try{
			if(SHOW_MASTER.isUse) return errorStr("주인리스트 모드에선 사용을 할 수 없습니다");
			if(!code) return errorStr("레벨을 선택하여 주십시오.");
			//if(M_ID!="kitty") return errorStr("아직 못써요!");
			var query = [
				{name:"add_id", value:G_ID},
				{name:"gid", value:M_ID},
				{name:"mode", value:"FAV_GALLOG_ADD"},
				{name: "code", value:code}
			];

			AJC_Edit.getAHAHData("/ajdb.php", function(){eval(cName + ".receive_addFavorite();");  }, query);
		}catch(e){
			errAlert(e, cName + ".addFavorite()");
		}
	}


	this.receive_addFavorite = function(){
		var dObj = convertFunc(AJC_Edit.getAHAH());
		if(dObj == null  || dObj.result ==null ) return errorStr("서버와의 통신이 정상적으로 완료되지 못하였습니다. 새로고침후 다시한번 시도해 주십시오.");
		
		if(dObj.result){
			this.reload();
			alert("친구신청을 완료하였습니다");
		}else{
			this.reload();
			return errorStr(URLdecode(dObj.result, "URI"));
		}

/*
		var dObj = convertFunc(AJC_Edit.getAHAH());

		if(dObj == null  || dObj.result ==null ) return errorStr("서버와의 통신이 정상적으로 완료되지 못하였습니다. 새로고침후 다시한번 시도해 주십시오.");

		
		switch(dObj.result){
			case 1 : alert("즐겨찾기 추가되었습니다.");break;
			case -1000 : alert("자기 자신을 추가할 수는 없습니다."); break;
			case -1111 : alert("이미 추가되어 있는 갤로그입니다.");break;
			case -999 : alert("해당 갤로그는 삭제되었거나 없는 갤로그 입니다. 다시한번 확인해 주시고 추가해 주십시오.");break;
			case -1 : alert("즐겨찾기 추가에 실패하였습니다."); break;

		}

		if(FMgr != null) FMgr.reload();
*/
	}

	var MoveAttribute;
	
	function resetMoveAtt() {
		MoveAttribute = {
			selSeq : null,
			level  : null,
			data   : null
		};	
	}
	
	this.AddStart = function(e){
		if(SHOW_MASTER.isUse) return errorStr("주인리스트 모드에선 사용을 할 수 없습니다");
		var bo = GEID('grpLvMove_group');
		bo.className="grpLvMove_friend";
		bo.onmouseover=new Function("this.className='grpLvMove_friend_over';");
		bo.onmouseout=new Function("this.className='grpLvMove_friend';");
		bo.onclick=function(){ 
			if(GEID('lvGrpList').selectedIndex==null) alert("그룹을 설정하십시오"); 
			else FMgr.addFavorite(GEID('lvGrpList').value);
		};

		var mInfo = getMouseInfo(e);
		var o = GEID('favMoveGroupList');
		disOn(o);
		GEID('favGrpMovElem_name').innerHTML =G_ID + "를 친구신청합니다";
		moveToXY(o, parseInt(mInfo.pageX-20), parseInt(mInfo.pageY-50));
	}

	this.MoveStart = function(e, seq){
		if(SHOW_MASTER.isUse) return errorStr("주인리스트 모드에선 사용을 할 수 없습니다");
		var bo = GEID('grpLvMove_group');
		bo.className="grpLvMove_group";
		bo.onmouseover=new Function("this.className='grpLvMove_group_over';");
		bo.onmouseout=new Function("this.className='grpLvMove_group';");
		bo.onclick=function(){ FMgr.Moving(GEID('lvGrpList').value); };
		var mInfo = getMouseInfo(e);
		var onMouse = " onMouseOver='disOn_T(\"favoriteDiv\");' onMouseOut='"+cName+".FavClose();FMgr.prvOff();' ";
		//디폴트 값 삽입 + 추가데이터 삽입

		this.openLevelList(1);
/*		for(var i = 1; i <= 3 ; i++)
		{	
			var strB = [];
			strB.push("<select size='6' style='font-size:8pt;border-style:solid; border-width:1px; border-color:#000000; width:100px; height:40px;' "+onMouse+">");
			//level_list.lv1.push({name : "가족", code_id : "D10001", code_no : 1});
			for(var j = 0 ; j < level_list["lv"+i].length; j++){
				strB.push("<OPTION value='"+level_list["lv"+i][j].code_id+"'>lv1."+level_list["lv"+i][j].name+"</OPTION>");				
			}
			strB.push("</select>");	
			
			GEID("flist_lv" + i).innerHTML = strB.join("");
		}
*/
		resetMoveAtt();
		MoveAttribute.selSeq = seq;
		MoveAttribute.data = LDATA[seq];

		var o = GEID('favMoveGroupList');
//		o.innerHTML = GroupMoveList;
		disOn(o);
		GEID('favGrpMovElem_name').innerHTML =MoveAttribute.data.name;

		moveToXY(o, parseInt(mInfo.pageX-20), parseInt(mInfo.pageY-10));


	}

	this.openLevelList = function(lv){

		var o = GEID("lvGrpList");

		for(var i = 1 ; i <= 3; i++){
			if( i == lv){
				GEID("grpLvMove_level_"+i).className = "grpLvMove_level_"+i+"_over";
				GEID("grpLvMove_level_"+i).onmouseover = null;
				GEID("grpLvMove_level_"+i).onmouseout = null;
				GEID("grpLvMove_level_"+i).onclick = null;

				
			}else{
				GEID("grpLvMove_level_"+i).className = "grpLvMove_level_"+i;
				GEID("grpLvMove_level_"+i).onmouseover = new Function("this.className='grpLvMove_level_"+i+"_over';");
				GEID("grpLvMove_level_"+i).onmouseout = new Function("this.className='grpLvMove_level_"+i+"';");
				GEID("grpLvMove_level_"+i).onclick = new Function(_cName+".openLevelList("+i+");");
			}
		}



		
		o.options.length = 0;
		for(var j = 0 ; j < level_list["lv"+lv].length; j++){
			o.options[j] = new Option(level_list["lv"+lv][j].name, level_list["lv"+lv][j].code_id);
		}
	}

	this.Moving = function(code) {
		if(code==null || code=="") return errorStr("그룹을 선택해 주세요");
		if(SHOW_MASTER.isUse) return errorStr("주인리스트 모드에선 사용을 할 수 없습니다");
//		if(M_ID!="kitty" && M_ID!="bms0202") alert("아직 못써요!");
		var query = [
			{name:"gid", value:M_ID},
			{name:"mode", value:"FAV_MOV_GRP"},
			{name:"type", value:_GALLOG},
			{name:"code", value:code},
			{name:"tno", value:MoveAttribute.data.no}
		];

		AJC.getAHAHData("/ajdb.php", new Function(cName + ".receive_Moving();"), query);		
		

	}
	this.receive_Moving = function(){
//		alert(AJC.getAHAH());
		var dObj = convertFunc(AJC.getAHAH());
		if(dObj.result){
			SHOW_MASTER.isUse=false;
			var ret = this.reload();
			disOff_T("favMoveGroupList", 0);			
		}else{
			alert(URLdecode(dObj.msg, "URI"));
		}
		
	}
	this.loadMyList = function(){
		SHOW_MASTER.isUse = false;
		var o = GEID('grpTop_master');
		o.className = "grpTop_master";
		o.onmouseover = new Function("this.className='grpTop_master_over';");
		o.onmouseout  = new Function("this.className='grpTop_master';");
		o.onclick     = new Function(_cName+".loadMaster();");
		shot(mode);
	}
	this.loadMaster = function(){
		SHOW_MASTER.isUse = true;
		var o = GEID('grpTop_master');
		o.className = "grpTop_mylist";
		o.onmouseover = new Function("this.className='grpTop_mylist_over';");
		o.onmouseout  = new Function("this.className='grpTop_mylist';");
		o.onclick     = new Function(_cName+".loadMyList();");
		if(!SHOW_MASTER.isLoaded) getData("true");
		else shot(mode);
	}


}
