
var fs_selectpars = "gf_me";
var fs_mode = 0;	//0/1 -- 是否支持输入站外名称
var fs_data = [];
var fs_dirty = false;
var fs_maxcount = 500;
var fs_alert = false;
var fs_gindex = 0;
function fs_checkCount(v_alert)
{
	var c = 0;
	var len = fs_data.length;
	for(var i=0; i<len ; i++)
	{
		if(fs_data[i].type == "static")
		{
			c++;
		}
	}
	if (c >= fs_maxcount)
	{
		fs_alert = v_alert;
	}
	return c < fs_maxcount;
}

function fs_hasActive()
{
	var len = fs_data.length;
	for(var i=0; i<len ; i++)
	{
		if(fs_data[i].type == "active")
		{
			return i;
		}
	}
	return -1;
}

function fs_superOnclick()
{
	document.getElementById('fsg_nr').style.display = "none";
	if(fs_hasActive() != -1)
	{
		if(document.getElementById("active").value != "" && document.getElementById("suggest").style.display == "none")
		{
			document.getElementById("active").value = "";
		}
		document.getElementById("active").focus();
	}
	else
	{
		fs_data[fs_data.length] = {type:"active"};
		fs_superView();
	}
	document.getElementById("superinput").parentNode.className = "it2";
}

function fs_activeFocus()
{
	for(var i=0 ; i<5 ; i++)
	{
		if(document.getElementById("active"))
		{
			document.getElementById("active").focus();
		}
	}
}

function fs_superView()
{
	var html = "";
	var len = fs_data.length;
	for(var i=0; i<len ; i++)
	{
		if(fs_data[i].type == "static")
		{
			if (fs_data[i].uid == "0" || fs_data[i].uid == 0)
			{
				html += '<div class="fsg_hy" style="background:#fff9d7;">'+fs_data[i].username+'</div>';
			}
			else
			{
				html += '<div class="fsg_hy">'+fs_data[i].username+'&nbsp;&nbsp;'+fs_logo20(fs_data[i])+'</div>';
			}
		}
		else
		{
			html += '<div class="fsg_id" id="activediv" style="width:50px;"><input onkeydown="return fs_inputOnkeydown(event)" onkeyup="fs_inputOnkeyup(event)" onblur="fs_inputOnblur(this);" onfocus="fs_inputOnfocus(this);" id="active" name="active" type="text" value="" class="fsg_it" size="2" Autocomplete="off" maxlength=50/><div class="fsg_nl" id="suggest" style="display:none;width:210px;"></div><div id="emptysuggest" class="fsg_nl" style="padding-left:7px;background:#eeeeee;color:#666666;width:220px;">请输入好友的姓名(hicafe上姓名)</div></div></div>';
		}
	}
	document.getElementById("superinput").innerHTML = html==""?"&nbsp;":html;
	
	
	var childs = document.getElementById("superinput").childNodes;
	var mintop = 1000000;
	var maxbottom = 0;
	var len = childs.length;
	for(var i=0; i<len ; i++)
	{
		if(childs[i].className == "fsg_hy" || childs[i].className == "fsg_id")
		{
			var pos = getpos(childs[i]);
			if(pos.top <  mintop)
			{
				mintop = pos.top;
			}
			if(pos.bottom > maxbottom)
			{
				maxbottom = pos.bottom;
			}
		}
	}
	var height = maxbottom-mintop;
	height = height<23?23:height;
	document.getElementById("superinput").style.height = height + "px";
	fs_activeFocus();

	if (fs_alert)
	{
		fs_alert = false;
		alert("最多只能选择" + fs_maxcount + "个用户！");
	}
}


function fs_getHotNum()
{
	var obj;
	var num=0;
	var hotnum = -1;
	while((obj = document.getElementById("suggest_"+num)) != null)
	{
		if(obj.className == "sgt_on")
		{
			hotnum = num;
		}
		num++;
	}
	return {"hotnum":hotnum,"totalnum":num};
}

