/*==================================================================
说明：公共函数
作者：曹文建

==================================================================*/

//==================================================================
//TextLength(SourObj,StrNum):限制文本框输入长度（一个汉字做两个字符处理）
//==================================================================
function TextLength(SourObj,StrNum)
{
	var StrLen = strlen(SourObj.value);
	if(StrLen > StrNum)
	{   
		if(event.keyCode<37 || event.keyCode>40)
		{
			if(event.keyCode!=8 && event.keyCode!=46)
			{
				var StrMsg,StrTmp;
				StrMsg = "输入长度不能超过"+ StrNum +"个字符";
				alert(StrMsg);
				SourObj.focus();
				return false;
			}
			else
			{
				return true;
			}
		}
		else
		{
			return true;
		}
	}
	else
	{
		return true;
	}
}

//==================================================================
//strlen(string):判断输入的字符串长度（一个汉字做两个字符处理）
//==================================================================
function strlen(str)
{
	var len;
	var i;
	len = 0;
	for (i=0;i<str.length;i++)
	{
		if (str.charCodeAt(i)>255) len+=2; else len++;
	}
	return len;
}
//==================================================================
//convertCurrency(currencyDigits):小写金额转大写金额
//==================================================================
function convertCurrency(currencyDigits)
{ 
// Constants: 
	var MAXIMUM_NUMBER = 99999999999.99; 
	// Predefine the radix characters and currency symbols for output: 
	var CN_ZERO = "零"; 
	var CN_ONE = "壹"; 
	var CN_TWO = "贰"; 
	var CN_THREE = "叁"; 
	var CN_FOUR = "肆"; 
	var CN_FIVE = "伍"; 
	var CN_SIX = "陆"; 
	var CN_SEVEN = "柒"; 
	var CN_EIGHT = "捌"; 
	var CN_NINE = "玖"; 
	var CN_TEN = "拾"; 
	var CN_HUNDRED = "百"; 
	var CN_THOUSAND = "千"; 
	var CN_TEN_THOUSAND = "万"; 
	var CN_HUNDRED_MILLION = "亿"; 
	var CN_SYMBOL = ""; 
	var CN_DOLLAR = "元"; 
	var CN_TEN_CENT = "角"; 
	var CN_CENT = "分"; 
	var CN_INTEGER = "整"; 
		
// Variables: 
	var integral;    // Represent integral part of digit number. 
	var decimal;    // Represent decimal part of digit number. 
	var outputCharacters;    // The output result. 
	var parts; 
	var digits, radices, bigRadices, decimals; 
	var zeroCount; 
	var i, p, d; 
	var quotient, modulus; 
		
// Validate input string: 
	currencyDigits = currencyDigits.toString(); 
	if (currencyDigits == "") 
	{ 
		alert("输入不能为空!"); 
		return ""; 
	} 
	if (currencyDigits.match(/[^,.\d]/) != null) 
	{ 
		alert("输入字字串中包含无效的字符!"); 
		return ""; 
	} 
	if ((currencyDigits).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) { 
		alert("不合法的数字格式!"); 
		return ""; 
	} 
		
// 规格数输入的小数点 
	currencyDigits = currencyDigits.replace(/,/g, "");    // 去掉“,”号分割符 
	currencyDigits = currencyDigits.replace(/^0+/, "");    // 去掉开始的0
	// 判断数字是否越界 
	if (Number(currencyDigits) > MAXIMUM_NUMBER) 
	{ 
		alert("转换的数据超出最大转换范围!"); 
		return ""; 
	} 
		
// 把当前校数转换为字符串的过程
	// Separate integral and decimal parts before processing coversion: 
	parts = currencyDigits.split("."); 
	if (parts.length > 1) 
	{ 
		integral = parts[0]; 
		decimal = parts[1]; 
		// Cut down redundant decimal digits that are after the second. 
		decimal = decimal.substr(0, 2); 
	} 
	else 
	{ 
		integral = parts[0]; 
		decimal = ""; 
	} 
	// Prepare the characters corresponding to the digits: 
	digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE); 
	radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND); 
	bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION); 
	decimals = new Array(CN_TEN_CENT, CN_CENT); 
	// Start processing: 
	outputCharacters = ""; 
	// Process integral part if it is larger than 0: 
	if (Number(integral) > 0) 
	{ 
		zeroCount = 0; 
		for (i = 0; i < integral.length; i++) 
		{ 
			p = integral.length - i - 1; 
			d = integral.substr(i, 1); 
			quotient = p / 4; 
			modulus = p % 4; 
			if (d == "0") 
			{ 
				zeroCount++; 
			} 
			else 
			{ 
				if (zeroCount > 0) 
				{ 
					outputCharacters += digits[0]; 
				} 
				zeroCount = 0; 
				outputCharacters += digits[Number(d)] + radices[modulus]; 
			} 
			if (modulus == 0 && zeroCount < 4) { 
				outputCharacters += bigRadices[quotient]; 
			} 
		} 
		outputCharacters += CN_DOLLAR; 
	} 
	// Process decimal part if there is: 
	if (decimal != "") 
	{ 
		for (i = 0; i < decimal.length; i++) 
		{ 
			d = decimal.substr(i, 1); 
			if (d != "0") 
			{ 
				outputCharacters += digits[Number(d)] + decimals[i]; 
			} 
		} 
	} 
	// Confirm and return the final output string: 
	if (outputCharacters == "") 
	{ 
		outputCharacters = CN_ZERO + CN_DOLLAR; 
	} 
	if (decimal == "") 
	{ 
		outputCharacters += CN_INTEGER; 
	} 
	outputCharacters = CN_SYMBOL + outputCharacters; 
	return outputCharacters; 
}

