﻿// JScript 文件


/*-------------------------------------------------------------------------------------------*/
// 	功能: 字符串处理函数 
/*-------------------------------------------------------------------------------------------*/
String.prototype.trim = function()
    {
    return this.replace(/(^[\s]*)|([\s]*$)/g, "");
    }

String.prototype.lTrim = function()
    {
    return this.replace(/(^[\s]*)/g, "");
    }
String.prototype.rTrim = function()
    {
    return this.replace(/([\s]*$)/g, "");
    }

String.prototype.left  = function(iCount)
	{
	return this.substr(0,iCount);
	}
	
String.prototype.right = function(iCount)
	{
	return this.substr(this.length-iCount,iCount);
	}

function $()
    {
    var elements = new Array();
    var element;
    for (var i = 0; i < arguments.length; i++) 
        {
        element = arguments[i];
        if (typeof(element) == 'string')
         element = document.getElementById(element);
        elements.push(element);
        }
    if(arguments.length == 1)
	    return elements[0];
    else
	    return elements;
    }

function TrimLeft(strSource,subStr)
{
 	if (strSource+"" == "undefined" || strSource ==null || strSource=="")
		return ""; 
	
	if (subStr+"" == "undefined" || subStr ==null || subStr=="")
		return strSource; 
	
     var strReturn = strSource;
	while(strReturn.indexOf(subStr)==0)
	{
		strReturn = strRight(strReturn,subStr);
	}
	return strReturn;

}
function TrimRight(strSource,subStr)
{
     if (strSource+"" == "undefined" || strSource ==null || strSource=="")
		return ""; 
	
	if (subStr+"" == "undefined" || subStr ==null || subStr=="")
		return strSource; 
	
     var strReturn = strSource;
	while(strReturn.lastIndexOf(subStr)==(strReturn.length-subStr.length))
	{
		strReturn = strLeftBack(strReturn,subStr);
	}
	
	return strReturn;

}

function TrunToHtml(sSrc)
{
	if(sSrc=="") return sSrc;
	return sSrc.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")
}

function strRight(strSource,subStr)
	{ 
	if(strSource.indexOf(subStr)==-1)
		return "";
	else
		return strSource.substr(strSource.indexOf(subStr) + subStr.length);
	}

function strRightBack(strSource,subStr)
	{
	if(strSource.indexOf(subStr)==-1)
		return "";
	else
		return strSource.substr(strSource.lastIndexOf(subStr) + subStr.length );
	}

function strLeft(strSource,subStr)
	{
	if(strSource.indexOf(subStr)==-1)
		return "";
	else
		return strSource.substr(0,strSource.indexOf(subStr));
	}

function strLeftBack(strSource,subStr)
	{
	if(strSource.indexOf(subStr)==-1)
		return "";
	else
		return strSource.substr(0,strSource.lastIndexOf(subStr));
	}

function Instr(strSource,subStr)
	{
	if(strSource.indexOf(subStr)==-1)
		return false;
	else
		return true;
	}
	
//function Replace(strSource,strFrom,strTo)
//	{
//	if(!strFrom) return strSource;
//	
//	while(strSource.indexOf(strFrom)>=0)
//		{
//		strSource = strSource.replace(strFrom,strTo);
//		}
//	return strSource;
//	}

//通过正则表达式来替换效率比较高
function Replace(strSource,strFrom,strTo)
{
    var reg = new RegExp(strFrom,"g");
   return strSource.replace(reg,strTo);
}
function strConnect(sLeft,sRight,sDivisor)
	{
	if(sDivisor=="" || sDivisor==undefined)
		sDivisor = ";";
		
	if(sLeft=="")
		return sRight;
	else
		return sLeft + sDivisor + sRight;
	}
function strConnectArray(aStr,sDivisor) {
    var s="";
    var sDiv=";"
    if (typeof(sDivisor)!="undefined") {
        sDiv=sDivisor;
    }
    if(aStr)
    {
        for(var i=0;i<aStr.length;i++)
        {
            if (s!="") {
                s=s + sDiv;
            }
            s=s+aStr[i]
        }
    }
    return s;
}	
	
