
//描述数组
var aPlanMessage = new Array();
//0~100为系统问题描述
aPlanMessage[0] = "GetMessage函数的nIndex参数非法。";
aPlanMessage[1] = "GetMessage函数的nIndex参数越界。";
aPlanMessage[2] = "GetMessage函数的nIndex参数表示的描述不存在。";

//101以上为业务描述
//例子：GetMessage(101, ["您的年龄"]);
aPlanMessage[101] = "请正确录入%s。";
aPlanMessage[102] = "请正确录入%s。\n%s。";
aPlanMessage[103] = "请正确录入%s。\n%s。\n%s。";
aPlanMessage[111] = "请选择%s。";
aPlanMessage[112] = "请至少选择一项%s。";
aPlanMessage[121] = "请检查%s。\n%s各项百分比之和必须为100%。";
aPlanMessage[122] = "请检查%s。\n%s各项百分比之和不能超过100%。";

//201~208为录入金额的描述。如果定义域为[0, )，使用aPlanMessage[101]
//例子：GetMessage(205, ["月收入", 1000, 5000]);
aPlanMessage[201] = "请正确录入%s。\n该金额不能多于%s元。"; //[0, n]
aPlanMessage[202] = "请正确录入%s。\n该金额不能少于%s元。"; //[n, ),  n>0
aPlanMessage[203] = "请正确录入%s。\n该金额必须多于%s元。"; //(n, )
aPlanMessage[204] = "请正确录入%s。\n该金额必须少于%s元。"; //[0, n)
aPlanMessage[205] = "请正确录入%s。\n该金额不能少于%s元，并且不能多于%s元。"; //[m,n]
aPlanMessage[206] = "请正确录入%s。\n该金额必须多于%s元，并且不能多于%s元。"; //(m, n]
aPlanMessage[207] = "请正确录入%s。\n该金额不能少于%s元，并且必须少于%s元。"; //[m, n)
aPlanMessage[208] = "请正确录入%s。\n该金额必须多于%s元，并且必须少于%s元。";  //(m, n)

//211~218为预期年收益率的描述
//例子：GetMessage(215, ["房产", "-1000%", "1000%"]);
aPlanMessage[211] = "请正确录入%s的预期年收益率。\n预期年收益率不能高于%s。"; //(, n]
aPlanMessage[212] = "请正确录入%s的预期年收益率。\n预期年收益率不能低于%s。"; //[n, )
aPlanMessage[213] = "请正确录入%s的预期年收益率。\n预期年收益率必须高于%s。"; //(n, )
aPlanMessage[214] = "请正确录入%s的预期年收益率。\n预期年收益率必须低于%s。"; //(, n)
aPlanMessage[215] = "请正确录入%s的预期年收益率。\n预期年收益率不能低于%s，并且不能高于%s。"; //[m,n]
aPlanMessage[216] = "请正确录入%s的预期年收益率。\n预期年收益率必须高于%s，并且不能高于%s。"; //(m, n]
aPlanMessage[217] = "请正确录入%s的预期年收益率。\n预期年收益率不能低于%s，并且必须低于%s。"; //[m, n)
aPlanMessage[218] = "请正确录入%s的预期年收益率。\n预期年收益率必须高于%s，并且必须低于%s。";  //(m, n)

//221~228为年/月增长率的描述。后两个%s填写“年”或者“月”
//例子：GetMessage(225, ["月收入", "年", "年", "-1000%", "1000%"]);
aPlanMessage[221] = "请正确录入%s的%s增长率。\n%s增长率不能高于%s。"; //(, n]
aPlanMessage[222] = "请正确录入%s的%s增长率。\n%s增长率不能低于%s。"; //[n, )
aPlanMessage[223] = "请正确录入%s的%s增长率。\n%s增长率必须高于%s。"; //(n, )
aPlanMessage[224] = "请正确录入%s的%s增长率。\n%s增长率必须低于%s。"; //(, n)
aPlanMessage[225] = "请正确录入%s的%s增长率。\n%s增长率不能低于%s，并且不能高于%s。"; //[m,n]
aPlanMessage[226] = "请正确录入%s的%s增长率。\n%s增长率必须高于%s，并且不能高于%s。"; //(m, n]
aPlanMessage[227] = "请正确录入%s的%s增长率。\n%s增长率不能低于%s，并且必须低于%s。"; //[m, n)
aPlanMessage[228] = "请正确录入%s的%s增长率。\n%s增长率必须高于%s，并且必须低于%s。";  //(m, n)

