$.extend($.fn.validatebox.defaults.rules, {
	widthBigThanZero:{
		validator: function (value) {
			console.log(value);
			return value>0;
		},
		message: '宽度必须大于0'
	},
	pointIsNatural:{
		validator: function (value) {
			var patt = /([1-9]\d+)|(\d)/;
			return patt.test(value);;
		},
		message: '小数点必须为自然数'
	},
	lengthPositive :{
		validator: function (value) {
			var patt = /[1-9]\d*/;
			return patt.test(value);;
		},
		message: '长度必须为正整数'
	},
	lengthByType :{
		validator: function (value) {
			console.log(value);
			if(value>1&&value<4){
				return true;
			}else{
				return false;
			}
		},
		message: '长度必须在指定范围内'
	}
});
/**
 * 序号:1
 * 功能:定义分页(EasyUI)
 * 参数:
 * 说明:
 * 作者:高伟杰
 * 时间:2016-01-22
 * 单位:宁波金网
 * 备注:无需更改
 **/
var ls_width = $(window).width();
var ls_height = $(window).height();

var local_page=1;
var rows=20;
var listPageSize = [10,20,50,100,500,1000];
var queryData = eval("({'page':'"+local_page+"','rows':'"+rows+"'})");
var tab_n = 0;

//重置分页参数
function resetQueryData(){
	queryData = "";
	queryData = eval("({'page':'"+local_page+"','rows':'"+rows+"'})");
}

//定义附件关联模块ID(1:一般业务,2:测试信息,3:审批业务,999:其它数据 )
var ls_module_id='2';
//定义当前模块业务类型(YBYW:一般业务,SPGL:审批业务) 
var ls_ywlx = 'YBYW';
/****/

/**
 * 序号:2
 * 功能:构建下拉框内容
 * 参数:
 * 说明:方便新增、修改页面里的下拉选项加载数据
 * 作者:高伟杰
 * 时间:2016-01-22
 * 单位:宁波金网
 * 备注:需更改
 **/
var is_dbsynch_data=[{CODE_ID:'0',CODE_NAME:'不同步'},{CODE_ID:'1',CODE_NAME:'同步'}];

var type_data=[
{CODE_ID:'varchar',CODE_NAME:'varchar'},
{CODE_ID:'int',CODE_NAME:'int'},
{CODE_ID:'double',CODE_NAME:'double'},
{CODE_ID:'float',CODE_NAME:'float'},
{CODE_ID:'blob',CODE_NAME:'blob'},
{CODE_ID:'bigdecimal',CODE_NAME:'bigdecimal'},
{CODE_ID:'text',CODE_NAME:'text'},
{CODE_ID:'datetime',CODE_NAME:'datetime'},
{CODE_ID:'date',CODE_NAME:'date'}];

var list_default_field=[{
	FIELD_NAME:'uuid',
	LENGTH:50,
	POINT:'',
	FIELD_MUST_INPUT:true,
	IS_KEY:true,
	CONTENT:'主键UUID',
	FIELD_DEFAULT:'',
	TYPE:'varchar',
	FIELD_WIDTH:20,
	IS_NULL:false,
	IS_SHOW_LIST:false
},{
	FIELD_NAME:'create_id',
	LENGTH:50,
	POINT:'',
	FIELD_MUST_INPUT:true,
	IS_KEY:false,
	CONTENT:'新建人',
	FIELD_DEFAULT:'',
	TYPE:'varchar',
	FIELD_WIDTH:20,
	IS_NULL:true,
	IS_SHOW_LIST:false
},{
	FIELD_NAME:'create_time',
	LENGTH:'',
	POINT:'',
	FIELD_MUST_INPUT:true,
	IS_KEY:false,
	CONTENT:'新建时间',
	FIELD_DEFAULT:'',
	TYPE:'date',
	FIELD_WIDTH:20,
	IS_NULL:true,
	IS_SHOW_LIST:false
},{
	FIELD_NAME:'update_id',
	LENGTH:50,
	POINT:'',
	FIELD_MUST_INPUT:true,
	IS_KEY:false,
	CONTENT:'更新人',
	FIELD_DEFAULT:'',
	TYPE:'varchar',
	FIELD_WIDTH:20,
	IS_NULL:true,
	IS_SHOW_LIST:false
},{
	FIELD_NAME:'update_time',
	LENGTH:'',
	POINT:'',
	FIELD_MUST_INPUT:true,
	IS_KEY:false,
	CONTENT:'更新时间',
	FIELD_DEFAULT:'',
	TYPE:'date',
	FIELD_WIDTH:20,
	IS_NULL:true,
	IS_SHOW_LIST:false
}];

