
var VOTES = {};

VOTES.DoVote = function(vote, tipID)
{
	var res = UTILS.Ajax.Query('GET', '/tips/vote.php?vote=' + vote + '&tip_id=' + tipID, null, true);
	
	var parts = res.split(':');
	
	if (parts[0] == 'ok')
	{
		var total = res.substr(3);
		
		//VOTES.voteContainer.innerHTML = 'Total votes: ' + total;
		VOTES.voteResult.innerHTML = 'Thank you for voting!';
		
		UTILS.DOM.removeListener(VOTES.upButton, "click", VOTES.upHandler);
		UTILS.DOM.removeListener(VOTES.downButton, "click", VOTES.downHandler);
		
		VOTES.buttonContainer.className = "";
		
		VOTES.upButton.src = "/tips/images/vote_up_" + (vote == 1 ? "orange.png" : "gray.png");
		VOTES.downButton.src = "/tips/images/vote_down_" + (vote == 0 ? "orange.png" : "gray.png");;
	}
	else if (parts[0] == 'exists')
	{
		VOTES.upButton.src = "/tips/images/vote_up_" + (parts[2] == 1 ? "orange.png" : "gray.png");
		VOTES.downButton.src = "/tips/images/vote_down_" + (parts[2] == 0 ? "orange.png" : "gray.png");
	}
	else
	{
		alert('Internal error');
	}
}

VOTES.Init = function(tipID)
{
	VOTES.upButton = UTILS.DOM.get('vote_up');
	VOTES.downButton = UTILS.DOM.get('vote_down');
	VOTES.buttonContainer = UTILS.DOM.get('votes_button_container');
	VOTES.voteResult = UTILS.DOM.get('vote_result');
	//VOTES.voteContainer =  UTILS.DOM.get('total_votes');

	if (VOTES.upButton == null || VOTES.downButton == null || VOTES.buttonContainer == null || VOTES.voteResult == null/* || VOTES.voteContainer == null*/)
	{
		setTimeout(100, function() { VOTES.Init(tipID); })
		return;
	}
	
	var res = UTILS.Ajax.Query('GET', '/tips/vote.php?mode=check&tip_id=' + tipID, null, true);
	//var total = '';
	
	var parts = res.split(':');
	
	if (parts[0] == 'ok')
	{
		//total = res.substr(3);
		
		VOTES.upHandler = function() { VOTES.DoVote(1, tipID) };
		VOTES.downHandler = function() { VOTES.DoVote(0, tipID) };
		
		UTILS.DOM.addListener(VOTES.upButton, "click", VOTES.upHandler);
		UTILS.DOM.addListener(VOTES.downButton, "click", VOTES.downHandler);
		
		VOTES.buttonContainer.className = "votes";
		
		VOTES.upButton.src = "/tips/images/vote_up.png";
		VOTES.downButton.src = "/tips/images/vote_down.png";
	}
	else 
	{
		
		//if (parts[0] == 'exists')
		//{
		//	total = parts[1];
		//}
		
		VOTES.upButton.src = "/tips/images/vote_up_" + (parts[2] == 1 ? "orange.png" : "gray.png");
		VOTES.downButton.src = "/tips/images/vote_down_" + (parts[2] == 0 ? "orange.png" : "gray.png");
	}
	
	//VOTES.voteContainer.innerHTML = 'Total votes: ' + total;
}

VOTES.Init(TIPID);
