//Title  : Useful Javascript functions
//Desp   :
//Author : 周斌
//Date   : 2003-4-3

function isEmpty(str)
{
	return ((str == null) || (str.length == 0));
}

function isNull(str)
{
	var flag = false;
	for (i = 0; i < str.length; i++)
	{
		if (str.charAt(i) != ' ')
			flag = true;
	}
	return !flag;
}

function haveChinese(str)
{
	for (i = 0; i < str.length; i++)
		if (str.charCodeAt(i) > 127)
			return true;
	return false;
}

function isChinese(str)
{
	var flag = false;
	for (i = 0; i < str.length; i++)
	{
		flag = str.charCodeAt(i)>127
		if (!flag)	return flag;
	}
	return flag;
}

function ansiLength(str)
{
	//var len = 0;
	//for (i = 0; i < str.length; i++)
	//{
	//	if (str.charCodeAt(i) > 127)
	//		len = len + 2;
	//	else
	//		len++;
	//}
	//return len;
	return str.length;
}

function sl_alert(errinfo, url)
{
	alert("系统提示：　　　　\n\n" + errinfo + "\n\n");
	if (url != null)
		location.replace(url);
}

function sl_confirm(confirm_info, vbVersion)
{
	if (vbVersion == null)
		return confirm("系统确认：\n\n您确认要" + confirm_info + "吗？");
	else
		return sl_vb_comfirm("系统确认：\n\n您确认要" + confirm_info + "吗？");
}

function sl_check(field, name, maxlength, minlength)
{
	if(minlength != 0 && field.value == "")
	{
		sl_alert(name + "不能为空，请您填写" + name + "！");
		field.focus();
		return false;
	}
	if(!no_deviant_char(field,name)) return false;

	if(minlength != 0 && ansiLength(field.value) < minlength)
	{
		if(minlength == maxlength)
			sl_alert(name + "的长度必须是" + minlength + "位，请您重新填写！");
		else
			sl_alert(name + "的长度至少需要" + minlength + "位以上，请您重新填写！");
		field.focus();
		return false;
	}
	if(maxlength != 0 && ansiLength(field.value) > maxlength)
	{
		sl_alert(name + "的长度不能超过" + maxlength + "个字符，请您重新填写！");
		field.focus();
		return false;
	}
	return true;
}

function sl_checkNum(field, name, maxlength, minlength)
{
	var i, str
	if (!sl_check(field, name, maxlength, minlength))
		return false;
	str = field.value;
	for (i = 0; i < str.length; i++)
	{
		if (str.charAt(i) != ',')
		{
			if (str.charCodeAt(i) < 48 || str.charCodeAt(i) > 57)
			{
				sl_alert(name + "必须是整数数字，请您重新填写！");
				field.focus();
				field.select();
				return false;
			}
		}
	}
	return true;
}

function sl_checkDecimal(field, name, intlen, pointlen, minlength)
{
	var pos1, pos2, ilen, plen;
	if(!sl_checkFloat(field, name, 1000, minlength))
		return false;
	if ((minlength == 0) && (field.value.length == 0))
		return true;
	pos1 = field.value.indexOf(".");
	pos2 = field.value.lastIndexOf(".");
	if ((pos1 >= 0) && ((pos2 > pos1) || (field.value.length < 3)))
	{
		sl_alert("数字格式无效，请您输入有效的"+ name +"！");
		field.focus();
		field.select();
		return false;
	}
	if ((pos1 == 0) || (pos1 == field.value.length - 1))
	{
		sl_alert("数字格式无效，请您输入有效的"+ name +"！");
		field.focus();
		field.select();
		return false;
	}
	if (pos1 == -1)
	{
		ilen = field.value.length;
		plen = 0;
	}
	else
	{
		ilen = pos1;
		plen = field.value.length - pos1 - 1;
	}
	if (ilen > intlen)
	{
		sl_alert("数字格式无效，整数位数不能超过" + intlen + "位，请您输入有效的"+ name +"！");
		field.focus();
		field.select();
		return false;
	}
	if (plen > pointlen)
	{
		sl_alert("数字格式无效，小数位数不能超过" + pointlen + "位，请您输入有效的"+ name +"！");
		field.focus();
		field.select();
		return false;
	}
	return true;
}

function sl_checkChoice(field, name)
{
	if (field.value == null 
		|| field.value == ""
		|| field.value == 0)
	{
		sl_alert("请选择" + name + "！");
		field.focus();
		return false;
	}
	return true;
}

