
nfl.namespace('nfl.combine');
nfl.namespace('nfl.combine.players');
nfl.namespace('nfl.combine.topPerformers');

nfl.combine.topPerformers.state = {active:false}

nfl.combine.players.accordian = new Class.create();
nfl.combine.players.accordian.prototype = {
	initialize: function(expandDrawerIndex){
		//initialize featured players accordian
		Event.observe(window,'load', function(event){
			if($('featured-players-container')){
				nfl.log("nfl.combine.players.accordian.initialize: featured players container found");
				this.accordianController = new nfl.ui.accordion('featured-players-container',{
					classNames : {
						toggle : 'featured-players-accordion-toggle',
						toggleActive : 'featured-players-accordion-toggle-active',
						content : 'featured-players-accordion-content'
					}
				});
				nfl.log("nfl.combine.players.accordian.initialize: accordian controller created");
				nfl.log("nfl.combine.players.accordian.initialize: expandOption = "+ expandDrawerIndex);
				
				if(typeof expandDrawerIndex != 'undefined'){
					this.accordianController.activate($$('#featured-players-container .featured-players-accordion-toggle')[expandDrawerIndex]);
				}
			}
			nfl.log("nfl.combine.players.accordian.initialize: done");
		}.bind(this));
	}
}


nfl.combine.players.dataset	= Class.create();
nfl.combine.players.dataset.prototype	= {
	initialize: function(object){
		this.__dataset		= object;
		this.itemsPerPage	= 500;
		this.currentPage	= 1;
	},
	__sortByName: function(a, b) {
		var x = a.name.toLowerCase();
		var y = b.name.toLowerCase();
		return ((x < y) ? -1 : ((x > y) ? 1 : 0));
	},
	__sortByPosition: function(a, b) {
		var x = a.position.toLowerCase();
		var y = b.position.toLowerCase();
		return ((x < y) ? -1 : ((x > y) ? 1 : 0));
	},
	__sortByCollege: function(a, b) {
		var x = a.college.toLowerCase();
		var y = b.college.toLowerCase();
		return ((x < y) ? -1 : ((x > y) ? 1 : 0));
	},
	sortedBy: function(sortType){
		//var __tArray	= Object.clone(this.__dataset);
		var __tArray	= this.__dataset.clone();
		switch(sortType){
			case "position":
				__tArray.sort(this.__sortByPosition)
				break
			case "name":
				__tArray.sort(this.__sortByName)
				break
			case "college":
				__tArray.sort(this.__sortByCollege)
				break
			default:
				break
		}
		__tArray.itemsPerPage = this.itemsPerPage;
		__tArray.currentPage = this.currentPage;
		__tArray.filter = null;
		__tArray.inspect = function(){
			var retVal	= "[";
			for(i=0; i < this.size(); i++){				
				var dataRow	= this[i];
				var drKeys	= Object.keys(dataRow);
				var drVals	= Object.values(dataRow);
				
				retVal	+= "{";
				for(z=0; z < drKeys.size(); z++){
					retVal	+= (drKeys[z]+":"+drVals[z]+",");
				}
				retVal	+= "}";
			}
			retVal	+= "]";
			return retVal
		}
		__tArray.totalPages = function(){
			return Math.Round((this.totalResults() / itemsPerPage));
		}
		__tArray.totalResults = function(){
			return this.__getFilteredResults().size();
		}
		__tArray.bindTo	= function(obj){
			this.__databoundobject	= obj;
		}
		__tArray.__getFilteredResults	= function(){
			var __debugchecks	= "__getFilteredResults: ("+ this.filter +")\n\r";
			var resArray		= new Array()
			for(i=0; i < this.size(); i++){
				var dataRow			= this[i];
				var matchesFilter	= false;
				if(this.filter != null){
					__debugchecks	+= (dataRow[this.filter.field].toUpperCase() +" "+ this.filter.operator +" "+ this.filter.criteria +" ? ");
					if(this.filter.operator == '='){
						if(dataRow[this.filter.field].toUpperCase() == this.filter.criteria.toUpperCase()){ matchesFilter = true; }
					}
					if(this.filter.operator == 'startsWith'){
						if(dataRow[this.filter.field].toUpperCase().indexOf(this.filter.criteria.toUpperCase()) === 0){ matchesFilter = true; }
					}
					__debugchecks	+= (matchesFilter+ "\n\r");
				}
				if(matchesFilter === true || this.filter === null){
					resArray[resArray.length]	= dataRow;
				}
			}
			nfl.log(__debugchecks);
			return resArray
		}
		__tArray.databind	= function(){
			var __tableId		= (typeof this.__databoundobject.id != 'undefined') ? this.__databoundobject.id : "data-grid-table";
			var __tableClassName= (typeof this.__databoundobject.className != 'undefined') ? this.__databoundobject.className : "data-grid-table";
			var __rowTemplate	= new Template("<tr><td><a href=/combine/profiles/#{firstNameEncoded}-#{lastNameEncoded}?id=#{id}>#{name}</a></td><td><a href=\"javascript: window.location='#players-tab-set-1:players-grid-container-position';nfl.combine.players.changeDataSet('by position',{field: 'position', criteria: '#{position}', operator: '='});\">#{position}</a></td><td>#{height}</td><td>#{weight}</td><td><a href=\"javascript: window.location='#players-tab-set-1:players-grid-container-college'; nfl.combine.players.changeDataSet('by college',{field: 'college', criteria: '#{college}', operator: '='});\">#{college}</a></td></tr>");
			var __rowTemplate2	= new Template("<tr class=\"altrow\"><td><a href=/combine/profiles/#{firstNameEncoded}-#{lastNameEncoded}?id=#{id}>#{name}</a></td><td><a href=\"javascript: window.location='#players-tab-set-1:players-grid-container-position';nfl.combine.players.changeDataSet('by position',{field: 'position', criteria: '#{position}', operator: '='});\">#{position}</a></td><td>#{height}</td><td>#{weight}</td><td><a href=\"javascript: window.location='#players-tab-set-1:players-grid-container-college'; nfl.combine.players.changeDataSet('by college',{field: 'college', criteria: '#{college}', operator: '='});\">#{college}</a></td></tr>");
			var __tableContent	= "<table id=\""+ __tableId +"\" class=\""+ __tableClassName +"\" cellspacing=\"1\" cellpadding=\"0\" width=\"100%\">\n\r";
			var __currentIndex	= 0;
			var __rowInc		= 1;
			var __rowAlt		= false;
			var __filteredResults = this.__getFilteredResults();
			if(this.currentPage > 1){
				__currentIndex	= ((this.itemsPerPage * this.currentPage)+1);
			}
			
			__tableContent	+= "<thead><tr><td>Name</td><td>Position</td><td>Height</td><td>Weight</td><td>College</td></tr></thead>";
			//__tableContent	+= "<tr class=\"top-row-spacer\"><td>&nbsp;</td><td></td><td></td><td></td><td></td></tr>";
			__debugchecks		= "debug checks: \n\r";
			nfl.log("__filteredResults.size() = "+ __filteredResults.size());
			for(i=0; i < __filteredResults.size(); i++){				
				var dataRow					= __filteredResults[i];
				dataRow.firstName			= dataRow.firstName.toLowerCase();
				dataRow.lastName			= dataRow.lastName.toLowerCase();
				dataRow.firstNameEncoded	= dataRow.firstName.replace(/ /gi,"-");
				dataRow.lastNameEncoded		= dataRow.lastName.replace(/ /gi,"-");
				if(__rowInc < this.itemsPerPage){
					if(!__rowAlt){
						var tr_content	= __rowTemplate.evaluate(dataRow);
						__rowAlt		= true;
					}else{
						var tr_content	= __rowTemplate2.evaluate(dataRow);
						__rowAlt		= false;
					}
					__tableContent	   += (tr_content +'\n\r');
					__debugchecks	   += (tr_content +'\n\r');
					__rowInc++
				}else{
					if(__rowInc > this.itemsPerPage){ break; }
				}
			}
			nfl.log(__debugchecks +"\n\r\n\rwriting to: "+ this.__databoundobject.id);
			__tableContent	+= "</table>\n\r";
			if(__filteredResults.size() > 0){
				this.__databoundobject.up().removeClassName("no-results");
				this.__databoundobject.replace(__tableContent);
				this.__databoundobject	= $(__tableId);
			}else{
				this.__databoundobject.up().addClassName("no-results");
			}
		}
		
		return __tArray;
	}
}