function fs_inputOnblur(thisobj)
{
	if(document.getElementById("active") && document.getElementById("active").value != "")
	{
		fs_getUser();
		
		document.getElementById("active").value = "";

		document.getElementById("active").blur();
	}
	document.getElementById("superinput").parentNode.className = "it1";
	document.getElementById("suggest").style.display = "none";
	document.getElementById("emptysuggest").style.display = "none";
}

function fs_inputOnfocus(thisobj)
{
	if(thisobj.value == "")
	{
		document.getElementById("emptysuggest").style.display = "block";
		document.getElementById("emptysuggest").innerHTML = "请输入好友的姓名";
	}
}


function fs_inputOnkeydown(evnt)
{
	document.getElementById("active").style.width = b_strlen(document.getElementById("active").value)*6+20 + "px";
	if (evnt.keyCode == 13)
	{
		return false;
	}
	var activenum = fs_hasActive();
	//BACKSPACE
	if(evnt.keyCode == 8 && fs_data[activenum-1] && document.getElementById("active").value=="")
	{
		var fs_data2 = [];
		var j=0;
		var len = fs_data.length;
		for(var i=0; i<len ; i++)
		{
			if(activenum-1 == i)
			{
				continue;
			}
			fs_data2[j] = fs_data[i];
			j++;
		}
		fs_data = fs_data2;
		fs_dirty = true;
		fs_superView();
		return;
	}

	//LEFT
	if(evnt.keyCode == 37 && fs_data[activenum-1] && document.getElementById("active").value=="")
	{
		return;
		var obj = fs_data[activenum];
		fs_data[activenum] = fs_data[activenum-1];
		fs_data[activenum-1] = obj;
		fs_superView();
		return;
	}
	//RIGHT
	if(evnt.keyCode == 39 && fs_data[activenum+1] && document.getElementById("active").value=="")
	{
		return;
		var obj = fs_data[activenum];
		fs_data[activenum] = fs_data[activenum+1];
		fs_data[activenum+1] = obj;
		fs_superView();
		return;
	}
	
	
	var hotinfo = fs_getHotNum();
	var hotnum = hotinfo.hotnum;
	var num = hotinfo.totalnum;
	//DOWN
	if(evnt.keyCode == 40)
	{
		if(document.getElementById("suggest_0") != null && document.getElementById("suggest").style.display == "block")
		{
			if(hotnum == -1)
			{
				document.getElementById("suggest_0").className = "sgt_on";
			}
			else
			{
				var nextnum = hotnum == num-1 ? 0 : hotnum+1;
				document.getElementById("suggest_"+hotnum).className = "sgt_of";
				document.getElementById("suggest_"+nextnum).className = "sgt_on";
			}
			return false;
		}
	}
	//UP
	if(evnt.keyCode == 38)
	{
		if(document.getElementById("suggest_0") != null && document.getElementById("suggest").style.display == "block")
		{
			if(hotnum == -1)
			{
				document.getElementById("suggest_"+(num-1)).className = "sgt_on";
			}
			else
			{
				var prevnum = hotnum == 0 ? num-1 : hotnum-1;
				document.getElementById("suggest_"+hotnum).className = "sgt_of";
				document.getElementById("suggest_"+prevnum).className = "sgt_on";
			}
		}
	}

}

function fs_getUser()
{
	var hotinfo = fs_getHotNum();
	var hotnum = hotinfo.hotnum;
	var totalnum = hotinfo.totalnum;
	var hasuser = document.getElementById("suggest").style.display == "block" && hotnum!=-1 && totalnum>0;
	if (fs_mode == 1 && !hasuser && document.getElementById("active").value.length)
	{
		if (fs_checkCount(true))
		{
			var escape_real_name = document.getElementById("active").value.replace(/&/g, "&amp;");
			escape_real_name = escape_real_name.replace(/</g, "&lt;");
			escape_real_name = escape_real_name.replace(/>/g, "&gt;");
			var friendobj = {uid:"0",real_name:escape_real_name,real_name_unsafe:document.getElementById("active").value,type:"static"};

			var activenum = fs_hasActive();
			for(var i=fs_data.length ; i> activenum ; i--)
			{
				fs_data[i] = fs_data[i-1];
			}
			fs_data[activenum] = friendobj;
			fs_dirty = true;
		}
		
		fs_superView();
	}
	else if (hasuser)
	{
		if (fs_checkCount(true))
		{
			var friendobj = fs_frienddata[hotnum];
			friendobj.type = "static";
		
			var activenum = fs_hasActive();
			for(var i=fs_data.length ; i> activenum ; i--)
			{
				fs_data[i] = fs_data[i-1];
			}
			fs_data[activenum] = friendobj;
			fs_dirty = true;
		}
		
		fs_superView();
	}
}

