/* http://keith-wood.name/realPerson.html
   Real Person Form Submission for jQuery v1.0.1.
   Written by Keith Wood (kwood{at}iinet.com.au) June 2009.
   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and 
   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 
   Please attribute the author if you use it. */
(function($){var f='realPerson';function RealPerson(){this._defaults={length:6,includeNumbers:false,regenerate:'Click to change',hashName:'{n}Hash'}}var g='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';var h=[['   *   ','  * *  ','  * *  ',' *   * ',' ***** ','*     *','*     *'],['****** ','*     *','*     *','****** ','*     *','*     *','****** '],[' ***** ','*     *','*      ','*      ','*      ','*     *',' ***** '],['****** ','*     *','*     *','*     *','*     *','*     *','****** '],['*******','*      ','*      ','****   ','*      ','*      ','*******'],['*******','*      ','*      ','****   ','*      ','*      ','*      '],[' ***** ','*     *','*      ','*      ','*   ***','*     *',' ***** '],['*     *','*     *','*     *','*******','*     *','*     *','*     *'],['*******','   *   ','   *   ','   *   ','   *   ','   *   ','*******'],['      *','      *','      *','      *','      *','*     *',' ***** '],['*     *','*   ** ','* **   ','**     ','* **   ','*   ** ','*     *'],['*      ','*      ','*      ','*      ','*      ','*      ','*******'],['*     *','**   **','* * * *','*  *  *','*     *','*     *','*     *'],['*     *','**    *','* *   *','*  *  *','*   * *','*    **','*     *'],[' ***** ','*     *','*     *','*     *','*     *','*     *',' ***** '],['****** ','*     *','*     *','****** ','*      ','*      ','*      '],[' ***** ','*     *','*     *','*     *','*   * *','*    * ',' **** *'],['****** ','*     *','*     *','****** ','*   *  ','*    * ','*     *'],[' ***** ','*     *','*      ',' ***** ','      *','*     *',' ***** '],['*******','   *   ','   *   ','   *   ','   *   ','   *   ','   *   '],['*     *','*     *','*     *','*     *','*     *','*     *',' ***** '],['*     *','*     *',' *   * ',' *   * ','  * *  ','  * *  ','   *   '],['*     *','*     *','*     *','*  *  *','* * * *','**   **','*     *'],['*     *',' *   * ','  * *  ','   *   ','  * *  ',' *   * ','*     *'],['*     *',' *   * ','  * *  ','   *   ','   *   ','   *   ','   *   '],['*******','     * ','    *  ','   *   ','  *    ',' *     ','*******'],['  ***  ',' *   * ','*     *','*     *','*     *',' *   * ','  ***  '],['   *   ','  **   ',' * *   ','   *   ','   *   ','   *   ','*******'],[' ***** ','*     *','      *','     * ','   **  ',' **    ','*******'],[' ***** ','*     *','      *','    ** ','      *','*     *',' ***** '],['    *  ','   **  ','  * *  ',' *  *  ','*******','    *  ','    *  '],['*******','*      ','****** ','      *','      *','*     *',' ***** '],['  **** ',' *     ','*      ','****** ','*     *','*     *',' ***** '],['*******','     * ','    *  ','   *   ','  *    ',' *     ','*      '],[' ***** ','*     *','*     *',' ***** ','*     *','*     *',' ***** '],[' ***** ','*     *','*     *',' ******','      *','     * ',' ****  ']];$.extend(RealPerson.prototype,{markerClassName:'hasRealPerson',setDefaults:function(a){$.extend(this._defaults,a||{});return this},_attachRealPerson:function(a,b){a=$(a);if(a.hasClass(this.markerClassName)){return}a.addClass(this.markerClassName);var c={settings:$.extend({},this._defaults)};$.data(a[0],f,c);this._changeRealPerson(a,b)},_changeRealPerson:function(a,b,c){a=$(a);if(!a.hasClass(this.markerClassName)){return}b=b||{};if(typeof b=='string'){var d=b;b={};b[d]=c}var e=$.data(a[0],f);$.extend(e.settings,b);a.prevAll('.realperson-challenge,.realperson-hash').remove().end().before(this._generateHTML(a,e))},_generateHTML:function(a,b){var c='';for(var i=0;i<b.settings.length;i++){c+=g.charAt(Math.floor(Math.random()*(b.settings.includeNumbers?36:26)))}var d='<div class="realperson-challenge"><div class="realperson-text">';for(var i=0;i<h[0].length;i++){for(var j=0;j<c.length;j++){d+=h[g.indexOf(c.charAt(j))][i].replace(/ /g,'&nbsp;')+'&nbsp;&nbsp;'}d+='<br>'}d+='</div><div class="realperson-regen">'+b.settings.regenerate+'</div></div><input type="hidden" class="realperson-hash" name="'+b.settings.hashName.replace(/\{n\}/,a.attr('name'))+'" value="'+this._hash(c)+'">';return d},_destroyRealPerson:function(a){a=$(a);if(!a.hasClass(this.markerClassName)){return}a.removeClass(this.markerClassName).prevAll('.realperson-challenge,.realperson-hash').remove();$.removeData(a[0],f)},_hash:function(a){var b=5381;for(var i=0;i<a.length;i++){b=((b<<5)+b)+a.charCodeAt(i)}return b}});$.fn.realperson=function(a){var b=Array.prototype.slice.call(arguments,1);return this.each(function(){if(typeof a=='string'){$.realperson['_'+a+'RealPerson'].apply($.realperson,[this].concat(b))}else{$.realperson._attachRealPerson(this,a||{})}})};$.realperson=new RealPerson();$('.realperson-challenge').live('click',function(){$(this).next().next().realperson('change')})})(jQuery);
