//------------------------------------------------辅助------------------------------------------------

/**
 * 打log,调试时,设置isDebug为true.
 */
var isDebug = false;
function log(message){
    if (isDebug) {
        if (!log.window_ || log.window_.closed) {
            var win = window.open("JavaScriptDebug", null, "width=400,height=200," +
            "scrollbars=yes,resizable=yes,status=no," +
            "location=no,menubar=no,toolbar=no");
            if (!win) 
                return;
            var doc = win.document;
            doc.write("<html><head><title>JavaScript Debug Log</title></head>" +
            "<body></body></html>");
            doc.close();
            log.window_ = win;
        }
        var logLine = log.window_.document.createElement("div");
        var now = new Date();
        message = "[" + now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds() + "]:" + message;
        logLine.appendChild(log.window_.document.createTextNode(message));
        log.window_.document.body.appendChild(logLine);
    }
}

/**
 * 弹出新窗口
 * @param {Object} url
 * @param {Object} winTitle
 * @param {Object} winParams
 */
function openWindow(url, winTitle, winParams) {
	winName = window.open(url, winTitle, winParams);
    winName.focus();
}

/**
 * 设置cookie
 * @param {Object} name
 * @param {Object} value
 * @param {Object} path
 * @param {Object} expires
 * @param {Object} domain
 * @param {Object} secure
 */
function setCookie(name,value,path,expires,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
}

/**
 * 取得cookie
 * @param {Object} name
 */
function getCookie(name) {
	var prefix = name + "="
	var start = document.cookie.indexOf(prefix)

	if (start==-1) {
		return null;
	}

	var end = document.cookie.indexOf(";", start+prefix.length)
	if (end==-1) {
		end=document.cookie.length;
	}

	var value=document.cookie.substring(start+prefix.length, end)
	return unescape(value);
}

/**
 * 删除cookie
 * @param {Object} name
 * @param {Object} path
 * @param {Object} domain
 */
function deleteCookie(name,path,domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

/**
 * 获取事件
 */
function getEvent(){
   if(document.all)    return window.event;
   func=getEvent.caller;
   while(func!=null){
       var arg0=func.arguments[0];
      if(arg0){
           if((arg0.constructor==Event || arg0.constructor ==MouseEvent)
               || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){
               return arg0;
           }
       }
       func=func.caller;
   }
   return null;
}

/**
 * 提交Ajax请求
 * example: callAjax({url:url,paras:parameters,async:false,cbMethod:callBackMethod});
 * attribute name must matching.
 */
function callAjax(obj){
   new Ajax.Request(
        obj.url,
        {
           method : obj.method||'post',
           onSuccess : obj.cbMethod,
           parameters : obj.paras||'',
           asynchronous : obj.async!=false  ,
           onFailure: function(){
              alert('Something went wrong...');
           }
        }
   );
}

/**
 * 提交表单。
 */
function submitForm(form) {
	if (isUndefined(form.onsubmit)) {
		form.submit();
	}
	if(form.onsubmit() != false) {
		form.submit();
	}
}

/**
 * 判断是IE还是Firefox浏览器
 **/
function isIE(){
    if (document.all) 
        return true;
    return false;
}

/**
 * 判断ie或者firefox.取span的text值
 **/
function ieOrFirefoxValid(obj){
    if (isIE()) 
        return obj.innerText;
    else 
        return obj.textContent;
}

/** 
 * 处理IE和Firefox event 事件的兼容性
 * 使在Firefox中能像在IE中一样使用 event 事件
 **/
if (window.Event) {
    try {
        window.constructor.prototype.__defineGetter__("event", function(){
            var o = arguments.callee.caller;
            var e;
            while (o != null) {
                e = o.arguments[0];
                if (e && (e.constructor == Event || e.constructor == MouseEvent)) 
                    return e;
                o = o.caller;
            }
            return null;
        });
    } 
    catch (e) {
    }
}

//------------------------------------------------Dom操作------------------------------------------------

/**
 * 改变一个dom对象的class
 * @param {Object} obj
 * @param {Object} newStyle
 */
function swapClass(obj, newStyle) {
   obj.className = newStyle;
}

/**
 * 将所有名字为name的Dom，disable属性设置为disabledV。
 * @param {Object} form
 * @param {Object} name
 * @param {Object} disabledV
 */
function setDisableGroupElsByName(form,name,disabledV) {
    var els=form.elements;
	for(var i=0;i<els.length;i++){
	  if(els[i].name==name){
	     els[i].disabled =disabledV;
	  }
	}
}

/**
 * 动态生成Dom
 * @param {Object} element
 * @param {Object} type
 * @param {Object} name
 * @param {Object} id
 * @param {Object} value
 * @param {Object} parent
 */
function createFormElement(element, type, name, id, value, parent) {
    var e = document.createElement(element);
    e.setAttribute("name", name);
    e.setAttribute("type", type);
    e.setAttribute("id", id);
    e.setAttribute("value", value);
    parent.appendChild(e);
}

/**
 * 切换obj的显示状态
 * @param {Object} objId
 */
function toggleObj(objId)  {
    var obj = document.getElementById(objId);
    if (obj && (obj.style.display == "" || obj.style.display == "block")) {
        obj.style.display = "none";
    } else if (obj && obj.style.display == "none") {
        obj.style.display = "block";
    }
}


/**
 * 把form里的值都清掉。
 */
function clearFormFields(frmObj) {
    restoreAllFormElements(originalStyleOfFormEls);
	for (var i = 0; i < frmObj.length; i++) {
        var element = frmObj.elements[i];
        if (element.type.indexOf("text") == 0 ||
            element.type.indexOf("textarea") == 0 ||
            element.type.indexOf("select") == 0 ||
            element.type.indexOf("password") == 0) {
            element.value = "";
		} else if (element.type.indexOf("checkbox") == 0 ||
			element.type.indexOf("radio") == 0) {
			element.checked = false;
		}
    }
}

/**
 * 把form里的值都trim一下。
 */
function trimFormFields(frmObj) {
	for (var i = 0; i < frmObj.length; i++) {
        var element = frmObj.elements[i];
        if (element.type.indexOf("text") == 0 ||
            element.type.indexOf("textarea") == 0 ||
            element.type.indexOf("password") == 0) {
            element.value = trim(element.value);
		}
    }
}

/**
 *  如果element只包含空格回车等，则把element清空。
 */
function setNullIfBlank(obj){
	if (isBlank(obj.value)) {
		obj.value="";
	}
}

/**
 *  如果element只包含空格回车等，则返回true。
 */
function isBlank(element){
	val = element.value;
	if(val == null){
		return true;
	}
	val = trim(val);
	element.value = val;
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){
			return false;
		}
	}
	return true;
}

