/**
 * xui-validation.js (eXtensible Unobtrusive Input Validation)
 * @version 1.1
 * @author Andrew Ramsden
 * @see http://irama.org/web/dhtml/xui-validation/
 * @license Common Public License Version 1.0 <http://www.opensource.org/licenses/cpl1.0.txt>
 * @requires jQuery 1.2.6 <http://jquery.com/>
 * @requires jQuery Utilities 2.2 <http://irama.org/web/dhtml/utilities/>
 */
/**
 * xui-validation configuration
 * Adjust to suit your preferred form markup.
 * @see http://irama.org/web/dhtml/xui-validation/#configuration
 */
	var xuivConf = {
		formSelector             : 'form',
		controlSelector          : 'input[type=text], input[type=password], select, textarea', // we won't try to validate hidden fields, submit buttons etc...
		checkControlSelector     : 'input[type=radio], input[type=checkbox]',
		selectControlSelector    : 'select',
		
		displayErrorSummary      : true, // to turn off error summary block, set to false
		summaryBlockContainer    : '<div id="error-summary"><h1>Unable to process this form</h1><ol></ol></div>',
		summaryBlockContId       : 'error-summary',
		summaryBlockContSelector : 'div#error-summary',
		summaryListSelector      : 'div#error-summary ol',
		summaryItemContainer     : '<li><a></a></li>',
		summaryItemContSelector  : 'li',
		summaryItemSelector      : 'a',
		
		feedbackContainer        : '<span class="valid-feedback"><em class="valid-indicator"></em><span class="confirmation"></span></span>',
		feedbackContSelector     : '.valid-feedback',
		indicatorContSelector    : '.valid-indicator',
		confirmationContainer    : '.valid-feedback .confirmation',
		inlineAlertContainer     : ' <em class="alert"></em>',
		inlineAlertContSelector  : 'em.alert',
		positionOfInlineAlerts   : 'label', // valid values are: 'label' or 'feedback'
		
		formControlContSelector  : '.form-element:lt(1)', // ensure to specify the first instance of each selector :lt(1)
		optionsContSelector      : '.form-element:lt(1)', // ensure to specify the first instance of each selector :lt(1)
		optionsLabelSelector     : '.options-label',
		
		validIcon                : '<img src="valid-30.png" alt="valid" />',
		invalidIcon              : '<img src="invalid.png" alt="invalid" />',
		validClass               : 'valid',
		invalidClass             : 'invalid'
	};

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('I h=[{\'T\':2.1E+\', \'+2.p,\'K\':[\'1d\',\'1J\',\'1a\',\'v\'],\'1h\':8(){6 b}},{\'T\':\'.10 X[V!=1T][V!=v][V!=1S], .10 1Y, .10 1X\',\'K\':[\'1d\',\'1J\',\'1a\',\'v\'],\'1h\':8(){17=\'1V 1U 1Z\';3($(4).z(2.p)){12=$(\'X[A=\'+$(4).k(\'A\')+\']:2a\');3(12.t()==0){6 17}7{11=($(12).1N()==\'\')?b:J}}7{11=($(4).1N()==\'\')?b:J}3(11){3($(4).z(2.p+\', \'+2.20)||1K[0]==\'1a\'||1K[0]==\'v\'){6 17}7{6 U}}7{6 b}}}];(8($){I Y=0;$(29).26(8(){h.22();$(2.1z).1H(1R);$(2.1l);$(2.1B)});1R=8(){x(n 1f h){w=$(4).5(h[n].T);x(m=0;m<w.23;m++){x(o 1f h[n].K){$(w[m]).24(h[n].K[o],S)}3($(w[m]).z(2.p)){j=$(w[m]).D(2.1i);3(j.5(2.Q).t()==0){j.i(2.1s)}}7{3($(w[m]).P().5(2.Q).t()==0){$(w[m]).27(2.1s)}}}}$(4).v(1t)};1r=8(d){3(!2.1m){6}Y=0;q=$(d).5(2.R);3(q.t()>0){q.1Q()}I q=$(2.21).25();$(d).1e(q)}1y=8(d,F,C,c){3(!2.1m){6}q=$(d).5(2.R);3(q.t()==0){6}u=1u(F,d);3(u.t()==0){u=$(\'<y x="\'+F+\'">\'+F+\'</y>\')}E=$(\'<1v></1v>\');3(2.1g==\'y\'){E.i(u.16().1F())}7{E.i(u.16().1F());E.i($(2.1A).i(\' \'+C))}G=q.5(\'a[13=#\'+F+\']\');3(G.t()>0){3(C==b||C==U){14(G)}7{3(G.19().1C(/\\s/g,\'\')!=E.19().1C(/\\s/g,\'\')){14(G)}7{1D(G)}}}7{3(c==\'v\'&&C!=b&&C!=U){1x=$(d).5(2.2y);I 15=$(2.2z);15.5(2.2x).i(E.16()).k(\'13\',\'#\'+F);1x.i(15)}}};14=8(M){3($(M).D(\'W\').t()==0){$(M).2b(\'<W></W>\')}};1D=8(M){$(M).2w(\'W\')};1u=8(f,d){3(O f==\'2t\'){f=(O d!=Z)?$(d).5(\'#\'+f):$(\'#\'+f)}3(O f==\'Z\'){6 f}3($(f).z(2.p)){j=$(f).D(2.1i);u=j.5(2.1O+\':N(1)\')}7{u=$(d).5(\'y[x=\'+$(f).k(\'1j\')+\']\')}6 u};2u=8(1p){$(4).P().5(2.2v).19(1p)};1t=8(l){2B{1r(4);$(4).5(2.1E+\', \'+2.p).2C().1H(S);3(Y>0){$(4).5(2.R+\' a\').2A(8(){18=$(4).k(\'13\');$.1I(18,b);$(18).2s();6 J});$(4).5(2.R).2i();$.1I(2.2g,2f=b);6 J}6 b}2c(e){3(1b&&1b.1M){1b.1M(e.2e+\' \\n\\2j 2k: \'+e.2p+\' \\n\\2q 2o: \'+e.2n)}6 J}};S=8(l,c){3($(4).z(2.p)&&!$(4).1L(\'X[A=\'+$(4).k(\'A\')+\']:N(1)\')){6 S.1c($(\'X[A=\'+$(4).k(\'A\')+\']:N(1)\'),[l])}3(O c==\'Z\'||O c==\'2m\'){c=l.V||\'v\'}3(c==\'1d\'&&l.2l==9){6}I r=1q.1c(4,[c,l]);3($(4).z(2.p)){j=$(4).D(2.1i);3(2.1g==\'y\'){B=j.5(2.1O+\':N(1)\')}7{B=j.5(2.Q+\':N(1)\')}L=j.5(2.1P)}7{3(2.1g==\'y\'){B=$(\'y[x=\'+$(4).k(\'1j\')+\']\')}7{B=$(4).P().5(2.Q)}L=$(4).P().5(2.1P)}L.2h();B.5(2.1w).1Q();H=$(4).D(2.2r);H.1n(2.1k);H.1n(2.1G);3(r==b){H.1o(2.1k);L.1e(2.1l)}7 3(r==U){}7{H.1o(2.1G);L.1e(2.1B);B.i(2.1A).5(2.1w).i(r);Y++}1y($(4).D(2.1z),$(4).k(\'1j\'),r,c)};1q=8(c,l){x(n 1f h){3($.1W(c,h[n].K)==-1){28}3($(4).1L(h[n].T)){r=h[n].1h.1c(4,[c,l]);3(r!=b){6 r}}}6 b}})(2d);',62,163,'||xuivConf|if|this|find|return|else|function|||true|eventType|formEl||formControl||validations|append|optionsContainer|attr|eventObj||||checkControlSelector|summaryBlock|result||size|labelEl|submit|elements|for|label|is|name|errorMessContainer|validationResult|parents|errorMessage|controlId|existingError|formControlContainer|var|false|triggers|indicatorContainer|errorLink|lt|typeof|parent|feedbackContSelector|summaryBlockContSelector|validateControl|match|null|type|del|input|errorCount|undefined|required|isEmpty|checkedOption|href|strikeLinkContents|errorMessageItem|contents|errMsg|inputSelector|text|blur|console|apply|keyup|prepend|in|positionOfInlineAlerts|validate|optionsContSelector|id|validClass|validIcon|displayErrorSummary|removeClass|addClass|confirmation|isValid|clearErrorSummaryBlock|feedbackContainer|validateForm|findLabel|div|inlineAlertContSelector|summaryList|updateErrorSummaryBlock|formSelector|inlineAlertContainer|invalidIcon|replace|unstrikeLinkContents|controlSelector|clone|invalidClass|each|frag|change|arguments|complexIs|debug|val|optionsLabelSelector|indicatorContSelector|remove|initialiseForm|reset|button|be|must|inArray|textarea|select|completed|selectControlSelector|summaryBlockContainer|reverse|length|bind|hide|ready|after|continue|document|checked|wrap|catch|jQuery|message|jumpToAnchor|summaryBlockContId|empty|show|tin|file|keyCode|object|lineNumber|line|fileName|ton|formControlContSelector|focus|string|updateConfirmation|confirmationContainer|unwrap|summaryItemSelector|summaryListSelector|summaryItemContainer|click|try|sortDOM'.split('|'),0,{}))
