<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html> 
  <head> 
    <meta name="apple-mobile-web-app-capable" content="no" /> 
    <meta name="viewport" content="user-scalable=no" /> 
    <style> 
      * { 
        margin: 0; 
        padding: 0; 
      } 
       
      #wrapper { 
        position:relative; 
        width:800px; 
        margin:0 auto; 
      } 
       
      #output { 
        position:relative; 
        width:100%; 
        height:96px; 
        border:1px solid black; 
      } 
       
      .keyboard { 
        position:relative; 
        width:100%; 
        height:250px; 
        border:1px solid black; 
        background-color:#ccc; 
        cursor:pointer; 
      } 
       
      .keyboard ul { 
        list-style-type:none; 
      } 
       
      .keyboard ul ul { 
        clear:both; 
      } 
       
      .keyboard ul ul li { 
        float:left; 
        position:relative; 
        width:70px; 
        height:70px; 
        margin:1px; 
        border:1px outset gray; 
        text-align:center; 
        line-height:70px; 
        background-color:#ddd; 
        -moz-border-radius:5px; 
        border-radius:5px; 
      } 
       
      .keyboard .swypable { 
        background-color:#eee; 
      } 
       
      .keyboard ul ul li:hover { 
        background-color:white; 
      } 
       
      .keyboard .middle { 
        margin-left:20px; 
      } 
      .keyboard .lower { 
        margin-left:50px; 
      }       
       
    </style> 
     
    <script> 
       
      function init() { 
        initkeyboard('keyboard'); 
      } 
       
      function isIOS() { 
        var agent = navigator.userAgent.toLowerCase(); 
        return agent.match(/(iphone|ipod|ipad)/); 
      } 
       
      function initkeyboard(name) { 
        var el = document.getElementById(name); 
        el.swyping = false; 
        el.keybuffer = ''; 
         
        if (isIOS()) { 
          el.ontouchstart = touchmovehandler; 
          el.ontouchmove = touchmovehandler; 
          el.ontouchend = mouseuphandler; 
        } else { 
          el.onmousedown = mousedownhandler; 
          el.onmouseover = mouseoverhandler; 
          el.onmouseup = mouseuphandler; 
        } 
      } 
       
      function touchmovehandler(e) { 
        var e = window.event || e; 
        var target = document.elementFromPoint(e.changedTouches[0].clientX, e.changedTouches[0].clientY); 
        if (target.className=='swypable') this.keybuffer += target.textContent; 
        return true; 
      } 
       
      function mousedownhandler(e) { 
        var e = window.event || e; 
        if (e.target.className=='swypable') this.keybuffer += e.target.textContent; 
        this.swyping = true; 
        return false; 
      } 
       
      function mouseuphandler(e) { 
        this.swyping = false; 
        var el = document.getElementById('output'); 
        el.src = 'swypeserver.php?lang=en&text=' + this.keybuffer; 
        this.keybuffer = ''; 
      } 
       
      function mouseoverhandler(e) { 
        var e = window.event || e; 
        if (!this.swyping) return; 
        if (e.target.className=='swypable') this.keybuffer += e.target.textContent; 
      } 
       
 
       
    </script> 
  </head> 
   
  <body ontouchmove='event.preventDefault();' onload='init();'> 
    <div id='wrapper'> 
      <h1>Simple SWYPE demo</h1> 
      <p>english dictionary - AZERTY keyboard</p> 
      <p>Swype using your mouse: clickleft -> hold -> swype -> release</p> 
      <p>or use your iOS device</p> 
      <p>tested with Safari and Firefox both on OSX and Safari on iOS</p> 
      <iframe id='output' height=40></iframe> 
      <div id='keyboard' class='keyboard'> 
        <ul> 
          <li class='upper'> 
            <ul> 
              <li class='swypable'>a</li><li class='swypable'>z</li><li class='swypable'>e</li><li class='swypable'>r</li><li class='swypable'>t</li><li class='swypable'>y</li><li class='swypable'>u</li><li class='swypable'>i</li><li class='swypable'>o</li><li class='swypable'>p</li> 
            </ul> 
          </li> 
          <li class='middle'> 
            <ul> 
              <li class='swypable'>q</li><li class='swypable'>s</li><li class='swypable'>d</li><li class='swypable'>f</li><li class='swypable'>g</li><li class='swypable'>h</li><li class='swypable'>j</li><li class='swypable'>k</li><li class='swypable'>l</li><li class='swypable'>m</li> 
            </ul> 
          </li> 
          <li class='lower'> 
            <ul> 
              <li class='swypable'>w</li><li class='swypable'>x</li><li class='swypable'>c</li><li class='swypable'>v</li><li class='swypable'>b</li><li class='swypable'>n</li> 
            </ul> 
          </li> 
        </ul> 
      </div> 
    </div>   
  </body> 
</html>
 
 |