﻿// JavaScript Document
var waitTime = 600;
$(function(){
	updateUserCount();
	GetIpInfo();
	//showBg('dialog','dialog_content');
	$("#loginBtn").click(function(){
		Join();
	});
	$("#sendBtn").click(function(){
		sendMsg();
	});
	$("#clearBtn").click(function(){
		clearScreen();
	});
	$("#quitBtn").click(function(){
		logOut();
	});
	$("#textContent").keyup(function(e){
		if (e.which == 13)
		{
			sendMsg();
		}
	});
});
$(document).unload(function(){ 
	logOut(); 
	} 
);
function Join()
{
	var uName = $.trim($("#loginName").val());
	if(uName.length > 0)
	{
		var userName=$("#userFrom").val() + "访客" + HtmlEncode(uName);
		var room=1;
		Login(userName, room);
	}
	else
	{
		alert("请输入昵称再登入！");
		$("#loginName").focus();
	}
}

function GetIpInfo()
{
	$.get("ForAjax.aspx", {
		  room : 1,
		  action : "getip"
	}, function(data, textStatus){
		var arr = data.split('|');
		$("#userFrom").val(arr[2]);
		$("#userIp").val(arr[1]);
		//CheckIp(arr[1]);
	});
}

function CheckIp(ipaddress)
{
	var ipArr = ipaddress.split('.');
	if (ipArr.length == 4)
	{
		if (ipArr[0] == "222" && ipArr[1] == "197")
		{
			var ip3 = Number(ipArr[2]);
			if (ip3 > 127 && ip3 < 144)
			{
				showBg('dialog','dialog_content');
			}
		}
		else if (ipArr[0] == "192" && ipArr[1] == "168")
		{
			var ip3 = Number(ipArr[2]);
			if (ip3 > 31 && ip3 < 48)
			{
				showBg('dialog','dialog_content');
			}
		}
	}
}

/**** 遮罩层 ****/
//显示灰色JS遮罩层
function showBg(ct,content){
var bH=$("body").height();
var bW=$("body").width()+16;
var objWH=getObjWh(ct);
$("#fullbg").css({width:bW,height:bH,display:"block"});
var tbT=objWH.split("|")[0]+"px";
var tbL=objWH.split("|")[1]+"px";
$("#"+ct).css({top:tbT,left:tbL,display:"block"});
$("#"+content).html("<p>您好，世界杯专题直播网站现已关闭，请您到我们新上线的银杏网络电视直播站收看您喜欢的节目，谢谢您的支持！</p><a href='../yxlive/index.htm' target=_self></a>");
$(window).scroll(function(){resetBg()});
$(window).resize(function(){resetBg()});
}
function getObjWh(obj){
var st=document.documentElement.scrollTop;//滚动条距顶部的距离
var sl=document.documentElement.scrollLeft;//滚动条距左边的距离
var ch=document.documentElement.clientHeight;//屏幕的高度
var cw=document.documentElement.clientWidth;//屏幕的宽度
var objH=$("#"+obj).height();//浮动对象的高度
var objW=$("#"+obj).width();//浮动对象的宽度
var objT=Number(st)+(Number(ch)-Number(objH))/2;
var objL=Number(sl)+(Number(cw)-Number(objW))/2;
return objT+"|"+objL;
}
function resetBg(){
var fullbg=$("#fullbg").css("display");
if(fullbg=="block"){
var bH2=$("body").height();
var bW2=$("body").width()+16;
$("#fullbg").css({width:bW2,height:bH2});
var objV=getObjWh("dialog");
var tbT=objV.split("|")[0]+"px";
var tbL=objV.split("|")[1]+"px";
$("#dialog").css({top:tbT,left:tbL});
}
}

//关闭灰色JS遮罩层和操作窗口
function closeBg(){
$("#fullbg").css("display","none");
$("#dialog").css("display","none");
}

/**** 遮罩层代码 ****/
		
function Login(userName, roomId)
{
	$.get("forajax.aspx",{
		room : roomId,
		action : "join",
		userName : userName
	}, function(data,textStatus){
		if(data=="full")
		{
			alert("人数已满，请稍候再来");
		}
		else if(data=="exist")
		{
			alert("此昵称已被使用，请换一个");
		}
		else
		{
			$("#chatLoginPanel").hide();
			$("#chatInputPanel").show();
			updateUserCount();
			var intervalId = setInterval("waitToQuit()",1000);
			$("#intervalId").val(intervalId);
			getCount();
		}
	});
}

