//-------------------------------
// Class
//-------------------------------

function NavigationView() {

	var _self = this;

	//-------------------------------
	// Constants
	//-------------------------------
	
	
	//-------------------------------
	// Properties
	//-------------------------------
	
	var _months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
	
	
	//-------------------------------
	// Constructor
	//-------------------------------
	
	$j(function() {

	});
	
	//-------------------------------
	// Public Methods
	//-------------------------------
	
	_self.games = function(data) {
		var today = new Date();
		today = new Date((today.getMonth() + 1) + "/" + today.getDate() + "/" + today.getFullYear());
		
		var games = [];
		games[0] = {"type" : "previous"};
		games[1] = {"type" : "today's"};
	
		$j(data).find("hubitem").each(function(i, item) {
			var date = new Date($j(item).attr("date"));
			
			if(date.getTime() < today.getTime()) games[0] = {"type" : "previous", "game" : item};
			else if(date.getTime() == today.getTime()) games[1] = {"type" : "today's", "game" : item};
			else if(date.getTime() > today.getTime()) {
				games[2] = {"type" : "next", "game" : item};
				return false;	
			}
		});
		
		$j(games).each(function(i, item) {
			var game = $j("<ul class='links'></ul>");
			
			var content		= "<h2>" + item.type.toUpperCase() + " GAME</h2>";

			if(item.game) {
				content += (item.type == "previous") ? getGameResults(item) : getUpcomingGame(item);
			}
			else content	+= "No game scheduled";
			
			if(item.type != "previous") {
				game.append(content);
				$j("#navigation .stretcher ul.boxscore").append(game);
			}
		});
		
	}
	
	_self.players = function(data) {
		var playerArr = [];
		
		$j(data).find("info").each(function(i, item) {
			playerArr.push(item);
		});
		
		playerArr.sort(sortAlphabetical);
		
		$j(playerArr).each(function(i, item) {
			var player 	= $j("<li><a href='" + $j(item).find("url").text() + "'></a></li>");
			var name	= $j(item).find("name").text();
			
			$j("a", player).append("<img class='player' src='" + $j(item).find("image").text() + "'/>");
			$j("a", player).append("<div class='meta'>" + name.replace(" ", "<br/>") + "</div>");
			
			$j("#navigation .stretcher ul.players").append(player);
		});
	}
	
	_self.dancers = function(data) {
		$j(data).find("info").each(function(i, item) {
			var dancer	= $j("<li><a href='" + $j(item).find("url").text() + "'></a></li>");
			
			$j("a", dancer).append("<img class='dancer' src='" + $j(item).find("image").text() + "'/>");
			$j("a", dancer).append("<div class='meta'>" + $j(item).find("name").text() + "</div>");
			
			$j("#navigation .stretcher ul.dancers").append(dancer);
		});
	}
	
	_self.messageboards = function(data) {

		$j(data).find("item").each(function(i, item) {
			var date = new Date($j(item).find("pubDate").text());
			date = (date.getMonth() + 1) + "." + date.getDate() + "." + date.getFullYear();
			var link = $j("<li><a href='" + $j(item).find("link").text() + "'>" + date + " | " + $j(item).find("title").text().substr(0, 40) + (($j(item).find("title").text().length > 40) ? "..." : "") +"</a></li>");
		
			$j("#navigation .stretcher ul.messageboards").append(link);
			
			if(i == 6) return false;
		});
	}
	
	_self.loggedin = function() {
		var user = $j.cookie(IAMA_USER_INFO).split("|");
		
		var content		= "<a href='"+ user[3] + "'><img class='user' src='" + user[2] + "'/></a>";
		content			+= "<div class='meta'><h3>Welcome back, <a href='"+ user[3] + "'>" + user[0] + "</a>!</h3>";
		content			+= "<a href='"+ user[3] + "'>Public Profile</a> | ";
		content			+= "<a href='http://www.iamatrailblazersfan.com/PrivateAreaRoot/MessagesNotifications/tabid/85/Default.aspx'>Messages</a> | ";
		content			+= "<a href='http://www.iamatrailblazersfan.com/PrivateAreaRoot/Friends/tabid/86/Default.aspx'>Friends</a></div>";
		
		$j("#navigation .stretcher ul.iama ul.login").html(content);
		$j("#navigation .stretcher ul.iama ul.meta").html("");
		$j("#navigation .stretcher ul.iama ul.more").addClass("loggedin");
	}
	
	
	//-------------------------------
	// Private Methods
	//-------------------------------
	
	function sortAlphabetical(a, b) {
		var x = $j(a).find("name").text().toLocaleLowerCase();
		var y = $j(b).find("name").text().toLocaleLowerCase();
		return ((x < y) ? -1 : ((x > y) ? 1 : 0));
	}
	
	function getGameResults(item) {
		var content 	= "<li>Final</li>";
		content			+= "<li>" + $j(item.game).find("htm").attr("tcd").replace(/^\w/, function($0) { return $0.toUpperCase(); }) + ": " + $j(item.game).find("htm").attr("scr") + "</li>";
		content			+= "<li>" + $j(item.game).find("vtm").attr("tcd").replace(/^\w/, function($0) { return $0.toUpperCase(); }) + ": " + $j(item.game).find("vtm").attr("scr") + "</li>";
		content			+= "<li><a href='http://www.iamatrailblazersfan.com/Home/Games/tabid/57/Default.aspx'>Recap</a> | ";
		content			+= "<a href='http://www.nba.com/games/" + $j(item.game).find("game").attr("gcd") + "/gameinfo.html#nbaGIboxscore'>Boxscore</a> | ";
		content			+= "<a href='http://www.nba.com/blazers/video/originals/'>Highlights</a></li>";
		
		return content;
	}
	
	function getUpcomingGame(item) {
		var time = $j(item.game).find("game").attr("timeloc");
		time = (time.substr(0, 2)) + ":" + time.substr(2, 3);
		var date = new Date($j(item.game).attr("date") + " " + time);
		
		var content		= "<li>" + $j(item.game).attr("ngame") + ", " + _months[date.getMonth()] + " ";	
		content			+= date.getDate() + (($j(item.game).find("game").attr("tmstat") == "home") ? " vs " : " at ");
		content			+= $j(item.game).find("game").attr("opponent").replace(/^\w/, function($0) { return $0.toUpperCase(); }) + "</li>";
		content			+= "<li>" + ((date.getHours() > 12) ? date.getHours() - 12 : date.getHours()) + ":" + date.getMinutes() + ((date.getHours() > 12) ? "PM" : "AM") + "</li>";
		content			+= "<li>TV: " + $j(item.game).find("game").attr("lbrd") + "/" + $j(item.game).find("game").attr("nbrd") + "</li>";
		content			+= "<li>Radio: " + $j(item.game).find("game").attr("rbrd") + "</li>";
		
		
		return content;
	}
	
	//-------------------------------
	// Listeners
	//-------------------------------
}