/**
 * getElementById的简写
 */
function getEl(id) {
	return document.getElementById(id);
}

/**
 * 使元素获得焦点
 */
function focusElement(element) {
	if (isArray(element) && (typeof(element.type)=="undefined")) {
		element=element[0];
	}
	element.focus();
}


//------------------------------------------------复选框------------------------------------------------

/**
 * 选择所有的复选框，选择之后调用一下此方法，就会把所有的复选框都选中。
 * @param {Object} theForm
 */
function checkAll(theForm) {
  for (var i=0;i<theForm.elements.length;i++) {
    var e = theForm.elements[i];
		var eName = e.name;
    	if (eName != 'allbox' &&
            (e.type.indexOf("checkbox") == 0)) {
        	e.checked = theForm.allbox.checked;
		}
	}
}

/**
 * 选择所有的复选框，选择之后调用一下此方法，就会把所有指定名字的复选框都选中。
 * @param {Object} theForm
 * @param {Object} elementName
 */
function checkAllByName(theForm,elementName) { // check all the checkboxes in the list
	  for (var i=0;i<theForm.elements.length;i++) {
	    var e = theForm.elements[i];
			var eName = e.name;
	    	if (eName != 'allbox' &&
	            (e.type.indexOf("checkbox") == 0)&& eName==elementName) {
	        	e.checked = theForm.allbox.checked;
			}
		}
}

/**
 * 名字为name的所有复选框中，有没有被选中的，有就返回true。
 * @param {Object} form
 * @param {Object} name
 */
function isCheckedByName(form,name) {
    var els=form.elements;
	var isChecked =false;
	for(var i=0;i<els.length;i++){
	  if(els[i].name==name && els[i].checked){
	     isChecked =true;
	     break;
	  }
	}
	return isChecked;
}

/**
 * 改变复选框的状态
 * @param {Object} elementId
 */
function toggleChoice(elementId) {
    var element = document.getElementById(elementId);
    if (element.checked) {
        element.checked = false;
    } else {
        element.checked = true;
    }
}

/**
 * 根据name选择一组radio，让radio的第index个被选中。
 * @param {Object} elementId
 * @param {Object} index
 */