function sl_checkRadio(field, name)
{
	var i;
	i=0;
	for ( i; i<field.length;i++)
	{
		if ( field[i].checked == true)
			return true;
	}
	sl_alert("请选择" + name + "！");
	field[0].focus();
	return false;
}

function sl_checkDate(field, name)
{

	if (!(field[0].value == '0' && field[1].value == '0' && field[2].value == '0') &&
		!(field[0].value != '0' && field[1].value != '0' && field[2].value != '0'))
	{
		sl_alert("请输入" + name + "的完整日期！");
		return false;
	}
	return true;
}

function sl_checkFloat(field, name, maxlength, minlength)
{
	var i, j, str;
	if (!sl_check(field, name, maxlength, minlength))
		return false;
	str = field.value;
	j = 0;
	if (str != "" && str.charAt(0) == '-')
		j = 1;
	for (i = j; i < str.length; i++)
	{
		if (str.charAt(i) != '.' && str.charAt(i) != ',')
		{
			if (str.charCodeAt(i) < 48 || str.charCodeAt(i) > 57)
			{
				sl_alert(name + "必须是数字，请您重新填写！");
				field.focus();
				field.select();
				return false;
			}
		}
	}
	return true;
}

function sl_parseFloat(value)
{
	var s = "";
	for (var i = 0; i < value.length; i++)
	{
		if (value.charAt(i) != ',')
			s = s + value.charAt(i)
	}
	if (s == "")
		return 0
	else
		return parseFloat(s);
}

function mOvr(src,clrOver) { if (!src.contains(event.fromElement)) { src.style.cursor = 'hand'; src.bgColor = clrOver; }}function mOut(src,clrIn) { if (!src.contains(event.toElement)) { src.style.cursor = 'default'; src.bgColor = clrIn; }}
function mClk(src) { if(event.srcElement.tagName=='TD'){src.children.tags('A')[0].click();} }

function popHelpWindow(HelpID, WinHeight)
{
	left = screen.width - 320
	if (WinHeight!=null)
		height = WinHeight
	else
		height = screen.height - 20
	return window.open("/includes/help.htm?help_id=" + HelpID,"","resizable=1,scrollbars=yes,status=no,toolbar=no,location=no,menu=no,width=316,height=" + height + ",left=" + left + ",top=0")
}

function popWindow(url)
{
	return window.open(url,"","resizable=0,scrollbars=yes,status=no,toolbar=no,location=no,menu=no,width=600,height=500,left=0,top=0")
}

function isValidDate(sDate)
{
	if(sDate.indexOf("0229")>0)
		return false;
	if(sDate.indexOf("0230")>0)
		return false;
	if(sDate.indexOf("0231")>0)
		return false;
	if(sDate.indexOf("0431")>0)
		return false;
	if(sDate.indexOf("0631")>0)
		return false;
	if(sDate.indexOf("0931")>0)
		return false;
	if(sDate.indexOf("1131")>0)
		return false;
	return true
}

function isValidDate(ssDate,prompt)
{
	var sDate, r;
	sDate = ssDate.value;

	r = (sDate == null);
	r = r || (sDate.length <= 0);
	r = r || (sDate.indexOf("0229") > 0);
	r = r || (sDate.indexOf("0230") > 0);
	r = r || (sDate.indexOf("0231") > 0);
	r = r || (sDate.indexOf("0431") > 0);
	r = r || (sDate.indexOf("0631") > 0);
	r = r || (sDate.indexOf("0931") > 0);
	r = r || (sDate.indexOf("1131") > 0);
	if (r)
	{
		sl_alert(prompt);
		ssDate.focus();
		ssDate.select();
		return false;
	}
	return true;
}

function isCharsInBag(s, bag)
{
	var i;
	for (i = 0; i < s.length; i++)
	{
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) return false;
	}
	return true;
}