//==================================================================
//digToChar(sourObj,destObj):小写金额转大写金额
//==================================================================
function digToChar(sourObj,destObj)
{
	if (sourObj.value!="")
	{
		if (!(new RegExp(/^\d+$/).test(sourObj.value)))
		{
			alert('总金额应该是整数！');
			sourObj.focus();
			return;
		}
		else
		{
			destObj.value = convertCurrency(sourObj.value);
		}
	}
	else
	{
		destObj.value = ""
	}
}
//==================================================================
//verifyDate(textObj):判断文本框输入的内容是不是日期
//==================================================================
function verifyDate(textObj)
{
	var str=textObj.value;
	textObj.value = textObj.value.replace(/\s+/g,"");
	if(str.search(/^\d{4}-\d{1,2}-\d{1,2}$/) == 0)
	{
		var y = parseInt(str.split("-")[0]);
		var m = parseInt(str.split("-")[1]);
		var d = parseInt(str.split("-")[2]);
		switch(m)
		{
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				if(d>31)
				{
					return false;
				}
				else
				{
					return true;
				}
				break;
			case 2:
				if((y%4==0 && d>29) || ((y%4!=0 && d>28)))
				{
					return false;
				}
				else
				{
					return true;
				}
				break;
			case 4:
			case 6:
			case 9:
			case 11:
				if(d>30)
				{
					return false;
				}
				else
				{
					return true;
				}
				break;
			default:
				return false;
		}
	}
	else
	{
		return false;
	}
}
//==================================================================
//checkDate(obj):判断文本框输入的内容是不是日期
//==================================================================

function checkDate(obj)
{
	if (obj.value!="")
	{
		if (!verifyDate(obj))
		{
			alert('日期格式不正确');
			obj.focus();
		}
	}
}

//==================================================================
//Trim(string):去除前后空格
//==================================================================

function Trim(str)
{
    if(str.charAt(0) == " ")
	{
		str = str.slice(1);
		str = Trim(str); 
	}
	return str;
	//return RTrim(LTrim(str));
}
//==================================================================
//LTrim(string):去除左边的空格
//==================================================================
function LTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);
    if (whitespace.indexOf(s.charAt(0)) != -1)
    {
        var j=0, i = s.length;
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
        {
            j++;
        }
        s = s.substring(j, i);
   }
    return s;
}

//==================================================================
//RTrim(string):去除右边的空格
//==================================================================

function RTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);
    if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
    {
        var i = s.length - 1;
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
        {
            i--;
        }
        s = s.substring(0, i+1);
    }
    return s;
}

//==================================================================
//isEmpty(pObj,errMsg):判断是否是空
//==================================================================

function isEmpty(pObj,errMsg)
{
	var obj = eval(pObj);
	if( obj == null || Trim(obj.value) == "")
	{
		if (errMsg == null || errMsg =="")
		{
			alert("输入为空!");
		}
		else
		{
			alert(errMsg); 
		}
		obj.focus(); 
		return false;
	}
	return true;
}
//==================================================================
//isNumber(pObj,errMsg):判断是否是数字
//==================================================================
function isNumber(pObj,errMsg)
{
	var obj = eval(pObj);
	strRef = "1234567890";
	if(!isEmpty(pObj,errMsg))
	{
		return false;	
	}
	for (i=0;i<obj.value.length;i++) 
	{
		tempChar= obj.value.substring(i,i+1);
		if (strRef.indexOf(tempChar,0)==-1) 
		{
			if (errMsg == null || errMsg =="")
			{
				alert("数据不符合要求,请检查");
			}
			else
			{
				alert(errMsg);
			}
			if(obj.type=="text") 
			{
				obj.focus(); 
			}
			return false; 
		}
	}
	return true;
}

