
var table ,   block = $(".content-wrapper").parent();
    
    function edit_items(itemid,customer_full_name,customer_email,customer_phone,customer_address,customer_job_title,cust_type,phone2){
       
       customer_full_name = decodeURIComponent_back(customer_full_name);
       customer_email     = decodeURIComponent_back(customer_email);
       customer_phone     = decodeURIComponent_back(customer_phone);
       customer_phone2    = decodeURIComponent_back(phone2);
       customer_address   = decodeURIComponent_back(customer_address);
       customer_job_title = decodeURIComponent_back(customer_job_title);

       $("#edit_objid").val(itemid);
       $("#edit_customer_full_name").val(customer_full_name);
       $("#edit_customer_email").val(customer_email);
       $("#edit_customer_phone").val(customer_phone);
       $("#edit_customer_phone2").val(customer_phone2);
       $("#edit_customer_address").val(customer_address);
       $("#edit_customer_job_title").val(customer_job_title);
       $("#edit_customer_type").val(cust_type);
       $('#edit_form_cont').modal('toggle');
    }

    function delete_items(itemid) {
      block = $("#list_of_items_tbl");
      // bootstrap modal confirmation box
        swal({
            title: Translation("هل انت متأكد؟!"),
            text: Translation("سوف لن تستطيع استرجاع المعلومات المرتبطة بهذا السجل في حالة المسح"),
            type: "warning",
            showCancelButton: true,
            confirmButtonColor: "#EF5350",
            confirmButtonText: Translation("موافق: امسح!"),
            cancelButtonText: Translation("الغاء الامر"),
            closeOnConfirm: false,
            closeOnCancel: true
        },
        function(isConfirm){
            if (isConfirm) {
              $.ajax({
                url: "models/crul_customer.php",
                type:"POST",
                data: {"type":"delete","obj_id":itemid} ,
                complete:function(){
                 // hideLoader();
                },
                beforeSend:function(){
                 // showLoader("Deleting Category");
                },
                success: function(res) {
                  if(res == 1){
                    swal({
                                title: Translation("حذف!"),
                                text: Translation("تم حذف الزبون بنجاح"),
                                confirmButtonColor: "#66BB6A",
                                type: "success"
                            });
                    $(".datatable-column-search-inputs").DataTable().ajax.reload(null, false);
                  }else{
                    swal({
                                title: Translation("خطأ"),
                                text: Translation(res),
                                confirmButtonColor: "#2196F3",
                                type: "error"
                            });
                  }
                }
            });
            }
        }); // /confirm
    }

  function Checks(id,types=null,min=null,max=null){
      var name = $("#"+id).val();
      if(types == null){  // it mean string

            if(min !=null && max !=null){
                if(name =='' || name.length < min || name.length > max){
                  $("#"+id).closest('.form-group').removeClass('has-success');
                  $("#"+id).closest('.form-group').addClass('has-error');

                  noty({
                          width: 200,
                          text: "Please Enter the Required Field with minimum length of "+ min + " and maximum length " + max,
                          type: 'error',
                          dismissQueue: true,
                          timeout: 3000,
                          layout: 'topRight',
                    });
                  return false;
                }else{
                    $("#"+id).closest('.form-group').removeClass('has-error');
                    $("#"+id).closest('.form-group').addClass('has-success');
                    return true;
                }
            }else if(min !=null && max ==null){
                if(name ==''  || name.length < min ){
                  $("#"+id).closest('.form-group').removeClass('has-success');
                  $("#"+id).closest('.form-group').addClass('has-error');

                  noty({
                          width: 200,
                          text: "Please Enter the Required Field with minimum length of "+ min ,
                          type: 'error',
                          dismissQueue: true,
                          timeout: 3000,
                          layout: 'topRight',
                    });
                  return false;
                }else{
                    $("#"+id).closest('.form-group').removeClass('has-error');
                    $("#"+id).closest('.form-group').addClass('has-success');
                    return true;
                }
            }else if(min ==null && max !=null){
                if(name ==''  ||  name.length > max){
                  $("#"+id).closest('.form-group').removeClass('has-success');
                  $("#"+id).closest('.form-group').addClass('has-error');

                  noty({
                          width: 200,
                          text: "Please Enter the Required Field with  maximum length of " + max,
                          type: 'error',
                          dismissQueue: true,
                          timeout: 3000,
                          layout: 'topRight',
                    });
                  return false;
                }else{
                    $("#"+id).closest('.form-group').removeClass('has-error');
                    $("#"+id).closest('.form-group').addClass('has-success');
                    return true;
                }
            }else{

                if(name ==''){
                  $("#"+id).closest('.form-group').removeClass('has-success');
                  $("#"+id).closest('.form-group').addClass('has-error');

                  noty({
                          width: 200,
                          text: "Field should not be empty",
                          type: 'error',
                          dismissQueue: true,
                          timeout: 3000,
                          layout: 'topRight',
                    });
                  return false;
                }else{
                    $("#"+id).closest('.form-group').removeClass('has-error');
                    $("#"+id).closest('.form-group').addClass('has-success');
                    return true;
                }

            }

      }else if(types == 'No'){  // it mean numbers

            if(min !=null && max !=null){
                if(name !='' && isNaN(name) || name < min || name > max){
                  $("#"+id).closest('.form-group').removeClass('has-success');
                  $("#"+id).closest('.form-group').addClass('has-error');

                  noty({
                          width: 200,
                          text: "Please Enter Numeric Value between "+ min + " and " + max,
                          type: 'error',
                          dismissQueue: true,
                          timeout: 3000,
                          layout: 'topRight',
                    });
                  return false;
                }else{
                    $("#"+id).closest('.form-group').removeClass('has-error');
                    $("#"+id).closest('.form-group').addClass('has-success');
                    return true;
                }
            }else if(min !=null && max ==null){
                if(name !='' && isNaN(name) || name < min ){
                  $("#"+id).closest('.form-group').removeClass('has-success');
                  $("#"+id).closest('.form-group').addClass('has-error');

                  noty({
                          width: 200,
                          text: "Please Enter Numeric Value Greater than "+ min,
                          type: 'error',
                          dismissQueue: true,
                          timeout: 3000,
                          layout: 'topRight',
                    });
                  return false;
                }else{
                    $("#"+id).closest('.form-group').removeClass('has-error');
                    $("#"+id).closest('.form-group').addClass('has-success');
                    return true;
                }
            }else if(min ==null && max !=null){
                if(name !='' && isNaN(name) ||  name > max){
                  $("#"+id).closest('.form-group').removeClass('has-success');
                  $("#"+id).closest('.form-group').addClass('has-error');

                  noty({
                          width: 200,
                          text: "Please Enter Numeric Value Less than " + max,
                          type: 'error',
                          dismissQueue: true,
                          timeout: 3000,
                          layout: 'topRight',
                    });
                  return false;
                }else{
                    $("#"+id).closest('.form-group').removeClass('has-error');
                    $("#"+id).closest('.form-group').addClass('has-success');
                    return true;
                }
            }else{

                if(name !='' && isNaN(name)){
                  $("#"+id).closest('.form-group').removeClass('has-success');
                  $("#"+id).closest('.form-group').addClass('has-error');

                  noty({
                          width: 200,
                          text: "Please Enter Numeric Value",
                          type: 'error',
                          dismissQueue: true,
                          timeout: 3000,
                          layout: 'topRight',
                    });
                  return false;
                }else{
                    $("#"+id).closest('.form-group').removeClass('has-error');
                    $("#"+id).closest('.form-group').addClass('has-success');
                    return true;
                }

            }

      }
  }


  function getQueryVariable(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i=0;i<vars.length;i++) {
          var pair = vars[i].split("=");
          if (pair[0] == variable) {
            return pair[1];
          }
        }
        return 'not';
    }
    
