<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<c:set var="contextPath" value="${pageContext.request.contextPath}"></c:set>

<link rel="stylesheet" href="${contextPath}/static/assets/css/jquery-ui.css" />
<link rel="stylesheet" href="${contextPath}/static/assets/css/ui.jqgrid.css" />

<div class="row">
	<div class="col-xs-12">
		<table id="grid-table">
			付款时间:<input type="text" class="input-sm" placeholder="开始时间" id="startDate"/>
			<input type="text" class="input-sm" placeholder="结束时间" id="endDate"/>
			订单状态:
			<select id='statusFlag'>
				<option selected value="" >所有状态</option>
				<option value="0" >待响应</option>
				<option value="1" >已退款</option>
				<option value="2" >咨询中</option>
				<option value="3" >待评价</option>
				<option value="4" >已完成</option>
				<option value="5" >已取消</option>
			</select>
			关键字:<input id="keyword" class="input-medium search-query" type="text" />
			<button id="searchd" type="button" class="btn" >搜索</button>
		</table>

		<div id="grid-pager"></div>

		<script type="text/javascript">
            var $path_base = "${contextPath}/static";//in Ace demo this will be used for editurl parameter
		</script>

		<!-- PAGE CONTENT ENDS -->
	</div><!-- /.col -->
	<div id="modal-showdetail" class="modal fade" tabindex="-1"
		 data-backdrop="static" >
		<div class="modal-dialog" style="min-width: 678px;">
			<div class="modal-content">
				<div class="modal-header no-padding">
					<div class="table-header">
						<button type="button" class="close" data-dismiss="modal"
								aria-hidden="true">
							<span class="white">&times;</span>
						</button>
						咨询订单详情
					</div>
				</div>
				<div class="modal-body" id="modal-distributiondetail-body"  style="max-height: 600px;overflow-y: scroll;">
						<input type="hidden" name="orderId" id="mod-distributiondetail-orderId" />
						<input type="hidden" name="orderId" id="mod-distributiondetail-ssdborderwlId" />
						<div class="row">
							<label class="col-sm-3 control-label" style="text-align: left">订单号:</label>
							<label class="col-sm-3 control-label" id="model_orderId" style="text-align: right"></label>
							<label class="col-sm-3 control-label" style="text-align: left">支付方式:</label>
							<label class="col-sm-3 control-label" id="model_tradeType" style="text-align: right"></label>
						</div>
						<div class="row">
							<label class="col-sm-3 control-label" style="text-align: left">付款时间:</label>
							<label class="col-sm-3 control-label" id="model_paytime" style="text-align: right"></label>
							<label class="col-sm-3 control-label" style="text-align: left">结束时间:</label>
							<label class="col-sm-3 control-label" id="model_realEndDate" style="text-align: right"></label>
						</div>
						<div class="row" id="modal-distributiondetail_group">
							<label class="col-sm-3 control-label" style="text-align: left">用户电话:</label>
							<label class="col-sm-9 control-label" id="model_userPhone"></label>
						</div>
						<div class="row">
							<label class="col-sm-3 control-label" style="text-align: left">支付商户流水:</label>
							<label class="col-sm-9 control-label" id="model_merchantFlowNo"></label>
						</div>
						<div class="row" id="modal-distributiondetail_mapgroup">
							<label class="col-sm-3 control-label" style="text-align: left">律师姓名:</label>
							<label class="col-sm-3 control-label" id="model_lawyerName" style="text-align: right"></label>
							<label class="col-sm-3 control-label" style="text-align: left">律师电话:</label>
							<label class="col-sm-3 control-label" id="model_lawyerPhone" style="text-align: right"></label>
						</div>
						<div class="row" id="modal-distributiondetail_mapgroup2">
							<label class="col-sm-3 control-label" style="text-align: left">服务费:</label>
							<label class="col-sm-3 control-label" id="model_amount" style="text-align: right"></label>
							<label class="col-sm-3 control-label" style="text-align: left">平台佣金:</label>
							<label class="col-sm-3 control-label" id="model_fee" style="text-align: right"></label>
						</div>
						<div class="row" id="modal-distributiondetail_mapgroup3">
							<label class="col-sm-3 control-label" style="text-align: left">订单状态:</label>
							<label class="col-sm-3 control-label" id="model_orderState" style="text-align: right"></label>
							<label class="col-sm-3 control-label" style="text-align: left">响应时长:</label>
							<label class="col-sm-3 control-label" id="model_responseMinute" style="text-align: right"></label>
						</div>
						<div class="row" id="modal-distributiondetail_mapgroup4">
							<label class="col-sm-3 control-label" style="text-align: left">未响应时长:</label>
							<label class="col-sm-3 control-label" id="model_waitMinute" style="text-align: right"></label>
							<label class="col-sm-3 control-label" style="text-align: left">是否被投诉:</label>
							<label class="col-sm-3 control-label" id="model_complaintText" style="text-align: right"></label>
						</div>
						<div class="row" >
							<label class="col-sm-3 control-label" style="text-align: left">投诉信息:</label>
							<label class="col-sm-9 control-label" id="model_complaintDetailText" style="text-align: left"></label>
						</div>
					   <ul class="nav nav-list"><li class="divider"></li></ul>
					   <div class="row" >
						    <label class="col-sm-3 control-label" style="text-align: left">用户评价:</label>
						    <label class="col-sm-3 control-label" style="text-align: left" id="comment1"></label>
						    <label class="col-sm-3 control-label" style="text-align: left" id="comment2"></label>
						    <label class="col-sm-3 control-label" style="text-align: left" id="comment3"></label>
					   </div>
					  <div class="row" >
						 <label class="col-sm-3 control-label" style="text-align: left">具体评价:</label>
						 <label class="col-sm-9 control-label" id="comment4"></label>
					 </div>
					   <div class="row" id="model_complaintDetailImg">
						    <label class="col-sm-3 control-label" style="text-align: left">投诉图片:</label>
						    <label class="col-sm-9 control-label" style="text-align: left"></label>
					   </div>
					   <div class="row" id="model_complaintDetailImg1">
					    </div>
						<div class="row" >
							<label class="col-sm-3 control-label" style="text-align: left">退款原因:</label>
							<label class="col-sm-9 control-label" id="model_refundReason" style="text-align: left"></label>
						</div>
					    <ul class="nav nav-list"><li class="divider"></li></ul>
						<div class="row" >
							<label class="col-sm-3 control-label" style="text-align: left">聊天记录</label>
							<label class="col-sm-9 control-label" style="text-align: left"></label>
						</div>
						<div class="row" >
							<label class="col-sm-12 control-label text-left" id="model_chatMessage" style="text-align: left">聊天记录</label>
						</div>
				</div>
				<div class="modal-footer no-margin-top">
					<div class="text-center">
						<button class="btn btn-sm" data-dismiss="modal">
							<i class="ace-icon fa fa-share bigger-160" ></i> 关闭
						</button>
					</div>
				</div>
			</div>
		</div>
	</div>
    <div id="modal-updatedetail" class="modal fade" tabindex="-1"
         data-backdrop="static">
        <div class="modal-dialog" style="min-width: 450px;">
            <div class="modal-content">
                <div class="modal-header no-padding">
                    <div class="table-header">
                        <button type="button" class="close" data-dismiss="modal"
                                aria-hidden="true">
                            <span class="white">&times;</span>
                        </button>
                        修改订单详情
                    </div>
                </div>
                <div class="modal-body" id="modal-updatedetail-body">
                    <form id="updateDetail" class="form-horizontal">
                        <input type="hidden" name="orderId" id="mod-updateDetail-orderId" />
                        <div class="form-group">
                            <label class="col-sm-3 control-label">是否跟进:</label>
                            <select id='changeFollow'>
                                <option value="0" selected = "selected" >否</option>
                                <option value="1" >是</option>
                            </select>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-3 control-label">更改状态:</label>
                            <select id='changeStatusFlag'>
                                <option selected value="" >所有状态</option>
								<option value="0" >待响应</option>
								<option value="1" >已退款</option>
								<option value="2" >咨询中</option>
								<option value="3" >待评价</option>
								<option value="4" >已完成</option>
								<option value="5" >已取消</option>
                            </select>
                        </div>
                    </form>
                </div>
                <div class="modal-footer no-margin-top">
                    <div class="text-center">
                        <button id="modal-update-submit" type="button"
                                class="btn btn-sm btn-primary">
                            更新
                        </button>
                        <button class="btn btn-sm" data-dismiss="modal">
                            <i class="ace-icon fa fa-share bigger-160" ></i> 关闭
                        </button>
                    </div>
                </div>
            </div>
        </div>
    </div>

	<div id="modal-refund-body" class="modal fade" tabindex="-1" data-backdrop="static">
		<div class="modal-dialog" >
			<form id="checkForm">
				<div class="modal-content">
					<div class="modal-header no-padding">
						<div class="table-header">
							<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
								<span class="white">&times;</span>
							</button>
							退款原因
						</div>
					</div>
					<div class="modal-body" style="overflow-y: scroll;">
						<div id="mod-edit-tip" class="red clearfix"></div>
						<input type="hidden" id="modal-refund-orderid" value="">
						<div class="form-group" style="margin-left: 30px;">
							<label class="control-label">请输入退款原因:</label>
						</div>
						<div class="form-group" style="margin-left: 30px;">
						<textarea id="modal-refund-reason" rows="4" cols="60"
								  placeholder="请输入退款原因"></textarea>
						</div>
					</div>
					<div class="modal-footer no-margin-top">
						<div class="text-center">
							<button id="mod-check-success" type="button" class="btn btn-sm btn-primary" onclick="showRefundConfirm();">
								退款
							</button>
							<button class="btn btn-sm" data-dismiss="modal">
								取消
							</button>
						</div>
					</div>
				</div><!-- /.modal-content -->
			</form>
		</div><!-- /.modal-dialog -->
	</div>
