/* application level javascript */

function init_page()
{
	/* initialisation of code for every page on site
	//$('contact_us_open_link').addEvent('click', function(){
		//$('feedback_form').setStyle('display', 'block');
	//});
	//$('contact_us_close_link').addEvent('click', function(){
		//$('feedback_form').setStyle('display', 'none');
	//});
	*/
}

window.addEvent('domready', init_page );

/**
 * bookmarking
 */

// add a bookmark
function add_bookmark( quote_id )
{
	do_bookmark_request( 'add', quote_id, '<img src="/assets/images/layout/bookmarked.jpg" class="bookmark-link" />', 'quote-'+quote_id, false );
	return( false );
}

// add a bookmark using a text based link
function add_bookmark_text( quote_id )
{
	do_bookmark_request( 'add', quote_id, 'This quote has been added to your bookmarks, why not <a href="/quote/add_to_site/'+quote_id+'/">post this quote to your website/blog as well</a>?', 'add-bookmark', false );
	return( false );
}

// add a bookmark from a featured quote
function add_bookmark_featured( quote_id )
{
	do_bookmark_request( 'add', quote_id, 'This quote has been added', 'featured-bookmark', false );
	return( false );
}

// remove a bookmark
function remove_bookmark( quote_id )
{
	do_bookmark_request( 'remove', quote_id, '<a class="bookmark-link" onclick="return(add_bookmark('+quote_id+'))" href="/quote/bookmark/'+quote_id+'/">Bookmark</a>', 'quote-'+quote_id, false );
	return( false );
}

// remove a bookmark from the "my book" page, includes fade animation
function book_remove_bookmark( quote_id )
{
	do_bookmark_request( 'remove', quote_id, false, 'quote-'+quote_id, true );
	return( false );
}





function do_bookmark_request( action, quote_id, response_data, response_obj, remove_element )
{
	if( action == 'add' )
	{
		var url = '/quote/bookmark_ajax/' + quote_id + '/';
	}
	else
	{
		var url = '/quote/unbookmark_ajax/' + quote_id + '/';
	}
	var qbAjax = new Ajax
	(
		url,
		{
			onSuccess: function()
			{
				var response = this.response.text || "no response text";

				if( response == 'not logged in' )
				{
					alert( 'you\'re are not logged in' );
				}
				else if( response == 'already bookmarked' )
				{
					alert( 'you already bookmarked this quote' );
				}
				else if( response == 'not bookmarked' )
				{
					alert( 'you do not have this quote bookmarked' );
				}
				else if( response == 'bookmarked ok' || response == 'removed ok' )
				{
					if( remove_element )
					{
						new Fx.Style
						(
							response_obj,
							'opacity',
							{
								onComplete: function()
								{
									$(response_obj).setStyle('display', 'none');
								}
							}
						).start(1,0);
					}
					else
					{
						$( $(response_obj) ).setHTML( response_data );
					}
				}
				else
				{
					alert( 'an error occoured' );
				}
			},
			onFailure: function()
			{
				alert( 'an error occoured' );
			}
		}
	).request();
}


/**
 * feedback
 */

// send feedback, available on all page

function send_feedback()
{
  	var url = '/feedback/log/';
	var pars = $('feedback-form').toQueryString();
	$('feedback-form').getFormElements().each(function(el){
		$(el).setProperty('disabled', true);
	});
	var qbAjax = new Ajax
	(
		url,
		{
			data: pars,
			onSuccess: function()
			{
				var response = this.response.text || "no response text";
				$('feedback_partial_form').setHTML( '<span id="feedback_partial_form">' + response + '</span>' );
				$('feedback-form').getFormElements().each(function(el){
					$(el).setProperty('disabled', false);
				});
			},
			onFailure: function()
			{
				alert( "REQUEST FAILED" );
			}
		}
	).request();
}