document.testURL = document.URL; // change document.testURL to document.URL and remove this line
var fn_omnitureData = new Array();
fn_omnitureData = {
	server: null,
	pathname: null,
	search: null,
	path: null,
	section: null,
	pageType: null,
	referrer: null,
	pageName: null
};
var fn_sectionIDs = new Array( "", "NFL", "MLB", "NBA", "NCAAF", "NCAAB", "NHL" );

/* SET KNOWN VALUES IN ARRAY */

// set the server
fn_omnitureData['server'] = window.location.host;

// set the pathname ( always starts with a slash, can't end with a slash )
fn_omnitureData['pathname'] = window.location.pathname;						// remove the search
if( fn_omnitureData['pathname'].charAt( fn_omnitureData['pathname'].length - 1 ) == "/" ) {	// remove trailing slashes for consistency
	fn_omnitureData['pathname'] = fn_omnitureData['pathname'].substr( 0, fn_omnitureData['pathname'].length - 1 );
}
if( fn_omnitureData['pathname'] == "" ) fn_omnitureData['pathname'] = "/";			// if you're left with nothing, use "/"

// set the search
fn_omnitureData['search'] = window.location.search;

// set the path
fn_omnitureData['path'] = fn_omnitureData['pathname'];
if( fn_omnitureData['search'] ) fn_omnitureData['path'] += fn_omnitureData['search'];		// reconstruct the proper path

// determine sport
var fn_sportname = null;
if( fn_omnitureData['search'] ) fn_sportname = fn_sectionIDs[ queryString( "sport_id" ) ];

// set the referrer if eref has a value
if( queryString( 'eref' ) != "false" ) {
	fn_omnitureData['referrer'] = "from ";
	switch( queryString( 'eref' )){
		case "FromFacebookShare": 
			fn_omnitureData['referrer'] += "Facebook"; break;
		default:
			fn_omnitureData['referrer'] += queryString( 'eref' );
		break;
	}
	if( queryString( 'xid' ) != "false" ) {
		fn_omnitureData['referrer'] += ", xid " + queryString( 'xid' );
	}
	fn_omnitureData['referrer'] += " - " + fn_omnitureData['path'];
} else if( queryString( 'xid' ) != "false" ) {
	fn_omnitureData['referrer'] = "from xid " + queryString( 'xid' ) + " to " + fn_omnitureData['path'];
} 

// set fn_team if team has a value in the querystring
var fn_team = 'unspecified team';
if( queryString( 'team' ) != "false" ){
	fn_team = queryString( 'team' );
}

var path_array = ( fn_omnitureData['pathname'].substr( 1 ) ).split( "/" );


/* BEGIN CATEGORIZING */

