var base2={name:"base2",version:"1.0",exports:"Base,Package,Abstract,Module,Enumerable,Map,Collection,RegGrp,Undefined,Null,This,True,False,assignID,detect,global",namespace:""};new function(_no_shrink_){var Undefined=K(),Null=K(null),True=K(true),False=K(false),This=function(){return this};var global=This();var base2=global.base2;var _FORMAT=/%([1-9])/g;var _LTRIM=/^\s\s*/;var _RTRIM=/\s\s*$/;var _RESCAPE=/([\/()[\]{}|*+-.,^$?\\])/g;var _BASE=/try/.test(detect)?/\bbase\b/:/.*/;var _HIDDEN=["constructor","toString","valueOf"];var _MSIE_NATIVE_FUNCTION=detect("(jscript)")?new RegExp("^"+rescape(isNaN).replace(/isNaN/,"\\w+")+"$"):{test:False};var _counter=1;var _slice=Array.prototype.slice;_Function_forEach();function assignID(object){if(!object.base2ID){object.base2ID="b2_"+_counter++}return object.base2ID}var _subclass=function(_instance,_static){base2.__prototyping=this.prototype;var _prototype=new this;if(_instance){extend(_prototype,_instance)}delete base2.__prototyping;var _constructor=_prototype.constructor;function _class(){if(!base2.__prototyping){if(this.constructor==arguments.callee||this.__constructing){this.__constructing=true;_constructor.apply(this,arguments);delete this.__constructing}else{return extend(arguments[0],_prototype)}}return this}_prototype.constructor=_class;for(var i in Base){_class[i]=this[i]}_class.ancestor=this;_class.base=Undefined;if(_static){extend(_class,_static)}_class.prototype=_prototype;if(_class.init){_class.init()}_class["#implements"]=[];_class["#implemented_by"]=[];return _class};var Base=_subclass.call(Object,{constructor:function(){if(arguments.length>0){this.extend(arguments[0])}},base:function(){},extend:delegate(extend)},Base={ancestorOf:function(klass){return _ancestorOf(this,klass)},extend:_subclass,forEach:function(object,block,context){_Function_forEach(this,object,block,context)},implement:function(source){if(typeof source=="function"){if(_ancestorOf(Base,source)){this["#implements"].push(source);source["#implemented_by"].push(this)}source=source.prototype}extend(this.prototype,source);return this}});var Package=Base.extend({constructor:function(_private,_public){this.extend(_public);if(this.init){this.init()}if(this.name&&this.name!="base2"){if(!this.parent){this.parent=base2}this.parent.addName(this.name,this);this.namespace=format("var %1=%2;",this.name,String2.slice(this,1,-1))}if(_private){var JSNamespace=base2.JavaScript?base2.JavaScript.namespace:"";_private.imports=Array2.reduce(csv(this.imports),function(namespace,name){var ns=lookup(name)||lookup("JavaScript."+name);assert(ns,format("Object not found: '%1'.",name),ReferenceError);return namespace+=ns.namespace},"var base2=(function(){return this.base2})();"+base2.namespace+JSNamespace)+lang.namespace;_private.exports=Array2.reduce(csv(this.exports),function(namespace,name){var fullName=this.name+"."+name;this.namespace+="var "+name+"="+fullName+";";return namespace+="if(!"+fullName+")"+fullName+"="+name+";"},"",this)+"this._label_"+this.name+"();";var pkg=this;var packageName=String2.slice(this,1,-1);_private["_label_"+this.name]=function(){Package.forEach(pkg,function(object,name){if(object&&object.ancestorOf==Base.ancestorOf){object.toString=K(format("[%1.%2]",packageName,name));if(object.prototype.toString==Base.prototype.toString){object.prototype.toString=K(format("[object %1.%2]",packageName,name))}}})}}function lookup(names){names=names.split(".");var value=base2,i=0;while(value&&names[i]!=null){value=value[names[i++]]}return value}},exports:"",imports:"",name:"",namespace:"",parent:null,addName:function(name,value){if(!this[name]){this[name]=value;this.exports+=","+name;this.namespace+=format("var %1=%2.%1;",name,this.name)}},addPackage:function(name){this.addName(name,new Package(null,{name:name,parent:this}))},toString:function(){return format("[%1]",this.parent?String2.slice(this.parent,1,-1)+"."+this.name:this.name)}});var Abstract=Base.extend({constructor:function(){throw new TypeError("Abstract class cannot be instantiated.")}});var _moduleCount=0;var Module=Abstract.extend(null,{namespace:"",extend:function(_interface,_static){var module=this.base();var index=_moduleCount++;module.namespace="";module.partial=this.partial;module.toString=K("[base2.Module["+index+"]]");Module[index]=module;module.implement(this);if(_interface){module.implement(_interface)}if(_static){extend(module,_static);if(module.init){module.init()}}return module},forEach:function(block,context){_Function_forEach(Module,this.prototype,function(method,name){if(typeOf(method)=="function"){block.call(context,this[name],name,this)}},this)},implement:function(_interface){var module=this;var id=module.toString().slice(1,-1);if(typeof _interface=="function"){if(!_ancestorOf(_interface,module)){this.base(_interface)}if(_ancestorOf(Module,_interface)){for(var name in _interface){if(module[name]===undefined){var property=_interface[name];if(typeof property=="function"&&property.call&&_interface.prototype[name]){property=_staticModuleMethod(_interface,name)}module[name]=property}}module.namespace+=_interface.namespace.replace(/base2\.Module\[\d+\]/g,id)}}else{extend(module,_interface);_extendModule(module,_interface)}return module},partial:function(){var module=Module.extend();var id=module.toString().slice(1,-1);module.namespace=this.namespace.replace(/(\w+)=b[^\)]+\)/g,"$1="+id+".$1");this.forEach(function(method,name){module[name]=partial(bind(method,module))});return module}});function _extendModule(module,_interface){var proto=module.prototype;var id=module.toString().slice(1,-1);for(var name in _interface){var property=_interface[name],namespace="";if(name.charAt(0)=="@"){if(detect(name.slice(1))){_extendModule(module,property)}}else{if(!proto[name]){if(name==name.toUpperCase()){namespace="var "+name+"="+id+"."+name+";"}else{if(typeof property=="function"&&property.call){namespace="var "+name+"=base2.lang.bind('"+name+"',"+id+");";proto[name]=_moduleMethod(module,name);proto[name]._module=module}}if(module.namespace.indexOf(namespace)==-1){module.namespace+=namespace}}}}}function _staticModuleMethod(module,name){return function(){return module[name].apply(module,arguments)}}function _moduleMethod(module,name){return function(){var args=_slice.call(arguments);args.unshift(this);return module[name].apply(module,args)}}var Enumerable=Module.extend({every:function(object,test,context){var result=true;try{forEach(object,function(value,key){result=test.call(context,value,key,object);if(!result){throw StopIteration}})}catch(error){if(error!=StopIteration){throw error}}return !!result},filter:function(object,test,context){var i=0;return this.reduce(object,function(result,value,key){if(test.call(context,value,key,object)){result[i++]=value}return result},[])},invoke:function(object,method){var args=_slice.call(arguments,2);return this.map(object,(typeof method=="function")?function(item){return item==null?undefined:method.apply(item,args)}:function(item){return item==null?undefined:item[method].apply(item,args)})},map:function(object,block,context){var result=[],i=0;forEach(object,function(value,key){result[i++]=block.call(context,value,key,object)});return result},pluck:function(object,key){return this.map(object,function(item){return item==null?undefined:item[key]})},reduce:function(object,block,result,context){var initialised=arguments.length>2;forEach(object,function(value,key){if(initialised){result=block.call(context,result,value,key,object)}else{result=value;initialised=true}});return result},some:function(object,test,context){return !this.every(object,not(test),context)}});var _HASH="#";var Map=Base.extend({constructor:function(values){if(values){this.merge(values)}},clear:function(){for(var key in this){if(key.indexOf(_HASH)==0){delete this[key]}}},copy:function(){base2.__prototyping=true;var copy=new this.constructor;delete base2.__prototyping;for(var i in this){if(this[i]!==copy[i]){copy[i]=this[i]}}return copy},forEach:function(block,context){for(var key in this){if(key.indexOf(_HASH)==0){block.call(context,this[key],key.slice(1),this)}}},get:function(key){return this[_HASH+key]},getKeys:function(){return this.map(II)},getValues:function(){return this.map(I)},has:function(key){/*@cc_on @*//*@if (@_jscript_version < 5.5)
    return $Legacy.has(this, _HASH + key);
  @else @*/return _HASH+key in this;/*@end @*/},merge:function(values){var put=flip(this.put);forEach(arguments,function(values){forEach(values,put,this)},this);return this},put:function(key,value){this[_HASH+key]=value},remove:function(key){delete this[_HASH+key]},size:function(){var size=0;for(var key in this){if(key.indexOf(_HASH)==0){size++}}return size},union:function(values){return this.merge.apply(this.copy(),arguments)}});Map.implement(Enumerable);Map.prototype.filter=function(test,context){return this.reduce(function(result,value,key){if(!test.call(context,value,key,this)){result.remove(key)}return result},this.copy(),this)};var _KEYS="~";var Collection=Map.extend({constructor:function(values){this[_KEYS]=new Array2;this.base(values)},add:function(key,item){assert(!this.has(key),"Duplicate key '"+key+"'.");this.put.apply(this,arguments)},clear:function(){this.base();this[_KEYS].length=0},copy:function(){var copy=this.base();copy[_KEYS]=this[_KEYS].copy();return copy},forEach:function(block,context){var keys=this[_KEYS];var length=keys.length;for(var i=0;i<length;i++){block.call(context,this[_HASH+keys[i]],keys[i],this)}},getAt:function(index){var key=this[_KEYS].item(index);return(key===undefined)?undefined:this[_HASH+key]},getKeys:function(){return this[_KEYS].copy()},indexOf:function(key){return this[_KEYS].indexOf(String(key))},insertAt:function(index,key,item){assert(this[_KEYS].item(index)!==undefined,"Index out of bounds.");assert(!this.has(key),"Duplicate key '"+key+"'.");this[_KEYS].insertAt(index,String(key));this[_HASH+key]=null;this.put.apply(this,_slice.call(arguments,1))},item:function(keyOrIndex){return this[typeof keyOrIndex=="number"?"getAt":"get"](keyOrIndex)},put:function(key,item){if(!this.has(key)){this[_KEYS].push(String(key))}var klass=this.constructor;if(klass.Item&&!instanceOf(item,klass.Item)){item=klass.create.apply(klass,arguments)}this[_HASH+key]=item},putAt:function(index,item){arguments[0]=this[_KEYS].item(index);assert(arguments[0]!==undefined,"Index out of bounds.");this.put.apply(this,arguments)},remove:function(key){if(this.has(key)){this[_KEYS].remove(String(key));delete this[_HASH+key]}},removeAt:function(index){var key=this[_KEYS].item(index);if(key!==undefined){this[_KEYS].removeAt(index);delete this[_HASH+key]}},reverse:function(){this[_KEYS].reverse();return this},size:function(){return this[_KEYS].length},slice:function(start,end){var sliced=this.copy();if(arguments.length>0){var keys=this[_KEYS],removed=keys;sliced[_KEYS]=Array2(_slice.apply(keys,arguments));if(sliced[_KEYS].length){removed=removed.slice(0,start);if(arguments.length>1){removed=removed.concat(keys.slice(end))}}for(var i=0;i<removed.length;i++){delete sliced[_HASH+removed[i]]}}return sliced},sort:function(compare){if(compare){this[_KEYS].sort(bind(function(key1,key2){return compare(this[_HASH+key1],this[_HASH+key2],key1,key2)},this))}else{this[_KEYS].sort()}return this},toString:function(){return"("+(this[_KEYS]||"")+")"}},{Item:null,create:function(key,item){return this.Item?new this.Item(key,item):item},extend:function(_instance,_static){var klass=this.base(_instance);klass.create=this.create;if(_static){extend(klass,_static)}if(!klass.Item){klass.Item=this.Item}else{if(typeof klass.Item!="function"){klass.Item=(this.Item||Base).extend(klass.Item)}}if(klass.init){klass.init()}return klass}});var _RG_BACK_REF=/\\(\d+)/g,_RG_ESCAPE_CHARS=/\\./g,_RG_ESCAPE_BRACKETS=/\(\?[:=!]|\[[^\]]+\]/g,_RG_BRACKETS=/\(/g,_RG_LOOKUP=/\$(\d+)/,_RG_LOOKUP_SIMPLE=/^\$\d+$/;var RegGrp=Collection.extend({constructor:function(values,ignoreCase){this.base(values);this.ignoreCase=!!ignoreCase},ignoreCase:false,exec:function(string,override){string+="";var items=this,keys=this[_KEYS];if(!keys.length){return string}if(override==RegGrp.IGNORE){override=0}return string.replace(new RegExp(this,this.ignoreCase?"gi":"g"),function(match){var item,offset=1,i=0;while((item=items[_HASH+keys[i++]])){var next=offset+item.length+1;if(arguments[offset]){var replacement=override==null?item.replacement:override;switch(typeof replacement){case"function":return replacement.apply(items,_slice.call(arguments,offset,next));case"number":return arguments[offset+replacement];default:return replacement}}offset=next}return match})},insertAt:function(index,expression,replacement){if(instanceOf(expression,RegExp)){arguments[1]=expression.source}return base(this,arguments)},test:function(string){return this.exec(string)!=string},toString:function(){var offset=1;return"("+this.map(function(item){var expression=(item+"").replace(_RG_BACK_REF,function(match,index){return"\\"+(offset+Number(index))});offset+=item.length+1;return expression}).join(")|(")+")"}},{IGNORE:"$0",init:function(){forEach("add,get,has,put,remove".split(","),function(name){_override(this,name,function(expression){if(instanceOf(expression,RegExp)){arguments[0]=expression.source}return base(this,arguments)})},this.prototype)},Item:{constructor:function(expression,replacement){if(replacement==null){replacement=RegGrp.IGNORE}else{if(replacement.replacement!=null){replacement=replacement.replacement}else{if(typeof replacement!="function"){replacement=String(replacement)}}}if(typeof replacement=="string"&&_RG_LOOKUP.test(replacement)){if(_RG_LOOKUP_SIMPLE.test(replacement)){replacement=parseInt(replacement.slice(1))}else{var Q='"';replacement=replacement.replace(/\\/g,"\\\\").replace(/"/g,"\\x22").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\$(\d+)/g,Q+"+(arguments[$1]||"+Q+Q+")+"+Q).replace(/(['"])\1\+(.*)\+\1\1$/,"$1");replacement=new Function("return "+Q+replacement+Q)}}this.length=RegGrp.count(expression);this.replacement=replacement;this.toString=K(expression+"")},length:0,replacement:""},count:function(expression){expression=(expression+"").replace(_RG_ESCAPE_CHARS,"").replace(_RG_ESCAPE_BRACKETS,"");return match(expression,_RG_BRACKETS).length}});var lang={name:"lang",version:base2.version,exports:"assert,assertArity,assertType,base,bind,copy,extend,forEach,format,instanceOf,match,pcopy,rescape,trim,typeOf",namespace:""};function assert(condition,message,ErrorClass){if(!condition){throw new (ErrorClass||Error)(message||"Assertion failed.")}}function assertArity(args,arity,message){if(arity==null){arity=args.callee.length}if(args.length<arity){throw new SyntaxError(message||"Not enough arguments.")}}function assertType(object,type,message){if(type&&(typeof type=="function"?!instanceOf(object,type):typeOf(object)!=type)){throw new TypeError(message||"Invalid type.")}}function copy(object){var copy={};for(var i in object){copy[i]=object[i]}return copy}function pcopy(object){_dummy.prototype=object;return new _dummy}function _dummy(){}function base(object,args){return object.base.apply(object,args)}function extend(object,source){if(object&&source){if(arguments.length>2){var key=source;source={};source[key]=arguments[2]}var proto=global[(typeof source=="function"?"Function":"Object")].prototype;if(base2.__prototyping){var i=_HIDDEN.length,key;while((key=_HIDDEN[--i])){var value=source[key];if(value!=proto[key]){if(_BASE.test(value)){_override(object,key,value)}else{object[key]=value}}}}for(key in source){if(proto[key]===undefined){var value=source[key];if(key.charAt(0)=="@"){if(detect(key.slice(1))){extend(object,value)}}else{var ancestor=object[key];if(ancestor&&typeof value=="function"){if(value!=ancestor){if(_BASE.test(value)){_override(object,key,value)}else{value.ancestor=ancestor;object[key]=value}}}else{object[key]=value}}}}}return object}function _ancestorOf(ancestor,fn){while(fn){if(!fn.ancestor){return false}fn=fn.ancestor;if(fn==ancestor){return true}}return false}function _override(object,name,method){var ancestor=object[name];var superObject=base2.__prototyping;if(superObject&&ancestor!=superObject[name]){superObject=null}function _base(){var previous=this.base;this.base=superObject?superObject[name]:ancestor;var returnValue=method.apply(this,arguments);this.base=previous;return returnValue}_base.method=method;_base.ancestor=ancestor;object[name]=_base;_base.toString=K(method+"")}if(typeof StopIteration=="undefined"){StopIteration=new Error("StopIteration")}function forEach(object,block,context,fn){if(object==null){return }if(!fn){if(typeof object=="function"&&object.call){fn=Function}else{if(typeof object.forEach=="function"&&object.forEach!=arguments.callee){object.forEach(block,context);return }else{if(typeof object.length=="number"){_Array_forEach(object,block,context);return }}}}_Function_forEach(fn||Object,object,block,context)}forEach.csv=function(string,block,context){forEach(csv(string),block,context)};forEach.detect=function(object,block,context){forEach(object,function(value,key){if(key.charAt(0)=="@"){if(detect(key.slice(1))){forEach(value,arguments.callee)}}else{block.call(context,value,key,object)}})};function _Array_forEach(array,block,context){if(array==null){array=global}var length=array.length||0,i;if(typeof array=="string"){for(i=0;i<length;i++){block.call(context,array.charAt(i),i,array)}}else{for(i=0;i<length;i++){/*@cc_on @*//*@if (@_jscript_version < 5.2)
      if ($Legacy.has(array, i))
    @else @*/if(i in array){/*@end @*/block.call(context,array[i],i,array)}}}}function _Function_forEach(fn,object,block,context){var Temp=function(){this.i=1};Temp.prototype={i:1};var count=0;for(var i in new Temp){count++}_Function_forEach=(count>1)?function(fn,object,block,context){var processed={};for(var key in object){if(!processed[key]&&fn.prototype[key]===undefined){processed[key]=true;block.call(context,object[key],key,object)}}}:function(fn,object,block,context){for(var key in object){if(fn.prototype[key]===undefined){block.call(context,object[key],key,object)}}};_Function_forEach(fn,object,block,context)}function instanceOf(object,klass){if(typeof klass!="function"){throw new TypeError("Invalid 'instanceOf' operand.")}if(object==null){return false;/*@cc_on  
  // COM objects don't have a constructor
  if (typeof object.constructor != "function") {
    return typeOf(object) == typeof klass.prototype.valueOf();
  }
  @*/}if(object.constructor==klass){return true}if(klass.ancestorOf){return klass.ancestorOf(object.constructor);/*@if (@_jscript_version < 5.1)
    // do nothing
  @else @*/}if(object instanceof klass){return true;/*@end @*/}if(Base.ancestorOf==klass.ancestorOf){return false}if(Base.ancestorOf==object.constructor.ancestorOf){return klass==Object}switch(klass){case Array:return !!(typeof object=="object"&&object.join&&object.splice);case Function:return typeOf(object)=="function";case RegExp:return typeof object.constructor.$1=="string";case Date:return !!object.getTimezoneOffset;case String:case Number:case Boolean:return typeOf(object)==typeof klass.prototype.valueOf();case Object:return true}return false}function typeOf(object){var type=typeof object;switch(type){case"object":return object==null?"null":typeof object.constructor=="undefined"?_MSIE_NATIVE_FUNCTION.test(object)?"function":type:typeof object.constructor.prototype.valueOf();case"function":return typeof object.call=="function"?type:"object";default:return type}}var JavaScript={name:"JavaScript",version:base2.version,exports:"Array2,Date2,Function2,String2",namespace:"",bind:function(host){var top=global;global=host;forEach.csv(this.exports,function(name2){var name=name2.slice(0,-1);extend(host[name],this[name2]);this[name2](host[name].prototype)},this);global=top;return host}};function _createObject2(Native,constructor,generics,extensions){var INative=Module.extend();var id=INative.toString().slice(1,-1);forEach.csv(generics,function(name){INative[name]=unbind(Native.prototype[name]);INative.namespace+=format("var %1=%2.%1;",name,id)});forEach(_slice.call(arguments,3),INative.implement,INative);var Native2=function(){return INative(this.constructor==INative?constructor.apply(null,arguments):arguments[0])};Native2.prototype=INative.prototype;for(var name in INative){if(name!="prototype"&&Native[name]){INative[name]=Native[name];delete INative.prototype[name]}Native2[name]=INative[name]}Native2.ancestor=Object;delete Native2.extend;Native2.namespace=Native2.namespace.replace(/(var (\w+)=)[^,;]+,([^\)]+)\)/g,"$1$3.$2");return Native2}if((new Date).getYear()>1900){Date.prototype.getYear=function(){return this.getFullYear()-1900};Date.prototype.setYear=function(year){return this.setFullYear(year+1900)}}var _testDate=new Date(Date.UTC(2006,1,20));_testDate.setUTCDate(15);if(_testDate.getUTCHours()!=0){forEach.csv("FullYear,Month,Date,Hours,Minutes,Seconds,Milliseconds",function(type){extend(Date.prototype,"setUTC"+type,function(){var value=base(this,arguments);if(value>=57722401000){value-=3600000;this.setTime(value)}return value})})}Function.prototype.prototype={};if("".replace(/^/,K("$$"))=="$"){extend(String.prototype,"replace",function(expression,replacement){if(typeof replacement=="function"){var fn=replacement;replacement=function(){return String(fn.apply(null,arguments)).split("$").join("$$")}}return this.base(expression,replacement)})}var Array2=_createObject2(Array,Array,"concat,join,pop,push,reverse,shift,slice,sort,splice,unshift",Enumerable,{combine:function(keys,values){if(!values){values=keys}return Array2.reduce(keys,function(hash,key,index){hash[key]=values[index];return hash},{})},contains:function(array,item){return Array2.indexOf(array,item)!=-1},copy:function(array){var copy=_slice.call(array);if(!copy.swap){Array2(copy)}return copy},flatten:function(array){var i=0;return Array2.reduce(array,function(result,item){if(Array2.like(item)){Array2.reduce(item,arguments.callee,result)}else{result[i++]=item}return result},[])},forEach:_Array_forEach,indexOf:function(array,item,fromIndex){var length=array.length;if(fromIndex==null){fromIndex=0}else{if(fromIndex<0){fromIndex=Math.max(0,length+fromIndex)}}for(var i=fromIndex;i<length;i++){if(array[i]===item){return i}}return -1},insertAt:function(array,index,item){Array2.splice(array,index,0,item);return item},item:function(array,index){if(index<0){index+=array.length}return array[index]},lastIndexOf:function(array,item,fromIndex){var length=array.length;if(fromIndex==null){fromIndex=length-1}else{if(fromIndex<0){fromIndex=Math.max(0,length+fromIndex)}}for(var i=fromIndex;i>=0;i--){if(array[i]===item){return i}}return -1},map:function(array,block,context){var result=[];Array2.forEach(array,function(item,index){result[index]=block.call(context,item,index,array)});return result},remove:function(array,item){var index=Array2.indexOf(array,item);if(index!=-1){Array2.removeAt(array,index)}},removeAt:function(array,index){Array2.splice(array,index,1)},swap:function(array,index1,index2){if(index1<0){index1+=array.length}if(index2<0){index2+=array.length}var temp=array[index1];array[index1]=array[index2];array[index2]=temp;return array}});Array2.reduce=Enumerable.reduce;Array2.like=function(object){return typeOf(object)=="object"&&typeof object.length=="number"};Enumerable["#implemented_by"].pop();Enumerable["#implemented_by"].push(Array2);var _DATE_PATTERN=/^((-\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 _DATE_PARTS={FullYear:2,Month:4,Date:6,Hours:8,Minutes:10,Seconds:12,Milliseconds:14};var _TIMEZONE_PARTS={Hectomicroseconds:15,UTC:16,Sign:17,Hours:18,Minutes:20};var _TRIM_ZEROES=/(((00)?:0+)?:0+)?\.0+$/;var _TRIM_TIMEZONE=/(T[0-9:.]+)$/;var Date2=_createObject2(Date,function(yy,mm,dd,h,m,s,ms){switch(arguments.length){case 0:return new Date;case 1:return typeof yy=="number"?new Date(yy):Date2.parse(yy);default:return new Date(yy,mm,arguments.length==2?1:dd,h||0,m||0,s||0,ms||0)}},"",{toISOString:function(date){var string="####-##-##T##:##:##.###";for(var part in _DATE_PARTS){string=string.replace(/#+/,function(digits){var value=date["getUTC"+part]();if(part=="Month"){value++}return("000"+value).slice(-digits.length)})}return string.replace(_TRIM_ZEROES,"").replace(_TRIM_TIMEZONE,"$1Z")}});delete Date2.forEach;Date2.now=function(){return(new Date).valueOf()};Date2.parse=function(string,defaultDate){if(arguments.length>1){assertType(defaultDate,"number","default date should be of type 'number'.")}var parts=match(string,_DATE_PATTERN);if(parts.length){if(parts[_DATE_PARTS.Month]){parts[_DATE_PARTS.Month]--}if(parts[_TIMEZONE_PARTS.Hectomicroseconds]>=5){parts[_DATE_PARTS.Milliseconds]++}var date=new Date(defaultDate||0);var prefix=parts[_TIMEZONE_PARTS.UTC]||parts[_TIMEZONE_PARTS.Hours]?"UTC":"";for(var part in _DATE_PARTS){var value=parts[_DATE_PARTS[part]];if(!value){continue}date["set"+prefix+part](value);if(date["get"+prefix+part]()!=parts[_DATE_PARTS[part]]){return NaN}}if(parts[_TIMEZONE_PARTS.Hours]){var hours=Number(parts[_TIMEZONE_PARTS.Sign]+parts[_TIMEZONE_PARTS.Hours]);var minutes=Number(parts[_TIMEZONE_PARTS.Sign]+(parts[_TIMEZONE_PARTS.Minutes]||0));date.setUTCMinutes(date.getUTCMinutes()+(hours*60)+minutes)}return date.valueOf()}else{return Date.parse(string)}};var String2=_createObject2(String,function(string){return new String(arguments.length==0?"":string)},"charAt,charCodeAt,concat,indexOf,lastIndexOf,match,replace,search,slice,split,substr,substring,toLowerCase,toUpperCase",{csv:csv,format:format,rescape:rescape,trim:trim});delete String2.forEach;function trim(string){return String(string).replace(_LTRIM,"").replace(_RTRIM,"")}function csv(string){return string?(string+"").split(/\s*,\s*/):[]}function format(string){var args=arguments;var pattern=new RegExp("%([1-"+(arguments.length-1)+"])","g");return(string+"").replace(pattern,function(match,index){return args[index]})}function match(string,expression){return(string+"").match(expression)||[]}function rescape(string){return(string+"").replace(_RESCAPE,"\\$1")}var Function2=_createObject2(Function,Function,"",{I:I,II:II,K:K,bind:bind,compose:compose,delegate:delegate,flip:flip,not:not,partial:partial,unbind:unbind});function I(i){return i}function II(i,ii){return ii}function K(k){return function(){return k}}function bind(fn,context){var lateBound=typeof fn!="function";if(arguments.length>2){var args=_slice.call(arguments,2);return function(){return(lateBound?context[fn]:fn).apply(context,args.concat.apply(args,arguments))}}else{return function(){return(lateBound?context[fn]:fn).apply(context,arguments)}}}function compose(){var fns=_slice.call(arguments);return function(){var i=fns.length,result=fns[--i].apply(this,arguments);while(i--){result=fns[i].call(this,result)}return result}}function delegate(fn,context){return function(){var args=_slice.call(arguments);args.unshift(this);return fn.apply(context,args)}}function flip(fn){return function(){return fn.apply(this,Array2.swap(arguments,0,1))}}function not(fn){return function(){return !fn.apply(this,arguments)}}function partial(fn){var args=_slice.call(arguments,1);return function(){var specialised=args.concat(),i=0,j=0;while(i<args.length&&j<arguments.length){if(specialised[i]===undefined){specialised[i]=arguments[j++]}i++}while(j<arguments.length){specialised[i++]=arguments[j++]}if(Array2.contains(specialised,undefined)){specialised.unshift(fn);return partial.apply(null,specialised)}return fn.apply(this,specialised)}}function unbind(fn){return function(context){return fn.apply(context,_slice.call(arguments,1))}}function detect(){var jscript=NaN/*@cc_on||@_jscript_version@*/;var javaEnabled=global.java?true:false;if(global.navigator){var MSIE=/MSIE[\d.]+/g;var element=document.createElement("span");var userAgent=navigator.userAgent.replace(/([a-z])[\s\/](\d)/gi,"$1$2");if(!jscript){userAgent=userAgent.replace(MSIE,"")}if(MSIE.test(userAgent)){userAgent=userAgent.match(MSIE)[0]+" "+userAgent.replace(MSIE,"")}base2.userAgent=navigator.platform+" "+userAgent.replace(/like \w+/gi,"");javaEnabled&=navigator.javaEnabled()}var _cache={};detect=function(expression){if(_cache[expression]==null){var returnValue=false,test=expression;var not=test.charAt(0)=="!";if(not){test=test.slice(1)}if(test.charAt(0)=="("){try{returnValue=new Function("element,jscript,java,global","return !!"+test)(element,jscript,javaEnabled,global)}catch(ex){}}else{returnValue=new RegExp("("+test+")","i").test(base2.userAgent)}_cache[expression]=!!(not^returnValue)}return _cache[expression]};return detect(arguments[0])}base2=global.base2=new Package(this,base2);var exports=this.exports;lang=new Package(this,lang);exports+=this.exports;JavaScript=new Package(this,JavaScript);eval(exports+this.exports);lang.base=base;lang.extend=extend};new function(_no_shrink_){var DOM=new base2.Package(this,{name:"DOM",version:"1.0",imports:"Function2",exports:"Interface,Binding,Node,Document,Element,AbstractView,HTMLDocument,HTMLElement,Selector,Traversal,CSSParser,XPathParser,NodeSelector,DocumentSelector,ElementSelector,StaticNodeList,Event,EventTarget,DocumentEvent,ViewCSS,CSSStyleDeclaration,ClassList",bind:function(node){if(node&&node.nodeType){var base2ID=assignID(node);if(!DOM.bind[base2ID]){switch(node.nodeType){case 1:if(typeof node.className=="string"){(HTMLElement.bindings[node.tagName]||HTMLElement).bind(node)}else{Element.bind(node)}break;case 9:if(node.writeln){HTMLDocument.bind(node)}else{Document.bind(node)}break;default:Node.bind(node)}DOM.bind[base2ID]=true}}return node},"@MSIE5.+win":{bind:function(node){if(node&&node.writeln){node.nodeType=9}return this.base(node)}}});eval(this.imports);var _MSIE=detect("MSIE");var _MSIE5=detect("MSIE5");var Interface=Module.extend(null,{forEach:function(block,context){forEach(this,function(method,name){if(typeOf(method)=="function"&&(this.prototype[name]||method._delegate)){block.call(context,method,name,this)}},this,Module)},implement:function(_interface){if(typeof _interface=="object"){_createDelegates(this,_interface)}else{if(Interface.ancestorOf(_interface)){for(var name in _interface){if(_interface[name]&&_interface[name]._delegate){this[name]=bind(name,_interface);this[name]._delegate=name}}}}return this.base(_interface)}});function _createDelegates(module,_interface){var id=module.toString().slice(1,-1);for(var name in _interface){var property=_interface[name];if(name.charAt(0)=="@"){_createDelegates(module,property)}else{if(!module[name]&&typeof property=="function"&&property.call){var args="abcdefghij".slice(0,property.length).split("");var fn=new Function(args.join(","),format("%2.base=%2.%1.ancestor;var m=%2.base?'base':'%1';return %2[m](%3)",name,args[0],args.slice(1)));fn._delegate=name;module[name]=fn;module.namespace+="var "+name+"=base2.lang.bind('"+name+"',"+id+");"}}}}var Binding=Interface.extend(null,{bind:function(object){return extend(object,this.prototype)}});var Node=Binding.extend({"@!(element.compareDocumentPosition)":{compareDocumentPosition:function(node,other){if(Traversal.contains(node,other)){return 4|16}else{if(Traversal.contains(other,node)){return 2|8}}var nodeIndex=_getSourceIndex(node);var otherIndex=_getSourceIndex(other);if(nodeIndex<otherIndex){return 4}else{if(nodeIndex>otherIndex){return 2}}return 0}}},{"@Gecko":{bind:function(node){return extend(this.base(node),"removeEventListener",function(){var args=Array2.slice(arguments);args.unshift(this);EventTarget.removeEventListener.apply(EventTarget,args)})}}});var _getSourceIndex=document.documentElement.sourceIndex?function(node){return node.sourceIndex}:function(node){var key=0;while(node){key=Traversal.getNodeIndex(node)+"."+key;node=node.parentNode}return key};var Document=Node.extend(null,{bind:function(document){extend(document,"createElement",function(tagName){return DOM.bind(this.base(tagName))});AbstractView.bind(document.defaultView);if(document!=window.document){new DOMContentLoadedEvent(document)}return this.base(document)},"@!(document.defaultView)":{bind:function(document){document.defaultView=Traversal.getDefaultView(document);return this.base(document)}}});var _ATTRIBUTES={"class":"className","for":"htmlFor"};var Element=Node.extend({"@MSIE.+win":{getAttribute:function(element,name){if(element.className===undefined){return this.base(element,name)}var attribute=_getAttributeNode(element,name);if(attribute&&(attribute.specified||name=="value")){if(name=="href"||name=="src"){element.base=element.getAttribute.ancestor;return element[element.base?"base":"getAttribute"](name,2)}else{if(name=="style"){return element.style.cssText.toLowerCase()}else{return attribute.nodeValue}}}else{if(name=="type"&&element.nodeName=="INPUT"){var outerHTML=element.outerHTML;with(outerHTML){outerHTML=slice(0,indexOf(">")+1)}return match(outerHTML,/type="?([^\s">]*)"?/i)[1]||null}}return null},removeAttribute:function(element,name){if(element.className!==undefined){name=_ATTRIBUTES[name.toLowerCase()]||name}this.base(element,name)},setAttribute:function(element,name,value){if(element.className===undefined){this.base(element,name,value)}else{if(name=="style"){element.style.cssText=value}else{value=String(value);var attribute=_getAttributeNode(element,name);if(attribute){attribute.nodeValue=value}else{this.base(element,_ATTRIBUTES[name.toLowerCase()]||name,value)}}}}},"@!(element.hasAttribute)":{hasAttribute:function(element,name){if(element.className===undefined){return this.base(element,name)}return this.getAttribute(element,name)!=null}}});if(detect("MSIE.+win")){extend(Element.prototype,"cloneNode",function(deep){var clone=this.base(deep||false);clone.base2ID=undefined;return clone})}var _HTML_ATTRIBUTES="colSpan,rowSpan,vAlign,dateTime,accessKey,tabIndex,encType,maxLength,readOnly,longDesc";extend(_ATTRIBUTES,Array2.combine(_HTML_ATTRIBUTES.toLowerCase().split(","),_HTML_ATTRIBUTES.split(",")));var _getAttributeNode=document.documentElement.getAttributeNode?function(element,name){return element.getAttributeNode(name)}:function(element,name){return element.attributes[name]||element.attributes[_ATTRIBUTES[name.toLowerCase()]]};var TEXT=detect("(element.textContent===undefined)")?"innerText":"textContent";var Traversal=Module.extend({getDefaultView:function(node){return this.getDocument(node).defaultView},getNextElementSibling:function(node){while(node&&(node=node.nextSibling)&&!this.isElement(node)){continue}return node},getNodeIndex:function(node){var index=0;while(node&&(node=node.previousSibling)){index++}return index},getOwnerDocument:function(node){return node.ownerDocument},getPreviousElementSibling:function(node){while(node&&(node=node.previousSibling)&&!this.isElement(node)){continue}return node},getTextContent:function(node,isHTML){return node[isHTML?"innerHTML":TEXT]},isEmpty:function(node){node=node.firstChild;while(node){if(node.nodeType==3||this.isElement(node)){return false}node=node.nextSibling}return true},setTextContent:function(node,text,isHTML){return node[isHTML?"innerHTML":TEXT]=text},"@!MSIE":{setTextContent:function(node,text,isHTML){with(node){while(lastChild){parentNode.removeChild(lastChild)}}return this.base(node,text,isHTML)}},"@MSIE":{getDefaultView:function(node){return(node.document||node).parentWindow},"@MSIE5":{getOwnerDocument:function(node){return node.ownerDocument||node.document}}}},{contains:function(node,target){node.nodeType;while(target&&(target=target.parentNode)&&node!=target){continue}return !!target},getDocument:function(node){return this.isDocument(node)?node:node.ownerDocument||node.document},isDocument:function(node){return !!(node&&node.documentElement)},isElement:function(node){return !!(node&&node.nodeType==1)},"@(element.contains)":{contains:function(node,target){return node!=target&&(this.isDocument(node)?node==this.getOwnerDocument(target):node.contains(target))}},"@MSIE5":{isElement:function(node){return !!(node&&node.nodeType==1&&node.nodeName!="!")}}});var AbstractView=Binding.extend();var _CAPTURE_TYPE={},_TYPE_MAP={"2":2,"4":1};var _CAPTURING_PHASE=1,_AT_TARGET=2,_BUBBLING_PHASE=3;var _MOUSE_BUTTON=/^mouse(up|down)|click$/,_MOUSE_CLICK=/click$/,_BUBBLES="abort|error|select|change|resize|scroll|",_CANCELABLE="(dbl)?click|mouse(down|up|over|move|out|wheel)|key(down|up)|submit|reset";_BUBBLES=new RegExp("^("+_BUBBLES+_CANCELABLE+")$");_CANCELABLE=new RegExp("^("+_CANCELABLE+")$");if(_MSIE){var _W3C_EVENT_TYPE={focusin:"focus",focusout:"blur"};_CAPTURE_TYPE={focus:"focusin",blur:"focusout"}}var _CAN_DELEGATE=/^(blur|submit|reset|change|select)$|^(mouse|key|focus)|click$/;var Event=Binding.extend({"@!(document.createEvent)":{initEvent:function(event,type,bubbles,cancelable){event.type=String(type);event.bubbles=!!bubbles;event.cancelable=!!cancelable},preventDefault:function(event){if(event.cancelable!==false){event.returnValue=false}},stopPropagation:function(event){event.cancelBubble=true},"@MSIE":{preventDefault:function(event){this.base(event);if(event.type=="mousedown"){var type="onbeforedeactivate";var document=Traversal.getDocument(event.target);document.attachEvent(type,function(event){event.returnValue=false;document.detachEvent(type,arguments.callee)})}}}}},{CAPTURING_PHASE:_CAPTURING_PHASE,AT_TARGET:_AT_TARGET,BUBBLING_PHASE:_BUBBLING_PHASE,"@!(document.createEvent)":{"@MSIE":{bind:function(event){var type=event.type;if(!event.timeStamp){event.bubbles=_BUBBLES.test(type);event.cancelable=_CANCELABLE.test(type);event.timeStamp=new Date().valueOf()}event.relatedTarget=event[(event.target==event.fromElement?"to":"from")+"Element"];return this.base(event)}}},cloneEvent:function(event){var clone=copy(event);clone.stopPropagation=function(){event.stopPropagation()};clone.preventDefault=function(){event.preventDefault()};return clone},"@MSIE":{cloneEvent:copy}});var EventDispatcher=Base.extend({constructor:function(state){this.state=state;this.events=state.events},dispatch:function(nodes,event,phase){event.eventPhase=phase;var map=this.events[event.type][phase];if(map){var i=nodes.length;while(i--&&!event.cancelBubble){var currentTarget=nodes[i];var listeners=map[currentTarget.base2ID];if(listeners){listeners=copy(listeners);event.currentTarget=currentTarget;event.eventPhase=currentTarget==event.target?_AT_TARGET:phase;for(var listenerID in listeners){var listener=listeners[listenerID];if(typeof listener=="function"){listener.call(currentTarget,event)}else{listener.handleEvent(event)}}}}}},handleEvent:function(event,fixed){Event.bind(event);var type=event.type;var w3cType=_W3C_EVENT_TYPE[type];if(w3cType){event=copy(event);type=event.type=w3cType}if(this.events[type]){if(_MOUSE_BUTTON.test(type)){var button=_MOUSE_CLICK.test(type)?this.state._button:event.button;button=_TYPE_MAP[button]||0;if(event.button!=button){event=copy(event);event.button=button}}var currentTarget=event.target;var nodes=[],i=0;while(currentTarget){nodes[i++]=currentTarget;currentTarget=currentTarget.parentNode}this.dispatch(nodes,event,_CAPTURING_PHASE);if(!event.cancelBubble){if(!event.bubbles){nodes.length=1}nodes.reverse();this.dispatch(nodes,event,_BUBBLING_PHASE)}}return event.returnValue!==false},"@MSIE.+win":{handleEvent:function(event){if(event.type=="scroll"){setTimeout(bind(this.base,this,copy(event),true),0);return true}else{return this.base(event)}},"@MSIE5":{dispatch:function(nodes,event,phase){if(phase==_CAPTURING_PHASE&&!Array2.item(nodes,-1).documentElement){nodes.push(nodes[0].document)}this.base(nodes,event,phase)}}}});var _wrappedListeners={};var EventTarget=Interface.extend({"@!(element.addEventListener)":{addEventListener:function(target,type,listener,useCapture){var documentState=DocumentState.getInstance(target);var targetID=assignID(target);var listenerID=assignID(listener);var phase=useCapture?_CAPTURING_PHASE:_BUBBLING_PHASE;var typeMap=documentState.registerEvent(type,target);var phaseMap=typeMap[phase];if(!phaseMap){phaseMap=typeMap[phase]={}}if(useCapture){type=_CAPTURE_TYPE[type]||type}var listeners=phaseMap[targetID];if(!listeners){listeners=phaseMap[targetID]={}}listeners[listenerID]=listener},dispatchEvent:function(target,event){event.target=target;return DocumentState.getInstance(target).handleEvent(event)},removeEventListener:function(target,type,listener,useCapture){var events=DocumentState.getInstance(target).events;var typeMap=events[type];if(typeMap){var phaseMap=typeMap[useCapture?_CAPTURING_PHASE:_BUBBLING_PHASE];if(phaseMap){var listeners=phaseMap[target.base2ID];if(listeners){delete listeners[listener.base2ID]}}}}},"@(element.addEventListener)":{"@Gecko":{addEventListener:function(target,type,listener,useCapture){if(type=="mousewheel"){type="DOMMouseScroll";var originalListener=listener;listener=_wrappedListeners[assignID(listener)]=function(event){event=Event.cloneEvent(event);event.type="mousewheel";event.wheelDelta=(-event.detail*40)||0;_handleEvent(target,originalListener,event)}}this.base(target,type,listener,useCapture)}},"@webkit[1-4]|KHTML[34]":{addEventListener:function(target,type,listener,useCapture){if(_MOUSE_BUTTON.test(type)){var originalListener=listener;listener=_wrappedListeners[assignID(listener)]=function(event){var button=_TYPE_MAP[event.button]||0;if(event.button!=button){event=Event.cloneEvent(event);event.button=button}_handleEvent(target,originalListener,event)}}else{if(typeof listener=="object"){listener=_wrappedListeners[assignID(listener)]=bind("handleEvent",listener)}}this.base(target,type,listener,useCapture)}},"@Linux|Mac|opera":{addEventListener:function(target,type,listener,useCapture){if(type=="keydown"){var originalListener=listener;listener=_wrappedListeners[assignID(listener)]=function(keydownEvent){var firedCount=0,cancelled=false;extend(keydownEvent,"preventDefault",function(){this.base();cancelled=true});function handleEvent(event){if(cancelled){event.preventDefault()}if(event==keydownEvent||firedCount>1){_handleEvent(target,originalListener,keydownEvent)}firedCount++}handleEvent(keydownEvent);target.addEventListener("keyup",function(){target.removeEventListener("keypress",handleEvent,true);target.removeEventListener("keyup",arguments.callee,true)},true);target.addEventListener("keypress",handleEvent,true)}}this.base(target,type,listener,useCapture)}},removeEventListener:function(target,type,listener,useCapture){this.base(target,type,_wrappedListeners[listener.base2ID]||listener,useCapture)}}});if(detect("Gecko")){EventTarget.removeEventListener._delegate="removeEventListener";delete EventTarget.prototype.removeEventListener}function _handleEvent(target,listener,event){if(typeof listener=="function"){listener.call(target,event)}else{listener.handleEvent(event)}}var DocumentEvent=Interface.extend({"@!(document.createEvent)":{createEvent:function(document,type){var event=document.createEventObject?document.createEventObject():{};event.bubbles=false;event.cancelable=false;event.eventPhase=0;event.target=document;event.currentTarget=null;event.relatedTarget=null;event.timeStamp=new Date().valueOf();return Event(event)}},"@(document.createEvent)":{"@!(document.createEvent('Events'))":{createEvent:function(document,type){return this.base(document,type=="Events"?"UIEvents":type)}}}});var DOMContentLoadedEvent=Base.extend({constructor:function(document){var fired=false;this.fire=function(){if(!fired){fired=true;setTimeout(function(){var event=DocumentEvent.createEvent(document,"Events");Event.initEvent(event,"DOMContentLoaded",true,false);EventTarget.dispatchEvent(document,event)},1)}};EventTarget.addEventListener(document,"DOMContentLoaded",function(){fired=true},false);this.listen(document)},listen:Undefined,"@!Gecko20([^0]|0[3-9])|Webkit[5-9]|Opera[19]|MSIE.+mac":{listen:function(document){EventTarget.addEventListener(Traversal.getDefaultView(document),"load",this.fire,false)},"@MSIE.+win":{listen:function(document){try{document.body.doScroll("left");if(!this.__constructing){this.fire()}}catch(e){setTimeout(bind(this.listen,this,document),10)}}},"@KHTML":{listen:function(document){if(/loaded|complete/.test(document.readyState)){if(!this.__constructing){this.fire()}}else{setTimeout(bind(this.listen,this,document),10)}}}}});Document.implement(DocumentEvent);Document.implement(EventTarget);Element.implement(EventTarget);var _PIXEL=/^\d+(px)?$/i,_METRICS=/(width|height|top|bottom|left|right|fontSize)$/,_COLOR=/^(color|backgroundColor)$/,_RGB_BLACK="rgb(0, 0, 0)",_BLACK={black:1,"#000":1,"#000000":1};var ViewCSS=Interface.extend({"@!(document.defaultView.getComputedStyle)":{"@MSIE":{getComputedStyle:function(view,element,pseudoElement){var currentStyle=element.currentStyle;var computedStyle={};for(var propertyName in currentStyle){if(_METRICS.test(propertyName)||_COLOR.test(propertyName)){computedStyle[propertyName]=this.getComputedPropertyValue(view,element,propertyName)}else{if(propertyName.indexOf("ruby")!=0){computedStyle[propertyName]=currentStyle[propertyName]}}}return computedStyle}}},getComputedStyle:function(view,element,pseudoElement){return _CSSStyleDeclaration_ReadOnly.bind(this.base(view,element,pseudoElement))}},{getComputedPropertyValue:function(view,element,propertyName){return CSSStyleDeclaration.getPropertyValue(this.getComputedStyle(view,element,null),propertyName)},"@MSIE":{getComputedPropertyValue:function(view,element,propertyName){propertyName=this.toCamelCase(propertyName);var value=element.currentStyle[propertyName];if(_METRICS.test(propertyName)){return _MSIE_getPixelValue(element,value)+"px"}if(!_MSIE5&&_COLOR.test(propertyName)){var rgb=_MSIE_getColorValue(element,propertyName=="color"?"ForeColor":"BackColor");return(rgb==_RGB_BLACK&&!_BLACK[value])?value:rgb}return value}},toCamelCase:function(string){return string.replace(/\-([a-z])/g,flip(String2.toUpperCase))}});function _MSIE_getPixelValue(element,value){if(_PIXEL.test(value)){return parseInt(value)}var styleLeft=element.style.left;var runtimeStyleLeft=element.runtimeStyle.left;element.runtimeStyle.left=element.currentStyle.left;element.style.left=value||0;value=element.style.pixelLeft;element.style.left=styleLeft;element.runtimeStyle.left=runtimeStyleLeft;return value}function _MSIE_getColorValue(element,type){if(element.createTextRange){var range=element.createTextRange()}else{range=element.document.body.createTextRange();range.moveToElementText(element)}var color=range.queryCommandValue(type);return format("rgb(%1, %2, %3)",color&255,(color&65280)>>8,(color&16711680)>>16)}var _CSSStyleDeclaration_ReadOnly=Binding.extend({getPropertyValue:function(style,propertyName){return this.base(style,_CSSPropertyNameMap[propertyName]||propertyName)},"@MSIE.+win":{getPropertyValue:function(style,propertyName){return propertyName=="float"?style.styleFloat:style[ViewCSS.toCamelCase(propertyName)]}}});var CSSStyleDeclaration=_CSSStyleDeclaration_ReadOnly.extend({setProperty:function(style,propertyName,value,priority){return this.base(style,_CSSPropertyNameMap[propertyName]||propertyName,value,priority)},"@MSIE.+win":{setProperty:function(style,propertyName,value,priority){if(propertyName=="opacity"){value*=100;style.opacity=value;style.zoom=1;style.filter="Alpha(opacity="+value+")"}else{if(priority=="important"){style.cssText+=format(";%1:%2!important;",propertyName,value)}else{style.setAttribute(ViewCSS.toCamelCase(propertyName),value)}}}}},{"@MSIE":{bind:function(style){style.getPropertyValue=this.prototype.getPropertyValue;style.setProperty=this.prototype.setProperty;return style}}});var _CSSPropertyNameMap=new Base({"@Gecko":{opacity:"-moz-opacity"},"@KHTML":{opacity:"-khtml-opacity"}});with(CSSStyleDeclaration.prototype){getPropertyValue.toString=setProperty.toString=K("[base2]")}AbstractView.implement(ViewCSS);var NodeSelector=Interface.extend({"@(element.querySelector)":{querySelector:function(node,selector){try{var element=this.base(node,trim(selector));if(element){return element}}catch(x){}return new Selector(selector).exec(node,1)},querySelectorAll:function(node,selector){try{var nodeList=this.base(node,trim(selector));if(nodeList){return new StaticNodeList(nodeList)}}catch(x){}return new Selector(selector).exec(node)}},"@!(element.querySelector)":{querySelector:function(node,selector){return new Selector(selector).exec(node,1)},querySelectorAll:function(node,selector){return new Selector(selector).exec(node)}}});extend(NodeSelector.prototype,{querySelector:function(selector){return DOM.bind(this.base(selector))},querySelectorAll:function(selector){return extend(this.base(selector),"item",function(index){return DOM.bind(this.base(index))})}});var DocumentSelector=NodeSelector.extend();var ElementSelector=NodeSelector.extend({"@!(element.matchesSelector)":{matchesSelector:function(element,selector){return new Selector(selector).test(element)}}});var _CSS_ESCAPE=/'(\\.|[^'\\])*'|"(\\.|[^"\\])*"/g,_CSS_IMPLIED_ASTERISK=/([\s>+~,]|[^(]\+|^)([#.:\[])/g,_CSS_IMPLIED_SPACE=/(^|,)([^\s>+~])/g,_CSS_WHITESPACE=/\s*([\s>+~,]|^|$)\s*/g,_CSS_WILD_CARD=/\s\*\s/g,_CSS_UNESCAPE=/\x01(\d+)/g,_QUOTE=/'/g;var CSSParser=RegGrp.extend({constructor:function(items){this.base(items);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(selector,simple){var strings=this._strings=[];selector=this.optimise(this.format(String(selector).replace(_CSS_ESCAPE,function(string){return"\x01"+strings.push(string.slice(1,-1).replace(_QUOTE,"\\'"))})));if(simple){selector=selector.replace(/^ \*?/,"")}return selector},format:function(selector){return selector.replace(_CSS_WHITESPACE,"$1").replace(_CSS_IMPLIED_SPACE,"$1 $2").replace(_CSS_IMPLIED_ASTERISK,"$1*$2")},optimise:function(selector){return this.sorter.exec(selector.replace(_CSS_WILD_CARD,">* "))},parse:function(selector,simple){return this.cache[selector]||(this.cache[selector]=this.unescape(this.exec(this.escape(selector,simple))))},unescape:function(selector){var strings=this._strings;return selector.replace(_CSS_UNESCAPE,function(match,index){return strings[index-1]})}});function _nthChild(match,args,position,last,not,and,mod,equals){last=/last/i.test(match)?last+"+1-":"";if(!isNaN(args)){args="0n+"+args}else{if(args=="even"){args="2n"}else{if(args=="odd"){args="2n+1"}}}args=args.split("n");var a=args[0]?(args[0]=="-")?-1:parseInt(args[0]):1;var b=parseInt(args[1])||0;var negate=a<0;if(negate){a=-a;if(a==1){b++}}var query=format(a==0?"%3%7"+(last+b):"(%4%3-%2)%6%1%70%5%4%3>=%2",a,b,position,last,and,mod,equals);if(negate){query=not+"("+query+")"}return query}var XPathParser=CSSParser.extend({constructor:function(){this.base(XPathParser.build());this.sorter.putAt(1,"$1$4$3$6")},escape:function(selector,simple){return this.base(selector,simple).replace(/,/g,"\x02")},unescape:function(selector){return this.base(selector.replace(/\[self::\*\]/g,"").replace(/(^|\x02)\//g,"$1./").replace(/\x02/g," | ")).replace(/'[^'\\]*\\'(\\.|[^'\\])*'/g,function(match){return"concat("+match.split("\\'").join("',\"'\",'")+")"})},"@opera(7|8|9\\.[1-4])":{unescape:function(selector){return this.base(selector.replace(/last\(\)/g,"count(preceding-sibling::*)+count(following-sibling::*)+1"))}}},{build:function(){this.values.attributes[""]="[@$1]";forEach(this.types,function(add,type){forEach(this.values[type],add,this.rules)},this);this.build=K(this.rules);return this.rules},optimised:{pseudoClasses:{"first-child":"[1]","last-child":"[last()]","only-child":"[last()=1]"}},rules:extend({},{"@!KHTML|opera":{"(^|\\x02) (\\*|[\\w-]+)#([\\w-]+)":"$1id('$3')[self::$2]"},"@!KHTML":{"([ >])(\\*|[\\w-]+):([\\w-]+-child(\\(([^)]+)\\))?)":function(match,token,tagName,pseudoClass,$4,args){var replacement=(token==" ")?"//*":"/*";if(/^nth/i.test(pseudoClass)){replacement+=_xpath_nthChild(pseudoClass,args,"position()")}else{replacement+=XPathParser.optimised.pseudoClasses[pseudoClass]}return replacement+"[self::"+tagName+"]"}}}),types:{identifiers:function(replacement,token){this[rescape(token)+"([\\w-]+)"]=replacement},combinators:function(replacement,combinator){this[rescape(combinator)+"(\\*|[\\w-]+)"]=replacement},attributes:function(replacement,operator){this["\\[\\s*([\\w-]+)\\s*"+rescape(operator)+"\\s*([^\\]\\s]*)\\s*\\]"]=replacement},pseudoClasses:function(replacement,pseudoClass){this[":"+pseudoClass.replace(/\(\)$/,"\\(([^)]+)\\)")]=replacement}},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:{"link":"[false]","visited":"[false]","empty":"[not(child::*) and not(text())]","first-child":"[not(preceding-sibling::*)]","last-child":"[not(following-sibling::*)]","not()":_xpath_not,"nth-child()":_xpath_nthChild,"nth-last-child()":_xpath_nthChild,"only-child":"[not(preceding-sibling::*) and not(following-sibling::*)]","root":"[not(parent::*)]"}},"@opera(7|8|9\\.[1-4])":{build:function(){this.optimised.pseudoClasses["last-child"]=this.values.pseudoClasses["last-child"];this.optimised.pseudoClasses["only-child"]=this.values.pseudoClasses["only-child"];return this.base()}}});var _notParser;function _xpath_not(match,args){if(!_notParser){_notParser=new XPathParser}return"[not("+_notParser.exec(trim(args)).replace(/\[1\]/g,"").replace(/^(\*|[\w-]+)/,"[self::$1]").replace(/\]\[/g," and ").slice(1,-1)+")]"}function _xpath_nthChild(match,args,position){return"["+_nthChild(match,args,position||"count(preceding-sibling::*)+1","last()","not"," and "," mod ","=")+"]"}var Selector=Base.extend({constructor:function(selector){this.toString=K(trim(selector))},exec:function(context,count,simple){return Selector.parse(this,simple)(context,count)},isSimple:function(){if(!_parser.exec){_parser=new CSSParser(_parser)}return !_COMBINATOR.test(trim(_parser.escape(this)))},test:function(element){if(this.isSimple()){return !!Selector.parse(this,true)(element,1)}else{element.setAttribute("b2-test",true);var result=new Selector(this+"[b2-test]").exec(Traversal.getOwnerDocument(element),1);element.removeAttribute("b2-test");return result==element}},toXPath:function(simple){return Selector.toXPath(this,simple)},"@(XPathResult)":{exec:function(context,count,simple){if(_NOT_XPATH.test(this)){return this.base(context,count,simple)}var document=Traversal.getDocument(context);var type=count==1?9:7;var result=document.evaluate(this.toXPath(simple),context,null,type,null);return count==1?result.singleNodeValue:result}},"@MSIE":{exec:function(context,count,simple){if(typeof context.selectNodes!="undefined"&&!_NOT_XPATH.test(this)){var method=single?"selectSingleNode":"selectNodes";return context[method](this.toXPath(simple))}return this.base(context,count,simple)}},"@(true)":{exec:function(context,count,simple){try{var result=this.base(context||document,count,simple)}catch(error){throw new SyntaxError(format("'%1' is not a valid CSS selector.",this))}return count==1?result:new StaticNodeList(result)}}},{toXPath:function(selector,simple){if(!_xpathParser){_xpathParser=new XPathParser}return _xpathParser.parse(selector,simple)}});var _COMBINATOR=/[^,]\s|[+>~]/;var _NOT_XPATH=":(checked|disabled|enabled|contains|hover|active|focus)|^(#[\\w-]+\\s*)?\\w+$";if(detect("KHTML")){if(detect("WebKit5")){_NOT_XPATH+="|nth\\-|,"}else{_NOT_XPATH="."}}_NOT_XPATH=new RegExp(_NOT_XPATH);Selector.operators={"=":"%1=='%2'","~=":/(^| )%1( |$)/,"|=":/^%1(-|$)/,"^=":/^%1/,"$=":/%1$/,"*=":/%1/};Selector.operators[""]="%1!=null";Selector.pseudoClasses={"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","target":"e%1.id&&e%1.id==location.hash.slice(1)","hover":"DocumentState.getInstance(d).isHover(e%1)","active":"DocumentState.getInstance(d).isActive(e%1)","focus":"DocumentState.getInstance(d).hasFocus(e%1)","link":"false","visited":"false"};var _INDEXED=document.documentElement.sourceIndex!==undefined,_VAR="var p%2=0,i%2,e%3,n%2=e%1.",_ID=_INDEXED?"e%1.sourceIndex":"assignID(e%1)",_TEST="var g="+_ID+";if(!p[g]){p[g]=1;",_STORE="r[k++]=e%1;if(s==1)return e%1;if(k===s){_query.state=[%2];_query.complete=%3;return r;",_FN="var _query=function(e0,s%1){_indexed++;var r=[],p={},p0=0,reg=[%4],d=Traversal.getDocument(e0),c=d.writeln?'toUpperCase':'toString',k=0;";var _xpathParser;var _reg,_index,_wild,_list,_group,_listAll,_duplicate,_cache={},_simple={};function sum(list){var total=0;for(var i=0;i<list.length;i++){total+=list[i]}return total}var _parser={"^(\\*|[\\w-]+)":function(match,tagName){return tagName=="*"?"":format("if(e0.nodeName=='%1'[c]()){",tagName)},"^ \\*:root":function(match){_wild=false;var replacement="e%2=d.documentElement;if(Traversal.contains(e%1,e%2)){";return format(replacement,_index++,_index)}," (\\*|[\\w-]+)#([\\w-]+)":function(match,tagName,id){_wild=false;var replacement="var e%2=_byId(d,'%4');if(e%2&&";if(tagName!="*"){replacement+="e%2.nodeName=='%3'[c]()&&"}replacement+="Traversal.contains(e%1,e%2)){";if(_list[_group]){replacement+=format("i%1=n%1.length;",sum(_list))}return format(replacement,_index++,_index,tagName,id)}," (\\*|[\\w-]+)":function(match,tagName){_duplicate++;_wild=tagName=="*";var replacement=format(_VAR,_index++,"%2",_index);replacement+=(_wild&&_MSIE5)?"all":"getElementsByTagName('%3')";replacement+=";for(i%2=a%2||0;(e%1=n%2[i%2]);i%2++){";_list[_group]++;return format(replacement,_index,sum(_list),tagName)},">(\\*|[\\w-]+)":function(match,tagName){var children=_MSIE&&_index;_wild=tagName=="*";var replacement=_VAR+(children?"children":"childNodes");replacement=format(replacement,_index++,"%2",_index);if(!_wild&&_MSIE&&children){replacement+=".tags('%3')"}replacement+=";for(i%2=a%2||0;(e%1=n%2[i%2]);i%2++){";if(_wild){replacement+="if(e%1.nodeType==1){";_wild=_MSIE5}else{if(!_MSIE||!children){replacement+="if(e%1.nodeName=='%3'[c]()){"}}_list[_group]++;return format(replacement,_index,sum(_list),tagName)},"\\+(\\*|[\\w-]+)":function(match,tagName){var replacement="";if(_wild&&_MSIE){replacement+="if(e%1.nodeName!='!'){"}_wild=false;replacement+="e%1=Traversal.getNextElementSibling(e%1);if(e%1";if(tagName!="*"){replacement+="&&e%1.nodeName=='%2'[c]()"}replacement+="){";return format(replacement,_index,tagName)},"~(\\*|[\\w-]+)":function(match,tagName){var replacement="";if(_wild&&_MSIE){replacement+="if(e%1.nodeName!='!'){"}_wild=false;_duplicate=2;replacement+="while(e%1=e%1.nextSibling){if(e%1.b2_adjacent==_indexed)break;if(";if(tagName=="*"){replacement+="e%1.nodeType==1";if(_MSIE5){replacement+="&&e%1.nodeName!='!'"}}else{replacement+="e%1.nodeName=='%2'[c]()"}replacement+="){e%1.b2_adjacent=_indexed;";return format(replacement,_index,tagName)},"#([\\w-]+)":function(match,id){_wild=false;var replacement="if(e%1.id=='%2'){";if(_list[_group]){replacement+=format("i%1=n%1.length;",sum(_list))}return format(replacement,_index,id)},"\\.([\\w-]+)":function(match,className){_wild=false;_reg.push(new RegExp("(^|\\s)"+rescape(className)+"(\\s|$)"));return format("if(e%1.className&&reg[%2].test(e%1.className)){",_index,_reg.length-1)},":not\\((\\*|[\\w-]+)?([^)]*)\\)":function(match,tagName,filters){var replacement=(tagName&&tagName!="*")?format("if(e%1.nodeName=='%2'[c]()){",_index,tagName):"";replacement+=_parser.exec(filters);return"if(!"+replacement.slice(2,-1).replace(/\)\{if\(/g,"&&")+"){"},":nth(-last)?-child\\(([^)]+)\\)":function(match,last,args){_wild=false;last=format("e%1.parentNode.b2_length",_index);var replacement="if(p%1!==e%1.parentNode)p%1=_register(e%1.parentNode);";replacement+="var i=e%1[p%1.b2_lookup];if(p%1.b2_lookup!='b2_index')i++;if(";return format(replacement,_index)+_nthChild(match,args,"i",last,"!","&&","% ","==")+"){"},":([\\w-]+)(\\(([^)]+)\\))?":function(match,pseudoClass,$2,args){return"if("+format(Selector.pseudoClasses[pseudoClass]||"throw",_index,args||"")+"){"},"\\[\\s*([\\w-]+)\\s*([^=]?=)?\\s*([^\\]\\s]*)\\s*\\]":function(match,attr,operator,value){value=trim(value);if(_MSIE){var getAttribute="Element.getAttribute(e%1,'%2')"}else{getAttribute="e%1.getAttribute('%2')"}getAttribute=format(getAttribute,_index,attr);var replacement=Selector.operators[operator||""];if(instanceOf(replacement,RegExp)){_reg.push(new RegExp(format(replacement.source,rescape(_parser.unescape(value)))));replacement="reg[%2].test(%1)";value=_reg.length-1}return"if("+format(replacement,getAttribute,value)+"){"}};(function(_no_shrink_){var _byId=detect("MSIE[5-7]")?function(document,id){var result=document.all[id]||null;if(!result||result.id==id){return result}for(var i=0;i<result.length;i++){if(result[i].id==id){return result[i]}}return null}:function(document,id){return document.getElementById(id)};var _indexed=1;function _register(element){if(element.rows){element.b2_length=element.rows.length;element.b2_lookup="rowIndex"}else{if(element.cells){element.b2_length=element.cells.length;element.b2_lookup="cellIndex"}else{if(element.b2_indexed!=_indexed){var index=0;var child=element.firstChild;while(child){if(child.nodeType==1&&child.nodeName!="!"){child.b2_index=++index}child=child.nextSibling}element.b2_length=index;element.b2_lookup="b2_index"}}}element.b2_indexed=_indexed;return element}Selector.parse=function(selector,simple){var cache=simple?_simple:_cache;if(!cache[selector]){if(!_parser.exec){_parser=new CSSParser(_parser)}_reg=[];_list=[];var fn="";var selectors=_parser.escape(selector,simple).split(",");for(_group=0;_group<selectors.length;_group++){_wild=_index=_list[_group]=0;_duplicate=selectors.length>1?2:0;var block=_parser.exec(selectors[_group])||"throw;";if(_wild&&_MSIE){block+=format("if(e%1.tagName!='!'){",_index)}var store=(_duplicate>1)?_TEST:"";block+=format(store+_STORE,_index,"%2");block+=Array(match(block,/\{/g).length+1).join("}");fn+=block}fn=_parser.unescape(fn);if(selectors.length>1){fn+="r.unsorted=1;"}var args="";var state=[];var total=sum(_list);for(var i=1;i<=total;i++){args+=",a"+i;state.push("i"+i+"?(i"+i+"-1):0")}if(total){var complete=[],k=0;for(var i=0;i<_group;i++){k+=_list[i];if(_list[i]){complete.push(format("n%1&&i%1==n%1.length",k))}}}fn+="_query.state=[%2];_query.complete=%3;return s==1?null:r}";eval(format(_FN+fn,args,state.join(","),total?complete.join("&&"):true,_reg));cache[selector]=_query}return cache[selector]}})();var StaticNodeList=Base.extend({constructor:function(nodes){nodes=nodes||[];this.length=nodes.length;this.item=function(index){if(index<0){index+=this.length}return nodes[index]};if(nodes.unsorted){nodes.sort(_SORTER)}},length:0,forEach:function(block,context){for(var i=0;i<this.length;i++){block.call(context,this.item(i),i,this)}},item:Undefined,not:function(test,context){return this.filter(not(test),context)},slice:function(start,end){return new StaticNodeList(this.map(I).slice(start,end))},"@(XPathResult)":{constructor:function(nodes){if(nodes&&nodes.snapshotItem){this.length=nodes.snapshotLength;this.item=function(index){if(index<0){index+=this.length}return nodes.snapshotItem(index)}}else{this.base(nodes)}}}});StaticNodeList.implement(Enumerable);var _matchesSelector=function(test,context){if(typeof test!="function"){test=bind("test",new Selector(test))}return this.base(test,context)};StaticNodeList.implement({every:_matchesSelector,filter:_matchesSelector,not:_matchesSelector,some:_matchesSelector});StaticNodeList.implement({filter:function(test,context){return new StaticNodeList(this.base(test,context))}});var _SORTER=_INDEXED?function(node1,node2){return node1.sourceIndex-node2.sourceIndex}:function(node1,node2){return(Node.compareDocumentPosition(node1,node2)&2)-1};Document.implement(DocumentSelector);Element.implement(ElementSelector);var HTMLDocument=Document.extend(null,{bind:function(document){DocumentState.createState(document);return this.base(document)}});var HTMLElement=Element.extend(null,{bindings:{},tags:"*",bind:function(element){if(!element.classList){element.classList=new _ElementClassList(element)}if(!element.ownerDocument){element.ownerDocument=Traversal.getOwnerDocument(element)}return this.base(element)},extend:function(){var binding=base(this,arguments);forEach.csv(binding.tags,function(tagName){HTMLElement.bindings[tagName]=binding});return binding}});HTMLElement.extend(null,{tags:"APPLET,EMBED",bind:I});var ClassList=Module.extend({add:function(element,token){if(!this.has(element,token)){element.className+=(element.className?" ":"")+token}},has:function(element,token){var regexp=new RegExp("(^|\\s)"+token+"(\\s|$)");return regexp.test(element.className)},remove:function(element,token){var regexp=new RegExp("(^|\\s)"+token+"(\\s|$)","g");element.className=trim(element.className.replace(regexp,"$2"))},toggle:function(element,token){this[this.has(element,token)?"remove":"add"](element,token)}});function _ElementClassList(element){this.add=function(token){ClassList.add(element,token)};this.has=function(token){return ClassList.has(element,token)};this.remove=function(token){ClassList.remove(element,token)}}_ElementClassList.prototype.toggle=function(token){this[this.has(token)?"remove":"add"](token)};var DocumentState=Base.extend({constructor:function(document){this.document=document;this.events={};this._hoverElement=document.documentElement;this.isBound=function(){return !!DOM.bind[document.base2ID]};forEach(this,function(method,name,documentState){if(/^on((DOM)?\w+|[a-z]+)$/.test(name)){documentState.registerEvent(name.slice(2))}})},includes:function(element,target){return target&&(element==target||Traversal.contains(element,target))},hasFocus:function(element){return element==this._focusElement},isActive:function(element){return this.includes(element,this._activeElement)},isHover:function(element){return this.includes(element,this._hoverElement)},handleEvent:function(event){return this["on"+event.type](event)},onblur:function(event){delete this._focusElement},onmouseover:function(event){this._hoverElement=event.target},onmouseout:function(event){delete this._hoverElement},onmousedown:function(event){this._activeElement=event.target},onfocus:function(event){this._focusElement=event.target},onmouseup:function(event){delete this._activeElement},registerEvent:function(type){this.document.addEventListener(type,this,true);this.events[type]=true},"@(document.activeElement===undefined)":{constructor:function(document){this.base(document);if(this.isBound()){document.activeElement=document.body}},onfocus:function(event){this.base(event);if(this.isBound()){this.document.activeElement=this._focusElement}},onblur:function(event){this.base(event);if(this.isBound()){this.document.activeElement=this.document.body}}},"@!(element.addEventListener)":{constructor:function(document){this.base(document);var dispatcher=new EventDispatcher(this);this._dispatch=function(event){event.target=event.target||event.srcElement||document;dispatcher.handleEvent(event)};this.handleEvent=function(event){if(this["on"+event.type]){this["on"+event.type](event)}return dispatcher.handleEvent(event)}},registerEvent:function(type,target){var events=this.events[type];var canDelegate=_CAN_DELEGATE.test(type);if(!events||!canDelegate){if(!events){events=this.events[type]={}}if(canDelegate||!target){target=this.document}var state=this;target["on"+type]=function(event){if(!event){event=Traversal.getDefaultView(this).event}if(event){state.handleEvent(event)}}}return events},"@MSIE.+win":{constructor:function(document){this.base(document);var forms={};this._registerForm=function(form){var formID=assignID(form);if(!forms[formID]){forms[formID]=true;form.attachEvent("onsubmit",this._dispatch);form.attachEvent("onreset",this._dispatch)}}},fireEvent:function(type,event){event=copy(event);event.type=type;this.handleEvent(event)},registerEvent:function(type,target){var events=this.events[type];var canDelegate=_CAN_DELEGATE.test(type);if(!events||!canDelegate){if(!events){events=this.events[type]={}}if(canDelegate||!target){target=this.document}var state=this;target.attachEvent("on"+type,function(event){event.target=event.srcElement||state.document;state.handleEvent(event);if(state["after"+type]){state["after"+type](event)}})}return events},onDOMContentLoaded:function(event){forEach(event.target.forms,this._registerForm,this);try{this.setFocus(this.document.activeElement)}catch(x){}},onmousedown:function(event){this.base(event);this._button=event.button},onmouseup:function(event){this.base(event);if(this._button==null){this.fireEvent("mousedown",event)}delete this._button},aftermouseup:function(){if(this._selectEvent){this._dispatch(this._selectEvent);delete this._selectEvent}},onfocusin:function(event){this.setFocus(event.target);this.onfocus(event)},setFocus:function(target){var change=this.events.change,select=this.events.select;if(change||select){var dispatch=this._dispatch;if(change){target.attachEvent("onchange",dispatch)}if(select){var state=this;var onselect=function(event){if(state._activeElement==target){state._selectEvent=copy(event)}else{dispatch(event)}};target.attachEvent("onselect",onselect)}target.attachEvent("onblur",function(){target.detachEvent("onblur",arguments.callee);if(change){target.detachEvent("onchange",dispatch)}if(select){target.detachEvent("onselect",onselect)}})}},onfocusout:function(event){this.onblur(event)},onclick:function(event){var target=event.target;if(target.form){this._registerForm(target.form)}},ondblclick:function(event){this.fireEvent("click",event)}}}},{init:function(){assignID(document);DocumentState=this;this.createState(document);new DOMContentLoadedEvent(document)},createState:function(document){var base2ID=document.base2ID;if(!this[base2ID]){this[base2ID]=new this(document)}return this[base2ID]},getInstance:function(target){return this[Traversal.getDocument(target).base2ID]}});eval(this.exports)};try{if(NodeList&&!(NodeList.prototype.forEach)){NodeList.prototype.forEach=function(B,A){for(var C=0;C<this.length;C++){B.call(A,this.item(C),C,this)}}}}catch(e){}try{if(typeof StaticNodeList!="undefined"&&!(StaticNodeList.prototype.forEach)){StaticNodeList.prototype.forEach=function(B,A){for(var C=0;C<this.length;C++){B.call(A,this.item(C),C,this)}}}}catch(e){}if(typeof (base2)=="undefined"){throw new Error("Base2 not found. wForms 3 depends on the base2 library.")}base2.DOM.HTMLElement.implement({hasClass:function(A,B){if(A.classList&&A.classList.contains){return A.classList.contains(B)}else{return A.className.match(new RegExp("(\\s|^)"+B+"(\\s|$)"))}},removeClass:function(A,B){if(A.classList&&A.classList.remove){return A.classList.remove(B)}else{if(base2.DOM.HTMLElement.hasClass(A,B)){var C=new RegExp("(\\s|^)"+B+"(\\s|$)");A.className=A.className.replace(C," ").replace(/^\s+|\s+$/g,"")}}},addClass:function(A,B){if(A.classList&&A.classList.add){A.classList.add(B)}else{if(!base2.DOM.HTMLElement.hasClass(A,B)){A.className=(A.className+" "+B).replace(/^\s+|\s+$/g,"")}}}});if(typeof (wFORMS)=="undefined"){wFORMS={}}wFORMS.NAME="wFORMS";wFORMS.VERSION="3.2";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.getForm=function(A){if(A.form){wFORMS.standardizeElement(A.form);return A.form}else{if(A.parentNode){if(A.parentNode.tagName.toLowerCase()=="form"){wFORMS.standardizeElement(A.parentNode);return A.parentNode}else{return this.getForm(A.parentNode)}}else{return null}}};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.position=function(B){var A=B.offsetLeft;var D=B.offsetTop;if(B.offsetParent){var C=this.position(B.offsetParent);A+=C.left;D+=C.top}return{left:A,top:D}};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.LOADER={};wFORMS.LOADER.enabled=false;wFORMS.LOADER.message="Please wait...";wFORMS.LOADER.spinner="";wFORMS.LOADER.speed=2;wFORMS.LOADER.show=function(placeholder){if(wFORMS.LOADER.enabled){var p=wFORMS.LOADER.create();p.style.visibility="hidden";p.style.overflow="hidden";/*@cc_on
		@if(@_jscript_version <= 5.7)
			p.style.width = "100%"; // triggers hasLayout in IE6			
		@end
		@*/var where=(arguments[1]=="above")?placeholder:placeholder.nextSibling;p=placeholder.parentNode.insertBefore(p,where);p.id="wfLoader_"+placeholder.id;wFORMS.LOADER._id=p.id;var h=p.clientHeight;p.style.height=h+"px";wFORMS.LOADER._padding=p.clientHeight-h;p.style.height=(h-wFORMS.LOADER._padding)+"px";p.style.visibility="visible"}};wFORMS.LOADER.hide=function(B){if(wFORMS.LOADER.enabled&&wFORMS.LOADER._id){var A=document.getElementById(wFORMS.LOADER._id);if(A){if(arguments[1]){A.parentNode.removeChild(A)}else{wFORMS.LOADER._interval=setInterval(function(){var C=A.clientHeight-wFORMS.LOADER.speed-wFORMS.LOADER._padding;if(C<0){C=0}A.style.height=C+"px";if(A&&!(A.clientHeight-wFORMS.LOADER._padding)){A.parentNode.removeChild(A);clearInterval(wFORMS.LOADER._interval)}},10)}}wFORMS.LOADER._id=null}};wFORMS.LOADER.create=function(){var C=document.createElement("DIV");C.className="wfLoader";var B=C.appendChild(document.createElement("DIV"));B.className="inner";if(wFORMS.LOADER.spinner){var A=B.appendChild(document.createElement("IMG"));A.src=wFORMS.LOADER.spinner}if(wFORMS.LOADER.message){B.appendChild(document.createTextNode(wFORMS.LOADER.message))}return C};wFORMS.onLoadHandler=function(){var A=document.getElementsByTagName("FORM");for(var B=0;B<A.length;B++){var C=function(D){if(D.getAttribute("rel")!="no-behavior"){wFORMS.LOADER.show(D,"above");setTimeout(function(){wFORMS.applyBehaviors(D);wFORMS.LOADER.hide(D)},1)}}(A[B])}};wFORMS.standardizeElement=function(A){if(!A.addEventListener){A.addEventListener=function(C,B,D){base2.DOM.Element.addEventListener(this,C,B,D)}}if(!A.hasClass){A.hasClass=function(B){if((" "+this.className+" ").indexOf(" "+B+" ")!=-1){return true}return false}}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)}}};wFORMS.applyBehaviors=function(D){if(!!base2.DOM.bind[D.base2ID]||window.opera||navigator.userAgent.match(/MSIE [567]/)||(navigator.userAgent.match(/MSIE 8/)&&document.compatMode=="BackCompat")){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(navigator.userAgent.match(/iPad/i)){wFORMS.helpers.activateStylesheet("wforms-layout-ipad.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(C){var A=new wFORMS.behaviors.hint.instance(C);if(!C.querySelectorAll){base2.DOM.bind(C)}var B=C.querySelectorAll(wFORMS.behaviors.hint.HINT_SELECTOR);if(!B.forEach){B.forEach=NodeList.prototype.forEach}B.forEach(function(D){var E=A.getElementByHintId(D.id);if(E){if(!E.addEventListener){base2.DOM.bind(E)}if(E.tagName=="SELECT"||E.tagName=="TEXTAREA"||(E.tagName=="INPUT"&&E.type!="radio"&&E.type!="checkbox")){E.addEventListener("focus",function(F){A.run(F,this)},false);E.addEventListener("blur",function(F){A.run(F,this)},false)}else{E.addEventListener("mouseover",function(F){A.run(F,E)},false);E.addEventListener("mouseout",function(F){A.run(F,E)},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(!C.removeClass){base2.DOM.bind(C)}if(B.type=="focus"||B.type=="mouseover"){C.removeClass(wFORMS.behaviors.hint.CSS_INACTIVE);C.addClass(wFORMS.behaviors.hint.CSS_ACTIVE);if(!wFORMS.helpers.getForm(A).hasClass("hintsSide")){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(F,E){var B=wFORMS.helpers.getForm(E);if(F.parentNode!=B){B.appendChild(F)}var A=wFORMS.helpers.position(E);var C=wFORMS.helpers.position(F);var D={left:A.left-C.left,top:A.top-C.top};if(E.tagName.toLowerCase()=="select"){F.style.left=F.offsetLeft+D.left+E.offsetWidth+"px";F.style.top=F.offsetTop+D.top+"px"}else{F.style.left=F.offsetLeft+D.left+"px";F.style.top=F.offsetTop+D.top+E.offsetHeight+"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",CAPTION_UNLOAD:"Any data entered on ANY PAGE of this form will be LOST."},runValidationOnPageNext:true,warnOnUnload: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(D){var A=null;var C=wFORMS.behaviors.paging;var B=(wFORMS.behaviors.validation&&wFORMS.behaviors.paging.runValidationOnPageNext);D.querySelectorAll(wFORMS.behaviors.paging.SELECTOR).forEach(function(G){if(!A){A=new wFORMS.behaviors.paging.instance(D)}var J=A.getOrCreatePlaceHolder(G);var E=wFORMS.behaviors.paging.getPageIndex(G);if(E==1){var H=base2.DOM.bind(J.appendChild(C._createNextPageButton(E)));if(B){H.addEventListener("click",function(M){var L=wFORMS.getBehaviorInstance(A.target,"validation");if(L.run(M,G)){A.run(M,H)}},false)}else{H.addEventListener("click",function(L){A.run(L,H)},false)}wFORMS.behaviors.paging.showPage(G)}else{var H=base2.DOM.bind(C._createPreviousPageButton(E));J.insertBefore(H,J.firstChild);H.addEventListener("click",function(L){A.run(L,H)},false);if(!wFORMS.behaviors.paging.isLastPageIndex(E,true)){var F=base2.DOM.bind(J.appendChild(C._createNextPageButton(E)));if(B){F.addEventListener("click",function(M){var L=wFORMS.getBehaviorInstance(A.target,"validation");if(L.run(M,G)){A.run(M,F)}},false)}else{F.addEventListener("click",function(L){A.run(L,F)},false)}}}});if(A){p=A.findNextPage(0);A.currentPageIndex=0;A.activatePage(wFORMS.behaviors.paging.getPageIndex(p),false);if(!window.onbeforeunload){window.onbeforeunload=function(){if(A.behavior.warnOnUnload){return A.behavior.MESSAGES.CAPTION_UNLOAD}}}A.onApply();base2.DOM.Element.addEventListener(D,"submit",function(E){A.onSubmit(E,A)})}return A};wFORMS.behaviors.paging.instance.prototype.onApply=function(){};wFORMS.behaviors.paging.instance.prototype.onSubmit=function(E,A){if(!wFORMS.behaviors.paging.isLastPageIndex(A.currentPageIndex)){var D=wFORMS.behaviors.paging.getPageByIndex(A.currentPageIndex);var B=A.findNextPage(A.currentPageIndex);var C=wFORMS.getBehaviorInstance(A.target,"validation");if(C.run(E,D)){A.activatePage(A.currentPageIndex+1);var F=base2.DOM.Element.querySelector(B,"input, textarea, select");if(F){F.focus()}}E.stopPropagation();E.preventDefault();E.pagingStopPropagation=true}else{if(window.onbeforeunload){window.onbeforeunload=null}}};wFORMS.behaviors.paging.instance.prototype.onPageNext=function(A){this.behavior.onPageNext(A)};wFORMS.behaviors.paging.instance.prototype.onPagePrevious=function(A){this.behavior.onPagePrevious(A)};wFORMS.behaviors.paging.instance.prototype.onPageChange=function(A){this.behavior.onPageChange(A)};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.onPageChange(C);if(B>D){A.onPageNext(C)}else{A.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(!!base2.DOM.bind[F.base2ID]){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.hasClass=function(G){return base2.DOM.HTMLElement.hasClass(this,G)}}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);return false};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);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.hasClass=function(C){return base2.DOM.HTMLElement.hasClass(this,C)}}while(A&&(A.nodeType==3||A.hasClass(this.behavior.CSS_REMOVEABLE))){A=A.nextSibling;if(A&&A.nodeType==1&&!A.hasClass){A.hasClass=function(C){return base2.DOM.HTMLElement.hasClass(this,C)}}}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(B,N,L){if(B.doItOnce){B.doItOnce=null}var D=new Array();var F=0;while(B&&B.childNodes&&B.childNodes[F]){var G=B.childNodes[F];F++;if(G.nodeType!=1){continue}if(!G.hasClass){G.hasClass=function(O){return base2.DOM.HTMLElement.hasClass(this,O)}}if(this.behavior.isDuplicate(G)){D.push(G);continue}if(G.hasClass(this.behavior.CSS_DUPLICATE_SPAN)){D.push(G);continue}if(G.hasClass(this.behavior.CSS_DUPLICATE_LINK)){D.push(G);continue}if((G.tagName=="INPUT"&&G.type!="button")||G.tagName=="TEXTAREA"){if(G.type!="radio"&&G.type!="checkbox"){G.value=""}else{G.checked=false}}if(G.tagName=="INPUT"&&G.type=="radio"&&document.all&&!window.opera&&!L){var H='<INPUT type="radio" name="'+G.name+N+'"></INPUT>';var A=G.parentNode.insertBefore(document.createElement(H),G);A.id=G.id;A.className=G.className;A.value=G.value;G=G.parentNode.removeChild(G);var C=this.behavior.UPDATEABLE_ATTR_ARRAY.length;for(var E=0;E<C;E++){var J=this.behavior.UPDATEABLE_ATTR_ARRAY[E];var M=G.getAttribute(J);A.setAttribute(J,M)}G=A;if(!G.hasClass){G.hasClass=function(O){return base2.DOM.HTMLElement.hasClass(this,O)}}}this.updateAttributes(G,N,L);if(G.hasClass(this.behavior.CSS_REPEATABLE)){this.updateSectionChildNodes(G,this.createSuffix(G),L)}else{this.updateSectionChildNodes(G,N,L)}}for(var F=0;F<D.length;F++){var G=D[F];if(G.clearAttributes){G.clearAttributes(false)}if(G.parentNode){G.parentNode.removeChild(G)}}};_i.prototype.createSuffix=function(E,B){var D="["+(B?B:"0")+"]";var C=/\[(\d+)\]$/;E=E.parentNode;while(E&&E.tagName){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 }A=A.replace(/(\[\d+\])+(\-[HE])?$/,"$2");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)}if(wFORMS.behaviors["calculation"]&&wFORMS.behaviors["calculation"].isHandled(F)){wFORMS.behaviors["calculation"].removeHandledFlag(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.replace(new RegExp("(.*)("+wFORMS.behaviors.validation.ERROR_PLACEHOLDER_SUFFIX+")$"),"$1"+D+"$2")}else{if(L&&G=="id"){F.id=J.replace(new RegExp("(.*)("+wFORMS.behaviors.hint.HINT_SUFFIX+")$"),"$1"+D+"$2")}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){if(!A.hasClass){A.hasClass=function(B){return base2.DOM.HTMLElement.hasClass(this,B)}}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){if(!wFORMS.LOADER.enabled){this.duplicateSection(this.target)}else{var A=this;wFORMS.LOADER.show(A.target);setTimeout(function(){A.duplicateSection(A.target);wFORMS.LOADER.hide(A.target,true)},1)}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;this.cache={}}};wFORMS.behaviors["switch"].applyTo=function(C){var A=new wFORMS.behaviors["switch"].instance(C);A.buildCache();if(A.isCacheEmpty()){A.onApply();return A}A.setupTriggers();if(C.tagName!="FORM"){while(C&&C.tagName!="FORM"){C=C.parentNode}var B=wFORMS.getBehaviorInstance(C,"switch");if(B){B.merge(A);A.cache=B.cache;A.setupTargets();A.onApply();return new Array({target:null})}}A.setupTargets();A.onApply();return A};wFORMS.behaviors["switch"].instance.prototype.setupTriggers=function(){for(var B in this.cache){var C=this.cache[B].triggers;for(var A=0;A<C.length;A++){this.setupTrigger(C[A])}}};wFORMS.behaviors["switch"].instance.prototype.setupTrigger=function(G){var C=this;if(!G.id){G.id=wFORMS.helpers.randomId()}switch(G.tagName.toUpperCase()){case"OPTION":var A=G.parentNode;while(A&&A.tagName!="SELECT"){A=A.parentNode}if(A&&!wFORMS.behaviors["switch"].isHandled(A)){A.addEventListener("change",function(J){C.run(J,A)},false);wFORMS.behaviors["switch"].handleElement(A)}break;case"SELECT":if(G&&!wFORMS.behaviors["switch"].isHandled(G)){G.addEventListener("change",function(J){C.run(J,G)},false);wFORMS.behaviors["switch"].handleElement(G)}break;case"INPUT":if(G.type&&G.type.toUpperCase()=="RADIO"){var D=G.form[G.name];if(!D){D=[];var H=G.form.getElementsByTagName("INPUT");for(var B=0;B<H.length;B++){if(H[B].type=="radio"&&H[B].name==G.name){D.push(H[B])}}}for(var F=D.length-1;F>=0;F--){var E=D[F];wFORMS.standardizeElement(E);if(!this.behavior.isHandled(E)){E.addEventListener("click",function(J){C.run(J,E)},false);this.behavior.handleElement(E)}}}else{if(G.type&&G.type=="checkbox"){if(!this.behavior.isHandled(G)){G.addEventListener("click",function(J){C.run(J,G)},false);this.behavior.handleElement(G)}}}break;default:if(!this.behavior.isHandled(G)){G.addEventListener("click",function(J){C.run(J,G)},false);this.behavior.handleElement(G)}break}};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.buildCache=function(){this.cache_processed=new Array();if(this.target.className){if(this.target.className.indexOf(this.behavior.CSS_PREFIX)!=-1){this.addTriggerToCache(this.target)}if(this.target.className.indexOf(this.behavior.CSS_OFFSTATE_PREFIX)!=-1){this.addTargetToCache(this.target)}if(this.target.className.indexOf(this.behavior.CSS_ONSTATE_PREFIX)!=-1){this.addTargetToCache(this.target)}}var A=this.target.getElementsByTagName("*");for(var B=0;B<A.length;B++){if(A[B].tagName){if(A[B].className){if(A[B].className.indexOf(this.behavior.CSS_PREFIX)!=-1){this.addTriggerToCache(A[B])}if(A[B].className.indexOf(this.behavior.CSS_OFFSTATE_PREFIX)!=-1){this.addTargetToCache(A[B])}if(A[B].className.indexOf(this.behavior.CSS_ONSTATE_PREFIX)!=-1){this.addTargetToCache(A[B])}}}}};wFORMS.behaviors["switch"].instance.prototype.merge=function(A){for(var D in A.cache){if(!this.cache[D]){this.cache[D]=A.cache[D];continue}for(var C=0;C<A.cache[D].triggers.length;C++){for(var B=0;B<this.cache[D].triggers.length&&A.cache[D].triggers[C]!=this.cache[D].triggers[B];B++){}if(B==this.cache[D].triggers.length){this.cache[D].triggers.push(A.cache[D].triggers[C])}}for(var C=0;C<A.cache[D].targets.length;C++){for(var B=0;B<this.cache[D].targets.length&&A.cache[D].targets[C]!=this.cache[D].targets[B];B++){}if(B==this.cache[D].targets.length){this.cache[D].targets.push(A.cache[D].targets[C])}}}for(var D=0;D<A.cache_processed.length;D++){for(var C=0;C<this.cache_processed.length&&this.cache_processed[C]!=A.cache_processed[D];C++){}if(C==this.cache_processed.length){this.cache_processed.push(A.cache_processed[D])}}};wFORMS.behaviors["switch"].instance.prototype.isCacheEmpty=function(){for(var A in this.cache){return false}return true};wFORMS.behaviors["switch"].instance.prototype.invalidateCache=function(){var D=true;if(arguments.length>0){var C=document.getElementById(arguments[0]);if(C){var D=false;if(!C.querySelectorAll){base2.DOM.bind(C)}var A='*[class*="'+this.behavior.CSS_PREFIX+'"], *[class*="'+this.behavior.CSS_OFFSTATE_PREFIX+'"], *[class*="'+this.behavior.CSS_ONSTATE_PREFIX+'"]';var B=C.querySelectorAll(A);if(B.length>0||C.className&&(C.className.indexOf(this.behavior.CSS_PREFIX)!=-1||C.className.indexOf(this.behavior.CSS_OFFSTATE_PREFIX)!=-1||C.className.indexOf(this.behavior.CSS_ONSTATE_PREFIX)!=-1)){D=true}}}if(D){this.cache={};this.buildCache()}};wFORMS.behaviors["switch"].instance.prototype.addTriggerToCache=function(F){if(F.tagName=="OPTION"){var A=F.parentNode;while(A&&A.tagName!="SELECT"){A=A.parentNode}if(!A){return }F=A}if(!F.id){F.id=wFORMS.helpers.randomId()}for(var C=0;C<this.cache_processed.length;C++){if(this.cache_processed[C]==F.id){return }}this.cache_processed.push(F.id);wFORMS.standardizeElement(F);var E=this.getTriggers(new Array(F));for(var D=0;D<E.ON.length;D++){var B=E.ON[D];if(typeof this.cache[B]=="undefined"){this.cache[B]={triggers:[],targets:[]}}for(var C=0;C<this.cache[B].triggers.length;C++){if(this.cache[B].triggers[C]==F){break}}if(C==this.cache[B].triggers.length){this.cache[B].triggers.push(F)}}for(var D=0;D<E.OFF.length;D++){var B=E.OFF[D];if(typeof this.cache[B]=="undefined"){this.cache[B]={triggers:[],targets:[]}}for(var C=0;C<this.cache[B].triggers.length;C++){if(this.cache[B].triggers[C]==F){break}}if(C==this.cache[B].triggers.length){this.cache[B].triggers.push(F)}}};wFORMS.behaviors["switch"].instance.prototype.addTargetToCache=function(C){wFORMS.standardizeElement(C);var D=this.behavior.getSwitchNamesFromTarget(C);for(var B=0;B<D.length;B++){switchName=D[B];if(typeof this.cache[switchName]=="undefined"){this.cache[switchName]={triggers:[],targets:[]}}for(var A=0;A<this.cache[switchName].targets.length;A++){if(this.cache[switchName].targets[A]==C){break}}if(A==this.cache[switchName].targets.length){this.cache[switchName].targets.push(C)}}};wFORMS.behaviors["switch"].instance.prototype.getTriggers=function(A,M){var C={ON:new Array(),OFF:new Array(),toString:function(){return"ON: "+this.ON+"\nOFF: "+this.OFF}};for(var H=0;H<A.length;H++){var D=A[H];switch(D.tagName.toUpperCase()){case"OPTION":if(D.selected){C.ON=C.ON.concat(this.behavior.getSwitchNamesFromTrigger(D,M))}else{C.OFF=C.OFF.concat(this.behavior.getSwitchNamesFromTrigger(D,M))}break;case"SELECT":for(var F=0;F<D.options.length;F++){var B=D.options.item(F);if(B.selected){C.ON=C.ON.concat(this.behavior.getSwitchNamesFromTrigger(B,M))}else{C.OFF=C.OFF.concat(this.behavior.getSwitchNamesFromTrigger(B,M))}}break;case"INPUT":if(D.type&&D.type.toUpperCase()=="RADIO"&&D.form){var G=D.form[D.name];if(!G){var G=[];var J=D.form.getElementsByTagName("INPUT");for(var E=0;E<J.length;E++){if(J[E].type=="radio"&&J[E].name==D.name){G.push(J[E])}}}for(var F=G.length-1;F>=0;F--){var O=G[F];if(O==D||!wFORMS.helpers.contains(A,O)){if(O.checked){C.ON=C.ON.concat(this.behavior.getSwitchNamesFromTrigger(O,M))}else{C.OFF=C.OFF.concat(this.behavior.getSwitchNamesFromTrigger(O,M))}}}}else{if(D.type&&D.type=="checkbox"){if(D.checked){C.ON=C.ON.concat(this.behavior.getSwitchNamesFromTrigger(D,M))}else{C.OFF=C.OFF.concat(this.behavior.getSwitchNamesFromTrigger(D,M))}}else{if(D.hasClass(this.behavior.CSS_ONSTATE_FLAG)){C.ON=C.ON.concat(this.behavior.getSwitchNamesFromTrigger(D,M))}else{C.OFF=C.OFF.concat(this.behavior.getSwitchNamesFromTrigger(D,M))}}}break;default:if(D.hasClass(this.behavior.CSS_ONSTATE_FLAG)){C.ON=C.ON.concat(this.behavior.getSwitchNamesFromTrigger(D,M))}else{C.OFF=C.OFF.concat(this.behavior.getSwitchNamesFromTrigger(D,M))}break}}var L=new Array();for(var H=0;H<C.ON.length;H++){if(!wFORMS.helpers.contains(L,C.ON[H])){L.push(C.ON[H])}}var N=new Array();for(var H=0;H<C.OFF.length;H++){if(!wFORMS.helpers.contains(N,C.OFF[H])){N.push(C.OFF[H])}}C.ON=L;C.OFF=N;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.getTriggersByTarget=function(G){var D=new Array();var F=wFORMS.behaviors["switch"].getSwitchNamesFromTarget(G);var A=wFORMS.behaviors.repeat;for(var C=0;C<F.length;C++){var H=this.cache[F[C]];if(H){for(j=0;j<H.triggers.length;j++){var E=H.triggers[j];for(var B=0;B<D.length&&D[B]!=E;B++){}if(B==D.length){D.push(E)}}}}return this.getTriggers(D,F)};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.setupTargets=function(){var A=[];for(var C in this.cache){for(var B=0;B<this.cache[C].triggers.length;B++){var D=this.cache[C].triggers[B];if(!wFORMS.helpers.contains(A,D)){if(D.tagName!="A"||D.hasClass(this.behavior.CSS_ONSTATE_FLAG)){A.push(D);this.run(null,D)}}}}};wFORMS.behaviors["switch"].instance.prototype.inScope=function(B,D){var C=wFORMS.behaviors.repeat;if(C){var A=B;while(A&&!A.hasClass(C.CSS_REMOVEABLE)&&!A.hasClass(C.CSS_REPEATABLE)){A=A.parentNode;if(A){wFORMS.standardizeElement(A)}}if(A){var E=false;while(D){if(D.hasClass(C.CSS_REMOVEABLE)||D.hasClass(C.CSS_REPEATABLE)){E=true}if(D==A){return true}D=D.parentNode;if(D){wFORMS.standardizeElement(D)}}return !E}}return true};wFORMS.behaviors["switch"].instance.prototype.run=function(H,D){wFORMS.standardizeElement(D);if(D.hasClass(this.behavior.CSS_ONSTATE_FLAG)){D.removeClass(this.behavior.CSS_ONSTATE_FLAG);D.addClass(this.behavior.CSS_OFFSTATE_FLAG);if(H){H.preventDefault()}}else{if(D.hasClass(this.behavior.CSS_OFFSTATE_FLAG)){D.removeClass(this.behavior.CSS_OFFSTATE_FLAG);D.addClass(this.behavior.CSS_ONSTATE_FLAG);if(H){H.preventDefault()}}}var E=this.getTriggers(new Array(D));for(var C=0;C<E.OFF.length;C++){var A=E.OFF[C];for(var B=0;B<this.cache[A].targets.length;B++){var G=this.cache[A].targets[B];if(!this.inScope(D,G)){continue}wFORMS.standardizeElement(G);G.addClass(wFORMS.behaviors["switch"].CSS_OFFSTATE_PREFIX+A);G.removeClass(wFORMS.behaviors["switch"].CSS_ONSTATE_PREFIX+A);var F=this.getTriggersByTarget(G);if(F.ON.length==0){this.behavior.onSwitchOff(G)}}}for(var C=0;C<E.ON.length;C++){var A=E.ON[C];for(var B=0;B<this.cache[A].targets.length;B++){var G=this.cache[A].targets[B];if(!this.inScope(D,G)){continue}wFORMS.standardizeElement(G);G.removeClass(this.behavior.CSS_OFFSTATE_PREFIX+A);G.addClass(this.behavior.CSS_ONSTATE_PREFIX+A);this.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:{oneRequired:{selector:".required-one",check:"validateOneRequired"},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"},isPhone:{selector:".validate-phone",check:"validatePhone"},isCustom:{selector:".validate-custom",check:"validateCustom"}},styling:{fieldError:"errFld",errorMessage:"errMsg"},messages:{oneRequired:"This section is required.",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.",isPhone:"Please enter a valid phone number.",isCustom:"Please enter a valid value.",notification:"The form is not complete and has not been submitted yet. There was %% problem(s) with your submission."},instance:function(B){this.behavior=wFORMS.behaviors.validation;this.target=B;var A=this;if(!B.__wFormsValidationHandled){if(!B.addEventListener){wFORMS.standardizeElement(B)}B.addEventListener("submit",function(C){return A.run(C,this)},false);B.__wFormsValidationHandled=true}},onPass:function(A,B){},onFail:function(A,B){},dateRegex:(function(){var D="((January)|(Feburary)|(March)|(April)|(May)|(June)|(July)|(August)|(September)|(October)|(November)|(December)|(Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))";var J="\\d{1,2}";var F="(\\d{1,4}|\\d{1,2})";var E="("+J+"|"+D+")";var G="\\d{1,2}((th)|(rd)|(nd)|(st))?";var A="\\s*[-/\\\\|\\,\\.]?\\s*";var C="(("+E+A+G+")|("+G+A+E+")|("+E+"))";var H="(("+F+A+C+")|("+C+A+F+")|"+C+")";var B="(\\d{1,2}\\s*[:-]?\\s*\\d{1,2}(\\s*[:-]?\\s*\\d{1,2})?)";return[new RegExp("^"+H+"\\s+"+B+"$","i"),new RegExp("^"+B+"\\s+"+H+"$","i"),new RegExp("^"+H+"$","i"),new RegExp("^"+B+"$","i")]})()};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]);A.push(C);C.onApply()}}else{var A=new wFORMS.behaviors.validation.instance(D);A.onApply()}return A};wFORMS.behaviors.validation.instance.prototype.onApply=function(){};wFORMS.behaviors.validation.instance.prototype.run=function(E,B){if(E&&E.pagingStopPropagation){return false}var F=function(H){if(wFORMS.behaviors.paging&&!wFORMS.behaviors.paging.isElementVisible(H)){return }if(A.isSwitchedOff(H)){return }var J=wFORMS.helpers.getFieldValue(H);if(D.check.call){var L=D.check.call(A,H,J)}else{var L=A[D.check].call(A,H,J)}if(!L){if(!H.id){H.id=wFORMS.helpers.randomId()}A.elementsInError[H.id]={id:H.id,rule:C};A.removeErrorMessage(H);if(D.fail){D.fail.call(A,H,C)}else{A.fail.call(A,H,C)}G++}else{if(!A.elementsInError[H.id]){A.removeErrorMessage(H)}if(D.pass){D.pass.call(A,H)}else{A.pass.call(A,H)}}};var G=0;this.elementsInError={};for(var C in this.behavior.rules){var D=this.behavior.rules[C];var A=this;if(!B.matchesSelector){wFORMS.standardizeElement(B)}if(!B.matchesSelector){B=base2.DOM.bind(B)}if(!B.matchesSelector&&B.msMatchesSelector){B.matchesSelector=B.msMatchesSelector}if(!B.matchesSelector&&B.mozMatchesSelector){B.matchesSelector=B.mozMatchesSelector}if(!B.matchesSelector&&B.webkitMatchesSelector){B.matchesSelector=B.webkitMatchesSelector}if(!B.matchesSelector){B.matchesSelector=base2.DOM.Element.matchesSelector}if(B.matchesSelector(D.selector)){F(B)}B.querySelectorAll(D.selector).forEach(F)}if(G>0){if(E){E.preventDefault?E.preventDefault():E.returnValue=false}if(this.behavior.onFail){this.behavior.onFail(this,E)}return false}if(this.behavior.onPass){this.behavior.onPass(this,E)}return true};wFORMS.behaviors.validation.instance.prototype.fail=function(A,B){var C=document.getElementById(A.id+"-D");if(C){if(!C.hasClass){wFORMS.standardizeElement(C)}C.addClass(this.behavior.styling.fieldError)}else{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.createElement("span");C.appendChild(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"){if(A.getElementsByTagName("TH").length>0){D=(A.getElementsByTagName("TH")[0]).appendChild(D)}else{D=(A.getElementsByTagName("TD")[0]).appendChild(D)}}else{if(A.hasClass("wfSection")||A.hasClass("inlineSection")){D=A.appendChild(D)}else{var E=document.getElementById(A.id+"-D");if(E){D=E.appendChild(D)}else{D=A.parentNode.insertBefore(D,A.nextSibling)}}}}D.appendChild(C);wFORMS.standardizeElement(D);D.addClass(this.behavior.styling.errorMessage)};wFORMS.behaviors.validation.instance.prototype.removeErrorMessage=function(B){var C=document.getElementById(B.id+"-D");if(!B.hasClass){wFORMS.standardizeElement(B)}if(C&&!C.hasClass){wFORMS.standardizeElement(C)}if(B.hasClass(this.behavior.styling.fieldError)){B.removeClass(this.behavior.styling.fieldError)}if(C&&C.hasClass(this.behavior.styling.fieldError)){C.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,D){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;case"file":var C=document.getElementById("tfa_uploadDelete_"+A.id);if(this.isEmpty(D)){return(C&&!C.checked)}return true;break;default:return !this.isEmpty(D)}break;case"SELECT":return !this.isEmpty(D);break;case"TEXTAREA":return !this.isEmpty(D);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;case"file":var D=document.getElementById("tfa_uploadDelete_"+B.id);if(this.isEmpty(wFORMS.helpers.getFieldValue(B))){return(D&&!D.checked)}return true;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,D){if(this.isEmpty(D)){return true}var C=wFORMS.behaviors.validation.dateRegex;for(var A=0;A<C.length-1;A++){if(C[A].test(D)){return true}}return false};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,C){var B=/^((([1-9]\d*|0)?\.\d+)|([1-9]\d*))$/;return this.isEmpty(C)||B.test(C)};wFORMS.behaviors.validation.instance.prototype.validatePhone=function(B,D){if(this.isEmpty(D)){return true}var A=[/^[\d\-\. \+\(\)]+$/,/^[\d\-\. \+\(\)]+ # {0,1}\d+ *$/,/^[\d\-\. \+\(\)]+ ext\.{0,1} \d+ *$/];for(var C in A){if(A[C].test(D)){return true}}return false};wFORMS.behaviors.validation.instance.prototype.validateCustom=function(A,D){var C=new RegExp("/(.*)/([gi]*)");var B=A.className.match(C);if(this.isEmpty(D)){return true}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(C){while(C&&C.tagName!="FORM"){C=C.parentNode}var B=wFORMS.getBehaviorInstance(C,"calculation");if(!B){B=new wFORMS.behaviors.calculation.instance(C)}else{B.calculations=[]}if(wFORMS.behaviors.repeat&&!B._repeatRemoveHandler){var A=wFORMS.behaviors.repeat.onRemove;B._repeatRemoveHandler=function(){wFORMS.behaviors.calculation.applyTo(C);if(A){A.apply(this,arguments)}};wFORMS.behaviors.repeat.onRemove=B._repeatRemoveHandler}C.querySelectorAll(wFORMS.behaviors.calculation.CALCULATION_SELECTOR).forEach(function(F){var H=F.className.substr(F.className.indexOf("formula=")+8).split(" ")[0];var G=H.split(/[^a-zA-Z]+/g);B.varFields=[];for(var E=0;E<G.length;E++){if(G[E]!=""){base2.DOM.Document.querySelectorAll(C,'*[class*="'+wFORMS.behaviors.calculation.VARIABLE_SELECTOR_PREFIX+G[E]+'"]').forEach(function(J){if(!J.addEventListener){base2.DOM.bind(J)}var M=((" "+J.className+" ").indexOf(" "+wFORMS.behaviors.calculation.VARIABLE_SELECTOR_PREFIX+G[E]+" ")!=-1);if(!M){return }if(!wFORMS.behaviors.calculation.isHandled(J)){var L=J.tagName.toLowerCase();if(L=="input"||L=="textarea"){var N=J.type.toLowerCase();if(L=="input"&&(N=="radio"||N=="checkbox")){J.addEventListener("click",function(O){return B.run(O,this)},false);wFORMS.behaviors.calculation.setHandledFlag(J)}else{J.addEventListener("blur",function(O){return B.run(O,this)},false);wFORMS.behaviors.calculation.setHandledFlag(J)}}else{if(L=="select"){J.addEventListener("change",function(O){return B.run(O,this)},false);wFORMS.behaviors.calculation.setHandledFlag(J)}else{return }}}B.varFields.push({name:G[E],field:J})})}}var D={field:F,formula:H,variables:B.varFields};B.calculations.push(D);B.compute(D)});B.onApply();return B};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)}base2.DOM.Document.querySelectorAll(f,'*[class*="'+_self.behavior.VARIABLE_SELECTOR_PREFIX+v.name+'"]').forEach(function(variable){var exactMatch=((" "+variable.className+" ").indexOf(" "+wFORMS.behaviors.calculation.VARIABLE_SELECTOR_PREFIX+v.name+" ")!=-1);if(!exactMatch){return }if(!_self.inScope(calculation.field,variable)){return }if(_self.hasValueInClassName(variable)){var value=_self.getValueFromClassName(variable)}else{var value=wFORMS.helpers.getFieldValue(variable)}if(!value){value=0}if(value.constructor==Array){for(var j=0;j<value.length;j++){if(String(value[j]).search(/^[\d\.,]*$/)!=-1){varval+=parseFloat(value[j])}else{(!varval)?(varval=value[j]):(varval=String(varval).concat(value[j]))}}}else{if(String(value).search(/^[\d\.,]*$/)!=-1){varval+=parseFloat(value)}else{(!varval)?(varval=value):(varval=String(varval).concat(value))}}});if(String(varval).search(/^[\d\.,]*$/)!=-1){formula="var "+v.name+" = "+varval+"; "+formula}else{formula="var "+v.name+' = "'+varval.replace(/\"/g,'\\"')+'"; '+formula}}try{var calc=function(){return eval(formula)};var result=calc();if(result=="Infinity"||result=="NaN"||String(result).match("NaN")){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.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};wFORMS.behaviors["calculation"].isHandled=function(A){return(A._wforms_calc_handled===true)};wFORMS.behaviors["calculation"].setHandledFlag=function(A){A._wforms_calc_handled=true};wFORMS.behaviors["calculation"].removeHandledFlag=function(A){try{delete A._wforms_calc_handled}catch(B){A._wforms_calc_handled=undefined}};wFORMS.behaviors.calculation.instance.prototype.inScope=function(E,A){var B=wFORMS.behaviors.repeat;if(B){var D=E;if(!D.hasClass){wFORMS.standardizeElement(D)}while(D&&!D.hasClass(B.CSS_REMOVEABLE)&&!D.hasClass(B.CSS_REPEATABLE)){D=D.parentNode;if(D){wFORMS.standardizeElement(D)}}if(D){var C=false;while(A){if(!A.hasClass){wFORMS.standardizeElement(A)}if(A.hasClass(B.CSS_REMOVEABLE)||A.hasClass(B.CSS_REPEATABLE)){C=true}if(A==D){return true}A=A.parentNode;if(A){wFORMS.standardizeElement(A)}}return !C}}return true}

