function toggleVote(e) {
	var heartid = e.element().id.replace('heartid_', '');

	var vote = (e.element().hasClassName('heart-vote-selected')) ? 0 : 1;
	if (!isLoggedIn) {

		var cookies = new Cookies();

		if (!cookies.get(heartid)) {
			cookies.set(heartid, 'true', 180);
			new Ajax.Request('/vote/', {
				method : 'post',
				parameters : {
					'heartid' : heartid,
					'vote' : vote
				},
				onSuccess : function(response) {
					var data = response.responseText.evalJSON();
					e.element().addClassName('heart-vote-selected');
					// updateTotalVotes(data);
			}
			});
		} else {
			alertAlreadyVoted(e);
		}

	} else {

		new Ajax.Request('/vote/', {
			method : 'post',
			parameters : {
				'heartid' : heartid,
				'vote' : vote
			},
			onSuccess : function(response) {
				var data = response.responseText.evalJSON();
				if (data.vote_value == 1) {
					e.element().addClassName('heart-vote-selected');
					// updateTotalVotes(data);
		} else {
			e.element().removeClassName('heart-vote-selected');

			// updateTotalVotes(data);
		}
	}
		});
	}
}

// function updateTotalVotes(data){
//
// $('total_votes_'+data.heartid).update(data.total_votes);
// new Effect.Highlight('wrapper_total_votes_'+data.heartid,{ startcolor:
// '#ffff99', endcolor: '#ffffff' });
//
// }

function toggleFav(e) {

	var heartid = e.element().id.replace('fav_heartid_', '');

	var fav = (e.element().hasClassName('heart-favorite-selected')) ? 0 : 1;
	new Ajax.Request('/favorite/', {
		method : 'post',
		parameters : {
			'heartid' : heartid,
			'fav' : fav
		},
		onSuccess : function(response) {
			var data = response.responseText.evalJSON();
			if (data.is_favorited == 'True') {
				e.element().addClassName('heart-favorite-selected');
			} else {
				e.element().removeClassName('heart-favorite-selected');
			}
		}
	});
	return false;
}

function alertNotLoggedIn(e) {
	var heartid = e.element().id.replace('fav_heartid_', '');
	new Effect.Appear('loginwarning_' + heartid, {
		duration : 0.3
	});
	// new Effect.Highlight('loginwarning',{ startcolor: '#ffff99', endcolor:
	// '#ffffff' });
	new Effect.Fade('loginwarning_' + heartid, {
		duration : 4
	});
}

function alertAlreadyVoted(e) {
	var heartid = e.element().id.replace('heartid_', '');
	new Effect.Appear('toomuchlove_' + heartid, {
		duration : 0.3
	});
	// new Effect.Highlight('toomuchlove',{ startcolor: '#ffff99', endcolor:
	// '#ffffff' });
	new Effect.Fade('toomuchlove_' + heartid, {
		duration : 4
	});
}
function alertLoginToComment(heartid) {
	new Effect.Appear('loginwarning_comment_' + heartid, {
		duration : 0.3
	});
	new Effect.Fade('loginwarning_comment_' + heartid, {
		duration : 4
	});
}

function loadIt() {
	$$('.heart-vote').each(function(e) {
		var cookies = new Cookies();
		var heartid = e.id.replace('heartid_', '');

		if (isLoggedIn) {
			e.observe('click', toggleVote);
		} else {

			if (!cookies.get(heartid)) {// only allow clicks when anonymous
										// cookie isn't set
				e.observe('click', toggleVote);
			} else {
				e.addClassName('heart-vote-selected');// selected heart
														// graphic
				e.observe('click', alertAlreadyVoted);
			}
		}

	});

	if (isLoggedIn) {
		/*
		 * Attach the handlers to each up and down image to handle clicks for
		 * voting.
		 */

		$$('.heart-favorite').each(function(e) {
			e.observe('click', toggleFav);
		});

	} else {

		$$('.heart-favorite').each(function(e) {
			e.observe('click', alertNotLoggedIn);
		});

	}
}


function showUploadDialog(){
	document.getElementById('uploading-heart').style.visibility = 'visible';
}

Event.observe(window, 'load', function() {
	loadIt();
});

