function getObject(id) 
{    
//	if(document.getElementById) 
//	{
//		return document.getElementById(id);
//	}
//	else if(document.all)
//	{
//		return document.all[id];
//	}
//	else if(document.layers)
//	{
//		return document.layers[id];
//	}
    var elements = new Array();
    for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];
        if (typeof element == 'string')
        element = document.getElementById(element);

        if (arguments.length == 1)
        return element;

        elements.push(element);
    }
    return elements;
}

function getUrl(musicID)
{
    var s = "";
    if(musicID != 0)
    {
        s = "http://homemusic.tool.hexun.com/PM.aspx?CID=1&MID=" + musicID.toString() +"&FileUrl=";
    }
    return s;
}
function trim(s) {
	while (s.substring(0,1) == ' ') {
		s = s.substring(1,s.length);
	}
	while (s.substring(s.length-1,s.length) == ' ') {
		s = s.substring(0,s.length-1);
	}
	return s;
}
String.prototype.len = function()
	{
		///获得字符串的字节长度。
		return this.replace(/[^\x00-\xff]/g,"aa").length;
	}
String.prototype.strReplace = function(sourceStr, replaceStr)
	{
	    var result = this;
		while(result.indexOf(sourceStr) >= 0)
	    {
		    result = result.replace(sourceStr, replaceStr);
	    }
	    return result;
	}
///获得文件路径的文件扩展名(大写字母表示，例如：".MP3")。
function getFileExtension(filePath)
{
	filePath = trim(filePath);
	var dotIndex = filePath.lastIndexOf('.');
	if (dotIndex > 0 && dotIndex < filePath.length-1)
	{
		return filePath.substring(dotIndex).toUpperCase();
	}
	return "";
}
var HEXUN_EspecialChar = ",'\";\\";
//检查字符串中是否有特殊字符。
function checkEspecialChar(str)
{
    for(var index=0;index<HEXUN_EspecialChar.length;index++)
    {
        var result = str.indexOf(HEXUN_EspecialChar.charAt(index));
        if (result > 0)
        {
            return false;
        }
    }    
    return true;
}
///
function newXMLHttpRequest()
{
　	var xmlreq = false;

　	if (window.XMLHttpRequest)
　	{
　　	xmlreq = new XMLHttpRequest();
　	}
　	else if (window.ActiveXObject)
　	{
　　	try
　　	{　　　	
　　　		xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
　　	}
　　	catch (e1)
　　	{
　　		try
　　		{
　　			xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
　　		}
　　		catch (e2)
　　		{
　　		}
　　	}
　	}
　	return xmlreq;
}// End	function newXMLHttpRequest()

