function SnookerScoreHelper() { } SnookerScoreHelper.prototype.getNodeValue = function(xmlNode, tagName) { var a = xmlNode.getElementsByTagName(tagName); if (a.length == 0) return ""; if (a[0].childNodes.length == 0) return ""; return a[0].firstChild.nodeValue; } //定义斯诺克类 function SnookerScoreChange(xmlNode) { var snookerHelper = new SnookerScoreHelper(); this.MatchID = snookerHelper.getNodeValue(xmlNode, "match_ID"); //赛事ID //比分 this.H_Score = snookerHelper.getNodeValue(xmlNode, "A_Score"); this.G_Score = snookerHelper.getNodeValue(xmlNode, "B_Score"); this.CurrScore = snookerHelper.getNodeValue(xmlNode, "CurrScore"); this.MatchTime = snookerHelper.getNodeValue(xmlNode, "time"); this.State = snookerHelper.getNodeValue(xmlNode, "state"); //比赛状态 this.Detail = snookerHelper.getNodeValue(xmlNode, "Detail"); //详细 this.Ex = snookerHelper.getNodeValue(xmlNode, "Ex"); //注释 } function SnookerScore(xmlNode) { //继承 SnookerScoreChange.call(this, xmlNode); var snookerHelper = new SnookerScoreHelper(); this.LeagueMatchID = snookerHelper.getNodeValue(xmlNode, "league_match_ID"); //联赛ID this.MatchName = snookerHelper.getNodeValue(xmlNode, "match_name"); this.MatchDate = snookerHelper.getNodeValue(xmlNode, "date"); this.HomeTeamID = snookerHelper.getNodeValue(xmlNode, "AID"); this.GuestTeamID = snookerHelper.getNodeValue(xmlNode, "BID"); //主队名 this.HomeTeam_J = snookerHelper.getNodeValue(xmlNode, "A_Name"); this.HomeTeam_F = snookerHelper.getNodeValue(xmlNode, "A_Name_f"); //客队名 this.GuestTeam_J = snookerHelper.getNodeValue(xmlNode, "B_Name"); this.GuestTeam_F = snookerHelper.getNodeValue(xmlNode, "B_Name_f"); this.Part = snookerHelper.getNodeValue(xmlNode, "Part"); } //处理数据 //全局变量 var arrSnookerScore = null; var oldChangeXML = null; var soundCheck = true; var flashSound = ""; //第一次访问 function load_tennis_XML(lang) { language = lang; arrSnookerScore = new Array(); var oXmlHttp = bomHelper.ajaxObj(); oXmlHttp.open("get", "/sports/xmlData/Snooker_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++) { arrSnookerScore.push(new SnookerScore(arrI[i])); } //排好序 arrSnookerScore = sortByState(arrSnookerScore); var oldMatchName = ""; var html = "
时间状态球员1局分总分球员2
"; var bgColor = "#EBFAFD"; //#F2F6FB var leaguehtml = ""; //赛事选择框的显示 var arrLeagueID = new Array(); for (var i = 0; i < arrSnookerScore.length; i++) { var snookerScore = arrSnookerScore[i]; //联赛名 if (oldMatchName != snookerScore.MatchName) { html += "
"; html += ""; oldMatchName = snookerScore.MatchName; var haveLeagueID = false; for (var k = 0; k < arrLeagueID.length; k++) { if (snookerScore.LeagueMatchID == arrLeagueID[k]) { haveLeagueID = true; break; } } if (!haveLeagueID) { leaguehtml += ""; //赛事选择 arrLeagueID.push(snookerScore.LeagueMatchID); } } //每一场赛事 html += ""; html += "" + //时间 "" + //状态 "" + //主队 "" + //局分 "" + //总分 ""; //客队 //说明行 html += ""; } leaguehtml += "
" + snookerScore.MatchName + "
" + snookerScore.MatchName + "
" + snookerScore.MatchDate + "" + select_match_state(snookerScore.State) + "" + (lang == 0 ? snookerScore.HomeTeam_J : snookerScore.HomeTeam_F) + "" + (snookerScore.State==-1||snookerScore.CurrScore == "" ? " - " : snookerScore.CurrScore) + "" + snookerScore.H_Score + " (" + snookerScore.Part + ") " + snookerScore.G_Score + "" + (lang == 0 ? snookerScore.GuestTeam_J : snookerScore.GuestTeam_F) + "
" + showDetail(snookerScore.Detail) + " " + snookerScore.Ex + "
"; html += ""; if (arrSnookerScore.length == 0) { //html = "
当日没有赛事
"; html = noMatchShow(); } document.getElementById("myleague").innerHTML = leaguehtml; //赛事选择里面的联赛显示 document.getElementById("SnookerScore").innerHTML = html; } function showDetail(str) { var rg1 = /\(/g; var m = str.replace(rg1, ""); return m; } //改变的XML function load_change_XML() { var oXmlHttp = bomHelper.ajaxObj(); oXmlHttp.open("get", "/sports/xmlData/Snooker_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; var refleshVal = responseXML.getElementsByTagName("refresh")[0].firstChild.nodeValue; if (refleshVal == "1") { return; } var arrItems = responseXML.getElementsByTagName("i"); var arrChangeSnooker = new Array(); for (var i = 0; i < arrItems.length; i++) { arrChangeSnooker.push(new SnookerScoreChange(arrItems[i])); } for (i = 0; i < arrChangeSnooker.length; i++) { var isScoreChange = false; var matchid = arrChangeSnooker[i].MatchID; var tr = document.getElementById("tr1_" + matchid); if (tr == null) continue; var match_index = tr.attributes["index"].value; var snookerScore = arrSnookerScore[match_index]; //state if (snookerScore.State != arrChangeSnooker[i].State) { snookerScore.State = arrChangeSnooker[i].State; scoreChange("RState_" + matchid, select_match_state(arrChangeSnooker[i].State)); } //scoreA if (snookerScore.H_Score != arrChangeSnooker[i].H_Score) { isScoreChange = true; } //scoreB if (snookerScore.G_Score != arrChangeSnooker[i].G_Score) { isScoreChange = true; } if (isScoreChange) { var td = "" + arrChangeSnooker[i].H_Score + " (" + snookerScore.Part + ") " + arrChangeSnooker[i].G_Score + "" scoreChange("Score_" + matchid, td); snookerScore.H_Score = arrChangeSnooker[i].H_Score; snookerScore.G_Score = arrChangeSnooker[i].G_Score; } //局分 if (snookerScore.CurrScore != arrChangeSnooker[i].CurrScore) { snookerScore.CurrScore = arrChangeSnooker[i].CurrScore; scoreChange("CurrScore_" + matchid, snookerScore.CurrScore); } //说明 //if (snookerScore.Ex != arrChangeSnooker[i].Ex) { // document.getElementById("ex_" + matchid).innerHTML = " " + arrChangeSnooker[i].Ex; // snookerScore.Ex = arrChangeSnooker[i].Ex; //} } } //比分改变,改变颜色 function scoreChange(tdId, Score) { var bfTd1 = document.getElementById(tdId); bfTd1.innerHTML = Score; //改变比分 bfTd1.style.backgroundColor = "yellow"; //改变颜色 window.setTimeout("scorecolors('" + tdId + "')", 10000); } //局分颜色改变 function scorecolors(id) { var td = document.getElementById(id); td.style.backgroundColor = ""; } //排序,把完场的放回下面 function sortByState(arrTennis) { var finishArr = new Array(); //已完场 var tempArr = new Array(); var oldMatchName = ""; var oldKind = ""; for (var i = 0; i < arrTennis.length; i++) { if (arrTennis[i].MatchName != oldMatchName || 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; oldMatchName = arrTennis[i].MatchName; } for (var j = 0; j < finishArr.length; j++) { tempArr.push(finishArr[j]); } return tempArr; } //获取比赛状态 function select_match_state(state) { var statestr = ""; switch (state) { case "-3": statestr = '待定'; break; case "-2": statestr = '休息'; break; case "-1": statestr = ''; break; case "0": statestr = '未'; break; default: statestr = '' + state + ''; break; } return (statestr); } //声效改变 function changeSound() { var s = document.getElementById("checkbox_sound"); if (s.checked) { soundCheck = true; } else { soundCheck = false; } } //显示隐藏的球队 function hidematch(MatchID) { document.getElementById("tr1_" + MatchID).style.display = "none"; document.getElementById("tr2_" + MatchID).style.display = "none"; document.getElementById("hiddencount").innerHTML = Math.floor(document.getElementById("hiddencount").innerHTML) + 1; } //全选,显示全部 function ShowAllMatch() { try { for (var i = 0; i < arrSnookerScore.length; i++) { document.getElementById("tr1_" + arrSnookerScore[i].MatchID).style.display = ""; document.getElementById("tr2_" + arrSnookerScore[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 < arrSnookerScore.length; i++) { if (n == 1 && parseInt(arrSnookerScore[i].State) > 0 || n == 2 && parseInt(arrSnookerScore[i].State) == -1 || n == 3 && parseInt(arrSnookerScore[i].State) == 0) { document.getElementById("tr1_" + arrSnookerScore[i].MatchID).style.display = ""; document.getElementById("tr2_" + arrSnookerScore[i].MatchID).style.display = ""; } else { document.getElementById("tr1_" + arrSnookerScore[i].MatchID).style.display = "none"; document.getElementById("tr2_" + arrSnookerScore[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 < arrSnookerScore.length; j++) { if (arrSnookerScore[j].LeagueMatchID == LeagueID && document.getElementById("tr1_" + arrSnookerScore[j].MatchID).style.display == "none") { document.getElementById("tr1_" + arrSnookerScore[j].MatchID).style.display = ""; document.getElementById("tr2_" + arrSnookerScore[j].MatchID).style.display = ""; hh = hh - 1; } } } else { for (var j = 0; j < arrSnookerScore.length; j++) { if (arrSnookerScore[j].LeagueMatchID == LeagueID && document.getElementById("tr1_" + arrSnookerScore[j].MatchID).style.display == "") { document.getElementById("tr1_" + arrSnookerScore[j].MatchID).style.display = "none"; document.getElementById("tr2_" + arrSnookerScore[j].MatchID).style.display = "none"; hh = hh + 1; } } } document.getElementById("hiddencount").innerHTML = hh; } catch (e) { } } //全不选,全部不显示 function ShowNullMatch() { try { for (var i = 0; i < arrSnookerScore.length; i++) { document.getElementById("tr1_" + arrSnookerScore[i].MatchID).style.display = "none"; document.getElementById("tr2_" + arrSnookerScore[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 = arrSnookerScore.length; } catch (e) { } } //弹出框显示球员资料 function playerInfo(id) { window.open("/sports/Snooker/cn/snookerPlayer.html?playerID=" + id, "", "width=520,height=400,resizable=yes,scrollbars=yes") }