function toggleRadio(elementId, index) {
    var element = document.getElementsByName(elementId)[index];
    element.checked = true;
}

//------------------------------------------------字符串------------------------------------------------

/**
 * 判断字符串是否包含中文。
 * @param {Object} value
 */
function isChinese(value) {
    if (value.length == 0) {
    	return false;
    }
    for(n=0; n < value.length; n++) {
        var c=value.charCodeAt(n);
        if (c>127) {
        	return true;
        }
    }
	return false;
}

/**
 * 去掉首尾空格。
 * @param {Object} str
 */
function trim(str) {
    if (str != null) {
        var i;
        for (i=0; i<str.length; i++) {
            if (str.charAt(i)!=" ") {
                str=str.substring(i,str.length);
                break;
            }
        }

        for (i=str.length-1; i>=0; i--) {
            if (str.charAt(i)!=" ") {
                str=str.substring(0,i+1);
                break;
            }
        }

        if (str.charAt(0)==" ") {
            return "";
        } else {
            return str;
        }
    }
}

/**
 * 判断str是不是数字。
 * @param {Object} digStr
 * @param {Object} fCanEmpty
 */
function isDigit(digStr, fCanEmpty) {
    if (fCanEmpty == null || fCanEmpty==undefined) fCanEmpty = true;
    if (fCanEmpty == true && digStr.length == 0) return true;
    if (digStr.length > 0 && digStr.charAt(0) == '-') {
       digStr = digStr.substr(1);
    }
    var result = digStr.match(/[^0-9]/g);
    if (result || !digStr) return false;
    return true;
}

/**
 * 判断val是不是空。
 */
function isNull(val) {
	return val==null;
}

/**
 * 判断Object是不是数组类型
 */
function isArray(obj){
	return (typeof(obj.length)=="undefined")?false:true;
}

/**
 * 判断Object是不是undefined类型
 */
function isUndefined(object) {
    return typeof object == "undefined";
}

/**
 * 返回byte长度
 */
function getStringLengthByBytes(str) {
	return str.replace(/[^\x00-\xFF]/g, '**').length;
}

/**
 * 按照byte长度从左开始截
 */
function leftStringByBytes(str, len) {
    value = trim(str);
	var valueLength = getStringLengthByBytes(value);

	if (valueLength < len || len < 0) {
		return value;
	}
	intLength = 0;
	var rtnString = "";
    for(n=0; (n < valueLength && intLength < len); n++) {
        var c=value.charCodeAt(n);
       	rtnString += value.charAt(n);
        if (c<128) {
            intLength += 1; 
        } else { 
            intLength += 2;
        }
    }
	return rtnString;
}

/**
 * 英文数字或者字母，不包含标点符号。
 */
function isEngDigit(c) {
	if ( (c >= 0x30 && c <= 0x39) || (c >= 0x41 && c <= 0x5a) || (c >= 0x61 && c<= 0x7a)) {
		return true
	} else {
		return false;
	}
}

//------------------------------------------------select------------------------------------------------

/**
 * 判断obj是否包含option子元素
 */
function hasOptions(obj) {
	return (obj!=null && typeof(obj.options)!="undefined" && obj.options!=null);
}

/**
 * select中的value是否被选中
 * @param {Object} select
 * @param {Object} value
 */
function isContainedValueInSelect(select, value) {
    var len=select.length;
    var rtnResult = false;
    for(var i=0;i<len;i++){
       if (select.options[i].value==value) {
       		rtnResult = true;
       		break;
       }
    }
    return rtnResult;
}

/**
 * 向select中新加一个option
 */
function optionAddChildNode(obj, value, display) {
    var len=obj.length;
    for(var i=0;i<len;i++)
    {
       if (obj.options[i].value==value) {
       		return;
       }
    }
	obj.options.add(new Option(display, value))
}

/**
 * 把select中，选中的option删除掉
 */
function optionRemoveChildNodes(obj)
{
    var len=obj.length;
    for(var i=len-1;i>=0;i--)
    {
        if(obj.options[i].selected)
        {
            obj.remove(i);
        }
    }
}

/**
 * 选择select中所有的option
 */
function optionSelectAll(obj)
{
    var len=obj.length;
    for(var i=0;i<len;i++)
    {
        obj.options[i].selected=true;
    }
}

/**
 * 取消选择select中所有的option
 */
function optionUnSelectAll(obj)
{
    var len=obj.length;
    for(var i=0;i<len;i++)
    {
        obj.options[i].selected=false;
    }
}

/**
 * 删除select中所有的option
 */
