<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,10 +1,10 @@
-Element.extend({getSelectedText:function(){if(window.ie)return document.selection.createRange().text;return this.getValue().substring(this.selectionStart,this.selectionEnd);},replaceSelectedText:function(newtext,isLast){var isLast=(isLast==null)?true:isLast;var scroll_top=this.scrollTop;if(window.ie){this.focus();var range=document.selection.createRange();range.text=newtext;if(isLast){range.select();this.scrollTop=scroll_top;}}
-else{originalStart=this.selectionStart;originalEnd=this.selectionEnd;this.value=this.value.substring(0,originalStart)+newtext+this.value.substring(originalEnd);if(isLast==false){this.setSelectionRange(originalStart,originalStart+newtext.length);}
+Element.implement({getSelectedText:function(){if(Browser.Engine.trident)return document.selection.createRange().text;return this.get('value').substring(this.selectionStart,this.selectionEnd);},replaceSelectedText:function(newtext,isLast){var isLast=(isLast==null)?true:isLast;var scroll_top=this.scrollTop;if(Browser.Engine.trident){this.focus();var range=document.selection.createRange();range.text=newtext;if(isLast){range.select();this.scrollTop=scroll_top;}}
+else{originalStart=this.selectionStart;originalEnd=this.selectionEnd;this.value=this.get('value').substring(0,originalStart)+newtext+this.get('value').substring(originalEnd);if(isLast==false){this.setSelectionRange(originalStart,originalStart+newtext.length);}
 else{this.setSelectionRange(originalStart+newtext.length,originalStart+newtext.length);this.scrollTop=scroll_top;}
-this.focus();}}});var nawte=new Class({initialize:function(element,list,options){this.el=$(element);this.options=Object.extend({dispatchChangeEvent:false,changeEventDelay:200,interceptTabs:true},options||{});if(this.options.dispatchChangeEvent){this.el.addEvents({'focus':function(){this.timer=this.watchChange.periodical(this.options.changeEventDelay,this);}.bind(this),'blur':function(){this.timer=$clear(this.timer);}.bind(this)});}
-if(this.options.interceptTabs){this.el.addEvent('keypress',function(event){if(event.keyCode==9){event.preventDefault();this.replaceSelection(&quot;\t&quot;);}}.bind(this));}
-if(!$defined(list)||list==&quot;&quot;){list=new Element('li');list.injectBefore(this.el);this.list=list;}
+this.focus();}}});var nawte=new Class({Implements:Options,options:{displatchChangeEvent:false,changeEventDelay:200,interceptTabs:true},initialize:function(element,list,options){this.el=$(element);this.setOptions(options);if(this.options.dispatchChangeEvent){this.el.addEvents({'focus':function(){this.timer=this.watchChange.periodical(this.options.changeEventDelay,this);}.bind(this),'blur':function(){this.timer=$clear(this.timer);}.bind(this)});}
+if(this.options.interceptTabs){this.el.addEvent('keypress',function(event){var event=new Event(event);if(event.key==&quot;tab&quot;){event.preventDefault();this.replaceSelection(&quot;\t&quot;);}}.bind(this));}
+if(!$defined(list)||list==&quot;&quot;){list=new Element('li');list.inject(this.el,'before');this.list=list;}
 else{this.list=$(list);}
-this.oldContent=this.el.value;},watchChange:function(){if(this.oldContent!=this.el.value){this.oldContent=this.el.value;this.el.fireEvent('change');}},getSelection:function(){return this.el.getSelectedText();},wrapSelection:function(wrapper,isLast){var isLast=(isLast==null)?true:isLast;this.el.replaceSelectedText(wrapper+this.el.getSelectedText()+wrapper,isLast);},insertBefore:function(insertText,isLast){var isLast=(isLast==null)?true:isLast;this.el.replaceSelectedText(insertText+this.el.getSelectedText(),isLast);},insertAfter:function(insertText,isLast){var isLast=(isLast==null)?true:isLast;this.el.replaceSelectedText(this.el.getSelectedText()+insertText,isLast);},replaceSelection:function(newText,isLast){var isLast=(isLast==null)?true:isLast;this.el.replaceSelectedText(newText,isLast);},processEachLine:function(callback,isLast){var isLast=(isLast==null)?true:isLast;var lines=this.el.getSelectedText().split(&quot;\n&quot;);var newlines=[];lines.each(function(line){if(line!=&quot;&quot;)
+this.oldContent=this.el.get('value');},watchChange:function(){if(this.oldContent!=this.el.get('value')){this.oldContent=this.el.get('value');this.el.fireEvent('change');}},getSelection:function(){return this.el.getSelectedText();},wrapSelection:function(wrapper,isLast){var isLast=(isLast==null)?true:isLast;this.el.replaceSelectedText(wrapper+this.el.getSelectedText()+wrapper,isLast);},insert:function(insertText,where,isLast){var isLast=(isLast==null)?true:isLast;where=(where==&quot;&quot;)?'after':where;var newText=(where==&quot;before&quot;)?insertText+this.el.getSelectedText():this.el.getSelectedText()+insertText;this.el.replaceSelectedText(newText,isLast);},replaceSelection:function(newText,isLast){var isLast=(isLast==null)?true:isLast;this.el.replaceSelectedText(newText,isLast);},processEachLine:function(callback,isLast){var isLast=(isLast==null)?true:isLast;var lines=this.el.getSelectedText().split(&quot;\n&quot;);var newlines=[];lines.each(function(line){if(line!=&quot;&quot;)
 newlines.push(callback.attempt(line,this));else
-newlines.push(&quot;&quot;);}.bind(this));this.el.replaceSelectedText(newlines.join(&quot;\n&quot;),isLast);},getValue:function(){return this.el.value;},setValue:function(text){this.el.setProperty('value',text);this.el.focus();},addFunction:function(name,callback,args){var item=new Element('li');var itemlink=new Element('a',{'events':{'click':function(e){new Event(e).stop();callback.attempt(null,this);}.bind(this)},'href':'#'});itemlink.setHTML('&lt;span&gt;'+name+'&lt;/span&gt;');itemlink.setProperties(args||{});itemlink.injectInside(item);item.injectInside(this.list);}});
\ No newline at end of file
+newlines.push(&quot;&quot;);}.bind(this));this.el.replaceSelectedText(newlines.join(&quot;\n&quot;),isLast);},getValue:function(){return this.el.get('value');},setValue:function(text){this.el.set('value',text);this.el.focus();},addFunction:function(name,callback,args){var item=new Element('li');var itemlink=new Element('a',{'events':{'click':function(e){new Event(e).stop();callback.attempt(null,this);}.bind(this)},'href':'#'});itemlink.set('html','&lt;span&gt;'+name+'&lt;/span&gt;');itemlink.setProperties(args||{});itemlink.inject(item,'bottom');item.injectInside(this.list);}});
\ No newline at end of file</diff>
      <filename>nawte.0.4.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>b71563c898e2a579b32cd674ef6fb04a2ed8c8ef</id>
    </parent>
  </parents>
  <author>
    <name>Jean-Nicolas Jolivet</name>
    <email>silvertab@videotron.ca</email>
  </author>
  <url>http://github.com/SilverTab/nawte/commit/5fa4efb3916ceb2be531a5840e84a5627372cad7</url>
  <id>5fa4efb3916ceb2be531a5840e84a5627372cad7</id>
  <committed-date>2008-06-26T09:19:58-07:00</committed-date>
  <authored-date>2008-06-26T09:19:58-07:00</authored-date>
  <message>Short version updated to reflect full version</message>
  <tree>c8c17c8dce0f88a2e04e41f4e0b8916077676779</tree>
  <committer>
    <name>Jean-Nicolas Jolivet</name>
    <email>silvertab@videotron.ca</email>
  </committer>
</commit>