function isEmail(s, name)
{
	if(!sl_check(s,name,50,1))
		return false;

	var len = s.value.length;
	var pos1 = s.value.indexOf("@");
	var pos2 = s.value.indexOf(".");
	var pos3 = s.value.lastIndexOf("@");
	var pos4 = s.value.lastIndexOf(".");
	//check '@' and '.' is not first or last character
	if ((pos1 <= 0)||(pos1 == len)||(pos2 <= 0)||(pos2 == len))
	{
		sl_alert("请您输入有效的"+ name +"！");
		s.focus();
		return false;
	}
	else
	{
		//check @. or .@
		if( (pos1 == pos2 - 1) || (pos1 == pos2 + 1)
		  || ( pos1 != pos3 )  //find two @
		  || ( pos4 < pos3 )  //. should behind the '@'
		  || (pos4 == len - 1) ) //. should not in the last letter
		{
			sl_alert("请您输入有效的"+ name +"！");
			s.focus();
			return false;
		}
	}
	if (!isCharsInBag( s.value, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_@"))
	{
		sl_alert(name + "中只能包含字符ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_@\n" + "请您重新输入"+ name);
		s.focus();
		return false;
	}
	return true;
}

function no_deviant_char(s, alertwords)
{
	if (s.value.indexOf("'", 0) >= 0)
	{
		sl_alert(alertwords + "中不能包含单引号等非法字符！");
		s.focus();
		return false;
	}
	return true;
}

function openWin(url, name, w, h)
{
	var left=0;
	var top=0;
	left=(screen.width-w)/2;
	top=(screen.height-h)/2;	
	return window.open(url,name,"width=" + w + ",height=" + h + ",left="+left+",top="+top+",toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,status=no")
}

function chachEsc(nKeyCode)
{
	if (27 == nKeyCode)
	{
		//window.returnValue = null;
		window.close();
	}
}

function showFilter()
{
	if (showModalDialog('/public/filter.htm','','dialogWidth:310px;dialogHeight:136px;status:0;help:0;fullscreen=3') != null)
		location.reload();
}

function invertVisible(element)
{
	if(element.style.display == "")
		element.style.display = "none";
	else
		element.style.display = "";
}

function checkedCount(element)
{
	var iCount = 0;
	var i;

	if(element == null)
		return 0;
		
	if(element.length == null)
	{
		if(element.checked && !element.disabled)
			return 1;
		else
			return 0;
	}

	for(i = 0; i < element.length; i++)
		if(element[i].checked &&
			!element.disabled)
			iCount++;

	return iCount;
}

function checkedValue(element)
{
	var i, ret = "";

	if(element.length == null)
	{
		if(element.checked)
			return element.value;
		else
			return null;
	}

	for(i = 0; i < element.length; i++)
		if(element[i].checked)
		{
			if (ret == "")
				ret = ret + element[i].value;
			else
				ret = ret + "," + element[i].value;
		}

	return ret;
}

// used at css tr0 and tr1, do not modify function name
function a()
//{this.style.background='#FFCC00'}
{this.style.background='#ADAED6'}

function b()
{this.style.background='#F7F7F7'}

function c()
{this.style.background='#FFFFFF'}

function swapHistoryRow(obj, i, j, len)
{
	var k, index;
	k = i + 1;
	while(k < len && obj.rows[k].className == "")
	{
		obj.moveRow(k, j);
	}
	k = j + 1;
	index = i + 1;
	while(k < len && obj.rows[k].className == "")
	{
		obj.moveRow(k, index);
		index++;
		k++;
	}
}

function table_sort_string(obj, n, mode, len)
{
	var i, j, multi;
	var tab = obj;
	multi = (tab.sort == "multi" || tab.sort == "MULTI");
	if (!multi)
		return table_sort_string_fast(obj, n, mode, len);
	for(i = 1; i < len - 1; i++)
	{
		if(tab.rows[i].cells[0].innerText == "")
			continue;
		if(tab.rows[i].className == "")
			continue;
		for(j = i + 1; j < len; j++)
		{
			if(tab.rows[j].cells[0].innerText == "")
				continue;
			if(tab.rows[j].className == "")
				continue;
			if (mode)
			{
				if(tab.rows[i].cells[n].innerText > tab.rows[j].cells[n].innerText)
				{
					tab.rows[i].swapNode(tab.rows[j]);
					if (multi)	swapHistoryRow(tab, i, j, len);
				}
			}
			else
			{
				if(tab.rows[i].cells[n].innerText < tab.rows[j].cells[n].innerText)
				{
					tab.rows[i].swapNode(tab.rows[j]);
					if (multi)	swapHistoryRow(tab, i, j, len);
				}
			}
		}
	}
}

// 这个效率更高，但不适用于multi的情况
function table_sort_string_fast(the_tab, col, mode, len){
	var tab_arr = new Array();
	var i;
	for(i=1;i<len;i++){
		if(the_tab.rows[i].cells[0].innerText == "")
			continue;
		tab_arr.push(new Array(the_tab.rows[i].cells[col].innerText, the_tab.rows[i]));
	}
	function SortArr(mode) {
		return function (arr1, arr2){
			var flag;
			var a,b;
			a = arr1[0];
			b = arr2[0];
			flag=mode?(a<b?1:(a>b?-1:0)):(a>b?1:(a<b?-1:0));
			return flag;
		}
	}
	tab_arr.sort(SortArr(mode));

	for(i=0;i<tab_arr.length;i++)
		the_tab.firstChild.appendChild(tab_arr[i][1]);
	for(i = 1; i < the_tab.rows.length - tab_arr.length; i++)
		the_tab.firstChild.appendChild(the_tab.rows[1]);
}

function table_sort_num(obj, n, mode, len)
{
	var i, j;
	var tab = obj;
	multi = (tab.sort == "multi" || tab.sort == "MULTI");
	if (!multi)
		return table_sort_num_fast(obj, n, mode, len);
	for(i = 1; i < len - 1; i++)
	{
		if(tab.rows[i].cells[0].innerText == "")
			continue;
		if(tab.rows[i].className == "")
			continue;
		for(j = i + 1;j < len; j++)
		{
			if(tab.rows[j].cells[0].innerText == "")
				continue;
			if(tab.rows[j].className == "")
				continue;
			if (mode)
			{
				if(sl_parseFloat(tab.rows[i].cells[n].innerText) < sl_parseFloat(tab.rows[j].cells[n].innerText))
				{
					tab.rows[i].swapNode(tab.rows[j]);
					if (multi)	swapHistoryRow(tab, i, j, len);
				}
			}
			else
			{
				if(sl_parseFloat(tab.rows[i].cells[n].innerText) > sl_parseFloat(tab.rows[j].cells[n].innerText))
				{
					tab.rows[i].swapNode(tab.rows[j]);
					if (multi)	swapHistoryRow(tab, i, j, len);
				}
			}
		}
	}
}

function table_sort_num_fast(the_tab, col, mode, len)
{
	var tab_arr = new Array();
	var i;
	for(i=1;i<len;i++){
		if(the_tab.rows[i].cells[0].innerText == "")
			continue;
		tab_arr.push(new Array(the_tab.rows[i].cells[col].innerText, the_tab.rows[i]));
	}
	function SortArr(mode) {
		return function (arr1, arr2){
			var flag;
			var a,b;
			a = sl_parseFloat(arr1[0]);
			b = sl_parseFloat(arr2[0]);
			flag=mode?(a<b?1:(a>b?-1:0)):(a>b?1:(a<b?-1:0));
			return flag;
		}
	}
	tab_arr.sort(SortArr(mode));

	for(i=0;i<tab_arr.length;i++)
		the_tab.firstChild.appendChild(tab_arr[i][1]);
	for(i = 1; i < the_tab.rows.length - tab_arr.length; i++)
		the_tab.firstChild.appendChild(the_tab.rows[1]);
}

// 1. 表格会有多余的合计行
// 2. sort="num"标示的列使用数字排序
// 3. sort="multi"标示的表格注意隐藏列，这里使用className来判断
// 4. 要提高执行效率
function sortTable()
{
	var start = new Date;
	event.cancelBubble = true;
	var the_obj = event.srcElement;
	if (the_obj.tagName != "TD")
		return;

	var tab = this.parentElement.parentElement;
	if(tab.tagName != "TABLE") return;

	window.status = "正在对数据进行排序，请您稍候...";
	if(the_obj.mode == undefined)
		the_obj.mode = false;

	var len = tab.rows.length;
	if (len > 0)
	{
		if (tab.rows[len-1].cells[0].innerText.indexOf("合") >= 0)
			len--;
	}
	
	if(the_obj.sort == "num")
		table_sort_num(tab, the_obj.cellIndex, the_obj.mode, len);
	else
		table_sort_string(tab, the_obj.cellIndex, the_obj.mode, len);
	the_obj.mode = !the_obj.mode;

	window.status = "";
}

function overTable()
{
	var the_obj = event.srcElement;
	the_obj.style.cursor = "hand";//"n-resize";
}

function sortOptions(selElt)
{
	for (var i = 0; i <selElt.options.length; i++)
	{
		for (var j = 0; j<selElt.options.length-1; j++)
		{
			// if an option is greater than the next option, swap them
			if (selElt.options[j].value > selElt.options[j+1].value)
			{
				tmpTxt = selElt.options[j].text;
				tmpVal = selElt.options[j].value;
				selElt.options[j].text = selElt.options[j+1].text ;
				selElt.options[j].value = selElt.options[j+1].value;
				selElt.options[j+1].text = tmpTxt ;
				selElt.options[j+1].value = tmpVal;
			}
		}
	}
}

function nextKeyPress(ce, forceNext)
{
	if (event.keyCode == 13 || forceNext)
	{
		event.keyCode = 9;
		//focusNext(ce);
		//event.keyCode = 0;
		return true;
	}
}

function getMatch(srcStr,mark,vaction)
{
	var i;

	i=srcStr.indexOf(mark);
	if (i>0){
		if (vaction==0)
			return (srcStr.substring(0,i));
		else
			return (srcStr.substring(i+1));
	} else
		return srcStr;
}

function select_clear(src)
{
	var len = src.options.length;
	for(i = len - 1; i > - 1; i--)
	{
		src.options.remove(i);
	}
}

function split(seed,src,selectDest,recDelim)
{
	var s;
	var s1;
	var s2;
	var s3;
	var s4;
	var i;
	var j;
	s=src;
	if (selectDest.options.length > 0)
		select_clear(selectDest);
	for(i=0;i<s.length;i++)
	{
		s1=s[i];
		s2=getMatch(s1,"-",0);
		s1=getMatch(s1,"-",1);

		if (s2==seed)
		{
			s3=getMatch(s1,"-",0);
			s4=getMatch(s1,"-",1);
			new_opt=document.createElement("OPTION");
			new_opt.value=s3;
			selectDest.options.add(new_opt);
			selectDest.options(selectDest.length-1).text=s1;
		}
	}
}

function isNum(s, prompt)
{
	var i;
	var str;
	str = s.value;
	if (str == null)
		return false;
	if (str.length <= 0)
		return false;
	for (i = 0; i < str.length; i++)
	{
		if (str.charCodeAt(i) < 48 || str.charCodeAt(i) > 57)
		{
			sl_alert(prompt);
			s.focus();
			s.select();
			return false;
		}
	}
	return true;
}


function isFloat(s,prompt)
{
	var i;
	var str;
	str=s.value;
	if (str == null)
		return false;
	if (str.length <= 0)
		return false;
	for (i = 0; i < str.length; i++)
	{
		if (str.charAt(i)!="." && str.charAt(i)!="-")
		{
			if (str.charCodeAt(i) < 48 || str.charCodeAt(i) > 57)
			{
				sl_alert(prompt);
				s.focus();
				s.select();
				return false;
			}
		}
	}
	return true;
}

function selectAll(checkname)
{
	if(checkname == null)
		return;
	var iCount = checkedCount(checkname);
	var i;

	if(checkname.length == null)
	{	
		if(!checkname.disabled)
		{
			checkname.checked = iCount < 1;	
			return;
		}
	}


	for(i = 0; i < checkname.length; i++)
		if(!checkname[i].disabled)
			checkname[i].checked = iCount < checkname.length;
}

function trimNullElement(element)
{
	if (element.value = "null")
		element.value = "";
}

function showAboutDialog()
{
	showModalDialog('/about.htm', '', 'dialogWidth:530px;dialogHeight:300px;status:0;help:0');
}

function showPasswordDialog()
{
	if(showModalDialog('/system/basedata/password.jsp', '', 'dialogWidth:320px;dialogHeight:250px;status:0;help:0')!= null)
		sl_update_ok();
}

function showCalculator(type, busi_flag, contract_id)
{
	var s = "";
	if (contract_id != null)
		s = "?busi_flag=" + busi_flag + "&contract_id=" + contract_id;
	return showModalDialog('/investment/calculator' + type + '.jsp' + s, '', 'dialogWidth:600px;dialogHeight:400px;status:0;help:0');
}

function chachExit()
{
	if(event.clientX > document.body.clientWidth && event.clientY < 0 || event.altKey)
		location = '/exit.jsp';
}

function confirmExit()
{
	var r = sl_confirm("退出系统");
	if(r)
		top.location = "/exit.jsp";
	//return r;
}

function confirmReLoad()
{
	var r = sl_confirm("重新登录");
	if(r)
		top.location = "/reload.jsp";
	//return r;
}


function sl_remove_ok(url)
{
	sl_info("系统提示：　　　　\n\n删除成功！\n\n");  // in default.vbs
	if (url != null)
		location.replace(url);
}

function sl_cancel_ok(url)
{
	sl_info("系统提示：　　　　\n\n注销成功！\n\n");  // in default.vbs
	if (url != null)
		location.replace(url);
}

function sl_update_ok(url)
{
	sl_info("系统提示：　　　　\n\n保存成功！\n\n");  // in default.vbs
	if (url != null)
		location.replace(url);
}

function sl_check_ok(url)
{
	sl_info("系统提示：　　　　\n\n审核成功！\n\n");  // in default.vbs
	if (url != null)
		location.replace(url);
}

function sl_check_remove()
{
	return sl_confirm("删除");
}

function sl_check_update(doNew)
{
	if (doNew == "null")
		return sl_confirm("保存");
	else 
		return sl_confirm("保存修改");
}

function sl_check_update2()
{
	return confirm("系统确认：\n\n若项目数改变，投票数将被清零\n您确认要保存修改吗？");
}


function sl_check_pass()
{
	return sl_confirm("通过审核");
}

function sl_check_fail()
{
	return sl_confirm("等待编辑");
}

function confirmRemoveDemo(element)
{
	if (element == null)
	{
		sl_alert("未选定任何记录！");
		return false;
	}
	
	if(checkedCount(element) == 0)
	{
		sl_alert("请选定要删除的记录！");
		return false;
	}
	
	if(sl_confirm('删除选定的记录'))
	{
		sl_alert("删除成功！");
		location.reload();
	}
}


function confirmRemove(element)
{
	if (element == null)
	{
		sl_alert("未选定任何记录！");
		return false;
	}
	if(checkedCount(element) == 0)
	{
		sl_alert("请选定要删除的记录！");
		return false;
	}
	return sl_confirm('删除选定的记录');
}

function confirmCancel(element)
{
	if (element == null)
	{
		sl_alert("未选定任何记录！");
		return false;
	}
	if(checkedCount(element) == 0)
	{
		sl_alert("请选定要注销的记录！");
		return false;
	}
	return sl_confirm('注销选定的记录');
}

function confirmCheck(element)
{
	if (element == null)
	{
		sl_alert("未选定任何记录！");
		return false;
	}
	if(checkedCount(element) == 0)
	{
		sl_alert("请选定要审核通过的记录！");
		return false;
	}
	return sl_confirm('审核通过选定的记录');
}

function confirmWaitDemo(isDialog)
{
	if(sl_confirm("等待编辑"))
	{
		if(isDialog)
		{
			window.returnValue = null;
			window.close();
		}
		else
		{
			history.back();
		}
	}
}

function syncDatePicker(picker, element)
{
	element.value = picker.Year * 10000 + picker.Month * 100 + picker.Day;
}

function isBetween(element,low,high,point,caption)
{
	var s;
	if (element == null) 
		return false;
	var str=element.value;
	s=element.value;
	if (str==null)	
		return false;
	if (str.length<1)
		return false;
	var str=element.value;	
	if (s<low || s>=high)
	{
		alert(caption);
		element.focus();
		element.select();
		return false;	
	}
	var i=0;
		
	i=str.indexOf(".");
	if (i>0)
	{
		var len=str.length;
		if (len-i-1>point)
		{
			alert("小数点后最多有"+point+"位!");
			element.focus();
			element.select();
			return false;
		}	
	}
	return true;	
}


function findElement(name)
{
	return document.all(name);
}

function enableElements(element, enable)
{
	var i;
	for (i = 0; i < element.all.length; i++)
		element.all.item(i).disabled = !enable;
}

function cTrim(sInputString, iType)
{ 
	var sTmpStr = ' ';
	var i = -1;

	if(iType == 0 || iType == 1)
	{
		while(sTmpStr == ' ')
		{
			++i;
			sTmpStr = sInputString.substr(i,1);
		}
		sInputString = sInputString.substring(i);
	}
	if(iType == 0 || iType == 2)
	{
		sTmpStr = ' ';
		i = sInputString.length;
		while(sTmpStr == ' ')
		{
			--i;
			sTmpStr = sInputString.substr(i,1);
		}
		sInputString = sInputString.substring(0,i+1);
	}
	return sInputString;
} 

function confirmDelete(element, field, form) 
{
	var selcount = 0;
	if (element == null)
		return;

	if (element != null && element.checked)
		selcount = 1;
	for (var i = 0; i < element.length; i++)
	{
		if(element[i].checked)
			selcount++;
	}

	if (selcount >= 1)
	{
		if(sl_confirm("删除选择的记录"))
		{
			field.value = 1;
			form.submit();
		}
	}
	else
		sl_alert("请选择要删除的记录！");
}

function trim(s)
{
	while (s.substring(0,1) == ' ')
	{
		s = s.substring(1,s.length);
	}
	while (s.substring(s.length-1,s.length) == ' ')
	{
		s = s.substring(0,s.length-1);
	}
	return s;
}

function trimZero(s)
{
	var result = s, s1;
	var n1 = 0, n2 = 0;
	s1 = s;
	n1 = s1.indexOf("零拾");
	
	while (n1 > 0)
	{
		result = s1.substring(0, n1) + s1.substring(n1 + 2);
		s1 = result;
		n1 = s1.indexOf("零拾");
	}
	n1 = s1.indexOf("零佰");
	while (n1 > 0)
	{
		result = s1.substring(0, n1) + s1.substring(n1 + 2);
		s1 = result;
		n1 = s1.indexOf("零佰");
	}
	n1 = s1.indexOf("零仟");
	while (n1 > 0)
	{
		result = s1.substring(0, n1) + s1.substring(n1 + 2);
		s1 = result;
		n1 = s1.indexOf("零仟");
	}
	n1 = s1.indexOf("零元");
	while (n1 > 0)
	{
		result = s1.substring(0, n1) + s1.substring(n1 + 1);
		s1 = result;
		n1 = s1.indexOf("零元");
	}
	n1 = s1.indexOf("零角");
	while (n1 > 0)
	{
		result = s1.substring(0, n1) + s1.substring(n1 + 2);
		s1 = result;
		n1 = s1.indexOf("零角");
	}
	n1 = s1.indexOf("零分");
	while (n1 > 0)
	{
		result = s1.substring(0, n1) + s1.substring(n1 + 2);
		s1 = result;
		n1 = s1.indexOf("零分");
	}
	n1 = s1.indexOf("零万");
	while (n1 > 0)
	{
		if (s1.substring(0, n1).length > 0)
			result = s1.substring(0, n1) + s1.substring(n1 + 1);
		else
			result = s1.substring(0, n1) + s1.substring(n1 + 2);
		s1 = result;
		n1 = s1.indexOf("零万");
	}
	n1 = s1.indexOf("零亿");
	while (n1 > 0)
	{
		if (s1.substring(0, n1).length > 0)
			result = s1.substring(0, n1) + s1.substring(n1 + 1);
		else
			result = s1.substring(0, n1) + s1.substring(n1 + 2);
		s1 = result;
		n1 = s1.indexOf("零亿");
	}
	return result;
}


function numToChinese(input)
{
	var s1 = "零壹贰叁肆伍陆柒捌玖";
	var s4 = "分角整元拾佰仟万拾佰仟亿拾佰仟";
	var temp = "";
	var result = "";
	var bZero = false;

	if (input == null)
		return "输入字串不是数字串只能包括以下字符（'0'～'9'，'.')，输入字串最大只能精确到仟亿，小数点只能两位！";

	var temp = trim(input);

	var f = parseFloat("0" + temp);
	var len = 0;
	if (temp.indexOf(".") == -1)
		len = temp.length;
	else
		len = temp.indexOf(".");
	if (len > s4.length - 3)
		return "输入字串最大只能精确到仟亿，小数点只能两位！";

	var n1, n2 = 0;
	var num = "";
	var unit = "";

	for (var i = 0; i < temp.length; i++)
	{
		if (i > len + 2)
		{
			break;
		}
		if (i == len)
		{
			continue;
		}
		n1 = parseInt(temp.charAt(i));
		num = s1.substring(n1, n1 + 1);
		n2 = len - i + 2;
		unit = s4.substring(n2, n2 + 1);
		result = result + num + unit;
	}
	if ((len == temp.length) || (len == temp.length - 1))
		result = result + "整";
	if (len == temp.length - 2)
		result = result + "零分";
	result = trimZero(result);
	return result;
}

function switchFrame()
{
	if (table1.style.display == "none")
	{
		table1.style.display = "";
		top.frame.rows = "77,*,25";
 		image1.src = "/includes/msmenu/images/up_enabled.gif";
 	}
	else
	{
		table1.style.display = "none";
		top.frame.rows = "23,*,25";
 		image1.src = "/includes/msmenu/images/down_enabled.gif";
	}
}

function initFrame()
{
	if (top.frame.rows == "23,*,25")
	{
		table1.style.display = "none";
		image1.src = "/includes/msmenu/images/down_enabled.gif";
	}
}

function isContainChar(strVal, chrVal)
{
	if ( -1 == strVal.indexOf(chrVal))
		return false;
	else
		return true;		
}

function isValidFieldStr(field, name)
{
	if (!isCharsInBag(field.value, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_@"))
	{
		sl_alert(name + "中只能包含字符ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_@\n" + "请您重新输入"+ name);
		field.focus();
		return false;
	}
	return true;
}

function getAgeRange(date, age)
{
	var me_age;
	var nowDate, divAge;

	nowDate = new Date();
	me_age = nowDate.getYear() - date;
	divAge =  Math.floor( me_age / 5 )
	if ( divAge <= 2 )
		age.value = 200101;
	else if ( divAge <= 11 )
		age.value = 200099 + divAge;

	else
		age.value = 200111;		
}

function isDateSelectValid(objDate, nullVal, msg)
{
	var i;
	for(i = 0; i <= 2; i++)
	{
		if (objDate(i).value == nullVal)
		{
			alert("请输入正确的" + msg + "！");
			return false;
		}
	}
	return true;
}
	
function isIDNoValid(objID, year, month, day)
{
	var sDate = "a";

	var date = "a";
	if (!sl_check( objID,"身份证号码",18,15))
	{
		return false;
	}
	if ( month.length < 2 )
		month = "0" + month;
	if ( day.length < 2 )
		day = "0" + day;
	switch (objID.value.length)

	{ 
		case 15:
				year = year.substring( 2,4 );
				date =  year + month + day;
				sDate = objID.value.substring( 6,12 );			
				break;
		case 18:date = year + month + day; 
				sDate = objID.value.substring( 6,14 ); 
				break;
		default:
				alert( "身份证号码必须为15或18位的数字！" );
				return false;
				break;

	}
	if ( sDate != date )
	{
		alert( "您的身份证号码与您的生日日期不符" );
		return false;
	}
	return true; 
}


function removeOption(element, index)
{
	element.remove(index);
}

function addOption(element, value, text)
{
	element.add(document.createElement("OPTION"));
	element.options[element.length - 1].text = text;
	element.options[element.length - 1].value = value;
	element.selectedIndex = element.length - 1;
}

function updateOption(element, index, value, text)
{
	element.options[index].text = text;
	element.options[index].value = value;
}

function findOption(element, value)
{
	var i;
	for (i = 0; i < element.length; i++)
		if(element.options[i].value == value)
			return i;
	return -1;
}

function checkAll(obj,objCA)
{
	var flag;
	var flag1;
	flag = true;
	
	if((obj == null)
		||(objCA == null))
		return;
		
	for(var i = 0; i < obj.length; i++)
	{
		if (!obj[i].checked)
			flag = false;
	}
	
	objCA.checked = flag;
}

function turnTdStyle(objTd,flagvalue,className1,className2)
{
	//if(flagvalue)
	//	objTd.className = className1;
	//else
	//	objTd.className = className2;
}


function sl_checkChoice2(field, name)
{
	for (var i = 0; i < field.length; i++)
	{
		if (field[i].checked)
			return true;
	}
	sl_alert("请选择" + name + "！");
	return false;
}

function isInt(val)
{
	if (val.length == 0)
		return false;
	for (var i = 0; i < val.length; i++)
	{
		if (val.charCodeAt(i) < 48 || val.charCodeAt(i) > 57)
			return false;
	}
	return true;
}

function sl_checkNum2(field, name, minVal, maxVal)
{
	if(!isInt(field.value))
	{
		alert(name + "必须是一个整数数字！");
		field.focus;
		return false;
	}
	if(field.value > maxVal)
	{
		alert(name + "不能大于最大值" + maxVal);
		field.focus;
		return false;
	}
	if(field.value < minVal)
	{
		alert(name + "不能小于最小值" + minVal);
		field.focus;
		return false;
	}
	return true;
}

function setObjListDisabled(objList,flag)
{
	for (var i = 0; i < objList.length; i++)
	{
		objList[i].disabled = flag;
	}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function comr()
{
}

function $id(id)
{
	var element = document.getElementById(id);
	return element ? element : false;
}

function $tag(root, tagName)
{
    var tags = root.getElementsByTagName(tagName);
    var length = tags ? tags.length : 0;
    return length > 0 ? tags : false;
}