var gameVoted = false;
var contentVoted = false;
var onlineGameVoted = false;
var commentSent = false;
var domainURL = 'http://' + document.domain + '/';
var errRefresh = 'Wystąpił błąd.\n\nOdśwież stronę i spróbuj ponownie.';
var authorDefault = 'Pseudo';
var commentDefault = 'Treść...';
var bGameCollected = false;

$(document).ready(function(){

	/* cycleNews*/
	$(function() {
	    $(".cycleRecommended").jCarouselLite({
	    	speed: 500,
	    	auto: 5000,
	    	visible: 1,
	    	scroll: 1,
			btnNext: ".cycleRecommendedButtonsRight",
			btnPrev: ".cycleRecommendedButtonsLeft",
			btnGo:
				[".controls .b1",
				".controls .b2",
				".controls .b3",
				".controls .b4",
				".controls .b5"]

	    });
	});

	$(function() {
	   $(".controls li").click(function(){
		{
			$(".controls").find("li").removeClass("active");
			$(this).addClass("active");
		}
		});
	});

	/*obs�uga menu bez prze�adowywania*/
	/*
	[ul li] wyr�nione ma mie� class="active" domy�lnie element z 1 jest aktywny
	[ul] ma miec class="mbar" i id {np. 'xxx'}
 	[ul li a] musi miec id z [ul] z kolejnym numerem {np. 'xxx1' puzniej 'xxx2'}
	[div] ma miec klase jak ul id {'xxx'} i klase jak [ul li a] z przedrostkiem m {np. 'mxxx1' puzniej 'mxxx2'}


	<ul class="mbar" id="a">
		<li class="active"><a href="#toogle" id="a1">menu 1</a></li>
		<li><a href="#toogle" id="a2">menu 2</a></li>
	</ul>
	<div class="a ma1">tekst 1</div>
	<div class="a ma2">tekst 2</div>
	*/
	$.each( $(".mbar") , function(i,n) {
		var namelist=$(this).attr("id");
		$("."+namelist).hide();
		$(".m"+namelist+"1").show();
	});

	$(".mbar a").click(function(){
		{
			var namelist=$(this).parent().parent().attr("id");
			var normal=$(this).attr("id");
			if (namelist && normal)
			{
				$("#"+namelist).find("li").removeClass("active");
				$(this).parent().addClass("active");

				$("."+namelist).hide();
				$(".m"+this.id).show();

				return false;
			}
			else return true;
		}
	});

	// Search - auto-suggest
	$( '#searchQuery' ).autocomplete({
        ajax: '/szukaj-suggest/',
        match: function(typed) {
          this.typed = typed;
          this.pre_match = this.title;
          this.match = this.post_match = '';
          if (!this.ajax && !typed || typed.length == 0) { return true; }
          var match_at = this.title.search( new RegExp( typed, 'i' ) );
          if (match_at != -1) {
            this.pre_match = this.title.slice(0,match_at);
            this.match = this.title.slice(match_at,match_at + typed.length);
            this.post_match = this.title.slice(match_at + typed.length);
            return true;
          }
          return false;
        },
        timeout: 0,
        insertText: function(obj) { return obj.title },
        templateText: "<li><img src=\"<%= image_url %>\" width=\"36\" height=\"36\" alt=\"\" /> <%= pre_match %><span class=\"matching\" ><%= match %></span><%= post_match %></li>"
      });

});

function gameVote(gameid,vote)
{
	if(gameVoted)return;
	gameVoted=true;
	$.ajax({type:'POST',url:domainURL+'gry-rate/',data:{gameid:gameid,vote:vote},success:function(txt)
	{
		switch(txt)
		{
			case 'ok':
				$('#gamevotearea').hide('slow');
				$('#gamevoteresult').slideDown('slow');
				break;
			case 'exists':
				alert('Już dziś głosowałeś/aś na tą grę.\nDopuszczalny 1 głos na dzień.');
				break;
			default:
				alert(errRefresh);
				break;
		}
	}});
}

function contentVote( contentid, vote )
{
	if(contentVoted)return;
	contentVoted=true;
	$.ajax({type:'POST',url:domainURL+'dodatki-rate/',data:{contentid:contentid,vote:vote},success:function(txt)
	{
		switch(txt)
		{
			case 'ok':
				$('.boxGameOnline .boxContent .rating').text( 'Głos oddany' );
				break;
			case 'exists':
				alert('Już dziś głosowałeś/aś na tą grę.\nDopuszczalny 1 głos na dzień.');
				break;
			default:
				alert('Już dziś głosowałeś/aś na tą grę.\nDopuszczalny 1 głos na dzień.');
				break;
		}
	}});
}