var tr=['<tr>',
	'    <td >@{index}</td>',
	'    <td >@{opt}</td>',
	'    <td >@{field_name}</td>',
	'    <td >@{content}</td>',
	'    <td >@{type}</td>',
	'    <td >@{length}</td>',
	'    <td >@{point}</td>',
	'    <td >@{field_default}</td>',
	'    <td >@{field_width}</td>',
	'    <td >@{is_key}</td>',
	'    <td >@{is_null}</td>',
	'    <td >@{order_num}</td>',
	'    <td >@{is_show_list}</td>',
	'</tr>'].join("");

/****/

/**
 * 序号:3
 * 功能:构建主页面列表
 * 参数:
 * 说明:
 * 作者:高伟杰
 * 时间:2016-01-22
 * 单位:宁波金网
 * 备注:需更改
 **/
//定义grid列表
var ls_title="表单管理&nbsp;&nbsp;";
var is_column = [ [
				{field : 'TABLE_NAME',title : '表名',width : 100,align : 'center'},
				{field : 'CONTENT',title : '描述',width : 80,align : 'center'},
				{field : 'IS_DBSYNCH',title : '是否同步到数据库',width : 100,align : 'center',formatter:function(value,row,index){
					if(value=='0'){
						return "未同步";
					}else{
						return "同步";
					}
				}},
				{field : 'CREATE_ID',title : '创建人员',width : 100,align : 'center'},
				{field : 'CREATE_TIME',title : '创建时间',width : 100,align : 'center'},
				{field : 'UPDATE_TIME',title : '更新时间',width : 100,align : 'center'},
				{field : 'UPDATE_ID',title : '更新人员',width : 100,align : 'center'}
				] ];
//列表加载完成回调
function dataOnLoadSuccess(){
	
}
//设置颜色和每行高度
function rowstyler(index,row){

}

//展示列表
datagrid("list", ls_title, gaowj.WEB_APP_NAME + "/formtableData_list", queryData, is_column, 60, 80);

/****/

/**
 * 序号:4
 * 功能:设置主页面操作列菜单
 * 参数:
 * 说明:
 * 作者:高伟杰
 * 时间:2016-01-22
 * 单位:宁波金网
 * 备注:需更改
 **/
//操用列显示更多(一般情况下无需更改)
function formatMenu(value, data,index) {
	var returnData="";
	return  returnData
	      + "<span class=\"icon-ext-moremenu\" style=\"padding-left:20px;*width:20px;\"></span>"
	      + "<span data-p1="+index+" class=\"easyui-tooltip\" style=\"color:blue;cursor:pointer;\">更多</span>";
}

//上浮横向菜单集里的具体菜单项(需更改)
function getOptionMenu(data,index){
	var returnData= "<span class=\"icon-edit\" style=\"padding-left:20px;*width:20px;\"></span><a href=\"javascript:void(0);\" onclick=\"editRow('"
		+ index + "')\">编辑</a>  |  <span class=\"icon-edit\" style=\"padding-left:20px;*width:20px;\"></span><a href=\"javascript:void(0);\" onclick=\"templateRow('"
		+ index + "')\">模板</a>  |  <span class=\"icon-clear\" style=\"padding-left:20px;*width:20px;\"></span><a href=\"javascript:void(0);\" onclick=\"synchRow('"
		+ index + "')\">同步</a>  |  <span class=\"icon-ext-file\" style=\"padding-left:20px;*width:20px;\"></span><a href=\"javascript:void(0);\" onclick=\"deleteRow('"
		+ index + "')\">删除</a>";
	return returnData;
}

//返回菜单集的菜单个数(需更改)
function getOptionMenuCount(){
	var is_menu_count = 4;
	return is_menu_count;
}

/****/