///用户提交评论后直接插入到页面评论显示的顶部。【Sunny Zhao 2006-3-21】
///返回插入的字符串。
///注意：只在DetailMusic、DetailVideo、DetailObbligato页面调用，其他处无用。
///resultXML：Ajax返回的XML字符串。
function getNewCommentView(resultXML)
{
    alert("getNewCommentView");
    alert(resultXML);
	var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
	xmldoc.async = false;
	xmldoc.loadXML(resultXML);
	var rootElement = xmldoc.documentElement;
	var CommentID,UserID,MediaID,MediaCategoryID,UserName,UserUrl,CommentTitle,CommentText,UserPhoto;
	if (rootElement.hasChildNodes())
	{
		//添加返回值属性判断。
	    var result = rootElement.attributes.getNamedItem("result").nodeValue.toString();
	    if (result == "false")
	    {
	        alert("提示：\r\n\r\n" + rootElement.childNodes(0).text);
	        var flag = rootElement.childNodes(1).text;//判断系统黑名单。[Sunny Zhao 2008-7-11]
	        if (flag == "1")
	        {
	            window.open("http://hexuncom.blog.hexun.com/20754078_d.html");
	        }
	        return "";
	    }
		//根据提交评论中的用户名返回的用户编号信息。
		UserID = rootElement.childNodes(1).text;
		//返回的用户可能存在的用户图片信息。
		UserPhoto = '<img id="userPhoto" src="' + rootElement.childNodes(9).text + '" border=0>';
	}
	var myNow = new Date();
	var userName = rootElement.childNodes(4).text;
	var userUrl = rootElement.childNodes(5).text;
	if (userName == "") userName = "游客";
	var bakUserName = userName;
	if (userUrl != "")
	{
		UserPhoto = '<a href="' + userUrl + '" target="_blank">' + UserPhoto + '</a>';
		userName = '<a href="' + userUrl + '" target="_blank">' + userName + '</a>'
	}
	var result = "";
	result += '<div id="divComment_' + rootElement.childNodes(0).text + '">\r\n';
	result += '<table border="0" cellspacing="0" cellpadding="0" class="ReplyTable">\r\n';
	result += '<tr valign="top">\r\n';
	result += '<td class="ReplyTable_A">\r\n';
	result += '<div>' + UserPhoto + '</div>\r\n'; //图片
	result += '<div class="ReplyTable_A_1">' + userName + '</div>\r\n';
	if (UserID > 0)
	{
		result += '<div>\r\n';
		result += '<a href="http://message.hexun.com/Send.aspx?id=' + UserID + '" target="_blank">[发送私信]</a></div>\r\n';
		result += '<div>\r\n';
		result += '<a href="http://message.hexun.com/FriendsAdd.aspx?friend=' + UserID + '" target="_blank">[加为好友]</a></div>\r\n';
	}
	result += '</td>\r\n<td class="ReplyTable_B">\r\n';
	result += '<div class="ReplyTable_B_1">\r\n';
	result += '<div class="ReplyTable_B_1_1">' + rootElement.childNodes(6).text + ' [' + rootElement.childNodes(8).text + ']</div>\r\n';
	//result += '<div class="ReplyTable_B_1_2"><img onclick="javascript:DeleteComment(' + rootElement.childNodes(0).text + ');" src="/Images/vi_08.gif" border="0" alt="删除" style="cursor: hand;" /></div>';
	result += '<div class="ReplyTable_B_1_2">\r\n';
	result += '[ <a href="#musicCommentBegin" onclick="javascript:quote(' + rootElement.childNodes(0).text + ');" title="引用该评论">引用</a> ]\r\n';
	result += '[ <a href="#musicCommentList" onclick="javascript:sustain(' + rootElement.childNodes(0).text + ');" title="支持该评论">支持</a> ]\r\n';
	result += '[ <a href="#musicCommentList" onclick="javascript:oppose(' + rootElement.childNodes(0).text + ');" title="反对该评论">反对</a> ]\r\n';
	result += '[ <a href="#musicCommentList" onclick="javascript:DeleteComment(' + rootElement.childNodes(0).text + ', ' + rootElement.childNodes(1).text + ',\'' + rootElement.childNodes(8).text + '\');" title="删除评论信息">删除</a> ]\r\n</div>\r\n';
	result += '</div>\r\n';
	result += '<div id="ReplyTableAll">' + getTextView(rootElement.childNodes(7).text) + '</div>\r\n';
	result += '</td>\r\n';
	result += '</tr>\r\n';
	result += '</table>\r\n';
	result += '<div id="divQuoteText_' + rootElement.childNodes(0).text + '" style="display:none">\r\n';
	result += '[quote][quotefrom]以下是引用 ' + bakUserName + ' 于 ' + myNow.toLocaleString().replace('年','-').replace('月','-').replace('日','') + '  的发言：[/quotefrom][quotecontent]' + rootElement.childNodes(7).text + '[/quotecontent][/quote]\r\n';
	result += '</div>\r\n';
	result += '</div>\r\n';
	return result;
}
function getTextView(strValue)
{
	strValue = strValue.strReplace("[quote]", "<table cellpadding=2  border=1 bordercolor='#666666'><tr><td style='border:0;'>");
    strValue = strValue.strReplace("[quotefrom]", "<table><tr><td>");
    strValue = strValue.strReplace("[/quotefrom]", "</td></tr></table>");
    strValue = strValue.strReplace("[/quote]", "</td></tr></table>");
    strValue = strValue.strReplace("[quotecontent]", "");
    strValue = strValue.strReplace("[/quotecontent]", "");
    // 单独处理一下两个表情的显示，评论入库前对文本作了HtmlEncode操作。
    strValue = strValue.strReplace("[(&amp;)]", "[(&)]");
    strValue = strValue.strReplace("[&amp;-|]", "[&-|]");
    strValue = strValue.strReplace("\n", "<br />");// \r\n居然不起作用，只能用\n
	return getEmotionView(strValue);
}
//获得表情显示。[Sunny Zhao 2007-8-3]
function getEmotionView(strValue)
{
    var EmotionArray = new Array("[:-)]","[:-D]","[;-)]","[8-)]","[(6)]","[:-$]","[8o|]","[:-(]","[:-@]","[:-|]",
    "[(&)]","[&-|]","[:-#]","[$-)]","[:-P]","[(@)]","[:'(]","[|-)]","[:-Z]","[:-S]",
    "[*-(]","[:-%]","[^-)]","[:-*]","[(R)]","[(W)]","[(%)]","[(S)]","[(*)]","[(M)]",
    "[(so)]","[(I)]","[(F)]","[(L)]","[(U)]","[(=)]","[(#)]","[(O)]","[(D)]","[(T)]");
    for (var index=0; index<EmotionArray.length; index++)
    {
        var emotionImage;
        if (index < 9)
        {
            emotionImage = "0" + (index + 1).toString();
        }
        else
        {
            emotionImage = (index + 1).toString();
        }
        strValue = strValue.strReplace(EmotionArray[index], "<img src=\"http://comment.blog.hexun.com/img/emotions/" + emotionImage + ".gif\" alt=\"\" />");
    }
    return strValue;
}
//评论信息在添加前作特殊的处理。
function resetContent(strValue)
{
    return strValue.strReplace("&", "[^#^]").strReplace("=", "[^$^]");
}
//	评论信息显示。
//	xmlText：返回的Xml文本。
//	div_ViewControlID：页面显示评论信息的div编号ID。
function loadCommentXML(xmlText,div_ViewControlID,blogUserID,userID)
{
	if (xmlText == "")
	{
		document.getElementById(div_ViewControlID).innerHTML = xmlText;
		return;
	}
	///alert(xmlText);
	///	记录总数。
	var itemsCount = 0;
	var currentCount = 0;
	var nextPageUrl = "";
	var result = "";
	var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
	xmldoc.async = false;
	xmldoc.loadXML(xmlText);
	var rootElement = xmldoc.documentElement;
	var attributes = rootElement.attributes;
	
	var deleteStr = '';
	var userName = '';
	var linkStr = '';
	var userPhoto = '';
	if (attributes)
	{
		itemsCount = attributes[0].value;
		currentCount = attributes[1].value;
		//	拼写下一页的URL
		//nextPageUrl = "/ListComment.aspx?CID=" + attributes[2].value + "&MID=" + attributes[3].value + "&index=2";
		
	}
	if (rootElement.hasChildNodes())
	{
		var cNodes = rootElement.childNodes;
		var length = cNodes.length;
		for(var i=0;i<length;i++)
		{
			var cNode = cNodes[i];
			if (cNode.hasChildNodes())
			{									
				var iLength = cNode.length;
				var cItemNode = cNode.childNodes;
				deleteStr = '';
				
				if (cItemNode(10).text == userID || (blogUserID == userID && userID>0))
				{
					//deleteStr = '<img style="cursor: hand;" onclick="javascript:DeleteComment(' + cItemNode(0).text + ');" src="/Images/vi_08.gif" border="0" alt="删除" />';
					deleteStr = '[ <a href="#musicCommentList" onclick="javascript:DeleteComment(' + cItemNode(0).text + ', ' + cItemNode(1).text + ', \'' + cItemNode(8).text + '\');" title="删除评论信息">删除</a> ]';
				}
				userName = '游客';
				if (cItemNode(4).text != "")
				{
					userName = cItemNode(4).text;
				}
				var bakUserName = userName;
				linkStr = '';
				if (cItemNode(1).text != "0")
				{
					linkStr = '<div><a href="http://message.hexun.com/Send.aspx?id=' + cItemNode(1).text + '" target="_blank">[发送私信]</a>';
					linkStr += '<div><a href="http://message.hexun.com/FriendsAdd.aspx?friend=' + cItemNode(1).text + '" target="_blank">[加为好友]</a></div>';
				}
				userPhoto = '';
				if (cItemNode(9).text != "")
				{
					userPhoto += '<img id="userPhoto" src="' + cItemNode(9).text + '" border=0>';
				}
				if (cItemNode(5).text != "")
				{
					if (userPhoto != '')
					{
						userPhoto = '<a href="' + cItemNode(5).text + '" target="_blank">' + userPhoto + '</a>';
					}
					userName = '<a href="' + cItemNode(5).text + '" target="_blank">' + userName + '</a>';
				}
				//	拼写显示串。
				result += '<div id="divComment_' + cItemNode(0).text + '">\r\n';
				result += '<table border="0" cellspacing="0" cellpadding="0" class="ReplyTable">\r\n';
				result += '<tr valign="top">\r\n';
				result += '<td class="ReplyTable_A">\r\n';
				result += '<div>' + userPhoto + '</div>\r\n'; //图片
				result += '<div class="ReplyTable_A_1">' + userName + '</div>\r\n';
				result += linkStr;
				result += '</td>\r\n';
				result += '<td class="ReplyTable_B">\r\n';
				result += '<div class="ReplyTable_B_1">\r\n';
				result += '<div class="ReplyTable_B_1_1">\r\n';
				if (cItemNode(6).text != "") result += cItemNode(6).text;
				if (cItemNode(8).text != "") result += '[' + cItemNode(8).text + ']';
				result += '</div>\r\n';
				result += '<div class="ReplyTable_B_1_2">\r\n';
				result += '[ <a href="#musicCommentBegin" onclick="javascript:quote(' + cItemNode(0).text + ');" title="引用该评论">引用</a> ]\r\n';
				result += '[ <a href="#musicCommentList" onclick="javascript:sustain(' + cItemNode(0).text + ');" title="支持该评论">支持</a> ]\r\n';
				result += '[ <a href="#musicCommentList" onclick="javascript:oppose(' + cItemNode(0).text + ');" title="反对该评论">反对</a> ]\r\n';
				result += deleteStr + '</div>\r\n';
				result += '</div>\r\n<div id="ReplyTableAll">';
				if (cItemNode(7).text != "") result += getTextView(cItemNode(7).text);
				result += '</div>\r\n';
				result += '</td>\r\n';
				result += '</tr>\r\n';
				result += '</table>\r\n';
				result += '<div id="divQuoteText_' + cItemNode(0).text + '" style="display:none">\r\n';
	            result += '[quote][quotefrom]以下是引用 ' + bakUserName + ' 于 ' + cItemNode(8).text + '  的发言：[/quotefrom][quotecontent]' + cItemNode(7).text + '[/quotecontent][/quote]';
	            result += '</div>\r\n';
	            result += '</div>\r\n';
			}					
		}
		//alert("itemsCount = " + itemsCount + "\n" + "currentCount = " + currentCount + "\n" + (itemsCount > currentCount));
		//if(itemsCount-currentCount>0)
		//{
		//	result += '<TR height="25">';
		//	result += '<TD colspan="2"><a href="' + nextPageUrl + '" target="_blank">下一页</a></TD>';
		//	result += '</TR>';
		//}
	}
	if (getObject(div_ViewControlID))
	{
	    getObject(div_ViewControlID).innerHTML = result;
	}
	return;
}//	End function loadCommentXML(xmlText,div_ViewControlID,blogUserID,userID)
function checkDelete()
{
	return confirm('提示：\n\n确定删除所选媒体信息吗?\n');
}
secTime=0;
isPlaying=true;
api=7;
var isFirefox=false;
var isF = 0;
var hostStr="http://music.hexun.com";
if(navigator.userAgent.indexOf("Firefox/") != -1)
{
	isFirefox = true;
	isF = 1;
}
function writeMusicPlayer()
{
	var playerstr = "";
    if(!isFirefox)
    {
		var clsid="6BF52A52-394A-11D3-B153-00C04F79FAA6"
		if (navigator.userAgent.indexOf("Windows NT 5.1") != -1 || navigator.userAgent.indexOf("Windows NT 5.2") != -1) {
			clsid = "6BF52A52-394A-11D3-B153-00C04F79FAA6";
		} else {
			var cv = null;
			document.write("<IE:clientCaps ID=\"oClientCaps\" style=\"{behavior:url(#default#clientcaps)}\" />");
			cc=oClientCaps;
			var cv = cc.getComponentVersion("{6BF52A52-394A-11D3-B153-00C04F79FAA6}", "componentid");
			if (cv == null || cv == "") {
				clsid = "22D6F312-B0F6-11D0-94AB-0080C74C7E95";
			} else {
				clsid = "6BF52A52-394A-11D3-B153-00C04F79FAA6";
			}
		}
		//var playerstr='<object width=\"100%\" height=\"64\" classid=\"clsid:'+clsid+'\" id=\"musicPlayer\"><param name=\"URL\" value=\"#\"><param name=\"rate\" value=\"1\"><param name=\"currentPosition\" value=\"0\"><param name=\"playCount\" value=\"1\"><param name=\"autoStart\" value=\"-1\"><param name=\"uiMode\" value=\"mini\"><param name=\"stretchToFit\" value=\"-1\"><param name=\"enableContextMenu\" value=\"-1\"></object>';
		playerstr += '<object height="64" width="300" classid="clsid:' + clsid + '" id="musicPlayer">\r\n';
		playerstr += '\t<param name="URL" value="#">\r\n';
		playerstr += '\t<param name="rate" value="1">\r\n';
		playerstr += '\t<param name="currentPosition" value="0">\r\n';
		playerstr += '\t<param name="playCount" value="1">\r\n';
		playerstr += '\t<param name="autoStart" value="-1">\r\n';
		playerstr += '\t<param name="uiMode" value="full">\r\n';
		playerstr += '\t<param name="stretchToFit" value="-1">\r\n';
		playerstr += '\t<param name="enableContextMenu\" value="-1">\r\n';
		playerstr += '</object>\r\n';
    }
    document.writeln(playerstr);
}

