function VballScoreHelper() { } VballScoreHelper.prototype.getNodeValue = function(xmlNode, tagName) { var a = xmlNode.getElementsByTagName(tagName)[0]; if (a == undefined || a == null) return ""; if (a.childNodes.length == 0) return ""; return xmlNode.getElementsByTagName(tagName)[0].firstChild.nodeValue; } VballScoreHelper.prototype.toKindID = function(kindName) { var kindID = 1; switch (kindName) { case "男单": kindID = 1; break; case "男双": kindID = 2; break; case "女单": kindID = 3; break; case "女双": kindID = 4; break; case "混双": kindID = 5; break; } if (kindName.indexOf("团队") != -1) kindID = 6; return kindID; } //定义棒球类 function VballScoreChange(xmlNode) { var vballHelper = new VballScoreHelper(); this.MatchID = vballHelper.getNodeValue(xmlNode, "match_ID"); //赛事ID //比分 this.H_Score1 = vballHelper.getNodeValue(xmlNode, "A_S_1"); this.H_Score2 = vballHelper.getNodeValue(xmlNode, "A_S_2"); this.H_Score3 = vballHelper.getNodeValue(xmlNode, "A_S_3"); this.H_Score4 = vballHelper.getNodeValue(xmlNode, "A_S_4"); this.H_Score5 = vballHelper.getNodeValue(xmlNode, "A_S_5"); this.H_Score6 = vballHelper.getNodeValue(xmlNode, "A_S_6"); this.H_Score7 = vballHelper.getNodeValue(xmlNode, "A_S_7"); this.H_Score = vballHelper.getNodeValue(xmlNode, "A_Score"); this.G_Score1 = vballHelper.getNodeValue(xmlNode, "B_S_1"); this.G_Score2 = vballHelper.getNodeValue(xmlNode, "B_S_2"); this.G_Score3 = vballHelper.getNodeValue(xmlNode, "B_S_3"); this.G_Score4 = vballHelper.getNodeValue(xmlNode, "B_S_4"); this.G_Score5 = vballHelper.getNodeValue(xmlNode, "B_S_5"); this.G_Score6 = vballHelper.getNodeValue(xmlNode, "B_S_6"); this.G_Score7 = vballHelper.getNodeValue(xmlNode, "B_S_7"); this.G_Score = vballHelper.getNodeValue(xmlNode, "B_Score"); this.State = vballHelper.getNodeValue(xmlNode, "state"); //比赛状态 this.Technic = vballHelper.getNodeValue(xmlNode, "technic"); //是否有统计 this.Ex = vballHelper.getNodeValue(xmlNode, "Ex"); //注释 this.score = vballHelper.getNodeValue(xmlNode, "score"); this.ParentID = vballHelper.getNodeValue(xmlNode, "ParentID"); } function VballScore(xmlNode) { //继承 VballScoreChange.call(this, xmlNode); var vballHelper = new VballScoreHelper(); this.LeagueMatchID = vballHelper.getNodeValue(xmlNode, "league_match_ID"); //联赛ID var langIdx = language == 0 ? 2: (language == 1 ? 0:1 ); this.MatchName = vballHelper.getNodeValue(xmlNode, "match_name").split(",")[langIdx]; this.MatchKind = vballHelper.getNodeValue(xmlNode, "match_kind"); this.MatchTime = vballHelper.getNodeValue(xmlNode, "date"); this.HomeTeamID = vballHelper.getNodeValue(xmlNode, "A_ID1"); this.GuestTeamID = vballHelper.getNodeValue(xmlNode, "B_ID1"); //主队名 var arrHomeTeam = vballHelper.getNodeValue(xmlNode, "A_Name1").split(","); this.HomeTeam_J = arrHomeTeam[0]; this.HomeTeam_E = arrHomeTeam[1]; this.HomeTeam_F = arrHomeTeam[2]; //客队名 var arrGuestTeam = vballHelper.getNodeValue(xmlNode, "B_Name1").split(","); this.GuestTeam_J = arrGuestTeam[0]; this.GuestTeam_E = arrGuestTeam[1]; this.GuestTeam_F = arrGuestTeam[2]; if (this.MatchKind.indexOf("双") != -1) { var arrHomeTeam2 = vballHelper.getNodeValue(xmlNode, "A_Name2").split(","); this.HomeTeam_J = this.HomeTeam_J + " / " + arrHomeTeam2[0]; this.HomeTeam_E = this.HomeTeam_E + " / " + arrHomeTeam2[1]; this.HomeTeam_F = this.HomeTeam_F + " / " + arrHomeTeam2[2]; //客队名 var arrGuestTeam2 = vballHelper.getNodeValue(xmlNode, "B_Name2").split(","); this.GuestTeam_J = this.GuestTeam_J + " / " + arrGuestTeam2[0]; this.GuestTeam_E = this.GuestTeam_E + " / " + arrGuestTeam2[1]; this.GuestTeam_F = this.GuestTeam_F + " / " + arrGuestTeam2[2]; } this.MatchKindID = vballHelper.toKindID(this.MatchKind); this.Team1 = vballHelper.getNodeValue(xmlNode, "Team1"); //联赛ID this.Team2 = vballHelper.getNodeValue(xmlNode, "Team2"); this.PID = vballHelper.getNodeValue(xmlNode, "PID"); } //处理数据 //全局变量 var arrVballScore = null; var oldChangeXML = null; var oldTeamChangeXML = null; var soundCheck = true; var flashSound = ""; //第一次访问 function load_tennis_XML(lang) { language = lang; arrVballScore = new Array(); var oXmlHttp = bomHelper.ajaxObj(); oXmlHttp.open("get", "/sports/xmlData/PingPong_scores.php?t=" + Date.parse(new Date()), false); oXmlHttp.send(null); var responseXML = oXmlHttp.responseXML; var arrI = responseXML.getElementsByTagName("i"); for (var i = 0; i < arrI.length; i++) { arrVballScore.push(new VballScore(arrI[i])); } //排好序 //arrVballScore = sortByState(arrVballScore); var oldLeagueID = ""; var oldMatchKind = ""; var html = ""; var bgColor = "#EBFAFD"; //#F2F6FB var leaguehtml = ""; //赛事选择框的显示 var arrLeagueID = new Array(); for (var i = 0; i < arrVballScore.length; i++) { var vballScore = arrVballScore[i]; //联赛名 if (oldLeagueID != vballScore.LeagueMatchID || oldMatchKind != vballScore.MatchKind) { html += "
"; html += "
" + vballScore.MatchName + " - " + vballScore.MatchKind + "
"; oldLeagueID = vballScore.LeagueMatchID; oldMatchKind = vballScore.MatchKind var haveLeagueID = false; for (var k = 0; k < arrLeagueID.length; k++) { if (vballScore.LeagueMatchID+vballScore.MatchKindID == arrLeagueID[k]) { haveLeagueID = true; break; } } if (!haveLeagueID) { leaguehtml += " " + vballScore.MatchName + " - " + vballScore.MatchKind + ""; //赛事选择 arrLeagueID.push(vballScore.LeagueMatchID+vballScore.MatchKindID); } } //每一场赛事 html += ""; //头部行 html += ""; html += ""; //主队行 bgColor = "#F7F7F7"; html += "" + ""//时间 + ""//状态 + ""//主队名 + ""//比分1 + ""//比分2 + ""//比分3 + ""//比分4 + ""//比分5 + ""//比分5 + ""//比分5 + ""//总分 + ""; //客队行 html += "" + ""//客队名 + ""//比分1 + ""//比分2 + ""//比分3 + ""//比分4 + ""//比分5 + ""//比分6 + ""//比分7 + ""//总分 + ""; //说明行 html += "
时间状态球队1234567总分
" + vballScore.MatchTime + "" + select_match_state(vballScore.State) + "" + (language == 0 ? vballScore.HomeTeam_J : (language == 1 ? vballScore.HomeTeam_F : vballScore.HomeTeam_E)) + "" + vballScore.H_Score1 + "" + vballScore.H_Score2 + "" + vballScore.H_Score3 + "" + vballScore.H_Score4 + "" + vballScore.H_Score5 + "" + vballScore.H_Score6 + "" + vballScore.H_Score7 + "" + vballScore.H_Score + "
" + (language == 0 ? vballScore.GuestTeam_J : (language == 1 ? vballScore.GuestTeam_F : vballScore.GuestTeam_E)) + "" + vballScore.G_Score1 + "" + vballScore.G_Score2 + "" + vballScore.G_Score3 + "" + vballScore.G_Score4 + "" + vballScore.G_Score5 + "" + vballScore.G_Score6 + "" + vballScore.G_Score7 + "" + vballScore.G_Score + "
 " + vballScore.Ex + "
