/**
 * LBi Form module
 *
 * @module form
 * @version   1.01.100118
 * @requires  jQuery, LBi
 * @author    LBi Lost Boys
 */
LBi.Forms=(function($){var q=LBi.Class;var r=LBi.Event;var s=LBi.Dispatcher;var t=q.extend(LBi.DOMListener,function(a){this.settings=$.extend({},t.Defaults,a);this.parseNode(document)},{parseNode:function(a){var b=this.settings;var c=$(b.formSelector,a);if(c.length>0){if(b.captureSubmit){s.capture(r.SUBMIT,c)}if(b.captureChange){var d=$('input,select,textarea',c);s.capture(r.CHANGE,d)}if(b.replaceInputs){this.replaceInputs(c)}if(b.hintValues){this.hintValues(c)}}},nodeInserted:function(e){if(this.settings.ajaxEnabled){this.parseNode(e.target)}},nodeRemoved:function(e){var a=this.settings;if(a.captureSubmit){var b=$(a.formSelector,e.target);b.unbind()}if(a.captureChange){var c=$('input,select,textarea',e.target);c.unbind()}},hintValues:function(b){var c=/text|pass/i;var d=$(this.settings.hintSelector,b);var e=this.focusInput.bind(this);var f=this.blurInput.bind(this);d.each(function(){if(!c.test(this.type)){return}var a=$(this);a.bind(r.FOCUS,e);a.bind(r.BLUR,f)});d.trigger(r.BLUR)},focusInput:function(e){var a=e.target;if(a.value===a.title){a.value='';$(a).removeClass(this.settings.hintClass)}},blurInput:function(e){var a=e.target;if(a.value===a.title||a.value===''){a.value=a.title;$(a).addClass(this.settings.hintClass)}},replaceInputs:function(i){var j=/submit|reset/i;var k=/submit/i;var l=this.settings;var m=l.buttonTemplate;var n=l.replacedClass;var o=l.simulateClick;var p=$(l.buttonSelector,i);p.each(function(){if(!j.test(this.type)){return}var c=this;var d=c.form;var f=$(c);var g=$(m.replace(/\$([a-z]+)/mig,function(a,b){return c[b]||''}));f.addClass(n);f.after(g);if(o){var h=k.test(c.type)?r.SUBMIT:r.RESET;g.bind(r.CLICK,function(e){e.preventDefault();if($(d).triggerHandler(h,{explicitTarget:c})!==false){f.trigger(r.CLICK)}})}})}});t.submit=function(a,b){var c=b.handler;var d=b.url;var e=b.type;if(!c){if(s.fire(r.SUBMIT,a)){if(d){a.setAttribute('action',d)}a.submit()}}else{if(s.fire(r.AJAX_SUBMIT,a)){var f=t.serialize(a);var g=d||a.getAttribute('action');var h=a.getAttribute('method');if(h&&/post/i.test(h)){$.post(g,f,c,e)}else{$.get(g,f,c,e)}}}};t.serialize=function(a){var b=[];var c=/(text|select|hidden|pass)/i;var d=/select/i;var e=a.elements||$('input,select,textarea',a);for(var i=0;i<e.length;i++){var f=e[i];var g=f.type;if(c.test(g)||f.checked){if(d.test(f.nodeName)){var h=f.selectedIndex;if(h>=0&&f[h]){var j=f[h];b.push(f.name,'=',encodeURIComponent(j.value||j.text),'&')}}else{b.push(f.name,'=',encodeURIComponent(f.value),'&')}}}return b.join('')};t.Defaults={captureSubmit:true,captureChange:false,ajaxEnabled:true,formSelector:'form',hintValues:true,hintSelector:'input[title]',hintClass:'blurred',replaceInputs:true,buttonSelector:'input',buttonTemplate:'<a href="#" class="$className"><span>$value</span></a>',replacedClass:'replaced',simulateClick:true};return t})(jQuery);

