// Learn TypeScript:
//  - https://docs.cocos.com/creator/2.4/manual/en/scripting/typescript.html
// Learn Attribute:
//  - https://docs.cocos.com/creator/2.4/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - https://docs.cocos.com/creator/2.4/manual/en/scripting/life-cycle-callbacks.html


import User from "../../FrameWork/User/User";
import AppPlatform from "../../FrameWork/Util/AppPlatform";
import Common5 from "../../Platform/th/Common5";
import CommonDefine from "../../Platform/th/CommonDefine";
import List from "../../Platform/th/List";
import UiBase from "../GameBase/UiBase";
import BagManager from "../Manager/BagManager";
import LevelUpManager from "../Manager/LevelUpManager";
import UserManager from "../Manager/UserManager";
import PrefabManage from "../PrefabManager/PrefabManage";
import PaiHangBangItem from "./PaiHangBangItem";

const { ccclass, property } = cc._decorator;

@ccclass
export default class PaiHangBang extends UiBase {
    @property(List)
    listSP: List = null; //前3
    @property(List)
    listSP_down: List = null; //我附近的
    @property(List)
    listSP_firstsize: List = null; //前20
    @property(cc.Label)
    myPaiMing: cc.Label = null;

    // LIFE-CYCLE CALLBACKS:

    // onLoad () {}
    // paihangbangDate = []
    dataListSP = []
    dataListSP_down = []
    dataListSP_firstsize = []
    // myBangdan = -1
    rewardMoney = 0
    myData: any;
    rankFront8: any; //前8名
    rankFront20: any; //前20名
    rankAfter20: any; //后20名
    isWeek: boolean = false;
    start() {
        //加载json
        let self = this
        // this.paihangbangDate.length = 0
        // cc.loader.loadRes('Json/gameConfig/paihangbang.json', function (err, gameconfig) {
        //     if (err) {
        //         return;
        //     }
        //     self.paihangbangDate = gameconfig.json;
        //     self.setViewDate()
        // });

        // CommonDefine.sendRankData((response) => {
        //     console.log(response, 'getRankDataLink response+++++++++++===')
        //     //我需要的数据及时更新
        //     self.myData = response.Data[0]
        //     self.rankFront8 = response.Data_bak

        //     self.rankFront20 = response.Data_bak1
        //     self.rankAfter20 = response.Data_bak2
        //     self.setViewDate()
        // }, () => {

        // }, false)

        this.checkAll()

        this.node.getChildByName("分享").active = !User.getPaiHangShareState()
    }

    //周榜
    checkWeek() {
        let self = this
        CommonDefine.sendRankData((response) => {
            console.log(response, 'getRankDataLink response+++++++++++===')
            self.isWeek = true
            //我需要的数据及时更新
            self.myData = response.Data[0]
            self.rankFront8 = response.Data_bak

            self.rankFront20 = response.Data_bak1
            self.rankAfter20 = response.Data_bak2
            self.setViewDate()
        }, () => {

        }, true)
    }

    //总榜
    checkAll() {
        let self = this
        CommonDefine.sendRankData((response) => {
            console.log(response, 'getRankDataLink response+++++++++++===')
            //我需要的数据及时更新
            self.isWeek = false
            self.myData = response.Data[0]
            self.rankFront8 = response.Data_bak

            self.rankFront20 = response.Data_bak1
            self.rankAfter20 = response.Data_bak2
            self.setViewDate()
        }, () => {

        }, false)
    }

