//////////////////////////////////////////////////////////////////////////////////////////////
/********************************************************************************************
POST SAVE TABS CLASS
********************************************************************************************/
//////////////////////////////////////////////////////////////////////////////////////////////
PostSave.Tabs = {};

///////////////////////////////////////
/**************************************
INIT
**************************************/
///////////////////////////////////////
PostSave.Tabs.array = null;
PostSave.Tabs.init = function()
{
	PostSave.Tabs.array = new Array();
	
	/// [FACEBOOK] /// Post to Web
	PostSave.Tabs[PostSave.TABS.FACEBOOK] = new PostSave.Tabs.Tab(
		PostSave.TABS.FACEBOOK,
		'http://home.mywebface.com/javascripts/postSave/images/facebook_1.gif',
		'http://home.mywebface.com/javascripts/postSave/images/facebook_2.gif',
		PostSave.BOOLEAN.TRUE,
		PostSave.BOOLEAN.FALSE
	);
	PostSave.Tabs[PostSave.TABS.FACEBOOK].build = PostSave.Tabs.GUI.Facebook.build;
	PostSave.Tabs[PostSave.TABS.FACEBOOK].update = PostSave.Tabs.GUI.Facebook.update;
	PostSave.Tabs[PostSave.TABS.FACEBOOK].updateLeft = PostSave.Tabs.GUI.Facebook.updateLeft;
	PostSave.Tabs[PostSave.TABS.FACEBOOK].onShow = PostSave.Tabs.GUI.Facebook.onShow;
	PostSave.Tabs[PostSave.TABS.FACEBOOK].onHide = PostSave.Tabs.GUI.Facebook.onHide;


	/// [TWITTER] /// 
	PostSave.Tabs[PostSave.TABS.TWITTER] = new PostSave.Tabs.Tab(
		PostSave.TABS.TWITTER,
		'http://home.mywebface.com/javascripts/postSave/images/twitter_1.gif',
		'http://home.mywebface.com/javascripts/postSave/images/twitter_2.gif',
		PostSave.BOOLEAN.TRUE,
		PostSave.BOOLEAN.FALSE
	);
	PostSave.Tabs[PostSave.TABS.TWITTER].build = PostSave.Tabs.GUI.Twitter.build;
	PostSave.Tabs[PostSave.TABS.TWITTER].update = PostSave.Tabs.GUI.Twitter.update;
	PostSave.Tabs[PostSave.TABS.TWITTER].updateLeft = PostSave.Tabs.GUI.Twitter.updateLeft;
	PostSave.Tabs[PostSave.TABS.TWITTER].onShow = PostSave.Tabs.GUI.Twitter.onShow;
	PostSave.Tabs[PostSave.TABS.TWITTER].onHide = PostSave.Tabs.GUI.Twitter.onHide;


	/// [DOWNLOAD] /// Save to PC
	PostSave.Tabs[PostSave.TABS.DOWNLOAD] = new PostSave.Tabs.Tab(
		PostSave.TABS.DOWNLOAD,
		'http://home.mywebface.com/javascripts/postSave/images/save_to_pc_1.gif',
		'http://home.mywebface.com/javascripts/postSave/images/save_to_pc_2.gif',
		PostSave.BOOLEAN.FALSE,
		PostSave.BOOLEAN.FALSE
	);
	PostSave.Tabs[PostSave.TABS.DOWNLOAD].build = PostSave.Tabs.GUI.Download.build;
	PostSave.Tabs[PostSave.TABS.DOWNLOAD].update = function(){};
	PostSave.Tabs[PostSave.TABS.DOWNLOAD].updateLeft = function(){};
	PostSave.Tabs[PostSave.TABS.DOWNLOAD].onShow = PostSave.Tabs.GUI.Download.onShow;
	PostSave.Tabs[PostSave.TABS.DOWNLOAD].onHide = function(){};


	/// [MAIL] /// Send E-mail
	PostSave.Tabs[PostSave.TABS.MAIL] = new PostSave.Tabs.Tab(
		PostSave.TABS.MAIL,
		'http://home.mywebface.com/javascripts/postSave/images/send_email_1.gif',
		'http://home.mywebface.com/javascripts/postSave/images/send_email_2.gif',
		PostSave.BOOLEAN.TRUE,
		PostSave.BOOLEAN.FALSE
	);
	PostSave.Tabs[PostSave.TABS.MAIL].build = PostSave.Tabs.GUI.GSMail.build;
	PostSave.Tabs[PostSave.TABS.MAIL].update = PostSave.Tabs.GUI.GSMail.update;
	PostSave.Tabs[PostSave.TABS.MAIL].updateLeft = PostSave.Tabs.GUI.GSMail.updateLeft;
	PostSave.Tabs[PostSave.TABS.MAIL].onShow = PostSave.Tabs.GUI.GSMail.onShow;
	PostSave.Tabs[PostSave.TABS.MAIL].onHide = PostSave.Tabs.GUI.GSMail.onHide;
	
	
	/// [DONE] ///
	PostSave.Tabs[PostSave.TABS.DONE] = new PostSave.Tabs.Tab(
		PostSave.TABS.DONE,
		null,
		null,
		PostSave.BOOLEAN.TRUE,
		PostSave.BOOLEAN.FALSE
	);
	PostSave.Tabs[PostSave.TABS.DONE].build = PostSave.Tabs.GUI.Done.build;
	PostSave.Tabs[PostSave.TABS.DONE].update = PostSave.Tabs.GUI.Done.update;
	PostSave.Tabs[PostSave.TABS.DONE].updateLeft = PostSave.Tabs.GUI.Done.updateLeft;
	PostSave.Tabs[PostSave.TABS.DONE].onShow = function(){};
	PostSave.Tabs[PostSave.TABS.DONE].onHide = function(){};
	
	/// [PLEASE WAIT] ///
	PostSave.Tabs[PostSave.TABS.PLEASEWAIT] = new PostSave.Tabs.Tab(
		PostSave.TABS.PLEASEWAIT,
		null,
		null,
		PostSave.BOOLEAN.TRUE,
		PostSave.BOOLEAN.FALSE
	);
	PostSave.Tabs[PostSave.TABS.PLEASEWAIT].build = PostSave.Tabs.GUI.PleaseWait.build;
	PostSave.Tabs[PostSave.TABS.PLEASEWAIT].update = function(){};
	PostSave.Tabs[PostSave.TABS.PLEASEWAIT].updateLeft = function(){};
	PostSave.Tabs[PostSave.TABS.PLEASEWAIT].onShow = function(){};
	PostSave.Tabs[PostSave.TABS.PLEASEWAIT].onHide = function(){};
}


