from base import *
from output import output

def index(request, type, code=None, slug=None):
    recaptcha_failure = False
    if slug: 
        srs = get_object_or_404(SRS, type=type, slug=slug)
    else:
        srs = get_object_or_404(SRS, type=type, srs_id=code)
    if request.method == 'POST':
        check_captcha = captcha.submit( request.POST['recaptcha_challenge_field'], \
                                        request.POST['recaptcha_response_field'], \
                                        settings.RECAPTCHA_PRIVATE_KEY, \
                                        request.META['REMOTE_ADDR'])
        if check_captcha.is_valid:
            return render_to_response('references/epsg_comment_form.html',{'srs':srs})
        else:
            recaptcha_failure = True
          

    if request.META.has_key("HTTP_ACCEPT"):
        if request.META['HTTP_ACCEPT'] in FORMATS:
            return output(request, type, output=FORMATS[request.META['HTTP_ACCEPT']], code=code)
    srs.add_count()
    next = prev = None
    try:
        next = SRS.objects.filter(srs_id__gt=srs.srs_id, type=type).order_by('srs_id')[0]
    except IndexError:
        pass
    try:
        prev = SRS.objects.filter(srs_id__lt=srs.srs_id, type=type).order_by('-srs_id')[0]
    except IndexError:
        pass
    type = type.upper()
    
    if srs.type == "epsg" and srs.epsg:
        srs = srs.epsg
    
    return render_to_response('references/srs.html', 
               {'type': type, 
                'code': code, 
                'srs':srs,
                'next':next,
                'prev': prev,
                'recaptcha_failure':recaptcha_failure
                })