function writeMVPlayer(){
    var playerstr="";
    if(!isFirefox)
    {
        if (navigator.userAgent.indexOf("Windows NT 5.1") != -1 || navigator.userAgent.indexOf("Windows NT 5.2") != -1)
        {
            clsid = "6BF52A52-394A-11D3-B153-00C04F79FAA6";
            api = 7;
        }
        else
        {
            var cv = null;
            document.write("<IE:clientCaps ID=\"oClientCaps0\" style=\"{behavior:url(#default#clientcaps)}\" />");
            cc=oClientCaps0;
            var cv = cc.getComponentVersion("{6BF52A52-394A-11D3-B153-00C04F79FAA6}", "componentid");
            if (cv == null || cv == "")
            {
                clsid = "22D6F312-B0F6-11D0-94AB-0080C74C7E95";
                api = 6;
            }
            else
            {
                clsid = "6BF52A52-394A-11D3-B153-00C04F79FAA6";
                api = 7;
            }
        }
        //playerstr='<object width=\"100%\" classid=\"clsid:'+clsid+'\" id=\"mvPlayer\"><param name=\"URL\" value=\"#\"><param name=\"rate\" value=\"1\"><param name=\"currentPosition\" value=\"0\"><param name=\"playCount\" value=\"1\"><param name=\"autoStart\" value=\"-1\"><param name=\"uiMode\" value=\"Full\"><param name=\"stretchToFit\" value=\"false\"><param name=\"enableContextMenu\" value=\"-1\"></object>';
        playerstr='<object height=\"300\" width=\"300\" classid=\"clsid:'+clsid+'\" id=\"mvPlayer\"><param name=\"URL\" value=\"#\"><param name=\"rate\" value=\"1\"><param name=\"currentPosition\" value=\"0\"><param name=\"playCount\" value=\"1\"><param name=\"autoStart\" value=\"-1\"><param name=\"uiMode\" value=\"Full\"><param name=\"stretchToFit\" value=\"false\"><param name=\"enableContextMenu\" value=\"-1\"></object>';
    }
    document.writeln(playerstr);
}
function musicPlayer(filePath)
{
	writeMusicPlayer();
	if(!isFirefox)
    {
		document.getElementById("musicPlayer").URL = filePath;
	}
	else
	{	
		if (filePath.indexOf("/PM.aspx?CID=") == 0)
		{
			filePath = hostStr + filePath;
		}
		var playerstr = '<object type="application/x-mplayer2" id="musicPlayer" width="300" height="64">\r\n';
		playerstr += '\t<param name="fileName" value="' + filePath + '">\r\n';
		playerstr += '\t<param name="autostart" value="1">\r\n';
		playerstr += '\t<param name="ShowStatusBar" value="1">\r\n';
		playerstr += '</object>\r\n';
		document.writeln(playerstr);
	}
}
function videoPlayer(filePath)
{
/*
	document.writeln('<OBJECT id="videoPlayer" classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" VIEWASTEXT>');
	document.writeln('	<PARAM NAME="URL" VALUE="' + filePath + '">');
	document.writeln('	<PARAM NAME="rate" VALUE="1">');
	document.writeln('	<PARAM NAME="balance" VALUE="0">');
	document.writeln('	<PARAM NAME="currentPosition" VALUE="0">');
	document.writeln('	<PARAM NAME="defaultFrame" VALUE="">');
	document.writeln('	<PARAM NAME="playCount" VALUE="1">');
	document.writeln('	<PARAM NAME="autoStart" VALUE="0">');
	document.writeln('	<PARAM NAME="currentMarker" VALUE="0">');
	document.writeln('	<PARAM NAME="invokeURLs" VALUE="0">');
	document.writeln('	<PARAM NAME="baseURL" VALUE="">');
	document.writeln('	<PARAM NAME="volume" VALUE="50">');
	document.writeln('	<PARAM NAME="mute" VALUE="0">');
	document.writeln('	<PARAM NAME="uiMode" VALUE="full">');
	document.writeln('	<PARAM NAME="stretchToFit" VALUE="0">');
	document.writeln('	<PARAM NAME="windowlessVideo" VALUE="0">');
	document.writeln('	<PARAM NAME="enabled" VALUE="0">');
	document.writeln('	<PARAM NAME="enableContextMenu" VALUE="-1">');
	document.writeln('	<PARAM NAME="fullScreen" VALUE="0">');
	document.writeln('	<PARAM NAME="SAMIStyle" VALUE="">');
	document.writeln('	<PARAM NAME="SAMILang" VALUE="">');
	document.writeln('	<PARAM NAME="SAMIFilename" VALUE="">');
	document.writeln('	<PARAM NAME="captioningID" VALUE="">');
	document.writeln('	<PARAM NAME="enableErrorDialogs" VALUE="0">');
	document.writeln('	<PARAM NAME="_cx" VALUE="6482">');
	document.writeln('	<PARAM NAME="_cy" VALUE="6350">');
	document.writeln('</OBJECT>');
	*/
	writeMVPlayer();
	if(!isFirefox)
    {
		document.getElementById("mvPlayer").URL = filePath;
	}
	else
	{	if (filePath.indexOf("/PM.aspx?CID=") == 0)
		{
			filePath = hostStr + filePath;
		}
		//alert(filePath);
		var playerstr = '<object type="application/x-mplayer2" id="mvPlayer" width="300" height="300">\n';
		playerstr += '<param name="fileName" value="' + filePath + '">\n';
		playerstr += '<param name="autostart" value="1">\n';
		playerstr += '<param name="ShowStatusBar" value="1">\n';
		playerstr += '</object>\n';
		//alert(playerstr);
		document.writeln(playerstr);
	}
}
//设置Iframe高度自适应。放于Iframe页面的最下部。
function SetIframeHeight(iframeName)
{
	if(parent)
	{
		if(parent.document.all(iframeName))
			{
				parent.document.all(iframeName).style.height = document.body.scrollHeight;
				parent.document.all(iframeName).style.display = "block";
			}
	}
}

