| 
      
            Lines 83-102
          function initializeCamera( camera_form ){
      
      
        Link Here
      
     | 
  
        
          | 83 | 
              });  | 
          83 | 
              });  | 
        
        
          | 84 | 
          }  | 
          84 | 
          }  | 
        
        
          | 85 | 
           | 
          85 | 
           | 
        
          
            
              | 86 | 
              function detectWebcam(callback) { | 
              86 | 
              navigator.getMedia = ( navigator.getUserMedia || // use the proper vendor prefix  | 
            
            
              | 87 | 
                  let md = navigator.mediaDevices;  | 
              87 | 
                                         navigator.webkitGetUserMedia ||  | 
            
            
              | 88 | 
                  if (!md || !md.enumerateDevices) return callback(false);  | 
              88 | 
                                         navigator.mozGetUserMedia ||  | 
            
            
              | 89 | 
                  md.enumerateDevices().then(devices => { | 
              89 | 
                                         navigator.msGetUserMedia);  | 
            
            
              | 90 | 
                      callback(devices.some(device => 'videoinput' === device.kind));  | 
               | 
               | 
            
            
              | 91 | 
                  })  | 
            
            
              | 92 | 
              }  | 
            
        
          | 93 | 
           | 
          90 | 
           | 
        
          
            
              | 94 | 
              detectWebcam(function(hasWebcam) { | 
              91 | 
              var div_take_image = document.getElementById('take_patron_image'); | 
            
            
              | 95 | 
                  let div_take_image = document.getElementById('take_patron_image'); | 
              92 | 
              navigator.getMedia({video: true}, function(stream) { | 
            
            
              | 96 | 
                  if (div_take_image) { | 
              93 | 
                      div_take_image.style.display = 'block';  | 
            
            
              | 97 | 
                      div_take_image.style.display = hasWebcam ? "block" : "none";  | 
              94 | 
                      stream.getTracks().forEach(function(track) { | 
            
            
               | 
               | 
              95 | 
                          if (track.readyState == 'live' && track.kind === 'video') { | 
            
            
              | 96 | 
                              track.stop();  | 
            
            
              | 97 | 
                          }  | 
            
            
              | 98 | 
                      });  | 
            
            
              | 99 | 
                  }, function() { | 
            
            
              | 100 | 
                      div_take_image.style.display = 'none';  | 
            
        
          | 98 | 
              }  | 
          101 | 
              }  | 
        
          
            
              | 99 | 
              });  | 
              102 | 
              );  | 
            
            
               | 
               | 
              103 | 
               | 
            
        
          | 100 | 
           | 
          104 | 
           | 
        
        
          | 101 | 
          $(document).ready(function(){ | 
          105 | 
          $(document).ready(function(){ | 
        
        
          | 102 | 
              $("#trigger-webcam").on("click", function(e){ | 
          106 | 
              $("#trigger-webcam").on("click", function(e){ | 
        
            
              | 103 | 
              -   | 
               | 
               |