com.espn.player.PopPlayerCard = Class.create();
com.espn.player.PopPlayerCard.list = [];
com.espn.player.PopPlayerCard.ajaxRequest = null;
com.espn.player.PopPlayerCard.cache = new Object();
com.espn.player.PopPlayerCard.PLAYER_LINK_IDENTIFIER = 'PopPlayerCard';
com.espn.player.PopPlayerCard.TAB_OVERVIEW = 0;
com.espn.player.PopPlayerCard.TABS = [com.espn.player.PopPlayerCard.TAB_OVERVIEW];
com.espn.player.PopPlayerCard.STATUS_HIDDEN = 0;
com.espn.player.PopPlayerCard.STATUS_SHOWN = 1;
com.espn.player.PopPlayerCard.PNG_HACK_URL = "http://games-ak.espn.go.com/s/ffllm/05/images/pnghack.png";
com.espn.player.PopPlayerCard.formatPNGTag = function(properties) {
var id = (properties.id) ? ' id="' + properties.id + '"' : '';
if (document.all) {
return '';
} else {
return '
';
}
};
com.espn.player.PopPlayerCard.formatPNGTag2 = function(properties) {
var id = (properties.id) ? ' id="' + properties.id + '"' : '';
if (document.all) {
return 'style="background-image: none; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=fixed src=\'' + properties.src + '\');"';
} else {
return 'style ="background: url('+ properties.src+ ')' + properties.params + ';"';
}
};
com.espn.player.PopPlayerCard.checkCache = function(playerId, tabId) {
return (com.espn.player.PopPlayerCard.cache[playerId] && com.espn.player.PopPlayerCard.cache[playerId][tabId]);
};
com.espn.player.PopPlayerCard.prototype = {
tabId: com.espn.player.PopPlayerCard.TABS[0],
leagueId: -1,
teamId: -1,
playerId: -1,
tournamentId: -1,
preTournament: false,
lang:null,
status: com.espn.player.PopPlayerCard.STATUS_HIDDEN,
arrow: null,
parentDiv: null,
contentDiv: null,
sourceEvent: null,
sourceElement: null,
position: null,
height: 500,
width: 519,
padding: 0,
borderSize: 0,
initialize: function() {
var _this = this;
this.position = new com.espn.player.PopPlayerCard.Position(this, { y: 0, x: 0 });
this.parentDiv = document.createElement('DIV');
this.parentDiv.id = 'pcMain';
var styles = {
display: 'none',
position: 'absolute',
height: (this.height - (this.padding*2) - (this.borderSize*2)) + 'px',
width: (this.width - (this.padding*2) - (this.borderSize*2)) + 'px',
zIndex: 10000
};
Element.setStyle(this.parentDiv, styles);
// BASIC FORMATTING
this.renderTabNav();
this.renderShell();
this.position.render();
this.arrow = new com.espn.player.PopPlayerCard.Arrow(this);
com.espn.player.PopPlayerCard.list.push(this);
// ADD RULES TO DOM
var rules = {
'.popplayercard' : function(element){
element.onclick = function(event){
_this.handleClick(event || window.event);
}
}
};
// WORKS IN IE
//if (com.espn.env.an != com.espn.env.IE) {
Behaviour.register(rules);
//}
com.espn.player.PopPlayerCard.list.push(this);
Behaviour.addLoadEvent(function() { _this._onload() });
},
handleClick: function(event) {
if (event && Event.element(event)) {
var previousSourceElement = this.sourceElement;
this.sourceEvent = event;
this.sourceElement = Event.element(event);
// SAFARI FIX
if (!this.sourceElement.getAttribute) {
this.sourceElement = this.sourceElement.parentNode;
}
if (!this.sourceElement.getAttribute) {
return;
}
this.leagueId = this.sourceElement.getAttribute('league_id');
this.teamId = this.sourceElement.getAttribute('team_id');
this.gatherSourceElementCoordinates();
var playerId = this.sourceElement.getAttribute('player_id');
var lang = this.sourceElement.getAttribute('lang');
var tournamentId = this.sourceElement.getAttribute('tournament_id');
var preTournament = this.sourceElement.getAttribute('pretournament');
var tabId = this.sourceElement.getAttribute('tab_id');
if (this.status == com.espn.player.PopPlayerCard.STATUS_HIDDEN || previousSourceElement != this.sourceElement) {
this.show(playerId, tabId, tournamentId, preTournament);
} else {
this.hide();
}
}
},
gatherSourceElementCoordinates: function() {
if (this.sourceElement) {
var sourceElementDimensions = Element.getDimensions(this.sourceElement);
var sourceElementCumOffsets = Position.cumulativeOffset(this.sourceElement);
this.sourceElement.x_right = sourceElementCumOffsets[0] + sourceElementDimensions.width; // x of element's right side
this.sourceElement.x_left = sourceElementCumOffsets[0]; // x of element's left side
this.sourceElement.y_top = sourceElementCumOffsets[1]; // y of element's top side
this.sourceElement.y_bottom = sourceElementCumOffsets[1] + sourceElementDimensions.height; // y of element's bottom side
}
},
hide: function() {
this.playerId = -1;
this.lang = null;
Element.update(this.contentDiv, "");
Element.hide(this.parentDiv);
this.arrow.hide();
this.status = com.espn.player.PopPlayerCard.STATUS_HIDDEN;
},
show: function(playerId, tabId, tournamentId, preTournament, lang) {
var _this = this;
if (!(tabId && com.espn.player.PopPlayerCard.TABS[tabId])) tabId = com.espn.player.PopPlayerCard.TABS[0];
if (playerId != null && playerId != -1) {
this.playerId = playerId;
}
if (lang != null) {
this.lang = lang;
}
if (tournamentId != null && tournamentId != -1) {
this.tournamentId = tournamentId
}
if (preTournament != null)
{
this.preTournament = preTournament
}
this.tabId = tabId;
// HIDE PRIOR TO UPDATE
this.arrow.hide();
this.parentDiv.hide();
this.arrow.getOrientation();
this.move()
// RENDER THE APPROPRIATE TAB
var options = { _success: function() { _this.finalizeShow(); } }
this.renderTabChoice();
this.renderContent(options);
// WILL PROCEED TO finalizeShow() AFTER COMPLETION OF UPDATE
},
finalizeShow: function() {
this.arrow.show();
this.parentDiv.show();
this.status = com.espn.player.PopPlayerCard.STATUS_SHOWN;
},
changeTab: function(tabId) {
this.tabId = tabId;
this.renderTabChoice();
this.renderContent();
},
getOffset: function() {
return { y: 0, x: this.arrow.width - 12 };
},
move: function() {
this.position.set(this.getOffset().x, this.getOffset().y);
this.position.render();
},
clear: function() {
this.contentDiv.innerHTML = '';
},
renderContent: function(options) {
this.renderContentOverview(options);
},
getCachedData: function() {
if (com.espn.player.PopPlayerCard.cache[this.playerId]) {
if (com.espn.player.PopPlayerCard.cache[this.playerId][this.tab]) {
return com.espn.player.PopPlayerCard.cache[this.playerId][this.tab];
}
}
return null;
},
setCachedData: function(data) {
if (!com.espn.player.PopPlayerCard.cache[this.playerId]) {
com.espn.player.PopPlayerCard.cache[this.playerId] = new Object();
}
com.espn.player.PopPlayerCard.cache[this.playerId][this.tab] = data;
},
renderContentOverview: function(options) {
var _this = this;
var adToInsert;
if (com.espn.player.useAdServer == true && digAdData && digAdData['PresentedByLogo']) adToInsert = digGetAd('PresentedByLogo', true);
var _success = function(transport, object) {
_this.setCachedData(transport.responseText);
if (options && options._success) { options._success(); }
if (com.espn.player.useAdServer == true && adToInsert && $('adInsertion_PresentedByLogo')) {
Element.update('adInsertion_PresentedByLogo', adToInsert);
}
// COMMENTED UNTIL PRODUCTION READY
//var hbx_cagory_suffix = '/playerCardPopup/tabs';
//var hbx_pagename = 'overview';
//var hbx_category = '/football/ffl' + hbx_cagory_suffix + ';/fantasy/football/ffl' + hbx_cagory_suffix + ';*';
//_hbPageView(hbx_pagename, hbx_category);
};
/*var cachedData = this.getCachedData();
if (cachedData) {
Element.update(this.contentDiv, cachedData);
this.finalizeShow();
if (com.espn.player.useAdServer == true && adToInsert && $('adInsertion_PresentedByLogo')) {
Element.update('adInsertion_PresentedByLogo', adToInsert);
}
} else {*/
var url = '/golf/format/leaderboard/popup/playerCardHTML';
var pars = 'playerId=' + this.playerId + '&tournamentId=' + this.tournamentId + '&lang=' + this.lang;
var target = this.contentDiv;
new Ajax.Updater(target, url, {method: 'get', parameters: pars, onComplete: _success});
//}
},
renderTabInactive: function(tabId) {
},
renderTabActive: function(tabId) {
},
renderTabChoice: function() {
var _this = this;
$A(com.espn.player.PopPlayerCard.TABS).each(function(tabId) {
if (_this.tabId != tabId) {
_this.renderTabInactive(tabId);
} else {
_this.renderTabActive(tabId);
}
}
);
},
renderTabNav: function() {
var tabsDiv = document.createElement('DIV');
tabsDiv.id = 'pcTabs';
tabsDiv.innerHTML = '
| '+ com.espn.player.PopPlayerCard.formatPNGTag({ height: 26, width: 14, border: 0, src: 'http://assets.espn.go.com/i/golf/leaderboard/playerPopupGrey/left_BLK_tab.png' })+' | ' + ''+
' ' +
' Scorecard' +
' '+
'' +
com.espn.player.PopPlayerCard.formatPNGTag({ height: 26, width: 99, border: 0, src: 'http://assets.espn.go.com/i/golf/leaderboard/playerPopupGrey/BLK_tab_bg.png' })+' | ' +
''+
'' +
''+ com.espn.player.PopPlayerCard.formatPNGTag({ height: 26, width: 14, border: 0, src: 'http://assets.espn.go.com/i/golf/leaderboard/playerPopupGrey/right_BLK_tab.png' })+' | ' + '' + '