function chineseCount(str)
{//返回字符串中文字符的个数
	var c=0;
	for(var i=0;i<str.length;i++)
		if(str.charCodeAt(i)>=10000)
			c++;
	return c;
}

function isChinese(str)
{//单个字符是中文则返回true，若是字符串则只要有一个中文则返回true
	var flag=true;
	for(var i=0;i<str.length;i++)
		if(str.charCodeAt(i)>=10000)
			return true;
	return false;
}

function getByteCount(str)
{
//返回字符串的字节数，中文算两个字节 
//注:由于UTF-8中文占3个字节,所以这里已经改为3
//这里简化一下将中文也一个字符当作一个字节来算
	var c=0;
	for(var i=0;i<str.length;i++){
		if(str.charCodeAt(i)>=10000)
			c+=1;
		else
			c++;
	}
	return c;
}

function lengthOfByte(str,cLength)
{
//返回字符串的字节数，中文算cLength个字节 
	var c=0;
	for(var i=0;i<str.length;i++)
		if(str.charCodeAt(i)>=10000)
			c+=cLength;
		else
			c++;
	return c;
}

function leftOfByte(str,length)
{
//返回字符串左起共length个字节的字符串
	if (str == null||str==""){
		return "";
	}
	var temp;
	var yy = length;
    if (str.length<length){
        temp = str;
        yy = temp.length;
    }else{
        temp = str.substring(0,length);
    }

    var xx = lengthOfByte(temp,2) - length;
        
    while (xx>0){
        if (xx==1){
            yy = yy-xx;
        }else{
            yy = yy-xx/2;
        }
            
        temp = temp.substring(0,yy);
        xx = lengthOfByte(temp,2) - length;
    }

	return temp;
}

//--全部复选框全部选中与全不选中函数----
function selectCheckboxAll(s_count,s_prefix)
{
	try
	{
		var cnt=parseInt(s_count)
		for(var i=1;i<=cnt;i++)
			if(document.all(s_prefix+i)&&!document.all(s_prefix+i).disabled)
				document.all(s_prefix+i).checked=true;
	}
	catch(error)
	{
		functionError(error,"错误：[SelecteCheckboxAllError]");
	}
}
function unselectCheckboxAll(s_count,s_prefix)
{
	try
	{
		var cnt=parseInt(s_count)
		for(var i=1;i<=cnt;i++)
			if(document.all(s_prefix+i)&&!document.all(s_prefix+i).disabled)
				document.all(s_prefix+i).checked=false;
	}
	catch(error)
	{
		functionError(error,"错误：[UnSelecteCheckboxAllError]");
	}
}

//********************错误处理函数******************
function functionError(errObj,mess)
{
//执行函数时出错处理函数
//mess为传来的消息，有则替换默认消息
try
	{
		var ms="错误：[ExcuteJSError]";
		if(mess!=null&&mess!="")
			ms=mess;
		if(errObj!=null)
		{
			ms+="\n描述："+errObj.description;
			alert(ms);
		}		
	}
	catch(error)
	{
		alert("错误：[FunctionError's Error]");
	}
}


//清空Select列表
function selectBoxClear(boxObj)
{
	try
	{
		if(boxObj==null) return;
		for(var i=boxObj.options.length-1;i>=0;i--)
			boxObj.options.remove(i);
	}
	catch(error)
	{}
}

//向Select列表对象中添加新option项
function selectBoxAdd(boxObj,optVal,optText)
{ 
	try
	{
		if(boxObj==null) return;
		boxObj.options.add(new Option(optText,optVal));
	}
	catch(error)
	{}
}

//选中Select列表对象中值为optVal的项
function selectBoxChoose(boxObj,optVal)
{ 
	try
	{
		if(boxObj==null) return;
		for(var i=boxObj.options.length-1;i>=0;i--)
			if(boxObj.options[i].value==optVal)
			{
				boxObj.options[i].selected=true;
				return;
			}
	}
	catch(error)
	{}
}

//选中Select列表对象中值为optVal的项
function selectBoxChoose_text(boxObj,optVal)
{ 
	try
	{
		if(boxObj==null) return;
		for(var i=boxObj.options.length-1;i>=0;i--)
			if(boxObj.options[i].text==optVal)
			{
				boxObj.options[i].selected=true;
				return;
			}
	}
	catch(error)
	{}
}