//==================================================================
//isNegative(pObj,errMsg):判断是否是数字,数字可以为负数
//==================================================================
function isNegative(pObj,errMsg)
{
	var obj = eval(pObj);
	strRef = "1234567890-";
	if(!isEmpty(pObj,errMsg))
	{
		return false;
	}
	for (i=0;i<obj.value.length;i++) 
	{
		tempChar= obj.value.substring(i,i+1);
		if (strRef.indexOf(tempChar,0)==-1) 
		{
			if (errMsg == null || errMsg =="")
			{
				alert("数据不符合要求,请检查");	
			}
			else
			{
				alert(errMsg);
			}
			if(obj.type=="text") 
			{
				obj.focus(); 
			}
			return false; 
		}
		else
		{
			if(i>0)
			{
				if(obj.value.substring(i,i+1)=="-")
				{
					if (errMsg == null || errMsg =="")
					{
						alert("数据不符合要求,请检查");
					}
					else
					{
						alert(errMsg);   
					}
					if(obj.type=="text") 
					{
						obj.focus();	
					}
					return false; 
				}
			}
		}
	}
	return true;
}

//==================================================================
//isMoney(pObj,errMsg):判断是否是钱的形式
//==================================================================
function isMoney(pObj,errMsg)
{
	var obj = eval(pObj);
	strRef = "1234567890.";
	if(!isEmpty(pObj,errMsg))
	{
		return false;
	}
	for (i=0;i<obj.value.length;i++) 
	{
		tempChar= obj.value.substring(i,i+1);
		if (strRef.indexOf(tempChar,0)==-1) 
		{
			if (errMsg == null || errMsg =="")
			{
				alert("数据不符合要求,请检查");
			}
			else
			{
				alert(errMsg);   
			}
			if(obj.type=="text") 
			{
				obj.focus(); 
			}
			return false; 
		}
		else
		{
			tempLen=obj.value.indexOf(".");
			if(tempLen!=-1)
			{
				strLen=obj.value.substring(tempLen+1,obj.value.length);
				if(strLen.length>2)
				{
					if (errMsg == null || errMsg =="")
					{
						alert("数据不符合要求,请检查");
					}
					else
					{
						alert(errMsg);   
					}
					if(obj.type=="text") 
					{
						obj.focus();	
					}
					return false; 
				}
			}
		}
	}
	return true;
}
//==================================================================
//isLeapYear(year) :判断是不是运年
//==================================================================
function isLeapYear(year) 
{ 
	if((year%4==0&&year%100!=0)||(year%400==0)) 
	{ 
		return true; 
	}  
	return false; 
} 

//==================================================================
//isDate(checktext) :判断时间是否正确
//==================================================================
function isDate(checktext)
{
	var datetime;
	var year,month,day;
	var gone,gtwo;
	if(Trim(checktext.value)!="")
	{
		datetime=Trim(checktext.value);
		if(datetime.length==10)
		{
			year=datetime.substring(0,4);
			if(isNaN(year)==true)
			{
				alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)！");
				checktext.focus();
				return false;
			}
			gone=datetime.substring(4,5);
			month=datetime.substring(5,7);
			if(isNaN(month)==true)
			{
				alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)！");
				checktext.focus();
				return false;
			}
			gtwo=datetime.substring(7,8);
			day=datetime.substring(8,10);
			if(isNaN(day)==true)
			{
				alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)！");
				checktext.focus();
				return false;
			}
			if((gone=="-")&&(gtwo=="-"))
			{
				if(month<1||month>12) 
				{ 
					alert("月份必须在01和12之间!"); 
					checktext.focus();
					return false; 
				} 
				if(day<1||day>31)
				{ 
					alert("日期必须在01和31之间!");
					checktext.focus(); 
					return false; 
				}
				else
				{
					if(month==2)
					{  
						if(isLeapYear(year)&&day>29)
						{ 
							alert("二月份日期必须在01到29之间!"); 
							checktext.focus();
							return false; 
						}       
						if(!isLeapYear(year)&&day>28)
						{ 
							alert("二月份日期必须在01到28之间!");
							checktext.focus(); 
							return false; 
						} 
					} 
					if((month==4||month==6||month==9||month==11)&&(day>30))
					{ 
						alert("在四，六，九，十一月份 \n日期必须在01到30之间!");
						checktext.focus(); 
						return false; 
					} 
				}
			}
			else
			{
				alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)");
				checktext.focus();
				return false;
			}
		}
		else
		{
			alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)");
			checktext.focus();
			return false;
		}
	}
	else
	{
		return true;
	}
	return true;
}