var HEXUN_EspecialChar = ",'\";\\";
//检查字符串中是否有特殊字符。

function checkEspecialChar(str)
{
    for(var index=0;index<HEXUN_EspecialChar.length;index++)
    {
        var result = str.indexOf(HEXUN_EspecialChar.charAt(index));
        if (result > 0)
        {
            return false;
        }
    }    
    return true;
}
function escape_utf8(data) {

	if (data == '' || data == null){
		return '';
	}
	data = data.toString();
	var buffer = '';
	for(var i=0; i<data.length; i++){
		var c = data.charCodeAt(i);
		var bs = new Array();

		if (c > 0x10000){
			// 4 bytes
			bs[0] = 0xF0 | ((c & 0x1C0000) >>> 18);
			bs[1] = 0x80 | ((c & 0x3F000) >>> 12);
			bs[2] = 0x80 | ((c & 0xFC0) >>> 6);
			bs[3] = 0x80 | (c & 0x3F);

		}else if (c > 0x800){
			// 3 bytes
			bs[0] = 0xE0 | ((c & 0xF000) >>> 12);
			bs[1] = 0x80 | ((c & 0xFC0) >>> 6);
			bs[2] = 0x80 | (c & 0x3F);

		}else if (c > 0x80){
			// 2 bytes
			bs[0] = 0xC0 | ((c & 0x7C0) >>> 6);
			bs[1] = 0x80 | (c & 0x3F);

		}else{
			// 1 byte
			bs[0] = c;
		}

		for(var j=0; j<bs.length; j++){
			var b = bs[j];
			var hex = nibble_to_hex((b & 0xF0) >>> 4) + nibble_to_hex(b & 0x0F);
			buffer += '%'+hex;
		}
	}

	return buffer;
}
function nibble_to_hex(nibble){
	var chars = '0123456789ABCDEF';
	return chars.charAt(nibble);
}
//地址复制。
function copyToClipBoard(content)
{
	window.clipboardData.clearData();
	window.clipboardData.setData("text",content);
	alert("已经复制到剪贴板");
}
function CopyButton_onClick(mediaID,mCategoryID)
{
	window.open("CopyMedia.aspx?MID=" + mediaID.toString() + "&CID=" + mCategoryID.toString());
}
//获得某编号在当前编号数组中的索引。
function getIndex(idValue,idValueArray)
{
	var result = -1;
	for(var index=0; index<idValueArray.length; index++)
	{
		if (idValue == idValueArray[index])
		{
			result = index;
			break;
		}
	}
	return result;
}
//获得分页控件显示串儿。
//<a href="">1</a>|<span class="onfocus">2</span>|<a href="">3</a>|<a href="">4</a>|<a href="">5</a>|<a href="">6</a>|<a href="">7</a>|<a href="">8</a>|<a href="">9</a>|<a href="">10</a>
getPagerHTML = function(itemCount, pageIndex, pageSize, urlModel, indexSurface, viewLinkNum, isNewWindow)
{
    if (pageSize < 1) pageSize = 10;//默认每页10项记录。
    var pageCount = ((itemCount - (itemCount % pageSize)) / pageSize) + 1;//页数。
    if (pageIndex < 1) pageIndex = 1;//页号。
    if (pageIndex > pageCount) pageIndex = pageCount;
    
    if (viewLinkNum % 2 != 0) viewLinkNum = viewLinkNum -1;//显示连接数，必须偶数数值。
    if (viewLinkNum < 2) viewLinkNum = 2;

    var targetStr = "";
    if (true == isNewWindow)
    {
        targetStr = " target=\"_blank\" ";
    }
    var returnSB = "";
    if (pageCount <= 1)
    {
        return returnSB;
    }
    if (pageIndex > (viewLinkNum / 2) && (pageIndex + (viewLinkNum / 2)) < pageCount)
    {
        for (var index = (viewLinkNum / 2) - 1; index > 0; index--)
        {
            returnSB += "<a href=\"" + urlModel.strReplace(indexSurface, (pageIndex - index).toString()) + "\"" + targetStr + ">" + (pageIndex - index).toString() + "</a>|";
        }
        returnSB += "<span class=\"onfocus\">" + pageIndex.toString() + "</span>";
        if (pageIndex < pageCount)
        {
            returnSB += "|";
        }
        for (var index = 1; index < (viewLinkNum / 2) + 1; index++)
        {
            returnSB += "<a href=\"" + urlModel.strReplace(indexSurface, (pageIndex + index).toString()) + "\"" + targetStr + ">" + (pageIndex + index).toString() + "</a>";
            if ((pageIndex + index) < pageCount && index < (viewLinkNum / 2))
            {
                returnSB += "|";
            }
        }
    }
    else
    {
        if (pageIndex < (viewLinkNum / 2) + 1 || pageCount <= viewLinkNum)
        {
            for (var index = 0; index < pageIndex - 1; index++)
            {
                returnSB += "<a href=\"" + urlModel.strReplace(indexSurface, (index + 1).toString()) + "\"" + targetStr + ">" + (index + 1).toString() + "</a>|";
            }
            returnSB += "<span class=\"onfocus\">" + pageIndex.toString() + "</span>";
            if (pageIndex < pageCount)
            {
                returnSB += "|";
            }
            for (var index = 1; index <= (viewLinkNum - pageIndex); index++)
            {
                if (pageIndex + index > pageCount)
                {
                    break;
                }
                returnSB += "<a href=\"" + urlModel.strReplace(indexSurface, (pageIndex + index).toString()) + "\"" + targetStr + ">" + (pageIndex + index).toString() + "</a>";
                if ((pageIndex + index) < pageCount && index < (viewLinkNum - pageIndex))
                {
                    returnSB += "|";
                }
            }
        }
        else
        {
            if (pageIndex + (viewLinkNum / 2 + 1) > pageCount)
            {
                for (var index = (pageIndex + viewLinkNum - 1 - pageCount); index > 0; index--)
                {
                    returnSB += "<a href=\"" + urlModel.strReplace(indexSurface, (pageIndex - index).toString()) + "\"" + targetStr + ">" + (pageIndex - index).toString() + "</a>|";
                }
            }
            else
            {
                for (var index = (viewLinkNum / 2 + 1); index > 0; index--)
                {
                    returnSB += "<a href=\"" + urlModel.strReplace(indexSurface, (pageIndex - index).toString()) + "\"" + targetStr + ">" + (pageIndex - index).toString() + "</a>|";
                }
            }

            returnSB += "<span class=\"onfocus\">" + pageIndex.toString() + "</span>";
            if (pageIndex < pageCount)
            {
                returnSB += "|";
            }
            for (var index = 1; index < (viewLinkNum / 2 + 1); index++)
            {
                if (pageIndex + index > pageCount)
                {
                    break;
                }
                returnSB += "<a href=\"" + urlModel.strReplace(indexSurface, (pageIndex + index).toString()) + "\"" + targetStr + ">" + (pageIndex + index).toString() + "</a>";
                if ((pageIndex + index) < pageCount && index < (viewLinkNum / 2))
                {
                    returnSB += "|";
                }
            }
        }
    }
    return returnSB;
}