//231~238为期限的描述。最后一个%s填写“年”、“季度”、“月”、“周”、“天”
//如果定义域为[0, )，使用aPlanMessage[101]
//例子：GetMessage(231, ["公积金贷款年限", "公积金贷款年限", 30, "年"]);
aPlanMessage[231] = "请正确录入%s。\n%s不能超过%s%s。"; //[0, n]
aPlanMessage[232] = "请正确录入%s。\n%s不能少于%s%s。"; //[n, ),  n>0
aPlanMessage[233] = "请正确录入%s。\n%s必须超过%s%s。"; //(n, )
aPlanMessage[234] = "请正确录入%s。\n%s必须少于%s%s。"; //[0, n)
aPlanMessage[235] = "请正确录入%s。\n%s不能少于%s%s，并且不能超过%s%s。"; //[m,n]
aPlanMessage[236] = "请正确录入%s。\n%s必须超过%s%s，并且不能超过%s%s。"; //(m, n]
aPlanMessage[237] = "请正确录入%s。\n%s不能少于%s%s，并且必须少于%s%s。"; //[m, n)
aPlanMessage[238] = "请正确录入%s。\n%s必须超过%s%s，并且必须少于%s%s。";  //(m, n)

//241~248为普通数字的描述
//例子：GetMessage(245, ["开放式基金投资比例", "0%", "100%"]);
aPlanMessage[241] = "请正确录入%s。\n该数字不能大于%s。"; //(, n]
aPlanMessage[242] = "请正确录入%s。\n该数字不能小于%s。"; //[n, )
aPlanMessage[243] = "请正确录入%s。\n该数字必须大于%s。"; //(n, )
aPlanMessage[244] = "请正确录入%s。\n该数字必须小于%s。"; //(, n)
aPlanMessage[245] = "请正确录入%s。\n该数字不能小于%s，并且不能大于%s。"; //[m,n]
aPlanMessage[246] = "请正确录入%s。\n该数字必须大于%s，并且不能大于%s。"; //(m, n]
aPlanMessage[247] = "请正确录入%s。\n该数字不能小于%s，并且必须小于%s。"; //[m, n)
aPlanMessage[248] = "请正确录入%s。\n该数字必须大于%s，并且必须小于%s。";  //(m, n)

//251~258为普通数字的描述
//例子：GetMessage(255, ["开放式基金投资比例", "为浮点数", "0%", "100%"]);
aPlanMessage[251] = "请正确录入%s。\n该数字%s，不能大于%s。"; //(, n]
aPlanMessage[252] = "请正确录入%s。\n该数字%s，不能小于%s。"; //[n, )
aPlanMessage[253] = "请正确录入%s。\n该数字%s，必须大于%s。"; //(n, )
aPlanMessage[254] = "请正确录入%s。\n该数字%s，必须小于%s。"; //(, n)
aPlanMessage[255] = "请正确录入%s。\n该数字%s，不能小于%s，并且不能大于%s。"; //[m,n]
aPlanMessage[256] = "请正确录入%s。\n该数字%s，必须大于%s，并且不能大于%s。"; //(m, n]
aPlanMessage[257] = "请正确录入%s。\n该数字%s，不能小于%s，并且必须小于%s。"; //[m, n)
aPlanMessage[288] = "请正确录入%s。\n该数字%s，必须大于%s，并且必须小于%s。";  //(m, n)

//获取描述内容
//nIndex：描述数组的Index
//aReplace：替换项数组
//例子：
//GetMessage(0);  //不需要进行格式化
//GetMessage(0, null); //不需要进行格式化
//GetMessage(201, ["月收入", 2000]);  //描述数组项中如果有%s，表示需要进行格式化时，传入一个数组
function GetMessage(nIndex, aReplace)
{
	if (nIndex.toString().match(/^\d+$/g)==null)
		//不是整数
		return aPlanMessage[0];
	
	var nMessage = new Number(nIndex);
	if (nMessage>=aPlanMessage.length || nMessage<0)
		//越界
		return aPlanMessage[1];
	
	if (aPlanMessage[nMessage]==undefined)
		//描述项不存在
		return aPlanMessage[2];

	var sText = aPlanMessage[nMessage];
	if (aReplace!=null)
	{
		//特殊处理：
		switch(nMessage)
		{
			case 202:
			case 204:
				if (aReplace[1]!=undefined)
					if (aReplace[1]<=0)
						nIndex = 101;
				break;
			case 232:
			case 234:
				if (aReplace[2]!=undefined)
					if (aReplace[2]<=0)
						nIndex = 101;
		}
		
		var n = aReplace.length;
		for (var i=0; i<n; i++)
		{
			var reg = new RegExp("%s", "im");
			sText = sText.replace(reg, aReplace[i]);
		}
	}
	return sText;
}

//获取简单描述
//等价于GetMessage(101, [sReplace])
function GetSimpleMessage(sReplace)
{
	var aReplace = new Array();
	aReplace[0] = sReplace;
	return GetMessage(101, aReplace);
}
