var Menu = Class.create({
		initialize: function() {
			this.opened = 'none';
			this.sections = ['email', 'sms', 'titan'];
			this.statusMsg = ['SMS Failed!', 'SMS Sent!', 'Invalid Authorization Code!', 'Email Failed!', 'Email Sent!'];
		},
		open: function(section) {
			if(this.opened!=section) {
				if(this.opened!='none') {
					Effect.SlideUp(this.opened, { queue: 'end', duration: 0.5 });
				}
				this.opened = section;
				Effect.SlideDown(this.opened, { queue: 'end', duration: 0.5 });
			} else {
				Effect.SlideUp(this.opened, { queue: 'end', duration: 0.5 });
				this.opened = 'none';
			}
		},
		sendData: function(type) {
			$(type+'_progress').update('Sending...');
			$(type+'_progress').setOpacity(0);
			$(type+'_progress').show();
			Effect.Fade(type+'_in', { queue: 'end', duration: 0.25, to: 0.3, afterFinish: dataRequest });
			var zif = this;
			function dataRequest() {
				Effect.Pulsate(type+'_progress', { queue: 'end', duration: 10.0, pulses: 20, from: 0.25 });
				new Ajax.Request('/index.php', {
						method: 'post',
						parameters: $(type+'_form').serialize(),
						onSuccess: function(transport) {
							Effect.Queue.each(function(effect) { effect.cancel(); });
							$(type+'_progress').setOpacity(100);
							$(type+'_progress').update(zif.statusMsg[transport.responseText]);
							Effect.Fade(type+'_progress', { queue: 'end', duration: 0.5, to: 0, delay: 1.0 });
							Effect.Fade(type+'_in', { queue: 'end', duration: 0.25, to: 1.0 });
						},
						onFailure: function() {
							Effect.Queue.each(function(effect) { effect.cancel(); });
							$(type+'_progress').update(zif.statusMsg[transport.responseText]);
							Effect.Fade(type+'_progress', { queue: 'end', duration: 0.5, to: 0, delay: 1.0 });
							Effect.Fade(type+'_in', { queue: 'end', duration: 0.25, to: 1.0 });			
						}
				});
			}
		}
});
var Zifiniti = new Menu();