/**
 * 取字符串所占的字节长度
 * 英文数字各占一个字节，中文占两个字节
 */
function getStrAllocateLen(str){
	var iLen=0;
	var iUnicode;
	
	for(i=0;i<str.length;i++)
	{
		iUnicode=str.charCodeAt(i);
		if (iUnicode<=128)
		{				//英文字符
			iLen+=1;
		}
		else
		{
			if (iUnicode>128 && iUnicode<=255)
			{
				iLen+=2;
			}
			else
			{
				if (iUnicode>=4112)
				{	//中文字符
					iLen+=2;
				}
				else
				{
					iLen+=1;			//其他字符
				}
			}
		}
	}
	return(iLen);
}


/**
 * 求浮点数方法 
 */
function getFloat(num) 
{ 
	var num = parseFloat(num); 
	return isNaN(num)?0:num;
} 

/**
 * 求整数方法（用到浮点数取法） 
 */
function getInt(num) 
{ 
	return parseInt(getFloat(num)); 
} 

/**
 *判断是否为固定的位数
 */
function isatn(m,n)
{
	return m!=n;
}

/**
 * 是否未电话号码
 */
function istel(telstr)
{
	var reg=/[^0-9-]/g;
	if (telstr!="")
	{
		if (reg.test(telstr))
		{	
			return(false);
		}
		else
		{
		 	return(true);
		}
	}
}


function isChineseAndAscii(str)
{
	for(i=0;i<str.length;i++)
	{
		iUnicode=str.charCodeAt(i);
		if(  !((iUnicode<=57&&iUnicode>=48) || (iUnicode<=90&&iUnicode>=65)
		    || (iUnicode<=122&&iUnicode>=97)  || (iUnicode>=4112) ))
		{
			return false;
		}
		    
	}
	return true;
}

/**
 * 是否为汉字
 */
function ischinese(str)
{
	for(i=0;i<str.length;i++)
	{
		iUnicode=str.charCodeAt(i);
		if(  !(iUnicode>=4112) )
		{
			return false;
		}
		    
	}
	return true;
}

/**
 * 是否为电话、传真
 */
function isTelephone(data)
{
	var reg = /^(\d+-)*\d+$/;
	return data.match(reg);
}

/**
 * 是否为Ascii码
 */
function isAscii(data)
{
	return data.match(/^\w+$/);
}

function isMobile(data)
{
	var reg =/^0?13\d{6,10}$/
	return data.match(reg);
}

function isNumber(data)
{
	return data.match(/^\d+$/);
}

/**
 * 去除字符串前后的空格
 */
function trim(data)
{
	var reg = /^\s*|\s*$/g;
	return data.replace(reg,"");
}


//打开小窗口
//url http连接
//w宽度，h高度，n小窗口名称
function openWindow(url,w,h,n)
{
    var top = (screen.availHeight-h)/2;
	var left = (screen.availWidth-w)/2;
	var options = "width=" + w + ",height=" + h + ",";
    options += "scrollbars=yes,location=no,menubar=no,toolbar=no,directories=no,top="+top+",left="+left;
    if(n == "")
    {
    	var date=new Date();
    	n=date.getSeconds();
    }
    n=n+"ab";
    var newWin=window.open(url,n, options);
    newWin.focus();
    return newWin;
}

function openFullWindow(url,n)
{
	var top = 0;
	var left = 0;
	var w = (window.screen.availWidth-10);
	var h = (window.screen.availHeight-50);
	var options = "width=" + w + ",height=" + h + ",";
    options += "scrollbars=yes,resizable=yes,location=no,menubar=no,toolbar=no,directories=no,top="+top+",left="+left;
    if(n == "")
    {
    	var date=new Date();
    	n=date.getSeconds();
    }
    n=n+"ab";
    var newWin=window.open(url,n, options);
    newWin.focus();
    return newWin;
}



function getSelectCheckboxNum(obj, boxname)
{
	var num = 0;
	var num=0;
	for (var i=0;i<obj.elements.length;i++)
	{
		if (obj.elements[i].name==boxname)
		{
			if (obj.elements[i].checked==true)
				num++;
		}
	}
	return num;
}

