var Interface = Class.create({
		initialize: function() {
			this.hoverActive = false; 
			this.shareActive = false;
			this.favourActive = false;
		},
		showHoverMessage: function(message) {
			if(!this.hoverActive) {
				document.body.appendChild(new Element('div', { id: 'hoverMessage' }));
				this.hoverActive = true;
				Event.observe(document, 'mousemove', function(event) {
						$('hoverMessage').setStyle({ top: (Event.pointerY(event)-5)+'px', left: (Event.pointerX(event)+15)+'px' });
				});
			}
			$('hoverMessage').update(message);
			$('hoverMessage').show();
		},
		hideHoverMessage: function() {
			$('hoverMessage').hide();
		},
		shareBox: function() {
			if(this.shareActive) {
				Effect.SlideUp('shareBox', { duration: 0.5 });
				this.shareActive = false;
			} else {
				Effect.SlideDown('shareBox', { duration: 0.5 });
				this.shareActive = true;
			}
		},
		favouritize: function(id) {
			var intObj = this;
			if(!this.favourActive) {
				this.favourActive = true;
				new Ajax.Request('/index.php?page=ajax&mod=favouritize', {
						method: 'post',
						parameters: { id: id },
						onSuccess: function(transport) {
							if(transport.responseText==1) {
								$('favourResult').update('You have successfully saved this as a favourite!');
							} else {
								$('favourResult').update('You have already marked this as a favourite. Visit the <a href="/myaccount">My Account</a> area to remove it.');
							}
							Effect.SlideDown('favourBox', { duration: 0.5, queue: 'favour' });
							Effect.SlideUp('favourBox', { duration: 0.5, delay: 5.0, queue: 'favour', afterFinish: function() { intObj.favourActive = false; } });
						},
						onFailure: function() {
							$('favourResult').update('Error: Your request could not be sent!');
							Effect.SlideDown('favourBox', { duration: 0.5, queue: 'favour' });
							Effect.SlideUp('favourBox', { duration: 0.5, delay: 5.0, queue: 'favour', afterFinish: function() { intObj.favourActive = false; } });
						}
				});
			}
		},
		removeFavourite: function(id) {
			new Ajax.Request('/index.php?page=ajax&mod=remove_favourite', {
					method: 'post',
					parameters: { id: id },
					onSuccess: function(transport) {
						if(transport.responseText==1) {
							Effect.Fade('post_'+id);
							Effect.Fade('remove_post_'+id);
						}
					}
			});
		},
		cropImage: function(coords, dimensions) {
			$('thumb_x1').value = coords.x1;
			$('thumb_x2').value = coords.x2;
			$('thumb_y1').value = coords.y1;
			$('thumb_y2').value = coords.y2;
			$('thumb_width').value = dimensions.width;
			$('thumb_height').value = dimensions.height;
		},
		showInfo: function(sectionId) {
			sections = ['my_favourites', 'my_comments', 'my_submissions', 'my_websites'];
			for(i=0; i<sections.length; i++) {
				if(sectionId==sections[i]) {
					$(sections[i]).show();
					$(sections[i]+'_nav').toggleClassName('selected');
				} else {
					$(sections[i]).hide();
					if($(sections[i]+'_nav').hasClassName('selected')) {
						$(sections[i]+'_nav').toggleClassName('selected');
					}
				}
			}
		},
		completeSubmission: function() {
			$('user_submission').update('Submission completed and is now pending review.');
		}
});