function optionClearListObj(obj)
{
    var len=obj.length;
    for(var i=0;i<len;i++) obj.remove(0);
}

/**
 * 选中select中某option，按del按钮，将删除此option. example:
 * <SELECT NAME="targetSelect" size="10" style="WIDTH: 12em" multiple
 * onkeydown="optionDelete(this)">
 */
function optionDelete(obj) {
	var ev = getEvent();
	if (ev.keyCode == 46) {
		optionRemoveChildNodes(obj);
		obj.focus();
	}
}

/**
 * 把一个select的option剪切到另一个select
 */
function optionMoveAll(source, target) {
	optionSelectAll(source);
	optionCopy(source, target);
	optionRemoveChildNodes(source);
}

/**
 * 把一个select中选择的option剪切到另一个select
 */
function optionMove(source, target) {
	optionCopy(source, target);
	optionRemoveChildNodes(source);
}

/**
 * 复制已经被选择了的option
 */
function optionCopy(source, target) {
	if (!hasOptions(source)) {
		return false;
	}
	var options = new Object();
	if (hasOptions(target)) {
		for (var i=0; i<target.options.length; i++) {
			options[target.options[i].value] = target.options[i].text;
		}
	}
	for (var i=0; i<source.options.length; i++) {
		var o = source.options[i];
		if (o.selected) {
			if (typeof(options[o.value])=="undefined" || options[o.value]==null || options[o.value]!=o.text) {
				var index = (!hasOptions(target))?0:target.options.length;
				target.options[index] = new Option( o.text, o.value, false, false);
			}
		}
	}
	return true;
}


/**
 * 排序option
 */
function sortOptions(obj) {
	var o = [];
	if (!hasOptions(obj)) { return false; }
	for (var i=0; i<obj.options.length; i++) {
		o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;
	}
	if (o.length==0) { return true; }
	o = o.sort(
		function(a,b) {
			if ((a.text+"") < (b.text+"")) { return -1; }
			if ((a.text+"") > (b.text+"")) { return 1; }
			return 0;
		}
	);
	for (var i=0; i<o.length; i++) {
		obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	}
	return true;
}

/**
 * 交换两个option
 */
function swapOptions(obj,i,j) {
	if (!hasOptions(obj)) { return false; }
	var o = obj.options;
	if (i<0 || i>=o.length || j<0 || j>=o.length) { return false; }
	var i_selected = o[i].selected;
	var j_selected = o[j].selected;
	var temp = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	var temp2= new Option(o[j].text, o[j].value, o[j].defaultSelected, o[j].selected);
	o[i] = temp2;
	o[j] = temp;
	o[i].selected = j_selected;
	o[j].selected = i_selected;
	return true;
}

/**
 * 把选中的option移动到select的头部
 */
function moveOptionTop(obj) {
	if (!hasOptions(obj)) { return false; }
	var isAllatTop = false;
	moveOptionUp(obj);
	while(!isAllatTop) {
		isAllatTop = true;
		for (i=0; i<obj.options.length; i++) {
			if (obj.options[i].selected) {
				if (i>0 && !obj.options[i-1].selected) {
					isAllatTop = false;
					moveOptionTop(obj);
				}
			}
		}
	}
}

/**
 * 把选中的option移动到select的底部
 */
function moveOptionBottom(obj) {
	if (!hasOptions(obj)) { return false; }
	var isAllatBottom = false;
	moveOptionDown(obj);
	while(!isAllatBottom) {
		isAllatBottom = true;
		for (i=0; i<obj.options.length; i++) {
			if (obj.options[i].selected) {
				if (i != (obj.options.length-1) && ! obj.options[i+1].selected) {
					isAllatBottom = false;
					moveOptionDown(obj);
				}
			}
		}
	}
}

/**
 * 把选中的option向上移动
 */
function moveOptionUp(obj) {
	if (!hasOptions(obj)) { return false; }
	for (i=0; i<obj.options.length; i++) {
		if (obj.options[i].selected) {
			if (i>0 && !obj.options[i-1].selected) {
				swapOptions(obj,i,i-1);
				obj.options[i-1].selected = true;
			}
		}
	}
	return true;
}

/**
 * 把选中的option向下移动
 */
function moveOptionDown(obj) {
	if (!hasOptions(obj)) { return false; }
	for (i=obj.options.length-1; i>=0; i--) {
		if (obj.options[i].selected) {
			if (i != (obj.options.length-1) && ! obj.options[i+1].selected) {
				swapOptions(obj,i,i+1);
				obj.options[i+1].selected = true;
			}
		}
	}
	return true;
}

