$(document).ready(function() {

$("input[name=birthdate]").mask("99-99-9999");
});

var registerFormInputsClickable = false;
var commentFormInputsClickable = false;

function checkAnswer(string) {
  string = string.split("<answer>");
  string = string[1].split("</answer>");
  string = string[0];
  return string;
}

/*
 * Funkcja sprawdzająca poprawność formularz komentarza
 */
function sendCommentForm() {
    if(commentFormInputsClickable == false) {
        makeFormInputsClickable('#commentsForm');
        commentFormInputsClickable = true;
    }    
    var error = false;
    if(!checkCommentNick()) {
        error = true;
    }
   
    if(!checkCommentTxt()) {
        error = true;
    }
    /*
     * Wysyłanie żądania dodania news-a
     */
    if(!error) {
        $('.commentsFormContainer').hide('fast');
        $('.commentsFormContainerInfo').show('fast').find('p').html('Trwa dodawanie komentarza!<br />Proszę czekać!');
        $('#commentsForm').ajaxSubmit(function(msg) {
            if(msg.indexOf('true') > -1) {
                top.location.reload();
                //$('.commentsFormContainer').hide('fast');
                //$('.commentsFormContainerInfo').show('fast').find('p').html('Komenta!');
            }
            else {
                $('.commentsFormContainer').hide('fast');
                $('.commentsFormContainerInfo').show('fast').find('p').html('Wystąpił błąd podczas dodawania komentarza!');
            }
        });
    }
    
}

/*
 * Funkcja sprawdzająca poprawność wpisanego nicka
 * w formularzu dodawania komentarza
 */
function checkCommentNick(inputSelector, errorSelector) {   
    if(!inputSelector) {
        inputSelector = 'input[name=nick]';
    }
    if(!errorSelector) {
        errorSelector = '.errorNick';
    }
    var value = $(inputSelector).val();   
    if(($(inputSelector).attr('jqRequired') == '1') && value.length == 0) {
        setErrorInput(errorSelector, 'Musisz podać swój nick!');
        return false;
    }
    if(value.length > 50) {
        setErrorInput(errorSelector, 'Podany przez Ciebie nick jest zbyt długi. Maksymalnie możesz wprowadzić 50 znaków!');
        return false;
    }
    return true;
}

/*
 * Funkcja sprawdzająca poprawność wpisanego komentarza
 * w formularzu dodawania komentarza
 */
function checkCommentTxt(inputSelector, errorSelector) {
    if(!inputSelector) {
        inputSelector = 'textarea[name=txt]';
    }
    if(!errorSelector) {
        errorSelector = '.errorTxt';
    }
    var value = $(inputSelector).val();
    if(($(inputSelector).attr('jqRequired') == '1') && value.length == 0) {
        setErrorInput(errorSelector, 'Komentarz nie został wpisany!');
        return false;
    }
    return true;
}

/*
 * Funkcja sprawdzająca formularz rejestracyjny
 */
function sendRegisterForm() {
    if(registerFormInputsClickable == false) {
        makeFormInputsClickable('#registerForm');
        registerFormInputsClickable = true;
    }
    var error = false;
    
    if(!checkLogin()) {
        error = true;
    }
    
    if(!checkPass()) {
        error = true;
    }
   
    if(!checkMail()) {
        error = true;
    }

    if(!checkName()) {
        error = true;
    }
    
    if(!checkSurname()) {
        error = true;
    }

    if(!checkGg()) {
        error = true;
    }
   
    if(!checkCity()) {
        error = true;
    }

    if(!checkSkype()) {
        error = true;
    }

    if(!checkAboutme()) {
        error = true;
    }
    
    if(!error)
   	$('#registerForm').ajaxSubmit(function(msg) {

	    if(msg.indexOf('true') != -1)
	    {
	      $('#registerTable').hide();
	      $('#formOk').show();

	    }
	    else
	    {
	    	$('#formError').html(msg);
	    	$('#formError').show();
	    }
  	});
    
    return false;
}

function sendEditForm() {
    if(registerFormInputsClickable == false) {
        makeFormInputsClickable('#registerForm');
        registerFormInputsClickable = true;
    }
    var error = false;
    

    if($('input[name=pass]').val().length > 0)
    if(!checkPass()) {
        error = true;
    }
   
    if(!checkMail()) {
        error = true;
    }

    if(!checkName()) {
        error = true;
    }
    
    if(!checkSurname()) {
        error = true;
    }

    if(!checkGg()) {
        error = true;
    }
   
    if(!checkCity()) {
        error = true;
    }

    if(!checkSkype()) {
        error = true;
    }

    if(!checkAboutme()) {
        error = true;
    }
    
    if(!error)
   	$('#registerForm').ajaxSubmit(function(msg) {

	    if(msg.indexOf('true') != -1)
	    {
	      $('#registerTable').hide();
	      $('#formOk').show();

	    }
	    else
	    {
	    	$('#formError').html(msg);
	    	$('#formError').show();
	    }
  	});
    
    return false;
}

