// 公共变量
var activityCode = typeof rules !== 'undefined' ? rules.acActivity.code : '';
var baseUrl = "https://space-api.check.icaremgt.com";
var manageUrl = "http://api-admin-manage.check.icaremgt.com";

// 防止投票连点
var gb_vote_loaded = false

if(typeof data !== 'undefined'){
  data.htmlJson = JSON.parse(data.htmlJson);
}

// 分享用户信息
var shareUserId = '';
var shareUserName = '';

// 设置token
function setToken(){
  if(user.token !== '') {
    sessionStorage.setItem('x-token', user.token);
  }else {
    sessionStorage.setItem('x-token', '');
  }
}

// 机构id
function orgIdFn(id) {
    var signupOrg = rules.acActivityOrgs
    var org = signupOrg && signupOrg.filter(function(item){
        return id == item.id
    })
    if(org.length == 1) {
        return org[0]
    }else {
        return null
    }
}
// 获取token
function getToken() {
  // var t = sessionStorage.getItem('x-token');
  // return t
  return user.token
}

// 获取域名及二级目录
function getBaseOrigin(){
  var _base = '';
  var _origin = window.location.origin;
  var _pathname = window.location.pathname;
  var index = _pathname.indexOf('/ACTIVITY');
  var _secondFolder = '';
  
  if(index !== 0){
      _secondFolder = _pathname.slice(0,index);
  }
  _base = _origin + _secondFolder;

  return _base;
}

// 页面跳转
function transPage(_pageNumber, _activityCode, _token, _addParam) {
  var url = '';
  var _base = '';
  var _urlParam = getRequest();
  var _newUrlParam = '';
  _base = getBaseOrigin();

  // 报名页之外的页面过滤url参数-userId
  if(_pageNumber !== '2'){
    // 移除userId参数
    delete _urlParam.userId;
    var flag = false;
    if(!$.isEmptyObject(_urlParam)){
      for(var key in _urlParam){
        // 第一次进入
        if(!flag){
          _newUrlParam += '?'+key+'='+_urlParam[key];
          flag = true;
        }else { 
          _newUrlParam += '&'+key+'='+_urlParam[key];
        }
      }
    }else {
      _newUrlParam = '';
    }
  }else {
    // 报名页面正常携带参数
    _newUrlParam = window.location.search;
  }

  if (typeof _newUrlParam !== 'undefined' && _newUrlParam !== '') {
      url = _base + "/ACTIVITY/view/" + _activityCode + "/" + _pageNumber + _newUrlParam + (_addParam !== undefined ? ('&' + _addParam) : '');
  } else {
      url = _base + "/ACTIVITY/view/" + _activityCode + "/" + _pageNumber + (_addParam !== undefined ? ('?' + _addParam) : '');
  }

  // var _form = document.createElement('form');
  // _form.action = url;
  // _form.method = "post";
  // _form.style.display = "none";

  // var inputToken = document.createElement('input');
  // inputToken.value = _token;
  // inputToken.name = 'x-token';
  // _form.appendChild(inputToken);
  // document.body.appendChild(_form);
  // _form.submit();
  window.location.href = url;
}

// 获取URL中指定参数
function getQueryString(name) {
  var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
  var r = window.location.search.substr(1).match(reg);
  if (r != null) {
      return unescape(r[2]);
  }
  return null;
}

// 获取url所有参数
function getRequest() {
  var url = window.location.search; //获取url中"?"符后的字串
  var theRequest = new Object();
  if (url.indexOf("?") != -1) {
    var str = url.substr(1);
    strs = str.split("&");
    for(var i = 0; i < strs.length; i ++) {
      theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
    }
  }
  return theRequest;
}


// 加载HTML结构
function loadHtmlJson() {
  $('body').prepend(json2html(data.htmlJson));
  var _relationship = JSON.parse(data.relationship);
  for(var i=0;i<_relationship.childs.length;i++) {
      var _page = _relationship.childs[i].page
      var _pageNumber = _relationship.childs[i].pageNumber
      $('body').prepend(json2html(JSON.parse(data[_page].htmlJson)));
      $('#html-template-'+_pageNumber).addClass('global-none')
  }
}

// 获取机构名称
function getOrgNameFn(callback) {
  var signupId = getQueryString('bindId')
  var orgId = orgIdFn(signupId).orgId
  $.ajax({
      type: 'GET',
      url: baseUrl + '/ORG/hospital/community/hospitalInfo/' + orgId,
      headers: {
          'x-token': getToken()
      },
      success: function(data) {
          if(data.code == 200) {
            callback && callback(data)
          }
      },
      error: function(data) {
          $.dialog({
            type : 'tips',
            autoClose : 3000,
            infoText : data.responseJSON.message
        });
      }
  })
}

