var Vote = {
	VoteFile2 : '/votes_add.php',
	CookieFile : '/library/set_cookie.php',
	VoteFile : '/library/add_vote.php',	
	VoteCasted : false,

	Init : function() {
		if( $('#vote_box').is('div') ) { 
			if( $('#people_popup').hasClass('page') ) {
				Global.SetPersonVars();
			}
			Vote.InitPageVote();
		}
	},
	
	About: function() {

		// Add the mouse-over to "About the voting"
		$('#vote_box .how_it_works a').mouseover( function() { 
			var text = 'Varje vecka har du möjlighet att välja vilka politiker du vill ge en tumme upp och vilka du tycker har förtjänat en tumme ner. I början av varje vecka nollställs rösterna vilket ger våra folkvalda möjligheten att reagera på allas våra åsikter. Tidigare röster arkiveras och presenteras på varje politikers sida så att man kan följa deras historik';
		
			var pos = $('#vote_box .how_it_works a').offset();
			var posY = pos.top;
			var posX = pos.left;
			Global.ShowInfo( '<p class="tt_content">' + text + '</p>', posX - 95, posY ); 
		} );
		$('#vote_box .how_it_works a').mouseout( function() { Global.HideInfo() } );		
		$('#vote_box .how_it_works a').click( function() { return false; } );
		
	},
	
	InitPageVote : function() {
		// If the user already voted for this ledamot, let's tell him
		//alert(Global.PersonID + ' - ' +  User.ID );
		if( $.inArray(Global.PersonID, User.Votes) != -1 ) {
			Vote.HasVoted();

		// If the user hasn't already voted for this ledamot, fix the vote-box but first check if cookies are enabled
		} else if( User.CookiesEnabled ) {
			$('#vote_box .noJS').remove();
			var VoteBoxCode = '<ul>';
					VoteBoxCode+= '<li class="up"><span class="btn vote_up">Tummen upp</span></li>';
					VoteBoxCode+= '<li class="or">eller</li>';				
					VoteBoxCode+= '<li class="down"><span class="btn vote_down">Tummen ner</span></li>';
					VoteBoxCode+= '<li class="how_it_works"><a href="#">Så fungerar röstningen</a></li>';				
					VoteBoxCode+= '</ul>';
			$('#vote_box').append(VoteBoxCode);
			// Assign the clicks
			$('#vote_box li.up span').click(function () {
				Vote.VoteUp();
			});
			
			$('#vote_box li.down span').click(function () {
				Vote.VoteDown();
			});
			Vote.About();			
		}
	},
	
	VoteUp : function() {
		if( !Vote.VoteCasted ) {
			Vote.ClearAndLoad();
			Vote.Vote(1);
		}
	},
	
	VoteDown : function() {
		if( !Vote.VoteCasted ) {
			Vote.ClearAndLoad();
			Vote.Vote(-1);		
		}
	},
	
	ClearAndLoad : function() {
		$('#vote_box ul li.up').remove();
		$('#vote_box ul li.or').remove();
		$('#vote_box ul li.down').remove();
		$('#vote_box h4').after('<p class="hasVoted"><span class="loader">Laddar…</span></p>');
	},
	
	Vote : function( myVote ) {
		$.ajax({
			type: 'GET',
			url: Vote.CookieFile,
			dataType: 'text',
			data:	{
				noCache : Math.random()
			},			
			success:
				function( data ) {
					if( data == 'ok' ) {
						$.ajax({
							type: 'GET',
							url: Vote.VoteFile,
							dataType: 'json',
							data:	{
								ledamot: Global.PersonID,
								vote: myVote,
								noCache : Math.random()
							},
							success:
								function(data) {
									$.each(data.list, function(i,Item){	
										if( Item.error ) { alert( Item.msg ); }
										else {
											$('#vote .plus').html( Item.plus.toString() );
											$('#vote .minus').html( Item.neg.toString() );
											$('#vote .total').html( ( Item.tot ).toString() );
											People.People[People.Active].votePos = Item.plus;
											People.People[People.Active].voteNeg = Item.neg;
											People.People[People.Active].voteTotal = Item.tot;							
										}
									})
								}
						})
					} else {
						alert('Ett fel uppstod.');
					}
				}				
			})
		User.Votes[User.Votes.length] = Global.PersonID;
		Vote.Inactivate();
	},
	
	Inactivate : function() {
		$('#vote_box .hasVoted').html('Tack för din röst. Du kan rösta på ' + Global.PersonFirstName + ' igen nästa vecka.');	
	},
	
	HasVoted : function() {
		$('#vote_box .noJS').remove();
		$('#vote_box h4').after('<p class="hasVoted">Du har redan röstat på ' + Global.PersonFirstName + ' en gång denna vecka.</p>');
	}
	
}
