/*****
RUNS POPUP PLAYER CARD FOR RECRUITS
*****/

com.espn.recruit.PopPlayerCard = Class.create();

com.espn.recruit.PopPlayerCard.list = [];
com.espn.recruit.PopPlayerCard.ajaxRequest = null;
com.espn.recruit.PopPlayerCard.cache = new Object();

com.espn.recruit.PopPlayerCard.PLAYER_LINK_IDENTIFIER = 'PopPlayerCard';
com.espn.recruit.PopPlayerCard.TAB_OVERVIEW = 0;


com.espn.recruit.PopPlayerCard.TABS = [com.espn.recruit.PopPlayerCard.TAB_OVERVIEW];

com.espn.recruit.PopPlayerCard.STATUS_HIDDEN = 0;
com.espn.recruit.PopPlayerCard.STATUS_SHOWN = 1;

com.espn.recruit.PopPlayerCard.PNG_HACK_URL = "http://assets.espn.go.com/i/recruiting/recruitTracker/popup/pnghack.png";


com.espn.recruit.PopPlayerCard.formatPNGTag = function(properties) {
	var id = (properties.id) ? ' id="' + properties.id + '"' : '';

	if (document.all) {
		return '<img' + id + ' style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale src=\'' + properties.src + '\');" src="' + com.espn.recruit.PopPlayerCard.PNG_HACK_URL + '" border="' + properties.border + '" width="' + properties.width + '" height="' + properties.height + '" />';
	} else {
		return '<img' + id + ' src="' + properties.src + '" border="' + properties.border + '" height="' + properties.height + '" width="' + properties.width + '" />';
	}
};

com.espn.recruit.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.recruit.PopPlayerCard.checkCache = function(playerId, tabId) {
	return (com.espn.recruit.PopPlayerCard.cache[playerId] && com.espn.recruit.PopPlayerCard.cache[playerId][tabId]);
};