function fs_inputOnkeyup(evnt)
{
	//ENTER
	if (evnt.keyCode == 13)
	{
		fs_getUser();
	}
	if(evnt.keyCode == 38 || evnt.keyCode == 40)
	{
	}
	else
	{
		fs_ajax_submit();
	}

}


function fs_ajax_submit()
{
	var url = "/friends/friendJson.jsp";
	var text = encodeURIComponent(document.getElementById("active").value);
	var pars = "text=" + text + "&uid={_UID_}";
	if("undefined" != typeof fs_suggestpars)
	{
		pars += "&pars="+fs_suggestpars;
	}
	//var myAjax = new Ajax.Request(url, {method: "get", parameters: pars, onComplete: function (req) { fs_ajax_show(req); } });
	jQuery.get(url+'?q=n&'+pars,{ },function (data,status) { fs_ajax_show(data)});

}

var fs_frienddata = [];
function fs_ajax_show(data)
{
	var arr = eval(data);   
	fs_frienddata = arr;
	
	if(arr.length == 0)
	{
		document.getElementById("suggest").style.display = "none";
		document.getElementById("emptysuggest").style.display = "block";
		if(document.getElementById("active").value == "")
		{
			document.getElementById("emptysuggest").innerHTML = "请输入好友的姓名";
		}
		else
		{
			if (fs_mode == 1)
			{
				document.getElementById("emptysuggest").style.display = "none";
			}
			else
			{
				document.getElementById("emptysuggest").innerHTML = "姓名不在好友列表哦，请重新输入";
			}
		}
		return;
	}
	
	var html = "";

	for(var i=0 ; i<arr.length ; i++){
		var head_img='';
		/*if(arr[i].pic){
			head_img="<img src='"+arr[i].pic+"'height='28' width='28'/>";
		}else{
			head_img="<img src='/images/mycafe/head.gif' height='28' width='28'/>";
		}*/
		html += '<div id=suggest_'+i+' class="sgt_of" style="width:200px;" onmouseover="fs_suggestOnmouseover(this)" onmousedown="fs_suggestOnmousedown(this);">'+head_img+arr[i].username+'　'+fs_logo20(arr[i])+'</div>';
	}
	document.getElementById("suggest").innerHTML = html;
	document.getElementById("suggest").style.display = "block";
	document.getElementById("emptysuggest").style.display = "none";
	
	if(document.getElementById("suggest_0") != null && document.getElementById("suggest").style.display == "block")
	{
		document.getElementById("suggest_0").className = "sgt_on";
	}
	
}

function fs_suggestOnmouseover(thisobj)
{
	var arr = thisobj.id.split('_');
	var thisnum = arr[1];
	
	var obj;
	var num=0;
	while((obj = document.getElementById("suggest_"+num)) != null)
	{
		if(thisnum == num)
		{
			obj.className = "sgt_on";
		}
		else
		{
			obj.className = "sgt_of";
		}
		num++;
	}
	
}

function fs_suggestOnmousedown(thisobj)
{
	if (fs_checkCount(true))
	{
		var arr = thisobj.id.split('_');
		var num = arr[1];
		var friendobj = fs_frienddata[num];
		friendobj.type = "static";

		var activenum = fs_hasActive();
		for(var i=fs_data.length ; i> activenum ; i--)
		{
			fs_data[i] = fs_data[i-1];
		}
		fs_data[activenum] = friendobj;
		fs_dirty = true;
	}
	
	fs_superView();
}