/**
 * 序号:5
 * 功能:新增修改弹出
 * 参数:
 * 说明:
 * 作者:高伟杰
 * 时间:2016-01-22
 * 单位:宁波金网
 * 备注:需更改
 **/
//加载增加子页面
function addRow(){
	var is_row={OPETYPE:'insert'};
	openEditRow("formtableView_formtableTabDetail",is_row,"新增",true,0.95,0.95,0,0);

}
//加载增加子页面成功后的回调
function addUrlOnloadCallback(is_row){
	initTableInsert();
}

function initTableInsert(){
	var fieldTable=$("#fieldTable");
	$(replaceByJson(tr,{
		index:'序号',
		opt:'操作',
		field_name:'字段名称',
		content:'备注',
		type:'数据类型',
		length:'长度',
		point:'小数点',
		field_default:'默认值',
		field_width:'字段宽度',
		is_key:'主键',
		is_null:'允许空值',
		order_num:'',
		is_show_list:'列表显示',
	})).appendTo(fieldTable);
	fieldTable.find('tr').eq(0).find('td').css({'fontWeight':'bold','background':'#f1f1f1','textAlign':'center'})
	
	$('#IS_DBSYNCH').combobox({
		data : is_dbsynch_data,
		valueField : 'CODE_ID',
		textField : 'CODE_NAME',
		editable:false,  
		panelHeight:'auto'
	});
	
	for(var i=0;i<list_default_field.length;i++){
		var tr2=tr;
		var field=list_default_field[i];
		tr2=replaceByJson(tr2,fieldModel(i,field));
		$(tr2).appendTo(fieldTable);
		initEasyUiControl(i);

	}
	
	//重置表的索引
	resetFieldTableIndex();
	//设置表的最大索引值(为了简单起见,第一次初始化为当前行数,以后每新增一行,该值+1)
	$("#fieldTable").data('maxIndex',$('#fieldTable tr').length-2);
}

function fieldModel(i,field){
	if(typeof field=='undefined'){
		field={
				FIELD_NAME:'',
				CONTENT:'',
				TYPE:'',
				LENGTH:'',
				POINT:'',
				FIELD_DEFAULT:'',
				FIELD_WIDTH:'',
				IS_KEY:false,
				IS_NULL:true,
				IS_SHOW_LIST:false
		};
	}
	if(typeof field.LENGTH=='undefined'){
		field.LENGTH='';
	}
	if(typeof field.POINT=='undefined'){
		field.POINT='';
	}
	if(typeof field.field_width == 'undefined'){
		field.FIELD_WIDTH='';
	}
	return {
		index:i+1,
		opt:'<input style="width:25px;" type="checkbox" name="checkbox"/>',
		field_name:'<input type="text" name="LIST['+i+'].NAME" value="'+field.FIELD_NAME+'" />',
		content:'<input type="text" name="LIST['+i+'].CONTENT" value="'+field.CONTENT+'" />',
		type:'<input type="combobox" name="LIST['+i+'].TYPE" value="'+field.TYPE+'" />',
		length:'<input placeholder="dfsd" type="text" name="LIST['+i+'].LENGTH" value="'+field.LENGTH+'" />',
		point:'<input type="text" name="LIST['+i+'].POINT" value="'+field.POINT+'" />',
		field_default:'<input type="text" name="LIST['+i+'].FIELD_DEFAULT" value="'+field.FIELD_DEFAULT+'" />',
		field_width:'<input type="text" name="LIST['+i+'].FIELD_WIDTH" value="'+field.FIELD_WIDTH+'" />',
		is_key:'<input style="width:25px;" type="checkbox" value="'+field.IS_KEY+'" name="LIST['+i+'].IS_KEY" '+(field.IS_KEY==true?'checked':'')+' />',
		is_null:'<input style="width:57px;" type="checkbox" value="'+field.IS_NULL+'" name="LIST['+i+'].IS_NULL" '+(field.IS_NULL==false?'':'checked')+' />',
		order_num:'<input style="width:57px;" class="field_order_number" type="hidden" name="LIST['+i+'].ORDER_NUM" />',
		is_show_list:'<input style="width:57px;" type="checkbox" value="'+field.IS_SHOW_LIST+'" name="LIST['+i+'].IS_SHOW_LIST" '+(field.IS_SHOW_LIST==false?'':'checked')+' />'
	};
}

