﻿(function(a){a.fn.rc4=function(d){var c={key:null,method:"encrypt",callback:null},b=a.extend(c,d);if(a.fn.rc4.ctrlrInst==null)a.fn.rc4.ctrlrInst=new a.fn.rc4.ctrlr(b);return this.each(function(){a.fn.rc4.ctrlrInst.settings=b;a.fn.rc4.ctrlrInst.container=this;a.fn.rc4.ctrlrInst.initialise(this)})};a.extend({hexEncode:function(e){var c="0123456789abcdef",d=[];for(var a=0;a<256;a++)d[a]=c.charAt(a>>4)+c.charAt(a&15);var b=[];for(var a=0;a<e.length;a++)b[a]=d[e.charCodeAt(a)];return b.join("")},hexDecode:function(b){var d="0123456789abcdef",e=[];for(var a=0;a<256;a++)e[d.charAt(a>>4)+d.charAt(a&15)]=String.fromCharCode(a);if(!b.match(/^[a-f0-9]*$/i))return false;if(b.length%2)b="0"+b;var c=[],f=0;for(var a=0;a<b.length;a+=2)c[f++]=e[b.substr(a,2)];return c.join("")},rc4Encrypt:function(e,g){s=[];for(var a=0;a<256;a++)s[a]=a;var b=0,c;for(a=0;a<256;a++){b=(b+s[a]+e.charCodeAt(a%e.length))%256;c=s[a];s[a]=s[b];s[b]=c}a=0;b=0;var f="";for(var d=0;d<g.length;d++){a=(a+1)%256;b=(b+s[a])%256;c=s[a];s[a]=s[b];s[b]=c;f+=String.fromCharCode(g.charCodeAt(d)^s[(s[a]+s[b])%256])}return f},rc4Decrypt:function(b,c){return a.rc4Encrypt(b,c)},rc4EncryptStr:function(c,b){return a.hexEncode(a.rc4Encrypt(b,unescape(encodeURIComponent(c))))},rc4DecryptStr:function(b,c){return decodeURIComponent(escape(a.rc4Decrypt(c,a.hexDecode(b))))}});a.rc4={};a.fn.rc4.ctrlrInst=null;a.fn.rc4.ctrlr=function(a){this.settings=a};var b=a.fn.rc4.ctrlr;b.prototype.initialise=function(){if(this.settings.key)if(this.settings.method){if(a.trim(this.settings.method.toUpperCase())=="ENCRYPT")this.setObjectValue(a.hexEncode(a.rc4Encrypt(this.settings.key,this.getObjectValue())));if(a.trim(this.settings.method.toUpperCase())=="DECRYPT")this.setObjectValue(a.rc4Decrypt(this.settings.key,a.hexDecode(this.getObjectValue())))}};b.prototype.getObjectValue=function(){if(a.fn.rc4.ctrlrInst.container.innerHTML)return a.fn.rc4.ctrlrInst.container.innerHTML;if(a.fn.rc4.ctrlrInst.container.value)return a.fn.rc4.ctrlrInst.container.value};b.prototype.setObjectValue=function(b){if(a.fn.rc4.ctrlrInst.container.innerHTML)a.fn.rc4.ctrlrInst.container.innerHTML=b;if(a.fn.rc4.ctrlrInst.container.value)a.fn.rc4.ctrlrInst.container.value=b}})(jQuery)