/*
 * Funkcja sprawdza poprawność informacji o sobie!
 */
function checkAboutme(inputSelector, errorSelector) {
    if(!inputSelector) {
        inputSelector = 'textarea[name=aboutme]';
    }
    if(!errorSelector) {
        errorSelector = '.errorAboutme';
    }
    var value = $(inputSelector).val();
    if(($(inputSelector).attr('jqRequired') == '1') && value.length == 0) {
        setErrorInput(errorSelector, 'Musisz podać informację o sobie!');
        return false;
    }
    if(value.length > 300) {
        setErrorInput(errorSelector, 'Podane informacje o sobie są zbyt długie. Maksymalnie możesz wprowadzić 300 znaków!');
        return false;
    }
    return true;
}

/*
 * Funkcja sprawdza poprawność miasta
 */
function checkCity(inputSelector, errorSelector) {
    if(!inputSelector) {
        inputSelector = 'input[name=city]';
    }
    if(!errorSelector) {
        errorSelector = '.errorCity';
    }
    var value = $(inputSelector).val();
    if(($(inputSelector).attr('jqRequired') == '1') && value.length == 0) {
        setErrorInput(errorSelector, 'Musisz podać miasto w którym mieszkasz!');
        return false;
    }
    if(value.length > 70) {
        setErrorInput(errorSelector, 'Podana nazwa miasta jest zbyt długa! Maksymalna długość nazwy miasta to 70 znaków!');
        return false;
    }
    return true;
}

/*
 * Funkcja sprawdza poprawność miasta
 */
function checkSkype(inputSelector, errorSelector) {
    if(!inputSelector) {
        inputSelector = 'input[name=skype]';
    }
    if(!errorSelector) {
        errorSelector = '.errorSkype';
    }
    var value = $(inputSelector).val();
    if(($(inputSelector).attr('jqRequired') == '1') && value.length == 0) {
        setErrorInput(errorSelector, 'Musisz podać swój identyfikator Skype!');
        return false;
    }
    if(value.length > 70) {
        setErrorInput(errorSelector, 'Podana nazwa Skype jest zbyt długa! Maksymalna długość nazwy Skype to 70 znaków!');
        return false;
    }
    return true;
}

/*
 * Funkcja sprawdza poprawność nazwiska
 */
function checkSurname(inputSelector, errorSelector) {
    if(!inputSelector) {
        inputSelector = 'input[name=surname]';
    }
    if(!errorSelector) {
        errorSelector = '.errorSurname';
    }
    var value = $(inputSelector).val();
    if(($(inputSelector).attr('jqRequired') == '1') && value.length == 0) {
        setErrorInput(errorSelector, 'Musisz podać swoje nazwisko!');
        return false;
    }
    if(value.length > 50) {
        setErrorInput(errorSelector, 'Podane nazwisko jest zbyt długie! Maksymalna długość nazwiska to 50 znaków!');
        return false;
    }
    return true;
}

/*
 * Funkcja sprawdza poprawność imienia
 */
function checkName(inputSelector, errorSelector) {
    if(!inputSelector) {
        inputSelector = 'input[name=name]';
    }
    if(!errorSelector) {
        errorSelector = '.errorName';
    }
    var value = $(inputSelector).val();
    if(($(inputSelector).attr('jqRequired') == '1') && value.length == 0) {
        setErrorInput(errorSelector, 'Musisz podać swoje imię!');
        return false;
    }
    if(value.length > 50) {
        setErrorInput(errorSelector, 'Podane imię jest zbyt długie! Maksymalna długość imienia to 50 znaków!');
        return false;
    }
    return true;
}

/*
 * Funkcja ustawia zdarzenie click() na wszystkich polach formularza rejestracji
 */
function makeFormInputsClickable(formSelector) {
    $(formSelector).find('input').click(function() {
        $(this).parent().find('.formError').hide();
    });
    $(formSelector).find('textarea').click(function() {
        $(this).parent().find('.formError').hide();
    });
    $(formSelector).find('select').click(function() {
        $(this).parent().find('.formError').hide();
    });
    return true;
}

/*
 * Funkcja sprawdzająca poprawność składniową numer GG
 */
function checkGg(inputSelector, errorSelector) {
    if(!inputSelector) {
        inputSelector = 'input[name=gg]';
    }
    if(!errorSelector) {
        errorSelector = '.errorGg';
    }
    var ggValue = $(inputSelector).val();
    if(($(inputSelector).attr('jqRequired') == '1') || (ggValue.length > 0)) {
        if(!isInt(ggValue)) {
            setErrorInput(errorSelector, 'Podany przez Ciebie numer GG jest nieprawidłowy!');
            return false;
        }
    }
    return true;
}

