var cnn_omnitureData = new Array();
cnn_omnitureData = {
	path: null, // set automatically
	server: null, // set automatically
	section: "2008 Olympics",
	pageType: null,
	branding: null,
	date: null,
	slug: null,
	file: null,
	referrer: null,
	pageName: null
}

cnn_omnitureData['path'] = ( document.URL ).replace( /http:\/\/([^\/]+)/, "" );
cnn_omnitureData['path'] = ( cnn_omnitureData['path'] ).replace( /\/\//, "/" );
cnn_omnitureData['server'] = window.location.host;
if( cnn_omnitureData['path'].charAt( cnn_omnitureData['path'].length - 1 ) == "/" ) cnn_omnitureData['path'] += "index.html"; // make sure there's always a filename
var path_array = ( cnn_omnitureData['path'].substr( 1 ) ).split( "/" );

if( queryString( 'eref' ) != "false" ) {
	cnn_omnitureData['referrer'] = "from " + queryString( 'eref' ) + " - " + cnn_omnitureData['path'];
}
if( queryString( 'bcnn' ) != "false" ) {
	cnn_omnitureData['referrer'] = "from ";
	switch( queryString( 'cnn' ) ) {
		case "yes":		cnn_omnitureData['referrer'] += "CNN"; break;
		default:		cnn_omnitureData['referrer'] += "unknown"; break;
	}
	cnn_omnitureData['referrer'] += " - " + cnn_omnitureData['path'];
}

var cnn08OlySports = {
	archery: { name: 'Archery' },
	badminton: { name: 'Badminton' },
	baseball: { name: 'Baseball' },
	basketball: { name: 'Basketball' },
	boxing: { name: 'Boxing' },
	canoe_kayak: { name: 'Canoe and Kayak' },
	cycling: { name: 'Cycling' },
	diving: { name: 'Diving' },
	equestrian: { name: 'Equestrian' },
	fencing: { name: 'Fencing' },
	gymnastics: { name: 'Gymnastics' },
	handball: { name: 'Team Handball' },
	hockey: { name: 'Field Hockey' },
	judo: { name: 'Judo' },
	pentathlon: { name: 'Modern Pentathlon' },
	rowing: { name: 'Rowing' },
	sailing: { name: 'Sailing' },
	shooting: { name: 'Shooting' },
	soccer: { name: 'Soccer' },
	softball: { name: 'Softball' },
	swimming: { name: 'Swimming' },
	sync_swimming: { name: 'Synchronized Swimming' },
	table_tennis: { name: 'Table Tennis' },
	taekwondo: { name: 'Taekwondo' },
	tennis: { name: 'Tennis' },
	track: { name: 'Track and Field' },
	triathlon: { name: 'Triathlon' },
	volleyball: { name: 'Volleyball' },
	water_polo: { name: 'Water Polo' },
	weightlifting: { name: 'Weightlifting' },
	wrestling: { name: 'Wrestling' }
}

cnn_omnitureData['pageType'] = cnn_omnitureData['section'] + " - ";
if( cnn_omnitureData['path'] == "/olympics/2008/?bcnn=yes" ) {
	cnn_omnitureData['pageType'] += "Front";
	cnn_omnitureData['branding'] = cnn_omnitureData['pageType'];
	cnn_omnitureData['pageName'] = cnn_omnitureData['branding'];
} else if( path_array.slice( 0, 2 ).join( "/" ) == "olympics/2008" ) { // 2008 Olympics Regular
	if( path_array[2] == "index.html" ) {
		cnn_omnitureData['pageType'] += "Front";
		cnn_omnitureData['branding'] = cnn_omnitureData['pageType'];
		cnn_omnitureData['pageName'] = cnn_omnitureData['branding'];
	} else if( cnn08OlySports[ path_array[2] ] ) { // 2008 Olympics Sport Fronts
		cnn_omnitureData['pageType'] += cnn08OlySports[ path_array[2] ][ 'name' ];
		cnn_omnitureData['branding'] = cnn_omnitureData['pageType'];
		cnn_omnitureData['pageName'] = cnn_omnitureData['branding'];
		if( path_array[3] == "index.html" ) {
			cnn_omnitureData['pageName'] += " Index";
		} else if( path_array[3] == "top_stories.html" ) {
			cnn_omnitureData['pageName'] += " Top Stories";
		} else if( ( path_array[3] == "writers" ) && ( path_array[4] == "index.html" ) ) {
			cnn_omnitureData['pageName'] += " Writers";
		}
	} else if( path_array[2] == "explainers" ) {
		if( path_array[3] == "index.html" ) {
			cnn_omnitureData['pageType'] += "Explainer";
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'];
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " Index";
		} else {
			var temp_sport = path_array[3];
			temp_sport = temp_sport.replace( ".html", "" );
			cnn_omnitureData['pageType'] += cnn08OlySports[ temp_sport ][ 'name' ];
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'];
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " Explainer";
		}
	} else if( path_array[2] == "photospecial" ) {
		cnn_omnitureData['pageType'] += "Gigapan";
		cnn_omnitureData['branding'] = cnn_omnitureData['pageType'];
		cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " " + path_array[3];
	} else if( path_array[2] == "video" ) {
		cnn_omnitureData['pageType'] += "Video";
		if( path_array[3] == "archive" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Archive";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4];
		} else if( path_array[3] == "profiles" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Profiles";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4] + path_array[5] + path_array[6] + " - " + path_array[7];
		} else if( path_array[3] == "flashbacks" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Flashbacks";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4] + path_array[5] + path_array[6] + " - " + path_array[7];
		} else if( path_array[3] == "international" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " International";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4] + path_array[5] + path_array[6] + " - " + path_array[7];
		} else if( path_array[3] == "sports" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Sports";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4] + path_array[5] + path_array[6] + " - " + path_array[7];
		} else if( path_array[3] == "world" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " World";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4] + path_array[5] + path_array[6] + " - " + path_array[7];
		} else {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Unknown";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + cnn_omnitureData['path'];
		}
	} else if( path_array[2] == "photos" ) {
		cnn_omnitureData['pageType'] += "SI Photos";
		if( path_array[3] == "archive" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Archive";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4];
		} else if( path_array[3] == "wires" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Wires";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4];
		} else {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Unknown";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + cnn_omnitureData['path'];
		}
	} else if( path_array[2] == "wires" ) {
		cnn_omnitureData['pageType'] += "Wires Archive";
		cnn_omnitureData['branding'] = cnn_omnitureData['pageType'];
		cnn_omnitureData['pageName'] = cnn_omnitureData['branding'];
	} else if( path_array[2] == "writers" ) {
		cnn_omnitureData['pageType'] += "Writers Archive";
		cnn_omnitureData['branding'] = cnn_omnitureData['pageType'];
		cnn_omnitureData['pageName'] = cnn_omnitureData['branding'];
	} else if( path_array[2] == "sports" ) {
		cnn_omnitureData['pageType'] += "Sports Front";
		cnn_omnitureData['branding'] = cnn_omnitureData['pageType'];
		cnn_omnitureData['pageName'] = cnn_omnitureData['branding'];
	} else if( path_array[2] == "athletes" ) {
		cnn_omnitureData['pageType'] += "Athletes";
		if( path_array[3] == "bio" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Bio";
		} else if( path_array[3] == "country" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Country";
		} else if( path_array[3] == "sport" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Sport";
		} else {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Unknown";
		}
		cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4];
	} else if( path_array[2] == "boxscores" ) {
		cnn_omnitureData['pageType'] += "Boxscores";
		cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " - " + cnn08OlySports[ path_array[3] ][ 'name' ];
		cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4];
	} else if( path_array[2] == "medals" ) {
		cnn_omnitureData['pageType'] += "Medals";
		if( path_array[3] == "tracker" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Tracker";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4];
		} else if( path_array[3] == "by_country" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Country";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4];
		} else if( path_array[3] == "by_sport" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Sport";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4];
		} else if( path_array[3] == "historic" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Historic";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4];
		} else {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'];
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[3];
		}
	} else if( path_array[2] == "results" ) {
		cnn_omnitureData['pageType'] += "Results";
		cnn_omnitureData['branding'] = cnn_omnitureData['pageType'];
		cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[3];
	} else if( path_array[2] == "schedules" ) {
		cnn_omnitureData['pageType'] += "Schedules";
		if( path_array[3] == "schedule_general.html" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Front";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'];
		} else if( path_array[3] == "by_date" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Date";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4];
		} else if( path_array[3] == "by_sport" ) {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " Sport";
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[4];
		} else {
			cnn_omnitureData['branding'] = cnn_omnitureData['pageType'];
			cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + path_array[3];
		}
	} else {
		cnn_omnitureData['pageType'] += "Unknown";
		cnn_omnitureData['branding'] = cnn_omnitureData['pageType'];
		cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + cnn_omnitureData['path'];
	}
} else if( ( path_array[0] ).match( /^\d{4}/ ) ) {
	if( path_array[3] == "writers" ) {
		setWriters();
	} else {
		setStories(); // if path starts with a YEAR, it's a story
	}
} else { // 2008 Olympics unknown
	cnn_omnitureData['pageType'] = cnn_omnitureData['section'] + " - Unknown";
	cnn_omnitureData['branding'] = cnn_omnitureData['pageType'];
	cnn_omnitureData['pageName'] = cnn_omnitureData['branding'] + " - " + cnn_omnitureData['path'];
}

