File size: 24,095 Bytes
fa67076
b0109f5
fa67076
 
 
b0109f5
fa67076
 
 
b0109f5
 
fa67076
b0109f5
 
 
fa67076
b0109f5
 
fa67076
 
 
b0109f5
 
 
 
 
 
 
fa67076
 
b0109f5
 
 
 
 
 
 
 
 
 
 
 
 
fa67076
 
b0109f5
 
 
 
 
 
 
 
 
 
fa67076
b0109f5
 
 
 
 
 
 
 
 
 
fa67076
b0109f5
 
 
 
 
 
 
 
 
 
fa67076
b0109f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fa67076
 
b0109f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fa67076
 
b0109f5
fa67076
b0109f5
 
 
 
 
 
 
fa67076
b0109f5
fa67076
b0109f5
 
 
 
 
 
 
fa67076
b0109f5
fa67076
b0109f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fa67076
 
 
b0109f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fa67076
b0109f5
 
 
 
 
fa67076
 
 
 
b0109f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fa67076
b0109f5
 
 
 
 
 
 
fa67076
 
b0109f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fa67076
b0109f5
 
 
fa67076
b0109f5
 
 
 
 
 
fa67076
b0109f5
 
 
 
 
 
fa67076
b0109f5
 
 
 
 
 
fa67076
b0109f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fa67076
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Dieta Canina Judy Morgan</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        .fade-in {
            animation: fadeIn 0.5s ease-in-out;
        }
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .nutrient-bar {
            transition: width 0.5s ease-in-out;
        }
    </style>