nfl.combine.players.onTabClick	= function(event){
	var srcObj		= Event.element(event);
	var tabText;
	nfl.log("{nfl.combine.players.onTabClick: srcObj.tagName = "+ srcObj.tagName +"}");
	nfl.log("{nfl.combine.players.onTabClick: srcObj.innerHTML = "+ srcObj.innerHTML +"}");
	switch(srcObj.tagName){
		case "A":
			var tabText	= srcObj.innerHTML.strip().toLowerCase();
			break;
		case "LI":
			tabText 	= srcObj.down("a").innerHTML.strip().toLowerCase();
			break;
		case "DIV":
			tabText 	= srcObj.up().down("a").innerHTML.strip().toLowerCase();
			break;
		default:
			break;
			
	}
	/*
	if(srcObj.tagName == "A"){
		var tabText		= srcObj.innerHTML.substring(0,srcObj.innerHTML.indexOf("<")).strip().toLowerCase();
	}else{
		if(srcObj.tagName == "LI"){
			tabText = srcObj.down().innerHTML.substring(0,srcObj.down().innerHTML.indexOf("<")).strip().toLowerCase();
		}
	}
	*/
	nfl.log("{nfl.combine.players.onTabClick: "+ tabText +"}");
	nfl.combine.players.changeDataSet(tabText);
}