if( fn_omnitureData['pathname'] == "/" ) {
	if( fn_omnitureData['search'] == null || fn_omnitureData['search'] == '' )			// if there's no search string, you're on the home front
		fn_omnitureData['section'] = "Home";
	else if( fn_sportname != undefined )			// if fn_sportname has a value, that's the section
		fn_omnitureData['section'] = fn_sportname;
	else							// otherwise it's unknown
		fn_omnitureData['section'] = "unknown section";
		fn_omnitureData['pageType'] = fn_omnitureData['section'] + " Front";
		fn_omnitureData['pageName'] = fn_omnitureData['pageType'];
} else {
	switch( path_array[0] ) {
		case "articles":
			fn_omnitureData['section'] = "Sport"
			fn_omnitureData['pageType'] = fn_omnitureData['section'] + " Story";
			switch( ( path_array ).length ) {
				case 3:
					if( path_array[1] == "show" )
						fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + path_array[2];
					else
						fn_omnitureSetOther();
					break;
				default:
					fn_omnitureSetOther();
					break;
			}
			break;
		case "aggregated_articles":
			fn_omnitureData['section'] = 'SI Team News';
			fn_omnitureData['pageType'] = fn_omnitureData['section'] + " - " + fn_sportname + " - " + fn_team;
			fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + path_array[1];
			break;
		case "blogs":
			fn_omnitureData['section'] = "User Blogs";
			fn_omnitureData['pageType'] = fn_omnitureData['section'];
			if ( path_array.length == 1 ) {
				fn_omnitureData['pageType'] += " - Home";
			} else if ( path_array.length > 1 ) {
				switch ( path_array[1] ) {
					case "fan_posts":
						fn_omnitureData['pageType'] += " - Recent Fan Posts"; 
						break;
					case "webs_best":
						fn_omnitureData['pageType'] += " - Webs Best Blogs";
						break;
					case "post":
						fn_omnitureData['pageType'] += " - Blog Post";
						break;
					case "show":
						fn_omnitureData['pageType'] += " - Blog Home";
						break;
					default:
						fn_omnitureData['pageType'] += " - Other";
						break;
				}
				// set pageName 
				if ( path_array.length > 2 ) {
					fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + path_array[2];
				} else {
					fn_omnitureData['pageName'] = fn_omnitureData['pageType'];
				}
			}
			break;
		case "si_blogs":
			fn_omnitureData['section'] = "SI Blogs";
			fn_omnitureData['pageType'] = fn_omnitureData['section'];
			if ( path_array.length == 1 ) {
				fn_omnitureData['pageType'] += " - Home";
				fn_omnitureData['pageName'] = fn_omnitureData['pageType'];
			} else if ( path_array.length > 1 ) {
				fn_omnitureData['pageType'] += " - " + path_array[1];
				fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + document.title;
			}
			break;
		case "bowl_pickem":
			fn_omnitureData['section'] = 'Fantasy';
			fn_omnitureData['pageType'] = fn_omnitureData['section'] + ": Bowl Pickem";
			fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + path_array[1]
			break;
		case "college_pickem":
			fn_omnitureData['section'] = 'Fantasy';
			fn_omnitureData['pageType'] = fn_omnitureData['section'] + ": College Pickem";
			fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + path_array[1]
			break;
		case "community":
			fn_omnitureData['section'] = "Community"
		  	switch( ( path_array ).length ) {
        		case 1:
          			fn_omnitureData['pageType'] = fn_omnitureData['section'] + " - Home";
          			break;
        		case 2:
          			if ( path_array[1] == "activity" ) {
						fn_omnitureData['pageType'] = fn_omnitureData['section'] + " - Home";
					} else if ( path_array[1] == "fans" ){
						fn_omnitureData['pageType'] = fn_omnitureData['section'] + " - Fans";
					} else if ( path_array[1] == "groups" ){
						fn_omnitureData['pageType'] = fn_omnitureData['section'] + " - Groups";
					} else {
					  fn_omnitureSetOther();
				  	}
				  	break;
				default:
				  	fn_omnitureSetOther();
				  	break;
			}
			fn_omnitureData['pageName'] = fn_omnitureData['pageType'];
			break;
		case "gameday":
			fn_omnitureData['section'] = 'Gameday';
			fn_omnitureData['pageType'] = fn_omnitureData['section'] + ": " + fn_sportname + " Viewcast";
			fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + path_array[1];
			break;
		case "dan_patrick":
			fn_omnitureData['section'] = 'DanPatrick';
			fn_omnitureData['pageType'] = fn_omnitureData['section'] + ": DanPatrick";
			fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + path_array[1];
			break;
		case "groups":
			fn_omnitureData['section'] = "Community"
			fn_omnitureData['pageType'] = fn_omnitureData['section'] + " Groups";
			fn_omnitureData['pageName'] = fn_omnitureData['pageType'];
			switch( ( path_array ).length ) {
				case 1:	
					fn_omnitureData['pageName'] += " - Front";
					break;
				case 2:
					if( path_array[1] == "user_groups" )
						fn_omnitureData['pageName'] += " - User";
					else
						fn_omnitureSetOther();
					break;
				case 3:
					if( path_array[1] == "show" )
						fn_omnitureData['pageName'] += " - Group " + path_array[2];
					else
						fn_omnitureSetOther();
					break;
				default:
					fn_omnitureSetOther();
					break;
			}
			break;
		case "message_boards":
			fn_omnitureData['section'] = "Message Boards";
			fn_omnitureData['pageType'] = fn_omnitureData['section'];
			if ( path_array.length == 1 ) {
				fn_omnitureData['pageType'] += " - Home";
				fn_omnitureData['pageName'] = fn_omnitureData['pageType'];
			} else if ( path_array.length > 1 ) {
				switch ( path_array[1] ) {
					case "category":
					fn_omnitureData['pageType'] += " - Category"; 
					break;
					case "list":
					fn_omnitureData['pageType'] += " - Section";
					break;
					case "show_topic":
					fn_omnitureData['pageType'] += " - Thread";
					break;
					default:
					fn_omnitureData['pageType'] += " - Other";
					break;
				}
				// set pageName 
				if ( path_array.length > 2 ) {
					fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + path_array[2];   //document.title;
				} else {
					fn_omnitureData['pageName'] = fn_omnitureData['pageType'];
				}
			}
			break;
		case "player_trackers":
			fn_omnitureData['section'] = "Community"
			fn_omnitureData['pageType'] = fn_omnitureData['section'] + " Tracker";
			switch( ( path_array ).length ) {
				case 1:	
					fn_omnitureData['pageName'] = fn_omnitureData['section'] + " Player Tracker";
					break;
				case 2:
					if( path_array[1] == "edit_team_tracker" )
						fn_omnitureData['pageName'] = fn_omnitureData['section'] + " Team Tracker";
					else
						fn_omnitureSetOther();
					break;
				default:
					fn_omnitureSetOther();
					break;
			}
			break;
		case "peter_king_challenge":
			fn_omnitureData['section'] = 'Fantasy';
			fn_omnitureData['pageType'] = fn_omnitureData['section'] + ": Peter King";
			fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + path_array[1]
			break;
		case "players":
			fn_omnitureData['section'] = fn_sportname;
			fn_omnitureData['pageType'] = fn_omnitureData['section'] + " Player";
			if( path_array[1] == "depth_chart" ) {
				fn_omnitureData['pageType'] += " Depth Chart";
				fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + path_array[2];
			} else if( path_array[1] == "player_news" ) {
				fn_omnitureData['pageType'] += " Player News";
				fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + path_array[2];
			} else {
				fn_omnitureSetOther();
			}
			break;
		case "sources":
			fn_omnitureData['section'] = "Sport"
			fn_omnitureData['pageType'] = fn_omnitureData['section'] + " Source";
			fn_omnitureData['pageName'] = fn_omnitureData['pageType'];
			switch( ( path_array ).length ) {
				case 3:
					if( path_array[1] == "brand" )
						fn_omnitureData['pageName'] += " - Brand" + " - " + path_array[2];
					else if( path_array[1] == "show" )
						fn_omnitureData['pageName'] += " - " + path_array[2];
					else
						fn_omnitureSetOther();
					break;
				default:
					fn_omnitureSetOther();
					break;
			}
			break;
		case "tags":
			fn_omnitureData['section'] = "Sport"
			fn_omnitureData['pageType'] = "Team/Player Page";
			switch( ( path_array ).length ) {
				case 3:
					if( path_array[1] == "show_tag" )
						fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + path_array[2];
					else
						fn_omnitureSetOther();
					break;
				default:
					fn_omnitureSetOther();
					break;
			}
			break;
		case "throwdowns":
			fn_omnitureData['section'] = "Community"
			fn_omnitureData['pageType'] = fn_omnitureData['section'] + " Throwdowns";
			fn_omnitureData['pageName'] = fn_omnitureData['pageType'];

			// Add category (sport) name to TDs
			if (queryString( "category_id" ) != false && queryString( "category_id" ) != 'false') {
				fn_sportname = fn_sectionIDs[ queryString( "category_id" ) ];
				if (fn_sportname == undefined || fn_sportname == null) {
					fn_sportname = 'Other'
				}
				//console.log(fn_sportname)
				fn_omnitureData['pageName'] += ": " + fn_sportname
			}

			switch( ( path_array ).length ) {
				case 1:	
					fn_omnitureData['pageName'] += " - Front";
					break;
				case 2:
					if( path_array[1] == "create" )
						fn_omnitureData['pageName'] += " - Create";
					else if( path_array[1] == "user_throwdowns" )
						fn_omnitureData['pageName'] += " - User";
					else
						fn_omnitureSetOther();
					break;
				case 3:
					if( path_array[1] == "show" )
						fn_omnitureData['pageName'] += " - Entry - " + path_array[2];
					else
						fn_omnitureSetOther();
					break;
				default:
					fn_omnitureSetOther();
					break;
			}
			break;
		case "truth_and_rumors":
			fn_omnitureData['section'] = "TR"
			switch( ( path_array ).length ) {
				case 1:	
					fn_omnitureData['pageType'] = fn_omnitureData['section'] + " Front";
					fn_omnitureData['pageName'] = fn_omnitureData['pageType'];
					break;
				case 2:
					switch( path_array[1] ) {
						case "auto+racing":	fn_omnitureSetTR( "Auto Racing" );break;
						case "golf":		fn_omnitureSetTR( "Golf" );break;
						case "mine":		fn_omnitureSetTR( "Mine" );break;
						case "mlb":		fn_omnitureSetTR( "MLB" );break;
						case "nba":		fn_omnitureSetTR( "NBA" );break;
						case "ncaa":		fn_omnitureSetTR( "NCAA" );break;
						case "ncaab":		fn_omnitureSetTR( "NCAAB" );break;
						case "nfl":		fn_omnitureSetTR( "NFL" );break;
						case "nhl":		fn_omnitureSetTR( "NHL" );break;
						case "soccer":		fn_omnitureSetTR( "Soccer" );break;
						default:		fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + fn_omnitureData['path'];break;
					}
					break;
				case 3:
					if( path_array[1] == "view" ) {
						fn_omnitureData['pageType'] = fn_omnitureData['section'] + " Story";
						fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + path_array[2];
					} else {
						fn_omnitureSetOther();
					}
					break;
				default:
					fn_omnitureSetOther();
					break;
			}
			break;
		case "users":
			fn_omnitureData['section'] = "Community"
			fn_omnitureData['pageType'] = fn_omnitureData['section'] + " Profiles";
			switch( ( path_array ).length ) {
				case 3:
					if( path_array[1] == "view_user_profile" )
						fn_omnitureData['pageName'] = fn_omnitureData['section'] + " User Profile - " + path_array[2];
					else
						fn_omnitureSetOther();
					break;
				default:
					fn_omnitureSetOther();
					break;
			}
			break;
		default:
			fn_omnitureSetOther();
			break;
	}
}

