 hockeydata=((function(){ if(typeof jQuery==="undefined") throw new Error("jQuery is required to run hockeydata."); if(typeof hockeydata !== "undefined") return hockeydata; function HockeyDataLibrary(){ var initialized=false; var initializationQueue=[]; this.extend=function(fn, path, name){ if(!(name in path)) path[name]=fn; }; this.initialize=function(){ if(initialized) return false; if(initializationQueue.length) for(var i=0; i < initializationQueue.length; i++) initializationQueue[i](); initialized=true; return true; }; this.enqueue=function(item){ if(initialized) item(); else initializationQueue.push(item); }; } return new HockeyDataLibrary(); })()); jQuery(function(){ hockeydata.initialize(); }); ((function(){ function InternationalizationLibrary(){} var translations={}; InternationalizationLibrary.addTranslations=function(newTranslations){ jQuery.extend(true, translations, newTranslations); }; InternationalizationLibrary.getTranslations=function(){ return translations; }; InternationalizationLibrary.translate=function(e, context){ if(e in translations){ if(context){ if(jQuery.isPlainObject(translations[e]) && (context in translations[e])) e=translations[e][context]; } else e=translations[e]; } return e; }; InternationalizationLibrary.format=function(e){ return e; }; hockeydata.extend(InternationalizationLibrary, hockeydata, "i18n"); })()); ((function(){ var parameters=null; function UtilityLibrary(){ } UtilityLibrary.isString=function(a){ return (typeof a==="string"); }; UtilityLibrary.isNumeric=function(a){ return isFinite(String(a).trim() || NaN); }; UtilityLibrary.isArray=function(a){ return (Object.prototype.toString.call(a)==="[object Array]"); }; UtilityLibrary.sprintf=function(text, args){ var i; if(UtilityLibrary.isArray(args)){ for(i=0; i < args.length; i++) text=text.replace(/%s/, args[i]); } else { for(i=1; i < arguments.length; i++) text=text.replace(/%s/, arguments[i]); } return text; }; UtilityLibrary.toFixed=function(value, fractionalDigits){ var numericValue=Number(value); if(!hockeydata.util.isNumeric(numericValue)) numericValue=0; return numericValue.toFixed(fractionalDigits); }; UtilityLibrary.formatTime=function(value){ var numericValue=Number(value); if(!hockeydata.util.isNumeric(numericValue)) numericValue=0; var minutes=Math.floor(numericValue / 60); var seconds=numericValue - minutes * 60; return (minutes < 10 ? "0" : "") + minutes + ":" + (seconds < 10 ? "0" : "") + seconds; }; UtilityLibrary.getParameter=function(paramerName){ if(!parameters){ parameters={}; var searchParameters=location.search.length ? location.search.substring(1).split("&") : []; for(var i=0; i < searchParameters.length; i++){ var parameter=searchParameters[i].split("="); parameters[parameter[0]]=parameter.length===2 ? parameter[1] : null; } } if(paramerName in parameters) return parameters[paramerName]; return null; }; UtilityLibrary.getScreenResolution=function(){ return screen.width + "x" + screen.height; }; UtilityLibrary.getLeague=function(sport, widget){ return { "americanfootball": "fffa", "icehockey": "ebel" }[sport]; }; UtilityLibrary.addLeadingZeros=function(number, maxLength){ number=String(Number(number)); maxLength=maxLength || 2; while ( number.length < maxLength ) number="0" + number; return number; }; UtilityLibrary.getPlayerLicenseInfo=function(jsonData, noHtml){ try { jsonData=JSON.parse(jsonData); } catch(e){} if(!jQuery.isPlainObject(jsonData) || !("licenseInfo" in jsonData) || !jsonData["licenseInfo"] || !jsonData["licenseInfo"].length) return ""; var ret=""; for(var i=0; i < jsonData["licenseInfo"].length; i++) ret += UtilityLibrary.coloredLabel(jsonData["licenseInfo"][i], noHtml); return ret; }; UtilityLibrary.coloredLabel=function(str, noHtml){ if(!str) return ""; var labels=[ "danger", "info", "warning", "primary", "default", "success" ]; var sum=0; for(var i=0; i < str.length; i++) sum += str.charCodeAt(i); return (" " + (noHtml ? "[" : ("<span class='-hd-label -hd-label-" + (labels[sum % labels.length]) + "'>")) + str + (noHtml ? "]" : "</span>")); }; UtilityLibrary.getCountryList=function( sortBy ){ sortBy=sortBy || 'title'; var countries=[ { 'ISO_3166-1_alpha-2': 'AF', 'ISO_3166-1_alpha-3': 'AFG', 'Olympic-Code': 'AFG', 'title': hockeydata.i18n.translate( 'Afghanistan' ) }, { 'ISO_3166-1_alpha-2': 'AX', 'ISO_3166-1_alpha-3': 'ALA', 'Olympic-Code': 'ALA', 'title': hockeydata.i18n.translate( 'Åland Islands' ) }, { 'ISO_3166-1_alpha-2': 'AL', 'ISO_3166-1_alpha-3': 'ALB', 'Olympic-Code': 'ALB', 'title': hockeydata.i18n.translate( 'Albania' ) }, { 'ISO_3166-1_alpha-2': 'DZ', 'ISO_3166-1_alpha-3': 'DZA', 'Olympic-Code': 'ALG', 'title': hockeydata.i18n.translate( 'Algeria' ) }, { 'ISO_3166-1_alpha-2': 'AS', 'ISO_3166-1_alpha-3': 'ASM', 'Olympic-Code': 'ASA', 'title': hockeydata.i18n.translate( 'American Samoa' ) }, { 'ISO_3166-1_alpha-2': 'AD', 'ISO_3166-1_alpha-3': 'AND', 'Olympic-Code': 'AND', 'title': hockeydata.i18n.translate( 'Andorra' ) }, { 'ISO_3166-1_alpha-2': 'AO', 'ISO_3166-1_alpha-3': 'AGO', 'Olympic-Code': 'ANG', 'title': hockeydata.i18n.translate( 'Angola' ) }, { 'ISO_3166-1_alpha-2': 'AI', 'ISO_3166-1_alpha-3': 'AIA', 'Olympic-Code': 'AIA', 'title': hockeydata.i18n.translate( 'Anguilla' ) }, { 'ISO_3166-1_alpha-2': 'AQ', 'ISO_3166-1_alpha-3': 'ATA', 'Olympic-Code': 'ATA', 'title': hockeydata.i18n.translate( 'Antarctica' ) }, { 'ISO_3166-1_alpha-2': 'AG', 'ISO_3166-1_alpha-3': 'ATG', 'Olympic-Code': 'ANT', 'title': hockeydata.i18n.translate( 'Antigua and Barbuda' ) }, { 'ISO_3166-1_alpha-2': 'AR', 'ISO_3166-1_alpha-3': 'ARG', 'Olympic-Code': 'ARG', 'title': hockeydata.i18n.translate( 'Argentina' ) }, { 'ISO_3166-1_alpha-2': 'AM', 'ISO_3166-1_alpha-3': 'ARM', 'Olympic-Code': 'ARM', 'title': hockeydata.i18n.translate( 'Armenia' ) }, { 'ISO_3166-1_alpha-2': 'AW', 'ISO_3166-1_alpha-3': 'ABW', 'Olympic-Code': 'ARU', 'title': hockeydata.i18n.translate( 'Aruba' ) }, { 'ISO_3166-1_alpha-2': 'AU', 'ISO_3166-1_alpha-3': 'AUS', 'Olympic-Code': 'AUS', 'title': hockeydata.i18n.translate( 'Australia' ) }, { 'ISO_3166-1_alpha-2': 'AT', 'ISO_3166-1_alpha-3': 'AUT', 'Olympic-Code': 'AUT', 'title': hockeydata.i18n.translate( 'Austria' ) }, { 'ISO_3166-1_alpha-2': 'AZ', 'ISO_3166-1_alpha-3': 'AZE', 'Olympic-Code': 'AZE', 'title': hockeydata.i18n.translate( 'Azerbaijan' ) }, { 'ISO_3166-1_alpha-2': 'BS', 'ISO_3166-1_alpha-3': 'BHS', 'Olympic-Code': 'BAH', 'title': hockeydata.i18n.translate( 'Bahamas' ) }, { 'ISO_3166-1_alpha-2': 'BH', 'ISO_3166-1_alpha-3': 'BHR', 'Olympic-Code': 'BRN', 'title': hockeydata.i18n.translate( 'Bahrain' ) }, { 'ISO_3166-1_alpha-2': 'BD', 'ISO_3166-1_alpha-3': 'BGD', 'Olympic-Code': 'BAN', 'title': hockeydata.i18n.translate( 'Bangladesh' ) }, { 'ISO_3166-1_alpha-2': 'BB', 'ISO_3166-1_alpha-3': 'BRB', 'Olympic-Code': 'BAR', 'title': hockeydata.i18n.translate( 'Barbados' ) }, { 'ISO_3166-1_alpha-2': 'BY', 'ISO_3166-1_alpha-3': 'BLR', 'Olympic-Code': 'BLR', 'title': hockeydata.i18n.translate( 'Belarus' ) }, { 'ISO_3166-1_alpha-2': 'BE', 'ISO_3166-1_alpha-3': 'BEL', 'Olympic-Code': 'BEL', 'title': hockeydata.i18n.translate( 'Belgium' ) }, { 'ISO_3166-1_alpha-2': 'BZ', 'ISO_3166-1_alpha-3': 'BLZ', 'Olympic-Code': 'BIZ', 'title': hockeydata.i18n.translate( 'Belize' ) }, { 'ISO_3166-1_alpha-2': 'BJ', 'ISO_3166-1_alpha-3': 'BEN', 'Olympic-Code': 'BEN', 'title': hockeydata.i18n.translate( 'Benin' ) }, { 'ISO_3166-1_alpha-2': 'BM', 'ISO_3166-1_alpha-3': 'BMU', 'Olympic-Code': 'BER', 'title': hockeydata.i18n.translate( 'Bermuda' ) }, { 'ISO_3166-1_alpha-2': 'BT', 'ISO_3166-1_alpha-3': 'BTN', 'Olympic-Code': 'BHU', 'title': hockeydata.i18n.translate( 'Bhutan' ) }, { 'ISO_3166-1_alpha-2': 'BO', 'ISO_3166-1_alpha-3': 'BOL', 'Olympic-Code': 'BOL', 'title': hockeydata.i18n.translate( 'Bolivia (Plurinational State of)' ) }, { 'ISO_3166-1_alpha-2': 'BQ', 'ISO_3166-1_alpha-3': 'BES', 'Olympic-Code': 'BES', 'title': hockeydata.i18n.translate( 'Bonaire, Sint Eustatius and Saba' ) }, { 'ISO_3166-1_alpha-2': 'BA', 'ISO_3166-1_alpha-3': 'BIH', 'Olympic-Code': 'BIH', 'title': hockeydata.i18n.translate( 'Bosnia and Herzegovina' ) }, { 'ISO_3166-1_alpha-2': 'BW', 'ISO_3166-1_alpha-3': 'BWA', 'Olympic-Code': 'BOT', 'title': hockeydata.i18n.translate( 'Botswana' ) }, { 'ISO_3166-1_alpha-2': 'BV', 'ISO_3166-1_alpha-3': 'BVT', 'Olympic-Code': 'BVT', 'title': hockeydata.i18n.translate( 'Bouvet Island' ) }, { 'ISO_3166-1_alpha-2': 'BR', 'ISO_3166-1_alpha-3': 'BRA', 'Olympic-Code': 'BRA', 'title': hockeydata.i18n.translate( 'Brazil' ) }, { 'ISO_3166-1_alpha-2': 'IO', 'ISO_3166-1_alpha-3': 'IOT', 'Olympic-Code': 'IOT', 'title': hockeydata.i18n.translate( 'British Indian Ocean Territory' ) }, { 'ISO_3166-1_alpha-2': 'BN', 'ISO_3166-1_alpha-3': 'BRN', 'Olympic-Code': 'BRU', 'title': hockeydata.i18n.translate( 'Brunei Darussalam' ) }, { 'ISO_3166-1_alpha-2': 'BG', 'ISO_3166-1_alpha-3': 'BGR', 'Olympic-Code': 'BUL', 'title': hockeydata.i18n.translate( 'Bulgaria' ) }, { 'ISO_3166-1_alpha-2': 'BF', 'ISO_3166-1_alpha-3': 'BFA', 'Olympic-Code': 'BUR', 'title': hockeydata.i18n.translate( 'Burkina Faso' ) }, { 'ISO_3166-1_alpha-2': 'BI', 'ISO_3166-1_alpha-3': 'BDI', 'Olympic-Code': 'BDI', 'title': hockeydata.i18n.translate( 'Burundi' ) }, { 'ISO_3166-1_alpha-2': 'CV', 'ISO_3166-1_alpha-3': 'CPV', 'Olympic-Code': 'CPV', 'title': hockeydata.i18n.translate( 'Cabo Verde' ) }, { 'ISO_3166-1_alpha-2': 'KH', 'ISO_3166-1_alpha-3': 'KHM', 'Olympic-Code': 'CAM', 'title': hockeydata.i18n.translate( 'Cambodia' ) }, { 'ISO_3166-1_alpha-2': 'CM', 'ISO_3166-1_alpha-3': 'CMR', 'Olympic-Code': 'CMR', 'title': hockeydata.i18n.translate( 'Cameroon' ) }, { 'ISO_3166-1_alpha-2': 'CA', 'ISO_3166-1_alpha-3': 'CAN', 'Olympic-Code': 'CAN', 'title': hockeydata.i18n.translate( 'Canada' ) }, { 'ISO_3166-1_alpha-2': 'KY', 'ISO_3166-1_alpha-3': 'CYM', 'Olympic-Code': 'CAY', 'title': hockeydata.i18n.translate( 'Cayman Islands' ) }, { 'ISO_3166-1_alpha-2': 'CF', 'ISO_3166-1_alpha-3': 'CAF', 'Olympic-Code': 'CAF', 'title': hockeydata.i18n.translate( 'Central African Republic' ) }, { 'ISO_3166-1_alpha-2': 'TD', 'ISO_3166-1_alpha-3': 'TCD', 'Olympic-Code': 'CHA', 'title': hockeydata.i18n.translate( 'Chad' ) }, { 'ISO_3166-1_alpha-2': 'CL', 'ISO_3166-1_alpha-3': 'CHL', 'Olympic-Code': 'CHI', 'title': hockeydata.i18n.translate( 'Chile' ) }, { 'ISO_3166-1_alpha-2': 'CN', 'ISO_3166-1_alpha-3': 'CHN', 'Olympic-Code': 'CHN', 'title': hockeydata.i18n.translate( 'China' ) }, { 'ISO_3166-1_alpha-2': 'CX', 'ISO_3166-1_alpha-3': 'CXR', 'Olympic-Code': 'CXR', 'title': hockeydata.i18n.translate( 'Christmas Island' ) }, { 'ISO_3166-1_alpha-2': 'CC', 'ISO_3166-1_alpha-3': 'CCK', 'Olympic-Code': 'CCK', 'title': hockeydata.i18n.translate( 'Cocos (Keeling) Islands' ) }, { 'ISO_3166-1_alpha-2': 'CO', 'ISO_3166-1_alpha-3': 'COL', 'Olympic-Code': 'COL', 'title': hockeydata.i18n.translate( 'Colombia' ) }, { 'ISO_3166-1_alpha-2': 'KM', 'ISO_3166-1_alpha-3': 'COM', 'Olympic-Code': 'COM', 'title': hockeydata.i18n.translate( 'Comoros' ) }, { 'ISO_3166-1_alpha-2': 'CG', 'ISO_3166-1_alpha-3': 'COG', 'Olympic-Code': 'CGO', 'title': hockeydata.i18n.translate( 'Congo' ) }, { 'ISO_3166-1_alpha-2': 'CD', 'ISO_3166-1_alpha-3': 'COD', 'Olympic-Code': 'COD', 'title': hockeydata.i18n.translate( 'Congo (Democratic Republic of the)' ) }, { 'ISO_3166-1_alpha-2': 'CK', 'ISO_3166-1_alpha-3': 'COK', 'Olympic-Code': 'COK', 'title': hockeydata.i18n.translate( 'Cook Islands' ) }, { 'ISO_3166-1_alpha-2': 'CR', 'ISO_3166-1_alpha-3': 'CRI', 'Olympic-Code': 'CRC', 'title': hockeydata.i18n.translate( 'Costa Rica' ) }, { 'ISO_3166-1_alpha-2': 'CI', 'ISO_3166-1_alpha-3': 'CIV', 'Olympic-Code': 'CIV', 'title': hockeydata.i18n.translate( 'Côte d\'Ivoire' ) }, { 'ISO_3166-1_alpha-2': 'HR', 'ISO_3166-1_alpha-3': 'HRV', 'Olympic-Code': 'CRO', 'title': hockeydata.i18n.translate( 'Croatia' ) }, { 'ISO_3166-1_alpha-2': 'CU', 'ISO_3166-1_alpha-3': 'CUB', 'Olympic-Code': 'CUB', 'title': hockeydata.i18n.translate( 'Cuba' ) }, { 'ISO_3166-1_alpha-2': 'CW', 'ISO_3166-1_alpha-3': 'CUW', 'Olympic-Code': 'CUW', 'title': hockeydata.i18n.translate( 'Curaçao' ) }, { 'ISO_3166-1_alpha-2': 'CY', 'ISO_3166-1_alpha-3': 'CYP', 'Olympic-Code': 'CYP', 'title': hockeydata.i18n.translate( 'Cyprus' ) }, { 'ISO_3166-1_alpha-2': 'CZ', 'ISO_3166-1_alpha-3': 'CZE', 'Olympic-Code': 'CZE', 'title': hockeydata.i18n.translate( 'Czechia' ) }, { 'ISO_3166-1_alpha-2': 'DK', 'ISO_3166-1_alpha-3': 'DNK', 'Olympic-Code': 'DEN', 'title': hockeydata.i18n.translate( 'Denmark' ) }, { 'ISO_3166-1_alpha-2': 'DJ', 'ISO_3166-1_alpha-3': 'DJI', 'Olympic-Code': 'DJI', 'title': hockeydata.i18n.translate( 'Djibouti' ) }, { 'ISO_3166-1_alpha-2': 'DM', 'ISO_3166-1_alpha-3': 'DMA', 'Olympic-Code': 'DMA', 'title': hockeydata.i18n.translate( 'Dominica' ) }, { 'ISO_3166-1_alpha-2': 'DO', 'ISO_3166-1_alpha-3': 'DOM', 'Olympic-Code': 'DOM', 'title': hockeydata.i18n.translate( 'Dominican Republic' ) }, { 'ISO_3166-1_alpha-2': 'EC', 'ISO_3166-1_alpha-3': 'ECU', 'Olympic-Code': 'ECU', 'title': hockeydata.i18n.translate( 'Ecuador' ) }, { 'ISO_3166-1_alpha-2': 'EG', 'ISO_3166-1_alpha-3': 'EGY', 'Olympic-Code': 'EGY', 'title': hockeydata.i18n.translate( 'Egypt' ) }, { 'ISO_3166-1_alpha-2': 'SV', 'ISO_3166-1_alpha-3': 'SLV', 'Olympic-Code': 'ESA', 'title': hockeydata.i18n.translate( 'El Salvador' ) }, { 'ISO_3166-1_alpha-2': 'GQ', 'ISO_3166-1_alpha-3': 'GNQ', 'Olympic-Code': 'GEQ', 'title': hockeydata.i18n.translate( 'Equatorial Guinea' ) }, { 'ISO_3166-1_alpha-2': 'ER', 'ISO_3166-1_alpha-3': 'ERI', 'Olympic-Code': 'ERI', 'title': hockeydata.i18n.translate( 'Eritrea' ) }, { 'ISO_3166-1_alpha-2': 'EE', 'ISO_3166-1_alpha-3': 'EST', 'Olympic-Code': 'EST', 'title': hockeydata.i18n.translate( 'Estonia' ) }, { 'ISO_3166-1_alpha-2': 'ET', 'ISO_3166-1_alpha-3': 'ETH', 'Olympic-Code': 'ETH', 'title': hockeydata.i18n.translate( 'Ethiopia' ) }, { 'ISO_3166-1_alpha-2': 'FK', 'ISO_3166-1_alpha-3': 'FLK', 'Olympic-Code': 'FLK', 'title': hockeydata.i18n.translate( 'Falkland Islands (Malvinas)' ) }, { 'ISO_3166-1_alpha-2': 'FO', 'ISO_3166-1_alpha-3': 'FRO', 'Olympic-Code': 'FRO', 'title': hockeydata.i18n.translate( 'Faroe Islands' ) }, { 'ISO_3166-1_alpha-2': 'FJ', 'ISO_3166-1_alpha-3': 'FJI', 'Olympic-Code': 'FIJ', 'title': hockeydata.i18n.translate( 'Fiji' ) }, { 'ISO_3166-1_alpha-2': 'FI', 'ISO_3166-1_alpha-3': 'FIN', 'Olympic-Code': 'FIN', 'title': hockeydata.i18n.translate( 'Finland' ) }, { 'ISO_3166-1_alpha-2': 'FR', 'ISO_3166-1_alpha-3': 'FRA', 'Olympic-Code': 'FRA', 'title': hockeydata.i18n.translate( 'France' ) }, { 'ISO_3166-1_alpha-2': 'GF', 'ISO_3166-1_alpha-3': 'GUF', 'Olympic-Code': 'GUF', 'title': hockeydata.i18n.translate( 'French Guiana' ) }, { 'ISO_3166-1_alpha-2': 'PF', 'ISO_3166-1_alpha-3': 'PYF', 'Olympic-Code': 'PYF', 'title': hockeydata.i18n.translate( 'French Polynesia' ) }, { 'ISO_3166-1_alpha-2': 'TF', 'ISO_3166-1_alpha-3': 'ATF', 'Olympic-Code': 'ATF', 'title': hockeydata.i18n.translate( 'French Southern Territories' ) }, { 'ISO_3166-1_alpha-2': 'GA', 'ISO_3166-1_alpha-3': 'GAB', 'Olympic-Code': 'GAB', 'title': hockeydata.i18n.translate( 'Gabon' ) }, { 'ISO_3166-1_alpha-2': 'GM', 'ISO_3166-1_alpha-3': 'GMB', 'Olympic-Code': 'GAM', 'title': hockeydata.i18n.translate( 'Gambia' ) }, { 'ISO_3166-1_alpha-2': 'GE', 'ISO_3166-1_alpha-3': 'GEO', 'Olympic-Code': 'GEO', 'title': hockeydata.i18n.translate( 'Georgia' ) }, { 'ISO_3166-1_alpha-2': 'DE', 'ISO_3166-1_alpha-3': 'DEU', 'Olympic-Code': 'GER', 'title': hockeydata.i18n.translate( 'Germany' ) }, { 'ISO_3166-1_alpha-2': 'GH', 'ISO_3166-1_alpha-3': 'GHA', 'Olympic-Code': 'GHA', 'title': hockeydata.i18n.translate( 'Ghana' ) }, { 'ISO_3166-1_alpha-2': 'GI', 'ISO_3166-1_alpha-3': 'GIB', 'Olympic-Code': 'GIB', 'title': hockeydata.i18n.translate( 'Gibraltar' ) }, { 'ISO_3166-1_alpha-2': 'GR', 'ISO_3166-1_alpha-3': 'GRC', 'Olympic-Code': 'GRE', 'title': hockeydata.i18n.translate( 'Greece' ) }, { 'ISO_3166-1_alpha-2': 'GL', 'ISO_3166-1_alpha-3': 'GRL', 'Olympic-Code': 'GRL', 'title': hockeydata.i18n.translate( 'Greenland' ) }, { 'ISO_3166-1_alpha-2': 'GD', 'ISO_3166-1_alpha-3': 'GRD', 'Olympic-Code': 'GRN', 'title': hockeydata.i18n.translate( 'Grenada' ) }, { 'ISO_3166-1_alpha-2': 'GP', 'ISO_3166-1_alpha-3': 'GLP', 'Olympic-Code': 'GLP', 'title': hockeydata.i18n.translate( 'Guadeloupe' ) }, { 'ISO_3166-1_alpha-2': 'GU', 'ISO_3166-1_alpha-3': 'GUM', 'Olympic-Code': 'GUM', 'title': hockeydata.i18n.translate( 'Guam' ) }, { 'ISO_3166-1_alpha-2': 'GT', 'ISO_3166-1_alpha-3': 'GTM', 'Olympic-Code': 'GUA', 'title': hockeydata.i18n.translate( 'Guatemala' ) }, { 'ISO_3166-1_alpha-2': 'GG', 'ISO_3166-1_alpha-3': 'GGY', 'Olympic-Code': 'GGY', 'title': hockeydata.i18n.translate( 'Guernsey' ) }, { 'ISO_3166-1_alpha-2': 'GN', 'ISO_3166-1_alpha-3': 'GIN', 'Olympic-Code': 'GUI', 'title': hockeydata.i18n.translate( 'Guinea' ) }, { 'ISO_3166-1_alpha-2': 'GW', 'ISO_3166-1_alpha-3': 'GNB', 'Olympic-Code': 'GBS', 'title': hockeydata.i18n.translate( 'Guinea-Bissau' ) }, { 'ISO_3166-1_alpha-2': 'GY', 'ISO_3166-1_alpha-3': 'GUY', 'Olympic-Code': 'GUY', 'title': hockeydata.i18n.translate( 'Guyana' ) }, { 'ISO_3166-1_alpha-2': 'HT', 'ISO_3166-1_alpha-3': 'HTI', 'Olympic-Code': 'HAI', 'title': hockeydata.i18n.translate( 'Haiti' ) }, { 'ISO_3166-1_alpha-2': 'HM', 'ISO_3166-1_alpha-3': 'HMD', 'Olympic-Code': 'HMD', 'title': hockeydata.i18n.translate( 'Heard Island and McDonald Islands' ) }, { 'ISO_3166-1_alpha-2': 'VA', 'ISO_3166-1_alpha-3': 'VAT', 'Olympic-Code': 'VAT', 'title': hockeydata.i18n.translate( 'Holy See' ) }, { 'ISO_3166-1_alpha-2': 'HN', 'ISO_3166-1_alpha-3': 'HND', 'Olympic-Code': 'HON', 'title': hockeydata.i18n.translate( 'Honduras' ) }, { 'ISO_3166-1_alpha-2': 'HK', 'ISO_3166-1_alpha-3': 'HKG', 'Olympic-Code': 'HKG', 'title': hockeydata.i18n.translate( 'Hong Kong' ) }, { 'ISO_3166-1_alpha-2': 'HU', 'ISO_3166-1_alpha-3': 'HUN', 'Olympic-Code': 'HUN', 'title': hockeydata.i18n.translate( 'Hungary' ) }, { 'ISO_3166-1_alpha-2': 'IS', 'ISO_3166-1_alpha-3': 'ISL', 'Olympic-Code': 'ISL', 'title': hockeydata.i18n.translate( 'Iceland' ) }, { 'ISO_3166-1_alpha-2': 'IN', 'ISO_3166-1_alpha-3': 'IND', 'Olympic-Code': 'IND', 'title': hockeydata.i18n.translate( 'India' ) }, { 'ISO_3166-1_alpha-2': 'ID', 'ISO_3166-1_alpha-3': 'IDN', 'Olympic-Code': 'INA', 'title': hockeydata.i18n.translate( 'Indonesia' ) }, { 'ISO_3166-1_alpha-2': 'IR', 'ISO_3166-1_alpha-3': 'IRN', 'Olympic-Code': 'IRI', 'title': hockeydata.i18n.translate( 'Iran (Islamic Republic of)' ) }, { 'ISO_3166-1_alpha-2': 'IQ', 'ISO_3166-1_alpha-3': 'IRQ', 'Olympic-Code': 'IRQ', 'title': hockeydata.i18n.translate( 'Iraq' ) }, { 'ISO_3166-1_alpha-2': 'IE', 'ISO_3166-1_alpha-3': 'IRL', 'Olympic-Code': 'IRL', 'title': hockeydata.i18n.translate( 'Ireland' ) }, { 'ISO_3166-1_alpha-2': 'IM', 'ISO_3166-1_alpha-3': 'IMN', 'Olympic-Code': 'IMN', 'title': hockeydata.i18n.translate( 'Isle of Man' ) }, { 'ISO_3166-1_alpha-2': 'IL', 'ISO_3166-1_alpha-3': 'ISR', 'Olympic-Code': 'ISR', 'title': hockeydata.i18n.translate( 'Israel' ) }, { 'ISO_3166-1_alpha-2': 'IT', 'ISO_3166-1_alpha-3': 'ITA', 'Olympic-Code': 'ITA', 'title': hockeydata.i18n.translate( 'Italy' ) }, { 'ISO_3166-1_alpha-2': 'JM', 'ISO_3166-1_alpha-3': 'JAM', 'Olympic-Code': 'JAM', 'title': hockeydata.i18n.translate( 'Jamaica' ) }, { 'ISO_3166-1_alpha-2': 'JP', 'ISO_3166-1_alpha-3': 'JPN', 'Olympic-Code': 'JPN', 'title': hockeydata.i18n.translate( 'Japan' ) }, { 'ISO_3166-1_alpha-2': 'JE', 'ISO_3166-1_alpha-3': 'JEY', 'Olympic-Code': 'JEY', 'title': hockeydata.i18n.translate( 'Jersey' ) }, { 'ISO_3166-1_alpha-2': 'JO', 'ISO_3166-1_alpha-3': 'JOR', 'Olympic-Code': 'JOR', 'title': hockeydata.i18n.translate( 'Jordan' ) }, { 'ISO_3166-1_alpha-2': 'KZ', 'ISO_3166-1_alpha-3': 'KAZ', 'Olympic-Code': 'KAZ', 'title': hockeydata.i18n.translate( 'Kazakhstan' ) }, { 'ISO_3166-1_alpha-2': 'KE', 'ISO_3166-1_alpha-3': 'KEN', 'Olympic-Code': 'KEN', 'title': hockeydata.i18n.translate( 'Kenya' ) }, { 'ISO_3166-1_alpha-2': 'KI', 'ISO_3166-1_alpha-3': 'KIR', 'Olympic-Code': 'KIR', 'title': hockeydata.i18n.translate( 'Kiribati' ) }, { 'ISO_3166-1_alpha-2': 'KP', 'ISO_3166-1_alpha-3': 'PRK', 'Olympic-Code': 'PRK', 'title': hockeydata.i18n.translate( 'Korea (Democratic People\'s Republic of)' ) }, { 'ISO_3166-1_alpha-2': 'KR', 'ISO_3166-1_alpha-3': 'KOR', 'Olympic-Code': 'KOR', 'title': hockeydata.i18n.translate( 'Korea (Republic of)' ) }, { 'ISO_3166-1_alpha-2': 'KW', 'ISO_3166-1_alpha-3': 'KWT', 'Olympic-Code': 'KUW', 'title': hockeydata.i18n.translate( 'Kuwait' ) }, { 'ISO_3166-1_alpha-2': 'KG', 'ISO_3166-1_alpha-3': 'KGZ', 'Olympic-Code': 'KGZ', 'title': hockeydata.i18n.translate( 'Kyrgyzstan' ) }, { 'ISO_3166-1_alpha-2': 'LA', 'ISO_3166-1_alpha-3': 'LAO', 'Olympic-Code': 'LAO', 'title': hockeydata.i18n.translate( 'Lao People\'s Democratic Republic' ) }, { 'ISO_3166-1_alpha-2': 'LV', 'ISO_3166-1_alpha-3': 'LVA', 'Olympic-Code': 'LAT', 'title': hockeydata.i18n.translate( 'Latvia' ) }, { 'ISO_3166-1_alpha-2': 'LB', 'ISO_3166-1_alpha-3': 'LBN', 'Olympic-Code': 'LIB', 'title': hockeydata.i18n.translate( 'Lebanon' ) }, { 'ISO_3166-1_alpha-2': 'LS', 'ISO_3166-1_alpha-3': 'LSO', 'Olympic-Code': 'LES', 'title': hockeydata.i18n.translate( 'Lesotho' ) }, { 'ISO_3166-1_alpha-2': 'LR', 'ISO_3166-1_alpha-3': 'LBR', 'Olympic-Code': 'LBR', 'title': hockeydata.i18n.translate( 'Liberia' ) }, { 'ISO_3166-1_alpha-2': 'LY', 'ISO_3166-1_alpha-3': 'LBY', 'Olympic-Code': 'LBA', 'title': hockeydata.i18n.translate( 'Libya' ) }, { 'ISO_3166-1_alpha-2': 'LI', 'ISO_3166-1_alpha-3': 'LIE', 'Olympic-Code': 'LIE', 'title': hockeydata.i18n.translate( 'Liechtenstein' ) }, { 'ISO_3166-1_alpha-2': 'LT', 'ISO_3166-1_alpha-3': 'LTU', 'Olympic-Code': 'LTU', 'title': hockeydata.i18n.translate( 'Lithuania' ) }, { 'ISO_3166-1_alpha-2': 'LU', 'ISO_3166-1_alpha-3': 'LUX', 'Olympic-Code': 'LUX', 'title': hockeydata.i18n.translate( 'Luxembourg' ) }, { 'ISO_3166-1_alpha-2': 'MO', 'ISO_3166-1_alpha-3': 'MAC', 'Olympic-Code': 'MAC', 'title': hockeydata.i18n.translate( 'Macao' ) }, { 'ISO_3166-1_alpha-2': 'MK', 'ISO_3166-1_alpha-3': 'MKD', 'Olympic-Code': 'MKD', 'title': hockeydata.i18n.translate( 'Macedonia (the former Yugoslav Republic of)' ) }, { 'ISO_3166-1_alpha-2': 'MG', 'ISO_3166-1_alpha-3': 'MDG', 'Olympic-Code': 'MAD', 'title': hockeydata.i18n.translate( 'Madagascar' ) }, { 'ISO_3166-1_alpha-2': 'MW', 'ISO_3166-1_alpha-3': 'MWI', 'Olympic-Code': 'MAW', 'title': hockeydata.i18n.translate( 'Malawi' ) }, { 'ISO_3166-1_alpha-2': 'MY', 'ISO_3166-1_alpha-3': 'MYS', 'Olympic-Code': 'MAS', 'title': hockeydata.i18n.translate( 'Malaysia' ) }, { 'ISO_3166-1_alpha-2': 'MV', 'ISO_3166-1_alpha-3': 'MDV', 'Olympic-Code': 'MDV', 'title': hockeydata.i18n.translate( 'Maldives' ) }, { 'ISO_3166-1_alpha-2': 'ML', 'ISO_3166-1_alpha-3': 'MLI', 'Olympic-Code': 'MLI', 'title': hockeydata.i18n.translate( 'Mali' ) }, { 'ISO_3166-1_alpha-2': 'MT', 'ISO_3166-1_alpha-3': 'MLT', 'Olympic-Code': 'MLT', 'title': hockeydata.i18n.translate( 'Malta' ) }, { 'ISO_3166-1_alpha-2': 'MH', 'ISO_3166-1_alpha-3': 'MHL', 'Olympic-Code': 'MHL', 'title': hockeydata.i18n.translate( 'Marshall Islands' ) }, { 'ISO_3166-1_alpha-2': 'MQ', 'ISO_3166-1_alpha-3': 'MTQ', 'Olympic-Code': 'MTQ', 'title': hockeydata.i18n.translate( 'Martinique' ) }, { 'ISO_3166-1_alpha-2': 'MR', 'ISO_3166-1_alpha-3': 'MRT', 'Olympic-Code': 'MTN', 'title': hockeydata.i18n.translate( 'Mauritania' ) }, { 'ISO_3166-1_alpha-2': 'MU', 'ISO_3166-1_alpha-3': 'MUS', 'Olympic-Code': 'MRI', 'title': hockeydata.i18n.translate( 'Mauritius' ) }, { 'ISO_3166-1_alpha-2': 'YT', 'ISO_3166-1_alpha-3': 'MYT', 'Olympic-Code': 'MYT', 'title': hockeydata.i18n.translate( 'Mayotte' ) }, { 'ISO_3166-1_alpha-2': 'MX', 'ISO_3166-1_alpha-3': 'MEX', 'Olympic-Code': 'MEX', 'title': hockeydata.i18n.translate( 'Mexico' ) }, { 'ISO_3166-1_alpha-2': 'FM', 'ISO_3166-1_alpha-3': 'FSM', 'Olympic-Code': 'FSM', 'title': hockeydata.i18n.translate( 'Micronesia (Federated States of)' ) }, { 'ISO_3166-1_alpha-2': 'MD', 'ISO_3166-1_alpha-3': 'MDA', 'Olympic-Code': 'MDA', 'title': hockeydata.i18n.translate( 'Moldova (Republic of)' ) }, { 'ISO_3166-1_alpha-2': 'MC', 'ISO_3166-1_alpha-3': 'MCO', 'Olympic-Code': 'MON', 'title': hockeydata.i18n.translate( 'Monaco' ) }, { 'ISO_3166-1_alpha-2': 'MN', 'ISO_3166-1_alpha-3': 'MNG', 'Olympic-Code': 'MGL', 'title': hockeydata.i18n.translate( 'Mongolia' ) }, { 'ISO_3166-1_alpha-2': 'ME', 'ISO_3166-1_alpha-3': 'MNE', 'Olympic-Code': 'MNE', 'title': hockeydata.i18n.translate( 'Montenegro' ) }, { 'ISO_3166-1_alpha-2': 'MS', 'ISO_3166-1_alpha-3': 'MSR', 'Olympic-Code': 'MSR', 'title': hockeydata.i18n.translate( 'Montserrat' ) }, { 'ISO_3166-1_alpha-2': 'MA', 'ISO_3166-1_alpha-3': 'MAR', 'Olympic-Code': 'MAR', 'title': hockeydata.i18n.translate( 'Morocco' ) }, { 'ISO_3166-1_alpha-2': 'MZ', 'ISO_3166-1_alpha-3': 'MOZ', 'Olympic-Code': 'MOZ', 'title': hockeydata.i18n.translate( 'Mozambique' ) }, { 'ISO_3166-1_alpha-2': 'MM', 'ISO_3166-1_alpha-3': 'MMR', 'Olympic-Code': 'MYA', 'title': hockeydata.i18n.translate( 'Myanmar' ) }, { 'ISO_3166-1_alpha-2': 'NA', 'ISO_3166-1_alpha-3': 'NAM', 'Olympic-Code': 'NAM', 'title': hockeydata.i18n.translate( 'Namibia' ) }, { 'ISO_3166-1_alpha-2': 'NR', 'ISO_3166-1_alpha-3': 'NRU', 'Olympic-Code': 'NRU', 'title': hockeydata.i18n.translate( 'Nauru' ) }, { 'ISO_3166-1_alpha-2': 'NP', 'ISO_3166-1_alpha-3': 'NPL', 'Olympic-Code': 'NEP', 'title': hockeydata.i18n.translate( 'Nepal' ) }, { 'ISO_3166-1_alpha-2': 'NL', 'ISO_3166-1_alpha-3': 'NLD', 'Olympic-Code': 'NED', 'title': hockeydata.i18n.translate( 'Netherlands' ) }, { 'ISO_3166-1_alpha-2': 'NC', 'ISO_3166-1_alpha-3': 'NCL', 'Olympic-Code': 'NCL', 'title': hockeydata.i18n.translate( 'New Caledonia' ) }, { 'ISO_3166-1_alpha-2': 'NZ', 'ISO_3166-1_alpha-3': 'NZL', 'Olympic-Code': 'NZL', 'title': hockeydata.i18n.translate( 'New Zealand' ) }, { 'ISO_3166-1_alpha-2': 'NI', 'ISO_3166-1_alpha-3': 'NIC', 'Olympic-Code': 'NCA', 'title': hockeydata.i18n.translate( 'Nicaragua' ) }, { 'ISO_3166-1_alpha-2': 'NE', 'ISO_3166-1_alpha-3': 'NER', 'Olympic-Code': 'NIG', 'title': hockeydata.i18n.translate( 'Niger' ) }, { 'ISO_3166-1_alpha-2': 'NG', 'ISO_3166-1_alpha-3': 'NGA', 'Olympic-Code': 'NGR', 'title': hockeydata.i18n.translate( 'Nigeria' ) }, { 'ISO_3166-1_alpha-2': 'NU', 'ISO_3166-1_alpha-3': 'NIU', 'Olympic-Code': 'NIU', 'title': hockeydata.i18n.translate( 'Niue' ) }, { 'ISO_3166-1_alpha-2': 'NF', 'ISO_3166-1_alpha-3': 'NFK', 'Olympic-Code': 'NFK', 'title': hockeydata.i18n.translate( 'Norfolk Island' ) }, { 'ISO_3166-1_alpha-2': 'MP', 'ISO_3166-1_alpha-3': 'MNP', 'Olympic-Code': 'MNP', 'title': hockeydata.i18n.translate( 'Northern Mariana Islands' ) }, { 'ISO_3166-1_alpha-2': 'NO', 'ISO_3166-1_alpha-3': 'NOR', 'Olympic-Code': 'NOR', 'title': hockeydata.i18n.translate( 'Norway' ) }, { 'ISO_3166-1_alpha-2': 'OM', 'ISO_3166-1_alpha-3': 'OMN', 'Olympic-Code': 'OMA', 'title': hockeydata.i18n.translate( 'Oman' ) }, { 'ISO_3166-1_alpha-2': 'PK', 'ISO_3166-1_alpha-3': 'PAK', 'Olympic-Code': 'PAK', 'title': hockeydata.i18n.translate( 'Pakistan' ) }, { 'ISO_3166-1_alpha-2': 'PW', 'ISO_3166-1_alpha-3': 'PLW', 'Olympic-Code': 'PLW', 'title': hockeydata.i18n.translate( 'Palau' ) }, { 'ISO_3166-1_alpha-2': 'PS', 'ISO_3166-1_alpha-3': 'PSE', 'Olympic-Code': 'PLE', 'title': hockeydata.i18n.translate( 'Palestine, State of' ) }, { 'ISO_3166-1_alpha-2': 'PA', 'ISO_3166-1_alpha-3': 'PAN', 'Olympic-Code': 'PAN', 'title': hockeydata.i18n.translate( 'Panama' ) }, { 'ISO_3166-1_alpha-2': 'PG', 'ISO_3166-1_alpha-3': 'PNG', 'Olympic-Code': 'PNG', 'title': hockeydata.i18n.translate( 'Papua New Guinea' ) }, { 'ISO_3166-1_alpha-2': 'PY', 'ISO_3166-1_alpha-3': 'PRY', 'Olympic-Code': 'PAR', 'title': hockeydata.i18n.translate( 'Paraguay' ) }, { 'ISO_3166-1_alpha-2': 'PE', 'ISO_3166-1_alpha-3': 'PER', 'Olympic-Code': 'PER', 'title': hockeydata.i18n.translate( 'Peru' ) }, { 'ISO_3166-1_alpha-2': 'PH', 'ISO_3166-1_alpha-3': 'PHL', 'Olympic-Code': 'PHI', 'title': hockeydata.i18n.translate( 'Philippines' ) }, { 'ISO_3166-1_alpha-2': 'PN', 'ISO_3166-1_alpha-3': 'PCN', 'Olympic-Code': 'PCN', 'title': hockeydata.i18n.translate( 'Pitcairn' ) }, { 'ISO_3166-1_alpha-2': 'PL', 'ISO_3166-1_alpha-3': 'POL', 'Olympic-Code': 'POL', 'title': hockeydata.i18n.translate( 'Poland' ) }, { 'ISO_3166-1_alpha-2': 'PT', 'ISO_3166-1_alpha-3': 'PRT', 'Olympic-Code': 'POR', 'title': hockeydata.i18n.translate( 'Portugal' ) }, { 'ISO_3166-1_alpha-2': 'PR', 'ISO_3166-1_alpha-3': 'PRI', 'Olympic-Code': 'PUR', 'title': hockeydata.i18n.translate( 'Puerto Rico' ) }, { 'ISO_3166-1_alpha-2': 'QA', 'ISO_3166-1_alpha-3': 'QAT', 'Olympic-Code': 'QAT', 'title': hockeydata.i18n.translate( 'Qatar' ) }, { 'ISO_3166-1_alpha-2': 'RE', 'ISO_3166-1_alpha-3': 'REU', 'Olympic-Code': 'REu', 'title': hockeydata.i18n.translate( 'Réunion' ) }, { 'ISO_3166-1_alpha-2': 'RO', 'ISO_3166-1_alpha-3': 'ROU', 'Olympic-Code': 'ROM', 'title': hockeydata.i18n.translate( 'Romania' ) }, { 'ISO_3166-1_alpha-2': 'RU', 'ISO_3166-1_alpha-3': 'RUS', 'Olympic-Code': 'RUS', 'title': hockeydata.i18n.translate( 'Russian Federation' ) }, { 'ISO_3166-1_alpha-2': 'RW', 'ISO_3166-1_alpha-3': 'RWA', 'Olympic-Code': 'RWA', 'title': hockeydata.i18n.translate( 'Rwanda' ) }, { 'ISO_3166-1_alpha-2': 'BL', 'ISO_3166-1_alpha-3': 'BLM', 'Olympic-Code': 'BLM', 'title': hockeydata.i18n.translate( 'Saint Barthélemy' ) }, { 'ISO_3166-1_alpha-2': 'SH', 'ISO_3166-1_alpha-3': 'SHN', 'Olympic-Code': 'SHN', 'title': hockeydata.i18n.translate( 'Saint Helena, Ascension and Tristan da Cunha' ) }, { 'ISO_3166-1_alpha-2': 'KN', 'ISO_3166-1_alpha-3': 'KNA', 'Olympic-Code': 'SKN', 'title': hockeydata.i18n.translate( 'Saint Kitts and Nevis' ) }, { 'ISO_3166-1_alpha-2': 'LC', 'ISO_3166-1_alpha-3': 'LCA', 'Olympic-Code': 'LCA', 'title': hockeydata.i18n.translate( 'Saint Lucia' ) }, { 'ISO_3166-1_alpha-2': 'MF', 'ISO_3166-1_alpha-3': 'MAF', 'Olympic-Code': 'MAF', 'title': hockeydata.i18n.translate( 'Saint Martin (French part)' ) }, { 'ISO_3166-1_alpha-2': 'PM', 'ISO_3166-1_alpha-3': 'SPM', 'Olympic-Code': 'SPM', 'title': hockeydata.i18n.translate( 'Saint Pierre and Miquelon' ) }, { 'ISO_3166-1_alpha-2': 'VC', 'ISO_3166-1_alpha-3': 'VCT', 'Olympic-Code': 'VIN', 'title': hockeydata.i18n.translate( 'Saint Vincent and the Grenadines' ) }, { 'ISO_3166-1_alpha-2': 'WS', 'ISO_3166-1_alpha-3': 'WSM', 'Olympic-Code': 'SAM', 'title': hockeydata.i18n.translate( 'Samoa' ) }, { 'ISO_3166-1_alpha-2': 'SM', 'ISO_3166-1_alpha-3': 'SMR', 'Olympic-Code': 'SMR', 'title': hockeydata.i18n.translate( 'San Marino' ) }, { 'ISO_3166-1_alpha-2': 'ST', 'ISO_3166-1_alpha-3': 'STP', 'Olympic-Code': 'STP', 'title': hockeydata.i18n.translate( 'Sao Tome and Principe' ) }, { 'ISO_3166-1_alpha-2': 'SA', 'ISO_3166-1_alpha-3': 'SAU', 'Olympic-Code': 'KSA', 'title': hockeydata.i18n.translate( 'Saudi Arabia' ) }, { 'ISO_3166-1_alpha-2': 'SN', 'ISO_3166-1_alpha-3': 'SEN', 'Olympic-Code': 'SEN', 'title': hockeydata.i18n.translate( 'Senegal' ) }, { 'ISO_3166-1_alpha-2': 'RS', 'ISO_3166-1_alpha-3': 'SRB', 'Olympic-Code': 'SRB', 'title': hockeydata.i18n.translate( 'Serbia' ) }, { 'ISO_3166-1_alpha-2': 'SC', 'ISO_3166-1_alpha-3': 'SYC', 'Olympic-Code': 'SEY', 'title': hockeydata.i18n.translate( 'Seychelles' ) }, { 'ISO_3166-1_alpha-2': 'SL', 'ISO_3166-1_alpha-3': 'SLE', 'Olympic-Code': 'SLE', 'title': hockeydata.i18n.translate( 'Sierra Leone' ) }, { 'ISO_3166-1_alpha-2': 'SG', 'ISO_3166-1_alpha-3': 'SGP', 'Olympic-Code': 'SIN', 'title': hockeydata.i18n.translate( 'Singapore' ) }, { 'ISO_3166-1_alpha-2': 'SX', 'ISO_3166-1_alpha-3': 'SXM', 'Olympic-Code': 'SXM', 'title': hockeydata.i18n.translate( 'Sint Maarten (Dutch part)' ) }, { 'ISO_3166-1_alpha-2': 'SK', 'ISO_3166-1_alpha-3': 'SVK', 'Olympic-Code': 'SVK', 'title': hockeydata.i18n.translate( 'Slovakia' ) }, { 'ISO_3166-1_alpha-2': 'SI', 'ISO_3166-1_alpha-3': 'SVN', 'Olympic-Code': 'SLO', 'title': hockeydata.i18n.translate( 'Slovenia' ) }, { 'ISO_3166-1_alpha-2': 'SB', 'ISO_3166-1_alpha-3': 'SLB', 'Olympic-Code': 'SOL', 'title': hockeydata.i18n.translate( 'Solomon Islands' ) }, { 'ISO_3166-1_alpha-2': 'SO', 'ISO_3166-1_alpha-3': 'SOM', 'Olympic-Code': 'SOM', 'title': hockeydata.i18n.translate( 'Somalia' ) }, { 'ISO_3166-1_alpha-2': 'ZA', 'ISO_3166-1_alpha-3': 'ZAF', 'Olympic-Code': 'RSA', 'title': hockeydata.i18n.translate( 'South Africa' ) }, { 'ISO_3166-1_alpha-2': 'GS', 'ISO_3166-1_alpha-3': 'SGS', 'Olympic-Code': 'SGS', 'title': hockeydata.i18n.translate( 'South Georgia and the South Sandwich Islands' ) }, { 'ISO_3166-1_alpha-2': 'SS', 'ISO_3166-1_alpha-3': 'SSD', 'Olympic-Code': 'SSD', 'title': hockeydata.i18n.translate( 'South Sudan' ) }, { 'ISO_3166-1_alpha-2': 'ES', 'ISO_3166-1_alpha-3': 'ESP', 'Olympic-Code': 'ESP', 'title': hockeydata.i18n.translate( 'Spain' ) }, { 'ISO_3166-1_alpha-2': 'LK', 'ISO_3166-1_alpha-3': 'LKA', 'Olympic-Code': 'SRI', 'title': hockeydata.i18n.translate( 'Sri Lanka' ) }, { 'ISO_3166-1_alpha-2': 'SD', 'ISO_3166-1_alpha-3': 'SDN', 'Olympic-Code': 'SUD', 'title': hockeydata.i18n.translate( 'Sudan' ) }, { 'ISO_3166-1_alpha-2': 'SR', 'ISO_3166-1_alpha-3': 'SUR', 'Olympic-Code': 'SUR', 'title': hockeydata.i18n.translate( 'Suriname' ) }, { 'ISO_3166-1_alpha-2': 'SJ', 'ISO_3166-1_alpha-3': 'SJM', 'Olympic-Code': 'SJM', 'title': hockeydata.i18n.translate( 'Svalbard and Jan Mayen' ) }, { 'ISO_3166-1_alpha-2': 'SZ', 'ISO_3166-1_alpha-3': 'SWZ', 'Olympic-Code': 'SWZ', 'title': hockeydata.i18n.translate( 'Swaziland' ) }, { 'ISO_3166-1_alpha-2': 'SE', 'ISO_3166-1_alpha-3': 'SWE', 'Olympic-Code': 'SWE', 'title': hockeydata.i18n.translate( 'Sweden' ) }, { 'ISO_3166-1_alpha-2': 'CH', 'ISO_3166-1_alpha-3': 'CHE', 'Olympic-Code': 'SUI', 'title': hockeydata.i18n.translate( 'Switzerland' ) }, { 'ISO_3166-1_alpha-2': 'SY', 'ISO_3166-1_alpha-3': 'SYR', 'Olympic-Code': 'SYR', 'title': hockeydata.i18n.translate( 'Syrian Arab Republic' ) }, { 'ISO_3166-1_alpha-2': 'TW', 'ISO_3166-1_alpha-3': 'TWN', 'Olympic-Code': 'TPE', 'title': hockeydata.i18n.translate( 'Taiwan, Province of China' ) }, { 'ISO_3166-1_alpha-2': 'TJ', 'ISO_3166-1_alpha-3': 'TJK', 'Olympic-Code': 'TJK', 'title': hockeydata.i18n.translate( 'Tajikistan' ) }, { 'ISO_3166-1_alpha-2': 'TZ', 'ISO_3166-1_alpha-3': 'TZA', 'Olympic-Code': 'TAN', 'title': hockeydata.i18n.translate( 'Tanzania, United Republic of' ) }, { 'ISO_3166-1_alpha-2': 'TH', 'ISO_3166-1_alpha-3': 'THA', 'Olympic-Code': 'THA', 'title': hockeydata.i18n.translate( 'Thailand' ) }, { 'ISO_3166-1_alpha-2': 'TL', 'ISO_3166-1_alpha-3': 'TLS', 'Olympic-Code': 'TLS', 'title': hockeydata.i18n.translate( 'Timor-Leste' ) }, { 'ISO_3166-1_alpha-2': 'TG', 'ISO_3166-1_alpha-3': 'TGO', 'Olympic-Code': 'TOG', 'title': hockeydata.i18n.translate( 'Togo' ) }, { 'ISO_3166-1_alpha-2': 'TK', 'ISO_3166-1_alpha-3': 'TKL', 'Olympic-Code': 'TKL', 'title': hockeydata.i18n.translate( 'Tokelau' ) }, { 'ISO_3166-1_alpha-2': 'TO', 'ISO_3166-1_alpha-3': 'TON', 'Olympic-Code': 'TGA', 'title': hockeydata.i18n.translate( 'Tonga' ) }, { 'ISO_3166-1_alpha-2': 'TT', 'ISO_3166-1_alpha-3': 'TTO', 'Olympic-Code': 'TRI', 'title': hockeydata.i18n.translate( 'Trinidad and Tobago' ) }, { 'ISO_3166-1_alpha-2': 'TN', 'ISO_3166-1_alpha-3': 'TUN', 'Olympic-Code': 'TUN', 'title': hockeydata.i18n.translate( 'Tunisia' ) }, { 'ISO_3166-1_alpha-2': 'TR', 'ISO_3166-1_alpha-3': 'TUR', 'Olympic-Code': 'TUR', 'title': hockeydata.i18n.translate( 'Turkey' ) }, { 'ISO_3166-1_alpha-2': 'TM', 'ISO_3166-1_alpha-3': 'TKM', 'Olympic-Code': 'TKM', 'title': hockeydata.i18n.translate( 'Turkmenistan' ) }, { 'ISO_3166-1_alpha-2': 'TC', 'ISO_3166-1_alpha-3': 'TCA', 'Olympic-Code': 'TCA', 'title': hockeydata.i18n.translate( 'Turks and Caicos Islands' ) }, { 'ISO_3166-1_alpha-2': 'TV', 'ISO_3166-1_alpha-3': 'TUV', 'Olympic-Code': 'TUV', 'title': hockeydata.i18n.translate( 'Tuvalu' ) }, { 'ISO_3166-1_alpha-2': 'UG', 'ISO_3166-1_alpha-3': 'UGA', 'Olympic-Code': 'UGA', 'title': hockeydata.i18n.translate( 'Uganda' ) }, { 'ISO_3166-1_alpha-2': 'UA', 'ISO_3166-1_alpha-3': 'UKR', 'Olympic-Code': 'UKR', 'title': hockeydata.i18n.translate( 'Ukraine' ) }, { 'ISO_3166-1_alpha-2': 'AE', 'ISO_3166-1_alpha-3': 'ARE', 'Olympic-Code': 'UAE', 'title': hockeydata.i18n.translate( 'United Arab Emirates' ) }, { 'ISO_3166-1_alpha-2': 'GB', 'ISO_3166-1_alpha-3': 'GBR', 'Olympic-Code': 'GBR', 'title': hockeydata.i18n.translate( 'United Kingdom of Great Britain and Northern Ireland' ) }, { 'ISO_3166-1_alpha-2': 'US', 'ISO_3166-1_alpha-3': 'USA', 'Olympic-Code': 'USA', 'title': hockeydata.i18n.translate( 'United States of America' ) }, { 'ISO_3166-1_alpha-2': 'UM', 'ISO_3166-1_alpha-3': 'UMI', 'Olympic-Code': 'UMI', 'title': hockeydata.i18n.translate( 'United States Minor Outlying Islands' ) }, { 'ISO_3166-1_alpha-2': 'UY', 'ISO_3166-1_alpha-3': 'URY', 'Olympic-Code': 'URU', 'title': hockeydata.i18n.translate( 'Uruguay' ) }, { 'ISO_3166-1_alpha-2': 'UZ', 'ISO_3166-1_alpha-3': 'UZB', 'Olympic-Code': 'UZB', 'title': hockeydata.i18n.translate( 'Uzbekistan' ) }, { 'ISO_3166-1_alpha-2': 'VU', 'ISO_3166-1_alpha-3': 'VUT', 'Olympic-Code': 'VAN', 'title': hockeydata.i18n.translate( 'Vanuatu' ) }, { 'ISO_3166-1_alpha-2': 'VE', 'ISO_3166-1_alpha-3': 'VEN', 'Olympic-Code': 'VEN', 'title': hockeydata.i18n.translate( 'Venezuela (Bolivarian Republic of)' ) }, { 'ISO_3166-1_alpha-2': 'VN', 'ISO_3166-1_alpha-3': 'VNM', 'Olympic-Code': 'VIE', 'title': hockeydata.i18n.translate( 'Viet Nam' ) }, { 'ISO_3166-1_alpha-2': 'VG', 'ISO_3166-1_alpha-3': 'VGB', 'Olympic-Code': 'VGB', 'title': hockeydata.i18n.translate( 'Virgin Islands (British)' ) }, { 'ISO_3166-1_alpha-2': 'VI', 'ISO_3166-1_alpha-3': 'VIR', 'Olympic-Code': 'VIR', 'title': hockeydata.i18n.translate( 'Virgin Islands (U.S.)' ) }, { 'ISO_3166-1_alpha-2': 'WF', 'ISO_3166-1_alpha-3': 'WLF', 'Olympic-Code': 'WLF', 'title': hockeydata.i18n.translate( 'Wallis and Futuna' ) }, { 'ISO_3166-1_alpha-2': 'EH', 'ISO_3166-1_alpha-3': 'ESH', 'Olympic-Code': 'ESH', 'title': hockeydata.i18n.translate( 'Western Sahara' ) }, { 'ISO_3166-1_alpha-2': 'YE', 'ISO_3166-1_alpha-3': 'YEM', 'Olympic-Code': 'YEM', 'title': hockeydata.i18n.translate( 'Yemen' ) }, { 'ISO_3166-1_alpha-2': 'ZM', 'ISO_3166-1_alpha-3': 'ZMB', 'Olympic-Code': 'ZAM', 'title': hockeydata.i18n.translate( 'Zambia' ) }, { 'ISO_3166-1_alpha-2': 'ZW', 'ISO_3166-1_alpha-3': 'ZWE', 'Olympic-Code': 'ZIM', 'title': hockeydata.i18n.translate( 'Zimbabwe' ) } ]; countries.sort( function( a, b ){ var sortValA=a[ sortBy ], sortValB=b[ sortBy ]; if( sortValA < sortValB ){ return -1; } if( sortValA > sortValB ){ return 1; } return 0; } ); return countries; }; UtilityLibrary.getGameStreamButton=function( gameStream ){ try { gameStream=JSON.parse( gameStream ); } catch ( e ){ gameStream=null; } if( jQuery.isPlainObject( gameStream ) ){ if( gameStream.html ){ return gameStream.html; } var $a=jQuery( '<a/>' ).addClass( '-hd-game-stream-button' ); $a.click( function(e){ e.stopPropagation(); } ); gameStream.targetUrl && $a.attr( 'href', gameStream.targetUrl ); gameStream.target && $a.attr( 'target', gameStream.target ); gameStream.label && $a.html( gameStream.label ); gameStream.imgUrl && $a.append( jQuery( '<img/>' ).attr( 'src', gameStream.imgUrl ) ); gameStream.style && $a.attr( 'style', gameStream.style ); return $a; } return null; }; hockeydata.extend(UtilityLibrary, hockeydata, "util"); })()); ((function(){ function ImageLoader(){} ImageLoader.load=function(src, options){ var img=new Image(); var defaultOptions={ "onload": function(){}, "onerror": function(){ img.className += "-hd-img-error"; } }; options=jQuery.extend({}, defaultOptions, options || {}); img.onload=options.onload; img.onerror=options.onerror; img.src=src; return img; }; hockeydata.extend(ImageLoader, hockeydata.util, "ImageLoader"); })()); ((function(){ function Request(options){ var self=this; this.defaultOptions={ "autoSend" : true, "data": null, "complete": null, "error": null, "success": null, "url": null }; this.defaultData={ "apiKey": "VOID", "lang": "en", "referer": document.domain, "timestamp": (new Date()).getTime() }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.options.data=jQuery.extend({}, this.defaultData, this.options.data || {}); this.xhr=null; this.requests={}; this.complete=false; this.aborted=false; this.send=function(){ this.xhr=jQuery.ajax({ "complete": function(){ self.complete=true; if(!self.aborted && self.options.complete) self.options.complete(); }, "crossDomain": true, "data": this.options.data, "dataType": "jsonp", "error": function(e){ if(!self.aborted && self.options.error) self.options.error(e); }, "success": function(e){ if(!self.aborted && self.options.success){ self.options.success(e); } }, "url": this.options.url }); }; this.abort=function(){ if(!self.complete){ self.complete=true; self.aborted=true; if(self.xhr) self.xhr.abort(); self.xhr=null; } }; if(this.options.autoSend) this.send(); } hockeydata.extend(Request, hockeydata.util, "Request"); })()); ((function(){ var subscriptionContainers={}; var defaultReloadInterval=1000 * 60 * 2; var minReloadInterval=1000 * 10; var checkInterval=1000 * 2; var Data=function(){}; var Subscription=function(subscriptionId, options){ this.options=options || {}; this.subscriptionId=subscriptionId; this.unsubscribe=function(){ if(this.subscriptionId in subscriptionContainers){ var subscriptionContainer=subscriptionContainers[this.subscriptionId]; if(subscriptionContainer){ subscriptionContainer.removeSubscription(this); if(!subscriptionContainer.hasSubscriptions()) delete subscriptionContainers[this.subscriptionId]; } } }; }; var SubscriptionContainer=function(url, requestData, reloadInterval){ var self=this; var subscriptions=[]; var data=null; var status=null; var reloadCount=0; var request=null; var complete=false; var loading=false; var unsubscribed=false; var nextUpdate=0; requestData=requestData || {}; this.reloadInterval=reloadInterval; this.hasData=function(){ return data !== null; }; this.addSubscription=function(subscription){ if(subscription.options.begin) subscription.options.begin(); this.callback(subscription); subscriptions.push(subscription); }; this.removeSubscription=function(subscription){ for(var i=0; i < subscriptions.length; i++){ if(subscriptions[i]===subscription){ subscriptions.splice(i, 1); unsubscribed=true; } } }; this.hasSubscriptions=function(){ return subscriptions.length > 0; }; this.callback=function(subscription){ if(status==="success"){ if(subscription.options.success) subscription.options.success(data); } else if(status==="error"){ if(subscription.options.error) subscription.options.error(data); } if(complete && subscription.options.complete) subscription.options.complete(); }; this.callbackAll=function(){ unsubscribed=false; for(var i=0; i < subscriptions.length; i++){ this.callback(subscriptions[i]); if(unsubscribed){ i--; unsubscribed=false; } } }; this.load=function(){ var now=(new Date()).getTime(); if(nextUpdate <= now){ nextUpdate=now + reloadInterval; if(loading && request) request.abort(); if(reloadCount > 0 && !("r" in requestData)) requestData.r=reloadInterval; for(var i=0; i < subscriptions.length; i++) if(subscriptions[i].options.begin) subscriptions[i].options.begin(); reloadCount++; loading=true; request=new hockeydata["util"]["Request"]({ "complete": function(){ complete=true; loading=false; self.callbackAll(); }, "data": requestData, "error": function(e){ status="error"; data=e; }, "success": function(e){ status=(e["statusId"] > 0 ? "success" : "error"); data=e; }, "url": url }); } }; this.load(); }; var reload=function(){ for(var subscriptionId in subscriptionContainers){ if(subscriptionContainers.hasOwnProperty(subscriptionId)){ var subscriptionContainer=subscriptionContainers[subscriptionId]; subscriptionContainer.load(); } } }; Data.subscribe=function(e){ var defaultOptions={ "reloadInterval": defaultReloadInterval, "url": "" }; var options=jQuery.extend({}, defaultOptions, e || {}); options.reloadInterval=Number(options.reloadInterval); if(isNaN(options.reloadInterval) || options.reloadInterval===0) options.reloadInterval=defaultReloadInterval; if(options.reloadInterval < minReloadInterval) options.reloadInterval=minReloadInterval; var url=options.url; var subscriptionId=url + "_" + (jQuery.isPlainObject(options.data) ? JSON.stringify(options.data) : "") + "_" + options.reloadInterval; var subscription=new Subscription(subscriptionId, options); var subscriptionContainer=(subscriptionId in subscriptionContainers) ? subscriptionContainers[subscriptionId] : null; if(!subscriptionContainer){ subscriptionContainer=new SubscriptionContainer(url, options.data, options.reloadInterval); subscriptionContainers[subscriptionId]=subscriptionContainer; } subscriptionContainer.addSubscription(subscription); return subscription; }; Data.error=function(e, $domNode){ e=e || {}; $domNode.html(jQuery("<div/>").addClass("-hd-error -hd-data-error").html("Loading Data failed! Status Id: " + (e["statusId"] || e.status || "unknnown") + ", Status Text: " + (e["statusMsg"] || e.statusText || "unknnown") + ", Data: [" + (JSON.stringify(e.data) || "none") + "]")); }; setInterval(reload, checkInterval); hockeydata.extend(Data, hockeydata["util"], "Data"); })()); ((function(){ var testDomains=[ "apidev.hockeydata.net", "cloud01dev.hockeydata.net" ]; var isProd=-1===testDomains.indexOf(document.domain); var apiHost="https://" + ( isProd ? "api.hockeydata.net" : document.domain ) + "/"; var myTeamHost=isProd ? "https://myteam.hockeydata.net/" : "https://myteamdev.hockeydata.net/"; var dataPaths={ "americanfootball": "data_af", "icehockey": "data" }; var imgPath="img/"; var dataUriConfiguration={ "getStandings": function(options){ var uri=""; if(options.league) uri += options.league + "/"; return uri + "Standings"; }, "getSchedule": function(options){ var uri=""; if(options.league) uri += options.league + "/"; return uri + "Schedule"; }, "getTeamStats": function(options){ var uri=""; if(options.league) uri += options.league + "/"; return uri + "Team" + (options.type || "Stats"); }, "getLeaders": function(options){ var uri=""; if(options.league) uri += options.league + "/"; return uri + "Leader" + (options.type || "Stats"); }, "getGameInfo": function(options){ var uri=""; if(options.league) uri += options.league + "/"; return uri + "GameInfo"; }, "getGamePlayByPlay": function(options){ var uri=""; if(options.league) uri += options.league + "/"; return uri + "GamePlayByPlay"; }, "getGameTeamStats": function(options){ var uri=""; if(options.league) uri += options.league + "/"; return uri + "GameTeamStats"; }, "getGamePlayerStats": function(options){ var uri=""; if(options.league) uri += options.league + "/"; return uri + "GamePlayerStats"; }, "getGameReport": function(options){ var uri=""; if(options.league) uri += options.league + "/"; return uri + "GetGameReport"; }, "getTeamDetails": function(options){ var uri=""; if(options.league) uri += options.league + "/"; return uri + "GetTeamDetails"; }, "getPlayerCareerStats": function(options){ var uri=""; if(options.league) uri += options.league + "/"; return uri + "GetPlayerCareerStats"; }, "getPlayerDetails": function(options){ var uri=""; if(options.league) uri += options.league + "/"; return uri + "GetPlayerDetails"; }, "getPlayers": function(options){ var uri=""; if(options.league) uri += options.league + "/"; return uri + "GetAllPlayers"; }, "getKnockoutStage": function(options){ var uri=""; if(options.league) uri += options.league + "/"; return uri + "KnockoutStage"; }, "getTimeOnIce": function(options){ var uri=""; if(options.league) uri += options.league + "/"; return uri + "TimeOnIceSnapshot"; }, "getAds": "pa/GetPageAccessStats", "adTrack": "pa/PageAccessTrack" }; function UriComposer(){} function getDataPath(options){ var sport=jQuery.isPlainObject(options) && ("sport" in options) ? options.sport : null; return (sport in dataPaths) ? (dataPaths[sport] + "/") : ""; } UriComposer.getDataUri=function(serviceName, options){ var uri=apiHost + getDataPath(options); if(serviceName in dataUriConfiguration){ var config=dataUriConfiguration[serviceName]; if(jQuery.isFunction(config)) uri += config(options); else uri += dataUriConfiguration[serviceName]; } return uri; }; UriComposer.parseUri=function(link, id){ var generatedUri=null; if(link && id){ if(jQuery.isFunction(link)) generatedUri=link(id); else if(hockeydata["util"].isString(link)) generatedUri=hockeydata["util"].sprintf(link, id); } return generatedUri; }; UriComposer.getTeamLogoUri=function(options){ options=options || {}; var uri=apiHost + imgPath + options.sport + "/" + options.league + "/team-logos/"; if(options.divisionId) uri += options.divisionId + "/"; return uri + options.teamId + ".png"; }; UriComposer.getTeamPictureUri=function(options){ options=options || {}; return apiHost + imgPath + options.sport + "/" + options.league + "/team-pictures/" + options.divisionId + "/" + options.teamId + ".jpg"; }; UriComposer.getPlayerPortraitUri=function(options){ options=options || {}; var uri=apiHost + imgPath + options.sport + "/" + options.league + "/player-portraits/"; if(options.divisionId) uri += options.divisionId + "/"; return uri + options.playerId + ".png"; }; UriComposer.getBroadcasterLogoUri=function(options){ options=options || {}; return apiHost + imgPath + "_static/broadcasters/" + options.broadcasterId + ".png"; }; UriComposer.getGhostPlayerPortraitUri=function(options){ options=options || {}; return apiHost + imgPath + options.sport + "/_static/ghost-player.png"; }; UriComposer.getNationFlagUri=function(options){ options=options || {}; return apiHost + imgPath + "_static/flags/" + options.nation + ".png"; }; UriComposer.getMyTeamPlayerRegistrationUrl=function(){ return myTeamHost + "myteam/data-asp/api/SavePerson"; }; UriComposer.getMyTeamUploadUrl=function(){ return myTeamHost + "myteam/data-asp/api/UploadFile"; }; UriComposer.getGameDocumentUrl=function(docType, data, options){ var uri=apiHost + getDataPath(options); var params=[]; if(options.league) uri += options.league + "/"; params.push("docType=" + docType); params.push("apiKey=" + options.apiKey); params.push("referer=" + document.domain); params.push("timestamp=" + (new Date()).getTime()); params.push("gameId=" + data.id); params.push("lang=en"); return uri + "GameDocument?" + params.join("&"); }; hockeydata.extend(UriComposer, hockeydata["util"], "UriComposer"); })()); ((function(){ function AdPlaceholder(options){ this.defaultOptions={ "apiKey": "VOID" }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); } AdPlaceholder.adQuantifier=1000; hockeydata.extend(AdPlaceholder, hockeydata["util"], "AdPlaceholder"); })()); ((function(){ var adSpaces=[]; var AdController=function(){}; var AdHandler=function(){ var self=this; var initialized=false; var initTimeout=null; var defaultOptions={ "apiKey": "VOID", "dataUrlAds": null }; this.options=null; this.registerSpace=function(adSpace){ adSpaces.push(adSpace); if(!initialized){ initTimeout && clearTimeout(initTimeout); initTimeout=setTimeout(function(){ initialize(adSpace.options); }, 200); } }; this.unregisterSpace=function(adSpace){ for(var i=0; i < adSpaces.length; i++){ if(adSpace===adSpaces[i]){ adSpace.destroy(); adSpaces.splice(i, 1); return true; } } return false; }; var initialize=function(options){ initialized=true; self.options=jQuery.extend({}, defaultOptions, options || {}); if(!self.options.dataUrlAds) self.options.dataUrlAds=hockeydata["util"]["UriComposer"].getDataUri("getAds", self.options); new hockeydata["util"]["Request"]({ "data": { "apiKey": self.options.apiKey, "screenResolution": hockeydata["util"].getScreenResolution() }, "success": function(e){ e["statusId"] > 0 && e.data && processAds(e.data); }, "url": self.options.dataUrlAds }); }; var processAds=function(ads){ for(var i=0; i < ads.length; i++) displayAd(ads[i]); }; var getFreeAdSpace=function(){ var adSpace=null; for(var i=0; i < adSpaces.length; i++) if(!adSpaces[i].hasAd() && (!adSpace || (adSpaces[i].getAdQuantifier() > adSpace.getAdQuantifier()))) adSpace=adSpaces[i]; return adSpace; }; var displayAd=function(ad){ var freeAdSpace=getFreeAdSpace(); freeAdSpace && freeAdSpace.setAd(ad); }; }; var AdSpace=function(options){ var self=this; var defaultOptions={ "apiKey": "VOID", "$domNode": jQuery("<div/>"), "adQuantifier": 0, "sport": null }; var ad=null; this.options=jQuery.extend({}, defaultOptions, options || {}); var initialize=function(){ self.options.$domNode.addClass("-hd-util-ad-space"); }; this.setAd=function(adData){ ad=new Ad({ "$domNode": jQuery("<div/>").appendTo(this.options.$domNode), "apiKey": self.options.apiKey, "id": adData.id, "imageUrl": adData.content.imageUrl, "html": adData.content.html, "javascript": adData.content.javascript, "sport": self.options.sport }); }; this.destroy=function(){ ad && ad.destroy(); this.options.$domNode && this.options.$domNode.empty(); }; this.hasAd=function(){ return (ad !== null); }; this.getAdQuantifier=function(){ return this.options.adQuantifier; }; initialize(); }; var Ad=function(options){ var self=this; var defaultOptions={ "$domNode": jQuery("<div/>"), "apiKey": "VOID", "dataUrlAdTrack": null, "id": null, "imageUrl": null, "html": null, "javascript": null, "sport": null, "noticeText": hockeydata["i18n"].translate("Anzeige") }; this.options=jQuery.extend({}, defaultOptions, options || {}); var initialize=function(){ if(!self.options.dataUrlAdTrack) self.options.dataUrlAdTrack=hockeydata["util"]["UriComposer"].getDataUri("adTrack", self.options); self.options.$domNode.addClass("-hd-util-ad"); if(self.options.imageUrl){ var $imgContainer=jQuery("<div/>").addClass("-hd-util-ad-image").appendTo(self.options.$domNode); var img=new Image(); img.onload=function(){ var $a=jQuery("<a/>"); var url=self.options.dataUrlAdTrack + "?adId=" + self.options.id + "&apiKey=" + self.options.apiKey + "&screenResolution=" + hockeydata["util"].getScreenResolution(); $a.attr("href", url); $a.attr("target", "_blank"); $a.appendTo($imgContainer); $a.append(img); }; img.src=self.options.imageUrl; } if(self.options.html) jQuery("<div/>").addClass("-hd-util-ad-html").html(self.options.html).appendTo(self.options.$domNode); if(self.options.javascript){ var $javascriptContainer=jQuery("<div/>").addClass("-hd-util-ad-javascript").appendTo(self.options.$domNode); (function($domNode){ eval(self.options.javascript); })($javascriptContainer); } jQuery("<div/>").addClass("-hd-util-ad-notice").html(self.options.noticeText).appendTo(self.options.$domNode); }; this.destroy=function(){ self.$domNode.empty(); }; initialize(); }; var adHandler=new AdHandler(); AdController.createSpace=function(options){ var adSpace=new AdSpace(options); adHandler.registerSpace(adSpace); }; AdController.removeSpace=function(adSpace){ adHandler.unregisterSpace(adSpace); }; hockeydata.extend(AdController, hockeydata["util"], "AdController"); })()); ( ( function(){ function ResponsiveDesign( options ){ var _defaultOptions={ $domNode: jQuery( '<div/>' ), breakpoints: [ { size: 1200, name: 'large-desktop' }, { size: 992, name: 'desktop' }, { size: 768, name: 'tablet' }, { size: 576, name: 'large-mobile' } ], classNameBase: '-hd-rd-', interval: 100 }, _options=jQuery.extend( {}, _defaultOptions, options || {} ), _timer=0, _className=null, _domNodeWidth=null; var _initialize=function(){ _watchDog(); _timer=setInterval( _watchDog, _options.interval ); }; var _getClassName=function( width ){ for( var i=0; i < _options.breakpoints.length; i++ ){ var breakpoint=_options.breakpoints[ i ]; if( width >= breakpoint.size ){ return _options.classNameBase + breakpoint.name; } } return _options.classNameBase + 'mobile'; }; var _watchDog=function(){ var width=_options.$domNode.width(); if( _className===null || _domNodeWidth===null || _domNodeWidth !== width){ _className && _options.$domNode.removeClass( _className ); _domNodeWidth=width; _className=_getClassName( width ); _options.$domNode.addClass( _className ); } }; this.destroy=function(){ _className && _options.$domNode.removeClass( _className ); _timer && clearInterval( _timer ); }; _initialize(); } hockeydata.extend( ResponsiveDesign, hockeydata[ 'util' ], 'ResponsiveDesign' ); } )() ); ((function(){ function Widget(options){ var self=this; this.instance=null; this.defaultOptions={ "$domNode": jQuery("<div/>"), "autoReload": false, "responsive": true, "widgetName": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.widgetName=this.options.widgetName; this.widgetClass=null; this.$domNode=this.options.$domNode; this.adSpace=null; this.responsiveDesign=null; this.initialize=function(){ this.$domNode.addClass("-hd-widget"); if(this.widgetName){ this.widgetClass=eval(this.widgetName); if(this.widgetClass){ this.instance=new this.widgetClass(jQuery.extend({}, this.options, { "$domNode": jQuery("<div/>").appendTo(this.$domNode) })); if(this.widgetClass.adQuantifier && this.options.sport==="americanfootball"){ this.adSpace=hockeydata["util"]["AdController"].createSpace(jQuery.extend({}, this.options, { "adQuantifier": this.widgetClass.adQuantifier, "$domNode": jQuery("<div/>").appendTo(this.$domNode) })); } if(this.options.responsive) this.responsiveDesign=new hockeydata["util"]["ResponsiveDesign"]({ "$domNode": this.$domNode }); } else { this.$domNode.html(jQuery("<div/>").addClass("-hd-error").html("Error: Widget [" + this.widgetName + "] not found. See Console for details.")); console && console.error && console.error("The Widget Class [" + this.widgetName + "] was not found. Make sure to load the class with the hockeydata API and check the class name's spelling. Class names are case-sensitive."); } } }; this.destroy=function(){ if(jQuery.isFunction(this.instance.destroy)) this.instance.destroy(); this.$domNode.empty(); this.instance=null; this.defaultOptions=null; this.options=null; this.widgetName=null; this.widgetClass=null; this.$domNode=null; this.initialize=null; self=null; delete this.instance; delete this.defaultOptions; delete this.options; delete this.widgetName; delete this.widgetClass; delete this.$domNode; delete this.initialize; hockeydata["util"]["AdController"].removeSpace(this.adSpace); this.responsiveDesign && this.responsiveDesign.destroy(); }; this.initialize(); } hockeydata.extend(Widget, hockeydata["util"], "Widget"); })()); ((function(){ function WidgetParser($domNode){ this.$domNode=$domNode; this.parse=function(){ this.$domNode.find("[data-hd-widget]").each(function(){ var $this=jQuery(this); if(!$this.hasClass("-hd-widget-parsed")){ var widgetName=$this.attr("data-hd-widget"); var options=$this.attr("data-hd-widget-options"); if(options){ try { options=JSON.parse(options); } catch (e){ options={}; $this.addClass("-hd-error").append("ERROR: Invalid widget options: data-hd-widget-options is not a valid JSON [" + e + "]."); } } else { options={}; $this.addClass("-hd-error").append("ERROR: Widget options not found: attribute data-hd-widget-options is missing."); } if("targetElement" in options) options.$domNode=jQuery(options["targetElement"]); if(!("$domNode" in options)) options.$domNode=$this; if(!("widgetName" in options)) options.widgetName=widgetName; options.$domNode.addClass("-hd -hd-widget-parsed"); new hockeydata.util.Widget(options); } }); } } hockeydata.extend(WidgetParser, hockeydata.util, "WidgetParser"); hockeydata.enqueue(function(){ var wp=new hockeydata.util["WidgetParser"](jQuery("body")); wp.parse(); }); })()); ((function(){ function LosLibrary(){} hockeydata.extend(LosLibrary, hockeydata, "los"); })()); ((function(){ function Configuration(){} Configuration.tableColumnDefinition={}; Configuration.tableRowDefinition={}; Configuration.fieldDefinition={}; Configuration.columnSets={}; Configuration.rowSets={}; Configuration.fieldSets={}; Configuration.windDirections={ 0: hockeydata["i18n"].translate("N", "North"), 1: hockeydata["i18n"].translate("NE", "North East"), 2: hockeydata["i18n"].translate("E", "East"), 3: hockeydata["i18n"].translate("SE", "South East"), 4: hockeydata["i18n"].translate("S", "South"), 5: hockeydata["i18n"].translate("SW", "South West"), 6: hockeydata["i18n"].translate("W", "West"), 7: hockeydata["i18n"].translate("NW", "North West") }; Configuration.extendedStates={ 10: hockeydata["i18n"].translate("Absage / mit Neuaustragung"), 11: hockeydata["i18n"].translate("Absage / ersatzlose Streichung"), 20: hockeydata["i18n"].translate("Abbruch / Wertung erfolgt"), 21: hockeydata["i18n"].translate("Abbruch / ohne Wertung"), 30: hockeydata["i18n"].translate("Forfeited"), 31: hockeydata["i18n"].translate("Forfeited against both Teams") }; Configuration.playerPositions={}; Configuration.playerCareerStatsCategories={}; Configuration.teamFullPageStatsCategories={}; Configuration.getTableColumnDefinition=function(options){ options=jQuery.isPlainObject(options) ? options : { "sport": null, "league": null, "type": null }; if(("sport" in options) && options.sport){ var sportConfiguration=Configuration.tableColumnDefinition[options.sport]; if(sportConfiguration){ var leagueConfiguration=sportConfiguration; var typeConfiguration=null; if(("type" in options) && options.type && (options.type in leagueConfiguration)) typeConfiguration=leagueConfiguration[options.type]; if(("league" in options) && options.league && (options.league in leagueConfiguration)) leagueConfiguration=leagueConfiguration[options.league]; if(("type" in options) && options.type && (options.type in leagueConfiguration)) typeConfiguration=leagueConfiguration[options.type]; return jQuery.extend(true, {}, typeConfiguration || {}); } } return {}; }; Configuration.getTableRowDefinition=function(options){ options=jQuery.isPlainObject(options) ? options : { "sport": null, "league": null, "type": null }; if(("sport" in options) && options.sport){ var sportConfiguration=Configuration.tableRowDefinition[options.sport]; if(sportConfiguration){ var leagueConfiguration=sportConfiguration; var typeConfiguration=null; if(("type" in options) && options.type && (options.type in leagueConfiguration)) typeConfiguration=leagueConfiguration[options.type]; if(("league" in options) && options.league && (options.league in leagueConfiguration)) leagueConfiguration=leagueConfiguration[options.league]; if(("type" in options) && options.type && (options.type in leagueConfiguration)) typeConfiguration=leagueConfiguration[options.type]; return jQuery.extend(true, {}, typeConfiguration); } } return {}; }; Configuration.getFieldDefinition=function(options){ options=jQuery.isPlainObject(options) ? options : { "sport": null, "league": null, "type": null }; if(("sport" in options) && options.sport){ var sportConfiguration=Configuration.fieldDefinition[options.sport]; if(sportConfiguration){ var leagueConfiguration=sportConfiguration; var typeConfiguration=null; if(("type" in options) && options.type && (options.type in leagueConfiguration)) typeConfiguration=leagueConfiguration[options.type]; if(("league" in options) && options.league && (options.league in leagueConfiguration)) leagueConfiguration=leagueConfiguration[options.league]; if(("type" in options) && options.type && (options.type in leagueConfiguration)) typeConfiguration=leagueConfiguration[options.type]; return jQuery.extend(true, {}, typeConfiguration); } } return {}; }; Configuration.getTableColumns=function(options){ options=jQuery.isPlainObject(options) ? options : { "sport": null, "league": null, "type": null, "columnSet": null }; if(("sport" in options) && options.sport){ var sportConfiguration=Configuration.columnSets[options.sport]; if(sportConfiguration){ var leagueConfiguration=sportConfiguration; var typeConfiguration=null; if(("type" in options) && options.type && (options.type in leagueConfiguration)) typeConfiguration=leagueConfiguration[options.type]; if(("league" in options) && options.league && (options.league in leagueConfiguration)) leagueConfiguration=leagueConfiguration[options.league]; if(("type" in options) && options.type && (options.type in leagueConfiguration)) typeConfiguration=leagueConfiguration[options.type]; if(typeConfiguration && ("columnSet" in options) && options.columnSet && (options.columnSet in typeConfiguration)) return jQuery.extend(true, [], typeConfiguration[options.columnSet]); if(typeConfiguration && ("default" in typeConfiguration)) return jQuery.extend(true, [], typeConfiguration["default"]); } } return []; }; Configuration.getTableRows=function(options){ options=jQuery.isPlainObject(options) ? options : { "sport": null, "league": null, "type": null, "rowSet": null }; if(("sport" in options) && options.sport){ var sportConfiguration=Configuration.rowSets[options.sport]; if(sportConfiguration){ var leagueConfiguration=sportConfiguration; var typeConfiguration=null; if(("type" in options) && options.type && (options.type in leagueConfiguration)) typeConfiguration=leagueConfiguration[options.type]; if(("league" in options) && options.league && (options.league in leagueConfiguration)) leagueConfiguration=leagueConfiguration[options.league]; if(("type" in options) && options.type && (options.type in leagueConfiguration)) typeConfiguration=leagueConfiguration[options.type]; if(typeConfiguration && ("rowSet" in options) && options.rowSet && (options.rowSet in typeConfiguration)) return jQuery.extend(true, [], typeConfiguration[options.rowSet]); if(typeConfiguration && ("default" in typeConfiguration)) return jQuery.extend(true, [], typeConfiguration["default"]); } } return []; }; Configuration.getFields=function(options){ options=jQuery.isPlainObject(options) ? options : { "sport": null, "league": null, "type": null, "fieldSet": null }; if(("sport" in options) && options.sport){ var sportConfiguration=Configuration.fieldSets[options.sport]; if(sportConfiguration){ var leagueConfiguration=sportConfiguration; var typeConfiguration=null; if(("type" in options) && options.type && (options.type in leagueConfiguration)) typeConfiguration=leagueConfiguration[options.type]; if(("league" in options) && options.league && (options.league in leagueConfiguration)) leagueConfiguration=leagueConfiguration[options.league]; if(("type" in options) && options.type && (options.type in leagueConfiguration)) typeConfiguration=leagueConfiguration[options.type]; if(typeConfiguration && ("fieldSet" in options) && options.fieldSet && (options.fieldSet in typeConfiguration)) return jQuery.extend(true, [], typeConfiguration[options.fieldSet]); if(typeConfiguration && ("default" in typeConfiguration)) return jQuery.extend(true, [], typeConfiguration["default"]); } } return []; }; Configuration.getWindDirection=function(windDirectionIndex){ return (windDirectionIndex in Configuration.windDirections) ? Configuration.windDirections[windDirectionIndex] : ""; }; Configuration.getPlayerPosition=function(playerPosition, sport){ return (sport in Configuration.playerPositions) && (playerPosition in Configuration.playerPositions[sport] ? Configuration.playerPositions[sport][playerPosition] : ""); }; Configuration.extendColumns=function(columns, additionalColumns){ if(hockeydata["util"].isString(additionalColumns)) additionalColumns=additionalColumns.split(","); if(hockeydata["util"].isArray(additionalColumns)){ for(var i=0; i < additionalColumns.length; i++){ var additionalColumn=additionalColumns[i]; if(jQuery.isPlainObject(additionalColumn)){ var position=("position" in additionalColumn) ? Number(additionalColumn.position) : -1; var column=("column" in additionalColumn) ? additionalColumn.column : null; if(column !== null) columns.splice(position, 0, column); } else if(hockeydata["util"].isString(additionalColumn)) columns.push(additionalColumn); } } }; Configuration.getExtendedStateLabel=function(state){ return (state in Configuration.extendedStates) ? Configuration.extendedStates[state] : ""; }; Configuration.getPlayerCareerStatsCategories=function(sport){ return (sport in Configuration.playerCareerStatsCategories) ? Configuration.playerCareerStatsCategories[sport] : []; }; Configuration.getTeamFullPageStatsCategories=function(sport){ return (sport in Configuration.teamFullPageStatsCategories) ? Configuration.teamFullPageStatsCategories[sport] : []; }; hockeydata.extend(Configuration, hockeydata["los"], "Configuration"); })()); ((function(){ var sport="americanfootball"; var getGameStreams=function(dataRow){ var $streams=jQuery("<div/>").addClass("-hd-los-schedule-game-streams"); if(dataRow.streams && dataRow.streams.length){ for(var i=0; i < dataRow.streams.length; i++){ var gameStream=hockeydata.util.getGameStreamButton(dataRow.streams[i]); gameStream && $streams.append(gameStream); } } return $streams; }; if(!(sport in hockeydata["los"]["Configuration"].tableColumnDefinition)) hockeydata["los"]["Configuration"].tableColumnDefinition[sport]={}; if(!(sport in hockeydata["los"]["Configuration"].tableRowDefinition)) hockeydata["los"]["Configuration"].tableRowDefinition[sport]={}; if(!(sport in hockeydata["los"]["Configuration"].columnSets)) hockeydata["los"]["Configuration"].columnSets[sport]={}; if(!(sport in hockeydata["los"]["Configuration"].rowSets)) hockeydata["los"]["Configuration"].rowSets[sport]={}; if(!(sport in hockeydata["los"]["Configuration"].playerCareerStatsCategories)){ hockeydata["los"]["Configuration"].playerCareerStatsCategories[sport]=[ { "key": "passing", "name": "Passing", "title": hockeydata["i18n"].translate("Passing") }, { "key": "receiving", "name": "Receiving", "title": hockeydata["i18n"].translate("Receiving") }, { "key": "rushing", "name": "Rushing", "title": hockeydata["i18n"].translate("Rushing") }, { "key": "defense", "name": "Defense", "title": hockeydata["i18n"].translate("Defense") } ]; } if(!(sport in hockeydata["los"]["Configuration"].teamFullPageStatsCategories)){ hockeydata["los"]["Configuration"].teamFullPageStatsCategories[sport]=[ { "key": "teamFieldGoals", "name": "FieldGoals", "title": hockeydata["i18n"].translate("Field Goals") }, { "key": "teamFirstDownsDefense", "name": "FirstDowns", "title": hockeydata["i18n"].translate("First Downs - Defense") }, { "key": "teamFirstDownsOffense", "name": "FirstDowns", "title": hockeydata["i18n"].translate("First Downs - Offense") }, { "key": "teamFourthDownConversions", "name": "ThirdDownConversions", "title": hockeydata["i18n"].translate("4th Down Conversions") }, { "key": "teamKickoffCoverage", "name": "KickoffCoverage", "title": hockeydata["i18n"].translate("Kickoff Coverage") }, { "key": "teamKickoffReturns", "name": "KickoffReturns", "title": hockeydata["i18n"].translate("Kickoff Returns") }, { "key": "teamPassingDefense", "name": "Passing", "title": hockeydata["i18n"].translate("Passing - Defense") }, { "key": "teamPassingOffense", "name": "Passing", "title": hockeydata["i18n"].translate("Passing - Offense") }, { "key": "teamPatKicks", "name": "PATKicks", "title": hockeydata["i18n"].translate("PAT Kicks") }, { "key": "teamPenalties", "name": "Penalties", "title": hockeydata["i18n"].translate("Penalties") }, { "key": "teamPuntReturns", "name": "PuntReturns", "title": hockeydata["i18n"].translate("Punt Returns") }, { "key": "teamPunts", "name": "Punts", "title": hockeydata["i18n"].translate("Punts") }, { "key": "teamRushingDefense", "name": "Rushing", "title": hockeydata["i18n"].translate("Rushing - Defense") }, { "key": "teamRushingOffense", "name": "Rushing", "title": hockeydata["i18n"].translate("Rushing - Offense") }, { "key": "teamScoringDefense", "name": "Scoring", "title": hockeydata["i18n"].translate("Scoring - Defense") }, { "key": "teamScoringOffense", "name": "Scoring", "title": hockeydata["i18n"].translate("Scoring - Offense") }, { "key": "teamThirdDownConversions", "name": "ThirdDownConversions", "title": hockeydata["i18n"].translate("3rd Down Conversions") }, { "key": "teamTimeOfPossession", "name": "TimeOfPossession", "title": hockeydata["i18n"].translate("Time Of Possession") }, { "key": "teamTotalOffenseDefense", "name": "Total", "title": hockeydata["i18n"].translate("Total - Defense") }, { "key": "teamTotalOffenseOffense", "name": "Total", "title": hockeydata["i18n"].translate("Total - Offense") } ]; } hockeydata["los"]["Configuration"].tableColumnDefinition[sport].standings={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-standings-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.id })); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Team Id") } }, "teamLongname": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "teamShortname": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "gamesPlayed": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "gamesWon": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("W", "Games Won"), "title": hockeydata["i18n"].translate("Games Won"), "class": "-hd-util-intellitable-numeric-value" } }, "gamesLost": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("L", "Games Lost"), "title": hockeydata["i18n"].translate("Games Lost"), "class": "-hd-util-intellitable-numeric-value" } }, "gamesTied": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("T", "Ties"), "title": hockeydata["i18n"].translate("Ties"), "class": "-hd-util-intellitable-numeric-value" } }, "winPercentage": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Pct", "Win Percentage"), "title": hockeydata["i18n"].translate("Win Percentage"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 3); } }, "points35Plus": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("P35+"), "title": hockeydata["i18n"].translate("Points 35+"), "class": "-hd-util-intellitable-numeric-value" } }, "points35Minus": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("P35-"), "title": hockeydata["i18n"].translate("Points 35-"), "class": "-hd-util-intellitable-numeric-value" } }, "tableRank": { "class": "-hd-util-intellitable-rank-value", "header": { "html": "&nbsp;", "class": "-hd-util-intellitable-rank-value" } }, "pointsPlus": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("P+"), "title": hockeydata["i18n"].translate("Points+"), "class": "-hd-util-intellitable-numeric-value" }, "fn": function(dataRow){ return dataRow.points35Plus; } }, "pointsMinus": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("P-"), "title": hockeydata["i18n"].translate("Points-"), "class": "-hd-util-intellitable-numeric-value" }, "fn": function(dataRow){ return dataRow.points35Minus; } }, "points": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("P"), "title": hockeydata["i18n"].translate("Points"), "class": "-hd-util-intellitable-numeric-value" } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].schedule={ "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Game Id") } }, "scheduledDate": { "class": "-hd-util-intellitable-date-value -hd-los-schedule-scheduled-date", "header": { "class": "-hd-util-intellitable-date-value -hd-los-schedule-scheduled-date", "html": hockeydata["i18n"].translate("Date"), "title": hockeydata["i18n"].translate("Scheduled Date") }, "fn": function(dataRow){ return (dataRow.scheduledDate && !dataRow["dateIsToBeDetermined"] ? dataRow.scheduledDate["formattedShort"] : hockeydata["i18n"].translate("TBD")) } }, "scheduledTime": { "class": "-hd-util-intellitable-time-value -hd-los-schedule-scheduled-time", "header": { "class": "-hd-util-intellitable-time-value -hd-los-schedule-scheduled-time", "html": hockeydata["i18n"].translate("Time"), "title": hockeydata["i18n"].translate("Scheduled Time") }, "fn": function(dataRow){ return (dataRow["timeIsToBeDetermined"] ? hockeydata["i18n"].translate("TBD") : dataRow.scheduledTime); } }, "scheduledDateTime": { "class": "-hd-util-intellitable-date-value -hd-los-schedule-scheduled-date", "header": { "class": "-hd-util-intellitable-date-value -hd-los-schedule-scheduled-date", "html": hockeydata["i18n"].translate("Date & Time"), "title": hockeydata["i18n"].translate("Scheduled Date and Time") }, "fn": function(dataRow){ return "<div>" + (dataRow.scheduledDate && !dataRow["dateIsToBeDetermined"] ? dataRow.scheduledDate["formattedShort"] : hockeydata["i18n"].translate("TBD")) + "</div><div>" + (dataRow["timeIsToBeDetermined"] ? hockeydata["i18n"].translate("TBD") : dataRow.scheduledTime) + "</div>"; } }, "scheduledDateTimeShort": { "class": "-hd-util-intellitable-date-value -hd-los-schedule-scheduled-date", "header": { "class": "-hd-util-intellitable-date-value -hd-los-schedule-scheduled-date", "html": hockeydata["i18n"].translate("Date & Time"), "title": hockeydata["i18n"].translate("Scheduled Date and Time") }, "fn": function(dataRow){ return "<span>" + (dataRow.scheduledDate && !dataRow["dateIsToBeDetermined"] ? dataRow.scheduledDate["formattedShort"] : hockeydata["i18n"].translate("TBD")) + "</span><span>" + (dataRow["timeIsToBeDetermined"] ? hockeydata["i18n"].translate("TBD") : dataRow.scheduledTime) + "</span>"; } }, "homeTeamLongname": { "class": "-hd-los-schedule-home-team-name -hd-los-schedule-team-name-long", "header": { "class": "-hd-los-schedule-home-team-name -hd-los-schedule-team-name-long", "html": hockeydata["i18n"].translate("Home"), "title": hockeydata["i18n"].translate("Home Team") } }, "homeTeamShortname": { "class": "-hd-los-schedule-home-team-name -hd-los-schedule-team-name-short", "header": { "class": "-hd-los-schedule-home-team-name -hd-los-schedule-team-name-short", "html": hockeydata["i18n"].translate("Home"), "title": hockeydata["i18n"].translate("Home Team") } }, "homeTeamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-schedule-home-team-logo", "header": { "class": "-hd-los-schedule-home-team-logo", "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.homeTeamId })); } }, "homeTeamScore": { "class": "-hd-los-schedule-home-team-score -hd-los-schedule-score -hd-util-intellitable-numeric-value", "header": { "class": "-hd-los-schedule-home-team-score -hd-los-schedule-score -hd-util-intellitable-numeric-value", "html": "&nbsp;" }, "fn": function(dataRow){ return dataRow.gameStatus ? dataRow.homeTeamScore : "-"; } }, "vs": { "class": "-hd-los-schedule-vs", "header": { "html": "&nbsp;" }, "fn": function(){ return hockeydata["i18n"].translate("vs."); } }, "awayTeamScore": { "class": "-hd-los-schedule-away-team-score -hd-los-schedule-score -hd-util-intellitable-numeric-value", "header": { "class": "-hd-los-schedule-away-team-score -hd-los-schedule-score -hd-util-intellitable-numeric-value", "html": "&nbsp;" }, "fn": function(dataRow){ return dataRow.gameStatus ? dataRow.awayTeamScore : "-"; } }, "awayTeamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-schedule-away-team-logo", "header": { "class": "-hd-los-schedule-away-team-logo", "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.awayTeamId })); } }, "awayTeamShortname": { "class": "-hd-los-schedule-away-team-name -hd-los-schedule-team-name-short", "header": { "class": "-hd-los-schedule-away-team-name -hd-los-schedule-team-name-short", "html": hockeydata["i18n"].translate("Away"), "title": hockeydata["i18n"].translate("Away Team") } }, "awayTeamLongname": { "class": "-hd-los-schedule-away-team-name -hd-los-schedule-team-name-long", "header": { "class": "-hd-los-schedule-away-team-name -hd-los-schedule-team-name-long", "html": hockeydata["i18n"].translate("Away"), "title": hockeydata["i18n"].translate("Away Team") } }, "locationShortname": { "header": { "html": hockeydata["i18n"].translate("Location"), "title": hockeydata["i18n"].translate("Location") }, "fn": function(dataRow){ if(("location" in dataRow) && dataRow.location) return dataRow.location["shortname"]; return "&nbsp;"; } }, "locationShortnameLinked": { "header": { "html": hockeydata["i18n"].translate("Location"), "title": hockeydata["i18n"].translate("Location") }, "fn": function(dataRow){ if(("location" in dataRow) && dataRow.location){ if(("googleMapsUrl" in dataRow.location) && dataRow.location["googleMapsUrl"]) return jQuery("<a/>").attr({ "target": "_blank", "href": dataRow.location["googleMapsUrl"] }).click(function(e){ e.stopPropagation(); }).html(dataRow.location["shortname"]); return dataRow.location["shortname"]; } return "&nbsp;"; } }, "locationLongname": { "header": { "html": hockeydata["i18n"].translate("Location"), "title": hockeydata["i18n"].translate("Location") }, "fn": function(dataRow){ if(("location" in dataRow) && dataRow.location) return dataRow.location["longname"]; return "&nbsp;"; } }, "locationLongnameLinked": { "header": { "html": hockeydata["i18n"].translate("Location"), "title": hockeydata["i18n"].translate("Location") }, "fn": function(dataRow){ if(("location" in dataRow) && dataRow.location){ if(("googleMapsUrl" in dataRow.location) && dataRow.location["googleMapsUrl"]) return jQuery("<a/>").attr({ "target": "_blank", "href": dataRow.location["googleMapsUrl"] }).click(function(e){ e.stopPropagation(); }).html(dataRow.location["longname"]); return dataRow.location["longname"]; } return "&nbsp;"; } }, "scoreInfo": { "header": { "html": "&nbsp;" }, "fn": function(dataRow){ var ret="&nbsp;"; if(dataRow["isOvertime"]) ret="<span class='-hd-los-schedule-overtime'>" + hockeydata["i18n"].translate("OT", "Overtime") + "</span>"; return ret; } }, "gameStreams": { "fn": getGameStreams } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamStatsScoring={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-team-stats-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.id })); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Team Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "gamesPlayed": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "touchdowns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TD", "Touchdowns"), "title": hockeydata["i18n"].translate("Touchdowns"), "class": "-hd-util-intellitable-numeric-value" } }, "extraPoints": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("XP", "Extra Points"), "title": hockeydata["i18n"].translate("Extra Points"), "class": "-hd-util-intellitable-numeric-value" } }, "twoPointConversions": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("2XP", "2-Point Conversions"), "title": hockeydata["i18n"].translate("2-Point Conversions"), "class": "-hd-util-intellitable-numeric-value" } }, "twoPointConversionsByDefense": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("DXP", "2-Point Conversions by Defense"), "title": hockeydata["i18n"].translate("2-Point Conversions by Defense"), "class": "-hd-util-intellitable-numeric-value" } }, "fieldGoals": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("FG", "Field Goals"), "title": hockeydata["i18n"].translate("Field Goals"), "class": "-hd-util-intellitable-numeric-value" } }, "safeties": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Sft", "Safeties"), "title": hockeydata["i18n"].translate("Safeties"), "class": "-hd-util-intellitable-numeric-value" } }, "points": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Pts", "Points"), "title": hockeydata["i18n"].translate("Points"), "class": "-hd-util-intellitable-numeric-value" } }, "averagePoints": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg", "Average Points"), "title": hockeydata["i18n"].translate("Average Points"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamStatsPassing={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-team-stats-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.id })); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Team Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "gamesPlayed": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "attempts": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Att", "Attempts"), "title": hockeydata["i18n"].translate("Attempts"), "class": "-hd-util-intellitable-numeric-value" } }, "completions": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Cmp", "Completions"), "title": hockeydata["i18n"].translate("Completions"), "class": "-hd-util-intellitable-numeric-value" } }, "interceptions": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Int", "Interceptions"), "title": hockeydata["i18n"].translate("Interceptions"), "class": "-hd-util-intellitable-numeric-value" } }, "percentage": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Pct", "Percentage"), "title": hockeydata["i18n"].translate("Percentage"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "yards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Yds", "Yards"), "title": hockeydata["i18n"].translate("Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "averageYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg", "Average Yards"), "title": hockeydata["i18n"].translate("Average Yards"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "touchdowns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TD", "Touchdowns"), "title": hockeydata["i18n"].translate("Touchdowns"), "class": "-hd-util-intellitable-numeric-value" } }, "sacks": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Sck", "Sacks"), "title": hockeydata["i18n"].translate("Sacks"), "class": "-hd-util-intellitable-numeric-value" } }, "yardsPerGame": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Yds/G", "Yards per Game"), "title": hockeydata["i18n"].translate("Yards per Game"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamStatsRushing={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-team-stats-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.id })); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Team Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "gamesPlayed": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "attempts": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Att", "Attempts"), "title": hockeydata["i18n"].translate("Attempts"), "class": "-hd-util-intellitable-numeric-value" } }, "yards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Yds", "Yards"), "title": hockeydata["i18n"].translate("Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "averageYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg", "Average Yards"), "title": hockeydata["i18n"].translate("Average Yards"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "touchdowns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TD", "Touchdowns"), "title": hockeydata["i18n"].translate("Touchdowns"), "class": "-hd-util-intellitable-numeric-value" } }, "yardsPerGame": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Yds/G", "Yards per Game"), "title": hockeydata["i18n"].translate("Yards per Game"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamStatsTotalOffense={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-team-stats-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.id })); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Team Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "gamesPlayed": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "rushingYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Rush", "Rushing Yards"), "title": hockeydata["i18n"].translate("Rushing Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "passingYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Pass", "Passing Yards"), "title": hockeydata["i18n"].translate("Passing Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "plays": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Plys", "Plays"), "title": hockeydata["i18n"].translate("Plays"), "class": "-hd-util-intellitable-numeric-value" } }, "yards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Yds", "Yards"), "title": hockeydata["i18n"].translate("Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "averageYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg", "Average Yards"), "title": hockeydata["i18n"].translate("Average Yards"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "touchdowns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TD", "Touchdowns"), "title": hockeydata["i18n"].translate("Touchdowns"), "class": "-hd-util-intellitable-numeric-value" } }, "yardsPerGame": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Yds/G", "Yards per Game"), "title": hockeydata["i18n"].translate("Yards per Game"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamStatsFirstDowns={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-team-stats-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.id })); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Team Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "gamesPlayed": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "rushes": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Rush", "Rushes"), "title": hockeydata["i18n"].translate("Rushes"), "class": "-hd-util-intellitable-numeric-value" } }, "passes": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Pass", "Passes"), "title": hockeydata["i18n"].translate("Passes"), "class": "-hd-util-intellitable-numeric-value" } }, "penalties": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Pen", "Penalties"), "title": hockeydata["i18n"].translate("Penalties"), "class": "-hd-util-intellitable-numeric-value" } }, "total": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Tot", "Total"), "title": hockeydata["i18n"].translate("Total"), "class": "-hd-util-intellitable-numeric-value" } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamStatsKickoffReturns={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-team-stats-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.id })); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Team Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "gamesPlayed": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "returns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Ret", "Returns"), "title": hockeydata["i18n"].translate("Returns"), "class": "-hd-util-intellitable-numeric-value" } }, "yards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Yds", "Yards"), "title": hockeydata["i18n"].translate("Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "touchdowns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TD", "Touchdowns"), "title": hockeydata["i18n"].translate("Touchdowns"), "class": "-hd-util-intellitable-numeric-value" } }, "averageYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg", "Average Yards"), "title": hockeydata["i18n"].translate("Average Yards"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamStatsKickoffCoverage={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-team-stats-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.id })); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Team Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "gamesPlayed": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "number": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("No", "Number"), "title": hockeydata["i18n"].translate("Number"), "class": "-hd-util-intellitable-numeric-value" } }, "yards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Yds", "Yards"), "title": hockeydata["i18n"].translate("Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "averageYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg", "Average Yards"), "title": hockeydata["i18n"].translate("Average Yards"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "returns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Ret", "Returns"), "title": hockeydata["i18n"].translate("Returns"), "class": "-hd-util-intellitable-numeric-value" } }, "touchbacks": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TB", "Touchbacks"), "title": hockeydata["i18n"].translate("Touchbacks"), "class": "-hd-util-intellitable-numeric-value" } }, "netAverage": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("NetAvg", "Net Average"), "title": hockeydata["i18n"].translate("Net Average"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamStatsPunts={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-team-stats-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.id })); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Team Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "gamesPlayed": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "number": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("No", "Number"), "title": hockeydata["i18n"].translate("Number"), "class": "-hd-util-intellitable-numeric-value" } }, "yards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Yds", "Yards"), "title": hockeydata["i18n"].translate("Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "averageYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg", "Average Yards"), "title": hockeydata["i18n"].translate("Average Yards"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "puntReturnYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("PR", "Punt Return Yards"), "title": hockeydata["i18n"].translate("Punt Return Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "averagePerPunt": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg/P", "Average Yards per Punt"), "title": hockeydata["i18n"].translate("Average Yards per Punt"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "touchbacks": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TB", "Touchbacks"), "title": hockeydata["i18n"].translate("Touchbacks"), "class": "-hd-util-intellitable-numeric-value" } }, "netAverage": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("NetAvg", "Net Average"), "title": hockeydata["i18n"].translate("Net Average"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamStatsPuntReturns={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-team-stats-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.id })); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Team Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "gamesPlayed": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "returns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Ret", "Returns"), "title": hockeydata["i18n"].translate("Returns"), "class": "-hd-util-intellitable-numeric-value" } }, "yards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Yds", "Yards"), "title": hockeydata["i18n"].translate("Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "touchdowns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TD", "Touchdowns"), "title": hockeydata["i18n"].translate("Touchdowns"), "class": "-hd-util-intellitable-numeric-value" } }, "averageYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg", "Average Yards"), "title": hockeydata["i18n"].translate("Average Yards"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamStatsDownConversions={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-team-stats-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.id })); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Team Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "gamesPlayed": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "conversions": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Conv", "Conversions"), "title": hockeydata["i18n"].translate("Conversions"), "class": "-hd-util-intellitable-numeric-value" } }, "attempts": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Att", "Attempts"), "title": hockeydata["i18n"].translate("Attempts"), "class": "-hd-util-intellitable-numeric-value" } }, "percentage": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Pct", "Percentage"), "title": hockeydata["i18n"].translate("Percentage"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamStatsFieldGoals={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-team-stats-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.id })); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Team Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "gamesPlayed": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "conversions": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Conv", "Conversions"), "title": hockeydata["i18n"].translate("Conversions"), "class": "-hd-util-intellitable-numeric-value" } }, "attempts": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Att", "Attempts"), "title": hockeydata["i18n"].translate("Attempts"), "class": "-hd-util-intellitable-numeric-value" } }, "percentage": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Pct", "Percentage"), "title": hockeydata["i18n"].translate("Percentage"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamStatsPATKicks={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-team-stats-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.id })); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Team Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "gamesPlayed": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "number": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("No", "Number"), "title": hockeydata["i18n"].translate("Number"), "class": "-hd-util-intellitable-numeric-value" } }, "successes": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Succ", "Successes"), "title": hockeydata["i18n"].translate("Successes"), "class": "-hd-util-intellitable-numeric-value" } }, "successPercentage": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Pct", "Percentage"), "title": hockeydata["i18n"].translate("Percentage"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "touchdowns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TD", "Touchdowns"), "title": hockeydata["i18n"].translate("Touchdowns"), "class": "-hd-util-intellitable-numeric-value" } }, "patTryPercentage": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("PAT Try %", "PAT Try Percentage"), "title": hockeydata["i18n"].translate("patTryPercentage"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamStatsPenalties={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-team-stats-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.id })); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Team Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "gamesPlayed": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "number": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("No", "Number"), "title": hockeydata["i18n"].translate("Number"), "class": "-hd-util-intellitable-numeric-value" } }, "yards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Yds", "Yards"), "title": hockeydata["i18n"].translate("Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "averageYardsPerPenalty": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg/P", "Average Yards per Penalty"), "title": hockeydata["i18n"].translate("Average Yards per Penalty"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "averageYardsPerGame": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg/G", "Average Yards per Game"), "title": hockeydata["i18n"].translate("Average Yards per Game"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamStatsTimeOfPossession={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-team-stats-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.id })); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Team Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "gamesPlayed": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "totalTimeFormatted": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Tot", "Total"), "title": hockeydata["i18n"].translate("Total Time"), "class": "-hd-util-intellitable-numeric-value" } }, "averageTimeFormatted": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg", "Average"), "title": hockeydata["i18n"].translate("Average Time"), "class": "-hd-util-intellitable-numeric-value" } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].leadersPassing={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.teamId })); } }, "playerPortrait": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-player-portrait", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getPlayerPortraitUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "playerId": dataRow.id }), { "onerror": function(){ this.src=hockeydata["util"]["UriComposer"].getGhostPlayerPortraitUri({ "sport": options.sport }); } }); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Player Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "games": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "playerLastname": { "header": { "html": hockeydata["i18n"].translate("Lastname"), "title": hockeydata["i18n"].translate("Lastname") } }, "playerFirstname": { "header": { "html": hockeydata["i18n"].translate("Firstname"), "title": hockeydata["i18n"].translate("Firstname") } }, "playerName": { "header": { "html": hockeydata["i18n"].translate("Player"), "title": hockeydata["i18n"].translate("Player Name") }, "fn": function(dataRow){ return dataRow.playerLastname + " " + dataRow.playerFirstname; } }, "playerJerseyNr": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("#", "Jersey Number"), "title": hockeydata["i18n"].translate("Jersey Number"), "class": "-hd-util-intellitable-numeric-value" } }, "attempts": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Att", "Attempts"), "title": hockeydata["i18n"].translate("Attempts"), "class": "-hd-util-intellitable-numeric-value" } }, "complete": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Cmp", "Complete"), "title": hockeydata["i18n"].translate("Complete"), "class": "-hd-util-intellitable-numeric-value" } }, "intercepted": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Int", "Intercepted"), "title": hockeydata["i18n"].translate("Intercepted"), "class": "-hd-util-intellitable-numeric-value" } }, "attCmpInt": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Att-Cmp-Int", "Attempted-Complete-Intercepted"), "title": hockeydata["i18n"].translate("Attempted - Complete - Intercepted"), "class": "-hd-util-intellitable-numeric-value" } }, "netYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Net", "Net Yards"), "title": hockeydata["i18n"].translate("Net Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "touchdowns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TD", "Touchdowns"), "title": hockeydata["i18n"].translate("Touchdowns"), "class": "-hd-util-intellitable-numeric-value" } }, "longest": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Lng", "Longest"), "title": hockeydata["i18n"].translate("Longest"), "class": "-hd-util-intellitable-numeric-value" } }, "average": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg", "Average"), "title": hockeydata["i18n"].translate("Average"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "quarterbackRatingNcaa": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("QBR NCAA", "Quarterback Rating NCAA"), "title": hockeydata["i18n"].translate("Quarterback Rating NCAA"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "quarterbackRatingNfl": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("QBR NFL", "Quarterback Rating NFL"), "title": hockeydata["i18n"].translate("Quarterback Rating NFL"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].leadersReceiving={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.teamId })); } }, "playerPortrait": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-player-portrait", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getPlayerPortraitUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "playerId": dataRow.id }), { "onerror": function(){ this.src=hockeydata["util"]["UriComposer"].getGhostPlayerPortraitUri({ "sport": options.sport }); } }); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Player Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "games": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "playerLastname": { "header": { "html": hockeydata["i18n"].translate("Lastname"), "title": hockeydata["i18n"].translate("Lastname") } }, "playerFirstname": { "header": { "html": hockeydata["i18n"].translate("Firstname"), "title": hockeydata["i18n"].translate("Firstname") } }, "playerName": { "header": { "html": hockeydata["i18n"].translate("Player"), "title": hockeydata["i18n"].translate("Player Name") }, "fn": function(dataRow){ return dataRow.playerLastname + " " + dataRow.playerFirstname; } }, "playerJerseyNr": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("#", "Jersey Number"), "title": hockeydata["i18n"].translate("Jersey Number"), "class": "-hd-util-intellitable-numeric-value" } }, "number": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("No", "Number"), "title": hockeydata["i18n"].translate("Number"), "class": "-hd-util-intellitable-numeric-value" } }, "yards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Yds", "Yards"), "title": hockeydata["i18n"].translate("Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "touchdowns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TD", "Touchdowns"), "title": hockeydata["i18n"].translate("Touchdowns"), "class": "-hd-util-intellitable-numeric-value" } }, "longest": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Lng", "Longest"), "title": hockeydata["i18n"].translate("Longest"), "class": "-hd-util-intellitable-numeric-value" } }, "average": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg", "Average"), "title": hockeydata["i18n"].translate("Average"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].leadersRushing={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.teamId })); } }, "playerPortrait": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-player-portrait", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getPlayerPortraitUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "playerId": dataRow.id }), { "onerror": function(){ this.src=hockeydata["util"]["UriComposer"].getGhostPlayerPortraitUri({ "sport": options.sport }); } }); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Player Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "games": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "playerLastname": { "header": { "html": hockeydata["i18n"].translate("Lastname"), "title": hockeydata["i18n"].translate("Lastname") } }, "playerFirstname": { "header": { "html": hockeydata["i18n"].translate("Firstname"), "title": hockeydata["i18n"].translate("Firstname") } }, "playerName": { "header": { "html": hockeydata["i18n"].translate("Player"), "title": hockeydata["i18n"].translate("Player Name") }, "fn": function(dataRow){ return dataRow.playerLastname + " " + dataRow.playerFirstname; } }, "playerJerseyNr": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("#", "Jersey Number"), "title": hockeydata["i18n"].translate("Jersey Number"), "class": "-hd-util-intellitable-numeric-value" } }, "number": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("No", "Number"), "title": hockeydata["i18n"].translate("Number"), "class": "-hd-util-intellitable-numeric-value" } }, "yardsGained": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Gain", "Yards Gained"), "title": hockeydata["i18n"].translate("Yards Gained"), "class": "-hd-util-intellitable-numeric-value" } }, "yardsLost": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Loss", "Yards Lost"), "title": hockeydata["i18n"].translate("Yards Lost"), "class": "-hd-util-intellitable-numeric-value" } }, "netYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Net", "Net Yards"), "title": hockeydata["i18n"].translate("Net Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "touchdowns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TD", "Touchdowns"), "title": hockeydata["i18n"].translate("Touchdowns"), "class": "-hd-util-intellitable-numeric-value" } }, "longest": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Lng", "Longest"), "title": hockeydata["i18n"].translate("Longest"), "class": "-hd-util-intellitable-numeric-value" } }, "average": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg", "Average"), "title": hockeydata["i18n"].translate("Average"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].leadersDefense={ "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.teamId })); } }, "playerPortrait": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-player-portrait", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getPlayerPortraitUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "playerId": dataRow.id }), { "onerror": function(){ this.src=hockeydata["util"]["UriComposer"].getGhostPlayerPortraitUri({ "sport": options.sport }); } }); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Player Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "games": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "playerLastname": { "header": { "html": hockeydata["i18n"].translate("Lastname"), "title": hockeydata["i18n"].translate("Lastname") } }, "playerFirstname": { "header": { "html": hockeydata["i18n"].translate("Firstname"), "title": hockeydata["i18n"].translate("Firstname") } }, "playerName": { "header": { "html": hockeydata["i18n"].translate("Player"), "title": hockeydata["i18n"].translate("Player Name") }, "fn": function(dataRow){ return dataRow.playerLastname + " " + dataRow.playerFirstname; } }, "playerJerseyNr": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("#", "Jersey Number"), "title": hockeydata["i18n"].translate("Jersey Number"), "class": "-hd-util-intellitable-numeric-value" } }, "soloTackles": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Solo", "Solo Tackles"), "title": hockeydata["i18n"].translate("Solo Tackles"), "class": "-hd-util-intellitable-numeric-value" } }, "assistTackles": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Asst", "Assist Tackles"), "title": hockeydata["i18n"].translate("Assist Tackles"), "class": "-hd-util-intellitable-numeric-value" } }, "totalTackles": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Total"), "title": hockeydata["i18n"].translate("Total Tackles"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "tackleForLoss": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TFL", "Tackle for Loss"), "title": hockeydata["i18n"].translate("Tackle for Loss"), "class": "-hd-util-intellitable-numeric-value" } }, "tackleForLossYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TFL Yds", "Tackle for Loss Yards"), "title": hockeydata["i18n"].translate("Tackle for Loss Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "tackleForLossFormatted": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TFL/Yds"), "title": hockeydata["i18n"].translate("Tackle for Loss"), "class": "-hd-util-intellitable-numeric-value" } }, "interceptions": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Int", "Interceptions"), "title": hockeydata["i18n"].translate("Interceptions"), "class": "-hd-util-intellitable-numeric-value" } }, "fumblesForced": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("FF", "Fumbles Forced"), "title": hockeydata["i18n"].translate("Fumbles Forced"), "class": "-hd-util-intellitable-numeric-value" } }, "passBreakups": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("BrUp", "Pass Breakups"), "title": hockeydata["i18n"].translate("Pass Breakups"), "class": "-hd-util-intellitable-numeric-value" } }, "sacks": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Sck", "Sacks"), "title": hockeydata["i18n"].translate("Sacks"), "class": "-hd-util-intellitable-numeric-value" } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].gameScores={ "gameTime": { "header": { "html": hockeydata["i18n"].translate("Time"), "title": hockeydata["i18n"].translate("Game Time") }, "fn": function(dataRow){ return "<span class='-hd-los-game-scores-game-time'>" + dataRow.gameTime + "</span>"; } }, "teamShortName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Team Name") }, "fn": function(dataRow){ return "<span class='-hd-los-game-scores-team-short-name' style='background-color: " + dataRow["scoredByTeamBackColor"] + "; color: " + dataRow["scoredByTeamForeColor"] + ";'>" + dataRow["scoredByTeam"] + "</span>"; } }, "playerNameAndJerseyNr": { "header": { "html": hockeydata["i18n"].translate("Player"), "title": hockeydata["i18n"].translate("Player Name & Jersey No") }, "fn": function(dataRow){ return dataRow["scoredByPlayer"] + " (#" + dataRow["scoredByPlayerJerseyNr"] + ")"; } }, "scoreReason": { "header": { "html": hockeydata["i18n"].translate("Reason"), "title": hockeydata["i18n"].translate("Score Reason") } }, "score": { "header": { "html": hockeydata["i18n"].translate("Score"), "title": hockeydata["i18n"].translate("New Score") }, "fn": function(dataRow){ return "<span class='-hd-los-game-scores-score'>" + dataRow["homeScore"] + " : " + dataRow["awayScore"] + "</span>"; } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].gameFullReportRoster={ "playerPortrait": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-player-portrait", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getPlayerPortraitUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "playerId": dataRow.id }), { "onerror": function(){ this.src=hockeydata["util"]["UriComposer"].getGhostPlayerPortraitUri({ "sport": options.sport }); } }); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Player Id") } }, "lastName": { "header": { "html": hockeydata["i18n"].translate("Lastname"), "title": hockeydata["i18n"].translate("Lastname") } }, "firstName": { "header": { "html": hockeydata["i18n"].translate("Firstname"), "title": hockeydata["i18n"].translate("Firstname") } }, "playerName": { "header": { "html": hockeydata["i18n"].translate("Player"), "title": hockeydata["i18n"].translate("Player Name") }, "fn": function(dataRow){ return dataRow.lastName + " " + dataRow.firstName; } }, "jerseyNr": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("#", "Jersey Number"), "title": hockeydata["i18n"].translate("Jersey Number"), "class": "-hd-util-intellitable-numeric-value" } }, "position": { "header": { "html": hockeydata["i18n"].translate("Pos", "Position"), "title": hockeydata["i18n"].translate("Position") } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].gameFullReportScores=hockeydata["los"]["Configuration"].tableColumnDefinition[sport].gameScores; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].gameLiveBoxScores=hockeydata["los"]["Configuration"].tableColumnDefinition[sport].gameScores; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].passingGameLeaders=hockeydata["los"]["Configuration"].tableColumnDefinition[sport].leadersPassing; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].rushingGameLeaders=hockeydata["los"]["Configuration"].tableColumnDefinition[sport].leadersRushing; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].receivingGameLeaders=hockeydata["los"]["Configuration"].tableColumnDefinition[sport].leadersReceiving; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].defensiveGameLeaders=hockeydata["los"]["Configuration"].tableColumnDefinition[sport].leadersDefense; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].gameFullReportLeadersPassing=hockeydata["los"]["Configuration"].tableColumnDefinition[sport].leadersPassing; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].gameFullReportLeadersRushing=hockeydata["los"]["Configuration"].tableColumnDefinition[sport].leadersRushing; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].gameFullReportLeadersReceiving=hockeydata["los"]["Configuration"].tableColumnDefinition[sport].leadersReceiving; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].gameFullReportLeadersDefense=hockeydata["los"]["Configuration"].tableColumnDefinition[sport].leadersDefense; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].gamePlayByPlay={ "gameTime": { "header": { "html": hockeydata["i18n"].translate("Time"), "title": hockeydata["i18n"].translate("Game Time") }, "fn": function(dataRow, options){ var gameTime="&nbsp;"; if(dataRow["GameTime"] && (options.lastGameTime===null || options.lastGameTime !== dataRow["GameTime"])){ options.lastGameTime=dataRow["GameTime"]; gameTime="<span class='-hd-los-game-play-by-play-game-time'>" + dataRow["GameTime"] + "</span>"; } return gameTime; } }, "teamShortName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Team Name") }, "fn": function(dataRow, options){ var txt="<span class='-hd-los-game-play-by-play-team-short-name'"; var bgColor=(dataRow["IsHomeTeam"] ? options.homeTeamBackColor : options.awayTeamBackColor); var ftColor=(dataRow["IsHomeTeam"] ? options.homeTeamForeColor : options.awayTeamForeColor); if(bgColor || ftColor){ txt += " style='"; if(bgColor) txt += "background-color: " + bgColor + ";"; if(ftColor) txt += "color: " + ftColor + ";"; txt += "'"; } return txt + ">" + dataRow["TeamShortName"] + "</span>"; } }, "GameSituation": { "header": { "html": hockeydata["i18n"].translate("Situation"), "title": hockeydata["i18n"].translate("Game Situation") } }, "gameAction": { "header": { "html": hockeydata["i18n"].translate("Action"), "title": hockeydata["i18n"].translate("Game Action") }, "fn": function(dataRow, options){ var gameAction=""; if(dataRow["ActionTexts"] && dataRow["ActionTexts"].length){ for(var j=0; j < dataRow["ActionTexts"].length; j++){ var actionText=dataRow["ActionTexts"][j]; if(actionText){ var text=("Text" in actionText) ? actionText["Text"] : ""; if(text){ var parameters=("Parameters" in actionText) ? actionText["Parameters"] : []; var replaceTexts=[]; if(parameters && parameters.length){ for(var k=0; k < parameters.length; k++){ var parameter=parameters[k]; if(jQuery.isPlainObject(parameter) && ("type" in parameter)){ if(parameter.type==="player"){ replaceTexts.push("<span class='-hd-los-game-play-by-play-action-player'>" + parameter["firstName"] + " " + parameter["lastName"] + " (#" + parameter["jerseyNr"] + ")" + "</span>"); } else if(parameter.type==="team"){ var txt="<span class='-hd-los-game-play-by-play-action-team'"; var bgColor=(parameter.id===options.homeTeamId ? options.homeTeamBackColor : options.awayTeamBackColor); var ftColor=(parameter.id===options.homeTeamId ? options.homeTeamForeColor : options.awayTeamForeColor); if(bgColor || ftColor){ txt += " style='"; if(bgColor) txt += "background-color: " + bgColor + ";"; if(ftColor) txt += "color: " + ftColor + ";"; txt += "'"; } txt +=">" + parameter["threeLetter"] + "</span>"; replaceTexts.push(txt); } else if(parameter.type==="penalty"){ replaceTexts.push("<span class='-hd-los-game-play-by-play-action-penalty'>" + parameter.offence + "</span>"); } } } } gameAction += "<div class='-hd-los-game-play-by-play-action" + (actionText["Label"] ? (" -hd-label-" + actionText["Label"]) : "") + "'>" + hockeydata["util"].sprintf(text, replaceTexts) + "</div>"; } } } } if(gameAction==="") gameAction="&nbsp;"; return gameAction; } }, "newScore": { "header": { "html": hockeydata["i18n"].translate("Score"), "title": hockeydata["i18n"].translate("New Score") }, "fn": function(dataRow){ return dataRow["ScoreHasChanged"] ? ("<span class='-hd-los-game-play-by-play-score'>" + dataRow["HomeScore"] + " : " + dataRow["AwayScore"] + "</span>") : "&nbsp;"; } }, "orderNumber": { "fn": function(dataRow){ return (Number(dataRow["OrderNumber"]) || "&nbsp;"); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].playerCareerStatsPassing={ "leagueShortname": { "header": { "html": hockeydata["i18n"].translate("League"), "title": hockeydata["i18n"].translate("League") } }, "seasonShortname": { "header": { "html": hockeydata["i18n"].translate("Season"), "title": hockeydata["i18n"].translate("Season") } }, "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.teamId })); } }, "playerPortrait": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-player-portrait", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getPlayerPortraitUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "playerId": dataRow.id }), { "onerror": function(){ this.src=hockeydata["util"]["UriComposer"].getGhostPlayerPortraitUri({ "sport": options.sport }); } }); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Player Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "games": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "playerLastname": { "header": { "html": hockeydata["i18n"].translate("Lastname"), "title": hockeydata["i18n"].translate("Lastname") } }, "playerFirstname": { "header": { "html": hockeydata["i18n"].translate("Firstname"), "title": hockeydata["i18n"].translate("Firstname") } }, "playerName": { "header": { "html": hockeydata["i18n"].translate("Player"), "title": hockeydata["i18n"].translate("Player Name") }, "fn": function(dataRow){ return dataRow.playerLastname + " " + dataRow.playerFirstname; } }, "playerJerseyNr": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("#", "Jersey Number"), "title": hockeydata["i18n"].translate("Jersey Number"), "class": "-hd-util-intellitable-numeric-value" } }, "attempts": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Att", "Attempts"), "title": hockeydata["i18n"].translate("Attempts"), "class": "-hd-util-intellitable-numeric-value" } }, "complete": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Cmp", "Complete"), "title": hockeydata["i18n"].translate("Complete"), "class": "-hd-util-intellitable-numeric-value" } }, "intercepted": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Int", "Intercepted"), "title": hockeydata["i18n"].translate("Intercepted"), "class": "-hd-util-intellitable-numeric-value" } }, "attCmpInt": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Att-Cmp-Int", "Attempted-Complete-Intercepted"), "title": hockeydata["i18n"].translate("Attempted - Complete - Intercepted"), "class": "-hd-util-intellitable-numeric-value" } }, "netYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Net", "Net Yards"), "title": hockeydata["i18n"].translate("Net Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "touchdowns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TD", "Touchdowns"), "title": hockeydata["i18n"].translate("Touchdowns"), "class": "-hd-util-intellitable-numeric-value" } }, "longest": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Lng", "Longest"), "title": hockeydata["i18n"].translate("Longest"), "class": "-hd-util-intellitable-numeric-value" } }, "average": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg", "Average"), "title": hockeydata["i18n"].translate("Average"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "quarterbackRatingNcaa": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("QBR NCAA", "Quarterback Rating NCAA"), "title": hockeydata["i18n"].translate("Quarterback Rating NCAA"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "quarterbackRatingNfl": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("QBR NFL", "Quarterback Rating NFL"), "title": hockeydata["i18n"].translate("Quarterback Rating NFL"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].playerCareerStatsReceiving={ "leagueShortname": { "header": { "html": hockeydata["i18n"].translate("League"), "title": hockeydata["i18n"].translate("League") } }, "seasonShortname": { "header": { "html": hockeydata["i18n"].translate("Season"), "title": hockeydata["i18n"].translate("Season") } }, "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.teamId })); } }, "playerPortrait": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-player-portrait", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getPlayerPortraitUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "playerId": dataRow.id }), { "onerror": function(){ this.src=hockeydata["util"]["UriComposer"].getGhostPlayerPortraitUri({ "sport": options.sport }); } }); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Player Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "games": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "playerLastname": { "header": { "html": hockeydata["i18n"].translate("Lastname"), "title": hockeydata["i18n"].translate("Lastname") } }, "playerFirstname": { "header": { "html": hockeydata["i18n"].translate("Firstname"), "title": hockeydata["i18n"].translate("Firstname") } }, "playerName": { "header": { "html": hockeydata["i18n"].translate("Player"), "title": hockeydata["i18n"].translate("Player Name") }, "fn": function(dataRow){ return dataRow.playerLastname + " " + dataRow.playerFirstname; } }, "playerJerseyNr": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("#", "Jersey Number"), "title": hockeydata["i18n"].translate("Jersey Number"), "class": "-hd-util-intellitable-numeric-value" } }, "number": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("No", "Number"), "title": hockeydata["i18n"].translate("Number"), "class": "-hd-util-intellitable-numeric-value" } }, "yards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Yds", "Yards"), "title": hockeydata["i18n"].translate("Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "touchdowns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TD", "Touchdowns"), "title": hockeydata["i18n"].translate("Touchdowns"), "class": "-hd-util-intellitable-numeric-value" } }, "longest": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Lng", "Longest"), "title": hockeydata["i18n"].translate("Longest"), "class": "-hd-util-intellitable-numeric-value" } }, "average": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg", "Average"), "title": hockeydata["i18n"].translate("Average"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].playerCareerStatsRushing={ "leagueShortname": { "header": { "html": hockeydata["i18n"].translate("League"), "title": hockeydata["i18n"].translate("League") } }, "seasonShortname": { "header": { "html": hockeydata["i18n"].translate("Season"), "title": hockeydata["i18n"].translate("Season") } }, "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.teamId })); } }, "playerPortrait": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-player-portrait", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getPlayerPortraitUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "playerId": dataRow.id }), { "onerror": function(){ this.src=hockeydata["util"]["UriComposer"].getGhostPlayerPortraitUri({ "sport": options.sport }); } }); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Player Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "games": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "playerLastname": { "header": { "html": hockeydata["i18n"].translate("Lastname"), "title": hockeydata["i18n"].translate("Lastname") } }, "playerFirstname": { "header": { "html": hockeydata["i18n"].translate("Firstname"), "title": hockeydata["i18n"].translate("Firstname") } }, "playerName": { "header": { "html": hockeydata["i18n"].translate("Player"), "title": hockeydata["i18n"].translate("Player Name") }, "fn": function(dataRow){ return dataRow.playerLastname + " " + dataRow.playerFirstname; } }, "playerJerseyNr": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("#", "Jersey Number"), "title": hockeydata["i18n"].translate("Jersey Number"), "class": "-hd-util-intellitable-numeric-value" } }, "number": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("No", "Number"), "title": hockeydata["i18n"].translate("Number"), "class": "-hd-util-intellitable-numeric-value" } }, "yardsGained": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Gain", "Yards Gained"), "title": hockeydata["i18n"].translate("Yards Gained"), "class": "-hd-util-intellitable-numeric-value" } }, "yardsLost": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Loss", "Yards Lost"), "title": hockeydata["i18n"].translate("Yards Lost"), "class": "-hd-util-intellitable-numeric-value" } }, "netYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Net", "Net Yards"), "title": hockeydata["i18n"].translate("Net Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "touchdowns": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TD", "Touchdowns"), "title": hockeydata["i18n"].translate("Touchdowns"), "class": "-hd-util-intellitable-numeric-value" } }, "longest": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Lng", "Longest"), "title": hockeydata["i18n"].translate("Longest"), "class": "-hd-util-intellitable-numeric-value" } }, "average": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Avg", "Average"), "title": hockeydata["i18n"].translate("Average"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].playerCareerStatsDefense={ "leagueShortname": { "header": { "html": hockeydata["i18n"].translate("League"), "title": hockeydata["i18n"].translate("League") } }, "seasonShortname": { "header": { "html": hockeydata["i18n"].translate("Season"), "title": hockeydata["i18n"].translate("Season") } }, "teamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-team-logo", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "teamId": dataRow.teamId })); } }, "playerPortrait": { "class": "-hd-util-intellitable-inline-image -hd-los-leaders-player-portrait", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getPlayerPortraitUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "playerId": dataRow.id }), { "onerror": function(){ this.src=hockeydata["util"]["UriComposer"].getGhostPlayerPortraitUri({ "sport": options.sport }); } }); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Player Id") } }, "teamName": { "header": { "html": hockeydata["i18n"].translate("Team"), "title": hockeydata["i18n"].translate("Teamname") } }, "games": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("G", "Games Played"), "title": hockeydata["i18n"].translate("Games Played"), "class": "-hd-util-intellitable-numeric-value" } }, "playerLastname": { "header": { "html": hockeydata["i18n"].translate("Lastname"), "title": hockeydata["i18n"].translate("Lastname") } }, "playerFirstname": { "header": { "html": hockeydata["i18n"].translate("Firstname"), "title": hockeydata["i18n"].translate("Firstname") } }, "playerName": { "header": { "html": hockeydata["i18n"].translate("Player"), "title": hockeydata["i18n"].translate("Player Name") }, "fn": function(dataRow){ return dataRow.playerLastname + " " + dataRow.playerFirstname; } }, "playerJerseyNr": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("#", "Jersey Number"), "title": hockeydata["i18n"].translate("Jersey Number"), "class": "-hd-util-intellitable-numeric-value" } }, "soloTackles": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Solo", "Solo Tackles"), "title": hockeydata["i18n"].translate("Solo Tackles"), "class": "-hd-util-intellitable-numeric-value" } }, "assistTackles": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Asst", "Assist Tackles"), "title": hockeydata["i18n"].translate("Assist Tackles"), "class": "-hd-util-intellitable-numeric-value" } }, "totalTackles": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Total"), "title": hockeydata["i18n"].translate("Total Tackles"), "class": "-hd-util-intellitable-numeric-value" }, "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "tackleForLoss": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TFL", "Tackle for Loss"), "title": hockeydata["i18n"].translate("Tackle for Loss"), "class": "-hd-util-intellitable-numeric-value" } }, "tackleForLossYards": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TFL Yds", "Tackle for Loss Yards"), "title": hockeydata["i18n"].translate("Tackle for Loss Yards"), "class": "-hd-util-intellitable-numeric-value" } }, "tackleForLossFormatted": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("TFL/Yds"), "title": hockeydata["i18n"].translate("Tackle for Loss"), "class": "-hd-util-intellitable-numeric-value" } }, "interceptions": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Int", "Interceptions"), "title": hockeydata["i18n"].translate("Interceptions"), "class": "-hd-util-intellitable-numeric-value" } }, "fumblesForced": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("FF", "Fumbles Forced"), "title": hockeydata["i18n"].translate("Fumbles Forced"), "class": "-hd-util-intellitable-numeric-value" } }, "passBreakups": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("BrUp", "Pass Breakups"), "title": hockeydata["i18n"].translate("Pass Breakups"), "class": "-hd-util-intellitable-numeric-value" } }, "sacks": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Sck", "Sacks"), "title": hockeydata["i18n"].translate("Sacks"), "class": "-hd-util-intellitable-numeric-value" } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamFullPageGames={ "scheduledDateTime": { "class": "-hd-util-intellitable-date-value -hd-los-schedule-scheduled-date", "header": { "class": "-hd-util-intellitable-date-value -hd-los-schedule-scheduled-date", "html": hockeydata["i18n"].translate("Date & Time"), "title": hockeydata["i18n"].translate("Scheduled Date and Time") }, "fn": function(dataRow){ return "<div>" + dataRow.scheduledDate + "</div><div>" + dataRow.scheduledTime + "</div>"; } }, "score": { "class": "-hd-util-intellitable-numeric-value -hd-los-team-full-page-games-score", "header": { "html": hockeydata["i18n"].translate("Score"), "title": hockeydata["i18n"].translate("Score"), "class": "-hd-util-intellitable-numeric-value" }, "fn": function(dataRow){ return dataRow.status > 0 ? (dataRow["scoreHome"] + " : " + dataRow["scoreAway"]) : "- : -"; } }, "scoreInfo": { "header": { "html": "&nbsp;" }, "fn": function(dataRow){ var ret="&nbsp;"; if(dataRow["isOvertime"]) ret="<span class='-hd-los-team-full-page-games-overtime'>" + hockeydata["i18n"].translate("OT", "Overtime") + "</span>"; return ret; } }, "opponentTeamShortname": { "header": { "html": hockeydata["i18n"].translate("Opp"), "title": hockeydata["i18n"].translate("Opponent") }, "fn": function(dataRow){ return (dataRow["isHomeGame"] ? "" : "@ ") + dataRow.opponentTeamShortname; } }, "gameVictoryState": { "fn": function(dataRow){ return (dataRow.gameVictoryState ? "<span class='-hd-los-team-full-page-games-state -hd-los-team-full-page-games-state-" + dataRow.gameVictoryState + "'>" + dataRow.gameVictoryState + "</span>" : ""); } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].teamFullPageRosterDetails={ "playerPortrait": { "class": "-hd-util-intellitable-inline-image -hd-los-team-full-page-roster-details-player-portrait", "header": { "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getPlayerPortraitUri({ "sport": options.sport, "league": options.league, "divisionId": options.divisionId, "playerId": dataRow.id }), { "onerror": function(){ this.src=hockeydata["util"]["UriComposer"].getGhostPlayerPortraitUri({ "sport": options.sport }); } }); } }, "id": { "header": { "html": hockeydata["i18n"].translate("Id"), "title": hockeydata["i18n"].translate("Player Id") } }, "playerLastname": { "header": { "html": hockeydata["i18n"].translate("Lastname"), "title": hockeydata["i18n"].translate("Lastname") } }, "playerFirstname": { "header": { "html": hockeydata["i18n"].translate("Firstname"), "title": hockeydata["i18n"].translate("Firstname") } }, "playerName": { "header": { "html": hockeydata["i18n"].translate("Player"), "title": hockeydata["i18n"].translate("Player Name") }, "fn": function(dataRow){ return dataRow.playerLastname + " " + dataRow.playerFirstname; } }, "playerJerseyNr": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("#", "Jersey Number"), "title": hockeydata["i18n"].translate("Jersey Number"), "class": "-hd-util-intellitable-numeric-value" } }, "position": { "header": { "html": hockeydata["i18n"].translate("Pos", "Position"), "title": hockeydata["i18n"].translate("Position") } }, "shootsCatches": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Throws"), "title": hockeydata["i18n"].translate("Throws"), "class": "-hd-util-intellitable-numeric-value" }, "fn": function(dataRow){ return (dataRow.shootsCatches===-1 ? hockeydata["i18n"].translate("L", "Left") : (dataRow.shootsCatches===1 ? hockeydata["i18n"].translate("R", "Right") : "&nbsp;")); } }, "birthdate": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Born"), "title": hockeydata["i18n"].translate("Year of Birth"), "class": "-hd-util-intellitable-numeric-value" } }, "weight": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Weight"), "class": "-hd-util-intellitable-numeric-value" } }, "height": { "class": "-hd-util-intellitable-numeric-value", "header": { "html": hockeydata["i18n"].translate("Height"), "class": "-hd-util-intellitable-numeric-value" } }, "nation": { "header": { "html": hockeydata["i18n"].translate("Nation"), "title": hockeydata["i18n"].translate("Nation") } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].knockoutStageGames={ "scheduledDate": { "class": "-hd-util-intellitable-date-value -hd-los-knockout-stage-scheduled-date", "header": { "class": "-hd-util-intellitable-date-value -hd-los-knockout-stage-scheduled-date", "html": hockeydata["i18n"].translate("Date"), "title": hockeydata["i18n"].translate("Scheduled Date"), "key": "shortValue" }, "fn": function(dataRow){ return (dataRow.scheduledDate && !dataRow["dateIsToBeDetermined"] ? dataRow.scheduledDate["formattedShort"] : hockeydata["i18n"].translate("TBD")) } }, "scheduledTime": { "class": "-hd-util-intellitable-time-value -hd-los-knockout-stage-scheduled-time", "header": { "class": "-hd-util-intellitable-time-value -hd-los-knockout-stage-scheduled-time", "html": hockeydata["i18n"].translate("Time"), "title": hockeydata["i18n"].translate("Scheduled Time") }, "fn": function(dataRow){ return (dataRow["timeIsToBeDetermined"] ? hockeydata["i18n"].translate("TBD") : dataRow.scheduledTime.value.substr(11)); } }, "homeTeamShortname": { "class": "-hd-los-knockout-stage-home-team-name -hd-los-knockout-stage-team-name-short", "header": { "class": "-hd-los-knockout-stage-home-team-name -hd-los-knockout-stage-team-name-short", "html": hockeydata["i18n"].translate("Home"), "title": hockeydata["i18n"].translate("Home Team") }, "fn": function(dataRow){ return dataRow["homeTeamShortName"]; } }, "homeTeamScore": { "class": "-hd-los-knockout-stage-home-team-score -hd-los-knockout-stage-score -hd-util-intellitable-numeric-value", "header": { "class": "-hd-los-knockout-stage-home-team-score -hd-los-knockout-stage-score -hd-util-intellitable-numeric-value", "html": "&nbsp;" }, "fn": function(dataRow){ return dataRow.gameStatus ? dataRow.homeTeamScore : "-"; } }, "awayTeamScore": { "class": "-hd-los-knockout-stage-away-team-score -hd-los-knockout-stage-score -hd-util-intellitable-numeric-value", "header": { "class": "-hd-los-knockout-stage-away-team-score -hd-los-knockout-stage-score -hd-util-intellitable-numeric-value", "html": "&nbsp;" }, "fn": function(dataRow){ return dataRow.gameStatus ? dataRow.awayTeamScore : "-"; } }, "awayTeamShortname": { "class": "-hd-los-knockout-stage-away-team-name -hd-los-knockout-stage-team-name-short", "header": { "class": "-hd-los-knockout-stage-away-team-name -hd-los-knockout-stage-team-name-short", "html": hockeydata["i18n"].translate("Away"), "title": hockeydata["i18n"].translate("Away Team") }, "fn": function(dataRow){ return dataRow["awayTeamShortName"]; } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].knockoutStageCompact={ "homeTeamShortname": { "class": "-hd-los-knockout-stage-compact-home-team-name -hd-los-knockout-stage-compact-team-name-short", "header": { "class": "-hd-los-knockout-stage-compact-home-team-name -hd-los-knockout-stage-compact-team-name-short", "html": hockeydata["i18n"].translate("Home"), "title": hockeydata["i18n"].translate("Home Team") }, "fn": function(dataRow){ return dataRow["teams"][0]["shortname"]; } }, "homeTeamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-knockout-stage-compact-team-logo -hd-los-knockout-stage-compact-home-team-logo", "header": { "class": "-hd-los-knockout-stage-compact-team-logo -hd-los-knockout-stage-compact-home-team-logo", "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": (options._divisionId || options.divisionId), "teamId": dataRow["teams"][0].id })); } }, "homeTeamScore": { "class": "-hd-los-knockout-stage-compact-home-team-score -hd-los-knockout-stage-compact-score -hd-util-intellitable-numeric-value", "header": { "class": "-hd-los-knockout-stage-compact-home-team-score -hd-los-knockout-stage-compact-score -hd-util-intellitable-numeric-value", "html": "&nbsp;" }, "fn": function(dataRow){ return dataRow["teams"][0].gamesWon } }, "awayTeamScore": { "class": "-hd-los-knockout-stage-compact-away-team-score -hd-los-knockout-stage-compact-score -hd-util-intellitable-numeric-value", "header": { "class": "-hd-los-knockout-stage-compact-away-team-score -hd-los-knockout-stage-compact-score -hd-util-intellitable-numeric-value", "html": "&nbsp;" }, "fn": function(dataRow){ return dataRow["teams"][1].gamesWon } }, "awayTeamLogo": { "class": "-hd-util-intellitable-inline-image -hd-los-knockout-stage-compact-team-logo -hd-los-knockout-stage-compact-away-team-logo", "header": { "class": "-hd-los-knockout-stage-compact-team-logo -hd-los-knockout-stage-compact-home-team-logo", "html": "&nbsp;" }, "fn": function(dataRow, options){ return hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": options.sport, "league": options.league, "divisionId": (options._divisionId || options.divisionId), "teamId": dataRow["teams"][1].id })); } }, "awayTeamShortname": { "class": "-hd-los-knockout-stage-compact-away-team-name -hd-los-knockout-stage-compact-team-name-short", "header": { "class": "-hd-los-knockout-stage-compact-away-team-name -hd-los-knockout-stage-compact-team-name-short", "html": hockeydata["i18n"].translate("Away"), "title": hockeydata["i18n"].translate("Away Team") }, "fn": function(dataRow){ return dataRow["teams"][1]["shortname"]; } } }; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].gameFullReportPlayByPlay=hockeydata["los"]["Configuration"].tableColumnDefinition[sport].gamePlayByPlay; hockeydata["los"]["Configuration"].tableColumnDefinition[sport].gameLiveBoxPlayByPlay=hockeydata["los"]["Configuration"].tableColumnDefinition[sport].gamePlayByPlay; hockeydata["los"]["Configuration"].tableRowDefinition[sport].gameTeamStats={ "firstDowns": { "title": hockeydata["i18n"].translate("First Downs") }, "firstDownsRushing": { "title": hockeydata["i18n"].translate("First Downs Rushing") }, "firstDownsPassing": { "title": hockeydata["i18n"].translate("First Downs Passing") }, "firstDownsPenalty": { "title": hockeydata["i18n"].translate("First Downs Penalty") }, "netYardsRushing": { "title": hockeydata["i18n"].translate("Net Yards Rushing") }, "yardsGainedRushing": { "title": hockeydata["i18n"].translate("Yards Gained Rushing") }, "yardsLostRushing": { "title": hockeydata["i18n"].translate("Yards Lost Rushing") }, "rushingAttempts": { "title": hockeydata["i18n"].translate("Rushing Attempts") }, "averageYardsPerRush": { "title": hockeydata["i18n"].translate("Average Yards/Rush"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "rushingTouchdowns": { "title": hockeydata["i18n"].translate("Rushing Touchdowns") }, "netYardsPassing": { "title": hockeydata["i18n"].translate("Net Yards Passing") }, "passingCompletions": { "title": hockeydata["i18n"].translate("Passing Completions") }, "passingAttempts": { "title": hockeydata["i18n"].translate("Passing Attempts") }, "passingInterceptions": { "title": hockeydata["i18n"].translate("Passing Interceptions") }, "averageYardsPerPassAttempt": { "title": hockeydata["i18n"].translate("Average Per Attempt"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "averageYardsPerCompletion": { "title": hockeydata["i18n"].translate("Average Per Completion"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "passingTouchdowns": { "title": hockeydata["i18n"].translate("Passing Touchdowns") }, "totalOffenseYards": { "title": hockeydata["i18n"].translate("Total Offense Yards") }, "totalOffensePlays": { "title": hockeydata["i18n"].translate("Total Offense Plays") }, "averageGainPerPlay": { "title": hockeydata["i18n"].translate("Average Gain Per Play"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "fumblesNumber": { "title": hockeydata["i18n"].translate("Fumbles (Number)") }, "fumblesLost": { "title": hockeydata["i18n"].translate("Fumbles (Lost)") }, "puntAttempts": { "title": hockeydata["i18n"].translate("Punt Attempts") }, "puntYards": { "title": hockeydata["i18n"].translate("Punt Yards") }, "averageYardsPerPunt": { "title": hockeydata["i18n"].translate("Average Yards per Punt"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "netYardsPerPunt": { "title": hockeydata["i18n"].translate("Net Yards per Punt"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "inside20Punts": { "title": hockeydata["i18n"].translate("Inside 20") }, "punts50plus": { "title": hockeydata["i18n"].translate("Punts 50+") }, "puntTouchbacks": { "title": hockeydata["i18n"].translate("Touchbacks") }, "puntFairCatches": { "title": hockeydata["i18n"].translate("Fair Catches") }, "kickoffAttempts": { "title": hockeydata["i18n"].translate("Kickoff Attempts") }, "kickoffYards": { "title": hockeydata["i18n"].translate("Kickoff Yards") }, "averageYardsPerKickoff": { "title": hockeydata["i18n"].translate("Average Yards per Kickoff"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "kickoffTouchbacks": { "title": hockeydata["i18n"].translate("Touchbacks") }, "kickoffReturnNumber": { "title": hockeydata["i18n"].translate("Kickoff Returns (Number)") }, "kickoffReturnYards": { "title": hockeydata["i18n"].translate("Kickoff Returns (Yards)") }, "kickoffReturnTouchdowns": { "title": hockeydata["i18n"].translate("Kickoff Returns (TD)") }, "averageYardsPerKickoffReturn": { "title": hockeydata["i18n"].translate("Average Per Return"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "thirdDownAttempts": { "title": hockeydata["i18n"].translate("Third Down Attempts") }, "thirdDownSuccesses": { "title": hockeydata["i18n"].translate("Third Down Successes") }, "fourthDownAttempts": { "title": hockeydata["i18n"].translate("Fourth Down Attempts") }, "fourthDownSuccesses": { "title": hockeydata["i18n"].translate("Fourth Down Successes") }, "sacksNumber": { "title": hockeydata["i18n"].translate("Sacks (Number)") }, "sacksYards": { "title": hockeydata["i18n"].translate("Sacks (Yards)") }, "patAttempts": { "title": hockeydata["i18n"].translate("PAT Attempts") }, "patSuccesses": { "title": hockeydata["i18n"].translate("PAT Successes") }, "fieldGoalAttempts": { "title": hockeydata["i18n"].translate("Field Goal Attempts") }, "fieldGoalSuccesses": { "title": hockeydata["i18n"].translate("Field Goal Successes") }, "tackles": { "title": hockeydata["i18n"].translate("Tackles") }, "yardsForLoss": { "title": hockeydata["i18n"].translate("Yards For Loss") }, "timeOfPossessionFormatted": { "title": hockeydata["i18n"].translate("Time Of Possession") }, "numberOfPenalties": { "title": hockeydata["i18n"].translate("Number of Penalties") }, "effectivePenaltyYards": { "title": hockeydata["i18n"].translate("Effective Penalty Yards") } }; hockeydata["los"]["Configuration"].tableRowDefinition[sport].gameFullReportTeamStats=hockeydata["los"]["Configuration"].tableRowDefinition[sport].gameTeamStats; hockeydata["los"]["Configuration"].tableRowDefinition[sport].gameLiveBoxTeamStats=hockeydata["los"]["Configuration"].tableRowDefinition[sport].gameTeamStats; hockeydata["los"]["Configuration"].tableRowDefinition[sport].teamFullPageTeamStatsFieldGoals={ "conversions": { "title": hockeydata["i18n"].translate("Conversions") }, "attempts": { "title": hockeydata["i18n"].translate("Attempts") }, "percentage": { "title": hockeydata["i18n"].translate("Percentage"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableRowDefinition[sport].teamFullPageTeamStatsFirstDowns={ "rushes": { "title": hockeydata["i18n"].translate("Rushes") }, "passes": { "title": hockeydata["i18n"].translate("Passes") }, "penalties": { "title": hockeydata["i18n"].translate("Penalties") }, "total": { "title": hockeydata["i18n"].translate("Total") } }; hockeydata["los"]["Configuration"].tableRowDefinition[sport].teamFullPageTeamStatsThirdDownConversions={ "conversions": { "title": hockeydata["i18n"].translate("Conversions") }, "attempts": { "title": hockeydata["i18n"].translate("Attempts") }, "percentage": { "title": hockeydata["i18n"].translate("Percentage"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableRowDefinition[sport].teamFullPageTeamStatsKickoffCoverage={ "number": { "title": hockeydata["i18n"].translate("Number") }, "yards": { "title": hockeydata["i18n"].translate("Yards") }, "averageYards": { "title": hockeydata["i18n"].translate("Average Yards"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "returns": { "title": hockeydata["i18n"].translate("Returns") }, "touchbacks": { "title": hockeydata["i18n"].translate("Touchbacks") }, "netAverage": { "title": hockeydata["i18n"].translate("Net Average"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableRowDefinition[sport].teamFullPageTeamStatsKickoffReturns={ "returns": { "title": hockeydata["i18n"].translate("Returns") }, "yards": { "title": hockeydata["i18n"].translate("Yards") }, "touchdowns": { "title": hockeydata["i18n"].translate("Touchdowns") }, "averageYards": { "title": hockeydata["i18n"].translate("Average Yards"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableRowDefinition[sport].teamFullPageTeamStatsPassing={ "attempts": { "title": hockeydata["i18n"].translate("Attempts") }, "completions": { "title": hockeydata["i18n"].translate("Completions") }, "interceptions": { "title": hockeydata["i18n"].translate("Interceptions") }, "percentage": { "title": hockeydata["i18n"].translate("Percentage"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "yards": { "title": hockeydata["i18n"].translate("Yards") }, "averageYards": { "title": hockeydata["i18n"].translate("Average Yards"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "touchdowns": { "title": hockeydata["i18n"].translate("Touchdowns") }, "sacks": { "title": hockeydata["i18n"].translate("Sacks") }, "yardsPerGame": { "title": hockeydata["i18n"].translate("Yards per Game"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableRowDefinition[sport].teamFullPageTeamStatsPATKicks={ "number": { "title": hockeydata["i18n"].translate("Number") }, "successes": { "title": hockeydata["i18n"].translate("Successes") }, "successPercentage": { "title": hockeydata["i18n"].translate("Success Percentage"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "touchdowns": { "title": hockeydata["i18n"].translate("Touchdowns") }, "patTryPercentage": { "title": hockeydata["i18n"].translate("PAT Try Percentage"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableRowDefinition[sport].teamFullPageTeamStatsPenalties={ "number": { "title": hockeydata["i18n"].translate("Number") }, "yards": { "title": hockeydata["i18n"].translate("Yards") }, "averageYardsPerPenalty": { "title": hockeydata["i18n"].translate("Average Yards per Penalty"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "averageYardsPerGame": { "title": hockeydata["i18n"].translate("Average Yards per Game"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableRowDefinition[sport].teamFullPageTeamStatsPuntReturns={ "returns": { "title": hockeydata["i18n"].translate("Returns") }, "yards": { "title": hockeydata["i18n"].translate("Yards") }, "touchdowns": { "title": hockeydata["i18n"].translate("Touchdowns") }, "averageYards": { "title": hockeydata["i18n"].translate("Average Yards"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableRowDefinition[sport].teamFullPageTeamStatsPunts={ "number": { "title": hockeydata["i18n"].translate("Number") }, "yards": { "title": hockeydata["i18n"].translate("Yards") }, "averageYards": { "title": hockeydata["i18n"].translate("Average Yards"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "puntReturnYards": { "title": hockeydata["i18n"].translate("Punt Return Yards") }, "averagePerPunt": { "title": hockeydata["i18n"].translate("Average Yards per Punt"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "touchbacks": { "title": hockeydata["i18n"].translate("Touchbacks") }, "netAverage": { "title": hockeydata["i18n"].translate("Net Average"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableRowDefinition[sport].teamFullPageTeamStatsRushing={ "attempts": { "title": hockeydata["i18n"].translate("Attempts") }, "yards": { "title": hockeydata["i18n"].translate("Yards") }, "averageYards": { "title": hockeydata["i18n"].translate("Average Yards"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "touchdowns": { "title": hockeydata["i18n"].translate("Touchdowns") }, "yardsPerGame": { "title": hockeydata["i18n"].translate("Yards per Game"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableRowDefinition[sport].teamFullPageTeamStatsScoring={ "touchdowns": { "title": hockeydata["i18n"].translate("Touchdowns") }, "extraPoints": { "title": hockeydata["i18n"].translate("Extra Points") }, "twoPointConversions": { "title": hockeydata["i18n"].translate("2-Point Conversions") }, "twoPointConversionsByDefense": { "title": hockeydata["i18n"].translate("2-Point Conversions by Defense") }, "fieldGoals": { "title": hockeydata["i18n"].translate("Field Goals") }, "safeties": { "title": hockeydata["i18n"].translate("Safeties") }, "points": { "title": hockeydata["i18n"].translate("Points") }, "averagePoints": { "title": hockeydata["i18n"].translate("Average Points"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].tableRowDefinition[sport].teamFullPageTeamStatsTimeOfPossession={ "totalTimeFormatted": { "title": hockeydata["i18n"].translate("Total") }, "averageTimeFormatted": { "title": hockeydata["i18n"].translate("Average") } }; hockeydata["los"]["Configuration"].tableRowDefinition[sport].teamFullPageTeamStatsTotal={ "rushingYards": { "title": hockeydata["i18n"].translate("Rushing Yards") }, "passingYards": { "title": hockeydata["i18n"].translate("Passing Yards") }, "plays": { "title": hockeydata["i18n"].translate("Plays") }, "yards": { "title": hockeydata["i18n"].translate("Yards") }, "averageYards": { "title": hockeydata["i18n"].translate("Average Yards"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } }, "touchdowns": { "title": hockeydata["i18n"].translate("Touchdowns") }, "yardsPerGame": { "title": hockeydata["i18n"].translate("Yards per Game"), "format": function(value){ return hockeydata["util"].toFixed(value, 1); } } }; hockeydata["los"]["Configuration"].columnSets[sport].standings={ "default": [ "teamLongname", "teamLogo", "gamesPlayed", "gamesWon", "gamesLost", "winPercentage", "points35Plus", "points35Minus" ], "short": [ "teamLongname", "gamesPlayed", "gamesWon", "gamesLost", "winPercentage" ], "long": [ "teamLongname", "teamLogo", "gamesPlayed", "gamesWon", "gamesLost", "winPercentage", "points35Plus", "points35Minus" ], "noMercyRule": [ "teamLongname", "teamLogo", "gamesPlayed", "gamesWon", "gamesLost", "winPercentage", "pointsPlus", "pointsMinus" ], "defaultFlagFootball": [ "teamLongname", "teamLogo", "gamesPlayed", "gamesWon", "gamesTied", "gamesLost", "winPercentage", "pointsPlus", "pointsMinus" ] }; hockeydata["los"]["Configuration"].columnSets[sport].schedule={ "default": [ "scheduledDateTime", "homeTeamLongname", "homeTeamLogo", "homeTeamScore", "awayTeamScore", "awayTeamLogo", "awayTeamLongname" ], "short": [ "scheduledDateTimeShort", "homeTeamShortname", "homeTeamScore", "awayTeamScore", "awayTeamShortname" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamStatsScoring={ "default": [ "teamName", "teamLogo", "gamesPlayed", "touchdowns", "extraPoints", "twoPointConversions", "twoPointConversionsByDefense", "fieldGoals", "safeties", "points", "averagePoints" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamStatsPassing={ "default": [ "teamName", "teamLogo", "gamesPlayed", "attempts", "completions", "interceptions", "percentage", "yards", "averageYards", "touchdowns", "sacks", "yardsPerGame" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamStatsRushing={ "default": [ "teamName", "teamLogo", "gamesPlayed", "attempts", "yards", "averageYards", "touchdowns", "yardsPerGame" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamStatsTotalOffense={ "default": [ "teamName", "teamLogo", "gamesPlayed", "rushingYards", "passingYards", "plays", "yards", "averageYards", "touchdowns", "yardsPerGame" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamStatsFirstDowns={ "default": [ "teamName", "teamLogo", "gamesPlayed", "rushes", "passes", "penalties", "total" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamStatsKickoffReturns={ "default": [ "teamName", "teamLogo", "gamesPlayed", "returns", "yards", "touchdowns", "averageYards" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamStatsKickoffCoverage={ "default": [ "teamName", "teamLogo", "gamesPlayed", "number", "yards", "averageYards", "returns", "touchbacks", "netAverage" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamStatsPunts={ "default": [ "teamName", "teamLogo", "gamesPlayed", "number", "yards", "averageYards", "puntReturnYards", "averagePerPunt", "touchbacks", "netAverage" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamStatsPuntReturns={ "default": [ "teamName", "teamLogo", "gamesPlayed", "returns", "yards", "touchdowns", "averageYards" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamStatsDownConversions={ "default": [ "teamName", "teamLogo", "gamesPlayed", "conversions", "attempts", "percentage" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamStatsFieldGoals={ "default": [ "teamName", "teamLogo", "gamesPlayed", "conversions", "attempts", "percentage" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamStatsPATKicks={ "default": [ "teamName", "teamLogo", "gamesPlayed", "number", "successes", "successPercentage", "touchdowns", "patTryPercentage" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamStatsPenalties={ "default": [ "teamName", "teamLogo", "gamesPlayed", "number", "yards", "averageYardsPerPenalty", "averageYardsPerGame" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamStatsTimeOfPossession={ "default": [ "teamName", "teamLogo", "gamesPlayed", "totalTimeFormatted", "averageTimeFormatted" ] }; hockeydata["los"]["Configuration"].columnSets[sport].leadersPassing={ "default": [ "teamLogo", "playerName", "playerJerseyNr", "games", "attCmpInt", "netYards", "touchdowns", "longest", "average", "quarterbackRatingNcaa", "quarterbackRatingNfl" ] }; hockeydata["los"]["Configuration"].columnSets[sport].leadersReceiving={ "default": [ "teamLogo", "playerName", "playerJerseyNr", "games", "number", "yards", "touchdowns", "longest", "average" ] }; hockeydata["los"]["Configuration"].columnSets[sport].leadersRushing={ "default": [ "teamLogo", "playerName", "playerJerseyNr", "games", "number", "yardsGained", "yardsLost", "netYards", "touchdowns", "longest", "average" ] }; hockeydata["los"]["Configuration"].columnSets[sport].leadersDefense={ "default": [ "teamLogo", "playerName", "playerJerseyNr", "games", "soloTackles", "assistTackles", "totalTackles", "tackleForLossFormatted", "interceptions", "fumblesForced", "passBreakups", "sacks" ] }; hockeydata["los"]["Configuration"].columnSets[sport].gameScores={ "default": [ "gameTime", "teamShortName", "playerNameAndJerseyNr", "scoreReason", "score" ], "short": [ "teamShortName", "scoreReason", "score" ] }; hockeydata["los"]["Configuration"].columnSets[sport].passingGameLeaders={ "default": [ "teamLogo", "playerName", "playerJerseyNr", "attCmpInt", "netYards", "touchdowns", "longest", "average", "quarterbackRatingNcaa", "quarterbackRatingNfl" ] }; hockeydata["los"]["Configuration"].columnSets[sport].gameFullReportLeadersPassing={ "default": hockeydata["los"]["Configuration"].columnSets[sport].passingGameLeaders.default }; hockeydata["los"]["Configuration"].columnSets[sport].rushingGameLeaders={ "default": [ "teamLogo", "playerName", "playerJerseyNr", "number", "yardsGained", "yardsLost", "netYards", "touchdowns", "longest", "average" ] }; hockeydata["los"]["Configuration"].columnSets[sport].gameFullReportLeadersRushing={ "default": hockeydata["los"]["Configuration"].columnSets[sport].rushingGameLeaders.default }; hockeydata["los"]["Configuration"].columnSets[sport].receivingGameLeaders={ "default": [ "teamLogo", "playerName", "playerJerseyNr", "number", "yards", "touchdowns", "longest", "average" ] }; hockeydata["los"]["Configuration"].columnSets[sport].gameFullReportLeadersReceiving={ "default": hockeydata["los"]["Configuration"].columnSets[sport].receivingGameLeaders.default }; hockeydata["los"]["Configuration"].columnSets[sport].defensiveGameLeaders={ "default": [ "teamLogo", "playerName", "playerJerseyNr", "soloTackles", "assistTackles", "totalTackles", "tackleForLossFormatted", "interceptions", "fumblesForced", "passBreakups", "sacks" ] }; hockeydata["los"]["Configuration"].columnSets[sport].gameFullReportLeadersDefense={ "default": hockeydata["los"]["Configuration"].columnSets[sport].defensiveGameLeaders.default }; hockeydata["los"]["Configuration"].columnSets[sport].gameFullReportRoster={ "default": [ "playerPortrait", "playerName", "jerseyNr", "position" ] }; hockeydata["los"]["Configuration"].columnSets[sport].gamePlayByPlay={ "default": [ "orderNumber", "gameTime", "teamShortName", "GameSituation", "gameAction", "newScore" ] }; hockeydata["los"]["Configuration"].columnSets[sport].gameFullReportScores={ "default": hockeydata["los"]["Configuration"].columnSets[sport].gameScores.default, "short": hockeydata["los"]["Configuration"].columnSets[sport].gameScores.short }; hockeydata["los"]["Configuration"].columnSets[sport].gameLiveBoxScores={ "default": hockeydata["los"]["Configuration"].columnSets[sport].gameScores.default, "short": hockeydata["los"]["Configuration"].columnSets[sport].gameScores.short }; hockeydata["los"]["Configuration"].columnSets[sport].gameFullReportPlayByPlay={ "default": hockeydata["los"]["Configuration"].columnSets[sport].gamePlayByPlay.default }; hockeydata["los"]["Configuration"].columnSets[sport].gameLiveBoxPlayByPlay={ "default": hockeydata["los"]["Configuration"].columnSets[sport].gamePlayByPlay.default }; hockeydata["los"]["Configuration"].columnSets[sport].playerCareerStatsPassing={ "default": [ "leagueShortname", "seasonShortname", "teamName", "teamLogo", "playerJerseyNr", "games", "attCmpInt", "netYards", "touchdowns", "longest", "average", "quarterbackRatingNcaa", "quarterbackRatingNfl" ] }; hockeydata["los"]["Configuration"].columnSets[sport].playerCareerStatsReceiving={ "default": [ "leagueShortname", "seasonShortname", "teamName", "teamLogo", "playerJerseyNr", "games", "number", "yards", "touchdowns", "longest", "average" ] }; hockeydata["los"]["Configuration"].columnSets[sport].playerCareerStatsRushing={ "default": [ "leagueShortname", "seasonShortname", "teamName", "teamLogo", "playerJerseyNr", "games", "number", "yardsGained", "yardsLost", "netYards", "touchdowns", "longest", "average" ] }; hockeydata["los"]["Configuration"].columnSets[sport].playerCareerStatsDefense={ "default": [ "leagueShortname", "seasonShortname", "teamName", "teamLogo", "playerJerseyNr", "games", "soloTackles", "assistTackles", "totalTackles", "tackleForLossFormatted", "interceptions", "fumblesForced", "passBreakups", "sacks" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamFullPageGames={ "default": [ "scheduledDateTime", "score", "scoreInfo", "opponentTeamShortname", "gameVictoryState" ] }; hockeydata["los"]["Configuration"].columnSets[sport].teamFullPageRosterDetails={ "default": [ "playerPortrait", "playerName", "playerJerseyNr", "position", "shootsCatches", "birthdate", "height", "weight", "nation" ] }; hockeydata["los"]["Configuration"].columnSets[sport].knockoutStageGames={ "default": [ "scheduledDate", "scheduledTime", "homeTeamShortname", "homeTeamScore", "awayTeamScore", "awayTeamShortname" ] }; hockeydata["los"]["Configuration"].columnSets[sport].knockoutStageCompact={ "default": [ "homeTeamShortname", "homeTeamLogo", "homeTeamScore", "awayTeamScore", "awayTeamLogo", "awayTeamShortname" ] }; hockeydata["los"]["Configuration"].rowSets[sport].gameTeamStats={ "default": [ "firstDowns", "firstDownsRushing", "firstDownsPassing", "firstDownsPenalty", "netYardsRushing", "yardsGainedRushing", "yardsLostRushing", "rushingAttempts", "averageYardsPerRush", "rushingTouchdowns", "netYardsPassing", "passingCompletions", "passingAttempts", "passingInterceptions", "averageYardsPerPassAttempt", "averageYardsPerCompletion", "passingTouchdowns", "totalOffenseYards", "totalOffensePlays", "averageGainPerPlay", "fumblesNumber", "fumblesLost", "puntAttempts", "puntYards", "averageYardsPerPunt", "netYardsPerPunt", "inside20Punts", "punts50plus", "puntTouchbacks", "puntFairCatches", "kickoffAttempts", "kickoffYards", "averageYardsPerKickoff", "kickoffTouchbacks", "kickoffReturnNumber", "kickoffReturnYards", "kickoffReturnTouchdowns", "averageYardsPerKickoffReturn", "thirdDownAttempts", "thirdDownSuccesses", "fourthDownAttempts", "fourthDownSuccesses", "sacksNumber", "sacksYards", "patAttempts", "patSuccesses", "fieldGoalAttempts", "fieldGoalSuccesses", "tackles", "yardsForLoss", "timeOfPossessionFormatted", "numberOfPenalties", "effectivePenaltyYards" ] }; hockeydata["los"]["Configuration"].rowSets[sport].gameFullReportTeamStats={ "default": hockeydata["los"]["Configuration"].rowSets[sport].gameTeamStats.default }; hockeydata["los"]["Configuration"].rowSets[sport].gameLiveBoxTeamStats={ "default": hockeydata["los"]["Configuration"].rowSets[sport].gameTeamStats.default }; hockeydata["los"]["Configuration"].rowSets[sport].teamFullPageTeamStatsFieldGoals={ "default": [ "conversions", "attempts", "percentage" ] }; hockeydata["los"]["Configuration"].rowSets[sport].teamFullPageTeamStatsFirstDowns={ "default": [ "rushes", "passes", "penalties", "total" ] }; hockeydata["los"]["Configuration"].rowSets[sport].teamFullPageTeamStatsThirdDownConversions={ "default": [ "conversions", "attempts", "percentage" ] }; hockeydata["los"]["Configuration"].rowSets[sport].teamFullPageTeamStatsKickoffCoverage={ "default": [ "number", "yards", "averageYards", "returns", "touchbacks", "netAverage" ] }; hockeydata["los"]["Configuration"].rowSets[sport].teamFullPageTeamStatsKickoffReturns={ "default": [ "returns", "yards", "touchdowns", "averageYards" ] }; hockeydata["los"]["Configuration"].rowSets[sport].teamFullPageTeamStatsPassing={ "default": [ "attempts", "completions", "interceptions", "percentage", "yards", "averageYards", "touchdowns", "sacks", "yardsPerGame" ] }; hockeydata["los"]["Configuration"].rowSets[sport].teamFullPageTeamStatsPATKicks={ "default": [ "number", "successes", "successPercentage", "touchdowns", "patTryPercentage" ] }; hockeydata["los"]["Configuration"].rowSets[sport].teamFullPageTeamStatsPenalties={ "default": [ "number", "yards", "averageYardsPerPenalty", "averageYardsPerGame" ] }; hockeydata["los"]["Configuration"].rowSets[sport].teamFullPageTeamStatsPuntReturns={ "default": [ "returns", "yards", "touchdowns", "averageYards" ] }; hockeydata["los"]["Configuration"].rowSets[sport].teamFullPageTeamStatsPunts={ "default": [ "number", "yards", "averageYards", "puntReturnYards", "averagePerPunt", "touchbacks", "netAverage" ] }; hockeydata["los"]["Configuration"].rowSets[sport].teamFullPageTeamStatsRushing={ "default": [ "attempts", "yards", "averageYards", "touchdowns", "yardsPerGame" ] }; hockeydata["los"]["Configuration"].rowSets[sport].teamFullPageTeamStatsScoring={ "default": [ "touchdowns", "extraPoints", "twoPointConversions", "twoPointConversionsByDefense", "fieldGoals", "safeties", "points", "averagePoints" ] }; hockeydata["los"]["Configuration"].rowSets[sport].teamFullPageTeamStatsTimeOfPossession={ "default": [ "totalTimeFormatted", "averageTimeFormatted" ] }; hockeydata["los"]["Configuration"].rowSets[sport].teamFullPageTeamStatsTotal={ "default": [ "rushingYards", "passingYards", "plays", "yards", "averageYards", "touchdowns", "yardsPerGame" ] }; })()); ( ( function(){ var SelectHandler=function(){ var selects=[]; this.add=function( select ){ selects.push( select ); }; this.remove=function( select ){ for( var i=0; i < selects.length; i++ ){ if( selects[ i ]===select ){ selects.splice( i, 1 ); return true; } } return false; }; this.closeAll=function( select ){ for( var i=0; i < selects.length; i++ ){ if( selects[ i ] !== select ){ selects[ i ].close(); } } }; jQuery( document ).click( this.closeAll ); }; var selectHandler=new SelectHandler(); var Select=function( $select ){ var _$select, _$wrapper, _$display, _$list; var _self=this; var _addOptions=function( $node, headline, selectedIndex ){ if( headline ){ jQuery( '<li/>' ).addClass( '-hd-util-select-headline' ).appendTo( _$list ).attr( 'title', headline ).html( headline ); } var $options=$node.find( '> option' ); $options.each( function( index ){ var $option=jQuery( this ); var html=$option.html(); var text=$option.text(); var $item=jQuery( '<li/>' ).addClass( '-hd-clickable' ).appendTo( _$list ).attr( 'title', text ).html( html ); if( headline ){ $item.addClass( '-hd-util-select-sub' ); } if( selectedIndex===index ){ $item.addClass( '-hd-util-select-selected' ); } $item.click( function(){ _$list.find( '.-hd-util-select-selected' ).removeClass( '-hd-util-select-selected' ); $item.addClass( '-hd-util-select-selected' ); _$display.attr( 'title', text ).html( html ); jQuery( $options[ index ] ).prop( 'selected', true ); _$select.change(); } ); } ); }; var _initialize=function(){ _$select=jQuery( $select ); _$wrapper=jQuery( '<div/>' ).addClass( '-hd-util-select' ).insertBefore( _$select ); _$display=jQuery( '<div/>' ).addClass( '-hd-util-select-display -hd-clickable' ).appendTo( _$wrapper ).click( _open ); _$list=jQuery( '<ul/>' ).addClass( '-hd-util-select-list' ).appendTo( _$wrapper ); _$select.appendTo( _$wrapper ); selectHandler.add( _self ); _update(); }; var _update=function(){ var selectedIndex=_$select.prop( 'selectedIndex' ); var $selected=_$select.find( ':selected' ); var $optionGroups=_$select.find( '> optgroup' ); _$display.attr( 'title', "" ).empty(); _$list.empty(); if( $selected.length ){ _$display.attr( 'title', $selected.text() ).html( $selected.html() ); } _addOptions( _$select, null, selectedIndex ); $optionGroups.each( function(){ _addOptions( jQuery( this ), jQuery( this ).attr( 'label' ) ); } ); }; var _open=function( e ){ e.stopPropagation(); selectHandler.closeAll( _self ); _$wrapper.toggleClass( '-hd-util-select-open' ); }; var _destroy=function(){ selectHandler.remove( _self ); _$select.insertAfter( _$wrapper ); _$wrapper.remove(); }; var _close=function(){ _$wrapper.removeClass( '-hd-util-select-open' ); }; this.destroy=_destroy; this.close=_close; this.open=_open; this.update=_update; _initialize(); }; hockeydata.extend( Select, hockeydata[ 'util' ], 'Select' ); } )() ); ((function(){ function Tabs(options){ var self=this; this.defaults={ "$domNode": jQuery("<div/>"), "tabs": [] }; this.options=jQuery.extend({}, this.defaults, options || {}); this.$domNode=this.options.$domNode; this.$buttons=null; this.$content=null; this.$activeTab=null; this.tabs=[]; this.initialize=function(){ this.$domNode.empty(); this.$domNode.addClass("-hd-util-tabs"); this.$buttons=jQuery("<div/>").addClass("-hd-util-tabs-buttons").appendTo(this.$domNode); this.$content=jQuery("<div/>").addClass("-hd-util-tabs-content").appendTo(this.$domNode); if(hockeydata["util"].isArray(this.options.tabs)) for(var i=0; i < this.options.tabs.length; i++) this.addTab(this.options.tabs[i]); }; this.addTab=function(tabToAdd){ var $button=jQuery("<a/>").addClass("-hd-util-tabs-button").attr("href", "#").appendTo(this.$buttons); var $pane=jQuery("<div/>").addClass("-hd-util-tabs-pane").appendTo(this.$content); var tab={ "$button": $button, "$pane": $pane }; if(!self.$activeTab){ $button.addClass("-hd-util-tabs-button-active"); $pane.addClass("-hd-util-tabs-pane-active"); self.$activeTab=tab; } if(jQuery.isPlainObject(tabToAdd)){ if("button" in tabToAdd){ var button=tabToAdd.button; if(jQuery.isPlainObject(button)){ if("label" in button) $button.html(button.label); button.$node=$button; } else if(hockeydata["util"].isString(button)) $button.html(button); } if("content" in tabToAdd) jQuery(tabToAdd.content).appendTo($pane); } this.tabs.push(tab); $button.click(function(e){ if(self.$activeTab){ self.$activeTab.$button.removeClass("-hd-util-tabs-button-active"); self.$activeTab.$pane.removeClass("-hd-util-tabs-pane-active"); } $button.addClass("-hd-util-tabs-button-active"); $pane.addClass("-hd-util-tabs-pane-active"); self.$activeTab=tab; e.preventDefault(); }); }; this.initialize(); } hockeydata.extend(Tabs, hockeydata["util"], "Tabs"); })()); ((function(){ function DivisionPicker(paramOptions){ var defaultOptions={ "$domNode": jQuery("<div/>"), "apiKey": "VOID", "autoReload": false, "league": null, "sport": null, "tabs": false, "widget": null, "widgets": null, "widgetOptions": {}, "widgetOptionToSet": "divisionId", "divisions": null, "divisionId": null, "divisionIdUrlParameter": "divisionId" }; var options=jQuery.extend({}, defaultOptions, paramOptions || {}); var widgets=[]; var $domNode=options.$domNode; var $selectContainer=null; var $widgetContainer=null; var $seasonSelect=null; var $divisionSelect=null; var defaultSeason=null; var divisionSelect=null; var seasonSelect=null; var initialize=function(){ if(!options.league) options.league=hockeydata["util"].getLeague(options.sport); if(!options.divisionId && options.divisionIdUrlParameter) options.divisionId=hockeydata["util"].getParameter(options.divisionIdUrlParameter); $domNode.addClass("-hd-los -hd-los-division-picker"); $selectContainer=jQuery("<div/>").appendTo($domNode).addClass("-hd-los-division-picker-select-container"); $widgetContainer=jQuery("<div/>").appendTo($domNode).addClass("-hd-los-division-picker-widget-container"); if(!hockeydata["util"].isArray(options.widgets)){ options.tabs=false; options.widgets=[{ "title": "", "widget": options.widget, "widgetOptions": options.widgetOptions }]; } if(options.divisions){ $divisionSelect=jQuery("<select/>").appendTo($selectContainer).addClass("-hd-los-division-picker-select-division").change(selectDivision); divisionSelect=new hockeydata["util"]["Select"]($divisionSelect); if(jQuery.isPlainObject(options.divisions)){ $seasonSelect=jQuery("<select/>").prependTo($selectContainer).addClass("-hd-los-division-picker-select-season").change(selectSeason); for(var seasonName in options.divisions){ if(options.divisions.hasOwnProperty(seasonName)){ jQuery("<option/>").appendTo($seasonSelect).html(seasonName).attr("value", seasonName); if(options.divisionId){ for(var i=0; i < options.divisions[seasonName].length; i++){ if(String(options.divisions[seasonName][i].divisionId)===String(options.divisionId)){ defaultSeason=seasonName; break; } } } } } defaultSeason && $seasonSelect.val(defaultSeason); seasonSelect=new hockeydata["util"]["Select"]($seasonSelect); selectSeason(null, options.divisionId); } else if(hockeydata["util"].isArray(options.divisions)) addDivisions(options.divisions, options.divisionId); } else $selectContainer.append(jQuery("<div/>").addClass("-hd-error").html(hockeydata["i18n"].translate("No divisions defined in widget options. Use widget option 'divisions' to define which divisions should be available."))); }; var clearDivisions=function(){ $divisionSelect.empty(); }; var addDivisions=function(divisions, divisionId){ for(var i=0; i < divisions.length; i++){ jQuery("<option/>").appendTo($divisionSelect).html(divisions[i].divisionName).attr("value", divisions[i].divisionId); String(divisionId)===String(divisions[i].divisionId) && $divisionSelect.val(divisionId); } divisionSelect.update(); selectDivision(); }; var selectSeason=function(e, divisionId){ clearDivisions(); addDivisions(options.divisions[$seasonSelect.val()], divisionId); }; var selectDivision=function(){ destroyWidgets(); drawWidgets(); }; var drawWidgets=function(){ widgets=[]; if(hockeydata["util"].isArray(options.widgets) && options.widgets.length){ if(options.tabs){ var tabs=[]; } var divisionId=$divisionSelect.val(); for(var i=0; i < options.widgets.length; i++){ var widget=options.widgets[i]; var $domNode=jQuery("<div/>"); var widgetOptions={ "$domNode": $domNode, "apiKey": options.apiKey, "autoReload": options.autoReload, "league": options.league, "sport": options.sport, "widgetName": widget.widget || options.widget }; widgetOptions[options.widgetOptionToSet]=divisionId; if(options.tabs){ tabs.push({ "button": widget.title || widget.widget || options.widget, "content": $domNode }); } else { widget.title && jQuery("<h3/>").appendTo($widgetContainer).html(widget.title); $domNode.appendTo($widgetContainer); } widgets.push(new hockeydata["util"]["Widget"](jQuery.extend( {}, options.widgetOptions, widget.widgetOptions, widgetOptions ))); } if(options.tabs){ new hockeydata["util"].Tabs({ "$domNode": jQuery("<div/>").appendTo($widgetContainer), "tabs": tabs }); } } else { $widgetContainer.empty().append(jQuery("<div/>").addClass("-hd-error").html(hockeydata["i18n"].translate("No valid widget options defined. Use widget options 'widget' and 'widgetOptions' or 'widgets' to define which widget(s) should be displayed."))); } }; var destroyWidgets=function(){ for(var i=0; i < widgets.length; i++){ widgets[i].destroy(); $widgetContainer.empty(); } }; this.destroy=function(){ destroyWidgets(); }; initialize(); } hockeydata.extend(DivisionPicker, hockeydata["los"], "DivisionPicker"); })()); ((function(){ function IntelliTable(options){ var self=this; this.defaults={ "$domNode": jQuery("<div/>"), "autoShowLegend": false, "class": null, "defaultSort": "asc", "defaultSortColumn": null, "enableSorting": true, "headers": [], "hideHeaders": false, "hideLegendText": "Hide Legend", "legendTableClass": null, "onDrawBody": null, "rows": [], "scrollHelpText": "Scroll right to view more content", "showLegend": false, "showLegendText": "Show Legend", "showRanking": false, "tableClass": null }; this.options=jQuery.extend({}, this.defaults, options || {}); this.$domNode=this.options.$domNode; this.$scrollHelp=null; this.$data=null; this.$table=null; this.$thead=null; this.$tbody=null; this.$overlay=null; this.$legend=null; this.$legendLink=null; this.$legendTable=null; this.$legendTBody=null; this.legendVisible=false; this.legendItems={}; this.sortedBy=null; this.sorted=null; this.inactive=false; this.initialize=function(){ this.$domNode.empty(); this.$scrollHelp=jQuery("<div/>"); this.$data=jQuery("<div/>"); this.$table=jQuery("<table/>"); this.$thead=jQuery("<thead/>"); this.$tbody=jQuery("<tbody/>"); this.$overlay=jQuery("<div/>"); this.$scrollHelp.html(this.options.scrollHelpText); this.$scrollHelp.addClass("-hd-util-intellitable-scroll-help"); this.$data.addClass("-hd-util-intellitable-data"); this.$overlay.addClass("-hd-util-intellitable-overlay"); this.$domNode.addClass("-hd-util-intellitable"); this.$table.append(this.$thead); this.$table.append(this.$tbody); this.$data.append(this.$table); this.$data.append(this.$overlay); this.$domNode.append(this.$scrollHelp); this.$domNode.append(this.$data); this.drawHead(); this.drawBody(); jQuery(window).resize(function(){ self.toggleScrollHelp(); }); if(this.options.hideHeaders) this.$thead.hide(); if(this.options["class"]) this.$domNode.addClass(this.options["class"]); if(this.options["tableClass"]) this.$table.addClass(this.options["tableClass"]); if(this.options.showLegend) this.drawLegend(); if(("defaultSortColumn" in this.options) && this.options.defaultSortColumn !== null) this.options.defaultSort==="desc" ? this.sortDescending(this.options.defaultSortColumn) : this.sortAscending(this.options.defaultSortColumn); }; this.getSortClickFunction=function(column){ return function(){ if(self.sortedBy===column && self.sorted==="asc"){ self.sorted="desc"; self.sortDescending(column); } else { self.sorted="asc"; self.sortAscending(column); } }; }; this.drawHead=function(){ this.$thead.empty(); if(this.options.headers && this.options.headers.length){ var $tr=jQuery("<tr/>"); if(this.options.showRanking) jQuery("<th/>").html("&nbsp;").appendTo($tr); for(var i=0; i < this.options.headers.length; i++){ var header=this.options.headers[i]; var $th=jQuery("<th/>"); if(this.options.showLegend && "title" in header) this.legendItems[header.html]=header.title; for(var key in header){ if(header.hasOwnProperty(key)){ if(key==="html") $th.html(header[key]); else if(key==="style") $th.css(header[key]); else $th.attr(key, header[key]); } } if(this.options.enableSorting){ $th.addClass("-hd-clickable"); $th.bind("click", this.getSortClickFunction(i)); } $tr.append($th); } this.$thead.append($tr); } }; this.drawBody=function(){ this.$tbody.empty(); var lastExAequoRank=null; var lastExAequoValue=null; if(this.options.rows && this.options.rows.length){ for(var i=0; i < this.options.rows.length; i++){ var row=this.options.rows[i]; var $tr=jQuery("<tr/>"); var col, $td; if(this.options.showRanking){ $td=jQuery("<td/>"); var rank=i + 1; if(this.sortedBy !== null){ col=row.cols[this.sortedBy]; var sortValue=col ? col.html : null; if(col && ("value" in col)) sortValue=col.value; if(lastExAequoValue===sortValue){ $td.addClass("-hd-util-intellitable-ex-aequo"); rank=lastExAequoRank; } lastExAequoValue=sortValue; lastExAequoRank=rank; } $td.html(rank).addClass("-hd-util-intellitable-rank"); $tr.append($td); } for(var key in row){ if(row.hasOwnProperty(key)){ if(key==="cols"){ for(var j=0; j < row[key].length; j++){ col=row[key][j]; $td=jQuery("<td/>"); for(var colKey in col){ if(col.hasOwnProperty(colKey)){ if(colKey==="html") $td.html(col[colKey]); else if(colKey==="style") $td.css(col[colKey]); else $td.attr(colKey, col[colKey]); } } $tr.append($td); } } else if(key==="onClick"){ if(row[key]){ $tr.click(row[key]); $tr.addClass("-hd-clickable"); } } else if(key==="onMouseOver"){ $tr.mouseover(row[key]); } else if(key==="onMouseOut"){ $tr.mouseout(row[key]); } else $tr.attr(key, row[key]); } } this.$tbody.append($tr); } } this.setSortClasses(); this.toggleScrollHelp(); this.options.onDrawBody && this.options.onDrawBody(); }; this.sortAscending=function(sortColumn){ this.sortedBy=sortColumn; this.sorted="asc"; if(this.options.rows && this.options.rows.sort) this.options.rows.sort(function(a, b){ var colA=a.cols[sortColumn] || { "html": "" }; var colB=b.cols[sortColumn] || { "html": "" }; var sortValueA=colA.html; var sortValueB=colB.html; if("sortValue" in colA) sortValueA=colA.sortValue; else if("value" in colA) sortValueA=colA.value; if("sortValue" in colB) sortValueB=colB.sortValue; else if("value" in colB) sortValueB=colB.value; if(hockeydata.util.isNumeric(sortValueA)) sortValueA=parseFloat(sortValueA); if(hockeydata.util.isNumeric(sortValueB)) sortValueB=parseFloat(sortValueB); return (sortValueA < sortValueB ? -1 : 1); }); this.drawBody(); }; this.sortDescending=function(sortColumn){ this.sortedBy=sortColumn; this.sorted="desc"; if(this.options.rows && this.options.rows.sort) this.options.rows.sort(function(a, b){ var colA=a.cols[sortColumn] || { "html": "" }; var colB=b.cols[sortColumn] || { "html": "" }; var sortValueA=colA.html; var sortValueB=colB.html; if("sortValue" in colA) sortValueA=colA.sortValue; else if("value" in colA) sortValueA=colA.value; if("sortValue" in colB) sortValueB=colB.sortValue; else if("value" in colB) sortValueB=colB.value; if(hockeydata.util.isNumeric(sortValueA)) sortValueA=parseFloat(sortValueA); if(hockeydata.util.isNumeric(sortValueB)) sortValueB=parseFloat(sortValueB); return (sortValueB < sortValueA ? -1 : 1); }); this.drawBody(); }; this.setSortClasses=function(){ if(this.sortedBy !== null){ var nThChild=this.sortedBy + 1; if(this.options.showRanking) nThChild++; this.$thead.find("th").removeClass("-hd-util-intellitable-sorted -hd-util-intellitable-sort-asc -hd-util-intellitable-sort-desc"); this.$thead.find("th:nth-child(" + nThChild + ")").addClass("-hd-util-intellitable-sorted -hd-util-intellitable-sort-" + this.sorted); this.$tbody.find("td").removeClass("-hd-util-intellitable-sorted"); this.$tbody.find("td:nth-child(" + nThChild + ")").addClass("-hd-util-intellitable-sorted"); } }; this.drawLegend=function(){ this.$legend=jQuery("<div/>").addClass("-hd-util-intellitable-legend"); this.$legendLink=jQuery("<a/>").html(this.options.showLegendText).attr("href", "javascript: void(0);").appendTo(this.$legend); this.$legendTable=jQuery("<table/>"); this.$legendTBody=jQuery("<tbody/>"); this.$legend.append(this.$legendLink); this.$legend.append(this.$legendTable); this.$legendLink.bind("click", function(){ self.toggleLegend(); }); this.$legendTable.append(this.$legendTBody); this.$domNode.append(this.$legend); for(var key in this.legendItems){ if(this.legendItems.hasOwnProperty(key)){ var $tr=jQuery("<tr/>"); var $tdKey=jQuery("<td/>").html(key); var $tdVal=jQuery("<td/>").html(this.legendItems[key]); $tr.append($tdKey).append($tdVal); this.$legendTBody.append($tr); } } if(this.options["legendTableClass"]) this.$legendTable.addClass(this.options["legendTableClass"]); if(this.options.autoShowLegend) this.toggleLegend(); }; this.toggleLegend=function(){ if(!this.legendVisible){ this.$legendLink.html(this.options.hideLegendText); this.$legendTable.addClass("-hd-util-intellitable-legend-visible"); } else { this.$legendLink.html(this.options.showLegendText); this.$legendTable.removeClass("-hd-util-intellitable-legend-visible"); } this.legendVisible=!this.legendVisible; }; this.addRow=function(row){ this.options.rows.push(row); this.drawBody(); }; this.setRows=function(rows){ this.options.rows=rows; if(this.sortedBy) this.sorted==="desc" ? this.sortDescending(this.sortedBy) : this.sortAscending(this.sortedBy); this.drawBody(); }; this.setRow=function(data, render){ var updated=false; for(var i=0; i < this.options.rows.length; i++){ if(this.options.rows[i].id===data.id){ this.options.rows[i]=data; updated=true; } } !updated && this.addRow(data); if(render){ if(this.sortedBy) this.sorted==="desc" ? this.sortDescending(this.sortedBy) : this.sortAscending(this.sortedBy); this.drawBody(); } }; this.deactivate=function(){ this.inactive=true; this.$overlay.show(); }; this.activate=function(){ this.inactive=false; this.$overlay.hide(); }; this.toggleScrollHelp=function(){ this.$data.width() < this.$table.width() && this.$data.width() > 0 ? this.$scrollHelp.show() : this.$scrollHelp.hide(); }; this.initialize(); } hockeydata.extend(IntelliTable, hockeydata.util, "IntelliTable"); })()); ((function(){ function LinkComposer(){} LinkComposer.getLinkClickFunction=function(url){ return function(){ if(url) location.href=url; }; }; hockeydata.extend(LinkComposer, hockeydata.util, "LinkComposer"); })()); ((function(){ function Game(options){} hockeydata.extend(Game, hockeydata["los"], "Game"); })()); ((function(){ function FullReport(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "additionalColumnsFieldPlayers": null, "additionalColumnsGoalKeepers": null, "additionalColumnsGoals": null, "apiKey": "VOID", "autoReload": false, "columnDefinitionFieldPlayers": null, "columnDefinitionGoalKeeperChanges": null, "columnDefinitionGoalKeepers": null, "columnDefinitionGoals": null, "columnDefinitionLeadersDefense": null, "columnDefinitionLeadersPassing": null, "columnDefinitionLeadersReceiving": null, "columnDefinitionLeadersRushing": null, "columnDefinitionPenalties": null, "columnDefinitionPlayByPlay": null, "columnDefinitionRoster": null, "columnDefinitionScores": null, "columnDefinitionTimeOnIce": null, "columnsFieldPlayers": null, "columnsGoalKeeperChanges": null, "columnsGoalKeepers": null, "columnsGoals": null, "columnsLeadersDefense": null, "columnsLeadersPassing": null, "columnsLeadersReceiving": null, "columnsLeadersRushing": null, "columnsPenalties": null, "columnsPlayByPlay": null, "columnsRoster": null, "columnsScores": null, "columnsTimeOnIce": null, "columnSetFieldPlayers": "default", "columnSetGoalKeeperChanges": "default", "columnSetGoalKeepers": "default", "columnSetGoals": "default", "columnSetLeadersDefense": "default", "columnSetLeadersPassing": "default", "columnSetLeadersReceiving": "default", "columnSetLeadersRushing": "default", "columnSetPenalties": "default", "columnSetPlayByPlay": "default", "columnSetRoster": "default", "columnSetScores": "default", "columnSetTimeOnIce": "default", "dataUrl": null, "dataUrlTimeOnIce": null, "divisionId": null, "divisionIdUrlParameter": "divisionId", "error": function(e){ self.error(e); }, "gameId": null, "gameIdUrlParameter": "gameId", "league": null, "paint": function(e){ self.paint(e); }, "paintComplete": null, "playerLink": null, "reloadInterval": null, "requestData": {}, "rowDefinitionTeamStats": null, "rowsTeamStats": null, "rowSetTeamStats": "default", "showGameState": false, "showPlayerNationInLineups": false, "showPlayerNationFlagInLineups": false, "showShotChart": false, "showYouTubeLink": false, "sport": null, "tabbedStats": false, "teamLink": null, "timeOnIce": false }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.options.requestData.apiKey=this.options.apiKey; this.$domNode=this.options.$domNode; this.domNodes={}; this.timerTimeOnIce=null; this.timerIntervalTimeOnIce=1000 * 5; this.tables={}; this.timeOnIceRowsSet=false; this.playersOnIce={ "home": {}, "away": {} }; this.players={}; this.gameStatus=null; this.gameActions=null; this.gameData=null; this.dataSubscription=null; this.firstPaint=true; this.shotChart={}; this.logoUrl={ "home": null, "away": null }; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata["util"].getLeague(this.options.sport); if(!this.options.divisionId && this.options.divisionIdUrlParameter) this.options.divisionId=hockeydata["util"].getParameter(this.options.divisionIdUrlParameter); if(!this.options.gameId && this.options.gameIdUrlParameter) this.options.gameId=hockeydata["util"].getParameter(this.options.gameIdUrlParameter); this.options.requestData.gameId=this.options.gameId; if(!this.options.dataUrl) this.options.dataUrl=hockeydata["util"]["UriComposer"].getDataUri("getGameReport", this.options); this.$domNode.addClass("-hd-los -hd-los-game-full-report"); this.dataSubscription=hockeydata["util"]["Data"].subscribe({ "begin": function(){ self.$domNode.addClass("-hd-loading"); }, "complete": function(){ self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "reloadInterval": self.options.reloadInterval, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data){ e.data.gameData=e.data.gameData || {}; e.data.gameData.images=e.data.gameData.images || {}; e.data.gameActions=e.data.gameActions || {}; self.gameData=e.data.gameData; self.gameActions=e.data.gameActions; self.gameStatus=e.data.gameData.gameStatus; self.awayFieldPlayers=e.data.awayFieldPlayers; self.awayGoalKeepers=e.data.awayGoalKeepers; self.homeFieldPlayers=e.data.homeFieldPlayers; self.homeGoalKeepers=e.data.homeGoalKeepers; self.options._divisionId=e.data.gameData.divisionId; self.addPlayers(e.data.awayFieldPlayers); self.addPlayers(e.data.awayGoalKeepers); self.addPlayers(e.data.homeFieldPlayers); self.addPlayers(e.data.homeGoalKeepers); self.logoUrl.home=(e.data.gameData.images["homeTeamLogo"] || hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (self.options._divisionId || self.options.divisionId), "teamId": e.data.gameData.homeTeamId })); self.logoUrl.away=(e.data.gameData.images["awayTeamLogo"] || hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (self.options._divisionId || self.options.divisionId), "teamId": e.data.gameData.awayTeamId })); self.options.paint(e.data); if(self.options.timeOnIce && !self.timerTimeOnIce && self.gameStatus===1) self.loadTimeOnIce(); self.options.paintComplete && self.options.paintComplete["call"](self); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); if(this.options.showShotChart){ this.shotChart.typeSelect && this.shotChart.typeSelect.destroy(); this.shotChart.periodSelect && this.shotChart.periodSelect.destroy(); this.shotChart.teamOrPlayerSelect && this.shotChart.teamOrPlayerSelect.destroy(); } }; this.error=function(){ if(this.firstPaint) this.$domNode.html(jQuery("<div/>").html(hockeydata["i18n"].translate("No Game Data available yet."))); }; this.getToggleButtonFunction=function($buttonGroup, $contents, $activeButton, $activeContent){ return function(){ if(!$activeButton.hasClass("-hd-button-active")){ $buttonGroup.find(".-hd-button-active").removeClass("-hd-button-active"); $activeButton.addClass("-hd-button-active"); $contents.find("> div").hide(); jQuery.isFunction($activeContent) ? $activeContent() : $activeContent.show(); } }; }; this.prepareColumns=function(columnsName, columnSetName, columnDefinitionName, columnDefinitionType){ if(!this.options[columnDefinitionName]) this.options[columnDefinitionName]=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": columnDefinitionType }); if(!this.options[columnsName]) this.options[columnsName]=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options[columnSetName], "type": columnDefinitionType }); else if(hockeydata["util"].isString(this.options[columnsName])) this.options[columnsName]=this.options[columnsName].split(","); }; this.initializeTable=function(table, columns, columnDefinition, $node, hideHeaders){ var tableHeaders=[]; var options={ "$domNode": $node, "headers": tableHeaders }; for(var i=0; i < columns.length; i++){ var column=columns[i]; if(columnDefinition && (column in columnDefinition) && ("header" in columnDefinition[column])) tableHeaders.push(columnDefinition[column]["header"]); else tableHeaders.push({ "html": "&nbsp;" }); } if(typeof hideHeaders !== "undefined") options.hideHeaders=hideHeaders; this.tables[table]=new hockeydata["util"]["IntelliTable"](jQuery.extend({}, this.options, options)); }; this.addPlayers=function(players){ if(players) for(var i=0; i < players.length; i++) self.players[players[i].id]=players[i]; }; this.addShotChartGameAction=function(gameAction, filterChange){ if(self.domNodes.shotChart.$playingArea.find(".-hd-los-game-full-report-shot-chart-game-action-" + gameAction.guid).length) return false; var gameActionClasses=""; gameActionClasses += " -hd-los-game-full-report-shot-chart-game-action"; gameActionClasses += " -hd-los-game-full-report-shot-chart-game-action-" + gameAction.guid; gameActionClasses += " -hd-los-game-full-report-shot-chart-game-action-type-" + gameAction.type; gameActionClasses += " -hd-los-game-full-report-shot-chart-game-action-team-" + (self.gameData.homeTeamId===gameAction.teamId ? "home" : "away"); if(self.gameActionsInitialized && !filterChange) gameActionClasses += " -hd-los-game-full-report-shot-chart-game-action-new"; var $gameAction=jQuery("<div/>").addClass(gameActionClasses).appendTo(self.domNodes.shotChart.$playingArea).attr("data-id", gameAction.guid); var $content=jQuery("<div/>"); var text=hockeydata["i18n"].translate("Unknown Action Type"); var player=self.players[gameAction.playerId]; var playerName=player ? player.playerFirstname + " " + player.playerLastname : null; var period=null; if(gameAction.type==="SHOT-SAVE") text=playerName ? hockeydata["util"].sprintf(hockeydata["i18n"].translate("Saved shot by <u>%s</u> from %sm."), playerName, gameAction["goalDistance"]) : hockeydata["util"].sprintf(hockeydata["i18n"].translate("Saved shot from %sm."), gameAction["goalDistance"]); else if(gameAction.type==="SHOT-GOAL") text=playerName ? hockeydata["util"].sprintf(hockeydata["i18n"].translate("Goal by <u>%s</u> from %sm."), playerName, gameAction["goalDistance"]) : hockeydata["util"].sprintf(hockeydata["i18n"].translate("Goal from %sm."), gameAction["goalDistance"]); if(gameAction["period"]===99) period=hockeydata["i18n"].translate("Shootout"); else if(gameAction["period"] >= 11) period=hockeydata["i18n"].translate("Overtime") + " " + (gameAction["period"] - 10); else period=hockeydata["i18n"].translate("Period") + " " + gameAction["period"]; if(period){ text += "<br/>"; text += "<span class='-hd-los-game-full-report-shot-chart-game-action-period'>" + period + "</span>"; } jQuery("<div/>").addClass("-hd-los-game-full-report-shot-chart-game-action-team-logo").appendTo($content).html(hockeydata["util"]["ImageLoader"].load(self.gameData.homeTeamId===gameAction.teamId ? self.logoUrl.home : self.logoUrl.away)); jQuery("<div/>").addClass("-hd-los-game-full-report-shot-chart-game-action-text").appendTo($content).html(text); $gameAction.css({ "left": gameAction.x + "%", "top": gameAction.y + "%" }); new hockeydata["util"]["PopUp"]({ "$domNode": jQuery("<div/>").appendTo($gameAction), "content": $content, "handle": "click" }); }; this.updateShotChart=function(filterChange){ if(self.gameActions){ var gameActionsObject={}; var filterType=self.domNodes.shotChart.options.$type.val(); var filterPeriod=self.domNodes.shotChart.options.$period.val(); var filterPeriodNo=Number(filterPeriod); var filterTeamOrPlayer=self.domNodes.shotChart.options.$teamOrPlayer.val(); var checkFilter=function(gameAction){ if(gameAction["isDeleted"]) return false; if(filterType && filterType !== gameAction.type) return false; if(filterPeriod && ((!isNaN(filterPeriodNo) && filterPeriodNo !== gameAction["period"]) || (filterPeriod==='other' && gameAction["period"] <= 3))) return false; if(filterTeamOrPlayer){ var filterId=Number(filterTeamOrPlayer.substring(1)); if((filterTeamOrPlayer[0]==="t" && filterId !== gameAction.teamId) || (filterTeamOrPlayer[0]==="p" && filterId !== gameAction.playerId)) return false; } return true; }; for(var i=0; i < self.gameActions.length; i++){ if(checkFilter(self.gameActions[i])){ self.addShotChartGameAction(self.gameActions[i], filterChange); gameActionsObject[self.gameActions[i].guid]=true; } } self.domNodes.shotChart.$playingArea.find(".-hd-los-game-full-report-shot-chart-game-action").each(function(){ var $this=jQuery(this); if(!($this.attr("data-id") in gameActionsObject)) $this.remove(); }); self.gameActionsInitialized=true; } }; this.paint=function(data){ var i, lastPeriod; var drawGoals=false; var drawPenalties=false; var drawFieldPlayers=false; var drawGoalKeepers=false; var drawGoalKeeperChanges=false; var drawScores=false; var drawPlayByPlay=false; var drawLeaders=false; var drawRosters=false; var drawShotChart=false; var gameFacts=[]; data=data || {}; data.gameData=data.gameData || {}; data.homeTeamStats=data.homeTeamStats || {}; data.awayTeamStats=data.awayTeamStats || {}; if(("homeGoals" in data) || ("awayGoals" in data)){ data.homeGoals=data.homeGoals || []; data.awayGoals=data.awayGoals || []; drawGoals=true; } if(("homePenalties" in data) || ("awayPenalties" in data)){ data.homePenalties=data.homePenalties || []; data.awayPenalties=data.awayPenalties || []; drawPenalties=true; } if(("homeFieldPlayers" in data) || ("awayFieldPlayers" in data)){ data.homeFieldPlayers=data.homeFieldPlayers || []; data.awayFieldPlayers=data.awayFieldPlayers || []; drawFieldPlayers=true; } if(("homeGoalKeepers" in data) || ("awayGoalKeepers" in data)){ data.homeGoalKeepers=data.homeGoalKeepers || []; data.awayGoalKeepers=data.awayGoalKeepers || []; drawGoalKeepers=true; } if(("homeGoalKeeperChanges" in data) || ("awayGoalKeeperChanges" in data)){ data.homeGoalKeeperChanges=data.homeGoalKeeperChanges || []; data.awayGoalKeeperChanges=data.awayGoalKeeperChanges || []; drawGoalKeeperChanges=true; } if("scores" in data){ data.scores=data.scores || []; drawScores=true; } if(self.options.showShotChart && ("gameActions" in data) && data.gameActions !== null){ data.gameActions=data || []; drawShotChart=true; } if("playByPlay" in data){ data.playByPlay=data.playByPlay || []; drawPlayByPlay=true; } if(("homePassingLeaders" in data) || ("awayPassingLeaders" in data) || ("homeReceivingLeaders" in data) || ("awayReceivingLeaders" in data) || ("homeRushingLeaders" in data) || ("awayRushingLeaders" in data) || ("homeDefensiveLeaders" in data) || ("awayDefensiveLeaders" in data)){ data.homePassingLeaders=data.homePassingLeaders || []; data.awayPassingLeaders=data.awayPassingLeaders || []; data.homeReceivingLeaders=data.homeReceivingLeaders || []; data.awayReceivingLeaders=data.awayReceivingLeaders || []; data.homeRushingLeaders=data.homeRushingLeaders || []; data.awayRushingLeaders=data.awayRushingLeaders || []; data.homeDefensiveLeaders=data.homeDefensiveLeaders || []; data.awayDefensiveLeaders=data.awayDefensiveLeaders || []; drawLeaders=true; } if(("homeRoster" in data) || ("awayRoster" in data)){ data.homeRoster=data.homeRoster || []; data.awayRoster=data.awayRoster || []; drawRosters=true; } if(jQuery.isPlainObject(data.gameData.scheduledDate) && ("formattedShort" in data.gameData.scheduledDate)) gameFacts.push({ "key": "scheduledDate", "value": data.gameData.scheduledDate["formattedShort"], "label": hockeydata["i18n"].translate("Scheduled Date") }); if("scheduledTime" in data.gameData) gameFacts.push({ "key": "scheduledTime", "value": data.gameData.scheduledTime, "label": hockeydata["i18n"].translate("Scheduled Time") }); if(jQuery.isPlainObject(data.gameData.location) && ("shortname" in data.gameData.location)) gameFacts.push({ "key": "location", "value": data.gameData.location["shortname"], "label": hockeydata["i18n"].translate("Location") }); if(("attendance" in data.gameData) && data.gameData["attendance"]) gameFacts.push({ "key": "attendance", "value": data.gameData["attendance"], "label": hockeydata["i18n"].translate("Attendance") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("referee" in data.gameData["gameOfficials"])) gameFacts.push({ "key": "referee", "value": data.gameData["gameOfficials"]["referee"], "label": hockeydata["i18n"].translate("Referee") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("ref1" in data.gameData["gameOfficials"]) && jQuery.isPlainObject(data.gameData["gameOfficials"]["ref1"])) gameFacts.push({ "key": "referee1", "value": data.gameData["gameOfficials"]["ref1"]["lastname"] + " " + data.gameData["gameOfficials"]["ref1"]["firstname"], "label": hockeydata["i18n"].translate("Referee 1") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("ref2" in data.gameData["gameOfficials"]) && jQuery.isPlainObject(data.gameData["gameOfficials"]["ref2"])) gameFacts.push({ "key": "referee2", "value": data.gameData["gameOfficials"]["ref2"]["lastname"] + " " + data.gameData["gameOfficials"]["ref2"]["firstname"], "label": hockeydata["i18n"].translate("Referee 2") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("umpire" in data.gameData["gameOfficials"])) gameFacts.push({ "key": "umpire", "value": data.gameData["gameOfficials"]["umpire"], "label": hockeydata["i18n"].translate("Umpire") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("linesman" in data.gameData["gameOfficials"])) gameFacts.push({ "key": "linesman", "value": data.gameData["gameOfficials"]["linesman"], "label": hockeydata["i18n"].translate("Linesman") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("linesman1" in data.gameData["gameOfficials"]) && jQuery.isPlainObject(data.gameData["gameOfficials"]["linesman1"])) gameFacts.push({ "key": "linesman1", "value": data.gameData["gameOfficials"]["linesman1"]["lastname"] + " " + data.gameData["gameOfficials"]["linesman1"]["firstname"], "label": hockeydata["i18n"].translate("Linesman 1") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("linesman2" in data.gameData["gameOfficials"]) && jQuery.isPlainObject(data.gameData["gameOfficials"]["linesman2"])) gameFacts.push({ "key": "linesman2", "value": data.gameData["gameOfficials"]["linesman2"]["lastname"] + " " + data.gameData["gameOfficials"]["linesman2"]["firstname"], "label": hockeydata["i18n"].translate("Linesman 2") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("lineJudge" in data.gameData["gameOfficials"])) gameFacts.push({ "key": "lineJudge", "value": data.gameData["gameOfficials"]["lineJudge"], "label": hockeydata["i18n"].translate("Line Judge") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("backJudge" in data.gameData["gameOfficials"])) gameFacts.push({ "key": "backJudge", "value": data.gameData["gameOfficials"]["backJudge"], "label": hockeydata["i18n"].translate("Back Judge") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("fieldJudge" in data.gameData["gameOfficials"])) gameFacts.push({ "key": "fieldJudge", "value": data.gameData["gameOfficials"]["fieldJudge"], "label": hockeydata["i18n"].translate("Field Judge") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("sideJudge" in data.gameData["gameOfficials"])) gameFacts.push({ "key": "sideJudge", "value": data.gameData["gameOfficials"]["sideJudge"], "label": hockeydata["i18n"].translate("Side Judge") }); if(jQuery.isPlainObject(data.gameData["teamOfficials"]) && ("headcoachhome" in data.gameData["teamOfficials"]) && jQuery.isPlainObject(data.gameData["teamOfficials"]["headcoachhome"])) gameFacts.push({ "key": "headcoachhome", "value": data.gameData["teamOfficials"]["headcoachhome"]["lastname"] + " " + data.gameData["teamOfficials"]["headcoachhome"]["firstname"], "label": hockeydata["i18n"].translate("Head Coach") + " " + (data.gameData.homeTeamShortname || hockeydata["i18n"].translate("Heim")) }); if(jQuery.isPlainObject(data.gameData["teamOfficials"]) && ("headcoachaway" in data.gameData["teamOfficials"]) && jQuery.isPlainObject(data.gameData["teamOfficials"]["headcoachaway"])) gameFacts.push({ "key": "headcoachaway", "value": data.gameData["teamOfficials"]["headcoachaway"]["lastname"] + " " + data.gameData["teamOfficials"]["headcoachaway"]["firstname"], "label": hockeydata["i18n"].translate("Head Coach") + " " + (data.gameData.awayTeamShortname || hockeydata["i18n"].translate("Gast")) }); if(jQuery.isPlainObject(data.gameData["weatherInfo"])) gameFacts.push({ "key": "weatherInfo", "value": Math.floor(data.gameData["weatherInfo"]["temperatureCelsius"]) + "° C | " + hockeydata["los"]["Configuration"].getWindDirection(data.gameData["weatherInfo"]["windDirection"]) + " " + Math.floor(data.gameData["weatherInfo"]["windSpeed"]) + " km/h", "label": hockeydata["i18n"].translate("Weather Conditions") }); if(jQuery.isPlainObject(data.gameData["weatherData"])) gameFacts.push({ "key": "weatherData", "value": "<img src='" + data.gameData["weatherData"]["weatherIconUrl"] + "' alt=''> " + Math.floor(data.gameData["weatherData"]["temperatureCelsius"]) + "° C | " + Math.floor(data.gameData["weatherData"]["windSpeed"]) + " m/s | " + Math.floor(data.gameData["weatherData"]["cloudiness"]) + " % " + hockeydata["i18n"].translate("clouds"), "label": hockeydata["i18n"].translate("Weather Conditions") }); self.$domNode.removeClass("-hd-los-game-full-report-status-0 -hd-los-game-full-report-status-1 -hd-los-game-full-report-status-2 -hd-los-game-full-report-status-3 -hd-los-game-full-report-status-4"); self.$domNode.addClass("-hd-los-game-full-report-status-" + self.gameStatus); if(self.firstPaint){ self.firstPaint=false; this.domNodes.gameInfo={}; this.domNodes.gameInfo.$gameInfo=jQuery("<div/>").addClass("-hd-los-game-full-report-game-info").appendTo(this.$domNode); if(this.options.showGameState) this.domNodes.gameInfo.$gameState=jQuery("<div/>").addClass("-hd-los-game-full-report-game-state").appendTo(this.domNodes.gameInfo.$gameInfo); this.domNodes.gameInfo.$gameStateExtended=jQuery("<div/>").addClass("-hd-los-game-full-report-game-state-extended").appendTo(this.domNodes.gameInfo.$gameInfo); this.domNodes.gameInfo.$awayTeam=jQuery("<div/>").addClass("-hd-los-game-full-report-team -hd-los-game-full-report-team-away").appendTo(this.domNodes.gameInfo.$gameInfo); this.domNodes.gameInfo.$awayTeamName=jQuery("<div/>").addClass("-hd-los-game-full-report-team-name -hd-los-game-full-report-team-name-away").appendTo(this.domNodes.gameInfo.$awayTeam); this.domNodes.gameInfo.$awayTeamLogo=jQuery("<div/>").addClass("-hd-los-game-full-report-team-logo -hd-los-game-full-report-team-logo-away").appendTo(this.domNodes.gameInfo.$awayTeam); this.domNodes.gameInfo.$homeTeam=jQuery("<div/>").addClass("-hd-los-game-full-report-team -hd-los-game-full-report-team-home").appendTo(this.domNodes.gameInfo.$gameInfo); this.domNodes.gameInfo.$homeTeamLogo=jQuery("<div/>").addClass("-hd-los-game-full-report-team-logo -hd-los-game-full-report-team-logo-home").appendTo(this.domNodes.gameInfo.$homeTeam); this.domNodes.gameInfo.$homeTeamName=jQuery("<div/>").addClass("-hd-los-game-full-report-team-name -hd-los-game-full-report-team-name-home").appendTo(this.domNodes.gameInfo.$homeTeam); this.domNodes.gameInfo.$score=jQuery("<div/>").addClass("-hd-los-game-full-report-score").appendTo(this.domNodes.gameInfo.$gameInfo); this.domNodes.gameInfo.$scoreHome=jQuery("<div/>").addClass("-hd-los-game-full-report-score-home").appendTo(this.domNodes.gameInfo.$score); this.domNodes.gameInfo.$scoreDivider=jQuery("<div/>").addClass("-hd-los-game-full-report-score-divider").appendTo(this.domNodes.gameInfo.$score); this.domNodes.gameInfo.$scoreAway=jQuery("<div/>").addClass("-hd-los-game-full-report-score-away").appendTo(this.domNodes.gameInfo.$score); this.domNodes.gameInfo.$periodStats=jQuery("<div/>").addClass("-hd-los-game-full-report-period-stats").appendTo(this.domNodes.gameInfo.$gameInfo); this.domNodes.gameInfo.$gameStreams=jQuery("<div/>").addClass("-hd-los-game-full-report-streams").appendTo(this.domNodes.gameInfo.$gameInfo).hide(); if(self.options.showYouTubeLink) this.domNodes.gameInfo.$youTubeLink=jQuery("<div/>").addClass("-hd-los-game-full-report-youtube-link").appendTo(this.domNodes.gameInfo.$gameInfo); var uriHomeTeam=hockeydata["util"]["UriComposer"].parseUri(self.options.teamLink, [ data.gameData.homeTeamId, self.options.divisionId ]); var uriAwayTeam=hockeydata["util"]["UriComposer"].parseUri(self.options.teamLink, [ data.gameData.awayTeamId, self.options.divisionId ]); if(uriHomeTeam){ self.domNodes.gameInfo.$homeTeamLogo.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(uriHomeTeam)).addClass("-hd-clickable"); self.domNodes.gameInfo.$homeTeamName.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(uriHomeTeam)).addClass("-hd-clickable"); } if(uriAwayTeam){ self.domNodes.gameInfo.$awayTeamLogo.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(uriAwayTeam)).addClass("-hd-clickable"); self.domNodes.gameInfo.$awayTeamName.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(uriAwayTeam)).addClass("-hd-clickable"); } if(gameFacts.length){ this.domNodes.gameFacts={}; this.domNodes.gameFacts.$gameFacts=jQuery("<div/>").addClass("-hd-los-game-full-report-game-facts").appendTo(this.$domNode); for(i=0; i < gameFacts.length; i++) this.domNodes.gameFacts[gameFacts[i].key]=jQuery("<div/>").appendTo(jQuery("<div/>").addClass("-hd-los-game-full-report-game-fact-value").appendTo(jQuery("<div/>").addClass("-hd-los-game-full-report-game-fact-row -hd-los-game-full-report-game-fact-row-" + gameFacts[i].key).appendTo(this.domNodes.gameFacts.$gameFacts).append(jQuery("<div/>").addClass("-hd-los-game-full-report-game-fact-label").append(jQuery("<div/>").append( gameFacts[i].label))))); } if(self.options.timeOnIce){ this.domNodes.timeOnIce={}; this.domNodes.timeOnIce.highlights={}; this.domNodes.timeOnIce.$timeOnIce=jQuery("<div/>").addClass("-hd-los-game-full-report-container -hd-los-game-full-report-time-on-ice").appendTo(this.$domNode).hide(); this.domNodes.timeOnIce.$headline=jQuery("<div/>").addClass("-hd-los-game-full-report-headline").html("<span>" + hockeydata["i18n"].translate("Time on Ice") + "</span>").appendTo(this.domNodes.timeOnIce.$timeOnIce); this.domNodes.timeOnIce.$gameTime=jQuery("<span/>").appendTo(this.domNodes.timeOnIce.$headline); this.domNodes.timeOnIce.$dataHighlights=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-time-on-ice-data-highlights").appendTo(this.domNodes.timeOnIce.$timeOnIce); this.domNodes.timeOnIce.highlights.$home=jQuery("<div/>").addClass("-hd-los-game-full-report-time-on-ice-highlights-team -hd-los-game-full-report-time-on-ice-highlights-home").appendTo(this.domNodes.timeOnIce.$dataHighlights); this.domNodes.timeOnIce.highlights.$away=jQuery("<div/>").addClass("-hd-los-game-full-report-time-on-ice-highlights-team -hd-los-game-full-report-time-on-ice-highlights-away").appendTo(this.domNodes.timeOnIce.$dataHighlights); this.domNodes.timeOnIce.$dataTable=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-time-on-ice-data-table").appendTo(this.domNodes.timeOnIce.$timeOnIce); if(!this.options.columnDefinitionTimeOnIce) this.options.columnDefinitionTimeOnIce=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "gameFullReportTimeOnIce" }); if(!this.options.columnsTimeOnIce) this.options.columnsTimeOnIce=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSetTimeOnIce, "type": "gameFullReportTimeOnIce" }); else if(hockeydata["util"].isString(this.options.columnsTimeOnIce)) this.options.columnsTimeOnIce=this.options.columnsTimeOnIce.split(","); this.initializeTable("timeOnIce", this.options.columnsTimeOnIce, this.options.columnDefinitionTimeOnIce, this.domNodes.timeOnIce.$dataTable); if(!this.options.dataUrlTimeOnIce) this.options.dataUrlTimeOnIce=hockeydata["util"]["UriComposer"].getDataUri("getTimeOnIce", this.options); } if(drawShotChart){ this.domNodes.shotChart={ "options": {} }; this.domNodes.shotChart.$shotChart=jQuery("<div/>").addClass("-hd-los-game-full-report-container -hd-los-game-full-report-short-chart").appendTo(this.$domNode); this.domNodes.shotChart.$headline=jQuery("<div/>").addClass("-hd-los-game-full-report-headline").html("<span>" + hockeydata["i18n"].translate("Shot Chart") + "</span>").appendTo(this.domNodes.shotChart.$shotChart); this.domNodes.shotChart.$data=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-shot-chart-data").appendTo(this.domNodes.shotChart.$shotChart); this.domNodes.shotChart.options.$options=jQuery("<div/>").addClass("-hd-los-game-full-report-shot-chart-options").appendTo(this.domNodes.shotChart.$data); this.domNodes.shotChart.options.$typeWrapper=jQuery("<div/>").appendTo(this.domNodes.shotChart.options.$options); this.domNodes.shotChart.options.$type=jQuery("<select/>").appendTo(this.domNodes.shotChart.options.$typeWrapper); this.domNodes.shotChart.options.$periodWrapper=jQuery("<div/>").appendTo(this.domNodes.shotChart.options.$options); this.domNodes.shotChart.options.$period=jQuery("<select/>").appendTo(this.domNodes.shotChart.options.$periodWrapper); this.domNodes.shotChart.options.$teamOrPlayerWrapper=jQuery("<div/>").appendTo(this.domNodes.shotChart.options.$options); this.domNodes.shotChart.options.$teamOrPlayer=jQuery("<select/>").appendTo(this.domNodes.shotChart.options.$teamOrPlayerWrapper); this.domNodes.shotChart.$playingAreaWrapper=jQuery("<div/>").addClass("-hd-los-game-full-report-shot-chart-playing-area-wrapper").appendTo(this.domNodes.shotChart.$data); this.domNodes.shotChart.$playingArea=jQuery("<div/>").addClass("-hd-los-game-full-report-shot-chart-playing-area -hd-los-game-full-report-shot-chart-playing-area-" + self.options.sport).appendTo(this.domNodes.shotChart.$playingAreaWrapper); this.domNodes.shotChart.$legend=jQuery("<div/>").addClass("-hd-los-game-full-report-shot-chart-legend").appendTo(this.domNodes.shotChart.$data); this.domNodes.shotChart.options.$type.append(jQuery("<option value=''/>").html(hockeydata["i18n"].translate("Saved Shots & Goals"))); this.domNodes.shotChart.options.$type.append(jQuery("<option value='SHOT-SAVE'/>").html(hockeydata["i18n"].translate("Saved Shots"))); this.domNodes.shotChart.options.$type.append(jQuery("<option value='SHOT-GOAL'/>").html(hockeydata["i18n"].translate("Goals"))); this.domNodes.shotChart.options.$period.append(jQuery("<option value=''/>").html(hockeydata["i18n"].translate("All Periods"))); this.domNodes.shotChart.options.$period.append(jQuery("<option value='1'/>").html(hockeydata["i18n"].translate("Period 1"))); this.domNodes.shotChart.options.$period.append(jQuery("<option value='2'/>").html(hockeydata["i18n"].translate("Period 2"))); this.domNodes.shotChart.options.$period.append(jQuery("<option value='3'/>").html(hockeydata["i18n"].translate("Period 3"))); this.domNodes.shotChart.options.$period.append(jQuery("<option value='other'/>").html(hockeydata["i18n"].translate("OT & SO"))); this.domNodes.shotChart.options.$teamOrPlayer.append(jQuery("<option value=''/>").html(hockeydata["i18n"].translate("All Teams & Players"))); this.domNodes.shotChart.options.$teamOrPlayer.append(jQuery("<option value='t" + data.gameData.homeTeamId + "'/>").html(hockeydata["i18n"].translate("Home Team"))); this.domNodes.shotChart.options.$teamOrPlayer.append(jQuery("<option value='t" + data.gameData.awayTeamId + "'/>").html(hockeydata["i18n"].translate("Away Team"))); this.domNodes.shotChart.options.$homePlayers=jQuery("<optgroup/>").appendTo(this.domNodes.shotChart.options.$teamOrPlayer).attr("label", hockeydata["i18n"].translate("Home Team Players")); this.domNodes.shotChart.options.$awayPlayers=jQuery("<optgroup/>").appendTo(this.domNodes.shotChart.options.$teamOrPlayer).attr("label", hockeydata["i18n"].translate("Away Team Players")); var homeFieldPlayers=data.homeFieldPlayers.slice(); var awayFieldPlayers=data.awayFieldPlayers.slice(); var sortFn=function(a, b){ var nameA=a.playerLastname + " " + a.playerFirstname; var nameB=b.playerLastname + " " + b.playerFirstname; return (nameA < nameB) ? -1 : nameA > nameB ? 1 : 0; }; homeFieldPlayers.sort(sortFn); awayFieldPlayers.sort(sortFn); for(i=0; i < homeFieldPlayers.length; i++) this.domNodes.shotChart.options.$homePlayers.append(jQuery("<option value='p" + homeFieldPlayers[i].id + "'/>").html(homeFieldPlayers[i].playerLastname + " " + homeFieldPlayers[i].playerFirstname)); for(i=0; i < awayFieldPlayers.length; i++) this.domNodes.shotChart.options.$awayPlayers.append(jQuery("<option value='p" + awayFieldPlayers[i].id + "'/>").html(awayFieldPlayers[i].playerLastname + " " + awayFieldPlayers[i].playerFirstname)); this.shotChart.typeSelect=new hockeydata["util"]["Select"](this.domNodes.shotChart.options.$type); this.shotChart.periodSelect=new hockeydata["util"]["Select"](this.domNodes.shotChart.options.$period); this.shotChart.teamOrPlayerSelect=new hockeydata["util"]["Select"](this.domNodes.shotChart.options.$teamOrPlayer); this.domNodes.shotChart.options.$type.change(function(){ self.updateShotChart(true); }); this.domNodes.shotChart.options.$period.change(function(){ self.updateShotChart(true); }); this.domNodes.shotChart.options.$teamOrPlayer.change(function(){ self.updateShotChart(true); }); this.domNodes.shotChart.$legend.append(jQuery("<div/>").append(jQuery("<span/>").addClass("-hd-los-game-full-report-shot-chart-legend-type -hd-los-game-full-report-shot-chart-legend-type-SHOT-SAVE")).append(jQuery("<span/>").html(hockeydata["i18n"].translate("Saved Shot")))); this.domNodes.shotChart.$legend.append(jQuery("<div/>").append(jQuery("<span/>").addClass("-hd-los-game-full-report-shot-chart-legend-type -hd-los-game-full-report-shot-chart-legend-type-SHOT-GOAL")).append(jQuery("<span/>").html(hockeydata["i18n"].translate("Goal")))); this.domNodes.shotChart.$legend.append(jQuery("<div/>").append(jQuery("<span/>").addClass("-hd-los-game-full-report-shot-chart-legend-type -hd-los-game-full-report-shot-chart-legend-type-home-team")).append(jQuery("<span/>").html(hockeydata["i18n"].translate("Home Team")))); this.domNodes.shotChart.$legend.append(jQuery("<div/>").append(jQuery("<span/>").addClass("-hd-los-game-full-report-shot-chart-legend-type -hd-los-game-full-report-shot-chart-legend-type-away-team")).append(jQuery("<span/>").html(hockeydata["i18n"].translate("Away Team")))); } if(drawScores){ this.domNodes.scores={}; this.domNodes.scores.$scores=jQuery("<div/>").addClass("-hd-los-game-full-report-container -hd-los-game-full-report-scores").appendTo(this.$domNode); this.domNodes.scores.$headline=jQuery("<div/>").addClass("-hd-los-game-full-report-headline").html("<span>" + hockeydata["i18n"].translate("Scores") + "</span>").appendTo(this.domNodes.scores.$scores); this.domNodes.scores.$data=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-scores-data").appendTo(this.domNodes.scores.$scores); if(!this.options.columnDefinitionScores) this.options.columnDefinitionScores=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "gameFullReportScores" }); if(!this.options.columnsScores) this.options.columnsScores=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSetScores, "type": "gameFullReportScores" }); else if(hockeydata["util"].isString(this.options.columnsScores)) this.options.columnsScores=this.options.columnsScores.split(","); this.initializeTable("scores", this.options.columnsScores, this.options.columnDefinitionScores, this.domNodes.scores.$data, true); } this.domNodes.teamStats={}; this.domNodes.teamStats.$teamStats=jQuery("<div/>").addClass("-hd-los-game-full-report-container -hd-los-game-full-report-team-stats").appendTo(this.$domNode); this.domNodes.teamStats.$headline=jQuery("<div/>").addClass("-hd-los-game-full-report-headline").html("<span>" + hockeydata["i18n"].translate("Team Stats") + "</span>").appendTo(this.domNodes.teamStats.$teamStats); this.domNodes.teamStats.$data=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-team-stats-data").appendTo(this.domNodes.teamStats.$teamStats); if(!this.options.rowDefinitionTeamStats) this.options.rowDefinitionTeamStats=hockeydata["los"]["Configuration"].getTableRowDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "gameFullReportTeamStats" }); if(!this.options.rowsTeamStats) this.options.rowsTeamStats=hockeydata["los"]["Configuration"].getTableRows({ "sport": this.options.sport, "league": this.options.league, "rowSet": this.options.rowSetTeamStats, "type": "gameFullReportTeamStats" }); else if(hockeydata["util"].isString(this.options.rowsTeamStats)) this.options.rowsTeamStats=this.options.rowsTeamStats.split(","); this.tables.teamStats=new hockeydata["util"]["IntelliTable"](jQuery.extend({}, this.options, { "$domNode": this.domNodes.teamStats.$data, "headers": [ { "html": "&nbsp;" }, { "html": data.gameData.homeTeamShortname || hockeydata["i18n"].translate("Home") }, { "html": data.gameData.awayTeamShortname || hockeydata["i18n"].translate("Away") } ], "rows": [] })); if(drawLeaders){ this.domNodes.leaders={}; this.domNodes.leaders.$leaders=jQuery("<div/>").addClass("-hd-los-game-full-report-container -hd-los-game-full-report-leaders").appendTo(this.$domNode); this.domNodes.leaders.$headline=jQuery("<div/>").addClass("-hd-los-game-full-report-headline").html("<span>" + hockeydata["i18n"].translate("Leaders") + "</span>").appendTo(this.domNodes.leaders.$leaders); this.domNodes.leaders.$data=jQuery("<div/>").appendTo(this.domNodes.leaders.$leaders); this.domNodes.leaders.$dataPassingHome=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-leaders-data -hd-los-game-full-report-leaders-data-passing").appendTo(this.domNodes.leaders.$data); this.domNodes.leaders.$dataReceivingHome=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-leaders-data -hd-los-game-full-report-leaders-data-receiving").appendTo(this.domNodes.leaders.$data).hide(); this.domNodes.leaders.$dataRushingHome=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-leaders-data -hd-los-game-full-report-leaders-data-rushing").appendTo(this.domNodes.leaders.$data).hide(); this.domNodes.leaders.$dataDefenseHome=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-leaders-data -hd-los-game-full-report-leaders-data-defense").appendTo(this.domNodes.leaders.$data).hide(); this.domNodes.leaders.$dataPassingAway=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-leaders-data -hd-los-game-full-report-leaders-data-passing").appendTo(this.domNodes.leaders.$data).hide(); this.domNodes.leaders.$dataReceivingAway=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-leaders-data -hd-los-game-full-report-leaders-data-receiving").appendTo(this.domNodes.leaders.$data).hide(); this.domNodes.leaders.$dataRushingAway=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-leaders-data -hd-los-game-full-report-leaders-data-rushing").appendTo(this.domNodes.leaders.$data).hide(); this.domNodes.leaders.$dataDefenseAway=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-leaders-data -hd-los-game-full-report-leaders-data-defense").appendTo(this.domNodes.leaders.$data).hide(); this.domNodes.leaders.$toggleTeam=jQuery("<div/>").addClass("-hd-button-group").prependTo(this.domNodes.leaders.$headline); this.domNodes.leaders.$toggleTeamHome=jQuery("<button type='button'/>").addClass("-hd-button -hd-button-active").html(data.gameData.homeTeamShortname || hockeydata["i18n"].translate("Home")).appendTo(this.domNodes.leaders.$toggleTeam); this.domNodes.leaders.$toggleTeamAway=jQuery("<button type='button'/>").addClass("-hd-button").html(data.gameData.awayTeamShortname || hockeydata["i18n"].translate("Away")).appendTo(this.domNodes.leaders.$toggleTeam); this.domNodes.leaders.$toggleType=jQuery("<div/>").addClass("-hd-button-group").prependTo(this.domNodes.leaders.$headline); this.domNodes.leaders.$toggleTypePassing=jQuery("<button type='button'/>").addClass("-hd-button -hd-button-active").html(hockeydata["i18n"].translate("Passing")).appendTo(this.domNodes.leaders.$toggleType).attr("data-type", "Passing"); this.domNodes.leaders.$toggleTypeReceiving=jQuery("<button type='button'/>").addClass("-hd-button").html(hockeydata["i18n"].translate("Receiving")).appendTo(this.domNodes.leaders.$toggleType).attr("data-type", "Receiving"); this.domNodes.leaders.$toggleTypeRushing=jQuery("<button type='button'/>").addClass("-hd-button").html(hockeydata["i18n"].translate("Rushing")).appendTo(this.domNodes.leaders.$toggleType).attr("data-type", "Rushing"); this.domNodes.leaders.$toggleTypeDefense=jQuery("<button type='button'/>").addClass("-hd-button").html(hockeydata["i18n"].translate("Defense")).appendTo(this.domNodes.leaders.$toggleType).attr("data-type", "Defense"); var toggleLeaders=function(){ var team=self.domNodes.leaders.$toggleTeamHome.hasClass("-hd-button-active") ? "Home" : "Away"; var type=self.domNodes.leaders.$toggleType.find(".-hd-button-active").attr("data-type"); self.domNodes.leaders["$data" + type + team].show(); }; this.domNodes.leaders.$toggleTeamHome.click(this.getToggleButtonFunction(this.domNodes.leaders.$toggleTeam, this.domNodes.leaders.$data, this.domNodes.leaders.$toggleTeamHome, toggleLeaders)); this.domNodes.leaders.$toggleTeamAway.click(this.getToggleButtonFunction(this.domNodes.leaders.$toggleTeam, this.domNodes.leaders.$data, this.domNodes.leaders.$toggleTeamAway, toggleLeaders)); this.domNodes.leaders.$toggleTypePassing.click(this.getToggleButtonFunction(this.domNodes.leaders.$toggleType, this.domNodes.leaders.$data, this.domNodes.leaders.$toggleTypePassing, toggleLeaders)); this.domNodes.leaders.$toggleTypeReceiving.click(this.getToggleButtonFunction(this.domNodes.leaders.$toggleType, this.domNodes.leaders.$data, this.domNodes.leaders.$toggleTypeReceiving, toggleLeaders)); this.domNodes.leaders.$toggleTypeRushing.click(this.getToggleButtonFunction(this.domNodes.leaders.$toggleType, this.domNodes.leaders.$data, this.domNodes.leaders.$toggleTypeRushing, toggleLeaders)); this.domNodes.leaders.$toggleTypeDefense.click(this.getToggleButtonFunction(this.domNodes.leaders.$toggleType, this.domNodes.leaders.$data, this.domNodes.leaders.$toggleTypeDefense, toggleLeaders)); this.prepareColumns("columnsLeadersPassing", "columnSetLeadersPassing", "columnDefinitionLeadersPassing", "gameFullReportLeadersPassing"); this.prepareColumns("columnsLeadersReceiving", "columnSetLeadersReceiving", "columnDefinitionLeadersReceiving", "gameFullReportLeadersReceiving"); this.prepareColumns("columnsLeadersRushing", "columnSetLeadersRushing", "columnDefinitionLeadersRushing", "gameFullReportLeadersRushing"); this.prepareColumns("columnsLeadersDefense", "columnSetLeadersDefense", "columnDefinitionLeadersDefense", "gameFullReportLeadersDefense"); this.initializeTable("leadersPassingHome", this.options.columnsLeadersPassing, this.options.columnDefinitionLeadersPassing, this.domNodes.leaders.$dataPassingHome); this.initializeTable("leadersPassingAway", this.options.columnsLeadersPassing, this.options.columnDefinitionLeadersPassing, this.domNodes.leaders.$dataPassingAway); this.initializeTable("leadersReceivingHome", this.options.columnsLeadersReceiving, this.options.columnDefinitionLeadersReceiving, this.domNodes.leaders.$dataReceivingHome); this.initializeTable("leadersReceivingAway", this.options.columnsLeadersReceiving, this.options.columnDefinitionLeadersReceiving, this.domNodes.leaders.$dataReceivingAway); this.initializeTable("leadersRushingHome", this.options.columnsLeadersRushing, this.options.columnDefinitionLeadersRushing, this.domNodes.leaders.$dataRushingHome); this.initializeTable("leadersRushingAway", this.options.columnsLeadersRushing, this.options.columnDefinitionLeadersRushing, this.domNodes.leaders.$dataRushingAway); this.initializeTable("leadersDefenseHome", this.options.columnsLeadersDefense, this.options.columnDefinitionLeadersDefense, this.domNodes.leaders.$dataDefenseHome); this.initializeTable("leadersDefenseAway", this.options.columnsLeadersDefense, this.options.columnDefinitionLeadersDefense, this.domNodes.leaders.$dataDefenseAway); } if(drawGoals){ this.domNodes.goals={}; this.domNodes.goals.$goals=jQuery("<div/>").addClass("-hd-los-game-full-report-container -hd-los-game-full-report-goals").appendTo(this.$domNode); this.domNodes.goals.$headline=jQuery("<div/>").addClass("-hd-los-game-full-report-headline").html("<span>" + hockeydata["i18n"].translate("Goals") + "</span>").appendTo(this.domNodes.goals.$goals); this.domNodes.goals.$data=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-goals-data").appendTo(this.domNodes.goals.$goals); if(!this.options.columnDefinitionGoals) this.options.columnDefinitionGoals=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "gameFullReportGoals" }); if(!this.options.columnsGoals) this.options.columnsGoals=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSetGoals, "type": "gameFullReportGoals" }); else if(hockeydata["util"].isString(this.options.columnsGoals)) this.options.columnsGoals=this.options.columnsGoals.split(","); hockeydata["los"]["Configuration"].extendColumns(this.options.columnsGoals, this.options.additionalColumnsGoals); this.initializeTable("goals", this.options.columnsGoals, this.options.columnDefinitionGoals, this.domNodes.goals.$data); } if(drawPenalties){ this.domNodes.penalties={}; this.domNodes.penalties.$penalties=jQuery("<div/>").addClass("-hd-los-game-full-report-container -hd-los-game-full-report-penalties").appendTo(this.$domNode); this.domNodes.penalties.$headline=jQuery("<div/>").addClass("-hd-los-game-full-report-headline").html("<span>" + hockeydata["i18n"].translate("Penalties") + "</span>").appendTo(this.domNodes.penalties.$penalties); this.domNodes.penalties.$data=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-penalties-data").appendTo(this.domNodes.penalties.$penalties); if(!this.options.columnDefinitionPenalties) this.options.columnDefinitionPenalties=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "gameFullReportPenalties" }); if(!this.options.columnsPenalties) this.options.columnsPenalties=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSetPenalties, "type": "gameFullReportPenalties" }); else if(hockeydata["util"].isString(this.options.columnsPenalties)) this.options.columnsPenalties=this.options.columnsPenalties.split(","); this.initializeTable("penalties", this.options.columnsPenalties, this.options.columnDefinitionPenalties, this.domNodes.penalties.$data); } if(drawFieldPlayers){ this.domNodes.fieldPlayers={}; this.domNodes.fieldPlayers.$fieldPlayers=jQuery("<div/>").addClass("-hd-los-game-full-report-container -hd-los-game-full-report-field-players").appendTo(this.$domNode); this.domNodes.fieldPlayers.$headline=jQuery("<div/>").addClass("-hd-los-game-full-report-headline").html("<span>" + hockeydata["i18n"].translate("Field Players") + "</span>").appendTo(this.domNodes.fieldPlayers.$fieldPlayers); this.domNodes.fieldPlayers.$data=jQuery("<div/>").appendTo(this.domNodes.fieldPlayers.$fieldPlayers); this.domNodes.fieldPlayers.$dataBoxScoreHome=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-field-players-data -hd-los-game-full-report-field-players-data-box-score").appendTo(this.domNodes.fieldPlayers.$data); this.domNodes.fieldPlayers.$dataBoxScoreAway=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-field-players-data -hd-los-game-full-report-field-players-data-box-score").appendTo(this.domNodes.fieldPlayers.$data).hide(); this.domNodes.fieldPlayers.$dataLineupsHome=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-field-players-data -hd-los-game-full-report-field-players-data-lineups").appendTo(this.domNodes.fieldPlayers.$data).hide(); this.domNodes.fieldPlayers.$dataLineupsAway=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-field-players-data -hd-los-game-full-report-field-players-data-lineups").appendTo(this.domNodes.fieldPlayers.$data).hide(); this.domNodes.fieldPlayers.$toggleTeam=jQuery("<div/>").addClass("-hd-button-group").prependTo(this.domNodes.fieldPlayers.$headline); this.domNodes.fieldPlayers.$toggleTeamHome=jQuery("<button type='button'/>").addClass("-hd-button -hd-button-active").html(data.gameData.homeTeamShortname || hockeydata["i18n"].translate("Home")).appendTo(this.domNodes.fieldPlayers.$toggleTeam); this.domNodes.fieldPlayers.$toggleTeamAway=jQuery("<button type='button'/>").addClass("-hd-button").html(data.gameData.awayTeamShortname || hockeydata["i18n"].translate("Away")).appendTo(this.domNodes.fieldPlayers.$toggleTeam); this.domNodes.fieldPlayers.$toggleType=jQuery("<div/>").addClass("-hd-button-group").prependTo(this.domNodes.fieldPlayers.$headline); this.domNodes.fieldPlayers.$toggleTypeBoxScore=jQuery("<button type='button'/>").addClass("-hd-button -hd-button-active").html(hockeydata["i18n"].translate("Boxscore")).appendTo(this.domNodes.fieldPlayers.$toggleType); this.domNodes.fieldPlayers.$toggleTypeLineups=jQuery("<button type='button'/>").addClass("-hd-button").html(hockeydata["i18n"].translate("Lineups")).appendTo(this.domNodes.fieldPlayers.$toggleType); var toggleFieldPlayers=function(){ var team=self.domNodes.fieldPlayers.$toggleTeamHome.hasClass("-hd-button-active") ? "Home" : "Away"; var type=self.domNodes.fieldPlayers.$toggleTypeBoxScore.hasClass("-hd-button-active") ? "BoxScore" : "Lineups"; self.domNodes.fieldPlayers["$data" + type + team].show(); }; this.domNodes.fieldPlayers.$toggleTeamHome.click(this.getToggleButtonFunction(this.domNodes.fieldPlayers.$toggleTeam, this.domNodes.fieldPlayers.$data, this.domNodes.fieldPlayers.$toggleTeamHome, toggleFieldPlayers)); this.domNodes.fieldPlayers.$toggleTeamAway.click(this.getToggleButtonFunction(this.domNodes.fieldPlayers.$toggleTeam, this.domNodes.fieldPlayers.$data, this.domNodes.fieldPlayers.$toggleTeamAway, toggleFieldPlayers)); this.domNodes.fieldPlayers.$toggleTypeBoxScore.click(this.getToggleButtonFunction(this.domNodes.fieldPlayers.$toggleType, this.domNodes.fieldPlayers.$data, this.domNodes.fieldPlayers.$toggleTypeBoxScore, toggleFieldPlayers)); this.domNodes.fieldPlayers.$toggleTypeLineups.click(this.getToggleButtonFunction(this.domNodes.fieldPlayers.$toggleType, this.domNodes.fieldPlayers.$data, this.domNodes.fieldPlayers.$toggleTypeLineups, toggleFieldPlayers)); if(!this.options.columnDefinitionFieldPlayers) this.options.columnDefinitionFieldPlayers=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "gameFullReportFieldPlayers" }); if(!this.options.columnsFieldPlayers) this.options.columnsFieldPlayers=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSetFieldPlayers, "type": "gameFullReportFieldPlayers" }); else if(hockeydata["util"].isString(this.options.columnsFieldPlayers)) this.options.columnsFieldPlayers=this.options.columnsFieldPlayers.split(","); hockeydata["los"]["Configuration"].extendColumns(this.options.columnsFieldPlayers, this.options.additionalColumnsFieldPlayers); this.initializeTable("fieldPlayersHome", this.options.columnsFieldPlayers, this.options.columnDefinitionFieldPlayers, this.domNodes.fieldPlayers.$dataBoxScoreHome); this.initializeTable("fieldPlayersAway", this.options.columnsFieldPlayers, this.options.columnDefinitionFieldPlayers, this.domNodes.fieldPlayers.$dataBoxScoreAway); } if(drawGoalKeepers){ this.domNodes.goalKeepers={}; this.domNodes.goalKeepers.$goalKeepers=jQuery("<div/>").addClass("-hd-los-game-full-report-container -hd-los-game-full-report-goal-keepers").appendTo(this.$domNode); this.domNodes.goalKeepers.$headline=jQuery("<div/>").addClass("-hd-los-game-full-report-headline").html("<span>" + hockeydata["i18n"].translate("Goalkeepers") + "</span>").appendTo(this.domNodes.goalKeepers.$goalKeepers); this.domNodes.goalKeepers.$data=jQuery("<div/>").appendTo(this.domNodes.goalKeepers.$goalKeepers); this.domNodes.goalKeepers.$dataHome=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-goal-keepers-data").appendTo(this.domNodes.goalKeepers.$data); this.domNodes.goalKeepers.$dataAway=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-goal-keepers-data").appendTo(this.domNodes.goalKeepers.$data).hide(); this.domNodes.goalKeepers.$toggleTeam=jQuery("<div/>").addClass("-hd-button-group").prependTo(this.domNodes.goalKeepers.$headline); this.domNodes.goalKeepers.$toggleTeamHome=jQuery("<button type='button'/>").addClass("-hd-button -hd-button-active").html(data.gameData.homeTeamShortname || hockeydata["i18n"].translate("Home")).appendTo(this.domNodes.goalKeepers.$toggleTeam); this.domNodes.goalKeepers.$toggleTeamAway=jQuery("<button type='button'/>").addClass("-hd-button").html(data.gameData.awayTeamShortname || hockeydata["i18n"].translate("Away")).appendTo(this.domNodes.goalKeepers.$toggleTeam); this.domNodes.goalKeepers.$toggleTeamHome.click(this.getToggleButtonFunction(this.domNodes.goalKeepers.$toggleTeam, this.domNodes.goalKeepers.$data, this.domNodes.goalKeepers.$toggleTeamHome, this.domNodes.goalKeepers.$dataHome)); this.domNodes.goalKeepers.$toggleTeamAway.click(this.getToggleButtonFunction(this.domNodes.goalKeepers.$toggleTeam, this.domNodes.goalKeepers.$data, this.domNodes.goalKeepers.$toggleTeamAway, this.domNodes.goalKeepers.$dataAway)); if(!this.options.columnDefinitionGoalKeepers) this.options.columnDefinitionGoalKeepers=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "gameFullReportGoalKeepers" }); if(!this.options.columnsGoalKeepers) this.options.columnsGoalKeepers=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSetGoalKeepers, "type": "gameFullReportGoalKeepers" }); else if(hockeydata["util"].isString(this.options.columnsGoalKeepers)) this.options.columnsGoalKeepers=this.options.columnsGoalKeepers.split(","); hockeydata["los"]["Configuration"].extendColumns(this.options.columnsGoalKeepers, this.options.additionalColumnsGoalKeepers); this.initializeTable("goalKeepersHome", this.options.columnsGoalKeepers, this.options.columnDefinitionGoalKeepers, this.domNodes.goalKeepers.$dataHome); this.initializeTable("goalKeepersAway", this.options.columnsGoalKeepers, this.options.columnDefinitionGoalKeepers, this.domNodes.goalKeepers.$dataAway); } if(drawGoalKeeperChanges){ this.domNodes.goalKeeperChanges={}; this.domNodes.goalKeeperChanges.$goalKeeperChanges=jQuery("<div/>").addClass("-hd-los-game-full-report-container -hd-los-game-full-report-goal-keeper-changes").appendTo(this.$domNode); this.domNodes.goalKeeperChanges.$headline=jQuery("<div/>").addClass("-hd-los-game-full-report-headline").html("<span>" + hockeydata["i18n"].translate("Goalkeeper Changes") + "</span>").appendTo(this.domNodes.goalKeeperChanges.$goalKeeperChanges); this.domNodes.goalKeeperChanges.$data=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-goal-keeper-changes-data").appendTo(this.domNodes.goalKeeperChanges.$goalKeeperChanges); if(!this.options.columnDefinitionGoalKeeperChanges) this.options.columnDefinitionGoalKeeperChanges=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "gameFullReportGoalKeeperChanges" }); if(!this.options.columnsGoalKeeperChanges) this.options.columnsGoalKeeperChanges=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSetGoalKeeperChanges, "type": "gameFullReportGoalKeeperChanges" }); else if(hockeydata["util"].isString(this.options.columnsGoalKeeperChanges)) this.options.columnsGoalKeeperChanges=this.options.columnsGoalKeeperChanges.split(","); this.initializeTable("goalKeeperChanges", this.options.columnsGoalKeeperChanges, this.options.columnDefinitionGoalKeeperChanges, this.domNodes.goalKeeperChanges.$data); } if(drawPlayByPlay){ this.domNodes.playByPlay={}; this.domNodes.playByPlay.$playByPlay=jQuery("<div/>").addClass("-hd-los-game-full-report-container -hd-los-game-full-report-play-by-play").appendTo(this.$domNode); this.domNodes.playByPlay.$headline=jQuery("<div/>").addClass("-hd-los-game-full-report-headline").html("<span>" + hockeydata["i18n"].translate("Play by Play") + "</span>").appendTo(this.domNodes.playByPlay.$playByPlay); this.domNodes.playByPlay.$data=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-play-by-play-data").appendTo(this.domNodes.playByPlay.$playByPlay); if(!this.options.columnDefinitionPlayByPlay) this.options.columnDefinitionPlayByPlay=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "gameFullReportPlayByPlay" }); if(!this.options.columnsPlayByPlay) this.options.columnsPlayByPlay=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSetPlayByPlay, "type": "gameFullReportPlayByPlay" }); else if(hockeydata["util"].isString(this.options.columnsPlayByPlay)) this.options.columnsPlayByPlay=this.options.columnsPlayByPlay.split(","); this.initializeTable("playByPlay", this.options.columnsPlayByPlay, this.options.columnDefinitionPlayByPlay, this.domNodes.playByPlay.$data, true); } if(drawRosters){ this.domNodes.rosters={}; this.domNodes.rosters.$rosters=jQuery("<div/>").addClass("-hd-los-game-full-report-container -hd-los-game-full-report-rosters").appendTo(this.$domNode); this.domNodes.rosters.$headline=jQuery("<div/>").addClass("-hd-los-game-full-report-headline").html("<span>" + hockeydata["i18n"].translate("Roster") + "</span>").appendTo(this.domNodes.rosters.$rosters); this.domNodes.rosters.$data=jQuery("<div/>").appendTo(this.domNodes.rosters.$rosters); this.domNodes.rosters.$dataHome=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-goal-keepers-data").appendTo(this.domNodes.rosters.$data); this.domNodes.rosters.$dataAway=jQuery("<div/>").addClass("-hd-los-game-full-report-container-data -hd-los-game-full-report-goal-keepers-data").appendTo(this.domNodes.rosters.$data).hide(); this.domNodes.rosters.$toggleTeam=jQuery("<div/>").addClass("-hd-button-group").prependTo(this.domNodes.rosters.$headline); this.domNodes.rosters.$toggleTeamHome=jQuery("<button type='button'/>").addClass("-hd-button -hd-button-active").html(data.gameData.homeTeamShortname || hockeydata["i18n"].translate("Home")).appendTo(this.domNodes.rosters.$toggleTeam); this.domNodes.rosters.$toggleTeamAway=jQuery("<button type='button'/>").addClass("-hd-button").html(data.gameData.awayTeamShortname || hockeydata["i18n"].translate("Away")).appendTo(this.domNodes.rosters.$toggleTeam); this.domNodes.rosters.$toggleTeamHome.click(this.getToggleButtonFunction(this.domNodes.rosters.$toggleTeam, this.domNodes.rosters.$data, this.domNodes.rosters.$toggleTeamHome, this.domNodes.rosters.$dataHome)); this.domNodes.rosters.$toggleTeamAway.click(this.getToggleButtonFunction(this.domNodes.rosters.$toggleTeam, this.domNodes.rosters.$data, this.domNodes.rosters.$toggleTeamAway, this.domNodes.rosters.$dataAway)); if(!this.options.columnDefinitionRoster) this.options.columnDefinitionRoster=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "gameFullReportRoster" }); if(!this.options.columnsRoster) this.options.columnsRoster=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSetRoster, "type": "gameFullReportRoster" }); else if(hockeydata["util"].isString(this.options.columnsRoster)) this.options.columnsRoster=this.options.columnsRoster.split(","); this.initializeTable("rosterHome", this.options.columnsRoster, this.options.columnDefinitionRoster, this.domNodes.rosters.$dataHome); this.initializeTable("rosterAway", this.options.columnsRoster, this.options.columnDefinitionRoster, this.domNodes.rosters.$dataAway); } if(this.options.tabbedStats){ var statsTabs=[]; if(self.options.timeOnIce) statsTabs.push({ "button": { "label": hockeydata["i18n"].translate("Time on Ice") }, "content": this.domNodes.timeOnIce.$timeOnIce }); if(drawShotChart) statsTabs.push({ "button": { "label": hockeydata["i18n"].translate("Shot Chart") }, "content": this.domNodes.shotChart.$shotChart }); if(drawScores) statsTabs.push({ "button": { "label": hockeydata["i18n"].translate("Scores") }, "content": this.domNodes.scores.$scores }); statsTabs.push({ "button": { "label": hockeydata["i18n"].translate("Team Stats") }, "content": this.domNodes.teamStats.$teamStats }); if(drawLeaders) statsTabs.push({ "button": { "label": hockeydata["i18n"].translate("Leaders") }, "content": this.domNodes.leaders.$leaders }); if(drawGoals) statsTabs.push({ "button": { "label": hockeydata["i18n"].translate("Goals") }, "content": this.domNodes.goals.$goals }); if(drawPenalties) statsTabs.push({ "button": { "label": hockeydata["i18n"].translate("Penalties") }, "content": this.domNodes.penalties.$penalties }); if(drawFieldPlayers) statsTabs.push({ "button": { "label": hockeydata["i18n"].translate("Field Players") }, "content": this.domNodes.fieldPlayers.$fieldPlayers }); if(drawGoalKeepers) statsTabs.push({ "button": { "label": hockeydata["i18n"].translate("Goalkeepers") }, "content": this.domNodes.goalKeepers.$goalKeepers }); if(drawGoalKeeperChanges) statsTabs.push({ "button": { "label": hockeydata["i18n"].translate("Goalkeeper Changes") }, "content": this.domNodes.goalKeeperChanges.$goalKeeperChanges }); if(drawPlayByPlay) statsTabs.push({ "button": { "label": hockeydata["i18n"].translate("Play by Play") }, "content": this.domNodes.playByPlay.$playByPlay }); if(drawRosters) statsTabs.push({ "button": { "label": hockeydata["i18n"].translate("Roster") }, "content": this.domNodes.rosters.$rosters }); this.domNodes.$statsTabs=jQuery("<div/>").addClass("-hd-los-game-full-report-stats-tabs").appendTo(this.$domNode); new hockeydata["util"]["Tabs"](jQuery.extend({}, self.options, { "$domNode": this.domNodes.$statsTabs, "tabs": statsTabs })); } } var scoreDivider=""; if(data.gameData["isShootOut"]) scoreDivider="<span class='-hd-los-game-full-report-shootout'>" + hockeydata["i18n"].translate("SO", "Shootout") + "</span>"; else if(data.gameData["isOvertime"]) scoreDivider="<span class='-hd-los-game-full-report-overtime'>" + hockeydata["i18n"].translate("OT", "Overtime") + "</span>"; if(this.options.showGameState){ if(self.gameStatus===0) self.domNodes.gameInfo.$gameState.html(hockeydata["i18n"].translate("SCHEDULED")); else if(self.gameStatus===1){ if(hockeydata["util"].isArray(data.gameData["liveTimePeriodBar"]) && data.gameData["liveTimePeriodBar"].length){ self.domNodes.gameInfo.$gameState.empty(); var $liveTimeTableRow=jQuery("<tr/>").appendTo(jQuery("<tbody/>").appendTo(jQuery("<table/>").appendTo(jQuery("<div/>").addClass("-hd-los-game-full-report-period-bar").appendTo(self.domNodes.gameInfo.$gameState)))); for(i=0; i < data.gameData["liveTimePeriodBar"].length; i++){ var bar=data.gameData["liveTimePeriodBar"][i]; var $bar=jQuery("<td/>").appendTo($liveTimeTableRow); var $fill=jQuery("<div/>").addClass("-hd-los-game-full-report-period-bar-fill").appendTo($bar); if(("longName" in bar) && bar["longName"]) $bar.attr("title", bar["longName"]); if(("shortName" in bar) && bar["shortName"]) jQuery("<div/>").addClass("-hd-los-game-full-report-period-bar-label").html(bar["shortName"]).appendTo($bar); if(bar["isActive"]) $bar.addClass("-hd-los-game-full-report-period-bar-active"); $bar.css({"width": bar.maxLength + "%"}); $fill.css({"width": bar.progress + "%"}); } } else self.domNodes.gameInfo.$gameState.html(hockeydata["i18n"].translate("LIVE")); } else if(self.gameStatus >= 2) self.domNodes.gameInfo.$gameState.html(hockeydata["i18n"].translate("FINAL")); } data.gameData["gameExtendedStatus"] ? self.domNodes.gameInfo.$gameStateExtended.show().html("<span class='-hd-los-game-full-report-game-state-extended-label -hd-los-game-full-report-game-state-extended-label-" + data.gameData["gameExtendedStatus"] + "'>" + hockeydata["los"]["Configuration"].getExtendedStateLabel(data.gameData["gameExtendedStatus"]) + "</span>" + (data.gameData["gameExtendedStatusInfoText"] ? ("<span class='-hd-los-game-full-report-game-state-extended-info-text'>(" + data.gameData["gameExtendedStatusInfoText"] + ")</span>") : "")) : self.domNodes.gameInfo.$gameStateExtended.hide(); self.domNodes.gameInfo.$homeTeamLogo.html(hockeydata["util"]["ImageLoader"].load(self.logoUrl.home)); self.domNodes.gameInfo.$homeTeamName.html(data.gameData.homeTeamShortname || ""); self.domNodes.gameInfo.$awayTeamLogo.html(hockeydata["util"]["ImageLoader"].load(self.logoUrl.away)); self.domNodes.gameInfo.$awayTeamName.html(data.gameData.awayTeamShortname || ""); self.domNodes.gameInfo.$scoreHome.html(("homeTeamScore" in data.gameData) ? data.gameData.homeTeamScore : "-"); self.domNodes.gameInfo.$scoreDivider.html(scoreDivider); self.domNodes.gameInfo.$scoreAway.html(("awayTeamScore" in data.gameData) ? data.gameData.awayTeamScore : "-"); if(self.options.showYouTubeLink){ self.domNodes.gameInfo.$youTubeLink.empty(); if(data.gameData.youTubeLink){ var $youTubeLink=jQuery("<a/>"); $youTubeLink.attr("href", "http://www.youtube.com/watch?v=" + data.gameData.youTubeLink); $youTubeLink.attr("target", "_blank"); $youTubeLink.attr("title", hockeydata["i18n"].translate("Watch on YouTube")); $youTubeLink.addClass("-hd-youtube-link"); $youTubeLink.appendTo(self.domNodes.gameInfo.$youTubeLink); } } if(hockeydata["util"].isArray(data.gameData.periodStats) && data.gameData.periodStats.length){ self.domNodes.gameInfo.$periodStats.empty(); var $periodStatsHeader=jQuery("<div/>").addClass("-hd-los-game-full-report-period-stats-header").appendTo(self.domNodes.gameInfo.$periodStats); var $periodStatsScore=jQuery("<div/>").addClass("-hd-los-game-full-report-period-stats-score").appendTo(self.domNodes.gameInfo.$periodStats); var $periodStatsShotsOnGoal=jQuery("<div/>").addClass("-hd-los-game-full-report-period-stats-additional").appendTo(self.domNodes.gameInfo.$periodStats); jQuery("<div/>").html("&nbsp;").appendTo($periodStatsHeader); jQuery("<div/>").html(hockeydata["i18n"].translate("Score")).appendTo($periodStatsScore); jQuery("<div/>").html(hockeydata["i18n"].translate("SOG", "Shots on Goal")).appendTo($periodStatsShotsOnGoal); for(i=0; i < data.gameData.periodStats.length; i++){ var periodStats=data.gameData.periodStats[i]; jQuery("<div/>").html(("period" in periodStats) ? periodStats["period"] : "").appendTo($periodStatsHeader); jQuery("<div/>").html((("homeScore" in periodStats) ? periodStats["homeScore"] : "-") + " : " + (("awayScore" in periodStats) ? periodStats["awayScore"] : "-")).appendTo($periodStatsScore); jQuery("<div/>").html((("homeShotsOnGoal" in periodStats) ? periodStats["homeShotsOnGoal"] : "-") + " : " + (("awayShotsOnGoal" in periodStats) ? periodStats["awayShotsOnGoal"] : "-")).appendTo($periodStatsShotsOnGoal); } } self.domNodes.gameInfo.$gameStreams.empty(); if(data.gameData.streams && data.gameData.streams.length){ self.domNodes.gameInfo.$gameStreams.show(); for(i=0; i < data.gameData.streams.length; i++){ var gameStream=hockeydata.util.getGameStreamButton(data.gameData.streams[i]); gameStream && self.domNodes.gameInfo.$gameStreams.append(gameStream); } } for(i=0; i < gameFacts.length; i++) self.domNodes.gameFacts[gameFacts[i].key].html(gameFacts[i].value); if(self.options.timeOnIce && data.homeFieldPlayers && data.awayFieldPlayers){ if(self.gameStatus===1) self.domNodes.timeOnIce.$timeOnIce.show(); else self.domNodes.timeOnIce.$timeOnIce.hide(); if(!self.timeOnIceRowsSet){ self.timeOnIceRowsSet=true; var timeOnIceTableRows=[]; for(i=0; (i < data.homeFieldPlayers.length) || (i < data.awayFieldPlayers.length); i++){ var homeFieldPlayer=(i < data.homeFieldPlayers.length ? data.homeFieldPlayers[i] : null); var awayFieldPlayer=(i < data.awayFieldPlayers.length ? data.awayFieldPlayers[i] : null); timeOnIceTableRows.push({ "homePlayerId": homeFieldPlayer ? homeFieldPlayer.id : null, "homePlayerJerseyNr": homeFieldPlayer ? homeFieldPlayer.playerJerseyNr : null, "homePlayerPosition": homeFieldPlayer ? homeFieldPlayer.position : null, "homePlayerLastname": homeFieldPlayer ? homeFieldPlayer.playerLastname : null, "homePlayerFirstname": homeFieldPlayer ? homeFieldPlayer.playerFirstname : null, "homePlayerIceTime": 0, "homePlayerShifts": 0, "awayPlayerId": awayFieldPlayer ? awayFieldPlayer.id : null, "awayPlayerJerseyNr": awayFieldPlayer ? awayFieldPlayer.playerJerseyNr : null, "awayPlayerPosition": awayFieldPlayer ? awayFieldPlayer.position : null, "awayPlayerLastname": awayFieldPlayer ? awayFieldPlayer.playerLastname : null, "awayPlayerFirstname": awayFieldPlayer ? awayFieldPlayer.playerFirstname : null, "awayPlayerIceTime": 0, "awayPlayerShifts": 0 }); } self.tables.timeOnIce.setRows(self.getRows(timeOnIceTableRows, self.options.columnsTimeOnIce, self.options.columnDefinitionTimeOnIce)); } } if(drawShotChart) self.updateShotChart(); if(drawScores){ lastPeriod=null; self.tables.scores.setRows(self.getRows(data.scores, self.options.columnsScores, self.options.columnDefinitionScores, null, function(dataRow, tableRows){ if(dataRow["gamePeriod"] && (lastPeriod===null || lastPeriod !== dataRow["gamePeriod"])){ lastPeriod=dataRow["gamePeriod"]; tableRows.push({ "cols": [{ "html": hockeydata["i18n"].translate("Period") + " " + lastPeriod, "colspan": self.options.columnsScores.length }], "class": "-hd-los-game-full-report-scores-row-period-change" }); } })); } var teamStatsTableRows=[]; for(i=0; i < self.options.rowsTeamStats.length; i++){ var rowName=self.options.rowsTeamStats[i]; var rowDefinition=(rowName in self.options.rowDefinitionTeamStats) ? self.options.rowDefinitionTeamStats[rowName] : {}; var tableRow={ "cols": [], "class": "-hd-los-game-full-report-team-stats-row -hd-los-game-full-report-team-" + rowName }; var homeValue=(rowName in data.homeTeamStats) ? data.homeTeamStats[rowName] : null; var awayValue=(rowName in data.awayTeamStats) ? data.awayTeamStats[rowName] : null; if(("show" in rowDefinition) && jQuery.isFunction(rowDefinition.show) && rowDefinition.show(data)===false) continue; if(("format" in rowDefinition) && jQuery.isFunction(rowDefinition.format)){ homeValue=rowDefinition.format(homeValue); awayValue=rowDefinition.format(awayValue); } if(("fn" in rowDefinition) && jQuery.isFunction(rowDefinition.fn)){ homeValue=rowDefinition.fn(data.homeTeamStats, this.options); awayValue=rowDefinition.fn(data.awayTeamStats, this.options); } if(homeValue===null) homeValue="&nbsp;"; if(awayValue===null) awayValue="&nbsp;"; tableRow.cols.push({ "html": rowDefinition.title }); tableRow.cols.push({ "html": homeValue }); tableRow.cols.push({ "html": awayValue }); teamStatsTableRows.push(tableRow); } this.tables.teamStats.setRows(teamStatsTableRows); if(drawLeaders){ self.tables["leadersPassingHome"].setRows(self.getRows(data.homePassingLeaders, self.options.columnsLeadersPassing, self.options.columnDefinitionLeadersPassing, self.options.playerLink)); self.tables["leadersPassingAway"].setRows(self.getRows(data.awayPassingLeaders, self.options.columnsLeadersPassing, self.options.columnDefinitionLeadersPassing, self.options.playerLink)); self.tables["leadersReceivingHome"].setRows(self.getRows(data.homeReceivingLeaders, self.options.columnsLeadersReceiving, self.options.columnDefinitionLeadersReceiving, self.options.playerLink)); self.tables["leadersReceivingAway"].setRows(self.getRows(data.awayReceivingLeaders, self.options.columnsLeadersReceiving, self.options.columnDefinitionLeadersReceiving, self.options.playerLink)); self.tables["leadersRushingHome"].setRows(self.getRows(data.homeRushingLeaders, self.options.columnsLeadersRushing, self.options.columnDefinitionLeadersRushing, self.options.playerLink)); self.tables["leadersRushingAway"].setRows(self.getRows(data.awayRushingLeaders, self.options.columnsLeadersRushing, self.options.columnDefinitionLeadersRushing, self.options.playerLink)); self.tables["leadersDefenseHome"].setRows(self.getRows(data.homeDefensiveLeaders, self.options.columnsLeadersDefense, self.options.columnDefinitionLeadersDefense, self.options.playerLink)); self.tables["leadersDefenseAway"].setRows(self.getRows(data.awayDefensiveLeaders, self.options.columnsLeadersDefense, self.options.columnDefinitionLeadersDefense, self.options.playerLink)); } if(drawGoals){ var goals=[]; for(i=0; i < data.homeGoals.length; i++){ data.homeGoals[i].teamShortname=data.gameData.homeTeamShortname || ""; goals.push(data.homeGoals[i]); } for(i=0; i < data.awayGoals.length; i++){ data.awayGoals[i].teamShortname=data.gameData.awayTeamShortname || ""; goals.push(data.awayGoals[i]); } goals.sort(function(a, b){ return a["gameTime"] - b["gameTime"]; }); self.tables.goals.setRows(self.getRows(goals, self.options.columnsGoals, self.options.columnDefinitionGoals)); } if(drawPenalties){ var penalties=[]; for(i=0; i < data.homePenalties.length; i++){ data.homePenalties[i].teamShortname=data.gameData.homeTeamShortname || ""; data.homePenalties[i].isAway=0; penalties.push(data.homePenalties[i]); } for(i=0; i < data.awayPenalties.length; i++){ data.awayPenalties[i].teamShortname=data.gameData.awayTeamShortname || ""; data.awayPenalties[i].isAway=1; penalties.push(data.awayPenalties[i]); } penalties.sort(function(a, b){ var offenderNameA=jQuery.isPlainObject(a["offender"]) ? a["offender"]["playerLastname"] + " " + a["offender"]["playerFirstname"] : "", offenderNameB=jQuery.isPlainObject(b["offender"]) ? b["offender"]["playerLastname"] + " " + b["offender"]["playerFirstname"] : "", offenderCompare=(offenderNameA < offenderNameB ? -1 : (offenderNameA > offenderNameB ? 1 : 0)); return a["gameTime"] - b["gameTime"] || a["isAway"] - b["isAway"] || offenderCompare || a["penaltyLength"] - b["penaltyLength"]; }); self.tables.penalties.setRows(self.getRows(penalties, self.options.columnsPenalties, self.options.columnDefinitionPenalties)); } if(drawFieldPlayers){ self.tables["fieldPlayersHome"].setRows(self.getRows(data.homeFieldPlayers, self.options.columnsFieldPlayers, self.options.columnDefinitionFieldPlayers, self.options.playerLink)); self.tables["fieldPlayersAway"].setRows(self.getRows(data.awayFieldPlayers, self.options.columnsFieldPlayers, self.options.columnDefinitionFieldPlayers, self.options.playerLink)); self.drawLineups(self.domNodes.fieldPlayers.$dataLineupsHome, data.homeFieldPlayers, data.homeGoalKeepers); self.drawLineups(self.domNodes.fieldPlayers.$dataLineupsAway, data.awayFieldPlayers, data.awayGoalKeepers); } if(drawGoalKeepers){ self.tables["goalKeepersHome"].setRows(self.getRows(data.homeGoalKeepers, self.options.columnsGoalKeepers, self.options.columnDefinitionGoalKeepers, self.options.playerLink)); self.tables["goalKeepersAway"].setRows(self.getRows(data.awayGoalKeepers, self.options.columnsGoalKeepers, self.options.columnDefinitionGoalKeepers, self.options.playerLink)); } if(drawGoalKeeperChanges){ var goalKeeperChanges=[]; for(i=0; i < data.homeGoalKeeperChanges.length; i++){ data.homeGoalKeeperChanges[i].teamShortname=data.gameData.homeTeamShortname || ""; goalKeeperChanges.push(data.homeGoalKeeperChanges[i]); } for(i=0; i < data.awayGoalKeeperChanges.length; i++){ data.awayGoalKeeperChanges[i].teamShortname=data.gameData.awayTeamShortname || ""; goalKeeperChanges.push(data.awayGoalKeeperChanges[i]); } goalKeeperChanges.sort(function(a, b){ return a["gametime"] - b["gametime"]; }); self.tables.goalKeeperChanges.setRows(self.getRows(goalKeeperChanges, self.options.columnsGoalKeeperChanges, self.options.columnDefinitionGoalKeeperChanges)); } if(drawPlayByPlay){ lastPeriod=null; self.options.lastGameTime=null; self.options.homeTeamId=data.gameData.homeTeamId; self.options.homeTeamBackColor=data.gameData.homeTeamBackColor; self.options.homeTeamForeColor=data.gameData.homeTeamForeColor; self.options.awayTeamId=data.gameData.awayTeamId; self.options.awayTeamBackColor=data.gameData.awayTeamBackColor; self.options.awayTeamForeColor=data.gameData.awayTeamForeColor; self.tables.playByPlay.setRows(self.getRows(data.playByPlay, self.options.columnsPlayByPlay, self.options.columnDefinitionPlayByPlay, null, function(dataRow, tableRows){ if(dataRow["GamePeriod"] && (lastPeriod===null || lastPeriod !== dataRow["GamePeriod"])){ lastPeriod=dataRow["GamePeriod"]; tableRows.push({ "cols": [{ "html": hockeydata["i18n"].translate("Period") + " " + lastPeriod, "colspan": self.options.columnsPlayByPlay.length }], "class": "-hd-los-game-full-report-play-by-play-row-period-change" }); } }, "-hd-los-game-play-by-play-col-")); } if(drawRosters){ self.tables["rosterHome"].setRows(self.getRows(data.homeRoster, self.options.columnsRoster, self.options.columnDefinitionRoster, self.options.playerLink)); self.tables["rosterAway"].setRows(self.getRows(data.awayRoster, self.options.columnsRoster, self.options.columnDefinitionRoster, self.options.playerLink)); } }; this.drawLineups=function($domNode, fieldPlayers, goalKeepers){ $domNode.empty(); var lineupsObj={}; var lineupsArr=[]; var positionIds={ "LF": 1, "C": 2, "RF": 3, "LD": 4, "RD": 5, "G": 6 }; var player, line, lineName, i; for(i=0; i < fieldPlayers.length; i++){ player=fieldPlayers[i]; line=player["lineupLine"]; lineName=hockeydata["i18n"].translate("Line") + " " + line; if(line){ if(!(lineName in lineupsObj)) lineupsObj[lineName]=[]; lineupsObj[lineName].push(player); } } for(i=0; i < goalKeepers.length; i++){ var goalKeeper=goalKeepers[i]; lineName=hockeydata["i18n"].translate("Goalkeepers"); if(!(lineName in lineupsObj)) lineupsObj[lineName]=[]; lineupsObj[lineName].push(goalKeeper); } for(lineName in lineupsObj) if(lineupsObj.hasOwnProperty(lineName)) lineupsArr.push({ "lineName": lineName, "players": lineupsObj[lineName] }); lineupsArr.sort(function(a, b){ if(a.lineName===hockeydata["i18n"].translate("Goalkeepers")) return 1; if(b.lineName===hockeydata["i18n"].translate("Goalkeepers")) return -1; return (a.lineName < b.lineName ? -1 : 1); }); for(i=0; i < lineupsArr.length; i++){ line=lineupsArr[i]; lineName=line.lineName; var players=line.players; var $line=jQuery("<div/>").addClass("-hd-los-game-full-report-lineup").appendTo($domNode); var $headline=jQuery("<div/>").addClass("-hd-los-game-full-report-lineup-headline").appendTo($line); var $players=jQuery("<div/>").addClass("-hd-los-game-full-report-lineup-players").appendTo($line); $headline.html(lineName); players.sort(function(a, b){ return ((a.position in positionIds) ? positionIds[a.position] : 0) - ((b.position in positionIds) ? positionIds[b.position] : 0); }); for(var j=0; j < players.length; j++){ player=players[j]; var uri=hockeydata["util"]["UriComposer"].parseUri(self.options.playerLink, [ player.id, self.options.divisionId ]); var $player=jQuery("<div/>").addClass("-hd-los-game-full-report-lineup-player").appendTo($players); var $playerName=jQuery("<div/>").addClass("-hd-los-game-full-report-lineup-player-name").append(player.playerLastname + " " + player.playerFirstname); jQuery("<div/>").addClass("-hd-los-game-full-report-lineup-player-jersey-no").append(player.playerJerseyNr).appendTo($player); $playerName.appendTo($player); jQuery("<div/>").addClass("-hd-los-game-full-report-lineup-player-position").append(player.position).appendTo($player); if(uri) $player.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(uri)).addClass("-hd-clickable"); if(self.options.showPlayerNationInLineups && player.nation) $playerName.append(" (" + player.nation + ")"); if(self.options.showPlayerNationFlagInLineups && player.nation) $playerName.append(" ").append(hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getNationFlagUri({ "nation": player.nation }))); } } }; this.getRows=function(dataRows, columns, columnDefinitions, rowLink, beforeColumns, cellClassPrefix){ var tableRows=[]; for(var i=0; i < dataRows.length; i++){ var dataRow=dataRows[i]; var uri=(jQuery.isFunction(rowLink) ? rowLink(dataRow) : hockeydata["util"]["UriComposer"].parseUri(rowLink, [ dataRow.id, self.options.divisionId ])); var tableRow={ "cols": [] }; var j; if(beforeColumns) beforeColumns(dataRow, tableRows); if(uri) tableRow.onClick=hockeydata["util"]["LinkComposer"].getLinkClickFunction(uri); for(j=0; j < columns.length; j++){ var columnName=columns[j]; var columnDefinition=(columnName in columnDefinitions) ? columnDefinitions[columnName] : {}; var cellValue=null; var cell={ "class": (cellClassPrefix ? (cellClassPrefix + columnName) : "") }; if(columnName in dataRow){ var dataValue=dataRow[columnName]; if(jQuery.isPlainObject(dataValue)){ cellValue=("value" in dataValue) ? dataValue.value : "&nbsp;"; if("sortValue" in dataValue) cell.sortValue=dataValue.sortValue; if("labels" in dataValue && dataValue["labels"].length) for(var k=0; k < dataValue["labels"].length; k++) cell.class += " -hd-label-" + dataValue["labels"][k]; if("key" in columnDefinition){ var key=columnDefinition["key"]; if(key in dataValue) cellValue=dataValue[key]; } } else cellValue=dataValue; } if("class" in columnDefinition) cell.class += " " + columnDefinition.class; if("format" in columnDefinition && jQuery.isFunction(columnDefinition.format)) cellValue=columnDefinition.format(cellValue); if("fn" in columnDefinition && jQuery.isFunction(columnDefinition.fn)) cellValue=columnDefinition.fn(dataRow, this.options); cell.html=cellValue===null ? "&nbsp;" : cellValue; cell.value=cellValue; tableRow.cols.push(cell); } if("labels" in dataRow && dataRow["labels"].length) for(j=0; j < dataRow["labels"].length; j++) tableRow.class += " -hd-label-" + dataRow["labels"][j]; if("Labels" in dataRow && dataRow["Labels"].length) for(j=0; j < dataRow["Labels"].length; j++) tableRow.class += " -hd-label-" + dataRow["Labels"][j]; tableRows.push(tableRow); } return tableRows; }; this.loadTimeOnIce=function(){ var err=function(){ self.$domNode.find(".-hd-los-game-full-report-time-on-ice-player-is-on-ice").removeClass("-hd-los-game-full-report-time-on-ice-player-is-on-ice"); }; new hockeydata["util"]["Request"]({ "complete": function(){ if(self.gameStatus===1) self.timerTimeOnIce=setTimeout(self.loadTimeOnIce, self.timerIntervalTimeOnIce); }, "data": { "apiKey": self.options.apiKey, "gameId": self.options.gameId }, "error": err, "success": function(e){ if(e["statusId"] > 0 && e.data) self.updateTimeOnIce(e.data); else err(); }, "url": self.options.dataUrlTimeOnIce }); }; this.updateTimeOnIce=function(timeOnIceData){ timeOnIceData=timeOnIceData.split("|"); self.updateTimeOnIceGameTime(timeOnIceData[0]); self.updateTimeOnIceTeam(timeOnIceData[1], "home"); self.updateTimeOnIceTeam(timeOnIceData[2], "away"); self.updateTimeOnIceHighlights("home"); self.updateTimeOnIceHighlights("away"); }; this.updateTimeOnIceGameTime=function(gameTimeData){ if(gameTimeData){ gameTimeData=gameTimeData.split(","); self.domNodes.timeOnIce.$gameTime.html(" | " + gameTimeData[0] + " (" + gameTimeData[1] + ")"); } }; this.updateTimeOnIceTeam=function(teamData, homeOrAway){ if(teamData){ var players=teamData.split(";"); for(var i=0; i < players.length; i++) self.updateTimeOnIcePlayer(players[i], homeOrAway); } }; this.updateTimeOnIcePlayer=function(playerData, homeOrAway){ if(playerData){ playerData=playerData.split(","); var playerId=Number(playerData[0]); var playerIsOnIce=Number(playerData[1]); var playerIceTime=Number(playerData[2]); var playerShifts=Number(playerData[3]); var $playerName=self.$domNode.find("#-hd-los-game-full-report-time-on-ice-player-name-" + playerId); var $playerJerseyNr=self.$domNode.find("#-hd-los-game-full-report-time-on-ice-player-jersey-nr-" + playerId); var $playerPosition=self.$domNode.find("#-hd-los-game-full-report-time-on-ice-player-position-" + playerId); var $playerIceTime=self.$domNode.find("#-hd-los-game-full-report-time-on-ice-player-ice-time-" + playerId); var $playerShifts=self.$domNode.find("#-hd-los-game-full-report-time-on-ice-player-shifts-" + playerId); $playerIceTime.html(hockeydata["util"].formatTime(playerIceTime)); $playerShifts.html(playerShifts); self.playersOnIce[homeOrAway][playerId]=playerIsOnIce; if(playerIsOnIce){ $playerName.addClass("-hd-los-game-full-report-time-on-ice-player-is-on-ice"); $playerJerseyNr.addClass("-hd-los-game-full-report-time-on-ice-player-is-on-ice"); $playerPosition.addClass("-hd-los-game-full-report-time-on-ice-player-is-on-ice"); $playerIceTime.addClass("-hd-los-game-full-report-time-on-ice-player-is-on-ice"); $playerShifts.addClass("-hd-los-game-full-report-time-on-ice-player-is-on-ice"); } else { $playerName.removeClass("-hd-los-game-full-report-time-on-ice-player-is-on-ice"); $playerJerseyNr.removeClass("-hd-los-game-full-report-time-on-ice-player-is-on-ice"); $playerPosition.removeClass("-hd-los-game-full-report-time-on-ice-player-is-on-ice"); $playerIceTime.removeClass("-hd-los-game-full-report-time-on-ice-player-is-on-ice"); $playerShifts.removeClass("-hd-los-game-full-report-time-on-ice-player-is-on-ice"); } } }; this.updateTimeOnIceHighlights=function(homeOrAway){ self.domNodes.timeOnIce.highlights["$" + homeOrAway].find(".-hd-los-game-full-report-time-on-ice-highlights-player").each(function(){ if(!self.playersOnIce[homeOrAway][Number(jQuery(this).attr("data-id"))]) jQuery(this).remove(); }); for(var playerId in self.playersOnIce[homeOrAway]) if(self.playersOnIce[homeOrAway].hasOwnProperty(playerId)) if(self.playersOnIce[homeOrAway][playerId] && !self.domNodes.timeOnIce.highlights["$" + homeOrAway].find("#-hd-los-game-full-report-time-on-ice-highlights-player-" + playerId).size()) self.addTimeOnIceHighlightPlayer(playerId, homeOrAway); }; this.addTimeOnIceHighlightPlayer=function(playerId, homeOrAway){ var player=self.players[playerId]; if(player){ var playerPortraitImage=hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getPlayerPortraitUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (self.options._divisionId || self.options.divisionId), "playerId": playerId }), { "onerror": function(){ this.src=hockeydata["util"]["UriComposer"].getGhostPlayerPortraitUri({ "sport": self.options.sport }); } }); var $playerContainer=jQuery("<div/>").addClass("-hd-los-game-full-report-time-on-ice-highlights-player").attr("id", "-hd-los-game-full-report-time-on-ice-highlights-player-" + playerId).attr("data-id", playerId); var $playerPortrait=jQuery("<div/>").addClass("-hd-los-game-full-report-time-on-ice-highlights-player-portrait").appendTo($playerContainer); var $playerName=jQuery("<div/>").addClass("-hd-los-game-full-report-time-on-ice-highlights-player-name").appendTo($playerContainer); var $playerStats=jQuery("<div/>").addClass("-hd-los-game-full-report-time-on-ice-highlights-player-stats").appendTo($playerContainer); $playerContainer.appendTo(self.domNodes.timeOnIce.highlights["$" + homeOrAway]); $playerPortrait.append(playerPortraitImage); $playerName.html(player.playerLastname); $playerStats.html(hockeydata["util"].sprintf("%s %s | %s %s | %s %s", (player.goals || 0), hockeydata["i18n"].translate("G", "Goals"), (player.assists || 0), hockeydata["i18n"].translate("A", "Assists"), (player.shotsOnGoal || 0), hockeydata["i18n"].translate("SoG", "Shots on Goal"))); } }; this.initialize(); } hockeydata.extend(FullReport, hockeydata["los"]["Game"], "FullReport"); })()); ((function(){ function Info(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "apiKey": "VOID", "autoReload": false, "dataUrl": null, "divisionId": null, "divisionIdUrlParameter": "divisionId", "error": function(e){ self.error(e); }, "gameId": null, "gameIdUrlParameter": "gameId", "league": null, "paint": function(e){ self.paint(e); }, "paintComplete": null, "requestData": {}, "sport": null, "teamLink": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.options.requestData.apiKey=this.options.apiKey; this.$domNode=this.options.$domNode; this.domNodes={}; this.dataSubscription=null; this.firstPaint=true; this.data=null; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata["util"].getLeague(this.options.sport, "hockeydata.los.Game.Info"); if(!this.options.divisionId && this.options.divisionIdUrlParameter) this.options.divisionId=hockeydata["util"].getParameter(this.options.divisionIdUrlParameter); if(!this.options.gameId && this.options.gameIdUrlParameter) this.options.gameId=hockeydata["util"].getParameter(this.options.gameIdUrlParameter); this.options.requestData.gameGuid=this.options.gameId; if(!this.options.dataUrl) this.options.dataUrl=hockeydata["util"]["UriComposer"].getDataUri("getGameInfo", this.options); this.$domNode.addClass("-hd-los -hd-los-game-info"); this.dataSubscription=hockeydata["util"]["Data"].subscribe({ "begin": function(){ self.$domNode.addClass("-hd-loading"); }, "complete": function(){ self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data){ self.options._divisionId=e.data.divisionId; self.data=e.data || {}; self.options.paint(e.data); self.options.paintComplete && self.options.paintComplete["call"](self); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata["util"]["Data"].error(e, this.$domNode); }; this.paint=function(data){ data=data || {}; var scoreDivider=""; if(self.firstPaint){ self.firstPaint=false; self.domNodes.$gameState=jQuery("<div/>").addClass("-hd-los-game-info-game-state").appendTo(self.$domNode); self.domNodes.$gameStateExtended=jQuery("<div/>").addClass("-hd-los-game-info-game-state-extended").appendTo(self.$domNode); self.domNodes.$awayTeam=jQuery("<div/>").addClass("-hd-los-game-info-team -hd-los-game-info-team-away").appendTo(self.$domNode); self.domNodes.$awayTeamLogo=jQuery("<div/>").addClass("-hd-los-game-info-team-logo -hd-los-game-info-team-logo-away").appendTo(self.domNodes.$awayTeam); self.domNodes.$awayTeamName=jQuery("<div/>").addClass("-hd-los-game-info-team-name -hd-los-game-info-team-name-away").appendTo(self.domNodes.$awayTeam); self.domNodes.$homeTeam=jQuery("<div/>").addClass("-hd-los-game-info-team -hd-los-game-info-team-home").appendTo(self.$domNode); self.domNodes.$homeTeamLogo=jQuery("<div/>").addClass("-hd-los-game-info-team-logo -hd-los-game-info-team-logo-home").appendTo(self.domNodes.$homeTeam); self.domNodes.$homeTeamName=jQuery("<div/>").addClass("-hd-los-game-info-team-name -hd-los-game-info-team-name-home").appendTo(self.domNodes.$homeTeam); self.domNodes.$score=jQuery("<div/>").addClass("-hd-los-game-info-score").appendTo(self.$domNode); self.domNodes.$scoreHome=jQuery("<div/>").addClass("-hd-los-game-info-score-home").appendTo(self.domNodes.$score); self.domNodes.$scoreDivider=jQuery("<div/>").addClass("-hd-los-game-info-score-divider").appendTo(self.domNodes.$score); self.domNodes.$scoreAway=jQuery("<div/>").addClass("-hd-los-game-info-score-away").appendTo(self.domNodes.$score); self.domNodes.$gameStreams=jQuery("<div/>").addClass("-hd-los-game-info-streams").appendTo(self.$domNode).hide(); self.domNodes.$gameDate=jQuery("<div/>").addClass("-hd-los-game-info-game-date").appendTo(self.$domNode); var uriHomeTeam=hockeydata["util"]["UriComposer"].parseUri(self.options.teamLink, [ data.homeTeamId, self.options.divisionId ]); var uriAwayTeam=hockeydata["util"]["UriComposer"].parseUri(self.options.teamLink, [ data.awayTeamId, self.options.divisionId ]); if(uriHomeTeam){ self.domNodes.$homeTeamLogo.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(uriHomeTeam)).addClass("-hd-clickable"); self.domNodes.$homeTeamName.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(uriHomeTeam)).addClass("-hd-clickable"); } if(uriAwayTeam){ self.domNodes.$awayTeamLogo.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(uriAwayTeam)).addClass("-hd-clickable"); self.domNodes.$awayTeamName.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(uriAwayTeam)).addClass("-hd-clickable"); } self.domNodes.$homeTeamName.html(data.homeTeamLongname || ""); self.domNodes.$awayTeamName.html(data.awayTeamLongname || ""); self.domNodes.$homeTeamLogo.html(hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (self.options._divisionId || self.options.divisionId), "teamId": data.homeTeamId }))); self.domNodes.$awayTeamLogo.html(hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (self.options._divisionId || self.options.divisionId), "teamId": data.awayTeamId }))); self.domNodes.$gameDate.html((jQuery.isPlainObject(data.scheduledDate) ? (data.scheduledDate["longValue"] || data.scheduledDate["formattedLong"]) : "") + (data.scheduledTime ? (" | " + data.scheduledTime) : "")); if(data.streams && data.streams.length){ self.domNodes.$gameStreams.show(); for(var i=0; i < data.streams.length; i++){ var gameStream=hockeydata.util.getGameStreamButton(data.streams[i]); gameStream && self.domNodes.$gameStreams.append(gameStream); } } } if(data["isShootOut"]) scoreDivider="<span class='-hd-los-game-info-shootout'>" + hockeydata["i18n"].translate("SO", "Shootout") + "</span>"; else if(data["isOvertime"]) scoreDivider="<span class='-hd-los-game-info-overtime'>" + hockeydata["i18n"].translate("OT", "Overtime") + "</span>"; if(data["gameStatus"]===0) self.domNodes.$gameState.html(hockeydata["i18n"].translate("SCHEDULED")); else if(data["gameStatus"]===1) self.domNodes.$gameState.html(hockeydata["i18n"].translate("LIVE")); else if(data["gameStatus"] >= 2) self.domNodes.$gameState.html(hockeydata["i18n"].translate("FINAL")); data["gameExtendedStatus"] ? self.domNodes.$gameStateExtended.show().html("<span class='-hd-los-game-info-game-state-extended-label -hd-los-game-info-game-state-extended-label-" + data["gameExtendedStatus"] + "'>" + hockeydata["los"]["Configuration"].getExtendedStateLabel(data["gameExtendedStatus"]) + "</span>" + (data["gameExtendedStatusInfoText"] ? ("<span class='-hd-los-game-info-game-state-extended-info-text'>(" + data["gameExtendedStatusInfoText"] + ")</span>") : "")) : self.domNodes.$gameStateExtended.hide(); self.$domNode.removeClass("-hd-los-game-info-status-0 -hd-los-game-info-status-1 -hd-los-game-info-status-2 -hd-los-game-info-status-3 -hd-los-game-info-status-4"); self.$domNode.addClass("-hd-los-game-info-status-" + data["gameStatus"]); self.domNodes.$scoreHome.html(("homeTeamScore" in data) ? data.homeTeamScore : "-"); self.domNodes.$scoreDivider.html(scoreDivider); self.domNodes.$scoreAway.html(("awayTeamScore" in data) ? data.awayTeamScore : "-"); }; this.initialize(); } hockeydata.extend(Info, hockeydata["los"]["Game"], "Info"); })()); ((function(){ function LiveBox(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "apiKey": "VOID", "autoReload": false, "columnDefinitionGoals": null, "columnDefinitionPenalties": null, "columnDefinitionPlayByPlay": null, "columnDefinitionScores": null, "columnsGoals": null, "columnsPenalties": null, "columnsPlayByPlay": null, "columnsScores": null, "columnSetGoals": "default", "columnSetPenalties": "default", "columnSetPlayByPlay": "default", "columnSetScores": "default", "dataUrl": null, "divisionId": null, "error": function(e){ self.error(e); }, "gameId": null, "gameLink": null, "league": null, "paint": function(e){ self.paint(e); }, "requestData": {}, "rowDefinitionTeamStats": null, "rowsTeamStats": null, "rowSetTeamStats": "default", "showDivisionLongName": false, "showDivisionShortName": false, "showGameDocumentLinks": false, "showGameState": false, "sport": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.options.requestData.apiKey=this.options.apiKey; this.options.requestData.gameId=this.options.gameId; this.$domNode=this.options.$domNode; this.domNodes={}; this.tables={}; this.firstPaint=true; this.dataSubscription=null; this.tabs=null; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata["util"].getLeague(this.options.sport); if(!this.options.dataUrl) this.options.dataUrl=hockeydata["util"]["UriComposer"].getDataUri("getGameReport", this.options); this.$domNode.addClass("-hd-los -hd-los-game-live-box"); this.dataSubscription=hockeydata["util"]["Data"].subscribe({ "begin": function(){ self.$domNode.addClass("-hd-loading"); }, "complete": function(){ self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data){ self.options._divisionId=e.data.gameData.divisionId; self.options.paint(e.data); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata["util"]["Data"].error(e, this.$domNode); }; this.paint=function(data){ var i, lastPeriod; var drawTicker=false; var drawScores=false; var drawPlayByPlay=false; var drawGoals=false; var drawPenalties=false; var gameFacts=[]; var tickerActions=[]; data=data || {}; data.gameData=data.gameData || {}; if(("homeGoals" in data) || ("awayGoals" in data)){ data.homeGoals=data.homeGoals || []; data.awayGoals=data.awayGoals || []; drawTicker=true; drawGoals=true; } if(("homePenalties" in data) || ("awayPenalties" in data)){ data.homePenalties=data.homePenalties || []; data.awayPenalties=data.awayPenalties || []; drawTicker=true; drawPenalties=true; } if("scores" in data){ data.scores=data.scores || []; drawScores=true; } if("playByPlay" in data){ data.playByPlay=data.playByPlay || []; drawPlayByPlay=true; } if(jQuery.isPlainObject(data.gameData.scheduledDate) && ("formattedShort" in data.gameData.scheduledDate)) gameFacts.push({ "key": "scheduledDate", "value": data.gameData.scheduledDate["formattedShort"], "label": hockeydata["i18n"].translate("Scheduled Date") }); if("scheduledTime" in data.gameData) gameFacts.push({ "key": "scheduledTime", "value": data.gameData.scheduledTime, "label": hockeydata["i18n"].translate("Scheduled Time") }); if(jQuery.isPlainObject(data.gameData.location) && ("shortname" in data.gameData.location)) gameFacts.push({ "key": "location", "value": data.gameData.location["shortname"], "label": hockeydata["i18n"].translate("Location") }); if("attendance" in data.gameData) gameFacts.push({ "key": "attendance", "value": data.gameData["attendance"], "label": hockeydata["i18n"].translate("Attendance") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("referee" in data.gameData["gameOfficials"])) gameFacts.push({ "key": "referee", "value": data.gameData["gameOfficials"]["referee"], "label": hockeydata["i18n"].translate("Referee") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("ref1" in data.gameData["gameOfficials"]) && jQuery.isPlainObject(data.gameData["gameOfficials"]["ref1"])) gameFacts.push({ "key": "referee1", "value": data.gameData["gameOfficials"]["ref1"]["lastname"] + " " + data.gameData["gameOfficials"]["ref1"]["firstname"], "label": hockeydata["i18n"].translate("Referee 1") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("ref2" in data.gameData["gameOfficials"]) && jQuery.isPlainObject(data.gameData["gameOfficials"]["ref2"])) gameFacts.push({ "key": "referee2", "value": data.gameData["gameOfficials"]["ref2"]["lastname"] + " " + data.gameData["gameOfficials"]["ref2"]["firstname"], "label": hockeydata["i18n"].translate("Referee 2") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("umpire" in data.gameData["gameOfficials"])) gameFacts.push({ "key": "umpire", "value": data.gameData["gameOfficials"]["umpire"], "label": hockeydata["i18n"].translate("Umpire") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("linesman" in data.gameData["gameOfficials"])) gameFacts.push({ "key": "linesman", "value": data.gameData["gameOfficials"]["linesman"], "label": hockeydata["i18n"].translate("Linesman") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("linesman1" in data.gameData["gameOfficials"]) && jQuery.isPlainObject(data.gameData["gameOfficials"]["linesman1"])) gameFacts.push({ "key": "linesman1", "value": data.gameData["gameOfficials"]["linesman1"]["lastname"] + " " + data.gameData["gameOfficials"]["linesman1"]["firstname"], "label": hockeydata["i18n"].translate("Linesman 1") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("linesman2" in data.gameData["gameOfficials"]) && jQuery.isPlainObject(data.gameData["gameOfficials"]["linesman2"])) gameFacts.push({ "key": "linesman2", "value": data.gameData["gameOfficials"]["linesman2"]["lastname"] + " " + data.gameData["gameOfficials"]["linesman2"]["firstname"], "label": hockeydata["i18n"].translate("Linesman 2") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("lineJudge" in data.gameData["gameOfficials"])) gameFacts.push({ "key": "lineJudge", "value": data.gameData["gameOfficials"]["lineJudge"], "label": hockeydata["i18n"].translate("Line Judge") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("backJudge" in data.gameData["gameOfficials"])) gameFacts.push({ "key": "backJudge", "value": data.gameData["gameOfficials"]["backJudge"], "label": hockeydata["i18n"].translate("Back Judge") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("fieldJudge" in data.gameData["gameOfficials"])) gameFacts.push({ "key": "fieldJudge", "value": data.gameData["gameOfficials"]["fieldJudge"], "label": hockeydata["i18n"].translate("Field Judge") }); if(jQuery.isPlainObject(data.gameData["gameOfficials"]) && ("sideJudge" in data.gameData["gameOfficials"])) gameFacts.push({ "key": "sideJudge", "value": data.gameData["gameOfficials"]["sideJudge"], "label": hockeydata["i18n"].translate("Side Judge") }); if(jQuery.isPlainObject(data.gameData["teamOfficials"]) && ("headcoachhome" in data.gameData["teamOfficials"]) && jQuery.isPlainObject(data.gameData["teamOfficials"]["headcoachhome"])) gameFacts.push({ "key": "headcoachhome", "value": data.gameData["teamOfficials"]["headcoachhome"]["lastname"] + " " + data.gameData["teamOfficials"]["headcoachhome"]["firstname"], "label": hockeydata["i18n"].translate("Head Coach") + " " + (data.gameData.homeTeamShortname || hockeydata["i18n"].translate("Heim")) }); if(jQuery.isPlainObject(data.gameData["teamOfficials"]) && ("headcoachaway" in data.gameData["teamOfficials"]) && jQuery.isPlainObject(data.gameData["teamOfficials"]["headcoachaway"])) gameFacts.push({ "key": "headcoachaway", "value": data.gameData["teamOfficials"]["headcoachaway"]["lastname"] + " " + data.gameData["teamOfficials"]["headcoachaway"]["firstname"], "label": hockeydata["i18n"].translate("Head Coach") + " " + (data.gameData.awayTeamShortname || hockeydata["i18n"].translate("Gast")) }); if(jQuery.isPlainObject(data.gameData["weatherInfo"])) gameFacts.push({ "key": "weatherInfo", "value": Math.floor(data.gameData["weatherInfo"]["temperatureCelsius"]) + "° C | " + hockeydata["los"]["Configuration"].getWindDirection(data.gameData["weatherInfo"]["windDirection"]) + " " + Math.floor(data.gameData["weatherInfo"]["windSpeed"]) + " km/h", "label": hockeydata["i18n"].translate("Weather Conditions") }); if(self.firstPaint){ self.firstPaint=false; var uri=hockeydata["util"]["UriComposer"].parseUri(self.options.gameLink, [ data.gameData.id, self.options.divisionId ]); self.domNodes.gameInfo={}; self.domNodes.gameInfo.$gameInfo=jQuery("<div/>").addClass("-hd-los-game-live-box-game-info").appendTo(self.$domNode); if(self.options.showGameState) self.domNodes.gameInfo.$gameState=jQuery("<div/>").addClass("-hd-los-game-live-box-game-state").appendTo(self.domNodes.gameInfo.$gameInfo); self.domNodes.gameInfo.$awayTeam=jQuery("<div/>").addClass("-hd-los-game-live-box-team -hd-los-game-live-box-team-away").appendTo(self.domNodes.gameInfo.$gameInfo); self.domNodes.gameInfo.$awayTeamName=jQuery("<div/>").addClass("-hd-los-game-live-box-team-name -hd-los-game-live-box-team-name-away").appendTo(self.domNodes.gameInfo.$awayTeam); self.domNodes.gameInfo.$awayTeamLogo=jQuery("<div/>").addClass("-hd-los-game-live-box-team-logo -hd-los-game-live-box-team-logo-away").appendTo(self.domNodes.gameInfo.$awayTeam); self.domNodes.gameInfo.$homeTeam=jQuery("<div/>").addClass("-hd-los-game-live-box-team -hd-los-game-live-box-team-home").appendTo(self.domNodes.gameInfo.$gameInfo); self.domNodes.gameInfo.$homeTeamLogo=jQuery("<div/>").addClass("-hd-los-game-live-box-team-logo -hd-los-game-live-box-team-logo-home").appendTo(self.domNodes.gameInfo.$homeTeam); self.domNodes.gameInfo.$homeTeamName=jQuery("<div/>").addClass("-hd-los-game-live-box-team-name -hd-los-game-live-box-team-name-home").appendTo(self.domNodes.gameInfo.$homeTeam); self.domNodes.gameInfo.$score=jQuery("<div/>").addClass("-hd-los-game-live-box-score").appendTo(self.domNodes.gameInfo.$gameInfo); self.domNodes.gameInfo.$scoreHome=jQuery("<div/>").addClass("-hd-los-game-live-box-score-home").appendTo(self.domNodes.gameInfo.$score); self.domNodes.gameInfo.$scoreDivider=jQuery("<div/>").addClass("-hd-los-game-live-box-score-divider").appendTo(self.domNodes.gameInfo.$score); self.domNodes.gameInfo.$scoreAway=jQuery("<div/>").addClass("-hd-los-game-live-box-score-away").appendTo(self.domNodes.gameInfo.$score); if(uri) self.domNodes.gameInfo.$gameInfo.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(uri)).addClass("-hd-clickable"); if(self.options.showDivisionShortName) self.domNodes.gameInfo.$divisionShortName=jQuery("<div/>").addClass("-hd-los-game-live-box-division-name -hd-los-game-live-box-division-short-name").appendTo(self.domNodes.gameInfo.$gameInfo); if(self.options.showDivisionLongName) self.domNodes.gameInfo.$divisionLongName=jQuery("<div/>").addClass("-hd-los-game-live-box-division-name -hd-los-game-live-box-division-long-name").appendTo(self.domNodes.gameInfo.$gameInfo); self.domNodes.periodStats={}; self.domNodes.periodStats.$periodStats=jQuery("<div/>").addClass("-hd-los-game-live-box-period-stats").appendTo(self.$domNode); if(self.options.showGameDocumentLinks){ self.domNodes.gameDocumentLinks={}; self.domNodes.gameDocumentLinks.$container=jQuery("<div/>").addClass("-hd-los-game-live-box-document-links").appendTo(self.$domNode); } if(drawTicker) self.domNodes.$ticker=jQuery("<div/>").addClass("-hd-los-game-live-box-ticker").appendTo(self.$domNode); if(drawScores){ self.domNodes.$scores=jQuery("<div/>").addClass("-hd-los-game-live-box-scores").appendTo(self.$domNode); if(!self.options.columnDefinitionScores) self.options.columnDefinitionScores=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": self.options.sport, "league": self.options.league, "type": "gameLiveBoxScores" }); if(!self.options.columnsScores) self.options.columnsScores=hockeydata["los"]["Configuration"].getTableColumns({ "sport": self.options.sport, "league": self.options.league, "columnSet": self.options.columnSetScores, "type": "gameLiveBoxScores" }); else if(hockeydata["util"].isString(self.options.columnsScores)) self.options.columnsScores=self.options.columnsScores.split(","); self.initializeTable("scores", self.options.columnsScores, self.options.columnDefinitionScores, self.domNodes.$scores); } if(drawPlayByPlay){ self.domNodes.$playByPlay=jQuery("<div/>").addClass("-hd-los-game-live-box-play-by-play").appendTo(self.$domNode); if(!self.options.columnDefinitionPlayByPlay) self.options.columnDefinitionPlayByPlay=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": self.options.sport, "league": self.options.league, "type": "gameLiveBoxPlayByPlay" }); if(!self.options.columnsPlayByPlay) self.options.columnsPlayByPlay=hockeydata["los"]["Configuration"].getTableColumns({ "sport": self.options.sport, "league": self.options.league, "columnSet": self.options.columnSetPlayByPlay, "type": "gameLiveBoxPlayByPlay" }); else if(hockeydata["util"].isString(self.options.columnsPlayByPlay)) self.options.columnsPlayByPlay=self.options.columnsPlayByPlay.split(","); self.initializeTable("playByPlay", self.options.columnsPlayByPlay, self.options.columnDefinitionPlayByPlay, self.domNodes.$playByPlay); } self.domNodes.$teamStats=jQuery("<div/>").addClass("-hd-los-game-live-box-team-stats").appendTo(self.$domNode); if(!self.options.rowDefinitionTeamStats) self.options.rowDefinitionTeamStats=hockeydata["los"]["Configuration"].getTableRowDefinition({ "sport": self.options.sport, "league": self.options.league, "type": "gameLiveBoxTeamStats" }); if(!self.options.rowsTeamStats) self.options.rowsTeamStats=hockeydata["los"]["Configuration"].getTableRows({ "sport": self.options.sport, "league": self.options.league, "rowSet": self.options.rowSetTeamStats, "type": "gameLiveBoxTeamStats" }); else if(hockeydata["util"].isString(self.options.rowsTeamStats)) self.options.rowsTeamStats=self.options.rowsTeamStats.split(","); self.tables.teamStats=new hockeydata["util"]["IntelliTable"](jQuery.extend({}, self.options, { "$domNode": self.domNodes.$teamStats, "headers": [ { "html": "&nbsp;" }, { "html": data.gameData.homeTeamShortname || hockeydata["i18n"].translate("Home") }, { "html": data.gameData.awayTeamShortname || hockeydata["i18n"].translate("Away") } ], "rows": [] })); if(drawGoals){ self.domNodes.$goals=jQuery("<div/>").addClass("-hd-los-game-live-box-goals").appendTo(self.$domNode); if(!self.options.columnDefinitionGoals) self.options.columnDefinitionGoals=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": self.options.sport, "league": self.options.league, "type": "gameLiveBoxGoals" }); if(!self.options.columnsGoals) self.options.columnsGoals=hockeydata["los"]["Configuration"].getTableColumns({ "sport": self.options.sport, "league": self.options.league, "columnSet": self.options.columnSetGoals, "type": "gameLiveBoxGoals" }); else if(hockeydata["util"].isString(self.options.columnsGoals)) self.options.columnsGoals=self.options.columnsGoals.split(","); self.initializeTable("goals", self.options.columnsGoals, self.options.columnDefinitionGoals, self.domNodes.$goals); } if(drawPenalties){ self.domNodes.$penalties=jQuery("<div/>").addClass("-hd-los-game-live-box-penalties").appendTo(self.$domNode); if(!self.options.columnDefinitionPenalties) self.options.columnDefinitionPenalties=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": self.options.sport, "league": self.options.league, "type": "gameLiveBoxPenalties" }); if(!self.options.columnsPenalties) self.options.columnsPenalties=hockeydata["los"]["Configuration"].getTableColumns({ "sport": self.options.sport, "league": self.options.league, "columnSet": self.options.columnSetPenalties, "type": "gameLiveBoxPenalties" }); else if(hockeydata["util"].isString(self.options.columnsPenalties)) self.options.columnsPenalties=self.options.columnsPenalties.split(","); self.initializeTable("penalties", self.options.columnsPenalties, self.options.columnDefinitionPenalties, self.domNodes.$penalties); } if(gameFacts.length){ self.domNodes.gameFacts={}; self.domNodes.gameFacts.$gameFacts=jQuery("<div/>").addClass("-hd-los-game-live-box-game-facts").appendTo(self.$domNode); for(i=0; i < gameFacts.length; i++) self.domNodes.gameFacts[gameFacts[i].key]=jQuery("<div/>").appendTo(jQuery("<div/>").addClass("-hd-los-game-live-box-game-fact-value").appendTo(jQuery("<div/>").addClass("-hd-los-game-live-box-game-fact-row -hd-los-game-live-box-game-fact-row-" + gameFacts[i].key).appendTo(self.domNodes.gameFacts.$gameFacts).append(jQuery("<div/>").addClass("-hd-los-game-live-box-game-fact-label").append(jQuery("<div/>").append(gameFacts[i].label))))); } var tabs=[]; if(drawTicker) tabs.push({ "button": { "label": hockeydata["i18n"].translate("Ticker") }, "content": self.domNodes.$ticker }); if(drawScores) tabs.push({ "button": { "label": hockeydata["i18n"].translate("Scores") }, "content": self.domNodes.$scores }); if(drawPlayByPlay) tabs.push({ "button": { "label": hockeydata["i18n"].translate("Play by Play") }, "content": self.domNodes.$playByPlay }); tabs.push({ "button": { "label": hockeydata["i18n"].translate("Stats") }, "content": self.domNodes.$teamStats }); if(drawGoals) tabs.push({ "button": { "label": hockeydata["i18n"].translate("Goals") }, "content": self.domNodes.$goals }); if(drawPenalties) tabs.push({ "button": { "label": hockeydata["i18n"].translate("Penalties") }, "content": self.domNodes.$penalties }); tabs.push({ "button": { "label": hockeydata["i18n"].translate("Info") }, "content": self.domNodes.gameFacts.$gameFacts }); self.domNodes.$tabs=jQuery("<div/>").addClass("-hd-los-game-live-box-tabs").appendTo(self.$domNode); self.tabs=new hockeydata["util"]["Tabs"](jQuery.extend({}, self.options, { "$domNode": self.domNodes.$tabs, "tabs": tabs })); } self.$domNode.removeClass("-hd-los-game-live-box-status-0 -hd-los-game-live-box-status-1 -hd-los-game-live-box-status-2 -hd-los-game-live-box-status-3 -hd-los-game-live-box-status-4"); self.$domNode.addClass("-hd-los-game-live-box-status-" + data.gameData.gameStatus); var scoreDivider=""; if(data.gameData["isShootOut"]) scoreDivider="<span class='-hd-los-game-live-box-shootout'>" + hockeydata["i18n"].translate("SO", "Shootout") + "</span>"; else if(data.gameData["isOvertime"]) scoreDivider="<span class='-hd-los-game-live-box-overtime'>" + hockeydata["i18n"].translate("OT", "Overtime") + "</span>"; self.options.showDivisionShortName && self.domNodes.gameInfo.$divisionShortName.html(data.gameData["divisionShortname"]); self.options.showDivisionLongName && self.domNodes.gameInfo.$divisionLongName.html(data.gameData["divisionLongname"]); if(self.options.showGameState){ if(0===data.gameData.gameStatus) self.domNodes.gameInfo.$gameState.html(hockeydata["i18n"].translate("SCHEDULED")); else if(1===data.gameData.gameStatus){ if(hockeydata["util"].isArray(data.gameData["liveTimePeriodBar"]) && data.gameData["liveTimePeriodBar"].length){ self.domNodes.gameInfo.$gameState.empty(); var $liveTimeTableRow=jQuery("<tr/>").appendTo(jQuery("<tbody/>").appendTo(jQuery("<table/>").appendTo(jQuery("<div/>").addClass("-hd-los-game-live-box-period-bar").appendTo(self.domNodes.gameInfo.$gameState)))); for(i=0; i < data.gameData["liveTimePeriodBar"].length; i++){ var bar=data.gameData["liveTimePeriodBar"][i]; var $bar=jQuery("<td/>").appendTo($liveTimeTableRow); var $fill=jQuery("<div/>").addClass("-hd-los-game-live-box-period-bar-fill").appendTo($bar); if(("longName" in bar) && bar["longName"]) $bar.attr("title", bar["longName"]); if(("shortName" in bar) && bar["shortName"]) jQuery("<div/>").addClass("-hd-los-game-live-box-period-bar-label").html(bar["shortName"]).appendTo($bar); if(bar["isActive"]) $bar.addClass("-hd-los-game-live-box-period-bar-active"); $bar.css({"width": bar.maxLength + "%"}); $fill.css({"width": bar.progress + "%"}); } } else self.domNodes.gameInfo.$gameState.html(hockeydata["i18n"].translate("LIVE")); } else if(data.gameData.gameStatus >= 2) self.domNodes.gameInfo.$gameState.html(hockeydata["i18n"].translate("FINAL")); } self.domNodes.gameInfo.$homeTeamLogo.html(hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (self.options._divisionId || self.options.divisionId), "teamId": data.gameData.homeTeamId }))); self.domNodes.gameInfo.$homeTeamName.html(data.gameData.homeTeamShortname || ""); self.domNodes.gameInfo.$awayTeamLogo.html(hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (self.options._divisionId || self.options.divisionId), "teamId": data.gameData.awayTeamId }))); self.domNodes.gameInfo.$awayTeamName.html(data.gameData.awayTeamShortname || ""); self.domNodes.gameInfo.$scoreHome.html(("homeTeamScore" in data.gameData) ? data.gameData.homeTeamScore : "-"); self.domNodes.gameInfo.$scoreDivider.html(scoreDivider); self.domNodes.gameInfo.$scoreAway.html(("awayTeamScore" in data.gameData) ? data.gameData.awayTeamScore : "-"); if(hockeydata["util"].isArray(data.gameData.periodStats) && data.gameData.periodStats.length){ self.domNodes.periodStats.$periodStats.empty(); var $periodStatsHeader=jQuery("<div/>").addClass("-hd-los-game-live-box-period-stats-header").appendTo(self.domNodes.periodStats.$periodStats); var $periodStatsScore=jQuery("<div/>").addClass("-hd-los-game-live-box-period-stats-score").appendTo(self.domNodes.periodStats.$periodStats); var $periodStatsShotsOnGoal=jQuery("<div/>").addClass("-hd-los-game-live-box-period-stats-additional").appendTo(self.domNodes.periodStats.$periodStats); jQuery("<div/>").html("&nbsp;").appendTo($periodStatsHeader); jQuery("<div/>").html(hockeydata["i18n"].translate("Score")).appendTo($periodStatsScore); jQuery("<div/>").html(hockeydata["i18n"].translate("SOG", "Shots on Goal")).appendTo($periodStatsShotsOnGoal); for(i=0; i < data.gameData.periodStats.length; i++){ var periodStats=data.gameData.periodStats[i]; jQuery("<div/>").html(("period" in periodStats) ? periodStats["period"] : "").appendTo($periodStatsHeader); jQuery("<div/>").html((("homeScore" in periodStats) ? periodStats["homeScore"] : "-") + " : " + (("awayScore" in periodStats) ? periodStats["awayScore"] : "-")).appendTo($periodStatsScore); jQuery("<div/>").html((("homeShotsOnGoal" in periodStats) ? periodStats["homeShotsOnGoal"] : "-") + " : " + (("awayShotsOnGoal" in periodStats) ? periodStats["awayShotsOnGoal"] : "-")).appendTo($periodStatsShotsOnGoal); } } if(self.options.showGameDocumentLinks){ self.domNodes.gameDocumentLinks.$container.empty(); if(0===data.gameData.gameStatus){ jQuery("<a/>") .appendTo(self.domNodes.gameDocumentLinks.$container) .attr("href", hockeydata["util"]["UriComposer"].getGameDocumentUrl("eligiblePlayers", { "id": self.options.gameId }, self.options)) .attr("target", "_blank") .attr("title", hockeydata["i18n"].translate("Eligible Players")) .addClass("-hd-game-document-link -hd-game-document-link-eligible-players") .html(hockeydata["i18n"].translate("Eligible Players")); } else { jQuery("<a/>") .appendTo(self.domNodes.gameDocumentLinks.$container) .attr("href", hockeydata["util"]["UriComposer"].getGameDocumentUrl("officialRoster", { "id": self.options.gameId }, self.options)) .attr("target", "_blank") .attr("title", hockeydata["i18n"].translate("Official Roster")) .addClass("-hd-game-document-link -hd-game-document-link-official-roster") .html(hockeydata["i18n"].translate("Official Roster")); jQuery("<a/>") .appendTo(self.domNodes.gameDocumentLinks.$container) .attr("href", hockeydata["util"]["UriComposer"].getGameDocumentUrl("gameReport", { "id": self.options.gameId }, self.options)) .attr("target", "_blank") .attr("title", hockeydata["i18n"].translate("Game Report")) .addClass("-hd-game-document-link -hd-game-document-link-game-report") .html(hockeydata["i18n"].translate("Game Report")); } } if(drawScores){ lastPeriod=null; self.tables.scores.setRows(self.getRows(data.scores, self.options.columnsScores, self.options.columnDefinitionScores, null, function(dataRow, tableRows){ if(dataRow["gamePeriod"] && (lastPeriod===null || lastPeriod !== dataRow["gamePeriod"])){ lastPeriod=dataRow["gamePeriod"]; tableRows.push({ "cols": [{ "html": hockeydata["i18n"].translate("Period") + " " + lastPeriod, "colspan": self.options.columnsScores.length }], "class": "-hd-los-game-live-box-scores-row-period-change" }); } })); } if(drawPlayByPlay){ lastPeriod=null; self.options.lastGameTime=null; self.options.homeTeamId=data.gameData.homeTeamId; self.options.homeTeamBackColor=data.gameData.homeTeamBackColor; self.options.homeTeamForeColor=data.gameData.homeTeamForeColor; self.options.awayTeamId=data.gameData.awayTeamId; self.options.awayTeamBackColor=data.gameData.awayTeamBackColor; self.options.awayTeamForeColor=data.gameData.awayTeamForeColor; self.tables.playByPlay.setRows(self.getRows(data.playByPlay, self.options.columnsPlayByPlay, self.options.columnDefinitionPlayByPlay, null, function(dataRow, tableRows){ if(dataRow["GamePeriod"] && (lastPeriod===null || lastPeriod !== dataRow["GamePeriod"])){ lastPeriod=dataRow["GamePeriod"]; tableRows.push({ "cols": [{ "html": hockeydata["i18n"].translate("Period") + " " + lastPeriod, "colspan": self.options.columnsPlayByPlay.length }], "class": "-hd-los-game-live-box-play-by-play-row-period-change" }); } }, "-hd-los-game-play-by-play-col-")); } var teamStatsTableRows=[]; for(i=0; i < self.options.rowsTeamStats.length; i++){ var rowName=self.options.rowsTeamStats[i]; var rowDefinition=(rowName in self.options.rowDefinitionTeamStats) ? self.options.rowDefinitionTeamStats[rowName] : {}; var tableRow={ "cols": [], "class": "-hd-los-game-live-box-team-stats-row -hd-los-game-live-box-team-" + rowName }; var homeValue=(rowName in data.homeTeamStats) ? data.homeTeamStats[rowName] : null; var awayValue=(rowName in data.awayTeamStats) ? data.awayTeamStats[rowName] : null; if("format" in rowDefinition && jQuery.isFunction(rowDefinition.format)){ homeValue=rowDefinition.format(homeValue); awayValue=rowDefinition.format(awayValue); } if("fn" in rowDefinition && jQuery.isFunction(rowDefinition.fn)){ homeValue=rowDefinition.fn(data.homeTeamStats, self.options); awayValue=rowDefinition.fn(data.awayTeamStats, self.options); } if(homeValue===null) homeValue="&nbsp;"; if(awayValue===null) awayValue="&nbsp;"; tableRow.cols.push({ "html": rowDefinition.title }); tableRow.cols.push({ "html": homeValue }); tableRow.cols.push({ "html": awayValue }); teamStatsTableRows.push(tableRow); } self.tables.teamStats.setRows(teamStatsTableRows); if(drawGoals){ var goals=[]; var goal; for(i=0; i < data.homeGoals.length; i++){ goal=data.homeGoals[i]; goal.teamShortname=data.gameData.homeTeamShortname || ""; goal.teamId=data.gameData.homeTeamId || ""; goal.type="goal"; goals.push(goal); tickerActions.push(goal); } for(i=0; i < data.awayGoals.length; i++){ goal=data.awayGoals[i]; goal.teamShortname=data.gameData.awayTeamShortname || ""; goal.teamId=data.gameData.awayTeamId || ""; goal.type="goal"; goals.push(goal); tickerActions.push(goal); } goals.sort(function(a, b){ return a.gameTime - b.gameTime; }); self.tables.goals.setRows(self.getRows(goals, self.options.columnsGoals, self.options.columnDefinitionGoals)); } if(drawPenalties){ var penalties=[]; var penalty; for(i=0; i < data.homePenalties.length; i++){ penalty=data.homePenalties[i]; penalty.teamShortname=data.gameData.homeTeamShortname || ""; penalty.teamId=data.gameData.homeTeamId || ""; penalty.type="penalty"; penalties.push(penalty); tickerActions.push(penalty); } for(i=0; i < data.awayPenalties.length; i++){ penalty=data.awayPenalties[i]; penalty.teamShortname=data.gameData.awayTeamShortname || ""; penalty.teamId=data.gameData.awayTeamId || ""; penalty.type="penalty"; penalties.push(penalty); tickerActions.push(penalty); } penalties.sort(function(a, b){ return a.gameTime - b.gameTime; }); self.tables.penalties.setRows(self.getRows(penalties, self.options.columnsPenalties, self.options.columnDefinitionPenalties)); } if(drawTicker){ self.domNodes.$ticker.empty(); tickerActions.sort(function(a, b){ return b.gameTime - a.gameTime; }); for(i=0; i < tickerActions.length; i++){ var action=tickerActions[i]; var headline=""; var body=""; var $action=jQuery("<div/>").addClass("-hd-los-game-live-box-ticker-action -hd-los-game-live-box-ticker-action-" + action.type).appendTo(self.domNodes.$ticker); var $teamLogo=jQuery("<div/>").addClass("-hd-los-game-live-box-ticker-action-team-logo").appendTo($action); var $headline=jQuery("<div/>").addClass("-hd-los-game-live-box-ticker-action-headline").appendTo($action); var $body=jQuery("<div/>").addClass("-hd-los-game-live-box-ticker-action-body").appendTo($action); if(action.type==="goal"){ headline += hockeydata["i18n"].translate("Goal") + " @ " + action.gameTimeFormatted + " " + action.gameStrength; if(jQuery.isPlainObject(action.scoredBy)) body += "<div class='-hd-los-game-live-box-ticker-action-body-goal-scorer'>" + hockeydata["i18n"].translate("Scorer") + ": " + action.scoredBy.playerFirstname + " " + action.scoredBy.playerLastname + "</div>"; body += "<div class='-hd-los-game-live-box-ticker-action-body-goal-new-score'>" + hockeydata["i18n"].translate("New score") + ": " + action.newScore + "</div>"; } else if(action.type==="penalty"){ headline += hockeydata["i18n"].translate("Penalty") + " @ " + action.gameTimeFormatted; body += hockeydata["util"].sprintf(hockeydata["i18n"].translate("%s, %s (%s)."), hockeydata["util"].formatTime(action.penaltyLength), (jQuery.isPlainObject(action.offender) ? (action.offender.playerFirstname + " " + action.offender.playerLastname) : ""), action.offence); } $teamLogo.html(hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (self.options._divisionId || self.options.divisionId), "teamId": action.teamId }))); $headline.html(headline); $body.html(body); } } for(i=0; i < gameFacts.length; i++) self.domNodes.gameFacts[gameFacts[i].key].html(gameFacts[i].value); }; this.initializeTable=function(table, columns, columnDefinition, $node){ var tableHeaders=[]; for(var i=0; i < columns.length; i++){ var column=columns[i]; if(columnDefinition && (column in columnDefinition) && ("header" in columnDefinition[column])) tableHeaders.push(columnDefinition[column]["header"]); else tableHeaders.push({ "html": "&nbsp;" }); } this.tables[table]=new hockeydata["util"]["IntelliTable"](jQuery.extend({}, this.options, { "$domNode": $node, "headers": tableHeaders, "hideHeaders": true })); }; this.getRows=function(dataRows, columns, columnDefinitions, rowLink, beforeColumns, cellClassPrefix){ var tableRows=[]; var j; for(var i=0; i < dataRows.length; i++){ var dataRow=dataRows[i]; var uri=(jQuery.isFunction(rowLink) ? rowLink(dataRow) : hockeydata["util"]["UriComposer"].parseUri(rowLink, [ dataRow.id, self.options.divisionId ])); var tableRow={ "cols": [] }; if(beforeColumns) beforeColumns(dataRow, tableRows); if(uri) tableRow.onClick=hockeydata["util"]["LinkComposer"].getLinkClickFunction(uri); for(j=0; j < columns.length; j++){ var columnName=columns[j]; var columnDefinition=(columnName in columnDefinitions) ? columnDefinitions[columnName] : {}; var cellValue=null; var cell={ "class": (cellClassPrefix ? (cellClassPrefix + columnName) : "") }; if(columnName in dataRow){ var dataValue=dataRow[columnName]; if(jQuery.isPlainObject(dataValue)){ cellValue=("value" in dataValue) ? dataValue.value : "&nbsp;"; if("sortValue" in dataValue) cell.sortValue=dataValue.sortValue; if("labels" in dataValue && dataValue["labels"].length) for(var k=0; k < dataValue["labels"].length; k++) cell.class += " -hd-label-" + dataValue["labels"][k]; if("key" in columnDefinition){ var key=columnDefinition["key"]; if(key in dataValue) cellValue=dataValue[key]; } } else cellValue=dataValue; } if("class" in columnDefinition) cell.class += " " + columnDefinition.class; if("format" in columnDefinition && jQuery.isFunction(columnDefinition.format)) cellValue=columnDefinition.format(cellValue); if("fn" in columnDefinition && jQuery.isFunction(columnDefinition.fn)) cellValue=columnDefinition.fn(dataRow, this.options); cell.html=cellValue===null ? "&nbsp;" : cellValue; cell.value=cellValue; tableRow.cols.push(cell); } if("labels" in dataRow && dataRow["labels"].length) for(j=0; j < dataRow["labels"].length; j++) tableRow.class += " -hd-label-" + dataRow["labels"][j]; if("Labels" in dataRow && dataRow["Labels"].length) for(j=0; j < dataRow["Labels"].length; j++) tableRow.class += " -hd-label-" + dataRow["Labels"][j]; tableRows.push(tableRow); } return tableRows; }; this.initialize(); } hockeydata.extend(LiveBox, hockeydata["los"]["Game"], "LiveBox"); })()); ((function(){ function PlayByPlay(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "apiKey": "VOID", "autoReload": false, "columnDefinition": null, "columns": null, "columnSet": "default", "dataUrl": null, "divisionId": null, "error": function(e){ self.error(e); }, "gameId": null, "league": null, "paint": function(e){ self.paint(e); }, "requestData": {}, "sport": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.options.requestData.apiKey=this.options.apiKey; this.options.requestData.gameGuid=this.options.gameId; this.$domNode=this.options.$domNode; this.table=null; this.dataSubscription=null; this.firstPaint=true; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata.util.getLeague(this.options.sport, "hockeydata.los.Game.PlayByPlay"); if(!this.options.dataUrl) this.options.dataUrl=hockeydata.util["UriComposer"].getDataUri("getGamePlayByPlay", this.options); if(!this.options.columnDefinition) this.options.columnDefinition=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "gamePlayByPlay" }); if(!this.options.columns) this.options.columns=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSet, "type": "gamePlayByPlay" }); else if(hockeydata.util.isString(this.options.columns)) this.options.columns=this.options.columns.split(","); this.$domNode.addClass("-hd-los -hd-los-game-play-by-play"); this.dataSubscription=hockeydata.util["Data"].subscribe({ "begin": function(){ if(self.table) self.table.deactivate(); self.$domNode.addClass("-hd-loading"); }, "complete": function(){ if(self.table && self.table.inactive) setTimeout(function(){ self.table.activate(); }, 500); self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data){ self.options._divisionId=e.data.divisionId; self.options.paint(e.data); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata.util["Data"].error(e, this.$domNode); }; this.initializeTable=function(){ var tableHeaders=[]; for(var i=0; i < this.options.columns.length; i++){ var column=this.options.columns[i]; if(this.options.columnDefinition && (column in this.options.columnDefinition) && ("header" in this.options.columnDefinition[column])) tableHeaders.push(this.options.columnDefinition[column]["header"]); else tableHeaders.push({ "html": "&nbsp;" }); } this.table=new hockeydata.util["IntelliTable"](jQuery.extend({}, this.options, { "$domNode": jQuery("<div/>").appendTo(this.$domNode), "headers": tableHeaders, "class": "-hd-los-game-play-by-play-table", "hideHeaders": true })); }; this.paint=function(data){ data=data || {}; var dataRows=data.rows || []; var tableRows=[]; var lastPeriod=null; self.options.lastGameTime=null; self.options.homeTeamId=data.homeTeamId; self.options.homeTeamBackColor=data.homeTeamBackColor; self.options.homeTeamForeColor=data.homeTeamForeColor; self.options.awayTeamId=data.awayTeamId; self.options.awayTeamBackColor=data.awayTeamBackColor; self.options.awayTeamForeColor=data.awayTeamForeColor; if(self.firstPaint){ self.firstPaint=false; self.initializeTable(); } for(var i=0; i < dataRows.length; i++){ var dataRow=dataRows[i]; var tableRow={ "cols": [], "class": "-hd-los-game-play-by-play-row" }; var j; if(dataRow["GamePeriod"] && (lastPeriod===null || lastPeriod !== dataRow["GamePeriod"])){ lastPeriod=dataRow["GamePeriod"]; tableRows.push({ "cols": [{ "html": hockeydata.i18n.translate("Period") + " " + lastPeriod, "colspan": self.options.columns.length }], "class": "-hd-los-game-play-by-play-row-period-change" }); } for(j=0; j < self.options.columns.length; j++){ var columnName=self.options.columns[j]; var columnDefinition=(columnName in self.options.columnDefinition) ? self.options.columnDefinition[columnName] : {}; var cellValue=null; var cell={ "class": "-hd-los-game-play-by-play-col-" + columnName }; if(columnName in dataRow){ var dataValue=dataRow[columnName]; if(jQuery.isPlainObject(dataValue)){ cellValue=("value" in dataValue) ? dataValue.value : "&nbsp;"; if("sortValue" in dataValue) cell.sortValue=dataValue.sortValue; if("labels" in dataValue && dataValue["labels"].length) for(var k=0; k < dataValue["labels"].length; k++) cell.class += " -hd-label-" + dataValue["labels"][k]; if("key" in columnDefinition){ var key=columnDefinition["key"]; if(key in dataValue) cellValue=dataValue[key]; } } else cellValue=dataValue; } if("class" in columnDefinition) cell.class += " " + columnDefinition.class; if("format" in columnDefinition && jQuery.isFunction(columnDefinition.format)) cellValue=columnDefinition.format(cellValue); if("fn" in columnDefinition && jQuery.isFunction(columnDefinition.fn)) cellValue=columnDefinition.fn(dataRow, this.options); cell.html=cellValue===null ? "&nbsp;" : cellValue; cell.value=cellValue; tableRow.cols.push(cell); } if("Labels" in dataRow && dataRow["Labels"].length) for(j=0; j < dataRow["Labels"].length; j++) tableRow.class += " -hd-label-" + dataRow["Labels"][j]; tableRows.push(tableRow); } self.table.setRows(tableRows); }; this.initialize(); } hockeydata.extend(PlayByPlay, hockeydata["los"]["Game"], "PlayByPlay"); })()); ((function(){ function PlayerStats(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "apiKey": "VOID", "autoReload": false, "columnDefinition": null, "columns": null, "columnSet": "default", "dataUrl": null, "divisionId": null, "error": function(e){ self.error(e); }, "gameId": null, "league": null, "paint": function(e){ self.paint(e); }, "requestData": {}, "sport": null, "type": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.options.requestData.apiKey=this.options.apiKey; this.options.requestData.gameGuid=this.options.gameId; this.$domNode=this.options.$domNode; this.table=null; this.dataSubscription=null; this.firstPaint=true; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata.util.getLeague(this.options.sport); if(!this.options.dataUrl) this.options.dataUrl=hockeydata.util["UriComposer"].getDataUri("getGamePlayerStats", this.options); if(!this.options.columnDefinition) this.options.columnDefinition=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": this.options.type + "GameLeaders" }); if(!this.options.columns) this.options.columns=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSet, "type": this.options.type + "GameLeaders" }); else if(hockeydata.util.isString(this.options.columns)) this.options.columns=this.options.columns.split(","); this.$domNode.addClass("-hd-los -hd-los-game-player-stats -hd-los-game-player-stats-" + this.options.type); this.dataSubscription=hockeydata.util["Data"].subscribe({ "begin": function(){ if(self.table) self.table.deactivate(); self.$domNode.addClass("-hd-loading"); }, "complete": function(){ if(self.table && self.table.inactive) setTimeout(function(){ self.table.activate(); }, 500); self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data){ self.options._divisionId=e.data.divisionId; self.options.paint(e.data); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata.util["Data"].error(e, this.$domNode); }; this.initializeTable=function(){ var tableHeaders=[]; for(var i=0; i < this.options.columns.length; i++){ var column=this.options.columns[i]; if(this.options.columnDefinition && (column in this.options.columnDefinition) && ("header" in this.options.columnDefinition[column])) tableHeaders.push(this.options.columnDefinition[column]["header"]); else tableHeaders.push({ "html": "&nbsp;" }); } this.table=new hockeydata.util["IntelliTable"](jQuery.extend({}, this.options, { "$domNode": jQuery("<div/>").appendTo(this.$domNode), "headers": tableHeaders, "class": "-hd-los-game-player-stats-table" })); }; this.paint=function(data){ data=data || {}; var key=self.options.type + "Leaders"; var dataRows=(key in data) ? data[key] : {}; dataRows=("rows" in dataRows) ? dataRows.rows : []; var tableRows=[]; var j; if(self.firstPaint){ self.firstPaint=false; self.initializeTable(); } for(var i=0; i < dataRows.length; i++){ var dataRow=dataRows[i]; var tableRow={ "cols": [], "class": "-hd-los-game-player-stats-row" }; for(j=0; j < self.options.columns.length; j++){ var columnName=self.options.columns[j]; var columnDefinition=(columnName in self.options.columnDefinition) ? self.options.columnDefinition[columnName] : {}; var cellValue=null; var cell={ "class": "-hd-los-game-player-stats-col-" + columnName }; if(columnName in dataRow){ var dataValue=dataRow[columnName]; if(jQuery.isPlainObject(dataValue)){ cellValue=("value" in dataValue) ? dataValue.value : "&nbsp;"; if("sortValue" in dataValue) cell.sortValue=dataValue.sortValue; if("labels" in dataValue && dataValue["labels"].length) for(var k=0; k < dataValue["labels"].length; k++) cell.class += " -hd-label-" + dataValue["labels"][k]; if("key" in columnDefinition){ key=columnDefinition["key"]; if(key in dataValue) cellValue=dataValue[key]; } } else cellValue=dataValue; } if("class" in columnDefinition) cell.class += " " + columnDefinition.class; if("format" in columnDefinition && jQuery.isFunction(columnDefinition.format)) cellValue=columnDefinition.format(cellValue); if("fn" in columnDefinition && jQuery.isFunction(columnDefinition.fn)) cellValue=columnDefinition.fn(dataRow, this.options); cell.html=cellValue===null ? "&nbsp;" : cellValue; cell.value=cellValue; tableRow.cols.push(cell); } if("labels" in dataRow && dataRow["labels"].length) for(j=0; j < dataRow["labels"].length; j++) tableRow.class += " -hd-label-" + dataRow["labels"][j]; tableRows.push(tableRow); } self.table.setRows(tableRows); }; this.initialize(); } hockeydata.extend(PlayerStats, hockeydata["los"]["Game"], "PlayerStats"); })()); ((function(){ function Scores(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "apiKey": "VOID", "autoReload": false, "columnDefinition": null, "columns": null, "columnSet": "default", "dataUrl": null, "divisionId": null, "divisionIdUrlParameter": "divisionId", "error": function(e){ self.error(e); }, "gameId": null, "gameIdUrlParameter": "gameId", "league": null, "paint": function(e){ self.paint(e); }, "requestData": {}, "sport": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.options.requestData.apiKey=this.options.apiKey; this.$domNode=this.options.$domNode; this.table=null; this.dataSubscription=null; this.firstPaint=true; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata.util.getLeague(this.options.sport, "hockeydata.los.Game.Scores"); if(!this.options.divisionId && this.options.divisionIdUrlParameter) this.options.divisionId=hockeydata.util.getParameter(this.options.divisionIdUrlParameter); if(!this.options.gameId && this.options.gameIdUrlParameter) this.options.gameId=hockeydata.util.getParameter(this.options.gameIdUrlParameter); this.options.requestData.gameGuid=this.options.gameId; if(!this.options.dataUrl) this.options.dataUrl=hockeydata.util["UriComposer"].getDataUri("getGamePlayByPlay", this.options); if(!this.options.columnDefinition) this.options.columnDefinition=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "gameScores" }); if(!this.options.columns) this.options.columns=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSet, "type": "gameScores" }); else if(hockeydata.util.isString(this.options.columns)) this.options.columns=this.options.columns.split(","); this.$domNode.addClass("-hd-los -hd-los-game-scores"); this.dataSubscription=hockeydata.util["Data"].subscribe({ "begin": function(){ if(self.table) self.table.deactivate(); self.$domNode.addClass("-hd-loading"); }, "complete": function(){ if(self.table && self.table.inactive) setTimeout(function(){ self.table.activate(); }, 500); self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data && ("scores" in e.data)){ self.options._divisionId=e.data.divisionId; self.options.paint(e.data["scores"]); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata.util["Data"].error(e, this.$domNode); }; this.initializeTable=function(){ var tableHeaders=[]; for(var i=0; i < this.options.columns.length; i++){ var column=this.options.columns[i]; if(this.options.columnDefinition && (column in this.options.columnDefinition) && ("header" in this.options.columnDefinition[column])) tableHeaders.push(this.options.columnDefinition[column]["header"]); else tableHeaders.push({ "html": "&nbsp;" }); } this.table=new hockeydata.util["IntelliTable"](jQuery.extend({}, this.options, { "$domNode": jQuery("<div/>").appendTo(this.$domNode), "headers": tableHeaders, "class": "-hd-los-game-scores-table", "hideHeaders": true })); }; this.paint=function(data){ var dataRows=data || []; var tableRows=[]; var lastPeriod=null; if(self.firstPaint){ self.firstPaint=false; self.initializeTable(); } for(var i=0; i < dataRows.length; i++){ var dataRow=dataRows[i]; var tableRow={ "cols": [], "class": "-hd-los-game-scores-row" }; var j; if(dataRow["gamePeriod"] && (lastPeriod===null || lastPeriod !== dataRow["gamePeriod"])){ lastPeriod=dataRow["gamePeriod"]; tableRows.push({ "cols": [{ "html": hockeydata.i18n.translate("Period") + " " + lastPeriod, "colspan": self.options.columns.length }], "class": "-hd-los-game-scores-row-period-change" }); } for(j=0; j < self.options.columns.length; j++){ var columnName=self.options.columns[j]; var columnDefinition=(columnName in self.options.columnDefinition) ? self.options.columnDefinition[columnName] : {}; var cellValue=null; var cell={ "class": "-hd-los-game-scores-col-" + columnName }; if(columnName in dataRow){ var dataValue=dataRow[columnName]; if(jQuery.isPlainObject(dataValue)){ cellValue=("value" in dataValue) ? dataValue.value : "&nbsp;"; if("sortValue" in dataValue) cell.sortValue=dataValue.sortValue; if("labels" in dataValue && dataValue["labels"].length) for(var k=0; k < dataValue["labels"].length; k++) cell.class += " -hd-label-" + dataValue["labels"][k]; if("key" in columnDefinition){ var key=columnDefinition["key"]; if(key in dataValue) cellValue=dataValue[key]; } } else cellValue=dataValue; } if("class" in columnDefinition) cell.class += " " + columnDefinition.class; if("format" in columnDefinition && jQuery.isFunction(columnDefinition.format)) cellValue=columnDefinition.format(cellValue); if("fn" in columnDefinition && jQuery.isFunction(columnDefinition.fn)) cellValue=columnDefinition.fn(dataRow, this.options); cell.html=cellValue===null ? "&nbsp;" : cellValue; cell.value=cellValue; tableRow.cols.push(cell); } if("labels" in dataRow && dataRow["labels"].length) for(j=0; j < dataRow["labels"].length; j++) tableRow.class += " -hd-label-" + dataRow["labels"][j]; tableRows.push(tableRow); } self.table.setRows(tableRows); }; this.initialize(); } hockeydata.extend(Scores, hockeydata["los"]["Game"], "Scores"); })()); ((function(){ function TeamStats(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "apiKey": "VOID", "autoReload": false, "dataUrl": null, "divisionId": null, "error": function(e){ self.error(e); }, "gameId": null, "league": null, "paint": function(e){ self.paint(e); }, "requestData": {}, "rowDefinition": null, "rows": null, "rowSet": "default", "sport": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.options.requestData.apiKey=this.options.apiKey; this.options.requestData.gameGuid=this.options.gameId; this.$domNode=this.options.$domNode; this.table=null; this.dataSubscription=null; this.firstPaint=true; this.homeTeamShortname=null; this.awayTeamShortname=null; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata.util.getLeague(this.options.sport); if(!this.options.dataUrl) this.options.dataUrl=hockeydata.util["UriComposer"].getDataUri("getGameTeamStats", this.options); if(!this.options.rowDefinition) this.options.rowDefinition=hockeydata["los"]["Configuration"].getTableRowDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "gameTeamStats" }); if(!this.options.rows) this.options.rows=hockeydata["los"]["Configuration"].getTableRows({ "sport": this.options.sport, "league": this.options.league, "rowSet": this.options.rowSet, "type": "gameTeamStats" }); else if(hockeydata.util.isString(this.options.rows)) this.options.rows=this.options.rows.split(","); this.$domNode.addClass("-hd-los -hd-los-game-team-stats"); this.dataSubscription=hockeydata.util["Data"].subscribe({ "begin": function(){ if(self.table) self.table.deactivate(); self.$domNode.addClass("-hd-loading"); }, "complete": function(){ if(self.table && self.table.inactive) setTimeout(function(){ self.table.activate(); }, 500); self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data){ self.options._divisionId=e.data.divisionId; self.options.paint(e.data); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata.util["Data"].error(e, this.$domNode); }; this.initializeTable=function(){ var tableHeaders=[]; tableHeaders.push({ "html": "&nbsp;" }); tableHeaders.push({ "html": self.homeTeamShortname || hockeydata.i18n.translate("Home") }); tableHeaders.push({ "html": self.awayTeamShortname || hockeydata.i18n.translate("Away") }); self.table=new hockeydata.util["IntelliTable"](jQuery.extend({}, self.options, { "$domNode": jQuery("<div/>").appendTo(self.$domNode), "headers": tableHeaders, "class": "-hd-los-game-team-stats-table", "rows": [] })); }; this.paint=function(data){ data=data || {}; var homeValues=("homeValues" in data) ? data["homeValues"] : {}; var awayValues=("awayValues" in data) ? data["awayValues"] : {}; var tableRows=[]; if(self.firstPaint){ self.firstPaint=false; self.homeTeamShortname=data.homeTeamShortname; self.awayTeamShortname=data.awayTeamShortname; self.initializeTable(); } for(var i=0; i < self.options.rows.length; i++){ var rowName=self.options.rows[i]; var rowDefinition=(rowName in self.options.rowDefinition) ? self.options.rowDefinition[rowName] : {}; var tableRow={ "cols": [], "class": "-hd-los-game-team-stats-row -hd-los-game-team-stats-row-" + rowName }; var homeValue=(rowName in homeValues) ? homeValues[rowName] : null; var awayValue=(rowName in awayValues) ? awayValues[rowName] : null; if("format" in rowDefinition && jQuery.isFunction(rowDefinition.format)){ homeValue=rowDefinition.format(homeValue); awayValue=rowDefinition.format(awayValue); } if(homeValue===null) homeValue="&nbsp;"; if(awayValue===null) awayValue="&nbsp;"; tableRow.cols.push({ "html": rowDefinition.title }); tableRow.cols.push({ "html": homeValue }); tableRow.cols.push({ "html": awayValue }); tableRows.push(tableRow); } self.table.setRows(tableRows); }; this.initialize(); } hockeydata.extend(TeamStats, hockeydata["los"]["Game"], "TeamStats"); })()); ((function(){ function Slider(options){ var self=this; var index=0; this.defaults={ "$domNode": jQuery("<div/>"), "groups": [] }; this.options=jQuery.extend({}, this.defaults, options || {}); this.$domNode=this.options.$domNode; this.$prevButton=null; this.$nextButton=null; this.$content=null; this.initialize=function(){ this.$domNode.empty(); this.$domNode.addClass("-hd-util-slider"); this.$prevButton=jQuery("<div/>").addClass("-hd-util-slider-button -hd-util-slider-button-disabled -hd-util-slider-button-prev").appendTo(this.$domNode).html("<span></span>"); this.$content=jQuery("<div/>").addClass("-hd-util-slider-content").appendTo(this.$domNode); this.$nextButton=jQuery("<div/>").addClass("-hd-util-slider-button -hd-util-slider-button-disabled -hd-util-slider-button-next").appendTo(this.$domNode).html("<span></span>"); this.$prevButton.click(this.prev); this.$nextButton.click(this.next); this.draw(); }; this.activateButton=function($button){ $button.removeClass("-hd-util-slider-button-disabled"); $button.addClass("-hd-clickable"); }; this.deactivateButton=function($button){ $button.addClass("-hd-util-slider-button-disabled"); $button.removeClass("-hd-clickable"); }; this.clearSelection=function(){ if(document.selection && document.selection.empty) document.selection.empty(); else if(window.getSelection) window.getSelection().removeAllRanges(); }; this.prev=function(){ self.clearSelection(); if(index > 0){ var $toShow=jQuery(self.options.groups[index - 1])["parent"](); var $toHide=jQuery(self.options.groups[index])["parent"](); var oldIndex=index; index--; $toShow.show(); $toHide.hide(); if(index===0) self.deactivateButton(self.$prevButton); if(oldIndex===self.options.groups.length - 1) self.activateButton(self.$nextButton); } }; this.next=function(){ self.clearSelection(); if(index < self.options.groups.length - 1){ var $toShow=jQuery(self.options.groups[index + 1])["parent"](); var $toHide=jQuery(self.options.groups[index])["parent"](); var oldIndex=index; index++; $toShow.show(); $toHide.hide(); if(index===self.options.groups.length - 1) self.deactivateButton(self.$nextButton); if(oldIndex===0) self.activateButton(self.$prevButton); } }; this.draw=function(){ this.$content.empty(); index=0; if(this.options.groups && this.options.groups.length){ for(var i=0; i < this.options.groups.length; i++){ var $group=jQuery("<div/>").addClass("-hd-util-slider-group").appendTo(this.$content); var $groupContent=jQuery(this.options.groups[i]); $group.append($groupContent); if($groupContent.hasClass("-hd-util-slider-first")){ index=i; $group.show(); } else $group.hide(); } if(this.options.groups.length > 1 && index > 0) this.activateButton(this.$prevButton); else this.deactivateButton(this.$prevButton); if(index < this.options.groups.length - 1) this.activateButton(this.$nextButton); else this.deactivateButton(this.$nextButton); } }; this.setGroups=function(groups){ this.options.groups=groups; this.draw(); }; this.initialize(); } hockeydata.extend(Slider, hockeydata.util, "Slider"); })()); ((function(){ function GameSlider(options){ var self=this, now; this.defaultOptions={ "$domNode": jQuery("<div/>"), "apiKey": "VOID", "autoReload": false, "dataUrl": null, "divisionId": null, "divisionIdUrlParameter": "divisionId", "error": function(e){ self.error(e); }, "gameLink": null, "gamesPerGroup": 5, "league": null, "paint": function(e){ self.paint(e); }, "requestData": {}, "showDivisionName": false, "showLeagueName": false, "showLiveTime": false, "showPeriodBar": false, "showTeamShortName": false, "sport": null, "teamId": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.$domNode=this.options.$domNode; this.slider=null; this.dataSubscription=null; this.firstPaint=true; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata["util"].getLeague(this.options.sport, "hockeydata.los.GameSlider"); if(!this.options.divisionId && this.options.divisionIdUrlParameter) this.options.divisionId=hockeydata["util"].getParameter(this.options.divisionIdUrlParameter); this.options.requestData.apiKey=this.options.apiKey; this.options.requestData.divisionId=this.options.divisionId; if(!jQuery.isPlainObject(this.options.requestData.widgetOptions)) this.options.requestData.widgetOptions={}; this.options.requestData.widgetOptions.semantic=true; this.options.requestData.widgetOptions.noScorers=true; this.options.requestData.widgetOptions=JSON.stringify(this.options.requestData.widgetOptions); if(!this.options.dataUrl) this.options.dataUrl=hockeydata["util"]["UriComposer"].getDataUri("getSchedule", this.options); if(this.options.teamId) this.options.teamId=Number(this.options.teamId); this.$domNode.addClass("-hd-los -hd-los-game-slider -hd-los-game-slider-" + this.options.gamesPerGroup); if(!this.options.showTeamShortName) this.$domNode.addClass("-hd-los-game-slider-no-team-short-name"); this.dataSubscription=hockeydata["util"]["Data"].subscribe({ "begin": function(){ self.$domNode.addClass("-hd-loading"); }, "complete": function(){ self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data && ("rows" in e.data)){ self.options._divisionId=e.data.divisionId; now=(new Date()).getTime(); self.options.paint(e.data.rows); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata["util"]["Data"].error(e, this.$domNode); }; this.filterRows=function(data){ data=data || []; var filteredData=[], dataRow; for(var i=0; i < data.length; i++){ dataRow=data[i]; if(self.options.teamId && dataRow.homeTeamId !== self.options.teamId && dataRow.awayTeamId !== self.options.teamId) continue; filteredData.push(dataRow); } return filteredData; }; this.paint=function(data){ var games=self.filterRows(data); if(self.firstPaint){ var i, $groupContainer=jQuery("<table/>").addClass("-hd-util-slider-first"), $group=jQuery("<tr/>").appendTo($groupContainer), groups=[ $groupContainer ], liveGames=[], pastGames=[], futureGames=[], gamesAddedToGroup=0; self.firstPaint=false; self.slider=new hockeydata["util"]["Slider"](jQuery.extend({}, this.options, { "$domNode": jQuery("<div/>").appendTo(this.$domNode) })); function fillGroup(prepend){ for(; gamesAddedToGroup < self.options.gamesPerGroup; gamesAddedToGroup++) self.addEmptyGame($group, prepend); } function addGames(games, fill, reverse){ reverse && games.reverse(); for(i=0; i < games.length; i++){ if(gamesAddedToGroup===self.options.gamesPerGroup){ gamesAddedToGroup=0; $groupContainer=jQuery("<table/>"); $group=jQuery("<tr/>").appendTo($groupContainer); reverse ? groups.unshift($groupContainer) : groups.push($groupContainer); } self.addGame(games[i], $group, reverse); gamesAddedToGroup++; } gamesAddedToGroup && fill && fillGroup(reverse); return true; } for(i=0; i < games.length; i++){ var game=games[i]; var gameDate=game.scheduledDate.sortValue || game.scheduledDate.timestamp; (game.gameStatus===1) ? liveGames.push(game) : ((gameDate < now) ? pastGames.push(game) : futureGames.push(game)); } var lastPastGame=pastGames.length ? pastGames[pastGames.length - 1] : null, lastPastGameDate=lastPastGame ? lastPastGame.scheduledDate.sortValue || lastPastGame.scheduledDate.timestamp : null, lastPastGameDateDiffToNow=lastPastGameDate ? now - lastPastGameDate : null, firstFutureGame=futureGames.length ? futureGames[0] : null, firstFutureGameDate=firstFutureGame ? firstFutureGame.scheduledDate.sortValue || firstFutureGame.scheduledDate.timestamp : null, firstFutureGameDateDiffToNow=firstFutureGameDate ? firstFutureGameDate - now : null; addGames(liveGames); (lastPastGameDateDiffToNow===null) || (lastPastGameDateDiffToNow===null && firstFutureGameDateDiffToNow===null) || (firstFutureGameDateDiffToNow < lastPastGameDateDiffToNow) ? addGames(futureGames, (liveGames.length + futureGames.length) > self.options.gamesPerGroup) && addGames(pastGames, true, true) : addGames(pastGames, (liveGames.length + pastGames.length) > self.options.gamesPerGroup, true) && addGames(futureGames, true); self.slider.setGroups(groups); } else for(i=0; i < games.length; i++) this.updateGame(games[i]); }; this.addEmptyGame=function($groupRow, prepend){ var $cell=jQuery("<td/>").addClass("-hd-los-game-slider-empty-cell"); prepend ? $cell.prependTo($groupRow) : $cell.appendTo($groupRow); }; this.addGame=function(game, $groupRow, prepend){ var uri=hockeydata["util"]["UriComposer"].parseUri(self.options.gameLink, [ game.id, game.divisionId ]); var $cell=jQuery("<td/>").addClass("-hd-los-game-slider-game -hd-los-game-slider-game-" + game.id); prepend ? $cell.prependTo($groupRow) : $cell.appendTo($groupRow); if(uri && game.gameStatus){ $cell.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(uri)); $cell.addClass("-hd-clickable"); } $cell.css("width", (100 / self.options.gamesPerGroup) + "%"); if("labels" in game && game["labels"] && game["labels"].length) for(var i=0; i < game["labels"].length; i++) $cell.addClass("-hd-label-" + game["labels"][i]); this.updateGame(game, $cell); }; this.updateGame=function(game, $cell){ $cell=$cell || jQuery(".-hd-los-game-slider-game-" + game.id); if($cell.length){ $cell.empty(); var $homeTeamLogo=hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (game.divisionId || self.options._divisionId || self.options.divisionId), "teamId": game.homeTeamId })); var $awayTeamLogo=hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (game.divisionId || self.options._divisionId || self.options.divisionId), "teamId": game.awayTeamId })); var scoreInfo=""; var gameStatus=""; var i; if(game.streams && game.streams.length){ var $gameStreams=jQuery("<div/>").addClass("-hd-los-game-slider-streams").appendTo($cell); for(i=0; i < game.streams.length; i++){ var gameStream=hockeydata.util.getGameStreamButton(game.streams[i]); gameStream && $gameStreams.append(gameStream); } } if(game["isShootOut"]) scoreInfo="<span class='-hd-los-game-slider-shootout'>" + hockeydata["i18n"].translate("SO", "Shootout") + "</span>"; else if(game["isOvertime"]) scoreInfo="<span class='-hd-los-game-slider-overtime'>" + hockeydata["i18n"].translate("OT", "Overtime") + "</span>"; if(self.options.showTeamShortName){ $cell.append(jQuery("<div/>").addClass("-hd-los-game-slider-team-name -hd-los-game-slider-team-name-home").append(game["homeTeamShortName"] || game["homeTeamShortname"] || "")); $cell.append(jQuery("<div/>").addClass("-hd-los-game-slider-team-name -hd-los-game-slider-team-name-away").append(game["awayTeamShortName"] || game["awayTeamShortname"] || "")); } $cell.append(jQuery("<div/>").addClass("-hd-util-slider-inline-image -hd-los-game-slider-team-logo -hd-los-game-slider-team-logo-home").append($homeTeamLogo)); $cell.append(jQuery("<div/>").addClass("-hd-util-slider-inline-image -hd-los-game-slider-team-logo -hd-los-game-slider-team-logo-away").append($awayTeamLogo)); $cell.append(jQuery("<div/>").addClass("-hd-los-game-slider-score").append("<span class='-hd-los-game-slider-score-home'>" + (game.gameStatus ? game.homeTeamScore : "-") + "</span><span class='-hd-los-game-slider-score-divider'></span><span class='-hd-los-game-slider-score-away'>" + (game.gameStatus ? game.awayTeamScore : "-") + "</span>")); $cell.append(jQuery("<div/>").addClass("-hd-los-game-slider-score-info").append(scoreInfo)); if(game.gameStatus===0){ var dateTime=""; if(game["dateIsToBeDetermined"] && game["timeIsToBeDetermined"]) dateTime=hockeydata["i18n"].translate("TBD"); else { if(game.scheduledDate && !game["dateIsToBeDetermined"]) dateTime += game.scheduledDate["shortValue"] || game.scheduledDate["formattedShort"]; else dateTime += hockeydata["i18n"].translate("TBD"); dateTime += " "; if(game["timeIsToBeDetermined"]) dateTime += hockeydata["i18n"].translate("TBD"); else dateTime += game.scheduledTime; } if(self.options.showDivisionName && game["divisionName"]) dateTime += " | " + game["divisionName"]; if(self.options.showLeagueName && game["leagueName"]) dateTime += " | " + game["leagueName"]; $cell.append(jQuery("<div/>").addClass("-hd-los-game-slider-info").append(dateTime)); } else if(game.gameStatus===1){ if(game["gameHasEnded"]){ gameStatus=hockeydata["i18n"].translate("END OF GAME"); if(self.options.showDivisionName && game["divisionName"]) gameStatus += " | " + game["divisionName"]; if(self.options.showLeagueName && game["leagueName"]) gameStatus += " | " + game["leagueName"]; $cell.append(jQuery("<div/>").addClass("-hd-los-game-slider-info").append(gameStatus)); } else if(self.options.showPeriodBar && hockeydata["util"].isArray(game["liveTimePeriodBar"]) && game["liveTimePeriodBar"].length){ var $liveTimeTableRowContainer=$cell; if(self.options.showLiveTime){ var liveTime=game["liveTimeString"]; var $liveTimeWrapper=jQuery("<tr/>").appendTo(jQuery("<tbody/>").appendTo(jQuery("<table/>").addClass("-hd-los-game-slider-live-time-wrapper").appendTo($cell))); var $td1=jQuery("<td/>").appendTo($liveTimeWrapper); $liveTimeTableRowContainer=jQuery("<td/>").appendTo($liveTimeWrapper); if(!isNaN(Number(game["liveTimeString"])) && game["liveTimeString"]){ var liveTimeMinutes=parseInt(liveTime.substring(0, liveTime.length - 2)); var liveTimeSeconds=parseInt(liveTime.substring(liveTime.length - 2)); liveTimeMinutes += (liveTimeSeconds / 100); liveTime=Math.ceil(liveTimeMinutes); if(liveTime===0) liveTime="&nbsp;"; else liveTime=liveTime + "'"; } $td1.append(liveTime); } var $liveTimeTableRow=jQuery("<tr/>").appendTo(jQuery("<tbody/>").appendTo(jQuery("<table/>").appendTo(jQuery("<div/>").addClass("-hd-los-game-slider-period-bar").appendTo($liveTimeTableRowContainer)))); for(i=0; i < game["liveTimePeriodBar"].length; i++){ var bar=game["liveTimePeriodBar"][i]; var $bar=jQuery("<td/>").appendTo($liveTimeTableRow); var $fill=jQuery("<div/>").addClass("-hd-los-game-slider-period-bar-fill").appendTo($bar); if(("longName" in bar) && bar["longName"]) $bar.attr("title", bar["longName"]); if(("shortName" in bar) && bar["shortName"]) jQuery("<div/>").addClass("-hd-los-game-slider-period-bar-label").html(bar["shortName"]).appendTo($bar); if(bar["isActive"]) $bar.addClass("-hd-los-game-slider-period-bar-active"); $bar.css({ "width": bar.maxLength + "%" }); $fill.css({ "width": bar.progress + "%" }); } } else { gameStatus=hockeydata["i18n"].translate("LIVE"); if(self.options.showDivisionName && game["divisionName"]) gameStatus += " | " + game["divisionName"]; if(self.options.showLeagueName && game["leagueName"]) gameStatus += " | " + game["leagueName"]; $cell.append(jQuery("<div/>").addClass("-hd-los-game-slider-info").append(gameStatus)); } } else if(game.gameStatus >= 2){ gameStatus=hockeydata["i18n"].translate("FINAL"); if(self.options.showDivisionName && game["divisionName"]) gameStatus += " | " + game["divisionName"]; if(self.options.showLeagueName && game["leagueName"]) gameStatus += " | " + game["leagueName"]; $cell.append(jQuery("<div/>").addClass("-hd-los-game-slider-info").append(gameStatus)); $cell.attr("title", game.scheduledDate.value + " " + game.scheduledTime); } } }; this.initialize(); } hockeydata.extend(GameSlider, hockeydata["los"], "GameSlider"); })()); ((function(){ function Ticker(options){ var self=this; var items, width, timer, index; this.defaults={ "$domNode": jQuery("<div/>"), "items": [], "speed": 5, "scroll": true, "offset": 0 }; this.options=jQuery.extend({}, this.defaults, options || {}); this.$domNode=this.options.$domNode; this.$content=null; this.initialize=function(){ this.$domNode.addClass("-hd-util-ticker"); self.$content=jQuery("<div/>").addClass("-hd-util-ticker-content").appendTo(this.$domNode); if(this.options.scroll) this.$domNode.addClass("-hd-util-ticker-scroll"); self.$content.mouseover(function(){ if(self.options.scroll) self.$content.stop(); else clearInterval(timer); }); self.$content.mouseout(function(){ if(self.options.scroll) self.scroll(); else timer=setInterval(self.showNext, self.options.speed * 1000); }); this.draw(); }; this.draw=function(){ this.$content.empty(); width=0; if(this.options.items && this.options.items.length){ for(var i=0; i < this.options.items.length; i++){ var $item=jQuery("<div/>").addClass("-hd-util-ticker-item").appendTo(this.$content); var $itemContent=jQuery(this.options.items[i]); $item.append($itemContent); width += $item.outerWidth(true); } if(self.options.scroll){ self.$content.css({ "width": width, "left": 0 }); setTimeout(function(){ self.scroll(); }, 100 + self.options.offset); } else { clearInterval(timer); index=0; timer=setInterval(self.showNext, self.options.speed * 1000); items=self.$content.children(); items.eq(index).addClass("-hd-util-ticker-item-active"); } } }; this.setItems=function(newItems){ this.options.items=newItems; this.draw(); }; this.scroll=function(){ items=self.$content.children(); var firstItem=items.eq(0); var scrollWidth=firstItem["outerWidth"](true); var offset=self.$content.position(); var scrollSpeed=(scrollWidth + offset.left) * 100 / self.options.speed; if(scrollWidth > 0 && scrollSpeed) this.$content.stop(true).animate({ "left" : 0 - scrollWidth }, scrollSpeed, "linear", function(){ self.$content.append(items.eq(0).remove()).css("left", 0); self.scroll(); }); }; this.showNext=function(){ items.eq(index).removeClass("-hd-util-ticker-item-active"); index++; if(index > items.length - 1) index=0; items.eq(index).addClass("-hd-util-ticker-item-active"); }; this.initialize(); } hockeydata.extend(Ticker, hockeydata.util, "Ticker"); })()); ((function(){ function GameTicker(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "apiKey": "VOID", "autoReload": false, "dataUrl": null, "divisionId": null, "error": function(e){ self.error(e); }, "futureOnly": false, "gameLink": null, "league": null, "limit": 0, "paint": function(e){ self.paint(e); }, "requestData": {}, "showTeamLogo": false, "showTeamShortName": true, "showBroadcasters": false, "sport": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.$domNode=this.options.$domNode; this.ticker=null; this.dataSubscription=null; this.firstPaint=true; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata["util"].getLeague(this.options.sport); this.options.requestData.apiKey=this.options.apiKey; this.options.requestData.divisionId=this.options.divisionId; if(!jQuery.isPlainObject(this.options.requestData.widgetOptions)) this.options.requestData.widgetOptions={}; this.options.requestData.widgetOptions.semantic=true; this.options.requestData.widgetOptions.noScorers=true; this.options.requestData.widgetOptions=JSON.stringify(this.options.requestData.widgetOptions); if(!this.options.dataUrl) this.options.dataUrl=hockeydata["util"]["UriComposer"].getDataUri("getSchedule", this.options); this.$domNode.addClass("-hd-los -hd-los-game-ticker"); this.dataSubscription=hockeydata["util"]["Data"].subscribe({ "begin": function(){ self.$domNode.addClass("-hd-loading"); }, "complete": function(){ self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data && ("rows" in e.data)){ self.options._divisionId=e.data.divisionId; self.options.paint(e.data.rows); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata["util"]["Data"].error(e, this.$domNode); }; this.paint=function(data){ var dataRows=data || []; var i; if(self.firstPaint){ var items=[]; var isFuture=false; self.firstPaint=false; self.ticker=new hockeydata["util"]["Ticker"](jQuery.extend({}, this.options, { "$domNode": jQuery("<div/>").appendTo(this.$domNode) })); if(dataRows.length > 0){ for(i=0; i < dataRows.length; i++){ var dataRow=dataRows[i]; if(dataRow["firstFuture"]) isFuture=true; if((isFuture || !self.options.futureOnly) && (!self.options.limit || items.length < self.options.limit)) this.addGame(dataRow, items); } } self.ticker.setItems(items); } else if(dataRows.length > 0) for(i=0; i < dataRows.length; i++) this.updateGame(dataRows[i]); }; this.addGame=function(game, items){ var i; var uri=hockeydata["util"]["UriComposer"].parseUri(self.options.gameLink, [ game.id, game.divisionId ]); var $game=jQuery("<div/>").addClass("-hd-los-game-ticker-game -hd-los-game-ticker-game-" + game.id); if(uri && game.gameStatus){ $game.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(uri)); $game.addClass("-hd-clickable"); } if("labels" in game && game["labels"] && game["labels"].length) for(i=0; i < game["labels"].length; i++) $game.addClass("-hd-label-" + game["labels"][i]); items.push($game); this.updateGame(game, $game); }; this.updateGame=function(game, $game){ $game=$game || jQuery(".-hd-los-game-ticker-game-" + game.id); if($game.length){ $game.empty(); var $homeTeamLogo=hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (self.options._divisionId || self.options.divisionId), "teamId": game.homeTeamId })); var $awayTeamLogo=hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (self.options._divisionId || self.options.divisionId), "teamId": game.awayTeamId })); if(self.options.showTeamShortName) $game.append(jQuery("<div/>").addClass("-hd-los-game-ticker-team-name -hd-los-game-ticker-team-name-home").append(game["homeTeamShortName"] || "")); if(self.options.showTeamLogo) $game.append(jQuery("<div/>").addClass("-hd-util-ticker-inline-image -hd-los-game-ticker-team-logo -hd-los-game-ticker-team-logo-home").append($homeTeamLogo)); if(game.gameStatus===0){ var dateTime=""; if(game["dateIsToBeDetermined"] && game["timeIsToBeDetermined"]) dateTime=hockeydata["i18n"].translate("TBD"); else { if(game.scheduledDate && !game["dateIsToBeDetermined"]) dateTime += game.scheduledDate["shortValue"]; else dateTime += hockeydata["i18n"].translate("TBD"); dateTime += " "; if(game["timeIsToBeDetermined"]) dateTime += hockeydata["i18n"].translate("TBD"); else dateTime += game.scheduledTime; } $game.append(jQuery("<div/>").addClass("-hd-los-game-ticker-date").append(dateTime)); } else if(game.gameStatus >= 1){ var $gameScore=jQuery("<div/>").addClass("-hd-los-game-ticker-score").append("<span class='-hd-los-game-ticker-score-home'>" + game.homeTeamScore + "</span><span class='-hd-los-game-ticker-score-divider'></span><span class='-hd-los-game-ticker-score-away'>" + game.awayTeamScore + "</span>"); if(game["isShootOut"]) $gameScore.append("<span class='-hd-los-game-ticker-shootout'>" + hockeydata["i18n"].translate("SO", "Shootout") + "</span>"); else if(game["isOvertime"]) $gameScore.append("<span class='-hd-los-game-ticker-overtime'>" + hockeydata["i18n"].translate("OT", "Overtime") + "</span>"); $game.append($gameScore); $game.attr("title", game.scheduledDate.value + " " + game.scheduledTime); } if(self.options.showTeamLogo) $game.append(jQuery("<div/>").addClass("-hd-util-ticker-inline-image -hd-los-game-ticker-team-logo -hd-los-game-ticker-team-logo-away").append($awayTeamLogo)); if(self.options.showTeamShortName) $game.append(jQuery("<div/>").addClass("-hd-los-game-ticker-team-name -hd-los-game-ticker-team-name-away").append(game["awayTeamShortName"] || "")); if(self.options.showBroadcasters && ("broadcasters" in game) && hockeydata["util"].isArray(game["broadcasters"])){ var $broadcasters=jQuery("<div/>").addClass("-hd-los-game-ticker-broadcasters").appendTo($game); for(var i=0; i < game["broadcasters"].length; i++){ var broadcaster=game["broadcasters"][i]; var $broadcasterLogo=hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getBroadcasterLogoUri({ "broadcasterId": broadcaster.broadcasterId })); $broadcasters.append(jQuery("<div/>").addClass("-hd-util-ticker-inline-image -hd-los-game-ticker-broadcaster-logo").append($broadcasterLogo)); } } } }; this.initialize(); } hockeydata.extend(GameTicker, hockeydata["los"], "GameTicker"); })()); ((function(){ function KnockoutStage(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "apiKey": "VOID", "autoReload": false, "calculateTotalScore": false, "columnDefinitionGames": null, "columnsGames": null, "columnSetGames": "default", "dataUrl": null, "divisionId": null, "divisionIdUrlParameter": "divisionId", "error": function(e){ self.error(e); }, "gameLink": null, "hideGameHeaders": true, "league": null, "paint": function(e){ self.paint(e); }, "requestData": {}, "sport": null, "teamLink": null, "textNoGames": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.options.requestData.apiKey=this.options.apiKey; this.$domNode=this.options.$domNode; this.domNodes={}; this.firstPaint=true; this.phases={}; this.dataSubscription=null; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata["util"].getLeague(this.options.sport); if(!this.options.divisionId && this.options.divisionIdUrlParameter) this.options.divisionId=hockeydata["util"].getParameter(this.options.divisionIdUrlParameter); this.options.requestData.divisionId=this.options.divisionId; if(!this.options.dataUrl) this.options.dataUrl=hockeydata["util"]["UriComposer"].getDataUri("getKnockoutStage", this.options); this.$domNode.addClass("-hd-los -hd-los-knockout-stage"); this.dataSubscription=hockeydata["util"]["Data"].subscribe({ "begin": function(){ self.$domNode.addClass("-hd-loading"); }, "complete": function(){ self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data){ self.options._divisionId=e.data.divisionId; self.options.paint(e.data); } else self.options.error(e); }, "url": this.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata["util"]["Data"].error(e, this.$domNode); }; this.paint=function(data){ data=data || {}; var dataPhases=data.phases || []; if(self.firstPaint){ self.firstPaint=false; self.domNodes.$phasesTable=jQuery("<table/>").appendTo(self.$domNode); self.domNodes.$phasesTableBody=jQuery("<tbody/>").appendTo(self.domNodes.$phasesTable); self.domNodes.$phasesRow=jQuery("<tr/>").appendTo(self.domNodes.$phasesTableBody); if(!this.options.columnDefinitionGames) this.options.columnDefinitionGames=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "knockoutStageGames" }); if(!this.options.columnsGames) this.options.columnsGames=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSetGames, "type": "knockoutStageGames" }); else if(hockeydata["util"].isString(this.options.columnsGames)) this.options.columnsGames=this.options.columnsGames.split(","); } for(var i=0; i < dataPhases.length; i++){ var dataPhase=dataPhases[i]; var phaseId=String(dataPhase.divisionId); if(!(phaseId in self.phases)) self.phases[phaseId]=new self.Phase(dataPhase); self.phases[phaseId].updateEncounters(dataPhase["encounters"]); } }; this.Phase=function(phase){ var $phase=jQuery("<td/>").addClass("-hd-los-knockout-stage-phase").appendTo(self.domNodes.$phasesRow); var $header=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-header").appendTo($phase); var $encounters=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounters").appendTo($phase); var encounters={}; $header.html(phase["divisionName"] || ""); this.updateEncounters=function(dataEncounters){ dataEncounters=dataEncounters || []; for(var i=0; i < dataEncounters.length; i++){ var dataEncounter=dataEncounters[i]; var encounterId=String(dataEncounter.id); if(!encounters[encounterId]) encounters[encounterId]=new Encounter(dataEncounter); encounters[encounterId].updateGames(dataEncounter.games); } }; var Encounter=function(encounter){ var $encounter=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounter").appendTo($encounters); var $header=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounter-header").appendTo($encounter); var $info=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounter-info").appendTo($encounter); var $teamB=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounter-team -hd-los-knockout-stage-phase-encounter-team-b").appendTo($info); var $teamBName=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounter-team-name -hd-los-knockout-stage-phase-encounter-team-name-b").appendTo($teamB); var $teamBLogo=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounter-team-logo -hd-los-knockout-stage-phase-encounter-team-logo-b").appendTo($teamB); var $teamA=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounter-team -hd-los-knockout-stage-phase-encounter-team-a").appendTo($info); var $teamAName=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounter-team-name -hd-los-knockout-stage-phase-encounter-team-name-a").appendTo($teamA); var $teamALogo=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounter-team-logo -hd-los-knockout-stage-phase-encounter-team-logo-a").appendTo($teamA); var $standings=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounter-standings").appendTo($info); var $score=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounter-score").appendTo($info); var $scoreTeamA=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounter-score-team-a").appendTo($score); var $scoreDivider=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounter-score-divider").appendTo($score); var $scoreTeamB=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounter-score-team-b").appendTo($score); var $games=jQuery("<div/>").addClass("-hd-los-knockout-stage-phase-encounter-games").appendTo($encounter); var gamesTableHeaders=[]; var teams=encounter["teams"] || []; var teamA=teams[0] || {}; var teamB=teams[1] || {}; var teamAUri=hockeydata["util"]["UriComposer"].parseUri(self.options.teamLink, [ teamA.id, self.options.divisionId ]); var teamBUri=hockeydata["util"]["UriComposer"].parseUri(self.options.teamLink, [ teamB.id, self.options.divisionId ]); var i; for(i=0; i < self.options.columnsGames.length; i++){ var column=self.options.columnsGames[i]; if(self.options.columnDefinitionGames && (column in self.options.columnDefinitionGames) && ("header" in self.options.columnDefinitionGames[column])) gamesTableHeaders.push(self.options.columnDefinitionGames[column]["header"]); else gamesTableHeaders.push({ "html": "&nbsp;" }); } var games=new hockeydata["util"]["IntelliTable"](jQuery.extend({}, self.options, { "$domNode": $games, "headers": gamesTableHeaders, "hideHeaders": self.options.hideGameHeaders })); var encounterHeader=encounter["longname"] || ""; if(encounter["bestOf"]){ if(encounterHeader) encounterHeader += " | "; encounterHeader += hockeydata["util"].sprintf(hockeydata["i18n"].translate("Best of %s"), (encounter["bestOf"] || "")); if(self.options.calculateTotalScore){ teamA.gamesWon=0; teamB.gamesWon=0; for(i=0; i < encounter.games.length; i++){ var game=encounter.games[i]; if(teamA.id===game.homeTeamId){ teamA.gamesWon += game.homeTeamScore; teamB.gamesWon += game.awayTeamScore; } else { teamA.gamesWon += game.awayTeamScore; teamB.gamesWon += game.homeTeamScore; } } } else if(encounter["bestOf"]===1 && encounter.games.length===1){ if(teamA.id===encounter.games[0].homeTeamId){ teamA.gamesWon=encounter.games[0].homeTeamScore; teamB.gamesWon=encounter.games[0].awayTeamScore; } else { teamA.gamesWon=encounter.games[0].awayTeamScore; teamB.gamesWon=encounter.games[0].homeTeamScore; } } } if(("labels" in encounter) && encounter["labels"].length) for(i=0; i < encounter["labels"].length; i++) $encounter.addClass("-hd-label-" + encounter["labels"][i]); $header.html(encounterHeader); $teamAName.html(teamA["shortname"] || ""); $teamALogo.html(hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (self.options._divisionId || self.options.divisionId), "teamId": teamA.id }))); $scoreTeamA.html(teamA.gamesWon); $scoreDivider.html(":"); $teamBName.html(teamB["shortname"] || ""); $teamBLogo.html(hockeydata["util"]["ImageLoader"].load(hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (self.options._divisionId || self.options.divisionId), "teamId": teamB.id }))); $scoreTeamB.html(teamB.gamesWon); if(teamA.gamesWon > teamB.gamesWon){ if(teamA.gamesWon > (encounter["bestOf"] / 2)) $standings.html(hockeydata["util"].sprintf(hockeydata["i18n"].translate("%s wins series"), teamA["shortname"])); else $standings.html(hockeydata["util"].sprintf(hockeydata["i18n"].translate("%s leads series"), teamA["shortname"])); } else if(teamB.gamesWon > teamA.gamesWon){ if(teamB.gamesWon > (encounter["bestOf"] / 2)) $standings.html(hockeydata["util"].sprintf(hockeydata["i18n"].translate("%s wins series"), teamB["shortname"])); else $standings.html(hockeydata["util"].sprintf(hockeydata["i18n"].translate("%s leads series"), teamB["shortname"])); } else if(teamA.gamesWon > 0) $standings.html(hockeydata["i18n"].translate("Series tied")); else $standings.html("&nbsp;"); if(teamAUri){ $teamAName.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(teamAUri)).addClass("-hd-clickable"); $teamALogo.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(teamAUri)).addClass("-hd-clickable"); } if(teamBUri){ $teamBName.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(teamBUri)).addClass("-hd-clickable"); $teamBLogo.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(teamBUri)).addClass("-hd-clickable"); } this.updateGames=function(data){ var dataRows=data || []; var tableRows=[]; if(dataRows.length > 0){ for(var i=0; i < dataRows.length; i++){ var dataRow=dataRows[i]; var uri=hockeydata["util"]["UriComposer"].parseUri(self.options.gameLink, [ dataRow.id, self.options.divisionId ]); var tableRow={ "cols": [], "class": "-hd-los-knockout-stage-phase-encounter-games-row-" + dataRow.id }; var j; if((i + 1) > encounter["gamesNeeded"]) tableRow.class += " -hd-los-knockout-stage-phase-encounter-game-optional"; if(uri && dataRow.gameStatus) tableRow.onClick=hockeydata["util"]["LinkComposer"].getLinkClickFunction(uri); for(j=0; j < self.options.columnsGames.length; j++){ var columnName=self.options.columnsGames[j]; var columnDefinition=(columnName in self.options.columnDefinitionGames) ? self.options.columnDefinitionGames[columnName] : {}; var cellValue=null; var cell={ "class": "-hd-los-knockout-stage-phase-encounter-games-col-" + columnName }; if(columnName in dataRow){ var dataValue=dataRow[columnName]; if(jQuery.isPlainObject(dataValue)){ cellValue=("value" in dataValue) ? dataValue.value : "&nbsp;"; if("sortValue" in dataValue) cell.sortValue=dataValue.sortValue; if("labels" in dataValue && dataValue["labels"].length) for(var k=0; k < dataValue["labels"].length; k++) cell.class += " -hd-label-" + dataValue["labels"][k]; if("key" in columnDefinition){ var key=columnDefinition["key"]; if(key in dataValue) cellValue=dataValue[key]; } } else cellValue=dataValue; } if("class" in columnDefinition) cell.class += " " + columnDefinition.class; if("format" in columnDefinition && jQuery.isFunction(columnDefinition.format)) cellValue=columnDefinition.format(cellValue); if("fn" in columnDefinition && jQuery.isFunction(columnDefinition.fn)) cellValue=columnDefinition.fn(dataRow, this.options); cell.html=cellValue===null ? "&nbsp;" : cellValue; cell.value=cellValue; tableRow.cols.push(cell); } if("labels" in dataRow && dataRow["labels"].length) for(j=0; j < dataRow["labels"].length; j++) tableRow.class += " -hd-label-" + dataRow["labels"][j]; if(dataRow.scheduledDate) tableRows.push(tableRow); } } else if(self.options.textNoGames) tableRows.push({ "cols": [ { "html": self.options.textNoGames, "colSpan": self.options.columnsGames.length } ], "class": "-hd-util-intellitable-no-data" }); games.setRows(tableRows); }; }; }; this.initialize(); } hockeydata.extend(KnockoutStage, hockeydata["los"], "KnockoutStage"); })()); ((function(){ function Compact(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "apiKey": "VOID", "autoReload": false, "columnDefinition": null, "columns": null, "columnSet": "default", "dataUrl": null, "divisionId": null, "divisionIdUrlParameter": "divisionId", "error": function(e){ self.error(e); }, "hideHeaders": true, "league": null, "paint": function(e){ self.paint(e); }, "requestData": {}, "rowLink": null, "sport": null, "textNoData": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.options.requestData.apiKey=this.options.apiKey; this.$domNode=this.options.$domNode; this.firstPaint=true; this.phases={}; this.dataSubscription=null; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata["util"].getLeague(this.options.sport); if(!this.options.divisionId && this.options.divisionIdUrlParameter) this.options.divisionId=hockeydata["util"].getParameter(this.options.divisionIdUrlParameter); this.options.requestData.divisionId=this.options.divisionId; if(!this.options.dataUrl) this.options.dataUrl=hockeydata["util"]["UriComposer"].getDataUri("getKnockoutStage", this.options); this.$domNode.addClass("-hd-los -hd-los-knockout-stage-compact"); this.dataSubscription=hockeydata["util"]["Data"].subscribe({ "begin": function(){ self.$domNode.addClass("-hd-loading"); }, "complete": function(){ self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data){ self.options._divisionId=e.data.divisionId; self.options.paint(e.data); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata["util"]["Data"].error(e, this.$domNode); }; this.paint=function(data){ data=data || {}; var dataPhases=data.phases || []; if(self.firstPaint){ self.firstPaint=false; if(!this.options.columnDefinition) this.options.columnDefinition=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "knockoutStageCompact" }); if(!this.options.columns) this.options.columns=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSet, "type": "knockoutStageCompact" }); else if(hockeydata["util"].isString(this.options.columns)) this.options.columns=this.options.columns.split(","); } for(var i=0; i < dataPhases.length; i++){ var dataPhase=dataPhases[i]; var phaseId=String(dataPhase.divisionId); if(!(phaseId in self.phases)) self.phases[phaseId]=new self.Phase(dataPhase); self.phases[phaseId].updateEncounters(dataPhase["encounters"]); } }; this.Phase=function(phase){ var $phase=jQuery("<div/>").addClass("-hd-los-knockout-stage-compact-phase").appendTo(self.$domNode); var $header=jQuery("<div/>").addClass("-hd-los-knockout-stage-compact-phase-header").appendTo($phase); var $encounters=jQuery("<div/>").addClass("-hd-los-knockout-stage-compact-phase-encounters").appendTo($phase); var tableHeaders=[]; for(var i=0; i < self.options.columns.length; i++){ var column=self.options.columns[i]; if(self.options.columnDefinition && (column in self.options.columnDefinition) && ("header" in self.options.columnDefinition[column])) tableHeaders.push(self.options.columnDefinition[column]["header"]); else tableHeaders.push({ "html": "&nbsp;" }); } var table=new hockeydata["util"]["IntelliTable"](jQuery.extend({}, self.options, { "$domNode": jQuery("<div/>").appendTo($encounters), "headers": tableHeaders })); $header.html(phase["divisionName"] || ""); this.updateEncounters=function(dataRows){ dataRows=dataRows || []; var tableRows=[]; if(dataRows.length > 0){ for(var i=0; i < dataRows.length; i++){ var dataRow=dataRows[i]; var uri=hockeydata["util"]["UriComposer"].parseUri(self.options.rowLink, [ dataRow.id, self.options.divisionId ]); var tableRow={ "cols": [], "class": "-hd-los-knockout-stage-compact-phase-encounter-row-" + dataRow.id }; var j; if(uri) tableRow.onClick=hockeydata["util"]["LinkComposer"].getLinkClickFunction(uri); if(dataRow["bestOf"]===1 && dataRow.games.length===1){ if(dataRow.teams[0].id===dataRow.games[0].homeTeamId){ dataRow.teams[0].gamesWon=dataRow.games[0].homeTeamScore; dataRow.teams[1].gamesWon=dataRow.games[0].awayTeamScore; } else { dataRow.teams[0].gamesWon=dataRow.games[0].awayTeamScore; dataRow.teams[1].gamesWon=dataRow.games[0].homeTeamScore; } } for(j=0; j < self.options.columns.length; j++){ var columnName=self.options.columns[j]; var columnDefinition=(columnName in self.options.columnDefinition) ? self.options.columnDefinition[columnName] : {}; var cellValue=null; var cell={ "class": "-hd-los-knockout-stage-compact-phase-encounter-col-" + columnName }; if(columnName in dataRow){ var dataValue=dataRow[columnName]; if(jQuery.isPlainObject(dataValue)){ cellValue=("value" in dataValue) ? dataValue.value : "&nbsp;"; if("sortValue" in dataValue) cell.sortValue=dataValue.sortValue; if("labels" in dataValue && dataValue["labels"].length) for(var k=0; k < dataValue["labels"].length; k++) cell.class += " -hd-label-" + dataValue["labels"][k]; if("key" in columnDefinition){ var key=columnDefinition["key"]; if(key in dataValue) cellValue=dataValue[key]; } } else cellValue=dataValue; } if("class" in columnDefinition) cell.class += " " + columnDefinition.class; if("format" in columnDefinition && jQuery.isFunction(columnDefinition.format)) cellValue=columnDefinition.format(cellValue); if("fn" in columnDefinition && jQuery.isFunction(columnDefinition.fn)) cellValue=columnDefinition.fn(dataRow, self.options); cell.html=cellValue===null ? "&nbsp;" : cellValue; cell.value=cellValue; tableRow.cols.push(cell); } if("labels" in dataRow && dataRow["labels"].length) for(j=0; j < dataRow["labels"].length; j++) tableRow.class += " -hd-label-" + dataRow["labels"][j]; tableRows.push(tableRow); } } else if(self.options.textNoData){ tableRows.push({ "cols": [ { "html": self.options.textNoData, "colSpan": self.options.columns.length } ], "class": "-hd-util-intellitable-no-data" }); } table.setRows(tableRows); }; }; this.initialize(); } hockeydata.extend(Compact, hockeydata["los"]["KnockoutStage"], "Compact"); })()); ( ( function(){ var PopUpHandler=function(){ var popUps=[]; this.add=function( popUp ){ popUps.push( popUp ); }; this.remove=function( popUp ){ for( var i=0; i < popUps.length; i++ ){ if( popUps[ i ]===popUp ){ popUps.splice( i, 1 ); return true; } } return false; }; this.closeAll=function( popUp ){ for( var i=0; i < popUps.length; i++ ){ if( popUps[ i ] !== popUp ){ popUps[ i ].hide(); } } }; jQuery( document ).click( this.closeAll ); }; var popUpHandler=new PopUpHandler(); var PopUp=function ( options ){ var _$popup, _$content, _$arrow; var _self=this; var _defaultOptions={ '$domNode': jQuery( '<div/>' ), '$handle': null, '$dim': null, 'class': null, 'content': null, 'handle': 'hover', 'show': null, 'position': 'top' }; var _options=jQuery.extend( {}, _defaultOptions, options || {} ); var _initialize=function(){ popUpHandler.add( _self ); _$popup=jQuery( '<div/>' ).addClass( '-hd-util-pop-up -hd-util-pop-up-' + _options.position ).appendTo( _options.$domNode ); _$content=jQuery( '<div/>' ).addClass( '-hd-util-pop-up-content' ).append( _options.content ); _$arrow=jQuery( '<div/>' ).addClass( '-hd-util-pop-up-arrow' ).appendTo( _$popup ); _options.class && _$popup.addClass( _options.class ); var $handle=_options.$handle || _options.$domNode; if( _options.position==='top' || _options.position==='left' ){ _$content.appendTo( _$popup ); _$arrow.appendTo( _$popup ); } else { _$arrow.appendTo( _$popup ); _$content.appendTo( _$popup ); } $handle.css( 'position', 'relative' ); if( _options.handle==='click' ){ $handle.addClass( '-hd-clickable' ).on( 'click', _show ); } else { $handle.on( 'mouseover', _show ); $handle.on( 'mouseout', _hide ); } _reposition(); jQuery( window ).resize( _reposition ); }; var _reposition=function(){ var $dim=_options.$dim || _options.$domNode; if( _options.position==='top' || _options.position==='bottom' ){ _$popup.css( 'left', ( ( ( _$popup.outerWidth() / 2 ) - ( $dim.outerWidth() / 2 ) ) * -1 ) + 'px' ); } else { _$popup.css( 'top', ( ( ( _$popup.outerHeight() / 2 ) - ( $dim.outerHeight() / 2 ) ) * -1 ) + 'px' ); } }; var _destroy=function(){ popUpHandler.remove( _self ); _$popup.remove(); }; var _show=function( e ){ e.stopPropagation(); popUpHandler.closeAll( _self ); _reposition(); _$popup.toggleClass( '-hd-util-pop-up-visible' ); _options.show && _options.show(); }; var _hide=function(){ _$popup.removeClass( '-hd-util-pop-up-visible' ); }; this.destroy=_destroy; this.show=_show; this.hide=_hide; _initialize(); }; hockeydata.extend( PopUp, hockeydata[ 'util' ], 'PopUp' ); } )() ); ( ( function(){ function SportsCard( options ){ var _self=this; var _defaultOptions={ '$domNode': jQuery( '<div/>' ), 'apiKey': 'VOID', 'dataUrl': null, 'divisionId': null, 'error': _error, "fieldDefinitionPlayerFacts": null, "fieldsPlayerFacts": null, "fieldSetPlayerFacts": "default", 'league': null, 'loadingText': hockeydata[ 'i18n' ].translate( 'Loading...' ), 'playerLinkText': hockeydata[ 'i18n' ].translate( 'View Full Player Stats' ), 'requestData': {}, 'playerId': null, 'playerLink': null, 'popUpOptions': { 'class': '-hd-los ', 'handle': 'click', 'show': _show }, 'render': _self.render, 'sport': null, 'teamId': null, 'teamLink': null, 'type': 'generic' }; var _loaded=false; _self.options=jQuery.extend( true, {}, _defaultOptions, options || {} ); function _initialize(){ if( ! _self.options.league ){ _self.options.league=hockeydata[ 'util' ].getLeague( _self.options.sport ); } _self.options.requestData.apiKey=_self.options.apiKey; _self.options.requestData.divisionId=_self.options.divisionId; if( _self.options.type==='player' ){ _self.options.requestData.playerId=_self.options.playerId; } else if( _self.options.type==='team' ){ _self.options.requestData.teamId=_self.options.teamId; } if( ! _self.options.dataUrl ){ _self.options.dataUrl=hockeydata[ 'util' ][ 'UriComposer' ].getDataUri( 'getPlayerDetails', _self.options ); } if( ! _self.options.popUpOptions.content ){ _self.options.popUpOptions.content=_self.options.$domNode; } _self.options.$domNode.addClass( '-hd-los-sports-card -hd-los-sports-card-' + _self.options.type ); new hockeydata[ 'util' ][ 'PopUp' ]( _self.options.popUpOptions ); } function _show(){ if( ! _loaded ){ _load(); } } function _load(){ var dataSubscription=hockeydata[ 'util' ][ 'Data' ].subscribe( { 'begin': function(){ _self.options.$domNode.addClass( '-hd-loading').html( _self.options.loadingText ); }, 'complete': function(){ _loaded=true; _self.options.$domNode.removeClass( '-hd-loading' ); dataSubscription.unsubscribe(); }, 'data': _self.options.requestData, 'error': _self.options.error, 'success': function( e ){ if( e[ 'statusId' ] > 0 && ( 'data' in e ) && e.data ){ _self.options._divisionId=e.data.divisionId; _self.options.$domNode.empty(); _self.options.render.call( _self, e.data ); } else { _self.options.error(e); } }, 'url': _self.options.dataUrl } ); } function _error( e ){ hockeydata[ 'util' ][ 'Data' ].error( e, _self.options.$domNode); } _initialize(); } SportsCard.prototype.render=function(){ return 'Generic Sports Card'; }; SportsCard.Player=function( options ){ SportsCard.call( this, jQuery.extend( {}, { 'type': 'player' }, options || {} ) ); }; SportsCard.Player.prototype=Object.create( SportsCard.prototype ); SportsCard.Player.prototype.render=function( e ){ e=e || {}; var _self=this; var $playerInfo=jQuery( '<div/>' ).addClass( '-hd-los-sports-card-player-info' ).appendTo( _self.options.$domNode ); var $playerTeamLogo=jQuery( '<div/>' ).addClass( '-hd-los-sports-card-player-team-logo' ).appendTo( $playerInfo ); var $playerPortrait=jQuery( '<div/>' ).addClass( '-hd-los-sports-card-player-portrait' ).appendTo( $playerInfo ); var $playerName=jQuery( '<div/>' ).addClass( '-hd-los-sports-card-player-name' ).appendTo( $playerInfo ); var $playerJerseyNo=jQuery( '<div/>' ).addClass( '-hd-los-sports-card-player-jersey-no' ).appendTo( $playerInfo ); var $playerPosition=jQuery( '<div/>' ).addClass( '-hd-los-sports-card-player-position' ).appendTo( $playerInfo ); var $playerFacts=jQuery( '<div/>' ).addClass( '-hd-los-sports-card-player-facts' ).appendTo( _self.options.$domNode ); var teamLogoUri=( e.images[ 'teamLogo' ] || hockeydata[ 'util' ][ 'UriComposer' ].getTeamLogoUri( { 'sport': _self.options.sport, 'league': _self.options.league, 'divisionId': ( _self.options._divisionId || _self.options.divisionId ), 'teamId': e.playerData.teamId } ) ); var playerPortraitUri=( e.images[ 'playerSmallPortrait' ] || hockeydata[ 'util' ][ 'UriComposer' ].getPlayerPortraitUri( { 'sport': _self.options.sport, 'league': _self.options.league, 'divisionId': ( _self.options._divisionId || _self.options.divisionId ), 'playerId': e.playerData.id } ) ); $playerTeamLogo.append( hockeydata[ 'util' ][ 'ImageLoader' ].load( teamLogoUri ) ); $playerPortrait.append( hockeydata[ 'util' ][ 'ImageLoader' ].load( playerPortraitUri, { 'onerror': function(){ this.src=hockeydata[ 'util' ][ 'UriComposer' ].getGhostPlayerPortraitUri( { 'sport': _self.options.sport } ); } } ) ); $playerName.append( jQuery( '<span/>' ).append( ( e.playerData.playerLastname || '' ) + ' ' + ( e.playerData.playerFirstname || '' ) ) ); $playerJerseyNo.append( e.playerData.playerJerseyNr || '&nbsp;' ); $playerPosition.append( hockeydata[ 'los' ][ 'Configuration' ].getPlayerPosition( e.playerData.position, _self.options.sport ) || e.playerData.position || '' ); if( _self.options.playerLink ){ jQuery( '<div/>' ).addClass( '-hd-los-sports-card-player-link' ).appendTo( _self.options.$domNode ).append( jQuery( '<a/>' ).attr( 'href', _self.options.playerLink ).html( _self.options.playerLinkText ) ); } if( ! _self.fieldDefinitionPlayerFacts ){ _self.options.fieldDefinitionPlayerFacts=hockeydata[ 'los' ][ 'Configuration' ].getFieldDefinition( { 'sport': _self.options.sport, 'league': _self.options.league, 'type': 'sportsCardPlayerFacts' } ); } if( ! _self.options.fieldsPlayerFacts ){ _self.options.fieldsPlayerFacts=hockeydata[ 'los' ][ 'Configuration' ].getFields( { 'sport': _self.options.sport, 'league': _self.options.league, 'fieldSet': _self.options.fieldSetPlayerFacts, 'type': 'sportsCardPlayerFacts' } ); } else if( hockeydata[ 'util' ].isString( _self.options.fieldsPlayerFacts ) ){ _self.options.fieldsPlayerFacts=_self.options.fieldsPlayerFacts.split( ',' ); } if( hockeydata[ 'util' ].isArray( _self.options.fieldsPlayerFacts ) ){ for( var i=0; i < _self.options.fieldsPlayerFacts.length; i++ ){ var field=_self.options.fieldsPlayerFacts[ i ]; var value=( field in e.playerData ) ? e.playerData[ field ] : null; var fieldDefinition=( field in _self.options.fieldDefinitionPlayerFacts ) ? _self.options.fieldDefinitionPlayerFacts[ field ] : {}; var $field=jQuery( '<div/>' ).addClass( '-hd-los-sports-card-player-fact-row -hd-los-sports-card-player-fact-row-' + field ).appendTo( $playerFacts ); var $label=jQuery( '<div/>' ).addClass( '-hd-los-sports-card-player-fact-label' ).appendTo( $field ); var $value=jQuery( '<div/>' ).addClass( '-hd-los-sports-card-player-fact-value' ).appendTo( $field ); if( 'format' in fieldDefinition && jQuery.isFunction( fieldDefinition.format ) ){ value=fieldDefinition.format( value ); } if( 'fn' in fieldDefinition && jQuery.isFunction( fieldDefinition.fn ) ){ value=fieldDefinition.fn( data.playerData, _self.options ); } $label.append( jQuery( '<div/>' ).append( ( 'label' in fieldDefinition ) ? fieldDefinition.label : '&nbsp;' ) ); $value.append( jQuery( '<div/>' ).append( value===null ? '&nbsp;' : value ) ); } } }; hockeydata.extend( SportsCard, hockeydata[ 'los' ], 'SportsCard' ); } )() ); ((function(){ function Leaders(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "additionalColumns": null, "apiKey": "VOID", "autoReload": false, "columnDefinition": null, "columns": null, "columnSet": "default", "dataUrl": null, "divisionId": null, "divisionIdUrlParameter": "divisionId", "enablePlayerCards": false, "error": function(e){ self.error(e); }, "league": null, "limit": 0, "offset": 0, "paint": function(e){ self.paint(e); }, "requestData": {}, "rowLink": null, "showRanking": true, "sport": null, "textNoData": null, "type": null, "teamId": null, "teamIdUrlParameter": "teamId" }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.options.requestData.apiKey=this.options.apiKey; this.$domNode=this.options.$domNode; this.table=null; this.dataSubscription=null; this.firstPaint=true; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata["util"].getLeague(this.options.sport); if(!this.options.divisionId && this.options.divisionIdUrlParameter) this.options.divisionId=hockeydata["util"].getParameter(this.options.divisionIdUrlParameter); this.options.requestData.divisionId=this.options.divisionId; if(!this.options.dataUrl) this.options.dataUrl=hockeydata["util"]["UriComposer"].getDataUri("getLeaders", this.options); if(!this.options.columnDefinition) this.options.columnDefinition=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "leaders" + this.options.type }); if(!this.options.columns) this.options.columns=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSet, "type": "leaders" + this.options.type }); else if(hockeydata["util"].isString(this.options.columns)) this.options.columns=this.options.columns.split(","); if(this.options.teamId) this.options.teamId=Number(this.options.teamId); else if(this.options.teamIdUrlParameter) this.options.teamId=Number(hockeydata["util"].getParameter(this.options.teamIdUrlParameter)); hockeydata["los"]["Configuration"].extendColumns(this.options.columns, this.options.additionalColumns); this.$domNode.addClass("-hd-los -hd-los-leaders -hd-los-leaders-" + this.options.type); this.dataSubscription=hockeydata["util"]["Data"].subscribe({ "begin": function(){ if(self.table) self.table.deactivate(); self.$domNode.addClass("-hd-loading"); }, "complete": function(){ if(self.table && self.table.inactive) setTimeout(function(){ self.table.activate(); }, 500); self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data && ("rows" in e.data)){ self.options._divisionId=e.data.divisionId; self.options.paint(e.data.rows); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata["util"]["Data"].error(e, this.$domNode); }; this.initializeTable=function(){ var tableHeaders=[]; for(var i=0; i < this.options.columns.length; i++){ var column=this.options.columns[i]; if(this.options.columnDefinition && (column in this.options.columnDefinition) && ("header" in this.options.columnDefinition[column])) tableHeaders.push(this.options.columnDefinition[column]["header"]); else tableHeaders.push({"html": "&nbsp;"}); } var tableOptions=jQuery.extend({}, this.options, { "$domNode": jQuery("<div/>").appendTo(this.$domNode), "headers": tableHeaders, "class": "-hd-los-leaders-table" }); if(self.options.enablePlayerCards){ tableOptions.onDrawBody=function(){ self.$domNode.find(".-hd-util-intellitable-data").css("overflow", "unset"); self.$domNode.find(".-hd-util-intellitable-data td:nth-child(2)").each(function(index){ var $this=jQuery(this).css("position", "relative"); var $tr=$this.parent(); new hockeydata["los"]["SportsCard"].Player({ "apiKey": self.options.apiKey, "divisionId": self.options.divisionId, "playerId": $tr.attr("data-id"), "playerLink": $tr.attr("data-uri"), "league": self.options.league, "popUpOptions": { "$domNode": $this, "$handle": $tr, "$dim": $tr, "position": index < 10 ? "bottom" : "top" }, "sport": self.options.sport }); }); }; } this.table=new hockeydata["util"]["IntelliTable"](tableOptions); }; this.checkRow=function(dataRow){ return (!self.options.teamId || dataRow.teamId===self.options.teamId); }; this.paint=function(data){ var dataRows=data || []; var tableRows=[]; var limit=self.options.limit > 0 ? self.options.offset + self.options.limit : dataRows.length; if(self.firstPaint){ self.firstPaint=false; self.initializeTable(); } if(dataRows.length > 0){ for(var i=self.options.offset; i < limit && i < dataRows.length; i++){ var dataRow=dataRows[i]; if(!self.checkRow(dataRow)) continue; var uri=hockeydata["util"]["UriComposer"].parseUri(self.options.rowLink, [ dataRow.id, self.options.divisionId ]); var tableRow={ "cols": [], "class": "-hd-los-leaders-row-" + dataRow.id }; var j; if(self.options.type==="Goalkeepers" && ("shotsAgainst" in dataRow) && dataRow.shotsAgainst===0) continue; if(self.options.enablePlayerCards){ tableRow["data-id"]=dataRow.id; if(uri) tableRow["data-uri"]=uri; } else if(uri) tableRow.onClick=hockeydata["util"]["LinkComposer"].getLinkClickFunction(uri); for(j=0; j < self.options.columns.length; j++){ var columnName=self.options.columns[j]; var columnDefinition=(columnName in self.options.columnDefinition) ? self.options.columnDefinition[columnName] : {}; var cellValue=null; var cell={ "class": "-hd-los-leaders-col-" + columnName }; if(columnName in dataRow){ var dataValue=dataRow[columnName]; if(jQuery.isPlainObject(dataValue)){ cellValue=("value" in dataValue) ? dataValue.value : "&nbsp;"; if("sortValue" in dataValue) cell.sortValue=dataValue.sortValue; if("labels" in dataValue && dataValue["labels"].length) for(var k=0; k < dataValue["labels"].length; k++) cell.class += " -hd-label-" + dataValue["labels"][k]; if("key" in columnDefinition){ var key=columnDefinition["key"]; if(key in dataValue) cellValue=dataValue[key]; } } else cellValue=dataValue; } if("class" in columnDefinition) cell.class += " " + columnDefinition.class; if("format" in columnDefinition && jQuery.isFunction(columnDefinition.format)) cellValue=columnDefinition.format(cellValue); if("fn" in columnDefinition && jQuery.isFunction(columnDefinition.fn)) cellValue=columnDefinition.fn(dataRow, this.options); if("sortValue" in columnDefinition && jQuery.isFunction(columnDefinition.sortValue)) cell.sortValue=columnDefinition.sortValue(dataRow, this.options); cell.html=cellValue===null ? "&nbsp;" : cellValue; cell.value=cellValue; tableRow.cols.push(cell); } if("labels" in dataRow && dataRow["labels"].length) for(j=0; j < dataRow["labels"].length; j++) tableRow.class += " -hd-label-" + dataRow["labels"][j]; tableRows.push(tableRow); } } if(!tableRows.length && self.options.textNoData) tableRows.push({ "cols": [{ "html": self.options.textNoData, "colSpan": self.options.columns.length }], "class": "-hd-util-intellitable-no-data" }); self.table.setRows(tableRows); }; this.initialize(); } hockeydata.extend(Leaders, hockeydata["los"], "Leaders"); })()); ((function(){ function Schedule(options){ var self=this; var filterNames=[ "awayTeamLongName", "awayTeamLongname", "awayTeamShortName", "awayTeamShortname", "homeTeamLongName", "homeTeamLongname", "homeTeamShortName", "homeTeamShortname" ]; this.defaultOptions={ "$domNode": jQuery("<div/>"), "additionalColumns": null, "apiKey": "VOID", "autoReload": false, "columnDefinition": null, "columns": null, "columnSet": "default", "dataUrl": null, "divisionId": null, "divisionIdUrlParameter": "divisionId", "error": function(e){ self.error(e); }, "futureOnly": false, "league": null, "limit": 0, "liveOnly": false, "maxDate": null, "minDate": null, "paint": function(e){ self.paint(e); }, "requestData": {}, "rowLink": null, "showXlsxDownloadLink": false, "sport": null, "textNoData": null, "teamId": null, "teamName": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.$domNode=this.options.$domNode; this.table=null; this.dataSubscription=null; this.firstPaint=true; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata["util"].getLeague(this.options.sport, "hockeydata.los.Schedule"); if(!this.options.divisionId && this.options.divisionIdUrlParameter) this.options.divisionId=hockeydata["util"].getParameter(this.options.divisionIdUrlParameter); this.options.requestData.apiKey=this.options.apiKey; this.options.requestData.divisionId=this.options.divisionId; if(!jQuery.isPlainObject(this.options.requestData.widgetOptions)) this.options.requestData.widgetOptions={}; this.options.requestData.widgetOptions.semantic=true; this.options.requestData.widgetOptions.noScorers=true; if(this.options.liveOnly) this.options.requestData.widgetOptions.live=true; this.options.requestData.widgetOptions=JSON.stringify(this.options.requestData.widgetOptions); if(!this.options.dataUrl) this.options.dataUrl=hockeydata["util"]["UriComposer"].getDataUri("getSchedule", this.options); if(!this.options.columnDefinition) this.options.columnDefinition=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "schedule" }); if(!this.options.columns) this.options.columns=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSet, "type": "schedule" }); else if(hockeydata["util"].isString(this.options.columns)) this.options.columns=this.options.columns.split(","); if(this.options.teamId) this.options.teamId=Number(this.options.teamId); if(this.options.minDate){ this.options.minDate=new Date(this.options.minDate); this.options.minDate=this.options.minDate.getTime(); if(isNaN(this.options.minDate)) this.options.minDate=null; } if(this.options.maxDate){ var maxDate=new Date(this.options.maxDate); if(isNaN(maxDate.getTime())) this.options.maxDate=null; else { maxDate.setHours(23); maxDate.setMinutes(59); maxDate.setSeconds(59); this.options.maxDate=maxDate.getTime(); } } hockeydata["los"]["Configuration"].extendColumns(this.options.columns, this.options.additionalColumns); this.$domNode.addClass("-hd-los -hd-los-schedule"); this.dataSubscription=hockeydata["util"]["Data"].subscribe({ "begin": function(){ if(self.table) self.table.deactivate(); self.$domNode.addClass("-hd-loading"); }, "complete": function(){ if(self.table && self.table.inactive) setTimeout(function(){ self.table.activate(); }, 500); self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) setTimeout(function(){ self.dataSubscription && self.dataSubscription.unsubscribe(); }, 100); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data && ("rows" in e.data)){ self.options._divisionId=e.data.divisionId; self.options.paint(e.data.rows); } else self.options.error(e); }, "url": this.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata["util"]["Data"].error(e, this.$domNode); }; this.initializeTable=function(){ var tableHeaders=[]; for(var i=0; i < this.options.columns.length; i++){ var column=this.options.columns[i]; if(this.options.columnDefinition && (column in this.options.columnDefinition) && ("header" in this.options.columnDefinition[column])) tableHeaders.push(this.options.columnDefinition[column]["header"]); else tableHeaders.push({ "html": "&nbsp;" }); } this.table=new hockeydata["util"]["IntelliTable"](jQuery.extend({}, this.options, { "$domNode": jQuery("<div/>").appendTo(this.$domNode), "headers": tableHeaders, "class": "-hd-los-schedule-table" })); }; this.checkRow=function(dataRow, isFuture, rowCount){ if(self.options.futureOnly && !isFuture) return false; if(self.options.limit && rowCount >= self.options.limit) return false; if(self.options.teamId && dataRow.homeTeamId !== self.options.teamId && dataRow.awayTeamId !== self.options.teamId) return false; if(this.options.minDate && dataRow.scheduledDate.sortValue < this.options.minDate) return false; if(this.options.maxDate && dataRow.scheduledDate.sortValue > this.options.maxDate) return false; if(this.options.liveOnly && dataRow.gameStatus !== 1) return false; if(self.options.teamName){ for(var i=0; i < filterNames.length; i++) if(dataRow[filterNames[i]]===self.options.teamName) return true; return false; } return true; }; this.paint=function(data){ var dataRows=data || []; var tableRows=[]; var isFuture=false; var i; if(self.firstPaint){ if(self.options.showXlsxDownloadLink){ var params=""; for(var paramName in self.options.requestData) if(paramName !== "callback" && self.options.requestData.hasOwnProperty(paramName)) params += "&" + paramName + "=" + self.options.requestData[paramName]; jQuery("<div/>").addClass("-hd-los-schedule-xlsx-download-link").appendTo(this.$domNode).append(jQuery("<a/>").attr("href", self.options.dataUrl + "?callback=xlsx&lang=en&referer=" + document.domain + params).html(hockeydata["i18n"].translate("Download XLSX"))); } self.initializeTable(); } if(dataRows.length > 0 || !self.firstPaint){ for(i=0; i < dataRows.length; i++){ var dataRow=dataRows[i]; if(!dataRow.scheduledDate) continue; if(!("sortValue" in dataRow.scheduledDate) && ("timestamp" in dataRow.scheduledDate)) dataRow.scheduledDate.sortValue=dataRow.scheduledDate.timestamp; if(dataRow["firstFuture"]) isFuture=true; if(self.checkRow(dataRow, isFuture, tableRows.length)){ var uri=hockeydata["util"]["UriComposer"].parseUri(self.options.rowLink, [ dataRow.id, dataRow.divisionId ]); var tableRow={ "cols": [], "class": "-hd-los-schedule-row-" + dataRow.id, "id": dataRow.id }; var j; if(uri && dataRow.gameStatus) tableRow.onClick=hockeydata["util"]["LinkComposer"].getLinkClickFunction(uri); for(j=0; j < self.options.columns.length; j++){ var columnName=self.options.columns[j]; var columnDefinition=(columnName in self.options.columnDefinition) ? self.options.columnDefinition[columnName] : {}; var cellValue=null; var cell={ "class": "-hd-los-schedule-col-" + columnName }; if(columnName in dataRow){ var dataValue=dataRow[columnName]; if(jQuery.isPlainObject(dataValue)){ cellValue=("value" in dataValue) ? dataValue.value : "&nbsp;"; if("sortValue" in dataValue) cell.sortValue=dataValue.sortValue; if("labels" in dataValue && dataValue["labels"].length) for(var k=0; k < dataValue["labels"].length; k++) cell.class += " -hd-label-" + dataValue["labels"][k]; if("key" in columnDefinition){ var key=columnDefinition["key"]; if(key in dataValue) cellValue=dataValue[key]; } } else cellValue=dataValue; } if("class" in columnDefinition) cell.class += " " + columnDefinition.class; if("format" in columnDefinition && jQuery.isFunction(columnDefinition.format)) cellValue=columnDefinition.format(cellValue); if("fn" in columnDefinition && jQuery.isFunction(columnDefinition.fn)) cellValue=columnDefinition.fn(dataRow, this.options); cell.html=cellValue===null ? "&nbsp;" : cellValue; cell.value=cellValue; tableRow.cols.push(cell); } if("labels" in dataRow && dataRow["labels"].length) for(j=0; j < dataRow["labels"].length; j++) tableRow.class += " -hd-label-" + dataRow["labels"][j]; tableRows.push(tableRow); } } } if(!tableRows.length && self.firstPaint && self.options.textNoData) tableRows.push({ "cols": [ { "html": self.options.textNoData, "colSpan": self.options.columns.length } ], "class": "-hd-util-intellitable-no-data" }); if(self.firstPaint){ self.firstPaint=false; self.table.setRows(tableRows); } else for(i=0; i < tableRows.length; i++) self.table.setRow(tableRows[i], (i + 1)===tableRows.length); }; this.initialize(); } Schedule.adQuantifier=100; hockeydata.extend(Schedule, hockeydata["los"], "Schedule"); })()); ((function(){ function LiveGames(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "additionalColumns": null, "apiKey": "VOID", "autoReload": false, "dataUrl": null, "divisionId": null, "divisionIdUrlParameter": "divisionId", "error": function(e){ self.error(e); }, "gameLink": null, "league": null, "liveBoxTableClass": null, "nextGamesCount": 6, "paint": function(e){ self.paint(e); }, "requestData": {}, "scheduleTableClass": null, "showDivisionLongName": false, "showDivisionShortName": false, "showGameState": true, "showNextGames": true, "sport": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.$domNode=this.options.$domNode; this.scheduleWidget=null; this.liveBoxWidgets={}; this.liveBoxWidgetsCount=0; this.dataSubscription=null; this.firstPaint=true; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata["util"].getLeague(this.options.sport); if(!this.options.divisionId && this.options.divisionIdUrlParameter) this.options.divisionId=hockeydata["util"].getParameter(this.options.divisionIdUrlParameter); this.options.requestData.apiKey=this.options.apiKey; this.options.requestData.divisionId=this.options.divisionId; if(!jQuery.isPlainObject(this.options.requestData.widgetOptions)) this.options.requestData.widgetOptions={}; this.options.requestData.widgetOptions.noScorers=true; this.options.requestData.widgetOptions.live=true; this.options.requestData.widgetOptions=JSON.stringify(this.options.requestData.widgetOptions); if(!this.options.dataUrl) this.options.dataUrl=hockeydata["util"]["UriComposer"].getDataUri("getSchedule", this.options); this.$domNode.addClass("-hd-los -hd-los-live-games"); this.dataSubscription=hockeydata["util"]["Data"].subscribe({ "begin": function(){ self.$domNode.addClass("-hd-loading"); }, "complete": function(){ self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data && ("rows" in e.data)){ self.options._divisionId=e.data.divisionId; e.data.rows=e.data.rows || []; for(var i=e.data.rows.length - 1; i >= 0; i--) if(e.data.rows[i].gameStatus !== 1) e.data.rows.splice(i, 1); self.options.paint(e.data.rows); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); if(this.scheduleWidget) this.scheduleWidget.destroy(); for(var gameId in this.liveBoxWidgets) if(this.liveBoxWidgets.hasOwnProperty(gameId)) this.liveBoxWidgets[gameId]["destroy"](); }; this.error=function(e){ if(this.firstPaint) hockeydata["util"]["Data"].error(e, this.$domNode); }; this.paint=function(data){ var dataRows=data || []; if(dataRows.length > 0){ if(self.scheduleWidget){ self.scheduleWidget.destroy(); self.$domNode.empty(); self.scheduleWidget=null; } for(var i=0; i < dataRows.length; i++) self.addLiveBoxWidget(dataRows[i].id); } else if(self.liveBoxWidgetsCount===0 && self.options.showNextGames && self.options.nextGamesCount > 0 && self.scheduleWidget===null){ jQuery("<h3/>").appendTo(self.$domNode).html(hockeydata["i18n"].translate("Upcoming Games")); self.scheduleWidget=new hockeydata["util"]["Widget"]({ "$domNode": jQuery("<div/>").appendTo(self.$domNode), "widgetName": "hockeydata.los.Schedule", "futureOnly": true, "limit": self.options.nextGamesCount, "requestData": { "widgetOptions": { "live": false }}, "apiKey": self.options.apiKey, "divisionId": self.options.divisionId, "sport": self.options.sport, "league": self.options.league, "autoReload": self.options.autoReload, "rowLink": self.options.gameLink, "tableClass": self.options.scheduleTableClass, "additionalColumns": self.options.additionalColumns }); } }; this.addLiveBoxWidget=function(gameId){ if(!(gameId in self.liveBoxWidgets)){ self.liveBoxWidgetsCount++; self.liveBoxWidgets[gameId]=new hockeydata["util"]["Widget"]({ "$domNode": jQuery("<div/>").appendTo(self.$domNode).addClass("-hd-los-game-live-box-wrapper"), "widgetName": "hockeydata.los.Game.LiveBox", "apiKey": self.options.apiKey, "divisionId": self.options.divisionId, "sport": self.options.sport, "league": self.options.league, "gameId": gameId, "autoReload": self.options.autoReload, "gameLink": self.options.gameLink, "showDivisionLongName": self.options.showDivisionLongName, "showDivisionShortName": self.options.showDivisionShortName, "showGameState": self.options.showGameState, "tableClass": self.options.liveBoxTableClass }); } }; this.initialize(); } hockeydata.extend(LiveGames, hockeydata["los"], "LiveGames"); })()); ((function(){ function Player(options){} hockeydata.extend(Player, hockeydata["los"], "Player"); })()); ((function(){ function Career(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "apiKey": "VOID", "autoReload": false, "dataUrl": null, "error": function(e){ self.error(e); }, "league": null, "paint": function(e){ self.paint(e); }, "paintComplete": null, "playerId": null, "playerIdUrlParameter": "playerId", "requestData": {}, "showPlayerInfo": true, "sport": null, "textNoData": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.options.requestData.apiKey=this.options.apiKey; this.$domNode=this.options.$domNode; this.domNodes={}; this.dataSubscription=null; this.firstPaint=true; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata["util"].getLeague(this.options.sport); if(!this.options.playerId && this.options.playerIdUrlParameter) this.options.playerId=hockeydata["util"].getParameter(this.options.playerIdUrlParameter); this.options.requestData.playerId=this.options.playerId; if(!this.options.dataUrl) this.options.dataUrl=hockeydata["util"]["UriComposer"].getDataUri("getPlayerCareerStats", this.options); this.$domNode.addClass("-hd-los -hd-los-player-career"); this.dataSubscription=hockeydata["util"]["Data"].subscribe({ "begin": function(){ self.$domNode.addClass("-hd-loading"); }, "complete": function(){ self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data){ self.options.paint(e.data); if(self.options.paintComplete) self.options.paintComplete["call"](self); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata["util"]["Data"].error(e, this.$domNode); }; this.initializeTable=function(columns, columnDefinition, $node){ var tableHeaders=[]; for(var i=0; i < columns.length; i++){ var column=columns[i]; if(columnDefinition && (column in columnDefinition) && ("header" in columnDefinition[column])) tableHeaders.push(columnDefinition[column]["header"]); else tableHeaders.push({ "html": "&nbsp;" }); } return new hockeydata["util"]["IntelliTable"](jQuery.extend({}, this.options, { "$domNode": $node, "headers": tableHeaders })); }; this.paint=function(data){ data=data || {}; data.careerValues=data.careerValues || []; var i; var playerPortraitUri=hockeydata["util"]["UriComposer"].getPlayerPortraitUri({ "sport": self.options.sport, "league": self.options.league, "playerId": self.options.playerId }); if(self.firstPaint){ self.firstPaint=false; if(self.options.showPlayerInfo){ self.domNodes.playerInfo={}; self.domNodes.playerInfo.$playerInfo=jQuery("<div/>").addClass("-hd-los-player-career-player-info").appendTo(self.$domNode); self.domNodes.playerInfo.$playerPortrait=jQuery("<div/>").addClass("-hd-los-player-career-player-portrait").appendTo(self.domNodes.playerInfo.$playerInfo); self.domNodes.playerInfo.$playerName=jQuery("<div/>").addClass("-hd-los-player-career-player-name").appendTo(self.domNodes.playerInfo.$playerInfo); } self.careerStatsCategories=hockeydata["los"]["Configuration"].getPlayerCareerStatsCategories(self.options.sport); var tabs=[]; for(i=0; i < self.careerStatsCategories.length; i++){ var category=self.careerStatsCategories[i]; category.$node=jQuery("<div/>").addClass("-hd-los-player-career-container -hd-los-player-career-" + category.key); category.$headline=jQuery("<div/>").addClass("-hd-los-player-career-headline").html(category.title).appendTo(category.$node); category.$data=jQuery("<div/>").addClass("-hd-los-player-career-container-data -hd-los-player-career-" + category.key + "-data").appendTo(category.$node); if(!self.options["columnDefinitionStats" + category.name]) self.options["columnDefinitionStats" + category.name]=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": self.options.sport, "league": self.options.league, "type": "playerCareerStats" + category.name }); if(!self.options["columnsStats" + category.name]) self.options["columnsStats" + category.name]=hockeydata["los"]["Configuration"].getTableColumns({ "sport": self.options.sport, "league": self.options.league, "columnSet": self.options["columnSetCareerStats" + category.name], "type": "playerCareerStats" + category.name }); else if(hockeydata["util"].isString(self.options["columnsStats" + category.name])) self.options["columnsStats" + category.name]=self.options["columnsStats" + category.name].split(","); hockeydata["los"]["Configuration"].extendColumns(this.options["columnsStats" + category.name], this.options["additionalColumnsStats" + category.name]); category.table=self.initializeTable(self.options["columnsStats" + category.name], self.options["columnDefinitionStats" + category.name], category.$data); category.tabButton={ "label": category.title }; tabs.push( { "button": category.tabButton, "content": category.$node } ); } self.domNodes.$tabs=jQuery("<div/>").addClass("-hd-los-player-career-tabs").appendTo(self.$domNode); self.domNodes.tabs=new hockeydata["util"]["Tabs"](jQuery.extend({}, self.options, { "$domNode": self.domNodes.$tabs, "tabs": tabs })); } if(self.options.showPlayerInfo){ self.domNodes.playerInfo.$playerPortrait.html(hockeydata["util"]["ImageLoader"].load(playerPortraitUri, { "onerror": function(){ this.src=hockeydata["util"]["UriComposer"].getGhostPlayerPortraitUri({ "sport": self.options.sport }); } })); self.domNodes.playerInfo.$playerName.html((data.playerLastname || "") + " " + (data.playerFirstname || "")); } for(i=0; i < self.careerStatsCategories.length; i++) self.updateCareerStatsValues(self.careerStatsCategories[i], data.careerValues); }; this.updateCareerStatsValues=function(category, careerValues){ var data=[]; for(var i=0; i < careerValues.length; i++){ var seasonValues=careerValues[i]; if(seasonValues[category.key]) data.push(jQuery.extend({}, seasonValues, seasonValues[category.key])); } if(!data.length) category.tabButton.$node.addClass("-hd-util-tabs-button-inactive"); category.table.setRows(self.getRows(data, self.options["columnsStats" + category.name], self.options["columnDefinitionStats" + category.name])); }; this.getRows=function(dataRows, columns, columnDefinitions){ var tableRows=[]; for(var i=0; i < dataRows.length; i++){ var dataRow=dataRows[i]; var tableRow={ "cols": [] }; var j; for(j=0; j < columns.length; j++){ var columnName=columns[j]; var columnDefinition=(columnName in columnDefinitions) ? columnDefinitions[columnName] : {}; var cellValue=null; var cell={ "class": "" }; if(columnName in dataRow) cellValue=dataRow[columnName]; if("class" in columnDefinition) cell.class += " " + columnDefinition.class; if("format" in columnDefinition && jQuery.isFunction(columnDefinition.format)) cellValue=columnDefinition.format(cellValue); if("fn" in columnDefinition && jQuery.isFunction(columnDefinition.fn)) cellValue=columnDefinition.fn(dataRow, this.options); cell.html=cellValue===null ? "&nbsp;" : cellValue; cell.value=cellValue; tableRow.cols.push(cell); } tableRows.push(tableRow); } if(!tableRows.length && self.options.textNoData) tableRows.push({ "cols": [{ "html": self.options.textNoData, "colSpan": columns.length }], "class": "-hd-util-intellitable-no-data" }); return tableRows; }; this.initialize(); } hockeydata.extend(Career, hockeydata["los"]["Player"], "Career"); })()); ((function(){ function Standings(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "additionalColumns": null, "apiKey": "VOID", "autoReload": false, "columnDefinition": null, "columns": null, "columnSet": "default", "dataUrl": null, "divisionId": null, "divisionIdUrlParameter": "divisionId", "error": function(e){ self.error(e); }, "league": null, "paint": function(e){ self.paint(e); }, "requestData": {}, "rowLink": null, "showOfficialStatusText": false, "sport": null, "textNoData": null, "textOfficial": null, "textUnofficial": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.options.requestData.apiKey=this.options.apiKey; this.options.requestData.widgetOptions=JSON.stringify(this.options.requestData.widgetOptions); this.$domNode=this.options.$domNode; this.$officialStatusText=null; this.table=null; this.dataSubscription=null; this.firstPaint=true; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata.util.getLeague(this.options.sport, "hockeydata.los.Standings"); if(!this.options.divisionId && this.options.divisionIdUrlParameter) this.options.divisionId=hockeydata.util.getParameter(this.options.divisionIdUrlParameter); this.options.requestData.divisionId=this.options.divisionId; if(!this.options.dataUrl) this.options.dataUrl=hockeydata.util["UriComposer"].getDataUri("getStandings", this.options); if(!this.options.columnDefinition) this.options.columnDefinition=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "standings" }); if(!this.options.columns) this.options.columns=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSet, "type": "standings" }); else if(hockeydata.util.isString(this.options.columns)) this.options.columns=this.options.columns.split(","); hockeydata["los"]["Configuration"].extendColumns(this.options.columns, this.options.additionalColumns); this.$domNode.addClass("-hd-los -hd-los-standings"); this.dataSubscription=hockeydata.util["Data"].subscribe({ "begin": function(){ if(self.table) self.table.deactivate(); self.$domNode.addClass("-hd-loading"); }, "complete": function(){ if(self.table && self.table.inactive) setTimeout(function(){ self.table.activate(); }, 500); self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data){ self.options._divisionId=e.data.divisionId; self.options.paint(e.data); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata.util["Data"].error(e, this.$domNode); }; this.initializeTable=function(){ var tableHeaders=[]; for(var i=0; i < this.options.columns.length; i++){ var column=this.options.columns[i]; if(this.options.columnDefinition && (column in this.options.columnDefinition) && ("header" in this.options.columnDefinition[column])) tableHeaders.push(this.options.columnDefinition[column]["header"]); else tableHeaders.push({ "html": "&nbsp;" }); } this.table=new hockeydata.util["IntelliTable"](jQuery.extend({}, this.options, { "$domNode": jQuery("<div/>").appendTo(this.$domNode), "headers": tableHeaders, "class": "-hd-los-standings-table" })); if(this.options.showOfficialStatusText) this.$officialStatusText=jQuery("<div/>").appendTo(self.options.$domNode).addClass("-hd-los-standings-official-status-text"); }; this.paint=function(data){ var dataRows=data.rows || []; var tableRows=[]; if(self.firstPaint){ self.firstPaint=false; self.initializeTable(); } if(dataRows.length > 0){ for(var i=0; i < dataRows.length; i++){ var dataRow=dataRows[i]; var uri=hockeydata.util["UriComposer"].parseUri(self.options.rowLink, [ dataRow.id, self.options.divisionId ]); var tableRow={ "cols": [], "class": "-hd-los-standings-row -hd-los-standings-row-" + dataRow.id }; var j; if(uri) tableRow.onClick=hockeydata.util["LinkComposer"].getLinkClickFunction(uri); for(j=0; j < self.options.columns.length; j++){ var columnName=self.options.columns[j]; var columnDefinition=(columnName in self.options.columnDefinition) ? self.options.columnDefinition[columnName] : {}; var cellValue=null; var cell={ "class": "-hd-los-standings-col-" + columnName }; if(columnName in dataRow){ var dataValue=dataRow[columnName]; if(jQuery.isPlainObject(dataValue)){ cellValue=("value" in dataValue) ? dataValue.value : "&nbsp;"; if("sortValue" in dataValue) cell.sortValue=dataValue.sortValue; if("labels" in dataValue && dataValue["labels"].length) for(var k=0; k < dataValue["labels"].length; k++) cell.class += " -hd-label-" + dataValue["labels"][k]; if("key" in columnDefinition){ var key=columnDefinition["key"]; if(key in dataValue) cellValue=dataValue[key]; } } else cellValue=dataValue; } if("class" in columnDefinition) cell.class += " " + columnDefinition.class; if("format" in columnDefinition && jQuery.isFunction(columnDefinition.format)) cellValue=columnDefinition.format(cellValue); if("fn" in columnDefinition && jQuery.isFunction(columnDefinition.fn)) cellValue=columnDefinition.fn(dataRow, this.options); cell.html=cellValue===null ? "&nbsp;" : cellValue; cell.value=cellValue; tableRow.cols.push(cell); } if("labels" in dataRow && dataRow["labels"].length) for(j=0; j < dataRow["labels"].length; j++) tableRow.class += " -hd-label-" + dataRow["labels"][j]; tableRows.push(tableRow); } } else if(self.options.textNoData) tableRows.push({ "cols": [{ "html": self.options.textNoData, "colSpan": self.options.columns.length }], "class": "-hd-util-intellitable-no-data" }); self.table.setRows(tableRows); if(data["isUnOfficial"]){ self.options.$domNode.removeClass("-hd-los-standings-official"); self.options.$domNode.addClass("-hd-los-standings-unofficial"); if(self.options.showOfficialStatusText && ("textUnofficial" in self.options)) self.$officialStatusText.html(self.options.textUnofficial); } else { self.options.$domNode.removeClass("-hd-los-standings-unofficial"); self.options.$domNode.addClass("-hd-los-standings-official"); if(self.options.showOfficialStatusText && ("textOfficial" in self.options)) self.$officialStatusText.html(self.options.textOfficial); } }; this.initialize(); } Standings.adQuantifier=100; hockeydata.extend(Standings, hockeydata["los"], "Standings"); })()); ((function(){ function Team(options){} hockeydata.extend(Team, hockeydata["los"], "Team"); })()); ((function(){ function FullPage(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "additionalColumnsGames": null, "additionalColumnsGoalkeeperStats": null, "additionalColumnsPlayerStats": null, "additionalColumnsRosterDetails": null, "apiKey": "VOID", "autoReload": false, "columnDefinitionGames": null, "columnDefinitionGoalkeeperStats": null, "columnDefinitionPlayerStats": null, "columnDefinitionRosterDetails": null, "columnsGames": null, "columnsGoalkeeperStats": null, "columnsPlayerStats": null, "columnsRosterDetails": null, "columnSetGames": "default", "columnSetGoalkeeperStats": "default", "columnSetPlayerStats": "default", "columnSetRosterDetails": "default", "dataUrl": null, "divisionId": null, "divisionIdUrlParameter": "divisionId", "error": function(e){ self.error(e); }, "gameLink": null, "league": null, "paint": function(e){ self.paint(e); }, "paintComplete": null, "playerLink": null, "requestData": {}, "rowDefinitionTeamStats": null, "rowsTeamStats": null, "rowSetTeamStats": "default", "showPlayerNationInRosterOverview": false, "showPlayerNationFlagInRosterOverview": false, "showTeamFacts": false, "sport": null, "tabs": null, "teamId": null, "teamIdUrlParameter": "teamId" }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.options.requestData.apiKey=this.options.apiKey; this.$domNode=this.options.$domNode; this.domNodes={}; this.tables={}; this.dataSubscription=null; this.firstPaint=true; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata["util"].getLeague(this.options.sport); if(!this.options.divisionId && this.options.divisionIdUrlParameter) this.options.divisionId=hockeydata["util"].getParameter(this.options.divisionIdUrlParameter); if(!this.options.teamId && this.options.teamIdUrlParameter) this.options.teamId=hockeydata["util"].getParameter(this.options.teamIdUrlParameter); this.options.requestData.divisionId=this.options.divisionId; this.options.requestData.teamId=this.options.teamId; if(!this.options.dataUrl) this.options.dataUrl=hockeydata["util"]["UriComposer"].getDataUri("getTeamDetails", this.options); this.$domNode.addClass("-hd-los -hd-los-team-full-page"); this.dataSubscription=hockeydata["util"]["Data"].subscribe({ "begin": function(){ self.$domNode.addClass("-hd-loading"); }, "complete": function(){ self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data){ self.options._divisionId=e.data.divisionId; self.options.paint(e.data); if(self.options.paintComplete) self.options.paintComplete["call"](self); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata["util"]["Data"].error(e, this.$domNode); }; this.initializeTable=function(table, columns, columnDefinition, $node){ var tableHeaders=[]; for(var i=0; i < columns.length; i++){ var column=columns[i]; if(columnDefinition && (column in columnDefinition) && ("header" in columnDefinition[column])) tableHeaders.push(columnDefinition[column]["header"]); else tableHeaders.push({ "html": "&nbsp;" }); } this.tables[table]=new hockeydata["util"]["IntelliTable"](jQuery.extend({}, this.options, { "$domNode": $node, "headers": tableHeaders })); }; this.paint=function(data){ var i, tableRow, category; var drawPlayerStats=("playerStats" in data) || ("goalkeeperStats" in data); data=data || {}; data.teamData=data.teamData || {}; data.teamData.images=data.teamData.images || {}; data.games=data.games || []; data.teamRoster=data.teamRoster || []; if(self.firstPaint){ self.firstPaint=false; this.domNodes.teamInfo={}; this.domNodes.teamInfo.$teamInfo=jQuery("<div/>").addClass("-hd-los-team-full-page-team-info").appendTo(this.$domNode); this.domNodes.teamInfo.$teamLogo=jQuery("<div/>").addClass("-hd-los-team-full-page-team-logo").appendTo(this.domNodes.teamInfo.$teamInfo); this.domNodes.teamInfo.$teamShortname=jQuery("<div/>").addClass("-hd-los-team-full-page-team-short-name").appendTo(this.domNodes.teamInfo.$teamInfo); this.domNodes.teamInfo.$teamLongname=jQuery("<div/>").addClass("-hd-los-team-full-page-team-long-name").appendTo(this.domNodes.teamInfo.$teamInfo); if(this.options.showTeamFacts){ this.domNodes.teamFacts={}; this.domNodes.teamFacts.$teamFacts=jQuery("<div/>").addClass("-hd-los-team-full-page-team-facts"); this.domNodes.teamFacts.$teamPicture=jQuery("<div/>").addClass("-hd-los-team-full-page-team-picture").appendTo(this.domNodes.teamFacts.$teamFacts); this.domNodes.teamFacts.$teamFactsTable=jQuery("<div/>").addClass("-hd-los-team-full-page-team-facts-table").appendTo(this.domNodes.teamFacts.$teamFacts); this.tables.teamFacts=new hockeydata["util"]["IntelliTable"](jQuery.extend({}, this.options, { "$domNode": this.domNodes.teamFacts.$teamFactsTable, "hideHeaders": true })); var teamFacts=null; self.domNodes.teamFacts.$teamPicture.html(hockeydata["util"]["ImageLoader"].load((data.teamData.images["teamPicture"] || hockeydata["util"]["UriComposer"].getTeamPictureUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (self.options._divisionId || self.options.divisionId), "teamId": data.teamData.id })))); try { teamFacts=JSON.parse(data.teamData["teamInformation"]); } catch(e){} if(hockeydata["util"].isArray(teamFacts)){ var teamFactsTableRows=[]; for(i=0; i < teamFacts.length; i++){ var teamFact=teamFacts[i]; tableRow={ "cols": [], "class": "-hd-los-team-full-page-team-facts-table-row", "style": teamFact.style }; if(teamFact["isHeader"]){ tableRow.class += " -hd-los-team-full-page-team-facts-table-header-row"; tableRow.cols.push({ "html": teamFact.label, "colSpan": 2 }); } else if(teamFact["noLabel"]) tableRow.cols.push({ "html": teamFact.text, "colSpan": 2 }); else { tableRow.cols.push({ "html": teamFact.label }); tableRow.cols.push({ "html": teamFact.text }); } teamFactsTableRows.push(tableRow); } this.tables.teamFacts.setRows(teamFactsTableRows); } } this.teamStatsCategories=hockeydata["los"]["Configuration"].getTeamFullPageStatsCategories(this.options.sport); this.domNodes.teamStats={}; this.domNodes.teamStats.$teamStats=jQuery("<div/>").addClass("-hd-los-team-full-page-container -hd-los-team-full-page-team-stats"); this.domNodes.teamStats.$headline=jQuery("<div/>").addClass("-hd-los-team-full-page-headline").html(hockeydata["i18n"].translate("Team Stats")).appendTo(this.domNodes.teamStats.$teamStats); this.domNodes.teamStats.$data=jQuery("<div/>").addClass("-hd-los-team-full-page-container-data -hd-los-team-full-page-team-stats-data").appendTo(this.domNodes.teamStats.$teamStats); for(i=0; i < this.teamStatsCategories.length; i++){ category=this.teamStatsCategories[i]; if(!this.options["rowDefinitionTeamStats" + category.name]) this.options["rowDefinitionTeamStats" + category.name]=hockeydata["los"]["Configuration"].getTableRowDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "teamFullPageTeamStats" + category.name }); if(!this.options["rowsTeamStats" + category.name]) this.options["rowsTeamStats" + category.name]=hockeydata["los"]["Configuration"].getTableRows({ "sport": this.options.sport, "league": this.options.league, "rowSet": this.options["rowSetTeamStats" + category.name], "type": "teamFullPageTeamStats" + category.name }); else if(hockeydata["util"].isString(this.options["rowsTeamStats" + category.name])) this.options["rowsTeamStats" + category.name]=this.options["rowsTeamStats" + category.name].split(","); } this.tables.teamStats=new hockeydata["util"]["IntelliTable"](jQuery.extend({}, this.options, { "$domNode": this.domNodes.teamStats.$data, "hideHeaders": true, "rows": [] })); if(drawPlayerStats){ this.domNodes.playerStats={}; this.domNodes.playerStats.$playerStats=jQuery("<div/>"); if("playerStats" in data){ this.domNodes.playerStats.$fieldplayers=jQuery("<div/>").addClass("-hd-los-team-full-page-container -hd-los-team-full-page-player-stats").appendTo(this.domNodes.playerStats.$playerStats); this.domNodes.playerStats.$fieldplayersHeadline=jQuery("<div/>").addClass("-hd-los-team-full-page-headline").html(hockeydata["i18n"].translate("Fieldplayer Stats")).appendTo(this.domNodes.playerStats.$fieldplayers); this.domNodes.playerStats.$fieldplayersData=jQuery("<div/>").addClass("-hd-los-team-full-page-container-data -hd-los-team-full-page-player-stats-data").appendTo(this.domNodes.playerStats.$fieldplayers); if(!this.options.columnDefinitionPlayerStats) this.options.columnDefinitionPlayerStats=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "teamFullPagePlayerStats" }); if(!this.options.columnsPlayerStats) this.options.columnsPlayerStats=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSetPlayerStats, "type": "teamFullPagePlayerStats" }); else if(hockeydata["util"].isString(this.options.columnsPlayerStats)) this.options.columnsPlayerStats=this.options.columnsPlayerStats.split(","); hockeydata["los"]["Configuration"].extendColumns(this.options.columnsPlayerStats, this.options.additionalColumnsPlayerStats); this.initializeTable("playerStats", this.options.columnsPlayerStats, this.options.columnDefinitionPlayerStats, this.domNodes.playerStats.$fieldplayersData); } if("goalkeeperStats" in data){ this.domNodes.playerStats.$goalkeepers=jQuery("<div/>").addClass("-hd-los-team-full-page-container -hd-los-team-full-page-player-stats").appendTo(this.domNodes.playerStats.$playerStats); this.domNodes.playerStats.$goalkeepersHeadline=jQuery("<div/>").addClass("-hd-los-team-full-page-headline").html(hockeydata["i18n"].translate("Goalkeeper Stats")).appendTo(this.domNodes.playerStats.$goalkeepers); this.domNodes.playerStats.$goalkeepersData=jQuery("<div/>").addClass("-hd-los-team-full-page-container-data -hd-los-team-full-page-player-stats-data").appendTo(this.domNodes.playerStats.$goalkeepers); if(!this.options.columnDefinitionGoalkeeperStats) this.options.columnDefinitionGoalkeeperStats=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "teamFullPageGoalkeeperStats" }); if(!this.options.columnsGoalkeeperStats) this.options.columnsGoalkeeperStats=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSetGoalkeeperStats, "type": "teamFullPageGoalkeeperStats" }); else if(hockeydata["util"].isString(this.options.columnsGoalkeeperStats)) this.options.columnsGoalkeeperStats=this.options.columnsGoalkeeperStats.split(","); hockeydata["los"]["Configuration"].extendColumns(this.options.columnsGoalkeeperStats, this.options.additionalColumnsGoalkeeperStats); this.initializeTable("goalkeeperStats", this.options.columnsGoalkeeperStats, this.options.columnDefinitionGoalkeeperStats, this.domNodes.playerStats.$goalkeepersData); } } this.domNodes.games={}; this.domNodes.games.$games=jQuery("<div/>").addClass("-hd-los-team-full-page-container -hd-los-team-full-page-games"); this.domNodes.games.$headline=jQuery("<div/>").addClass("-hd-los-team-full-page-headline").html(hockeydata["i18n"].translate("Games")).appendTo(this.domNodes.games.$games); this.domNodes.games.$data=jQuery("<div/>").addClass("-hd-los-team-full-page-container-data -hd-los-team-full-page-games-data").appendTo(this.domNodes.games.$games); if(!this.options.columnDefinitionGames) this.options.columnDefinitionGames=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "teamFullPageGames" }); if(!this.options.columnsGames) this.options.columnsGames=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSetGames, "type": "teamFullPageGames" }); else if(hockeydata["util"].isString(this.options.columnsGames)) this.options.columnsGames=this.options.columnsGames.split(","); hockeydata["los"]["Configuration"].extendColumns(this.options.columnsGames, this.options.additionalColumnsGames); this.initializeTable("games", this.options.columnsGames, this.options.columnDefinitionGames, this.domNodes.games.$data); this.domNodes.roster={}; this.domNodes.roster.$roster=jQuery("<div/>").addClass("-hd-los-team-full-page-roster"); this.domNodes.roster.$overview=jQuery("<div/>").addClass("-hd-los-team-full-page-roster-overview"); this.domNodes.roster.$details=jQuery("<div/>").addClass("-hd-los-team-full-page-container -hd-los-team-full-page-roster-details"); this.domNodes.roster.$detailsHeadline=jQuery("<div/>").addClass("-hd-los-team-full-page-headline").html(hockeydata["i18n"].translate("Roster")).appendTo(this.domNodes.roster.$details); this.domNodes.roster.$detailsData=jQuery("<div/>").addClass("-hd-los-team-full-page-container-data -hd-los-team-full-page-roster-details-data").appendTo(this.domNodes.roster.$details); if(!this.options.columnDefinitionRosterDetails) this.options.columnDefinitionRosterDetails=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "teamFullPageRosterDetails" }); if(!this.options.columnsRosterDetails) this.options.columnsRosterDetails=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSetRosterDetails, "type": "teamFullPageRosterDetails" }); else if(hockeydata["util"].isString(this.options.columnsRosterDetails)) this.options.columnsRosterDetails=this.options.columnsRosterDetails.split(","); hockeydata["los"]["Configuration"].extendColumns(this.options.columnsRosterDetails, this.options.additionalColumnsRosterDetails); this.initializeTable("rosterDetails", this.options.columnsRosterDetails, this.options.columnDefinitionRosterDetails, this.domNodes.roster.$detailsData); var availableTabs={ "teamStats": { "button": { "label": hockeydata["i18n"].translate("Team Stats") }, "content": this.domNodes.teamStats.$teamStats }, "games": { "button": { "label": hockeydata["i18n"].translate("Games") }, "content": this.domNodes.games.$games }, "roster": { "button": { "label": hockeydata["i18n"].translate("Roster") }, "content": this.domNodes.roster.$roster } }; var tabs=[]; var tabsRoster=[ { "button": { "label": hockeydata["i18n"].translate("Overview") }, "content": this.domNodes.roster.$overview }, { "button": { "label": hockeydata["i18n"].translate("Details") }, "content": this.domNodes.roster.$details } ]; if(this.options.showTeamFacts) availableTabs["teamInfo"]={ "button": { "label": hockeydata["i18n"].translate("Team Info") }, "content": this.domNodes.teamFacts.$teamFacts }; if(drawPlayerStats) availableTabs["playerStats"]={ "button": { "label": hockeydata["i18n"].translate("Player Stats") }, "content": this.domNodes.playerStats.$playerStats }; if(!this.options.tabs){ this.options.tabs=[]; this.options.showTeamFacts && this.options.tabs.push("teamInfo"); this.options.tabs.push("teamStats"); drawPlayerStats && this.options.tabs.push("playerStats"); this.options.tabs.push("games"); this.options.tabs.push("roster"); } else if(hockeydata["util"].isString(this.options.tabs)) this.options.tabs=this.options.tabs.split(","); for(i=0; i < this.options.tabs.length; i++) (this.options.tabs[i] in availableTabs) && tabs.push(availableTabs[this.options.tabs[i]]); this.domNodes.$tabs=jQuery("<div/>").addClass("-hd-los-team-full-page-tabs").appendTo(this.$domNode); this.domNodes["Tabs"]=new hockeydata["util"]["Tabs"](jQuery.extend({}, this.options, { "$domNode": this.domNodes.$tabs, "tabs": tabs })); this.domNodes.roster["Tabs"]=new hockeydata["util"]["Tabs"](jQuery.extend({}, this.options, { "$domNode": this.domNodes.roster.$roster, "tabs": tabsRoster })); } self.domNodes.teamInfo.$teamLogo.html(hockeydata["util"]["ImageLoader"].load((data.teamData.images["teamLogo"] || hockeydata["util"]["UriComposer"].getTeamLogoUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (self.options._divisionId || self.options.divisionId), "teamId": data.teamData.id })))); self.domNodes.teamInfo.$teamShortname.html(data.teamData.teamShortname || ""); self.domNodes.teamInfo.$teamLongname.html(data.teamData.teamLongname || ""); var teamStatsTableRows=[]; for(i=0; i < this.teamStatsCategories.length; i++){ category=this.teamStatsCategories[i]; if(category.title) teamStatsTableRows.push({ "cols": [ { "html": category.title, "colSpan": 2 } ], "class": "-hd-los-team-full-page-team-stats-row-title" }); for(var j=0; j < self.options["rowsTeamStats" + category.name].length; j++){ var rowName=self.options["rowsTeamStats" + category.name][j]; var rowDefinition=(rowName in self.options["rowDefinitionTeamStats" + category.name]) ? self.options["rowDefinitionTeamStats" + category.name][rowName] : {}; tableRow={ "cols": [], "class": "-hd-los-team-full-page-team-stats-row -hd-los-team-full-page-team-" + rowName }; var value=(rowName in data[category.key]) ? data[category.key][rowName] : null; if("format" in rowDefinition && jQuery.isFunction(rowDefinition.format)) value=rowDefinition.format(value); if("fn" in rowDefinition && jQuery.isFunction(rowDefinition.fn)) value=rowDefinition.fn(data.teamStats, this.options); if(value===null) value="&nbsp;"; tableRow.cols.push({ "html": rowDefinition.title }); tableRow.cols.push({ "html": value }); teamStatsTableRows.push(tableRow); } } this.tables.teamStats.setRows(teamStatsTableRows); if(drawPlayerStats){ ("playerStats" in data) && self.tables.playerStats.setRows(self.getRows(data.playerStats, self.options.columnsPlayerStats, self.options.columnDefinitionPlayerStats, self.options.playerLink)); ("goalkeeperStats" in data) && self.tables["goalkeeperStats"].setRows(self.getRows(data["goalkeeperStats"], self.options.columnsGoalkeeperStats, self.options.columnDefinitionGoalkeeperStats, self.options.playerLink)); } self.tables.games.setRows(self.getRows(data.games, self.options.columnsGames, self.options.columnDefinitionGames, function(dataRow){ return (dataRow.status ? hockeydata["util"]["UriComposer"].parseUri(self.options.gameLink, [ dataRow.id, self.options.divisionId ]) : null); })); self.domNodes.roster.$overview.empty(); for(i=0; i < data.teamRoster.length; i++){ var player=data.teamRoster[i]; var images=player.images || {}; var playerPortraitImage=hockeydata["util"]["ImageLoader"].load((images["playerSmallPortrait"] || hockeydata["util"]["UriComposer"].getPlayerPortraitUri({ "sport": self.options.sport, "league": self.options.league, "divisionId": (self.options._divisionId || self.options.divisionId), "playerId": player.id })), { "onerror": function(){ this.src=hockeydata["util"]["UriComposer"].getGhostPlayerPortraitUri({ "sport": self.options.sport }); } }); var uri=hockeydata["util"]["UriComposer"].parseUri(self.options.playerLink, [ player.id, self.options.divisionId ]); var $playerContainer=jQuery("<div/>").addClass("-hd-los-team-full-page-roster-player-container").appendTo(self.domNodes.roster.$overview); var $playerPortrait=jQuery("<div/>").addClass("-hd-los-team-full-page-roster-player-portrait").appendTo($playerContainer); var $playerDetails=jQuery("<div/>").addClass("-hd-los-team-full-page-roster-player-details").appendTo($playerContainer); var $playerJerseyNo=jQuery("<div/>").addClass("-hd-los-team-full-page-roster-player-jersey-no").appendTo($playerDetails); var $playerName=jQuery("<div/>").addClass("-hd-los-team-full-page-roster-player-name").appendTo($playerDetails); var $playerPosition=jQuery("<div/>").addClass("-hd-los-team-full-page-roster-player-position").appendTo($playerDetails); $playerPortrait.append(playerPortraitImage); $playerJerseyNo.append(player.playerJerseyNr || ""); $playerName.append((player.playerLastname || "") + " " + (player.playerFirstname || "")); $playerPosition.append(player.position || ""); if(uri) $playerContainer.click(hockeydata["util"]["LinkComposer"].getLinkClickFunction(uri)).addClass("-hd-clickable"); if(self.options.showPlayerNationInRosterOverview && player.nation) $playerName.append(" (" + player.nation + ")"); if(self.options.showPlayerNationFlagInRosterOverview && (player.images["playerNationFlag"] || player.nation)) $playerName.append(" ").append(hockeydata["util"]["ImageLoader"].load((player.images["playerNationFlag"] || hockeydata["util"]["UriComposer"].getNationFlagUri({ "nation": player.nation })))); } self.tables["rosterDetails"].setRows(self.getRows(data.teamRoster, self.options.columnsRosterDetails, self.options.columnDefinitionRosterDetails, self.options.playerLink)); }; this.getRows=function(dataRows, columns, columnDefinitions, rowLink){ var tableRows=[]; for(var i=0; i < dataRows.length; i++){ var dataRow=dataRows[i]; var uri=(jQuery.isFunction(rowLink) ? rowLink(dataRow) : hockeydata["util"]["UriComposer"].parseUri(rowLink, [ dataRow.id, self.options.divisionId ])); var tableRow={ "cols": [], "class": "" }; var j; if(uri) tableRow.onClick=hockeydata["util"]["LinkComposer"].getLinkClickFunction(uri); for(j=0; j < columns.length; j++){ var columnName=columns[j]; var columnDefinition=(columnName in columnDefinitions) ? columnDefinitions[columnName] : {}; var cellValue=null; var cell={ "class": "" }; if(columnName in dataRow){ var dataValue=dataRow[columnName]; if(jQuery.isPlainObject(dataValue)){ cellValue=("value" in dataValue) ? dataValue.value : "&nbsp;"; if("sortValue" in dataValue) cell.sortValue=dataValue.sortValue; if("labels" in dataValue && dataValue["labels"].length) for(var k=0; k < dataValue["labels"].length; k++) cell.class += " -hd-label-" + dataValue["labels"][k]; if("key" in columnDefinition){ var key=columnDefinition["key"]; if(key in dataValue) cellValue=dataValue[key]; } } else cellValue=dataValue; } if("class" in columnDefinition) cell.class += " " + columnDefinition.class; if("format" in columnDefinition && jQuery.isFunction(columnDefinition.format)) cellValue=columnDefinition.format(cellValue); if("fn" in columnDefinition && jQuery.isFunction(columnDefinition.fn)) cellValue=columnDefinition.fn(dataRow, this.options); cell.html=cellValue===null ? "&nbsp;" : cellValue; cell.value=cellValue; tableRow.cols.push(cell); } if("labels" in dataRow && dataRow["labels"].length) for(j=0; j < dataRow["labels"].length; j++) tableRow.class += " -hd-label-" + dataRow["labels"][j]; tableRows.push(tableRow); } return tableRows; }; this.initialize(); } hockeydata.extend(FullPage, hockeydata["los"]["Team"], "FullPage"); })()); ((function(){ function TeamStats(options){ var self=this; this.defaultOptions={ "$domNode": jQuery("<div/>"), "apiKey": "VOID", "autoReload": false, "columnDefinition": null, "columns": null, "columnSet": "default", "dataUrl": null, "divisionId": null, "divisionIdUrlParameter": "divisionId", "error": function(e){ self.error(e); }, "league": null, "paint": function(e){ self.paint(e); }, "requestData": {}, "rowLink": null, "showRanking": true, "sport": null, "textNoData": null, "type": null }; this.options=jQuery.extend({}, this.defaultOptions, options || {}); this.options.requestData.apiKey=this.options.apiKey; this.options.requestData.widgetOptions=JSON.stringify(this.options.requestData.widgetOptions); this.$domNode=this.options.$domNode; this.table=null; this.dataSubscription=null; this.firstPaint=true; this.initialize=function(){ if(!this.options.league) this.options.league=hockeydata.util.getLeague(this.options.sport); if(!this.options.divisionId && this.options.divisionIdUrlParameter) this.options.divisionId=hockeydata.util.getParameter(this.options.divisionIdUrlParameter); this.options.requestData.divisionId=this.options.divisionId; if(!this.options.dataUrl) this.options.dataUrl=hockeydata.util["UriComposer"].getDataUri("getTeamStats", this.options); if(!this.options.columnDefinition) this.options.columnDefinition=hockeydata["los"]["Configuration"].getTableColumnDefinition({ "sport": this.options.sport, "league": this.options.league, "type": "teamStats" + this.options.type }); if(!this.options.columns) this.options.columns=hockeydata["los"]["Configuration"].getTableColumns({ "sport": this.options.sport, "league": this.options.league, "columnSet": this.options.columnSet, "type": "teamStats" + this.options.type }); else if(typeof this.options.columns==="string") this.options.columns=this.options.columns.split(","); this.$domNode.addClass("-hd-los -hd-los-team-stats -hd-los-team-stats-" + this.options.type); this.dataSubscription=hockeydata.util["Data"].subscribe({ "begin": function(){ if(self.table) self.table.deactivate(); self.$domNode.addClass("-hd-loading"); }, "complete": function(){ if(self.table && self.table.inactive) setTimeout(function(){ self.table.activate(); }, 500); self.$domNode.removeClass("-hd-loading"); if(!self.options.autoReload) self.dataSubscription.unsubscribe(); }, "data": self.options.requestData, "error": self.options.error, "success": function(e){ if(e["statusId"] > 0 && ("data" in e) && e.data && ("rows" in e.data)){ self.options._divisionId=e.data.divisionId; self.options.paint(e.data.rows); } else self.options.error(e); }, "url": self.options.dataUrl }); }; this.destroy=function(){ if(this.dataSubscription) this.dataSubscription.unsubscribe(); }; this.error=function(e){ if(this.firstPaint) hockeydata.util["Data"].error(e, this.$domNode); }; this.initializeTable=function(){ var tableHeaders=[]; for(var i=0; i < this.options.columns.length; i++){ var column=this.options.columns[i]; if(this.options.columnDefinition && (column in this.options.columnDefinition) && ("header" in this.options.columnDefinition[column])) tableHeaders.push(this.options.columnDefinition[column]["header"]); else tableHeaders.push({"html": "&nbsp;"}); } this.table=new hockeydata.util["IntelliTable"](jQuery.extend({}, this.options, { "$domNode": jQuery("<div/>").appendTo(this.$domNode), "headers": tableHeaders, "class": "-hd-los-team-stats-table" })); }; this.paint=function(data){ var dataRows=data || []; var tableRows=[]; if(self.firstPaint){ self.firstPaint=false; self.initializeTable(); } if(dataRows.length > 0){ for(var i=0; i < dataRows.length; i++){ var dataRow=dataRows[i]; var uri=hockeydata.util["UriComposer"].parseUri(self.options.rowLink, [ dataRow.id, self.options.divisionId ]); var tableRow={ "cols": [], "class": "-hd-los-team-stats-row-" + dataRow.id }; var j; if(uri) tableRow.onClick=hockeydata.util["LinkComposer"].getLinkClickFunction(uri); for(j=0; j < self.options.columns.length; j++){ var columnName=self.options.columns[j]; var columnDefinition=(columnName in self.options.columnDefinition) ? self.options.columnDefinition[columnName] : {}; var cellValue=null; var cell={ "class": "-hd-los-team-stats-col-" + columnName }; if(columnName in dataRow){ var dataValue=dataRow[columnName]; if(jQuery.isPlainObject(dataValue)){ cellValue=("value" in dataValue) ? dataValue.value : "&nbsp;"; if("sortValue" in dataValue) cell.sortValue=dataValue.sortValue; if("labels" in dataValue && dataValue["labels"].length) for(var k=0; k < dataValue["labels"].length; k++) cell.class += " -hd-label-" + dataValue["labels"][k]; if("key" in columnDefinition){ var key=columnDefinition["key"]; if(key in dataValue) cellValue=dataValue[key]; } } else cellValue=dataValue; } if("class" in columnDefinition) cell.class += " " + columnDefinition.class; if("format" in columnDefinition && jQuery.isFunction(columnDefinition.format)) cellValue=columnDefinition.format(cellValue); if("fn" in columnDefinition && jQuery.isFunction(columnDefinition.fn)) cellValue=columnDefinition.fn(dataRow, this.options); cell.html=cellValue===null ? "&nbsp;" : cellValue; cell.value=cellValue; tableRow.cols.push(cell); } if("labels" in dataRow && dataRow["labels"].length) for(j=0; j < dataRow["labels"].length; j++) tableRow.class += " -hd-label-" + dataRow["labels"][j]; tableRows.push(tableRow); } } else if(self.options.textNoData) tableRows.push({ "cols": [{ "html": self.options.textNoData, "colSpan": self.options.columns.length }], "class": "-hd-util-intellitable-no-data" }); self.table.setRows(tableRows); }; this.initialize(); } hockeydata.extend(TeamStats, hockeydata["los"], "TeamStats"); })());/* served by: cloud01 *//* 0.0055069923400879; cached */