/*-------------------------------------------------------------------------------------------------------------
方法名称：getValue(pObject)
方法作用：获取一个HTML对象的值(INPUT TEXTAREA SELECT)
方法参数：要获取的对象
返回值：  返回该对象的值

modify by abnerchai
---------------------------------------------------------------------------------------------------------------*/
	function getValue(pObject){
		var objValue = "";
		switch((pObject.tagName).toUpperCase()){
			case "INPUT":
			case "TEXTAREA":
					objValue = pObject.value;
					break;	
			case "SELECT":
					objValue = pObject.options[pObject.selectedIndex].value;
		}
		return objValue;
	}
		
/*------------------------------------------------------------------------------------------------
方法名：
		trim():					去掉字符串左右的空格
		ltrim():				去掉字符串左边的空格
		rtrim():				去掉字符串右边的空格
		getBytesLength(str):	得到一个字符串的字节数，一个中文算两字节
		@author:彭海蛟
		
功能描述：	这三个函数与VB中的trim()、ltrim()、rtrim()相似，
			在Javascript中可直接对字符串按对象进行操作

用法举例：
			var stringTest = "  测试字符串第一行\n  测试字符串第二行\n  \n\n       ";
			var result = stringTest.ltrim();//运行结果result="测试字符串第一行\n  测试字符串第二行\n  \n\n       "
			result = stringTest.rtrim();//运行结果result="  测试字符串第一行\n  测试字符串第二行"
			result = stringTest.trim();//运行结果result="测试字符串第一行\n  测试字符串第二行"
--------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------------
方法名：trim()

功能描述：去掉字符串两端的空白字符

用法举例：

		var str="  待测字符串  ";
		str=str.trim();//则去掉字符串两端的空白字符
----------------------------------------------------------------------------------------------------*/
	function trim()
	{
		return this.toString().ltrim().rtrim();
	}
/*---------------------------------------------------------------------------------------------------
方法名：ltrim()

功能描述：去掉字符串左端的空白字符

用法举例：
	var str="  待测字符串  ";
	str=str.ltrim();//则去掉字符串左端的空白字符
------------------------------------------------------------------------------------------------------*/
	function ltrim()
	{
		return this.replace(/^\s*/gi,"");
	}

/*-----------------------------------------------------------------------------------------------------
方法名：rtrim()

功能描述：去掉字符串右端的空白字符

用法举例：

	var str="  待测字符串  ";
	str=str.rtrim();//则去掉字符串右端的空白字符
-------------------------------------------------------------------------------------------------------*/
	function rtrim()
	{
		return this.replace(/\s*$/gi,"");
	}
		//赋予JavaSrcipt的String对象拥有此方法
		
	String.prototype.trim=trim;
	String.prototype.ltrim=ltrim;
	String.prototype.rtrim=rtrim;
/*-End String Function----------------------------------------------------------------------------------*/

/*-------------------------------------------------------------------------------------------------------
方法名：getBytesLength(str)

功能描述：得到一个字符串的字节数，一个中文算两字节

参数说明：
		str:待测字符串
---------------------------------------------------------------------------------------------------------*/
	function getBytesLength(str)
	{
		var re=/[\x00-\xff]/g;
		var len=str.length;
		var array=str.match(re);
		if (array==null)
		{
			array="";
		}
		return len*2 - array.length;
	}
/*-------------------------------------------------------------------------------------------------------
方法名：CHlength()

功能描述：
		获得一个中文字符串的字节数，一个中文算两字节
		
用法举例：

	var str="待测字符串";
	str=str.CHlength();//获得该字串的字节数
---------------------------------------------------------------------------------------------------------*/
	function CHlength()
	{
		return getBytesLength(this.toString());
	}
		//使String对象拥有此方法
		String.prototype.CHlength=CHlength;	
/*---end ------------------------------------------------------------------------------------------------*/	

/*-------------------------------------------------------------------------
格式化日期，将YYYY-MM-DD HH:MM:SS,或 YYYY-MM-DD HH:MM 或 YYYY-MM-DD格式的日期
格式化成JavaScript支持的日期形式即：MM/DD/YYYY HH:MM:SS格式

调用名：_formatDate(pDate)
形参：
	pDate 格式：YYYY-MM-DD HH:MM:SS,或 YYYY-MM-DD HH:MM 或 YYYY-MM-DD
返回：
	返回格式化后的日期
说明：供外部调用

-------------------------------------------------------------------------*/
	function formatDateTo(pDate) //YYYY-MM-DD -> YYYY/MM/DD
	{
	return pDate.replace('-','/');
	/*
		var y=0,m=1,d=2;
		var tDate = _trim(pDate).split(" ");
		var sDate = tDate[0];
		var sTime = tDate[1];
		var tDate =sDate.split("-");
		if(_trim(pDate).length<=10)return tDate[y]+"/" + tDate[m] +"/"+tDate[d];
		if(_trim(pDate).length<=19)return tDate[y]+"/" + tDate[m] +"/"+tDate[d]+sTime;
		return null;
		*/
	}

