$(function () {
  window.Media_List_Data = {
    // 媒体列表所有的数据
    media_list: [],
    // 被选中的媒体id数组
    selected_list: [],
    // 标志：用于判断媒体列表是否在限流弹窗中打开的开关
    limit_switch: false,
    // 标志：用于判断限流配置的序号
    limit_num: 0,
    // 初始化媒体列表
    init: function () {
      // 获取媒体列表并渲染
      $.post('/Iad_CustomerTemplate/GetMediaList', function (res) {
        Media_List_Data.media_list = res    // 初始化媒体列表
        Media_List_Data.renderMediaList(Media_List_Data.media_list)   // 渲染媒体列表数据
        Media_List_Data.mediaList()    // 初始化媒体列表UI事件
        Media_List_Data.search()    // 初始化模糊搜索事件
      })
    },
    // 渲染媒体媒体列表
    renderMediaList: function (medias) {
      medias = medias ? medias : Media_List_Data.media_list
      var list = JSON.parse(JSON.stringify(medias));
      var mediaList = ''

      // 先将列表渲染出来
      for (var i = 0; i < list.length; i++) {
        var item = list[i]
        mediaList += '<li><input class="btn btn-default media-item" title="' + item.SourceName + '" type="button" value="' + item.SourceName + '" sourceid="' + item.SourceId + '" ></li>'
      }
      $('#frame-sheild1 .media-list').html(mediaList)

      // 根据被选中的列表数组 进一步渲染
      setTimeout(function () {
        var data = Media_List_Data.selected_list
        for (var j = 0; j < data.length; j++) {
          $('#frame-sheild1 .media-item[sourceid=' + data[j] + ']').addClass('selected')
        }
      }, 100);
      Media_List_Data.bindClick()
    },
    // 关闭时媒体弹窗的时候 将媒体弹窗置成最初始时的状态
    initical: function () {
      $('#frame-sheild1').fadeOut()    // 弹窗关闭
      $('#frame-sheild1 .frame-body ul li .media-item').removeClass('selected')    // 所有媒体按钮置为未选中状态
      Media_List_Data.selected_list = []    // 清空选中媒体列表数组
      // $('#frame-sheild1 .select-all-media').val('全选')    // 全选/全不选按钮 恢复为全选
      $('#search-frame1').val('')    // 搜索框置空
      Media_List_Data.limit_switch = true
      $('#frame-sheild1 .frame-body .select-all-media').removeClass('selected')
      $('#frame-sheild1 .frame-body ul li .media-item').removeClass('selected')
    },
    // 初始化媒体列表的UI事件
    mediaList: function () {
      // 关闭
      $('#frame-sheild1 .closeFrame').on('click', function () {
        if (Media_List_Data.limit_switch) {   // 媒体列表是在限流设置中打开的
          var data = Limit_Flow_Config.limitFlowData
          for (var i = 0; i < data.length; i++) {
            var item = data[i]
            if (item.BusinessId == Media_List_Data.limit_num) {
              var str = item.LimitSourceId
              var str1 = str.substr(1, str.length - 2)
              item.mediaList = str1.split(',')
              if (item.mediaList[0] === '') {
                item.mediaList = []
              }
              break
            }
          }
        }
        Media_List_Data.initical()
      })
      // 取消
      $('#frame-sheild1 .cancel-btn').on('click', function () {
        if (Media_List_Data.limit_switch) {   // 媒体列表是在限流设置中打开的
          var data = Limit_Flow_Config.limitFlowData
          for (var i = 0; i < data.length; i++) {
            var item = data[i]
            if (item.BusinessId == Media_List_Data.limit_num) {
              var str = item.LimitSourceId
              var str1 = str.substr(1, str.length - 2)
              item.mediaList = str1.split(',')
              if (item.mediaList[0] === '') {
                item.mediaList = []
              }
              break
            }
          }
        }
        Media_List_Data.initical()
      })
      // 确定：关闭媒体弹窗并保存媒体数据
      $('#frame-sheild1 .confirm-btn')[0].onclick = function () {
        if (Media_List_Data.limit_switch) {   // 关闭的时候 被点击的选择按钮要显示选中的媒体数量
          $('#frame-sheild_2 .limit-flow-type .select[limitNum = ' + Media_List_Data.limit_num + ']').html('选择(' + Media_List_Data.selected_list.length + ')')
          // 保存媒体数据
          Media_List_Data.saveMediaData()
        }
        Media_List_Data.initical()
      }
      // 媒体列表操作：选择全部媒体
      $('#frame-sheild1 .frame-body .select-all-media').on('click', function () {
        if (!$(this).hasClass('selected')) {
          $(this).addClass('selected')
          $('#frame-sheild1 .frame-body ul li .media-item').addClass('selected')
          var data = Media_List_Data.media_list
          Media_List_Data.selected_list = [];
          for (var i = 0; i < data.length; i++) {
            Media_List_Data.selected_list.push(data[i].SourceId)
          }
        } else {
          $(this).removeClass('selected')
          $('#frame-sheild1 .frame-body ul li .media-item').removeClass('selected')
          Media_List_Data.selected_list = []
        }
      })
      $('#frame-sheild1 .frame-header .search-box .clear').on('click', function () {
        $('#search-frame1').val('')
        Media_List_Data.renderMediaList(Media_List_Data.media_list)
      })
      Media_List_Data.search()
    },
    // 保存媒体数据
    saveMediaData: function () {
      var data = Limit_Flow_Config.limitFlowData   // 限流数据
      data[Media_List_Data.limit_num - 1].mediaList = Media_List_Data.selected_list
      // for (var i = 0; i < $('#frame-sheild1 .frame-body ul li .media-item.selected').length; i++) {
      //   var item = $('#frame-sheild1 .frame-body ul li .media-item.selected')[i]
      //   data[Media_List_Data.limit_num - 1].mediaList.push($(item).attr('sourceid'))
      // }
      data[Media_List_Data.limit_num - 1].LimitSourceId = ',' + data[Media_List_Data.limit_num - 1].mediaList.join(',') + ','
    },
    // 绑定媒体列表项的点击事件
    bindClick: function () {
      // 媒体列表项的点击事件
      $('#frame-sheild1 .frame-body ul li .media-item').on('click', function () {
        if ($(this).hasClass('selected')) {  // 若已被选中，则取消，同时修改媒体列表数组
          $(this).removeClass('selected')
          Media_List_Data.selected_list.remove($(this).attr('sourceid'))
        } else {   // 若未选中，则选中，同时修改媒体列表数组
          $(this).addClass('selected')
          Media_List_Data.selected_list.push($(this).attr('sourceid'))
        }
      })
    },
    // 模糊搜索
    search: function () {
      $('#search-frame1').on('keyup', function () {
        var keyWords = $(this).val()
        var param_list = []
        var data = Media_List_Data.media_list
        for (var i = 0; i < data.length; i++) {
          if (data[i].SourceName.indexOf(keyWords) !== -1) {
            param_list.push(data[i])
          }
        }
        Media_List_Data.renderMediaList(param_list)
      })
    }
  }

  Media_List_Data.init()

})