$(document).ready(function() {
  
    $('#add_form').submit(function(event) {
            event.preventDefault();
            // block

            block = $(this).parent();
            // \block

            var customer_full_name    = $("#customer_full_name").val();
            var customer_email        = $("#customer_email").val();
            var customer_phone        = $("#customer_phone").val();
            var customer_phone2       = $("#customer_phone2").val();
            var customer_address      = $("#customer_address").val();
            var customer_job_title    = $("#customer_job_title").val();
            var customer_type         = $("#customer_type").val();

            var Check1 = true;
            var Check2 = true;
            var Check3 = true;
            var Check4 = true;
            var Check5 = true;

            var Check1    = Checks('customer_full_name');
            // var Check2    = Checks('customer_email');
            var Check3    = Checks('customer_phone');
            // var Check4    = Checks('customer_address');
            var Check5    = Checks('customer_type');
            


            if(Check1 && Check2 && Check3 && Check4 && Check5){
              $("#submit_add_btn").attr('disabled',true);
                $.ajax({
                    url: "models/crul_customer.php",
                    type:"POST",
                    dataType : "JSON",
                    data : {customer_full_name:customer_full_name,customer_email:customer_email,
                      customer_phone:customer_phone,customer_phone2:customer_phone2,customer_address:customer_address,
                      customer_job_title:customer_job_title,customer_type:customer_type,type:'create'}
                })
                .done(function(res) {
                  //alert(res);
                  if(res.is_success == false){
                      noty({
                        width: 200,
                        text: Translation(res.data),
                        type: 'error',
                        dismissQueue: true,
                        timeout: 3000,
                        layout: 'topRight',
                      });
                      $("#add-form-cont").collapse('hide');
                  }else{
                      $("#add_form")[0].reset();
                      $(".datatable-column-search-inputs").DataTable().ajax.reload(null, false);
                      $("#add-form-cont").collapse('hide');
                      noty({
                                      width: 200,
                                      text: Translation(res.data),
                                      type: 'success',
                                      dismissQueue: true,
                                      timeout: 3000,
                                      layout: 'topRight',
                                });
                  }
                  $("#submit_add_btn").attr('disabled',false);
                })
                .fail(function(err) {
                   swal({
                      title: Translation("خطأ"),
                      text: Translation(err),
                      confirmButtonColor: "#66BB6A",
                      type: "error"
                    });
                   $("#submit_add_btn").attr('disabled',false);
                })
                .always(function() {
                    console.log("complete");
                });
            }

    });


     // submit editable Visa Application form
  $('#edit_form').submit(function(event) {
            event.preventDefault();
            // block
            block = $(this).parent();
            // \block

            
            var catId    = $("#edit_objid").val();

            var customer_full_name    = $("#edit_customer_full_name").val();
            var customer_email        = $("#edit_customer_email").val();
            var customer_phone        = $("#edit_customer_phone").val();
            var customer_phone2       = $("#edit_customer_phone2").val();
            var customer_address      = $("#edit_customer_address").val();
            var customer_job_title    = $("#edit_customer_job_title").val();
            var customer_type         = $("#edit_customer_type").val();

            var Check1 = true;
            var Check2 = true;
            var Check3 = true;
            var Check4 = true;
            var Check5 = true;

            var Check1    = Checks('edit_customer_full_name');
            // var Check2    = Checks('edit_customer_email');
            var Check3    = Checks('edit_customer_phone');
            // var Check4    = Checks('edit_customer_address');
            var Check5    = Checks('edit_customer_type');

            

            if(Check1 && Check2 && Check3 && Check4 && Check5){
                $.ajax({
                    url: "models/crul_customer.php",
                    type:"POST",
                    dataType : "JSON",
                    data : {customer_full_name:customer_full_name,customer_email:customer_email,
                      customer_phone:customer_phone,customer_phone2:customer_phone2,customer_address:customer_address,
                      customer_job_title:customer_job_title,customer_type:customer_type,obj_id:catId,type:'update'},
                    complete:function(){
                      //hideLoader();
                    },
                    beforeSend:function(){
                      //showLoader("Updating Category");
                    },
                    success: function(res) {
                      if(res.is_success == false){
                          noty({
                            width: 200,
                            text: Translation(res.data),
                            type: 'error',
                            dismissQueue: true,
                            timeout: 3000,
                            layout: 'topRight',
                          });
                        $("#edit-form-cont").collapse('hide');
                        $("#edit_form")[0].reset();
                        
                      }else {
                        $("#edit_form")[0].reset();
                        $(".datatable-column-search-inputs").DataTable().ajax.reload(null, false);
                        
                        $('#edit_form_cont').modal('toggle');

                        noty({
                                        width: 200,
                                        text: Translation(res.data),
                                        type: 'success',
                                        dismissQueue: true,
                                        timeout: 3000,
                                        layout: 'topRight',
                                  });
                      }
                    }
                });
              }
    });

    
    

});






