function setMenuPosition(showid, offset) {
var showobj = $jishigou_Obj(showid);
var menuobj = $jishigou_Obj(showid + '_menu');
if(isUndefined(offset)) offset = 0;
if(showobj) {
   showobj.pos = fetchOffset(showobj);
   showobj.X = showobj.pos['left'];
   showobj.Y = showobj.pos['top'];
   showobj.w = showobj.offsetWidth;
   showobj.h = showobj.offsetHeight;
   menuobj.w = menuobj.offsetWidth;
   menuobj.h = menuobj.offsetHeight;
   if(offset != -1) {
    menuobj.style.left = (showobj.X + menuobj.w > document.body.clientWidth) && (showobj.X + showobj.w - menuobj.w >= 0) ? showobj.X + showobj.w - menuobj.w + 'px' : showobj.X + 'px';
    menuobj.style.top = offset == 1 ? showobj.Y + 'px' : (offset == 2 || ((showobj.Y + showobj.h + menuobj.h > document.documentElement.scrollTop + document.documentElement.clientHeight) && (showobj.Y - menuobj.h >= 0)) ? (showobj.Y - menuobj.h) + 'px' : showobj.Y + showobj.h + 'px');
   } else if(offset == -1) {
    menuobj.style.left = (document.body.clientWidth-menuobj.w)/2 + 'px';
    var divtop = document.documentElement.scrollTop + (document.documentElement.clientHeight-menuobj.h)/2;
    if(divtop > 100) divtop = divtop - 100;
    menuobj.style.top = divtop + 'px';
   }
   if(menuobj.style.clip && !is_opera) {
    menuobj.style.clip = 'rect(auto, auto, auto, auto)';
   }
}
}
function fetchOffset(obj) {
var left_offset = obj.offsetLeft;
var top_offset = obj.offsetTop;
while((obj = obj.offsetParent) != null) {
   left_offset += obj.offsetLeft;
   top_offset += obj.offsetTop;
}
return { 'left' : left_offset, 'top' : top_offset };
}
function $jishigou_Obj(id) {
return document.getElementById(id);
}
function isUndefined(variable) {
return typeof variable == 'undefined' ? true : false;
}
function strlen(str) {
    var ie
return (ie && str.indexOf('\n') != -1) ? str.replace(/\r?\n/g, '_').length : str.length;
}
function insertContent(target, text) {
var obj = $jishigou_Obj(target);
selection = document.selection;
if(!obj.hasfocus) {
   obj.focus();
}
if(!isUndefined(obj.selectionStart)) {
   var opn = obj.selectionStart + 0;
   obj.value = obj.value.substr(0, obj.selectionStart) + text + obj.value.substr(obj.selectionEnd);
} else if(selection && selection.createRange) {
   var sel = selection.createRange();
   sel.text = text;
   sel.moveStart('character', -strlen(text));
} else {
   obj.value += text;
}
}
//显示表情菜单
function showFace(showid, target) {
var div = $jishigou_Obj('face_bg');
if(div) {
   div.parentNode.removeChild(div);
}
div = document.createElement('div');
div.id = 'face_bg';
div.style.position = 'absolute';
div.style.left = div.style.top = '0px';
div.style.width = '100%';
div.style.height = document.body.scrollHeight + 'px';
div.style.backgroundColor = '#000';
div.style.zIndex = 10000;
div.style.display = 'none';
div.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=0,finishOpacity=100,style=0)';
div.style.opacity = 0;
div.onclick = function() {
   $jishigou_Obj(showid+'_menu').style.display = 'none';
   $jishigou_Obj('face_bg').style.display = 'none';
}
$jishigou_Obj('face_show').appendChild(div);