//------------------------------------------------表单验证------------------------------------------------

/**
 * 检查邮箱格式. null will return true.
 */
function checkEmail(elm) {
	var emailStr;
    if (elm.value == null) { //it's just a variable
        elm = trim(elm);
        emailStr = elm;
    } else { //it's a control
        elm.value = trim(elm.value);
        emailStr = elm.value;
    }
   if (emailStr.length == 0) {
       return true;
   }
   var emailPat=/^(.+)@(.+)$/;
   var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
   var validChars="\[^\\s" + specialChars + "\]";
   var quotedUser="(\"[^\"]*\")";
   var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
   var atom=validChars + '+';
   var word="(" + atom + "|" + quotedUser + ")";
   var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
   var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
   var matchArray=emailStr.match(emailPat);
   if (matchArray == null) {
       return false;
   }
   var user=matchArray[1];
   var domain=matchArray[2];
   if (user.match(userPat) == null) {
       return false;
   }
   var IPArray = domain.match(ipDomainPat);
   if (IPArray != null) {
       for (var i = 1; i <= 4; i++) {
          if (IPArray[i] > 255) {
             return false;
          }
       }
       return true;
   }
   var domainArray=domain.match(domainPat);
   if (domainArray == null) {
       return false;
   }
   var atomPat=new RegExp(atom,"g");
   var domArr=domain.match(atomPat);
   var len=domArr.length;
   if ((domArr[domArr.length-1].length < 2) ||
       (domArr[domArr.length-1].length > 3)) {
       return false;
   }
   if (len < 2) {
       return false;
   }
   return true;
}

/**
 * 检查IP地址
 */
function checkIPStr(ipAddress, canEmpty) {
    if (canEmpty == null) canEmpty = true;
    if (canEmpty == true && trim(ipAddress)<=0) return true;
    ipPartten = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
    ipText = ipAddress;
    if (ipPartten.test(ipText)) {
    	var values = ipText.split(".");
	    for (var i = 0; i < values.length; i++) {
	        var chkee = new Number(values[i]);
	        if(i==0){
	        	if (chkee <= 0 || chkee > 255) {
		        	return false;
		        }
	        } else {
	        	if (chkee < 0 || chkee > 255) {
		        	return false;
		        }
	        }
	    }
	    return true;
	}
	return false;
}


/**
 * 检查URL地址是否合法
 * @param {Object} strUrl
 */
function checkValidUrl(strUrl) {
    var RegexUrl = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
    return RegexUrl.test(strUrl.toLowerCase());
}

/**
 * 检查FTP地址是否合法
 */
function checkValidFtpUrl(strFtpUrl) {
    var RegexUrl = /(ftp):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
    return RegexUrl.test(strFtpUrl.toLowerCase());
}

/**
 * 检查文件名是否为制定格式，extension可以为单个，也可以是array
 * @param {Object} fileName
 * @param {Object} extension
 */
function checkExtensionOfFileName(fileName,extension){
  if(fileName==null || fileName==undefined || fileName ==""){
     return false;
  }
  if(extension==null || extension==undefined || extension ==""){
     return true;
  }
  var ext =fileName.substring(fileName.lastIndexOf(".")+1);
  ext = ext.toLowerCase();

  //check extension is array
  if(extension.length==undefined){
     return ext==extension.toLowerCase();
  } else {
     var len = extension.length;
     for(var i =0;i<len;i++){
        if(ext==extension[i].toLowerCase()){
           return true;
        }
     }
  }
  return false;
}

/**
 * 检查手机号格式
 */
function checkMobilePhoneNum(str) {
	var arr = new Array();
	
	for(var i = 0 ; i < 10 ; i++) {
		arr[i] = "13" + i;
		arr[10+i] = "15" + i;
	}
	var temp_str = arr.join("|");
	var reg_str = "^(" + temp_str + ")[0-9]{8}$";
	var reg = new RegExp(reg_str);
	return reg.test(str);
}

/**
* 检查密码格式
*/
function checkPassword(str) {
	var reg = /^[0-9a-zA-Z\.\-\?_]{6,16}$/;
	return reg.test(str);
}

/**
* 检查文件名格式
*/
function checkFileName(fileName,suffixArray) {
	var temp_str = suffixArray.join("|");
	var reg_str = "^.+\\.(" + temp_str + ")$";
	var reg = new RegExp(reg_str);
	return reg.test(fileName.toLowerCase());
}