nfl.combine.players.changeDataSet = function(strDataType,filterObj){
	nfl.log("nfl.combine.players.changeDataSet: \""+ strDataType +"\"");
	var filter		= (typeof filterObj == 'undefined')? false : filterObj
	var filterExp	= "";
	var dataChanged	= false;		

	switch(strDataType){
		case "by name":
			if(nfl.combine.players.activeDataSet !== playersDataSetbyName){ 
				nfl.combine.players.activeDataSet = playersDataSetbyName;
				dataChanged = true;
				if(!filter){
					filterExp	= "#players-list-links-alphabetical #alpha-a";
					nfl.combine.players.activeDataSet.filter	= {field: 'name', criteria: 'A', operator: 'startsWith'};
				}else{
					filterExp	= "#players-list-links-alphabetical #alpha-"+ filter.criteria.toLowerCase();
				}
			};
			break;
		case "by position":
			if(nfl.combine.players.activeDataSet !== playersDataSetbyPosition){ 
				nfl.combine.players.activeDataSet = playersDataSetbyPosition; 
				dataChanged = true; 
				if(!filter){
					filterExp	= "#players-list-links-position #pos-qb";
					nfl.combine.players.activeDataSet.filter	= {field: 'position', criteria: 'QB', operator: '='};
				}else{
					filterExp	= "#players-list-links-position #pos-"+ filter.criteria.toLowerCase();
				}
			};
			break;
		case "by college":
			if(nfl.combine.players.activeDataSet !== playersDataSetbyCollege){ 
				nfl.combine.players.activeDataSet = playersDataSetbyCollege;
				dataChanged = true; 
			};
			break;
		case "by conference":
			if(nfl.combine.players.activeDataSet !== playersDataSetbyCollege){ 
				nfl.combine.players.activeDataSet = playersDataSetbyCollege;
				dataChanged = true; 
			};
			break;
			conference
		default:
			break;
	}
	if(filter){
		nfl.combine.players.activeDataSet.filter	= filter;
	}
	if(dataChanged){
		/* reset dataset paging properties.. hmm... or maybe not */
		/* redraw datagrid view port */
		nfl.log("nfl.combine.players.onTabClick: activeDataSet:\n\r"+ nfl.combine.players.activeDataSet.inspect());
		nfl.combine.players.activeDataSet.databind();
		hightlightFilterChoice(filterExp);
	}
	nfl.log("nfl.combine.players.changeDataSet: exit");
}