function setStories() {
	cnn_omnitureData['section'] = "2008 Olympics";
	cnn_omnitureData['pageType'] = cnn_omnitureData['section'] + " News";
	cnn_omnitureData['date'] = getStoryDate();
	cnn_omnitureData['slug'] = path_array[path_array.length - 2];
	cnn_omnitureData['file'] = path_array[path_array.length - 1];
	cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " - default";
	cnn_omnitureData['pageName'] = cnn_omnitureData['pageType'] + " - " + cnn_omnitureData['date'] + " - " + cnn_omnitureData['slug'] + " - " + cnn_omnitureData['file'];
}
function setWriters() {
	cnn_omnitureData['section'] = "2008 Olympics";
	cnn_omnitureData['pageType'] = cnn_omnitureData['section'] + " Writers - " + upper( path_array[4].replace( /_/g, " " ) );
	cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " - default";
	cnn_omnitureData['date'] = getStoryDate();
	cnn_omnitureData['slug'] = path_array[path_array.length - 2];
	cnn_omnitureData['file'] = path_array[path_array.length - 1];
	cnn_omnitureData['pageName'] = cnn_omnitureData['pageType'] + " - " + cnn_omnitureData['date'] + " - " + cnn_omnitureData['slug'] + " - " + cnn_omnitureData['file'];
}
function setWritersBranding( branding ) {
	cnn_omnitureData['branding'] = cnn_omnitureData['pageType'] + " - " + branding;
}
function getStoryDate() {
	var returnString = "";
	var year = path_array[0];
	var month = -1;
	var day = -1;
	var x = 1;
	var date = "";
	while( x < path_array.length ) { // find month and day in path
		if( ( path_array[x] ).match( /^\d{2}/ ) && !( path_array[x] ).match( /^\d{4}/ ) ) {
			month = path_array[x];
			day = path_array[x+1];
			break;
		}
		x++;
	}
	if( month > 0 ) {
		returnString = year + "/" + month + "/" + day;
	} else { // if there is no month, the story is evergreen
		returnString = year + " evergreen";
	}
	return returnString;
}
function upper( phrase ){ // capitalizes the first letter of each word in phrase
	phrase = phrase.split(' ')
	for ( i=0; i < phrase.length; i++ ) {
		phrase[i] = phrase[i].replace( /^(.)/, phrase[i].charAt( 0 ).toUpperCase() )
	}
	return phrase.join(' ');
}