//取出被选上的单个复选框的value
function getSelectCheckboxValue(obj, checkboxName)
{
	for (var i=0;i<obj.elements.length;i++)
	{
		if (obj.elements[i].name==checkboxName)
		{
			if (obj.elements[i].checked==true)
				return obj.elements[i].value;
		}
	}
	return "";
}

//取出被选上的所有复选框的value，其中value与value之间用逗号隔开，例如1,2,3,4
function getSelectCheckboxValues(obj )
{
	var result = "";
	for (var i=0;i<obj.elements.length;i++)
	{
		if (obj.elements[i].name==checkboxName)
		{
			if (obj.elements[i].checked==true)
				result += obj.elements[i].value+",";
		}
	}
	return result.substring(0, result.length-1);
}

//判断是否没有选任何复选框  如果没有选任何复选框，返回true；否则返回false
function nonSelected(obj, toBeSelectedCheckboxName, message)
{
	message = message == null||message ==""?'请先选择一个！':message;
	if(getSelectCheckboxNum(obj, toBeSelectedCheckboxName)==0)
	{
		alert(message);
		return true;
	}
	return false;
}

//判断是否只有一个复选框被选上  如果不是一个，返回true，否则返回false
function selectOne(obj, toBeSelectedCheckboxName,message)
{
	message = message == null||message == ""?'只能选一个！':message;
	if(getSelectCheckboxNum(obj, toBeSelectedCheckboxName)!=1)
	{
		alert(message);
		return false;
	}	
	return true;
}
//选择所有的复选
// bChecked  选择标示
function  selectAllKey(obj, toBeSelectedCheckboxName,bChecked)
{
	for (var i=0;i<obj.elements.length;i++)
	{
		if (obj.elements[i].name==toBeSelectedCheckboxName)
		{
			obj.elements[i].checked = bChecked;
		}
	}	
}



   var keyStr = "ABCDEFGHIJKLMNOP" +
                "QRSTUVWXYZabcdef" +
                "ghijklmnopqrstuv" +
                "wxyz0123456789+/" +
                "=";

   function encode64(input) {
      input = escape(input);
      var output = "";
      var chr1, chr2, chr3 = "";
      var enc1, enc2, enc3, enc4 = "";
      var i = 0;

      do {
         chr1 = input.charCodeAt(i++);
         chr2 = input.charCodeAt(i++);
         chr3 = input.charCodeAt(i++);

         enc1 = chr1 >> 2;
         enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
         enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
         enc4 = chr3 & 63;

         if (isNaN(chr2)) {
            enc3 = enc4 = 64;
         } else if (isNaN(chr3)) {
            enc4 = 64;
         }

         output = output + 
            keyStr.charAt(enc1) + 
            keyStr.charAt(enc2) + 
            keyStr.charAt(enc3) + 
            keyStr.charAt(enc4);
         chr1 = chr2 = chr3 = "";
         enc1 = enc2 = enc3 = enc4 = "";
      } while (i < input.length);

      return output;
   }

   function decode64(input) {
      var output = "";
      var chr1, chr2, chr3 = "";
      var enc1, enc2, enc3, enc4 = "";
      var i = 0;

      // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
      var base64test = /[^A-Za-z0-9\+\/\=]/g;
      if (base64test.exec(input)) {
         alert("There were invalid base64 characters in the input text.\n" +
               "Valid base64 characters are A-Z, a-z, 0-9, '+', '/', and '='\n" +
               "Expect errors in decoding.");
      }
      input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

      do {
         enc1 = keyStr.indexOf(input.charAt(i++));
         enc2 = keyStr.indexOf(input.charAt(i++));
         enc3 = keyStr.indexOf(input.charAt(i++));
         enc4 = keyStr.indexOf(input.charAt(i++));

         chr1 = (enc1 << 2) | (enc2 >> 4);
         chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
         chr3 = ((enc3 & 3) << 6) | enc4;

         output = output + String.fromCharCode(chr1);

         if (enc3 != 64) {
            output = output + String.fromCharCode(chr2);
         }
         if (enc4 != 64) {
            output = output + String.fromCharCode(chr3);
         }

         chr1 = chr2 = chr3 = "";
         enc1 = enc2 = enc3 = enc4 = "";

      } while (i < input.length);

      return unescape(output);
   }
   
   
function getEmt(name)
{
	return document.getElementsByName(name);
}