//获得分页控件显示串儿。
//<a href="">1</a>|<span class="onfocus">2</span>|<a href="">3</a>|<a href="">4</a>|<a href="">5</a>|<a href="">6</a>|<a href="">7</a>|<a href="">8</a>|<a href="">9</a>|<a href="">10</a>
getPagerHTML000 = function(itemCount, pageIndex, pageSize, urlModel, indexSurface, viewLinkNum, isNewWindow)
{
    if (pageSize < 1) pageSize = 10;//默认每页10项记录。
   // var pageCount = ((itemCount - (itemCount % pageSize)) / pageSize) + 1;//页数。
    var pageCount = (itemCount % pageSize == 0)?(itemCount / pageSize) : (((itemCount - (itemCount % pageSize)) / pageSize) + 1);
    if (pageIndex < 1) pageIndex = 1;//页号。
    if (pageIndex > pageCount) pageIndex = pageCount;
    if (viewLinkNum % 2 == 0) viewLinkNum = viewLinkNum - 1;//显示连接数，必须奇数数值。
    if (viewLinkNum < 2) viewLinkNum = 3;

    var halfValue = (viewLinkNum - 1) / 2;
    var targetStr = "";
    if (true == isNewWindow)
    {
        targetStr = " target=\"_blank\" ";
    }
    var returnSB = "";
    if (pageCount <= 1)
    {
        return returnSB;
    }
    if (pageIndex > (halfValue + 1) && (pageIndex + halfValue) <= pageCount)//当前页中间正常。
    {
        for (var index = halfValue; index > 0; index--)
        {
            returnSB += "<a href=\"#\" onclick=\"" + urlModel.strReplace(indexSurface, (pageIndex - index).toString()) + "\"" + targetStr + ">" + (pageIndex - index).toString() + "</a>|";
        }
        returnSB += "<span class=\"onfocus\">" + pageIndex.toString() + "</span>|";
        for (var index = 1; index < halfValue + 1; index++)
        {
            returnSB += "<a href=\"#\" onclick=\"" + urlModel.strReplace(indexSurface, (pageIndex + index).toString()) + "\"" + targetStr + ">" + (pageIndex + index).toString() + "</a>";
            if (index < halfValue)
            {
                returnSB += "|";
            }
        }
    }
    else
    {
        if (pageIndex < (halfValue + 1) || pageCount <= viewLinkNum)// 显示页数不全。
        {
            for (var index = 0; index < pageIndex - 1; index++)
            {
                returnSB += "<a href=\"#\" onclick=\"" + urlModel.strReplace(indexSurface, (index + 1).toString()) + "\"" + targetStr + ">" + (index + 1).toString() + "</a>|";
            }
            returnSB += "<span class=\"onfocus\">" + pageIndex.toString() + "</span>";
            if (pageIndex < pageCount)
            {
                returnSB += "|";
            }
            for (var index = 1; index <= (viewLinkNum - pageIndex); index++)
            {
                if (pageIndex + index > pageCount)
                {
                    break;
                }
                returnSB += "<a href=\"#\" onclick=\"" + urlModel.strReplace(indexSurface, (pageIndex + index).toString()) + "\"" + targetStr + ">" + (pageIndex + index).toString() + "</a>";
                if ((pageIndex + index) < pageCount && index < (viewLinkNum - pageIndex))
                {
                    returnSB += "|";
                }
            }
        }
        else// 显示页数全，当前页偏左或偏右。
        {
            if (pageIndex + halfValue > pageCount)//有最后页显示，当前页偏右。
            {
                for (var index = (viewLinkNum - (pageCount - pageIndex) - 1); index > 0; index--)
                {
                    returnSB += "<a href=\"#\" onclick=\"" + urlModel.strReplace(indexSurface, (pageIndex - index).toString()) + "\"" + targetStr + ">" + (pageIndex - index).toString() + "</a>|";
                }
            }
            else//有第一页显示，当前页偏左。
            {
                for (var index = 1; index < pageIndex; index++)
                {
                    returnSB += "<a href=\"#\" onclick=\"" + urlModel.strReplace(indexSurface, index.toString()) + "\"" + targetStr + ">" + index.toString() + "</a>|";
                }
            }

            returnSB += "<span class=\"onfocus\">" + pageIndex.toString() + "</span>";
            if (pageIndex < pageCount)
            {
                returnSB += "|";
            }
            for (var index = 1; index < (halfValue + 1); index++)
            {
                if (pageIndex + index > pageCount)
                {
                    break;
                }
                returnSB += "<a href=\"#\" onclick=\"" + urlModel.strReplace(indexSurface, (pageIndex + index).toString()) + "\"" + targetStr + ">" + (pageIndex + index).toString() + "</a>";
                if ((pageIndex + index) < pageCount && index < halfValue)
                {
                    returnSB += "|";
                }
            }
        }
    }
    return returnSB;
}
windowReload = function()
{
    window.location.reload();
}
//mp_open = function(albumid , musichost , musicid , type , mid)
//{
//	if(typeof mid == "undefined")
//	{
//		mid = "";
//	}

