/**
 * Copyright 2005 by LongTop Corporation.
 * Softpack ChuangXin Building 15F, XiaMen, FuJian, PRC 361005
 *
 * All rights reserved.
 *
 * This software is the confidential and proprietary information of
 * LongTop Corporation ("Confidential Information").  You
 * shall not disclose such Confidential Information and shall use
 * it only in accordance with the terms of the license agreement
 * you entered into with LongTop.
 *
 */

/**
 * @fileoverview  客户端产品级配置文件，用于配置客户端属性，提供客户端引擎文件调用。<br>
 * 与服务端配置文件src/intelliweb.properties作用类似。<br><br>
 * 
 * 二次开发人员可修改配置值,但不要修改或删除配置名。<br><br>
 * 
 * 配置名(key)的命名规则如下：<br>
 * 
 * 1）全部为小写英文单词；<br>
 * 2）固定以"config."开头，后跟多个英文单词，单词与单词之间用下划线分隔。<br>
 * 
 * @author {@link http://www.longtop.com 东南融通}
 * @version 2.0
 */


/**
 * 配置管理类构造函数。
 *  
 * @class 配置管理类。
 * @constructor
 */
var config = {};

/**
 * 是否禁用浏览器右键（true:禁用,默认;false:启用）
 * @type Boolean
 * @member config
 */
config.disable_browser_context_menu = true;

/**
 * 是否转换回车键为TAB键（即按回车键时，自动定位到下一个元素,true:是，默认;false:否）
 * @type Boolean
 */
config.enter_to_tab = false;

/**
 * 是否显示客户端脚本出错时用户自定义的友好信息（true:显示;false:默认，不显示）。<br>
 * 二次开发人员在开发项目时，可开启此开关(true)，用于显示客户端脚本出错信息，发布后，可禁用此项(false)。<br>
 * 
 * 示例：二次开发人员在自己的客户端脚本中这样使用：<br>
 * <b>function</b> beforeSave() {<br>
 *  try {<br>
 * 		throw "信息填写不完整"; //显示抛出的出错信息，在catch中会捕捉到<br>
 * 		your client script...<br>
 *   } catch(e) {<br>
 * 		errinfo = "出错方法beforeSave()\n出错原因：这里写友好出错信息";<br>
 * 		showExceptionInfo(e,errinfo); //showExceptionInfo方法是由用户提供<br>
 * 	 }<br>
 * }<br>
 * 上面脚本中，如果脚本出错，且config.show_custom_exception_info=true，则除会弹出系统出错信息外(在e对象里)，<br>
 * 还会弹出用户自定义的友好出错信息(errinfo)，开发人员可用于跟踪出错方法等。否则，只会弹出系统出错信息。<br>
 * 
 * @type Boolean 
 */
config.show_custom_exception_info = true;

/**
 * 是否屏蔽客户端错误信息（不会屏蔽显示调用throw抛出的信息）。（建议开发阶段不要屏蔽，设为false，部署阶段屏蔽，设为true）<br>
 * 在部署阶段屏蔽错误信息的目的是让那些无法预知的错误或不影响功能使用的错误不要影响用户的操作。
 * 
 * @type Boolean
 */
config.close_error_info = false;

/**
 * 鼠标离开菜单时，是否自动隐藏菜单<br>
 * true:是，常用于菜单文件中包括iframe的情况。在iframe里单击，不会自动隐藏菜单，需要在离开菜单项时自动隐藏菜单<br>
 * false:否，默认，鼠标离开菜单时，需要在菜单区域外单击才会隐藏菜单
 * 
 * @type Boolean
 */
config.mouseout_hide_menu = false;

/**
 * 默认窗口装载的框架名，有_blank（新窗口）,_self(当前窗口),_parent(父类窗口),_top(顶级窗口) 及自定义框架名
 * 
 * @type String
 */
config.default_frame_name = "_blank";

/**
 * 默认整数型（short,integer,long）数字显示格式,若不要格式，可设置为plain
 * 
 * @type String
 */
config.default_integer_format = "#,###";

/**
 * 默认浮点型（double,float,bigdecimal）数字显示格式,若不要格式，可设置为plain。<br>
 * 小数点后的一个#代表显示一位小数，前面可加货币单位，如$#,###.##。
 * 
 * @type String
 */
config.default_float_format = "#,###.##";

/**
 * 默认日期型（date）显示格式,日期模型有"yyyy","MM","dd",分别代表四位年份、月份及日期,顺序可随意；<br>
 * 日期模型分隔符可为"-",".","/","年月日"等等。<br>
 * 可设置其它如：yyyy年MM月dd日、yyyy-MM-dd,yyyy/MM/dd,yyyy.MM.dd,MM/yyyy/dd等<br>
 * 
 * @type String
 */