/*
 * Funkcja sprawdzająca poprawność składniową adresu e-mail
 */
function checkMail(inputSelector, errorSelector) {
    if(!inputSelector) {
        inputSelector = 'input[name=email]';
    }
    if(!errorSelector) {
        errorSelector = '.errorMail';
    }
    var emailValue = $(inputSelector).val();
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (filter.test(emailValue)) {
        return true;
    }
    else {
        setErrorInput(errorSelector, 'Podany przez Ciebie adres email ma nieprawidłowy format!');
        return false;
    }
}

/*
 * Funkcja sprawdzająca poprawność loginu
 */
function checkLogin(inputSelector, errorSelector) {    
    if(!inputSelector) {
        inputSelector = 'input[name=login]';
    }
    if(!errorSelector) {
        errorSelector = '.errorLogin';
    }
    var loginValue = $(inputSelector).val();
    if(loginValue.length < 6) {
        setErrorInput(errorSelector, 'Twój login jest zbyt krótki! Login powinien składać się z minimum 6 a maksimum 12 znaków. Dozwolone są tylko litery i cyfry!');
        return false;
    }
    if(loginValue.length > 12) {
        setErrorInput(errorSelector, 'Twój login jest zbyt długi! Login powinien składać się z minimum 6 a maksimum 12 znaków. Dozwolone są tylko litery i cyfry!');
        return false;
    }
    if(!isAlphanumeric(loginValue)) {
        setErrorInput(errorSelector, 'Twój login zawiera niedozwolone znaki! Dozwolone są tylko litery i cyfry!');
        return false;
    }
    return true;
}

/*
 * Funkcja sprawdzająca poprawność hasła
 */
function checkPass(inputSelector, inputSelector2, errorSelector) {
    if(!inputSelector) {
        inputSelector = 'input[name=pass]';
    }
    if(!inputSelector2) {
        inputSelector2 = 'input[name=repass]';
    }
    if(!errorSelector) {
        errorSelector = '.errorPass';
    }
    var passValue = $(inputSelector).val();
    var passValue2 = $(inputSelector2).val();
    if(passValue.length < 6) {
        setErrorInput(errorSelector, 'Twoje hasło jest zbyt krótkie. Hasło powinno składać się z minimum 6 znaków!');
        return false;
    }
    if(passValue != passValue2) {
        setErrorInput(errorSelector, 'Podane przez Ciebie hasła są różne. System rozróżnia wielkość liter!!');
        return false;
    }
    return true;
}

/*
 * Funkcja wyświetla informację o błędzie w formularzu w odpowiednim selektorze
 */
function setErrorInput(errorSelector, txt) {
    $(errorSelector).html(txt).show();
}

/*
 * Funkcja sprawdza czy string zawiera tylko znaki alfanumeryczne
 */
function isAlphanumeric(txt){
    var alphaExp = /^[0-9a-zA-Z]+$/;
    if(txt.match(alphaExp)){
        return true;
    }
    else {
        return false;
    }
}

/*
 * Funkcja sprawdza czy string jest wartością numerczną
 */
function isInt(txt) {
    if (isNaN(parseInt(txt))) {
        return false;
    }
    else {
        return true;
    }
}

// Sprawdzanie ankiet  
function pollVote(id) {  
    var type = '';
    var error = 0;
    if($('#'+id).find('input[type=radio]').length > 0)
    { 
        if($('#'+id).find('input[type=radio]:checked').length == 0)
          error = 1;
    }    
    else if($('#'+id).find('input[type=checkbox]').length > 0) 
    {
        if($('#'+id).find('input[type=checkbox]:checked').length == 0)
          error = 1;
    }
    else if($('#'+id).find('select').length > 0) {
        if($('#'+id).find('select').val() == -1)
          error = 1;
    }
    if(error)
      $('#'+id).find('p.pollError').show();
    else  
      $('#'+id).submit();
    
    
}

  // Głosowanie na graczy
  function enlabeVoting(calendarId)
  {
    $('#oceny input[type=radio]').click( function () {
              playerId = $(this).attr('name');
              vote = $(this).val();              
      $.ajax({
        type: 'POST',
        url: 'ajax/responses.php?what=vote',
        data: 'calendarId='+calendarId+'&playerId='+playerId+'&vote='+vote,
        success: function(msg){
         msg = checkAnswer(msg);
         if(msg.indexOf('false') != -1)           
          alert('Błąd');         
         else
         {
            $('#vote_'+playerId).html('Ocena: '+ msg);
         }
        }
      });
    });
  }