BF_UserNav = function() {
	this.init = function() {
		this.update_session();
		if ( typeof report_manager == 'undefined' ) {
			var inject = document.createElement( 'script' );
			inject.src = BF_STATIC.static_root + '/js/public/report/report.js';
			document.getElementsByTagName( 'body' )[0].appendChild( inject );
		}
		if( $('usernav-ul') ) {

			var user = new BF_User();
			
			if(user.isLoggedIn()) {
				
				var user_info = user.getUserInfo();
				
				if(! user_info || ! user_info.username || user_info.username != user.getUsernameFromSession() ) {					
					var login = new BF_Login();
					login.init({action: 'userdata'});
					login.cookieLogin();
					
				} else {
					try{
					picks_controller = new BF_PicksController();
					picks_controller.init();
					var display_name = user_info.display_name ? user_info.display_name : user_info.username;
					$('usernav-displayname').update( display_name );
					$('usernav-displayname').show();
					} catch(e){ }

					if( user_info.image && user_info.image != null && user_info.image != 'null'){
						try {
						$('usernav-image').childElements()[0].src = BF_STATIC.image_root + user_info.image;
						} catch( e ) {}
					}
					$('usernav-image').show();

					$('usernav-profile').show();
					$('usernav-profile-link').href = BF_STATIC.web_root + '/' + user_info.username;

					$('usernav-signout').observe('click', function(e) {
						e.stop();
						Facebook.logout(user_nav.signout);
						//this.signout();
					}.bindAsEventListener(this));
					$('usernav-signout').show();
					$('usernav-settings').show();
					if($('guide_promo')) $('guide_promo').show();
					
					if ( typeof user_info.default_user != 'undefined' ) {
						$('usernav-switch').show();
						$('usernav-switch-link').observe('click',function(e){BF_UserSwitcher.switch_list_ui(e)});
						BF_UserSwitcher.show_warning();
						BF_UserSwitcher.disable_private_fields();
						var on_my_page = new RegExp('/'+user.getUserInfo().username+'#?$');
						if ($('site-blank-slate') && window.location.href.match(on_my_page)) $('site-blank-slate').show();
					}
					else {
						$('usernav-switch').hide();
					}
				}
							
			} else {
				$('usernav-signin').show();
				$('usernav-signup').show();								
				$('usernav-settings').hide();
				if($('signup_promo')) $('signup_promo').show();
			}
			$('usernav-ul').show();
		}
		
		if ( $('signup_promo-profile_page') && user.isLoggedIn() ) {			
			var user = new BF_User();
			var user_info = user.getUserInfo();
			if(! user_info || ! user_info.username || user_info.username != user.getUsernameFromSession() ) {
				var login = new BF_Login();
				login.init({action: 'userdata'});
				login.cookieLogin();				
			} else {
				var obj = $('signup_promo-profile_page');
				obj.href = '/' + user_info.username;				
			}
		}
	}
	this.update_session = function() {
		var user = new BF_User();
		if ( user.isLoggedIn() ) {
			var user_info = user.getUserInfo();
			var lastActive = parseInt(user_info.last_active);
			var update = isNaN(lastActive) ? -1 : 0
			if ( update >= 0 ) update = lastActive - BF_STATIC.generated_timestamp + (BF_STATIC.cookie_age_limit_hours * 60 * 60 ) ;
			if ( update >= 0 && !isNaN(parseInt(BF_STATIC.version))) {
				update = lastActive - parseInt(BF_STATIC.version) ;
			}
			if ( update < 0 ) {
				if ( !BFW_Util.getCookie('session_reload_count') ) {
					BFW_Util.setCookie({name:'session_reload_count',value:1,seconds:60});
					new Ajax.Request('/buzzfeed/_user_session_update', {
						method: 'get',
						parameters: {action:'update'},
						onSuccess: bf_login.loggedIn,
						onFailure: bf_login.err
					});
				}
			}
		}
	}
	
	this.signout = function(args) {
		if ( typeof args == 'undefined' ) args = {} ;
		BFW_Util.deleteCookie(BFW_COOKIE);
		BFW_Util.deleteCookie(BFW_INFO_COOKIE);
		BFW_Util.deleteCookie(DEFAULT_USER);
		if (! args.no_reload && !window.location.href.match(/\/settings/) ) window.location.reload();
		else if (window.location.href.match(/\/settings/)) window.location.href = BF_STATIC.web_root + '/signin';
	}	
	
}

var user_nav = new BF_UserNav();
BuzzLoader.register( function() {
	user_nav.init(); 	
}, 1);
