markup + js validation