</div><!-- /.row -->
<script>
    //显示详情
    function showAllDetail(id) {
        //清空
        $("#model_paytime").html("");
        $("#model_realEndDate").html("");
        $("#model_orderId").html("");
        $("#model_tradeType").html("");
        $("#model_userPhone").html("");
        $("#model_merchantFlowNo").html("");

        $("#model_lawyerName").html("");
        $("#model_lawyerPhone").html("");
        $("#model_amount").html("");
        $("#model_fee").html("");
        $("#model_orderState").html("");
        $("#model_responseMinute").html("");
        $("#model_waitMinute").html("");
        $("#model_complaintText").html("");

        //投诉原因  退款原因
        $("#model_complaintDetailText").html("");
        $("#model_refundReason").html("");
		$("#model_complaintDetailImg").hide();

        $("#model_chatMessage").html("");

        $("#modal-showdetail").modal("toggle");
        $.ajax({
            dataType : "json",
            url : "${contextPath}/adv/order/getOrderById",
            type : "post",
            data : {
                'orderId' : id,
            },
            success : function(ret) {
                if(ret != null){
                    if(ret.success == "true") {
                        $("#model_paytime").html(ret.paytime);
                        $("#model_realEndDate").html(ret.realEndDate);
                        $("#model_orderId").html(ret.orderId);
                        $("#model_tradeType").html(ret.tradeType);
                        $("#model_userPhone").html(ret.userPhone);
                        $("#model_merchantFlowNo").html(ret.merchantFlowNo);

                        $("#model_lawyerName").html(ret.lawyerName);
                        $("#model_lawyerPhone").html(ret.lawyerPhone);
                        $("#model_amount").html(ret.amount);
                        $("#model_fee").html(ret.fee);
                        $("#model_orderState").html(ret.orderState);
                        $("#model_responseMinute").html(ret.responseMinute + '分钟');
                        $("#model_waitMinute").html(ret.waitMinute + '分钟');
                        $("#model_complaintText").html(ret.complaintText);

                        //投诉原因  退款原因
                        $("#model_complaintDetailText").html(ret.complaintDetailText);
                        $("#model_refundReason").html(ret.refundReason);

                        //var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
                        if(ret.complaintUrls != null) {
                            var arr = ret.complaintUrls;
                            arr = arr.substring(1,arr.length-1);
                            var list = arr.split(',');
							var tempHtml = '';
							for(var i = 0 ; i < list.length; i ++){
								tempHtml += '<img src='+list[i]+' class="img-thumbnail" style="height: 450px;width: 300px;margin-left: 20px">'
                            }
							$("#model_complaintDetailImg1").html(tempHtml);
                            $("#model_complaintDetailImg1").show();
                        }else {
                            $("#model_complaintDetailImg1").html("");
                            $("#model_complaintDetailImg1").hide();
                        }

                    }else{
                        alert("获取数据失败!")
                    }
                }
            }
        });

        $.ajax({
            dataType : "json",
            url : "${contextPath}/adv/order/getOrderChat",
            type : "post",
            data : {
                'orderId' : id,
            },
            success : function(ret) {
                if(ret != null){
                   var chatMessage = '';
                    for ( var i = 0; i <ret.length; i++){
                        var tempText = ret[i].sender + ": " + ret[i].message + "<br/>"
                        chatMessage += tempText ;
                    }
                    $("#model_chatMessage").html(chatMessage);
                }
            }
        });


        $.ajax({
            dataType : "json",
            url : "${contextPath}/adv/order/getOrderComment",
            type : "post",
            data : {
                'orderId' : id,
            },
            success : function(ret) {
                if(ret != null){
                    $("#comment1").html("专业能力("+ret.professionalScore+")");
                    $("#comment2").html("服务态度("+ret.serviceScore+")");
                    $("#comment3").html("回复速度("+ret.promptScore+")");
                    $("#comment4").html(ret.comment);
                } else {
                    $("#comment1").html("");
                    $("#comment2").html("");
                    $("#comment3").html("");
                    $("#comment4").html("");
                }
            }
        });
    }

    function showUpdateModel(id) {
        $("#modal-updatedetail").modal("toggle");
        $.ajax({
            dataType : "json",
            url : "${contextPath}/adv/order/getOrderById",
            type : "post",
            data : {
                'orderId' : id,
            },
            success : function(ret) {
                if(ret != null){
                    $("#mod-updateDetail-orderId").val(id);
                    $("#changeStatusFlag").val(ret.orderStateKey);
                    $("#changeFollow").val(ret.follow);
                }
            }
        });
    }

    $("#modal-update-submit").on("click", function(e) {
        //进行跟新
		var id = $("#mod-updateDetail-orderId").val();
        var changeStatusFlag = $("#changeStatusFlag").val();
        var changeFollow = $("#changeFollow").val();

        $.ajax({
            dataType : "json",
            url : "${contextPath}/adv/order/updateOrder",
            type : "post",
            data : {
                'id' : id,
				'orderState' : changeStatusFlag,
				'follow' : changeFollow

            },
            success : function(ret) {
                if(ret.success == 'true'){
                    $("#modal-updatedetail").modal("toggle");
                    jQuery("#grid-table").trigger("reloadGrid");
                }
            }
        });


    });

    function showRefund(id) {
        $("#modal-refund-reason").val("");
        $("#modal-refund-orderid").val(id);
        $("#modal-refund-body").modal("toggle");
    }

    function showRefundConfirm() {
        var reason = $("#modal-refund-reason").val();
        var id = $("#modal-refund-orderid").val();
		$.ajax({
                dataType : "json",
                url : "${contextPath}/adv/order/refundOrder",
                type : "post",
                data : {
                    'orderId' : id,
					'reason' : reason
                },
                success : function(ret) {
                    $("#modal-refund-body").modal("toggle");
                    if(ret.success == true){
                        alert(ret.message);
                        jQuery("#grid-table").trigger("reloadGrid");
                    }else {
                        alert(ret.message);
                    }
                }
            });
    }
