﻿$(document).ready(function() {
	//zakladki
	$('.zakladki > a').attr('onclick','return false');

	$('.zakladki > a').click(function(){
		$(this).addClass('temp');
		var i=1;
		$(this).parent().children('a').each(function(){
			if ($(this).hasClass('temp')) {
				$(this).removeClass('temp');
				return false;		
			}
			i++;
		});
		if(!$(this).hasClass('selected')){
			$(this).siblings('a').removeClass('selected');
			$(this).addClass('selected');
			$(this).parent().siblings('div').fadeOut('slow').animate({opacity: 1.0}, 600);
			$(this).parent().parent().children('div:eq('+i+')').fadeIn('slow');
		}
		return false;
	});
		
	//i - wartosc poczatkowa dla slidera
	var i=0;
	$('#slideShow img:eq('+i+')').addClass('active');
	$('#slideHeaders h1:eq('+i+')').addClass('active');
	$('#slideParagraph div:eq('+i+')').addClass('active');
	$('#startHead ul.pagination li:eq('+i+')').addClass('active');
	
	var timer = setInterval( "slideSwitch("+i+")", 10000 );
	$('.pagination > li').click(function(){
		clearInterval(timer);
		timer = setInterval("slideSwitch("+i+")",15000 );
		$(this).addClass('temp');
		var j=0;
		$(this).parent().children('li').each(function(){
			if ($(this).hasClass('temp')) {
				$(this).removeClass('temp');
				return false;		
			}
			j++;
		});
		
		$(this).siblings().removeClass('active');
		$(this).addClass('active');
		$('#slideShow img').siblings().removeClass('active');
		$('#slideShow img:eq('+j+')').addClass('active');
		$('#slideHeaders h1').siblings().removeClass('active');
		$('#slideHeaders h1:eq('+j+')').addClass('active');
		$('#slideParagraph div').siblings().removeClass('active');
		$('#slideParagraph div:eq('+j+')').addClass('active');
		
	});
	
	//FANCYBOX
	
	$('a.gallery').fancybox();
	$('a.image').fancybox();
	
	//FORMS
	
	/*<comments>*/
	$('.commentsHeader a').click(function(){
		$('#addComment').slideToggle('slow');
	});
	var addCommentForm = "#addCommentForm"; //add comment form
	$(addCommentForm).submit(function(){
		$(addCommentForm+" div.ajaxResponse").html('<div class="ajax-loader"></div>')
		var url = $(this).attr("action");
		var postID = $(addCommentForm+" input[name='postID']").val();		
		var comment = $(addCommentForm+" textarea[name='comment']").val();
		var type = $(addCommentForm+" input[name='type']").val();
		if(type=="opinion"){
			var rate = 0;
		} else {
			var rate = $(addCommentForm+" input[name='rate']:checked").val();
		}
		var dataString = 'postID='+postID+'&rate='+rate+'&comment='+comment+'&type='+type;
		$.ajax({
			type: "POST",  
			url: url,
			dataType: "json",
			data: dataString,
			success: function(data){
				if(data.added===true){
					$(addCommentForm).slideUp(function(){
						$(this).after("<div class='success'>Komenatarz został dodany, <a href='javascript:location.reload(true)'>odśwież stronę</a> żeby go zobaczyć.</div>").remove();
					});
					return true
				}else{
					if(data.comment===false){
						$(addCommentForm+" div.ajaxResponse").html("Komentarza musi zawierać od 10 do 400 znaków.<br />");
						return false;
					}
					if(data.timeout>0){
						$(addCommentForm+" div.ajaxResponse").html("Komentarz można dodać co 5min.<br />");
						return false;
					}
					if(data.rate===false){
						$(addCommentForm+" div.ajaxResponse").html("Oceń artykuł.<br />");
						return false;
					}
					alert('Błąd połączenia');
					return false;
				}
			},
			error: function(){
				alert("Błąd połączenia!");
			}
		}); 	
 		return false;
	});
	$("div.comment a.report").click(function(){
 		var comment = this;
		var url = $(this).attr("href");
		$.ajax({
			type: "GET",  
			url: url,
			dataType: "json",
			success: function(data){
				if(data.reported){
					$(comment).parents("div.comment").slideUp(function(){
						$(this).after("<div class='comment'><p>Komentarz został zgłoszony do moderacji.</p></div>").remove();
					});
				} else {
					alert("Komentarz nie został zgłoszony.");
				}
			},
			error: function(){
				alert("Błąd połączenie!");
			}
		});
 		return false;
 	});
	/*</comments>*/
	
	/*<registration>*/
	$("#registrationForm").submit(function(){
		$("#registrationForm div.ajaxResponse").html('<div class="ajax-loader"></div>')
		var url = $(this).attr("action");
		var username = $("#registrationForm input[name='username']").val();
		var mail = $("#registrationForm input[name='mail']").val();
		var password = $("#registrationForm input[name='password']").val();
		var retypePassword = $("#registrationForm input[name='retypePassword']").val();
		var sex = $("#registrationForm input[name='sex']:checked").val();
		var city = $("#registrationForm input[name='city']").val();
		var year = $("#registrationForm input[name='year']").val();
		var state = $("#registrationForm select[name='state']").val();
		var rules = $("#registrationForm input[name='rules']:checked").val();
		var dataString = 'username='+username+'&mail='+mail+'&password='+password+'&retypePassword='+retypePassword+'&sex='+sex+'&city='+city+'&year='+year+'&state='+state+'&rules='+rules;
		$.ajax({
			type: "POST",  
			url: url,
			dataType: "json",
			data: dataString,
			success: function(data){
				if(data.registered===true){
					$("#registrationForm div.ajaxResponse").html("Zostałeś zarejestowany, pozostałe instrukcje zostały wysłane na podany adres e-mail.");
					$("#registrationForm input[type='text']").val("");
					$("#registrationForm input[type='password']").val("");
					$("#registrationForm input[type='radio']").removeAttr("checked");
					$("#registrationForm input[type='checkbox']").removeAttr("checked");
					$("#registrationForm select option:selected").removeAttr("selected");
				}else{
					if(data.all===true){
						if(data.username===false){
							$("#registrationForm input[name='username']").next(".error").text("Nazwa użytkownika powinna mieć od "+data.usernameMin+" do "+data.usernameMax+" znaków.");
						}else if(data.username==="exists"){
							$("#registrationForm input[name='username']").next(".error").text("Użytkownik o podanej nazwie już istnieje.");
						}else{
							$("#registrationForm input[name='username']").next(".error").empty();
						}
						if(data.mail===false){
							$("#registrationForm input[name='mail']").next(".error").text("Nie podano adresu e-mail lub adres ten jest nieprawidłowy.");
						}else if(data.mail==="exists"){
							$("#registrationForm input[name='mail']").next(".error").text("Podany adres e-mail jest powiązany z już istniejącym kontem.");
						}else{
							$("#registrationForm input[name='mail']").next(".error").empty();
						}
						if(data.password===false){
							$("#registrationForm input[name='password']").next(".error").text("Hasło powinno mieć od "+data.passwordMin+" do "+data.passwordMax+" znaków.");
						}else if(data.retypePassword===false){
							$("#registrationForm input[name='retypePassword']").next(".error").text("Hasła nie są jednakowe.");
						}else{
							$("#registrationForm input[name='password']").next(".error").empty();
							$("#registrationForm input[name='retypePassword']").next(".error").empty();
						}
						if(data.sex===false){
							$("#sexError").text("Wybierz płeć.");
						}else{
							$("#sexError").empty();
						}
						if(data.city===false){
							$("#registrationForm input[name='city']").next(".error").text("Podaj miasto.");
						}else{
							$("#registrationForm input[name='city']").next(".error").empty();
						}
						if(data.year===false){
							$("#registrationForm input[name='year']").next(".error").text("Podaj date swoich urodzin.");
						}else{
							$("#registrationForm input[name='year']").next(".error").empty();
						}
						if(data.state===false){
							$("#registrationForm select[name='state']").next(".error").text("Podaj województwo.");
						}else{
							$("#registrationForm select[name='state']").next(".error").empty();
						}
						if(data.rules===false){
							$("#rulesError").text("Aby dokonać rejestracji musisz zaakceptować regulamin.");
						}else{
							$("#rulesError").empty();
						}
						$("#registrationForm div.ajaxResponse div.ajax-loader").remove();
					}else{
						if(data.mailException===true){
							$("#registrationForm input[name='mail']").next(".error").text("Nie można było wysłać maila na podany adres.");
						}else{
							alert("undefined error");
						}
					}
				}
			},
			error: function(){
				alert("Błąd połączenie!");
			}
		});
		return false;
	});
	/*</registration>*/
	
	/*<passwordreset>*/
	$("#passwordresetForm").submit(function(){
		$("#passwordresetForm div.ajaxResponse").html('<div class="ajax-loader"></div>')
		var url = $(this).attr("action");
 		var mail = $("#passwordresetForm input[name='mail']").val();
 		var dataString = 'mail='+mail;
		$.ajax({
			type: "POST",  
			url: url,
			dataType: "html",
			data: dataString,
			success: function(data){
				$("#passwordresetForm div.ajaxResponse").html(data);
			},
			error: function(){
				alert("Błąd połączenia!");
			}
		});
		return false;
	});
	/*</passwordreset>*/
	
	/*<changepass>*/
	$("#changepassForm").submit(function(){
		$("#changepassForm div.ajaxResponse").html('<div class="ajax-loader"></div>');
		var url = $(this).attr("action");
 		var passwordOld = $("#changepassForm input[name='passwordOld']").val();
		var password = $("#changepassForm input[name='password']").val();
		var passwordRetype = $("#changepassForm input[name='passwordRetype']").val();
 		var dataString = 'passwordOld='+passwordOld+'&password='+password+'&passwordRetype='+passwordRetype;
		$.ajax({
			type: "POST",  
			url: url,
			dataType: "html",
			data: dataString,
			success: function(data){
				$("#changepassForm div.ajaxResponse").html(data);
			},
			error: function(){
				alert("Błąd połączenia!");
			}
		});
		return false;
	});
	/*</changepass>*/
	
	/*<profildata>*/
	$("#profildataForm").submit(function(){
		var url = $(this).attr("action");
 		var username = $("#profildataForm input[name='username']").val();
		var mail = $("#profildataForm input[name='mail']").val();
		var city = $("#profildataForm input[name='city']").val();
		var state = $("#profildataForm select[name='state'] option:selected").val();
		var newsletter = $("#profildataForm input[name='newsletter']:checked").val();
		//var year = $("#profildataForm input[name='year']").val();
		//var name = $("#profildataForm input[name='name']").val();
 		var dataString = 'username='+username+'&mail='+mail+'&city='+city+'&state='+state+'&newsletter='+newsletter;
		$.ajax({
			type: "POST",  
			url: url,
			dataType: "html",
			data: dataString,
			success: function(data){
				$("#profildataForm div.ajaxResponse").html(data);
			},
			error: function(){
				alert("Błąd połączenia!");
			}
		});
		return false;
	});
	/*</profildata>*/
	
	/**/
	$("#ankieta form").submit(function(){
		form = this;
		$(form).find('div.ajaxResponse').html('<div class="ajax-loader"></div>')
		var url = $(form).attr("action");
 		var question = $(form).find("input[name='question']").val();
		var answer = $(form).find("input[name='answer']:checked").val()
 		var dataString = 'question='+question+'&answer='+answer;
		$.ajax({
			type: "POST",
			url: url,
			dataType: "json",
			data: dataString,
			success: function(data){
				if(data.added){
					$(form).find('div.ajaxResponse').html('Dziękujemy na oddanie głosu!');
					$(form).find("input[type='submit']").hide();
					$(form).find('div.ankieta').html('<div class="ajax-loader"></div>');					
					$.ajax({
						type: "POST",  
						url: "/request/ankietaodpowiedzi/id/"+question,
						dataType: "json",
						success: function(data){
							var count = new Array();
							var label = new Array();
							var votes = 0;
							for(var i = 0;data.length>i;i++){
								votes += ~~(1 * data[i].count);
							}
							$(form).find('div.ankieta').empty();
							$(form).find('div.ankieta').append("<ul class='results'></ul>");
							var nr = 97;
							for(var i = 0;data.length>i;i++){
								var percentage = Math.round(data[i].count/votes*100)
								$(form).find('div.ankieta ul.results').append("<li>"+data[i].label+" (<span class='perc'>"+percentage+".00%</span>)</li>");
								count[i] = data[i].count;
								label[i] = String.fromCharCode(nr);
								nr++;
							}
							$(form).find('div.ankieta').append('<img src="http://chart.apis.google.com/chart?chs=250x100&cht=p3&chd=t:'+count.join(',')+'&chl='+label.join('|')+'&chf=bg,s,51a20b" alt="Google Chart" />');
						}
					});
					return true;
				}
				if(data.used){
					$(form).find('div.ajaxResponse').html('<span class="error">Brałeś już udział w tej ankiecie.</span>');
					return false;
				}
				if(data.error){
					$(form).find('div.ajaxResponse').html('<span class="error">Wystąpił błąd.</span>');
					return false;
				}
				if(!data.question){
					$(form).find('div.ajaxResponse').html('<span class="error">Nie wybrano żadnej opcji.</span>');
					return false;
				}
			},
			error: function(data){
				$(form).find('div.ajaxResponse').html('<span class="error">Aby wziąć udział w sondzie musisz sie <a class="login" href="#login">zalogować</a>.</span>')
			}
			});
		return false;
	});
});