function  fs_viewFriend()
{
	
	var count = 0;
	var len = fs_allfrienddata.length;
	for(var i=0; i<len ; i++)
	{
		if(document.getElementById("checkbox"+i).checked)
		{
			count++;
		}
	}
	var confirmret = 0;
	if(true || count==0 || ((count > 0) && (confirmret = confirm("切换分组后将清空你刚才勾选的好友，你确定要切换分组吗？"))))
	{
		var url = "/friends/friendJson.jsp";
		var pars = "type=all";
		if(document.getElementById("group"))
		{
			pars = pars +"&group="+ document.getElementById("group").value;
		}
		if("undefined" != typeof fs_selectpars)
		{
			pars += "&pars="+fs_selectpars;
		}
		//var myAjax = new Ajax.Request(url, {method: "post", parameters: pars, onComplete: function (req) { fs_ajax_allfriendshow(req); } });
		jQuery.post(url+'?'+pars,{ },function (data,status) {fs_ajax_allfriendshow(data)});

		document.getElementById("fsg_nr").style.display = "block";
//		document.getElementById('xx_sh').innerHTML = '<img src="/images/xx_xs1.gif" class="cp" onmouseover="this.src=\'/images/xx_xs2.gif\';" onmouseout="this.src=\'/images/xx_xs1.gif\';" alt="选择好友" />';
		if(document.getElementById("group"))
		{
			fs_gindex = document.getElementById("group").selectedIndex;
		}
	}
	else if(!confirmret) //如果是取消
	{
		if(document.getElementById("group"))
		{
			document.getElementById("group").selectedIndex = fs_gindex;
		}
	}
}


//all friend
function fs_viewAllfriend()
{
	if(document.getElementById("suggest"))
	{
		document.getElementById("suggest").style.display = "none";
	}

	if(document.getElementById('fsg_nr').style.display == "block")
	{
		document.getElementById('fsg_nr').style.display = "none";
//		document.getElementById('xx_sh').innerHTML = '<img src="/images/xx_xx1.gif" class="cp" onmouseover="this.src=\'/images/xx_xx2.gif\';" onmouseout="this.src=\'/images/xx_xx1.gif\';" alt="选择好友" />';
	}
	else
	{
		fs_viewFriend();
	}
}


var fs_allfrienddata = [];
function fs_ajax_allfriendshow(data)
{
	var arr = eval(data);
	fs_allfrienddata = arr;
	var html = "";
	var len = Math.ceil(arr.length/3)*3;
	for(var i=0 ; i<len ; i++)
	{	
		if(i%3 == 0)
		{
			html += '<div class="sgt_of" style="width:300px;">\n';
		}
		if(arr[i])
		{
			html += '<div class="l" style="width:100px;" title="Hicafe ID：'+arr[i].uid+'"><input id="checkbox'+i+'" type="checkbox" title="Hicafe ID：'+arr[i].uid+'" onclick="fs_countcheck(this);" />'+arr[i].username+fs_logo20(arr[i])+'</div>\n';
		}
		if(i%3 == 2)
		{
			html += '<div class="c"></div>\n';
			html += '</div>\n';
		}
	}
	document.getElementById("allfriend").innerHTML = html;
	if(arr.length > fs_maxcount)
	{
		document.getElementById("selall").disabled = true;
	}
	else
	{
		document.getElementById("selall").disabled = false;
	}
}
function fs_selectAll()
{
	var len = fs_allfrienddata.length;
	
	for(var i=0; i<len ; i++)
	{
		document.getElementById("checkbox"+i).checked = true;
	}
}