// 关注弹出框
function appendAttentionDialog() {
  var bindId = getQueryString("bindId");
  var orgQrCode = '';
  var orgId = '';

  for(var k = 0; k < rules.acActivityOrgs.length; k++){
    if(rules.acActivityOrgs[k].id == bindId){
      orgId = rules.acActivityOrgs[k].orgId;
      orgQrCode = rules.acActivityOrgs[k].qrCodeUrl;
      break;
    }
  }

  var str = '<section id="html-container-attention" style="display: none;">'+
              '<div>'+
                '<div class="c-modal-wrap">'+
                  '<div class="mshe-mask"></div> '+
                  '<div class="c-modal">'+
                    '<div class="modal-dialog">'+
                      '<div c_type="dialog" c_typename="dialog_playerVote1" class="modal-content" style="background: rgb(255, 255, 255);">'+
                      '<div class="modal-header">'+
                        '<img src="http://qnfile.icareyou.net/363a344aa7424d219a5fc86eff7265751561343712294.jpg" class="header-pic">'+
                      '</div>'+ 
                      '<div class="modal-body">'+
                        '<p class="struct">长按关注后继续活动</p>'+
                        '<div>'+
                          '<img src="'+ orgQrCode +'" alt="" style="width: 100%;">'+
                        '</div>'+
                      '</div>'+
                      '<div class="modal-close">'+
                        '<img src="http://qnfile.icareyou.net/ddae57885c424abdb13d37c78038c6a01561343787282.jpg">'+
                      '</div>'+
                      '</div>'+
                    '</div>'+
                  '</div>'+
                '</div>'+
              '</div>'+
            '</section>';

  $('body').prepend(str);
  // 事件绑定
  $("#html-container-attention .modal-close").off("click").on("click", function(){
    $("#html-container-attention").fadeOut();
  });

  // 获取机构名称
  getOrgNameFn(function(data){
    var orgName = '长按关注'+  data.records.orgName +'后继续活动';
    $('#html-container-attention .modal-body .struct').text(orgName);
  });

  // 未关注过默认显示弹出框  
  if (!user.attention){
    $("#html-container-attention").fadeIn('normal', function() {
      // $(document).scrollTop(0);
    });
  }
}

// 显示强关弹出框
function showAttentionDialog() {
  $("#html-container-attention").fadeIn('normal', function() {
    // $(document).scrollTop(0);
  });
}

// 隐藏强关弹出框
function hideAttentionDialog() {
  $("#html-container-attention").hide();
}

// 不在审核页面插入强关弹出框
if(typeof user !== 'undefined' && $("#examineTitle").length === 0){
  appendAttentionDialog();
}

// 判断是否关注
function isAttention(successCallback,errorCallback) {
  // 未关注
  if(!user.attention){
    if(errorCallback) {
      errorCallback();
    }else {
      // 强关弹出框
      showAttentionDialog();
    }
  } else {
    successCallback && successCallback();
  }
}

// 是否报名
function isSignUp(successCallback,errorCallback) {
  var _t = getToken();
  // 已报名
  if(user.reviewStatus !== '') {
      switch (user.reviewStatus) {
          // 0-待审核
          case 0:
              alert('您的报名信息正在审核中...');
          break;
          // 1-审核通过
          case 1:
            if(successCallback){
              successCallback();
            }else {
              alert('您当前已通过报名,请到个人主页去拉票!');
            }
          break;
          // 2-审核未通过
          case 2:
              alert('审核未通过!');
              transPage('2',activityCode,_t);
          break;
          default:
              break;
      }
  } else {// 未报名
    if(errorCallback) {
      errorCallback();
    }else {
      // 跳转到报名页面 
      transPage('2',activityCode,_t);
    }
  }
}

// 获取活动名称
function getActivityTitle() {
  var activityCode = getQueryString('activityCode');
  var params = {
    activityCode: activityCode
  }
  $.ajax({
      type: 'GET',
      url: baseUrl + '/ACTIVITY/'+ activityCode +'/settings',
      data: params,
      headers: {
        'x-token': getToken()
      },
      success: function(data) {
          if(data.status == 200) {
            var title = data.result.settings.szText.h5Title;
            document.title = title;

            var $body = $('body');
            var $iframe = $('<iframe src=""></iframe>');
            $iframe.on('load',function() {
              setTimeout(function() {
                  $iframe.off('load').remove();
              }, 0);
            }).appendTo($body);
          }
      },
      error: function() {
          $.dialog({
              type : 'tips',
              autoClose : 3000,
              infoText : '请求超时,请尝试刷新页面!'
          });
      }
  })
}

// 加载loading
function showLoading(msg){
  $.dialog({
    type : 'info',
    infoText : msg ? msg : '加载中…',
    infoIcon : 'https://raw.githubusercontent.com/tinytxy/h5_activity_github/master/showPhotos/images/loading_2.gif',
    direction: '',
	  align: 'center'
  });
}
// 关闭loading
function hideLoading() {
  $.dialog.close();
}