config.default_date_format = "yyyy-MM-dd";

/**
 * 默认日期时间型（timestamp）显示格式,日期模型有"yyyy","MM","dd",分别代表四位年份、月份及日期，顺序可随意；<br>
 * 时间模型有"HH"（24小时制,hh:12小时制）,"mm","ss"等,日期模型分隔符可为"-",".","/","年月日",空等等,时间模型分隔符为冒号、时分秒等。<br>
 * 可设置其它如：yyyy年MM月dd日 hh时mm分ss秒等<br>
 * 
 * @type String
 */
config.default_datetime_format = "yyyy-MM-dd HH:mm:ss";

/**
 * 字段类型为字符型（string）且为空值(null)时的默认值
 * 
 * @type String
 */
config.default_string_value = "";

/**
 * 字段类型为整数型（short,integer,long）且为空值(null)时的默认值，可以为空对象null(界面显示空白)
 * 
 * @type Object
 */
config.default_integer_value = 0;

/**
 * 字段类型为浮点型（double,float,bigdecimal）且为空值(null)时的默认值，可以为空对象null(界面显示空白)
 * 
 * @type Object
 */
config.default_float_value = 0.0;

/**
 * 字段类型为日期型（date）且为空值(null)时的默认值，为空对象null(界面显示空白)，为0时，界面显示1970-1-1
 * 
 * @type Object
 */
config.default_date_value = null;

/**
 * 字段类型为布尔型（boolean）且为空值(null)时的默认值，为空对象null(界面显示空白)
 * 
 * @type Object
 */
config.default_boolean_value = false;

/**
 * checkbox控件关联字段类型为boolean时，默认选中时的值
 * 
 * @type Boolean
 */
config.checkbox_boolean_selected = true;

/**
 * checkbox控件关联字段类型为boolean时，默认非选中时的值
 * 
 * @type Boolean
 */
config.checkbox_boolean_unselected = false;

/**
 * checkbox控件关联字段类型为数字型（short,integer,long,double,float,bigdecimal）时，默认选中时的值
 * 
 * @type Number
 */
config.checkbox_integer_selected = 1;

/**
 * checkbox控件关联字段类型为数字型（short,integer,long,double,float,bigdecimal）时，默认非选中时的值
 * 
 * @type Number
 */
config.checkbox_integer_unselected = 0;

/**
 * checkbox控件关联字段类型为字符时，默认选中时的值
 * 
 * @type String
 */
config.checkbox_string_selected = "1";

/**
 * checkbox控件关联字段类型为字符时，默认非选中时的值
 * 
 * @type String
 */
config.checkbox_string_unselected = "0";

/**
 * 必输字段提示符(样式在skin.css里required_field_symbol)
 * 
 * @type String
 */
config.required_field_symbol = "*";

/**
 * Field必输(required=true)时的样式。
 * @detail
 * 有以下两种方式：
 * symbol：默认值，设置必输时Text控件后面显示一个符号，如必输时的Text后面显示星号。
 * 符号在config.required_field_symbol变量中设置，符号的样式在当前皮肤skin.css中的required_field_symbol设置。
 * style：设置必输时Text背景样式，如设置必输时的Text背景色为谈黄色。
 * 背景样式在当前皮肤skin.css中的editor_required，editor_active_required设置。
 * 
 * @type String
 * 
 */
config.required_field_type = "symbol";

/**
 * 客户端cookie默认保存期(单位：小时)。
 * 
 * @type Number
 */
config.cookie_default_expire = 30 * 24;
//默认30天

/**
 * 通过xmlhttp协议提交到服务端默认的servlet。
 * 
 * @type String
 */
config.default_servlet = "/servlet/dataengine";

/**
 * 发送指定级别的客户端日志信息到服务端指定的文件中，实现在服务端收集客户端日志信息的功能。<br>
 * 客户端日志级别严重程度顺序为：error>warn>debug>info，对应客户端方法为：Log.writeError,Log.writeWarn,Log.writeDebug,Log.writeInfo。<br>
 * 设置某级别的日志允许发送到服务端时，其高级别的日志也允许发送到服务端。如配置了日志信息发送到服务端的级别为warn，<br>
 * 则使用logError，logWarn方法记录的信息均会发送到服务端日志文件中，反之，则不可以。<br>
 * 
 * 可以设置的值及含义为(数字类型)：
 * 0--info(信息级别)
 * 1--debug(调试级别)
 * 2--warn(警告级别)
 * 3--error(错误级别) -- 默认
 * 3以上--不发送信息到服务端
 * 
 * @type Number
 */