///////////////////////////////////////
/**************************************
TAB OBJECT
**************************************/
///////////////////////////////////////
PostSave.Tabs.Tab = function(name, imageA, imageB, isBuiltOncePerSession, isBuiltEveryTime)
{
	this.name = name;
	this.pointer = null;
	this.isBuiltOncePerSession = isBuiltOncePerSession || PostSave.BOOLEAN.FALSE;
	this.isBuiltEveryTime = isBuiltEveryTime || PostSave.BOOLEAN.FALSE;
	
	if (name && typeof(imageA) === 'string' && typeof(imageB) === 'string')
	{
		this.nameA = name+"a";
		this.nameB = name+"b";
			
		PostSave.Images.addToQueue(this.nameA, imageA);
		PostSave.Images.addToQueue(this.nameB, imageB);
	}
	
	return this;
}
PostSave.Tabs.Tab.prototype.name = '';
PostSave.Tabs.Tab.prototype.pointer = '';
PostSave.Tabs.Tab.prototype.nameA = '';
PostSave.Tabs.Tab.prototype.nameB = '';
PostSave.Tabs.Tab.prototype.isBuiltOncePerSession = PostSave.BOOLEAN.FALSE;
PostSave.Tabs.Tab.prototype.isBuiltEveryTime = PostSave.BOOLEAN.FALSE;
PostSave.Tabs.Tab.prototype.contestTitle = '';
PostSave.Tabs.Tab.prototype.contestTeaser = '';
PostSave.Tabs.Tab.prototype.contestImage = '';
PostSave.Tabs.Tab.prototype.build = null;
PostSave.Tabs.Tab.prototype.update = null;
PostSave.Tabs.Tab.prototype.onShow = null;
PostSave.Tabs.Tab.prototype.onHide = null;


