//////////////////////////////////////////////////
//名称:String.trim()
//类型:Public
//说明:字符串左右过滤空格.
//示例:
// " XX ".trim() -> "XX";
//////////////////////////////////////////////////

String.prototype.trim = function()
{
//	return this.replace(/(^\s*)|(\s*$)/g,"");
	return this.replace(/(^[\s|　]*)|([\s|　]*$)/g,"");
}

//////////////////////////////////////////////////
//名称:String.leftTrim(string)
//类型:Public
//说明:字符串左边过滤指定字符.
//示例:
// "ABCD".leftTrim(AB) -> "CD";
//////////////////////////////////////////////////
String.prototype.leftTrim = function(strReplace)
{
	var strThis = this;
	if(strReplace != null)
	{
		while(true)
		{
 			var iP = strReplace.length;
			var iT = strThis.length;
			if(iP <= iT)
			{
				var temp = strThis.substring(0, iP);
				if( strReplace == temp)
				{
					strThis = strThis.substring(iP, iT);
				}
				else
				{
					break;
				}
			}
			else
			{
				break;
			}
		}
	}
	return strThis;
}

//////////////////////////////////////////////////
//名称:String.rightTrim(string)
//类型:Public
//说明:字符串右边过滤指定字符.
//示例:
// "ABCD".rightTrim(CD) -> "AB";
//////////////////////////////////////////////////
String.prototype.rightTrim = function(strReplace)
{
	var strThis = this;
	if(strReplace != null)
	{
		while(true)
		{
 			var iP = strReplace.length;
			var iT = strThis.length;
			if(iP <= iT)
			{
				var temp = strThis.substring(iT - iP, iT);
				if( strReplace == temp)
				{
					strThis = strThis.substring(0, iT - iP);
				}
				else
				{
					break;
				}
			}
			else
			{
				break;
			}
		}
	}
	return strThis;
} 

//////////////////////////////////////////////////
//名称:getByteLength()
//类型:Public
//参数:输入
//     输出		字符串的字节长度
//说明:字节数
//示例:
//"你好so".getByteLength()
//////////////////////////////////////////////////
String.prototype.getByteLength = function()
{
	var intByte = 0;
	var intTemp = 0;
	for(var i = 0; i < this.length; i++)
	{
		intTemp = this.charCodeAt(i);
		if(intTemp < 0)
		{
			intTemp += 65535;
		}
		if((intTemp > 255) || (intTemp == 183))
		{
			intByte += 2;
		}
		else
		{
			intByte += 1;
		}
	}
	return intByte;
}

String.prototype.replaceAll = function(oldString, newString)
{
	if(oldString == null || oldString == "") return this;
	if(newString == null ) return this;

	var output = new String();

	var lengthOfsource = this.length;//源字符串长度
	var lengthOfold = oldString.length;//老字符串长度

	var posStart = 0;//开始搜索位置
	var pos;//搜索到的老字符串的位置

	//source.indexOf(oldString,posStart)检索某子串在字符串postStart以后第一次出现的位置,如果未找到就返回一个-1。
	while((pos = this.indexOf(oldString,posStart)) >= 0){//得到字符串的位置(eg:如果有<br>就执行，没有就跳出，不要处理。)

		//将以posStart起始以pos-1结束之间的内容拷贝到另一个字符串中。因为posStar从0开始的。
		output = output.concat(this.substring(posStart,pos));//append方法将文本添加到当前StringBuffer对象内容的结尾。
		output = output.concat(newString);//替换成新字符串

		posStart = pos + lengthOfold;//位置也变为找到了之后的位置,pos为得到第一次出现字符的位置，lengthold为字符的长度

	}

	if(posStart < lengthOfsource){
		//source.substring(posStart)以lengthOfsource开始的字符串拷贝到列一个字符串中
	   output = output.concat(this.substring(posStart));
	}
	//这个方法将其内容转换成一个可以被用于输出的字符串对象。它允许操作对应的文本用于输出或数据存储。
	return output;
}
   
String.prototype.toHtml = function()
{
	var s = this;
	if(s == null){
		s = "";
		return s;
	}
	s = s.replaceAll("&","&amp;");
	s = s.replaceAll("<","&lt;");
	s = s.replaceAll(">","&gt;");
	s = s.replaceAll("\t","    ");
	s = s.replaceAll("\r\n","\n");
	s = s.replaceAll("\n","<br>");
	s = s.replaceAll("  "," &nbsp;");
	s = s.replaceAll("'","&#39;");
	s = s.replaceAll("\\","&#92;");
	return s;
}