/**
 * 初始化easyui控件
 */
function initEasyUiControl(i){
	$('input[name="LIST['+i+'].NAME"]').textbox({
		required: true
	});
	$('input[name="LIST['+i+'].CONTENT"]').textbox({
		required: true
	});
	$('input[name="LIST['+i+'].LENGTH"]').textbox({
		//validType:'lengthPositive'
	});
	$('input[name="LIST['+i+'].POINT"]').textbox({
		validType:'pointIsNatural'
	});
	$('input[name="LIST['+i+'].FIELD_DEFAULT"]').textbox({
		
	});
	$('input[name="LIST['+i+'].FIELD_WIDTH"]').textbox({
		validType:'widthBigThanZero'
	});
	$('input[name="LIST['+i+'].TYPE"]').combobox({
		data : type_data,
		valueField : 'CODE_ID',
		textField : 'CODE_NAME',
		editable:false,  
		panelHeight:'auto',
		onSelect:function(record){
			//$('input[name="LIST['+i+'].LENGTH"]').prev().attr("placeholder","1-4");
			console.log($('input[name="LIST['+i+'].LENGTH"]').textbox());
			$('input[name="LIST['+i+'].LENGTH"]').textbox({
				validType:'lengthByType'
			});
		}
	});
}

function resetFieldTableIndex(){
	//除标题行外的所有行内寻找".field_order_number"元素,将值设置为当前索引
	//并将序号设置为当前索引
	$('#fieldTable tr').eq(0).nextAll().each(function(index,element){
		$(element).find('.field_order_number').val(index+1);
		$(element).find('td').eq(0).html('<span style="width:50px;display:inline-block;text-align:center;">'+(index+1)+'</span>');
	});
}

//保存
function insertData(is_entity){
	var v_result = formtableModule.act.insertFormTable(is_entity);
	$('#list').datagrid('reload');
	return v_result;
}

//加载修改子页面
function editRow(index) {
	$('#list').datagrid('selectRow',index);
	var is_row = $('#list').datagrid('getSelections');
	$('#list').datagrid('clearSelections');
	is_row[0].OPETYPE = 'update';
	openEditRow("formtableView_formtableTabDetail",is_row[0],"编辑",true,0.95,0.95,0,0);	
	
}

//加载修改子页面成功后的回调
function updateUrlOnloadCallback(is_row){
	initTableUpdate(is_row);
}

function initTableUpdate(is_row){
	$.ajax({
		url:'formtableAct_listTableFile',
		type:'post',
		data:{
			UUID:is_row.UUID
		},
		success: function(data){
			 var fieldTable=$("#fieldTable");
				$(replaceByJson(tr,{
					index:'序号',
					opt:'操作',
					field_name:'字段名称',
					content:'备注',
					type:'数据类型',
					length:'长度',
					point:'小数点',
					field_default:'默认值',
					field_width:'字段宽度',
					is_key:'主键',
					is_null:'允许空值',
					order_num:'',
					is_show_list:'列表显示',
				})).appendTo(fieldTable);
				
				if(is_row.IS_DBSYNCH==0){
					$('#IS_DBSYNCH').html('未同步');
				}else{
					$('#IS_DBSYNCH').html('已同步');
				}
				for(var i=0;i<data.listfield.length;i++){
					var tr2=tr;
					var field=data.listfield[i];
					tr2=replaceByJson(tr2,fieldModel(i,field));
					$(tr2).appendTo(fieldTable);
					$('input[name="LIST['+i+'].TYPE"]').combobox({
						data : type_data,
						valueField : 'CODE_ID',
						textField : 'CODE_NAME',
						editable:false,  
						panelHeight:'auto'
					});
				}
				
				//重置表的索引
				resetFieldTableIndex();
				//设置表的最大索引值(为了简单起见,第一次初始化为当前行数,以后每新增一行,该值+1)
				fieldTable.data('maxIndex',$('#fieldTable tr').length-2);
		 }
		
	})
	
}
//保存
function updateData(is_entity){
	v_result = formtableModule.act.updateFormTable(is_entity);
	$('#list').datagrid('reload');
	return v_result;
}

/****/

/**
 * 序号:6
 * 功能:单个删除
 * 参数:
 * 说明:
 * 作者:高伟杰
 * 时间:2016-01-22
 * 单位:宁波金网
 * 备注:需更改
 **/