function fs_cancelAll()
{
	var len = fs_allfrienddata.length;
	
	for(var i=0; i<len ; i++)
	{
		if(document.getElementById("checkbox"+i).checked == true){
			document.getElementById("checkbox"+i).checked = false;
		}
	}
}
function fs_countcheck(obj)
{
	var count = 0;
	var len = fs_allfrienddata.length;
	for(var i=0; i<len ; i++)
	{
		if(document.getElementById("checkbox"+i).checked)
		{
			count++;
			if(count > fs_maxcount)
			{
				obj.checked = false;
				alert("最多只能选择 "+fs_maxcount+" 位好友！");
				break;
			}
		}
	}
	return count;
}

function fs_selectFriend()
{
	fs_data = [];
	var arr = [];
	var len = fs_allfrienddata.length;
	for(var i=0; i<len ; i++)
	{
		if(document.getElementById("checkbox"+i).checked)
		{
			var obj = fs_allfrienddata[i];
			obj.type = "static";
			if (!fs_checkCount(true))
			{
				break;
			}
			fs_data[fs_data.length] = fs_allfrienddata[i];
		}
	}
	var fs_data2 = [];
	var j=0;
	len = fs_data.length;
	for(var i=0; i<len ; i++)
	{
		if(fs_data[i].type == "active")
		{
			continue;
		}
		
		fs_data2[j] = fs_data[i];
		j++;
	}
	fs_data = fs_data2;
	fs_dirty = true;
	
	document.getElementById('fsg_nr').style.display = "none";
	var uids = getUids();
	if(uids == null || uids == 'undefined' || uids.length <= 0){
		return;
	}
	recommendTOFriend(uids,pid,otype);
//	document.getElementById('xx_sh').innerHTML = '<img src="/images/xx_xx1.gif" class="cp" onmouseover="this.src=\'/images/xx_xx2.gif\';" onmouseout="this.src=\'/images/xx_xx1.gif\';" alt="选择好友" />';

//	fs_superView();
}

function fs_logo20(obj)
{
	var logo20 = "";
	if(typeof obj.logo20 != "undefined")
	{
		logo20 = "<img src='"+obj.logo20+"'  align=absmiddle width=15  />";
	}
	return logo20;
}

//-------------------------------
function getpos(element)
{
        if ( arguments.length != 1 || element == null )
        {
               return null;
        }
        var elmt = element;
        var offsetTop = elmt.offsetTop;
        var offsetLeft = elmt.offsetLeft;
        var offsetWidth = elmt.offsetWidth;
        var offsetHeight = elmt.offsetHeight;
        while( elmt = elmt.offsetParent )
        {
                // add this judge
                if ( elmt.style.position == 'absolute'
//              || elmt.style.position == 'relative'
                || ( elmt.style.overflow != 'visible' && elmt.style.overflow != '' ) )
                {
                        break;
                }
                offsetTop += elmt.offsetTop;
                offsetLeft += elmt.offsetLeft;
        }
        return {top:offsetTop, left:offsetLeft, right:offsetWidth+offsetLeft, bottom:offsetHeight+offsetTop };
}

//DataLength
function b_strlen(fData)
{
	var intLength=0;
	for (var i=0;i<fData.length;i++)
	{
		if ((fData.charCodeAt(i) < 0) || (fData.charCodeAt(i) > 255))
			intLength=intLength+2;
		else
			intLength=intLength+1;   
	}
	return intLength;
}
var pid = null;
var otype = null;
function setIdAndType(id,type){
	pid = id;
	otype = type;
}

function recommendTOFriend(fids,pid,otype){
	var url = "/cafe/recommend.do?fun=recommend&fids=" + fids + "&pid=" + pid + "&type=" + otype;
	jQuery.post(url,{h:Math.random()},
		function(data){
			if(data == 1 || data == '1'){
				alert('推荐成功');
			}else if(data == 2 || data == '2'){
				alert('操作失败');
			}else{
				alert('操作失败');
			}
		}
	);
}

function getUids(){
	var uidsobj = {};
	for(var i=0; i<fs_data.length ; i++)
	{	
		if(fs_data[i].type == "static"){
			uidsobj[fs_data[i].uid] = 1;
		}
	} 
	var uids = "";
	for(var uid in uidsobj){
		uids += uids==""?uid:","+uid;
	}
	return uids;
}
