/*AUTHOR:FERGUSOR
 *REPURPOSE OF FANTASY'S IMPLEMENTATION
 *THIS IS THE JAVASCRIPT LOGIC OF THE POPTEAM CARD LOGIC.
 *IT WORKS WITH PROTOTYPE VERSON 1.5.0_rpc AND BEHAVIOUR VER1.0
 *
 */


/*****
RUNS POPUP PLAYER CARD FOR RECRUITS
*****/
recruitingPath = '/ncf/recruiting/tracker';
imgDir = 'http://assets.espn.go.com/i/recruiting/recruitTracker/popup';

com.espn.recruit.PopTeamCard = Class.create();

com.espn.recruit.PopTeamCard.list = [];
com.espn.recruit.PopTeamCard.ajaxRequest = null;
com.espn.recruit.PopTeamCard.cache = new Object();

com.espn.recruit.PopTeamCard.SCHOOL_LINK_IDENTIFIER = 'PopupTeamCard';
com.espn.recruit.PopTeamCard.SigningDay = "false";

com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM = 0;
com.espn.recruit.PopTeamCard.TAB_COMMITS = 1;
com.espn.recruit.PopTeamCard.TAB_CONSIDERED = 2;

com.espn.recruit.PopTeamCard.TABS = [ com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM, com.espn.recruit.PopTeamCard.TAB_COMMITS, com.espn.recruit.PopTeamCard.TAB_CONSIDERED];

com.espn.recruit.PopTeamCard.STATUS_HIDDEN = 0;
com.espn.recruit.PopTeamCard.STATUS_SHOWN = 1;

com.espn.recruit.PopTeamCard.PNG_HACK_URL = "http://assets.espn.go.com/i/recruiting/recruitTracker/popup/pnghack.png";