//	var w = 1025;
//	var h = 652;
//	var s = 0;
//	var target = "_player";
//	var url = "/~music/~p.php?albumid="+albumid+"&musichost="+musichost+"&musicid="+musicid+"&type="+type+"&mid="+mid;
//	
//	var left=(screen.width-w)/2;
//	var top=(screen.height-h)/2;
//	var r = window.open(url,target,'width='+w+',height='+h+',top='+top+',left='+left+',scrollbars=0,resizable=0,status='+s);
//	r.focus();
//	return r;	
//}

//wanghongxia add
//添加收信人。
function AddMapping(mapname, mapid)
{		
    var str = document.getElementById("maplist").value;
    var strID = document.getElementById("friendsIDList").value;
    if(str != "")
    {
	    var last = str.substring((str.length-1), str.length);
	    while(last == ";")
	    {
		    str = str.substring(0,(str.length-1));
		    last = str.substring((str.length-1), str.length);
	    }
    }
    if(str.indexOf(mapname) == 0 || str.indexOf(";"+mapname+";") != -1 || str.indexOf(mapname) != -1)
    {
	    //alert("提示：\r\n\r\n该用户已经添加！");
	    return false;
    }
    var comma = "";
    if(str.length != 0)
    {
	    comma = ";";
    }
    document.getElementById("maplist").value = str + (comma + mapname + ";");			
    
    //mapid
     if(strID != "")
    {
	    var last = strID.substring((strID.length-1), strID.length);
	    while(last == ";")
	    {
		    strID = strID.substring(0,(strID.length-1));
		    last = strID.substring((strID.length-1), strID.length);
	    }
    }
    if(strID.length != 0)
    {
	    comma = ";";
    }
    document.getElementById("friendsIDList").value = strID + (comma + mapid + ";");				  	  
    return true;
}

var boolEomtionsView = false;
//显示表情。
EmotionsView = function()
{
    if (false == boolEomtionsView)
    {
        if (document.getElementById("emotionsdiv"))
        {
            document.getElementById("emotionsdiv").style.display = "";
        }
        boolEomtionsView = true;
    }
    else
    {
        if (document.getElementById("emotionsdiv"))
        {
            document.getElementById("emotionsdiv").style.display = "none";
        }
        boolEomtionsView = false;
    }
    return;
}
//点击表情调用方法：
AfterAddEmotion = function()
{
    EmotionsView();
    return;
}