config.send_to_server_log_level = 3;

/**
 * 日志级别名称列表。在客户端信息发送到服务端日志文件中时显示的日志级别名称，<br>
 * 格式为：datetime [日志名称] 日志信息，如：<br>
 * 2008-10-15 09:41:18 [ERROR] 对象不存在
 * 
 * @type Array
 */
config.log_level_name_list = ["INFO","DEBUG","WARN","ERROR"];

/**
 * 发送客户端日志到服务端的Servlet
 * @type String
 * @see config.send_to_server_log_level
 */
config.send_to_server_log_servlet = "servlet/clientLogServlet";

/**
 * 在文本框控件双击时，是否自动填入当前日期或时间，默认true。
 * @detail
 * 该属性必须同时符合以下三个条件时，双击才有效：
 * 1）文本框原先没有值
 * 2）文本框没有定义双击事件
 * 3）文本框的dataType(或关联的field的dataType)为date或timestamp或有下拉DatePicker控件时有效。
 * @type Boolean
 */
config.auto_fill_date_ondblclick = true;

/**
 * 是否显示默认系统默认对话框。则显示系统消息弹出框。即：showInfoMsg,showWarnMsg,showErrorMsg,showCustomizeMsg等同于window.alert()方法，
 * showConfirmMsg等同于window.confirm()方法
 * @type Boolean
 */
config.show_system_msgbox = false;

/**
 * 消息对话框默认大小([宽度,高度])
 * @type Array
 */
config.messagebox_size = [350,130];

/**
 * 编辑表格(Grid)内多行文本编辑器弹出窗口大小([宽度,高度])
 * @type Array
 */
config.textarea_window_size = [400,300];

/**
 * 页面在加载时是否显示进度条
 * @type Boolean
 */
config.show_page_progressbar = true;

config.disable_bgcolor = '#D4D0C8';

config.enable_bgcolor = '#ffff';

/**
 *是否去掉字符串右边的空格。对于数据库字段类型为char时，在界面显示时不想显示右边的空格,需要设置该属性为true。
 *@detail
 *
 *如果想让所有数据库字段类型为char时不想在界面显示右边的空格，可从两个地方进行全局设置：
 *1）服务端配置文件：intelliweb.properties 设置intelliweb.trimright = true;//默认false
 *2）客户端配置文件：intelliweb-config.js 设置 config.trimright = true;//默认false
 *
 *说明如下：
 *1）必须确保Field的trimRight没有设置（或为空值）全局设置才生效，如果Field的trimRight有设置true或false，则取Field的trimRight为准；
 *2）如果设置intelliweb.properties中的intelliweb.trimright为true，则在服务端就把空格给去掉，不会把空格传到客户端，也不会显示在前端页面；
 *3）如果设置intelliweb-config.js中的config.trimright = true，则在客户端把带有空格的字符给去掉，不会显示在前端页面。
 * @type Boolean
 */
config.trimright = false;

/**
 * 必输项获得焦点时，如果没有输入是否不允许离开。
 * true:在离开时，默认值，会有必输信息提示并自动使该控件获得焦点。(如果config.show_required_info_onblur为true，则该属性无效)
 * false:在离开时，会有必输信息提示，同时，下一个控件获得焦点。
 * @type Boolean
 */
config.always_required_focus = false;

/**
 * 是否在Grid中总是显示过滤行。(Grid的showFilterRow优先级大于该属性设置)
 * true:默认，当Grid的showIndicator设置为true时，显示过滤行
 * false:不显示过滤行，即使showIndicator设置为true
 * @type Boolean
 */
config.always_show_filter_row = true;

/**
 * 是在光标离开Text控件时检查（检查项包括：输入框对象或关联字段的是否必输、是否超出最大长度，关联校验器是否验证通过）并提示信息还是
 * 让光标离开Text控件时不检查, 而是在Command提交时统一检查。
 * true:默认，在光标离开Text控件时检查并提示信息
 * false:光标离开Text控件时不检查, 而是在Command提交时统一检查（需要配置Command的validateRequired为true）
 * @type Boolean
 */
config.show_required_info_onblur = false;

/**
 * 在树结点文本上双击展开/收回结点，还是单击展开/收回结点。
 * true:默认，双击展开/收回结点
 * false:单击展开/收回结点
 * @type Boolean
 */
config.tree_ondblclick_expandorcollapse = true;
/**
 * Command的validateRequired默认值，如果Command没有设置validateRequired，则取该默认值(默认true)。
 * 详细请看Command的validateRequired的属性说明。
 * @type Boolean
 */
config.command_default_validate_requried = true;

