$(document).ready(function(){
    
    if(!$('#contestQuestionsPromoted').hasClass('locked') && !$('#contestQuestions').hasClass('locked')) {
	    $('#contestForm').bind('submit', Contest.send);
    	$('.contestQuestion').bind('click', Contest.markChecked);
    	$('#fMail').bind('focus blur', Contest.setEmail);
		Contest.defEmail = $('#fMail').val();
	} 
});

var Contest = {
    
    defEmail:	null,
    formData:   {},
    formError:  {},
    
    setEmail: function(e) {
    	
    	if(e.type == 'focus' && $(this).val() == Contest.defEmail) {
    		$(this).val('');
    	}
    	
    	if(e.type == 'blur' && $(this).val() == '') {
    		$(this).val(Contest.defEmail);
    	}
    },
    
    markChecked: function(e) {
    	var answerId = $(this).attr('id').split('-').pop();
    	$('.contestQuestion').removeClass('checked');
    	$('#answer-label-'+answerId).addClass('checked');
    	$('.contestQuestion input').attr('checked', false);
    	$('#answer-'+answerId).attr('checked', true);
    	//return false;
    },
    
    send: function(e) {
                
        Contest.formData = Contest._parseFormData();

        if(false === Contest._validateFormData(Contest.formData)) {
            return false;
        }
        
        Contest.lock(true);
        $.ajax({
            type:       'POST',
            url:        Config.siteurl+'/wystawa-rasowych/answer',
            data:       Contest.formData,
            dataType:   'json',
            error:      Contest._processResponse,
            success:    Contest._processResponse
        });
        
        return false;
    },
    
    setMessage: function(mType, mText) {
 
        if($('#contestMessageContainer').length > 0) 
        {
        	$('#contestMessageContainer')
            .removeClass('errorInfoMsg')
            .removeClass('successInfoMsg')
            .addClass(mType+'InfoMsg')
            .html('<p>'+mText+'</p>')
            .show();
    	} else {
    		alert(mText);
    	}
    },
    
    _processResponse: function(data, status) {
       	Contest.lock(false);
        
        if(status == 'error') {
            return Contest.setMessage('error', 'Błąd połączenia');
        } else {
            return Contest.setMessage(data.status, data.text);
        }
    },
    
    lock: function(l) {
    	if(l) {
    		$('#contestForm').prepend('<div id="contestFormBlind"></div>');
    		if($('#contestMessageContainer').is(':visible') && $('#contestForm').parent('.rasowiCompetition').length == 0) {
    			$('#contestFormBlind').css('background-position', '550px 250px');
    		}
    		$('#contestFormBlind').show();
    	} else {
    		$('#contestFormBlind').remove();
    	}
    },
    
    _parseFormData: function() {
        var formData = $('#contestForm').serializeArray();
        var dt = {};
        
        for(var i = 0; i < formData.length; i++) {
            dt[formData[i].name] = formData[i].value; 
        }
        
        return dt;
    },
    
    _validateFormData: function(data) {
        try {
            if(!data.answer_id || data.answer_id == '') {
                throw 'Wybierz jedną odpowiedź';
            }
            if(!data.email || data.email == '' || data.email == 'wpisz swój e-mail') {
                throw 'Podaj adres e-mail';
            }
        }
        catch (e) {
            Contest.setMessage('error', e); 
            return false;         
        }
    }
    
};