String.prototype.isCoverChar = function(expression)
{
	for(var i = 0; i < expression.length; i++)
	{
		if(this.indexOf(expression.substr(i,1)) != -1)
		{
			return true;
		}
	}
	return false;
}

String.prototype.isCoverRegExp = function(RegExp)
{
	return RegExp.test(this);
}

String.prototype.isMatchRegExp = function(RegExp)
{
	var tempMatch = this.match(RegExp);
	if(tempMatch != null)
	{
		if(this == tempMatch[0])
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else
	{
		return false;
	}
}

String.prototype.isNull = function(defaultValue)
{
	if((this == null) || (this.trim().length == 0))
	{
		return defaultValue;
	}
	else
	{
		return this;
	}
}

String.prototype.toBool = function()
{
	try
	{
		return vbCBool(this);
	}
	catch(e)
	{
		return false;
	}
}

String.prototype.toInt = function(defaultValue,radix)
{
	radix = (typeof(radix) == "undefined")?10:radix;
	var tempInt = 0;
	try
	{
		tempInt = parseInt(this,radix);
		if(isNaN(tempInt) == true)
		{
			return defaultValue;
		}
		else
		{
			if(tempInt == this)
			{
				return tempInt;
			}
			else
			{
				return defaultValue;
			}
		}
	}
	catch(e)
	{
		return defaultValue;
	}
}

String.prototype.toFloat = function(defaultValue)
{
	var tempFloat = 0;
	try
	{
		tempFloat = parseFloat(this);
		if(isNaN(tempFloat) == true)
		{
			return defaultValue;
		}
		else
		{
			if(tempFloat == this)
			{
				return tempFloat;
			}
			else
			{
				return defaultValue;
			}
		}
	}
	catch(e)
	{
		return defaultValue;
	}
}

String.prototype.toRegExp = function()
{
	return new RegExp(this);
}

String.prototype.toObject = function(arrayName)
{
	var tempObject = null;
	try
	{
		eval("tempObject=" + this);
		if(typeof(tempObject) == "object")
		{
			return tempObject;
		}
		else
		{
			return this.split(",").toObject(arrayName);
		}
	}
	catch(e)
	{
		return this.split(",").toObject(arrayName);
	}
}

String.prototype.FormatXmlString = function()
{
	var stringXml = this.replace(/\&/g,"&amp;");
	stringXml = stringXml.replace(/\"/g,"&quot;");
	stringXml = stringXml.replace(/\'/g,"&apos;");
	stringXml = stringXml.replace(/\</g,"&lt;");
	stringXml = stringXml.replace(/\>/g,"&gt;");
	return stringXml;
}

Array.prototype.toObject = function(arrayName)
{
	if(typeof(arrayName) == "object")
	{
		try
		{
			var tempObject = new Object();
			for(var i = 0; i < arrayName.length; i++)
			{
				tempObject[arrayName[i]] = this[i];
			}
			return tempObject;
		}
		catch(e)
		{
			return null;
		}
	}
	else
	{
		return null;
	}
}

/****************************************************
名称:isInteger(strTemp,minTemp,maxTemp)
作者:刘晖
类型:Public
参数:输入		strTemp		string		原字符串
				minTemp		int			范围最小值
				maxTemp		int			范围最大值
     输出		是否是在指定范围内的整数
说明:
****************************************************/

function isInteger(strTemp,minTemp,maxTemp)
{
	if(isFinite(strTemp) == false || isFinite(minTemp) == false || isFinite(maxTemp) == false)
	{
		return false;
	}
	else
	{
		if(strTemp.toString().indexOf(".") != -1 || minTemp.toString().indexOf(".") != -1 || maxTemp.toString().indexOf(".") != -1)
		{
			return false;
		}
		else
		{
			if(strTemp >= minTemp && strTemp <= maxTemp)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	}
}

//window.alert = function(messageTemp)
//{
//	return showDialog(messageTemp,"确定,1","/PM/Common/PM_Dialog/Images/notice2.gif",580,600,"提示");
//}

function setVChange()
{
	var tempObject = window.document.body.all;
	for(var i = 0; i < tempObject.length; i++)
	{
		if((typeof(tempObject[i].vMode) != "undefined") && (typeof(tempObject[i].vChange) != "undefined") && (tempObject[i].vChange == "true"))
		{
		/*
			var tempOnChange = "";
			if(tempObject[i].onchange != null)
			{
				tempOnChange = tempObject[i].onchange.toString();
				tempOnChange = tempOnChange.replace("function anonymous()\n{","");
				tempOnChange = tempOnChange.substr(0,tempOnChange.length - 1);
				tempOnChange = tempOnChange.replace(/this/g,"window.event.srcElement");
			}
			else
			{
				tempOnChange = ";";
			}
			tempObject[i].onchange = function()
			{
				window.execScript(tempOnChange,"javascript");
				window.execScript("LeadingMIS.UI.Validate.validateEventObject();","javascript");
			}
		*/
			LeadingMIS.UI.insertEventHandler(tempObject[i],"onchange","return LeadingMIS.UI.Validate.validateEventObject();");
		}
	}
}

function setLabelHideFocus()
{
	var obj = window.document.getElementsByTagName("LABEL");
	for(var i = 0; i < obj.length; i++)
	{
		obj[i].hideFocus = true;
	}
	obj = null;
}

function setInputHideFocus()
{
	var obj = window.document.getElementsByTagName("INPUT");
	for(var i = 0; i < obj.length; i++)
	{
		obj[i].hideFocus = true;
	}
	obj = null;
}
/****************************************************
名称:SetCookie(nameTemp,valueTemp)
作者:刘晖
类型:Public
参数:输入		nameTemp		string		名字
				valueTemp		string		值
说明:设置cookie中的值
****************************************************/
function SetCookie(nameTemp,valueTemp)
{
	var objDate = new Date();
	objDate.setTime(objDate.getTime() + 3 * 30 * 24 * 60 * 60 * 1000);
	window.document.cookie = nameTemp + "=" + escape(valueTemp) + ";path=/;expires=" + objDate.toGMTString();
	objDate = null;
}
/****************************************************
名称:GetCookie(nameTemp)
作者:刘晖
类型:Public
参数:输入		nameTemp		string		名字
说明:得到cookie中的值
****************************************************/
function GetCookie(nameTemp)
{
	if(window.document.cookie.length != 0)
	{
		var arrCookie = window.document.cookie.split(";");
		for(var i = 0;i < arrCookie.length;i++)
		{
			arrTemp = arrCookie[i].split("=");
			if(nameTemp.trim() == arrTemp[0].trim())
			{
				return (typeof(arrTemp[1].trim())=="undefined") ? "" : unescape(arrTemp[1].trim());
			}
		}
	}
	return "";
}
/****************************************************
名称:DelCookie(nameTemp)
作者:刘晖
类型:Public
参数:输入		nameTemp		string		名字
说明:删除cookie中的值
****************************************************/
function DelCookie(nameTemp)
{
	if(GetCookie(nameTemp).length != 0)
	{
		SetCookie(nameTemp,"");
	}
}

function CheckIsAspPage(strInput)
{
	var strUrl=new String();
	var bIsAspPage=false;
	strUrl=strInput;
	strUrl=strUrl.toLowerCase();
	if(strUrl.indexOf('.asp',1)>0)
	{
		if(strUrl.indexOf('.aspx',1)>0)
		{
			bIsAspPage=false;
		}
		else
		{
			bIsAspPage=true;
		}
	}
	else
	{
		bIsAspPage=false;
	}
	return bIsAspPage;
}

//设置有value属性的控件值
function setValueById(pObjID,pValue){
	var obj=document.getElementById(pObjID);
	try{
		obj.value=pValue;
	}catch(e){
		alert("控件："+pObjID+"　不存在，或没有value属性");
	}
}
//获取有value属性的控件值
function getValueById(pObjID){
	var obj=document.getElementById(pObjID);
	try{
		return obj.value;
	}catch(e){
		alert("控件："+pObjID+"　不存在，或没有value属性");
	}
}
//取得对象里的Html
function getInnerHtmlById(pObjID){
	var obj=document.getElementById(pObjID);
	try{
		return obj.innerHTML;
	}catch(e){
		alert("对象："+pObjID+"　不存在，或没有InnerHtml属性");
	}
}
//设置对象里的Html
function setInnerHtmlById(pObjID,pValue){
	var obj=document.getElementById(pObjID);
	try{
		obj.innerHTML=pValue;
	}catch(e){
		alert("对象："+pObjID+"　不存在，或没有innerHtml属性");
	}
}
//设置对象焦点
function setObjectFocus(objId)
{
	var obj=document.getElementById(objId);
	if(!obj){
		obj = document.all.item(objId, 0);
	}
	if(obj)
		obj.focus();
}
//显示对象
function setObjectShow(objId)
{
	var obj=document.getElementById(objId);
	if(!obj){
		obj = document.all.item(objId, 0);
	}
	if(obj)
		obj.style.display='block';
}
//隐藏对象
function setObjectHidden(objId)
{
	var obj=document.getElementById(objId);
	if(!obj){
		obj = document.all.item(objId, 0);
	}
	if(obj)
		obj.style.display='none';
}

//设置Select值
function setSelectValueById(objId,selectValue)
{
	var sObj=document.getElementById(objId);
	if(sObj){
		var ops=sObj.getElementsByTagName('option');
		for(var i=0;i<ops.length;i++)
		{
			if(ops[i].value==selectValue)
			{
				ops[i].selected=true;
				return;
			}
		}
	}
}
//设置Select值
function setSelectValueByObj(obj,selectValue)
{
	try{
		if(obj){
			var sObj=obj;
			var ops=sObj.getElementsByTagName('option');
			for(var i=0;i<ops.length;i++)
			{
				if(ops[i].value==selectValue)
				{
					ops[i].selected=true;
					return;
				}
			}
		}
	}
	catch(e)
	{ }
}
//获取下拉菜单值
function getSelectValue(objId)
{
	var sObj=document.getElementById(objId);
	try
	{
		return sObj.options[sObj.selectedIndex].value;
	}
	catch(e)
	{
		return null
	}
}
//选择radio
function getRadioValue(objName)
{
	var radioObjs = document.getElementsByName(objName);
	try
	{
		for(var i=0;i<radioObjs.length;i++)
		{
			if(radioObjs[i].checked==true)
			{
				return radioObjs[i].value;
			}
		}
	}catch(e)
	{
		return null;
	}
}
//获取复选框是否选中
function getCheckValue(objId)
{
	var obj = document.getElementById(objId);
	if(!obj){
		obj = document.all.item(objId, 0);
	}
	if(obj)
		return obj.checked;
	else
		return null;
}


//-------------------------------------------------
//-- 说明： xmlhttp请求对象
//-------------------------------------------------
var g_XMLHttpLastClsID = null;
if(!window.XMLHttpRequest) {

	function getXmlHttpRequest(clsid) {
		var xmlHttp = null;
		try {
			xmlHttp = new ActiveXObject(clsid);
			g_XMLHttpLastClsID = clsid;
		} catch(ex) {}
		return xmlHttp;
	}
	
	window.XMLHttpRequest = function() {
		if(g_XMLHttpLastClsID != null) {
			return getXmlHttpRequest(g_XMLHttpLastClsID);
		}
	
		var xmlHttp = null;
		var clsids = [
 						"Msxml2.XMLHTTP.3.0",
						"Msxml2.XMLHTTP.2.6",
						"Msxml2.XMLHTTP",
						"Microsoft.XMLHTTP.1.0",
						"Microsoft.XMLHTTP.1",
						"Microsoft.XMLHTTP"
					];

		for(var i=0; i<clsids.length && xmlHttp == null; i++) {
			xmlHttp = getXmlHttpRequest(clsids[i]);
		}
		
		if(xmlHttp == null) {
			alert("XMLHttpRequest is not installed");
		}
 		return xmlHttp;
	}
}

//-------------------------------------------------
//-- 说明：浏览器DOM对象
//-------------------------------------------------
var g_XMLDOMDocumentLastClsID = null;
if(!window.XMLDOMDocument) {

	function getXmlDOMDocument(clsid) {
		var xmlDoc = null;
		try {
			xmlDoc = new ActiveXObject(clsid);
			g_XMLDOMDocumentLastClsID = clsid;
		} catch(ex) {}
		return xmlDoc;
	}
	
	window.XMLDOMDocument = function() {
		if(g_XMLDOMDocumentLastClsID != null) {
			return getXmlDOMDocument(g_XMLDOMDocumentLastClsID);
		}
	
		var xmlDoc = null;
		var clsids = [
 						"MSXML2.DOMDocument.3.0",
 						"MSXML2.DOMDocument",
						"Microsoft.XmlDom"
					 ];

		for(var i=0; i<clsids.length && xmlDoc == null; i++) {
			xmlDoc = getXmlDOMDocument(clsids[i]);
		}
		
		if(xmlDoc == null) {
			alert("XML is not installed");
		}

		return xmlDoc;
	}
}

//-------------------------------------------------
//-- 说明：增加命名空间
//-------------------------------------------------
if(!window.addNamespace) {
	window.addNamespace = function(ns) {
		var nsParts = ns.split(".");
		var root = window;

		for(var i=0; i<nsParts.length; i++) {
			if(typeof root[nsParts[i]] == "undefined")
				root[nsParts[i]] = {};
			root = root[nsParts[i]];
		}
	}
}


