var show_Rid = 0;
var show_Yid = 0;
var msg_control = {
	ws:{},
	init:function(){
		this.ws = new WebSocket($socket_url);
		this.ws.onopen = this.ws_onopen;
		this.ws.onclose = this.ws_onclose;
		this.ws.onmessage = this.ws_onmessage;
	},
	ws_onopen:function(){
		console.log('connection...');
		var login_data = '{"type":"tug_login","client_name":"com","client_avatar":"com","rid":"'+scene_id+'","room_id":"tug_'+rotate_id+'","openid":"meepo_xianchang_tug","score":0,"tug_team":"R"}';
		msg_control.ws.send(login_data);
	},
	ws_onclose:function(e){
		layer.msg('链接失败了!',{time:5000});
		// window.location.reload();
	},
	ws_onmessage:function(e){
		var data =  $.parseJSON(e.data);
		switch(data.type){
			case 'ping':
				msg_control.ws.send('{"type":"pong"}');
				break;
			case 'error':
				window.close(alert(data.msg));
				break;
			case 'logout':
				//掉线后，修改在线人数
				if(data.status){
					msg_control.ws.send('{"type":"tug","ttype":"getuser","openid":"meepo_xianchang_tug"}');
					if(data.team == 'R'){
						var total = parseInt($(".RjoinNum").text().replace(/[^0-9]/ig,""));
						$(".RjoinNum").text(total - 1 +'人');
						$('#' + data.from_client_id).attr('src',default_userimg).attr('id','');
					}else if(data.team == 'Y'){
						var total = parseInt($(".YjoinNum").text().replace(/[^0-9]/ig,""));
						$(".YjoinNum").text(total - 1 +'人');
						$('#' + data.from_client_id).attr('src',default_userimg).attr('id','');
					}
				}
				break;
			case 'tug_users':
				if(game_end==0) show_gameuser(data.clients_list);
				break;
			case 'tug_getuser':
				if(data.errno == 0){
					$(".RjoinNum").text(data.Rtotal+'人');
					$(".YjoinNum").text(data.Ytotal+'人');
					if(data.Ruser != '') joinuser('R',data.Ruser);
					if(data.Yuser != '') joinuser('Y',data.Yuser);
				}else{
					msg_control.ws.send('{"type":"tug","ttype":"getuser","openid":"meepo_xianchang_tug"}');
				}
				break;
			case 'tug_status':
				if(data.status == 'start'){
					if(data.errno == 0){
						$('.cutdown-start').html("GO!");
					}else if(data.errno == -2){
						$('.cutdown-start').hide();
						layer.msg("当前轮数无人参与、无法开始!");
						window.location.reload();
					}else{
						msg_control.ws.send('{"type":"tug","ttype":"gamereset","openid":"meepo_xianchang_tug"}');
						layer.msg("游戏初始参数错误！");
						window.location.reload();
					}
				}else if(data.status == 'reset'){
					var layer_i = layer.load(2, {shade: false});
					layer.close(layer_i);
					if(data.errno == 0){
						msg_control.ws.send('{"type":"tug","ttype":"gamereset","openid":"meepo_xianchang_tug"}');
						layer.msg('重置成功',{time:2000});
						window.location.reload();
					}else{
						layer.msg('网络错误、请稍后重试！',{time:2000});
					}
				}else if(data.status == 'stop'){
					var layer_i = layer.load(2, {shade: false});
					layer.close(layer_i);
					if(data.errno == 0){
						msg_control.ws.send('{"type":"tug","ttype":"gamereset","openid":"meepo_xianchang_tug"}');
						window.location.reload();
					}else{
						layer.msg('网络错误、请稍后重试！',{time:2000});
					}
				}
				break;
		}
	}
};
function joinuser(team,join_user){
	if(team == 'R'){
		var num = join_user.length;
		for(var i = 0; i < 8; i++){
			if (!join_user.hasOwnProperty(i)) {
				$(".tug_Ruser ul li img").eq(i).attr('src',default_userimg).attr('id','');
			} else {
				$(".tug_Ruser ul li img").eq(i).addClass('flash animated infinite');
				$(".tug_Ruser ul li img").eq(i).attr('src',join_user[i].avatar).attr('id',join_user[i].id);
				(function(i) {
					setTimeout(function() {
						$(".tug_Ruser ul li img").eq(i).removeClass('flash animated infinite');
					}, 1000);
				})(i)
			}
		}
	} else if(team == 'Y') {
		var num = join_user.length;
		for(var i = 0; i < 8; i++){
			if (!join_user.hasOwnProperty(i)) {
				$(".tug_Yuser ul li img").eq(i).attr('src',default_userimg).attr('id','');
			} else {
				$(".tug_Yuser ul li img").eq(i).addClass('flash animated infinite');
				$(".tug_Yuser ul li img").eq(i).attr('src',join_user[i].avatar).attr('id',join_user[i].id);
				(function(i) {
					setTimeout(function() {
						$(".tug_Yuser ul li img").eq(i).removeClass('flash animated infinite');
					}, 1000);
				})(i)
			}
		}
	}
}
/*function joinuser(team,join_user,del_user){
	if(team == 'R'){
		var num = join_user.length;
		if(del_user && num >= 8) {
			for(var x = 0; x < 8; x++){
				var id = $(".tug_Ruser ul li").eq(x).attr('id');
				if(!id) break;
			}
			var join_id = x;
			for(var i = 0; i < num; i++){
				if(!$('#' + join_user[i].id).length && del_user != join_user[i].id){
					var checkJoin_show = $(".tug_Ruser ul li");
					var top  = checkJoin_show.eq(join_id).offset().top;
					var left = checkJoin_show.eq(join_id).offset().left;
					$('body').prepend('<div class="Rsigninbox"><img class="avarta" src="" ><p></p></div>');
					$(".Rsigninbox").css({"top":top,"left":left});
					$(".Rsigninbox .avarta").attr("src",join_user[i].avatar);
					snabbt_user($(".tug_Ruser ul li").eq(join_id),$(".Rsigninbox"),join_user[i].avatar,join_user[i].id);
				}
				if(del_user == join_user[i].id) join_user.splice(i,1)
				return;
			}
		}else if(!del_user){
			if(maxRid < 0) maxRid = 0;
			for(var i = maxRid; i < num; i++){
				if(!$('#' + join_user[i].id).length){
					maxRid = i;
					show_Rid = i % 8;
					if($(".tug_Ruser ul li").eq(i).attr('id')){
						for(var x = 0; x < 8; x++){
							var id = $(".tug_Ruser ul li").eq(x).attr('id');
							if(!id) {
								join_id = x;
								break;
							}
						}
					}
					if(join_id) show_Rid = join_id;

					var checkJoin_show = $(".tug_Ruser ul li");
					var top  = checkJoin_show.eq(show_Rid).offset().top;
					var left = checkJoin_show.eq(show_Rid).offset().left;
					$('body').prepend('<div class="Rsigninbox"><img class="avarta" src="" ><p></p></div>');
					$(".Rsigninbox").css({"top":top,"left":left});
					$(".Rsigninbox .avarta").attr("src",join_user[i].avatar);
					snabbt_user($(".tug_Ruser ul li").eq(show_Rid),$(".Rsigninbox"),join_user[i].avatar,join_user[i].id);
				}
			}
		}
	}else if(team == 'Y'){
		var num = join_user.length;
		if(del_user && num >= 8) {
			for(var x = 0; x < 8; x++){
				var id = $(".tug_Yuser ul li").eq(x).attr('id');
				if(!id) break;
			}
			var join_id = x;
			for(var i = 0; i < num; i++){
				if(!$('#' + join_user[i].id).length && del_user != join_user[i].id){
					var checkJoin_show = $(".tug_Yuser ul li");
					var top  = checkJoin_show.eq(join_id).offset().top;
					var left = checkJoin_show.eq(join_id).offset().left;
					$('body').prepend('<div class="Ysigninbox"><img class="avarta" src="" ><p></p></div>');
					$(".Ysigninbox").css({"top":top,"left":left});
					$(".Ysigninbox .avarta").attr("src",join_user[i].avatar);
					snabbt_user($(".tug_Yuser ul li").eq(join_id),$(".Ysigninbox"),join_user[i].avatar,join_user[i].id);
				}
				if(del_user == join_user[i].id) join_user.splice(i,1)
				return;
			}
		}else if(!del_user){
			if(maxYid < 0) maxYid = 0;
			for(var i = maxYid; i < num; i++){
				if(!$('#' + join_user[i].id).length){
					maxYid = i;
					show_Yid = i % 8;
					if($(".tug_Yuser ul li").eq(i).attr('id')){
						for(var x = 0; x < 8; x++){
							var id = $(".tug_Yuser ul li").eq(x).attr('id');
							if(!id) {
								join_id = x;
								break;
							}
						}
					}
					if(join_id) show_Yid = join_id;

					var checkJoin_show = $(".tug_Yuser ul li");
					var top  = checkJoin_show.eq(show_Yid).offset().top;
					var left = checkJoin_show.eq(show_Yid).offset().left;
					$('body').prepend('<div class="Ysigninbox"><img class="avarta" src="" ><p></p></div>');
					$(".Ysigninbox").css({"top":top,"left":left});
					$(".Ysigninbox .avarta").attr("src",join_user[i].avatar);
					snabbt_user($(".tug_Yuser ul li").eq(show_Yid),$(".Ysigninbox"),join_user[i].avatar,join_user[i].id);
				}
			}
		}
	}
}*/
;(function(k, e) {
	var A = k.WBActivity.resize = function() {
	};
	var c = k.WBActivity.start = function() {
		k.WBActivity.hideLoading();
		bingkjj();
		msg_control.init();
		if(rotate_id==0){
			layer.msg('拔河比赛已经全部结束!');
			showScore();
			return;
		}
		$(".Cover_main").animate({
			"opacity": "1"
		}, 300, function() {
			$(this).find('.Cover_left').animateControl('bounceInLeft');
			$(this).find('.Cover_right').animateControl('bounceInRight');
		});
		$('.play-btn-start').on('click',function(){
			$(".Rsigninbox").remove();
			$(".Ysigninbox").remove();
			$(".CoverPage").animateControl('bounceOut',function(){ 
				$('.CoverPage').hide();
				hideSlogan();
				$('.tug_box').css({"display":"flex"}).animateControl('bounceIn');
				var countbox = $('.cutdown-start');
				countbox.html(ready_time).css({
					"font-size": $(".cutdown-start").height()/4 + "px",
					"line-height": $(".cutdown-start").height()/4 + "px",
					"display":"flex"
				}).addClass("cutdownan-imation");
				hideSlogan();
				msg_control.ws.send('{"type":"tug","ttype":"gamestart","openid":"meepo_xianchang_tug"}');
				countdown(ready_time,function(c){//返回倒计时时间
					if(!countbox.hasClass("cutdownan-imation")) countbox.addClass("cutdownan-imation");
					countbox.html(c);
				},function(){//倒计时结束
					countbox.removeClass("cutdownan-imation").hide();
					$(".tugofwar-state-ready").hide();
					$(".tugofwar-ing").show();
					$("#leftOverTime").text(game_time);
					$(".yyy3d_title_box").css({"visibility":"visible"}).animateControl('flipInX');
					gameInterval = setInterval(function(){
						msg_control.ws.send('{"type":"tug","ttype":"gameusers","openid":"meepo_xianchang_tug"}');
					},500);
					tugofwarIngState = true;
					game_countdown(game_time,function(k){
						$("#leftOverTime").text(k);
					},function(){//小于0
						overTugofwar();	
					},function(){//等于0
						msg_control.ws.send('{"type":"tug","ttype":"gameend","openid":"meepo_xianchang_tug"}');
						$(".yyy3d_title_box").css({"visibility":"hidden"})
						clearInterval(gameInterval);
						game_end = 1;
					});
				},function(){
					msg_control.ws.send('{"type":"tug","ttype":"gamestatus","openid":"meepo_xianchang_tug","status":"start"}');
				});
			});
		});
		$(".play-queren").on('click',function(){
			$(".tugofwar-end").hide();
			showWinergroup();
		});
		$(".play-next").on('click',function(){
			window.location.reload();
		});
		$(".play-award").on('click',function(){
			showScore(rotate_id);
		});
	}
})(window, jQuery);
function show_gameuser(data){
	if(game_end==1) return;
	var user_list = transform(data);
	groupRCounts = parseInt(user_list.Rcount);
	groupYCounts = parseInt(user_list.Ycount);
	user_list.Tuser = user_list.Tuser.sort(function(a, b){
		return b.score - a.score;
	});
	user_list.Ruser = user_list.Ruser.sort(function(a, b){
		return b.score - a.score;
	});
	user_list.Yuser = user_list.Yuser.sort(function(a, b){
		return b.score - a.score;
	});
	total_user = user_list.Tuser;
	if ($.isArray(total_user) && total_user.length>0) {
		rankTopTen = total_user.slice(0, 10);
	}
	if ($.isArray(user_list.Ruser) && user_list.Ruser.length>0) {
		rankTopReight = user_list.Ruser.slice(0, 8);
		rankReight = user_list.Ruser.slice(0, awardNums);
		var $Rplayers = $(".red-player .pnctx");
		var R_index = 0;
		for(var i=7;i>=0;i--){  
			var p = rankTopReight[R_index];
			if(p){
				var avatar = p.client_avatar;
				var nickname = p.client_name;
				$Rplayers.eq(i).find('.head').attr("src",avatar);
				$Rplayers.eq(i).find('.nickname').text(nickname);
				R_index++;
			}
		}
	}
	if ($.isArray(user_list.Yuser) && user_list.Yuser.length>0) {
		rankTopYeight = user_list.Yuser.slice(0, 8);
		rankYeight = user_list.Yuser.slice(0, awardNums);
		var $Yplayers = $(".blue-player .pnctx");
		var Y_index = 0;
		for(var i=7;i>=0;i--){  
			var p = rankTopYeight[Y_index];
			if(p){
				var avatar = p.client_avatar;
				var nickname = p.client_name;
				$Yplayers.eq(i).find('.head').attr("src",avatar);
				$Yplayers.eq(i).find('.nickname').text(nickname);
				Y_index++;
			}
		}
	}
	dValue = groupRCounts - groupYCounts;  //计算差值
	upScore = dValue;
	if (dValue > 0) {//红队多
		tempWinner = 0;
		dValue = Math.min(winScore, Math.abs(dValue));
	} else if (dValue < 0) {//黄队多
		tempWinner = 1;
		dValue = -Math.min(winScore, Math.abs(dValue));
	}
	if (upScore >= 500) {
		showUpState = true;  //说明有人超对方500了
		tempUpGroup = 0;
	} else if (upScore <= -500) {
		showUpState = true;
		tempUpGroup = 1;
	}
	if (showUpState && upScore > 0 && showUpGroup && tempUpGroup == 1) {
		upGroup = 0;
	} else if (showUpState && upScore < 0 && showUpGroup && tempUpGroup == 0) {
		upGroup = 1;
	}
	moveRange = dValue / (winScore / 102);
	moveRange = draw - moveRange;
	if (upGroup != -1) {
		if (upGroup == 0) {
			$('body').append('<div class="tugofwar-up-group"><div class="tugofwar-up-group-red"></div></div>');
			tugofwarIng.animate({'left': moveRange + 'px'}, 800, 'linear', function () {
				setTimeout(function () {
					$('.tugofwar-up-group').remove();
				}, 2000);
				upGroup = -1;
				showUpGroup = false;
				showUpState = false;
				if (Math.abs(dValue) >= winScore && tugofwarIngState) {
					$("#leftOverTime").text(0);
					game_end = 1;
					clearInterval(gameInterval);
					overTugofwar();
				} 
			});
		} else if (upGroup == 1) {
			$('body').append('<div class="tugofwar-up-group"><div class="tugofwar-up-group-blue"></div></div>');
			tugofwarIng.animate({'left': moveRange + 'px'}, 800, 'linear', function () {
				setTimeout(function () {
					$('.tugofwar-up-group').remove();
				}, 2000);
				upGroup = -1;
				showUpGroup = false;
				showUpState = false;
				if (Math.abs(dValue) >= winScore && tugofwarIngState) {
					$("#leftOverTime").text(0);
					game_end = 1;
					clearInterval(gameInterval);
					overTugofwar();
				} 
			});
		}
		setUpGroupTimer();
	} else {
		tugofwarIng.animate({'left': moveRange + 'px'}, 800, 'linear', function () {
			if (Math.abs(dValue) >= winScore && tugofwarIngState) {
				$("#leftOverTime").text(0);
				game_end = 1;
				clearInterval(gameInterval);
				overTugofwar();
			}
		});
	}
}
//比赛结束
function overTugofwar() {
	//显示哪个队伍赢了的图片
	tugofwarIngState = false;
	showUpGroup = false;
	showUpState = false;
	if (groupRCounts == 0 && groupYCounts == 0) {
		msg_control.ws.send('{"type":"tug","ttype":"gamestatus","openid":"meepo_xianchang_tug","status":"reset"}');
		return;
	} else {
		//将数据经行存储
		if (groupRCounts == groupYCounts) {
			switch (tempWinner) {
				case 0:
					var winner_team = "R";
					break;
				case 1:
					var winner_team = "Y";
					break;
			}
		} else {
			if (groupRCounts > groupYCounts) {
				var winner_team = "R";
			} else {
				var winner_team = "Y";
			}
		}
		var layer_i = layer.load(2, {shade: false});
		var Post_user = total_user.slice(0,post_persons);
		$.ajax({
			url: PATH_ACTIVITY + Path_url('tug_tstop'),
			timeout: 15000,
			type: 'POST',
			dataType: 'json',
			data: {rid: scene_id,rotate_id: rotate_id,user: Post_user,winner_team:winner_team},
			success: function (json) {
				layer.close(layer_i);
				if(json.errno==0){
					$('.tugofwar-end').css({"display":"flex"});
					$('.tugofwar-ing').hide();
					if (groupRCounts == groupYCounts) {
						switch (tempWinner) {
							case 0:
								$('.tugofwar-winner').show().removeClass('tugofwar-winner-blue').addClass('tugofwar-winner-red');
								winGroup = 'R';
								break;
							case 1:
								$('.tugofwar-winner').show().removeClass('tugofwar-winner-red').addClass('tugofwar-winner-blue');
								winGroup = 'Y';
								break;
						}
					} else {
						console.log(tempWinner);//1 是黄队 0是红队
						if (groupRCounts > groupYCounts) {
							$('.tugofwar-winner').show().removeClass('tugofwar-winner-blue').addClass('tugofwar-winner-red');
							winGroup = 'R';
						} else {
							$('.tugofwar-winner').show().removeClass('tugofwar-winner-red').addClass('tugofwar-winner-blue');
							winGroup = 'Y';
						}
					}
				}else{
					layer.msg("网络太差、数据存贮失败!");
				}
			}, 
			error: function(e) { 
				layer.msg("链接服务器失败了");
			} 
		});		
	}
}
function showWinergroup(){
	var html = "";
	if(winGroup=='R'){
		var awarduser = rankReight;
	}else{
		var awarduser = rankYeight;
	}
	var layer_i = layer.load(2, {shade: false});
	$.ajax({
		url: PATH_ACTIVITY + Path_url('tug_awardusers'),
		timeout: 15000,
		type: 'POST',
		dataType: 'json',
		data: {rid: scene_id,rotate_id: rotate_id,awarduser: awarduser},
		success: function (json) {
			layer.close(layer_i);
			if(json.errno==0){
				if(winGroup=='R'){
					$(".teamname").text(Rname);
					$.each(rankReight,function(k,v) {
						var j = rankReight[k];
						if(j) html += '<li><img src="'+j.client_avatar+'"><span>'+j.client_name+'</span><i>第'+(k+1)+'名</i></li>';
					});
				}else{
					$(".teamname").text(Yname);
					$.each(rankYeight,function(k,v) {
						var j = rankYeight[k];
						if(j) html += '<li><img src="'+j.client_avatar+'"><span>'+j.client_name+'</span><i>第'+(k+1)+'名</i></li>';
					});
				}
				if(json.message==0){
					$(".play-next").hide();
					$(".play-award").show();
				}else{
					$(".play-award").show();
					$(".play-next").show();
				}
				$("#audio_player3")[0].play();
				$(".tugofwar-ended-join-user").html(html);
				$(".tugofwar-ended").show().animateControl('bounceIn');
			}else{
				layer.msg("网络太差、数据存贮失败!");
			}
		}, 
		error: function(e) { 
			layer.msg("链接服务器失败了");
		} 
	});		
}
function showScore(b) {
	var a = PATH_ACTIVITY + Path_url('tug_result')+"&rid=" + scene_id;
	if (b != undefined) a += "&rotate_id=" + b;
	$.showPage(a)
}
function transform(obj){
	var arr = 
	{
		Tuser:[],
		Ruser:[],
		Yuser:[],
		Rcount:0,
		Ycount:0
	};
	for(var item in obj){
		if(obj[item].client_openid!='meepo_xianchang_tug' && obj[item].tug_team=='R'){
			arr.Rcount += obj[item].score;
			arr.Ruser.push(obj[item]);
		}
		if(obj[item].client_openid!='meepo_xianchang_tug' && obj[item].tug_team=='Y'){
			arr.Ycount += obj[item].score;
			arr.Yuser.push(obj[item]);
		}
		if(obj[item].client_openid!='meepo_xianchang_tug'){
			arr.Tuser.push(obj[item]);
		}
	}
	return arr;
}
function countdown(c,d, a,f) {
	var b = setInterval(function() {
		c = c -1;
		if (c < 0) {
			clearInterval(b);
			if (a) a();
		}else if(c > 0){
			$("#audio_player1")[0].play();
			if (d) d(c);
		}else {
			if (f) f();
		}
	}, 1e3)
};
function game_countdown(c,d, a,f) {
	var b = setInterval(function() {
		c = c -1;
		var t = $("#leftOverTime").text();
		if(t == 0) c = 0;
		if (c > 0) {
			if (d) d(c);
		}else {
			clearInterval(b);
			if (a) a();
			if (f) f();
		}
	}, 1e3)
};
function snabbt_user(obj,n,src,id,fn){
	var avarta = n.find("img")[0];
	var pobj = n.find("p")[0];
	snabbt.sequence([
		[n[0],
		{
			formScale: [.5, .5],
			rotation: [0, 0, 2 * -Math.PI],
			scale: [3, 3],
			easing: "easeOut",
			duration: 800
		}],
		[pobj,
		{
			delay: 1e3,
			scale: [0, 0],
			easing: "easeIn",
			duration: 400
		}],
		[avarta,
		{
			scale: [0, 0],
			easing: "easeOut",
			duration: 400,
			complete: function() {
				n.remove();
				obj.find('img').attr('src',src).attr('id',id);
				if (!$('.CoverPage').is(':hidden')) {
					if(fn) fn();
				}
			}
		}]
	])
}
function hideSlogan() {
	$(".Panel.Top").css({
		top: "-" + $(".Panel.Top").height() + "px"
	});
	$(".Panel.Bottom").css({
		bottom: "-" + $(".Panel.Bottom").height() + "px"
	});
	$("#panel_status").val("0");
}
function showSlogan() {
	$(".Panel.Top").css({
		top: 0
	});
	$(".Panel.Bottom").css({
		bottom: 0
	})
	$("#panel_status").val("1");
};
;(function($) {
	$.fn.extend({
		animateControl: function (a,fn) {
			this.addClass('animated ' + a).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() {
				if(fn) fn();
				$(this).removeClass('animated ' + a);
			});
			return this;
		}
	});
})(jQuery);