if($jishigou_Obj(showid + '_menu') != null) {
   $jishigou_Obj(showid+'_menu').style.display = '';
} else {
   var faceDiv = document.createElement("div");
   faceDiv.id = showid+'_menu';
   faceDiv.className = 'facebox';
   faceDiv.style.position = 'absolute';
   var faceul = document.createElement("ul");
   var face_jishigou = new Array();

		face_jishigou[0] = 'zayan';
		face_jishigou[1] = 'weixiao';
		face_jishigou[2] = 'daxiao';
		face_jishigou[3] = 'xiaolian';
		face_jishigou[4] = 'baiyan';
		face_jishigou[5] = 'fanu';
		face_jishigou[6] = 'guzhang';
		face_jishigou[7] = 'touxiao';
		face_jishigou[8] = 'liulei';
		face_jishigou[9] = 'keai';
		face_jishigou[10] = 'yun';
		face_jishigou[11] = 'liuhan';
		face_jishigou[12] = 'fadai';
		face_jishigou[13] = 'haixiu';
		face_jishigou[14] = 'jingya';
		face_jishigou[15] = 'haha';
		face_jishigou[16] = 'se';
		face_jishigou[17] = 'ku';
		face_jishigou[18] = 'kulou';
		face_jishigou[19] = 'haqian';
		face_jishigou[20] = 'shuijiao';
		face_jishigou[21] = 'tiaopi';
		face_jishigou[22] = 'qin';
		face_jishigou[23] = 'yiwen';
		face_jishigou[24] = 'bizui';
		face_jishigou[25] = 'nanguo';
		face_jishigou[26] = 'lenghan';
		face_jishigou[27] = 'fendou';
		face_jishigou[28] = 'bishi';
		face_jishigou[29] = 'zhu';
		
		var face_title = new Array();	
		face_title[0] = '眨眼';
		face_title[1] = '微笑';
		face_title[2] = '大笑';
		face_title[3] = '笑脸';
		face_title[4] = '白眼';
		face_title[5] = '发怒';
		face_title[6] = '鼓掌';
		face_title[7] = '偷笑';
		face_title[8] = '流泪';
		face_title[9] = '可爱';
		face_title[10] = '晕';
		face_title[11] = '流汗';
		face_title[12] = '发呆';
		face_title[13] = '害羞';
		face_title[14] = '惊讶';
		face_title[15] = '哈哈';
		face_title[16] = '色色';
		face_title[17] = '酷';
		face_title[18] = '骷髅';
		face_title[19] = '哈欠';
		face_title[20] = '睡觉';
		face_title[21] = '调皮';
		face_title[22] = '亲亲';
		face_title[23] = '疑问';
		face_title[24] = '闭嘴';
		face_title[25] = '难过';
		face_title[26] = '冷汗';
		face_title[27] = '奋斗';
		face_title[28] = '鄙视';
		face_title[29] = '猪头';
  
   for(i=0; i <30; i++) { 	
    var faceli = document.createElement("li");
    faceli.innerHTML = '<img src="templates/default/images/face/'+face_jishigou[i]+'.gif" title="'+face_title[i]+'" onclick="insertFace(\''+showid+'\','+i+', \''+ target +'\')" style="cursor:pointer; position:relative;" />';
    faceul.appendChild(faceli);
   }
   
   faceDiv.appendChild(faceul);
   $jishigou_Obj('face_show').appendChild(faceDiv)
}
//定位菜单
setMenuPosition(showid, 0);
div.style.display = '';
}

//插入表情
function insertFace(showid, id, target) {
	 if(id == 0){
		var jishigou_face = '眨眼';
	}if(id == 1){
		var jishigou_face = '微笑';
	}if(id == 2){
		var jishigou_face = '大笑';
	}if(id == 3){
		var jishigou_face = '笑脸';
	}if(id == 4){
		var jishigou_face = '白眼';
	}if(id == 5){
		var jishigou_face = '发怒';
	}if(id == 6){
		var jishigou_face = '鼓掌';
	}if(id == 7){
		var jishigou_face = '偷笑';
	}if(id == 8){
		var jishigou_face = '流泪';
	}if(id == 9){
		var jishigou_face = '可爱';
	}if(id == 10){
		var jishigou_face = '晕';
	}if(id == 11){
		var jishigou_face = '流汗';
	}if(id == 12){
		var jishigou_face = '发呆';
	}if(id == 13){
		var jishigou_face = '害羞';
	}if(id == 14){
		var jishigou_face = '惊讶';
	}if(id == 15){
		var jishigou_face = '哈哈';
	}if(id == 16){
		var jishigou_face = '色色';
	}if(id == 17){
		var jishigou_face = '酷';
	}if(id == 18){
		var jishigou_face = '骷髅';
	}if(id == 19){
		var jishigou_face = '哈欠';
	}if(id == 20){
		var jishigou_face = '睡觉';
	}if(id == 21){
		var jishigou_face = '调皮';
	}if(id == 22){
		var jishigou_face = '亲亲';
	}if(id == 23){
		var jishigou_face = '疑问';
	}if(id == 24){
		var jishigou_face = '闭嘴';
	}if(id == 25){
		var jishigou_face = '难过';
	}if(id == 26){
		var jishigou_face = '冷汗';
	}if(id == 27){
		var jishigou_face = '奋斗';
	}if(id == 28){
		var jishigou_face = '鄙视';
	}if(id == 29){
		var jishigou_face = '猪头';
	}
	
	var faceText = '['+jishigou_face+']';
	//var faceText = '<img src="image/face/'++'.gif">';
	if($jishigou_Obj(target) != null) {
		insertContent(target, faceText);
	}
	$jishigou_Obj(showid+'_menu').style.display = 'none';
	$jishigou_Obj('face_bg').style.display = 'none';
}