com.espn.recruit.PopPlayerCard.prototype = {

	tabId:  com.espn.recruit.PopPlayerCard.TABS[0],

	leagueId: -1,
	teamId: -1,
	playerId: -1,
	status: com.espn.recruit.PopPlayerCard.STATUS_HIDDEN,
	arrow: null,

	parentDiv: null,
	contentDiv: null,

	sourceEvent: null,
	sourceElement: null,

	position: null,

 	height: 450,
 	width: 519,
 	padding: 0,
 	borderSize: 0,

	initialize: function() {

		var _this = this;

		this.position = new com.espn.recruit.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.recruit.PopPlayerCard.Arrow(this);

		com.espn.recruit.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.recruit.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 playerName = this.sourceElement.getAttribute('playername');
			var playerId = this.sourceElement.getAttribute('player_id');
			var tabId = this.sourceElement.getAttribute('tab_id');
			var season = this.sourceElement.getAttribute('season')

			if (this.status == com.espn.recruit.PopPlayerCard.STATUS_HIDDEN || previousSourceElement != this.sourceElement) {
				this.show(season, playerId, tabId, playerName);
			} 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;
		Element.update(this.contentDiv, "");
		Element.hide(this.parentDiv);
		this.arrow.hide();
		this.status = com.espn.recruit.PopPlayerCard.STATUS_HIDDEN;

	},

	show: function(season, playerId, tabId, playerName) {

		var _this = this;

		if (!(tabId && com.espn.recruit.PopPlayerCard.TABS[tabId])) tabId = com.espn.recruit.PopPlayerCard.TABS[0];

		if (playerId != null && playerId != -1) {
			this.playerId = playerId;
		}

		this.season = season;

		this.tabId = tabId;
		this.playerName = playerName;


		// 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.recruit.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.recruit.PopPlayerCard.cache[this.playerId]) {
			if (com.espn.recruit.PopPlayerCard.cache[this.playerId][this.tab]) {
				return com.espn.recruit.PopPlayerCard.cache[this.playerId][this.tab];
			}
		}
		return null;
	},

	setCachedData: function(data) {
		if (!com.espn.recruit.PopPlayerCard.cache[this.playerId]) {
			com.espn.recruit.PopPlayerCard.cache[this.playerId] = new Object();
		}
		com.espn.recruit.PopPlayerCard.cache[this.playerId][this.tab] = data;
	},

	renderContentOverview: function(options) {

		var _this = this;

		var adToInsert;
		if (com.espn.recruit.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.recruit.useAdServer == true && adToInsert && $('adInsertion_PresentedByLogo')) {
				Element.update('adInsertion_PresentedByLogo', adToInsert);
			}

			// HITBOX
			var hbx_cagory_suffix = 'prospects/playerCardPopup/' + _this.playerName;
			var hbx_pagename = 'briefingroom';
			var hbx_category = '/ncf/recruiting/tracker/' + hbx_cagory_suffix + ';*';
			_hbPageView(hbx_pagename, hbx_category);

		};


		var cachedData = this.getCachedData();
		if (cachedData) {
			Element.update(this.contentDiv, cachedData);
			this.finalizeShow();

			if (com.espn.recruit.useAdServer == true && adToInsert && $('adInsertion_PresentedByLogo')) {
				Element.update('adInsertion_PresentedByLogo', adToInsert);
			}
		} else {
			var url = 'popup/playerHtml';

			var pars = 'playerId=' + this.playerId + '&season=' +  this.season;
			var target = this.contentDiv;
			new Ajax.Updater(target, url, {method: 'get', parameters: pars, onComplete: _success});

     		}

	},

	renderTabInactive: function(tabId) {
	//	var _this = this;
//
	//	var oldTabLink = $('pcTab' + tabId);
	//	Element.removeClassName(oldTabLink, "TabsON");
	//	Element.addClassName(oldTabLink, "TabsOFF");
		//Element.setStyle(oldTabLink, { cursor: 'pointer' });

		//oldTabLink.onclick = function() { _this.changeTab(tabId); };


// DON'T NEED FOR RECRUIT TRACKER POPUPS PLAYER CARD

		// LEFT SIDE
		//Element.update($('pcTab' + tabId + '_left'), com.espn.recruit.PopPlayerCard.formatPNGTag({ width: 14, height: 36, border: 0, src: 'http://games-ak.espn.go.com/s/ffllm/07/images/design07/playerpop/pctabs_offleft.png' }));

 		// MIDDLE SECTION
	 	//var oldTabBG = $('pcTabBG' + tabId)
		//Element.update(oldTabBG, com.espn.recruit.PopPlayerCard.formatPNGTag({ width: Element.getStyle(oldTabBG, 'width'), height: Element.getStyle(oldTabBG, 'height'), border: 0, src: 'http://games-ak.espn.go.com/s/ffllm/07/images/design07/playerpop/pctabs_offback.png' }));

		// RIGHT SIDE
		//var width = (tabId == com.espn.recruit.PopPlayerCard.TAB_OVERVIEW) ? 14 : 10;
		//var endpiece = (tabId == com.espn.recruit.PopPlayerCard.TAB_OVERVIEW) ? 'end' : '';
		//Element.update($('pcTab' + tabId + '_right'), com.espn.recruit.PopPlayerCard.formatPNGTag({ width: width, height: 36, border: 0, src: 'http://games-ak.espn.go.com/s/ffllm/07/images/design07/playerpop/pctabs_offright' + endpiece + '.png' }));

	},

	renderTabActive: function(tabId) {
	//	var _this = this;

	//	var newTabLink = $('pcTab' + tabId);
	//	Element.removeClassName(newTabLink, "TabsOFF");
	//	Element.addClassName(newTabLink, "TabsON");
	//	Element.setStyle(newTabLink, { cursor: 'default' });
	//	newTabLink.onclick = null;


// DON'T NEED FOR RECRUIT TRACKER POPUPS PLAYER CARD

		// LEFT SIDE
		//Element.update($('pcTab' + tabId + '_left'), com.espn.recruit.PopPlayerCard.formatPNGTag({ width: 14, height: 36, border: 0, src: 'http://games-ak.espn.go.com/s/ffllm/07/images/design07/playerpop/pctabs_onleft.png' }));

 		// MIDDLE SECTION
 		//var newTabBG = $('pcTabBG' + tabId)
		//Element.update($('pcTabBG' + tabId), com.espn.recruit.PopPlayerCard.formatPNGTag({ width: Element.getStyle(newTabBG, 'width'), height: Element.getStyle(newTabBG, 'height'), border: 0, src: 'http://games-ak.espn.go.com/s/ffllm/07/images/design07/playerpop/pctabs_onback.png' }));

		// RIGHT SIDE
		//var width = (tabId == com.espn.recruit.PopPlayerCard.TAB_OVERVIEW) ? 14 : 10;
		//var endpiece = (tabId == com.espn.recruit.PopPlayerCard.TAB_OVERVIEW) ? 'end' : '';
		//Element.update($('pcTab' + tabId + '_right'), com.espn.recruit.PopPlayerCard.formatPNGTag({ width: width, height: 36, border: 0, src: 'http://games-ak.espn.go.com/s/ffllm/07/images/design07/playerpop/pctabs_onright' + endpiece + '.png' }));
	},

	renderTabChoice: function() {

		var _this = this;

		$A(com.espn.recruit.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 =	'<table width="99" cellspacing="0" cellpadding="0" border="0">'+
			'<tbody>' +
			'<tr>' +
			'<td width="14">'+
				com.espn.recruit.PopPlayerCard.formatPNGTag({  height: 26, width: 14, border: 0, src: 'http://assets.espn.go.com/i/recruiting/recruitTracker/popup/left_BLK_tab.png' })+'</td>' +
			'<td style="z-index: 80;">'+

				'<div style="padding: 7px 0pt 0pt; position: absolute; z-index: 85; top: 4px; left: 25px; width: 99px; color: #ffffff; font-weight: bold;">' +
					'Briefing Room' +
				'</div>'+

				'<div style="width: 99px; height: 26px;">' +
					com.espn.recruit.PopPlayerCard.formatPNGTag({  height: 26, width: 99, border: 0, src: 'http://assets.espn.go.com/i/recruiting/recruitTracker/popup/BLK_tab_bg.png' })+'</td>' +

				'</div>'+
			'</td>' +
			'<td width="14">'+
				com.espn.recruit.PopPlayerCard.formatPNGTag({  height: 26, width: 14, border: 0, src: 'http://assets.espn.go.com/i/recruiting/recruitTracker/popup/right_BLK_tab.png' })+'</td>' +
			'</td>' +
		'</tr>'+
		'</tbody>'+
'</table>'

		this.parentDiv.appendChild(tabsDiv);

	},

	renderShell: function() {
		var bodyDiv = document.createElement('DIV');
		var styles = {
				width: this.width + 'px',
				position: 'absolute',
				top: '26px',
				zIndex: '1'
				};

		Element.setStyle(bodyDiv, styles);

		var iframeBackboard = (com.espn.env.an != com.espn.env.IE) ? '' : '<iframe style="z-index:50;left:0px;position:absolute;top:0px;width:519px;height:420px;filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)" src="javascript:false;" frameBorder="0" scrolling="no"></iframe>';

		bodyDiv.innerHTML = com.espn.recruit.PopPlayerCard.formatPNGTag({ width: 519, height: 19, border: 0, src: 'http://assets.espn.go.com/i/recruiting/recruitTracker/popup/rt_popup_top.png' }) + '<br /><div>' +
					'<!-- start Main Overview -->' +
					iframeBackboard +
					'<div style="z-index:50;position:absolute;width:519px;height:388px;top:19px;left:0px;">' + com.espn.recruit.PopPlayerCard.formatPNGTag({  height: 388, width: 519, border: 0, src: 'http://assets.espn.go.com/i/recruiting/recruitTracker/popup/rt_popup_middle.png' }) + '</div>' +
					'<div style="position:relative;z-index:60;width: 480px; height:386px; margin: 0 0 0 20px; background: #fff;">' +
					'<!-- start content div -->' +
					'<div id="pcContent" style="height:360px;">' +
					'</div>' +
					'<!-- end content div -->' +
					//'<br clear="all">' +
					'<!-- begin close option -->' +
					'<div id="pcCloseBorder">' +
					'<div id="pcClose"><img id="pcCloseButton" src="http://assets.espn.go.com/i/recruiting/recruitTracker/popup/RTclose_btn.gif" border="0" width="64" height="20" style="cursor: pointer;" alt="" /></div>' +
					'</div>' +
					'<!-- end close option -->' +
					'</div>' +
					'<!-- end overview -->' +
					'</div>' +
					com.espn.recruit.PopPlayerCard.formatPNGTag({ width: 519, height: 15, border: 0, src: 'http://assets.espn.go.com/i/recruiting/recruitTracker/popup/rt_popup_btm.png' }) + '</div>' +
					'<!-- end PlayerCard background -->' +
					'</div>' +
					'<!-- end main -->';

		this.parentDiv.appendChild(bodyDiv);
	},

	_onload: function() {
		document.body.appendChild(this.parentDiv);
		this.contentDiv = $('pcContent');
		this.bindEventListeners();
		this.arrow._onload(this.arrow);
	},

	bindEventListeners: function() {

		var _this = this;

		/*****
		if (com.espn.env.an == com.espn.env.IE) {
			var els = document.getElementsByName(com.espn.recruit.PopPlayerCard.PLAYER_LINK_IDENTIFIER);

			var linkOnClick = function(event) { _this.handleClick(event); };
			for(var n=0;n<els.length;n++) {
				el = els[n];
				if (el.name.indexOf(com.espn.recruit.PopPlayerCard.PLAYER_LINK_IDENTIFIER) == 0) {
					Event.observe(el, 'click', linkOnClick)
				}
			}
		}
		*****/

		var hideCard = function() { _this.hide(); };
		Event.observe($('pcCloseButton'), 'click', hideCard);

	},

	toggleView: function(name, vCurrent, vNext) {

		Element.setStyle(name+vCurrent, { display: 'none' });
		Element.setStyle(name+vNext, { display: 'block' });

	}
}