com.espn.recruit.PopTeamCard.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.PopTeamCard.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.PopTeamCard.prototype = {

	tabId:  com.espn.recruit.PopTeamCard.TABS[0],

	schoolId:  -1,
	classYear:2008,
	signingDay:false,
	espn150Release:false,

	imgPath:'http://assets.espn.go.com/i',
	status:com.espn.recruit.PopTeamCard.STATUS_HIDDEN,
	arrow: null,

	parentDiv:null,
	contentDiv: null,

	position:null,

	height: 450,
	width: 519,
	padding:0,
	borderSize: 0,

	tableStyle:{
			"left":"305px;",
			"position":"absolute;",
			"top": "6px;",
			"z-index":"1;"
	},

	initialize: function(){

		var _this = this;

		this.position = new com.espn.recruit.PopTeamCard.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.PopTeamCard.Arrow(this);

		//ADD RULES TO THE DOM -This is another way of assigning events by using css selectors
		rules = {
			'.popteamcard' :function(element){
				element.onclick = function(event){
						_this.handleClick(event || window.event);
				}
			}
		};


			Behaviour.register(rules);


			com.espn.recruit.PopTeamCard.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;
				}
				var schoolName = this.sourceElement.getAttribute('schoolname');

				var schoolId= this.sourceElement.getAttribute('schoolId');

				var tabId = this.sourceElement.getAttribute('tabId');

				var year = this.sourceElement.getAttribute('classYear');

				var signD = this.sourceElement.getAttribute('signingDay');

				com.espn.recruit.PopTeamCard.SigningDay = signD;

				var espn150R = this.sourceElement.getAttribute('espn150Release');

				this.gatherSourceElementCoordinates();

				if (this.sourceElement.getAttribute('img_path')) {
					this.imgPath = this.sourceElement.getAttribute('img_path');
				}

				if (this.status == com.espn.recruit.PopTeamCard.STATUS_HIDDEN || previousSourceElement != this.sourceElement) {
					this.show(schoolId, tabId, year, signD, espn150R, schoolName);
				} else {
					this.hide();
				}

			}
	},

	//This preFetch is tailored to work with Stout's caching.
	preFetch: function(){
			teams = $$('.popteamcard');
			cnt = teams.length;

			for(var i=0; i < cnt; i++){
				var schoolId=teams[i].getAttribute('schoolId');
				var classYear=teams[i].getAttribute('classYear');
				var signingDay=teams[i].getAttribute('signingDay');
				var espn150Release=teams[i].getAttribute('espn150Release');
 				//if you want to default from commits to considering according to signing day then test on signingDay and call the appropriate url.
				var url='format/popteam/commits'
				var pars =  'schoolId='+schoolId+'&classYear='+classYear+'&signingDay='+signingDay+'&espn150Release='+espn150Release
				var target = 'prefetchholder';

				//var prefetchAjax = new Ajax.Request(
				com.espn.recruit.PopTeamCard.ajaxRequest = new Ajax.Request(
						url,
						{
							method:'get',
							parameters: pars,
							onComplete:function(transport){
										var pre = $('prefetchholder');
										//pre.update('server cached')
							}
						})
			}
	},

	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.schoolId = -1;
		Element.update(this.contentDiv, "");
		Element.hide(this.parentDiv);
		this.arrow.hide();
		this.status = com.espn.recruit.PopTeamCard.STATUS_HIDDEN;
	},

	show: function(schoolId, tabId, year, signD, espn150R, schoolName){

		var _this = this;

		//If null then default to Commits
		if (!(tabId && com.espn.recruit.PopTeamCard.TABS[tabId])){
			tabId = com.espn.recruit.PopTeamCard.TABS[1];
		}

		if (schoolId != null && schoolId != -1){
			this.schoolId = schoolId;
		}

		if (year != null && year != -1){
			this.classYear = year;
		}

		if (tabId != null){
			this.tabId = tabId;
		}

		if (signD != null && signD != -1){
			this.signingDay = signD
		}

		if (espn150R != null && espn150R != -1){
			this.espn150Release = espn150R
		}

		if (schoolName != null){
			this.schoolName = schoolName
		}

		//HIDE PRIOR TO UPDATE
		this.arrow.hide();
		this.parentDiv.hide();

		this.arrow.getOrientation();
		this.move();

		//RENDER THE APPROPRIATE TAB -This is called after the ajax call is a success
		var options={_success:function(){_this.finalizeShow(); } }

		this.renderTabChoice();
		if (signD == true){
			//ADJUST THE POPUP TABLE NAVIGATION AS ONLY 2 TABS ARE BEING GENERATED
			this.updateTable("pcTabs","left:305px;position:absolute;top:6px; z-index:1;")
		}
		this.renderContent(options);
		this.trackCardLoad();

		//WILL PROCEED TO finalizeShow() AFTER COMPLETION OF THE PROTOTYPE AJAX UPDATE
	},

	updateTable: function(elem, style){
		Element.setStyle(elem,style)

	},

	finalizeShow: function(){
		this.arrow.show();
		this.parentDiv.show();
		this.status = com.espn.recruit.PopTeamCard.STATUS_SHOWN;
	},

	changeTab: function(tabId) {
			this.tabId = tabId;
			this.renderTabChoice();
			this.renderContent();
			this.trackTabChange();

	},

	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){

		switch (parseInt(this.tabId)){
			case com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM:
				this.renderContentBriefingRoom(options)
				break;
			case com.espn.recruit.PopTeamCard.TAB_COMMITS:
				this.renderContentCommits(options)
				break;
			case com.espn.recruit.PopTeamCard.TAB_CONSIDERED:
				this.renderContentConsidered(options)
				break;
			default:
				this.renderContentBriefingRoom(options)
				break;
		}
	},

	getCachedData: function(){
		if (com.espn.recruit.PopTeamCard.cache[this.schoolId + this.classYear]){
			if (com.espn.recruit.PopTeamCard.cache[this.schoolId + this.classYear][this.tabId]){
				return com.espn.recruit.PopTeamCard.cache[this.schoolId + this.classYear][this.tabId]
			}
		}
		return null;
	},

	setCachedData: function(data){
		if (!com.espn.recruit.PopTeamCard.cache[this.schoolId + this.classYear]){
			com.espn.recruit.PopTeamCard.cache[this.schoolId + this.classYear] = new Object();
		}
		com.espn.recruit.PopTeamCard.cache[this.schoolId + this.classYear][this.tabId] = data;
	},

	renderContentCommits: function(options) {

		var _this = this;

		var _success = function(transport, object){
			_this.setCachedData(transport.responseText);
			if (options && options._success){options._success();}

			// OMNITURE
		};

		if (com.espn.recruit.PopTeamCard.SigningDay == "false"){
			var url='format/popteam/commits'
			var pars =  'schoolId='+this.schoolId+'&classYear='+this.classYear+'&signingDay='+this.signingDay+'&espn150Release='+this.espn150Release
			var target = this.contentDiv;
			new Ajax.Updater(target, url, {method: 'get', parameters: pars, onComplete: _success});
		}else{
			var cachedData = this.getCachedData();
			if (cachedData){
				Element.update(this.contentDiv, cachedData);
				this.finalizeShow();

			}else{
				//var url='http://<%host%>'+recruitingPath+'/format/popteam/commits'
			var url='format/popteam/commits'
			var pars =  'schoolId='+this.schoolId+'&classYear='+this.classYear+'&signingDay='+this.signingDay+'&espn150Release='+this.espn150Release
			var target = this.contentDiv;
			new Ajax.Updater(target, url, {method: 'get', parameters: pars, onComplete: _success});
			}
		}

	},

	renderContentConsidered:function(options){

		var _this = this;

		var _success = function(transport, object) {
					_this.setCachedData(transport.responseText);
			if (options && options._success) { options._success(); }

		};

		if (com.espn.recruit.PopTeamCard.SigningDay == "false"){
				var url='format/popteam/considered'
				var pars =  'schoolId='+this.schoolId+'&classYear='+this.classYear+'&signingDay='+this.signingDay+'&espn150Release='+this.espn150Release
				var target = this.contentDiv;
				new Ajax.Updater(target, url, {method: 'get', parameters: pars, onComplete: _success});
		}else{
			var cachedData = this.getCachedData();
			if (cachedData){
				Element.update(this.contentDiv, cachedData);
				this.finalizeShow();
			}else{
				//var url='http://<%host%>'+recruitingPath+'/format/popteam/considered'
				var url='format/popteam/considered'
				var pars =  'schoolId='+this.schoolId+'&classYear='+this.classYear+'&signingDay='+this.signingDay+'&espn150Release='+this.espn150Release
				var target = this.contentDiv;
				new Ajax.Updater(target, url, {method: 'get', parameters: pars, onComplete: _success});
			}
		}
	},

	renderContentBriefingRoom: function(options){

		var _this=this;

		var _success = function(transport, object){
			_this.setCachedData(transport.responseText);

			if (options && options._success){options._success();}


		};

		if (com.espn.recruit.PopTeamCard.SigningDay == "false"){
			var url='format/popteam/briefingroom'
			var pars =  'schoolId='+this.schoolId+'&classYear='+this.classYear+'&signingDay='+this.signingDay+'&espn150Release='+this.espn150Release
			var target = this.contentDiv;
			new Ajax.Updater(target, url, {method: 'get', parameters: pars, onComplete: _success});
		}else{
		var cachedData = this.getCachedData();
		if (cachedData){
			Element.update(this.contentDiv, cachedData);
			this.finalizeShow();
		}else{
			//var url = 'http://<%host%>'+recruitingPath+'/format/popteam/briefingroom'
			var url='format/popteam/briefingroom'
			var pars =  'schoolId='+this.schoolId+'&classYear='+this.classYear+'&signingDay='+this.signingDay+'&espn150Release='+this.espn150Release
			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); };

			// LEFT SIDE
			Element.update($('pcTab' + tabId + '_left'), com.espn.recruit.PopTeamCard.formatPNGTag({ width: 14, height: 26, border: 0, src: imgDir+'/left_GREY_tab.png' }));

			// MIDDLE SECTION
			var oldTabBG = $('pcTabBG' + tabId)
			Element.update(oldTabBG, com.espn.recruit.PopTeamCard.formatPNGTag({ width: Element.getStyle(oldTabBG, 'width'), height: Element.getStyle(oldTabBG, 'height'), border: 0, src: imgDir+'/GREY_tab_bg.png' }));

			// RIGHT SIDE
			switch (tabId){
				case 0:
					var width = (tabId == com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM) ? 14 : 10
					var endpiece = (tabId == com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM) ? 'end' : ''
					break;
				case 1:
					var width = (tabId == com.espn.recruit.PopTeamCard.TAB_COMMITS) ? 14 : 10
					var endpiece = (tabId == com.espn.recruit.PopTeamCard.TAB_COMMITS) ? 'end' : ''
					break;
				case 2:
					var width = (tabId == com.espn.recruit.PopTeamCard.TAB_CONSIDERED) ? 14 : 10
					var endpiece = (tabId == com.espn.recruit.PopTeamCard.TAB_CONSIDERED) ? 'end' : ''
					break;
				default:
					var width = (tabId == com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM) ? 14 : 10
					var endpiece = (tabId == com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM) ? 'end' : ''
					break;			}
			Element.update($('pcTab' + tabId + '_right'), com.espn.recruit.PopTeamCard.formatPNGTag({ width: width, height: 26, border: 0, src: imgDir+'/right_GREY_tab.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;

			// LEFT SIDE
			Element.update($('pcTab' + tabId + '_left'), com.espn.recruit.PopTeamCard.formatPNGTag({ width: 14, height: 26, border: 0, src:imgDir+'/left_BLK_tab.png' }));

			// MIDDLE SECTION
			var newTabBG = $('pcTabBG' + tabId)
			Element.update($('pcTabBG' + tabId), com.espn.recruit.PopTeamCard.formatPNGTag({ width: Element.getStyle(newTabBG, 'width'), height: Element.getStyle(newTabBG, 'height'), border: 0, src: imgDir+'/BLK_tab_bg.png' }));

			// RIGHT SIDE
			switch (tabId){
				case 0:
					var width = (tabId == com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM) ? 14 : 10
					var endpiece = (tabId == com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM) ? 'end' : ''
					break;
				case 1:
					var width = (tabId == com.espn.recruit.PopTeamCard.TAB_COMMITS) ? 14 : 10
					var endpiece = (tabId == com.espn.recruit.PopTeamCard.TAB_COMMITS) ? 'end' : ''
					break;
				case 2:
					var width = (tabId == com.espn.recruit.PopTeamCard.TAB_CONSIDERED) ? 14 : 10
					var endpiece = (tabId == com.espn.recruit.PopTeamCard.TAB_CONSIDERED) ? 'end' : ''
					break;
				default:
					var width = (tabId == com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM) ? 14 : 10
					var endpiece = (tabId == com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM) ? 'end' : ''
					break;
			}
			Element.update($('pcTab' + tabId + '_right'), com.espn.recruit.PopTeamCard.formatPNGTag({ width: width, height: 26, border: 0, src: imgDir+'/right_BLK_tab.png' }));
	},

	renderTabChoice: function() {

			var _this = this;
			$A(com.espn.recruit.PopTeamCard.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';
			//if (com.espn.recruit.PopTeamCard.SigningDay == "true"){
			//	tabsDiv.innerHTML =
				//SINCE SIGNING DAY DO NOT SHOW THE CONSIDERING TAB.  NEED TO ADJUST TABLE ACCORDINGLY
			//	'<table border="0" cellpadding="0" cellspacing="0" width="188"><tbody><tr>' +
			//		'<td width="14" id="pcTab' + com.espn.recruit.PopTeamCard.TAB_COMMITS + '_left">' + com.espn.recruit.PopTeamCard.formatPNGTag({ width: 14, height: 26, border: 0, src: imgDir+'/left_GREY_tab.png' }) + '</td>' +
			//		'<td style="z-index:70;"><div style="position:absolute;z-index:75;top:7px;left:18px;padding: 4px 0 0 0;"><a id="pcTab' + com.espn.recruit.PopTeamCard.TAB_COMMITS + '">Commits</a></div><div id="pcTabBG' + com.espn.recruit.PopTeamCard.TAB_COMMITS + '" style="width:52px;height:26px;">' + com.espn.recruit.PopTeamCard.formatPNGTag({ width: 52, height: 26, border: 0, src: imgDir+'/GREY_tab_bg.png' }) + '</div></td>' +
			//		'<td width="10" id="pcTab' + com.espn.recruit.PopTeamCard.TAB_COMMITS + '_right">' + com.espn.recruit.PopTeamCard.formatPNGTag({ width: 10, height: 26, border: 0, src: imgDir+'/right_GREY_tab.png' }) + '</td>' +
			//		'<td width="14" id="pcTab' + com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM + '_left">' + com.espn.recruit.PopTeamCard.formatPNGTag({ width: 14, height: 26, border: 0, src:imgDir+'/left_BLK_tab.png' }) + '</td>' +
			//		'<td style="z-index:80;"><div style="position:absolute;z-index:85;top:7px;left:105px;padding: 4px 0 0 0; width:99px;"><a id="pcTab' + com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM + '">On the Trail</a></div><div id="pcTabBG' + com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM + '" style="width:99px;height:26px;">' + com.espn.recruit.PopTeamCard.formatPNGTag({ width: 159, height: 26, border: 0, src: imgDir+'/BLK_tab_bg.png'}) + '</div></td>' +
			//		'<td width="14" id="pcTab' + com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM + '_right">' + com.espn.recruit.PopTeamCard.formatPNGTag({ width: 16, height: 26, border: 0, src: imgDir+'/right_BLK_tab.png' }) + '</td>' +
			//		'</tr></tbody></table>';
			//}else{
				tabsDiv.innerHTML =
				'<table border="0" cellpadding="0" cellspacing="0" width="288"><tbody><tr>' +
					'<td width="14" id="pcTab' + com.espn.recruit.PopTeamCard.TAB_CONSIDERED + '_left">' + com.espn.recruit.PopTeamCard.formatPNGTag({ width: 14, height: 26, border: 0, src:imgDir+'/left_GREY_tab.png' }) + '</td>' +
					'<td style="z-index:80;"><div style="position:absolute;z-index:85;top:7px;left:21px;padding: 4px 0 0 0;"><a id="pcTab' + com.espn.recruit.PopTeamCard.TAB_CONSIDERED + '">Considering</a></div><div id="pcTabBG' + com.espn.recruit.PopTeamCard.TAB_CONSIDERED + '" style="width:79px;height:26px;">' + com.espn.recruit.PopTeamCard.formatPNGTag({ width: 79, height: 26, border: 0, src: imgDir+'/GREY_tab_bg.png'}) + '</div></td>' +
					'<td width="14" id="pcTab' + com.espn.recruit.PopTeamCard.TAB_CONSIDERED + '_right">' + com.espn.recruit.PopTeamCard.formatPNGTag({ width: 14, height: 26, border: 0, src: imgDir+'/right_GREY_tag.png' }) + '</td>' +
					'<td width="14" id="pcTab' + com.espn.recruit.PopTeamCard.TAB_COMMITS + '_left">' + com.espn.recruit.PopTeamCard.formatPNGTag({ width: 14, height: 26, border: 0, src: imgDir+'/left_GREY_tab.png' }) + '</td>' +
					'<td style="z-index:70;"><div style="position:absolute;z-index:75;top:7px;left:121px;padding: 4px 0 0 0;"><a id="pcTab' + com.espn.recruit.PopTeamCard.TAB_COMMITS + '">Commits</a></div><div id="pcTabBG' + com.espn.recruit.PopTeamCard.TAB_COMMITS + '" style="width:52px;height:26px;">' + com.espn.recruit.PopTeamCard.formatPNGTag({ width: 52, height: 26, border: 0, src: imgDir+'/GREY_tab_bg.png' }) + '</div></td>' +
					'<td width="10" id="pcTab' + com.espn.recruit.PopTeamCard.TAB_COMMITS + '_right">' + com.espn.recruit.PopTeamCard.formatPNGTag({ width: 10, height: 26, border: 0, src: imgDir+'/right_GREY_tab.png' }) + '</td>' +
					'<td width="14" id="pcTab' + com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM + '_left">' + com.espn.recruit.PopTeamCard.formatPNGTag({ width: 14, height: 26, border: 0, src:imgDir+'/left_BLK_tab.png' }) + '</td>' +
					'<td style="z-index:80;"><div style="position:absolute;z-index:85;top:7px;left:210px;padding: 4px 0 0 0; width:99px;"><a id="pcTab' + com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM + '">On the Trail</a></div><div id="pcTabBG' + com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM + '" style="width:99px;height:26px;">' + com.espn.recruit.PopTeamCard.formatPNGTag({ width: 159, height: 26, border: 0, src: imgDir+'/BLK_tab_bg.png'}) + '</div></td>' +
					'<td width="14" id="pcTab' + com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM + '_right">' + com.espn.recruit.PopTeamCard.formatPNGTag({ width: 16, height: 26, border: 0, src: imgDir+'/right_BLK_tab.png' }) + '</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 ='<div id="rt-popup" style="clear:both;">'+

					com.espn.recruit.PopTeamCard.formatPNGTag({ width: 519, height: 19, border: 0, src: imgDir+'/rt_popup_top.png' }) +
					'<br />' +
					'<!-- start Main Overview -->' +
					'<div>' +
					iframeBackboard +
					//CHANGED
					'<div style="z-index:50;position:absolute;width:519px;height:388px;top:19px;left:0px;">' +
						com.espn.recruit.PopTeamCard.formatPNGTag({  height: 388, width: 519, border: 0, src: imgDir+'/rt_popup_middle.png' }) +
					'</div>' +
					'<div style="position:relative;z-index:60;width: 480px; height:388px; margin: 0 0 0 20px;background: #fff;">' +
						'<!-- start content div -->' +
						'<div id="rt-contentwrap" style="height:354px;">'+
						'</div>'+
						'<!-- end content div -->' +
						//'<br clear="all">' +
						'<!-- begin close option -->' +
						'<div id="pcCloseBorder">' +
							'<div id="pcClose">'+
								'<img id="pcCloseButton" src="'+imgDir+'/RTclose_btn.gif" border="0" width="64" height="20" style="cursor: pointer;" alt="CLOSE" title="" />'+
							'</div>' +
						'</div>' +
						'<!-- end close option -->' +
					'</div>' +
					'<!-- end overview -->' +
				'</div>' +
				'<div>'+
					com.espn.recruit.PopTeamCard.formatPNGTag({ width: 519, height: 20, border: 0, src: imgDir+'/rt_popup_btm.png' }) +
				'</div>' +
				'<!-- end PlayerCard background -->' +
				'</div>' +
				'<!-- end main -->'
		this.parentDiv.appendChild(bodyDiv);
	},

	_onload: function() {
		document.body.appendChild(this.parentDiv);
		this.contentDiv = $('rt-contentwrap');  //If not displaying visit
		this.bindEventListeners();
		this.arrow._onload(this.arrow);
	},

	bindEventListeners: function() {

		var _this = this;
		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' });

	},

		getTabName: function(tabId) {

				if(tabId == com.espn.recruit.PopTeamCard.TAB_BRIEFING_ROOM){
					return 'briefing_room';
				} else if(tabId == com.espn.recruit.PopTeamCard.TAB_COMMITS){
					return 'commits';
				} else if(tabId == com.espn.recruit.PopTeamCard.TAB_CONSIDERED){
					return 'considered';
				}else {
					return ''
				}

			},

			trackCardLoad: function() {

				var tabName = this.getTabName(this.tabId);
				var anExec = 0;//set to zero for multiple page views per page, otherwise omit
				var anSiteSection = "insider";
				var anContentSection = "ncf";
				var anContentSubSection = "recruiting";
				var anContentSubSubSection = "";
				var anContentType = "popup"
				var anLeafPageName = "teamcard-" + tabName;
				var anStoryId = "college="+ this.schoolName.toLowerCase().replace(/\s/g,"+");
				// alert("Track Card Load "+anExec+ ' ' +anSiteSection+ ' ' +anContentSection+ ' ' +anContentSubSection+ ' ' +anContentSubSubSection+ ' ' +anContentType+ ' ' +anLeafPageName+ ' ' +anStoryId)
				anTrackPageView(anExec,anSiteSection,anContentSection,anContentSubSection,anContentSubSubSection,anContentType,anLeafPageName,anStoryId);

			},

			trackTabChange: function() {
				var tabName = this.getTabName(this.tabId);
				var anLinkURL = "http://insider.espn.go.com/ncf/player"
				var anSiteSection = "insider";
				var anLinkPos = "ncf_recruiting_popup_tab";
				var anLinkId = "ncf_" + tabName;
				//alert("Track Card Change "+ anLinkURL+ ' ' +anSiteSection+ ' ' +anLinkPos+ ' ' +anLinkId)
				anTrackLink(anLinkURL,anSiteSection,anLinkPos,anLinkId);
	}

 };

com.espn.recruit.PopTeamCard.Arrow = Class.create();

com.espn.recruit.PopTeamCard.Arrow.prototype = {

	popteamcard :null,
	postion : null,

	height:110,
	width:59,

	padding: 0,
	borderSize: 0,

	parentDiv: null,
	image:null,
	orientation:null,

	initialize: function(popteamcard){

		this.popteamcard = popteamcard;
		this.orientation = { y: com.espn.recruit.PopTeamCard.ORIENTATION_DOWN, x: com.espn.recruit.PopTeamCard.ORIENTATION_LEFT };
		var positionProperties = { y: 0, x: 0 };
		this.position = new com.espn.recruit.PopTeamCard.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.PopTeamCard.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.popteamcard.width + this.popteamcard.getOffset().x;
		var heightNeeded = this.popteamcard.height + this.popteamcard.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.popteamcard.sourceElement.x_right - (document.documentElement.scrollLeft || document.body.scrollLeft)) - widthNeeded > 0) {
			x_orientation = com.espn.recruit.PopTeamCard.ORIENTATION_LEFT;
		} else if ((this.popteamcard.sourceElement.x_left - (document.documentElement.scrollLeft || document.body.scrollLeft)) > widthNeeded) {
			x_orientation = com.espn.recruit.PopTeamCard.ORIENTATION_RIGHT;
		} else {
			x_orientation = com.espn.recruit.PopTeamCard.ORIENTATION_CENTER;
		}

		if ((this.popteamcard.sourceElement.y_top - (document.documentElement.scrollTop || document.body.scrollTop)) > heightNeeded) {
			y_orientation = com.espn.recruit.PopTeamCard.ORIENTATION_DOWN;
		} else if (availableHeight - (this.popteamcard.sourceElement.y_bottom - (document.documentElement.scrollTop || document.body.scrollTop)) - heightNeeded > 0) {
			y_orientation = com.espn.recruit.PopTeamCard.ORIENTATION_UP;
		} else {
			y_orientation = com.espn.recruit.PopTeamCard.ORIENTATION_CENTER;
		}

		this.orientation.x = x_orientation;
		this.orientation.y = y_orientation;
	},

	render: function() {
		var y_orientation = (this.orientation.y != com.espn.recruit.PopTeamCard.ORIENTATION_CENTER) ? this.orientation.y : com.espn.recruit.PopTeamCard.ORIENTATION_DOWN;
		this.image.src = imgDir+'/popup_arrow_' + this.orientation.x + y_orientation + '.png';
		Element.update(this.parentDiv, com.espn.recruit.PopTeamCard.formatPNGTag({ width: this.width, height: this.height, border: 0, src: this.image.src }));
	}
}

com.espn.recruit.PopTeamCard.Position = Class.create();
	com.espn.recruit.PopTeamCard.ORIENTATION_DOWN = 0;
	com.espn.recruit.PopTeamCard.ORIENTATION_UP = 1;
	com.espn.recruit.PopTeamCard.ORIENTATION_LEFT = 0;
	com.espn.recruit.PopTeamCard.ORIENTATION_RIGHT = 1;
	com.espn.recruit.PopTeamCard.ORIENTATION_CENTER = 2; // USED IN INSTANCES WHERE THERE ISN'T ROOM ON EITHER SIDE OF THE ELEMENT, SO CENTER THE CARD



com.espn.recruit.PopTeamCard.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 popteamcard = (this.component.popteamcard) ? this.component.popteamcard : this.component;
		var isArrow = (arrow == this.component);
		switch(arrow.orientation.x) {
			case com.espn.recruit.PopTeamCard.ORIENTATION_LEFT:
				x = popteamcard.sourceElement.x_right;
				break;
			case com.espn.recruit.PopTeamCard.ORIENTATION_RIGHT:
				x = popteamcard.sourceElement.x_left;
				break;
			case com.espn.recruit.PopTeamCard.ORIENTATION_CENTER:
				x = Event.pointerX(popteamcard.sourceEvent);
				break;
		}
		switch(arrow.orientation.y) {
			case com.espn.recruit.PopTeamCard.ORIENTATION_DOWN:
				y = popteamcard.sourceElement.y_top;
				break;
			case com.espn.recruit.PopTeamCard.ORIENTATION_UP:
				y = popteamcard.sourceElement.y_bottom;
				break;
			case com.espn.recruit.PopTeamCard.ORIENTATION_CENTER:
				y = (!isArrow) ? Event.pointerY(popteamcard.sourceEvent) : popteamcard.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.PopTeamCard.ORIENTATION_DOWN || (orientation.y == com.espn.recruit.PopTeamCard.ORIENTATION_CENTER && isArrow)) {
			this.y = coordinates.y - y_offset - this.component.height;
		} else if (orientation.y == com.espn.recruit.PopTeamCard.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.PopTeamCard.ORIENTATION_LEFT) {
			this.x = coordinates.x + x_offset;
		} else if (orientation.x == com.espn.recruit.PopTeamCard.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.PopTeamCard.instance = new com.espn.recruit.PopTeamCard();