nfl.namespace('combine.players.activeSearch');
nfl.combine.players.activeSearch.onKeyPress = function(e){
	var evt					= (e) ? e : window.event;
	var currKeyCode;
	var currKeyChar;
	if(window.event){
		currKeyCode = e.keyCode;
	}
	else if(e.which){
		currKeyCode = e.which;
	}
	var currKeyChar			= String.fromCharCode(currKeyCode);
	var currTotalVal		= (Event.element(e).value).strip().toUpperCase();
	nfl.log("nfl.combine.players.activeSearch.onKeyPress: currKeyChar = "+ currKeyChar);
	if(("abcdefghijklmnopqrstuvwxyz0123456789").indexOf(currKeyChar.toLowerCase()) > -1){
		var currTotalVal	= (Event.element(e).value + currKeyChar).strip().toUpperCase();
	}else{
		 if(currKeyCode == 8){
		 	var currTotalVal	= currTotalVal.substring(0, currTotalVal.length - 1);
		 }
	}
	nfl.log("nfl.combine.players.activeSearch.onKeyPress: "+ currTotalVal);
	/* filter current result set based on current total value */
	
	applyFilter(currTotalVal,"name","startsWith");
}
nfl.combine.players.activeSearch.onFirstFocus	= function(event){
	Event.element(event).value	= "";
	Event.element(event).removeClassName("players-grid-activesearch-displaymessage");
	Event.stopObserving($('activesearch-term'),'focus',nfl.combine.players.activeSearch.onFirstFocus);
	
}

