/**
 * @package    JMyLife
 * @subpackage Components
 * @version    1.0.10
 * @copyright  2009-2010 Jeff Channell
 * components/com_jmylife/assets/js/ajaxClick.js
 * @license    GNU/GPL
 */
window.addEvent( 'load', function()
{
	/*
	 * ajax link submission
	 */
	$$('.comJMyLifeItemVoteLink, a.favorite_link, a.unsubscribe_link, a.sendfriend_link, a.reportstory_link').each( ajaxClick );
	// graphic vote needs some extra special attention
	$$('.comJMyLifeItemGraphicVoteLink').each( graphicVote );
	// email send
	if( jmlEmailSend = $$('input.jmlEmailSend') )
	{
		jmlEmailSend.each( function( el )
		{
			el.addEvent( 'click', function( ev )
			{
				var email;
				var href;
				try
				{
					email = el.getPrevious().getValue();
					href  = el.getNext().getValue();
				}
				catch( err )
				{
					email = el.getPrevious().get('value');
					href  = el.getNext().get('value');
				}
				href = href + ( href.match(/\?/)?'&':'?' ) + 'email='+email + '&ajax=1';
				try
				{
					new Ajax( href,
					{
						method: 'get',
						update: el.getParent()
					}).request();
				}
				catch( err )
				{
					new Request({
						url: href,
						method: 'get',
						onComplete: function( response )
						{
							el.getParent().set( 'html', response );
						}
					}).send();
				}
			});
		});
	}
});

/*
 * ajax submission function
 */
var ajaxClick = function( el )
{
	el.addEvent( 'click', function( e )
	{
		new Event(e).stop();
		var href = el.getProperty( 'href' ) + '&ajax=1';
		if( el.hasClass('sendfriend_link') )
		{
			el.setStyles({'display':'none'});
			el.getNext().setStyles({'display':'inline'});
		}
		else
		{
			try
			{
				new Ajax( href,
				{
					method: 'get',
					evalScripts: true,
					update: el
				}).request();
			}
			catch( err )
			{
				new Request({
					url: href,
					method: 'get',
					onComplete: function( response )
					{
						el.set( 'html', response );
					}
				}).send();
			}
		}
		return false;
	});
}

/*
 * special function for graphic voting
 */
var graphicVote = function( el )
{
	el.addEvent( 'click', function( e )
	{
		new Event(e).stop();
		var href = el.getProperty( 'href' ) + '&ajax=1';
		var graphicVoteComplete = function( response )
		{
			var r = eval( '('+response+')' );
			if( r.success )
			{
				el.getElement('.comJMyLifeItemGraphicVoteText').setText( r.msg );
				el.getElement('.comJMyLifeItemGraphicVoteCount').setText( r.count );
			}
			else
			{
				alert( r.msg );
			}
		};
		try
		{
			new Ajax( href,
			{
				method: 'get',
				evalScripts: true,
				onComplete: graphicVoteComplete
			}).request();
		}
		catch( err )
		{
			new Request({
				url: href,
				method: 'get',
				onComplete: graphicVoteComplete
			}).send();
		}
		return false;
	});
}