/**
* 检查日期格式 yyyy-MM-dd
*/
function checkDateFormat(str) {
	var reg = /^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/;
	return reg.test(str);
}

/**
* 判断输入是否是邮政编码
*/
function checkPostCode(str) {
	var result=str.match(/[1-9]\d{5}(?!\d)/);   
	if(result==null) return false;   
	return true;   
}

/**
 * 判断输入是否是固定电话号码
 * @param {Object} str
 */
function checkFixedTelephoneNum(str)   
{   
    var result=str.match(/\d{3}-\d{8}|\d{4}-\d{7}/);   
    if(result==null) return false;   
    return true;   
}

/**
* 判断输入是否是一个整数   
*/
function isInt(str)   
{   
    var result=str.match(/^(-|\+)?\d+$/);   
    if(result==null) return false;   
    return true;   
}   

/**
* 判断输入是否是一个正整数   
*/
function isPositiveInteger(str)   
{   
    var result=str.match(/^\d+$/);
    if(result==null) return false;   
    return true;   
}

/**
* 判断是否为数字
*/
function isNum(s)
{
    if (s!=null && s!="")
    {
        return !isNaN(s);
    }
    return false;
}

/**
* 数字，小数点后可以有两位。
*/
function checkAmount(s) {
	var reg=/^\d+[.]?\d{0,2}$/; 
	return reg.test(s); 
}

/**
* 判断上传文件的类别
*/
function checkUploadFileType(form,fileId){
	 var fileName=document.getElementById(fileId).value;
	 if(fileName!=""&&fileName.length!=0){
	 var pos = fileName.lastIndexOf(".");
	 var lastname = fileName.substring(pos,fileName.length);	 
	 var flag=false;
	 var ary=new Array('.pdf','.doc');
	 for(var i=0;i<ary.length;i++){
		 if(lastname.toLowerCase()==ary[i]){
               flag=true;
		 }
	 }
	 if (!flag)
	 {
		 alert("文件类型必须为.doc或.pdf的文件!");
	 }
	 else{
		 form.submit();
	 }
	 }else{
		 form.submit();
	 }
}

//------------------------------------------------业务相关------------------------------------------------

/**
* 搜索城市1
*/
function catch_keydown(sel){
  	if(event.keyCode > 128) sel.options[sel.length-1].selected = true;
	  if(event.keyCode==13){
	  	var inputCity = sel.options[sel.length-1].text;
	  	var promptSign;
	  	sel.options[sel.length-1] = new Option("","",false,true);
	  	for(var i = 0; i < sel.length-1; i++){
	  		if(sel.options[i].text.indexOf(inputCity)>-1){
	  			sel.options[i].selected = true;
	  			promptSign = 1;
				doQuery(document.forms[0]);
	  			break;
	  		}
	  	}
	  	if(promptSign != 1)  //如果输入的值在下拉框中没有,则下拉框中显示请选择
	  		sel.options[0].selected = true;
		event.returnValue = false;
	  }else if(event.keyCode==8){
		  var s = sel.options[sel.length-1].text;
		  sel.options[sel.length-1].text = s.substr(0,s.length-1);
		event.returnValue = false;
	  }
  }
  
  
/**
 * 直接搜索城市但不提交
 */
function catch_keydown_notsubmit(sel){
  	  if(event.keyCode > 128) sel.options[sel.length-1].selected = true;
	  if(event.keyCode==13 || event.keyCode == 32){ //按了空格或者回车键
	  	var inputCity = sel.options[sel.length-1].text;
	  	var promptSign;
	  	sel.options[sel.length-1] = new Option("","",false,true);
	  	for(var i = 0; i < sel.length-1; i++){
	  		if(sel.options[i].text.indexOf(inputCity)>-1){ 
	  			sel.options[i].selected = true; 
	  			promptSign = 1;
	  			break;
	  		}
	  	}
	  	if(promptSign != 1)  //如果输入的值在下拉框中没有,则下拉框中显示请选择
	  		sel.options[0].selected = true;
		event.returnValue = false;
	  }else if(event.keyCode==8){
		  var s = sel.options[sel.length-1].text;
		  sel.options[sel.length-1].text = s.substr(0,s.length-1);
		  event.returnValue = false;
	  }
  }
  
/**
* undefine
*/
  function catch_press(sel){
	  sel.options[sel.length-1].text = sel.options[sel.length-1].text + String.fromCharCode(event.keyCode);
	  event.returnValue = false;
  }
  
