Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. <?php
  2. /* This calculator is your for free by Calendarscripts.info. You have no obligations for anything - you can modify, redistribute, sell it or whatever you want to do.
  3. We will appreciate if you don't remove the link at the bottom, but that's not required. */
  4. error_reporting(E_ALL&(~E_NOTICE));
  5. session_start();
  6.  
  7. # set this to 0 if you want to calculate only BMR and to 1 if you want
  8. # to calculate BMR + daily energy requirements
  9. $calc_mode=1;
  10. ?>
  11. <style type="text/css">
  12. .calculator_div
  13. {
  14.     font-family:verdana, arial, sans-serif;
  15.     border:2pt solid #4444FF;
  16.     padding:5px;
  17.     width:330px;
  18.     margin:auto;
  19. }
  20.  
  21. label
  22. {
  23.     display:block;
  24.     float:left;
  25.     width:150px;       
  26. }
  27. .label
  28. {
  29.     display:inline;
  30.     float:none;
  31.     width:75px;    
  32.     font-size:11px
  33. }
  34. .warning
  35. {
  36.     background:yellow;
  37.     border:1pt solid red;
  38.     padding:5px;
  39.     font-weight:bold;
  40. }
  41.  
  42.  #table{
  43.    
  44.     width:100%;
  45.    
  46.     }
  47.  
  48.   #row  {
  49.     height:20px;
  50.     width:100%;
  51.     }
  52. .rowheader  
  53. {
  54.     padding:5px;   
  55.     font-size:14px;
  56.     font-weight:bolder;        
  57.     color:white;   
  58.     text-align:center;
  59. }  
  60. </style>
  61. <script language="javascript">
  62. function IsNumber(fldId)
  63. {
  64.   var fld=document.getElementById(fldId).value;
  65.  
  66.   if(isNaN(fld))
  67.   {    
  68.         document.getElementById(fldId).value=fld.substring(0, fld.length-1);
  69.         var newvalue=document.getElementById(fldId).value;
  70.         IsNumber(fldId);
  71.   }
  72.  
  73.   return;  
  74. }
  75.  
  76.  
  77. function FtToCm(ftfld,infld,savefld)
  78. {
  79.     var ft=document.getElementById(ftfld).value;
  80.     var inch=document.getElementById(infld).value;
  81.  
  82.     if(!isNaN(ft) && !isNaN(inch))
  83.     {
  84.         var allinch= ft * 12;
  85.         allinch= parseInt(allinch) + parseInt(inch);
  86.    
  87.         var cm =allinch * 2.54;
  88.    
  89.         document.getElementById(savefld).value=Math.round(cm);
  90.     }
  91.     else
  92.     {
  93.         document.getElementById("feet").value=ft.substring(0, ft.length-1);
  94.         document.getElementById("inch").value=inch.substring(0, inch.length-1);
  95.     }
  96.     //form2.field.value =lbs;
  97.     //alert(field);
  98.     return;
  99. }
  100.  
  101. function CmToFt(cm,ftfld,infld)
  102. {
  103.     if(!isNaN(cm))
  104.     {
  105.         var newcm=cm * 0.3937;
  106.        
  107.         var ft = newcm / 12;
  108.         var remain= newcm % 12;
  109.         var inchs= remain;
  110.        
  111.         document.getElementById(ftfld).value=Math.round(ft);
  112.         document.getElementById(infld).value=Math.round(inchs);
  113.     }
  114.     else
  115.     {    
  116.         document.getElementById("cm").value=cm.substring(0, cm.length-1);
  117.     }
  118.     //form2.field.value =lbs;
  119.     //alert(field);
  120.     return;
  121. }
  122.  
  123. function KgToLbs(kg,field)
  124. {
  125.     if(!isNaN(kg))
  126.     {
  127.         var lbs= kg * 2.2;    
  128.         document.getElementById(field).value=Math.round(lbs);
  129.     }
  130.     else
  131.     {
  132.         document.getElementById("kg").value=kg.substring(0, kg.length-1);
  133.     }
  134.     //form2.field.value =lbs;
  135.     //alert(field);
  136.     return;
  137. }
  138.  
  139. function LbsToKg(lbs,field)
  140. {
  141.     if(!isNaN(lbs))
  142.     {
  143.         var kg= lbs / 2.2;
  144.         document.getElementById(field).value=Math.round(kg);
  145.     }
  146.     else
  147.     {
  148.         document.getElementById("lbs").value=lbs.substring(0, lbs.length-1);
  149.     }
  150.     return;
  151. }
  152. function validateForm(frm)
  153. {
  154.  
  155.     age=frm.age.value;
  156.     kg=frm.kg.value;
  157.     cm=frm.cm.value;
  158.    
  159.     if(age=="" || kg=="" || cm=="" )
  160.     {
  161.         alert('Error: all fields are required!');
  162.         return false;
  163.     }
  164.  
  165.     return;
  166. }
  167.  
  168. function showHide(fldshow,fldhide,label,labelfld)
  169. {
  170.     var myTextelemShow = document.getElementById(fldshow);
  171.     var myTextelemLabel = document.getElementById(labelfld);
  172.     var myTextelemHide = document.getElementById(fldhide);
  173.     if(myTextelemShow.style.display == 'none')
  174.     {
  175.         myTextelemShow.style.display = 'inline' ;
  176.         myTextelemLabel.innerHTML = label;
  177.     }
  178.     if(myTextelemHide.style.display != 'none')
  179.     {
  180.         myTextelemHide.style.display = 'none';
  181.     }
  182. }
  183. </script>
  184. <?php
  185. if(!empty($_POST['calculator_ok']))
  186. {
  187.     // session storage
  188.     foreach($_POST as $key=>$var) $_SESSION["calc_bmr_".$key]=$var;
  189.    
  190.     $inch=$_POST["feet"]*12+$_POST["inch"];
  191.  
  192.     if($_POST["gender"]=='male')
  193.     {
  194.         $BMR=66 + (6.3 * $_POST["lbs"]) + (12.9 * $inch) - (6.8 * $_POST["age"]);          
  195.     }
  196.     else
  197.     {
  198.         $BMR=655 + (4.3 * $_POST["lbs"]) + (4.7 * $inch) - (4.7 * $_POST["age"]);
  199.     }
  200.    
  201.     // activity?
  202.     if($calc_mode)
  203.     {
  204.         $extra_energy=$BMR*$_POST["activity"];
  205.         $energy_needs=round($BMR+$extra_energy);
  206.     }
  207. }
  208. ?>
  209.  
  210. <div class="calculator_div">
  211.     <form method="post" name="form1" onsubmit="return validateForm(this);">
  212.     <p><label>Ваш возраст:</label>
  213.                     <input type="text" size="7"  name="age" id="age" onkeyup="IsNumber(this.id)" value="<?php echo $_SESSION["calc_bmr_age"];?>" >
  214.     </p>
  215.     <p><label>Ваш пол:</label>
  216.                     <input id="gender"  name="gender" type="radio" value="male" <?php if($_SESSION["calc_bmr_gender"]=="male") echo "checked"; else { if(!isset($_SESSION["calc_bmr_gender"])) echo "checked";}?> /> <label style="width:75px;display:inline;float:none;">Мужской</label>
  217.                     <input id="gender"  name="gender" type="radio" value="female" <?php if($_SESSION["calc_bmr_gender"]=="female") echo "checked"; ?>/> <label style="width:75px;display:inline;float:none;">Женский</label>
  218.                    
  219.     </p>
  220.     <p><label>Ваш вес:</label>
  221.                     <input id="weight" name="weight" type="radio" value="lbs" onclick="showHide('lbs','kg','Lbs','labelw');" <?php if($_SESSION["calc_bmr_weight"]=="lbs") echo "checked"; else { if(!isset($_SESSION["calc_bmr_weight"])) echo "checked";}?> />
  222.                     <label style="width:75px;display:inline;float:none;">фунтов</label>
  223.                     <input id="weight"  name="weight" type="radio" value="kg" onclick="showHide('kg','lbs','kg','labelw');" <? if($_SESSION["calc_bmr_weight"]=="kg") echo "checked"; ?> />
  224.                     <label style="width:75px;display:inline;float:none;">кг</label>
  225.  
  226.     </p>
  227.         <p><label >&nbsp;</label>
  228.                     <input type="text" name="lbs" id="lbs" size="4" onkeyup="LbsToKg(this.value,'kg');" value="<? echo $_SESSION["calc_bmr_lbs"];?>">  
  229.                     <input type="text" name="kg" id="kg" size="4" onkeyup="KgToLbs(this.value,'lbs');" style="display:none;" value="<? echo $_SESSION["calc_bmr_kg"]; ?>">
  230.  
  231.                     <span id="labelw">
  232.                     <?php if($_SESSION["calc_bmr_weight"]=="kg"):?>
  233.                             кг
  234.                             <SCRIPT LANGUAGE="javascript">
  235.                             showHide('kg','lbs','kg','labelw');
  236.                             </SCRIPT>
  237.                     <?php else:?>фунтов<?php endif;?>
  238.                     </span>
  239.     </p>
  240.    
  241.    
  242.     <p><label>Ваш рост:</label>
  243.                     <input id="height"  name="height" type="radio" value="cm" onclick="showHide('cm','feet','CM','labelh');showHide('cm','inch','CM','labelh');" <? if($_SESSION["calc_bmr_height"]=="cm") echo "checked"; else { if(!isset($_SESSION["calc_bmr_heigth"])) echo "checked";}?> />
  244.                     <label style="width:75px;display:inline;float:none;">см</label>
  245.                     <input id="height" name="height" type="radio" value="feet" onclick="showHide('feet','cm','feet/inch','labelh');showHide('inch','cm','feet/inch','labelh');" <? if($_SESSION["calc_bmr_height"]=="feet") echo "checked"; ?> />
  246.                     <label style="width:75px;display:inline;float:none;">фут/дюйм</label>
  247.                    
  248.     </p>
  249.         <p><label >&nbsp;</label>
  250.                     <input type="text" name="cm" id="cm" size="4" onkeyup="IsNumber(this.id);CmToFt(this.value,'feet','inch');" value="<? echo $_SESSION["calc_bmr_cm"];?>">  
  251.                     <input type="text" name="feet" id="feet" size="4" onkeyup="IsNumber(this.id);FtToCm('feet','inch','cm');" style="display:none;" value="<? echo $_SESSION["calc_bmr_feet"]; ?>">
  252.                     <input type="text" name="inch" id="inch" size="4" onkeyup="IsNumber(this.id);FtToCm('feet','inch','cm');" style="display:none;" value="<? echo $_SESSION["calc_bmr_inch"]; ?>">
  253.                     <span id=labelh >
  254.                     <?php if($_SESSION["calc_bmr_height"]=="feet"):?>
  255.                     фут/дюйм
  256.                     <SCRIPT LANGUAGE="javascript">
  257.                     showHide('feet','cm','feet/inch','labelh');
  258.                     showHide('inch','cm','feet/inch','labelh');
  259.                     </SCRIPT>
  260.                     <?php else:?>см<?php endif;?>
  261.                    </span>
  262.     </p>
  263.    
  264.     <?php if($calc_mode==1):?>
  265.         <p><label>Ежедневная активность</label> <select name="activity">    
  266.         <option value="0.2" <?if($_SESSION["calc_bmr_activity"]=="0.2") echo "selected"?>>Отсутствует (не занимаюсь спортом)</option>
  267.         <option value="0.375" <?if($_SESSION["calc_bmr_activity"]=="0.375") echo "selected"?>>Легкая нагрузка (нагрузки 1-3 раза в неделю)</option>
  268.         <option value="0.55" <?if($_SESSION["calc_bmr_activity"]=="0.55") echo "selected"?>>Умеренная нагрузка (нагрузки 3-5 раза в неделю)</option>
  269.         <option value="0.725" <?if($_SESSION["calc_bmr_activity"]=="0.725") echo "selected"?>>Тяжелая нагрузка (ежедневно)</option>
  270.         <option value="0.9" <?if($_SESSION["calc_bmr_activity"]=="0.9") echo "selected"?>>Очень тяжелая нагрузка (профессиональный спортсмен)</option>
  271.         </select></p>
  272.     <?php endif;?>
  273.    
  274.     <div style="text-align:center;clear:both;"><input type="submit" value="Рассчитать"></div>
  275.     <input type="hidden" name="calculator_ok" value="1">
  276.     </form>
  277.    
  278.  
  279. <?php if(!empty($_POST['calculator_ok'])):?>
  280.     <div id="table">
  281.         <div class="rowheader" style="background-color:#4BACE6;">
  282.                         Ваш БСМ: <?echo number_format($BMR); ?> калорий в день
  283.         </div>
  284.         <?php if($calc_mode):?>
  285.         <div class="rowheader" style="background-color:#4BACE6;">
  286.             <p>Вам нужно <?php echo number_format($energy_needs)?> калорий в день</p>
  287.         </div>
  288.         <?php endif;?>
  289.     </div>
  290. <?php endif;?>
  291. </div>