function strRemove(sParentStr,sSubStr,sDivisor)
	{
	if(!sDivisor)
		sDivisor = ";";
		
	if(!sParentStr || !sSubStr)
	    return "";
	    
	var aParts = sParentStr.split(sDivisor);
	sParentStr = "";
	sSubStr = sSubStr.toLowerCase();
	for(var i=0; i<aParts.length; i++)
	    {
	    if(aParts[i].toLowerCase()!=sSubStr)
	        {
	        sParentStr = strConnect(sParentStr, aParts[i], sDivisor);
	        }
	    }
		
	return sParentStr;
	}
	
function SortByLength(strA,strB)
	{
	if(strA.length>strB.length)
		return 1;
	if(strA.length<strB.length)
		return -1;
	if(strA.length=strB.length)
		return 0;
	}
	
function SortByValue(strA,strB)
	{
	if(strA>strB)
		return 1;
	if(strA<strB)
		return -1;
	if(strA=strB)
		return 0;
	}

function GetSpecialChar()
	{
	var aSpecialChar = new Array("(",")","/","\\",";",":",",","?","!","|","+","=","*","#","@","~","%","$","\"","'","{","}","[","]","&","^","<",">");
	return aSpecialChar;
	}

function CheckSpecialChar(sString,sExceptChar)
	{
	if(!sExceptChar)	//sExceptChar是例外不进行检查的字符
		sExceptChar = "";
	var aChar = GetSpecialChar();
	for(sc in aChar)
		if(sString.indexOf(aChar[sc])!=-1 && sExceptChar.indexOf(aChar[sc])==-1)
			return false;
	return true;
	}


function GetQueryString(sItemName,sQueryString)
	{
	if(!sQueryString)
		sQueryString = location.search;
		
	var reg = new RegExp("(^|\\?|&)"+ sItemName +"=([^&]*)(\\s|&|$)", "i"); 
    if (reg.test(sQueryString)) return RegExp.$2;
     return "";
	}
	
//function GetQueryStringValue(sQueryString,sItemName)
//	{
//	if(!sQueryString)
//		sQueryString = location.search;
//	return GetStringItemValue(sQueryString,sItemName,"&");
//	}

//以指定分隔符查找字串项目
function GetStringItemValue(sSrc,sItemName,sSpor)
    {
	if(sSrc.charAt(0)!=sSpor) sSrc=sSpor+sSrc;
	sItemName  = sSpor + sItemName + "=";

	var sValue = strRight(sSrc,sItemName);

	if(sValue.charAt(0)=="\"")
	    {
		iPos=sValue.indexOf("\""+sSpor,1);
		if(iPos>0) sValue=sValue.substring(1,iPos);
		else if(Instr(sValue,sSpor)) 
		    sValue = strLeft(sValue,sSpor);
	    }
	 else if(Instr(sValue,sSpor))
	    {
		sValue = strLeft(sValue,sSpor);
	    }
	return sValue;
    }

function IsEnter(sSrc)
	{
	return (sSrc=="\r" || sSrc=="\n" || sSrc=="\r\n");
	}
	
//功能: 获取字符串的长度(width)
//参数: iWordWidth=一个字节的象素宽度
function GetStringWidth(str, iWordWidth)
	{ 
	if(!iWordWidth)
		iWordWidth = 8;
		
	var iWidth = 0;
	for(var i = str.length-1; i >= 0; i--)	
		{
		if(str.charCodeAt( i ) > 255 ) 
			iWidth += 2*iWordWidth; 
		else 
			iWidth += iWordWidth;
		}
	return iWidth;
	}

//功能: 比较子字符串是否存在, 可指定是否区分大小写
function InstrEx(sStr, sFind, sDiv, bCaseinsensitive)
	{
	sStr  = sDiv + sStr + sDiv;
	sFind = sDiv + sFind + sDiv;
	
	if(bCaseinsensitive)
		{
		//大小写不敏感
		return Instr(sStr.toLowerCase(), sFind.toLowerCase());
		}
	else
		{
		//大小写敏感
		return Instr(sStr, sFind);
		}
	}

