/****************************************
 公共函数区
 ****************************************/

//A.字符串类函数

//去掉字符串左侧的空格
function trimLeft(s) {
    var whitespaces = " \t\n\r";
    for(n = 0; n < s.length; n++) { if (whitespaces.indexOf(s.charAt(n)) == -1) return (n > 0) ? s.substring(n, s.length) : s; }
    return("");
}

//去掉字符串右侧的空格
function trimRight(s){
    var whitespaces = " \t\n\r";
    for(n = s.length - 1; n  > -1; n--) { if (whitespaces.indexOf(s.charAt(n)) == -1) return (n < (s.length - 1)) ? s.substring(0, n+1) : s; }
    return("");
}

//去掉字符串左右的空格
function trim(s) {return ((s == null) ? "" : trimRight(trimLeft(s))); }

//将字符串按照分隔符分解为字符数组
function toStringArray(sourceString,sep){
	var tmpArray = new Array()
	var n = 0
	pos =sourceString.indexOf(sep);
	if(pos == -1){
		tmpArray[0] = sourceString
	}else{
		while(pos != -1){
			tmpArray[n] = sourceString.substring(0,pos)
			n++;
			sourceString = sourceString.substring(pos+1)
			pos =sourceString.indexOf(sep);
			if(pos == -1){
				tmpArray[n] = sourceString
			}
		}
	}
	return tmpArray
}

//B.数组类函数

//在字符串数组中查找指定的字符串值，根据查询结果返回True或False
function findingInArray(obj,v){
	for(k=0;k<obj.length;k++){
		if(obj[k] == v) return true;
	}
	return false;
}

//C.日期类函数

//取得某年某月的日数
function getMaxDayOfMonth(iYear,iMonth) {
	var dPrevDate = new Date(iYear, iMonth, 0);
	return dPrevDate.getDate();
}

//格式化单字符为双字符 9-> 09
function formatChar(iDay){
	iDay = ""+iDay
	if(iDay.length == 1) iDay="0"+iDay
	return iDay
}

//将6位的日期转换为由年月日分割的日期格式
function convertDate(strDate){
	y = parseInt(strDate.substr(0,4))
	m = parseInt(strDate.substr(4,2),10)
	d = parseInt(strDate.substr(6,2),10)
	
	return (y+"年"+m+"月"+d+"日")
}

//D.域值判断类函数

//提示用户填写输入框
function isBlank(field, strBodyHeader) {
    strTrimmed = trim(field.value);
    if (strTrimmed.length > 0) return false;
    alert("\"" + strBodyHeader + "\" 是一个必填字段.");
    field.focus();
    return true;
}
function isBlankA(strTrimmed) {
    if (strTrimmed.length > 0) return false;
    return true;  	
}
	
//提示用户填写必须是数字
function   isNotNumber(field,strBodyHeader) {
    strTrimmed = trim(field.value);
    if   (!isNaN(strTrimmed))   return   false;
    alert("\"" + strBodyHeader + "\" 是一个必填填写数字的字段.");
    field.focus();
    return true;
}
function isNotNumberA(strTrimmed) {
    if   (!isNaN(strTrimmed))   return   false;
    return true;
}



//提示用户选择下拉框
function isSelected(field, strBodyHeader) {
    for(i=0; i < field.length; i++) { if (field[i].selected && (trim(field[i].value).length > 0)) return true; }
    alert("\"" + strBodyHeader + "\" 是一个必选字段。 请选择一个值。");
    field.focus();
    return false;
}

//E.下拉框类函数

//插入选择项(重复值不插入)
function insertOption(obj,t,v){
	if(obj.length == 0 || obj.options[0] == ''){
		obj.options[0] = new Option(t,v)
		return true;
	}else{
		var findvalue = 0
		for(j = 0;j< obj.length;j++){
			if(obj.options[j].value == (v)){
				findvalue = 1
			}						
		}
		if(findvalue == 0){
			obj.options[obj.length] = new Option(t,v)
			return true;
		}else{
			return false;
		}
	}
}

//删除下拉框内选择的项
function deleteOption(obj){
	var idx = obj.selectedIndex
	if(idx != -1) obj.options[idx] = null;
}