com.espn.recruit.PopPlayerCard.Arrow = Class.create();

com.espn.recruit.PopPlayerCard.Arrow.prototype = {

	popplayercard: null,
	position: null,

	height: 229,
	width: 123,
	height: 110,
	width: 59,
 	padding: 0,
 	borderSize: 0,

	parentDiv: null,
	image: null,
	orientation: null,

	initialize: function(popplayercard) {

		this.popplayercard = popplayercard;
		this.orientation = { y: com.espn.recruit.PopPlayerCard.ORIENTATION_DOWN, x: com.espn.recruit.PopPlayerCard.ORIENTATION_LEFT };
		var positionProperties = { y: 0, x: 0 };
		this.position = new com.espn.recruit.PopPlayerCard.Position(this, positionProperties);

		this.parentDiv = document.createElement('DIV');
		this.parentDiv.id = 'pcArrow';
		var styles = {
			display: 'none',
			position: 'absolute',
			width: (this.width - (this.padding*2) - (this.borderSize*2)) + 'px',
			height: (this.height - (this.padding*2) - (this.borderSize*2)) + 'px',
			zIndex: 10001
		};
		Element.setStyle(this.parentDiv, styles);

		this.image = new Image();

		this.position.render();
	},

	_onload: function() {
		var _this = this;
		document.body.appendChild(_this.parentDiv);
	},

	hide: function() {
		Element.hide(this.parentDiv);
	},

	show: function() {
		this.move();
		this.render();
		// DON'T DISPLAY ARROW WHEN NOT ENOUGH HORIZONTAL SPACE
		if (this.orientation.x != com.espn.recruit.PopPlayerCard.ORIENTATION_CENTER) {
			Element.show(this.parentDiv);
		}
	},

	move: function() {
		this.position.set(this.getOffset().x, this.getOffset().y);
		this.position.render();

	},

	getOffset: function() {
		return { y: 0, x: 0 };
	},

	getOrientation: function() {
		var x_orientation;
		var y_orientation;

		var widthNeeded = this.popplayercard.width + this.popplayercard.getOffset().x;
		var heightNeeded = this.popplayercard.height + this.popplayercard.getOffset().y;

		// FOR GETTING THE BROWSER SIZE IN STANDARDS-COMPLIANT MODE
		var iebody = (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;

		var availableHeight = (window.innerHeight) ? window.innerHeight : iebody.clientHeight;
		var availableWidth = (window.innerWidth) ? window.innerWidth : iebody.clientWidth;

		if (availableWidth - (this.popplayercard.sourceElement.x_right - (document.documentElement.scrollLeft || document.body.scrollLeft)) - widthNeeded > 0) {
			x_orientation = com.espn.recruit.PopPlayerCard.ORIENTATION_LEFT;
		} else if ((this.popplayercard.sourceElement.x_left - (document.documentElement.scrollLeft || document.body.scrollLeft)) > widthNeeded) {
			x_orientation = com.espn.recruit.PopPlayerCard.ORIENTATION_RIGHT;
		} else {
			x_orientation = com.espn.recruit.PopPlayerCard.ORIENTATION_CENTER;
		}

		if ((this.popplayercard.sourceElement.y_top - (document.documentElement.scrollTop || document.body.scrollTop)) > heightNeeded) {
			y_orientation = com.espn.recruit.PopPlayerCard.ORIENTATION_DOWN;
		} else if (availableHeight - (this.popplayercard.sourceElement.y_bottom - (document.documentElement.scrollTop || document.body.scrollTop)) - heightNeeded > 0) {
			y_orientation = com.espn.recruit.PopPlayerCard.ORIENTATION_UP;
		} else {
			y_orientation = com.espn.recruit.PopPlayerCard.ORIENTATION_CENTER;
		}

		this.orientation.x = x_orientation;
		this.orientation.y = y_orientation;
	},

	render: function() {
		var y_orientation = (this.orientation.y != com.espn.recruit.PopPlayerCard.ORIENTATION_CENTER) ? this.orientation.y : com.espn.recruit.PopPlayerCard.ORIENTATION_DOWN;
		this.image.src = 'http://assets.espn.go.com/i/recruiting/recruitTracker/popup/popup_arrow_' + this.orientation.x + y_orientation + '.png';
		Element.update(this.parentDiv, com.espn.recruit.PopPlayerCard.formatPNGTag({ width: this.width, height: this.height, border: 0, src: this.image.src }));
	}
}

com.espn.recruit.PopPlayerCard.Position = Class.create();

	// ORIENTATIONS REFER TO THE DIRECTION THE ARROW IS POINTING -- TYPICALLY IT POINTS DOWN AND TO THE LEFT.
	com.espn.recruit.PopPlayerCard.ORIENTATION_DOWN = 0;
	com.espn.recruit.PopPlayerCard.ORIENTATION_UP = 1;
	com.espn.recruit.PopPlayerCard.ORIENTATION_LEFT = 0;
	com.espn.recruit.PopPlayerCard.ORIENTATION_RIGHT = 1;
	com.espn.recruit.PopPlayerCard.ORIENTATION_CENTER = 2; // USED IN INSTANCES WHERE THERE ISN'T ROOM ON EITHER SIDE OF THE ELEMENT, SO CENTER THE CARD


com.espn.recruit.PopPlayerCard.Position.prototype = {

	component: null,

	y: 0,
	x: 0,

	hasOrientation: false,

	initialize: function(component, properties) {
		this.component = component;
		for(prop in properties) {
			var value = properties[prop];
			this[prop] = value;
		}
	},

	getCoordinates: function() {
		var x = 0; var y = 0;
		var arrow = (this.component.arrow) ? this.component.arrow : this.component;
		var popplayercard = (this.component.popplayercard) ? this.component.popplayercard : this.component;
		var isArrow = (arrow == this.component);
		switch(arrow.orientation.x) {
			case com.espn.recruit.PopPlayerCard.ORIENTATION_LEFT:
				x = popplayercard.sourceElement.x_right;
				break;
			case com.espn.recruit.PopPlayerCard.ORIENTATION_RIGHT:
				x = popplayercard.sourceElement.x_left;
				break;
			case com.espn.recruit.PopPlayerCard.ORIENTATION_CENTER:
				x = Event.pointerX(popplayercard.sourceEvent);
				break;
		}
		switch(arrow.orientation.y) {
			case com.espn.recruit.PopPlayerCard.ORIENTATION_DOWN:
				y = popplayercard.sourceElement.y_top;
				break;
			case com.espn.recruit.PopPlayerCard.ORIENTATION_UP:
				y = popplayercard.sourceElement.y_bottom;
				break;
			case com.espn.recruit.PopPlayerCard.ORIENTATION_CENTER:
				y = (!isArrow) ? Event.pointerY(popplayercard.sourceEvent) : popplayercard.sourceElement.y_top;
				break;
		}

		return { x: x, y: y };
	},

	set: function(x_offset, y_offset) {

		var coordinates = this.getCoordinates();

		var arrow = (this.component.arrow) ? this.component.arrow : this.component;
		var orientation = arrow.orientation;

		var isArrow = (arrow == this.component);

		if (orientation.y == com.espn.recruit.PopPlayerCard.ORIENTATION_DOWN || (orientation.y == com.espn.recruit.PopPlayerCard.ORIENTATION_CENTER && isArrow)) {
			this.y = coordinates.y - y_offset - this.component.height;
		} else if (orientation.y == com.espn.recruit.PopPlayerCard.ORIENTATION_UP) {
			this.y = coordinates.y + y_offset;
		} else {	// ORIENTATION_CENTER
			this.y = coordinates.y - (this.component.height/2);
		}

		if (orientation.x == com.espn.recruit.PopPlayerCard.ORIENTATION_LEFT) {
			this.x = coordinates.x + x_offset;
		} else if (orientation.x == com.espn.recruit.PopPlayerCard.ORIENTATION_RIGHT) {
			this.x = coordinates.x - x_offset - this.component.width;
		} else {	// ORIENTATION_CENTER
			this.x = 0
			//this.x = coordinates.x - (this.component.width/2);
		}

	},

	render: function() {
		Element.setStyle(this.component.parentDiv, { top: this.y +'px', left: this.x +'px' });


	}

}

com.espn.recruit.PopPlayerCard.instance = new com.espn.recruit.PopPlayerCard();

/*****
END POP PLAYER CARD
*****/