function deleteRow(index){
	$('#list').datagrid('selectRow',index);
	var is_row = $('#list').datagrid('getSelections');
	$('#list').datagrid('clearSelections');
	var code = is_row[0].UUID;
	$.messager.confirm('提示', '确定删除?', function(r) {
		if (r) {
			var v_query = {};
		    v_query.FIELD_CODE = code;
		    var v_result = formtableModule.act.deleteFormTable(v_query);
			$.messager.alert('提示',v_result.VALUE);
			$('#list').datagrid('reload');
		}
	});
}
/****/

/**
 * 序号:7
 * 功能:批量删除
 * 参数:
 * 说明:
 * 作者:高伟杰
 * 时间:2016-01-22
 * 单位:宁波金网
 * 备注:需更改
 **/
function deleteBatchRow(){
	var code="";
	var rows = $('#list').datagrid('getSelections');
	for(var i=0; i<rows.length; i++){
		code = code + rows[i].UUID+",";
	}
	if(rows == null || rows == ""){
		$.messager.alert('提示',"请选择需删除的记录!",'info');
		return;
	}
	if(code.length>0){
		code = code.substring(0,code.length - 1);
	}
	$.messager.confirm('提示', '确定删除?', function(r) {
		if (r) {
			var v_query = {};
		    v_query.FIELD_CODE = code;
		    var v_result = formtableModule.act.deleteFormTable(v_query);
			$.messager.alert('提示',v_result.VALUE);
			$('#list').datagrid('reload');
		}
	});
}
/****/

/**
 * 序号:8
 * 功能:刷新
 * 参数:
 * 说明:
 * 作者:高伟杰
 * 时间:2016-01-22
 * 单位:宁波金网
 * 备注:需更改
 **/
function refreshRow(){
	$('#list').datagrid('load',{});
	$("#formTableTab_searchForm")[0].reset();
}
/****/

/**
 * 序号:9
 * 功能:查询
 * 参数:
 * 说明:
 * 作者:高伟杰
 * 时间:2016-01-22
 * 单位:宁波金网
 * 备注:需更改
 **/
function searchRow(){
	
	var v_query = $("#formTableTab_searchForm").getFormVal();
	$('#list').datagrid('load',v_query);
}

function replaceByJson(text,json){
    for(key in json){
      text = text.replace('@{'+key+'}',json[key]);
    }
    return text;
  }

function addLine(){
	var j=$("#fieldTable").data('maxIndex')+1;
	$("#fieldTable").data('maxIndex',j);
	var aa=fieldModel(j);
	var fieldTable=$("#fieldTable");
	$(replaceByJson(tr,aa)).appendTo(fieldTable);

	initEasyUiControl(j);
	//重置表的索引
	resetFieldTableIndex();
}

function deleteLine(){
	if($(":checkbox[name='checkbox']:checked").length == 0 ){
		$.messager.alert('提示',"请选择需删除的行!",'info');
		return;
	}
	$(":checkbox[name='checkbox']:checked").each(function(){
		$(this).parent().parent().remove();
	});
	//重置表的索引
	resetFieldTableIndex();
}

function templateRow(index){
	$('#list').datagrid('selectRow',index);
	var is_row = $('#list').datagrid('getSelections');
	$('#list').datagrid('clearSelections');
	openViewIframRow("templateIframe","formmodelView_formmodelTab?tableId="+is_row[0].UUID,is_row[0],"流程模板列表",true,0.95,0.95,0,0);
}

/**
 * 同步操作
 * @param index
 */
function synchRow(index){
	$('#list').datagrid('selectRow',index);
	var is_row = $('#list').datagrid('getSelections');
	$('#list').datagrid('clearSelections');
	if(is_row[0].IS_DBSYNCH=='1'){
		$.messager.alert('警告',"该表已同步到数据库",'info');
		return;
	}
	$.ajax({
		url:'formtableAct_synchFormTable',
		data:{
			tableId:is_row[0].UUID,
			tableName:is_row[0].TABLE_NAME
		},
		success:function(data){
			$('#list').datagrid('load',{});
		}
	});
	//formtableModule.act.updateFormTable(is_row[0])
	
}