/**
 * 用户自定义的客户端编码方法名，不带参数。对应的方法实现体需要在用户的自定义js文件中实现。如果为空，则使用产品默认提供的编码方法
 * @detail 在客户端与服务端数据同步时，会自动调用产品默认提供的算法一致的客户端与服务端的编码解码方法，如果用户想使用自定义的编码解码方法
 * 必须在此配置编码解码方法名，且必须在服务端src/intelliweb.properties中intelliweb.encode.method,intelliweb.decode.method配置
 * 与客户端算法相同的编码解码方法，且对应的方法默认固定带一个要编码或解码的字符串参数。
 * @type String
 */
config.custom_encode_method = "";
/**
 * 用户自定义的客户端解码方法名,不带参数。对应的方法实现体需要在用户的自定义js文件中实现。如果为空，则使用产品默认提供的解码方法
 * @type String
 * @see config.custom_encode_method
 */
config.custom_decode_method = "";

/**
 * 进度条出现时是否禁止屏幕操作(true:是(默认) false:否）
 * @type Boolean
 */
config.disabled_screen_progressbar_show = true;

/**
 * 设置Dataset是否统计查询总页数的默认值，如果Dataset的calculateTotalSize属性没有设置，则取该默认值。<br>
 * 该属性仅用来控制关联可视控件PageNavigator的显示形式，不控制后台是否查询数据库（需要开发人员自己控制）
 * 如果为true，则关联的PageNavigator的最后一页按钮禁止操作及定位于某一页，以及不显示总页数，总记录数信息。
 * @type Boolean
 */
config.default_vaue_of_calculate_totalsize = true;

/**
 * 设置命令控件（封装Ajax）执行时是client与server采用交互机制的默认值。true:异步交互，false:同步交互。<br>
 * 如果Command的async没有设置，则默认值取自于该选项。
 * @type Boolean
 */
config.default_command_execute_async = false;

/**
 * 数字类型(short,integer,long,float,double,bigdecimal)在文本框中默认对齐方式，
 * 如果没有特别设置单个文本框的对齐方式及没有设置该默认值，则固定局右。
 * 有两种值：right--向右对齐(默认),left--向左对齐
 * @type String
 */
config.default_numberic_text_align = "right";

/**
 * 表格(Grid，StaticGrid)列默认是否允许排序。true:默认值，允许排序，false:不允许排序
 * @type Boolean
 */
config.default_column_allow_sort = true;

/**
 * 配置Grid的allowResizeColumn的默认值，true:允许改变列宽，false:不允许改变列宽
 * @type Boolean
 */
config.default_column_allow_resize = true;
/**
 * 配置Grid的allowDragColumn的默认值，true:允许改变列位置，false:不允许改变列位置
 * @type Boolean
 */
config.default_column_allow_drag = true;

/**
 * 配置DropDown(包括ListDropDown,DataDropDown,DatePicker)的autoDropDown的默认值。
 * true:文本框获得焦点时自动弹出下拉窗口，false:单击下拉按钮时弹出下拉窗口(默认值)
 * @type Boolean
 */
config.default_dropdown_autodropdown = false;

/**
 * 配置DropDown(包括ListDropDown,DataDropDown,DatePicker)的fixed的默认值。
 * true:只能选择，不能输入,false:既可选择，又能输入(默认值)
 * @type Boolean
 */
config.default_dropdown_fixed = false;
/**
 * 配置DropDown(包括ListDropDown,DataDropDown,DatePicker)的autoShowDropDownButton的默认值。
 * true:自动在文本框右边显示DropDownButton,false：文本框获得焦点时，在右边显示DropDownButton
 * @type Boolean
 */
config.default_dropdown_autoshowdropdownbutton = true;

/**
 * 是否开启代码执行耗时跟踪（设置为true时，会影响代码执行效率，建议仅在开发阶段使用）,true:开启，false:默认值，关闭
 * 在代码执行耗时跟踪开启状态，按CTRL+ALT+F8会调出代码执行耗时窗口
 * @type Boolean
 */
config.enable_code_elapse_track = true;
/**
 * 代码执行耗时窗口最多显示行数,默认100，该参数在config.enable_code_elapse_track=true时有效
 * @type int
 */
config.code_elapse_window_max_lines = 100;
/**
 * 记录发生变化时（如新增一条记录，必输项没有输入时，再次新增一条记录），是否对变化前的记录进行校验并提示(如必输项验证)。<br>
 * true:默认值，记录发生变化时，对变化前的记录校验并提示<br>
 * false:记录发生变化时，不验证，只在Command统一提交时验证(Command的validateRequired设置为true)
 * @type Boolean
 */
config.validate_record_changed = true;
