var MemberGroupCreatePrivate = stdClass.extend({
	//constructor
	constructor: function(el, settings) {
		this.base();
		// variable_list: settings
		Object.extend(this.s, {
			//moduleName: 'AdminModules__AddFavorites',
			moduleName: 'MemberGroupEmailAccept'
			/* put extensions to collections here */
		});
		
		this.formNode = el;
		this.moduleNode = el.parentNode.parentNode.parentNode;
		this.actionsNode = this.findActionNode();
		this.actionsHTML = this.actionsNode.innerHTML;
		//alter the actions node
		this.joinNode = document.createElement('a');
		this.joinNode.innerHTML = 'Join Group';
		this.actionsNode.appendChild(this.joinNode);
		//start listening
		this.toggle = this.findInitState();
		this.eObserve(this.joinNode, 'click', this.toggleForm.bind(this));
	},
	findInitState: function() {
		var ulNodes = document.getElementsByTagName('ul');
		for( var i = 0; i < ulNodes.length; i ++ ) {
			if(Element.hasClassName(ulNodes[i], 'error')) {
				Element.show(this.moduleNode);
				Element.hide(this.joinNode);
				return false;
			}
		}
		Element.hide(this.moduleNode);
		return true;
	},
	
	findActionNode: function() {
		var pNodes = document.getElementsByTagName('p');
		for( var i = 0; i < pNodes.length; i ++ )
			if(Element.hasClassName(pNodes[i], 'actions'))
				return pNodes[i];
		return null;
	},
	
	toggleForm: function(e) {
		Event.stop(e);
		if(this.toggle) {
			Element.show(this.moduleNode);
			var formElements = Form.getElements(this.formNode);
			formElements[9].focus();
			Element.hide(this.joinNode);
			this.toggle = false;
		}
		else {
			Element.hide(this.moduleNode);
			this.toggle = true;
		}
	}
});
EventSelectors.register({
	'form#split-form-register': function(el) {
		new MemberGroupCreatePrivate(el);
	}
});