</script>
<!-- page specific plugin scripts -->
<script type="text/javascript">
    var scripts = [ null,  "${contextPath}/static/assets/js/date-time/bootstrap-datepicker.js", "${contextPath}/static/assets/js/date-time/locales/bootstrap-datepicker.zh-CN.js", "${contextPath}/static/assets/js/jqGrid/jquery.jqGrid.js", "${contextPath}/static/assets/js/jqGrid/i18n/grid.locale-cn.js", null ]
    $('.page-content-area').ace_ajax('loadScripts', scripts, function() {
        // inline scripts related to this page
        jQuery(function($) {
            var grid_selector = "#grid-table";
            var pager_selector = "#grid-pager";

            // resize to fit page size
            $(window).on('resize.jqGrid', function() {
                $(grid_selector).jqGrid('setGridWidth', $(".page-content").width());
            })
            // resize on sidebar collapse/expand
            var parent_column = $(grid_selector).closest('[class*="col-"]');
            $(document).on('settings.ace.jqGrid', function(ev, event_name, collapsed) {
                if (event_name === 'sidebar_collapsed' || event_name === 'main_container_fixed') {
                    // setTimeout is for webkit only to give time for DOM changes and then redraw!!!
                    setTimeout(function() {
                        $(grid_selector).jqGrid('setGridWidth', parent_column.width());
                    }, 0);
                }
            })

            myGrid=	jQuery(grid_selector).jqGrid({
                subGrid : false,
                url : "${contextPath}/adv/order/advOrderDetails",
                datatype : "json",
                height : '100%',
                width : 'auto',
                colNames : ['付款时间', '咨询结束时间', '订单号', '支付方式','用户电话', '支付商户流水', '律师姓名', '律师电话', '服务费', '平台佣金','订单状态','响应时长(分钟)','未响应时长(分钟)','是否被投诉','操作'],
                colModel : [{
                    name : 'paytime',
                    index : 'paytime',
                    sorttype : 'date',
                    width : 55,
                    editable : false,
                }, {
                    name : 'realEndDate',
                    index : 'realEndDate',
                    width : 55,
                    editable : false,
                }, {
                    name : 'orderId',
                    index : 'orderId',
                    width : 60,
                    editable : false,
                    sorttype : 'text',
                }, {
                    name : 'tradeType',
                    index : 'tradeType',
                    width : 25,
                    editable : false,
                },{
                    name : 'userPhone',
                    index : 'userPhone',
                    width : 25,
                    editable : false,
                }, {
                    name : 'merchantFlowNo',
                    index : 'merchantFlowNo',
                    width : 80,
                    editable : false,
                }, {
                    name : 'lawyerName',
                    index : 'lawyerName',
                    width : 40,
                    editable : false,
                    search : false,
                }, {
                    name : 'lawyerPhone',
                    index : 'lawyerPhone',
                    width : 40,
                    editable : false,
                    search : false,
                }, {
                    name : 'amount',
                    index : 'amount',
                    width : 20,
                    editable : false,
                    sorttype : 'double',
                    search : false,
                }, {
                    name : 'fee',
                    index : 'fee',
                    width : 20,
                    editable : false,
                    sorttype : 'double',
                    search : false,
                }, {
                    name : 'orderState',
                    index : 'orderState',
                    width : 25,
                    editable : false,
                    search : false,
                }, {
                    name : 'responseMinute',
                    index : 'responseMinute',
                    width : 30,
                    editable : false,
                    search : false,
                }, {
                    name : 'waitMinute',
                    index : 'waitMinute',
                    width : 30,
                    editable : false,
                    search : false,
				}, {
                    name : 'complaintText',
                    index : 'complaintText',
                    width : 30,
                    editable : false,
                    search : false,
				},{
                    name : 'id',
                    index : '',
                    label : '操作',
                    width : 160,
                    editable : false,
                    search : false,
                    sortable : false,
                    fixed:true,
                    formatter : optionFormatter
                }
                ],
                //scroll : 1, // set the scroll property to 1 to enable paging with scrollbar - virtual loading of records
                sortname : "paytime",
                sortorder : "desc",
                viewrecords : true,
                rowNum : 10,
                rowList : [ 10, 30, 500 ],
                pager : pager_selector,
                altRows : true,
                multiselect : true,
                multiboxonly : true,
                loadComplete : function() {
                    var table = this;
                    setTimeout(function(){
                        styleCheckbox(table);
                        updateActionIcons(table);
                        updatePagerIcons(table);
                        enableTooltips(table);
                    }, 0);
                },
                editurl : "${contextPath}/adv/order/advOrderDetails"
            });

            $(window).triggerHandler('resize.jqGrid');// trigger window resize to make the grid get the correct size

            // enable search/filter toolbar
            // jQuery(grid_selector).jqGrid('filterToolbar',{defaultSearch:true,stringResult:true})
            // jQuery(grid_selector).filterToolbar({});
            // switch element when editing inline
            function aceSwitch(cellvalue, options, cell) {
                setTimeout(function() {
                    $(cell).find('input[type=checkbox]').addClass('ace ace-switch ace-switch-5').after('<span class="lbl"></span>');
                }, 0);
            }

            //搜索
            $("#searchd").click(function(){
                var statusFlag =$("#statusFlag").val();
                var keyword =encodeURI(encodeURI($("#keyword").val()));
                var startDate =$("#startDate").val();
                var endDate =$("#endDate").val();
                myGrid.setGridParam({postData:{'statusFlag':statusFlag, keyword:keyword, startDate:startDate, endDate:endDate, page:1},url : '${contextPath}/adv/order/advOrderDetails',page:1}).trigger('reloadGrid');
            });

            // navButtons
            jQuery(grid_selector).jqGrid('navGrid', pager_selector, { // navbar options
                edit : <shiro:hasPermission name="${ROLE_KEY}:payRecord:edit">true</shiro:hasPermission><shiro:lacksPermission name="${ROLE_KEY}:payRecord:edit">false</shiro:lacksPermission>,
                editicon : 'ace-icon fa fa-pencil blue',
                add : <shiro:hasPermission name="${ROLE_KEY}:payRecord:add">true</shiro:hasPermission><shiro:lacksPermission name="${ROLE_KEY}:payRecord:add">false</shiro:lacksPermission>,
                addicon : 'ace-icon fa fa-plus-circle purple',
                del : <shiro:hasPermission name="${ROLE_KEY}:payRecord:delete">true</shiro:hasPermission><shiro:lacksPermission name="${ROLE_KEY}:payRecord:delete">false</shiro:lacksPermission>,
                delicon : 'ace-icon fa fa-trash-o red',
                search : <shiro:hasPermission name="${ROLE_KEY}:payRecord:search">true</shiro:hasPermission><shiro:lacksPermission name="${ROLE_KEY}:payRecord:search">false</shiro:lacksPermission>,
                searchicon : 'ace-icon fa fa-search orange',
                refresh : true,
                refreshicon : 'ace-icon fa fa-refresh blue',
                view : <shiro:hasPermission name="${ROLE_KEY}:payRecord:view">true</shiro:hasPermission><shiro:lacksPermission name="${ROLE_KEY}:payRecord:view">false</shiro:lacksPermission>,
                viewicon : 'ace-icon fa fa-search-plus grey'
            }, {
                // edit record form
                // closeAfterEdit: true,
                // width: 700,
                recreateForm : true,
                beforeShowForm : function(e) {
                    var form = $(e[0]);
                    form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />')
                    style_edit_form(form);
                },
                errorTextFormat: function (response) {
                    var result = eval('('+response.responseText+')');
                    return result.message;
                }
            }, {
                // new record form
                // width: 700,
                closeAfterAdd : true,
                recreateForm : true,
                viewPagerButtons : false,
                beforeShowForm : function(e) {
                    var form = $(e[0]);
                    form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />')
                    style_edit_form(form);
                },
                errorTextFormat: function (response) {
                    var result = eval('('+response.responseText+')');
                    return result.message;
                }
            }, {
                // delete record form
                recreateForm : true,
                beforeShowForm : function(e) {
                    var form = $(e[0]);
                    if (form.data('styled'))
                        return false;
                    form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />')
                    style_delete_form(form);
                    form.data('styled', true);
                },
                onClick : function(e) {
                    // alert(1);
                }
            }, {
                // search form
                recreateForm : true,
                afterShowSearch : function(e) {
                    var form = $(e[0]);
                    form.closest('.ui-jqdialog').find('.ui-jqdialog-title').wrap('<div class="widget-header" />')
                    style_search_form(form);
                },
                afterRedraw : function() {
                    style_search_filters($(this));
                },
                multipleSearch : true
                /**
                 * multipleGroup:true, showQuery: true
                 */
            }, {
                // view record form
                recreateForm : true,
                beforeShowForm : function(e) {
                    var form = $(e[0]);
                    form.closest('.ui-jqdialog').find('.ui-jqdialog-title').wrap('<div class="widget-header" />')
                }
            })

            // add custom button to export the data to excel
            if(<shiro:hasPermission name="${ROLE_KEY}:companyPay:export">true</shiro:hasPermission><shiro:lacksPermission name="${ROLE_KEY}:companyPay:export">false</shiro:lacksPermission>){
                jQuery(grid_selector).jqGrid('navButtonAdd', pager_selector,{
                    caption : "",
                    title : "导出Excel",
                    buttonicon : "ace-icon fa fa-file-excel-o green",
                    onClickButton : function () {
                        var keys = [], ii = 0, rows = "";
                        var ids = $(grid_selector).getDataIDs(); // Get All IDs
                        var row = $(grid_selector).getRowData(ids[0]); // Get First row to get the labels
                        var label = $(grid_selector).jqGrid('getGridParam','colNames');
                        for(var k in label){
                            if(label[k].length > 0){
                                if( k > 0) {
                                    rows = rows + label[k] + "\t"; // output each Column as tab delimited
                                }
                            }
                        }
                        for (var k in row) {
                            keys[ii++] = k; // capture col names
                        }
                        rows = rows + "\n"; // Output header with end of line
                        var tIds = {"paytime":true,"realEndDate":true,"orderId":true,"tradeType":true,"userPhone":true,"merchantFlowNo":true,"lawyerName":true,"lawyerPhone":true,"amount":true,"fee":false,"orderState":false,"responseMinute":false,"waitMinute":false,"complaintText":false};
                        var v = null;
                        for (var i = 0; i < ids.length; i++) {
                            row = $(grid_selector).getRowData(ids[i]); // get each row
                            for (var j = 0; j < keys.length; j++){
                                v = row[keys[j]];
                                v = v.replace(/[\n\t]/g, "");
                                if(tIds[keys[j]]){
                                    rows = rows + '="' + v + '"\t'; // output each Row as tab delimited
                                }else{
                                    rows = rows + v + '\t'; // output each Row as tab delimited
                                }
                            }
                            rows = rows + "\n"; // output each row with end of line
                        }
                        rows = rows + "\n"; // end of line at the end
                        var form = "<form name='csvexportform' action='${contextPath}/fs/report/getExcel?fileName=advOrderDetails' method='post'>";
                        form = form + "<input type='hidden' name='csvBuffer' value='" + encodeURIComponent(rows) + "'>";
                        form = form + "</form><script>document.csvexportform.submit();</sc" + "ript>";
                        OpenWindow = window.open('', '');
                        OpenWindow.document.write(form);
                        OpenWindow.document.close();
                    }
                });
            }

            function style_edit_form(form) {
                // form.find('input[name=statusCn]').addClass('ace ace-switch ace-switch-5').after('<span class="lbl"></span>');
                // don't wrap inside a label element, the checkbox value won't be submitted (POST'ed)
                // .addClass('ace ace-switch ace-switch-5').wrap('<label class="inline" />').after('<span class="lbl"></span>');

                // update buttons classes
                var buttons = form.next().find('.EditButton .fm-button');
                buttons.addClass('btn btn-sm').find('[class*="-icon"]').hide();// ui-icon, s-icon
                buttons.eq(0).addClass('btn-primary').prepend('<i class="ace-icon fa fa-check"></i>');
                buttons.eq(1).prepend('<i class="ace-icon fa fa-times"></i>')

                buttons = form.next().find('.navButton a');
                buttons.find('.ui-icon').hide();
                buttons.eq(0).append('<i class="ace-icon fa fa-chevron-left"></i>');
                buttons.eq(1).append('<i class="ace-icon fa fa-chevron-right"></i>');
            }

            function style_delete_form(form) {
                var buttons = form.next().find('.EditButton .fm-button');
                buttons.addClass('btn btn-sm btn-white btn-round').find('[class*="-icon"]').hide();// ui-icon, s-icon
                buttons.eq(0).addClass('btn-danger').prepend('<i class="ace-icon fa fa-trash-o"></i>');
                buttons.eq(1).addClass('btn-default').prepend('<i class="ace-icon fa fa-times"></i>')
            }

            function style_search_filters(form) {
                form.find('.delete-rule').val('X');
                form.find('.add-rule').addClass('btn btn-xs btn-primary');
                form.find('.add-group').addClass('btn btn-xs btn-success');
                form.find('.delete-group').addClass('btn btn-xs btn-danger');
            }
            function style_search_form(form) {
                var dialog = form.closest('.ui-jqdialog');
                var buttons = dialog.find('.EditTable')
                buttons.find('.EditButton a[id*="_reset"]').addClass('btn btn-sm btn-info').find('.ui-icon').attr('class', 'ace-icon fa fa-retweet');
                buttons.find('.EditButton a[id*="_query"]').addClass('btn btn-sm btn-inverse').find('.ui-icon').attr('class', 'ace-icon fa fa-comment-o');
                buttons.find('.EditButton a[id*="_search"]').addClass('btn btn-sm btn-purple').find('.ui-icon').attr('class', 'ace-icon fa fa-search');
            }

            function beforeDeleteCallback(e) {
                var form = $(e[0]);
                if (form.data('styled'))
                    return false;
                form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />')
                style_delete_form(form);
                form.data('styled', true);
            }

            function beforeEditCallback(e) {
                var form = $(e[0]);
                form.closest('.ui-jqdialog').find('.ui-jqdialog-titlebar').wrapInner('<div class="widget-header" />')
                style_edit_form(form);
            }

            // it causes some flicker when reloading or navigating grid
            // it may be possible to have some custom formatter to do this as the grid is being created to prevent this
            // or go back to default browser checkbox styles for the grid
            function styleCheckbox(table) {
                /**
                 * $(table).find('input:checkbox').addClass('ace') .wrap('<label />') .after('<span class="lbl align-top" />') $('.ui-jqgrid-labels th[id*="_cb"]:first-child')
                 * .find('input.cbox[type=checkbox]').addClass('ace') .wrap('<label />').after('<span class="lbl align-top" />');
                 */
            }

            // unlike navButtons icons, action icons in rows seem to be hard-coded
            // you can change them like this in here if you want
            function updateActionIcons(table) {
                /**
                 * var replacement = { 'ui-ace-icon fa fa-pencil' : 'ace-icon fa fa-pencil blue', 'ui-ace-icon fa fa-trash-o' : 'ace-icon fa fa-trash-o red', 'ui-icon-disk' : 'ace-icon fa fa-check green', 'ui-icon-cancel' :
        			 * 'ace-icon fa fa-times red' }; $(table).find('.ui-pg-div span.ui-icon').each(function(){ var icon = $(this); var $class = $.trim(icon.attr('class').replace('ui-icon', '')); if($class in replacement)
        			 * icon.attr('class', 'ui-icon '+replacement[$class]); })
                 */
            }

            // replace icons with FontAwesome icons like above
            function updatePagerIcons(table) {
                var replacement = {
                    'ui-icon-seek-first' : 'ace-icon fa fa-angle-double-left bigger-140',
                    'ui-icon-seek-prev' : 'ace-icon fa fa-angle-left bigger-140',
                    'ui-icon-seek-next' : 'ace-icon fa fa-angle-right bigger-140',
                    'ui-icon-seek-end' : 'ace-icon fa fa-angle-double-right bigger-140'
                };
                $('.ui-pg-table:not(.navtable) > tbody > tr > .ui-pg-button > .ui-icon').each(function() {
                    var icon = $(this);
                    var $class = $.trim(icon.attr('class').replace('ui-icon', ''));

                    if ($class in replacement)
                        icon.attr('class', 'ui-icon ' + replacement[$class]);
                })
            }

            function enableTooltips(table) {
                $('.navtable .ui-pg-button').tooltip({
                    container : 'body'
                });
                $(table).find('.ui-pg-div').tooltip({
                    container : 'body'
                });
            }


            function optionFormatter(cellvalue, options, cell) {
                var template = "<button data-toggle='modal' onclick='showAllDetail(\""+cell.orderId+"\")' class='btn btn-minier btn-yellow'><i class='ace-icon fa fa-hdd-o '></i>详细</button>&nbsp;|&nbsp;";
                template += "<button data-toggle='modal'  onclick='showUpdateModel(\""+cell.orderId+"\")' class='btn btn-minier btn-yellow'><i class='ace-icon fa fa-hdd-o '></i>修改</button>" + "<br>";
                template += "<button data-toggle='modal'  onclick='showRefund(\""+cell.orderId+"\")' class='btn btn-minier btn-yellow'><i class='ace-icon fa fa-hdd-o '></i>退款</button>";
                return template;
            }
            // var selr = jQuery(grid_selector).jqGrid('getGridParam','selrow');

            $(document).one('ajaxloadstart.page', function(e) {
                $(grid_selector).jqGrid('GridUnload');
                $('.ui-jqdialog').remove();
            });

            $('#startDate').datepicker({
                language: 'zh-CN',
                pickTime: false,
                todayBtn: true,
                autoclose: true,
                minView: '2',
                forceParse: false,
                format:"yyyy-mm-dd"
            });
            $('#endDate').datepicker({
                language: 'zh-CN',
                pickTime: false,
                todayBtn: true,
                autoclose: true,
                minView: '2',
                forceParse: false,
                format:"yyyy-mm-dd"
            });
        });
    });
</script>