/*-------------------------------------------------------------------------------
方法功能：
         补全日期功能，如将2004-09-05 补全为：2004-09-05 00:00:00或2004-09-05 23:59:59
方法名：fillDateTime(pDate,flag)
参数说明：
       pDate，需要被被全的时间串，格式如：2004-09-05
       flag,被全标识：
                    1为补全为：2004-09-05 00:00:00 ；
						yyyy-mm-dd -> yyyy-mm-dd 00:00:00
						yyyy-mm-dd hh -> yyyy-mm-dd hh:00:00
						yyyy-mm-dd hh:mm ->yyyy-mm-dd hh:mm:00
						yyyy-mm-dd hh:mm:ss ->yyyy-mm-dd hh:mm:ss      
                    2为补全为：2004-09-05 23:59:59格式；
						yyyy-mm-dd -> yyyy-mm-dd 23:59:59
						yyyy-mm-dd hh -> yyyy-mm-dd hh:59:59
						yyyy-mm-dd hh:mm ->yyyy-mm-dd hh:mm:59
						yyyy-mm-dd hh:mm:ss ->yyyy-mm-dd hh:mm:ss               
                    其它的字串自动加补到pDate后面。
                    如：fillDateTime('2004-09-03',"17:30:30")将返回2004-09-03 17:30:30
返回值：
       返回补全后的时间串。
--------------------------------------------------------------------------------*/
	function fillDateTime(pDate,flag){

		
		var pDates = pDate.split(" ");
		var dates = pDates[0].split("-");
		
		var year = dates[0];
		var month = dates[1];
		var day = dates[2];

		var hour="00";
		var minute="00";
		var second="00";
		
		if(pDates.length==2){
			var times = pDates[1].split(":");
			if(times.length==1){
				hour = times[0];
			}
			if(times.length==2){
				hour = times[0];
				minute = times[1];
			}
			if(times.length==3){
				hour = times[0];
				minute = times[1];
				second = times[2];
			}
		}
		
		
		if(flag=='1'){
			return year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second;
		}
		else if(flag=='2') {
			if(pDates.length==1){
				return year+"-"+month+"-"+day+" "+"23:59:59";
			}
			var times = pDates[1].split(":");
			if(times.length==1){
				return year+"-"+month+"-"+day+" "+hour+":59:59";
			}
			if(times.length==2){
				return year+"-"+month+"-"+day+" "+hour+":"+minute+":59";
			}
			if(times.length==3){
				return year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second;
			}
		}
		else return year+"-"+month+"-"+day + " "+flag;
	}

/*-------------------------------------------------------------------------------------------------------------
@方法名称：getTiptopWindow(win)
@方法作用：返回最顶层的窗口对象
@方法参数：可选，如果给出参数，将返回参数指定的窗口的最顶层窗口，如果不给参数，将返回当前窗口的最顶层窗口
@返回值：  返回最顶层窗口对象

@author:  wen
---------------------------------------------------------------------------------------------------------------*/
	function getTiptopWindow(win){
		var cwindow = null;
		if(win){
			cwindow = win;
		}else{
			cwindow = window
		}
		while(true){
			var pwindow = cwindow.parent;
			if(cwindow == pwindow){
				break;
			}
			cwindow = pwindow;
		}
		return cwindow;
	}
	
	
/*------------------------------------------------------------------------
比较日期，返回日期之间(pDate2-pDate1)的差值，以毫秒为单位
调用名：compareDate(pDate1,pDate2)
形参：
	pDate 格式：YYYY-MM-DD HH:MM:SS,或 YYYY-MM-DD HH:MM 或 YYYY-MM-DD
返回：
	返回日期之间(pDate2-pDate1)的差值，以毫秒为单位
说明：
-------------------------------------------------------------------------*/
	function compareDate(pDate1,pDate2)
	{
		return Date.parse(_formatDate(pDate2))-Date.parse(_formatDate(pDate1));
	}
	
/*------------------------------------------------------------------------
将一格式化数值串转换为数值字符串(123,456,789.12345 -> 123456789.12345)
调用名： unFormatNumber(formatedNumber)
形参：
	pNum1 = 格式化数值(123,456,789.12345)
返回：
	返回 数值 (123456789.12345)

-------------------------------------------------------------------------*/
	function unFormatNumber(formatedNumber)
	{	
		var numbers = formatedNumber.split(",");
		var numbersLength = numbers.length;
		var number = "";
		for(var i=0; i<numbersLength; i++){
			number += numbers[i];
		}
		if(number.length==0)number = "0.0";
		return number;
	}
/*-------------------------------------------------------------------------
数值比较
调用名：compareNumber(pNum1,pNum2)
形参：
	pNum1 = 数值
	pNum2 = 数值 
返回：
	返回 pNum2 - pNum1 的差值

-------------------------------------------------------------------------*/
	function compareNumber(pNum1,pNum2)
	{
		return parseFloat(pNum2)-parseFloat(pNum1);
	}


