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];}
}

//Common Function


function isHalfString(str)
{
	if(str.length != 0 )
	{
		str = str.toUpperCase();
		for (var i=0; i< str.length; ++i)
		{
			var ch = str.charAt(i);
			if(checkNotLetters(ch) && checkNotNumbers(ch) && ch !='_' && ch !='-')
			{
				return false;
			}
		}
	}
	return true;
}

function isInt(str)
{
	if(str.length != 0 )
	{
		str = str.toUpperCase();
		for (var i=0; i< str.length; ++i)
		{
			var ch = str.charAt(i);
			if(checkNotNumbers(ch))
			{
				return false;
			}
		}
	}
	return true;
}

function isMail(str)
{
	if(str.length == 0 ) return false;
	str = str.toUpperCase();
	var a = str.indexOf('@');
	if(a == -1) return false;

	var strUserName = str.substring(0,a);
	var strServerName = str.substring(a+1);
	if(strUserName.length == 0 ) return false;
	if(strServerName.length == 0 ) return false;

	for (var i=0; i< strUserName.length; ++i)
	{
		var ch = strUserName.charAt(i);
		if( checkNotLetters(ch) && checkNotNumbers(ch) && ch !='_' && ch !='-' && ch != '?')
		{
			return false;
		}
	}

	for (var i=0; i< strServerName.length; ++i)
	{
		var ch = strServerName.charAt(i);
		if( checkNotLetters(ch) && checkNotNumbers(ch) && ch !='_' && ch !='-' && ch !='.' && ch != '?' )
		{
			return false;
		}
	}
	
	if(strServerName.indexOf(".") == 0 || strServerName.indexOf(".") == strServerName.length - 1)
	{
		return false;
	}
	return true;
}

function isDate(strValue,str)
{
	if(strValue.length == 0 ) return false;
	if("string" != typeof(str)||""==str) str = "yyyy/MM/dd-HH:mm:ss";
	if(strValue.length != str.length ) return false;
	if(str.indexOf('yyyy')==-1||str.indexOf('MM')==-1||str.indexOf('dd')==-1) return false;

	var i = 0;
	var tmpValue = "";
	i = str.indexOf('yyyy');
	tmpValue = strValue.substring(i,i+4);
	if(!isInt(tmpValue)) return false;
	i = str.indexOf('MM');
	tmpValue = strValue.substring(i,i+2);
	if(!isInt(tmpValue)) return false;
	i = str.indexOf('dd');
	tmpValue = strValue.substring(i,i+2);
	if(!isInt(tmpValue)) return false;

	if(str.indexOf('HH')!=-1)
	{
		i = str.indexOf('HH');
		tmpValue = strValue.substring(i,i+2);
		if(!isInt(tmpValue)) return false;
	}

	if(str.indexOf('HH')!=-1&&str.indexOf('mm')!=-1)
	{
		i = str.indexOf('mm');
		tmpValue = strValue.substring(i,i+2);
		if(!isInt(tmpValue)) return false;
	}

	if(str.indexOf('HH')!=-1&&str.indexOf('mm')!=-1&&str.indexOf('ss')!=-1)
	{
		i = str.indexOf('ss');
		tmpValue = strValue.substring(i,i+2);
		if(!isInt(tmpValue)) return false;
	}
	return true;
}


function checkNotLetters(c)
{
	if( c != 'A' && c != 'B' && c != 'C' && c != 'D' &&  c != 'E' && c != 'F' && c != 'G' && c != 'H' &&
	c != 'I' && c != 'J' && c != 'K' && c != 'L' &&  c != 'M' && c != 'N' && c != 'O' && c != 'P' &&
	c != 'Q' && c != 'R' && c != 'S' && c != 'T' &&  c != 'U' && c != 'V' && c != 'W' && c != 'X' &&
	c != 'Y' && c != 'Z' ) return true;
}