"; } load_Team_XML(html, leaguehtml); } //加载团队xml function load_Team_XML(html,leaguehtml) { var oXmlHttp = bomHelper.ajaxObj(); oXmlHttp.open("get", "/sports/xmlData/PingPong_TeamScores.php?t=" + Date.parse(new Date()), false); oXmlHttp.send(null); var responseXML = oXmlHttp.responseXML; var arrI = responseXML.getElementsByTagName("i"); var orLen = arrVballScore.length; for (var i = 0; i < arrI.length; i++) { arrVballScore.push(new VballScore(arrI[i])); } var oldLeagueID = ""; var oldMatchKind = ""; var bgColor = "#EBFAFD"; //#F2F6FB var arrLeagueID = new Array(); var pid = ""; for (var i = orLen; i < arrVballScore.length; i++) { var vballScore = arrVballScore[i]; //联赛名 if (oldLeagueID != vballScore.LeagueMatchID || oldMatchKind != vballScore.MatchKind) { html += ""; html += "
" + vballScore.MatchName + " - " + vballScore.MatchKind + "
"; oldLeagueID = vballScore.LeagueMatchID; oldMatchKind = vballScore.MatchKind var haveLeagueID = false; for (var k = 0; k < arrLeagueID.length; k++) { if (vballScore.LeagueMatchID + vballScore.MatchKindID == arrLeagueID[k]) { haveLeagueID = true; break; } } if (!haveLeagueID) { leaguehtml += " " + vballScore.MatchName + " - " + vballScore.MatchKind + ""; //赛事选择 arrLeagueID.push(vballScore.LeagueMatchID + vballScore.MatchKindID); } } //每一场赛事 html += ""; //头部行 if (vballScore.PID != pid) { pid = vballScore.PID; html += ""; } html += ""; html += ""; //主队行 bgColor = "#F7F7F7"; html += "" + ""//时间 + ""//状态 + ""//主队名 + ""//比分1 + ""//比分2 + ""//比分3 + ""//比分4 + ""//比分5 + ""//比分5 + ""//比分5 + ""//总分 + ""; //客队行 html += "" + ""//客队名 + ""//比分1 + ""//比分2 + ""//比分3 + ""//比分4 + ""//比分5 + ""//比分6 + ""//比分7 + ""//总分 + ""; //说明行 html += "
" + vballScore.Team1 + " " + vballScore.score + " " + vballScore.Team2 + "
时间状态球队1234567总分
" + vballScore.MatchTime + "" + select_match_state(vballScore.State) + "" + (language == 0 ? vballScore.HomeTeam_J : (language == 1 ? vballScore.HomeTeam_F : vballScore.HomeTeam_E)) + "["+vballScore.Team1+"]" + vballScore.H_Score1 + "" + vballScore.H_Score2 + "" + vballScore.H_Score3 + "" + vballScore.H_Score4 + "" + vballScore.H_Score5 + "" + vballScore.H_Score6 + "" + vballScore.H_Score7 + "" + vballScore.H_Score + "
" + (language == 0 ? vballScore.GuestTeam_J : (language == 1 ? vballScore.GuestTeam_F : vballScore.GuestTeam_E)) + "[" + vballScore.Team2 + "]" + vballScore.G_Score1 + "" + vballScore.G_Score2 + "" + vballScore.G_Score3 + "" + vballScore.G_Score4 + "" + vballScore.G_Score5 + "" + vballScore.G_Score6 + "" + vballScore.G_Score7 + "" + vballScore.G_Score + "
 " + vballScore.Ex + "