function HtmlEncode(text) 
{ 
	return text.replace(/&/g, '&amp').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;'); 
}

function updateUserCount()
{
	$.get("forajax.aspx", {
		room : 1,
		action : "getuserscount"
	}, function(data, textStatus){
		$("#nowOnline").text(data);
	});
}

function getUserID()
{
    return cookieAgent.getCookie("ChatUserID");
}

function sendMsg()
{
    var userID=getUserID();
    if(userID==null || userID==0)
    {
        alert("您尚未登录，不能参与聊天");
        return;
    }
    var content=$("#textContent").val();
    if(content=="")
        return;
    $.post("forajax.aspx?room=1&action=send",{
		   toID : 0,
		   toName: "大家",
		   content:content,
		   color:"000",
		   secret:false
	}, function(data, textStatus){
			var msgs = Number($("#msgCount").val());
			$("#msgCount").val(msgs + 1);
			refreshMsg();
			$("#textContent").val("");
			//$("#sendBtn").attr("disabled", "disabled");
			//setTimeout("$('#sendBtn').attr('disabled','');", 2000);
			$("#timeOut").text("0");
	});	
}

function waitToQuit()
{
	var waitSeconds = Number($("#timeOut").html());
	waitSeconds += 1;
	$("#timeOut").html(waitSeconds);
	if(waitSeconds == waitTime)
	{
		logOut();
	}
}

function refreshMsg()
{
    $.getJSON("forajax.aspx?room=1&action=getmsg",function(data){
            if(data == null || data.length==0)
                return;
            for(i = 0; i < data.length; i++)
            {
                showMsg(data[i], getTalkTo);
            }
            var msg1=document.getElementById("msgList");
            msg1.scrollTop=msg1.scrollHeight;
            $("#textContent").focus();
        });
}

function getCount()
{
    var users = $("#nowOnline").text();
    var msgs = $("#msgCount").val();
    $.get("forajax.aspx",{
		  room : 1,
		  action : "getcount"},
        function(data, textStatus)
        {
            var arr = data.split(',');
            if(arr[0] != users)
            {
                $("#nowOnline").html(arr[0]);
            }
            if(arr[1]!=msgs)
            {
                $("#msgCount").val(arr[1]);
                refreshMsg();
            }
	});
	var globalInterval = window.setTimeout(getCount, 5000);
	$("#globalInterval").val(globalInterval);
}

//private 显示一条聊天数据
function showMsg(msg, func)
{
    var timeStr = msg.time;
    timeStr = timeStr.substring(timeStr.indexOf("(",0)+1,timeStr.indexOf(")",0));
    var time = new Date(parseInt(timeStr));
    timeStr = time.toLocaleTimeString();
    
    var isPublic = true;
    var isMy = false;
    
    var dt = $(document.createElement("dt"));
    var dtColor="00f";
    if(msg.fromid == 0)
        dtColor="888";
    else if(msg.fromid == getUserID())
        dtColor="080";
    dt.html("(" + timeStr + ")" + " " + func(msg.fromid,msg.fromname) + "说：");
    dt.css("color","#"+dtColor);
    
    var dd = $(document.createElement("dd"));
    dd.css("color","#"+msg.color);
    dd.html(msg.text);
    if(isPublic)
    {
        $("#msgList").append(dt);
        $("#msgList").append(dd);
    }
}

function getTalkTo(id, name)
{
    if( id == 0 && name == "系统")
        return name;
    return name;
}

function clearScreen()
{
    $("#msgList").empty();
}

function logOut()
{
    $.get("forajax.aspx", {
		  	room : 1,
			action : "logout"
	}, function(data, textStatus) {
		$("#chatInputPanel").hide();
		$("#chatLoginPanel").show();
		$("#timeOut").text("0");
		var intervalId = Number($("#intervalId").val())
		clearInterval(intervalId);
		intervalId = Number($("#globalInterval").val());
		clearInterval(intervalId);
	});
	updateUserCount();
}