//调整下拉框内选择的项目的位置
function updateOptionSort(act){  //act=up/down
	var obj = document.forms[0].viewselection
	var sortTextArray = new Array()
	var sortValueArray = new Array()
	
	var idx = obj.selectedIndex
	var lastidx;
	
	if(idx == -1){
		alert("请选择要调整顺序的项")
		return false;
	}
	
	for(var j = 0; j < obj.length; j++){
    	sortTextArray[j] = obj.options[j].text;
    	sortValueArray[j] = obj.options[j].value;
    	
    }
    
    if(act == "up"){
    	if(idx == 0){
    		alert("此项已至顶，无法再向上移动。")
    		lastidx = idx
    	}else{
    		var tmpText = sortTextArray[idx-1]
    		var tmpValue = sortValueArray[idx-1]
    		
    		sortTextArray[idx-1] = sortTextArray[idx] 
			sortValueArray[idx-1] = sortValueArray[idx] 
			
			sortTextArray[idx] = tmpText
			sortValueArray[idx] = tmpValue
			
			lastidx = idx-1
    	}
    }else{
		if(idx == (parseInt(obj.length)-1)){
    		alert("此项已至底，无法再向下移动。")
    		lastidx = idx
    	}else{
    		var tmpText = sortTextArray[idx+1]
    		var tmpValue = sortValueArray[idx+1]
    		
    		sortTextArray[idx+1] = sortTextArray[idx] 
			sortValueArray[idx+1] = sortValueArray[idx] 
			
			sortTextArray[idx] = tmpText
			sortValueArray[idx] = tmpValue
			
			lastidx = idx+1
    	}
    }
    for(i = 0;i< obj.length;i++){
		obj.options[i] = new Option(sortTextArray[i],sortValueArray[i])		
	}
	obj.selectedIndex = lastidx 
}

//F.复选框类函数

//复选框全部选定 
function selectedAll(){
	var form = document.forms[0];
	for(var i = 0; i < form.elements.length; i++) {
    	if(form.elements[i].type == "checkbox") {
       		form.elements[i].checked = true;    
    	}
	}
}
//复选框全部不选
function selectedNone(){
	var form = document.forms[0];
	for(var i = 0; i < form.elements.length; i++) {
    	if(form.elements[i].type == "checkbox") {
       		form.elements[i].checked = false;    
    	}
	}
}

//G.事件判断类函数

//回车键提交表单提交函数SubmitForm()
function keyPress_submit() {
  if(event.keyCode == 13) {
  	SubmitForm();
  	event.returnValue = false;
  }
}

//回车键转向域焦点
function keyPress_focus(obj) {
  if(event.keyCode == 13){
  	obj.focus();
  	event.returnValue = false;
  }
}

//根据域中键入字符的长度判断域焦点转向
function keyPress_next(lens,nextobj){
	if(this.value.length == lens) nextobj.focus()
}


//H.弹出框类函数
function ShowModalDialog(url,arg,width,height){
	result = window.showModalDialog(url ,arg,"dialogWidth:"+width+"px;dialogHeight:"+height+"px;help:0;status:0;scroll:0")
	if(result == "Cancel" || result == null) return;
	return result
}

/* H.输入控制 */
/* 仅支持数字输入(0-9) */
function onlyNumber(){
    if(event.keyCode ==8 | event.keyCode ==37 | event.keyCode ==39 | event.keyCode ==46){
        event.returnValue = true;
        return;
    }
    if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;
}
/* 仅支持数字输入(a-z A-Z)  */
function onlyChar(){
    if(event.keyCode ==8 | event.keyCode ==37 | event.keyCode ==39 | event.keyCode ==46){
        event.returnValue = true;
        return;
    }
    if (event.keyCode < 65 || (event.keyCode > 90 & event.keyCode<97) || event.keyCode>122) event.returnValue = false;
}
/* 仅支持数字及字符输入(0－9、a-z A-Z)  */
function onlyCharAndNumber(){
    if(event.keyCode ==8 | event.keyCode ==37 | event.keyCode ==39 | event.keyCode ==46){
        event.returnValue = true;
        return;
    }
    if (event.keyCode < 45 || (event.keyCode > 57 & event.keyCode < 65) || (event.keyCode > 90 & event.keyCode<97) || event.keyCode>122) event.returnValue = false;
}
/* 将输入的字符转为大写  */
function change_UpperCase(obj){
    if(event.keyCode ==8 | event.keyCode ==37 | event.keyCode ==39 | event.keyCode ==46){
        event.returnValue = true;
        return;
    }
    obj.value = obj.value.toUpperCase();
}
/****************************************
 自定义函数区(请注明函数作者及功能描述)
 ****************************************/