function checkNotNumbers(c)
{
	if( c != '1' && c != '2' && c != '3' && c != '4' &&  c != '5' && c != '6' && c != '7' && c != '8' &&
	c != '9' && c != '0') return true;
}

function lenToString(str,len)
{
	for(var i=str.length;i<len;i++)
	{
		str = "0"+str;
	}
	return str;
}

function openCalendar(formName, fieldName)
{
	var w = null;
	w = window.open("/newbase/includes/calendar.jsp?parent_form_name=" + formName + "&parent_name=" + fieldName,"","status=0,width=225,height=210,left=" + (event.screenX-225) + ",top=" + (event.screenY-95));
}

/**

VALIDATOR.JS by hide on 2002-12-23 1:23

version:1.1.3

*/

var errorMsg=""; // PUBLIC error message String
var focusElement=null; // PUBLIC focus Element
var checkVal=null; // PUBLIC check Value

/**
PUBLIC trim a String
2002-12-22 by hide
Modify by jason at 2003-03-10
*/
function trim(val) {
	val=ltrim(val);
	val=rtrim(val);
	return val;
}

/**
 * ltrim -- jason add
 */
function ltrim(val) {
	for(var l=0;l<val.length;) {
		if(val.charAt(l)==' ')
			val=val.substring(1);
		else
			break;
	}
	return val;
}

/**
 * rtrim -- jason add
 */
function rtrim(val) {
	for(var r=val.length-1;r>0;r--) {
		if(val.charAt(r)==' ')
			val=val.substring(0,val.length-1);
		else
			break;
	}
	return val;
}

/** END */


/**
 *	得到字符串的长度(增强了对汉字的识别,一个汉字的长度为2)
 *	Jason Add at 2003-03-10
 */
function getStringLength(val) {
	num=val.length
	var arr=val.match(/[^\x00-\x80]/ig)
	if(arr!=null) num += arr.length
	return num;
}
/** End */



/**
PUBLIC check and get a FORM object
2002-12-23 by hide
*/
function checkFormArg(form) {
	var obj;
	if(typeof(form)=="object")
		obj=form;
	else if(isNaN(form))
		obj=eval("document."+form);
	else
		obj=document.forms[form];

	if(typeof(obj)!="object")
		alert("error form!");
	else
		return obj
}
/** END */

/**
PUBLIC check and get a FORM object
2002-12-23 by hide
*/

function checkReturn() {
	if(errorMsg!="") {
		alert(errorMsg);
		errorMsg="";
		return false;
	}
}

/** END */


/**
PUBLIC set focus To Element
2002-12-23 by hide
*/
function focusToElement(obj) {
	if(errorMsg!="") {
		obj.select();
		obj.focus();
	}
	focusElement==null;
}
/** END */


/**
PUBLIC return Function is checkVal is Empty
2002-12-23 by hide
*/
function checkEmpty(objVal) {
	checkVal=trim(objVal);
	if(checkVal=="")
		return true;
}
/** END */



function validateRequired(form,element,argName) {
	with(checkFormArg(form)) {
		element = element.split(",");
		argName = argName.split(",");
		if(element.length!=argName.length) {
			alert("error arg!");
			return;
		}
		for(var i=0;i<element.length;i++) {
			if(trim(eval(element[i]+".value")=="")) {
				errorMsg+=argName[i]+" 不能为空.\n";
				if(focusElement==null)
					focusElement=element[i];
			}
		}
		focusToElement(eval(focusElement));
	}
	return checkReturn();
}


function validateNumber(form,element,argName) {
	with(checkFormArg(form)) {
		element = element.split(",");
		argName = argName.split(",");
		if(element.length!=argName.length) {
			alert("error arg!");
			return;
		}
		for(var i=0;i<element.length;i++) {
			if(checkEmpty(eval(element[i]+".value")))
				continue;
			if(isNaN(checkVal)) {
				errorMsg+=argName[i]+" 不是一个有效的数字.\n";
				if(focusElement==null)
					focusElement=element[i];
			}
		}
		focusToElement(eval(focusElement));
	}
	return checkReturn();
}