</head>
<body class="bg-gray-50 min-h-screen">
    <div class="container mx-auto px-4 py-8 max-w-4xl">
        <header class="text-center mb-8">
            <h1 class="text-3xl md:text-4xl font-bold text-indigo-800 mb-2">
                <i class="fas fa-paw mr-2"></i>Dieta Canina Judy Morgan
            </h1>
            <p class="text-gray-600">Crea un menú semanal equilibrado para tu perro</p>
        </header>

        <div class="bg-white rounded-lg shadow-md p-6 mb-8">
            <h2 class="text-xl font-semibold text-indigo-700 mb-4">Datos de tu perro</h2>
            
            <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
                <!-- Tamaño del perro -->
                <div>
                    <label class="block text-gray-700 mb-2">Tamaño</label>
                    <select id="size" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-200 focus:border-indigo-500">
                        <option value="" disabled selected>Selecciona el tamaño</option>
                        <option value="small">Pequeño (1-10 kg)</option>
                        <option value="medium">Mediano (11-25 kg)</option>
                        <option value="large">Grande (26+ kg)</option>
                    </select>
                </div>
                
                <!-- Edad del perro -->
                <div>
                    <label class="block text-gray-700 mb-2">Etapa de vida</label>
                    <select id="age" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-200 focus:border-indigo-500">
                        <option value="" disabled selected>Selecciona la edad</option>
                        <option value="puppy">Cachorro (0-1 año)</option>
                        <option value="teen">Adolescente (1-2 años)</option>
                        <option value="adult">Adulto (2-7 años)</option>
                        <option value="senior">Anciano (7+ años)</option>
                    </select>
                </div>
                
                <!-- Nivel de energía -->
                <div>
                    <label class="block text-gray-700 mb-2">Nivel de energía</label>
                    <select id="energy" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-200 focus:border-indigo-500">
                        <option value="" disabled selected>Selecciona el nivel</option>
                        <option value="high">Alta</option>
                        <option value="medium">Media</option>
                        <option value="low">Baja</option>
                    </select>
                </div>
                
                <!-- Actividad diaria -->
                <div>
                    <label class="block text-gray-700 mb-2">Actividad diaria</label>
                    <select id="activity" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-200 focus:border-indigo-500">
                        <option value="" disabled selected>Selecciona el nivel</option>
                        <option value="high">Alta (2+ horas ejercicio)</option>
                        <option value="medium">Media (1-2 horas ejercicio)</option>
                        <option value="low">Baja (menos de 1 hora)</option>
                    </select>
                </div>
                
                <!-- Sexo del perro -->
                <div>
                    <label class="block text-gray-700 mb-2">Sexo</label>
                    <select id="gender" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-200 focus:border-indigo-500">
                        <option value="" disabled selected>Selecciona el sexo</option>
                        <option value="male">Macho</option>
                        <option value="female">Hembra</option>
                    </select>
                </div>
                
                <!-- Condiciones especiales -->
                <div>
                    <label class="block text-gray-700 mb-2">Condiciones especiales</label>
                    <select id="conditions" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-200 focus:border-indigo-500">
                        <option value="none" selected>Ninguna</option>
                        <option value="allergies">Alergias alimentarias</option>
                        <option value="overweight">Sobrepeso</option>
                        <option value="kidney">Problemas renales</option>
                        <option value="joint">Problemas articulares</option>
                    </select>
                </div>
            </div>
            
            <div class="mt-6 text-center">
                <button id="calculateBtn" class="bg-indigo-600 hover:bg-indigo-700 text-white font-medium py-3 px-6 rounded-lg transition duration-300 transform hover:scale-105">
                    <i class="fas fa-calculator mr-2"></i>Calcular Menú
                </button>
            </div>
        </div>
        
        <!-- Resultados - Oculto inicialmente -->
        <div id="results" class="hidden bg-white rounded-lg shadow-md p-6 mb-8 fade-in">
            <h2 class="text-xl font-semibold text-indigo-700 mb-4">Recomendaciones nutricionales</h2>
            
            <div class="mb-6">
                <h3 class="text-lg font-medium text-gray-800 mb-3">Balance nutricional ideal</h3>
                
                <div class="space-y-4">
                    <div>
                        <div class="flex justify-between mb-1">
                            <span class="text-sm font-medium text-gray-700">Proteínas</span>
                            <span id="protein-percent" class="text-sm font-medium text-gray-700">--%</span>
                        </div>
                        <div class="w-full bg-gray-200 rounded-full h-2.5">
                            <div id="protein-bar" class="nutrient-bar h-2.5 rounded-full bg-blue-600" style="width: 0%"></div>
                        </div>
                    </div>
                    
                    <div>
                        <div class="flex justify-between mb-1">
                            <span class="text-sm font-medium text-gray-700">Grasas</span>
                            <span id="fat-percent" class="text-sm font-medium text-gray-700">--%</span>
                        </div>
                        <div class="w-full bg-gray-200 rounded-full h-2.5">
                            <div id="fat-bar" class="nutrient-bar h-2.5 rounded-full bg-yellow-500" style="width: 0%"></div>
                        </div>
                    </div>
                    
                    <div>
                        <div class="flex justify-between mb-1">
                            <span class="text-sm font-medium text-gray-700">Carbohidratos</span>
                            <span id="carbs-percent" class="text-sm font-medium text-gray-700">--%</span>
                        </div>
                        <div class="w-full bg-gray-200 rounded-full h-2.5">
                            <div id="carbs-bar" class="nutrient-bar h-2.5 rounded-full bg-green-500" style="width: 0%"></div>
                        </div>
                    </div>
                    
                    <div>
                        <div class="flex justify-between mb-1">
                            <span class="text-sm font-medium text-gray-700">Fibra</span>
                            <span id="fiber-percent" class="text-sm font-medium text-gray-700">--%</span>
                        </div>
                        <div class="w-full bg-gray-200 rounded-full h-2.5">
                            <div id="fiber-bar" class="nutrient-bar h-2.5 rounded-full bg-purple-500" style="width: 0%"></div>
                        </div>
                    </div>
                </div>
            </div>
            
            <div class="mb-6">
                <h3 class="text-lg font-medium text-gray-800 mb-3">Cantidad diaria recomendada</h3>
                <div class="bg-indigo-50 p-4 rounded-lg">
                    <div class="flex items-center">
                        <i class="fas fa-bowl-food text-2xl text-indigo-600 mr-3"></i>
                        <div>
                            <p class="font-medium text-gray-800">Tu perro debería consumir aproximadamente:</p>
                            <p id="daily-amount" class="text-xl font-bold text-indigo-700">-- gramos por día</p>
                        </div>
                    </div>
                </div>
            </div>
            
            <div>
                <h3 class="text-lg font-medium text-gray-800 mb-3">Menú semanal</h3>
                
                <div class="overflow-x-auto">
                    <table class="min-w-full bg-white border border-gray-200 rounded-lg">
                        <thead class="bg-gray-100">
                            <tr>
                                <th class="py-2 px-4 border-b">Día</th>
                                <th class="py-2 px-4 border-b">Desayuno</th>
                                <th class="py-2 px-4 border-b">Cena</th>
                            </tr>
                        </thead>
                        <tbody id="weekly-menu" class="divide-y divide-gray-200">
                            <!-- Aquí se generará el menú dinámicamente -->
                        </tbody>
                    </table>
                </div>
                
                <div class="mt-4 bg-yellow-50 p-4 rounded-lg border border-yellow-200">
                    <div class="flex">
                        <i class="fas fa-lightbulb text-yellow-500 text-xl mr-3 mt-1"></i>
                        <div>
                            <h4 class="font-medium text-yellow-800 mb-1">Consejos de Judy Morgan</h4>
                            <p id="tips" class="text-yellow-700">Selecciona las características de tu perro para obtener consejos personalizados.</p>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        
        <footer class="text-center text-gray-500 text-sm mt-12">
            <p>Esta aplicación sigue los principios de la dieta natural para perros de la Dra. Judy Morgan.</p>
            <p class="mt-1">Consulta siempre con tu veterinario antes de cambiar la dieta de tu mascota.</p>
        </footer>
    </div>

    <script>
        document.addEventListener('DOMContentLoaded', function() {
            const calculateBtn = document.getElementById('calculateBtn');
            const resultsSection = document.getElementById('results');
            
            calculateBtn.addEventListener('click', function() {
                // Validar que todos los campos estén completos
                const size = document.getElementById('size').value;
                const age = document.getElementById('age').value;
                const energy = document.getElementById('energy').value;
                const activity = document.getElementById('activity').value;
                const gender = document.getElementById('gender').value;
                const conditions = document.getElementById('conditions').value;
                
                if (!size || !age || !energy || !activity || !gender) {
                    alert('Por favor completa todos los campos obligatorios.');
                    return;
                }
                
                // Calcular recomendaciones basadas en las selecciones
                calculateRecommendations(size, age, energy, activity, gender, conditions);
                
                // Mostrar resultados con animación
                resultsSection.classList.remove('hidden');
                resultsSection.classList.add('fade-in');
                
                // Desplazarse suavemente a los resultados
                resultsSection.scrollIntoView({ behavior: 'smooth' });
            });
            
            function calculateRecommendations(size, age, energy, activity, gender, conditions) {
                // Base de datos de recetas
                const recipes = {
                    breakfast: [
                        { name: "Pollo con calabaza y espinacas", protein: 40, fat: 20, carbs: 30, fiber: 10 },
                        { name: "Pavo con zanahoria y arroz integral", protein: 35, fat: 15, carbs: 40, fiber: 10 },
                        { name: "Salmón con boniato y judías verdes", protein: 30, fat: 25, carbs: 35, fiber: 10 },
                        { name: "Ternera con quinoa y brócoli", protein: 45, fat: 15, carbs: 30, fiber: 10 },
                        { name: "Hígado con patata dulce y guisantes", protein: 35, fat: 20, carbs: 35, fiber: 10 },
                        { name: "Pescado blanco con calabacín y mijo", protein: 40, fat: 10, carbs: 40, fiber: 10 },
                        { name: "Cordero con col rizada y cebada", protein: 30, fat: 25, carbs: 35, fiber: 10 }
                    ],
                    dinner: [
                        { name: "Pavo con arroz y espárragos", protein: 35, fat: 15, carbs: 40, fiber: 10 },
                        { name: "Pollo con patata y zanahoria", protein: 40, fat: 20, carbs: 30, fiber: 10 },
                        { name: "Sardinas con quinoa y espinacas", protein: 30, fat: 25, carbs: 35, fiber: 10 },
                        { name: "Conejo con calabaza y judías", protein: 45, fat: 15, carbs: 30, fiber: 10 },
                        { name: "Pescado azul con boniato y brócoli", protein: 35, fat: 20, carbs: 35, fiber: 10 },
                        { name: "Ternera con arroz integral y calabacín", protein: 40, fat: 10, carbs: 40, fiber: 10 },
                        { name: "Pollo con lentejas y coliflor", protein: 30, fat: 25, carbs: 35, fiber: 10 }
                    ]
                };
                
                // Determinar porcentajes nutricionales basados en las necesidades
                let proteinPercent, fatPercent, carbsPercent, fiberPercent;
                
                // Cachorros necesitan más proteína y grasa
                if (age === 'puppy') {
                    proteinPercent = 40;
                    fatPercent = 25;
                    carbsPercent = 25;
                    fiberPercent = 10;
                } 
                // Perros senior necesitan menos grasa y más fibra
                else if (age === 'senior') {
                    proteinPercent = 30;
                    fatPercent = 15;
                    carbsPercent = 35;
                    fiberPercent = 20;
                } 
                // Perros con alta energía y actividad necesitan más carbohidratos
                else if (energy === 'high' && activity === 'high') {
                    proteinPercent = 35;
                    fatPercent = 20;
                    carbsPercent = 35;
                    fiberPercent = 10;
                } 
                // Perros con sobrepeso necesitan menos grasa y carbohidratos
                else if (conditions === 'overweight') {
                    proteinPercent = 40;
                    fatPercent = 15;
                    carbsPercent = 25;
                    fiberPercent = 20;
                } 
                // Perros con problemas renales necesitan menos proteína
                else if (conditions === 'kidney') {
                    proteinPercent = 25;
                    fatPercent = 25;
                    carbsPercent = 40;
                    fiberPercent = 10;
                } 
                // Perros con problemas articulares necesitan más ácidos grasos
                else if (conditions === 'joint') {
                    proteinPercent = 30;
                    fatPercent = 30;
                    carbsPercent = 30;
                    fiberPercent = 10;
                } 
                // Perros normales
                else {
                    proteinPercent = 35;
                    fatPercent = 20;
                    carbsPercent = 35;
                    fiberPercent = 10;
                }
                
                // Calcular cantidad diaria basada en tamaño y actividad
                let dailyAmount;
                if (size === 'small') {
                    dailyAmount = energy === 'high' ? 150 : (energy === 'medium' ? 120 : 100);
                } else if (size === 'medium') {
                    dailyAmount = energy === 'high' ? 350 : (energy === 'medium' ? 300 : 250);
                } else { // large
                    dailyAmount = energy === 'high' ? 600 : (energy === 'medium' ? 500 : 400);
                }
                
                // Ajustar por edad
                if (age === 'puppy') dailyAmount *= 1.2;
                if (age === 'senior') dailyAmount *= 0.9;
                
                // Ajustar por condiciones
                if (conditions === 'overweight') dailyAmount *= 0.8;
                
                // Actualizar la UI con los resultados
                updateNutritionBars(proteinPercent, fatPercent, carbsPercent, fiberPercent);
                document.getElementById('protein-percent').textContent = proteinPercent + '%';
                document.getElementById('fat-percent').textContent = fatPercent + '%';
                document.getElementById('carbs-percent').textContent = carbsPercent + '%';
                document.getElementById('fiber-percent').textContent = fiberPercent + '%';
                
                document.getElementById('daily-amount').textContent = Math.round(dailyAmount) + ' gramos por día';
                
                // Generar menú semanal
                generateWeeklyMenu(recipes);
                
                // Mostrar consejos personalizados
                showPersonalizedTips(size, age, energy, activity, gender, conditions);
            }
            
            function updateNutritionBars(protein, fat, carbs, fiber) {
                setTimeout(() => {
                    document.getElementById('protein-bar').style.width = protein + '%';
                    document.getElementById('fat-bar').style.width = fat + '%';
                    document.getElementById('carbs-bar').style.width = carbs + '%';
                    document.getElementById('fiber-bar').style.width = fiber + '%';
                }, 100);
            }
            
            function generateWeeklyMenu(recipes) {
                const weeklyMenu = document.getElementById('weekly-menu');
                weeklyMenu.innerHTML = '';
                
                const days = ['Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado', 'Domingo'];
                
                for (let i = 0; i < 7; i++) {
                    const row = document.createElement('tr');
                    
                    const dayCell = document.createElement('td');
                    dayCell.className = 'py-2 px-4 border-b text-center font-medium';
                    dayCell.textContent = days[i];
                    
                    const breakfastCell = document.createElement('td');
                    breakfastCell.className = 'py-2 px-4 border-b';
                    breakfastCell.textContent = recipes.breakfast[i].name;
                    
                    const dinnerCell = document.createElement('td');
                    dinnerCell.className = 'py-2 px-4 border-b';
                    dinnerCell.textContent = recipes.dinner[i].name;
                    
                    row.appendChild(dayCell);
                    row.appendChild(breakfastCell);
                    row.appendChild(dinnerCell);
                    
                    weeklyMenu.appendChild(row);
                }
            }
            
            function showPersonalizedTips(size, age, energy, activity, gender, conditions) {
                const tipsElement = document.getElementById('tips');
                let tips = [];
                
                // Tips basados en tamaño
                if (size === 'small') {
                    tips.push("Los perros pequeños tienen metabolismos más rápidos, por lo que necesitan comidas más frecuentes pero en porciones pequeñas.");
                } else if (size === 'large') {
                    tips.push("Los perros grandes son propensos a problemas articulares, considera añadir suplementos de glucosamina y condroitina.");
                }
                
                // Tips basados en edad
                if (age === 'puppy') {
                    tips.push("Los cachorros necesitan más proteínas y grasas para su crecimiento. Alimenta 3-4 veces al día.");
                } else if (age === 'senior') {
                    tips.push("Los perros senior se benefician de comidas más fáciles de digerir y con más fibra para la salud intestinal.");
                }
                
                // Tips basados en energía y actividad
                if (energy === 'high' && activity === 'high') {
                    tips.push("Para perros muy activos, considera añadir carbohidratos complejos como fuente de energía sostenida.");
                } else if (energy === 'low' && activity === 'low') {
                    tips.push("Los perros con baja actividad necesitan menos calorías para evitar el aumento de peso.");
                }
                
                // Tips basados en condiciones especiales
                if (conditions === 'allergies') {
                    tips.push("Para perros con alergias, usa proteínas novedosas como conejo o venado y evita ingredientes comunes como pollo o trigo.");
                } else if (conditions === 'overweight') {
                    tips.push("Para perros con sobrepeso, aumenta la fibra para promover la saciedad y reduce las grasas y carbohidratos.");
                } else if (conditions === 'kidney') {
                    tips.push("Para problemas renales, reduce el fósforo y la proteína, pero mantén la proteína de alta calidad.");
                } else if (conditions === 'joint') {
                    tips.push("Para problemas articulares, aumenta los ácidos grasos omega-3 que tienen propiedades antiinflamatorias.");
                }
                
                // Consejo general de Judy Morgan
                tips.push("Recuerda variar las proteínas cada 3-4 meses para proporcionar una nutrición equilibrada y prevenir alergias.");
                
                tipsElement.textContent = tips.join(' ');
            }
        });
    </script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=xSerpicoxx/prd" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>