/*
 * microsites.js
 */

var Microsite = 
{
	nickname : '',

	ourvideos_tab : function() { $('#ourvideos_tab').click( function() { if ( !Microsite.nickname ) { return; } $('#videosThumb').load('/microsites/ourvideospreview/nickname/' + Microsite.nickname, '', ''); Microsite.activate_tab('ourvideos_tab'); } ) },
	mostviewed_tab : function() { $('#mostviewed_tab').click( function() { if ( !Microsite.nickname ) { return; } $('#videosThumb').load('/microsites/mostviewedvideospreview/nickname/' + Microsite.nickname, '', ''); Microsite.activate_tab('mostviewed_tab');} ) },
	mostcommented_tab : function() { $('#mostcommented_tab').click( function() { if ( !Microsite.nickname ) { return; } $('#videosThumb').load('/microsites/mostcommentedvideospreview/nickname/' + Microsite.nickname, '', ''); Microsite.activate_tab('mostcommented_tab');} ) },
	activate_tab : function(tab) { $('#'+tab).addClass('active'); $('#'+tab).siblings().removeClass('active'); },
	register_show_more : function(trigger, tohide, toshow) { $('#'+trigger).click( function() { $('#'+tohide).hide(); $('#'+toshow).show(); } ); },

	// grupos
	tabgroups : new Array(),
	add : function(tabgroup) { Microsite.tabgroups[tabgroup.id_dom] = tabgroup; },
	initialize : function(param) {
								this.nickname = param.nickname;
								if ( param.text_link && param.text_hide && param.text_show )
								{
									this.register_show_more(param.text_link, param.text_hide, param.text_show);
								}
								this.ourvideos_tab();
								this.mostviewed_tab();
								this.mostcommented_tab();
							//	if ( (param.tabgroups) && (param.tabgroups.length > 0) )
							//	{
									for ( var i in param.tabgroups )
									{
										tabgroup = new Object();
										$.extend(tabgroup, TabGroup);
										tabgroup.id_dom = i;
										tabgroup.initialize(param.tabgroups[tabgroup.id_dom]);
										Microsite.add(tabgroup);
									}
							//	}
							},
	search : function(id_dom)
	{
		for (var i in Microsite.tabgroups)
		{
			var result = null;
			if ( result = Microsite.tabgroups[i].search(id_dom) )
			{
				return result;
			}
		}
		return false;
	}
};

var TabGroup =
{
	id_dom : null,
	tabs : new Array(),
	tab_active  : null,
	tab_loading : null,

	add : function(tab) { this.tabs[tab.id_dom] = tab; },
	load : function(tab) { this.tab_loading = tab; tab.preload(); $('#'+this.id_dom).load(tab.get_link(), '', function(){ Microsite.tabgroups[this.id].ready(); } ); },
	ready : function() { this.tab_active = this.tab_loading; this.tab_loading = null; this.tab_active.activate(); },
	search : function(id_dom) { return this.tabs[id_dom]; },
	initialize : function(tabs) {
									var first_tab = true;
									for ( var i in tabs )
									{
										tab = new Object();
										$.extend(tab, Tab);
										tab.id_tab = tabs[i]; // usar i solo ?
										tab.id_dom = 'group_' + tab.id_tab; // TODO parametrizar id_dom
										tab.parent = this;
										tab.register();
										this.add(tab);
										if ( first_tab ) 
											{ tab.activate(); first_tab = false; }
									}
								}
};

var Tab = 
{
	id_tab : null,
	id_dom : null,
	parent : null,
	request_url  : '/groups/videoslist/nickname/',
	current_page : 1,
	
	load : function() { this.parent.load(this); },
	preload  : function() { $('#'+this.id_dom).addClass('active'); $('#'+this.id_dom).siblings().removeClass('active'); },
	nav_prev : function(tab) { $('#group_prev').click( function()
													{
														if ( tab.current_page <= 1 )
															{ return; } 
														tab.current_page --;
														tab.load();
													} ) },
	nav_next : function(tab) { $('#group_next').click( function()
														{
															tab.current_page ++; 
															tab.load();
														} ); },
	activate : function() { this.nav_prev(this); this.nav_next(this); $('#'+this.parent.id_dom+' .reflect').reflect(); },
	get_page : function() { return (this.current_page > 0) ? '/page/'+this.current_page : ''; },
    get_tab  : function() { return '/id_group/' + this.id_tab },
	get_link : function() { return this.request_url + Microsite.nickname + this.get_tab() + this.get_page(); },

	register : function() { $('#'+this.id_dom).click( function() {
														try { Microsite.search(this.id).load(); }
														catch (error) { alert(error); } } ) }
}

var BoxAction = {
    init : function()
	{ 
        // TODO activar botones para enviar
		$("#tabs_navigation").tabs();
		var recommend = Action.create();
		recommend.init({"action":"/users/recommend", "id_dom":"recommend_form", "container":"recommend"});
    }
}

$(document).ready( 
	function()
	{
		if (jsonParameters)
		{
			try
			{
				BoxAction.init();
				Microsite.initialize(jsonParameters);
				Comments.initialize(jsonParameters);
				CommentForm.init({"action":"/comments/add","id_dom":"dom_comment_form", "container":"comment_form"});
                CommentDeleteAction.add_bind();
				Rating.initialize(jsonParameters);
			}
			catch (Exception)
			{
				alert(Exception); 
			}
		}
	}
);