function validateInt(form,element,argName) {
	with(checkFormArg(form)) {
		if(checkEmpty(eval(element+".value")))
			return;
		if(parseInt(checkVal)!=checkVal) {
			errorMsg+=argName+" 不是一个有效的整数.";
			focusToElement(eval(element));
		}
	}
	return checkReturn();
}

/*
 *  modify by jason at 2003-03-10(support the chinese identify)
 */

function validateLengthRange(form,element,argName,minLength,maxLength) {
	with(checkFormArg(form)) {
		if(minLength>maxLength) {
			alert("error arg!");
			return;
		}
		if(checkEmpty(eval(element+".value")))
			return;
		if(minLength!=-1) {
			if(getStringLength(checkVal)<minLength)
				errorMsg+=argName+" 的长度不能小于 "+minLength+".\n";
		}
		if(maxLength!=-1) {
			if(getStringLength(checkVal)>maxLength)
				errorMsg+=argName+" 的长度不能大于 "+maxLength+".\n";
		}
		if(minLength!=-1 && maxLength!=-1) {
			if(errorMsg!="")
				errorMsg=argName+" 的长度必须在 "+minLength+" 到 "+maxLength+" 之间.\n";
		}
		focusToElement(eval(element));
	}
	return checkReturn();
}


function validateValRange(form,element,argName,minValue,maxValue) {
	with(checkFormArg(form)) {
		if(checkEmpty(eval(element+".value")))
			return;
		if(isNaN(checkVal))
			errorMsg+=argName+" 不是一个有效数字.\n";
		else {
			if(minValue!=-1) {
				if(checkVal<minValue)
					errorMsg+=argName+" 不能小于 "+minValue+".\n";
			}
			if(maxValue!=-1) {
				if(checkVal>maxValue)
					errorMsg+=argName+" 不能大于 "+maxValue+".\n";
			}
			if(minValue!=-1 && maxValue!=-1) {
				if(errorMsg!="")
					errorMsg=argName+" 必须在 "+minValue+" 到 "+maxValue+" 之间.\n";
			}
		}
		focusToElement(eval(element));
	}
	return checkReturn();
}


function validateEmail(form,element,argName) {
	with(checkFormArg(form)) {
		if(checkEmpty(eval(element+".value")))
			return;
		var emailPat=/([\-\_\w]+@[\-\_\w]+\.\w+)(\.{0,1}\w*)(\.{0,1}\w*)/i;
		if(checkVal.match(emailPat)==null) {
			errorMsg+=argName+" 不是一个有效的 E-Mail 格式.";
			focusToElement(eval(element));
		}
	}
	return checkReturn();
}


function validateDate(form,element,argName) {
	with(checkFormArg(form)) {
		var isDate=true;
		if(checkEmpty(eval(element+".value")))
			return;
		checkVal=checkVal.replace('/','');
		checkVal=checkVal.replace('-','/');
		checkVal=checkVal.replace('-','/');
		if(new Date(checkVal)=="NaN")
			isDate=false;
		else {
			var newDate=new Date(checkVal);
			var y=newDate.getFullYear();
			var m=newDate.getMonth()+1;
			if(m<10)
				m="0"+m
			var d=newDate.getDate();
			if(d<10)
				d="0"+d
			if((y+"-"+m+"-"+d)!=eval(element+".value"))
				isDate=false;
		}
		if(isDate==false) {
			errorMsg+=argName+" 不是一个有效的日期,\n日期格式应为 yyyy-mm-dd .";
			focusToElement(eval(element));
		}
	}
	return checkReturn();
}


/*2002-12-23 18:16 v0.9*/


