var base2={name:"base2",version:"1.0 (beta 2)",exports:"Base,Package,Abstract,Module,Enumerable,Map,Collection,RegGrp,assert,assertArity,assertType,assignID,copy,detect,extend,forEach,format,global,instanceOf,match,rescape,slice,trim,typeOf,I,K,Undefined,Null,True,False,bind,delegate,flip,not,unbind",global:this,detect:new function(_){var global=_;var jscript=NaN/*@cc_on||@_jscript_version@*/;var java=_.java?true:false;if(_.navigator){var element=document.createElement("span");var userAgent=navigator.platform+" "+navigator.userAgent.replace(/([a-z])[\s\/](\d)/gi,"$1$2");if(!jscript){userAgent=userAgent.replace(/MSIE[\d.]+/,"")}java&=navigator.javaEnabled()}return function(a){var r=false;var b=a.charAt(0)=="!";if(b){a=a.slice(1)}if(a.charAt(0)=="("){try{eval("r=!!"+a)}catch(error){}}else{r=new RegExp("("+a+")","i").test(userAgent)}return !!(b^r)}}(this)};new function(_){var _0="function base(o,a){return o.base.apply(o,a)};";eval(_0);var detect=base2.detect;var Undefined=K(),Null=K(null),True=K(true),False=K(false);var _1=/%([1-9])/g;var _2=/^\s\s*/;var _3=/\s\s*$/;var _4=/([\/()[\]{}|*+-.,^$?\\])/g;var _5=/eval/.test(detect)?/\bbase\s*\(/:/.*/;var _6=["constructor","toString","valueOf"];var _7=detect("(jscript)")?new RegExp("^"+rescape(isNaN).replace(/isNaN/,"\\w+")+"$"):{test:False};var _8=1;var _9=Array.prototype.slice;var slice=Array.slice||function(a){return _9.apply(a,_9.call(arguments,1))};_10();var _11=function(a,b){base2.__prototyping=this.prototype;var c=new this;extend(c,a);delete base2.__prototyping;var d=c.constructor;function _12(){if(!base2.__prototyping){if(this.constructor==arguments.callee||this.__constructing){this.__constructing=true;d.apply(this,arguments);delete this.__constructing}else{return extend(arguments[0],c)}}return this}c.constructor=_12;for(var i in Base){_12[i]=this[i]}_12.toString=K(String(d));_12.ancestor=this;_12.base=Undefined;_12.init=Undefined;extend(_12,b);_12.prototype=c;_12.init();return _12};var Base=_11.call(Object,{constructor:function(){if(arguments.length>0){this.extend(arguments[0])}},base:function(){},extend:delegate(extend)},Base={ancestorOf:delegate(_13),extend:_11,forEach:delegate(_10),implement:function(a){if(typeof a=="function"){if(_13(Base,a)){a(this.prototype)}}else{extend(this.prototype,a)}return this}});var Package=Base.extend({constructor:function(d,e){this.extend(e);if(this.init){this.init()}if(this.name!="base2"){if(!this.parent){this.parent=base2}this.parent.addName(this.name,this);this.namespace=format("var %1=%2;",this.name,String(this).slice(1,-1))}var f=/[^\s,]+/g;if(d){d.imports=Array2.reduce(this.imports.match(f),function(a,b){eval("var ns=base2."+b);assert(ns,format("Package not found: '%1'.",b),ReferenceError);return a+=ns.namespace},_0+base2.namespace+JavaScript.namespace);d.exports=Array2.reduce(this.exports.match(f),function(a,b){var c=this.name+"."+b;this.namespace+="var "+b+"="+c+";";return a+="if(!"+c+")"+c+"="+b+";"},"",this)}},exports:"",imports:"",name:"",namespace:"",parent:null,addName:function(a,b){if(!this[a]){this[a]=b;this.exports+=","+a;this.namespace+=format("var %1=%2.%1;",a,this.name)}},addPackage:function(a){this.addName(a,new Package(null,{name:a,parent:this}))},toString:function(){return format("[%1]",this.parent?String(this.parent).slice(1,-1)+"."+this.name:this.name)}});var Abstract=Base.extend({constructor:function(){throw new TypeError("Class cannot be instantiated.")}});var Module=Abstract.extend(null,{extend:function(a,b){var c=this.base();c.implement(this);c.implement(a);extend(c,b);c.init();return c},implement:function(d){var e=this;if(typeof d=="function"){if(!_13(d,e)){this.base(d)}if(_13(Module,d)){forEach(d,function(a,b){if(!e[b]){if(typeof a=="function"&&a.call&&d.prototype[b]){a=function(){return d[b].apply(d,arguments)}}e[b]=a}})}}else{extend(e,d);_10(Object,d,function(b,c){if(c.charAt(0)=="@"){if(detect(c.slice(1))){forEach(b,arguments.callee)}}else{if(typeof b=="function"&&b.call){e.prototype[c]=function(){var a=_9.call(arguments);a.unshift(this);return e[c].apply(e,a)}}}})}return e}});var Enumerable=Module.extend({every:function(c,d,e){var f=true;try{this.forEach(c,function(a,b){f=d.call(e,a,b,c);if(!f){throw StopIteration}})}catch(error){if(error!=StopIteration){throw error}}return !!f},filter:function(d,e,f){var i=0;return this.reduce(d,function(a,b,c){if(e.call(f,b,c,d)){a[i++]=b}return a},[])},invoke:function(b,c){var d=_9.call(arguments,2);return this.map(b,(typeof c=="function")?function(a){return(a==null)?undefined:c.apply(a,d)}:function(a){return(a==null)?undefined:a[c].apply(a,d)})},map:function(c,d,e){var f=[],i=0;this.forEach(c,function(a,b){f[i++]=d.call(e,a,b,c)});return f},pluck:function(b,c){return this.map(b,function(a){return(a==null)?undefined:a[c]})},reduce:function(c,d,e,f){var g=arguments.length>2;this.forEach(c,function(a,b){if(g){e=d.call(f,e,a,b,c)}else{e=a;g=true}});return e},some:function(a,b,c){return !this.every(a,not(b),c)}},{forEach:forEach});var _14="#";var Map=Base.extend({constructor:function(a){this.merge(a)},copy:delegate(copy),forEach:function(a,b){for(var c in this){if(c.charAt(0)==_14){a.call(b,this[c],c.slice(1),this)}}},get:function(a){return this[_14+a]},getKeys:function(){return this.map(flip(I))},getValues:function(){return this.map(I)},has:function(a){/*@cc_on@*//*@if(@_jscript_version<5.5)return $Legacy.has(this,_14+a);@else@*/return _14+a in this;/*@end@*/},merge:function(b){var c=flip(this.put);forEach(arguments,function(a){forEach(a,c,this)},this);return this},remove:function(a){delete this[_14+a]},put:function(a,b){if(arguments.length==1){b=a}this[_14+a]=b},size:function(){var a=0;for(var b in this){if(b.charAt(0)==_14){a++}}return a},union:function(a){return this.merge.apply(this.copy(),arguments)}});Map.implement(Enumerable);var _15="~";var Collection=Map.extend({constructor:function(a){this[_15]=new Array2;this.base(a)},add:function(a,b){assert(!this.has(a),"Duplicate key '"+a+"'.");this.put.apply(this,arguments)},copy:function(){var a=this.base();a[_15]=this[_15].copy();return a},forEach:function(a,b){var c=this[_15];var d=c.length;for(var i=0;i<d;i++){a.call(b,this[_14+c[i]],c[i],this)}},getAt:function(a){if(a<0){a+=this[_15].length}var b=this[_15][a];return(b===undefined)?undefined:this[_14+b]},getKeys:function(){return this[_15].concat()},indexOf:function(a){return this[_15].indexOf(String(a))},insertAt:function(a,b,c){assert(Math.abs(a)<this[_15].length,"Index out of bounds.");assert(!this.has(b),"Duplicate key '"+b+"'.");this[_15].insertAt(a,String(b));this[_14+b]==null;this.put.apply(this,_9.call(arguments,1))},item:Undefined,put:function(a,b){if(arguments.length==1){b=a}if(!this.has(a)){this[_15].push(String(a))}var c=this.constructor;if(c.Item&&!instanceOf(b,c.Item)){b=c.create.apply(c,arguments)}this[_14+a]=b},putAt:function(a,b){assert(Math.abs(a)<this[_15].length,"Index out of bounds.");arguments[0]=this[_15].item(a);this.put.apply(this,arguments)},remove:function(a){if(this.has(a)){this[_15].remove(String(a));delete this[_14+a]}},removeAt:function(a){var b=this[_15].removeAt(a);delete this[_14+b]},reverse:function(){this[_15].reverse();return this},size:function(){return this[_15].length},sort:function(c){if(c){var d=this;this[_15].sort(function(a,b){return c(d[_14+a],d[_14+b],a,b)})}else{this[_15].sort()}return this},toString:function(){return String(this[_15])}},{Item:null,init:function(){this.prototype.item=this.prototype.getAt},create:function(a,b){return this.Item?new this.Item(a,b):b},extend:function(a,b){var c=this.base(a);c.create=this.create;extend(c,b);if(!c.Item){c.Item=this.Item}else{if(typeof c.Item!="function"){c.Item=(this.Item||Base).extend(c.Item)}}c.init();return c}});var _16=/\\(\d+)/g,_17=/\\./g,_18=/\(\?[:=!]|\[[^\]]+\]/g,_19=/\(/g,_20=/\$(\d+)/,_21=/^\$\d+$/;var RegGrp=Collection.extend({constructor:function(a,b){this.base(a);if(typeof b=="string"){this.global=/g/.test(b);this.ignoreCase=/i/.test(b)}},global:true,ignoreCase:false,exec:function(h,j){var k=(this.global?"g":"")+(this.ignoreCase?"i":"");h=String(h)+"";if(arguments.length==1){var l=this;var m=this[_15];j=function(a){if(a){var b,c=1,i=0;while((b=l[_14+m[i++]])){var d=c+b.length+1;if(arguments[c]){var e=b.replacement;switch(typeof e){case"function":var f=_9.call(arguments,c,d);var g=arguments[arguments.length-2];return e.apply(l,f.concat(g,h));case"number":return arguments[c+e];default:return e}}c=d}}return""}}return h.replace(new RegExp(this,k),j)},insertAt:function(a,b,c){if(instanceOf(b,RegExp)){arguments[1]=b.source}return base(this,arguments)},test:function(a){return this.exec(a)!=a},toString:function(){var e=0;return"("+this.map(function(c){var d=String(c).replace(_16,function(a,b){return"\\"+(1+Number(b)+e)});e+=c.length+1;return d}).join(")|(")+")"}},{IGNORE:"$0",init:function(){forEach("add,get,has,put,remove".split(","),function(b){_22(this,b,function(a){if(instanceOf(a,RegExp)){arguments[0]=a.source}return base(this,arguments)})},this.prototype)},Item:{constructor:function(a,b){if(typeof b=="number"){b=String(b)}else{if(b==null){b=""}}if(typeof b=="string"&&_20.test(b)){if(_21.test(b)){b=parseInt(b.slice(1))}else{var Q=/'/.test(b.replace(/\\./g,""))?'"':"'";b=b.replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\$(\d+)/g,Q+"+(arguments[$1]||"+Q+Q+")+"+Q);b=new Function("return "+Q+b.replace(/(['"])\1\+(.*)\+\1\1$/,"$1")+Q)}}this.length=RegGrp.count(a);this.replacement=b;this.toString=K(String(a))},length:0,replacement:""},count:function(a){a=String(a).replace(_17,"").replace(_18,"");return match(a,_19).length}});var JavaScript={name:"JavaScript",version:base2.version,exports:"Array2,Date2,String2",namespace:"",bind:function(c){forEach(this.exports.match(/\w+/g),function(a){var b=a.slice(0,-1);extend(c[b],this[a]);this[a](c[b].prototype)},this);return this}};if((new Date).getYear()>1900){Date.prototype.getYear=function(){return this.getFullYear()-1900};Date.prototype.setYear=function(a){return this.setFullYear(a+1900)}}Function.prototype.prototype={};if("".replace(/^/,K("$$"))=="$"){extend(String.prototype,"replace",function(a,b){if(typeof b=="function"){var c=b;b=function(){return String(c.apply(null,arguments)).split("$").join("$$")}}return this.base(a,b)})}var Array2=_23(Array,Array,"concat,join,pop,push,reverse,shift,slice,sort,splice,unshift",[Enumerable,{combine:function(d,e){if(!e){e=d}return this.reduce(d,function(a,b,c){a[b]=e[c];return a},{})},contains:function(a,b){return this.indexOf(a,b)!=-1},copy:function(a){var b=_9.call(a);if(!b.swap){this(b)}return b},flatten:function(c){var d=0;return this.reduce(c,function(a,b){if(this.like(b)){this.reduce(b,arguments.callee,a,this)}else{a[d++]=b}return a},[],this)},forEach:_24,indexOf:function(a,b,c){var d=a.length;if(c==null){c=0}else{if(c<0){c=Math.max(0,d+c)}}for(var i=c;i<d;i++){if(a[i]===b){return i}}return -1},insertAt:function(a,b,c){this.splice(a,b,0,c);return c},item:function(a,b){if(b<0){b+=a.length}return a[b]},lastIndexOf:function(a,b,c){var d=a.length;if(c==null){c=d-1}else{if(c<0){c=Math.max(0,d+c)}}for(var i=c;i>=0;i--){if(a[i]===b){return i}}return -1},map:function(c,d,e){var f=[];this.forEach(c,function(a,b){f[b]=d.call(e,a,b,c)});return f},remove:function(a,b){var c=this.indexOf(a,b);if(c!=-1){this.removeAt(a,c)}return b},removeAt:function(a,b){return this.splice(a,b,1)},swap:function(a,b,c){if(b<0){b+=a.length}if(c<0){c+=a.length}var d=a[b];a[b]=a[c];a[c]=d;return a}}]);Array2.reduce=Enumerable.reduce;Array2.like=function(a){return !!(a&&typeof a=="object"&&typeof a.length=="number")};var _25=/^((-\d+|\d{4,})(-(\d{2})(-(\d{2}))?)?)?T((\d{2})(:(\d{2})(:(\d{2})(\.(\d{1,3})(\d)?\d*)?)?)?)?(([+-])(\d{2})(:(\d{2}))?|Z)?$/;var _26={FullYear:2,Month:4,Date:6,Hours:8,Minutes:10,Seconds:12,Milliseconds:14};var _27={Hectomicroseconds:15,UTC:16,Sign:17,Hours:18,Minutes:20};var _28=/(((00)?:0+)?:0+)?\.0+$/;var _29=/(T[0-9:.]+)$/;var Date2=_23(Date,function(a,b,c,h,m,s,d){switch(arguments.length){case 0:return new Date;case 1:return new Date(a);default:return new Date(a,b,arguments.length==2?1:c,h||0,m||0,s||0,d||0)}},"",[{toISOString:function(c){var d="####-##-##T##:##:##.###";for(var e in _26){d=d.replace(/#+/,function(a){var b=c["getUTC"+e]();if(e=="Month"){b++}return("000"+b).slice(-a.length)})}return d.replace(_28,"").replace(_29,"$1Z")}}]);Date2.now=function(){return(new Date).valueOf()};Date2.parse=function(a,b){if(arguments.length>1){assertType(b,"number","defaultDate should be of type 'number'.")}var c=String(a).match(_25);if(c){if(c[_26.Month]){c[_26.Month]--}if(c[_27.Hectomicroseconds]>=5){c[_26.Milliseconds]++}var d=new Date(b||0);var e=c[_27.UTC]||c[_27.Hours]?"UTC":"";for(var f in _26){var value=c[_26[f]];if(!value){continue}d["set"+e+f](value);if(d["get"+e+f]()!=c[_26[f]]){return NaN}}if(c[_27.Hours]){var g=Number(c[_27.Sign]+c[_27.Hours]);var h=Number(c[_27.Sign]+(c[_27.Minutes]||0));d.setUTCMinutes(d.getUTCMinutes()+(g*60)+h)}return d.valueOf()}else{return Date.parse(a)}};var String2=_23(String,function(a){return new String(arguments.length==0?"":a)},"charAt,charCodeAt,concat,indexOf,lastIndexOf,match,replace,search,slice,split,substr,substring,toLowerCase,toUpperCase",[{trim:trim}]);function _23(c,constructor,d,e){var f=Module.extend();forEach(d.match(/\w+/g),function(a){f[a]=unbind(c.prototype[a])});forEach(e,f.implement,f);var g=function(){return f(this.constructor==f?constructor.apply(null,arguments):arguments[0])};g.prototype=f.prototype;forEach(f,function(a,b){if(c[b]){f[b]=c[b];delete f.prototype[b]}g[b]=f[b]});g.ancestor=Object;delete g.extend;if(c!=Array){delete g.forEach}return g}function extend(a,b){if(a&&b){if(arguments.length>2){var c=b;b={};b[c]=arguments[2]}var d=(typeof b=="function"?Function:Object).prototype;var i=_6.length,c;if(base2.__prototyping){while(c=_6[--i]){var e=b[c];if(e!=d[c]){if(_5.test(e)){_22(a,c,e)}else{a[c]=e}}}}for(c in b){if(d[c]===undefined){var e=b[c];if(c.charAt(0)=="@"){if(detect(c.slice(1))){arguments.callee(a,e)}continue}var f=a[c];if(f&&typeof e=="function"){if(e!=f&&(!f.method||!_13(e,f))){if(_5.test(e)){_22(a,c,e)}else{e.ancestor=f;a[c]=e}}}else{a[c]=e}}}}return a}function _13(a,b){while(b){if(!b.ancestor){return false}b=b.ancestor;if(b==a){return true}}return false}function _22(c,d,e){var f=c[d];var g=base2.__prototyping;if(g&&f!=g[d]){g=null}function _30(){var a=this.base;this.base=g?g[d]:f;var b=e.apply(this,arguments);this.base=a;return b}_30.ancestor=f;_30.method=e;_30.toString=function(){return String(e)};c[d]=_30}if(typeof StopIteration=="undefined"){StopIteration=new Error("StopIteration")}function forEach(a,b,c,d){if(a==null){return }if(!d){if(typeof a=="function"&&a.call){d=Function}else{if(typeof a.forEach=="function"&&a.forEach!=arguments.callee){a.forEach(b,c);return }else{if(typeof a.length=="number"){_24(a,b,c);return }}}}_10(d||Object,a,b,c)}function _24(a,b,c){if(a==null){return }var d=a.length,i;if(typeof a=="string"){for(i=0;i<d;i++){b.call(c,a.charAt(i),i,a)}}else{for(i=0;i<d;i++){/*@cc_on@*//*@if(@_jscript_version<5.2)if($Legacy.has(a,i))@else@*/if(i in a){/*@end@*/b.call(c,a[i],i,a)}}}}function _10(g,h,j,k){var l=function(){this.i=1};l.prototype={i:1};var m=0;for(var i in new l){m++}_10=(m>1)?function(a,b,c,d){var e={};for(var f in b){if(!e[f]&&a.prototype[f]===undefined){e[f]=true;c.call(d,b[f],f,b)}}}:function(a,b,c,d){for(var e in b){if(a.prototype[e]===undefined){c.call(d,b[e],e,b)}}};_10(g,h,j,k)}function typeOf(a){var b=typeof a;switch(b){case"object":return a===null?"null":typeof a.call=="function"||_7.test(a)?"function":b;case"function":return typeof a.call=="function"?b:"object";default:return b}}function instanceOf(a,b){if(typeof b!="function"){throw new TypeError("Invalid 'instanceOf' operand.")}if(a==null){return false;/*@cc_on if(typeof a.constructor!="function"){return typeOf(a)==typeof b.prototype.valueOf()}@*//*@if(@_jscript_version<5.1)if($Legacy.instanceOf(a,b))return true;@else@*/}if(a instanceof b){return true;/*@end@*/}if(Base.ancestorOf==b.ancestorOf){return false}if(Base.ancestorOf==a.constructor.ancestorOf){return b==Object}switch(b){case Array:return !!(typeof a=="object"&&a.join&&a.splice);case Function:return typeOf(a)=="function";case RegExp:return typeof a.constructor.$1=="string";case Date:return !!a.getTimezoneOffset;case String:case Number:case Boolean:return typeof a==typeof b.prototype.valueOf();case Object:return true}return false}function assert(a,b,c){if(!a){throw new (c||Error)(b||"Assertion failed.")}}function assertArity(a,b,c){if(b==null){b=a.callee.length}if(a.length<b){throw new SyntaxError(c||"Not enough arguments.")}}function assertType(a,b,c){if(b&&(typeof b=="function"?!instanceOf(a,b):typeOf(a)!=b)){throw new TypeError(c||"Invalid type.")}}function assignID(a){if(!a.base2ID){a.base2ID="b2_"+_8++}return a.base2ID}function copy(a){var b=function(){};b.prototype=a;return new b}function format(c){var d=arguments;var e=new RegExp("%([1-"+arguments.length+"])","g");return String(c).replace(e,function(a,b){return d[b]})}function match(a,b){return String(a).match(b)||[]}function rescape(a){return String(a).replace(_4,"\\$1")}function trim(a){return String(a).replace(_2,"").replace(_3,"")}function I(i){return i}function K(k){return function(){return k}}function bind(a,b){var c=_9.call(arguments,2);return c.length==0?function(){return a.apply(b,arguments)}:function(){return a.apply(b,c.concat.apply(c,arguments))}}function delegate(b,c){return function(){var a=_9.call(arguments);a.unshift(this);return b.apply(c,a)}}function flip(a){return function(){return a.apply(this,Array2.swap(arguments,0,1))}}function not(a){return function(){return !a.apply(this,arguments)}}function unbind(b){return function(a){return b.apply(a,_9.call(arguments,1))}}base2=new Package(this,base2);eval(this.exports);base2.extend=extend;forEach(Enumerable,function(a,b){if(!Module[b]){base2.addName(b,bind(a,Enumerable))}});JavaScript=new Package(this,JavaScript);eval(this.exports)};new function(_){var DOM=new base2.Package(this,{name:"DOM",version:"1.0 (beta 2)",exports:"Interface,Binding,Node,Document,Element,AbstractView,HTMLDocument,HTMLElement,Selector,Traversal,XPathParser,NodeSelector,DocumentSelector,ElementSelector,StaticNodeList,Event,EventTarget,DocumentEvent,ViewCSS,CSSStyleDeclaration",bind:function(a){if(a&&a.nodeType){var b=assignID(a);if(!DOM.bind[b]){switch(a.nodeType){case 1:if(typeof a.className=="string"){(HTMLElement.bindings[a.tagName]||HTMLElement).bind(a)}else{Element.bind(a)}break;case 9:if(a.writeln){HTMLDocument.bind(a)}else{Document.bind(a)}break;default:Node.bind(a)}DOM.bind[b]=true}}return a},"@MSIE5.+win":{bind:function(a){if(a&&a.writeln){a.nodeType=9}return this.base(a)}}});eval(this.imports);var _0=detect("MSIE");var _1=detect("MSIE5");var Interface=Module.extend(null,{implement:function(e){var f=this;if(Interface.ancestorOf(e)){forEach(e,function(a,b){if(e[b]._2){f[b]=function(){return e[b].apply(e,arguments)}}})}else{if(typeof e=="object"){this.forEach(e,function(a,b){if(b.charAt(0)=="@"){forEach(a,arguments.callee)}else{if(typeof a=="function"&&a.call){if(!f[b]){var c="var fn=function _%1(%2){%3.base=%3.%1.ancestor;var m=%3.base?'base':'%1';return %3[m](%4)}";var d="abcdefghij".split("").slice(-a.length);eval(format(c,b,d,d[0],d.slice(1)));fn._2=b;f[b]=fn}}}})}}return this.base(e)}});var Binding=Interface.extend(null,{bind:function(a){return extend(a,this.prototype)}});var Node=Binding.extend({"@!(element.compareDocumentPosition)":{compareDocumentPosition:function(a,b){if(Traversal.contains(a,b)){return 4|16}else{if(Traversal.contains(b,a)){return 2|8}}var c=_3(a);var d=_3(b);if(c<d){return 4}else{if(c>d){return 2}}return 0}}});var _3=document.documentElement.sourceIndex?function(a){return a.sourceIndex}:function(a){var b=0;while(a){b=Traversal.getNodeIndex(a)+"."+b;a=a.parentNode}return b};var Document=Node.extend(null,{bind:function(b){extend(b,"createElement",function(a){return DOM.bind(this.base(a))});AbstractView.bind(b.defaultView);if(b!=window.document){new DOMContentLoadedEvent(b)}return this.base(b)},"@!(document.defaultView)":{bind:function(a){a.defaultView=Traversal.getDefaultView(a);return this.base(a)}}});var _4=/^(href|src|type)$/;var _5={"class":"className","for":"htmlFor"};var Element=Node.extend({"@MSIE.+win":{getAttribute:function(a,b,c){if(a.className===undefined){return this.base(a,b)}var d=_6(a,b);if(d&&(d.specified||b=="value")){if(_4.test(b)){return this.base(a,b,2)}else{if(b=="style"){return a.style.cssText}else{return d.nodeValue}}}return null},setAttribute:function(a,b,c){if(a.className===undefined){this.base(a,b,c)}else{if(b=="style"){a.style.cssText=c}else{c=String(c);var d=_6(a,b);if(d){d.nodeValue=c}else{this.base(a,_5[b]||b,c)}}}}},"@!(element.hasAttribute)":{hasAttribute:function(a,b){return this.getAttribute(a,b)!=null}}});extend(Element.prototype,"cloneNode",function(a){var b=this.base(a||false);b.base2ID=undefined;return b});if(_0){var names="colSpan,rowSpan,vAlign,dateTime,accessKey,tabIndex,encType,maxLength,readOnly,longDesc";extend(_5,Array2.combine(names.toLowerCase().split(","),names.split(",")));var _6=_1?function(a,b){return a.attributes[b]||a.attributes[_5[b.toLowerCase()]]}:function(a,b){return a.getAttributeNode(b)}}var TEXT=_0?"innerText":"textContent";var Traversal=Module.extend({getDefaultView:function(a){return this.getDocument(a).defaultView},getNextElementSibling:function(a){while(a&&(a=a.nextSibling)&&!this.isElement(a)){continue}return a},getNodeIndex:function(a){var b=0;while(a&&(a=a.previousSibling)){b++}return b},getOwnerDocument:function(a){return a.ownerDocument},getPreviousElementSibling:function(a){while(a&&(a=a.previousSibling)&&!this.isElement(a)){continue}return a},getTextContent:function(a){return a[TEXT]},isEmpty:function(a){a=a.firstChild;while(a){if(a.nodeType==3||this.isElement(a)){return false}a=a.nextSibling}return true},setTextContent:function(a,b){return a[TEXT]=b},"@MSIE":{getDefaultView:function(a){return(a.document||a).parentWindow},"@MSIE5":{getOwnerDocument:function(a){return a.ownerDocument||a.document}}}},{contains:function(a,b){while(b&&(b=b.parentNode)&&a!=b){continue}return !!b},getDocument:function(a){return this.isDocument(a)?a:this.getOwnerDocument(a)},isDocument:function(a){return !!(a&&a.documentElement)},isElement:function(a){return !!(a&&a.nodeType==1)},"@(element.contains)":{contains:function(a,b){return a!=b&&(this.isDocument(a)?a==this.getOwnerDocument(b):a.contains(b))}},"@MSIE5":{isElement:function(a){return !!(a&&a.nodeType==1&&a.tagName!="!")}}});var AbstractView=Binding.extend();var Event=Binding.extend({"@!(document.createEvent)":{initEvent:function(a,b,c,d){a.type=b;a.bubbles=c;a.cancelable=d;a.timeStamp=new Date().valueOf()},"@MSIE":{initEvent:function(a,b,c,d){this.base(a,b,c,d);a.cancelBubble=!a.bubbles},preventDefault:function(a){if(a.cancelable!==false){a.returnValue=false}},stopPropagation:function(a){a.cancelBubble=true}}}},{"@!(document.createEvent)":{"@MSIE":{bind:function(a){if(!a.timeStamp){a.bubbles=!!_7[a.type];a.cancelable=!!_8[a.type];a.timeStamp=new Date().valueOf()}if(!a.target){a.target=a.srcElement}a.relatedTarget=a[(a.type=="mouseout"?"to":"from")+"Element"];return this.base(a)}}}});if(_0){var _7="abort,error,select,change,resize,scroll";var _8="click,mousedown,mouseup,mouseover,mousemove,mouseout,keydown,keyup,submit,reset";_7=Array2.combine((_7+","+_8).split(","));_8=Array2.combine(_8.split(","))}var EventTarget=Interface.extend({"@!(element.addEventListener)":{addEventListener:function(a,b,c,d){var e=assignID(a);var f=assignID(c);var g=_9[e];if(!g){g=_9[e]={}}var h=g[b];var i=a["on"+b];if(!h){h=g[b]={};if(i){h[0]=i}}h[f]=c;if(i!==undefined){a["on"+b]=_9._10}},dispatchEvent:function(a,b){return _10.call(a,b)},removeEventListener:function(a,b,c,d){var e=_9[a.base2ID];if(e&&e[b]){delete e[b][c.base2ID]}},"@(element.fireEvent)":{dispatchEvent:function(a,b){var c="on"+b.type;b.target=a;if(a[c]===undefined){return this.base(a,b)}else{return a.fireEvent(c,b)}}}}});var _9=new Base({_10:_10,"@MSIE":{_10:function(){var a=this;var b=(a.document||a).parentWindow;if(a.Infinity){a=b}return _10.call(a,b.event)}}});function _10(a){var b=true;var c=_9[this.base2ID];if(c){Event.bind(a);var d=c[a.type];for(var i in d){var listener=d[i];if(listener.handleEvent){var result=listener.handleEvent(a)}else{result=listener.call(this,a)}if(result===false||a.returnValue===false){b=false}}}return b}var DocumentEvent=Interface.extend({"@!(document.createEvent)":{createEvent:function(a,b){return Event.bind({})},"@(document.createEventObject)":{createEvent:function(a,b){return Event.bind(a.createEventObject())}}},"@(document.createEvent)":{"@!(document.createEvent('Events'))":{createEvent:function(a,b){return this.base(a,b=="Events"?"UIEvents":b)}}}});var DOMContentLoadedEvent=Base.extend({constructor:function(b){var c=false;this.fire=function(){if(!c){c=true;setTimeout(function(){var a=DocumentEvent.createEvent(b,"Events");Event.initEvent(a,"DOMContentLoaded",false,false);EventTarget.dispatchEvent(b,a)},1)}};EventTarget.addEventListener(b,"DOMContentLoaded",function(){c=true},false);this.listen(b)},listen:function(a){EventTarget.addEventListener(Traversal.getDefaultView(a),"load",this.fire,false)},"@MSIE.+win":{listen:function(a){if(a.readyState!="complete"){var b=this;a.write("<script id=__ready defer src=//:><\/script>");a.all.__ready.onreadystatechange=function(){if(this.readyState=="complete"){this.removeNode();b.fire()}}}}},"@KHTML":{listen:function(a){if(a.readyState!="complete"){var b=this;var c=setInterval(function(){if(/loaded|complete/.test(a.readyState)){clearInterval(c);b.fire()}},100)}}}});new DOMContentLoadedEvent(document);Document.implement(DocumentEvent);Document.implement(EventTarget);Element.implement(EventTarget);var _11=/^\d+(px)?$/i;var _12=/(width|height|top|bottom|left|right|fontSize)$/;var _13=/^(color|backgroundColor)$/;var ViewCSS=Interface.extend({"@!(document.defaultView.getComputedStyle)":{"@MSIE":{getComputedStyle:function(a,b,c){var d=b.currentStyle;var e={};for(var i in d){if(_12.test(i)){e[i]=_14(b,e[i])+"px"}else{if(_13.test(i)){e[i]=_15(b,i=="color"?"ForeColor":"BackColor")}else{e[i]=d[i]}}}return e}}},getComputedStyle:function(a,b,c){return _16.bind(this.base(a,b,c))}},{toCamelCase:function(c){return c.replace(/\-([a-z])/g,function(a,b){return b.toUpperCase()})}});function _14(a,b){if(_11.test(b)){return parseInt(b)}var c=a.style.left;var d=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;a.style.left=b||0;b=a.style.pixelLeft;a.style.left=c;a.runtimeStyle.left=d;return b}function _15(a,b){var c=a.document.body.createTextRange();c.moveToElementText(a);var d=c.queryCommandValue(b);return format("rgb(%1,%2,%3)",d&255,(d&65280)>>8,(d&16711680)>>16)}var _16=Binding.extend({getPropertyValue:function(a,b){return this.base(a,_17[b]||b)},"@MSIE.+win":{getPropertyValue:function(a,b){return b=="float"?a.styleFloat:a[ViewCSS.toCamelCase(b)]}}});var CSSStyleDeclaration=_16.extend({setProperty:function(a,b,c,d){return this.base(a,_17[b]||b,c,d)},"@MSIE.+win":{setProperty:function(a,b,c,d){if(b=="opacity"){a.opacity=c;a.zoom=1;a.filter="progid:DXImageTransform.Microsoft.Alpha(opacity="+(c*100)+")"}else{a.cssText+=format("%1:%2 %3;",b,c,d)}}}});var _17=new Base({"@Gecko":{opacity:"-moz-opacity"},"@KHTML":{opacity:"-khtml-opacity"}});AbstractView.implement(ViewCSS);var NodeSelector=Interface.extend({"@!(element.querySelector)":{querySelector:function(a,b){return new Selector(b).exec(a,1)},querySelectorAll:function(a,b){return new Selector(b).exec(a)}}});extend(NodeSelector.prototype,{querySelector:function(a){return DOM.bind(this.base(a))},querySelectorAll:function(b){return extend(this.base(b),"item",function(a){return DOM.bind(this.base(a))})}});var DocumentSelector=NodeSelector.extend();var ElementSelector=NodeSelector.extend({"@!(element.matchesSelector)":{matchesSelector:function(a,b){return new Selector(b).test(a)}}});var StaticNodeList=Base.extend({constructor:function(b){b=b||[];this.length=b.length;this.item=function(a){return b[a]}},length:0,forEach:function(a,b){for(var i=0;i<this.length;i++){a.call(b,this.item(i),i,this)}},item:Undefined,"@(XPathResult)":{constructor:function(b){if(b&&b.snapshotItem){this.length=b.snapshotLength;this.item=function(a){return b.snapshotItem(a)}}else{this.base(b)}}}});StaticNodeList.implement(Enumerable);var CSSParser=RegGrp.extend({constructor:function(a){this.base(a);this.cache={};this.sorter=new RegGrp;this.sorter.add(/:not\([^)]*\)/,RegGrp.IGNORE);this.sorter.add(/([ >](\*|[\w-]+))([^: >+~]*)(:\w+-child(\([^)]+\))?)([^: >+~]*)/,"$1$3$6$4")},cache:null,ignoreCase:true,escape:function(b){var c=/'/g;var d=this._18=[];return this.optimise(this.format(String(b).replace(CSSParser.ESCAPE,function(a){return"\x01"+d.push(a.slice(1,-1).replace(c,"\\'"))})))},format:function(a){return a.replace(CSSParser.WHITESPACE,"$1").replace(CSSParser.IMPLIED_SPACE,"$1 $2").replace(CSSParser.IMPLIED_ASTERISK,"$1*$2")},optimise:function(a){return this.sorter.exec(a.replace(CSSParser.WILD_CARD,">* "))},parse:function(a){return this.cache[a]||(this.cache[a]=this.unescape(this.exec(this.escape(a))))},unescape:function(c){var d=this._18;return c.replace(/\x01(\d+)/g,function(a,b){return d[b-1]})}},{ESCAPE:/'(\\.|[^'\\])*'|"(\\.|[^"\\])*"/g,IMPLIED_ASTERISK:/([\s>+~,]|[^(]\+|^)([#.:\[])/g,IMPLIED_SPACE:/(^|,)([^\s>+~])/g,WHITESPACE:/\s*([\s>+~(),]|^|$)\s*/g,WILD_CARD:/\s\*\s/g,_19:function(c,d,e,f,g,h,i,j){f=/last/i.test(c)?f+"+1-":"";if(!isNaN(d)){d="0n+"+d}else{if(d=="even"){d="2n"}else{if(d=="odd"){d="2n+1"}}}d=d.split(/n\+?/);var a=d[0]?(d[0]=="-")?-1:parseInt(d[0]):1;var b=parseInt(d[1])||0;var k=a<0;if(k){a=-a;if(a==1){b++}}var l=format(a==0?"%3%7"+(f+b):"(%4%3-%2)%6%1%70%5%4%3>=%2",a,b,e,f,h,i,j);if(k){l=g+"("+l+")"}return l}});var XPathParser=CSSParser.extend({constructor:function(){this.base(XPathParser.rules);this.sorter.putAt(1,"$1$4$3$6")},escape:function(a){return this.base(a).replace(/,/g,"\x02")},unescape:function(b){return this.base(b.replace(/\[self::\*\]/g,"").replace(/(^|\x02)\//g,"$1./").replace(/\x02/g," | ")).replace(/'[^'\\]*\\'(\\.|[^'\\])*'/g,function(a){return"concat("+a.split("\\'").join("',\"'\",'")+")"})},"@opera":{unescape:function(a){return this.base(a.replace(/last\(\)/g,"count(preceding-sibling::*)+count(following-sibling::*)+1"))}}},{init:function(){this.values.attributes[""]="[@$1]";forEach(this.types,function(a,b){forEach(this.values[b],a,this.rules)},this)},optimised:{pseudoClasses:{"first-child":"[1]","last-child":"[last()]","only-child":"[last()=1]"}},rules:extend({},{"@!KHTML":{"(^|\\x02) (\\*|[\\w-]+)#([\\w-]+)":"$1id('$3')[self::$2]","([ >])(\\*|[\\w-]+):([\\w-]+-child(\\(([^)]+)\\))?)":function(a,b,c,d,e,f){var g=(b==" ")?"//*":"/*";if(/^nth/i.test(d)){g+=_19(d,f,"position()")}else{g+=XPathParser.optimised.pseudoClasses[d]}return g+"[self::"+c+"]"}}}),types:{identifiers:function(a,b){this[rescape(b)+"([\\w-]+)"]=a},combinators:function(a,b){this[rescape(b)+"(\\*|[\\w-]+)"]=a},attributes:function(a,b){this["\\[([\\w-]+)\\s*"+rescape(b)+"\\s*([^\\]]*)\\]"]=a},pseudoClasses:function(a,b){this[":"+b.replace(/\(\)$/,"\\(([^)]+)\\)")]=a}},values:{identifiers:{"#":"[@id='$1'][1]",".":"[contains(concat(' ',@class,' '),' $1 ')]"},combinators:{" ":"/descendant::$1",">":"/child::$1","+":"/following-sibling::*[1][self::$1]","~":"/following-sibling::$1"},attributes:{"*=":"[contains(@$1,'$2')]","^=":"[starts-with(@$1,'$2')]","$=":"[substring(@$1,string-length(@$1)-string-length('$2')+1)='$2']","~=":"[contains(concat(' ',@$1,' '),' $2 ')]","|=":"[contains(concat('-',@$1,'-'),'-$2-')]","!=":"[not(@$1='$2')]","=":"[@$1='$2']"},pseudoClasses:{"empty":"[not(child::*) and not(text())]","first-child":"[not(preceding-sibling::*)]","last-child":"[not(following-sibling::*)]","not()":_20,"nth-child()":_19,"nth-last-child()":_19,"only-child":"[not(preceding-sibling::*) and not(following-sibling::*)]","root":"[not(parent::*)]"}},"@opera":{init:function(){this.optimised.pseudoClasses["last-child"]=this.values.pseudoClasses["last-child"];this.optimised.pseudoClasses["only-child"]=this.values.pseudoClasses["only-child"];this.base()}}});var _21=new XPathParser;function _20(a,b){return"[not("+_21.exec(trim(b)).replace(/\[1\]/g,"").replace(/^(\*|[\w-]+)/,"[self::$1]").replace(/\]\[/g," and ").slice(1,-1)+")]"}function _19(a,b,c){return"["+CSSParser._19(a,b,c||"count(preceding-sibling::*)+1","last()","not"," and "," mod ","=")+"]"}var _22=":(checked|disabled|enabled|contains)|^(#[\\w-]+\\s*)?\\w+$";if(detect("KHTML")){if(detect("WebKit5")){_22+="|nth\\-|,"}else{_22="."}}_22=new RegExp(_22);var _23;var Selector=Base.extend({constructor:function(a){this.toString=K(trim(a))},exec:function(a,b){return Selector.parse(this)(a,b)},test:function(a){var b=new Selector(this+"[b2-test]");a.setAttribute("b2-test",true);var c=b.exec(Traversal.getOwnerDocument(a),true);a.removeAttribute("b2-test");return c==a},toXPath:function(){return Selector.toXPath(this)},"@(XPathResult)":{exec:function(a,b){if(_22.test(this)){return this.base(a,b)}var c=Traversal.getDocument(a);var d=b?9:7;var e=c.evaluate(this.toXPath(),a,null,d,null);return b?e.singleNodeValue:e}},"@MSIE":{exec:function(a,b){if(typeof a.selectNodes!="undefined"&&!_22.test(this)){var c=b?"selectSingleNode":"selectNodes";return a[c](this.toXPath())}return this.base(a,b)}},"@(true)":{exec:function(a,b){try{var c=this.base(a||document,b)}catch(error){throw new SyntaxError(format("'%1' is not a valid CSS selector.",this))}return b?c:new StaticNodeList(c)}}},{toXPath:function(a){if(!_23){_23=new XPathParser}return _23.parse(a)}});new function(_){var _24={"=":"%1=='%2'","!=":"%1!='%2'","~=":/(^| )%1( |$)/,"|=":/^%1(-|$)/,"^=":/^%1/,"$=":/%1$/,"*=":/%1/};_24[""]="%1!=null";var _25={"checked":"e%1.checked","contains":"e%1[TEXT].indexOf('%2')!=-1","disabled":"e%1.disabled","empty":"Traversal.isEmpty(e%1)","enabled":"e%1.disabled===false","first-child":"!Traversal.getPreviousElementSibling(e%1)","last-child":"!Traversal.getNextElementSibling(e%1)","only-child":"!Traversal.getPreviousElementSibling(e%1)&&!Traversal.getNextElementSibling(e%1)","root":"e%1==Traversal.getDocument(e%1).documentElement"};var _26=detect("(element.sourceIndex)");var _27="var p%2=0,i%2,e%2,n%2=e%1.";var _28=_26?"e%1.sourceIndex":"assignID(e%1)";var _29="var g="+_28+";if(!p[g]){p[g]=1;";var _30="r[r.length]=e%1;if(s)return e%1;";var _31="fn=function(e0,s){indexed++;var r=[],p={},reg=[%1],d=Traversal.getDocument(e0),c=d.body?'toUpperCase':'toString';";var byId=_0?function(a,b){var c=a.all[b]||null;if(!c||c.id==b){return c}for(var i=0;i<c.length;i++){if(c[i].id==b){return c[i]}}return null}:function(a,b){return a.getElementById(b)};var indexed=1;function register(a){if(a.rows){a.b2_length=a.rows.length;a.b2_lookup="rowIndex"}else{if(a.cells){a.b2_length=a.cells.length;a.b2_lookup="cellIndex"}else{if(a.b2_indexed!=indexed){var b=0;var c=a.firstChild;while(c){if(c.nodeType==1&&c.nodeName!="!"){c.b2_index=++b}c=c.nextSibling}a.b2_length=b;a.b2_lookup="b2_index"}}}a.b2_indexed=indexed;return a}var fn;var reg;var _32;var _33;var _34;var _35;var _36={};var parser=new CSSParser({"^ \\*:root":function(a){_33=false;var b="e%2=d.documentElement;if(Traversal.contains(e%1,e%2)){";return format(b,_32++,_32)}," (\\*|[\\w-]+)#([\\w-]+)":function(a,b,c){_33=false;var d="var e%2=byId(d,'%4');if(e%2&&";if(b!="*"){d+="e%2.nodeName=='%3'[c]()&&"}d+="Traversal.contains(e%1,e%2)){";if(_34){d+=format("i%1=n%1.length;",_34)}return format(d,_32++,_32,b,c)}," (\\*|[\\w-]+)":function(a,b){_35++;_33=b=="*";var c=_27;c+=(_33&&_1)?"all":"getElementsByTagName('%3')";c+=";for(i%2=0;(e%2=n%2[i%2]);i%2++){";return format(c,_32++,_34=_32,b)},">(\\*|[\\w-]+)":function(a,b){var c=_0&&_34;_33=b=="*";var d=_27;d+=c?"children":"childNodes";if(!_33&&c){d+=".tags('%3')"}d+=";for(i%2=0;(e%2=n%2[i%2]);i%2++){";if(_33){d+="if(e%2.nodeType==1){";_33=_1}else{if(!c){d+="if(e%2.nodeName=='%3'[c]()){"}}return format(d,_32++,_34=_32,b)},"\\+(\\*|[\\w-]+)":function(a,b){var c="";if(_33&&_0){c+="if(e%1.tagName!='!'){"}_33=false;c+="e%1=Traversal.getNextElementSibling(e%1);if(e%1";if(b!="*"){c+="&&e%1.nodeName=='%2'[c]()"}c+="){";return format(c,_32,b)},"~(\\*|[\\w-]+)":function(a,b){var c="";if(_33&&_0){c+="if(e%1.tagName!='!'){"}_33=false;_35=2;c+="while(e%1=e%1.nextSibling){if(e%1.b2_adjacent==indexed)break;if(";if(b=="*"){c+="e%1.nodeType==1";if(_1){c+="&&e%1.tagName!='!'"}}else{c+="e%1.nodeName=='%2'[c]()"}c+="){e%1.b2_adjacent=indexed;";return format(c,_32,b)},"#([\\w-]+)":function(a,b){_33=false;var c="if(e%1.id=='%2'){";if(_34){c+=format("i%1=n%1.length;",_34)}return format(c,_32,b)},"\\.([\\w-]+)":function(a,b){_33=false;reg.push(new RegExp("(^|\\s)"+rescape(b)+"(\\s|$)"));return format("if(e%1.className&&reg[%2].test(e%1.className)){",_32,reg.length-1)},":not\\((\\*|[\\w-]+)?([^)]*)\\)":function(a,b,c){var d=(b&&b!="*")?format("if(e%1.nodeName=='%2'[c]()){",_32,b):"";d+=parser.exec(c);return"if(!"+d.slice(2,-1).replace(/\)\{if\(/g,"&&")+"){"},":nth(-last)?-child\\(([^)]+)\\)":function(a,b,c){_33=false;b=format("e%1.parentNode.b2_length",_32);var d="if(p%1!==e%1.parentNode)p%1=register(e%1.parentNode);";d+="var i=e%1[p%1.b2_lookup];if(";return format(d,_32)+CSSParser._19(a,c,"i",b,"!","&&","%","==")+"){"},":([\\w-]+)(\\(([^)]+)\\))?":function(a,b,c,d){return"if("+format(_25[b]||"throw",_32,d||"")+"){"},"\\[([\\w-]+)\\s*([^=]?=)?\\s*([^\\]]*)\\]":function(a,b,c,d){var e=_5[b]||b;if(c){var f="e%1.getAttribute('%2',2)";if(!_4.test(b)){f="e%1.%3||"+f}b=format("("+f+")",_32,b,e)}else{b=format("Element.getAttribute(e%1,'%2')",_32,b)}var g=_24[c||""];if(instanceOf(g,RegExp)){reg.push(new RegExp(format(g.source,rescape(parser.unescape(d)))));g="reg[%2].test(%1)";d=reg.length-1}return"if("+format(g,b,d)+"){"}});Selector.parse=function(a){if(!_36[a]){reg=[];fn="";var b=parser.escape(a).split(",");for(var i=0;i<b.length;i++){_33=_32=_34=0;_35=b.length>1?2:0;var c=parser.exec(b[i])||"throw;";if(_33&&_0){c+=format("if(e%1.tagName!='!'){",_32)}var d=(_35>1)?_29:"";c+=format(d+_30,_32);c+=Array(match(c,/\{/g).length+1).join("}");fn+=c}eval(format(_31,reg)+parser.unescape(fn)+"return s?null:r}");_36[a]=fn}return _36[a]}};Document.implement(DocumentSelector);Element.implement(ElementSelector);var HTMLDocument=Document.extend(null,{"@(document.activeElement===undefined)":{bind:function(b){b.activeElement=null;EventTarget.addEventListener(b,"focus",function(a){b.activeElement=a.target},false);return this.base(b)}}});var HTMLElement=Element.extend({addClass:function(a,b){if(!this.hasClass(a,b)){a.className+=(a.className?" ":"")+b}},hasClass:function(a,b){var c=new RegExp("(^|\\s)"+b+"(\\s|$)");return c.test(a.className)},removeClass:function(a,b){var c=new RegExp("(^|\\s)"+b+"(\\s|$)","g");a.className=a.className.replace(c,"$2")},toggleClass:function(a,b){if(this.hasClass(a,b)){this.removeClass(a,b)}else{this.addClass(a,b)}}},{bindings:{},tags:"*",bind:function(a){CSSStyleDeclaration.bind(a.style);return this.base(a)},extend:function(){var b=base(this,arguments);var c=(b.tags||"").toUpperCase().split(",");forEach(c,function(a){HTMLElement.bindings[a]=b});return b},"@!(element.ownerDocument)":{bind:function(a){a.ownerDocument=Traversal.getOwnerDocument(a);return this.base(a)}}});HTMLElement.extend(null,{tags:"APPLET,EMBED",bind:I});eval(this.exports)};if(navigator.appVersion.search(/Safari/)!=-1){NodeList.prototype.forEach=function(B,A){for(var C=0;C<this.length;C++){B.call(A,this.item(C),C,this)}}}if(typeof (base2)=="undefined"){throw new Error("Base2 not found. wForms 3.0 depends on the base2 library.")}if(typeof (wFORMS)=="undefined"){wFORMS={}}wFORMS.NAME="wFORMS";wFORMS.VERSION="3.0";wFORMS.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};wFORMS.toString=function(){return this.__repr__()};wFORMS.behaviors={};wFORMS.helpers={};wFORMS.instances=[];wFORMS.helpers.randomId=function(){var A=(new Date()).getTime();A=A.toString().substr(6);for(var B=0;B<6;B++){A+=String.fromCharCode(48+Math.floor((Math.random()*10)))}return"id_"+A};wFORMS.helpers.getFieldValue=function(C){switch(C.tagName){case"INPUT":if(C.type=="checkbox"){return C.checked?C.value:null}if(C.type=="radio"){return C.checked?C.value:null}return C.value;break;case"SELECT":if(C.selectedIndex==-1){return null}if(C.getAttribute("multiple")){var A=[];for(var B=0;B<C.options.length;B++){if(C.options[B].selected){A.push(C.options[B].value)}}return A}return C.options[C.selectedIndex].value;break;case"TEXTAREA":return C.value;break;default:return null;break}};wFORMS.helpers.getComputedStyle=function(B,A){return document.defaultView.getComputedStyle(B,"").getPropertyValue(A)};wFORMS.helpers.getLeft=function(B){var C=0;while(B.offsetParent){try{if(document.defaultView.getComputedStyle(B,"").getPropertyValue("position")=="relative"){return C}if(C>0&&document.defaultView.getComputedStyle(B,"").getPropertyValue("position")=="absolute"){return C}}catch(A){}C+=B.offsetLeft;B=B.offsetParent}if(!window.opera&&document.all&&document.compatMode&&document.compatMode!="BackCompat"){C+=parseInt(document.body.currentStyle.marginTop)}return C};wFORMS.helpers.getTop=function(B){var C=0;while(B.offsetParent){try{if(document.defaultView.getComputedStyle(B,"").getPropertyValue("position")=="relative"){return C}if(C>0&&document.defaultView.getComputedStyle(B,"").getPropertyValue("position")=="absolute"){return C}}catch(A){}C+=B.offsetTop;B=B.offsetParent}if(!window.opera&&document.all&&document.compatMode&&document.compatMode!="BackCompat"){C+=parseInt(document.body.currentStyle.marginLeft)+1}return C};wFORMS.helpers.useSpotlight=false;wFORMS.helpers.spotlight=function(A){};wFORMS.helpers.activateStylesheet=function(C){if(document.getElementsByTagName){var B=document.getElementsByTagName("link")}else{if(document.styleSheets){var B=document.styleSheets}}for(var A=0;B[A];A++){if(B[A].href.indexOf(C)!=-1){B[A].disabled=true;B[A].disabled=false}}};wFORMS.helpers.contains=function(D,C){var A=D.length;for(var B=0;B<A;B++){if(D[B]===C){return true}}return false};wFORMS.onLoadHandler=function(){var A=document.getElementsByTagName("FORM");for(var B=0;B<A.length;B++){if(A[B].getAttribute("rel")!="no-behavior"){wFORMS.applyBehaviors(A[B])}}};wFORMS.applyBehaviors=function(D){if(!D.querySelectorAll){base2.DOM.bind(D)}if(wFORMS.behaviors["switch"]){var A=wFORMS.behaviors["switch"].applyTo(D);if(!wFORMS.instances["switch"]){wFORMS.instances["switch"]=[A]}else{wFORMS.removeBehavior(D,"switch");wFORMS.instances["switch"].push(A)}}for(var B in wFORMS.behaviors){if(B=="switch"){continue}if(wFORMS.behaviors[B].applyTo){var A=wFORMS.behaviors[B].applyTo(D);if(A&&A.constructor!=Array){A=[A]}for(var C=0;A&&C<A.length;C++){if(!wFORMS.instances[B]){wFORMS.instances[B]=[A[C]]}else{wFORMS.removeBehavior(D,B);wFORMS.instances[B].push(A[C])}}}}if(wFORMS.behaviors.onApplyAll){wFORMS.behaviors.onApplyAll(D)}};wFORMS.removeBehavior=function(C,A){return null;if(!wFORMS.instances[A]){return null}for(var B=0;B<wFORMS.instances[A].length;B++){if(wFORMS.instances[A][B].target==C){wFORMS.instances[A][B]=null}}return null};wFORMS.getBehaviorInstance=function(C,A){if(!C||!wFORMS.instances[A]){return null}for(var B=0;B<wFORMS.instances[A].length;B++){if(wFORMS.instances[A][B].target==C){return wFORMS.instances[A][B]}}return null};base2.DOM.Element.addEventListener(document,"DOMContentLoaded",wFORMS.onLoadHandler,false);wFORMS.helpers.activateStylesheet("wforms-jsonly.css");if(typeof (wFORMS)=="undefined"){throw new Error("wFORMS core not found. This behavior depends on the wFORMS core.")}wFORMS.behaviors.hint={CSS_INACTIVE:"field-hint-inactive",CSS_ACTIVE:"field-hint",HINT_SELECTOR:'*[id$="-H"]',HINT_SUFFIX:"-H",instance:function(A){this.behavior=wFORMS.behaviors.hint;this.target=A}};wFORMS.behaviors.hint.applyTo=function(B){var A=new wFORMS.behaviors.hint.instance(B);B.querySelectorAll(wFORMS.behaviors.hint.HINT_SELECTOR).forEach(function(C){var D=A.getElementByHintId(C.id);if(D){if(!D.addEventListener){base2.DOM.bind(D)}if(D.tagName=="SELECT"||D.tagName=="TEXTAREA"||(D.tagName=="INPUT"&&D.type!="radio"&&D.type!="checkbox")){D.addEventListener("focus",function(E){A.run(E,this)},false);D.addEventListener("blur",function(E){A.run(E,this)},false)}else{D.addEventListener("mouseover",function(E){A.run(E,D)},false);D.addEventListener("mouseout",function(E){A.run(E,D)},false)}}});A.onApply();return A};wFORMS.behaviors.hint.instance.prototype.onApply=function(){};wFORMS.behaviors.hint.instance.prototype.run=function(B,A){var C=this.getHintElement(A);if(!C){return }if(B.type=="focus"||B.type=="mouseover"){C.removeClass(wFORMS.behaviors.hint.CSS_INACTIVE);C.addClass(wFORMS.behaviors.hint.CSS_ACTIVE);this.setup(C,A)}else{C.addClass(wFORMS.behaviors.hint.CSS_INACTIVE);C.removeClass(wFORMS.behaviors.hint.CSS_ACTIVE)}};wFORMS.behaviors.hint.instance.prototype.getElementByHintId=function(C){var B=C.substr(0,C.length-wFORMS.behaviors.hint.HINT_SUFFIX.length);var A=document.getElementById(B);return A};wFORMS.behaviors.hint.instance.prototype.getHintElement=function(A){var B=document.getElementById(A.id+this.behavior.HINT_SUFFIX);if(B&&!B.hasClass){base2.DOM.bind(B)}return B&&B!=""?B:null};wFORMS.behaviors.hint.instance.prototype.setup=function(D,C){var A=((C.tagName=="SELECT"?+C.offsetWidth:0)+wFORMS.helpers.getLeft(C));var B=(wFORMS.helpers.getTop(C)+C.offsetHeight);D.style.left=A+"px";D.style.top=B+"px"};wFORMS.behaviors.hint.isHintId=function(A){return A.match(new RegExp(wFORMS.behaviors.hint.HINT_SUFFIX+"$"))!=null};if(typeof (wFORMS)=="undefined"){throw new Error("wFORMS core not found. This behavior depends on the wFORMS core.")}wFORMS.behaviors.paging={SELECTOR:".wfPage",CSS_PAGE:"wfPage",CSS_CURRENT_PAGE:"wfCurrentPage",CSS_BUTTON_NEXT:"wfPageNextButton",CSS_BUTTON_PREVIOUS:"wfPagePreviousButton",CSS_BUTTON_PLACEHOLDER:"wfPagingButtons",ID_BUTTON_NEXT_PREFIX:"wfPageNextId",ID_BUTTON_PREVIOUS_PREFIX:"wfPagePreviousId",CSS_SUBMIT_HIDDEN:"wfHideSubmit",ID_PAGE_PREFIX:"wfPgIndex-",ID_PLACEHOLDER_SUFFIX:"-buttons",ATTR_INDEX:"wfPageIndex_activate",MESSAGES:{CAPTION_NEXT:"Next Page",CAPTION_PREVIOUS:"Previous Page"},runValidationOnPageNext:true,onPageNext:function(){},onPagePrevious:function(){},onPageChange:function(){},instance:function(A){this.behavior=wFORMS.behaviors.paging;this.target=A;this.currentPageIndex=1}};wFORMS.behaviors.paging.applyTo=function(E){var B=new wFORMS.behaviors.paging.instance(E);var D=wFORMS.behaviors.paging;var C=(wFORMS.behaviors.validation&&wFORMS.behaviors.paging.runValidationOnPageNext);var A=false;E.querySelectorAll(wFORMS.behaviors.paging.SELECTOR).forEach(function(H){A=true;var L=B.getOrCreatePlaceHolder(H);var F=wFORMS.behaviors.paging.getPageIndex(H);if(F==1){var J=base2.DOM.bind(L.appendChild(D._createNextPageButton(F)));if(C){J.addEventListener("click",function(N){var M=wFORMS.getBehaviorInstance(B.target,"validation");if(M.run(N,H)){B.run(N,J)}},false)}else{J.addEventListener("click",function(M){B.run(M,J)},false)}wFORMS.behaviors.paging.showPage(H)}else{var J=base2.DOM.bind(D._createPreviousPageButton(F));L.insertBefore(J,L.firstChild);J.addEventListener("click",function(M){B.run(M,J)},false);if(!wFORMS.behaviors.paging.isLastPageIndex(F,true)){var G=base2.DOM.bind(L.appendChild(D._createNextPageButton(F)));if(C){G.addEventListener("click",function(N){var M=wFORMS.getBehaviorInstance(B.target,"validation");if(M.run(N,H)){B.run(N,G)}},false)}else{G.addEventListener("click",function(M){B.run(M,G)},false)}}}});if(A){p=B.findNextPage(0);B.currentPageIndex=0;B.activatePage(wFORMS.behaviors.paging.getPageIndex(p),false);B.onApply()}return B};wFORMS.behaviors.paging.instance.prototype.onApply=function(){};wFORMS.behaviors.paging.getPageIndex=function(B){if(B&&B.id){var A=B.id.replace(new RegExp(wFORMS.behaviors.paging.ID_PAGE_PREFIX+"(\\d+)"),"$1");A=parseInt(A);return !isNaN(A)?A:false}return false};wFORMS.behaviors.paging.isElementVisible=function(A){while(A&&A.tagName!="BODY"){if(A.className){if(A.className.indexOf(this.CSS_CURRENT_PAGE)!=-1){return true}if(A.className.indexOf(this.CSS_PAGE)!=-1){return false}}A=A.parentNode}return true};wFORMS.behaviors.paging._createNextPageButton=function(A){var B=this.createNextPageButton();B.setAttribute(this.ATTR_INDEX,A+1);B.id=this.ID_BUTTON_NEXT_PREFIX+A;return B};wFORMS.behaviors.paging.createNextPageButton=function(){var A=document.createElement("input");A.setAttribute("value",this.MESSAGES.CAPTION_NEXT);A.type="button";A.className=this.CSS_BUTTON_NEXT;return A};wFORMS.behaviors.paging._createPreviousPageButton=function(A){var B=this.createPreviousPageButton();B.setAttribute(this.ATTR_INDEX,A-1);B.id=this.ID_BUTTON_PREVIOUS_PREFIX+A;return B};wFORMS.behaviors.paging.createPreviousPageButton=function(){var A=document.createElement("input");A.setAttribute("value",this.MESSAGES.CAPTION_PREVIOUS);A.type="button";A.className=this.CSS_BUTTON_PREVIOUS;return A};wFORMS.behaviors.paging.instance.prototype.getOrCreatePlaceHolder=function(A){var C=A.id+this.behavior.ID_PLACEHOLDER_SUFFIX;var B=document.getElementById(C);if(!B){B=A.appendChild(document.createElement("div"));B.id=C;B.className=this.behavior.CSS_BUTTON_PLACEHOLDER}return B};wFORMS.behaviors.paging.hidePage=function(A){if(A){if(!A.removeClass){A.removeClass=function(B){return base2.DOM.HTMLElement.removeClass(this,B)}}if(!A.addClass){A.addClass=function(B){return base2.DOM.HTMLElement.addClass(this,B)}}A.removeClass(wFORMS.behaviors.paging.CSS_CURRENT_PAGE);A.addClass(wFORMS.behaviors.paging.CSS_PAGE)}};wFORMS.behaviors.paging.showPage=function(A){if(A){if(!A.removeClass){A.removeClass=function(B){return base2.DOM.HTMLElement.removeClass(this,B)}}A.removeClass(wFORMS.behaviors.paging.CSS_PAGE);if(!A.addClass){A.addClass=function(B){return base2.DOM.HTMLElement.addClass(this,B)}}A.addClass(wFORMS.behaviors.paging.CSS_CURRENT_PAGE)}};wFORMS.behaviors.paging.instance.prototype.activatePage=function(B){if(arguments.length>1){var E=arguments[1]}else{var E=true}if(B==this.currentPageIndex){return false}B=parseInt(B);if(B>this.currentPageIndex){var C=this.findNextPage(this.currentPageIndex)}else{var C=this.findPreviousPage(this.currentPageIndex)}if(C){var A=this;var B=A.behavior.getPageIndex(C);A.setupManagedControls(B);A.behavior.hidePage(A.behavior.getPageByIndex(A.currentPageIndex));A.behavior.showPage(C);var D=A.currentPageIndex;A.currentPageIndex=B;if(E){if(C.scrollIntoView){C.scrollIntoView()}else{location.hash="#"+wFORMS.behaviors.paging.ID_PAGE_PREFIX+B}}A.behavior.onPageChange(C);if(B>D){A.behavior.onPageNext(C)}else{A.behavior.onPagePrevious(C)}}};wFORMS.behaviors.paging.instance.prototype.setupManagedControls=function(B){if(!B){B=this.currentPageIndex}var A=wFORMS.behaviors.paging;if(A.isFirstPageIndex(B)){if(ctrl=A.getPreviousButton(B)){ctrl.style.visibility="hidden"}}else{if(ctrl=A.getPreviousButton(B)){ctrl.style.visibility="visible"}}if(A.isLastPageIndex(B)){if(ctrl=A.getNextButton(B)){ctrl.style.visibility="hidden"}this.showSubmitButtons()}else{if(ctrl=A.getNextButton(B)){ctrl.style.visibility="visible"}this.hideSubmitButtons()}};wFORMS.behaviors.paging.instance.prototype.showSubmitButtons=function(){var A=this.target.getElementsByTagName("input");for(var B=0;B<A.length;B++){if(A[B].type=="submit"){A[B].className=A[B].className.replace(new RegExp("(^|\\s)"+this.behavior.CSS_SUBMIT_HIDDEN+"(\\s|$)","g"),"$2")}}};wFORMS.behaviors.paging.instance.prototype.hideSubmitButtons=function(){var A=this.target.getElementsByTagName("input");for(var B=0;B<A.length;B++){if(A[B].type=="submit"){if(!(new RegExp("(^|\\s)"+this.behavior.CSS_SUBMIT_HIDDEN+"(\\s|$)")).test(A[B].className)){A[B].className+=" "+this.behavior.CSS_SUBMIT_HIDDEN}}}};wFORMS.behaviors.paging.getPageByIndex=function(A){var B=document.getElementById(wFORMS.behaviors.paging.ID_PAGE_PREFIX+A);return B?base2.DOM.bind(B):false};wFORMS.behaviors.paging.getNextButton=function(A){return document.getElementById(wFORMS.behaviors.paging.ID_BUTTON_NEXT_PREFIX+A)};wFORMS.behaviors.paging.getPreviousButton=function(A){return document.getElementById(wFORMS.behaviors.paging.ID_BUTTON_PREVIOUS_PREFIX+A)};wFORMS.behaviors.paging.isLastPageIndex=function(C,B){C=parseInt(C)+1;var A=wFORMS.behaviors.paging;var D=A.getPageByIndex(C);if((_b=wFORMS.behaviors["switch"])&&!B){while(D&&_b.isSwitchedOff(D)){C++;D=A.getPageByIndex(C)}}return D?false:true};wFORMS.behaviors.paging.isFirstPageIndex=function(C,B){C=parseInt(C)-1;var A=wFORMS.behaviors.paging;var D=A.getPageByIndex(C);if((_b=wFORMS.behaviors["switch"])&&!B){while(D&&_b.isSwitchedOff(D)){C--;D=A.getPageByIndex(C)}}return D?false:true};wFORMS.behaviors.paging.instance.prototype.findNextPage=function(B){B=parseInt(B)+1;var A=wFORMS.behaviors.paging;var C=A.getPageByIndex(B);if(_b=wFORMS.behaviors["switch"]){while(C&&_b.isSwitchedOff(C)){B++;C=A.getPageByIndex(B)}}return C};wFORMS.behaviors.paging.instance.prototype.findPreviousPage=function(B){B=parseInt(B)-1;var A=wFORMS.behaviors.paging;var C=A.getPageByIndex(B);if(_b=wFORMS.behaviors["switch"]){while(C&&_b.isSwitchedOff(C)){B--;C=A.getPageByIndex(B)}}return C?C:false};wFORMS.behaviors.paging.instance.prototype.run=function(B,A){this.activatePage(A.getAttribute(wFORMS.behaviors.paging.ATTR_INDEX))};if(typeof (wFORMS)=="undefined"){throw new Error("wFORMS core not found. This behavior depends on the wFORMS core.")}wFORMS.behaviors.repeat={SELECTOR_REPEAT:'*[class~="repeat"]',SELECTOR_REMOVEABLE:'*[class~="removeable"]',ID_SUFFIX_DUPLICATE_LINK:"-wfDL",ID_SUFFIX_COUNTER:"-RC",CSS_DUPLICATE_LINK:"duplicateLink",CSS_DUPLICATE_SPAN:"duplicateSpan",CSS_DELETE_LINK:"removeLink",CSS_DELETE_SPAN:"removeSpan",CSS_REMOVEABLE:"removeable",CSS_REPEATABLE:"repeat",ATTR_DUPLICATE:"wfr__dup",ATTR_DUPLICATE_ELEM:"wfr__dup_elem",ATTR_HANDLED:"wfr_handled",ATTR_MASTER_SECTION:"wfr__master_sec",ATTR_LINK_SECTION_ID:"wfr_sec_id",MESSAGES:{ADD_CAPTION:"Add another response",ADD_TITLE:"Will duplicate this question or section.",REMOVE_CAPTION:"Remove",REMOVE_TITLE:"Will remove this question or section"},UPDATEABLE_ATTR_ARRAY:["id","name","for"],preserveRadioName:false,CSS_PRESERVE_RADIO_NAME:"preserveRadioName",onRepeat:function(A){},onRemove:function(A){},allowRepeat:function(B,A){return true},instance:function(A){this.behavior=wFORMS.behaviors.repeat;this.target=A}};var _b=wFORMS.behaviors.repeat;var _i=wFORMS.behaviors.repeat.instance;_b.applyTo=function(F){var C=this;var B=new Array();if(!F.querySelectorAll){base2.DOM.bind(F)}F.querySelectorAll(this.SELECTOR_REPEAT).forEach(function(H){if(C.isHandled(H)){return }if(!H.id){H.id=wFORMS.helpers.randomId()}var G=new C.instance(H);var J=G.getOrCreateRepeatLink(H);J.addEventListener("click",function(L){G.run(L,J)},false);G.setElementHandled(H);B.push(G)});if(!F.hasClass){F=base2.DOM.bind(F)}if(F.hasClass(this.CSS_REMOVEABLE)){var A=this.getMasterSection(F);var E=wFORMS.getBehaviorInstance(A,"repeat");if(E){E.getOrCreateRemoveLink(F)}else{if(B[0]){B[0].getOrCreateRemoveLink(F)}}}F.querySelectorAll(this.SELECTOR_REMOVEABLE).forEach(function(J){var G=wFORMS.behaviors.repeat.getMasterSection(J);var H=wFORMS.getBehaviorInstance(G,"repeat");if(H){H.getOrCreateRemoveLink(J)}else{if(B[0]){B[0].getOrCreateRemoveLink(J)}}});for(var D=0;D<B.length;D++){B[D].onApply()}return B};_i.prototype.onApply=function(){};_i.prototype.getOrCreateRepeatLink=function(C){var E=C.id+this.behavior.ID_SUFFIX_DUPLICATE_LINK;var D=document.getElementById(E);if(!D||D==""){D=this.createRepeatLink(E);var A=document.createElement("span");A.className=this.behavior.CSS_DUPLICATE_SPAN;D=A.appendChild(D);if(C.tagName.toUpperCase()=="TR"){var B=C.getElementsByTagName("TD");if(!B){B=C.appendChild(document.createElement("TD"))}else{B=B[B.length-1]}B.appendChild(A)}else{C.appendChild(A)}}return base2.DOM.bind(D)};_i.prototype.createRepeatLink=function(B){var A=document.createElement("A");A.id=B;A.setAttribute("href","#");A.className=this.behavior.CSS_DUPLICATE_LINK;A.setAttribute("title",this.behavior.MESSAGES.ADD_TITLE);A.appendChild(document.createElement("span").appendChild(document.createTextNode(this.behavior.MESSAGES.ADD_CAPTION)));return A};_i.prototype.getOrCreateRemoveLink=function(C){var D=this.createRemoveLink(C.id);if(C.tagName=="TR"){var B=C.getElementsByTagName("TD");var A=B[B.length-1];A.appendChild(D)}else{C.appendChild(D)}};_i.prototype.createRemoveLink=function(D){var B=document.createElement("a");B.id=D+this.behavior.ID_SUFFIX_DUPLICATE_LINK;B.setAttribute("href","#");B.className=this.behavior.CSS_DELETE_LINK;B.setAttribute("title",this.behavior.MESSAGES.REMOVE_TITLE);B.setAttribute(this.behavior.ATTR_LINK_SECTION_ID,D);var C=document.createElement("span");C.appendChild(document.createTextNode(this.behavior.MESSAGES.REMOVE_CAPTION));B.appendChild(C);var A=this;B.onclick=function(E){A.onRemoveLinkClick(E,B)};var C=document.createElement("span");C.className=this.behavior.CSS_DELETE_SPAN;C.appendChild(B);return C};_i.prototype.duplicateSection=function(C){if(!this.behavior.allowRepeat(C,this)){return false}this.updateMasterSection(C);var B=C.cloneNode(true);var A=this.getNextDuplicateIndex(this.target);var D=this.createSuffix(C,A);this.updateDuplicatedSection(B,A,D);B=C.parentNode.insertBefore(B,this.getInsertNode(C));wFORMS.applyBehaviors(B);if(wFORMS.behaviors.calculation){_c=wFORMS.behaviors.calculation;inputItem=B.querySelector("input");if(inputItem){if(inputItem.className.search(_c.VARIABLE_SELECTOR_PREFIX)!=-1){_c.applyTo(inputItem.form)}}}this.behavior.onRepeat(B);wFORMS.helpers.spotlight(B)};_i.prototype.removeSection=function(A){if(A){var A=A.parentNode.removeChild(A);this.behavior.onRemove(A)}};_i.prototype.getInsertNode=function(B){var A=B.nextSibling;if(A&&A.nodeType==1&&!A.hasClass){A=base2.DOM.bind(A)}while(A&&(A.nodeType==3||A.hasClass(this.behavior.CSS_REMOVEABLE))){A=A.nextSibling;if(A&&A.nodeType==1&&!A.hasClass){A=base2.DOM.bind(A)}}return A};_i.prototype.onRemoveLinkClick=function(B,A){var C=document.getElementById(A.getAttribute(this.behavior.ATTR_LINK_SECTION_ID));this.removeSection(C);if(B){B.preventDefault()}};_i.prototype.updateMasterSection=function(A){if(A.doItOnce==true){return true}else{A.doItOnce=true}var B=this.createSuffix(A);A.id=this.clearSuffix(A.id)+B;this.updateMasterElements(A,B)};_i.prototype.updateMasterElements=function(B,J){if(!B||B.nodeType!=1){return }var G=B.childNodes;for(var E=0;E<G.length;E++){var A=G[E];if(A.nodeType!=1){continue}if(!A.hasClass){A.hasClass=function(L){return base2.DOM.HTMLElement.hasClass(this,L)}}var C=J;if(A.hasClass(this.behavior.CSS_REPEATABLE)){J+="[0]"}if(!A.hasClass(this.behavior.CSS_REMOVEABLE)){for(var D=0;D<this.behavior.UPDATEABLE_ATTR_ARRAY.length;D++){var F=this.behavior.UPDATEABLE_ATTR_ARRAY[D];var H=this.clearSuffix(A.getAttribute(F));if(!H){continue}if(F=="id"&&wFORMS.behaviors.hint&&wFORMS.behaviors.hint.isHintId(A.id)){A.id=H.replace(new RegExp("(.*)("+wFORMS.behaviors.hint.HINT_SUFFIX+")$"),"$1"+J+"$2")}else{if(F=="id"&&wFORMS.behaviors.validation&&wFORMS.behaviors.validation.isErrorPlaceholderId(A.id)){A.id=H.replace(new RegExp("(.*)("+wFORMS.behaviors.validation.ERROR_PLACEHOLDER_SUFFIX+")$"),"$1"+J+"$2")}else{if(F=="id"&&A.id.indexOf(this.behavior.ID_SUFFIX_DUPLICATE_LINK)!=-1){A.id=H.replace(new RegExp("(.*)("+this.behavior.ID_SUFFIX_DUPLICATE_LINK+")$"),"$1"+J+"$2")}else{if(F=="id"){A.id=H+J}else{if(F=="name"){A.name=H+J}else{A.setAttribute(F,H+J)}}}}}}this.updateMasterElements(A,J)}J=C}};_i.prototype.updateDuplicatedSection=function(C,A,D){C[this.behavior.ATTR_MASTER_SECTION]=C.id;C.id=this.clearSuffix(C.id)+D;C.className=C.className.replace(this.behavior.CSS_REPEATABLE,this.behavior.CSS_REMOVEABLE);if(!C.hasClass){C.hasClass=function(E){return base2.DOM.HTMLElement.hasClass(this,E)}}if(C.hasClass(this.behavior.CSS_PRESERVE_RADIO_NAME)){var B=true}else{var B=this.behavior.preserveRadioName}this.updateSectionChildNodes(C,D,B)};_i.prototype.updateSectionChildNodes=function(D,F,A){var B=new Array();var C=0;while(D&&D.childNodes&&D.childNodes[C]){var E=D.childNodes[C];C++;if(E.nodeType!=1){continue}if(!E.hasClass){E.hasClass=function(G){return base2.DOM.HTMLElement.hasClass(this,G)}}if(this.behavior.isDuplicate(E)){B.push(E);continue}if(E.hasClass(this.behavior.CSS_DUPLICATE_SPAN)){B.push(E);continue}if(E.hasClass(this.behavior.CSS_DUPLICATE_LINK)){B.push(E);continue}if(E.tagName=="INPUT"||E.tagName=="TEXTAREA"){if(E.type!="radio"&&E.type!="checkbox"){E.value=""}else{E.checked=false}}this.updateAttributes(E,F,A);if(E.hasClass(this.behavior.CSS_REPEATABLE)){this.updateSectionChildNodes(E,this.createSuffix(E),A)}else{this.updateSectionChildNodes(E,F,A)}}for(var C=0;C<B.length;C++){var E=B[C];if(E.clearAttributes){E.clearAttributes(false)}if(E.parentNode){E.parentNode.removeChild(E)}}};_i.prototype.createSuffix=function(E,B){var D="["+(B?B:"0")+"]";var C=/\[(\d+)\]$/;E=E.parentNode;while(E){if(!E.hasClass){E.hasClass=function(F){return base2.DOM.HTMLElement.hasClass(this,F)}}if(E.hasClass(this.behavior.CSS_REPEATABLE)||E.hasClass(this.behavior.CSS_REMOVEABLE)){var A=C.exec(E.id);if(A){A=A[1]}D="["+(A?A:"0")+"]"+D}E=E.parentNode}return D};_i.prototype.clearSuffix=function(A){if(!A){return }if(A.indexOf("[")!=-1){return A.substring(0,A.indexOf("["))}return A};_i.prototype.updateAttributes=function(F,D,H){var L=wFORMS.behaviors.hint&&wFORMS.behaviors.hint.isHintId(F.id);var C=wFORMS.behaviors.validation&&wFORMS.behaviors.validation.isErrorPlaceholderId(F.id);var B=F.id.indexOf(this.behavior.ID_SUFFIX_DUPLICATE_LINK)!=-1;this.setInDuplicateGroup(F);if(this.behavior.isHandled(F)){this.removeHandled(F)}if(wFORMS.behaviors["switch"]&&wFORMS.behaviors["switch"].isHandled(F)){wFORMS.behaviors["switch"].removeHandle(F)}var A=this.behavior.UPDATEABLE_ATTR_ARRAY.length;for(var E=0;E<A;E++){var G=this.behavior.UPDATEABLE_ATTR_ARRAY[E];var J=this.clearSuffix(F.getAttribute(G));if(!J){continue}if(G=="name"&&F.tagName=="INPUT"&&H){continue}else{if(C&&G=="id"){F.id=J+D+wFORMS.behaviors.validation.ERROR_PLACEHOLDER_SUFFIX}else{if(L&&G=="id"){F.id=J+D+wFORMS.behaviors.hint.HINT_SUFFIX}else{if(B&&G=="id"){F.id=J.replace(new RegExp("(.*)("+this.behavior.ID_SUFFIX_DUPLICATE_LINK+")$"),"$1"+D+"$2")}else{if(G=="id"){F.id=J+D}else{if(G=="name"){F.name=J+D}else{F.setAttribute(G,J+D)}}}}}}}};_i.prototype.getNextDuplicateIndex=function(A){var C=this.getOrCreateCounterField(A);var B=parseInt(C.value)+1;C.value=B;return B};_i.prototype.getOrCreateCounterField=function(C){var A=C.id+this.behavior.ID_SUFFIX_COUNTER;var B=document.getElementById(A);if(!B||B==""){B=this.createCounterField(A);var D=C.parentNode;while(D&&D.tagName.toUpperCase()!="FORM"){D=D.parentNode}D.appendChild(B)}return B};_i.prototype.createCounterField=function(A){cElem=document.createElement("input");cElem.id=A;cElem.setAttribute("type","hidden");cElem.setAttribute("name",A);cElem.value="0";return cElem};_i.prototype.getSectionsCount=function(){if(this.behavior.isDuplicate(this.target)){return false}return parseInt(this.getOrCreateCounterField(this.target).value)+1};_i.prototype.setInDuplicateGroup=function(A){return A.setAttribute(this.behavior.ATTR_DUPLICATE_ELEM,true)};_i.prototype.setElementHandled=function(A){return A.setAttribute(this.behavior.ATTR_HANDLED,true)};_i.prototype.removeHandled=function(A){return A.removeAttribute(this.behavior.ATTR_HANDLED)};_b.isDuplicate=function(A){return A.hasClass(this.CSS_REMOVEABLE)};_b.isInDuplicateGroup=function(A){return A.getAttribute(this.ATTR_DUPLICATE_ELEM)?true:false};_b.isHandled=function(A){return A.getAttribute(this.ATTR_HANDLED)};_b.getMasterSection=function(A){if(!this.isDuplicate(A)){return false}return document.getElementById(A[this.ATTR_MASTER_SECTION])};_i.prototype.run=function(B,A){this.duplicateSection(this.target);if(B){B.preventDefault()}};if(typeof (wFORMS)=="undefined"){throw new Error("wFORMS core not found. This behavior depends on the wFORMS core.")}wFORMS.behaviors["switch"]={SELECTOR:'*[class*="switch-"]',CSS_PREFIX:"switch-",CSS_OFFSTATE_PREFIX:"offstate-",CSS_ONSTATE_PREFIX:"onstate-",CSS_ONSTATE_FLAG:"swtchIsOn",CSS_OFFSTATE_FLAG:"swtchIsOff",onSwitchOn:function(A){},onSwitchOff:function(A){},onSwitch:function(A){},instance:function(A){this.behavior=wFORMS.behaviors["switch"];this.target=A}};wFORMS.behaviors["switch"].applyTo=function(B){var A=new wFORMS.behaviors["switch"].instance(B);B.querySelectorAll(wFORMS.behaviors["switch"].SELECTOR).forEach(function(G){if(!G.id){G.id=wFORMS.helpers.randomId()}switch(G.tagName.toUpperCase()){case"OPTION":var C=G.parentNode;while(C&&C.tagName!="SELECT"){C=C.parentNode}if(!C.addEventListener){base2.DOM.bind(C)}if(C&&!wFORMS.behaviors["switch"].isHandled(C)){C.addEventListener("change",function(H){A.run(H,C)},false);A.setupTargets(C);wFORMS.behaviors["switch"].handleElement(C)}break;case"INPUT":if(G.type&&G.type.toUpperCase()=="RADIO"){if(!wFORMS.behaviors["switch"].isHandled(G)){A.setupTargets(G)}var D=G.form[G.name];for(var F=D.length-1;F>=0;F--){var E=base2.DOM.bind(D[F]);if(!wFORMS.behaviors["switch"].isHandled(E)){E.addEventListener("click",function(H){A.run(H,E)},false);wFORMS.behaviors["switch"].handleElement(E)}}}else{G.addEventListener("click",function(H){A.run(H,G)},false);A.setupTargets(G)}break;default:G.addEventListener("click",function(H){A.run(H,G)},false);break}});A.onApply();return A};wFORMS.behaviors["switch"].instance.prototype.onApply=function(){};wFORMS.behaviors["switch"].isHandled=function(A){return A.getAttribute("rel")&&A.getAttribute("rel").indexOf("wfHandled")>-1};wFORMS.behaviors["switch"].handleElement=function(A){return A.setAttribute("rel",(A.getAttribute("rel")||"")+" wfHandled")};wFORMS.behaviors["switch"].removeHandle=function(A){if(attr=A.getAttribute("rel")){if(attr=="wfHandled"){A.removeAttribute("rel")}else{if(attr.indexOf("wfHandled")!=-1){A.setAttribute("rel",attr.replace(/(.*)( wfHandled)(.*)/,"$1$3"))}}}};wFORMS.behaviors["switch"].instance.prototype.getTriggersByElements=function(A,J){var C={ON:new Array(),OFF:new Array(),toString:function(){return"ON: "+this.ON+"\nOFF: "+this.OFF}};for(var G=0;G<A.length;G++){var D=A[G];switch(D.tagName.toUpperCase()){case"OPTION":if(D.selected){C.ON=C.ON.concat(this.behavior.getSwitchNamesFromTrigger(D,J))}else{C.OFF=C.OFF.concat(this.behavior.getSwitchNamesFromTrigger(D,J))}break;case"SELECT":for(var E=0;E<D.options.length;E++){var B=D.options.item(E);if(B.selected){C.ON=C.ON.concat(this.behavior.getSwitchNamesFromTrigger(B,J))}else{C.OFF=C.OFF.concat(this.behavior.getSwitchNamesFromTrigger(B,J))}}break;case"INPUT":if(D.type&&D.type.toUpperCase()=="RADIO"){var F=D.form[D.name];if(!F){break}for(var E=F.length-1;E>=0;E--){var M=F[E];if(M==D||!wFORMS.helpers.contains(A,M)){if(M.checked){C.ON=C.ON.concat(this.behavior.getSwitchNamesFromTrigger(M,J))}else{C.OFF=C.OFF.concat(this.behavior.getSwitchNamesFromTrigger(M,J))}}}}else{if(D.checked){C.ON=C.ON.concat(this.behavior.getSwitchNamesFromTrigger(D,J))}else{C.OFF=C.OFF.concat(this.behavior.getSwitchNamesFromTrigger(D,J))}}break;default:if(D.hasClass(this.behavior.CSS_ONSTATE_FLAG)){C.ON=C.ON.concat(this.behavior.getSwitchNamesFromTrigger(D,J))}else{C.OFF=C.OFF.concat(this.behavior.getSwitchNamesFromTrigger(D,J))}break}}var H=new Array();for(var G=0;G<C.ON.length;G++){if(!wFORMS.helpers.contains(H,C.ON[G])){H.push(C.ON[G])}}var L=new Array();for(var G=0;G<C.OFF.length;G++){if(!wFORMS.helpers.contains(L,C.OFF[G])){L.push(C.OFF[G])}}C.ON=H;C.OFF=L;return C};wFORMS.behaviors["switch"].getSwitchNamesFromTrigger=function(B,A){return wFORMS.behaviors["switch"].getSwitchNames(B.className,"trigger",A)};wFORMS.behaviors["switch"].getSwitchNamesFromTarget=function(B,A){return wFORMS.behaviors["switch"].getSwitchNames(B.className,"target",A)};wFORMS.behaviors["switch"].getSwitchNames=function(D,C,H){if(!D||D==""){return[]}var F=D.split(" ");var J=new Array();if(C=="trigger"){var E=true}else{var E=false}for(var B=F.length-1;B>=0;B--){var G=F[B];if(E){if(G.indexOf(this.CSS_PREFIX)==0){var A=G.substring(this.CSS_PREFIX.length)}}else{if(G.indexOf(this.CSS_ONSTATE_PREFIX)==0){var A=G.substring(this.CSS_ONSTATE_PREFIX.length)}else{if(G.indexOf(this.CSS_OFFSTATE_PREFIX)==0){var A=G.substring(this.CSS_OFFSTATE_PREFIX.length)}}}if(A&&(!H||wFORMS.helpers.contains(H,A))){J.push(A)}}return J};wFORMS.behaviors["switch"].instance.prototype.getTargetsBySwitchName=function(F,E){var C=new Array();var B=this;var A=wFORMS.behaviors.repeat;if(arguments[1]=="ON"){var D=[wFORMS.behaviors["switch"].CSS_ONSTATE_PREFIX+F]}else{var D=[wFORMS.behaviors["switch"].CSS_OFFSTATE_PREFIX+F]}this.target.querySelectorAll("."+D).forEach(function(G){if(A&&A.isInDuplicateGroup(G)&&!(A.isDuplicate(B.target)||A.isInDuplicateGroup(B.target))){return }C.push(base2.DOM.bind(G))});return C};wFORMS.behaviors["switch"].instance.prototype.getTriggersByTarget=function(E){var C=new Array();var B=this;var D=wFORMS.behaviors["switch"].getSwitchNamesFromTarget(E);var A=wFORMS.behaviors.repeat;base2.forEach(D,function(F){B.target.querySelectorAll("."+wFORMS.behaviors["switch"].CSS_PREFIX+F).forEach(function(G){if(A&&A.isInDuplicateGroup(G)&&!(A.isDuplicate(E)||A.isInDuplicateGroup(E))){return }C.push(base2.DOM.bind(G))})});return this.getTriggersByElements(C,D)};wFORMS.behaviors["switch"].instance.prototype.setupTargets=function(A){this.run(null,A)};wFORMS.behaviors["switch"].isSwitchedOff=function(A){return(A.className.match(new RegExp(wFORMS.behaviors["switch"].CSS_OFFSTATE_PREFIX+"[^ ]*"))?true:false)&&(A.className.match(new RegExp(wFORMS.behaviors["switch"].CSS_ONSTATE_PREFIX+"[^ ]*"))?false:true)};wFORMS.behaviors["switch"].instance.prototype.run=function(D,B){if(!B.hasClass){base2.DOM.bind(B)}if(B.hasClass(this.behavior.CSS_ONSTATE_FLAG)){B.removeClass(this.behavior.CSS_ONSTATE_FLAG);B.addClass(this.behavior.CSS_OFFSTATE_FLAG);if(D){D.preventDefault()}}else{if(B.hasClass(this.behavior.CSS_OFFSTATE_FLAG)){B.removeClass(this.behavior.CSS_OFFSTATE_FLAG);B.addClass(this.behavior.CSS_ONSTATE_FLAG);if(D){D.preventDefault()}}}var C=this.getTriggersByElements(new Array(B));var A=this;base2.forEach(C.OFF,function(F){var E=A.getTargetsBySwitchName(F,"ON");base2.forEach(E,function(H){H.addClass(wFORMS.behaviors["switch"].CSS_OFFSTATE_PREFIX+F);H.removeClass(wFORMS.behaviors["switch"].CSS_ONSTATE_PREFIX+F);var G=A.getTriggersByTarget(H);if(G.ON.length==0){A.behavior.onSwitchOff(H)}})});base2.forEach(C.ON,function(F){var E=A.getTargetsBySwitchName(F,"OFF");base2.forEach(E,function(G){G.removeClass(wFORMS.behaviors["switch"].CSS_OFFSTATE_PREFIX+F);G.addClass(wFORMS.behaviors["switch"].CSS_ONSTATE_PREFIX+F);A.behavior.onSwitchOn(G)})});if(b=wFORMS.getBehaviorInstance(this.target,"paging")){b.setupManagedControls()}this.behavior.onSwitch(this.target)};if(typeof (wFORMS)=="undefined"){throw new Error("wFORMS core not found. This behavior depends on the wFORMS core.")}wFORMS.behaviors.validation={ERROR_PLACEHOLDER_SUFFIX:"-E",rules:{isRequired:{selector:".required",check:"validateRequired"},isAlpha:{selector:".validate-alpha",check:"validateAlpha"},isAlphanum:{selector:".validate-alphanum",check:"validateAlphanum"},isDate:{selector:".validate-date",check:"validateDate"},isTime:{selector:".validate-time",check:"validateTime"},isEmail:{selector:".validate-email",check:"validateEmail"},isInteger:{selector:".validate-integer",check:"validateInteger"},isFloat:{selector:".validate-float",check:"validateFloat"},isCustom:{selector:".validate-custom",check:"validateCustom"}},styling:{fieldError:"errFld",errorMessage:"errMsg"},messages:{isRequired:"This field is required. ",isAlpha:"The text must use alphabetic characters only (a-z, A-Z). Numbers are not allowed.",isEmail:"This does not appear to be a valid email address.",isInteger:"Please enter an integer.",isFloat:"Please enter a number (ex. 1.9).",isAlphanum:"Please use alpha-numeric characters only [a-z 0-9].",isDate:"This does not appear to be a valid date.",isCustom:"Please enter a valid value.",notification:"%% error(s) detected. Your form has not been submitted yet.\nPlease check the information you provided."},instance:function(A){this.behavior=wFORMS.behaviors.validation;this.target=A},onPass:function(A){},onFail:function(A){}};wFORMS.behaviors.validation.applyTo=function(D){if(!D||!D.tagName){throw new Error("Can't apply behavior to "+D)}if(D.tagName!="FORM"){if(D.form){D=D.form}else{var E=D;for(D=D.parentNode;D&&D.tagName!="FORM";D=D.parentNode){continue}if(!D||D.tagName!="FORM"){D=E.getElementsByTagName("form")}}}if(!D.tagName&&D.length>0){var A=new Array();for(var B=0;B<D.length;B++){var C=new wFORMS.behaviors.validation.instance(D[B]);if(!D[B].addEventListener){base2.DOM.bind(D[B])}D[B].addEventListener("submit",function(F){return C.run(F,this)},false);A.push(C);C.onApply()}}else{var A=new wFORMS.behaviors.validation.instance(D);if(!D.addEventListener){base2.DOM.bind(D)}D.addEventListener("submit",function(F){return A.run(F,this)},false);A.onApply()}return A};wFORMS.behaviors.validation.instance.prototype.onApply=function(){};wFORMS.behaviors.validation.instance.prototype.run=function(E,B){var F=0;this.elementsInError={};for(var C in this.behavior.rules){var D=this.behavior.rules[C];var A=this;if(!B.querySelectorAll){base2.DOM.bind(B)}B.querySelectorAll(D.selector).forEach(function(G){if(wFORMS.behaviors.paging&&!wFORMS.behaviors.paging.isElementVisible(G)){return }if(A.isSwitchedOff(G)){return }var H=wFORMS.helpers.getFieldValue(G);if(D.check.call){var J=D.check.call(A,G,H)}else{var J=A[D.check].call(A,G,H)}if(!J){if(!G.id){G.id=wFORMS.helpers.randomId()}A.elementsInError[G.id]={id:G.id,rule:C};A.removeErrorMessage(G);if(D.fail){D.fail.call(A,G,C)}else{A.fail.call(A,G,C)}F++}else{if(!A.elementsInError[G.id]){A.removeErrorMessage(G)}if(D.pass){D.pass.call(A,G)}else{A.pass.call(A,G)}}})}if(F>0){if(E){E.preventDefault?E.preventDefault():E.returnValue=false}if(this.behavior.onFail){this.behavior.onFail(this)}return false}if(this.behavior.onPass){this.behavior.onPass(this)}return true};wFORMS.behaviors.validation.instance.prototype.fail=function(A,B){A.addClass(this.behavior.styling.fieldError);this.addErrorMessage(A,this.behavior.messages[B])},wFORMS.behaviors.validation.instance.prototype.pass=function(A){};wFORMS.behaviors.validation.instance.prototype.addErrorMessage=function(A,B){if(!A.id){A.id=wFORMS.helpers.randomId()}var C=document.createTextNode(B);var D=document.getElementById(A.id+this.behavior.ERROR_PLACEHOLDER_SUFFIX);if(!D){D=document.createElement("div");D.setAttribute("id",A.id+this.behavior.ERROR_PLACEHOLDER_SUFFIX);if(A.tagName=="TR"){D=(A.getElementsByTagName("TD")[0]).appendChild(D)}else{D=A.parentNode.insertBefore(D,A.nextSibling)}}D.appendChild(C);base2.DOM.bind(D);D.addClass(this.behavior.styling.errorMessage)};wFORMS.behaviors.validation.instance.prototype.removeErrorMessage=function(B){if(!B.hasClass){base2.DOM.bind(B)}if(B.hasClass(this.behavior.styling.fieldError)){B.removeClass(this.behavior.styling.fieldError);var A=document.getElementById(B.id+this.behavior.ERROR_PLACEHOLDER_SUFFIX);if(A){A.parentNode.removeChild(A)}}};wFORMS.behaviors.validation.instance.prototype.isSwitchedOff=function(B){var C=wFORMS.getBehaviorInstance(this.target,"switch");if(C){var A=B;while(A&&A.tagName!="BODY"){if(A.className&&A.className.indexOf(C.behavior.CSS_OFFSTATE_PREFIX)!=-1&&A.className.indexOf(C.behavior.CSS_ONSTATE_PREFIX)==-1){return true}A=A.parentNode}}return false};wFORMS.behaviors.validation.isErrorPlaceholderId=function(A){return A.match(new RegExp(wFORMS.behaviors.validation.ERROR_PLACEHOLDER_SUFFIX+"$"))!=null};wFORMS.behaviors.validation.instance.prototype.isEmpty=function(A){var B=/^\s+$/;return((A==null)||(A.length==0)||B.test(A))};wFORMS.behaviors.validation.instance.prototype.validateRequired=function(A,C){switch(A.tagName){case"INPUT":var B=A.getAttribute("type");if(!B){B="text"}switch(B.toLowerCase()){case"checkbox":case"radio":return A.checked;break;default:return !this.isEmpty(C)}break;case"SELECT":return !this.isEmpty(C);break;case"TEXTAREA":return !this.isEmpty(C);break;default:return this.validateOneRequired(A);break}return false};wFORMS.behaviors.validation.instance.prototype.validateOneRequired=function(B){if(B.nodeType!=1){return false}if(this.isSwitchedOff(B)){return false}switch(B.tagName){case"INPUT":var C=B.getAttribute("type");if(!C){C="text"}switch(C.toLowerCase()){case"checkbox":case"radio":return B.checked;break;default:return !this.isEmpty(wFORMS.helpers.getFieldValue(B))}break;case"SELECT":return !this.isEmpty(wFORMS.helpers.getFieldValue(B));break;case"TEXTAREA":return !this.isEmpty(wFORMS.helpers.getFieldValue(B));break;default:for(var A=0;A<B.childNodes.length;A++){if(this.validateOneRequired(B.childNodes[A])){return true}}break}return false};wFORMS.behaviors.validation.instance.prototype.validateAlpha=function(A,C){var B=/^[a-zA-Z\s]+$/;return this.isEmpty(C)||B.test(C)};wFORMS.behaviors.validation.instance.prototype.validateAlphanum=function(A,C){var B=/^[\w\s]+$/;return this.isEmpty(C)||B.test(C)};wFORMS.behaviors.validation.instance.prototype.validateDate=function(B,C){var A=new Date(C);return this.isEmpty(C)||!isNaN(A)};wFORMS.behaviors.validation.instance.prototype.validateTime=function(A,B){return true};wFORMS.behaviors.validation.instance.prototype.validateEmail=function(A,B){var C=/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,}$/;return this.isEmpty(B)||C.test(B)};wFORMS.behaviors.validation.instance.prototype.validateInteger=function(A,C){var B=/^[+]?\d+$/;return this.isEmpty(C)||B.test(C)};wFORMS.behaviors.validation.instance.prototype.validateFloat=function(A,B){return this.isEmpty(B)||!isNaN(parseFloat(B))};wFORMS.behaviors.validation.instance.prototype.validateCustom=function(A,D){var C=new RegExp("/(.*)/([gi]*)");var B=A.className.match(C);if(B&&B[0]){var E=new RegExp(B[1],B[2]);if(!D.match(E)){return false}}return true};if(typeof (wFORMS)=="undefined"){throw new Error("wFORMS core not found. This behavior depends on the wFORMS core.")}wFORMS.behaviors.calculation={VARIABLE_SELECTOR_PREFIX:"calc-",CHOICE_VALUE_SELECTOR_PREFIX:"calcval-",CALCULATION_SELECTOR:'*[class*="formula="]',CALCULATION_ERROR_MESSAGE:"There was an error computing this field.",instance:function(A){this.behavior=wFORMS.behaviors.calculation;this.target=A;this.calculations=[]}};wFORMS.behaviors.calculation.applyTo=function(B){var A=new wFORMS.behaviors.calculation.instance(B);B.querySelectorAll(wFORMS.behaviors.calculation.CALCULATION_SELECTOR).forEach(function(E){var G=E.className.substr(E.className.indexOf("formula=")+8).split(" ")[0];var F=G.split(/[^a-zA-Z]+/g);A.varFields=[];for(var D=0;D<F.length;D++){if(F[D]!=""){B.querySelectorAll('*[class*="'+wFORMS.behaviors.calculation.VARIABLE_SELECTOR_PREFIX+F[D]+'"]').forEach(function(H){var J=((" "+H.className+" ").indexOf(" "+wFORMS.behaviors.calculation.VARIABLE_SELECTOR_PREFIX+F[D]+" ")!=-1);if(!J){return }switch(H.tagName+":"+H.getAttribute("type")){case"INPUT:":case"INPUT:null":case"INPUT:text":case"INPUT:hidden":case"INPUT:password":case"TEXTAREA:null":if(!H._wforms_calc_handled){H.addEventListener("blur",function(L){return A.run(L,this)},false);H._wforms_calc_handled=true}break;case"INPUT:radio":case"INPUT:checkbox":if(!H._wforms_calc_handled){H.addEventListener("click",function(L){return A.run(L,this)},false);H._wforms_calc_handled=true}break;case"SELECT:null":if(!H._wforms_calc_handled){H.addEventListener("change",function(L){return A.run(L,this)},false);H._wforms_calc_handled=true}break;default:return ;break}A.varFields.push({name:F[D],field:H})})}}var C={field:E,formula:G,variables:A.varFields};A.calculations.push(C);A.compute(C)});A.onApply();return A};wFORMS.behaviors.calculation.instance.prototype.onApply=function(){};wFORMS.behaviors.calculation.instance.prototype.run=function(E,D){for(var C=0;C<this.calculations.length;C++){var B=this.calculations[C];for(var A=0;A<B.variables.length;A++){if(D==B.variables[A].field){this.compute(B)}}}};wFORMS.behaviors.calculation.instance.prototype.refresh=function(D,C){for(var B=0;B<this.calculations.length;B++){var A=this.calculations[B];if(C==A.field){this.compute(A)}}};wFORMS.behaviors.calculation.instance.prototype.compute=function(calculation){var f=this.target;var formula=calculation.formula;var _processedVariables=new Array();for(var i=0;i<calculation.variables.length;i++){var v=calculation.variables[i];var varval=0;var _self=this;if(wFORMS.helpers.contains(_processedVariables,v.name)){continue}else{_processedVariables.push(v.name)}f.querySelectorAll('*[class*="'+_self.behavior.VARIABLE_SELECTOR_PREFIX+v.name+'"]').forEach(function(f){var exactMatch=((" "+f.className+" ").indexOf(" "+wFORMS.behaviors.calculation.VARIABLE_SELECTOR_PREFIX+v.name+" ")!=-1);if(!exactMatch){return }if(_self.hasValueInClassName(f)){var value=_self.getValueFromClassName(f)}else{var value=wFORMS.helpers.getFieldValue(f)}if(!value){value=0}if(value.constructor==Array){for(var j=0;j<value.length;j++){varval+=parseFloat(value[j])}}else{varval+=parseFloat(value)}});var rgx=new RegExp("([^a-z])("+v.name+")([^a-z])","gi");while((" "+formula+" ").match(rgx)){formula=(" "+formula+" ").replace(rgx,"$1"+varval+"$3")}}try{var result=eval(formula);if(result=="Infinity"||result=="NaN"||isNaN(result)){result="error"}}catch(x){result="error"}var validationBehavior=wFORMS.getBehaviorInstance(this.target,"validation");if(validationBehavior){if(!wFORMS.behaviors.validation.messages["calculation"]){wFORMS.behaviors.validation.messages["calculation"]=this.behavior.CALCULATION_ERROR_MESSAGE}validationBehavior.removeErrorMessage(calculation.field);if(result=="error"){validationBehavior.fail(calculation.field,"calculation")}}calculation.field.value=result;if(calculation.field.className&&(calculation.field.className.indexOf(this.behavior.VARIABLE_SELECTOR_PREFIX)!=-1)){this.run(null,calculation.field)}};wFORMS.behaviors.calculation.instance.prototype.hasValueInClassName=function(B){switch(B.tagName){case"SELECT":for(var A=0;A<B.options.length;A++){if(B.options[A].className&&B.options[A].className.indexOf(this.behavior.CHOICE_VALUE_SELECTOR_PREFIX)!=-1){return true}}return false;break;default:if(!B.className||(" "+B.className).indexOf(" "+this.behavior.CHOICE_VALUE_SELECTOR_PREFIX)==-1){return false}break}return true};wFORMS.behaviors.calculation.instance.prototype.getValueFromClassName=function(C){switch(C.tagName){case"INPUT":if(!C.className||C.className.indexOf(this.behavior.CHOICE_VALUE_SELECTOR_PREFIX)==-1){return null}var D=C.className.split(this.behavior.CHOICE_VALUE_SELECTOR_PREFIX)[1].split(" ")[0];if(C.type=="checkbox"){return C.checked?D:null}if(C.type=="radio"){return C.checked?D:null}return D;break;case"SELECT":if(C.selectedIndex==-1){return null}if(C.getAttribute("multiple")){var A=[];for(var B=0;B<C.options.length;B++){if(C.options[B].selected){if(C.options[B].className&&C.options[B].className.indexOf(this.behavior.CHOICE_VALUE_SELECTOR_PREFIX)!=-1){var D=C.options[B].className.split(this.behavior.CHOICE_VALUE_SELECTOR_PREFIX)[1].split(" ")[0];A.push(D)}}}if(A.length==0){return null}return A}if(C.options[C.selectedIndex].className&&C.options[C.selectedIndex].className.indexOf(this.behavior.CHOICE_VALUE_SELECTOR_PREFIX)!=-1){var D=C.options[C.selectedIndex].className.split(this.behavior.CHOICE_VALUE_SELECTOR_PREFIX)[1].split(" ")[0];return D}break;case"TEXTAREA":if(!C.className||C.className.indexOf(this.behavior.CHOICE_VALUE_SELECTOR_PREFIX)==-1){return null}var D=C.className.split(this.behavior.CHOICE_VALUE_SELECTOR_PREFIX)[1].split(" ")[0];return D;break;default:return null;break}return null}