
var SubHeader = function(){
	this.register_button = 'registerButton';
	this.login_button = 'loginButton';
	
	this.profile_button = 'profileButton';
	this.newforyou_button = 'newforyouButton';
	this.cart_button = 'cartButton';
	this.downloads_button = 'downloadsButton';
	this.stations_button = 'stationsButton';	
	this.logout_button = 'logoutButton';

	this.fav_button = 'favButton';

	this.welcome_msg = 'welcomeMsg';
	
	this.guid = null;
	this.userId = null;
	this.userName = null;

	this.states = new SubHeaderStates();
	
	this.onStateChangeComplete = null;
}

SubHeader.prototype.setUserInfo = function( userId, guid, userName ){
	this.guid = guid;
	this.userId = userId;
	this.userName = userName;
}

SubHeader.prototype.changeState = function(state){
	switch(state){
		case this.states.LOGGED_IN: 	this.doLogin();		break;
		case this.states.LOGGED_OUT: 	this.doLogout();	break;
		default: return false; break;
	}
}

SubHeader.prototype.doLogin = function(){
	var me = this;
	uGuid = me.guid;
	Effect.Fade(this.register_button, { 'duration':.3, 'fps':100 });
	Effect.Fade(this.login_button, { 'duration':.3, 'fps':100, 'afterFinish':function(){ me.handleLogin(); } });
	
}

SubHeader.prototype.handleLogin = function(){
	var me = this;
	uId = me.userId;	
	if( this.onStateChangeComplete ){
		this.onStateChangeComplete.call();
		this.resetCallbacks();
	}
	wText = "Welcome, " + this.userName + "!";
	document.getElementById('welcomeMsg').innerHTML = wText;
	Effect.Appear(this.logout_button, { 'duration':.3, 'fps':100 });
	Effect.Appear(this.profile_button, { 'duration':.3, 'fps':100 });
	//Effect.Appear(this.fav_button, { 'duration':.3, 'fps':100 });
	Effect.Appear(this.stations_button, { 'duration':.3, 'fps':100 });
	Effect.Appear(this.welcome_msg, { 'duration':.3, 'fps':100 });
	var a = $(this.profile_button).getElementsByTagName('a');
		a[0].onclick = function(){ parent.gotoUserPage(me.userId); return false; }
}

SubHeader.prototype.showFavArtists = function(){
        if( $(this.fav_button).style.display == 'none' )
                Effect.Appear(this.fav_button, { 'duration':.3, 'fps':100 });
}

SubHeader.prototype.showNewForYou = function(){
	var me = this;
	var win = parent;
	if( $(this.newforyou_button).style.display == 'none' ){
		Effect.Appear(this.newforyou_button, { 'duration':.3, 'fps':100 });
		var a = $(this.newforyou_button).getElementsByTagName('a');
			a[0].onclick = function(){ win.gotoRecs(uGuid, me.userId); return false; return false; }
	}
}

SubHeader.prototype.showCart = function(){
	if( $(this.cart_button).style.display == 'none' )
		Effect.Appear(this.cart_button, { 'duration':.3, 'fps':100 });
}

SubHeader.prototype.hideCart = function(){
	if( $(this.cart_button).style.display != 'none' )
		Effect.Fade(this.cart_button, { 'duration':.3, 'fps':100 });
}

SubHeader.prototype.showDownloads = function(){
	if( $(this.downloads_button).style.display == 'none' )
		Effect.Appear(this.downloads_button, { 'duration':.3, 'fps':100 });
}

SubHeader.prototype.hideDownloads = function(){
	if( $(this.downloads_button).style.display != 'none' )
		Effect.Fade(this.downloads_button, { 'duration':.3, 'fps':100 });
}

SubHeader.prototype.doLogout = function(){
	var me = this;
	userLoggedIn = "N";
	if( $(this.newforyou_button) )
		Effect.Fade(this.newforyou_button, { 'duration':.3, 'fps':100 });
	if( $(this.cart_button) )
		Effect.Fade(this.cart_button, { 'duration':.3, 'fps':100 });
	if( $(this.downloads_button) )
		Effect.Fade(this.downloads_button, { 'duration':.3, 'fps':100 });

	Effect.Fade(this.logout_button, { 'duration':.3, 'fps': 100 });
	Effect.Fade(this.profile_button, { 'duration':.3, 'fps': 100, 'afterFinish':function(){ me.handleLogout(); } });
	Effect.Fade(this.fav_button, { 'duration':.3, 'fps': 100 });
	Effect.Fade(this.stations_button, { 'duration':.3, 'fps': 100 });
	Effect.Fade(this.welcome_msg, { 'duration':.3, 'fps': 100 });
}

SubHeader.prototype.handleLogout = function(){
	var me = this;
	var win = parent;
	if( this.onStateChangeComplete ){
		this.onStateChangeComplete.call();
		this.resetCallbacks();
	}
	this.guid = '';
	wText = "Welcome to Finetune";
	document.getElementById('welcomeMsg').innerHTML = wText;
	Effect.Appear(this.login_button, { 'duration':.3, 'fps':100 });
	Effect.Appear(this.register_button, { 'duration':.3, 'fps':100 });
	Effect.Appear(this.stations_button, { 'duration':.3, 'fps':100 });
	Effect.Appear(this.welcome_msg, { 'duration':.3, 'fps': 100 });
	var a = $(this.register_button).getElementsByTagName('a');
		a[0].onclick = function(){ win.gotoReg('hp', me.guid); return false; }
}

SubHeader.prototype.resetCallbacks = function(){
	this.onStateChangeComplete = null;
}


var SubHeaderStates = function(){
	this.LOGGED_IN = 'userLoggedIn';
	this.LOGGED_OUT = 'userLoggedOut';
}

function $(id){ return document.getElementById(id); }