/* HELPER FUNCTIONS */

function fn_omnitureSetOther()  { // handles pages that don't match anything we're looking for
	fn_omnitureData['section'] = "Other";
	fn_omnitureData['pageType'] = fn_omnitureData['section'];
	fn_omnitureData['pageName'] = fn_omnitureData['section'] + " - " + fn_omnitureData['path'];
}
function fn_omnitureSetTR( section ) { // set pageType and pageName for /truth_and_rumors/section
	fn_omnitureData['section'] += " " + section;
	fn_omnitureData['pageType'] = fn_omnitureData['section'];
	fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " Front";
}
function fn_omnitureSetTeams( section ) { // set pageType and pageName for /teams/section
	fn_omnitureData['pageType'] += " " + section;
	fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + path_array[2];
}
function fn_omnitureSetPlayerNews( section ) { // set pageType and pageName for /sports/player_news/section
	fn_omnitureData['pageType'] += " " + section;
	fn_omnitureData['pageName'] = fn_omnitureData['pageType'];
}
function fn_omnitureSetSports( section ) { // set pageType and pageName for /sports/section
	fn_omnitureData['pageType'] += " " + section;
	fn_omnitureData['pageName'] = fn_omnitureData['pageType'];
}

function fn_omnitureSetFront( section ) {
	fn_omnitureData['section'] = section;
	fn_omnitureData['pageType'] = section + " Front";
	fn_omnitureData['pageName'] = fn_omnitureData['pageType']; 
} 