function pageQuery( q ) {
	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 ){
	var page = new pageQuery( window.location.search ); 
	return unescape( page.getValue( key ) ); 
}

function writeData() {
	document.write( '<table border="0" cellpadding="0" cellspacing="0">' );
	document.write( '<tr><td>path:</td><td>' + cnn_omnitureData['path'] + '</td></tr>' );
	document.write( '<tr><td>server:</td><td>' + cnn_omnitureData['server'] + '</td></tr>' );
	document.write( '<tr><td>section:</td><td>' + cnn_omnitureData['section'] + '</td></tr>' );
	document.write( '<tr><td>pageType:</td><td>' + cnn_omnitureData['pageType'] + '</td></tr>' );
	document.write( '<tr><td>branding:</td><td>' + cnn_omnitureData['branding'] + '</td></tr>' );
	document.write( '<tr><td>date:</td><td>' + cnn_omnitureData['date'] + '</td></tr>' );
	document.write( '<tr><td>slug:</td><td>' + cnn_omnitureData['slug'] + '</td></tr>' );
	document.write( '<tr><td>file:</td><td>' + cnn_omnitureData['file'] + '</td></tr>' );
	document.write( '<tr><td>referrer:</td><td>' + cnn_omnitureData['referrer'] + '</td></tr>' );
	document.write( '<tr><td>pageName:</td><td>' + cnn_omnitureData['pageName'] + '</td></tr>' );
	document.write( '</table>' );
}
