Live Matches
Recent Matches
1st ODI, Pakistan in West Indies, 3 ODI Series, 2025 WI 280 (49.0) PAK 284/5 (48.5) Pakistan beat West Indies by 5 wicketsUpcoming Matches
West Indies vs Pakistan, Live Cricket scoreboard 2nd T20I
West Indies vs Pakistan Scorecard
Share
Match Ended
2nd T20I, Queen's Park Oval, Port of Spain, Trinidad , Mar 30, 2017
West Indies
129/8 (20.0/20)
Pakistan
132 (20.0/20)
Pakistan beat West Indies by 3 runs
-
-
Player of the Match
Shadab Khan
'), i(this).doCountDown(i(this).attr("id"), e, 500), config.onComplete && i.data(i(this)[0], "callback", config.onComplete), config.omitWeeks && i.data(i(this)[0], "omitWeeks", config.omitWeeks), this }, i.fn.stopCountDown = function () { clearTimeout(i.data(this[0], "timer")) }, i.fn.startCountDown = function () { this.doCountDown(i(this).attr("id"), i.data(this[0], "diffSecs"), 500) }, i.fn.setCountDown = function (t) { var e = null; e = new Date, t.targetDate ? (e.setDate(t.targetDate.day), e.setMonth(t.targetDate.month - 1), e.setFullYear(t.targetDate.year), e.setHours(t.targetDate.hour), e.setMinutes(t.targetDate.min), e.setSeconds(t.targetDate.sec)) : t.targetOffset && (e.setDate(t.targetOffset.day + e.getDate()), e.setMonth(t.targetOffset.month + e.getMonth()), e.setFullYear(t.targetOffset.year + e.getFullYear()), e.setHours(t.targetOffset.hour + e.getHours()), e.setMinutes(t.targetOffset.min + e.getMinutes()), e.setSeconds(t.targetOffset.sec + e.getSeconds())); var a = new Date; return diffSecs = Math.floor((e.valueOf() - a.valueOf()) / 1e3), i.data(this[0], "diffSecs", diffSecs), diffSecs }, i.fn.doCountDown = function (a, s, n) { if (i("#" + a).length <= 0) return !1; $jaqCountthis = i("#" + a), s <= 0 && (s = 0, i.data($jaqCountthis[0], "timer") && clearTimeout(i.data($jaqCountthis[0], "timer"))), secs = s % 60, mins = Math.floor(s / 60) % 60, hours = Math.floor(s / 60 / 60) % 24, days = Math.floor(s / 60 / 60 / 24), $jaqCountthis.dashChangeTo(a, "sportsndtv-seconds_dash", secs, n || 800), $jaqCountthis.dashChangeTo(a, "sportsndtv-minutes_dash", mins, n || 1200), $jaqCountthis.dashChangeTo(a, "sportsndtv-hours_dash", hours, n || 1200), $jaqCountthis.dashChangeTo(a, "sportsndtv-days_dash", days, n || 1200), i.data($jaqCountthis[0], "diffSecs", s), s > 0 ? (e = $jaqCountthis, t = setTimeout(function () { e.doCountDown(a, s - 1) }, 1e3), i.data(e[0], "timer", t)) : (cb = i.data($jaqCountthis[0], "callback")) && i.data($jaqCountthis[0], "callback")() }, i.fn.dashChangeTo = function (t, e, a, s) { $jaqCountthis = i("#" + t), d2 = a % 10, d1 = (a - a % 10) / 10, i("#" + $jaqCountthis.attr("id") + " ." + e) && (d1, d2, $jaqCountthis.digitChangeTo("#" + $jaqCountthis.attr("id") + " ." + e + " .sportsndtv-digit:first", d1, s), $jaqCountthis.digitChangeTo("#" + $jaqCountthis.attr("id") + " ." + e + " .sportsndtv-digit:last", d2, s)) }, i.fn.digitChangeTo = function (t, e, a) { a || (a = 800), i(t + " div.sportsndtv-top").html() != e + "" && (i(t + " div.sportsndtv-top").css({ display: "none" }), i(t + " div.sportsndtv-top").html(e || "0").show(), i(t + " div.sportsndtv-bottom").html(i(t + " div.sportsndtv-top").html()), i(t + " div.sportsndtv-bottom").css({ display: "block", height: "" }), i(t + " div.sportsndtv-top").hide().slideUp(1)) }, SI_CC.drawLine = function (t, e, a, i, s, n, r, o) { r || (r = "yellow"), n || (n = "1"), o || (o = "square"), t && (t.beginPath(), t.moveTo(e, a), t.lineTo(i, s), t.strokeStyle = r, t.lineWidth = n, t.lineCap = o, t.stroke()) }, SI_CC.isCanvasSupported = function () { var t = document.createElement("canvas"); return !(!t.getContext || !t.getContext("2d")) }(), SI_CC.loadFiles = function (t, e) { a.ajax({ type: "GET", url: t, cache: !0, success: function (t) { e(t) }, error: function () { console.log("error. " + t + " loading failed.") } }) }, SI_CC.scrollTools = function (t) { var e, i = "string" == typeof t.scrollable_area ? a(t.scrollable_area) : t.scrollable_area, s = "string" == typeof t.div_wrapper ? a(t.div_wrapper) : t.div_wrapper, n = "string" == typeof t.left_btn ? a(t.left_btn) : t.left_btn, r = "string" == typeof t.right_btn ? a(t.right_btn) : t.right_btn, o = "string" == typeof t.navwrap ? a(t.navwrap) : t.navwrap, d = (t.callback, t.touch), l = t.scrollTo, c = t.step ? t.step : 1, u = !!t.disabledClass && t.disabledClass, h = {}, f = 0; e = "" != parseInt(a(s).children().first().css("margin-right")) ? parseInt(a(s).children().first().css("margin-right")) : "" != parseInt(a(s).children().last().css("margin-left")) ? parseInt(a(s).children().last().css("margin-left")) : 0; var g = a(s).children().first().outerWidth() + e, m = a(s).children().length * g; a(s).width(m + "px"); var p = a(i).outerWidth(!0) + e; if ("auto" == a(s).css("left") && a(s).css("left", "0"), 0 == parseInt(a(s).css("left")) ? T(a(n), "hide") : T(a(n), "show"), m <= p ? T(a(r), "hide") : (T(a(r), "show"), a(i).parent().addClass("sportsndtv-scrollable")), m <= p - parseInt(a(s).css("left")) ? (T(a(r), "hide"), a(s).trigger("right")) : T(a(r), "show"), o && m > p) { for (var v = Math.round((m - p) / g) + 1, y = "", C = 0; C < v; C++)y += ''; a(o).append(y), a(o).children().first().addClass("sportsndtv-active sportsndtv-gridbg1"), a(o).children().first().removeClass("sportsndtv-gridbg3") } function b(t) { t = parseInt(t); a(o).children().removeClass("sportsndtv-active sportsndtv-gridbg1"), a(o).children().addClass("sportsndtv-gridbg3"); var e = a("#but" + t); a(e).addClass("sportsndtv-active sportsndtv-gridbg1"), a(e).removeClass("sportsndtv-gridbg3") } function w(t) { m <= p - parseInt(a(s).css("left")) ? (T(a(r), "hide"), a(s).trigger("right")) : T(a(r), "show"), parseInt(a(s).css("left")) >= 0 ? (T(a(n), "hide"), a(s).trigger("left")) : T(a(n), "show"), t && t() } function T(t, e) { e ? "hide" == e ? u ? t.addClass(u) : t.hide() : "show" == e && (u ? t.removeClass(u) : t.show()) : u ? t.toggleClass(u) : t.toggle() } return a(r).click(function () { if (!a(s).is(":animated") && !a(r).hasClass(u)) { var t = parseInt(a(s).css("left")); if (o) b(Math.abs((t - g) / g)); !0, a(s).animate({ left: t - g }, 100, "linear", function () { w(function () { ++f < c ? "none" != a(r).css("display") && setTimeout(function () { a(r).click() }, 5) : f = 0 }) }) } }), a(n).click(function () { if (!a(s).is(":animated") && !a(n).hasClass(u)) { var t = parseInt(a(s).css("left")); if (o) b(Math.abs((t + g) / g)); a(s).animate({ left: t + g }, 100, "linear", function () { w(function () { ++f < c ? "none" != a(n).css("display") && setTimeout(function () { a(n).click() }, 5) : f = 0 }) }) } }), o && a(o).children().click(function () { var t = a(this).attr("id").substring(3); a(this).siblings().removeClass("sportsndtv-active sportsndtv-gridbg1"), a(this).siblings().addClass("sportsndtv-gridbg3"), a(this).addClass("sportsndtv-active sportsndtv-gridbg1"), a(this).removeClass("sportsndtv-gridbg3"); var e = t * g; a(s).animate({ left: -e }, 100, "linear", function () { w() }) }), d && (a(i).live("swipeleft", function () { "none" != a(r).css("display") && a(r).click() }), a(i).live("swiperight", function () { "none" != a(n).css("display") && a(n).click() })), h.scrollToEle = function (t) { var e = a(t), i = parseInt(p / g / 2); m > p && (a(s).children().last().index() - a(e).index() <= i ? a(s).animate({ left: -(a(s).children().last().index() - 2 * i) * g }, 500, "linear", function () { w() }) : a(e).index() <= i ? a(s).animate({ left: 0 }, 500, "linear", function () { w() }) : a(e).index() > i && a(s).animate({ left: -(a(e).index() - i) * g }, 500, "linear", function () { w() })) }, h.scrollToStart = function () { h.scrollToEle(a(s).children().first()) }, h.scrollToEnd = function () { h.scrollToEle(a(s).children().last()) }, h.checkforend = w, l && h.scrollToEle(l), h }, SI_CC.heatmapApp = function () { var t, e, a; return { initialize: function (i, s, n) { t = i.getContext("2d"), e = s, a = n }, hmd: function (i, s) { if (void 0 !== i) { var n = 10, r = t.createRadialGradient(i, s, 5, i, s, n); r.addColorStop(0, "rgba(0,0,0,0.1)"), r.addColorStop(1, "rgba(0,0,0,0)"), t.fillStyle = r, t.fillRect(i - n, s - n, 20, 20), function (i, s, n) { i + n > e && (i = e - n), i < 0 && (i = 0), s < 0 && (s = 0), s + n > a && (s = a - n); for (var r = t.getImageData(i, s, n, n), o = r.data, d = o.length, l = 3; l < d; l += 4) { var c = 0, u = 0, h = 0, f = 0, g = o[l]; g <= 255 && g >= 235 ? (c = 255 - (f = 255 - g), u = 12 * f) : g <= 234 && g >= 200 ? (c = 255 - 8 * (f = 234 - g), u = 255) : g <= 199 && g >= 150 ? (u = 255, h = 5 * (f = 199 - g)) : g <= 149 && g >= 100 ? (u = 255 - 5 * (f = 149 - g), h = 255) : h = 255, o[l - 3] = c, o[l - 2] = u, o[l - 1] = h } r.data = o, t.putImageData(r, i, s) }(i - n, s - n, 20) } } } }, SI_CC.isPointInPoly = function (t, e) { for (var a = !1, i = -1, s = t.length, n = s - 1; ++i < s; n = i)(t[i].y <= e.y && e.y <= t[n].y || t[n].y <= e.y && e.y <= t[i].y) && e.x <= (t[n].x - t[i].x) * (e.y - t[i].y) / (t[n].y - t[i].y) + t[i].x && (a = !a); return a }, "undefined" != typeof exports ? exports.SI_CC = SI_CC : window.SI_CC = SI_CC, a.fn.ObjectSize = function (t) { var e, a = 0; for (e in t) t.hasOwnProperty(e) && a++; return a } }(jQuery), function (t) { t.fn.marquee = function (e) { var a = [], i = this.length; function s(t, e, a) { var i = a.behavior, s = a.width, n = a.dir; return "alternate" == i ? 1 == t ? e[a.widthAxis] - 2 * s : s : "slide" == i ? -1 == t ? -1 == n ? e[a.widthAxis] : s : -1 == n ? e[a.widthAxis] - 2 * s : 0 : -1 == t ? e[a.widthAxis] : 0 } function n() { for (var e = a.length, i = null, r = null, o = {}, d = [], l = !1; e--;)i = a[e], o = (r = t(i)).data("marqueeState"), !0 !== r.data("paused") && null != o ? (i[o.axis] += o.scrollamount * o.dir, l = -1 == o.dir ? i[o.axis] <= s(-1 * o.dir, i, o) : i[o.axis] >= s(-1 * o.dir, i, o), "scroll" == o.behavior && o.last == i[o.axis] || "alternate" == o.behavior && l && -1 != o.last || "slide" == o.behavior && l && -1 != o.last ? ("alternate" == o.behavior && (o.dir *= -1), o.last = -1, r.trigger("stop"), o.loops--, 0 === o.loops ? ("slide" != o.behavior ? i[o.axis] = s(o.dir, i, o) : i[o.axis] = s(-1 * o.dir, i, o), r.trigger("end")) : (r.trigger("looping"), d.push(i), r.trigger("start"), i[o.axis] = s(o.dir, i, o))) : d.push(i), o.last = i[o.axis], r.data("marqueeState", o)) : d.push(i); (a = d).length && setTimeout(n, 25) } return this.each(function (r) { var o = t(this), d = o.attr("width") || o.width(), l = o.attr("height") || o.height(), c = o.after("
").next(), u = c.get(0), h = (o.attr("direction") || "left").toLowerCase(), f = { dir: /down|right/.test(h) ? -1 : 1, axis: /left|right/.test(h) ? "scrollLeft" : "scrollTop", widthAxis: /left|right/.test(h) ? "scrollWidth" : "scrollHeight", last: -1, loops: o.attr("loop") || -1, scrollamount: o.attr("scrollamount") || this.scrollAmount || 2, behavior: (o.attr("behavior") || "scroll").toLowerCase(), width: /left|right/.test(h) ? d : l }; -1 == o.attr("loop") && "slide" == f.behavior && (f.loops = 1), o.remove(), /left|right/.test(h) ? c.find("> div").css("padding", "0 " + d + "px") : c.find("> div").css("padding", l + "px 0"), c.bind("stop", function () { c.data("paused", !0) }).bind("pause", function () { c.data("paused", !0) }).bind("start", function () { c.data("paused", !1) }).bind("unpause", function () { c.data("paused", !1) }).data("marqueeState", f), a.push(u), u[f.axis] = s(f.dir, u, f), c.trigger("start"), r + 1 == i && n() }), t(a) }, jQuery.cachedScript = function (e, a) { return a = t.extend(a || {}, { dataType: "script", cache: !0, url: e }), jQuery.ajax(a) } }(jQuery); var isValidDate = function (t) { var e = new Date(t); return "[object Date]" === Object.prototype.toString.call(e) && !isNaN(e.getTime()) }, dateFormat = function () { var t = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, e = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, a = /[^-+\dA-Z]/g, i = function (t, e) { for (t = String(t), e = e || 2; t.length < e;)t = "0" + t; return t }; return function (s, n, r) { if (isValidDate(s)) { var o = dateFormat; 1 != arguments.length || "[object String]" != Object.prototype.toString.call(s) || /\d/.test(s) || (n = s, s = void 0), s = s ? new Date(s) : new Date, "UTC:" == (n = String(o.masks[n] || n || o.masks.default)).slice(0, 4) && (n = n.slice(4), r = !0); var d = r ? "getUTC" : "get", l = s[d + "Date"](), c = s[d + "Day"](), u = s[d + "Month"](), h = s[d + "FullYear"](), f = s[d + "Hours"](), g = s[d + "Minutes"](), m = s[d + "Seconds"](), p = s[d + "Milliseconds"](), v = r ? 0 : s.getTimezoneOffset(), y = { d: l, dd: i(l), ddd: o.i18n.dayNames[c], dddd: o.i18n.dayNames[c + 7], m: u + 1, mm: i(u + 1), mmm: o.i18n.monthNames[u], mmmm: o.i18n.monthNames[u + 12], yy: String(h).slice(2), yyyy: h, h: f % 12 || 12, hh: i(f % 12 || 12), H: f, HH: i(f), M: g, MM: i(g), s: m, ss: i(m), l: i(p, 3), L: i(p > 99 ? Math.round(p / 10) : p), t: f < 12 ? "a" : "p", tt: f < 12 ? "am" : "pm", T: f < 12 ? "A" : "P", TT: f < 12 ? "AM" : "PM", Z: r ? "UTC" : (String(s).match(e) || [""]).pop().replace(a, ""), o: (v > 0 ? "-" : "+") + i(100 * Math.floor(Math.abs(v) / 60) + Math.abs(v) % 60, 4), S: ["th", "st", "nd", "rd"][l % 10 > 3 ? 0 : (l % 100 - l % 10 != 10) * l % 10] }; return n.replace(t, function (t) { return t in y ? y[t] : t.slice(1, t.length - 1) }) } } }(); dateFormat.masks = { default: "ddd mmm dd yyyy HH:MM:ss", shortDate: "m/d/yy", mediumDate: "mmm d, yyyy", longDate: "mmmm d, yyyy", fullDate: "dddd, mmmm d, yyyy", shortTime: "h:MM TT", mediumTime: "h:MM:ss TT", longTime: "h:MM:ss TT Z", isoDate: "yyyy-mm-dd", isoTime: "HH:MM:ss", isoDateTime: "yyyy-mm-dd'T'HH:MM:ss", isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'" }, dateFormat.i18n = { dayNames: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], monthNames: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] }, Date.prototype.format = function (t, e) { return dateFormat(this, t, e) }, function (t) { var e = t.fn.attr; t.fn.attr = function () { var t, a, i, s; if (this[0] && 0 === arguments.length) { for (s = {}, a = (i = this[0].attributes).length, t = 0; t < a; t++)s[i[t].name.toLowerCase()] = i[t].value; return s } return e.apply(this, arguments) } }(jQuery); }, 150); });
'); return false; } /*Load Heatmap*/ if (object.find('.column').find('.heatmap').length <= 0) { object.find('.scroll-area').append(SportsNDTV.markup.heatmap.html); } var obj = object.find('.heatmap').attr('matchid', mid); SportsNDTV.initialise_Heatmap(obj); /*Load wagonwheel*/ if (object.find('.column').find('.wagonwheel').length <= 0) { object.find('.scroll-area').append(SportsNDTV.markup.wagonwheel.html); var obj = object.find('.wagonwheel:first').attr('matchid', mid); } else { var obj = object.find('.wagonwheel:first').attr({ 'matchid': mid /*, 'reload': 'true'*/ }); } if (!SI_CC.device) { object.find('.scroll-area').jScrollPane(); } else { if (object.find('.wrapper-graph').length <= 0) { object.find('.scroll-area').wrapInner('
'); var myscroll = new iScroll(object.find('.scroll-area')[0], SportsNDTV.scroller_config); object.find('.scroll-area').data('iscroll', myscroll); } } SportsNDTV.initialise_wagonwheel(obj); setTimeout(function () { var api = object.find('.scroll-area').data('jsp'); if (api) api.reinitialise(); }, 500); }, score_theme: function (score, sep, wickets) { var newscore; if (sep) sep = '/'; else sep = '/' newscore = score.runs; if (score.wickets != "10" || wickets) newscore += sep + score.wickets; return newscore; }, fetchInnings: function (data, cname) { var cont = data; var div = ''; var cname = cname; var l = cont.Innings.length; for (var i = 0; i < l; i++) { var inn = cont.Innings[i]; var team = cont.Teams[inn.Battingteam]; if (i == l - 1) { currentInn = i; } var name = team.Name_Short; if (inn.Total) { name += ' ' + SportsNDTV.score_theme({ 'runs': inn.Total, 'wickets': inn.Wickets }); } div += '
' + name + '
'; } return [div, currentInn]; }, initialise_wagonwheel: function (object, plyr, currinn, superover=0) { var data = null; if (superover == 1) { data = superover_matchdata; } else { data = matchdata; } var livecoverage = data.Matchdetail.Match.Livecoverage; if (livecoverage == "no") { object.html('
Manhattan
Data Unavailable
'); return false; } if (!data.Innings || data.Matchdetail.Status_Id == '115') { object.html('
Data Unavailable
'); return false; } var currinn = (currinn >= 0) ? currinn : object.find('.sportsndtv-grh-inntab.sportsndtv-active').index(); var newinn = object.find('.sportsndtv-grh-inntab').length < data.Innings.length; if (object.attr('reload') != 'true') { var div = ''; if (!plyr) { div = '
'; div += SportsNDTV.fetchInnings(data, "sportsndtv-fleft sportsndtv-grh-inntab")[0]; div += '
'; } div += '
'; object.html(div); //object.data('lines', []); object.removeData('lines'); } else { var div = SportsNDTV.fetchInnings(data, "sportsndtv-fleft sportsndtv-grh-inntab")[0]; object.find('.sportsndtv-grhtab').html(div); } object.find('.sportsndtv-grh-inntab').click(function () { if ($(this).hasClass('sportsndtv-active')) return false; $(this).addClass('sportsndtv-active').siblings().removeClass('sportsndtv-active'); object.attr('reload', 'false'); object.data('lines', []); loadGraph($(this).index()); }); if (!plyr) { if (!newinn) { $(object.find('.sportsndtv-grh-inntab').eq(currinn)).addClass('sportsndtv-active'); loadGraph(currinn); } else { object.attr('reload', 'false'); object.find('.sportsndtv-grh-inntab:last').addClass('sportsndtv-active'); loadGraph(data.Innings.length - 1); } } else { loadGraph(currinn, plyr); } function loadGraph(inn, plyr) { if (object.attr('reload') != 'true') { var div = '
' + offside_txt + '' + rns_txt + '
' + onside_txt + '' + rns_txt + '
'; object.find('.sportsndtv-grphara').html(div); div = '
mid onAll batsmen are considered right handed
- 1x
- 2x
- 3x
- 4x
- 6x
'; object.find('.sportsndtv-grphB1').html(div); if (plyr) object.find('.sportsndtv-allbats').empty(); } inn = inn + 1; var mid = object.attr("matchid"); var filename = mid + "_batsman_splits_" + inn; var scoredata = matchdata; if (inn == scoredata.Innings.length && !scoredata.Matchdetail.Result) { SportsNDTV.fetchData({ url: SportsNDTV.config.basepath.txtfiles, mid: mid, type: 'batsman_splits', inn: inn }, function (data) { if (!data) return false; SportsNDTV.data[filename] = data; passdata(); }); } else { if (SportsNDTV.data[filename]) { passdata(); } else { SportsNDTV.fetchData({ url: SportsNDTV.config.basepath.txtfiles, mid: mid, type: 'batsman_splits', inn: inn }, function (data) { if (!data) return false; SportsNDTV.data[filename] = data; passdata(); }); } } function passdata() { if (plyr) { var data = SportsNDTV.data[filename].Batsmen[plyr].Shots; var style = SportsNDTV.data[filename].Batsmen[plyr].Style; } else { var data = []; for (var x in SportsNDTV.data[filename].Batsmen) { data = data.concat(SportsNDTV.data[filename].Batsmen[x].Shots); } } SportsNDTV.generate_wagonwheel(object, data, object.find('.sportsndtv-wagonwheel'), style); }; } }, initialise_wagonwheel_player: function (object, plyr, currinn,superover=0) { var data = null; if (superover==1) { data = superover_matchdata; } else { data = matchdata; } var livecoverage = data.Matchdetail.Match.Livecoverage; if (livecoverage == "no") { object.html('
Manhattan
Data Unavailable
'); return false; } if (!data.Innings || data.Matchdetail.Status_Id == '115') { object.html('
Data Unavailable
'); return false; } var currinn = (currinn >= 0) ? currinn : object.find('.sportsndtv-grh-inntab.sportsndtv-active').index(); var newinn = object.find('.sportsndtv-grh-inntab').length < data.Innings.length; if (object.attr('reload') != 'true') { var div = ''; if (!plyr) { div = '
'; div += SportsNDTV.fetchInnings(data, "sportsndtv-fleft sportsndtv-grh-inntab")[0]; div += '
'; } div += '
'; object.html(div); //object.data('lines', []); object.removeData('lines'); } else { var div = SportsNDTV.fetchInnings(data, "sportsndtv-fleft sportsndtv-grh-inntab")[0]; object.find('.sportsndtv-grhtab').html(div); } object.find('.sportsndtv-grh-inntab').click(function () { if ($(this).hasClass('sportsndtv-active')) return false; $(this).addClass('sportsndtv-active').siblings().removeClass('sportsndtv-active'); //object.attr('reload', 'false'); object.data('lines', []); loadGraph($(this).index()); }); if (!plyr) { if (!newinn) { $(object.find('.sportsndtv-grh-inntab').eq(currinn)).addClass('sportsndtv-active'); loadGraph(currinn); } else { //object.attr('reload', 'false'); object.find('.sportsndtv-grh-inntab:last').addClass('sportsndtv-active'); loadGraph(data.Innings.length - 1); } } else { loadGraph(currinn, plyr); } function loadGraph(inn, plyr) { if (object.attr('reload') != 'true') { var div = '
' + offside_txt + '' + rns_txt + '
' + onside_txt + '' + rns_txt + '
'; object.find('.sportsndtv-grphara').html(div); div = '
mid onAll batsmen are considered right handed
- 1x
- 2x
- 3x
- 4x
- 6x
'; object.find('.sportsndtv-grphB1').html(div); if (plyr) object.find('.sportsndtv-allbats').empty(); } if (currinn == -1) { inn = inn + 1; } var mid = object.attr("matchid"); var filename = mid + "_batsman_splits_" + inn; var scoredata = matchdata; if (inn == scoredata.Innings.length && !scoredata.Matchdetail.Result) { SportsNDTV.fetchData({ url: SportsNDTV.config.basepath.txtfiles, mid: mid, type: 'batsman_splits', inn: inn }, function (data) { if (!data) return false; SportsNDTV.data[filename] = data; passdata(); }); } else { if (SportsNDTV.data[filename]) { passdata(); } else { SportsNDTV.fetchData({ url: SportsNDTV.config.basepath.txtfiles, mid: mid, type: 'batsman_splits', inn: inn }, function (data) { if (!data) return false; SportsNDTV.data[filename] = data; passdata(); }); } } function passdata() { if (plyr) { var data = SportsNDTV.data[filename].Batsmen[plyr].Shots; var style = SportsNDTV.data[filename].Batsmen[plyr].Style; } else { var data = []; for (var x in SportsNDTV.data[filename].Batsmen) { data = data.concat(SportsNDTV.data[filename].Batsmen[x].Shots); } } SportsNDTV.generate_wagonwheel(object, data, object.find('.sportsndtv-wagonwheel'), style); }; } scr_crd_tbB.update(); }, generate_wagonwheel: function (object, data, container, style) { if (!Raphael || !Raphael.type) return false; var spidercolors = SportsNDTV.config.spidercolors || { }; var options = {}; options.obj = container[0]; options.paper_width = container.width(); options.paper_height = container.height(); options.fradius = 112; options.sradius = 120; options.oradius = options.sradius + 9; options.fstroke = '#000000'; options.ffill = 'red'; var angle_deg = [0, 45, 90, 135, 180, 225, 270, 315, 360]; var ref_angle = [337.5, 292.5, 247.5, 202.5, 157.5, 112.5, 67.5, 22.5]; //label ref var obj = options.obj; var paper_width = options.paper_width, paper_height = options.paper_height; var ref_circle = {}; var s_radius = options.sradius; var o_radius = options.oradius; var linelength = { '1': 1.4 * s_radius / 6, '2': 2.2 * s_radius / 6, '3': 3.4 * s_radius / 6, '4': 4.4 * s_radius / 6, '5': 5.1 * s_radius / 6, '6': 5.6 * s_radius / 6 } var sector = [], sectorPoly = []; var labelcolor = SportsNDTV.config.wagonwheel && SportsNDTV.config.wagonwheel.labelcolor ? SportsNDTV.config.wagonwheel.labelcolor : '#000'; var sectorconecolor = SportsNDTV.config.wagonwheel && SportsNDTV.config.wagonwheel.sectorconecolor ? SportsNDTV.config.wagonwheel.sectorconecolor : '#999999'; var prev_data = object.data('linesData'); var prev_lines = object.data('lines'); if (object.attr('reload') != 'true') { var paper = new Raphael(obj, paper_width, paper_height); paper.customAttributes.runs = function (runs) { return runs; }; paper.customAttributes.zone = function (zone) { return zone; }; paper.customAttributes.dist = function (dist) { return dist; }; ref_circle = paper.circle(paper_width / 2, paper_height / 2, options.fradius); //field circle ref_circle.attr({ stroke: "none" }); var f_radius = ref_circle.attr('r'); var f_x = ref_circle.attr('cx'), f_y = ref_circle.attr('cy'); //to draw the sector lines sectorDrawing(f_x, f_y); object.removeData(); object.data('paper', paper); object.data('ref_circle', ref_circle); object.data('sector', sector); object.data('sectorPoly', sectorPoly); } else { ref_circle = object.data('ref_circle'); paper = object.data('paper'); sector = object.data('sector'); sectorPoly = object.data('sectorPoly'); if (sector != undefined) { for (var i = 0; i < sector.length; i++) { sector[i].remove(); sectorPoly[i].remove(); } } sector = []; sectorPoly = []; var f_radius = ref_circle.attr('r'); var f_x = ref_circle.attr('cx'), f_y = ref_circle.attr('cy'); sectorDrawing(f_x, f_y); object.data('sector', sector); object.data('sectorPoly', sectorPoly); } function sectorDrawing(f_x, f_y) { for (var i = 0; i < angle_deg.length - 1; i++) { var pstring1 = drawAngle([f_x, f_y], s_radius, angle_deg[i]); var pstring2 = drawAngle([f_x, f_y], s_radius, angle_deg[i + 1]); var line1 = paper.path(pstring1); line1.hide(); var line2 = paper.path(pstring2); line2.hide(); var point_1 = line1.getPointAtLength(f_radius); var point_2 = line1.getPointAtLength(s_radius); var point_3 = line2.getPointAtLength(s_radius); var point_4 = line2.getPointAtLength(f_radius); var sector_string = drawSectors([f_x, f_y], s_radius, f_radius, point_1, point_2, point_3, point_4, angle_deg[i], angle_deg[i + 1]); sector[i] = paper.path(sector_string).attr({ fill: '#CCCCCC', stroke: '#EDEDED', 'stroke-width': "1px" }) sector[i].text = angle_deg[i]; var sector_string1 = drawConeSector([f_x, f_y], f_radius, point_1, point_4, angle_deg[i], angle_deg[i + 1]); sectorPoly[i] = paper.path(sector_string1).attr({ fill: '#CCCCCC', opacity: 0 }); sectorPoly[i].text = angle_deg[i]; } } var stroke_set = ["#ccc", "#32b9eb", "#ff1493", "#e3cb05", "#ECC600", "#e5670f"]; var rhsRef = ["Square leg", "Fine leg", "Thirdman", "Point", "Cover", "Mid off", "Mid on", "Mid wicket"]; var lbhPos = [3, 2, 1, 0, 7, 6, 5, 4]; var initVal = "M" + f_x + "," + f_y; var length = data.length; var lines = [], linesData = [], zone_runs = [], no_of_runs = []; total_runs = 0, off_side_total = 0, on_side_total = 0; for (var i = 0; i < length; i++) { var zoneTemp = parseInt(data[i].Zone); if (data[i].Zone == 3 || data[i].Zone == 4 || data[i].Zone == 5 || data[i].Zone == 6) { off_side_total += (parseInt(data[i].Runs) || 0); } else { on_side_total += (parseInt(data[i].Runs) || 0); } var runsTem = parseInt(data[i].Runs); var zoneTem = parseInt(data[i].Zone); if (zone_runs[zoneTem - 1] == undefined) zone_runs[zoneTem - 1] = 0; zone_runs[zoneTem - 1] += runsTem; if (no_of_runs[runsTem - 1] == undefined) no_of_runs[runsTem - 1] = 0; no_of_runs[runsTem - 1]++; if (style == undefined || style == "RHB") { lines[i] = drawRuns([f_x, f_y], linelength[data[i].Distance], 360 - data[i].Angle); } else { var angleVal = 360 - data[i].Angle; if (angleVal <= 180) { lines[i] = drawRuns([f_x, f_y], linelength[data[i].Distance], 360 - (angleVal - 180)); } else { lines[i] = drawRuns([f_x, f_y], linelength[data[i].Distance], (180 - angleVal)); } } } if (object.attr('reload') != 'true') { animateRuns(1); } else { prev_lines = object.data('lines'); prev_data = object.data('linesData'); animateUpdateFunction(); } function animateUpdateFunction() { var count = 0; for (var j = 0; j < lines.length; j++) { var drawn = false; if (prev_lines) { for (var k = 0; k < prev_lines.length; k++) { if (lines[j] == prev_lines[k]) { //prev_data[k].remove(); linesData[j] = paper.path(lines[j]).attr({ 'stroke': stroke_set[parseInt(data[j].Runs) - 1], 'stroke-width': "1.5px", 'opacity': 1, 'runs': data[j].Runs, 'zone': data[j].Zone, 'dist': data[j].Distance }); drawn = true; count++; break; } } } if (!drawn) linesData[j] = paper.path(initVal).attr({ 'stroke': stroke_set[parseInt(data[j].Runs) - 1], 'stroke-width': "1.5px", 'opacity': 1, 'runs': data[j].Runs, 'zone': data[j].Zone, 'dist': data[j].Distance }).animate({ path: lines[j] }, 500); } if (prev_data) { for (var k = 0; k < prev_data.length; k++) { prev_data[k].remove(); } } object.removeData('lines'); object.removeData('linesData'); object.data('lines', lines); object.data('linesData', linesData); if (sector != undefined) { for (var i = 0; i < sector.length; i++) { if (sector[i] != undefined && sectorPoly[i] != undefined) { sector[i].unmouseover(); sectorPoly[i].unmouseover(); sector[i].unmouseout(); sectorPoly[i].unmouseout(); } } } mouseOverInit(); }; function animateRuns(count) { if (count > 8) { object.data('lines', lines); object.data('linesData', linesData); mouseOverInit(); //object.attr('reload', 'true'); return; } for (var j = 0; j < length; j++) { if (count == parseInt(data[j].Zone)) { linesData[j] = paper.path(initVal).attr({ 'stroke': stroke_set[parseInt(data[j].Runs) - 1], 'stroke-width': "1.5px", 'opacity': 1, 'runs': data[j].Runs, 'zone': data[j].Zone, 'dist': data[j].Distance }).animate({ path: lines[j] }, 300); } } count++; setTimeout(function () { animateRuns(count); }, 200); }; function mouseOverInit() { for (var i = 0; i < angle_deg.length - 1; i++) { sectorPoly[i].toFront(); selectSector(i); selectConeSector(i); } runsMouseOver(); } function runsMouseOver() { object.find('.sportsndtv-grphB3 ul').children().mouseover(function () { var length = data.length; var selecRuns = $(this).attr('runs'); for (var i = 0; i < length; i++) { var runsTemp = data[i].Runs; if (runsTemp != selecRuns) linesData[i].hide(); } }); object.find('.sportsndtv-grphB3 ul').children().mouseout(function () { showZone(); }); } function selectSector(i) { if (sector != undefined && sector[i] != undefined) { try { sector[i].mouseover(function () { this.attr({ "fill": sectorconecolor }); HideZone(this.text); loadRunsData(false, this.text); showHidePosition(this.text); return; }).mouseout(function () { this.attr({ "fill": "#CCCCCC" }); object.find('.sportsndtv-fieldpos').html(alldirection_txt); showZone(); loadRunsData(true); return; }); } catch (err) { } } } function selectConeSector(i) { if (sectorPoly != undefined && sectorPoly[i] != undefined) { try { sectorPoly[i].mouseover(function () { sector[i].attr({ "fill": sectorconecolor }); HideZone(this.text); loadRunsData(false, this.text); showHidePosition(this.text); return; }).mouseout(function () { sector[i].attr({ "fill": "#CCCCCC" }); object.find('.sportsndtv-fieldpos').html(alldirection_txt); showZone(); loadRunsData(true); return; }); } catch (err) { } } } function showHidePosition(position) { if (style == undefined || style == "RHB") { var label = ((360 - position) / 45) - 1; } else { var label = lbhPos[((360 - position) / 45) - 1]; } object.find('.sportsndtv-fieldpos').html(rhsRef[label]); } function showZone() { var length = data.length; for (var i = 0; i < length; i++) { linesData[i].show(); } } function HideZone(position) { if (style == undefined || style == "RHB") var label = ((360 - position) / 45) - 1; else var label = lbhPos[((360 - position) / 45) - 1]; var length = data.length; for (var i = 0; i < length; i++) { var temp_zone = data[i].Zone - 1; if (label != temp_zone) { linesData[i].hide(); } } } //Offside Score & Onside Score offOnScores(); function offOnScores() { if (!style || style == 'RHB') { object.find('#off_side').html(off_side_total); object.find('#on_side').html(on_side_total); } else { object.find('#on_side').html(off_side_total); object.find('#off_side').html(on_side_total); object.find('.sportsndtv-onsidetxt').html(offside_txt); object.find('.sportsndtv-offsidetxt').html(onside_txt); } } var label_text = []; if (object.attr('reload') == 'true') { label_text = object.data('label_text'); } for (var i = 0; i < ref_angle.length; i++) { var ref_string = drawAngle([f_x, f_y], o_radius, ref_angle[i]); var ref_path = paper.path(ref_string); ref_path.hide(); var outer_label = ref_path.getPointAtLength(o_radius); var rotate_angle = ref_angle[i] + 90; if (zone_runs[i] == undefined) zone_runs[i] = 0; drawLabels(outer_label, zone_runs[i], rotate_angle, i); } function drawLabels(outer_label, sum_zone, rotate_angle, i) { if (style != undefined && style != "RHB") { if (zone_runs[lbhPos[i]] == undefined) zone_runs[lbhPos[i]] = 0; sum_zone = zone_runs[lbhPos[i]]; } if (object.attr('reload') != 'true') { label_text[i] = paper.text(outer_label.x, outer_label.y, sum_zone); label_text[i].attr({ 'stroke-width': '0.2px', 'stroke': labelcolor, 'fill': labelcolor, 'font-family': 'Arial Narrow' }); label_text[i].attr('font-size', '12px'); label_text[i].transform("r" + rotate_angle); label_text[i].toFront(); object.data('label_text', label_text); } else { label_text[i].attr({ text: sum_zone }); } } object.data('label_text', label_text); object.find('.sportsndtv-fieldpos').html(alldirection_txt); loadRunsData(true); function loadRunsData(isTotal, position) { var length = data.length; var loadRunsArr = []; if (isTotal) { for (var i = 0; i < length; i++) { var tempRun = parseInt(data[i].Runs); if (loadRunsArr[tempRun - 1] == undefined) loadRunsArr[tempRun - 1] = 0; loadRunsArr[tempRun - 1]++; } } else { if (style == undefined || style == "RHB") var label = ((360 - position) / 45) - 1; else var label = lbhPos[((360 - position) / 45) - 1]; for (var i = 0; i < length; i++) { var tempRun = parseInt(data[i].Runs); var temp_zone = data[i].Zone - 1; if (label == temp_zone) { if (loadRunsArr[tempRun - 1] == undefined) loadRunsArr[tempRun - 1] = 0; loadRunsArr[tempRun - 1]++; } } } for (var i = 1; i <= 6; i++) { if (loadRunsArr[i - 1] == undefined) loadRunsArr[i - 1] = 0; object.find('.runs' + i).html(loadRunsArr[i - 1]); } delete loadRunsArr; } function drawSectors(center, s_radius, f_radius, point_1, point_2, point_3, point_4, firstAngle, secondAngle) { var sector_path = ""; sector_path = "M" + point_1.x + "," + point_1.y + "L" + point_2.x + "," + point_2.y + " "; sector_path += arc(center, s_radius, firstAngle, secondAngle) + " "; sector_path += arc(center, f_radius, secondAngle, firstAngle); return sector_path; } function drawConeSector(center, f_radius, point_1, point_2, firstAngle, secondAngle) { var sector_path = ""; sector_path = "M" + center[0] + "," + center[1] + "L" + point_1.x + "," + point_1.y + " "; sector_path += arc(center, f_radius, firstAngle, secondAngle); sector_path += "M" + point_2.x + "," + point_2.y + "L" + center[0] + "," + center[1] + " "; return sector_path; } function arc(center, radius, startAngle, endAngle) { angle = startAngle; var path = ''; coords = toCoords(center, radius, angle); while (angle <= endAngle) { coords = toCoords(center, radius, angle); path += coords[0] + "," + coords[1] + " "; angle += 1; } while (angle >= endAngle) { coords = toCoords(center, radius, angle); path += coords[0] + "," + coords[1] + " "; angle -= 1; } return path; } function drawAngle(center, radius, endAngle) { var path = ""; angle = endAngle; coords = toCoords(center, radius, angle); path = "M " + center[0] + " " + center[1]; path += " L " + coords[0] + " " + coords[1]; return path; } function toCoords(center, radius, angle) { var radians = (angle / 180) * Math.PI; var x = center[0] + Math.cos(radians) * radius; var y = center[1] + Math.sin(radians) * radius; return [x, y]; } function drawRuns(center, radius, endAngle) { angle = endAngle; coords = toCoords(center, radius, angle); path = "M " + center[0] + " " + center[1]; path += " L " + coords[0] + " " + coords[1]; return path; } }, initialise_Heatmap: function (main, plyr, currinn) { var data = matchdata; var livecoverage = data.Matchdetail.Match.Livecoverage; if (!data.Innings || data.Matchdetail.Status_Id == '115') { main.html('
Data unavailable at the moment
'); return false; } var currinn = (currinn >= 0) ? currinn : main.find('.sportsndtv-grh-inntab.sportsndtv-active').index(); var newinn = main.find('.sportsndtv-grh-inntab').length < data.Innings.length; var div = ''; if (!plyr) { div = '
'; div += SportsNDTV.fetchInnings(data, "sportsndtv-fleft sportsndtv-grh-inntab")[0]; div += '
'; } if (main.find('.sportsndtv-grhtab').length > 0) { main.find('.sportsndtv-grhtab').replaceWith(div); } else { main.html(div); } div = '
'; if (main.find('.heatmap_container').length <= 0) { main.append(div); } main.find('.sportsndtv-grh-inntab').click(function () { if ($(this).hasClass('sportsndtv-active')) return false; $(this).addClass('sportsndtv-active').siblings().removeClass('sportsndtv-active'); loadGraph($(this).index()); }); if (!plyr) { if (!newinn) { $(main.find('.sportsndtv-grh-inntab').eq(currinn)).addClass('sportsndtv-active'); loadGraph(currinn); } else { main.find('.sportsndtv-grh-inntab:last').addClass('sportsndtv-active'); loadGraph(data.Innings.length - 1); } } else { loadGraph(currinn, plyr); } function loadGraph(inn, plyr) { if (!SI_CC.isCanvasSupported) { $(main).find('.heatmap_container').html('
Canvas is not compatible with this browser. Please try a different browser.
'); return false; } if (main.find('.heat-map').length <= 0) { var div = '
OffMidLegFullGoodShortHalf
Overall
Balls
' + rns_txt + '
Wickets
All batsmen are considered right handed
'; main.find('.heatmap_container').html(div); var shadow = false; } else { var shadow = true; } inn = inn + 1; var mid = main.attr("matchid"); var filename = mid + "_bowler_splits_" + inn; var scoredata = matchdata; if (inn == scoredata.Innings.length && !scoredata.Matchdetail.Result) { if (plyr && SportsNDTV.data[filename]) { // For POP-UP players passdata(); } else { SportsNDTV.fetchData({ url: SportsNDTV.config.basepath.txtfiles, mid: mid, type: 'bowler_splits', inn: inn }, function (data) { if (!data) return false; SportsNDTV.data[filename] = data; passdata(); }); } } else { if (SportsNDTV.data[filename]) { passdata(); } else { SportsNDTV.fetchData({ url: SportsNDTV.config.basepath.txtfiles, mid: mid, type: 'bowler_splits', inn: inn }, function (data) { if (!data) return false; SportsNDTV.data[filename] = data; passdata(); }); } } function passdata() { if (plyr) var data = SportsNDTV.data[filename].Bowlers[plyr].Pitches; else { var data = []; for (var x in SportsNDTV.data[filename].Bowlers) { data = data.concat(SportsNDTV.data[filename].Bowlers[x].Pitches); } } SportsNDTV.generate_Heatmap(main, data, main.find('.heat-map'), shadow); }; } }, generate_Heatmap: function (main, data, container, shadow) { var scale = 5; var width = 40 * scale; var height = 36 * scale; if (!shadow) { $(container).html('
'); var canvas = $(container).find('#heatmap')[0]; } else { $(container).append('
'); var canvas = $(container).find('#shadowheatmap')[0]; } ctx = canvas.getContext("2d"); /* SI_CC.drawCircle(ctx, 9 * scale, (16 - 16) * scale, 4, 'red', 'fill'); SI_CC.drawCircle(ctx, 30 * scale, (16 - 16) * scale, 4, 'red', 'fill'); SI_CC.drawCircle(ctx, 2 * scale, (52 - 16) * scale, 4, 'red', 'fill'); SI_CC.drawCircle(ctx, 37 * scale, (52 - 16) * scale, 4, 'red', 'fill');*/ var length = { "good": { balls: 0, runs: 0, wickets: 0 }, "full": { balls: 0, runs: 0, wickets: 0 }, "short": { balls: 0, runs: 0, wickets: 0 } }; var line = { "off": { balls: 0, runs: 0, wickets: 0 }, "mid": { balls: 0, runs: 0, wickets: 0 }, "leg": { balls: 0, runs: 0, wickets: 0 } }; var overall = { balls: 0, runs: 0, wickets: 0 }; if (!SportsNDTV.polylength) { SportsNDTV.polylength = { "full": [{ x: 9, y: 0 }, { x: 30, y: 0 }, { x: 33, y: 13 }, { x: 6, y: 13 }], "good": [{ x: 6, y: 14 }, { x: 33, y: 14 }, { x: 38, y: 20 }, { x: 4, y: 20 }], "short": [{ x: 4, y: 21 }, { x: 38, y: 21 }, { x: 40, y: 36 }, { x: 0, y: 36 }] } } if (!SportsNDTV.polyline) { SportsNDTV.polyline = { "off": [{ x: 10, y: 0 }, { x: 18.9, y: 0 }, { x: 18, y: 36 }, { x: 2, y: 36 }], "mid": [{ x: 19, y: 0 }, { x: 21.5, y: 0 }, { x: 22.3, y: 36 }, { x: 18.1, y: 36 }], "leg": [{ x: 21.6, y: 0 }, { x: 30.5, y: 0 }, { x: 38, y: 36 }, { x: 22.4, y: 36 }] } } var hmp = new SI_CC.heatmapApp; hmp.initialize(canvas, 38 * scale, 36 * scale); var l = data.length; for (var i = 0; i < l; i++) { var coord = data[i].XY; coord = coord.split(','); if (coord[0] != 0 && coord[1] != 0) { var ptx = parseInt(coord[1]) + 1; var pty = parseInt(coord[0]) - 16; var pt = { x: ptx, y: pty }; var runs = parseInt(data[i].Runs); var currlength = marklength(pt); var currline = markline(pt); overall.balls += 1; overall.runs += runs; if (data[i].Iswicket) { //SI_CC.drawCircle(ctx, ptx * scale, pty * scale, 2, 'black', 'fill'); /*ctx.beginPath(); ctx.arc(ptx * scale, pty * scale,2,0,360,true); ctx.fillStyle = "#000"; ctx.fill(); ctx.closePath();*/ overall.wickets += 1; } if (!currlength || !currline) continue; if (data[i].Iswicket) { line[currline].wickets += 1; length[currlength].wickets += 1; } line[currline].balls += 1; length[currlength].balls += 1; line[currline].runs += runs; length[currlength].runs += runs; hmp.hmd(ptx * scale, pty * scale); } else { var runs = parseInt(data[i].Runs); overall.balls += 1; overall.runs += runs; if (data[i].Iswicket) { overall.wickets += 1; } } } if (main.find('#shadowheatmap').length > 0) { main.find('#heatmap').remove(); main.find('#shadowheatmap').attr('id', 'heatmap'); } function reset(obj, title) { //main.find('.rightwgt').replaceWith('
' + title + '
Balls
' + obj.balls + '
Runs
' + obj.runs + '
Wickets
' + obj.wickets + '
'); main.find('.rightwgt').replaceWith('
' + title + '
- Balls' + obj.balls + '
- ' + rns_txt + '' + obj.runs + '
- Wickets' + obj.wickets + '
All batsmen are considered right handed
'); } reset(overall, 'Overall'); main.data('line', line); main.data('length', length); main.find('.line-bowling').mouseover(function () { var pos = $(this).attr('pos'); var length = main.data('length'); var line = main.data('line'); if ($(this).attr('type') == 'line') { var obj = line[pos]; } else if ($(this).attr('type') == 'len') { var obj = length[pos]; } reset(obj, $(this).attr('title')); }).mouseout(function () { reset(overall, 'Overall'); }); /*for iphone support*/ $('.heatmap_graph').bind('click', function () { // do nothing.. only binding works for the iphone as a mouseout event to remove the popup }); function marklength(pt) { for (var x in SportsNDTV.polylength) { if (SI_CC.isPointInPoly(SportsNDTV.polylength[x], pt)) { return x; break; } } } function markline(pt) { for (var x in SportsNDTV.polyline) { if (SI_CC.isPointInPoly(SportsNDTV.polyline[x], pt)) return x; } } } }; })($);}, 150); }); var options_arr = {}; options_arr.cc = "ndtv"; options_arr.url = "https://sports.ndtv.com/sportzdeck/"; HS_Array.functionArray.push(function () { setTimeout(function () { SportsNDTV.initialise(options_arr);}, 150); }); HS_Array.functionArray.push(function () { setTimeout(function () {load_matchdata('wipk03302017183163') }, 150); //$(document).ready(function () { //}); }); //setInterval(load_matchdata, 30000); function load_matchdata() { var matchid = 'wipk03302017183163'; var d = new Date(); url = 'https://sdata.ndtv.com/sportz/cricket/xml/wipk03302017183163.json?t=' + d.getTime(); var newUrl = url; $.ajax({ url: newUrl, cache: true, dataType: "json", success: function (data) { matchdata = data; SportsNDTV.initialise_wagonwheel($("#spider_innings")); SportsNDTV.initialise_Heatmap($("#heatmap_innings")); return data; }, error: function (data) { return false; } }); }
- PAK 132/10 (20.0)
- WI 129/8 (20.0)
| Batsman | R | B | 4s | 6s | SR |
|---|---|---|---|---|---|
| Kamran Akmal | 5 | 0 | 0 | 0 | |
|
| |||||
| Ahmed Shehzad | 14 | 15 | 1 | 0 | 93.33 |
|
| |||||
| Babar Azam | 27 | 28 | 4 | 0 | 96.42 |
|
| |||||
| Shoaib Malik | 28 | 20 | 3 | 1 | 140 |
|
| |||||
| Fakhar Zaman | 5 | 8 | 0 | 0 | 62.5 |
|
| |||||
| Sarfaraz Ahmed C Wk | 12 | 17 | 1 | 0 | 70.58 |
|
| |||||
| Imad Wasim | 4 | 4 | 1 | 0 | 100 |
|
| |||||
| Sohail Tanvir | 4 | 2 | 1 | 0 | 200 |
|
| |||||
| Shadab Khan | 13 | 10 | 1 | 0 | 130 |
|
| |||||
| Wahab Riaz | 24 | 10 | 1 | 2 | 240 |
|
| |||||
| Hasan Ali | 0 | 1 | 0 | 0 | 0 |
|
| |||||
| Extras | 1 Runs (wd: 1) | ||||
| Total | 132/10 20.0 (RR: 6.6) | ||||
Fall Of Wickets:
-
0/1
0.5 ov
Kamran Akmal
-
41/2
7.5 ov
Babar Azam
-
43/3
8.3 ov
Ahmed Shehzad
-
51/4
10.4 ov
Fakhar Zaman
-
87/5
14.5 ov
Shoaib Malik
-
87/6
15.4 ov
Sarfaraz Ahmed
-
91/7
16 ov
Sohail Tanvir
-
95/8
16.3 ov
Imad Wasim
-
131/9
19.4 ov
Wahab Riaz
-
132/10
20 ov
Shadab Khan
| Bowling | O | M | R | W | Econ |
|---|---|---|---|---|---|
| Samuel Badree | 4 | 0 | 14 | 2 | 3.5 |
| Jason Holder | 4 | 0 | 32 | 0 | 8 |
| Kesrick Williams | 4 | 1 | 27 | 1 | 6.75 |
| Sunil Narine | 4 | 0 | 22 | 3 | 5.5 |
| Carlos Brathwaite | 4 | 0 | 37 | 3 | 9.25 |
| Batsman | R | B | 4s | 6s | SR |
|---|---|---|---|---|---|
| Evin Lewis | 3 | 6 | 0 | 0 | 50 |
|
| |||||
| Chadwick Walton Wk | 21 | 25 | 2 | 0 | 84 |
|
| |||||
| Marlon Samuels | 44 | 35 | 5 | 2 | 125.71 |
|
| |||||
| Lendl Simmons | 1 | 2 | 0 | 0 | 50 |
|
| |||||
| Kieron Pollard | 3 | 4 | 0 | 0 | 75 |
|
| |||||
| Rovman Powell | 1 | 0 | 0 | 0 | |
|
| |||||
| Carlos Brathwaite C | 15 | 23 | 1 | 0 | 65.21 |
|
| |||||
| Jason Holder * | 26 | 17 | 2 | 1 | 152.94 |
|
| |||||
| Sunil Narine | 9 | 7 | 2 | 0 | 128.57 |
|
| |||||
| Samuel Badree | 0 | 0 | 0 | 0 | |
|
| |||||
| Extras | 7 Runs (wd: 7) | ||||
| Total | 129/8 20.0 (RR: 6.45) | ||||
Did Not Bat
Kesrick Williams
Advertisement
Fall Of Wickets:
-
10/1
1.4 ov
Evin Lewis
-
60/2
8.1 ov
Chadwick Walton
-
65/3
9.1 ov
Lendl Simmons
-
76/4
10.3 ov
Kieron Pollard
-
76/5
10.4 ov
Rovman Powell
-
81/6
13 ov
Marlon Samuels
-
114/7
18.2 ov
Carlos Brathwaite
-
128/8
19.5 ov
Sunil Narine
| Bowling | O | M | R | W | Econ |
|---|---|---|---|---|---|
| Imad Wasim | 4 | 0 | 28 | 0 | 7 |
| Sohail Tanvir | 4 | 0 | 29 | 0 | 7.25 |
| Hasan Ali * | 4 | 0 | 35 | 1 | 8.75 |
| Wahab Riaz | 4 | 0 | 23 | 1 | 5.75 |
| Shadab Khan | 4 | 1 | 14 | 4 | 3.5 |