(function(C,A,B,D){C.fn.caret=function(S,O){var F,I,Q=this[0],K=C.browser.msie;if(typeof S==="object"&&typeof S.start==="number"&&typeof S.end==="number"){F=S.start;I=S.end}else{if(typeof S==="number"&&typeof O==="number"){F=S;I=O}else{if(typeof S==="string"){if((F=Q.value.indexOf(S))>-1){I=F+S[A]}else{F=null}}else{if(Object.prototype.toString.call(S)==="[object RegExp]"){var P=S.exec(Q.value);if(P!=null){F=P.index;I=F+P[0][A]}}}}}if(typeof F!="undefined"){if(K){var L=this[0].createTextRange();L.collapse(true);L.moveStart("character",F);L.moveEnd("character",I-F);L.select()}else{this[0].selectionStart=F;this[0].selectionEnd=I}this[0].focus();return this}else{if(K){var N=document.selection;if(this[0].tagName.toLowerCase()!="textarea"){var G=this.val(),J=N[B]()[D]();J.moveEnd("character",G[A]);var R=(J.text==""?G[A]:G.lastIndexOf(J.text));J=N[B]()[D]();J.moveStart("character",-G[A]);var M=J.text[A]}else{var J=N[B](),E=J[D]();E.moveToElementText(this[0]);E.setEndPoint("EndToEnd",J);var R=E.text[A]-J.text[A],M=R+J.text[A]}}else{var R=Q.selectionStart,M=Q.selectionEnd}var H=Q.value.substring(R,M);return{start:R,end:M,text:H,replace:function(T){return Q.value.substring(0,R)+T+Q.value.substring(M,Q.value[A])}}}}})(jQuery,"length","createRange","duplicate")