applyFilter	= function(filterValue,filterField,filterOperator){
	if(filterValue != 'ALL'){
		nfl.combine.players.activeDataSet.filter	= {field: filterField, criteria: filterValue, operator: filterOperator};
		nfl.log("field: "+ filterField +", criteria: "+filterValue+", operator: "+filterOperator);
	}else{
		nfl.log("field: "+ filterField +", criteria: "+filterValue+", operator: "+filterOperator);
		nfl.combine.players.activeDataSet.filter	= null;
	}
	nfl.combine.players.activeDataSet.databind();
}
hightlightFilterChoice = function(filterExp){
	/* clear all old filter items */
	nfl.log("hightlightFilterChoice: "+ filterExp);
	$$("#players-list-links-alphabetical li").each(function(li){
		li.style.fontWeight	= 'normal';
	});
	$$("#players-list-links-position li").each(function(li){
		li.style.fontWeight	= 'normal';
	});
	/* set filter items to bold */
	$$(filterExp).each(function(li){
		li.style.fontWeight	= 'bold';
	});
}
filterCollegesByConferenceMembers	= function(event){
	var conferenceAbbr	= Event.element(event).value;
	var collegesWithConferencePlayers	= new Array();
	var debugstr						= "filterCollegesByConferenceMembers\n\r";
	
	for(i=0; i < playersDataSetbyCollege.size(); i++){
		var dataRow			= playersDataSetbyCollege[i];
		debugstr			+= (dataRow.conference +" == "+ conferenceAbbr +"? "+ (dataRow.conference == conferenceAbbr)) +"\n\r";
		if(dataRow.conference == conferenceAbbr){
			if(collegesWithConferencePlayers.indexOf(dataRow.college) == -1){
				collegesWithConferencePlayers[collegesWithConferencePlayers.length] = dataRow.college;
			}
		}
	}
	debugstr			+= "\n\r\n\r total returned items = "+ collegesWithConferencePlayers.length;
	//nfl.log(debugstr);
	/* now populate college pulldown with list */
	$('college-dropdown').options.length	= 0;
	$('college-dropdown').options[0]		= new Option("Choose a College","-1");
	collegesWithConferencePlayers.sort();
	for(i=0;i<collegesWithConferencePlayers.length;i++){
		$('college-dropdown').options[(i + 1)]	= new Option(collegesWithConferencePlayers[i],collegesWithConferencePlayers[i]);
	}
}
populateConferencesPulldown	= function(){
	var confEle	= $('college-conference-dropdown');
	var conferences	= new Array();
	for(i=0; i < playersDataSetbyCollege.size(); i++){
		var dataRow			= playersDataSetbyCollege[i];
		if(conferences.indexOf(dataRow.conference) == -1){
			conferences[conferences.length]	= dataRow.conference;
		}
	}
	conferences.sort();
	/* now populate conference pulldown with list */
	confEle.options.length	= 0;
	confEle.options[0]		= new Option("Choose a Conference","-1");
	for(i=0;i<conferences.length;i++){
		confEle.options[(i + 1)]	= new Option(conferences[i],conferences[i]);
	}
}
populateCollegesPulldown	= function(){
	var collegesEle	= $('college-dropdown');
	var colleges	= new Array();
	for(i=0; i < playersDataSetbyCollege.size(); i++){
		var dataRow			= playersDataSetbyCollege[i];
		if(colleges.indexOf(dataRow.college) == -1){
			colleges[colleges.length]	= dataRow.college;
		}
	}
	colleges.sort();
	/* now populate conference pulldown with list */
	collegesEle.options.length	= 0;
	collegesEle.options[0]		= new Option("Choose a College","-1");
	for(i=0;i<colleges.length;i++){
		collegesEle.options[(i + 1)]	= new Option(colleges[i],colleges[i]);
	}
}

/*
 * TOP PERFORMERS
 */

nfl.combine.topPerformers.onTabClick
nfl.combine.topPerformers.onTabClick	= function(event){
	var srcObj		= Event.element(event);
	var tabObj		= srcObj;
	var tabText;
	nfl.log("{nfl.combine.topPerformers.onTabClick: srcObj.tagName = "+ srcObj.tagName +"}");
	nfl.log("{nfl.combine.topPerformers.onTabClick: srcObj.innerHTML = "+ srcObj.innerHTML +"}");
	switch(srcObj.tagName){
		case "A":
			tabObj	= srcObj.up();
			tabText	= srcObj.innerHTML.strip().toLowerCase();
			break;
		case "LI":
			tabObj	= srcObj;
			tabText = srcObj.down("a").innerHTML.strip().toLowerCase();
			break;
		case "DIV":
			tabObj	= srcObj.up();
			tabText = srcObj.up().down("a").innerHTML.strip().toLowerCase();
			break;
		default:
			break;
			
	}
	/*
	if(srcObj.tagName == "A"){
		var tabText		= srcObj.innerHTML.substring(0,srcObj.innerHTML.indexOf("<")).strip().toLowerCase();
	}else{
		if(srcObj.tagName == "LI"){
			tabText = srcObj.down().innerHTML.substring(0,srcObj.down().innerHTML.indexOf("<")).strip().toLowerCase();
		}
	}
	*/
	var tabContentContainerId	= tabObj.down("a").href.substring(tabObj.down("a").href.lastIndexOf("#"));
	var tabIndex				= parseInt(tabObj.id.substring(tabObj.id.length - 1));
	nfl.log("{nfl.combine.topPerformers.onTabClick: "+ tabContentContainerId +" ["+ tabObj.id +"]}");
	var domContainer	= $$(tabContentContainerId +" div.tp-columns-container")[0];
	
	if(domContainer.innerHTML.strip() == ''){
		$(tabContentContainerId.substring(1)).addClassName("loading");
		nfl.combine.topPerformers.getTabContent(tabIndex,domContainer);
	}
	
	nfl.combine.topPerformers.logTabView(tabContentContainerId);
	
}

