import FireEventObserver from '../framework/FireEventObserver';
import ViewManager from '../ui/ViewManager';
import PreloadManager from '../common/PreloadManager';
import AudioControlManager from '../common/AudioControlManager';
import Event from '../net/Event';
import LogicUnitManager from '../framework/LogicUnitManager'
import Common from '../common/Common';
// import sql from '../common/autogensqlitebindings_api'

cc.Class({
    extends: FireEventObserver,

    properties: {
        nvren:cc.Node,
        hallsBtns:cc.Node,

        dzjjHall:cc.Node,
        carsHall:cc.Node,
        sportsHall:cc.Node,
        dzyyHall:cc.Node,
        buyuHall:cc.Node,
        caipiaoHall:cc.Node,
        zhenrenHall:cc.Node,
        webviewNode:cc.Node,

        Gundong:cc.Label,
        GundongMask:cc.Mask,
        Gundong1:cc.Layout,
        GundongMask1:cc.Mask,

        returnNode:cc.Node,
        shareNode:cc.Node,
        listLayoutNode:cc.Node,
        halllist:cc.Node,
        listView:cc.ScrollView,

        tipsLayer:cc.Node,
        hallListBtn:cc.Node,

        shopNode:cc.Node,
    },

    onLoad()
    {
        // window['onGameBoot']();
        // cc.macro.ENABLE_CULLING = false;
        // this.loginBtnNode.active = false
        // this.progressBarTarget = 0;
        // this.scale = 1;
        // this.initListener();
        // this.preloadCount = 0;
        // this.preloadTotal = 5;
        // this.lum = LogicUnitManager;
        // this.loginLogic = this.lum.getBehavior('LoginBehavior');
        // // this.loginLogic.CreateLoginStart();
        // this.bloaded = true
        // this.node.Opacity=0;
        // this.node.runAction(cc.fadeIn(1.0));
        this.dzjjHall.active = false
        this.carsHall.active = false
        this.sportsHall.active = false
        this.dzyyHall.active = false
        this.buyuHall.active = false
        this.caipiaoHall.active = false
        this.webviewNode.active = false

        this.returnNode.active =false
        this.shareNode.active =true
        this.hallListBtn.active = false
        
        // this.halllist.active = false
        // this.playShow()
        // this.animation = this.nvren.getComponent(cc.Animation);
        
        // this.animation.on('finished', this.onGuideFinished, this);
        // this.animation.play('nrcome1');
        var self = this
        this.gundongText()
        // this.gundongText2()
        this.dtNum = 0

        this.animation = this.nvren.getComponent(cc.Animation);
  
        this.animation.on('finished', this.onGuideFinished, this);
        this.animation.play('nrcome1');

        // this._db = new sql.SQLiteWrapper();
        // this._dbPath = this._db.initializing("data.db","res","");

        var subhall= [
            ['1' , this.caipiaoHall.getComponent('CaiPiaoHallController')],
            ['2' , this.carsHall.getComponent('CarsHallController')],
            ['3' , this.dzyyHall.getComponent('DianziYouyiHallController')],
            ['4' , this.zhenrenHall.getComponent('ZhenrenHallController')],
            ['5' , this.dzjjHall.getComponent('DzjjHallController')],
            ['6' , this.buyuHall.getComponent('BuyuHallController')],
            // ['7' , this.sportsHall.getComponent('SportsHallController')]
            ['7' , this.webviewNode.getComponent('WebviewCtrl')]
        ]

        this.myhallMap = new Map(subhall);
        console.log(this.myhallMap.keys());
        this.setHalllist()
        this.halllist.moved = false
        ViewManager.registerView('tips',this.tipsLayer)
    },
    onGuideFinished(){
        console.log("onGuideFinished--------------------")
        this.animation.play('nrcome')
    },

    initListener()
    {
        // this.onBehaviorEvent('LoginBehavior',Event.COM_MSG.PRELOAD_DONE,this.onLoaded.bind(this));
        // this.onBehaviorEvent('LoginBehavior',Event.SOCKET_MSG.OPEN, this.onSocketOpen.bind(this));
    },


    onSocketOpen(sender,result)
    {
        this.bloaded = true
    },

    onLoaded(sender, result)
    {
        this.preloadCount++;
        this.progressBarTarget = this.preloadCount / this.preloadTotal;
        console.log("this.preloadCount:"+this.preloadCount+"this.progressBarTarget:"+this.progressBarTarget+"")
        if (this.progressBarTarget >= 1 && this.bloaded)
        {
            this.onResourcesLoaded();
        }

        
    },

    gundongText:function(){
        var self = this;
        setTimeout(function(){
        // var notifyRes = JSON.parse(cc.sys.localStorage.getItem('notify'));
        // var gundongNode = cc.find("Canvas/gundong");
        // if(notifyRes != null){
        //     if(gundongNode){
        //         gundongNode.active = true;
        //     }
        //     self.Gundong.string = notifyRes;
        // }else{
        //     if(gundongNode){
        //         gundongNode.active = false;
        //     }
        // }
            var text = self.Gundong;
            var width = self.GundongMask.node.width;
            text.node.runAction(cc.repeatForever(cc.sequence(
                cc.moveTo(text.node.width/width*10,cc.v2(-text.node.width-width/5,text.node.y)),
                cc.callFunc(function(){
                    text.node.x = width;
                }))));
        },300);
    },

    gundongText2:function(){
        var self = this;
        setTimeout(function(){
        // var notifyRes = JSON.parse(cc.sys.localStorage.getItem('notify'));
        // var gundongNode = cc.find("Canvas/gundong");
        // if(notifyRes != null){
        //     if(gundongNode){
        //         gundongNode.active = true;
        //     }
        //     self.Gundong.string = notifyRes;
        // }else{
        //     if(gundongNode){
        //         gundongNode.active = false;
        //     }
        // }
            var text = self.Gundong1;
            var height = self.GundongMask1.node.height;
            text.node.runAction(cc.repeatForever(cc.sequence(
                cc.moveTo(1,cc.v2(text.node.x,text.node.y+57)),
                cc.callFunc(function(){
                    if (text.node.height == Math.abs(text.node.y)+17) {
                        text.node.y = 17;
                    }
                }))));
        },300);
    },

    start()
    {
        // this.preloadManager = new PreloadManager();
        // this.audioControlManager = new AudioControlManager();
        // //加载动画和预制体
        // this.preloadManager.run();
        // //加载音频
        // this.audioControlManager.run();

        // var self = this;
        // cc.director.preloadScene("hall", function(){
        //     console.log("preload scene battle");
        //     self.onLoaded();
        // })
    },

    onResourcesLoaded()
    {
        this.loginBtnNode.active = true
        this.loadproNode.active = false
    },

    update(dt)
    {
        this.dtNum += dt
        if (this.dtNum >=2) {
            var text = this.Gundong1;
            // var height = this.GundongMask1.node.height;
            text.node.runAction(cc.sequence(
                cc.moveTo(1,cc.v2(text.node.x,text.node.y+50)),
                cc.callFunc(function(){
                    if (text.node.height <= Math.abs(text.node.y)+13) {
                        text.node.y = 13;
                    }
                })));
            this.dtNum =0  
        }
        // console.log("time is:",dt)
        // if (this.progressBar.progress < this.progressBarTarget)
        // {
        //     this.progressBar.progress += dt*this.scale
        // }
        // if (this.progressBarTarget >= 1 && this.bloaded && this.loginLogic.needShowAuth == false) {
        //     this.onResourcesLoaded();
        // } else if (this.progressBarTarget >= 5 / 6 && this.bloaded && this.loginLogic.needShowAuth == false) {
        //     this.onResourcesLoaded();
        // }
       
    },

    clickWXLogin(sender)
    {
        //weixin login
        // this.loginLogic.login()
    },
    clickYKLogin(sender){
        //youke login
        cc.director.loadScene('hall');
    },
    clickZHLogin(sender){
        //zhang hao login
        sender.target.active = false
        this.ykLogin.node.active = false

        this.loginBannerNode.active = true
        this.ljLogin.node.active = true
        this.yk2Login.node.active = true
    },

    clickRegBtn(sender){
        this.regAndreadNode.active = true
        this.regNode.active = true
    },

    clickReadYsBtn(sender){
        this.regNode.active = false
        this.readNode.active = true
        
    },

    clickCloseReg(sender){
        if (this.regNode.active) {
            this.regAndreadNode.active = false
        }else{
            this.regNode.active = true
            this.readNode.active = false
        }
    },

    clickHall(sender,customEventData){
        this.showingHall = this.myhallMap.get(customEventData)
        this.showingHall.parentScene = this
        this.showingHall.initScene(customEventData)
        this.setHalllist(customEventData)
        this.display()
    },

    clickHallList(sender,customEventData){
        var nextScene = this.myhallMap.get(customEventData)
        nextScene.initScene(customEventData)
        nextScene.parentScene = this
        this.setHalllist(customEventData)
        if (nextScene) {
            this.showingHall.playEnd(nextScene)
        }
    },
    
    display(){
        if (this.showingHall.SceneLevel == 1) {
            this.setHalllistBtnDisplay(true)
        }
        var animation = this.hallsBtns.getComponent(cc.Animation);
        var hallsGoFinished = function(){
            this.showingHall.playShow(this.setShowingHall)
            this.hallsBtns._parent._parent.active = false
        };
        animation.on('finished', hallsGoFinished, this);
        animation.play('hallsgo');
        this.animation.play('nrgo')
    },
    clickReturnBtn(){
        if (this.showingHall) {
            this.showingHall.playEnd()
        }
    },
    playShow(param)
    {
        this.setHalllistBtnDisplay(false)
        this.hallsBtns._parent._parent.active = true
        this.animation = this.nvren.getComponent(cc.Animation);
        this.hallsBtns.getComponent(cc.Animation).off("finished")
        this.hallsBtns.y = 0
        this.hallsBtns.x = 0
        // this.nvren.x = -180
        this.hallsBtns.getComponent(cc.Animation).play('hallscome');
        
        this.animation.on('finished', this.onGuideFinished, this);
        this.animation.play('nrcome1');
    },
    setShowingHall(Hall){
        this.showingHall = Hall
        this.returnNode.active =Hall!=this
        this.shareNode.active =Hall==this
        if (this.halllist.moved) {
            this.setHalllistDisplay(!this.halllist.moved)
        }
        this.setHalllistBtnDisplay(this.showingHall.SceneLevel ==1 && !this.halllist.moved)
    },

    setHalllistBtnDisplay(display){
        this.hallListBtn.active = display
    },

    onClickedHallListBtn(){
        this.hallListBtn.active = this.halllist.moved
        this.setHalllistDisplay(!this.halllist.moved)
    },

    setHalllistDisplay(display)
    {
        if (this.halllist.moved!=display) {
            var actionTo1 = display?cc.moveBy(0.3, cc.v2(367, 0)):cc.moveBy(0.3, cc.v2(-367, 0));
            this.halllist.runAction(actionTo1)
            this.halllist.moved = display
        }
        
    },

    setHalllist(num){
        this.listLayoutNode.children.forEach(element => {
            element.getChildByName('select').active = false
            element.getChildByName('normal').active = true
        });
        if (num) {
            this.listView.scrollToOffset(cc.v2(0, num<=3?0:(num-1)*70), 1)
            this.listLayoutNode.getChildByName('tiem'+num).getChildByName('select').active = true
            this.listLayoutNode.getChildByName('tiem'+num).getChildByName('normal').active = false
        }
    },
    showTips(sender,mode){
        var tipsLayer = ViewManager.PushView('tips')
        tipsLayer.getComponent('TipsLayerController').setTipsMode(sender,mode)
    },
    shopShow(render,cmd){
        var display = cmd==1?true:false
        this.shopNode.active = display
        this.node.getChildByName('top').getChildByName('shopreturnBtn').active = display
        this.node.getChildByName('top').getChildByName('shoptiitle').active = display
        this.node.getChildByName('content').active = !display
        this.node.getChildByName('bottom').active = !display
        this.node.getChildByName('top').getChildByName('topBanner').active = !display
        this.node.getChildByName('top').getChildByName('notice2').active = !display
    }
});


