from django.http import JsonResponse
from django.template.loader import render_to_string
from django.shortcuts import render

def ajax_response(template_name=None, context=None, success=True, message=None, redirect_url=None):
    """
    Returns AJAX response with template content or JSON data
    """
    response_data = {
        'success': success,
        'message': message,
    }
    
    if redirect_url:
        response_data['redirect_url'] = redirect_url
    
    if template_name and context:
        response_data['content'] = render_to_string(template_name, context, request=context.get('request'))
        response_data['title'] = context.get('title', 'YouTube Clone')
    
    return JsonResponse(response_data)

def is_ajax_request(request):
    """
    Check if request is an AJAX request
    """
    return (
        request.headers.get('X-Requested-With') == 'XMLHttpRequest' or
        'ajax' in request.GET or
        request.META.get('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest'
    )
