/** Generated by js.php */
var Group = {};

Group.GROUP_NAVIGATOR_ID = 'groupNavigatorId';

Group.NB_COLUMNS = 3;

Group.MANAGE_MENU_POSITION = 0;
Group.GROUPS_MENU_POSITION = 1;
Group.USERS_MENU_POSITION = 2;
Group.BOOKMARKS_MENU_POSITION = 3;

Group.currentCreatorId = null;

Group.json;

Group.navigatorTemplate = new Template(	"<hr>#{GROUP_INFO}<div id='"+Group.GROUP_NAVIGATOR_ID+"'>"+
										"</div><div style='clear:both;'></div><hr>");

Group.navigatorElementTemplate = new Template("<div id='groupNavigatorElementId_#{GROUP_ID}' class='navigatorElement' groupId='#{GROUP_ID}'>"+
													"<img align='bottom' src='/img/icons/crystal/16x16/actions/groupevent.gif' class='navigatorImg'/>&nbsp;"+
													"<a id='groupNavigatorElementLink_#{GROUP_ID}' groupId='#{GROUP_ID}' class='navigatorElementLink'>#{GROUP_NAME}</a>"+
												"</div>");
												
Group.toolbar = new ToolbarEx('groupToolbarId',
									[
										{
											image: '/img/icons/crystal/16x16/actions/folder.gif',
											events : {'click': function(event){Group.getUsers(Group.json)}},
											helpText : _mlt('OPEN_GROUP','Ouvrir ce groupe')
										},
										{
											image: '/img/icons/crystal/16x16/actions/folder_edit.png',
											events : {'click':function(event) {dialog('editGroup',{size:'220,130',source:'/groups/edit/'+Event.element(event).up('.navigatorElement').getAttribute('groupid')}).display();}},
											helpText : _mlt('EDIT_GROUP','Modifier ce groupe')
										},{
											image: '/img/icons/crystal/16x16/actions/folder_delete.png',
											events : {'click':function(event){
												new Ajax.Request("/modules/incrementCouter/"+BOOKMARK_MODULE);
												dialog('confirmationdelGroups',{title:_mlt("CONFIRM_DELETE_TITLE"),content:_mlt("CONFIRM_DELETE_GROUP",'Etes-vous sûr de vouloir supprimer ce groupe')+' ?',size:'200,80',okAction:'Group.deleteGroup('+Event.element(event).up('.navigatorElement').getAttribute('groupid')+')',type:'confirm'}).display();
											}},
											helpText : _mlt('DELETE_GROUP','Supprimer ce groupe')
										}
									]
								);

Group.generateNavigator = function(xhr,json) {
	try {
		if (!json) json = eval('('+xhr.responseText+')');
		clearNavigator();		
		var navigator = {};
		if ((json.groups) && (json.groups.errors)) {
			navigator = {GROUP_INFO: json.groups.errors};
			new Insertion.Bottom($('navigator'), Group.navigatorTemplate.evaluate(navigator));
		}
		else {
			new Insertion.Bottom($('navigator'), Group.navigatorTemplate.evaluate(navigator));
			json.groups.each(Group.generateNavigatorElement);
		}
	} catch (e) {
		if (console) console.error(e);
	}
}

Group.generateNavigatorElement = function(group,i) {
	try{
		navigatorElement = {GROUP_ID:group['id'],GROUP_NAME:group['name']};
		new Insertion.Bottom($(Group.GROUP_NAVIGATOR_ID), Group.navigatorElementTemplate.evaluate(navigatorElement));
		var element = $('groupNavigatorElementId_'+group['id']);
		if (i % Group.NB_COLUMNS == 0) element.setStyle({clear:'both'});
		
		if (group.admin == true) {
			// On affichera la toolbar
			Group.json = group;
			Event.observe(element,"click",function() {Group.toolbar.displayIn(element);});
		} else {
			Event.observe(element,"click",function() {Group.getUsers(group)});
		}
	} catch(e) {
		if (console) console.error(e)
	}
}

Group.get = function(groupId) {
	clearBookmarkContainer();
	hideGroupsSubMenu();
	activateGroupsSubMenuLink(Group.GROUPS_MENU_POSITION);
	new Ajax.Request("/groups/get/"+groupId, {onComplete:Group.generateNavigator});
}

Group.getUsers = function(group) {
	displayGroupsSubMenu('user');
	activateGroupsSubMenuLink(Group.USERS_MENU_POSITION);
	
	Event.clearObservers($('groupSubMenuUsersMenu'));
	Event.observe('groupSubMenuUsersMenu','click',function(e) {Event.stop(e); Group.getUsers(group); });
	
	Event.clearObservers($('manageUsersGroupListWatchInvitationsMenu'));
	Event.observe($('manageUsersGroupListWatchInvitationsMenu'),'click',function(){dialog(_mlt("WATCH_GROUP_INVITATION_STATE"),{size:'500,300',source:'/groups/get_etat_invitations/'+group['id']}).display(false);});
	
	Event.clearObservers($('manageUsersGroupListInvitCoomnautMenu'));
	Event.observe($('manageUsersGroupListInvitCoomnautMenu'),'click',function(){dialog(_mlt("INVIT_COOMNAUTE"),{size:'350,290',source:'/groups/invite_group/'+group['id']}).display(false);});
	
	
	if (group['admin'] == true) {
		$('manageUsersGroupListDeleteGroupMenu').show();
		$('manageUsersGroupListLeaveGroupMenu').hide();
		Event.clearObservers($('manageUsersGroupListDeleteGroupMenu'));
		if (group['nbUser'] > 1) {
			Event.observe($('manageUsersGroupListDeleteGroupMenu'),'click',function(){dialog(_mlt("DELETE_GROUP"),{size:'360,180',source:'/groups/choice_successor/'+group['id']}).display(false);});
		} else {
			Event.observe($('manageUsersGroupListDeleteGroupMenu'),'click',function(){dialog(_mlt("DELETE_GROUP"),{size:'320,160',source:'/groups/confirm_delete/'+group['id']}).display(false);});
		}
	} else {
		$('manageUsersGroupListDeleteGroupMenu').hide();
		$('manageUsersGroupListLeaveGroupMenu').show();
		Event.clearObservers($('manageUsersGroupListLeaveGroupMenu'));
		Event.observe($('manageUsersGroupListLeaveGroupMenu'),'click',function(){dialog(_mlt("LEAVE_GROUP"),{size:'500,300',source:'/groups/leave/'+group['id']}).display(false);});
	}
	
	
	
	clearElements();
	new Ajax.Request("/groups/getUsers/"+group['id'],{onComplete : User.generateNavigator})
}

//-- Suppression d'un groupe --//
Group.deleteGroup = function(group_id){
	new Ajax.Request('/groups/delete_direct/'+group_id);
	Group.get(0);
	//on ferme le modal
	closeDialog();
}

//-- annnule une invitation --//
Group.cancelInvitation = function(user_id,group_id){
	new Ajax.Request('/groups/cancel_invitation/'+user_id+'/'+group_id);
	closeDialog();
}