    setViewDate() {
        let myWeekDayTime = User.getStatistics("myWeekDayTime")
        //不是新玩家点周榜直接显示前20名,其他不显示
        if (this.isWeek && Date.now() > myWeekDayTime) {
            //前20名
            this.dataListSP_firstsize = this.rankFront8
            this.listSP_firstsize.numItems = this.dataListSP.length;
            this.node.getChildByName('我的排名框').active = false
            this.listSP.node.active = false
            this.listSP_down.node.active = false
            this.listSP_firstsize.node.active = true
        } else {
            this.listSP.node.active = true
            this.listSP_down.node.active = true
            this.listSP_firstsize.node.active = false
            //前3名
            this.dataListSP = []
            let count = 3
            for (let i = 0; i < count; i++) {
                if (this.rankFront8[i]) {
                    this.dataListSP.push(this.rankFront8[i])
                }
            }
            this.listSP.numItems = this.dataListSP.length;

            //我附近的排名
            this.dataListSP_down = []
            for (let i = 0; i < this.rankFront20.length; i++) {
                this.dataListSP_down.push(this.rankFront20[i])
            }
            this.dataListSP_down.push(this.myData)
            for (let i = 0; i < this.rankAfter20.length; i++) {
                this.dataListSP_down.push(this.rankAfter20[i])
            }
            this.listSP_down.numItems = this.dataListSP_down.length;

            // 我的排名
            let paihangbangReward = User.getPaihangbangReward()
            if (this.myData.rank <= 100) {
                this.rewardMoney = LevelUpManager.levelUpSpned() * 3
                if (paihangbangReward[0] >= this.myData.rank && paihangbangReward[1] == 1) {
                    this.node.getChildByName('我的排名框').getChildByName('videoBtn').active = false
                    this.node.getChildByName('我的排名框').getChildByName('灰色').active = true
                    let lab = this.node.getChildByName('我的排名框').getChildByName('灰色').getChildByName('lab').getComponent(cc.Label)
                    lab.string = '已领取'
                } else {
                    this.node.getChildByName('我的排名框').getChildByName('videoBtn').active = true
                    this.node.getChildByName('我的排名框').getChildByName('灰色').active = false
                    paihangbangReward[0] = this.myData.rank
                    paihangbangReward[1] = 0
                    User.setPaihangbangReward(paihangbangReward)
                }
                this.myPaiMing.string = this.myData.rank + ''
            } else {
                this.myPaiMing.string = '未 进 榜'
                this.node.getChildByName('我的排名框').getChildByName('videoBtn').active = false
                this.node.getChildByName('我的排名框').getChildByName('灰色').active = true
            }
        }

    }


    onListMGridRender(item: cc.Node, idx: number) {
        let config = this.dataListSP[idx]

        let danItem: PaiHangBangItem = item.getComponent('PaiHangBangItem')
        danItem.setViewDate(config, idx)
    }

    onListMGridRender_down(item: cc.Node, idx: number) {
        let config = this.dataListSP_down[idx]

        let danItem: PaiHangBangItem = item.getComponent('PaiHangBangItem')
        danItem.setViewDate(config, idx)
    }

    onListMGridRender_FirstSize(item: cc.Node, idx: number) {
        let config = this.dataListSP_firstsize[idx]

        let danItem: PaiHangBangItem = item.getComponent('PaiHangBangItem')
        danItem.setViewDate(config, idx)
    }


    getRewardBtnClick() {
        let paihangbangReward = User.getPaihangbangReward()
        paihangbangReward[1] = 1
        User.setPaihangbangReward(paihangbangReward)
        UserManager.addMoney(this.rewardMoney)
        this.node.getChildByName('我的排名框').getChildByName('videoBtn').active = false
        this.node.getChildByName('我的排名框').getChildByName('灰色').active = true
        let lab = this.node.getChildByName('我的排名框').getChildByName('灰色').getChildByName('lab').getComponent(cc.Label)
        PrefabManage.showTextTips('领取奖励成功')
        lab.string = '已领取'

    }

    onTouch() {
        AppPlatform.PlatformShare(() => {
            this.node.getChildByName("分享").active = false
            User.setPaiHangShareState(true)
            BagManager.addBagList({ goodId: 3700, goodNum: 1 })
        }, '', '')
    }

    // update (dt) {}
}