function slideSwitch(i) {
    var $activeIMG = $('#slideShow img.active');
	if ( $activeIMG.length == 0 ) $activeIMG = $('#slideShow img:eq('+i+')');
    var $nextIMG =  $activeIMG.next().length ? $activeIMG.next()
        : $('#slideShow img:first');
		
	var $activeHeader = $('#slideHeaders h1.active');
	if ( $activeHeader.length == 0 ) $activeHeader = $('#slideShow img:eq('+i+')');
	var $nextHeader =  $activeHeader.next().length ? $activeHeader.next()
        : $('#slideHeaders h1:first');
		
	var $activeParagraph = $('#slideParagraph div.active');
	if ( $activeParagraph.length == 0 ) $activeParagraph = $('#slideShow img:eq('+i+')');
	var $nextParagraph =  $activeParagraph.next().length ? $activeParagraph.next()
        : $('#slideParagraph div:first');

	var $activePagination = $('#startHead ul.pagination li.active');
	if ( $activePagination.length == 0 ) $activePagination = $('#slideShow img::eq('+i+')');
	var $nextPagination =  $activePagination.next().length ? $activePagination.next()
        : $('#startHead ul.pagination li:first');
		
    $activeIMG.addClass('last-active');	
	$activeHeader.removeClass('active');
	$activeParagraph.removeClass('active');
	$activePagination.removeClass('active');
	
    $nextIMG.css({opacity: 0.0})
        .addClass('active')
        .animate({opacity: 1.0}, 1000, function() {
            $activeIMG.removeClass('active last-active');
        });
		
	$nextHeader.css({opacity: 0.0})
		.addClass('active')
        .animate({opacity: 1.0}, 1200);
		
	$nextParagraph.css({opacity: 0.0})
		.addClass('active')
        .animate({opacity: 1.0}, 1200);
		
	$nextPagination.addClass('active');
}