///////////////////////////////////////
/**************************************
TABS FOR ACTIVITY
**************************************/
///////////////////////////////////////
PostSave.Tabs.setTabs = function(activity, tabStr)
{
	//// cleaning array ////
	if (activity.tabs === null)
		activity.tabs = new Array();
	else
		PostSave.Tools.cleanArray(activity.tabs);
	
	/***************************
	tabStr !== ''
	***************************/
	if (tabStr !== '')
	{
		var splitted = tabStr.split(",");
		var l = splitted.length;
		for (var i=0;i<l;++i)
		{
			if (typeof(PostSave.Tabs[splitted[i]]) !== 'undefined')
				activity.tabs.push(splitted[i]);
		}
	}
	
	/***************************
	MY WEB FACE
	***************************/
	else if (activity.name === PostSave.ACTIVITIES.MYWEBFACE)
	{
		activity.tabs.push(PostSave.TABS.FACEBOOK);
		activity.tabs.push(PostSave.TABS.TWITTER);
		activity.tabs.push(PostSave.TABS.DOWNLOAD);
		activity.tabs.push(PostSave.TABS.MAIL);
	}
	/***************************
	MY WEB FACE GALLERY
	***************************/
	else if (activity.name === PostSave.ACTIVITIES.MYWEBFACEGALLERY)
	{
		activity.tabs.push(PostSave.TABS.FACEBOOK);
		activity.tabs.push(PostSave.TABS.TWITTER);
		activity.tabs.push(PostSave.TABS.DOWNLOAD);
		activity.tabs.push(PostSave.TABS.MAIL);
	}
	/***************************
	PHOTO FX
	***************************/
	else if (activity.name === PostSave.ACTIVITIES.MYPHOTOSFX)
	{
		activity.tabs.push(PostSave.TABS.FACEBOOK);
		activity.tabs.push(PostSave.TABS.TWITTER);
		activity.tabs.push(PostSave.TABS.DOWNLOAD);
		activity.tabs.push(PostSave.TABS.MAIL);
	}
	/***************************
	PHOTO FX GALLERY
	***************************/
	else if (activity.name === PostSave.ACTIVITIES.MYPHOTOSFXGALLERY)
	{
		activity.tabs.push(PostSave.TABS.FACEBOOK);
		activity.tabs.push(PostSave.TABS.TWITTER);
		activity.tabs.push(PostSave.TABS.DOWNLOAD);
		activity.tabs.push(PostSave.TABS.MAIL);
	}
	/***************************
	PHOTO MIX
	***************************/
	else if (activity.name === PostSave.ACTIVITIES.PHOTOMIX)
	{
		activity.tabs.push(PostSave.TABS.FACEBOOK);
		activity.tabs.push(PostSave.TABS.TWITTER);
		activity.tabs.push(PostSave.TABS.DOWNLOAD);
		activity.tabs.push(PostSave.TABS.MAIL);
	}
	/***************************
	PHOTO MIX GALLERY
	***************************/
	else if (activity.name === PostSave.ACTIVITIES.PHOTOMIXGALLERY)
	{
		activity.tabs.push(PostSave.TABS.FACEBOOK);
		activity.tabs.push(PostSave.TABS.TWITTER);
		activity.tabs.push(PostSave.TABS.DOWNLOAD);
		activity.tabs.push(PostSave.TABS.MAIL);
	}
	
	/////// ADDING "DONE" TAB ///////
	activity.tabs.push(PostSave.TABS.DONE);	
	
	/////// ADDING "PLEASE WAIT" TAB ///////
	activity.tabs.push(PostSave.TABS.PLEASEWAIT);	
	
	/////// Creating hash Tabs ///////
	PostSave.Tabs.hashTabs(activity);
	
	/////// setting the builtTabs session hash ///////
	PostSave.Tabs.GUI.setBuiltTabsSession(activity);
	
	/////// setting the builtTabs current activity hash ///////
	PostSave.Tabs.GUI.setBuiltTabsCurrent(activity);
	
	/////// building tab string //////
	var l = activity.tabs.length;
	activity.tabString = '';
	for (var i=0;i<l;++i)
	{
		if (activity.tabString !== '')
			activity.tabString += ',';
		activity.tabString += activity.tabs[i];
	}
}

PostSave.Tabs.hashTabs = function(activity)
{
	//// cleaning array ////
	if (activity.hashTabs === null)
		activity.hashTabs = new Array();
	else
		PostSave.Tools.cleanArray(activity.hashTabs);
	
	var l = activity.tabs.length;
	for (var i=0;i<l;++i)
	{
		activity.hashTabs[activity.tabs[i]] = i;
	}
}


PostSave.Tabs.removeTab = function(activity,tab)
{
	var poped = new Array();
	var tabName;
	var l = activity.tabs.length;
	for (var i=0;i<l;++i)
	{
		tabName = activity.tabs.pop();
		if (tabName !== tab)
			poped.push(tabName);	
	}
	
	var l2 = poped.length;
	for (var i=0;i<l2;++i)
	{
		activity.tabs.push(poped.pop());
	}
	
	poped = null;
}