$(function() {
//var singleSelect = $('.datatable-column-search-inputs').DataTable();
    
  // Initialize plugin Tag Input
    $('.tokenfield-primary').tokenfield();

    // Add class when token is created
    $('.tokenfield-primary').on('tokenfield:createdtoken', function (e) {
        $(e.relatedTarget).addClass('bg-primary')
    });




   // Setting datatable defaults
    $.extend( $.fn.dataTable.defaults, {
        autoWidth: false,
        columnDefs: [{ 
            orderable: false,
            width: '100px',
            targets: [ 4 ]
        }],
        dom: '<"datatable-header"fBl><"datatable-scroll"t><"datatable-footer"ip>',
        language: {
            search: '<span>'+Translation('بحث')+'</span> _INPUT_',
            searchPlaceholder: Translation('بحث عن')+' ...',
            lengthMenu: '<span>'+Translation('عرض')+' :</span> _MENU_',
            paginate: { 'first': 'First', 'last': 'Last', 'next': '&larr;', 'previous': '&rarr;' }
        },
        drawCallback: function () {
            $(this).find('tbody tr').slice(-3).find('.dropdown, .btn-group').addClass('dropup');
        },
        preDrawCallback: function() {
            $(this).find('tbody tr').slice(-3).find('.dropdown, .btn-group').removeClass('dropup');
        }
    });

    

    // Individual column searching with text inputs
    $('.datatable-column-search-inputs tfoot td').not(':last-child').each(function () {
        var title = $('.datatable-column-search-inputs thead th').eq($(this).index()).text();
        $(this).html('<input type="text" class="form-control input-sm" placeholder="'+Translation('بحث عن')+' '+title+'" />');
    });
    
    
   var query_typ  = getQueryVariable("typ");

   
   var table = $('.datatable-column-search-inputs').DataTable({
        buttons: {            
            buttons: [
                {
                    extend: 'copyHtml5',
                    className: 'btn btn-default',
                    exportOptions: {
                        columns: [ 0, ':visible' ]
                    }
                },
                {
                    extend: 'excelHtml5',
                    className: 'btn btn-default',
                    exportOptions: {
                        columns: ':visible'
                    }
                },
                {
                    extend: 'pdfHtml5',
                    className: 'btn btn-default',
                    exportOptions: {
                        columns: ':visible'
                    }
                },
                {
                    extend: 'print',
                    className: 'btn btn-default',
                    exportOptions: {
                        columns: ':visible'
                    }
                },
                {
                    extend: 'colvis',
                    text: '<i class="icon-three-bars"></i> <span class="caret"></span>',
                    className: 'btn bg-blue btn-icon'
                }
                
            ]
        },
        lengthMenu: [
            [  10, 25, 50, 100 ],
            [  '10', '25', '50', '100' ]
        ],
        "processing": true,
        "serverSide": true,
        "ajax": {
        "url" : "models/crul_customer.php",
        "data": function(d){
          d.type = "load";
          if(query_typ !='not'){
            d.typ =query_typ ;
          }
        }
        },
        drawCallback: function() {
                  $('[data-popup=tooltip]').tooltip();
                  $('[data-popup=popover-custom]').popover({
                    template: '<div class="popover  border-teal-400"><div class="arrow"></div><h3 class="popover-title bg-teal-400"></h3><div class="popover-content"></div></div>'
                  });

            },
        "columnDefs": [
          {
              "targets": 8,
              "data": null,
              "render": function (data,type,row) {

                            return  `<ul class='icons-list pull-right'>
                                      
                                        <li class='text-primary-600'>
                                            <a href='#' class='text-primary-400' onclick="edit_items(`+row[0]+`,'`+escapeHtml(row[1])+`','`+escapeHtml(row[2])+`','`+escapeHtml(row[3])+`','`+escapeHtml(row[4])+`','`+escapeHtml(row[5])+`',`+row[6]+`,'`+escapeHtml(row[8])+`')" data-popup='tooltip' data-original-title='`+Translation('تحرير')+`'>
                                                <i class='icon-pencil7'></i>
                                            </a>
                                        </li>

                                        <li class='text-danger-600'>
                                            <a href='#' class='text-danger-400' onclick="delete_items(`+row[0]+`)" data-popup='tooltip' data-original-title='`+Translation('حذف')+`'>
                                                <i class='icon-trash'></i>
                                            </a>
                                        </li>

                                    </ul>`;
                        }
          },

          {
             "render": function(data, type, row){


                      // return  `<a href='index.php?p=invoice&id=`+row[0]+`'  data-popup='tooltip' data-original-title='Show All Invoices for this Customer'>`+data+`</a>`;
                      return  `<a onclick="load_account_statment(`+row[0]+`)"  data-popup='tooltip' data-original-title='`+Translation('عرض جميع كشوفات الحساب لهذا الزبون')+`'>`+data+`</a>`;


             },
             "targets": 1
          },

          {
             "render": function(data, type, row){

                   
                     status = '<span class="badge bg-success  btn-block ">'+data+'</span>';
                  
                     status1 = '<span class="badge bg-violet  btn-block ">'+row[8]+'</span>';
                  
                      // return  `<a href='index.php?p=invoice&id=`+row[0]+`'  data-popup='tooltip' data-original-title='Show All Invoices for this Customer'>`+data+`</a>`;
                      return  status + status1;


             },
             "targets": 3
          },


          {
             "render": function(data, type, row){

                   if(data ==0){
                     status = '<span class="label bg-success  btn-block ">'+Translation('عميل دائم')+'  </span>';
                   }else {
                     status = '<span class="label bg-violet  btn-block ">'+Translation('زبون اعتيادي')+'  </span>';
                   }
                      // return  `<a href='index.php?p=invoice&id=`+row[0]+`'  data-popup='tooltip' data-original-title='Show All Invoices for this Customer'>`+data+`</a>`;
                      return  status;


             },
             "targets": 6
          },
            
            
        ],
        "fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {


            if(   aData[4] == 0 ){
                $(nRow).children().each(function (index, td) {
                    $(this).addClass('warning-active');
                });
            }
        },
        "order": [[0,'desc']],
                "displayLength": 25,
 

        initComplete: function () {
         
        // $("div.datatable-header").append(`<a  style="margin-left:15px;" class="btn bg-info-400"  id="headerBtn" onclick="add_item()"> <i class="icon-file-pdf position-right"></i> Add Category </a>`);   
         $("div.datatable-header").append(`<a data-toggle="collapse"
                                      style="margin-right:10px;"
                                      data-target="#add-form-cont"
                                      href="javascript:;"
                                      aria-controls="add-form-cont"
                                      aria-expanded="false"
                                      class="btn btn-primary"
                                      id="add_Item_Btn">
                                        <i class="`+CURRENT_BTN_ICON+`"></i> `+Translation(CURRENT_BTN)+`
                                    </a>`);  


            this.api().columns().every( function() {
                var column = this;
                

            });
        }
    });

    
    table.columns().every( function () {
        var that = this;
        $('input', this.footer()).on('keyup change', function () {
            that.search(this.value).draw();
        });
    });


    // Single row selection
    
    $('.datatable-column-search-inputs tbody').on('click', 'tr', function() {
        if ($(this).hasClass('success')) {
            $(this).removeClass('success');
        }
        else {
            table.$('tr.success').removeClass('success');
            $(this).addClass('success');
        }
    });


         // change filter to top
    $('.datatable-column-search-inputs tfoot tr').insertAfter($('.datatable-column-search-inputs thead tr'))


    $('.dataTables_length select').select2({
        minimumResultsForSearch: Infinity,
        width: 'auto'
    });


});