/*
function InitAjaxPost(sField)
{
  var oSubmit = $('#' + sField);
  oSubmit.attr('disabled', false);
  
  oSubmit.click(function() {
    $(this).attr('disabled', true);
    var oForm = $(this).parents('form:first');
    var sUrl; if(!(sUrl = oForm.attr('action')))
        sUrl = location.href;
    
    $.post(sUrl, oForm.serialize(), function(sResponse) {
      $('#root').html(sResponse);
      InitAjaxPost(sField);
    });
    return false;
  });
}

function showRequest(formData, jqForm, options) { 
    var queryString = $.param(formData); 
    return true; 
} 
 
function showResponse(responseText, statusText)  {} 



    var options = { 
        target:        '#output',   // target element(s) to be updated with server response 
        beforeSubmit:  showRequest,  // pre-submit callback 
        success:       showResponse,  // post-submit callback 
 
        // other available options: 
        //url:       url         // override for form's 'action' attribute 
        //type:      type        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
        clearForm: true        // clear all form fields after successful submit 
        //resetForm: true        // reset the form after successful submit 
 
        // $.ajax options can be used here too, for example: 
        //timeout:   3000 
    }; 
	$('#formularz').submit(function() {
		var output = '#response';
        $(this).ajaxSubmit({
			beforeSubmit: function() { $(output).html('<div class="ajax-loader"></div>')},
			target: output
		}); 
        return false; 
    });
    $('#addCommentForm').submit(function() {
		var output = '#ajaxRespond';
        $(this).ajaxSubmit({
			beforeSubmit: function() { $(output).html('<div class="ajax-loader"></div>')},
			target: output
		}); 
        return false; 
    });
*/