function addComment(id,type)
{
	if(commentSent || !isCommentValid())return;
	commentSent=true;
	var commentTitle = $('#commentTitle').attr('value');
	var commentText = $('#commentText').attr('value');

	$.ajax({type:'POST',url:domainURL+'gry-comment/',data:{id:id,type:type,author:commentTitle,text:commentText},success:function(txt)
	{
		switch(txt)
		{
			case 'ok':
				$('#commentArea').hide('slow');
				$('#commentAreaResult').slideDown('slow');
				break;
			case 'exists':
				$('#commentArea').html('Już dziś dodałeś/aś tutaj komentarz.\nDopuszczalny 1 komentarz na dzień.');
				break;
			default:
				alert(errRefresh);
				break;
		}
	}});

	///return false;
}

function isCommentValid()
{
	$('#commentTitleErr').text('');
	$('#commentTextErr').text('');
	$('#commentErr').text('');

	var isValid = true;

	var commentTitle = $('#commentTitle').attr('value');
	var commentText = $('#commentText').attr('value');

	if (!commentTitle || commentTitle.length < 2 || commentTitle == authorDefault)
	{
		$('#commentTitleErr').text('Podaj autora');
		isValid = false;
		if (commentTitle == authorDefault)
			$('#commentTitle').attr('value', '');
	}

	if (!commentText || commentText.length < 3 || commentText == commentDefault)
	{
		$('#commentTextErr').text('Komentarz musi zawierać co najmniej 3 znaki');
		isValid = false;
		if (commentText == commentDefault)
			$('#commentText').attr('value', '');
	}

	return isValid;
}

function authorBlur()
{
	if ($('#commentTitle').attr('value') == '')
		$('#commentTitle').attr('value', authorDefault);
}

function authorClick()
{
	if ($('#commentTitle').attr('value') == authorDefault)
		$('#commentTitle').attr('value','');
}

function commentClick()
{
	if ($('#commentText').attr('value') == commentDefault)
		$('#commentText').attr('value','');
}

function onlineGameVote(gameid,vote)
{
	if(onlineGameVoted)
		return;
	onlineGameVoted=true;
	// Get current rating and votes count from page
	fRanking = parseFloat( $( '.rate' ).text() );
	iVotes = parseInt( $( '#voteCount' ).text() );
	fRating = Math.round( ( vote + ( fRanking * iVotes ) ) / ( iVotes + 1 ) * 10 ) / 10;

	$.ajax({type:'POST',url:domainURL+'gryonline-rate/',data:{gameid:gameid,vote:vote},success:function(txt)
	{
		switch(txt)
		{
			case 'ok':
				$( '#voteCount' ).text( parseInt( iVotes + 1 ) );
				$( '.rate' ).text( fRating );
				$( '.votes' ).after( '<p>Dziękujemy za Twój głos!</p>' );
				break;
			case 'exists':
				alert('Już dziś głosowałeś/aś na tą grę.\nDopuszczalny 1 głos na dzień.');
				break;
			default:
				alert(errRefresh);
				break;
		}
	}});
}

function collectGame( iGameId, iUserId ) {
	if( bGameCollected )
		return;
	bGameCollected=true;

	if( parseInt( iGameId ) > 0 && parseInt( iUserId ) > 0 ) {
		$.ajax({
			type:'POST',
			url:domainURL+'gry-collect/',
			data:{id_game:iGameId,id_user:iUserId},
			success:function(txt) {
				switch(txt)
				{
					case 'ok':

						break;
					case 'exists':
						alert( 'Już masz tę grę w swojej kolekcji!' );
						break;
					case 'not_logged_in':
						alert( 'Aby dodać grę do swojej kolekcji, musisz się zalogować!' );
						break;
					default:
						alert( errRefresh );
						break;
				}
			}
		});
	} else {
		return false;
	}
}

function url(u,a,t)
{
	var title='';
	if (t.length > 0)
		title='title="'+t+'" '
	document.write('<a '+title+'href="'+u+'">'+a+'</a>');
}

/**
 * Callback z patrz.pl po uploadzie pliku
 **/
function patrz_upload_complete( json ) {
	var data = eval( '(' + json + ')' );
	$( '#high_id' ).val( parseInt( data.high_id ) );
	$( '#low_id' ).val( parseInt( data.low_id ) );
}