"; } leaguehtml += ""; if (arrVballScore.length == 0) { //html = "
当日没有赛事
"; html = noMatchShow(); } document.getElementById("myleague").innerHTML = leaguehtml; //赛事选择里面的联赛显示 document.getElementById("TennisScore").innerHTML = html; } //改变的XML function load_change_XML() { var oXmlHttp = bomHelper.ajaxObj(); oXmlHttp.open("get", "/sports/xmlData/PingPong_change.php?t=" + Date.parse(new Date()), false); oXmlHttp.send(null); var responseXML = oXmlHttp.responseXML; if (responseXML == oldChangeXML || responseXML == undefined) { return; } if (oldChangeXML == null) { oldChangeXML = responseXML; return; } else oldChangeXML = responseXML; changeXML(responseXML); } //改变团队赛的XML function load_change_TeamXML() { var oXmlHttp = bomHelper.ajaxObj(); oXmlHttp.open("get", "/sports/xmlData/PingPong_TeamChange.php?t=" + Date.parse(new Date()), false); oXmlHttp.send(null); var responseXML = oXmlHttp.responseXML; if (responseXML == oldTeamChangeXML || responseXML == undefined) { return; } if (oldTeamChangeXML == null) { oldTeamChangeXML = responseXML; return; } else oldTeamChangeXML = responseXML; changeXML(responseXML); } function changeXML(responseXML) { var arrItems = responseXML.getElementsByTagName("items"); var arrChangeBball = new Array(); for (var i = 0; i < arrItems.length; i++) { arrChangeBball.push(new VballScoreChange(arrItems[i])); } for (i = 0; i < arrChangeBball.length; i++) { var isScoreChange = false; var matchid = arrChangeBball[i].MatchID; var tr = document.getElementById("table_" + matchid); if (tr == null) continue; var match_index = tr.attributes["index"].value; var vballScore = arrVballScore[match_index]; //state if (vballScore.State != arrChangeBball[i].State) { vballScore.State = arrChangeBball[i].State; document.getElementById("RState_" + matchid).innerHTML = select_match_state(arrChangeBball[i].State); if (arrChangeBball[i].State == -1) { document.getElementById("rbt_" + matchid).className = "td_scoreR"; document.getElementById("rbt_" + matchid).className = "td_scoreR"; //window.setTimeout("removeBottom(" + matchid + ")", 60000); } } //scoreA if (vballScore.H_Score != arrChangeBball[i].H_Score) { document.getElementById("rat_" + matchid).style.backgroundColor = "yellow"; document.getElementById("rat_" + matchid).innerHTML = arrChangeBball[i].H_Score; isScoreChange = true; } //scoreB if (vballScore.G_Score != arrChangeBball[i].G_Score) { document.getElementById("rbt_" + matchid).style.backgroundColor = "yellow"; document.getElementById("rbt_" + matchid).innerHTML = arrChangeBball[i].G_Score; isScoreChange = true; } if (isScoreChange) { if (soundCheck && tr.style.display == "") document.getElementById("Sound").innerHTML = flashSound; window.setTimeout("timecolors(" + matchid + ")", 15000); vballScore.H_Score = arrChangeBball[i].H_Score; vballScore.G_Score = arrChangeBball[i].G_Score; } //A_S_1 if (vballScore.H_Score1 != arrChangeBball[i].H_Score1) { scoreChange("ra1_" + matchid, arrChangeBball[i].H_Score1); vballScore.H_Score1 = arrChangeBball[i].H_Score1; //赋值,覆盖 } //A_S_2 if (vballScore.H_Score2 != arrChangeBball[i].H_Score2) { scoreChange("ra2_" + matchid, arrChangeBball[i].H_Score2); vballScore.H_Score2 = arrChangeBball[i].H_Score2; } //A_S_3 if (vballScore.H_Score3 != arrChangeBball[i].H_Score3) { scoreChange("ra3_" + matchid, arrChangeBball[i].H_Score3); vballScore.H_Score3 = arrChangeBball[i].H_Score3; } //A_S_4 if (vballScore.H_Score4 != arrChangeBball[i].H_Score4) { scoreChange("ra4_" + matchid, arrChangeBball[i].H_Score4); vballScore.H_Score4 = arrChangeBball[i].H_Score4; } //A_S_5 if (vballScore.H_Score5 != arrChangeBball[i].H_Score5) { scoreChange("ra5_" + matchid, arrChangeBball[i].H_Score5); vballScore.H_Score5 = arrChangeBball[i].H_Score5; } //A_S_6 if (vballScore.H_Score6 != arrChangeBball[i].H_Score6) { scoreChange("ra6_" + matchid, arrChangeBball[i].H_Score6); vballScore.H_Score6 = arrChangeBball[i].H_Score6; } //A_S_7 if (vballScore.H_Score7 != arrChangeBball[i].H_Score7) { scoreChange("ra7_" + matchid, arrChangeBball[i].H_Score7); vballScore.H_Score7 = arrChangeBball[i].H_Score7; } //B_S_1 if (vballScore.G_Score1 != arrChangeBball[i].G_Score1) { scoreChange("rb1_" + matchid, arrChangeBball[i].G_Score1); vballScore.G_Score1 = arrChangeBball[i].G_Score1; //赋值,覆盖 } //B_S_2 if (vballScore.G_Score2 != arrChangeBball[i].G_Score2) { scoreChange("rb2_" + matchid, arrChangeBball[i].G_Score2); vballScore.G_Score2 = arrChangeBball[i].G_Score2; //赋值,覆盖 } //B_S_3 if (vballScore.G_Score3 != arrChangeBball[i].G_Score3) { scoreChange("rb3_" + matchid, arrChangeBball[i].G_Score3); vballScore.G_Score3 = arrChangeBball[i].G_Score3; //赋值,覆盖 } //B_S_4 if (vballScore.G_Score4 != arrChangeBball[i].G_Score4) { scoreChange("rb4_" + matchid, arrChangeBball[i].G_Score4); vballScore.G_Score4 = arrChangeBball[i].G_Score4; //赋值,覆盖 } //B_S_5 if (vballScore.G_Score5 != arrChangeBball[i].G_Score5) { scoreChange("rb5_" + matchid, arrChangeBball[i].G_Score5); vballScore.G_Score5 = arrChangeBball[i].G_Score5; //赋值,覆盖 } //B_S_6 if (vballScore.G_Score6 != arrChangeBball[i].G_Score6) { scoreChange("rb6_" + matchid, arrChangeBball[i].G_Score6); vballScore.G_Score6 = arrChangeBball[i].G_Score6; //赋值,覆盖 } //B_S_7 if (vballScore.G_Score7 != arrChangeBball[i].G_Score7) { scoreChange("rb7_" + matchid, arrChangeBball[i].G_Score7); vballScore.G_Score7 = arrChangeBball[i].G_Score7; //赋值,覆盖 } //说明 if (vballScore.Ex != arrChangeBball[i].Ex) { document.getElementById("ex_" + matchid).innerHTML = " " + arrChangeBball[i].Ex; vballScore.Ex = arrChangeBball[i].Ex; } //团队的头部总比分 if (vballScore.ParentID != "") { document.getElementById("head" + vballScore.ParentID).innerHTML = vballScore.score; } } } //比分改变,改变颜色 function scoreChange(tdId, Score) { var bfTd1 = document.getElementById(tdId); bfTd1.innerHTML = Score; //改变比分 bfTd1.style.color = "red"; //改变颜色 window.setTimeout("scorecolors('" + tdId + "')", 10000); } //总分颜色改变 function timecolors(matchid) { try { document.getElementById("rbt_" + matchid).style.backgroundColor = ""; document.getElementById("rat_" + matchid).style.backgroundColor = ""; } catch (e) { } } //局分颜色改变 function scorecolors(id) { var td = document.getElementById(id); td.style.color = "black"; } //排序,把完场的放回下面 function sortByState(arrTennis) { var finishArr = new Array(); //已完场 var tempArr = new Array(); var oldLeagueID = ""; var oldKind = ""; for (var i = 0; i < arrTennis.length; i++) { if (arrTennis[i].LeagueMatchID != oldLeagueID || arrTennis[i].MatchKind != oldKind) { for (var j = 0; j < finishArr.length; j++) { tempArr.push(finishArr[j]); } finishArr = new Array(); } if (arrTennis[i].State == "-1") { finishArr.push(arrTennis[i]); } else { tempArr.push(arrTennis[i]); } oldKind = arrTennis[i].MatchKind; oldLeagueID = arrTennis[i].LeagueMatchID; } for (var j = 0; j < finishArr.length; j++) { tempArr.push(finishArr[j]); } return tempArr; } ///获取比赛状态 function select_match_state(state) { var statestr = ""; switch (state) { case "-7": statestr = 'P2退赛'; break; case "-6": statestr = 'P1退赛'; break; case "-5": statestr = '推迟'; break; case "-4": statestr = '取消'; break; case "-3": statestr = '中断'; break; case "-2": statestr = '待定'; break; case "-1": statestr = ''; break; case "1": statestr = '1'; break; case "2": statestr = '2'; break; case "3": statestr = '3'; break; case "4": statestr = '4'; break; case "5": statestr = '5'; break; default: statestr = ''; break; } return (statestr); } //声效改变 function changeSound() { var s = document.getElementById("checkbox_sound"); if (s.checked) { soundCheck = true; } else { soundCheck = false; } } //显示隐藏的球队 function hidematch(MatchID) { document.getElementById("table_" + MatchID).style.display = "none"; document.getElementById("hiddencount").innerHTML = Math.floor(document.getElementById("hiddencount").innerHTML) + 1; } //全选,显示全部 function ShowAllMatch() { try { for (var i = 0; i < arrVballScore.length; i++) { document.getElementById("table_" + arrVballScore[i].MatchID).style.display = ""; } var arrLeagueBox = document.getElementsByName("checkLea"); for (var j = 0; j < arrLeagueBox.length; j++) { arrLeagueBox[j].checked = "checked"; } document.getElementById("hiddencount").innerHTML = 0; } catch (e) { } } //赛事选择 function showMatchSelect(divID) { var oDiv = document.getElementById(divID); if (oDiv.style.display == "none") { var li = document.getElementById("selectMatchLi"); var pos = getElementPos(li); oDiv.style.left = (pos.x - 700) + "px"; oDiv.style.top = (pos.y - 55) + "px"; oDiv.style.display = "block"; } else oDiv.style.display = "none"; } function getElementPos(_Obj) { var _Top = _Obj.offsetTop; var _Left = _Obj.offsetLeft; while (_Obj = _Obj.offsetParent) { _Top += _Obj.offsetTop; _Left += _Obj.offsetLeft; } return { 'x': _Left, 'y': _Top } } //根据赛事状态选择赛事 function ShowMatchByMatchState(n) { try { var hh = 0; if (n == 0) ShowAllMatch(); else { for (var i = 0; i < arrVballScore.length; i++) { if (n == 1 && parseInt(arrVballScore[i].State) > 0 || n == 2 && parseInt(arrVballScore[i].State) == -1 || n == 3 && parseInt(arrVballScore[i].State) == 0) { document.getElementById("table_" + arrVballScore[i].MatchID).style.display = ""; } else { document.getElementById("table_" + arrVballScore[i].MatchID).style.display = "none"; hh = hh + 1; } } } document.getElementById("hiddencount").innerHTML = hh; } catch (e) { } } //根据联赛选择来显示赛事 function CheckLeague(LeagueID) { try { var hh = parseInt(document.getElementById("hiddencount").innerHTML); if (document.getElementById("checkboxleague_" + LeagueID).checked) { for (var j = 0; j < arrVballScore.length; j++) { if (arrVballScore[j].LeagueMatchID+"_"+arrVballScore[j].MatchKindID == LeagueID && document.getElementById("table_" + arrVballScore[j].MatchID).style.display == "none") { document.getElementById("table_" + arrVballScore[j].MatchID).style.display = ""; hh = hh - 1; } } } else { for (var j = 0; j < arrVballScore.length; j++) { if (arrVballScore[j].LeagueMatchID + "_" + arrVballScore[j].MatchKindID == LeagueID && document.getElementById("table_" + arrVballScore[j].MatchID).style.display == "") { document.getElementById("table_" + arrVballScore[j].MatchID).style.display = "none"; hh = hh + 1; } } } document.getElementById("hiddencount").innerHTML = hh; } catch (e) { } } //全不选,全部不显示 function ShowNullMatch() { try { for (var i = 0; i < arrVballScore.length; i++) { document.getElementById("table_" + arrVballScore[i].MatchID).style.display = "none"; } var arrLeagueBox = document.getElementsByName("checkLea"); for (var j = 0; j < arrLeagueBox.length; j++) { arrLeagueBox[j].checked = ""; } document.getElementById("hiddencount").innerHTML = arrVballScore.length; } catch (e) { } }