/*
//显示表情菜单
function showFace(showid, target) {
var div = $jishigou_Obj('face_bg');


if(div) {
   div.parentNode.removeChild(div);
}
div = document.createElement('div');
div.id = 'face_bg';
div.style.position = 'absolute';
div.style.left = div.style.top = '0px';
div.style.width = '100%';
div.style.height = document.body.scrollHeight + 'px';
div.style.backgroundColor = '#000';
div.style.zIndex = 10000;
div.style.display = 'none';
div.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=0,finishOpacity=100,style=0)';
div.style.opacity = 0;
div.onclick = function() {
   $jishigou_Obj(showid+'_menu').style.display = 'none';
   $jishigou_Obj('face_bg').style.display = 'none';
}
$jishigou_Obj('face_show').appendChild(div);

if($jishigou_Obj(showid + '_menu') != null) {
   $jishigou_Obj(showid+'_menu').style.display = '';
} else {
   var faceDiv = document.createElement("div");
   faceDiv.id = showid+'_menu';
   faceDiv.className = 'facebox';
   faceDiv.style.position = 'absolute';
   var faceul = document.createElement("ul");
   
 
   var facename = new Array('微笑','撇嘴','流泪'); 
   
   for(var i=0; i < facename.length; i++){

   //document.write(facename[i]); 
 	 
    var faceli = document.createElement("li");
    faceli.innerHTML = '<img src="templates/default/images/face/'+facename[i]+'.gif" onclick="insertFace(\''+showid+'\','+facename[i]+', \''+ target +'\')" style="cursor:pointer; position:relative;" />';
    faceul.appendChild(faceli);
   }
   
   faceDiv.appendChild(faceul);
   $jishigou_Obj('face_show').appendChild(faceDiv)
}

//定位菜单
setMenuPosition(showid,0);
div.style.display = '';
}

//插入表情
function insertFace(showid, id, target) {
	 
	var faceText = '[face:'+id+':]';
	//var faceText = '<img src="image/face/'++'.gif">';
	if($jishigou_Obj(target) != null) {
		insertContent(target, faceText);
	}
	$jishigou_Obj(showid+'_menu').style.display = 'none';
	$jishigou_Obj('face_bg').style.display = 'none';
}
*/



function textCounter(obj, showid, maxlimit) {
var len = strLen(obj.value);
var showobj = $jishigou_Obj(showid);
if(len > maxlimit) {
   obj.value = getStrbylen(obj.value, maxlimit);
   showobj.innerHTML = '0';
} else {
   showobj.innerHTML = maxlimit - len;
}
if(maxlimit - len > 0) {
   showobj.parentNode.style.color = "";
} else {
   showobj.parentNode.style.color = "red";
}

}
function getStrbylen(str, len) {
var num = 0;
var strlen = 0;
var newstr = "";
var obj_value_arr = str.split("");
for(var i = 0; i < obj_value_arr.length; i ++) {
   if(i < len && num + byteLength(obj_value_arr[i]) <= len) {
    num += byteLength(obj_value_arr[i]);
    strlen = i + 1;
   }
}
if(str.length > strlen) {
   newstr = str.substr(0, strlen);
} else {
   newstr = str;
}
return newstr;
}
function byteLength (sStr) {
aMatch = sStr.match(/[^\x00-\x80]/g);
return (sStr.length + (! aMatch ? 0 : aMatch.length));
}
function strLen(str) {
var charset = document.charset; 
var len = 0;
for(var i = 0; i < str.length; i++) {
   len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? (charset == "gbk" ? 3 : 2) : 1;
}
return len;
}