function strim(strObj)
{//去前后空格
	if(strObj==null||strObj=="")
		return "";
	var s_str=""+strObj;

	while (s_str.substring (0, 1) == ' ') 
		s_str = s_str.substring (1, s_str.length);
	while (s_str.substring (s_str.length - 1, s_str.length) == ' ')
		s_str = s_str.substring (0, s_str.length - 1);
	return s_str;
} 

//获取url中的参数
function getParamValue(url,ParamName)
{
	var ii = url.indexOf("?");
	if (ii==-1)
	{
		return "";
	}
	url = url.substring(ii+1,url.length);
	ii = url.indexOf(ParamName + "=");
	if (ii==-1)
	{
		return "";
	}
	url = url.substring(ii+1,url.length);
	ii = url.indexOf("&");
	if (ii==-1)
	{
		return url.substring(ParamName.length ,url.length);
	}else{
		return url.substring(ParamName.length ,ii);
	}
}

function getItemValue(str,ItemName)
{
	var arr = str.split("|");
	for(var ii=0;ii<arr.length;ii++){
		if (arr[ii].substring(0,ItemName.length+1)==ItemName+"="){
			return arr[ii].substring(ItemName.length+1,arr[ii].length)
		}
	}
	return "";
}

function addItemValue(str,ItemName,ItemValue)
{
	var arr = str.split("|");
	var outstr = "";
	var bfind = false;
	for(var ii=0;ii<arr.length;ii++){
		if (arr[ii].substring(0,ItemName.length+1)==ItemName+"="){
			if (outstr==""){
				outstr = ItemName+"="+ItemValue;
			}else{
				outstr = outstr + "|" + ItemName+"="+ItemValue;
			}
			
			bfind = true;
		}else{
			if (arr[ii]!=""){
				if (outstr==""){
					outstr = arr[ii];
				}else{
					outstr = outstr + "|" + arr[ii];
				}
			}
		}
	}
	if (!bfind){
		if (outstr==""){
			outstr = ItemName+"="+ItemValue;
		}else{
			outstr = outstr + "|" + ItemName+"="+ItemValue;
		}
	}
	return outstr;
}

function getTextElementData(parentElement, elementName) {
	if(parentElement.getElementsByTagName(elementName)[0].childNodes.length > 1) {
		/** 
		 * Firefox需要这样取得CDATA的内容
		 **/
		for(var j=0; j<parentElement.getElementsByTagName(elementName)[0].childNodes.length; j++) {
			if (parentElement.getElementsByTagName(elementName)[0].childNodes[j].nodeName == "#cdata-section") {
				return parentElement.getElementsByTagName(elementName)[0].childNodes[j].data;
			}
		}
	}else if(parentElement.getElementsByTagName(elementName)[0].firstChild) {
		/**
		 * 取得节点的内容
		 **/
		return parentElement.getElementsByTagName(elementName)[0].firstChild.nodeValue;
	}
}

function findPosX(obj) {
	var currentleft = 0;
	if (obj&&obj.offsetParent) {
		currentleft = obj.offsetLeft;
		while (obj = obj.offsetParent) {
			currentleft += obj.offsetLeft;
		}
	} else if (obj&&obj.x) currentleft += obj.x;
	return currentleft;
} 

function findPosY(obj) {
	var currenttop = 0;
	if (obj&&obj.offsetParent) {
		currenttop = obj.offsetTop;
		while (obj = obj.offsetParent) {
			currenttop += obj.offsetTop;
		}
	} else if (obj&&obj.y) currenttop += obj.y;
	return currenttop;
}

function getElementsByClassName(node, className) {
	var children = node.getElementsByTagName('*');
	var elements = new Array();
	for (var i=0; i<children.length; i++) {
		var child = children[i];
		var classNames = child.className.split(' ');
		for (var j = 0; j < classNames.length; j++) {
			if (classNames[j] == className) {
				elements.push(child);
				break;
			}
		}
	}
	return elements;
}

function SetCookie(name, value, expire)
{
var expdate = new Date();
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 1000 ));
document.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("; expires="+ expdate.toGMTString()))
+((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))
+((secure == true) ? "; secure" : "");
}

function GetCookie(name)
{
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen)
	{
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg){
			var endstr = document.cookie.indexOf (";", j);
			if (endstr == -1)
				endstr = document.cookie.length;
			return document.cookie.substring(j, endstr);
		}

		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;
	}
	return null;
}