//功能: 给字符串的各个字之间插入空格
//参数: iSpaceCount要插入的空格的个数
function InsertWordSpace(sStr, iSpaceCount)
	{
	if(!sStr)
		return "";
	
	if(!iSpaceCount)
		{
		var sSpacing = "";
		}
	else
		{
		var sSpacing = "";
		for(var i=0; i<iSpaceCount; i++)
			{
			sSpacing += " ";
			}
		}		
	
	var sTemp = "";
	for(var i=0; i<sStr.length; i++)
		{
		if(i==0)
			sTemp += sStr.charAt(i);
		else
			sTemp += sSpacing + sStr.charAt(i);
		}
		
	return sTemp;
	}

//将各种常用日期分隔符转换成标准格式：
//yyyyXmXd h:mi:s
//其中X指传入的sDiv值
//sDiv：指出标准格式的日期分隔符，如果省略或为空，则为“-”
function FormatDateStr(sOld,sDiv)
{
	if(!sOld || sOld=="") return "";
	if(!sDiv || sDiv=="") sDiv="-";
	
	if(sDiv!="/"){
		if(sOld.indexOf("/")>=0) sOld=sOld.replace(/\//g,sDiv);
	}
	if(sDiv!="-"){
		if(sOld.indexOf("-")>=0) sOld=sOld.replace(/-/g,sDiv);
	}
	
	sOld=sOld.replace(/ZE8/ig," ").replace(/／/g,sDiv).replace(/－/g,sDiv).replace("年",sDiv).replace("月",sDiv).replace("日"," ").replace(/T/i," ");
	sOld=sOld.replace("时",":").replace("点",":").replace("分",":").replace("秒","");
	sOld=sOld.replace("上午"," ").replace(/AM/i," ").replace(/T/i," ");
	
	var bPm=false;
	if(sOld.indexOf("下午")>=0){
		sOld=sOld.replace("下午"," ");
		bPm=true;
	}else if(sOld.search(/PM/i)>=0){
		sOld=sOld.replace(/PM/i," ");
		bPm=true;
	}
	sOld=sOld.replace(/\t/g," ").trim();
	while (sOld.indexOf("  ")>=0){
		sOld=sOld.replace(/  /g," ");
	}
	var sTempTail,sTempHead;
	if(bPm){
		var ipos=sOld.indexOf(":");
		if(ipos>=0){
			sTempTail=sOld.substr(ipos);
			sTempHead=sOld.substr(0,ipos).rTrim();
		}else{
			sTempTail="";
			sTempHead=sOld;
		}
		ipos=sTempHead.lastIndexOf(" ")+1;
		if(ipos>0){
			sOld=sTempHead.substr(0,ipos);
			sTempHead=sTempHead.substr(ipos);
		}else{
			if(sTempHead.lastIndexOf(sDiv)>=0){
				sOld=sTempHead+" ";
				sTempHead="0";
			}else{
				sOld="";
			}
		}
		ipos=parseInt(sTempHead,10);
		if(isNaN(ipos)){
			ipos=12;
		}else{
			ipos+=12;
			if(ipos>=24) ipos-=12;
		}
		
		sOld=sOld+ipos+sTempTail;
	}
	
	sTempHead=sOld.charAt(sOld.length-1);
	if(sTempHead==sDiv) sOld+="01";
	else if(sTempHead==":") sOld+="00";
	return sOld;
}

//梁城 获取字符长度，中文按两个字符计算
function GetStrByteLength(sStr)
{
    var ilen = 0;
    for(i=0;i<sStr.length;i++)
    {
        if(sStr.charCodeAt(i)>256)
        {
            ilen += 2;
        }
        else
        {
            ilen++;
        }
    } 
    return ilen;
}


//功能: Xml特殊字符处理：<转化成&lt; &转化成&amp;
function XmlEncode( text )
	{    	
	return text.replace(/&/g, "&amp;").replace(/</g, "&lt;");
	}

function XmlDecode(text)
	{    	
	return text.replace(/&amp;/g, "&").replace(/&lt;/g, "<");
	}

	
///////////////////////////////////////////////////////////////////////////////////////////////////////////
//  功能：替换文档中的特殊字符 
///////////////////////////////////////////////////////////////////////////////////////////////////////////
function ReplaceSpecial(str) 
    {
	return str.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g,"&quot;");
    }