nfl.combine.topPerformers.getTabContent	= function(tabIndex,domContainer){
	nfl.log("nfl.combine.topPerformers.getTabContent: enter");
	var tabObj				= $$("#tp-tab-set-1 li.active")[0];
	var tabId				= (tabObj.id).substring((tabObj.id).length - 1);
	
	var targetContainerId	= domContainer.up("div.tp-grid-container").id;
	var wKey				= targetContainerId.replace("tp-grid-container-","").replace(/-/gi,"_");
	
	nfl.log("nfl.combine.topPerformers.getTabContent: wKey: \""+wKey +"\", tabIndex: \""+ tabIndex +"\"");
	
	//var request				= {url:"/ajax/combine/top-performers",params:{tab:tabIndex},method:"get"}
	var request				= {url:("/widget/combine/top-performers?workout="+ wKey),params:{workout:wKey,tab:tabIndex},method:"get"}
	// /widget/combine/top-performers?workout=forty_yard_dash
	
	nfl.log("nfl.combine.topPerformers.getTabContent: \n\r"+ "url:"+ request.url +"\n\rparams: "+ request.params);
	var tabContentRequest	= new Ajax.Request(request.url, {
		method: request.method, 
		params: request.params, 
		evalJSON: "force",
		onSuccess: function(XHR){
			nfl.combine.topPerformers.onDataResponse(XHR,request.params.tab)
		}
	});
	
	//nfl.combine.topPerformers.createTabContent(nfl.combine.topPerformers.tabContent,domContainer);
	nfl.log("nfl.combine.topPerformers.getTabContent: exit");
}
nfl.combine.topPerformers.onDataResponse	= function(XHR,tabIndex){
	//figure out which tab this data needs to be loaded into
	nfl.log("onDataResponse: enter");
	try{
		var tabObj					= $("tp-tab-set-1-tab-"+ tabIndex);
		var tabContentContainerId	= tabObj.down("a").href.substring(tabObj.down("a").href.lastIndexOf("#"));
		nfl.log("onDataResponse: "+tabContentContainerId);
		var domContainer			= $$(tabContentContainerId +" div.tp-columns-container")[0];
		nfl.log("onDataResponse: "+ domContainer.id);
		$(tabContentContainerId.substring(1)).removeClassName("loading");
	
		nfl.log("onDataResponse: tabIndex="+ tabIndex);

		//hand off data to content-creation mechanism
		nfl.log("typeof XHR.responseJSON = "+ (typeof XHR.responseJSON));
		if(typeof XHR.responseJSON != "undefined"){
			nfl.log("sending responseJSON");
			nfl.combine.topPerformers.createTabContent(XHR.responseJSON, domContainer);
		}else{
			var respJSON	= eval('(' + XHR.responseText + ')');
			nfl.log(XHR.responseText);
			nfl.combine.topPerformers.createTabContent(respJSON, domContainer);
		}
	}catch(e){
		nfl.log("onDataResponse: Error: "+ e.message);
	}
	nfl.log("onDataResponse: exit");
}
nfl.combine.topPerformers.createTabContent	= function(contentJSON,domContainer){
	nfl.log("nfl.combine.topPerformers.createTabContent("+ contentJSON +"): enter");
	nfl.log("nfl.combine.topPerformers.createTabContent: typeof contentJSON ="+(typeof contentJSON));
	try{
		var tabContent			= "";
		var columnIndex			= 1;
		for (var key in contentJSON) {
			var posGroupFragment	= (nfl.combine.topPerformers.createPositionGroupFragment(contentJSON[key]));
			nfl.log(contentJSON[key].displayName +" | columnIndex = "+columnIndex);
			if(posGroupFragment != ""){
				tabContent		+= (posGroupFragment);
			}
			if(columnIndex == 3 && posGroupFragment != ""){
				columnIndex		= 0;
				tabContent		+= "<br clear=\"all\"/>\n\r";
			}
			if(posGroupFragment != ""){ columnIndex++ }
		}
		nfl.log("nfl.combine.topPerformers.createTabContent:\n\r"+ tabContent);
		$(domContainer).update(tabContent);
	}catch(e){
		nfl.log("nfl.combine.topPerformers.createTabContent: Error: "+ e.message);
	}
	nfl.log("nfl.combine.topPerformers.createTabContent: exit");
}

