jQuery(document).ready( function() {

    jQuery("#kraj").bind("change", function() {
            if ('pol' == this.value) {
                jQuery("#wojewodztwo").attr({disabled : false});
            } else {
                jQuery("#wojewodztwo").attr({disabled : true});
            }
        } 
    );
	/**
	 * Customize this function as you wish!
     * Add your validation below the email if.
     *
     * Change the behaviour of the plugin by editing this line:
     * 		jQuery(this).blur( function() { validateField(this) } );
     * To:
     *      jQuery(this).keyup( function() { validateField(this) } );
     *
     *  You can find it around the line number 64.
	 */
	function validateField(field) {
		var error = false;
		var hide  = false;
		
		// required fields
		if (jQuery(field).attr("class").indexOf("required") != -1) {
			if (!jQuery(field).val().length)
				error = true;
		}
		// login & pass fields
		if (jQuery(field).attr("class").indexOf("auth") != -1) {
			if (!/^[0-9a-zA-Z\.\-]*$/.test(jQuery(field).val()))
				error = true;
		}
		// length fields - 5
		if (jQuery(field).attr("class").indexOf("length5") != -1) {
			if (jQuery(field).val().length < 5)
				error = true;
		}
		// length fields - 6
		if (jQuery(field).attr("class").indexOf("length6") != -1) {
			if (jQuery(field).val().length < 6)
				error = true;
		}
		// numeric fields
		if (jQuery(field).attr("class").indexOf("numeric") != -1) {
			if (!/^[0-9]*$/.test(jQuery(field).val()))
				error = true;
		}
		// characters (letters)
		if (jQuery(field).attr("class").indexOf("character") != -1) {
			if (!/^[a-zA-ZęóąśłżźćńĘÓĄŚŁŻŹĆŃ ]*$/.test(jQuery(field).val()))
				error = true;
		}
		// emails
		if (jQuery(field).attr("class").indexOf("email") != -1) {
			if (!/^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/.test(jQuery(field).val()))
				error = true;
		}
		// ident
		if (jQuery(field).attr("class").indexOf("ident") != -1) {
			if (jQuery(field).val() != jQuery("#pass").val()) {
				error = true;
			    hide  = true; 
            }
		}
		
        // mail fields
        if (jQuery(field).attr("class").indexOf("email") != -1) {
            if (jQuery(field).parent().next().is('#email_td')) {
                if (jQuery("#reemail").val())
                    validateField(jQuery("#reemail"));
            }
                
            if (jQuery(field).parent().next().is('#reemail_td'))
                if (jQuery("#email").val() != jQuery("#reemail").val())
                    error = true;
        }
        
		if (error) {
			jQuery(field).addClass("error");
			jQuery(field).parent().prev().addClass('validate_header_error');
			jQuery(field).parent().next().show();
			jQuery(field).parent().next().css({color:'red'});
		} else {
			jQuery(field).removeClass("error");
			jQuery(field).parent().prev().removeClass('validate_header_error');
            jQuery(field).parent().next().css('color','black');
            if (jQuery(field).parent().next().is('#repass_td'))
                jQuery(field).parent().next().hide();
            if (jQuery(field).parent().next().is('#reemail_td'))
                jQuery(field).parent().next().hide();
                
		}
		
		return !error;
	}
	
	jQuery("form").each( function() {
		// handle submissions without filling any field
		jQuery(this).submit(function () {
			var validationError = false;
			// for each field test it
			jQuery("input, select, textarea", this).each( function() {
				if (jQuery(this).attr("class")) {
					if (!validateField(this))
						validationError = true;
				}
			});
			return !validationError;
		});
	       
		// handle changes on the fly
		jQuery("input, select, textarea", this).each( function() {
			if (jQuery(this).attr("class")) {
				jQuery(this).blur( function() { 
                                                validateField(this); 
                                                jQuery(this).keyup( function() { validateField(this)} );
    		                                  });
                jQuery(this).focus( function() { 
                                                if (this.value) 
                                                    jQuery(this).keyup( function() { validateField(this)} );
                                              });
            }
		});
		
	});
});