/* ***********************弹出框控制全部逻辑************************** */
// 投票
function voteClickFn(params, successCallback, errorCallback){ 

  if(gb_vote_loaded) {
    return
  }
  gb_vote_loaded = true;

  shareUserId = params.userId;
  shareUserName  = params.userName;
  
  $.ajax({
    type: 'PUT',
    url: baseUrl + '/ACTIVITY/sz/vote/' + activityCode,
    data: params,
    headers: {
        'x-token': getToken()
    },
    success: function(data) {
        if(data.status == 200) {
          // 已报名-通过审核
          if(user.reviewStatus === 1) {
            $('#html-template-4 .struct span').text(data.result.voteNumDay)
            $('#html-template-4').fadeIn('normal', function() {
              // $(document).scrollTop(0);
            });
          }else {
            $('#html-template-6 .struct span').text(data.result.voteNumDay)
            $('#html-template-6').fadeIn('normal', function() {
              // $(document).scrollTop(0);
            });
          }
          successCallback && successCallback(data); 
        }else if(data.status == 201) {
          // 已报名-通过审核
          if(user.reviewStatus === 1) {
            $('#html-template-5 .struct span').text(rules.settings.szRule.voteNumDay)
            $('#html-template-5').fadeIn('normal', function() {
              // $(document).scrollTop(0);
            });
          }else {
            $('#html-template-7 .struct span').text(rules.settings.szRule.voteNumDay)
            $('#html-template-7').fadeIn('normal', function() {
              // $(document).scrollTop(0);
            });
          }
          errorCallback && errorCallback(data); 
        }else {
            // 异常处理
            $.dialog({
                contentHtml : '<p style="text-align:center;">'+ data.message +'</p>'
            });
        }
        gb_vote_loaded = false;
    },
    error: function(data){
        // 异常处理
        $.dialog({
            contentHtml : '<p style="text-align:center;">'+ data.responseJSON.message +'</p>'
        });
        gb_vote_loaded = false;
    }
  });
}

// 参赛选手投票-有票
function playerHasVoteDialogBind(){
  // 继续投票
  $('#html-template-4 .vote-btn-1').off("click").on('click',function(){
      $('#html-template-4').fadeOut();
  });

  // 我要拉票
  $('#html-template-4 .vote-btn-2').off("click").on('click',function(){
      $('#html-template-4').hide();
      $('#html-template-8').fadeIn('normal', function() {
        $(document).scrollTop(0);
      });
      // 设置分享参数
      setWxShare({
        userId: shareUserId,
        userName: shareUserName
      });
  });

  // 关闭按钮
  $('#html-template-4 .modal-close').off("click").on('click',function(){
      $('#html-template-4').fadeOut();
  });
}

// 参赛选手投票-无票
function playerNoVoteDialogBind(){
  // 查看排行
  $('#html-template-5 .vote-btn-1').off("click").on('click',function(){
      $('#html-template-5').fadeOut();
      var _url = window.location.href;
      var indexKey = 'view/'+ activityCode + '/1';
      // 当前是首页则触发切换按钮
      if(_url.indexOf(indexKey) > -1){
        $("#act3152823482970").click();
      }else {
        // 当前非首页则跳转
        var _t = getToken();
        var _addParam = 'toRanger=1'
        transPage('1',activityCode,_t,_addParam);
      }
  });

  // 我要拉票
  $('#html-template-5 .vote-btn-2').off("click").on('click',function(){
      $('#html-template-5').hide();
      $('#html-template-8').fadeIn('normal', function() {
        $(document).scrollTop(0);
      });
      // 设置分享参数
      setWxShare({
        userId: shareUserId,
        userName: shareUserName
      });
  });

  // 关闭按钮
  $('#html-template-5 .modal-close').off("click").on('click',function(){
      $('#html-template-5').fadeOut();
  });
}

// 投票者-有票
function visitorHasVoteDialogBind(){
  // 继续投票
  $('#html-template-6 .vote-btn-1').off("click").on('click',function(){
      $('#html-template-6').fadeOut();
  });

  // 我要拉票
  $('#html-template-6 .vote-btn-2').off("click").on('click',function(){
      $('#html-template-6').hide();
      $('#html-template-8').fadeIn('normal', function() {
        $(document).scrollTop(0);
      });
      // 设置分享参数
      setWxShare({
        userId: shareUserId,
        userName: shareUserName
      });
  });

  // 关闭按钮
  $('#html-template-6 .modal-close').off("click").on('click',function(){
      $('#html-template-6').fadeOut();
  });
}

