var Share = Class.create({
	initialize: function(divId) {
		this.divId = divId;
		this.div = $(divId);
		this.shareLinks = new ShareLinks();
		this.shareWindow = new OverlayWindow(divId);
	},
	open: function(service) {
		this.hide();
		this.shareLinks.open(service);
	},
	hide: function() {
		this.shareWindow.hide();
	},
	show: function() {
		this.shareWindow.show();
	},
	effectEnds: function() {
		this.effects--;
	},
	checkfield: function(elementId,re) {
		var element = $(elementId);
		if (element.value.match(re)!=null) { return true; }

		/*
		var parentelement = element.up('.field');
		//parentelement.removeClassName('warning');
		//parentelement.addClassName('warning');
		*/

		new Effect.Highlight(element,{
			startcolor: '#ffaaaa',
			endcolor: '#ffffff',
			duration: 0.3,
			queue: 'end'
		});

		return false;
	},
	submit: function() {
		// Check for errors
		var errors=0;
		if (!this.checkfield('share_friendmail',/^[\.\-\w]+@[\.\-\w+]\.\w+$/)) { errors++; }
		if (!this.checkfield('share_username',/^\w+$/)) { errors++; }
		if (errors) { return false; }

		// Submit form!
		alert("[form submit]");
		return false;
	}
});

var ShareLinks = Class.create({
	open: function(serviceStr) {
		// Service definition
		var services = {
			'facebook': 'http://www.facebook.com/share.php?u={url}&t={title}',
			'twitter': 'http://twitter.com/home?status={title}+-+{url}',
			'delicious': 'http://delicious.com/post?url={url}&title={title}&notes=',
			'stumpleupon': 'http://www.stumbleupon.com/submit?url={url}&title={title}',
			'google': 'http://www.google.com/bookmarks/mark?op=add&bkmk={url}&title={title}&annotation=',
			'live': 'https://favorites.live.com/quickadd.aspx?marklet=1&mkt=en-us&url={url}&title={title}&top=1'
		};
		// Report missing service
		if (services[serviceStr]===undefined) {
			alert('Unknown ShareIt service specified: '+serviceStr);
			return;
		}
		// Build URL
		var shareURL = services[serviceStr];
		shareURL = shareURL.replace('{url}',encodeURIComponent(location.href));
		shareURL = shareURL.replace('{title}',encodeURIComponent(document.title));
		// Open URL
		window.open(shareURL);
	}
});	

