(function($){
	var Informed = this.Informed = function(){
		var cover = $('.page_cover'),
			form = $('#block-webform-client-block-19'),
			open = $('');
			
		form.append('<a href="#" class="toggle_controls">&nbsp;</a>')
			.append('<a href="#" class="close_controls">&nbsp;</a>');
		
		var toggle = $('.toggle_controls'),
			close = $('.close_controls');
			
		toggle.bind('click', function(e){
			e.preventDefault();
			informed_obj.toggle();
		});
		
		toggle.bind('mouseenter', function(e){
			if(!informed_obj.open){
				informed_obj.nudge('out');
			}
		});
		
		toggle.bind('mouseleave', function(e){
			if(!informed_obj.open){
				informed_obj.nudge('in');
			}
		});
		
        toggle.css('width', 80);
        
		close.bind('click', function(e){
			e.preventDefault();
			informed_obj.hide();
		});
			
		var informed_obj = {
			open: false,
			
			nudge: function(dir){
				form.animate({
					'margin-left': dir == 'out' ? -80 : -50
				}, {
					queue: false
				});
				
				return this
			},
			
			toggle: function(event){
				return this.open ? this.hide() : this.show();
			},
			
			show: function(callback){
				if(!this.open){
					this.open = true;
					callback = callback || function(){};
					var self = this;
					
                    toggle.css('width', 56);
                    
					cover.css({
						display: 'block',
						opacity: 0
					}).animate({
						opacity: .5
					},
					{
						queue: false
					});
					
					form.animate({
						left: '50%',
						'margin-left': -268
					}, 
					{
						queue: false,
						complete: function(){
							callback();	
						}
					});
				}
				
				return this;
			},
			
			hide: function(callback){
				if(this.open){
					callback = callback || function(){};
					
                    toggle.css('width', 80);
                    
					form.animate({
						left: '100%',
						'margin-left': -50
					},
					{
						queue: false
					});
					
					cover.animate({
						opacity: 0
					},
					{
						queue: false
					}).css({
						display: 'none'
					});
					
					this.open = false;
				}
				
				return this;
			}
		};
	};
})(jQuery);