function validateCheckBox(form,element,argName,minSele,maxSele) {
	with(checkFormArg(form)) {
		var seleCount=0;
		element=eval(element);
		if(typeof(element.length)=="undefined") {
			if(element.checked==true)
				seleCount++;
		}
		else {
			for(var i=0;i<element.length;i++) {
				if(element[i].checked==true)
					seleCount++;
			}
		}
		if(minSele!=-1) {
			if(seleCount<minSele)
				errorMsg=argName+" 不能选择少于 "+minSele+" 项.\n";
		}
		if(maxSele!=-1) {
			if(seleCount>maxSele)
				errorMsg+=argName+" 不能选择多于 "+maxSele+" 项.\n";
		}
		if(minSele!=-1 && maxSele!=-1) {
			if(errorMsg!="")
				errorMsg=argName+" 必须选择 "+minSele+" 到 "+maxSele+" 之间."
		}
	}
	return checkReturn();
}


function validateRadio(form,element,argName) {
	with(checkFormArg(form)) {
		var selected=false;
		element=eval(element);
		if(typeof(element.length)=="undefined") {
			if(element.checked==true) {
				selected=true;
				return selected;
			}
		}
		else {
			for(var i=0;i<element.length;i++) {
				if(element[i].checked==true) {
					selected=true;
					return selected;
				}
			}
		}
		if(!selected)
			errorMsg=argName+" 必须选择一项.";
	}
	return checkReturn();
}


function validateEquals(form,element1,element2,argName1,argName2) {
	with(checkFormArg(form)) {
		if(trim(eval(element1+".value"))!=trim(eval(element2+".value"))) {
			errorMsg=argName2+" 必须与 "+argName1+" 一致.";
			focusToElement(eval(element2));
		}
	}
	return checkReturn();
}


/*2002-12-24 12:21 v1.0*/


function validateLink(form,element,argName) {
	with(checkFormArg(form)) {
		if(checkEmpty(eval(element+".value")))
			return;
		var linkPat=/(http:\/\/\w+.\w+\.\w+)(\.{0,1}\w*)(\.{0,1}\w*)/i;
		if(checkVal.match(linkPat)==null) {
			errorMsg+=argName+" 不是一个有效的 连接 格式.";
			focusToElement(eval(element));
		}
	}
	return checkReturn();
}

/*2002-12-25 18:22 v1.1.1*/

function validateSelect(form,element,argName) {
	with(checkFormArg(form)) {
		if(eval(element).selectedIndex==0)
			errorMsg="请选择 "+argName+" .";
	}
	return checkReturn();
}

/*2002-12-29 18:17 v1.1.2*/


function validateCompareDate(form,element1,element2,argName1,argName2) {
	if(validateDate(form,element1,argName1)==false)
		return false;
	if(validateDate(form,element2,argName2)==false)
		return false;
	with(checkFormArg(form)) {
		date1=eval(element1+".value");
		date2=eval(element2+".value");
		date1=date1.replace('/','');
		date1=date1.replace('-','/');
		date1=date1.replace('-','/');
		date2=date2.replace('/','');
		date2=date2.replace('-','/');
		date2=date2.replace('-','/');
		if(new Date(date1)<new Date(date2)) {
			errorMsg=argName1+" 必须大于 "+argName2+" .";
			focusToElement(eval(element1));
		}
	}
	return checkReturn();
}

/*2002-12-31 4:17 v1.1.3b*/


/*2003-1-29 3:44 update checkFormArg() method v1.1.4b*/
/*2003-1-29 4:38 update checkFormArg() method v1.1.4*/

function getRealLength(s)
{
	var i,j,s1;
	j=0;
	s1=escape(s);
	i=s1.indexOf("%u");
	while(i>=0)
	{
	        j=j+1;
	        i=s1.indexOf("%u",i+1);
	}
	return s.length+j;
}

function LTrim(s)
{
	for(var i = 0; i < s.length; i++)
		if(s.charAt(i) != ' ')
			return s.substring(i, s.length);
	return "";
}
function RTrim(s)
{
	for(var i = s.length - 1; i >= 0; i--)
		if(s.charAt(i) != ' ')
			return s.substring(0, i + 1);
	return "";
}
function Trim(s)
{
	return RTrim(LTrim(s));
}