// 投票者-无票
function visitorNoVoteDialogBind(){
  // 我要参赛
  $('#html-template-7 .vote-btn-1').off("click").on('click',function(){
      $('#html-template-7').fadeOut();
      var _t = getToken();
      // 跳转到报名
      transPage('2',activityCode,_t);
  });

  // 我要拉票
  $('#html-template-7 .vote-btn-2').off("click").on('click',function(){
      $('#html-template-7').hide();
      $('#html-template-8').fadeIn('normal', function() {
        $(document).scrollTop(0);
      });
      // 设置分享参数
      setWxShare({
        userId: shareUserId,
        userName: shareUserName
      });
  });

  // 关闭按钮
  $('#html-template-7 .modal-close').off("click").on('click',function(){
      $('#html-template-7').fadeOut();
  });
}

// 拉票/活动秘籍
function voteShateDialogBind(){
  // 关闭分享弹出框
  $("#html-template-8 .modal-close").off("click").on("click", function() {
      $('#html-template-8').hide();
  });
}

// 所有投票弹出框按钮事件绑定
function voteDialogBindFn() {
  playerHasVoteDialogBind();
  playerNoVoteDialogBind();
  visitorHasVoteDialogBind();
  visitorNoVoteDialogBind();
  voteShateDialogBind();
}

// 设置分享文案
function setWxShare(data) {

  var _userId = data.userId;
  var _userName = data.userName;

  wx.ready(function(){
    // 获取域名
    var _base = getBaseOrigin();
    var _settings = rules.settings;

    var shareData = {
        title: _settings.szText.shareTitile,
        imgUrl: _settings.szText.shareIcon,
        desc: _settings.szText.shareSubtitle,
        link: ""
    }

    var auth_id = getQueryString('auth_id');
    auth_id = auth_id !== null ? '&auth_id='+auth_id : '';

    // 被分享人
    if (_userId !== '') {
      shareData.title = _settings.szText.pullTitile;
      shareData.desc = _settings.szText.pullSubtitle.replace("{{姓名}}", _userName);
      shareData.link = _base + "/ACTIVITY/view/" + activityCode + "/3?activityCode="+activityCode+"&userId="+ _userId +'&bindId='+getQueryString("bindId") + auth_id;
    }else {
      // 分享首页
      shareData.title = _settings.szText.shareTitile;
      shareData.desc = _settings.szText.shareSubtitle;
      shareData.link = _base + "/ACTIVITY/view/" + activityCode + "/1?activityCode="+activityCode+'&bindId='+getQueryString("bindId") + auth_id;
    }

    /**
     *分享给朋友
    */
    wx.onMenuShareAppMessage({
        title: shareData.title, // 分享标题
        desc: shareData.desc, // 分享描述
        link: shareData.link, // 分享链接
        imgUrl: shareData.imgUrl, // 分享图标
        type: 'link', // 分享类型,music、video或link,不填默认为link
        dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
        success: function () {
            // 用户确认分享后执行的回调函数
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
        }
    });
    /**
     *分享到朋友圈
    */
    wx.onMenuShareTimeline({
        title: shareData.title, // 分享标题
        desc: shareData.desc, // 分享描述
        link: shareData.link, // 分享链接
        imgUrl: shareData.imgUrl, // 分享图标
        success: function () {
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
        }
    });
  });
}

// 图片压缩
function compressImage(file, callback) {

  var reader = new FileReader();
  var img = new Image();

  reader.readAsDataURL(file);
  
  // 缩放图片需要的canvas
  var canvas = document.createElement('canvas');
  var context = canvas.getContext('2d');

  img.onload = function() {
    // 图片原始尺寸
    var originWidth = this.width;
    var originHeight = this.height;
    // 最大尺寸限制
    var maxWidth = 800, 
        maxHeight = 800;

    // 目标尺寸
    var targetWidth = originWidth, 
        targetHeight = originHeight;

    // 图片尺寸超过1024x1024的限制
    if (originWidth > maxWidth || originHeight > maxHeight) {
      if (originWidth / originHeight > maxWidth / maxHeight) {
          // 更宽,按照宽度限定尺寸
          targetWidth = maxWidth;
          targetHeight = Math.round(maxWidth * (originHeight / originWidth));
      } else {
          targetHeight = maxHeight;
          targetWidth = Math.round(maxHeight * (originWidth / originHeight));
      }
    }
        
    // canvas对图片进行缩放
    canvas.width = targetWidth;
    canvas.height = targetHeight;
    // 清除画布
    context.clearRect(0, 0, targetWidth, targetHeight);
    // 图片压缩
    context.drawImage(img, 0, 0, targetWidth, targetHeight);
    // canvas转为blob并上传
    canvas.toBlob(function (blob) {
      callback && callback(blob);     
    }, file.type || 'image/png');
  };

  reader.onload = function(e) {
    img.src = e.target.result;
  };
}