nfl.combine.topPerformers.logTabView = function(filterViewId){
		var s_analytics = s_gi(s_account);
		s_analytics.linkTrackEvents="";
		s_analytics.linkTrackVars="prop35";
		s_analytics.prop35=filterViewId;
		s_analytics.events = '';
		s_analytics.tl(true,'o',filterViewId);
}


nfl.combine.topPerformers.createPositionGroupFragment	= function(positionGroupData){
	if(nfl.combine.topPerformers.state.active == true || (nfl.combine.topPerformers.state.active == false && positionGroupData.players && positionGroupData.players.length > 0)){
		/* create head of position group table */
		var retStr				 = "<div class=\"tp-grid-column\">";
		retStr					+= "<h2 class=" + positionGroupData.displayName.toLowerCase().replace(/ /gi,"-") + "><span>"+ positionGroupData.displayName.toUpperCase() + "</span></h2>\n\r";
		retStr					+= "<table width=\"200\" cellspacing=\"0\">\n\r<thead><tr>";
		for (var key in positionGroupData.displayFields) {
			retStr				+= ("<td>"+ (positionGroupData.displayFields[key]).capitalize() +"</td>");
		}
		retStr					+= "<td>&nbsp;</td>";
		retStr					+= "</tr></thead>\n\r";
		
		if(positionGroupData.players && positionGroupData.players.length > 0){
			/* now iterate through players*/
			for(p=0;p<positionGroupData.players.length;p++){
				var playerObj		= positionGroupData.players[p];
				retStr				+= "<tr>";
				for(var key in playerObj){
					/* there should only be one of these */
					for(var key2 in positionGroupData.displayFields){
						nfl.log("nfl.combine.topPerformers.createPositionGroupFragment: keyval = "+ key2);
						if(playerObj[key][positionGroupData.displayFields[key2]] == (playerObj[key].name)){
							retStr				+= ("<td><a href=\"/combine/profiles/"+ playerObj[key].firstName.toLowerCase().replace(/ /gi,"-") +"-"+ playerObj[key].lastName.toLowerCase().replace(/ /gi,"-") +"?id="+ (playerObj[key].id)+"\">"+ (playerObj[key][positionGroupData.displayFields[key2]]) +"</a></td>");
						}else{
							retStr				+= ("<td>"+ (playerObj[key][positionGroupData.displayFields[key2]]) +"</td>");
						}
					}
					if((playerObj[key].videoId) != null){
						retStr				+= ("<td><a href=\"/combine/videos/topperformers#video:"+ playerObj[key].videoId +"\" target=\"_blank\"><img src=\""+ nfl.global.imagepath +"/img/combine/video-icon.gif\"/></a></td>");
					}
					break;
				}
				retStr				+= "</tr>\n\r";
			}
		}else{
			retStr				+= "<tr><td>Results not yet available.</td></tr>";
		}
		retStr					+= "</table>\n\r</div>\n\r";
	}else{
		retStr					= "";
	}
	return retStr;
	//nfl.log("nfl.combine.topPerformers.createPositionGroupFragment: exit");
}