def view_blackout_signup_page(request, selected_date):
    if selected_date is None:
        raise Http404('Signup date not found.')

    lu = get_common_lookup(request)
    lu.update({ 'admin_blackout' : True })

    try:
        selected_datetime = datetime.strptime(selected_date, '%Y-%m-%d')
    except:
        selected_datetime = datetime.now()
        #return HttpResponse('Sign up date is not valid')

    selected_date = selected_datetime.date()
    lu.update({ 'selected_date' : selected_date})

    cal_user = lu.get('calendar_user', None)
    if cal_user is None or not cal_user.is_calendar_admin:
        lu.update({ 'ERR_found' : True, 'ERR_no_permission_to_reserve_as_admin' : True })
        return render_to_response('admin_signup/blackout_signup_page.html', lu, context_instance=RequestContext(request))
        
    

    if not request.user.is_authenticated():
        lu.update({ 'ERR_found' : True, 'ERR_not_authenticated' : True })
        return render_to_response('admin_signup/blackout_signup_page.html', lu, context_instance=RequestContext(request))

    timeslot_checker = TimeSlotChecker(selected_date=selected_date)
    if timeslot_checker.err_found():
        lu.update({ 'ERR_found' : True })
        lu.update(timeslot_checker.get_lookup_for_template())
        return render_to_response('admin_signup/blackout_signup_page.html', lu, context_instance=RequestContext(request))
        
    lu.update(timeslot_checker.get_lookup_for_template())
    if request.method == 'POST': # If the form has been submitted...
        signup_form = AdminBlackoutForm(request.POST) # A form bound to the POST data
        if signup_form.is_valid(): # All validation rules pass
            new_signup = signup_form.get_calendar_event()
            
            success_url = reverse('view_blackout_signup_success'\
                            , kwargs={  'id_hash' : new_signup.id_hash }\
                            )
            return HttpResponseRedirect(success_url) # Redirect after POST
        else:
            signup_form.init(timeslot_checker.get_start_time_choices_for_form()\
                            , timeslot_checker.get_end_time_choices_for_form() )
    else:
        signup_form = AdminBlackoutForm()
        signup_form.init(timeslot_checker.get_start_time_choices_for_form()\
                        , timeslot_checker.get_end_time_choices_for_form() )
            
    lu.update({ 'signup_form' : signup_form})
    
    return render_to_response('admin_signup/blackout_signup_page.html', lu, context_instance=RequestContext(request))