function fn_omnitureSetGeneric( section, pageType, pageName ) { // example:  Advertiser - Peter King Challenge - Front
	fn_omnitureData['section'] = section;
	fn_omnitureData['pageType'] = fn_omnitureData['section'] + " - " + pageType ;
	fn_omnitureData['pageName'] = fn_omnitureData['pageType'] + " - " + pageName; 
}


function pageQuery( q ) { // break the list of parameters into a data structure
	if( q.length > 1 ) this.q = q.substring( 1, q.length );
	else this.q = null;
	this.keyValuePairs = new Array();
	if( q ) {
		for( var i = 0; i < this.q.split( "&" ).length; i++ ) {
			this.keyValuePairs[i] = this.q.split( "&" )[i];
		}
	}
	this.getKeyValuePairs = function() { return this.keyValuePairs; }
	this.getValue = function( s ) {
		for( var j = 0; j < this.keyValuePairs.length; j++ ) {
			if( this.keyValuePairs[j].split( "=" )[0] == s )
			return this.keyValuePairs[j].split( "=" )[1];
		}
		return false;
	}
	this.getParameters = function() {
		var a = new Array( this.getLength() );
		for( var j = 0; j < this.keyValuePairs.length; j++ ) {
			a[j] = this.keyValuePairs[j].split( "=" )[0];
		}
		return a;
	}
	this.getLength = function() { return this.keyValuePairs.length; } 
}
function queryString( key ){ // given a parameter, return the value in the url
	var page = new pageQuery( window.location.search );
	return unescape( page.getValue( key ) );
}
function writeData() { // write out the contents of fn_omnitureData
	document.write( '<table border="0" cellpadding="0" cellspacing="0">' );
	document.write( '<tr><td>path:</td><td>' + fn_omnitureData['path'] + '</td></tr>' );
	document.write( '<tr><td>server:</td><td>' + fn_omnitureData['server'] + '</td></tr>' );
	document.write( '<tr><td>section:</td><td>' + fn_omnitureData['section'] + '</td></tr>' );
	document.write( '<tr><td>pageType:</td><td>' + fn_omnitureData['pageType'] + '</td></tr>' );
	document.write( '<tr><td>pageName:</td><td>' + fn_omnitureData['pageName'] + '</td></tr>' );
	document.write( '<tr><td>pathname:</td><td>' + fn_omnitureData['pathname'] + '</td></tr>' );
	document.write( '<tr><td>search:</td><td>' + fn_omnitureData['search'] + '</td></tr>' );
	document.write( '<tr><td>referrer:</td><td>' + fn_omnitureData['referrer'] + '</td></tr>' );
	document.write( '</table>' );
}
