$(document).ready(function() {
    /* validation, client-side */
    $("#userForm").validate({
        rules: {
    		usrzu_agree: {
        		required: true
    		},
    		usrzu_login: {
                required: true,
                login: true
            },
            usrzu_passwd: {
                required: true,
                minlength: 6
            },
            usrzu_passwd2: {
                required: true,
                equalTo: "#usrzu_passwd",
                minlength: 6
            },
            usrzu_default_phone: {
                required: false,
                phonePL: true
            },
            usrzu_email: {
                required: true,
                email: true
            },
            stp_id: {
            	required: false
            },
            sts_id: {
            	required: true
            },
            usrzu_gg: "digits",
            usrzu_sex: "required",
            usrzu_birth_date_year: {
                max: new Date().getFullYear()-1,
                min: new Date().getFullYear()-100
            },
            
            usrzu_about_me: {
            	maxlength: 1000
            },
            
            usrzu_like: {
            	maxlength: 450         	
            },
            
            usrzu_dont_like: {
            	maxlength: 450         	
            },
            
            usrzu_hobby: {
            	maxlength: 450         	
            },
            
            usrzu_films: {
            	maxlength: 450         	
            },
            
            usrzu_gadgets: {
            	maxlength: 450         	
            },
            
            usrzu_music: {
            	maxlength: 450         	
            },
            
            captcha_word: {
            	required: true
            }
        },
        messages: {
        	
        	usrzu_agree: {
            	required: " Musisz wyrazić zgodę, aby zakończyć rejestrację! "            	
        	},
        	usrzu_login: {
                required: "Musisz podać swój nick!",
                login: "Tylko litery, cyfry oraz 3 znaki - _."
            },
            usrzu_passwd: {
                required: "Musisz podać hasło!",
                minlength: "Hasło musi mieć minimum 6 znaków"
            },
            usrzu_passwd2: {
                required: "Musisz powtórzyć hasło!",
                minlength: "Hasło musi mieć minimum 6 znaków",
                equalTo: "Hasła muszą być takie same!"
            },
            
            usrzu_default_phone: {
                required: "Musisz podać numer telefonu!",
                phonePL: "Zły numer telefonu!"
            },
            usrzu_email: {
                required: "Musisz podać swój e-mail!",
                email: "Niepoprawny e-mail!"
            },
            usrzu_gg: "Tylko cyfry!",
            usrzu_sex: "Musisz wybrać płeć!",
            usrzu_birth_date_year: "Błędna data!",
            stp_id: "Wybierz swój program w ESCE!",
            sts_id: "Wybierz swoją ESKE!",
            usrzu_about_me: "Wprowadź maksymalnie 1000 znaków",
            usrzu_like: "Wprowadź maksymalnie 450 znaków",
            usrzu_dont_like: "Wprowadź maksymalnie 450 znaków",
            usrzu_hobby: "Wprowadź maksymalnie 450 znaków",
            usrzu_films: "Wprowadź maksymalnie 450 znaków",
            usrzu_gadgets: "Wprowadź maksymalnie 450 znaków",
            usrzu_music: "Wprowadź maksymalnie 450 znaków",
            captcha_word: "Wprowadź kod zabezpieczający"
            
        },
        errorPlacement: function(error, element) {
        	 if ( element.is(":radio") )
        	 {
        		 error.appendTo( element.parent().parent() );
        	 }
        	 else
        	 {
        		 element.after(error);
        	 }
        	 }, 
        submitHandler: function(form) {
            // clearing default valueas before actual submit
            $(form).find(".with_defaults").click();
            form.submit();
        }
    }); 
    
    
    /* char counter */
    $(".char_counter").keyup(function(e) {
        var maxLength = $(this).attr("maxlength");
        if(this.value.length > maxLength && e.charCode != 8) {
            return false;
        };
        var em     = $($(this).parent().get(0)).find("em:first")
        var pieces = em.text().split(" ");
        pieces[1]  = maxLength - this.value.length;
        em.text(pieces.join(" "));
    });
    
    /* default values for textareas */
    $(".with_defaults").click(function(){
        var default_value = $($(this).parent().get(0)).find("input#" + this.id + "_").val();
        if ($.trim($(this).val()) == default_value) {
            $(this).val("");
        }
    }).blur(function() {
        var default_value = $($(this).parent().get(0)).find("input#" + this.id + "_").val();
        if ($.trim($(this).val()) == "") {
            $(this).val(default_value);
        }
    }).focus(function() {
    	$(this).trigger("click");
    }).each(function(){
        $(this).trigger("blur");
    });
    
    /* dynamically load program list for selected station */
    $("#sts_id").change(function(){
    	var listContainer = $("#stp_id_container");
        var programSelect = $("#stp_id"); 
        var stationSelect = $(this);
        var selectedProgram  = $("#stp_id_");
        
        programSelect.html("");
        if( stationSelect.val() != "" ) {
	        $.get(BASE_URL + "indexajax.php?action=StationPrograms&start=list&station_id=" + stationSelect.val(), {}, function(xml){
	        	listContainer.show();
	        	programSelect.append("<option value=\"\"></option>");    
	            $("response > programs > program", xml).each(function(){
	                var program = $(this);
	                var isSelected = ( $("#stp_id_").val() == program.find("id").text() ) ?  ' SELECTED="SELECTED"' : '';
	                programSelect.append("<option value=\"" + program.find("id").text() + "\""+ isSelected +">" + program.find("name").text() + "</option>");    
	            });
	            
	            if(typeof selectedProgram !== "undefined") {
	                programSelect.val(selectedProgram.val());
	                selectedProgram.remove();
	            }
	        });
        } else {
        	listContainer.hide();
        }
        	
    }).change();
    
    /* reaguj na wybranie plci, ustaw odpowiedni avatar */
    $("input:radio[name='usrzu_sex']").click(function(){
		var avatarImg = $("#avatar");
		var container = $("#avatarContainer");
		var imgSrc = "";
		
		switch($(this).val()) {
			case "F" : imgSrc = CONTENT_PATH+'/content/page_components/pic/klub/avatar_female.jpg'; break;
			case "M" : imgSrc = CONTENT_PATH+'/content/page_components/pic/klub/avatar_male.jpg'; break;
		}
		if(imgSrc != "") {
			container.show();
			avatarImg.attr({src:imgSrc});
		} else {
			container.hide();
		}
	});
    
    
    /* user tags autocomplete */
    $("input.tag_autocomplete").autocomplete({
        serviceUrl: BASE_URL + "indexajax.php?action=UsrTagAutocomplete&start=complete",
        minChars: 2
    });
    
});

