/* Merged Plone Javascript file
 * This file is dynamically assembled from separate parts.
 * Some of these parts have 3rd party licenses or copyright information attached
 * Such information is valid for that section,
 * not for the entire composite file
 * originating files are separated by - filename.js -
 */

/* - base2-dom-fp.js - */
// http://www.gefaehrdungsbeurteilung.de/portal_javascripts/base2-dom-fp.js?original=1
var base2={name:"base2",version:"1.1 (alpha1)",exports:"Base,Package,Abstract,Module,Enumerable,Map,Collection,RegGrp,Undefined,Null,This,True,False,assignID,detect,global",namespace:""};new function(_1o){/*@cc_on @*/var Undefined=K(),Null=K(null),True=K(true),False=K(false),This=function(){return this};var global=This(),base2=global.base2;var _T=K(),_2q=/%([1-9])/g,_1p=/^\s\s*/,_1q=/\s\s*$/,_1r=/([\/()[\]{}|*+-.,^$?\\])/g,_U=/try/.test(detect)?/\bbase\b/:/.*/,_V=["constructor","toString"],_1s=detect("(jscript)")?new RegExp("^"+rescape(isNaN).replace(/isNaN/,"\\w+")+"$"):{test:False},_1t=1,_4=Array.prototype.slice;_c();function assignID(a,b){if(!b)b=a.nodeType==1?"uniqueID":"base2ID";if(!a[b])a[b]="b2_"+_1t++;return a[b]};var _W=function(a,b){base2.__prototyping=this.prototype;var c=new this;if(a)extend(c,a);c.base=function(){};delete base2.__prototyping;var d=c.constructor;function e(){if(!base2.__prototyping){if(this.constructor==e||this.__constructing){this.__constructing=true;d.apply(this,arguments);delete this.__constructing}else{return extend(arguments[0],c)}}return this};c.constructor=e;for(var f in Base)e[f]=this[f];if(b)extend(e,b);e.ancestor=this;e.ancestorOf=Base.ancestorOf;e.base=c.base;e.prototype=c;if(e.init)e.init();return e};var Base=_W.call(Object,{constructor:function(){if(arguments.length>0){this.extend(arguments[0])}},extend:delegate(extend),toString:function(){if(this.constructor.toString==Function.prototype.toString){return"[object base2.Base]"}else{return"[object "+String2.slice(this.constructor,1,-1)+"]"}}},Base={ancestorOf:function(a){return _y(this,a)},extend:_W,forEach:function(a,b,c){_c(this,a,b,c)},implement:function(a){if(typeof a=="function"){a=a.prototype}extend(this.prototype,a);return this}});var Package=Base.extend({constructor:function(d,e){var f=this;f.extend(e);if(f.name&&f.name!="base2"){if(e.parent===undefined)f.parent=base2;if(f.parent)f.parent.addName(f.name,f);f.namespace=format("var %1=%2;",f.name,String2.slice(f,1,-1))}if(d){var g=base2.js?base2.js.namespace:"";var h="var base2=(function(){return this.base2})(),_0=base2.toString;"+base2.namespace+g;var j=csv(f.imports),k;for(var l=0;k=j[l];l++){var o=r(k)||r("js."+k);if(!o)throw new ReferenceError(format("Object not found: '%1'.",k));h+=o.namespace}d.init=function(){if(f.init)f.init()};d.imports=h+lang.namespace+"this.init();";h="";var s=csv(f.exports);for(var l=0;k=s[l];l++){var n=f.name+"."+k;f.namespace+="var "+k+"="+n+";";h+="if(!"+n+")"+n+"="+k+";"}d.exports=h+"this._1u"+f.name+"();";var m=String2.slice(f,1,-1);d["_1u"+f.name]=function(){for(var a in f){var b=f[a];if(b&&b.ancestorOf==Base.ancestorOf&&a!="constructor"){b.toString=K("["+m+"."+a+"]")}}}}function r(a){a=a.split(".");var b=base2,c=0;while(b&&a[c]!=null){b=b[a[c++]]}return b}},exports:"",imports:"",name:"",namespace:"",parent:null,addName:function(a,b){if(!this[a]){this[a]=b;this.exports+=","+a;this.namespace+=format("var %1=%2.%1;",a,this.name);if(b&&b.ancestorOf==Base.ancestorOf&&a!="constructor"){b.toString=K("["+String2.slice(this,1,-1)+"."+a+"]")}}},addPackage:function(a){this.addName(a,new Package(null,{name:a,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 _1v=0;var Module=Abstract.extend(null,{namespace:"",extend:function(a,b){var c=this.base();var d=_1v++;c.namespace="";c.partial=this.partial;c.toString=K("[base2.Module["+d+"]]");Module[d]=c;c.implement(this);if(a)c.implement(a);if(b){extend(c,b);if(c.init)c.init()}return c},forEach:function(c,d){_c(Module,this.prototype,function(a,b){if(typeOf(a)=="function"){c.call(d,this[b],b,this)}},this)},implement:function(a){var b=this;var c=b.toString().slice(1,-1);if(typeof a=="function"){if(!_y(a,b)){this.base(a)}if(_y(Module,a)){for(var d in a){if(typeof b[d]=="undefined"){var e=a[d];if(typeof e=="function"&&e.call&&a.prototype[d]){e=_1w(a,d)}b[d]=e}}b.namespace+=a.namespace.replace(/base2\.Module\[\d+\]/g,c)}}else{extend(b,a);_X(b,a)}return b},partial:function(){var c=Module.extend();var d=c.toString().slice(1,-1);c.namespace=this.namespace.replace(/(\w+)=b[^\)]+\)/g,"$1="+d+".$1");this.forEach(function(a,b){c[b]=partial(bind(a,c))});return c}});Module.prototype.base=Module.prototype.extend=_T;function _X(a,b){var c=a.prototype;var d=a.toString().slice(1,-1);for(var e in b){var f=b[e],g="";if(e.indexOf("@")==0){if(detect(e.slice(1)))_X(a,f)}else if(!c[e]){if(e==e.toUpperCase()){g="var "+e+"="+d+"."+e+";"}else if(typeof f=="function"&&f.call){g="var "+e+"=base2.lang.bind('"+e+"',"+d+");";c[e]=_1x(a,e)}if(a.namespace.indexOf(g)==-1){a.namespace+=g}}}};function _1w(a,b){return function(){return a[b].apply(a,arguments)}};function _1x(b,c){return function(){var a=_4.call(arguments);a.unshift(this);return b[c].apply(b,a)}};var Enumerable=Module.extend({every:function(c,d,e){var f=true;try{forEach(c,function(a,b){f=d.call(e,a,b,c);if(!f)throw StopIteration;})}catch(error){if(error!=StopIteration)throw error;}return!!f},filter:function(d,e,f){var g=0;return this.reduce(d,function(a,b,c){if(e.call(f,b,c,d)){a[g++]=b}return a},[])},invoke:function(b,c){var d=_4.call(arguments,2);return this.map(b,typeof c=="function"?function(a){return a==null?undefined:c.apply(a,d)}:function(a){return a==null?undefined:a[c].apply(a,d)})},map:function(c,d,e){var f=[],g=0;forEach(c,function(a,b){f[g++]=d.call(e,a,b,c)});return f},pluck:function(b,c){return this.map(b,function(a){return a==null?undefined:a[c]})},reduce:function(c,d,e,f){var g=arguments.length>2;forEach(c,function(a,b){if(g){e=d.call(f,e,a,b,c)}else{e=a;g=true}});return e},some:function(a,b,c){return!this.every(a,not(b),c)}});var _2="#";var Map=Base.extend({constructor:function(a){if(a)this.merge(a)},clear:function(){for(var a in this)if(a.indexOf(_2)==0){delete this[a]}},copy:function(){base2.__prototyping=true;var a=new this.constructor;delete base2.__prototyping;for(var b in this)if(this[b]!==a[b]){a[b]=this[b]}return a},forEach:function(a,b){for(var c in this)if(c.indexOf(_2)==0){a.call(b,this[c],c.slice(1),this)}},get:function(a){return this[_2+a]},getKeys:function(){return this.map(II)},getValues:function(){return this.map(I)},has:function(a){a=_2+a;/*@if(@_jscript_version<5.5)return this[a]!==undefined||$Legacy.has(this,a);@else @*/return a in this;/*@end @*/},merge:function(b){var c=flip(this.put);forEach(arguments,function(a){forEach(a,c,this)},this);return this},put:function(a,b){this[_2+a]=b;return b},remove:function(a){delete this[_2+a]},size:function(){var a=0;for(var b in this)if(b.indexOf(_2)==0)a++;return a},union:function(a){return this.merge.apply(this.copy(),arguments)}});Map.implement(Enumerable);Map.prototype.filter=function(d,e){return this.reduce(function(a,b,c){if(!d.call(e,b,c,this)){a.remove(c)}return a},this.copy(),this)};var _1="~";var Collection=Map.extend({constructor:function(a){this[_1]=new Array2;this.base(a)},add:function(a,b){if(this.has(a))throw"Duplicate key '"+a+"'.";return this.put.apply(this,arguments)},clear:function(){this.base();this[_1].length=0},copy:function(){var a=this.base();a[_1]=this[_1].copy();return a},forEach:function(a,b){var c=this[_1].concat();var d=c.length;for(var e=0;e<d;e++){a.call(b,this[_2+c[e]],c[e],this)}},getAt:function(a){var b=this[_1].item(a);return(b===undefined)?undefined:this[_2+b]},getKeys:function(){return this[_1].copy()},indexOf:function(a){return this[_1].indexOf(String(a))},insertAt:function(a,b,c){if(this[_1].item(a)==null)throw"Index out of bounds.";if(this.has(b))throw"Duplicate key '"+b+"'.";this[_1].insertAt(a,String(b));this[_2+b]=null;return this.put.apply(this,_4.call(arguments,1))},item:function(a){return this[typeof a=="number"?"getAt":"get"](a)},put:function(a,b){var c=this.constructor;if(c.Item&&!instanceOf(b,c.Item)){b=c.create.apply(c,arguments)}if(!this.has(a)){this[_1].push(String(a))}this[_2+a]=b;return b},putAt:function(a,b){arguments[0]=this[_1].item(a);if(arguments[0]==null)throw"Index out of bounds.";return this.put.apply(this,arguments)},remove:function(a){if(this.has(a)){this[_1].remove(String(a));delete this[_2+a]}},removeAt:function(a){var b=this[_1].item(a);if(b!==undefined){this[_1].removeAt(a);delete this[_2+b]}},reverse:function(){this[_1].reverse();return this},size:function(){return this[_1].length},slice:function(a,b){var c=this.copy();if(arguments.length>0){var d=this[_1],e=d;c[_1]=Array2(_4.apply(d,arguments));if(c[_1].length){e=e.slice(0,a);if(arguments.length>1){e=e.concat(d.slice(b))}}for(var f=0;f<e.length;f++){delete c[_2+e[f]]}}return c},sort:function(c){if(c){this[_1].sort(bind(function(a,b){return c(this[_2+a],this[_2+b],a,b)},this))}else this[_1].sort();return this},toString:function(){return"("+(this[_1]||"")+")"}},{Item:null,create:function(a,b){return this.Item?new this.Item(a,b):b},extend:function(a,b){var c=this.base(a);c.create=this.create;if(b)extend(c,b);if(!c.Item){c.Item=this.Item}else if(typeof c.Item!="function"){c.Item=(this.Item||Base).extend(c.Item)}if(c.init)c.init();return c}});var _1y=/\\(\d+)/g,_1z=/\\./g,_1A=/\(\?[:=!]|\[[^\]]+\]/g,_1B=/\(/g,_1C=/\$(\d+)/,_1D=/^\$\d+$/;var RegGrp=Collection.extend({constructor:function(a,b){this.base(a);this.ignoreCase=!!b},ignoreCase:false,exec:function(g,h){g+="";var j=this,k=this[_1];if(!k.length)return g;if(h==RegGrp.IGNORE)h=0;return g.replace(new RegExp(this,this.ignoreCase?"gi":"g"),function(a){var b,c=1,d=0;while((b=j[_2+k[d++]])){var e=c+b.length+1;if(arguments[c]){var f=h==null?b.replacement:h;switch(typeof f){case"function":return f.apply(j,_4.call(arguments,c,e));case"number":return arguments[c+f];default:return f}}c=e}return a})},insertAt:function(a,b,c){if(instanceOf(b,RegExp)){arguments[1]=b.source}return this.base.apply(this,arguments)},test:function(a){return this.exec(a)!=a},toString:function(){var e=1;return"("+this.map(function(c){var d=(c+"").replace(_1y,function(a,b){return"\\"+(e+Number(b))});e+=c.length+1;return d}).join(")|(")+")"}},{IGNORE:"$0",init:function(){forEach("add,get,has,put,remove".split(","),function(b){this[b]=_z(this,b,function(a){if(instanceOf(a,RegExp)){arguments[0]=a.source}return this.base.apply(this,arguments)})},this.prototype)},Item:{constructor:function(a,b){if(b==null)b=RegGrp.IGNORE;else if(b.replacement!=null)b=b.replacement;else if(typeof b!="function")b=String(b);if(typeof b=="string"&&_1C.test(b)){if(_1D.test(b)){b=parseInt(b.slice(1),10)}else{var c='"';b=b.replace(/\\/g,"\\\\").replace(/"/g,"\\x22").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\$(\d+)/g,c+"+(arguments[$1]||"+c+c+")+"+c).replace(/(['"])\1\+(.*)\+\1\1$/,"$1");b=new Function("return "+c+b+c)}}this.length=RegGrp.count(a);this.replacement=b;this.toString=K(a+"")},disabled:false,length:0,replacement:""},count:function(a){a=(a+"").replace(_1z,"").replace(_1A,"");return match(a,_1B).length}});var lang={name:"lang",version:base2.version,exports:"assert,assertArity,assertType,bind,copy,extend,forEach,format,instanceOf,match,pcopy,rescape,trim,typeOf",namespace:""};function assert(a,b,c){if(!a){throw new(c||Error)(b||"Assertion failed.");}};function assertArity(a,b,c){if(b==null)b=a.callee.length;if(a.length<b){throw new SyntaxError(c||"Not enough arguments.");}};function assertType(a,b,c){if(b&&(typeof b=="function"?!instanceOf(a,b):typeOf(a)!=b)){throw new TypeError(c||"Invalid type.");}};function copy(a){var b={};for(var c in a){b[c]=a[c]}return b};function pcopy(a){_Y.prototype=a;return new _Y};function _Y(){};function extend(a,b){if(a&&b){var c=base2.__prototyping;if(arguments.length>2){var d=b;b={};b[d]=arguments[2];c=true}var e=global[(typeof b=="function"?"Function":"Object")].prototype;if(c){var f=_V.length,d;while((d=_V[--f])){var g=b[d];if(g!=e[d]){if(_U.test(g)){a[d]=_z(a,d,g)}else{a[d]=g}}}}for(d in b){if(typeof e[d]=="undefined"){g=b[d];if(d.indexOf("@")==0){if(detect(d.slice(1)))extend(a,g)}else if(g!=_T){var h=a[d];if(h&&typeof g=="function"){if(g!=h){if(_U.test(g)){a[d]=_z(a,d,g)}else{g.ancestor=h;a[d]=g}}}else{a[d]=g}}}}}/*@if(@_jscript){try{return a}finally{a=null}}@else @*/return a;/*@end @*/};function _y(a,b){while(b){if(!b.ancestor)return false;b=b.ancestor;if(b==a)return true}return false};function _z(c,d,e){var f=c[d];var g=base2.__prototyping;if(g&&f!=g[d])g=null;function h(){var a=this.base;this.base=g?g[d]:f;var b=e.apply(this,arguments);this.base=a;return b};h.method=e;h.ancestor=f;return h};if(typeof StopIteration=="undefined"){StopIteration=new Error("StopIteration")}function forEach(a,b,c,d){if(a==null)return;if(!d){if(typeof a=="function"&&a.call){d=Function}else if(typeof a.forEach=="function"&&a.forEach!=forEach){a.forEach(b,c);return}else if(typeof a.length=="number"){_o(a,b,c);return}}_c(d||Object,a,b,c)};forEach.csv=function(a,b,c){forEach(csv(a),b,c)};forEach.detect=function(c,d,e){var f=function(a,b){if(b.indexOf("@")==0){if(detect(b.slice(1)))forEach(a,f)}else d.call(e,a,b,c)};forEach(c,f)};function _o(a,b,c){if(a==null)a=global;var d=a.length||0,e;if(typeof a=="string"){for(e=0;e<d;e++){b.call(c,a.charAt(e),e,a)}}else{for(e=0;e<d;e++){/*@if(@_jscript_version<5.2)if(a[e]!==undefined&&$Legacy.has(a,e))@else @*/if(e in a)/*@end @*/b.call(c,a[e],e,a)}}};function _c(g,h,j,k){var l=function(){this.i=1};l.prototype={i:1};var o=0;for(var s in new l)o++;_c=o>1?function(a,b,c,d){var e={};for(var f in b){if(!e[f]&&a.prototype[f]===undefined){e[f]=true;c.call(d,b[f],f,b)}}}:function(a,b,c,d){for(var e in b){if(typeof a.prototype[e]=="undefined"){c.call(d,b[e],e,b)}}};_c(g,h,j,k)};function instanceOf(a,b){if(typeof b!="function"){throw new TypeError("Invalid 'instanceOf' operand.");}if(a==null)return false;/*@if(@_jscript)if(typeof a.constructor!="function"){return b==Object}/*@end @*/if(a.constructor==b)return true;if(b.ancestorOf)return b.ancestorOf(a.constructor);/*@if(@_jscript_version<5.1)@else @*/if(a instanceof b)return true;/*@end @*/if(Base.ancestorOf==b.ancestorOf)return false;if(Base.ancestorOf==a.constructor.ancestorOf)return b==Object;switch(b){case Array:return _p.call(a)=="[object Array]";case Date:return _p.call(a)=="[object Date]";case RegExp:return _p.call(a)=="[object RegExp]";case Function:return typeOf(a)=="function";case String:case Number:case Boolean:return typeOf(a)==typeof b.prototype.valueOf();case Object:return true}return false};var _p=Object.prototype.toString;function typeOf(a){var b=typeof a;switch(b){case"object":return a==null?"null":typeof a.constructor!="function"?_1s.test(a)?"function":b:_p.call(a)=="[object Date]"?b:typeof a.constructor.prototype.valueOf();case"function":return typeof a.call=="function"?b:"object";default:return b}};var js={name:"js",version:base2.version,exports:"Array2,Date2,Function2,String2",namespace:"",bind:function(c){var d=global;global=c;forEach.csv(this.exports,function(a){var b=a.slice(0,-1);extend(c[b],this[a]);this[a](c[b].prototype)},this);global=d;return c}};function _q(b,c,d,e){var f=Module.extend();var g=f.toString().slice(1,-1);forEach.csv(d,function(a){f[a]=unbind(b.prototype[a]);f.namespace+=format("var %1=%2.%1;",a,g)});forEach(_4.call(arguments,3),f.implement,f);var h=function(){return f(this.constructor==f?c.apply(null,arguments):arguments[0])};h.prototype=f.prototype;for(var j in f){var k=b[j];if(k&&j!="prototype"&&j!="toString"&&k!=Function.prototype[j]){f[j]=k;delete f.prototype[j]}h[j]=f[j]}h.ancestor=Object;delete h.extend;h.namespace=h.namespace.replace(/(var (\w+)=)[^,;]+,([^\)]+)\)/g,"$1$3.$2");return h};if((new Date).getYear()>1900){Date.prototype.getYear=function(){return this.getFullYear()-1900};Date.prototype.setYear=function(a){return this.setFullYear(a+1900)}}var _Z=new Date(Date.UTC(2006,1,20));_Z.setUTCDate(15);if(_Z.getUTCHours()!=0){forEach.csv("FullYear,Month,Date,Hours,Minutes,Seconds,Milliseconds",function(b){extend(Date.prototype,"setUTC"+b,function(){var a=this.base.apply(this,arguments);if(a>=57722401000){a-=3600000;this.setTime(a)}return a})})}Function.prototype.prototype={};if("".replace(/^/,K("$$"))=="$"){extend(String.prototype,"replace",function(a,b){if(typeof b=="function"){var c=b;b=function(){return String(c.apply(null,arguments)).split("$").join("$$")}}return this.base(a,b)})}var Array2=_q(Array,Array,"concat,join,pop,push,reverse,shift,slice,sort,splice,unshift",Enumerable,{batch:function(d,e,f,g,h){var j=0,k=d.length;var l=function(){var a=Date2.now(),b=a,c=0;while(j<k&&(a-b<f)){e.call(h,d[j],j++,d);if(c++<5||c%50==0)a=Date2.now()}if(j<k){setTimeout(l,10)}else{if(g)g.call(h)}};setTimeout(l,1)},combine:function(d,e){if(!e)e=d;return Array2.reduce(d,function(a,b,c){a[b]=e[c];return a},{})},contains:function(a,b){return Array2.indexOf(a,b)!=-1},copy:function(a){var b=_4.call(a);if(!b.swap)Array2(b);return b},flatten:function(c){var d=0;var e=function(a,b){if(Array2.like(b)){Array2.reduce(b,e,a)}else{a[d++]=b}return a};return Array2.reduce(c,e,[])},forEach:_o,indexOf:function(a,b,c){var d=a.length;if(c==null){c=0}else if(c<0){c=Math.max(0,d+c)}for(var e=c;e<d;e++){if(a[e]===b)return e}return-1},insertAt:function(a,b,c){Array2.splice(a,b,0,c)},item:function(a,b){if(b<0)b+=a.length;return a[b]},lastIndexOf:function(a,b,c){var d=a.length;if(c==null){c=d-1}else if(c<0){c=Math.max(0,d+c)}for(var e=c;e>=0;e--){if(a[e]===b)return e}return-1},map:function(c,d,e){var f=[];_o(c,function(a,b){f[b]=d.call(e,a,b,c)});return f},remove:function(a,b){var c=Array2.indexOf(a,b);if(c!=-1)Array2.removeAt(a,c)},removeAt:function(a,b){Array2.splice(a,b,1)},swap:function(a,b,c){if(b<0)b+=a.length;if(c<0)c+=a.length;var d=a[b];a[b]=a[c];a[c]=d;return a}});Array2.forEach=_o;Array2.reduce=Enumerable.reduce;Array2.like=function(a){return typeOf(a)=="object"&&typeof a.length=="number"};var _1E=/^((-\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 _6={FullYear:2,Month:4,Date:6,Hours:8,Minutes:10,Seconds:12,Milliseconds:14};var _7={Hectomicroseconds:15,UTC:16,Sign:17,Hours:18,Minutes:20};var Date2=_q(Date,function(a,b,c,d,e,f,g){switch(arguments.length){case 0:return new Date;case 1:return typeof a=="string"?new Date(Date2.parse(a)):new Date(a.valueOf());default:return new Date(a,b,arguments.length==2?1:c,d||0,e||0,f||0,g||0)}},"",{toISOString:function(c){var d="####-##-##T##:##:##.###";for(var e in _6){d=d.replace(/#+/,function(a){var b=c["getUTC"+e]();if(e=="Month")b++;return("000"+b).slice(-a.length)})}return d+"Z"}});delete Date2.forEach;Date2.now=function(){return(new Date).valueOf()};Date2.parse=function(a,b){if(arguments.length>1){assertType(b,"number","Default date should be of type 'number'.")}var c=match(a,_1E);if(c.length){var d=c[_6.Month];if(d)c[_6.Month]=String(d-1);if(c[_7.Hectomicroseconds]>=5)c[_6.Milliseconds]++;var e=c[_7.UTC]||c[_7.Hours]?"UTC":"";var f=new Date(b||0);if(c[_6.Date])f["set"+e+"Date"](14);for(var g in _6){var h=c[_6[g]];if(h){f["set"+e+g](h);if(f["get"+e+g]()!=c[_6[g]]){return NaN}}}if(c[_7.Hours]){var j=Number(c[_7.Sign]+c[_7.Hours]);var k=Number(c[_7.Sign]+(c[_7.Minutes]||0));f.setUTCMinutes(f.getUTCMinutes()+(j*60)+k)}return f.valueOf()}else{return Date.parse(a)}};var String2=_q(String,function(a){return new String(arguments.length==0?"":a)},"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(a){return String(a).replace(_1p,"").replace(_1q,"")};function csv(a){return a?(a+"").split(/\s*,\s*/):[]};function format(c){var d=arguments;var e=new RegExp("%([1-"+(arguments.length-1)+"])","g");return(c+"").replace(e,function(a,b){return d[b]})};function match(a,b){return(a+"").match(b)||[]};function rescape(a){return(a+"").replace(_1r,"\\$1")};var Function2=_q(Function,Function,"",{I:I,II:II,K:K,bind:bind,compose:compose,delegate:delegate,flip:flip,not:not,partial:partial,unbind:unbind});function I(a){return a};function II(a,b){return b};function K(a){return function(){return a}};function bind(a,b){var c=typeof a!="function";if(arguments.length>2){var d=_4.call(arguments,2);return function(){return(c?b[a]:a).apply(b,d.concat.apply(d,arguments))}}else{return function(){return(c?b[a]:a).apply(b,arguments)}}};function compose(){var c=_4.call(arguments);return function(){var a=c.length,b=c[--a].apply(this,arguments);while(a--)b=c[a].call(this,b);return b}};function delegate(b,c){return function(){var a=_4.call(arguments);a.unshift(this);return b.apply(c,a)}};function flip(a){return function(){return a.apply(this,Array2.swap(arguments,0,1))}};function not(a){return function(){return!a.apply(this,arguments)}};function partial(d){var e=_4.call(arguments,1);return function(){var a=e.concat(),b=0,c=0;while(b<e.length&&c<arguments.length){if(a[b]===undefined)a[b]=arguments[c++];b++}while(c<arguments.length){a[b++]=arguments[c++]}if(Array2.contains(a,undefined)){a.unshift(d);return partial.apply(null,a)}return d.apply(this,a)}};function unbind(b){return function(a){return b.apply(a,_4.call(arguments,1))}};function detect(){var j=NaN/*@cc_on||@_jscript_version@*/,k=true;if(global.navigator){var l=/MSIE[\d.]+/g,o=document.createElement("span"),s=document.createElement("input"),n=o.style,m=navigator.userAgent.replace(/([a-z])[\s\/](\d)/gi,"$1$2");k&=navigator.javaEnabled();if(!j)m=m.replace(l,"");if(/MSIE/.test(m)){m=m.match(l)[0]+";"+m.replace(l,"").replace(/user\-agent.*$/i,"")}if(/Chrome/.test(m))m=m.replace(/Safari[\d.]*/gi,"");else if(/Gecko/.test(m))m=m.replace(/Gecko/g,"Gecko/").replace(/rv:/,"Gecko");if(!/^CSS/.test(document.compatMode))m+=";QuirksMode";base2.userAgent=m.replace(/like \w+/gi,"")+";"+navigator.platform}var r={};detect=function(e){var f=e.indexOf("!")==0;if(f)e=e.slice(1);if(r[e]==null){var g=false,h=e;if(h.indexOf("(")==0){if(base2.dom){h=h.replace(/(hasFeature)/,"document.implementation.$1").replace(/\bstyle\.(\w+)/g,function(a,b){if(!n[b]){b=base2.dom.CSSStyleDeclaration.getPropertyName(b)}return"style."+b}).replace(/^\((\w+\.[\w\.]+)\)$/,function(a,b){b=b.split(".");var c=b.pop(),d=b.join(".");return"("+(j<5.6?d+"."+c+"!==undefined":"'"+c+"' in "+d)+")"})}try{g=new Function("global,element,input,style,jscript,java","return !!"+h)(global,o,s,n,j,k?global.java:null)}catch(x){}}else{g=new RegExp("("+h+")","i").test(base2.userAgent)}r[e]=g}return!!(f^r[e])};detect.MSIE=!!j;detect.MSIE5=j<5.6;return detect(arguments[0])};base2=global.base2=new Package(this,base2);base2.toString=K("[base2]");var exports=this.exports;lang=new Package(this,lang);exports+=this.exports;js=new Package(this,js);eval(exports+this.exports);lang.extend=extend;base2.JavaScript=pcopy(js);base2.JavaScript.namespace+="var JavaScript=js;"};new function(_1o){var dom=new base2.Package(this,{name:"dom",version:base2.version,imports:"Function2",exports:"Interface,Binding,Node,Document,Element,Traversal,AbstractView,ViewCSS,CSSStyleDeclaration,NodeSelector,StaticNodeList,Selector,CSSParser,XPathParser,Event,EventTarget,DocumentEvent,HTMLDocument,HTMLElement,ClassList,ElementView",bind:function(a){/*@if(@_jscript_version<5.6)if(a&&a.getElementById){a.nodeType=9}/*@end @*/if(a&&a.nodeType){var b=(a.nodeType==1?a.uniqueID:a.base2ID)||assignID(a);if(!_A[b]){switch(a.nodeType){case 1:if(typeof a.className=="string"){(HTMLElement.bindings[a.tagName]||HTMLElement).bind(a)}else{Element.bind(a)}break;case 9:if(a.getElementById){HTMLDocument.bind(a)}else{Document.bind(a)}break;default:Node.bind(a)}_A[b]=true}}return a},isBound:function(a){return!!_A[a.nodeType==1?a.uniqueID:a.base2ID]}});eval(this.imports);base2.DOM=pcopy(dom);base2.DOM.namespace+="var DOM=dom;";/*@cc_on @*/var _A={};var _5=document.createElement("span"),_B=_5.style;var _C=detect("(element.textContent)")?"textContent":"innerText";var _1F=/^(action|cite|codebase|data|href|longdesc|lowsrc|src|usemap)$/i,_1G=/^(type|value)$/i;var _D=detect("(element.parentElement)")?"parentElement":"parentNode";var _1H=/type="?([^\s">]*)"?/i,_1I=/value="?([^\s">]*)"?/i;function _10(b){return extend(this.base(b),"removeEventListener",function(){var a=Array2.slice(arguments);a.unshift(this);EventTarget.removeEventListener.apply(EventTarget,a)})};var _11=_5.sourceIndex==undefined?function(a){var b=0;while(a){var c=Traversal.getNodeIndex(a);b="0000".slice(0,4-String(c).length)+c+"."+b;a=a.parentNode}return b}:function(a){return a.sourceIndex};var _r={"class":"className","for":"htmlFor"};var _12="accessKey,allowTransparency,cellPadding,cellSpacing,codeBase,codeType,colSpan,dateTime,frameBorder,longDesc,maxLength,noHref,noResize,noShade,noWrap,readOnly,rowSpan,tabIndex,useMap,vAlign";extend(_r,Array2.combine(_12.toLowerCase().split(","),_12.split(",")));var _1J=_5.getAttributeNode?function(a,b){return a.getAttributeNode(b)}:function(a,b){return a.attributes[b]||a.attributes[_r[b.toLowerCase()]]};var Interface=Module.extend(null,{forEach:function(c,d){forEach(this,function(a,b){if(typeOf(a)=="function"&&(this.prototype[b]||a._s)){c.call(d,a,b,this)}},this,Module)},implement:function(a){if(typeof a=="object"){_13(this,a)}else if(Interface.ancestorOf(a)){for(var b in a){if(a[b]&&a[b]._s){this[b]=bind(b,a);this[b]._s=b}}}return this.base(a)}});function _13(a,b){var c=a.toString().slice(1,-1);for(var d in b){var e=b[d];if(d.indexOf("@")==0){_13(a,e)}else if(!a[d]&&typeof e=="function"&&e.call){var f="abcdefghij".slice(0,e.length).split("");var g=new Function(f.join(","),format("%2.base=%2.%1.ancestor;var m=%2.base?'base':'%1';return %2[m](%3)",d,f[0],f.slice(1)));g._s=d;a[d]=g;a.namespace+="var "+d+"=base2.lang.bind('"+d+"',"+c+");";}}};var Binding=Interface.extend(null,{bind:function(a){return extend(a,this.prototype);}});var Node=Binding.extend({"@!(element.compareDocumentPosition)":{compareDocumentPosition:function(a,b){if(Traversal.contains(a,b)){return 4|16;}else if(Traversal.contains(b,a)){return 2|8;}var c=_11(a);var d=_11(b);if(c<d){return 4;}else if(c>d){return 2;}return 1;}}});var Document=Node.extend(null,{bind:function(b){extend(b,"createElement",function(a){return dom.bind(this.base(a));});if(!b.defaultView){b.defaultView=Traversal.getDefaultView(b);}AbstractView.bind(b.defaultView);if(b!=window.document){new DOMContentLoadedEvent(b);}return this.base(b);},"@Gecko":{bind:_10}});detect("(element.className='test',element.expando=true)");var Element=Node.extend({"@(element.getAttribute('made-up')===''||element.getAttribute('id')!=null||element.getAttribute('expando'))":{getAttribute:function(a,b){var c=_1J(a,b),d=c&&c.specified;/*@if(@_jscript)if(a.nodeName=="INPUT"&&_1G.test(b)&&a.outerHTML){var e=a.outerHTML||"";with(e)e=slice(0,indexOf(">")+1);return match(e,b=="type"?_1H:_1I)[1]||null;}if((d&&_1F.test(b))||(!c&&@_jscript_version<5.6)){var f="getAttribute";if(a["_"+f])f="_"+f;return a[f](b,2);}/*@end @*/if(d){/*@if(@_jscript)if(b=="style")return a.style.cssText.toLowerCase();/*@end @*/return c.nodeValue;}return null;},hasAttribute:function(a,b){return this.getAttribute(a,b)!=null;}},"@!(element.getAttribute('class'))":{removeAttribute:function(a,b){b=_r[b.toLowerCase()]||b;/*@if(@_jscript)var c="removeAttribute";if(a["_"+c])c="_"+c;a[c](b);@else @*/this.base(a,b);/*@end @*/},setAttribute:function(a,b,c){b=_r[b.toLowerCase()]||b;/*@if(@_jscript)if(b=="style"){a.style.cssText=c;}else{var d="setAttribute";if(a["_"+d])d="_"+d;a[d](b,String(c));}@else @*/this.base(a,b,c);/*@end @*/}},"@!(element.hasAttribute)":{hasAttribute:function(a,b){return this.getAttribute(a,b)!=null;}},"@!(element.matchesSelector)":{matchesSelector:function(a,b){return new Selector(b).test(a);}}},{"@Gecko":{bind:_10}});var Traversal=Module.extend({contains:function(a,b){a.nodeType;while(b&&(b=b[_D])&&a!=b)continue;return!!b;},getFirstElementChild:function(a){a=a.firstChild;return this.isElement(a)?a:this.getNextElementSibling(a);},getLastElementChild:function(a){a=a.lastChild;return this.isElement(a)?a:this.getPreviousElementSibling(a);},getNextElementSibling:function(a){while(a&&(a=a.nextSibling)&&!this.isElement(a))continue;return a;},getNodeIndex:function(a){var b=0;while(a&&(a=a.previousSibling))b++;return b;},getOwnerDocument:function(a){return a.ownerDocument;},getPreviousElementSibling:function(a){while(a&&(a=a.previousSibling)&&!this.isElement(a))continue;return a;},getTextContent:function(a,b){return a[a.nodeType==1?b?"innerHTML":_C:"nodeValue"];},includes:function(a,b){return!!b&&(a==b||this.contains(a,b));},isEmpty:function(a){a=a.firstChild;while(a){if(a.nodeType==3||this.isElement(a))return false;a=a.nextSibling;}return true;},setTextContent:function(a,b,c){a[a.nodeType==1?c?"innerHTML":_C:"nodeValue"]=b;},"@!MSIE":{setTextContent:function(a,b,c){with(a)while(lastChild)removeChild(lastChild);this.base(a,b,c);}},"@(jscript<5.6)":{getOwnerDocument:function(a){return a.document.parentWindow.document;}}},{TEXT_CONTENT:_C,getDefaultView:function(a){return(a.ownerDocument||a.document||a).defaultView;},getDocument:function(a){return this.isDocument(a)?a:a.nodeType?this.getOwnerDocument(a):a.document||null;},isDocument:function(a){return!!a&&a.nodeType==9;},isElement:function(a){return!!a&&a.nodeType==1;},isXML:function(a){return!this.getDocument(a).getElementById;},"@!(document.defaultView)":{getDefaultView:function(a){return(a.document||a).parentWindow;}},"@(jscript<5.6)":{isDocument:function(a){return!!(a&&(a.nodeType==9||a.writeln));},isElement:function(a){return!!a&&a.nodeType==1&&a.nodeName!="!";}}});var AbstractView=Binding.extend();var _g=1,_14=2,_h=3;var _15={"2":2,"4":1},_16={focusin:"focus",focusout:"blur"},_17=/^mouse(up|down)|click$/,_1K=/click$/,_18=/^((before|un)?load|focus|blur|stop|(readystate|property|filter)change|losecapture)$/,_1L=/^((dbl)?click|mouse(down|up|over|out|wheel)|key(down|up|press)|submit|DOMActivate|(before)?(cut|copy|paste)|contextmenu|drag(start|enter|over)?|drop|before(de)?activate)$/,_1M=/^(abort|error|load|scroll|(readystate|property|filter)change)$/;var _t={},_19=extend({},{DOMContentLoaded:"base2ContentLoaded",mouseenter:"mouseover",mouseleave:"mouseout","@Gecko":{mousewheel:"DOMMouseScroll"}});function _9(a,b,c){var d=a+"#"+assignID(b);if(!_t[d]){_t[d]=c;}return _t[d];};function _1N(a,b){return _t[a+"#"+b.base2ID]||b;};function _d(a,b,c){if(typeof b=="function"){b.call(a,c);}else{b.handleEvent(c);}};extend(_0,{suppress:{},listeners:{},handlers:{},attachEvent:function(a,b,c){var d=base2.assignID(c);var e=this.handlers[d];if(!e){this.listeners[d]=c;e=this.handlers[d]=new Function("e","base2.toString.listeners['"+d+"'](e)");}a.attachEvent(b,e);},detachEvent:function(a,b,c,d){var e=c.base2ID;a.detachEvent(b,this.handlers[e]);if(d){delete this.listeners[e];delete this.handlers[e];}}});var Event=Binding.extend({"@!(document.createEvent)":{initEvent:function(a,b,c,d){a.type=String(b);a.bubbles=!!c;a.cancelable=!!d;},preventDefault:function(b){if(b.cancelable!==false)b.returnValue=false;if(b.type=="mousedown"){var c=Traversal.getDocument(b.target).activeElement,d=_0.suppress;var e=function(a){d.focus=true;c.focus();_0.detachEvent(c,"onblur",e,true);setTimeout(function(){delete d.focus;delete d.blur;},1);};d.blur=true;_0.attachEvent(c,"onblur",e);}},stopPropagation:function(a){a.cancelBubble=true;},"@(element.onbeforedeactivate)":{preventDefault:function(b){if(b.cancelable!==false)b.returnValue=false;if(b.type=="mousedown"){var c=Traversal.getDocument(b.target).body;var d=function(a){_0.detachEvent(c,"onbeforedeactivate",d,true);a.returnValue=false;};_0.attachEvent(c,"onbeforedeactivate",d);}}}}},{CAPTURING_PHASE:_g,AT_TARGET:_14,BUBBLING_PHASE:_h,cloneEvent:function(a){if(a.isClone)return a;var b=copy(a);b.isClone=true;b.stopPropagation=function(){a.stopPropagation();this.cancelBubble=true;};b.preventDefault=function(){a.preventDefault();this.returnValue=false;};return b;},"@!(document.createEvent)":{bind:function(a){if(!a.timeStamp){a.bubbles=!_18.test(a.type);a.cancelable=_1L.test(a.type);a.timeStamp=new Date().valueOf();}a.relatedTarget=a[(a.target==a.fromElement?"to":"from")+"Element"];return this.base(a);}}});if(detect.MSIE&&!detect("element.dispatchEvent")){var _u=document.createElement(/^CSS/.test(document.compatMode)?"meta":"marquee"),_E=_0.base2Event={};_u.base2Events=0;_u.attachEvent("onpropertychange",new Function('e','var d=base2.toString.base2Event;if (e.propertyName=="base2Events"){if(typeof d.listener=="function")d.listener.call(d.target,d.event);else d.listener.handleEvent(d.event)}'));document.getElementsByTagName("head")[0].appendChild(_u);var EventDispatcher=Base.extend({constructor:function(a){this.state=a;},dispatch:function(a,b,c,d){b.eventPhase=c;var e=a.length;while(e--&&!b.cancelBubble){var f=a[e],g=d[f.nodeType==1?f.uniqueID:f.base2ID];if(g){g=copy(g);b.currentTarget=f;b.eventPhase=f==b.target?_14:c;for(var h in g){_E.event=b;_E.target=f;_E.listener=g[h];_u.base2Events++;if(b.returnValue===false){b.preventDefault();}}}}},handleEvent:function(a){a=Event.cloneEvent(Event.bind(a));var b=a.type;if(_16[b]){b=a.type=_16[b];a.bubbles=!_18.test(b);}var c=this.state.events[b];if(c&&!_0.suppress[b]){if(_17.test(b)){var d=_1K.test(b)?this.state._F:a.button;a.button=_15[d]||0;}var e=a.target,f=[],g=0;while(e){f[g++]=e;e=e.parentNode;}/*@if(@_jscript_version<5.6)if(f[0].nodeType==1&&!f[g-1].documentElement){f[g]=Traversal.getDocument(f[0]);}/*@end @*/var h=c[_g];if(h)this.dispatch(f,a,_g,h);h=c[_h];if(h&&!a.cancelBubble){if(a.bubbles){f.reverse();}else{f.length=1;}this.dispatch(f,a,_h,h);}}return a.returnValue!==false;}});}var EventTarget=Interface.extend({"@!(element.addEventListener)":{addEventListener:function(a,b,c,d){var e=DocumentState.getInstance(a);var f=assignID(a),g=assignID(c),h=d?_g:_h,j=e.registerEvent(b,a),k=j[h];if(!k)k=j[h]={};var l=k[f];if(!l)l=k[f]={};l[g]=c;},dispatchEvent:function(a,b){b.target=a;b._G=true;return DocumentState.getInstance(a).handleEvent(b);},removeEventListener:function(a,b,c,d){var e=DocumentState.getInstance(a).events;var f=e[b];if(f){var g=f[d?_g:_h];if(g){var h=g[a.nodeType==1?a.uniqueID:a.base2ID];if(h)delete h[c.base2ID];}}}},addEventListener:function(b,c,d,e){var f=d;if(c=="DOMContentLoaded"){d=_9(c,f,function(a){a=Event.cloneEvent(a);a.type=c;a.bubbles=a.cancelable=false;EventTarget.removeEventListener(b,c,f,e);_d(this,f,a);});}else if(c=="mouseenter"||c=="mouseleave"){d=_9(c,f,function(a){if(Traversal.includes(this,a.target)&&!Traversal.includes(this,a.relatedTarget)){a=copy(a);a.target=this;a.type=c;a.bubbles=a.cancelable=false;_d(this,f,a);}});}this.base(b,_19[c]||c,d,e);},removeEventListener:function(a,b,c,d){this.base(a,_19[b]||b,_1N(b,c),d);},"@Gecko":{addEventListener:function(b,c,d,e){if(c=="mousewheel"){var f=d;d=_9(c,f,function(a){a=Event.cloneEvent(a);a.type=c;a.wheelDelta=(-a.detail*40)||0;_d(this,f,a);});}this.base(b,c,d,e);}},"@Gecko1\\.[0-3]|Webkit[1-4]":{addEventListener:function(b,c,d,e){if(/^mouse/.test(c)){var f=d;d=_9(c,f,function(a){try{if(a.target.nodeType==3){a=Event.cloneEvent(a);a.target=a.target.parentNode;}}catch(x){return;}_d(this,f,a);});}this.base(b,c,d,e);}},"@webkit[1-4]|KHTML[34]":{addEventListener:function(c,d,e,f){var g=e;if(_17.test(d)){e=_9(d,g,function(a){var b=_15[a.button]||0;if(a.button!=b){a=Event.cloneEvent(a);a.button=b;}_d(this,g,a);});}else if(typeof e=="object"){e=_9(d,g,bind("handleEvent",e));}this.base(c,d,e,f);}},"@Linux|Mac|Opera":{addEventListener:function(g,h,j,k){if(h=="keydown"){var l=j;j=_9(h,l,function(b){var c=0,d=false;extend(b,"preventDefault",function(){this.base();d=true;});function e(a){if(d)a.preventDefault();if(a==b||c>1){_d(this,l,b);}c++;};var f=function(){this.removeEventListener("keypress",e,true);this.removeEventListener("keyup",f,true);};e.call(this,b);this.addEventListener("keyup",f,true);this.addEventListener("keypress",e,true);});}this.base(g,h,j,k);}}});if(detect("Gecko")){EventTarget.removeEventListener._s="removeEventListener";delete EventTarget.prototype.removeEventListener;}var DocumentEvent=Interface.extend({"@!(document.createEvent)":{createEvent:function(a,b){return Event({bubbles:false,cancelable:false,eventPhase:0,target:a,currentTarget:null,relatedTarget:null,timeStamp:new Date().valueOf()});}},"@(document.createEvent)":{"@!(document.createEvent('Events'))":{createEvent:function(a,b){return this.base(a,b=="Events"?"UIEvents":b);}}}});var DOMContentLoadedEvent=Base.extend({constructor:function(b){var c=false;this.fire=function(){if(!c){c=true;setTimeout(function(){var a=DocumentEvent.createEvent(b,"Events");Event.initEvent(a,"base2ContentLoaded",false,false);EventTarget.dispatchEvent(b,a);},1);}};this.listen(b);},listen:function(a){EventTarget.addEventListener(Traversal.getDefaultView(a),"load",this.fire,false);},"@(document.addEventListener)":{constructor:function(a){this.base(a);a.addEventListener("DOMContentLoaded",this.fire,false);}},"@MSIE.+win":{listen:function(a){this.base(a);try{a.body.doScroll("left");if(!this.__constructing)this.fire();}catch(x){setTimeout(bind(this.listen,this,a),10);}}},"@KHTML":{listen:function(a){if(/loaded|complete/.test(a.readyState)){if(!this.__constructing)this.fire();}else{setTimeout(bind(this.listen,this,a),10);}}}});Document.implement(DocumentEvent);Document.implement(EventTarget);Element.implement(EventTarget);var ViewCSS=Interface.extend({"@!(document.defaultView.getComputedStyle)":{"@(element.currentStyle)":{getComputedStyle:function(b,c,d){var e=c.currentStyle,f=_1a.bind({});for(var g in e){if(_H.test(g)||_I.test(g)){f[g]=this.getComputedPropertyValue(b,c,g);}else if(g.indexOf("ruby")!=0){f[g]=e[g];}}forEach.csv("backgroundPosition,boxSizing,clip,cssFloat,opacity",function(a){f[a]=this.getComputedPropertyValue(b,c,a);},this);return f;}}}},{prefix:"","@Gecko":{prefix:"Moz"},"@KHTML":{prefix:"Khtml"},"@Webkit":{prefix:"Webkit"},"@Opera":{prefix:"O"},"@MSIE":{prefix:"Ms"},getComputedPropertyValue:function(a,b,c){var d=CSSStyleDeclaration.getPropertyValue(this.getComputedStyle(a,b,null),c);if(_I.test(c))d=_1b(d);return d;},"@!(document.defaultView.getComputedStyle)":{"@(element.currentStyle)":{getComputedPropertyValue:function(a,b,c){var d=b.currentStyle,e=d[c];if(e==null){c=_a(c);e=d[c]||"";}switch(c){case"float":case"cssFloat":return d.cssFloat||d.styleFloat||"";case"cursor":return e=="hand"?"pointer":e;case"opacity":return e==null?"1":e;case"clip":return"rect("+[d.clipTop,d.clipRight,d.clipBottom,d.clipLeft].join(", ")+")";case"backgroundPosition":return d.backgroundPositionX+" "+d.backgroundPositionY;case"boxSizing":return e==null?/^CSS/.test(Traversal.getDocument(b).compatMode)?"content-box":"border-box":e;}if(e.indexOf(" ")>0)return e;if(_H.test(c)){if(_1O.test(e))return e;if(e=="auto")return"0px";if(c.indexOf("border")==0){if(d[c.replace("Width","Style")]=="none")return"0px";e=_1P[e]||e;if(typeof e=="number")return e+"px";}/*@if(@_jscript)if(_1Q.test(e))return _1R(b,e);/*@end @*/}else if(_I.test(c)){if(e=="transparent")return e;if(/^(#|rgb)/.test(e))return _1b(e);/*@if(@_jscript)return _1S(e);/*@end @*/}return e;}}}});var _1Q=/\d/,_1O=/\dpx$/i,_H=/(width|height|top|bottom|left|right|fontSize)$/i,_I=/color$/i;var _1T=/\-/,_1U=/\-([a-z])/g,_J=/[A-Z]/g;var _1P={thin:1,medium:2,thick:4};var _1V={"@MSIE":{opacity:1,cursor:1}};var _a=function(c,d){if(c=="float"||c=="cssFloat"||c=="styleFloat"){return d?"float":_B.cssFloat==null?"styleFloat":"cssFloat";}if(_1T.test(c)){c=c.replace(_1U,_1W);}if(_B[c]==null){var e=/^border(\w+)Radius$/;if(ViewCSS.prefix=="Moz"&&e.test(c)){c=c.replace(e,function(a,b){return"borderRadius"+b.charAt(0)+b.slice(1).toLowerCase();});}var f=ViewCSS.prefix+c.charAt(0).toUpperCase()+c.slice(1);if(_B[f]!=null){c=f;}}if(d){c=c.replace(_J,_K);}return c;};function _K(a){return"-"+a.toLowerCase();};var _1W=flip(String2.toUpperCase),_1X=partial(parseInt,undefined,16);function _1R(a,b){var c=a.style.left;var d=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;a.style.left=b;b=a.style.pixelLeft;a.style.left=c;a.runtimeStyle.left=d;return b+"px";};function _1S(a){if(window.createPopup){var b=createPopup().document;}else{b=new ActiveXObject("htmlfile");b.write("<body>");}var c=b.body,d=c.createTextRange();c.style.color=a.toLowerCase();var e=d.queryCommandValue("ForeColor");return format("rgb(%1, %2, %3)",e&0xff,(e&0xff00)>>8,(e&0xff0000)>>16);};function _1b(a){if(a.indexOf("rgb")==0)return a.replace(/(\d)\s,/g,"$1,");if(a.indexOf("#")!=0)return a;var b=a.slice(1);if(b.length==3)b=b.replace(/(\w)/g,"$1$1");return"rgb("+Array2.map(b.match(/(\w\w)/g),_1X).join(", ")+")";};var _1a=Binding.extend({getPropertyValue:function(a,b){if(a[b]==null)b=_a(b);return a[b]||"";},"@MSIE5":{getPropertyValue:function(a,b){if(a[b]==null)b=_a(b);var c=a[b];if(b=="cursor"&&c=="hand"){c="pointer";}return c||"";}}});var CSSStyleDeclaration=_1a.extend({setProperty:function(a,b,c,d){if(a[b]==null)b=_a(b);if(d){this.base(a,b.replace(_J,_K),c,d);}else{a[b]=c;}},"@!(style['setProperty'])":{setProperty:function(a,b,c,d){if(a[b]==null)b=_a(b);/*@if(@_jscript)if(@_jscript_version<5.6&&b=="cursor"&&c=="pointer"){c="hand";}else if(b=="opacity"){c*=100;a.zoom="100%";a.filter="alpha(opacity="+Math.round(c)+")";}/*@end @*/if(d=="important"){a.cssText+=format(";%1:%2!important;",b.replace(_J,_K),c);}else{a[b]=c;}}}},{getPropertyName:_a,setProperties:function(a,b){b=extend({},b);for(var c in b){var d=b[c];if(a[c]==null)c=_a(c);if(typeof d=="number"&&_H.test(c))d+="px";if(_1V[c]){this.setProperty(a,c,d,"");}else{a[c]=d;}}}});AbstractView.implement(ViewCSS);var _1c=detect("(input.getAttribute('type')=='text')")?/:visited|\[(type|value)|\b(object|param)\b/i:/:visited/;var _1Y=detect("(element.compareDocumentPosition)")?function(a,b){return(a.compareDocumentPosition(b)&2)-1;}:document.createRange?function(a,b){var c=a.ownerDocument,d=c.createRange(),e=c.createRange();d.selectNode(a);d.collapse(true);e.selectNode(b);e.collapse(true);return d.compareBoundaryPoints(Range.START_TO_END,e);}:function(a,b){return(Node.compareDocumentPosition(a,b)&2)-1;};var _1Z=/'(\\.|[^'\\])*'|"(\\.|[^"\\])*"|\\./g,_20=/([\s>+~,]|[^(]\+|^)([#.:\[])/g,_21=/(^|,)([^\s>+~])/g,_22=/\s*([\^*~|$]?=|[\s>+~,]|^|$)\s*/g,_23=/\s*([\])])/g,_24=/([\[(])\s*/g,_25=/\x01(\d+)\x01/g,_1d=/^ \*?/g,_26=/'/g;var _27=/#/g,_28=/[.:\[]/g,_29=/^\w|[\s>+~]\w/g;var _2a=/^[\s>+~]$/;var _v=":(checked|disabled|enabled|selected|hover|active|focus|link|visited|target)",_e=_v+"|^(#[\\w\u00a1-\uffff\\-]+\\s*)?[\\w\u00a1-\uffff\\-]+$";if(detect("KHTML")){if(detect("WebKit5")){_e+="|nth\\-|,"}else{_e="."}}_v=new RegExp(_v);_e=new RegExp(_e);var _w=function(a,b){if(typeof a!="function"){a=new Selector(a).toDOMQuery(true)}return this.base(a,b)};function _1e(a,b,c,d,e,f,g,h){d=/last/i.test(a)?d+"+1-":"";if(!isNaN(b))b="0n+"+b;else if(b=="even")b="2n";else if(b=="odd")b="2n+1";b=b.split("n");var j=b[0]?(b[0]=="-")?-1:parseInt(b[0],10):1;var k=parseInt(b[1],10)||0;var l=j<0;if(l){j=-j;if(j==1)k++}var o=format(j==0?"%3%7"+(d+k):"(%4%3-(%2))%6%1%70%5%4%3>=%2",j,k,c,d,f,g,h);if(l)o=e+"("+o+")";return o};var _L,_M;function _2b(a,b){if(!_M)_M=new XPathParser;return"[not("+_M.exec(trim(b)).replace(/\[1\]/g,"").replace(/^(\*|[\w\u00a1-\uffff\-\x01]+)/,"[self::$1]").replace(/\]\[/g," and ").slice(1,-1)+")]"};function _N(a,b,c){return"["+_1e(a,b,c||"count(preceding-sibling::*)+1","last()","not"," and "," mod ","=")+"]"};var id="base2"+Date2.now(),root=document.documentElement;_5.innerHTML='<a name="'+id+'"></a>';root.insertBefore(_5,root.firstChild);var _1f=document.getElementById(id)==_5.firstChild?document.all?function(a,b){var c=a.all[b]||null;if(!c||(c.nodeType&&Element.getAttribute(c,"id")==b))return c;for(var d=0;d<c.length;d++){if(Element.getAttribute(c[d],"id")==b)return c[d]}return null}:null:function(a,b){return a.getElementById(b)};root.removeChild(_5);var _i=1,_j={};function _2c(a){if(_j._i!=_i){_j={_i:_i}}var b=a.sourceIndex>0,c=b?a.sourceIndex:a.uniqueID||assignID(a);if(!_j[c]){var d={},e=1,f=a.firstChild;while(f){if(f.nodeType==1)/*@if(@_jscript_version<5.6)if(f.nodeName!="!")/*@end @*/d[b?f.sourceIndex:f.uniqueID||assignID(f)]=e++;f=f.nextSibling}d.length=e;_j[c]=d}return _j[c]};function _1g(a,b,c){try{var d=a.base(b,c)}catch(x){if(Traversal.isDocument(b)||Traversal.isElement(b)||b.nodeType==11){if(Traversal.isXML(b)&&_v.test(a)){d=null}else{var e=new SyntaxError(format("'%1' is not a valid CSS selector.",a));e.code=12;throw e;}}else{throw new TypeError("Invalid argument.");}}return d};var StaticNodeList=Base.extend({constructor:function(a){a=a||[];if(a.unsorted)a.sort(_1Y);var b=a.length,c=0,d=0;if(b)this[0]=undefined;while(c<b){if(a[c])this[d++]=a[c];c++}this.length=d},length:0,forEach:function(a,b){var c=this.length;for(var d=0;d<c;d++){a.call(b,this[d],d,this)}},item:Array2.prototype.item,not:function(a,b){return this.filter(not(a),b)},slice:function(a,b){return new StaticNodeList(this.map(I).slice(a,b))},"@(XPathResult)":{constructor:function(a){if(a&&a.snapshotItem){var b=this.length=a.snapshotLength,c=0;while(c<b)this[c]=a.snapshotItem(c++)}else this.base(a)}}},{bind:function(c){Base.forEach(this.prototype,function(a,b){if(c[b]===undefined){c[b]=a}});return c}});StaticNodeList.implement(Enumerable);StaticNodeList.implement({every:_w,filter:_w,not:_w,some:_w});StaticNodeList.implement({filter:function(a,b){return new StaticNodeList(this.base(a,b))}});var NodeSelector=Interface.extend({"@(element.querySelector)":{querySelector:function(a,b){if(!_1c.test(b)){try{return this.base(a,b)}catch(x){}}return new Selector(b).exec(a,1)},querySelectorAll:function(a,b){if(!_1c.test(b)){try{return StaticNodeList.bind(this.base(a,b))}catch(x){}}return new Selector(b).exec(a)}},"@!(element.querySelector)":{querySelector:function(a,b){return new Selector(b).exec(a,1)},querySelectorAll:function(a,b){return new Selector(b).exec(a)}}});if(_5.querySelectorAll){_5.innerHTML='<a id="X"></a>';if(_5.querySelectorAll("#X").length==0){NodeSelector.implement({querySelectorAll:function(a,b){if(/[A-Z]/.test(b)){if(!/^CSS/.test(Traversal.getDocument(a).compatMode)){return new Selector(b).exec(a)}}return this.base(a,b)}})}}extend(NodeSelector.prototype,{querySelector:function(a){return dom.bind(this.base(a))},querySelectorAll:function(a){var b=this.base(a);var c=b.length;while(c--)dom.bind(b[c]);return b}});var CSSParser=RegGrp.extend({constructor:function(a){this.base(a);this.cache={};this.sorter=new RegGrp;this.sorter.add(/:not\([^)]*\)/,RegGrp.IGNORE);this.sorter.add(/([ >](\*|[\w-]+))([^: >+~]*)(:\w+-child(\([^)]+\))?)([^: >+~]*)/,"$1$3$6$4")},cache:null,ignoreCase:true,escape:function(b){var c=this._2d=[];return String(b).replace(_1Z,function(a){if(a.indexOf("\\")!=0){a=a.slice(1,-1).replace(_26,"\\'")}return"\x01"+c.push(a)+"\x01"})},format:function(a){return this.normalise(this.escape(a+""))},normalise:function(a){return a.replace(_22,"$1").replace(_23,"$1").replace(_24,"$1").replace(_21,"$1 $2").replace(_20,"$1*$2")},parse:function(a,b){return this.cache[a]||(this.cache[a]=this.revert(this.exec(this.format(a,b))))},put:function(a,b){return this.base(a.replace(/ID/g,"\\w\u00a1-\uffff\\-\\x01"),b)},revert:function(a){return this.unescape(a)},unescape:function(c){var d=this._2d;return c.replace(_25,function(a,b){return d[b-1]})}});var XPathParser=CSSParser.extend({constructor:function(){this.base(XPathParser.build());this.sorter.putAt(1,"$1$4$3$6")},format:function(a){return this.base(a).replace(/,/g,"\x02")},unescape:function(a){return this.base(a).replace(/\\(.)/g,"$1")},revert:function(b){return this.base(b.replace(/\[self::\*\]/g,"").replace(/(^|\x02)\//g,"$1./").replace(/\x02/g," | ")).replace(/'[^'\\]*\\'(\\.|[^'\\])*'/g,function(a){return"concat("+a.split("\\'").join("',\"'\",'")+")"})},"@Opera(7|8|9\\.[0-4])":{revert:function(a){return this.base(a.replace(/last\(\)/g,"count(preceding-sibling::*)+count(following-sibling::*)+1"))}}},{build:function(){this.values.attributes[""]="[@$1]";forEach(this.types,function(a,b){forEach(this.values[b],a,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) (\\*|[ID]+)#([ID]+)":"$1id('$3')[self::$2]"},"@!KHTML":{"([ >])(\\*|[ID]+):([\\w-]+-child(\\(([^)]+)\\))?)":function(a,b,c,d,e,f){var g=(b==" ")?"//*":"/*";if(/^nth/i.test(d)){g+=_N(d,f,"position()")}else{g+=XPathParser.optimised.pseudoClasses[d]}return g+"[self::"+c+"]"}}}),types:{identifiers:function(a,b){this[rescape(b)+"([ID]+)"]=a},combinators:function(a,b){this[rescape(b)+"(\\*|[ID]+)"]=a},attributes:function(a,b){this["\\[([ID]+)"+rescape(b)+"([^\\]]*)\\]"]=a},pseudoClasses:function(a,b){this[":"+b.replace(/\(\)$/,b=="not()"?"\\((([^\\s>+~]|~=)+)\\)":"\\(([^)]+)\\)")]=a}},values:{identifiers:{"#":"[@id='$1'][1]",".":"[contains(concat(' ',@class,' '),' $1 ')]"},combinators:{" ":"/descendant::$1",">":"/child::$1","+":"/following-sibling::*[1][self::$1]","~":"/following-sibling::$1"},attributes:{"*=":"[contains(@$1,'$2')]","^=":"[starts-with(@$1,'$2')]","$=":"[substring(@$1,string-length(@$1)-string-length('$2')+1)='$2']","~=":"[contains(concat(' ',@$1,' '),' $2 ')]","|=":"[contains(concat('-',@$1,'-'),'-$2-')]","=":"[@$1='$2']"},pseudoClasses:{"contains()":"[contains(.,'$1')]","empty":"[not(child::*) and not(text())]","first-child":"[not(preceding-sibling::*)]","last-child":"[not(following-sibling::*)]","not()":_2b,"nth-child()":_N,"nth-last-child()":_N,"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 Selector=Base.extend({constructor:function(a){this.toString=K(trim(a))},exec:function(a,b){return this.toDOMQuery()(a,b)},getSpecificity:function(){var a=_8.escape(this);if(a.indexOf(",")==-1){return match(a,_27).length*10000+match(a,_28).length*100+match(a,_29).length}else{return-1}},split:function(){return Array2.map(_8.escape(this).split(","),function(a){return new Selector(_8.unescape(a))})},test:function(a){return this.toDOMQuery(true)(a)},toDOMQuery:function(t){var E=_2e[t?"test":"exec"];if(!E[this]){var q="",M=["e0,c"],y=[],z=(t?"":"_k.complete=false;")+"_i++;var r=[],l,d=e0.nodeType==9?e0:e0.ownerDocument||Traversal.getDocument(e0),t=d.getElementById?'toUpperCase':'toString',u,v={},k=0,p0;",A=[],N=[],F=_8.format(this).split(","),G=F.length>1,p=0;var B=function(d,e){var f="",g=_l[e?"test":"exec"],h,j,k=0;if(e)d=d.replace(_1d,"");var l=match(d,_2f),o;if(e)l.reverse();for(var s=0;o=l[s];s++){var n="";j=false;if(_2a.test(o)){h=o;n+=g[h];if(h==" "||h==">"){if(!e&&h==" "&&l[s+1].indexOf("*")==0){n=n.replace(/\bT\b/,"'*'")}p++;k++;if(!e){y.push(p)}}}else{var m=match(o,_2g),r=m[1]||"*",Q=m[2]||"",H=r=="*";if(!H){A.push(r)}if(e){if(!H){n+="if(e.nodeName==t){"}}else{if(H){if(!_2h&&h=="~"){n+="if("+_O+"){"}/*@if(@_jscript)if(h==" "||h==">"){n+="if(e.nodeName!='"+(@_jscript_version<5.6?"!":"#comment")+"'){"}@else @*/if(!_1h&&h==">"){n+="if(e.nodeType==1){"}/*@end @*/}else if(h!=" "){n+="if(e.nodeName==t){"}if((k>1&&h==" ")||h=="~"){n+=_2i;N.push(p);j=true}}n+=_8.exec(Q)}f+=n.replace(_2j,function(a,b,c){if(c)return c;return b=="T"?"t"+A.length:b=="t"?b+(A.length-1):b=="E"?"e"+(p-1):b+p})}if(G){var C="";if(!j){C=_1i}if(!_x){if(v==0){C+="v[u]=1;"}else{C+="if(!v[u]){v[u]=1;"}}f+=format(C,p)}return f};var J=function(a){if(t){a+="return true;"}else{var b="if(c==1)return e%1;";if(G&&_x){b+="r[u]=e%1;k++;"}else{b+="r[k++]=e%1;"}b+="if(k===c){_k.state=[%state%];return r;";a+=format(b,p)}a+=Array(match(a,/\)\{/g).length+1).join("}");if(G&&!t&&!_x){a+="if(l&&r.length>l)r.unsorted=1;l=r.length;"}return a};_f=[];for(var v=0;v<F.length;v++){var w=F[v];if(v>0)q+="e"+p+"=e0;";var L=w.lastIndexOf("#");if(t||L==-1){q+=J(B(w,t))}else{var O=w.slice(0,L),P=match(w.slice(L),_2k),R=P[1]||"",S=P[2]||"";var D=B(w,t);q+="if(!_1f||!d.getElementById||(e0!=d&&Node.compareDocumentPosition(e0,d)&1)){"+J(D)+"}";q+=format("else{var e%1=_1f(d,'%2');if(e%1&&(e0==d||Traversal.contains(e0,e%1))){",++p,R);var u="";if(O.replace(_1d,"")){var T=p;u="var q"+p+"=function(e0){";p=0;u+=B(O,true)+"return true";u+=Array(match(u,/\)\{/g).length+1).join("}")+";";p=T}D=u?"if(q"+p+"(e"+p+")){":"";D+=B(S);q+=u+J(D)+"}}"}}/*@if(@_jscript_version<5.6)q=q.replace(/getElementsByTagName\('\*'\)/g,"all");/*@end @*/z+="var reg=["+_f.join(",")+"];";z+=Array2.map(A,function(a,b){return"var t"+b+"='"+a+"'"+(a==a.toUpperCase()?";":"[t]();")}).join("");z+=Array2.map(N,function(a){return"var s"+a+"={};"}).join("");forEach(y,function(a,b){y[b]="i"+a;M.push("a"+a)});q=_8.unescape(z+q);q+=t?";return false":"_k.state=[%state%];_k.complete=true;return c==1?null:r";q=q.replace(/%state%/g,y.join(","));eval("var _k=function("+M.join(",")+"){"+q+"}");E[this]=_k}return E[this]},toXPath:function(){if(!_L)_L=new XPathParser;return _L.parse(this)},"@(XPathResult)":{exec:function(a,b){if(_e.test(this)){return this.base(a,b)}var c=Traversal.getDocument(a);var d=b==1?9:7;var e=c.evaluate(this.toXPath(),a,null,d,null);return b==1?e.singleNodeValue:e}},"@(jscript)":{exec:function(a,b){if(typeof a.selectNodes!="undefined"&&!_e.test(this)){var c=Traversal.getDocument(a),d=b==1?"selectSingleNode":"selectNodes";c.setProperty("SelectionLanguage","XPath");return a[d](this.toXPath())}return this.base(a,b)}},"@(true)":{exec:function(a,b){this.base;var c=_1g(this,a||document,b);return b==1?c:new StaticNodeList(c)},test:function(a){this.base;return!!_1g(this,a)}}});var _x=detect("(element.sourceIndex)"),_1h=detect("(element.children)"),_2h=detect("(element.nextElementSibling)"),_1j=_x?"e.sourceIndex":"e.uniqueID||assignID(e)",_1i="u="+_1j.replace(/\be\b/g,"e%1")+";",_O="e.nodeType==1",_2i="u="+_1j+";if(s[u])break;s[u]=1;",_2g=new RegExp("^(\\*|[\\w\u00a1-\uffff\\-\\x01]+)?(.*)$"),_2k=new RegExp("^#([\\w\u00a1-\uffff\\-\\x01]+)?(.*)$"),_2f=/[^\s>+]+(~=|n\+\d)[^\s>+]+|[^\s>+~]+|[\s>+~]/g,_2j=/\b([aeEijnpstT])\b|('[^']+')/g;/*@if(@_jscript_version<5.6)_O+="&&e.nodeName!='!'";/*@end @*/var _f=[],_2e={exec:{},test:{}};var _l={exec:extend({},{" ":"var i,e,p,n=E.getElementsByTagName(T);for(i=a||0;e=n[i];i++){",">":"var i,e,p,n=E."+(_1h?"children":"childNodes")+";for(i=a||0;e=n[i];i++){","+":"while((e=e.nextSibling)&&!("+_O+"))continue;if(e){","~":"while((e=e.nextSibling)){","@(element.nextElementSibling)":{"+":"e=e.nextElementSibling;if(e){","~":"while((e=e.nextElementSibling)){"}}),test:{" ":"var e=E;while((e=e."+_D+")){",">":"var e=E."+_D+";if(e){"}};_l.test["+"]=_l.exec["+"].replace("next","previous");_l.test["~"]=_l.exec["~"].replace("next","previous");var _m=extend({},{"checked":"e.checked","contains":"e."+Traversal.TEXT_CONTENT+".indexOf('%1')!=-1","disabled":"e.disabled===true","empty":"Traversal.isEmpty(e)","enabled":"e.disabled===false","first-child":"!(e.previousSibling&&Traversal.getPreviousElementSibling(e))","last-child":"!(e.nextSibling&&Traversal.getNextElementSibling(e))","@(element.nextElementSibling)":{"first-child":"!e.previousElementSibling","last-child":"!e.nextElementSibling"},"root":"e==d.documentElement","target":"e.id&&Element.getAttribute(e,'id')==d.location.hash.slice(1)","hover":"DocumentState.getInstance(d).isHover(e)","active":"DocumentState.getInstance(d).isActive(e)","focus":"DocumentState.getInstance(d).hasFocus(e)","link":"d.links&&Array2.contains(d.links,e)","visited":"false"});_m["only-child"]=_m["first-child"]+"&&"+_m["last-child"];var _P={"=":"%1=='%2'","~=":/(^| )%1( |$)/,"|=":/^%1(-|$)/,"^=":/^%1/,"$=":/%1$/,"*=":/%1/};_P[""]="%1";var _8=new CSSParser({":not\\((\\*|[ID]+)?(([^\\s>+~]|~=)+)\\)":function(a,b,c){var d=(b&&b!="*")?"if(e.nodeName!='"+b+"'){":"";d+=_8.exec(c).replace(/if\(\(/g,"if(!(");return d},"#([ID]+)":"if(((e.submit?Element.getAttribute(e,'id'):e.id)=='$1')){","\\.([ID]+)":function(a,b){_f.push(new RegExp("(^|\\s)"+rescape(b)+"(\\s|$)"));return"if((e.className&&reg["+(_f.length-1)+"].test(e.className))){"},":nth(-last)?-child\\(([^)]+)\\)":function(a,b,c){return"p=_2c(e.parentNode);"+format(_1i,"")+"var j=p[u];if(("+_1e(a,c,"j","p.length","!","&&","% ","==")+")){"},":([a-z\\-]+)(\\(([^)]+)\\))?":function(a,b,c,d){return"if(("+format(_m[b]||"throw",d)+")){"},"\\[([ID]+)([^=]?=)?([^\\]]*)\\]":function(a,b,c,d){d=trim(d);if(b=="class"){var e="e.className"}else{var f=(c?"get":"has")+"Attribute";if(Element.prototype[f]){e="Element."+f+"(e,'"+b+"')"}else{e="e."+f+"('"+b+"')"}}var g=_P[c||""];if(instanceOf(g,RegExp)){_f.push(new RegExp(format(g.source,rescape(_8.unescape(d)))));g="reg[%2].test(%1)";d=_f.length-1}return"if(("+format(g,e,d)+")){"}});Document.implement(NodeSelector);Element.implement(NodeSelector);Selector.pseudoClasses=_m;Selector.operators=_P;var HTMLDocument=Document.extend(null,{bind:function(a){DocumentState.createState(a);return this.base(a)}});var HTMLElement=Element.extend(null,{bindings:{},tags:"*",bind:function(a){if(!a.classList){a.classList=new _2l(a)}if(!a.ownerDocument){a.ownerDocument=Traversal.getOwnerDocument(a)}/*@if(@_jscript)for(var b,c=0;b=_2m[c];c++){b+="Attribute";a["_"+b]=a[b]}/*@end @*/return this.base(a)},extend:function(){var b=this.base.apply(this,arguments);forEach.csv(b.tags,function(a){HTMLElement.bindings[a]=b});return b}});HTMLElement.extend(null,{tags:"APPLET,EMBED,OBJECT,IFRAME",bind:I});var _2m="get,set,has,remove".split(",");/*@if(@_jscript_version<5.7)for(var i in HTMLElement.prototype){if(i!="base"&&i!="extend"){HTMLElement.prototype[i]=new Function("var a=base2.js.Array2.slice(arguments),m=base2.dom.HTMLElement."+i+";a.unshift(this);return m.apply(m,a)")}}/*@end @*/var ClassList=Module.extend({add:function(a,b){if(!ClassList.contains(a,b)){a.className+=(a.className?" ":"")+b}},contains:function(a,b){var c=new RegExp("(^|\\s)"+b+"(\\s|$)");return c.test(a.className||"")},remove:function(a,b){var c=new RegExp("(^|\\s)"+b+"(\\s|$)","g");a.className=trim(a.className.replace(c,"$2"))},toggle:function(a,b){ClassList[ClassList.has(a,b)?"remove":"add"](a,b)}});var _2l=new Function("e",Array2.reduce(String2.csv("add,contains,remove,toggle"),function(a,b){return a+="this."+b+"=function(t){return base2.dom.ClassList."+b+"(e,t)};"},""));ClassList.has=ClassList.contains;var _1k=/^(TABLE|TH|TD)$/,_2n=detect("QuirksMode"),_1l=detect("MSIE6"),_2o=detect("Webkit5")?_1k:detect("Opera8")?{test:function(a){return!_1k.test(a)}}:{test:False};var _3=new Base({getBodyClient:function(a){var b=0,c=0,d=a.defaultView,e=a.body,f=ViewCSS.getComputedStyle(d,e,null),g=f.position,h=g!="static";if(h){b+=parseInt(f.left)+parseInt(f.marginLeft);c+=parseInt(f.top)+parseInt(f.marginTop);if(g=="relative"){var j=ViewCSS.getComputedStyle(d,a.documentElement,null);b+=parseInt(j.paddingLeft)+parseInt(j.borderLeftWidth);c+=parseInt(j.paddingTop)+parseInt(j.borderTopWidth);if(!_1l){b+=parseInt(j.marginLeft);c+=parseInt(j.marginTop)}}}else{var k=a.createElement("div");e.insertBefore(k,e.firstChild);b+=k.offsetLeft-parseInt(f.paddingLeft);c+=k.offsetTop-parseInt(f.paddingTop);e.removeChild(k)}return{position:g,isAbsolute:h,left:b,top:c}},getBodyOffset:function(a){var b=this.getBodyClient(a),c=a.defaultView,d=a.body;return{isAbsolute:b.isAbsolute,left:b.left+parseInt(ViewCSS.getComputedPropertyValue(c,d,"borderLeftWidth")),top:b.top+parseInt(ViewCSS.getComputedPropertyValue(c,d,"borderTopWidth"))}},getViewport:function(a){var b=a.defaultView,c=a.documentElement;return{left:parseInt(ViewCSS.getComputedPropertyValue(b,c,"marginLeft")),top:parseInt(ViewCSS.getComputedPropertyValue(b,c,"marginTop"))}},getGeckoRoot:function(a){var b=a.defaultView.getComputedStyle(a.documentElement,null);return{x:parseInt(b.marginLeft)+parseInt(b.borderLeftWidth),y:parseInt(b.marginTop)+parseInt(b.borderTopWidth)}},"@MSIE.+QuirksMode":{getViewport:K({left:0,top:0})},"@(true)":{getBodyClient:_b(1),getBodyOffset:_b(2),getViewport:_b(3),getGeckoRoot:_b(4)}});function _b(c){return function(a){var b=c+(a.base2ID||assignID(a));if(!_b[b])_b[b]=this.base(a);return _b[b]}};var ElementView=Interface.extend({"@!(element.getBoundingClientRect)":{getBoundingClientRect:function(a){var b=a.ownerDocument;switch(a.nodeName){case"HTML":var c=_3.getViewport(b);break;case"BODY":c=_3.getBodyClient(b);break;default:var d=a.offsetLeft,e=a.offsetTop,f=b.defaultView,g=b.documentElement,h=f.getComputedStyle(a,null);offsetParent=a.offsetParent;while(offsetParent&&(offsetParent!=g||h.position=="static")){d+=offsetParent.offsetLeft-offsetParent.scrollLeft;e+=offsetParent.offsetTop-offsetParent.scrollTop;h=f.getComputedStyle(offsetParent,null);if(_2o.test(offsetParent.nodeName)){if(offsetParent.clientLeft===undefined){d+=parseInt(h.borderLeftWidth);e+=parseInt(h.borderTopWidth)}else{d+=offsetParent.clientTop;e+=offsetParent.clientLeft}}offsetParent=offsetParent.offsetParent}c={left:d,top:e}}return{top:c.top,right:c.left+a.clientWidth,bottom:c.top+a.clientHeight,left:c.left}},"@Webkit5":{getBoundingClientRect:function(a){var b=this.base(a);if(a.nodeName!="HTML"){var c=a.ownerDocument,d=_3.getBodyOffset(c);if(!d.isAbsolute){d=_3.getViewport(c)}b.left+=d.left;b.top+=d.top}return b}},"@(document.getBoxObjectFor)":{getBoundingClientRect:function(a){var b=a.ownerDocument,c=b.defaultView,d=b.documentElement,e=b.getBoxObjectFor(a),f=c.getComputedStyle(a,null),g=e.x-parseInt(f.borderLeftWidth),h=e.y-parseInt(f.borderTopWidth),j=a.parentNode;if(a!=d){while(j&&j!=d){g-=j.scrollLeft;h-=j.scrollTop;f=c.getComputedStyle(j,null);if(f.position!="absolute"){g+=parseInt(f.borderTopWidth);h+=parseInt(f.borderLeftWidth)}j=j.parentNode}if(f.position!="fixed"){g-=c.pageXOffset;h-=c.pageYOffset}var k=c.getComputedStyle(b.body,null).position;if(k=="relative"){var l=b.getBoxObjectFor(d)}else if(k=="static"){l=_3.getGeckoRoot(b)}if(l){g+=l.x;h+=l.y}}return{top:h,right:g+a.clientWidth,bottom:h+a.clientHeight,left:g}}}},"@(jscript)":{getBoundingClientRect:function(a){var b=this.base(a);if(a.nodeName=="HTML"){var c=Traversal.getDocument(a),d=_3.getViewport(c),e=c.documentElement,f=d.left-e.scrollLeft,g=d.left-e.scrollTop;b={top:g,right:f+b.right-b.left,bottom:g+b.bottom-b.top,left:f}}return b}},"@Gecko1\\.9([^\\.]|\\.0)":{getBoundingClientRect:function(a){var b=this.base(a);if(a.nodeName!="HTML"&&_3.getBodyClient(a.ownerDocument).position=="absolute"){var c=_3.getGeckoRoot(document);return{top:b.top-c.y,right:b.right-c.x,bottom:b.bottom-c.y,left:b.left-c.x}}return b}}},{getOffsetFromBody:function(a){var b=0,c=0;if(a.nodeName!="BODY"){var d=Traversal.getOwnerDocument(a),e=d.defaultView,f=d.documentElement,g=d.body,h=this.getBoundingClientRect(a);b=h.left+Math.max(f.scrollLeft,g.scrollLeft);c=h.top+Math.max(f.scrollTop,g.scrollTop);var j=_3.getBodyOffset(d);/*@if(@_jscript)if(_1l&&g.currentStyle.position!="relative"){b-=f.clientLeft;c-=f.clientTop}if(@_jscript_version==5.7||d.documentMode==7){var k=f.getBoundingClientRect();b-=k.left;c-=k.top}if(_2n){b-=g.clientLeft;c-=g.clientTop;j.isAbsolute=false}/*@end @*/if(j.isAbsolute){b-=j.left;c-=j.top}}return{left:b,top:c}},"@!(element.getBoundingClientRect)":{"@Webkit5":{getOffsetFromBody:function(a){var b=this.base(a);if(a.nodeName!="HTML"){var c=a.ownerDocument,d=_3.getBodyOffset(c);if(!d.isAbsolute){d=_3.getViewport(c)}b.left-=d.left;b.top-=d.top}return b}}},"@Gecko1\\.([^9]|9(\\.0|[^\\.]))":{getOffsetFromBody:function(a){var b=this.base(a);if(!_3.getBodyClient(a.ownerDocument).isAbsolute){var c=_3.getGeckoRoot(document);b.left-=c.x;b.top-=c.y}return b}},getOffsetXY:function(a,b,c){var d=this.getBoundingClientRect(a);return{x:b-d.left-a.clientLeft,y:c-d.top-a.clientTop}},"@!(element.clientLeft)":{getOffsetXY:function(a,b,c){var d=this.getBoundingClientRect(a),e=a.ownerDocument.defaultView.getComputedStyle(a,null);return{x:b-d.left-parseInt(e.borderLeftWidth),y:c-d.top-parseInt(e.borderTopWidth)}}}});HTMLElement.implement(ElementView);var DocumentState=Base.extend({init:function(d){this.document=d;this.events={};this._1m=d.documentElement;var e=/^on((DOM)?\w+|[a-z]+)$/;forEach(this,function(a,b,c){if(e.test(b)){c.registerEvent(b.slice(2))}})},hasFocus:function(a){return a==this._Q},isActive:function(a){return Traversal.includes(a,this._R)},isHover:function(a){return Traversal.includes(a,this._1m)},handleEvent:function(a){if(!a._G){this["on"+a.type](a)}},onblur:function(a){delete this._Q},onmouseover:function(a){this._1m=a.target},onmousedown:function(a){this._R=a.target},onfocus:function(a){this._Q=a.target},onmouseup:function(a){delete this._R},registerEvent:function(a){this.document.addEventListener(a,this,true);this.events[a]=true},"@!(document.activeElement)":{init:function(a){this.base(a);if(dom.isBound(a)){a.activeElement=a.body}},onfocus:function(a){this.base(a);if(dom.isBound(this.document)){this.document.activeElement=this._Q}},onblur:function(a){this.base(a);if(dom.isBound(this.document)){this.document.activeElement=this.document.body}}},"@!(element.addEventListener)":{init:function(b){this.base(b);var c=new EventDispatcher(this);this._n=function(a){a.target=a.target||a.srcElement||b;c.handleEvent(a)};this.handleEvent=function(a){if(this["on"+a.type]){this["on"+a.type](a)}return c.handleEvent(a)}},registerEvent:function(a,b){var c=this.events[a],d=b&&b.Infinity,e=!d&&!_1M.test(a);if(!c||!e){if(!c)c=this.events[a]={};if(e||!b)b=this.document;if(!b)b=this.document;this.addEvent(a,b)}return c},addEvent:function(b,c){var d=this;c["on"+b]=function(a){if(!a){a=Traversal.getDefaultView(this).event}if(a)d.handleEvent(a)}},"@(element.attachEvent)":{init:function(c){this.base(c);var d={};this._1n=function(a){var b=assignID(a);if(!d[b]){d[b]=true;_0.attachEvent(a,"onsubmit",this._n);_0.attachEvent(a,"onreset",this._n)}};var e=this;this._2p=function(a){if(e._R==a.target){e._S=copy(a)}else{e._n(a)}}},registered:{},fireEvent:function(a,b){b=Event.cloneEvent(b);b.type=a;this.handleEvent(b)},addEvent:function(b,c){var d=assignID(c)+b;if(!this.registered[d]&&c["on"+b]!==undefined){this.registered[d]=true;var e=this;_0.attachEvent(c,"on"+b,function(a){/*@if(@_jscript_version<5.6)if(a.srcElement&&!a.srcElement.nodeName)return;/*@end @*/a.target=a.srcElement||c;e.handleEvent(a);if(e["after"+b]){e["after"+b](a)}})}},onDOMContentLoaded:function(a){forEach(a.target.forms,this._1n,this);this.activate(this.document.activeElement)},onmousedown:function(a){this.base(a);this._F=a.button},onmouseup:function(a){this.base(a);if(!a._G&&this._F==null){this.fireEvent("mousedown",a)}delete this._F},aftermouseup:function(){if(this._S){this._n(this._S);delete this._S}},onfocusin:function(a){this.activate(a.target);this.onfocus(a)},activate:function(a){var b=this.events.change&&a.onchange!==undefined,c=this.events.select&&a.onselect!==undefined;if(b||c){var d=this._n,e=this._2p;if(b)_0.attachEvent(a,"onchange",d);if(c)_0.attachEvent(a,"onselect",e);var f=function(){_0.detachEvent(a,"onblur",f,true);if(b)_0.detachEvent(a,"onchange",d);if(c)_0.detachEvent(a,"onselect",e)};_0.attachEvent(a,"onblur",f)}},onfocusout:function(a){this.onblur(a)},onclick:function(a){var b=a.target;if(b.form)this._1n(b.form)},ondblclick:function(a){if(!a._G)this.fireEvent("click",a)},"@!(element.onfocusin)":{init:function(b){this.base(b);var c=this,d=b.activeElement;_0.attachEvent(b,"onpropertychange",function(a){if(a.propertyName=="activeElement"){if(d){_0.attachEvent(d,"onblur",f)}d=b.activeElement;if(d){_0.attachEvent(d,"onfocus",e);c.activate(d)}}});function e(a){_0.detachEvent(a.srcElement,"onfocus",e);a.target=a.srcElement;c.handleEvent(a)};function f(a){_0.detachEvent(a.srcElement,"onblur",f);a.target=a.srcElement;c.handleEvent(a)}}}}}},{createState:function(a){var b=assignID(a);if(!this[b]&&!Traversal.isXML(a)){this[b]=new this();this[b].init(a)}return this[b]},getInstance:function(a){var b=Traversal.getDocument(a);return this[b.base2ID]||this.createState(b)}});DocumentState.createState(document);new DOMContentLoadedEvent(document);eval(this.exports)};

/* - ++resource++kukit.js - */
kukit=new function(){var ku=this;ku.isDevelMode=false;var _isKineticStylesheet=function(node){var rel=node.rel;if(rel=="kinetic-stylesheet"){return true}
if(rel=="kukit"||rel=="k-stylesheet"){return true}
return false};var _RuleSheetLink=function(href,res_type){this.href=href;this.res_type=res_type};ku.Engine=function(){this.initialize=function(){this.documentRules=new kukit.rd.MethodTable();this._ruleProcessorClasses={};this._ruleProcessorClasses.kss=kukit.kssp.KssRuleProcessor;this._ruleProcessors=[];this.bindScheduler=new kukit.ut.SerializeScheduler();this.stateVariables={};this.requestManager=new kukit.rm.RequestManager();this.binderInfoRegistry=new kukit.er.BinderInfoRegistry();this.loadScheduler=new kukit.rd.LoadActions();this.initializedOnDOMLoad=false;this.setupEventsQueue=[];this.setupEventsInProgress=false;this.baseUrl=this.calculateBase()};this.calculateBase=function(){var base='';try{var _dummy=document;_dummy=window} catch(e){return base}
base=kukit.ut.calculateBase(document,window.location.href);return base};this.getRuleSheetLinks=function(){var nodes=document.getElementsByTagName("link");var results=[];for(var i=0;i<nodes.length;i++){if(_isKineticStylesheet(nodes[i])){var res_type=null;if((nodes[i].type=='text/css')||(nodes[i].type=='text/kss')){res_type='kss'}
var newRuleLink=new _RuleSheetLink(nodes[i].href,res_type);results[results.length]=newRuleLink}}
return results};this.createRuleProcessor=function(rulelink){var _RuleProcessorClass=this._ruleProcessorClasses[rulelink.res_type];if(_RuleProcessorClass){var ruleprocessor=new _RuleProcessorClass(rulelink.href);this._ruleProcessors[this._ruleProcessors.length]=ruleprocessor;return ruleprocessor}
return null};this.getRules=function(){var rules=[];var ruleProcessors=this._ruleProcessors;for(var j=0;j<ruleProcessors.length;j++){var ruleProcessor=ruleProcessors[j];for(var i=0;i<ruleProcessor.rules.length;i++){rules.push(ruleProcessor.rules[i])}}
return rules};this.getRuleProcessors=function(){return this._ruleProcessors};this.setupEvents=function(inNodes){if(this.setupEventsInProgress){this.setupEventsQueue=this.setupEventsQueue.concat(inNodes)} else{this.doSetupEvents(inNodes)}};this.beginSetupEventsCollection=function(){this.setupEventsInProgress=true};this.finishSetupEventsCollection=function(){this.setupEventsInProgress=false;var setupEventsQueue=this.setupEventsQueue;this.setupEventsQueue=[];this.doSetupEvents(setupEventsQueue)};this.doSetupEvents=function(inNodes){var self=this;var deferredEventsSetup=function(){self._setupEvents(inNodes)};var found=false;if(!inNodes){found=true} else{for(var i=0;i<inNodes.length;i++){var node=inNodes[i];if(node.nodeType==1){if(!found){found=true}}}}
if(found){var remark='';this.bindScheduler.addPre(deferredEventsSetup,remark)}};this._setupEvents=function(inNodes){var phase;if(typeof(inNodes)=='undefined'){phase=1} else{phase=2}
this.binderInfoRegistry.startBindingPhase();var rules=this.getRules();var ruletable=new kukit.rd.RuleTable(this.loadScheduler);for(var y=0;y<rules.length;y++){rules[y].mergeForSelectedNodes(ruletable,phase,inNodes)}
if(phase==1){this.documentRules.bindall(phase)}
ruletable.bindall(phase);this.binderInfoRegistry.processBindingEvents()};this.initializeRules=function(){if(window.kukitRulesInitializing||window.kukitRulesInitialized){return}
kukit.engine=this;window.kukitRulesInitializing=true;var rulelinks=this.getRuleSheetLinks();for(var i=0;i<rulelinks.length;i++){var rulelink=rulelinks[i];var ruleprocessor=this.createRuleProcessor(rulelink);if(ruleprocessor){ruleprocessor.load();ruleprocessor.parse()}}
this.setupEvents();window.kukitRulesInitializing=false;window.kukitRulesInitialized=true};this.initialize.apply(this,arguments)};ku.initializeRules=function(){kukit.bootstrap()};ku.bootstrap=function(){var engine=new kukit.Engine();engine.initializeRules()};ku.bootstrapFromDOMLoad=function(){var engine=new kukit.Engine();engine.initializedOnDOMLoad=true;engine.initializeRules()}}();if(typeof(kukit)=='undefined'){var kukit={}}
kukit.E='Unknown message (kss optimized for production mode)';try{kukit.HAVE_SAFARI=navigator.vendor&&navigator.vendor.indexOf('Apple')!=-1;kukit.HAVE_IE=eval("_SARISSA_IS_IE")} catch(e){}
kukit.readCookie=function(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ') c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0) return c.substring(nameEQ.length,c.length)}
return null};kukit._null=function(){};kukit._COOKIE_LOGLEVEL='__kss_loglevel';kukit._logger=new function(){this.updateLogLevel=function(){this._setupHandlers()};this._setupHandlers=function(){this.logDebug=kukit._null;this.log=kukit._null;this.logWarning=kukit._null;this.logError=kukit._null;this.logFatal=kukit._null}}();kukit.logDebug=function(message){kukit._logger.logDebug(message)};kukit.log=function(message){kukit._logger.log(message)};kukit.logWarning=function(message){kukit._logger.logWarning(message)};kukit.logError=function(message){kukit._logger.logError(message)};kukit.logFatal=function(message){kukit._logger.logFatal(message)};kukit.setLogLevel=function(level){};kukit._logger.updateLogLevel();kukit.ut=new function(){var ut=this;ut.FifoQueue=function(){this.initialize=function(){this.reset()};this.reset=function(){this.elements=new Array()};this.push=function(obj){this.elements.push(obj)};this.pop=function(){return this.elements.shift()};this.empty=function(){return!this.elements.length};this.size=function(){return this.elements.length};this.front=function(){return this.elements[0]};this.initialize.apply(this,arguments)};ut.SortedQueue=function(){this.initialize=function(comparefunc){if(comparefunc){this.comparefunc=comparefunc}
this.reset()};this.comparefunc=function(a,b){if(a<b){return-1} else if(a>b){return+1} else{return 0}};this.reset=function(){this.elements=new Array()};this.push=function(obj){var i=0;var length=this.elements.length;while(i<length&&this.comparefunc(this.elements[i],obj)==-1){i++}
this.elements.splice(i,0,obj)};this.pop=function(){return this.elements.shift()};this.popn=function(n){return this.elements.splice(0,n)};this.empty=function(){return!this.elements.length};this.size=function(){return this.elements.length};this.get=function(n){return this.elements[n]};this.front=function(){return this.elements[0]};this.initialize.apply(this,arguments)};ut.evalBool=function(value,errname){if(value=='true'||value=='True'||value=='1'){value=true} else if(value=='false'||value=='False'||value=='0'||value==''){value=false}
return value};ut.evalInt=function(value,errname){value=parseInt(value);return value};ut.evalList=function(value,errname){value=value.replace(/^ +/,'');value=value.replace(/ +$/,'');if(value==''){value=[]} else{value=value.split(/ *, */)}
return value};ut.TimerCounter=function(){this.initialize=function(delay,func,restart){this.delay=delay;this.func=func;if(typeof(restart)=='undefined'){restart=false}
this.restart=restart;this.timer=null};this.start=function(){if(this.timer){throw new Error(kukit.E)}
var self=this;var func=function(){self.timeout()};this.timer=setTimeout(func,this.delay)};this.timeout=function(){this.func();if(this.restart){this.timer=null;this.start()}};this.clear=function(){if(this.timer){window.clearTimeout(this.timer);this.timer=null}
this.restart=false};this.initialize.apply(this,arguments)};ut.Scheduler=function(){this.initialize=function(func){this.func=func;this.timer=null;this.nextWake=null};this.setNextWake=function(ts){if(this.nextWake){this.clear()}
if(!ts){return}
var now=(new Date()).valueOf();if(ts>now){this.nextWake=ts;var self=this;var func=function(){self.timeout()};this.timer=setTimeout(func,ts-now)} else{this.func()}};this.setNextWakeAtLeast=function(ts){if(!ts||!this.nextWake||ts<this.nextWake){this.setNextWake(ts)} else{var now=(new Date()).valueOf()}};this.timeout=function(){this.timer=null;this.nextWake=null;this.func()};this.clear=function(){if(this.nextWake){window.clearTimeout(this.timer);this.timer=null;this.nextWake=null}};this.initialize.apply(this,arguments)};ut.SerializeScheduler=function(){this.initialize=function(){this.items=[];this.lock=false};this.addPre=function(func,remark){this.items.push({func:func,remark:remark});this.execute()};this.addPost=function(func,remark){this.items.unshift({func:func,remark:remark});this.execute()};this.execute=function(){if(!this.lock){this.lock=true;while(true){var item=this.items.pop();if(!item){break}
try{item.func()} catch(e){this.lock=false;throw e}}
this.lock=false}};this.initialize.apply(this,arguments)};ut.registerEventListener=function(elem,event,func){if(elem.addEventListener){elem.addEventListener(event,func,false);return true} else if(elem.attachEvent){var result=elem.attachEvent("on"+event,func);return result}
return false};if(typeof(window)!='undefined'){ut.registerEventListener(window,"load",kukit.bootstrap)}
ut.DictCollector=function(){this.initialize=function(){this.result={}};this.add=function(key,value){this.result[key]=value};this.initialize.apply(this,arguments)};ut.TupleCollector=function(){this.initialize=function(){this.result=[]};this.add=function(key,value){this.result.push([key,value])};this.initialize.apply(this,arguments)};ut.calculateBase=function(documentInstance,pageLocation){var base='';var nodes=documentInstance.getElementsByTagName("link");if(nodes.length>0){for(var i=0;i<nodes.length;i++){var link=nodes[i];if(link.rel=='kss-base-url'){var base=link.href;if(!/\/$/.test(base)){base=base+'/'}}}}
if(!base){nodes=documentInstance.getElementsByTagName("base");if(nodes.length!=0){var base=nodes[0].href} else{var base=pageLocation}}
var pieces=base.split('/');pieces.pop();base=pieces.join('/')+'/';return base}}();kukit.err=new function(){var err=this;var ErrorAnnotation=function(){this.constructError=function(e,name,message,kw){this.kw=kw;if(!e){e=new Error(kukit.E)}
e.name=name;e.info=this;return e}};var setErrorInfo=function(e,name,message,kw){return new ErrorAnnotation().constructError(e,name,message,kw)};err.explicitError=function(errorcommand){var kw={'errorcommand':errorcommand};return setErrorInfo(null,'ExplicitError',kukit.E,kw)};err.responseParsingError=function(message){return setErrorInfo(null,'ResponseParsingError',message)};err.parsingError=function(message,cursor){var kw={};return setErrorInfo(null,'ParsingError',message,kw)}}();kukit.op=new function(){var op=this;op.Oper=function(){this.initialize=function(dict){this.node=null;this.parms={};this.eventRule=null;this.binder=null;this.orignode=null;this.action=null;this.browserevent=null;this.clone=function(dict,restricted){var newoper=new kukit.op.Oper(this);newoper.unrestrictedUpdate(dict,restricted);return newoper};this.update=function(dict){this.unrestrictedUpdate(dict,true)};this.unrestrictedUpdate=function(dict,restricted){if(typeof(dict)=='undefined'){return}
for(var key in dict){var value=dict[key];if(typeof(value)!='function'){this[key]=value}}};this.unrestrictedUpdate(dict)};this.clone=function(dict,restricted){var newoper=new kukit.op.Oper(this);newoper.unrestrictedUpdate(dict,restricted);return newoper};this.update=function(dict){this.unrestrictedUpdate(dict,true)};this.unrestrictedUpdate=function(dict,restricted){if(typeof(dict)=='undefined'){return}
for(var key in dict){var value=dict[key];if(typeof(value)!='function'){this[key]=value}}};this.logDebug=function(){};this.executeClientAction=function(name){var nodes=null;for(key in this.kssParms){switch(key){case 'kssSelector':{nodes=this.kssParms[key]} break;default:{throw new Error(kukit.E)} break}}
var executeActions=kukit.actionsGlobalRegistry.get(name);if(nodes!=null){for(var i=0;i<nodes.length;i++){this.node=nodes[i];executeActions(this)}} else{executeActions(this)}};this.executeDefaultAction=function(name,optional){var namespace=this.binder.__eventNamespace__;var kssevent=kukit.eventsGlobalRegistry.get(namespace,name);var methodName=kssevent.defaultActionMethodName;var success=false;if(!methodName){} else{if(typeof(this.defaultParameters)!='undefined'){this.parms=this.defaultParameters} else{this.parms={}}
this.binder.callMethod(namespace,name,this,methodName);success=true}
return success};this.executeServerAction=function(name){for(key in this.kssParms){if(key=='kssSubmitForm'){var formQuery=this.kssParms[key];if(typeof(formQuery)=='string'){var locator=new kukit.fo.NamedFormLocator(formQuery);var collector=new kukit.ut.TupleCollector();formQuery=kukit.fo.getAllFormVars(locator,collector)}}}
var sa=new kukit.sa.ServerAction(name,this)};this.getEventName=function(){return this.eventRule.kssSelector.name};this.getEventNamespace=function(){return this.eventRule.kssSelector.namespace};this.hasExecuteActions=function(){if(this.eventRule){if(this.eventRule.actions.hasActions())
return true;var kssevent=kukit.eventsGlobalRegistry.get(this.getEventNamespace(),this.getEventName());var methodName=kssevent.defaultActionMethodName;return(typeof methodName!='undefined')} else
return false};this.makeExecuteActionsHook=function(filter){if(!this.hasExecuteActions()){return function(){}}
var eventName=this.getEventName();var self=this;var func_to_bind=function(dict){var newoper=self.clone(dict,true);if(filter&&!filter(newoper)) return false;newoper.binder.triggerEvent(eventName,newoper);return true};return func_to_bind};this.evaluateParameters=function(mandatory,defaults,errname,allow_excess){var newParameters={};for(var i=0;i<mandatory.length;i++){var next=mandatory[i];newParameters[next]=this.parms[next]}
for(var key in defaults){var val=this.parms[key];if(typeof(val)=='undefined'){newParameters[key]=defaults[key]} else{newParameters[key]=val}}
for(var key in this.parms){if(typeof(newParameters[key])=='undefined'){newParameters[key]=this.parms[key]}}
this.parms=newParameters};this.completeParms=function(mandatory,defaults,errname,allow_excess){this.evaluateParameters(mandatory,defaults,errname,allow_excess)};this.evalBool=function(key,errname){var value=this.parms[key];this.parms[key]=kukit.ut.evalBool(value,kukit.E)};this.evalInt=function(key,errname){var value=this.parms[key];this.parms[key]=kukit.ut.evalInt(value,kukit.E)};this.evalList=function(key,errname){var value=this.parms[key];this.parms[key]=kukit.ut.evalList(value,kukit.E)};this.initialize.apply(this,arguments)}}();kukit.tk=new function(){var tk=this;tk._TokenBase=function(){this.emitError=function(msg){throw new Error(kukit.E)};this.updateFinished=function(){if(!this.finished&&this.cursor.text.length==this.cursor.pos){if(this.isTopLevelParser){this.finished=true} else{this.emitError(kukit.E)}}}};tk._ParserBase=function(){this.initialize=function(){};this.emitAndReturn=function(token){this.finished=true;return token};this.nextStep=function(){var table=this.table;var cursor=this.cursor;var best_pos=cursor.text.length;var best_symbol=null;for(var symbol in table){var pos=cursor.text.indexOf(symbol,cursor.pos);if(pos!=-1&&pos<best_pos){best_pos=pos;best_symbol=symbol}};if(best_pos>cursor.pos){this.result.push(new tk.Fraction(cursor,best_pos));cursor.pos=best_pos};if(best_symbol){var tokens=table[best_symbol].call(this);if(typeof(tokens)!='undefined'){if(typeof(tokens.length)=='undefined'){tokens=[tokens]};for(var i=0;i<tokens.length;i++){this.result.push(tokens[i])}}}};this.process=function(){this.txt='';for(var i=0;i<this.result.length;i++){this.txt+=this.result[i].txt}};this.expectToken=function(context,token){var i=context.nextTokenIndex;if(token){var symbol=token.prototype.symbol;if(i>=this.result.length){this.emitError(kukit.E)} else if(this.result[i].symbol!=symbol){this.emitError(kukit.E)}} else{if(i>=this.result.length){this.emitError(kukit.E)}}
context.token=this.result[i];context.nextTokenIndex+=1};this.resultIsNullOrNotToken=function(token,currentValue){return(!token||currentValue.symbol!=token.prototype.symbol)};this.notInTokens=function(context,token1,token2,token3,token4){var i=context.nextTokenIndex;var currentValue=this.result[i];return!((i>=this.result.length)||(this.resultIsNullOrNotToken(token1,currentValue)&&this.resultIsNullOrNotToken(token2,currentValue)&&this.resultIsNullOrNotToken(token3,currentValue)&&this.resultIsNullOrNotToken(token4,currentValue)))};this.digestTxt=function(context,token1,token2,token3,token4){this.digestExactTxt(context,token1,token2,token3,token4);context.txt=this.removeWhitespacesAndTrim(context.txt)};this.digestExactTxt=function(context,token1,token2,token3,token4){var result='';while(this.notInTokens(context,token1,token2,token3,token4)){result+=this.result[context.nextTokenIndex].txt;context.nextTokenIndex++}
context.txt=result};this.removeWhitespaces=function(txt){if(txt!=' '){txt=txt.replace(/[\r\n\t ]+/g,' ')}
return txt};this.removeWhitespacesAndTrim=function(txt){txt=this.removeWhitespaces(txt);if(txt&&txt.charAt(0)==' '){txt=txt.substr(1)}
txt=txt.replace(/ $/,'');return txt}};tk._ParserBase.prototype=new tk._TokenBase();tk.Fraction=function(){this.initialize=function(cursor,endpos){this.txt=cursor.text.substring(cursor.pos,endpos);this.startpos=cursor.pos;this.endpos=cursor.pos;this.finished=true};this.initialize.apply(this,arguments)};tk.Fraction.prototype.symbol='fraction';tk.mkToken=function(symbol,txt){f=function(cursor){this.cursor=cursor;this.startpos=cursor.pos;if(cursor.text.substr(cursor.pos,txt.length)!=txt){this.emitError(kukit.E)} else{cursor.pos+=txt.length;this.finished=true}
this.endpos=cursor.pos};f.prototype=new tk._TokenBase();f.prototype.symbol=symbol;f.prototype.txt=txt;return f};tk.mkParser=function(symbol,table,_class){f=function(cursor,tokenClass,isTopLevelParser){this.table=table;this.cursor=cursor;this.startpos=cursor.pos;this.finished=false;this.isTopLevelParser=isTopLevelParser;this.result=[];if(tokenClass){this.result.push(new tokenClass(this.cursor))}
this.updateFinished();while(!this.finished){this.nextStep();this.updateFinished()}
this.endpos=cursor.pos;this.initialize.apply(this,arguments);this.process()};f.prototype=new tk._ParserBase();var _prototype=new _class();for(key in _prototype){f.prototype[key]=_prototype[key]}
f.prototype.symbol=symbol;return f};tk.Cursor=function(){this.initialize=function(txt){this.text=txt;this.pos=0};this.makeMarker=function(pos){var cursor=new tk.Cursor();cursor.text=this.text;cursor.pos=pos;cursor.calcRowCol();return cursor};this.getRowCol=function(pos){if(typeof(pos)=='undefined'){pos=this.pos}
var index=0;var row=1;var next=0;while(true){next=this.text.indexOf('\n',index);if(next==-1||next>=pos){break}
index=next+1;row+=1}
var col=pos-index+1;return{'row':row,'col':col}};this.calcRowCol=function(pos){var rowcol=this.getRowCol();this.row=rowcol.row;this.col=rowcol.col};this.initialize.apply(this,arguments)}}();kukit.pr=new function(){var pr=this;pr.ValueProviderRegistry=function(){this.initialize=function(){this.content={}};this.register=function(name,func,returnType){if(typeof(func)=='undefined'){throw new Error(kukit.E)}
this.content[name]=func;func.prototype.returnType=returnType};this.exists=function(name){var entry=this.content[name];return(typeof(entry)!='undefined')};this.get=function(name){var func=this.content[name];if(!func){throw new Error(kukit.E)}
return func};this.initialize.apply(this,arguments)}}();kukit.dummy=new function(){var _IdentityPP=function(){this.check=function(args){};this.eval=function(args,node){return args[0]}};var _FormVarPP=function(){this.check=function(args){};this.eval=function(args,node){return kukit.fo.getFormVar(new kukit.fo.NamedFormLocator(args[0]),args[1])}};var _CurrentFormVarPP=function(){this.check=function(args){};this.eval=function(args,node){if(args.length==1){return kukit.fo.getFormVar(new kukit.fo.CurrentFormLocator(node),args[0])} else{return kukit.fo.getValueOfFormElement(node)}}};var _CurrentFormVarFromKssAttrPP=function(){this.check=function(args){};this.eval=function(args,node){var argname=args[0];var recurseParents=false;if(args.length==2){recurseParents=kukit.ut.evalBool(args[1],kukit.E)}
var formvarname=kukit.dom.getRecursiveAttribute(node,argname,recurseParents,kukit.dom.getKssAttribute);return kukit.fo.getFormVar(new kukit.fo.CurrentFormLocator(node),formvarname)}};var _NodeAttrPP=function(){this.check=function(args){};this.eval=function(args,node){var argname=args[0]};this.eval=function(args,node){var argname=args[0];var recurseParents=false;if(args.length==2){recurseParents=args[1];recurseParents=kukit.ut.evalBool(recurseParents,kukit.E)}
return kukit.dom.getRecursiveAttribute(node,argname,recurseParents,kukit.dom.getAttribute)}};var _KssAttrPP=function(){this.check=function(args){};this.eval=function(args,node){var argname=args[0];var recurseParents=false};this.eval=function(args,node){var argname=args[0];var recurseParents=false;if(args.length==2){recurseParents=args[1];recurseParents=kukit.ut.evalBool(recurseParents,kukit.E)}
return kukit.dom.getRecursiveAttribute(node,argname,recurseParents,kukit.dom.getKssAttribute)}};var _NodeContentPP=function(){this.check=function(args){};this.eval=function(args,node){var recursive=false;if(args.length==1){recursive=args[0]}
return kukit.dom.textContent(node,recursive)}};var _StateVarPP=function(){this.check=function(args){};this.eval=function(args,node){var key=args[0];var value=kukit.engine.stateVariables[key];if(typeof(value)=='undefined'){throw new Error(kukit.E)}
return value}};var _PassPP=function(){this.check=function(args){};this.eval=function(args,node,defaultParameters){var key=args[0];var value=defaultParameters[key];if(typeof(value)=='undefined'){throw new Error(kukit.E)}
return value}};var _UrlPP=function(){this.check=function(args){}};_UrlPP.prototype=new _IdentityPP();var _AliasPP=function(){this.check=function(args){}};_AliasPP.prototype=new _IdentityPP();kukit.pprovidersGlobalRegistry=new kukit.pr.ValueProviderRegistry();kukit.pprovidersGlobalRegistry.register('',_IdentityPP);kukit.pprovidersGlobalRegistry.register('currentFormVar',_CurrentFormVarPP);kukit.pprovidersGlobalRegistry.register('currentFormVarFromKssAttr',_CurrentFormVarFromKssAttrPP);kukit.pprovidersGlobalRegistry.register('formVar',_FormVarPP);kukit.pprovidersGlobalRegistry.register('kssAttr',_KssAttrPP);kukit.pprovidersGlobalRegistry.register('stateVar',_StateVarPP);kukit.pprovidersGlobalRegistry.register('pass',_PassPP);kukit.pprovidersGlobalRegistry.register('nodeContent',_NodeContentPP);kukit.pprovidersGlobalRegistry.register('nodeAttr',_NodeAttrPP);kukit.pprovidersGlobalRegistry.register('url',_UrlPP,'url');kukit.pprovidersGlobalRegistry.register('alias',_AliasPP,'alias')}();kukit.rd=new function(){var rd=this;rd.KssSelector=function(){this.initialize=function(isEvent,css,name,namespace,id,ppid){this.isEventSelector=isEvent;this.isMethodSelector=!isEvent;this.css=css;this.name=name;this.namespace=namespace;this.className=null;this.id=id;this.ppid=ppid;this.setClassName()};this.setClassName=function(){try{this.className=kukit.eventsGlobalRegistry.get(this.namespace,this.name).className} catch(e){throw kukit.err.parsingError(e.message)}};this.prepareId=function(){if(this.ppid==null){if(this.id==null&&this.ppid==null){this.id=kukit.er.makeId(this.namespace,this.className)}
this.mergeId=kukit.er.makeMergeId(this.id,this.namespace,this.name)}};this.getId=function(node){if(this.id){return this.id} else{var id=this.ppid.pprovider.eval(this.ppid.args,node,{});if(!id){}
return id}};this.getMergeId=function(node){if(this.mergeId){return this.mergeId} else{var id=this.getId(node);this.mergeId=kukit.er.makeMergeId(id,this.namespace,this.name)}};this.initialize.apply(this,arguments)};rd.KssTextValue=function(txt){this.initialize=function(txt){this.txt=txt};this.check=function(registry){this.pprovider=new(kukit.pprovidersGlobalRegistry.get(''))()};this.evaluate=function(node,defaultParameters){return this.pprovider.eval([this.txt],node,defaultParameters)};this.initialize.apply(this,arguments)};rd.KssTextValue.prototype.isMethod=false;rd.KssMethodValue=function(){this.initialize=function(methodName,args){this.methodName=methodName;this.args=args};this.check=function(registry){var f=kukit.pprovidersGlobalRegistry.get(this.methodName);this.pprovider=new f();for(var i=0;i<this.args.length;i++){var arg=this.args[i];if(arg.check){arg.check()}}};this.evaluate=function(node,defaultParameters){var newArgs=[];for(var i=0;i<this.args.length;i++){var arg=this.args[i];if(arg.evaluate){newArgs.push(arg.evaluate(node,defaultParameters))} else{newArgs.push(arg)}}
return this.pprovider.eval(newArgs,node,defaultParameters)};this.initialize.apply(this,arguments)};rd.KssMethodValue.prototype.isMethod=true;rd.KssEventValue=function(methodName,arg){this.methodName=methodName;this.arg=arg;this.check=function(){}};rd.KssEventValue.prototype.isMethod=true;rd.EventRuleNr=0;rd.EventRule=function(){this.initialize=function(kssSelector,parms,actions){if(typeof(parms)=='undefined'){this.kssSelector=kssSelector} else{this.index=rd.EventRuleNr;this.mergedIndex=null;rd.EventRuleNr=this.index+1;this.kssSelector=kssSelector;this.parms=parms;this.actions=actions}};this.getIndex=function(){if(this.mergedIndex){return this.mergedIndex} else{return this.index}};this.mergeForSelectedNodes=function(ruletable,phase,inNodes){if(this.kssSelector.isEventSelector){var nodes=kukit.dom.cssQuery(this.kssSelector.css,inNodes);var counter=0;for(var y=0;y<nodes.length;y++){var node=nodes[y];if(typeof(node._kukitMark)=='undefined'){ruletable.add(node,this);counter+=1}}} else if(typeof(inNodes)=='undefined'){kukit.engine.documentRules.add(this)}};this.getBinderInfo=function(node){var id=this.kssSelector.getId(node);return kukit.engine.binderInfoRegistry.getOrCreateBinderInfo(this.kssSelector.id,this.kssSelector.className,this.kssSelector.namespace)};this.bind=function(node){this.store(node);var oper=new kukit.op.Oper();var binderInfo=this.getBinderInfo(node);oper.node=node;oper.eventRule=this;oper.binder=binderInfo.binder;oper.parms=this.parms;binderInfo.bindOper(oper)};this.store=function(node){if(node==null){return}
if(typeof(node.kukitEventRules)=='undefined'){var rules=[];node.kukitEventRules=rules}
node.kukitEventRules.push(this)};this.isMerged=function(){return(this.mergedIndex!=null)};this.cloneForMerge=function(){var merged=new rd.EventRule(this.kssSelector);merged.actions=new rd.ActionSet();merged.parms={};merged.mergedIndex='X';merged.merge(this);merged.mergedIndex=this.getIndex();return merged};this.merge=function(other){this.mergedIndex=this.mergedIndex+','+other.getIndex();for(var key in other.parms){this.parms[key]=other.parms[key]}
this.actions.merge(other.actions)};this.mergeIntoDict=function(dict,key){var mergedRule=dict[key];if(typeof(mergedRule)=='undefined'){dict[key]=this} else{if(!mergedRule.isMerged()){mergedRule=mergedRule.cloneForMerge();dict[key]=mergedRule}
mergedRule.merge(this)}};this.initialize.apply(this,arguments)};rd.ActionSet=function(){this.initialize=function(){this.content={}};this.hasActions=function(){for(var name in this.content){return true}
return false};this.merge=function(other){for(var key in other.content){var action=this.content[key];var action2=other.content[key];if(typeof(action)=='undefined'){if(action2.type!='X'){action=new _Action();this.content[key]=action} else{throw new Error(kukit.E)}}
if(action2.type!='X'){action.merge(action2)} else{this.deleteAction(key)}}};this.execute=function(oper){for(var key in this.content){var action=this.content[key];if(action.type!='E'){action.execute(oper)}}
if(typeof(this.content['default'])=='undefined'){var name=oper.eventRule.kssSelector.name;oper=oper.clone({'parms':{}});oper.executeDefaultAction(name,true)}};this.getOrCreateAction=function(name,valuesByReturnType){var nameOverride;if(valuesByReturnType.alias){nameOverride=name;name=valuesByReturnType.alias.args[0]}
var action=this.content[name];if(typeof(action)=='undefined'){action=new _Action();action.setName(name,nameOverride);this.content[name]=action}
if(valuesByReturnType.selection){action.parms.kssSelector=valuesByReturnType.selection}
if(valuesByReturnType.formquery){action.parms.kssSubmitForm=valuesByReturnType.formquery}
if(valuesByReturnType.url){action.parms.kssUrl=valuesByReturnType.url}
return action};this.getActionOrNull=function(name){var action=this.content[name];if(typeof(action)=='undefined'){action=null}
return action};this.deleteAction=function(name){var action=this.content[name];delete this.content[name]};this.getDefaultAction=function(){return this.getActionOrNull('default')};this.getErrorActionFor=function(action){return this.getActionOrNull(action.error)};this.initialize.apply(this,arguments)};var _Action=function(){this.initialize=function(){this.name=null;this.error=null;this.parms={};this.type=null;this.nameOverride=null};this.getExecutingName=function getExecutingName(){return this.nameOverride||this.name};this.setName=function(name,nameOverride){if(typeof(nameOverride)=='undefined'||name==nameOverride){nameOverride=null}
this.name=name;if(nameOverride!=null){this.nameOverride=nameOverride}
if(name=='default'){this.setType('D')}};this.setType=function(type){this.type=type};this.setError=function(error){this.error=error};this.merge=function(other){if(other.name!=null){this.setName(other.name,other.nameOverride)}
if(other.type!=null){this.setType(other.type)}
if(other.error!=null){this.setError(other.error)}
for(var key in other.parms){this.parms[key]=other.parms[key]}};var _defaultStringHandling={'kssSelector':'css','kssSubmitForm':'form'};this.makeActionOper=function(oper){var parms={};var kssParms={};if(typeof(oper.defaultParameters)=='undefined'){oper.defaultParameters={}}
for(var key in this.parms){var value=this.parms[key].evaluate(oper.node,oper.defaultParameters);var providerName=_defaultStringHandling[key];if(providerName&&typeof(value)=='string'){var providerClass=kukit.pprovidersGlobalRegistry.get(providerName);var provider=new providerClass();value=provider.eval([value],oper.node,oper.defaultParameters)}
if(key.match(/^kss/)){kssParms[key]=value} else{parms[key]=value}}
var anOper=oper.clone({'parms':parms,'kssParms':kssParms,'action':this});return anOper};this.execute=function(oper){oper=this.makeActionOper(oper);switch(this.type){case 'D':{var name=oper.eventRule.kssSelector.name;oper.executeDefaultAction(name)} break;case 'S':{oper.executeServerAction(this.name)} break;case 'C':{oper.executeClientAction(this.getExecutingName())} break;case 'E':{oper.executeClientAction(this.name)} break}};this.initialize.apply(this,arguments)};rd.LoadActions=function(){this.initialize=function(){this.items=[]};this.empty=function(){return(this.size()==0)};this.size=function(){return this.items.length};this.push=function(f){if(this.items.length>=100){throw('Infinite recursion, stack full')}
this.items.push(f)};this.execute=function(){var f=this.items.shift();if(f){f();return true} else{return false}};this.executeAll=function(){var i=0;while(true){var success=this.execute();if(!success){break}
i++}
return i};this.initialize.apply(this,arguments)};rd.RuleTable=function(){this.initialize=function(loadScheduler){this.loadScheduler=loadScheduler;this.nodes={}};this.add=function(node,eventRule){var nodehash=rd.hashNode(node);var nodeval=this.nodes[nodehash];if(typeof(nodeval)=='undefined'){nodeval={'node':node,'val':{}};this.nodes[nodehash]=nodeval}
eventRule.mergeIntoDict(nodeval.val,eventRule.kssSelector.getMergeId(node))};this.bindall=function(phase){var counter=0;for(var nodehash in this.nodes){var nodeval=this.nodes[nodehash];nodeval.node._kukitMark=phase;for(var id in nodeval.val){var eventRule=nodeval.val[id];eventRule.bind(nodeval.node)}
counter+=1}
var loadactions=this.loadScheduler;if(!loadactions.empty()){var count=loadactions.executeAll()}};this.initialize.apply(this,arguments)};rd.uid=0;rd.hashNode=function(node){if(node==null){return '<<DOCUMENT>>'}
var id=node.uniqueID;if(typeof(id)=='undefined'){id=rd.uid;node.uniqueID=id;rd.uid++}
return id};rd.MethodTable=function(){this.initialize=function(){this.content={};this.content['document']={};this.content['behaviour']={}};this.add=function(eventRule){var category=eventRule.kssSelector.css;var dict=this.content[category];eventRule.mergeIntoDict(dict,eventRule.kssSelector.getMergeId())};this.getMergedRule=function(category,name,binder){var dict=this.content[category];var namespace=binder.__eventNamespace__;var id=binder.__binderId__;var mergeId=kukit.er.makeMergeId(id,namespace,name);var mergedRule=dict[mergeId];if(typeof(mergedRule)=='undefined'){mergedRule=null}
return mergedRule};this.bindall=function(){var documentRules=this.content['document'];var counter=0;for(var mergeId in documentRules){documentRules[mergeId].bind(null);counter+=1}};this.initialize.apply(this,arguments)}}();kukit.kssp=new function(){var kssp=this;kssp.openComment=kukit.tk.mkToken('openComment',"\/\*");kssp.closeComment=kukit.tk.mkToken('closeComment',"\*\/");kssp.openBrace=kukit.tk.mkToken('openBrace',"{");kssp.closeBrace=kukit.tk.mkToken('closeBrace',"}");kssp.openBracket=kukit.tk.mkToken('openBracket',"[");kssp.closeBracket=kukit.tk.mkToken('closeBracket',"]");kssp.openParent=kukit.tk.mkToken('openParent',"(");kssp.closeParent=kukit.tk.mkToken('closeParent',")");kssp.semicolon=kukit.tk.mkToken('semicolon',";");kssp.colon=kukit.tk.mkToken('colon',":");kssp.quote=kukit.tk.mkToken('quote',"'");kssp.dquote=kukit.tk.mkToken('dquote','"');kssp.backslash=kukit.tk.mkToken('backslash','\x5c');kssp.comma=kukit.tk.mkToken('comma',",");kssp.equals=kukit.tk.mkToken('equals',"=");var _emitAndReturn=function(){return this.emitAndReturn()};var _mkEmitAndReturnToken=function(klass){return function(){var token=new klass(this.cursor);return this.emitAndReturn(token)}};var _mkReturnToken=function(klass){return function(){return new klass(this.cursor)}};var _returnComment=function(){return new kssp.Comment(this.cursor,kssp.openComment)};var _returnString=function(){return new kssp.String(this.cursor,kssp.quote)};var _returnString2=function(){return new kssp.String2(this.cursor,kssp.dquote)};var _returnMethodArgs=function(){return new kssp.MethodArgs(this.cursor,kssp.openParent)};var _returnBackslashed=function(){return new kssp.Backslashed(this.cursor,kssp.backslash)};var _Document=function(){this.process=function(){this.eventRules=[];var context={'nextTokenIndex':0};while(context.nextTokenIndex<this.result.length){this.digestTxt(context,kukit.tk.Fraction,kssp.Comment);var key=context.txt;if(!key){break}
this.expectToken(context,kssp.Block);var block=context.token;var rules=block.parseSelectors(key);this.addRules(rules)}
this.result=[];this.txt=''};this.addRules=function(rules){for(var i=0;i<rules.length;i++){this.eventRules.push(rules[i])}}};kssp.Document=kukit.tk.mkParser('document',{"\/\*":_returnComment,"{": function(){return new kssp.Block(this.cursor,kssp.openBrace)}},_Document);var _Comment=function(){this.process=function(){this.result=[];this.txt=' '}};kssp.Comment=kukit.tk.mkParser('comment',{"\*\/":_mkEmitAndReturnToken(kssp.closeComment)},_Comment);var _Block=function(){this.process=function(){this.eventFullNames={};this.actions=new kukit.rd.ActionSet();var context={'nextTokenIndex':1};while(context.nextTokenIndex<this.result.length-1){this.digestTxt(context,kukit.tk.Fraction,kssp.Comment);var key=context.txt;if(!key){break}
this.expectToken(context,kssp.colon);this.expectToken(context,kssp.MultiPropValue);this.addDeclaration(key,context.token.values);if(context.nextTokenIndex==this.result.length-1) break;this.expectToken(context,kssp.semicolon)}
this.result=[];this.txt=''};this.parseSelectors=function(key){var cursor=new kukit.tk.Cursor(key+' ');var parser=new kssp.KssSelectors(cursor,null,true);var results=[];var hasFullNames=false;for(var eventFullName in this.eventFullNames){var hasFullNames=true;var found=false;for(var i=0;i<parser.selectors.length;++i){var fullName='';var kssSelector=parser.selectors[i];if(kssSelector.namespace){fullName=kssSelector.namespace+'-'}
fullName+=kssSelector.name;if(fullName==eventFullName){var eventParameters=this.eventFullNames[fullName];var eventRule;if(typeof(eventParameters)!='undefined'){eventRule=new kukit.rd.EventRule(kssSelector,eventParameters,this.actions)}
else{eventRule=new kukit.rd.EventRule(kssSelector,{},this.actions)}
results.push(eventRule);found=true}}
if(!found){this.emitError(kukit.E)}}
if(!hasFullNames){for(var i=0;i<parser.selectors.length;++i){var kssSelector=parser.selectors[i];eventRule=new kukit.rd.EventRule(kssSelector,{},this.actions);results.push(eventRule)}}
return results};this.addEventDeclaration=function(key,splitkey,values){var eventNamespace;var eventName;var eventKey;var eventFullName;if(splitkey.length==3){eventName=splitkey[1];eventKey=splitkey[2];eventFullName=eventName} else{eventNamespace=splitkey[1];eventName=splitkey[2];eventKey=splitkey[3];eventFullName=eventNamespace+'-'+eventName}
var allowedReturnTypes;var value=this.preprocessValues(values,allowedReturnTypes,kukit.E).string;var eventParameters=this.eventFullNames[eventFullName];if(typeof(eventParameters)=='undefined'){this.eventFullNames[eventFullName]={};eventParameters=this.eventFullNames[eventFullName]}
eventParameters[eventKey]=value.txt};this.addActionDeclaration=function(key,splitkey,values){var atab={'server':'S','client':'C','cancel':'X'};var actionType=atab[splitkey[1]];var allowedReturnTypes;var valuesByReturnType=this.preprocessValues(values,allowedReturnTypes,kukit.E);var value=valuesByReturnType.string;var action=this.actions.getOrCreateAction(value.txt,valuesByReturnType);if(actionType=='X'&&action.type!=null){this.actions.deleteAction(value.txt)} else{action.setType(actionType)}};this.addActionError=function(action,key,values){var allowedReturnTypes;var value=this.preprocessValues(values,allowedReturnTypes,kukit.E).string;action.setError(value.txt);var err_action=this.actions.getOrCreateAction(value.txt,{});err_action.setType('E')};this.addActionParameter=function(action,key,values){var value;if(key.substr(0,3)=='kss'){value=values[0];this.preprocessValues(values,allowedReturnTypes,kukit.E,true)} else{var allowedReturnTypes;var valuesByReturnType=this.preprocessValues(values,allowedReturnTypes,kukit.E);value=valuesByReturnType.string}
action.parms[key]=value};this.addDeclaration=function(key,values){var splitkey=key.split('-');var name=splitkey[0];if(name=='evt'){this.addEventDeclaration(key,splitkey,values)} else if(name=='action'){this.addActionDeclaration(key,splitkey,values)} else{var actionName;var actionKey;if(splitkey.length==2){actionName=splitkey[0];actionKey=splitkey[1]} else{actionName=splitkey[0]+'-'+splitkey[1];actionKey=splitkey[2]}
var action=this.actions.getOrCreateAction(actionName,{});if(actionKey=='error'){this.addActionError(action,key,values)} else{this.addActionParameter(action,actionKey,values)}}};this.preprocessValues=function(values,allowedReturnTypes,errInfo,noStringRequired){var valuesByReturnType={};for(var i=0;i<values.length;i++){var value=values[i];try{value.check()} catch(e){this.emitError(kukit.E)}
var returnType=(typeof(value.pprovider)!='undefined')&&value.pprovider.returnType;if(!returnType){returnType='string'}
valuesByReturnType[returnType]=value}
return valuesByReturnType}};kssp.Block=kukit.tk.mkParser('block',{";":_mkReturnToken(kssp.semicolon),":": function(){return [new kssp.colon(this.cursor),new kssp.MultiPropValue(this.cursor)]},"}":_mkEmitAndReturnToken(kssp.closeBrace)},_Block);var _PropValue=function(){this.process=function(){this.values=[];var context={'nextTokenIndex':0};this.txt='';var txtCarry='';while(context.nextTokenIndex<this.result.length){if(this.notInTokens(context,kukit.kssp.String)){if(txtCarry){this.produceTxt(txtCarry);txtCarry=''}
this.expectToken(context,kukit.kssp.String);this.produceTxt(context.token.txt)} else if(this.notInTokens(context,kukit.kssp.MethodArgs)){if(!txtCarry){this.emitError(kukit.E)}
this.expectToken(context,kukit.kssp.MethodArgs);this.addValue(new kukit.rd.KssMethodValue(txtCarry,context.token.args),txtCarry);txtCarry=''} else{this.digestTxt(context,kukit.tk.Fraction,kukit.kssp.Comment);var words=context.txt.split(' ');if(txtCarry){this.produceTxt(txtCarry);txtCarry=''}
if(words.length>0){for(var i=0;i<words.length-1;i++){this.produceTxt(words[i])}
txtCarry=words[words.length-1]}}}
if(txtCarry){this.produceTxt(txtCarry)}
this.result=[]};this.initialize=function(){this.multiword_allowed=false;this.valueClass=kukit.rd.KssMethodValue};this.produceTxt=function(txt){this.addValue(new kukit.rd.KssTextValue(txt),txt)};this.addValue=function(value,errInfo){if(this.value){this.emitError(kukit.E)}
this.value=value};this.initialize.apply(this,arguments)};kssp.PropValue=kukit.tk.mkParser('propValue',{";":_emitAndReturn,"}":_emitAndReturn,")":_emitAndReturn,"]":_emitAndReturn,",":_emitAndReturn,"'":_returnString,'"':_returnString2,"\/\*":_returnComment,"(":_returnMethodArgs},_PropValue);var _MultiPropValue=function(){this.addValue=function(value,errInfo){this.values.push(value)};this.initialize=function(){this.multiword_allowed=true}};_MultiPropValue.prototype=new _PropValue();kssp.MultiPropValue=kukit.tk.mkParser('multiPropValue',{";":_emitAndReturn,"}":_emitAndReturn,")":_emitAndReturn,",":_emitAndReturn,"'":_returnString,'"':_returnString2,"\/\*":_returnComment,"(":_returnMethodArgs},_MultiPropValue);var _EventValue=function(){this.initialize=function(){this.multiword_allowed=false};this.process=function(){var context={'nextTokenIndex':0};this.digestTxt(context,kukit.tk.Fraction,kssp.Comment);this.txt='';var txt=context.txt;if(this.notInTokens(context,kssp.String)){if(txt){this.emitError(kukit.E)}
this.expectToken(context,kssp.String);this.produceTxt(context.token.txt)} else if(this.notInTokens(context,kssp.openParent)){this.expectToken(context,kssp.openParent);this.expectToken(context,kssp.PropValue);this.value=new kukit.rd.KssEventValue(txt,context.token.value);this.digestTxt(context,kukit.tk.Fraction,kssp.Comment);if(context.txt){this.emitError(kukit.E)}
this.expectToken(context,kssp.closeParent)} else{if(!this.multiword_allowed&&txt.indexOf(' ')!=-1){this.emitError(kukit.E)}
this.produceTxt(txt)}
if(context.nextTokenIndex<this.result.length){this.digestTxt(context,kukit.tk.Fraction,kssp.Comment);if(context.nextTokenIndex<this.result.length||context.txt){this.emitError(kukit.E)}}
this.result=[]};this.produceTxt=function(txt){this.value=new kukit.rd.KssEventValue(txt,null)};this.initialize.apply(this,arguments)};kssp.EventValue=kukit.tk.mkParser('propValue',{"{":_emitAndReturn," ":_emitAndReturn,"\t":_emitAndReturn,"\n":_emitAndReturn,"\r":_emitAndReturn,"\/\*":_emitAndReturn,":":_emitAndReturn,"(": function(){return [new kssp.openParent(this.cursor),new kssp.PropValue(this.cursor)]},")":_mkEmitAndReturnToken(kssp.closeParent)},_EventValue);var _String=function(){this.process=function(){this.txt='';for(var i=1;i<this.result.length-1;i++){this.txt+=this.result[i].txt}}};kssp.String=kukit.tk.mkParser('string',{"'":_mkEmitAndReturnToken(kssp.quote),'\x5c':_returnBackslashed},_String);kssp.String2=kukit.tk.mkParser('string',{'"':_mkEmitAndReturnToken(kssp.dquote),'\x5c':_returnBackslashed},_String);var _StringInSelector=function(){this.process=function(){this.txt='';for(var i=0;i<this.result.length;i++){this.txt+=this.result[i].txt}}};kssp.StringInSelector=kukit.tk.mkParser('string',{"'":_mkEmitAndReturnToken(kssp.quote),'\x5c':_returnBackslashed},_StringInSelector);kssp.String2InSelector=kukit.tk.mkParser('string',{'"':_mkEmitAndReturnToken(kssp.dquote),'\x5c':_returnBackslashed},_StringInSelector);var _Backslashed=function(){this.nextStep=function(table){var cursor=this.cursor;var length=cursor.text.length;if(length<cursor.pos+1){this.emitError(kukit.E)} else{this.result.push(new kukit.tk.Fraction(cursor,cursor.pos+1));this.cursor.pos+=1;this.finished=true}};this.process=function(){this.txt=this.result[1].txt}};kssp.Backslashed=kukit.tk.mkParser('backslashed',{},_Backslashed);var _MethodArgs=function(){this.process=function(){this.args=[];var context={'nextTokenIndex':1};while(context.nextTokenIndex<this.result.length-1){this.digestTxt(context,kukit.tk.Fraction,kssp.Comment);var value=context.txt;if(!value){if(context.nextTokenIndex==this.result.length-1) break;this.expectToken(context,kssp.String);value=context.token.txt} else{if(value.indexOf(' ')!=-1){this.emitError(kukit.E)}}
var valueClass;var args;var providedValue;if(this.notInTokens(context,kssp.MethodArgs)){this.expectToken(context,kssp.MethodArgs);valueClass=kukit.rd.KssMethodValue;args=context.token.args;providedValue=new valueClass(value,args)} else{providedValue=value}
this.args.push(providedValue);if(context.nextTokenIndex==this.result.length-1) break;this.expectToken(context,kssp.comma)}
this.result=[];this.txt=''}};kssp.MethodArgs=kukit.tk.mkParser('methodargs',{"'":_returnString,'"':_returnString2,",":_mkReturnToken(kssp.comma),")":_mkEmitAndReturnToken(kssp.closeParent),"(":_returnMethodArgs,"\/\*":_returnComment},_MethodArgs);var _KssSelectors=function(){this.process=function(){this.selectors=[];var context={'nextTokenIndex':0};while(context.nextTokenIndex<this.result.length){this.digestTxt(context,kukit.tk.Fraction,kssp.Comment,kssp.String,kssp.String2);var cursor=new kukit.tk.Cursor(context.txt+' ');var parser=new kssp.KssSelector(cursor,null,true);this.selectors.push(parser.kssSelector);if(context.nextTokenIndex==this.result.length) break;this.expectToken(context,kssp.comma);if(context.nextTokenIndex==this.result.length){this.emitError(kukit.E)}};this.result=[];this.txt=''}};kssp.KssSelectors=kukit.tk.mkParser('kssselectors',{"'": function(){return new kssp.StringInSelector(this.cursor,kssp.quote)},'"': function(){return new kssp.String2InSelector(this.cursor,kssp.dquote)},",":_mkReturnToken(kssp.comma),"{":_emitAndReturn,"\/\*":_returnComment},_KssSelectors);var _KssSelector=function(){this.process=function(){var name;var namespace=null;var id=null;var tokenIndex=this.result.length-1;var cycle=true;while(cycle&&tokenIndex>=0){var token=this.result[tokenIndex];switch(token.symbol){case kukit.tk.Fraction.prototype.symbol:{if(token.txt.match(/^[\r\n\t ]*$/)!=null){tokenIndex-=1} else{this.emitError(kukit.E)}} break;case kssp.Comment.prototype.symbol:{tokenIndex-=1} break;default:{cycle=false} break}}
tokenIndex-=2;if(tokenIndex<0||(this.result[tokenIndex+2].symbol!=kssp.EventValue.prototype.symbol)||(this.result[tokenIndex+1].symbol!=kssp.colon.prototype.symbol)||(this.result[tokenIndex].symbol!=kukit.tk.Fraction.prototype.symbol)){this.emitError(kukit.E)}
var lasttoken=this.result[tokenIndex];var commatoken=this.result[tokenIndex+1];var pseudotoken=this.result[tokenIndex+2];var txt=lasttoken.txt;if(txt.match(/[\r\n\t ]$/)!=null){this.emitError(kukit.E)}
if(!pseudotoken.value.methodName){this.emitError(kukit.E)}
css=this.cursor.text.substring(this.startpos,commatoken.startpos);var singleword=css.replace(/[\r\n\t ]/g,' ');if(singleword&&singleword.charAt(0)==' '){singleword=singleword.substring(1)}
var isEvent=(singleword!='document'&&singleword!='behaviour');if(!isEvent){css=singleword}
var id=null;var ppid=null;if(pseudotoken.value.arg){if(pseudotoken.value.arg.isMethod){ppid=pseudotoken.value.arg;ppid.check(kukit.pprovidersGlobalRegistry)} else{id=pseudotoken.value.arg.txt}}
var name=pseudotoken.value.methodName;var splitname=name.split('-');var namespace=null;if(splitname.length>2){this.emitError(kukit.E)} else if(splitname.length==2){name=splitname[1];namespace=splitname[0]}
this.kssSelector=new kukit.rd.KssSelector(isEvent,css,name,namespace,id,ppid,kukit.eventsGlobalRegistry);this.txt='';this.result=[]}};kssp.KssSelector=kukit.tk.mkParser('kssselector',{":": function(){return [new kssp.colon(this.cursor),new kssp.EventValue(this.cursor)]},"{":_emitAndReturn,"\/\*":_returnComment},_KssSelector);kssp.KssRuleProcessor=function(href){this.initialize=function(){this.href=href;this.loaded=false;this.rules=[]};this.load=function(){var domDoc=new XMLHttpRequest();domDoc.open("GET",this.href,false);domDoc.send(null);this.txt=domDoc.responseText;this.loaded=true};this.parse=function(){var cursor=new kukit.tk.Cursor(this.txt);var parser=new kssp.Document(cursor,null,true);for(var i=0;i<parser.eventRules.length;i++){var rule=parser.eventRules[i];rule.kssSelector.prepareId();this.rules.push(rule)}};this.initialize.apply(this,arguments)}}();kukit.er=new function(){var er=this;var _eventClassCounter=0;var _EventRegistry=function(){this.initialize=function(){this.content={};this.classes={};this.eventSets=[]};this.registerBinder=function(klass){if(typeof(klass)=='undefined'){throw new Error(kukit.E)}
if(klass.__decorated_for_kss__){return}
var binder_prototype=new _EventBinder();for(var key in binder_prototype){klass.prototype[key]=binder_prototype[key]}
className=''+_eventClassCounter;_eventClassCounter+=1;klass.prototype.__className__=className;this.classes[className]=klass;klass.__decorated_for_kss__=true};this.existsBinder=function(className){var klass=this.classes[className];return(typeof(klass)!='undefined')};this.getBinderClass=function(className){var klass=this.classes[className];if(!klass){throw new Error(kukit.E)}
return klass};this._register=function(namespace,eventName,klass,bindMethodName,defaultActionMethodName,iterName){if(typeof(defaultActionMethodName)=='undefined'){throw new Error(kukit.E)}
this.registerBinder(klass);if(!eventName){throw new Error(kukit.E)}
var key=this._getKey(namespace,eventName);var entry=this.content[key];if(typeof(entry)!='undefined'){if(key[0]=='-'){key=key.substring(1)}
throw new Error(kukit.E)}
if(!er.getBindIterator(iterName)){throw new Error(kukit.E)}
this.content[key]={'className':className,'bindMethodName':bindMethodName,'defaultActionMethodName':defaultActionMethodName,'iterName':iterName}};this._registerEventSet=function(namespace,names,iterName,bindMethodName){this.eventSets.push({'namespace':namespace,'names':names,'iterName':iterName,'bindMethodName':bindMethodName})};this.register=function(namespace,eventName,klass,bindMethodName,defaultActionMethodName){this._register(namespace,eventName,klass,bindMethodName,defaultActionMethodName,'EachLegacy');this._registerEventSet(namespace,[eventName],'EachLegacy',bindMethodName)};this.unregister=function(namespace,eventName){var key=this._getKey(namespace,eventName);delete this.content[key];var found=null;for(var i=0;i<this.eventSets.length;i++){var eventSet=this.eventSets[i];if(eventSet['namespace']==namespace){found=i;break}}
if(found!=null){this.eventSets.splice(found,1)}};this.registerForAllEvents=function(namespace,eventNames,klass,bindMethodName,defaultActionMethodName,iterName){if(typeof(eventNames)=='string'){eventNames=[eventNames]}
for(var i=0;i<eventNames.length;i++){var eventName=eventNames[i];this._register(namespace,eventName,klass,bindMethodName,defaultActionMethodName,iterName)}
this._registerEventSet(namespace,eventNames,iterName,bindMethodName)};this._getKey=function(namespace,eventName){if(namespace==null){namespace=''} else if(namespace.split('-')>1){throw new Error(kukit.E)}
return namespace+'-'+eventName};this.exists=function(namespace,eventName){var key=this._getKey(namespace,eventName);var entry=this.content[key];return(typeof(entry)!='undefined')};this.get=function(namespace,eventName){var key=this._getKey(namespace,eventName);var entry=this.content[key];if(typeof(entry)=='undefined'){throw new Error(kukit.E)}
return entry};this.getBinderClassByEventNamespace=function(namespace,eventName){return this.getBinderClass(this.get(namespace,eventName).className)};this.initialize.apply(this,arguments)};kukit.eventsGlobalRegistry=new _EventRegistry();var _eventRegistry=function(){this.register=function(namespace,eventName,klass,bindMethodName,defaultActionMethodName){kukit.eventsGlobalRegistry.register(namespace,eventName,klass,bindMethodName,defaultActionMethodName)}};var _LateBinder=function(){this.initialize=function(binder,name,node){this.binder=binder;this.name=name;this.node=node;this.boundEvent=null};this.executeActions=function(){if(!this.boundEvent){if(kukit.hasFirebug){kukit.log(this.node)}
var info=kukit.engine.binderInfoRegistry.getBinderInfoById(this.binder.__binderId__);var oper=info.bound.getBoundOperForNode(this.name,this.node);if(oper){oper.parms={};this.boundEvent=function(){this.binder.triggerEvent(this.name,oper)}} else{this.boundEvent=function(){}}}
this.boundEvent()};this.initialize.apply(this,arguments)};var _EventBinder=function(){this.continueEvent=function(name,node,defaultParameters){var oper=new kukit.op.Oper();oper.node=node;if(node){var info=kukit.engine.binderInfoRegistry.getBinderInfoById(this.__binderId__);var newOper=info.bound.getBoundOperForNode(name,node);if(newOper){oper=newOper}} else{oper.eventRule=kukit.engine.documentRules.getMergedRule('document',name,this)}
var behav_eventRule=kukit.engine.documentRules.getMergedRule('behaviour',name,this);if(behav_eventRule){if(!oper.eventRule){oper.eventRule=behav_eventRule} else{}}
if(typeof(defaultParameters)!='undefined'){oper.defaultParameters=defaultParameters} else{oper.defaultParameters={}}
this.triggerEvent(name,oper)};this.__continueEvent__=function(name,node,defaultParameters){this.continueEvent(name,node,defaultParameters)};this.continueEventAllNodes=function(name,defaultParameters){var executed=0;var oper=new kukit.op.Oper();var info=kukit.engine.binderInfoRegistry.getBinderInfoById(this.__binderId__);var opers=info.bound.getBoundOpers(name);for(var i=0;i<opers.length;i++){var oper=opers[i];var newOper=oper.clone();if(typeof(defaultParameters)!='undefined'){newOper.defaultParameters=defaultParameters} else{newOper.defaultParameters={}}
this.triggerEvent(name,newOper);executed+=1}};this.__continueEvent_allNodes__=function(name,defaultParameters){this.continueEventAllNodes(name,defaultParameters)};this.makeFuncToBind=function(name,node){var executor=new er._LateBinder(this,name,node);return function(){executor.executeActions()}};this.__makeFuncToBind__=function(name,node){this.makeFuncToBind(name,node)};this.triggerEvent=function(name,oper){oper.binder=this;if(oper.eventRule){oper.eventRule.actions.execute(oper)} else{var namespace=this.__eventNamespace__;var success=oper.executeDefaultAction(name,true);if(!success){throw new Error(kukit.E)}}};this._EventBinder_triggerEvent=function(name,oper){this.triggerEvent(name,oper)};this.callMethod=function(namespace,name,oper,methodName){var method=this[methodName];if(!method){throw new Error(kukit.E)}
oper.binder=this;method.call(this,name,oper)};this._EventBinder_callMethod=function(namespace,name,oper,methodName){this.callMethod(namespace,name,oper,methodName)}};er.BinderInfoRegistry=function(){this.initialize=function(){this.info={}};this.getOrCreateBinderInfo=function(id,className,namespace){var binderInfo=this.info[id];if(typeof(binderInfo)=='undefined'){var binderClass=kukit.eventsGlobalRegistry.getBinderClass(className);var binder=new binderClass();binderInfo=this.info[id]=new _BinderInfo(binder);binder.__binderId__=id;binder.__binderClassName__=className;binder.__eventNamespace__=namespace} else if(binderInfo.getBinder().__binderClassName__!=className){throw new Error(kukit.E)}
return binderInfo};this.getBinderInfoById=function(id){var binderInfo=this.info[id];if(typeof(binderInfo)=='undefined'){throw new Error(kukit.E)}
return binderInfo};this.getSingletonBinderInfoByName=function(namespace,name){var className=kukit.eventsGlobalRegistry.get(namespace,name).className;var id=er.makeId(namespace,className);var binderInfo=this.info[id];if(typeof(binderInfo)=='undefined'){throw new Error(kukit.E)}
return binderInfo};this.startBindingPhase=function(){for(var id in this.info){var binderInfo=this.info[id];binderInfo.startBindingPhase()}};this.processBindingEvents=function(){for(var id in this.info){var binderInfo=this.info[id];binderInfo.processBindingEvents()}};this.initialize.apply(this,arguments)};var _BinderInfo=function(){this.initialize=function(binder){this.binder=binder;this.bound=new _OperRegistry();this.getBinder=function(){return this.binder};this.startBindingPhase=function(){this.binding=new _OperRegistry()};this.bindOper=function(oper){this.bound.checkOperBindable(oper);this.binding.bindOper(oper)};this.processBindingEvents=function(){this.binding.processBindingEvents(this.binder);this.binding.propagateTo(this.bound);this.binding=null};this.startBindingPhase()};this.getBinder=function(){return this.binder};this.startBindingPhase=function(){this.binding=new _OperRegistry()};this.bindOper=function(oper){this.bound.checkOperBindable(oper);this.binding.bindOper(oper)};this.processBindingEvents=function(){this.binding.processBindingEvents(this.binder);this.binding.propagateTo(this.bound);this.binding=null};this.initialize.apply(this,arguments)};var _iterators={};_iterators['EachLegacy']=function(eventSet,binder){for(var i=0;i<eventSet.names.length;i++){var rulesPerName=this.infoPerName[eventSet.names[i]];if(typeof(rulesPerName)!='undefined'){for(var nodeHash in rulesPerName){var oper=rulesPerName[nodeHash];var eventName=oper.getEventName();var funcToBind=oper.makeExecuteActionsHook();this.callBindMethod(eventSet,binder,eventName,funcToBind,oper)}}}};_iterators['Each']=function(eventSet,binder){for(var i=0;i<eventSet.names.length;i++){var rulesPerName=this.infoPerName[eventSet.names[i]];if(typeof(rulesPerName)!='undefined'){for(var nodeHash in rulesPerName){var oper=rulesPerName[nodeHash];this.callBindMethod(eventSet,binder,oper)}}}};_iterators['Opers']=function(eventSet,binder){var opers=[];for(var i=0;i<eventSet.names.length;i++){var rulesPerName=this.infoPerName[eventSet.names[i]];if(typeof(rulesPerName)!='undefined'){for(var nodeHash in rulesPerName){opers.push(rulesPerName[nodeHash])}}}
this.callBindMethod(eventSet,binder,opers)};_iterators['Node']=function(eventSet,binder){for(var nodeHash in this.infoPerNode){var rulesPerNode=this.infoPerNode[nodeHash];var filteredRules={};var operFound=false;for(var i=0;i<eventSet.names.length;i++){var name=eventSet.names[i];var oper=rulesPerNode[name];if(typeof(oper)!='undefined'){filteredRules[name]=oper;operFound=oper}}
if(operFound){this.callBindMethod(eventSet,binder,filteredRules,operFound.node)}}};_iterators['AllNodes']=function(eventSet,binder){var items=[];var hasResult=false;for(var nodeHash in this.infoPerNode){var rulesPerNode=this.infoPerNode[nodeHash];var filteredRules={};var operFound=false;for(var i=0;i<eventSet.names.length;i++){var name=eventSet.names[i];var oper=rulesPerNode[name];if(typeof(oper)!='undefined'){filteredRules[name]=oper;operFound=oper}}
if(operFound){var item={node:operFound.node,opersByEventName:filteredRules};items.push(item);hasResult=true}}
if(hasResult){this.callBindMethod(eventSet,binder,items)}};er.getBindIterator=function(iterName){var canonical=iterName.substring(0,1).toUpperCase()+iterName.substring(1);if(canonical=='Allnodes'){canonical='AllNodes'}
if(iterName!=canonical){iterName=canonical}
return _iterators[iterName]};var _OperRegistry=function(){this.initialize=function(){this.infoPerName={};this.infoPerNode={}};this.propagateTo=function(newreg){for(var key in this.infoPerName){var rulesPerName=this.infoPerName[key];for(var name in rulesPerName){var oper=rulesPerName[name];newreg.bindOper(oper)}}};this.checkOperBindable=function(oper,name,nodeHash){var info=this.infoPerName;if(typeof(nodeHash)=='undefined'){name=oper.eventRule.kssSelector.name;nodeHash=kukit.rd.hashNode(oper.node)}
var rulesPerName=info[name];if(typeof(rulesPerName)=='undefined'){rulesPerName=info[name]={}} else if(typeof(rulesPerName[nodeHash])!='undefined'){throw new Error(kukit.E)}
return rulesPerName};this.bindOper=function(oper){var name=oper.eventRule.kssSelector.name;var nodeHash=kukit.rd.hashNode(oper.node);var rulesPerName=this.checkOperBindable(oper,name,nodeHash);rulesPerName[nodeHash]=oper;var rulesPerNode=this.infoPerNode[nodeHash];if(typeof(rulesPerNode)=='undefined'){rulesPerNode=this.infoPerNode[nodeHash]={}}
rulesPerNode[name]=oper};this.processBindingEvents=function(binder){var eventRegistry=kukit.eventsGlobalRegistry;for(var i=0;i<eventRegistry.eventSets.length;i++){var eventSet=eventRegistry.eventSets[i];if(eventSet.bindMethodName){if(binder.__eventNamespace__==eventSet.namespace){var iterator=er.getBindIterator(eventSet.iterName);iterator.call(this,eventSet,binder)}}}};this.getBoundOperForNode=function(name,node){var rulesPerName=this.infoPerName[name];if(typeof(rulesPerName)=='undefined'){return null}
var nodeHash=kukit.rd.hashNode(node);var oper=rulesPerName[nodeHash];if(typeof(oper)=='undefined'){return null}
return oper};this.getBoundOpers=function(name){var opers=[];var rulesPerName=this.infoPerName[name];if(typeof(rulesPerName)!='undefined'){for(var nodeHash in rulesPerName){opers.push(rulesPerName[nodeHash])}}
return opers};this.callBindMethod=function(eventSet,binder,p1,p2,p3,p4,p5,p6){var method=binder[eventSet.bindMethodName];method.call(binder,p1,p2,p3,p4,p5,p6)};this.initialize.apply(this,arguments)};er.makeId=function(namespace,name){if(namespace==null){namespace=''}
return '@'+namespace+'@'+name};er.makeMergeId=function(id,namespace,name){if(namespace==null){namespace=''}
return id+'@'+namespace+'@'+name}}();kukit.ar=new function(){var ar=this;var _ActionRegistry=function(){this.initialize=function(){this.content={}};this.register=function(name,func){if(this.content[name]){return}
this.content[name]=func};this.exists=function(name){var entry=this.content[name];return(typeof(entry)!='undefined')};this.get=function(name){var func=this.content[name];if(!func){throw Error(kukit.E)}
return func};this.initialize.apply(this,arguments)};kukit.actionsGlobalRegistry=new _ActionRegistry();ar.actionRegistry=function(){this.register=function(name,func){kukit.actionsGlobalRegistry.register(name,func)}}}();kukit.dom=new function(){var dom=this;dom.getPreviousSiblingTag=function(node){var toNode=node.previousSibling;while((toNode!=null)&&(toNode.nodeType!=1)){toNode=toNode.previousSibling}
return toNode};dom.getNextSiblingTag=function(node){var toNode=node.nextSibling;while((toNode!=null)&&(toNode.nodeType!=1)){toNode=toNode.nextSibling}
return toNode};dom.insertBefore=function(nodes,parentNode,toNode){for(var i=0;i<nodes.length;i++){parentNode.insertBefore(nodes[i],toNode)}};dom.appendChildren=function(nodes,toNode){for(var i=0;i<nodes.length;i++){toNode.appendChild(nodes[i])}};dom.clearChildNodes=function(node){Sarissa.clearChildNodes(node)};dom.parseHTMLNodes=function(txt){var node=document.createElement('div');node.innerHTML=txt;var resultNodes=[];for(var i=0;i<node.childNodes.length;i++){resultNodes.push(node.childNodes.item(i))}
return resultNodes};dom.cssQuery=function(selector,inNodes){if(typeof(inNodes)!='undefined'&&inNodes==null){throw new Error(kukit.E)}
return _cssQuery(selector,inNodes)};var _USE_BASE2=(typeof(base2)!='undefined');if(_USE_BASE2){var _USE_BASE2_LEGACY=(typeof(base2.DOM.Document.querySelectorAll)=='undefined');if(!_USE_BASE2_LEGACY){var _cssQuery=function(selector,inNodes){var results=base2.DOM.Document.querySelectorAll(document,selector);var nodes=[];for(var i=0;i<results.length;i++){nodes.push(results.item(i))}
return nodes}} else{var _cssQuery=function(selector,inNodes){var results=base2.DOM.Document.matchAll(document,selector);var nodes=[];for(var i=0;i<results.length;i++){nodes.push(results.item(i))}
return nodes}}} else{var _cssQuery=function(selector,inNodes){var results=cssQuery(selector);return results}};dom.focus=function(node){tagName=node.tagName.toLowerCase();if((tagName=='input')||(tagName=='select')||(tagName=='textarea')){node.focus()}};dom.blur=function(node){tagName=node.tagName.toLowerCase();if((tagName=='input')||(tagName=='select')||(tagName=='textarea')){node.blur()}};dom.textContent=function(node,recursive){var value=_textContent(node,recursive);value=value.replace(/\r\n/g,' ');value=value.replace(/[\r\n]/g,' ');return value};var _textContent=function(node,recursive){if(typeof(recursive)=='undefined'){recursive=false}
var value='';var childnodes=node.childNodes;for(var i=0;i<childnodes.length;i++){var child=childnodes[i];if(child.nodeType==3){value+=child.nodeValue} else if(recursive&&child.nodeType==1){value+=dom.textContent(child,true)}}
return value};dom.getAttribute=function(node,attrname){if(attrname.toLowerCase()=='style'){throw new Error('Style attribute is not allowed with getAttribute')}
try{var value=node.getAttribute(attrname)}
catch(e){var value=null}
if(!value){if(attrname.toLowerCase()=='class'){value=node.className} else if(attrname.toLowerCase()=='for'){value=node.htmlFor}}
return value};dom.setAttribute=function(node,attrname,value){if(attrname.toLowerCase()=='style'){throw new Error('Style attribute is not allowed with setAttribute')}
else if(attrname.toLowerCase()=='class'){node.className=value} else if(attrname.toLowerCase()=='for'){node.htmlFor=value;node.setAttribute(attrname,value)} else if(attrname.toLowerCase()=='value'){node.value=value} else if(attrname.toLowerCase()=='checked'){value=!(value==''||value=='false'||value=='False');node.checked=value} else{node.setAttribute(attrname,value)}};var _kssAttrNamespace='kssattr';var _kssNamespacePrefix='kss';var _getKssValueFromEncodings=function(encodings,prefix){prefix=prefix+'-';var prefixLength=prefix.length;for(var i=0;i<encodings.length;i++){var encoding=encodings[i];if(encoding.substr(0,prefixLength)==prefix){return encoding.substr(prefixLength)}}
return null};var _getKssClassAttribute=function(node,attrname){var klass=dom.getAttribute(node,'class');if(klass){var splitclass=klass.split(/ +/);return _getKssValueFromEncodings(splitclass,'kssattr-'+attrname)}
return null};dom.getKssAttribute=function(node,attrname){var fullName=_kssAttrNamespace+':'+attrname;var result=dom.getAttribute(node,fullName);if(!result){result=_getKssClassAttribute(node,attrname)}
return result};dom.setKssAttribute=function(node,attrname,value){var fullName=_kssAttrNamespace+':'+attrname;dom.setAttribute(node,fullName,value)};dom.getKssValue=function(node,keyType,key){var namespacedName=_kssNamespacePrefix+'-'+keyType;var attrName=namespacedName+':'+key;var result=node.getAttribute(attrName);if(!result){result=null;var klass=dom.getAttribute(node,'class');var encodings;if(klass){encodings=klass.split(/ +/)} else{encodings=[]}
var id=dom.getAttribute(node,'id');if(id){encodings.unshift(id)}
var prefix=namespacedName+'-'+key;return _getKssValueFromEncodings(encodings,prefix)}
return result};dom.setKssValue=function(node,keyType,key,value){var namespacedName=_kssNamespacePrefix+'-'+keyType;var attrName=namespacedName+':'+key;node.setAttribute(attrName,value)};dom.locateMarkup=function(node,recurseParents,getter,p1,p2,p3,p4,p5){var value=getter(node,p1,p2,p3,p4,p5);var element=node;if(recurseParents){while(!value){element=element.parentNode;if(!element||!element.getAttribute){break}
value=getter(element,p1,p2,p3,p4,p5)}}
if(typeof(value)=='undefined'){value=null}
return{value:value,node:element}};dom.getRecursiveAttribute=function(node,attrname,recurseParents,getter){return dom.locateMarkup(node,recurseParents,getter,attrname).value};var _getIframeDocument=function(framename){var iframe=document.getElementById(framename);var doc=iframe.contentWindow||iframe.contentDocument;if(doc.document){doc=doc.document}
return doc};dom.EmbeddedContentLoadedScheduler=function(){this.initialize=function(framename,func,autodetect){this.framename=framename;this.func=func;this.autodetect=autodetect;var self=this;var f=function(){self.check()};this.counter=new kukit.ut.TimerCounter(250,f,true);this.counter.start()};this.check=function(){var doc=_getIframeDocument(this.framename);if(doc['_'+'embeddedContentLoadedInitDone']){this.counter.restart=false}
if(typeof doc['_'+'kssReadyForLoadEvent']!='undefined'){this.counter.restart=false}
if(this.autodetect&&this.counter.restart){if(doc.location.href=='about:blank'){return}
if(/KHTML|WebKit/i.test(navigator.userAgent)){if(/loaded|complete/.test(doc.readyState)){this.counter.restart=false}} else if(typeof doc.getElementsByTagName!='undefined'&&(doc.getElementsByTagName('body')[0]!=null||doc.body!=null)){this.counter.restart=false}}
if(!this.counter.restart){doc['_'+'embeddedContentLoadedInitDone']=true;this.func()}};this.initialize.apply(this,arguments)};dom.getNsTags=function(dom_obj,tagName){tags=dom_obj.getElementsByTagName(tagName);return tags};var _hasClassName=function(node,class_name){return new RegExp('\\b'+class_name+'\\b').test(node.className)};dom.addClassName=function(node,class_name){if(!node.className){node.className=class_name} else if(!_hasClassName(node,class_name)){var className=node.className+" "+class_name;node.className=className.split(/\s+/).join(' ')}};dom.removeClassName=function(node,class_name){var className=node.className;if(className){className=className.replace(new RegExp('\\b'+class_name+'\\b'),'');className=className.replace(/\s+/g,' ');node.className=className.replace(/\s+$/g,'')}};dom.createCookie=function(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days * 24 * 60 * 60 * 1000));var expires="; expires="+date.toGMTString()}
else var expires="";document.cookie=name+"="+value+expires+"; path=/"};dom.readCookie=kukit.readCookie;dom.eraseCookie=function(name){createCookie(name,"",-1)}}();kukit.cr=new function(){var cr=this;var _CommandRegistry=function(){this.initialize=function(){this.commands={}};this.registerFromAction=function(srcname,factory,name){if(typeof(name)=='undefined'){name=srcname}
var f=kukit.actionsGlobalRegistry.get(srcname);factory(name,f)};this.register=function(name,klass){if(this.commands[name]){return}
this.commands[name]=klass};this.get=function(name){var klass=this.commands[name];return klass};this.initialize.apply(this,arguments)};kukit.commandsGlobalRegistry=new _CommandRegistry();cr.commandRegistry={};cr.commandRegistry.registerFromAction=function(srcname,factory,name){kukit.commandsGlobalRegistry.registerFromAction(srcname,factory,name)};cr.makeCommand=function(selector,name,type,parms,transport){var commandClass=kukit.commandsGlobalRegistry.get(name);var command=new commandClass();command.selector=selector;command.name=name;command.selectorType=type;command.parms=parms;command.transport=transport;return command};var _executeCommand=function(oper){var newoper=oper.clone({'parms':this.parms,'orignode':oper.node,'node':null});this.executeOnScope(newoper)};var _executeCommandOnSelector=function(oper){var selectorType=this.selectorType||kukit.selectorTypesGlobalRegistry.defaultSelectorType;var providerClass=kukit.pprovidersGlobalRegistry.get(selectorType);if(providerClass.prototype.returnType!='selection'){kukit.E='Undefined selector type ['+selectorType+'], ';kukit.E='it exists as provider but it does not return a selection.';throw new Error(kukit.E)}
var provider=new providerClass();var args=[this.selector];var nodes=provider.eval(args,oper.orignode,{});for(var i=0;i<nodes.length;i++){oper.node=nodes[i];this.executeOnSingleNode(oper)}};cr.makeSelectorCommand=function(name,executeOnSingleNode){var commandClass=function(){this.execute=_executeCommand;this.executeOnScope=_executeCommandOnSelector;this.executeOnSingleNode=executeOnSingleNode};kukit.commandsGlobalRegistry.register(name,commandClass)};cr.makeGlobalCommand=function(name,executeOnce){var commandClass=function(){this.execute=_executeCommand;this.executeOnScope=executeOnce;this.executeOnSingleNode=executeOnce};kukit.commandsGlobalRegistry.register(name,commandClass)}}();kukit.sa=new function(){var sa=this;sa.ServerActionBase=function(){this.initialize=function(name,oper){this.oper=oper;this.url=oper.kssParms.kssUrl;if(typeof(this.url)=='undefined'){this.url=name}
this.url=this.calculateAbsoluteURL(this.url);this.notifyServer()};this.calculateAbsoluteURL=function(url){if(url.match(RegExp("/^https?:\/\//"))){return url}
var absoluteMatch=url.match(RegExp(/^(\/)(.*)/));var path=kukit.engine.baseUrl;if(absoluteMatch){var base=path.match(RegExp(/^(.*:\/\/[^\/]*)(\/?)/))[1];url=base+url;return url}
if(!path.match(RegExp("/$"))){path+='/'}
url=path+url;return url};this.notifyServer=function(){var self=this;var sendHook=function(queueItem){self.oper.queueItem=queueItem;self.reallyNotifyServer()};var timeoutHook=function(queueItem){self.oper.queueItem=queueItem;self.processError('timeout')};kukit.engine.requestManager.notifyServer(sendHook,this.url,timeoutHook)};this.reallyNotifyServer=function(){var domDoc=new XMLHttpRequest();var self=this;var notifyServer_done=function(){self.notifyServer_done(domDoc)};var query=new kukit.fo.FormQuery();for(var key in this.oper.parms){query.appendElem(key,this.oper.parms[key])}
var submitForm=this.oper.kssParms.kssSubmitForm;if(submitForm){for(var i=0;i<submitForm.length;i++){var item=submitForm[i];query.appendElem(item[0],item[1])}}
var encoded=query.encode();var ts=new Date().getTime();var tsurl=this.url+"?kukitTimeStamp="+ts;domDoc.open("POST",tsurl,true);domDoc.onreadystatechange=notifyServer_done;domDoc.setRequestHeader("Content-Type","application/x-www-form-urlencoded");domDoc.send(encoded)};this.notifyServer_done=function(domDoc){if(domDoc.readyState==4){var success=this.oper.queueItem.receivedResult();if(success){try{this.processResult(domDoc)} catch(e){if(e.name=='ResponseParsingError'){this.processError(kukit.E)} else if(e.name=='ExplicitError'){this.processError(e.info.kw.errorcommand)} else{throw e}}}}};this.processResult=function(domDoc){var dom;var commandstags=[];if(domDoc.responseXML){dom=domDoc.responseXML;commandstags=kukit.dom.getNsTags(dom,'commands');if(commandstags.length!=1){dom=null}}
if(dom==null){var payload=domDoc.getResponseHeader('X-KSSCOMMANDS');if(payload){try{dom=(new DOMParser()).parseFromString(payload,"text/xml")} catch(e){throw kukit.err.responseParsingError(kukit.E)}
commandstags=kukit.dom.getNsTags(dom,'commands');if(commandstags.length!=1){dom=null}}
if(dom==null){var payload=domDoc.getResponseHeader('X-KSSCOMMANDS');if(payload){try{dom=(new DOMParser()).parseFromString(payload,"text/xml")} catch(e){throw kukit.err.responseParsingError(kukit.E)}
commandstags=kukit.dom.getNsTags(dom,'commands');if(commandstags.length!=1){dom=null}} else{throw kukit.err.responseParsingError(kukit.E)}}
if(dom==null){throw kukit.err.responseParsingError(msg)}
var commands=kukit.dom.getNsTags(dom,'command');if(commands.length==0){return}
var command_processor=new kukit.cp.CommandProcessor();command_processor.parseCommands(commands,domDoc);kukit.engine.beginSetupEventsCollection();command_processor.executeCommands(this.oper);kukit.engine.finishSetupEventsCollection()};this.processError=function(errorcommand){var error_action=null;if(this.oper.eventRule){var error_action=this.oper.eventRule.actions.getErrorActionFor(this.oper.action)}
if(error_action){error_action.execute(this.oper)} else{throw kukit.err.responseParsingError(kukit.E)}}
if(dom==null){throw kukit.err.responseParsingError(msg)}
var commands=kukit.dom.getNsTags(dom,'command');if(commands.length==0){return}
var command_processor=new kukit.cp.CommandProcessor();command_processor.parseCommands(commands,domDoc);kukit.engine.beginSetupEventsCollection();command_processor.executeCommands(this.oper);kukit.engine.finishSetupEventsCollection()};this.processError=function(errorcommand){var error_action=null;if(this.oper.eventRule){var error_action=this.oper.eventRule.actions.getErrorActionFor(this.oper.action)}
if(error_action){error_action.execute(this.oper)} else{}}};sa.ServerAction=function(){this.initialize.apply(this,arguments)};sa.ServerAction.prototype=new sa.ServerActionBase()}();kukit.rm=new function(){var rm=this;rm._rid=0;var _RequestItem=function(){this.initialize=function(sendHook,url,timeoutHook,timeout,now){if(typeof(now)=='undefined'){now=(new Date()).valueOf()}
this.sent=now;this.expire=now+timeout;this.handled=false;this.sendHook=sendHook;this.url=url;this.timeoutHook=timeoutHook;this.rid=rm._rid;rm._rid++;if(rm._rid>=10000000000){rm._rid=0}};this.callTimeoutHook=function(){if(this.timeoutHook){this.timeoutHook(this)}};this.setReceivedCallback=function(func){this._receivedCallback=func};this.receivedResult=function(now){var result=this._receivedCallback(this,now);this._receivedCallback=null;return result};this.initialize.apply(this,arguments)};rm.TestRequestItem=function(){kukit.logWarning('Use class [rm.TestRequestItem] only in tests !');this.initialize.apply(this,arguments)};rm.TestRequestItem.prototype=new _RequestItem();var _TimerQueue=function(){this.initialize=function(callback){this.callback=callback;this.queue=new kukit.ut.SortedQueue(this._sentSort);this.count=0};this._sentSort=function(a,b){if(a.expire<b.expire) return-1;else if(a.expire>b.expire) return+1;else return 0};this.push=function(item){this.queue.push(item);this.count+=1};this.pop=function(item){if(typeof(item)=='undefined'||item.handled){return false} else{item.handled=true;this.count-=1;return true}};this.handleExpiration=function(now){if(typeof(now)=='undefined'){now=(new Date()).valueOf()}
var to;for(to=0;to<this.queue.size();to++){var item=this.queue.get(to);if(!item.handled){if(item.expire>now){break} else{item.handled=true;this.count-=1;this.callback(item)}}}
this.queue.popn(to);var front=this.queue.front();var next_expire=null;if(front){next_expire=front.expire}
return next_expire};this.initialize.apply(this,arguments)};rm.TestTimerQueue=function(){kukit.logWarning('Use class [rm.TestTimerQueue] only in tests !');this.initialize.apply(this,arguments)};rm.TestTimerQueue.prototype=new _TimerQueue();rm.RequestManager=function(){this.initialize=function(name,maxNr,schedulerClass,sendingTimeout){this.waitingQueue=new kukit.ut.FifoQueue();this.sentNr=0;var self=this;var timeoutItem=function(item){self.timeoutItem(item)};this.timerQueue=new _TimerQueue(timeoutItem);if(typeof(name)=='undefined'){name=null}
this.name=name;var nameString='';if(name!=null){nameString='['+name+'] '}
this.nameString=nameString;if(typeof(maxNr)=='undefined'||maxNr==null){maxNr=4}
this.maxNr=maxNr;var checkTimeout=function(){self.checkTimeout()};if(typeof(schedulerClass)=='undefined'){schedulerClass=kukit.ut.Scheduler}
this.timeoutScheduler=new schedulerClass(checkTimeout);this.spinnerEvents={'off':[],'on':[]};this.spinnerState=false;if(typeof(sendingTimeout)!='undefined'&&sendingTimeout!=null){this.sendingTimeout=sendingTimeout}};this.setSpinnerState=function(newState){if(this.spinnerState!=newState){this.spinnerState=newState;var events=this.spinnerEvents[newState?'on':'off'];for(var i=0;i<events.length;i++){events[i]()}}};this.pushWaitingRequest=function(item,now){this.waitingQueue.push(item);this.checkTimeout(now)};this.popWaitingRequest=function(){var q=this.waitingQueue;while(!q.empty()&&q.front().handled){q.pop()}
if(!q.empty()){return q.pop()} else{return null}};this.pushSentRequest=function(item,now){this.sentNr+=1;this.setSpinnerState(true);this.checkTimeout(now);var self=this;var func=function(item,now){return self.receiveItem(item,now)};item.setReceivedCallback(func);item.sendHook(item)};this.checkTimeout=function(now){var nextWake=this.timerQueue.handleExpiration(now);if(nextWake){nextWake+=50} else{this.setSpinnerState(false)}
this.timeoutScheduler.setNextWakeAtLeast(nextWake)};this.popSentRequest=function(item){var success=this.timerQueue.pop(item);this.sentNr-=1;return success};this.isSentRequestQueueFull=function(){return(this.sentNr>=this.maxNr)};this.receivedResult=function(item,now){var success=this.popSentRequest(item);var waiting=this.popWaitingRequest();if(waiting!=null){this.pushSentRequest(waiting,now)} else{this.setSpinnerState(false)}
return success};this.receiveItem=function(item,now){var success=this.receivedResult(item,now);return success};this.timeoutItem=function(item){item.callTimeoutHook()};this.notifyServer=function(sendHook,url,timeoutHook,timeout,now){if(typeof(timeout)=='undefined'){timeout=this.sendingTimeout}
var item=new _RequestItem(sendHook,url,timeoutHook,timeout,now);this.timerQueue.push(item);if(!this.isSentRequestQueueFull()){this.pushSentRequest(item,now)} else{this.pushWaitingRequest(item,now)}};this.registerSpinnerEvent=function(func,state){this.spinnerEvents[state?'on':'off'].push(func)};this.initialize.apply(this,arguments)};rm.RequestManager.prototype.sendingTimeout=8000}();kukit.cp=new function(){var cp=this;cp.CommandProcessor=function(){this.initialize=function(){this.commands=new Array()};this.parseCommands=function(commands,transport){for(var y=0;y<commands.length;y++){var command=commands[y];this.parseCommand(command,transport);var lastcommand=this.commands[this.commands.length-1];if(lastcommand.name=='error'){throw kukit.err.explicitError(lastcommand)}}};this.parseCommand=function(command,transport){var selector="";var params={};var name="";selector=command.getAttribute("selector");name=command.getAttribute("name");type=command.getAttribute("selectorType");if(name==null)
name="";var childNodes=command.childNodes;for(var n=0;n<childNodes.length;n++){var childNode=childNodes[n];if(childNode.nodeType!=1)
continue;if(childNode.localName){if(childNode.localName.toLowerCase()!="param"){throw new Error('Bad payload, expected param')}} else{if(childNode.nodeName.toLowerCase()!="param"){throw new Error('Bad payload, expected param (IE)')}}
var data=childNode.getAttribute('name');if(data!=null){var childCount=childNode.childNodes.length;var result;if(childCount==0){result=''} else{result=childNode.firstChild.nodeValue}
params[data]=result} else{throw new Error('Bad payload, expected attribute "name"')}}
var command=new kukit.cr.makeCommand(selector,name,type,params,transport);this.addCommand(command)};this.addCommand=function(command){this.commands[this.commands.length]=command};this.executeCommands=function(oper){if(typeof(oper)=='undefined'||oper==null){oper=new kukit.op.Oper()}
var commands=this.commands;for(var y=0;y<commands.length;y++){var command=commands[y];command.execute(oper)}};this.initialize.apply(this,arguments)}}();kukit.sr=new function(){var sr=this;sr.pproviderSelRegistry=new kukit.pr.ValueProviderRegistry();var _AnyPP=function(){this.check=function(args){};this.eval=function(args,node,defaultParameters){var f=kukit.selectorTypesGlobalRegistry.get(this.selector_type);return f(args[0],node,defaultParameters,node)}};sr.pproviderSelRegistry.register('',_AnyPP);sr.makeAnyPP=function(selector_type){var pp=function(){};pp.prototype=new _AnyPP();pp.prototype.selector_type=selector_type;return pp};var _PassnodePP=function(){this.check=function(args){};this.eval=function(args,node,defaultParameters){var value=defaultParameters[args[0]];if(typeof(value)=='undefined'){throw new Error(kukit.E)}
nodes=[value];return nodes}};sr.pproviderSelRegistry.register('passnode',_PassnodePP,'selection');var _SelectorTypeRegistry=function(){this.initialize=function(){this.mapping={}};this.register=function(name,func){if(typeof(func)=='undefined'){throw new Error('Func is mandatory.')}
this.mapping[name]=func;var pp=sr.makeAnyPP(name);kukit.pprovidersGlobalRegistry.register(name,pp,'selection')};this.get=function(name){if(!name){name=this.defaultSelectorType}
var result=this.mapping[name];return result};this.initialize.apply(this,arguments)};_SelectorTypeRegistry.prototype.defaultSelectorType='css';kukit.selectorTypesGlobalRegistry=new _SelectorTypeRegistry();kukit.selectorTypesGlobalRegistry.register('htmlid', function(expr,node){var nodes=[];var node=document.getElementById(expr);if(node){nodes.push(node)}
return nodes});kukit.selectorTypesGlobalRegistry.register('css', function(expr,node){var nodes=kukit.dom.cssQuery(expr);return nodes});kukit.selectorTypesGlobalRegistry.register('samenode', function(expr,node){nodes=[node];return nodes});kukit.selectorTypesGlobalRegistry.register('parentnode', function(expr,node){var selectednodes=kukit.dom.cssQuery(expr);var parentnodes=[];var parentnode=node.parentNode;while(parentnode.parentNode){parentnodes.push(parentnode);parentnode=parentnode.parentNode}
var results=[];for(var i=0;i<selectednodes.length;i++){var inchain=false;for(var j=0;j<parentnodes.length;j++){if(selectednodes[i]===parentnodes[j]){inchain=true}}
if(inchain){results.push(selectednodes[i])}}
return results})}();kukit.fo=new function(){var fo=this;var _dictPrefix='';var _dictSeparator='.';var _dictPostfix=':record';var _FormQueryElem=function(){this.initialize=function(name,value){this.name=name;this.value=value};this.encode=function(){return this.name+"="+encodeURIComponent(this.value)};this.initialize.apply(this,arguments)};fo.FormQuery=function(){this.initialize=function(){this.l=[]};this.appendElem=function(name,value){if(value==null){}
else if(typeof(value)=='string'){var elem=new _FormQueryElem(name,value);this.l.push(elem)}
else if(typeof(value)=='object'&&typeof(value.length)=='number'&&typeof(value.pop)=='function'){for(var i=0;i<value.length;i++){var elem=new _FormQueryElem(name,value[i]);this.l.push(elem)}}
else if(typeof(value)=='object'){for(var key in value){var qkey=_dictPrefix+name+_dictSeparator;qkey+=key+_dictPostfix;var elem=new _FormQueryElem(qkey,value[key]);this.l.push(elem)}}};this.encode=function(){var poster=[];for(var i=0;i<this.l.length;i++){poster[poster.length]=this.l[i].encode()}
return poster.join("&")};this.toDict=function(){var d={};for(var i=0;i<this.l.length;i++){var elem=this.l[i];d[elem.name]=elem.value}
return d};this.initialize.apply(this,arguments)};var findContainer=function(node,func){while(node!=null){if(func(node)){return node}
node=node.parentNode}
return null};fo.CurrentFormLocator=function(){this.initialize=function(target){this.target=target};this.queryForm=function(){return findContainer(this.target, function(node){if(!node.nodeName){return false}
if(node.nodeName.toLowerCase()=="form"){return true} else{return false}})};this.getForm=function(){var form=this.queryForm();if(!form){return null}
return form};this.initialize.apply(this,arguments)};fo.NamedFormLocator=function(){this.initialize=function(formname){this.formname=formname};this.queryForm=function(){return document.forms[this.formname]};this.initialize.apply(this,arguments)};fo.NamedFormLocator.prototype=new fo.CurrentFormLocator();fo.getValueOfFormElement=function(element){this.fieldUpdateRegistry.doUpdate(element);if(element.disabled){return null}
if(element.selectedIndex!=undefined){if(!element.multiple){if(element.selectedIndex<0){value=""} else{var option=element.options[element.selectedIndex];value=option.value||option.text}} else{var value=[];for(i=0;i<element.options.length;i++){var option=element.options[i];if(option.selected){value.push(option.value||option.text)}}}} else if(typeof element.length!='undefined'&&((typeof element[0]!='undefined'&&element[0].type=="radio")||(typeof element.item(0)!='undefined'&&element.item(0).type=="radio"))){var radioList=element;value=null;for(var i=0;i<radioList.length;i++){var radio=radioList[i]||radioList.item(i);if(radio.checked){value=radio.value}}} else if(element.type=="radio"||element.type=="checkbox"){if(element.checked){value=element.value} else{value=null}} else if((element.tagName.toLowerCase()=='textarea')||(element.tagName.toLowerCase()=='input'&&element.type!='submit'&&element.type!='reset')){value=element.value} else{value=null}
return value};fo.getFormVar=function(locator,name){var form=locator.getForm();if(!form)
return null;var value=null;var element=form[name];if(element){var value=fo.getValueOfFormElement(element)}
return value};fo.getAllFormVars=function(locator,collector){var form=locator.getForm();if(!form)
return collector.result;var elements=form.elements;for(var y=0;y<elements.length;y++){var element=elements[y];var value=fo.getValueOfFormElement(element);if(value!=null){collector.add(element.name,value)}}
return collector.result};var _FieldUpdateRegistry=function(){this.initialize=function(){this.editors={}};this.register=function(node,editor){var hash=kukit.rd.hashNode(node);if(typeof(this.editors[hash])!='undefined'){throw new Error(kukit.E)}
this.editors[hash]=editor;editor.doInit()};this.doUpdate=function(node){var hash=kukit.rd.hashNode(node);var editor=this.editors[hash];if(typeof(editor)!='undefined'){editor.doUpdate(node)}};this.initialize.apply(this,arguments)};this.fieldUpdateRegistry=new _FieldUpdateRegistry();var _FormValueProvider=function(){this.check=function(args){};this.eval=function(args,node){var locator=new fo.NamedFormLocator(args[0]);var collector=new kukit.ut.TupleCollector();return fo.getAllFormVars(locator,collector)}};kukit.pprovidersGlobalRegistry.register('form',_FormValueProvider,'formquery');var _CurrentFormValueProvider=function(){this.check=function(args){};this.eval=function(args,node){var locator=new fo.CurrentFormLocator(node);var collector=new kukit.ut.TupleCollector();return fo.getAllFormVars(locator,collector)}};kukit.pprovidersGlobalRegistry.register('currentForm',_CurrentFormValueProvider,'formquery');fo.getCurrentForm=function(target){return new fo.CurrentFormLocator(target).getForm()};fo.getFormVarFromCurrentForm=function(target,name){return fo.getFormVar(new fo.CurrentFormLocator(target),name)};fo.getFormVarFromNamedForm=function(formname,name){return fo.getFormVar(new fo.NamedFormLocator(formname),name)};fo.getAllFormVarsFromCurrentForm=function(target){return fo.getAllFormVars(new fo.CurrentFormLocator(target),new kukit.ut.DictCollector())};fo.getAllFormVarsFromNamedForm=function(formname){return fo.getAllFormVars(new fo.NamedFormLocator(formname),new kukit.ut.DictCollector())}}();kukit.pl=new function(){var pl=this;pl.getTargetForBrowserEvent=function(e){if(!e) var e=window.event;var target=null;if(e.target){target=e.target} else if(e.srcElement){target=e.srcElement}
return target};pl.registerBrowserEvent=function(oper,filter,eventName){var func_to_bind=oper.makeExecuteActionsHook(filter);if(!eventName)
eventName=oper.getEventName();var func=function(e){var target=pl.getTargetForBrowserEvent(e);if(oper.parms.allowbubbling||target==oper.node){var exc;var success;try{success=func_to_bind({'browserevent':e})} catch(exc1){exc=exc1}
if(success||exc){if(oper.parms.preventdefault){if(e.preventDefault)
e.preventDefault();try{e.returnValue=false} catch(exc2){}}
if(oper.parms.preventbubbling){if(!e) var e=window.event;e.cancelBubble=true;if(e.stopPropagation) e.stopPropagation()}}
if(exc!=null){throw exc}}};kukit.ut.registerEventListener(oper.node,eventName,func);if(oper.parms.preventdefault&&kukit.HAVE_SAFARI&&(oper.parms.allowbubbling||eventName=='click'&&oper.node.tagName.toLowerCase()=='a')){oper.node.onclick=function cancelClickSafari(){return false}}};pl.NativeEventBinder=function(){this.__bind__node=function(name,func_to_bind,oper){this.__bind__(name,func_to_bind,oper)};this.__bind__nodeorwindow=function(name,func_to_bind,oper){if(oper.node==null){oper.node=window}
this.__bind__(name,func_to_bind,oper)};this.__bind__window=function(name,func_to_bind,oper){oper.node=window;this.__bind__(name,func_to_bind,oper)};this.__bind__nodeordocument=function(name,func_to_bind,oper){if(oper.node==null){oper.node=document}
this.__bind__(name,func_to_bind,oper)};this.__bind__=function(name,func_to_bind,oper){oper.evaluateParameters([],{'preventdefault':'','allowbubbling':'','preventbubbling':''});oper.evalBool('preventdefault');oper.evalBool('allowbubbling');oper.evalBool('preventbubbling');if(oper.parms.preventdefault){if(name!='click'){throw new Error(kukit.E)}}
pl.registerBrowserEvent(oper,null,name)};this.__bind_key__=function(name,func_to_bind,oper){oper.evaluateParameters([],{'preventdefault':'true','allowbubbling':'','preventbubbling':'','keycodes':''});oper.evalList('keycodes');oper.evalBool('preventdefault');oper.evalBool('allowbubbling');oper.evalBool('preventbubbling');var selected_keycodes_only=false;if(oper.parms.keycodes.length>0){var keycodes={};for(var i=0;i<oper.parms.keycodes.length;i++){var keyCode=oper.parms.keycodes[i];keycodes[keyCode]=true}
selected_keycodes_only=true}
var filter=function(oper){var keyCode=oper.browserevent.keyCode;if(keyCode==0){keyCode=oper.browserevent.charCode} else{if(keyCode>=65&&keyCode<=90&&oper.browserevent.shiftKey==false){keyCode=keyCode+32}}
if(keyCode){keyCode=keyCode.toString()} else{kukit.logWarning(keyCode);keyCode='0'}
kukit.log(keyCode);oper.defaultParameters={keycode:keyCode};if(selected_keycodes_only){if(keyCode=='0'){return false} else{return keycodes[keyCode]}} else{return true}};pl.registerBrowserEvent(oper,filter)}};pl.TimeoutEventBinder=function(){this.initialize=function(){this.counters={}};this.__bind__=function(name,func_to_bind,oper){oper.evaluateParameters(['delay'],{'repeat':'true'});oper.evalBool('repeat');var key=oper.eventRule.getIndex();if(!(oper.parms.repeat&&this.counters[key])){var f=function(){if(oper.node!=null&&!oper.node.parentNode){this.clear()} else{func_to_bind()}};var delay=oper.parms.delay;var repeat=oper.parms.repeat;var counter=new kukit.ut.TimerCounter(delay,f,repeat);this.counters[key]=counter;counter.start()}};this.initialize.apply(this,arguments)};pl.LoadEventBinder=function(){this.processParameters=function(oper,iload){if(!oper){return}
if(iload){oper.evaluateParameters(['autodetect'],{'initial':'true','insert':'true'});oper.evalBool('autodetect')} else{oper.evaluateParameters([],{'initial':'true','insert':'true'})}
oper.evalBool('initial');oper.evalBool('insert');var phase;if(oper.node==null){phase=1} else{phase=oper.node._kukitMark}
if(phase==1&&!oper.parms.initial){return}
if(phase==2&&!oper.parms.insert){return}
return oper};this.__bind__=function(opers_by_eventName){var loadoper=opers_by_eventName.load;var iloadoper=opers_by_eventName.iload;loadoper=this.processParameters(loadoper);iloadoper=this.processParameters(iloadoper,true);var anyoper=loadoper||iloadoper;if(!anyoper){return}
if(anyoper.node!=null&&anyoper.node.tagName.toLowerCase()=='iframe'){if(loadoper&&!iloadoper){iloadoper=loadoper;loadoper=null;iloadoper.parms.autodetect=false}} else{if(iloadoper){throw new Error(kukit.E)}}
if(loadoper){var func_to_bind=loadoper.makeExecuteActionsHook();var remark='';kukit.engine.bindScheduler.addPost(func_to_bind,remark)}
if(iloadoper){var phase=iloadoper.node._kukitMark;if(phase==2||(phase==1&&kukit.engine.initializedOnDOMLoad)){var g=function(){var f=function(){var func_to_bind=iloadoper.makeExecuteActionsHook();var remark='';kukit.engine.bindScheduler.addPost(func_to_bind,remark)};new kukit.dom.EmbeddedContentLoadedScheduler(iloadoper.node.id,f,iloadoper.parms.autodetect)};var remark='';kukit.engine.bindScheduler.addPost(g,remark)} else{var func_to_bind=iloadoper.makeExecuteActionsHook();var remark='';kukit.engine.bindScheduler.addPost(func_to_bind,remark)}}}};pl.SpinnerEventBinder=function(){this.initialize=function(){this.state=false;var self=this;var _timeoutSetState=function(spinnerevent){self.timeoutSetState(spinnerevent)};this.scheduler=new kukit.ut.Scheduler(_timeoutSetState)};this.__bind__=function(name,func_to_bind,oper){oper.evaluateParameters([],{'laziness':0});oper.evalInt('laziness');var state_to_bind=(name=='spinneron');var self=this;var func=function(){self.setState(func_to_bind,state_to_bind,oper.parms.laziness)};kukit.engine.requestManager.registerSpinnerEvent(func,state_to_bind)};this.setState=function(func_to_bind,state,laziness){this.func_to_bind=func_to_bind;this.state=state;var now=(new Date()).valueOf();var wakeUp=now+laziness;this.scheduler.setNextWakeAtLeast(wakeUp)};this.timeoutSetState=function(){var func=this.func_to_bind;func()};this.initialize.apply(this,arguments)}}();kukit.eventsGlobalRegistry.register(null,'blur',kukit.pl.NativeEventBinder,'__bind__nodeorwindow',null);kukit.eventsGlobalRegistry.register(null,'focus',kukit.pl.NativeEventBinder,'__bind__nodeorwindow',null);kukit.eventsGlobalRegistry.register(null,'resize',kukit.pl.NativeEventBinder,'__bind__nodeorwindow',null);kukit.eventsGlobalRegistry.register(null,'click',kukit.pl.NativeEventBinder,'__bind__nodeordocument',null);kukit.eventsGlobalRegistry.register(null,'dblclick',kukit.pl.NativeEventBinder,'__bind__node',null);kukit.eventsGlobalRegistry.register(null,'mousedown',kukit.pl.NativeEventBinder,'__bind__nodeordocument',null);kukit.eventsGlobalRegistry.register(null,'mouseup',kukit.pl.NativeEventBinder,'__bind__nodeordocument',null);kukit.eventsGlobalRegistry.register(null,'mousemove',kukit.pl.NativeEventBinder,'__bind__nodeordocument',null);kukit.eventsGlobalRegistry.register(null,'mouseover',kukit.pl.NativeEventBinder,'__bind__node',null);kukit.eventsGlobalRegistry.register(null,'mouseout',kukit.pl.NativeEventBinder,'__bind__node',null);kukit.eventsGlobalRegistry.register(null,'change',kukit.pl.NativeEventBinder,'__bind__node',null);kukit.eventsGlobalRegistry.register(null,'reset',kukit.pl.NativeEventBinder,'__bind__node',null);kukit.eventsGlobalRegistry.register(null,'select',kukit.pl.NativeEventBinder,'__bind__node',null);kukit.eventsGlobalRegistry.register(null,'submit',kukit.pl.NativeEventBinder,'__bind__node',null);kukit.eventsGlobalRegistry.register(null,'keydown',kukit.pl.NativeEventBinder,'__bind_key__',null);kukit.eventsGlobalRegistry.register(null,'keypress',kukit.pl.NativeEventBinder,'__bind_key__',null);kukit.eventsGlobalRegistry.register(null,'keyup',kukit.pl.NativeEventBinder,'__bind_key__',null);kukit.eventsGlobalRegistry.register(null,'timeout',kukit.pl.TimeoutEventBinder,'__bind__',null);kukit.eventsGlobalRegistry.registerForAllEvents(null,['load','iload'],kukit.pl.LoadEventBinder,'__bind__',null,'Node');kukit.eventsGlobalRegistry.register(null,'spinneron',kukit.pl.SpinnerEventBinder,'__bind__',null);kukit.eventsGlobalRegistry.register(null,'spinneroff',kukit.pl.SpinnerEventBinder,'__bind__',null);kukit.actionsGlobalRegistry.register('error', function(oper){throw new Error('The builtin error action should never execute.')});kukit.commandsGlobalRegistry.registerFromAction('error',kukit.cr.makeGlobalCommand);kukit.actionsGlobalRegistry.register('logDebug', function(oper){var name='[logDebug] action';oper.evaluateParameters([],{'message':'[logDebug] action'},name);var message=oper.parms.message;kukit.logDebug(message)});kukit.commandsGlobalRegistry.registerFromAction('logDebug',kukit.cr.makeGlobalCommand);kukit.actionsGlobalRegistry.register('log', function(oper){oper.evaluateParameters([],{'message':'Log action'},'log action');var message=oper.parms.message;kukit.log(message)});kukit.commandsGlobalRegistry.registerFromAction('log',kukit.cr.makeGlobalCommand);kukit.actionsGlobalRegistry.register('alert', function(oper){oper.evaluateParameters([],{'message':'Alert action'},'alert action');var message=oper.parms.message;alert(message)});kukit.commandsGlobalRegistry.registerFromAction('alert',kukit.cr.makeGlobalCommand);kukit.actionsGlobalRegistry.register('replaceInnerHTML', function(oper){oper.evaluateParameters(['html'],{'withKssSetup':true});oper.evalBool('withKssSetup');var node=oper.node;node.innerHTML=oper.parms.html;var insertedNodes=[];for(var i=0;i<node.childNodes.length;i++){insertedNodes.push(node.childNodes[i])}
if(oper.parms.withKssSetup){kukit.engine.setupEvents(insertedNodes)}});kukit.commandsGlobalRegistry.registerFromAction('replaceInnerHTML',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('replaceHTML', function(oper){oper.evaluateParameters(['html'],{'withKssSetup':true});oper.evalBool('withKssSetup');var node=oper.node;var elements=kukit.dom.parseHTMLNodes(oper.parms.html);var length=elements.length;if(length>0){var parentNode=node.parentNode;var insertedNodes=[];var next=elements[length-1];parentNode.replaceChild(next,node);insertedNodes.push(next);for(var i=length-2;i>=0;i--){var inserted=parentNode.insertBefore(elements[i],next);insertedNodes.push(inserted);next=inserted}
if(oper.parms.withKssSetup){kukit.engine.setupEvents(insertedNodes)}}});kukit.commandsGlobalRegistry.registerFromAction('replaceHTML',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('setAttribute', function(oper){oper.evaluateParameters(['name','value'],{});if(oper.parms.name.toLowerCase()=='style'){throw new Error(kukit.E)}
kukit.dom.setAttribute(oper.node,oper.parms.name,oper.parms.value)});kukit.commandsGlobalRegistry.registerFromAction('setAttribute',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('setKssAttribute', function(oper){oper.evaluateParameters(['name','value'],{});kukit.dom.setKssAttribute(oper.node,oper.parms.name,oper.parms.value)});kukit.commandsGlobalRegistry.registerFromAction('setKssAttribute',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('setStyle', function(oper){oper.evaluateParameters(['name','value'],{});oper.node.style[oper.parms.name]=oper.parms.value});kukit.commandsGlobalRegistry.registerFromAction('setStyle',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('addClass', function(oper){oper.evaluateParameters(['value'],{});kukit.dom.addClassName(oper.node,oper.parms.value)});kukit.commandsGlobalRegistry.registerFromAction('addClass',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('removeClass', function(oper){oper.evaluateParameters(['value'],{});kukit.dom.removeClassName(oper.node,oper.parms.value)});kukit.commandsGlobalRegistry.registerFromAction('removeClass',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('insertHTMLAfter', function(oper){oper.evaluateParameters(['html'],{'withKssSetup':true});oper.evalBool('withKssSetup');var content=kukit.dom.parseHTMLNodes(oper.parms.html);var parentNode=oper.node.parentNode;var toNode=kukit.dom.getNextSiblingTag(oper.node);if(toNode==null){kukit.dom.appendChildren(content,parentNode)} else{kukit.dom.insertBefore(content,parentNode,toNode)}
if(oper.parms.withKssSetup){kukit.engine.setupEvents(content)}});kukit.commandsGlobalRegistry.registerFromAction('insertHTMLAfter',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('insertHTMLBefore', function(oper){oper.evaluateParameters(['html'],{'withKssSetup':true});oper.evalBool('withKssSetup');var content=kukit.dom.parseHTMLNodes(oper.parms.html);var toNode=oper.node;var parentNode=toNode.parentNode;kukit.dom.insertBefore(content,parentNode,toNode);if(oper.parms.withKssSetup){kukit.engine.setupEvents(content)}});kukit.commandsGlobalRegistry.registerFromAction('insertHTMLBefore',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('insertHTMLAsLastChild', function(oper){oper.evaluateParameters(['html'],{'withKssSetup':true});oper.evalBool('withKssSetup');var content=kukit.dom.parseHTMLNodes(oper.parms.html);kukit.dom.appendChildren(content,oper.node);if(oper.parms.withKssSetup){kukit.engine.setupEvents(content)}});kukit.commandsGlobalRegistry.registerFromAction('insertHTMLAsLastChild',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('insertHTMLAsFirstChild', function(oper){oper.evaluateParameters(['html'],{'withKssSetup':true});oper.evalBool('withKssSetup');var content=kukit.dom.parseHTMLNodes(oper.parms.html);var parentNode=oper.node;var toNode=parentNode.firstChild;if(toNode==null){kukit.dom.appendChildren(content,parentNode)} else{kukit.dom.insertBefore(content,parentNode,toNode)}
if(oper.parms.withKssSetup){kukit.engine.setupEvents(content)}});kukit.commandsGlobalRegistry.registerFromAction('insertHTMLAsFirstChild',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('deleteNodeAfter', function(oper){var parentNode=oper.node.parentNode;var toNode=kukit.dom.getNextSiblingTag(oper.node);if(toNode!=null){parentNode.removeChild(toNode)}});kukit.commandsGlobalRegistry.registerFromAction('deleteNodeAfter',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('deleteNodeBefore', function(oper){var parentNode=oper.node.parentNode;var toNode=kukit.dom.getPreviousSiblingTag(oper.node);parentNode.removeChild(toNode)});kukit.commandsGlobalRegistry.registerFromAction('deleteNodeBefore',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('deleteNode', function(oper){var parentNode=oper.node.parentNode;parentNode.removeChild(oper.node)});kukit.commandsGlobalRegistry.registerFromAction('deleteNode',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('clearChildNodes', function(oper){oper.evaluateParameters([],{'none':false});kukit.dom.clearChildNodes(oper.node)});kukit.commandsGlobalRegistry.registerFromAction('clearChildNodes',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('focus', function(oper){oper.evaluateParameters([],{'none':false});kukit.dom.focus(oper.node)});kukit.commandsGlobalRegistry.registerFromAction('focus',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('blur', function(oper){oper.evaluateParameters([],{'none':false});kukit.dom.blur(oper.node)});kukit.commandsGlobalRegistry.registerFromAction('blur',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('moveNodeAfter', function(oper){var node=oper.node;var parentNode=node.parentNode;parentNode.removeChild(node);var toNode=document.getElementById(oper.parms.html_id);var nextNode=kukit.dom.getNextSiblingTag(toNode);if(nextNode==null){toNode.parentNode.appendChild(node)} else{parentNode.insertBefore(node,nextNode)}});kukit.commandsGlobalRegistry.registerFromAction('moveNodeAfter',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('moveNodeBefore', function(oper){var node=oper.node;var toNode=document.getElementById(oper.parms.html_id);var parentNode=toNode.parentNode;parentNode.insertBefore(node,toNode)});kukit.commandsGlobalRegistry.registerFromAction('moveNodeBefore',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('moveNodeAsLastChild', function(oper){var node=oper.node;var parentNode=document.getElementById(oper.parms.html_id);parentNode.appendChild(node)});kukit.commandsGlobalRegistry.registerFromAction('moveNodeAsLastChild',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('copyChildNodesFrom', function(oper){var fromNode=document.getElementById(oper.parms.html_id);Sarissa.copyChildNodes(fromNode,oper.node)});kukit.commandsGlobalRegistry.registerFromAction('copyChildNodesFrom',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('copyChildNodesTo', function(oper){toNode=document.getElementById(oper.parms.html_id);Sarissa.copyChildNodes(oper.node,toNode)});kukit.commandsGlobalRegistry.registerFromAction('copyChildNodesTo',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('setStateVar', function(oper){kukit.engine.stateVariables[oper.parms.varname]=oper.parms.value});kukit.commandsGlobalRegistry.registerFromAction('setStateVar',kukit.cr.makeGlobalCommand);kukit.actionsGlobalRegistry.register('continueEvent', function(oper){oper.evaluateParameters(['name'],{'allnodes':'false'},'',true);oper.evalBool('allnodes','continueEvent');var parms=oper.parms;var binder=oper.binder;var allNodes=parms.allnodes;var actionParameters={};for(var key in parms){if(key!='name'&&key!='allnodes'){actionParameters[key]=parms[key]}}
if(parms.allnodes){binder.continueEventAllNodes(parms.name,actionParameters)} else{binder.continueEvent(parms.name,oper.orignode,actionParameters)}});kukit.commandsGlobalRegistry.registerFromAction('continueEvent',kukit.cr.makeGlobalCommand);kukit.actionsGlobalRegistry.register('executeCommand', function(oper){oper.evaluateParameters(['name','selector'],{'selectorType':null},'',true);var parms=oper.parms;var actionParameters={};for(var key in parms){if(key!='name'&&key!='selector'&&key!='selectorType'){actionParameters[key]=parms[key]}}
var command=new kukit.cr.makeCommand(parms.selector,parms.name,parms.selectorType,actionParameters);command.execute(oper)});kukit.actionsGlobalRegistry.register('toggleClass', function(oper){kukit.actionsGlobalRegistry.BBB_classParms(oper);var node=oper.node;var className=oper.parms.value;var nodeclass=kukit.dom.getAttribute(node,'class');var classFoundAtIndex=-1;var parts=nodeclass.split(' ');for(var i=0;i<parts.length;i++){if(parts[i]==className){classFoundAtIndex=i}}
if(classFoundAtIndex==-1){parts.push(className)} else{parts.splice(classFoundAtIndex,1)}
kukit.dom.setAttribute(node,'class',parts.join(' '))});kukit.commandsGlobalRegistry.registerFromAction('toggleClass',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('setActionServerTimeout', function(oper){oper.evaluateParameters(['value'],{},'',true);oper.evalInt('value');var value=oper.parms.value;kukit.engine.requestManager.sendingTimeout=value});kukit.commandsGlobalRegistry.registerFromAction('replaceInnerHTML',kukit.cr.makeSelectorCommand,'setHtmlAsChild');kukit.commandsGlobalRegistry.registerFromAction('replaceHTML',kukit.cr.makeSelectorCommand,'replaceNode');kukit.commandsGlobalRegistry.registerFromAction('insertHTMLAfter',kukit.cr.makeSelectorCommand,'addAfter');kukit.commandsGlobalRegistry.registerFromAction('deleteNodeAfter',kukit.cr.makeSelectorCommand,'removeNextSibling');kukit.commandsGlobalRegistry.registerFromAction('deleteNodeBefore',kukit.cr.makeSelectorCommand,'removePreviousSibling');kukit.commandsGlobalRegistry.registerFromAction('deleteNode',kukit.cr.makeSelectorCommand,'removeNode');kukit.commandsGlobalRegistry.registerFromAction('clearChildNodes',kukit.cr.makeSelectorCommand,'clearChildren');kukit.commandsGlobalRegistry.registerFromAction('copyChildNodesFrom',kukit.cr.makeSelectorCommand,'copyChildrenFrom');kukit.commandsGlobalRegistry.registerFromAction('copyChildNodesTo',kukit.cr.makeSelectorCommand,'copyChildrenTo');kukit.commandsGlobalRegistry.registerFromAction('setStateVar',kukit.cr.makeGlobalCommand,'setStatevar');kukit.actionsGlobalRegistry.register('addClassName', function(oper){kukit.actionsGlobalRegistry.BBB_classParms(oper);kukit.actionsGlobalRegistry.get('addClass')(oper)});kukit.commandsGlobalRegistry.registerFromAction('addClassName',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register('removeClassName', function(oper){kukit.actionsGlobalRegistry.BBB_classParms(oper);kukit.actionsGlobalRegistry.get('removeClass')(oper)});kukit.commandsGlobalRegistry.registerFromAction('removeClassName',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.BBB_classParms=function(oper){var old;var has_old;if(typeof(oper.parms.className)!='undefined'){old=oper.parms.className;has_old=true}
if(typeof(oper.parms.name)!='undefined'){old=oper.parms.name;has_old=true}
if(has_old){if(typeof(oper.parms.value)=='undefined'){oper.parms={value:old}} else{oper.parms={}}}};kukit.plone={};if(window.jq){jq(function(){kukit.log('KSS started by jQuery DOMLoad event.');kukit.bootstrapFromDOMLoad()})}
kukit.actionsGlobalRegistry.register("plone-initKupu", function(oper){kukit.logDebug('Enter plone-initKupu');oper.evaluateParameters([],{},'plone-initKupu action');if(oper.node.tagName.toLowerCase()!='iframe'){throw kukit.E}
var divnode=oper.node.parentNode.parentNode.parentNode.parentNode;var id=divnode.id;if(!id){throw kukit.E}
var prefix='#'+id+' ';var textarea=getFromSelector(prefix+'textarea.kupu-editor-textarea');kukit.fo.fieldUpdateRegistry.register(textarea,{editor:null,node:textarea,doInit: function(){kukit.log('Setup Kupu initialization on load event.');var self=this;initKupuOnLoad=function(){kukit.log('Initialize Kupu from onload event.');self.editor=initPloneKupu(id)};this.editor=initPloneKupu(id);jq(window).load(initKupuOnLoad)},doUpdate: function(){this.editor.saveDataToField(this.node.form,this.node);this.editor._initialized=true}});kukit.logDebug('plone-initKupu action done.')});kukit.commandsGlobalRegistry.registerFromAction('plone-initKupu',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register("plone-followLink", function(oper){oper.evaluateParameters([],{},'plone-followLink action');var url=oper.node.href;if(url.substr(0,7)=="http://"){window.location.replace(url)} else if(url.substr(0,13)=="javascript://"){eval(url.substr(13))}});kukit.commandsGlobalRegistry.registerFromAction('plone-followLink',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register("plone-submitCurrentForm", function(oper){oper.evaluateParameters([],{},'plone-submitCurrentForm action');window.onbeforeunload=null;var form=new kukit.fo.CurrentFormLocator(oper.node).getForm();form.submit()});kukit.commandsGlobalRegistry.registerFromAction('plone-submitCurrentForm',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register("plone-initFormTabs", function(oper){oper.evaluateParameters([],{},'plone-initFormTabs action');if(oper.node.tagName.toLowerCase()!='form'){throw kukit.E}
var form=oper.node;ploneFormTabbing.initializeForm(form)});kukit.commandsGlobalRegistry.registerFromAction('plone-initFormTabs',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register("plone-initFormProtection", function(oper){oper.evaluateParameters([],{},'plone-initFormProtection action');if(oper.node.tagName.toLowerCase()!='form'){throw kukit.E}
var form=oper.node;if(!window.onbeforeunload){window.onbeforeunload=new BeforeUnloadHandler().execute}
var tool=window.onbeforeunload.tool;tool.addForm(form)});kukit.commandsGlobalRegistry.registerFromAction('plone-initFormProtection',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register("plone-formProtectionCheck",
function(oper){oper.evaluateParameters([],{},'plone-formProtectionCheck action');var binderInfo=kukit.engine.binderInfoRegistry.getSingletonBinderInfoByName('plone','formProtectionChecked');var binderInstance=binderInfo.getBinderInstance();var message;if(window.onbeforeunload){var tool=window.onbeforeunload.tool;message=tool.execute()}
var result=true;if(message){var confirmMsg='Are you sure you want to navigate away from this';confirmMsg+=' page?\n\n'+message+'\n\nPress OK to continue,';confirmMsg+=' or Cancel to stay on the current page.';result=confirm(confirmMsg)}
if(result){var action='formProtectionChecked'} else{var action='formProtectionFailed'}
binderInstance.__continueEvent__(action,oper.node,{})});kukit.commandsGlobalRegistry.registerFromAction('plone-formProtectionCheck',kukit.cr.makeSelectorCommand);kukit.plone.FormProtectionCheckedEvents=function(){};kukit.plone.FormProtectionCheckedEvents.prototype.__default_failed__=function(name,oper){};kukit.eventsGlobalRegistry.register('plone','formProtectionChecked',kukit.plone.FormProtectionCheckedEvents,null,null);kukit.eventsGlobalRegistry.register('plone','formProtectionFailed',kukit.plone.FormProtectionCheckedEvents,null,'__default_failed__');kukit.actionsGlobalRegistry.register("plone-initLockingProtection",
function(oper){oper.evaluateParameters([],{},'plone-initLockingProtection action');if(oper.node.tagName.toLowerCase()!='form'){throw kukit.E}
plone.UnlockHandler.init()});kukit.commandsGlobalRegistry.registerFromAction('plone-initLockingProtection',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register("plone-removeLockProtection",
function(oper){oper.evaluateParameters([],{},'plone-removeLockProtection action');plone.UnlockHandler.cleanup()});kukit.commandsGlobalRegistry.registerFromAction('plone-removeLockProtection',kukit.cr.makeGlobalCommand);kukit.actionsGlobalRegistry.register("plone-initShiftDetection",
function(oper){oper.evaluateParameters([],{},'plone-initShiftDetection action');kukit.engine.stateVariables['plone-shiftdown']=false;jq(document).keydown(function(e){if(e.keyCode==16)
kukit.engine.stateVariables['plone-shiftdown']=true});jq(document).keyup(function(e){if(e.keyCode==16)
kukit.engine.stateVariables['plone-shiftdown']=false})});kukit.commandsGlobalRegistry.registerFromAction('plone-initShiftDetection',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register("plone-initCheckBoxSelection",
function(oper){oper.evaluateParameters([],{},'plone-initCheckBoxSelection action');kukit.engine.stateVariables['plone-foldercontents-firstcheckeditem']=null});kukit.commandsGlobalRegistry.registerFromAction('plone-initCheckBoxSelection',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register("plone-createCheckBoxSelection",
function(oper){var actionMsg='plone-createCheckBoxSelection action';oper.evaluateParameters(['group'],{},actionMsg);var node=oper.node;var firstItemVarName='plone-foldercontents-firstcheckeditem';var firstItem=kukit.engine.stateVariables[firstItemVarName];if(firstItem&&kukit.engine.stateVariables['plone-shiftdown']){var group=oper.parms.group;var allNodes=jq(group);var start=allNodes.index(firstItem);var end=allNodes.index(firstItem);if(start>end){var temp=start;start=end;end=temp}
allNodes.slice(start,end).attr('checked',firstItem.checked)}
else{kukit.engine.stateVariables[firstItemVarName]=node}});kukit.commandsGlobalRegistry.registerFromAction('plone-createCheckBoxSelection',kukit.cr.makeSelectorCommand);kukit.actionsGlobalRegistry.register("plone-initDragAndDrop",
function(oper){oper.evaluateParameters(['table'],{},'plone-initDragAndDrop action');var table=oper.parms.table;ploneDnDReorder.table=jq(table);if(!ploneDnDReorder.table.length)
return;ploneDnDReorder.rows=jq(table+" > tr,"+table+" > tbody > tr");jq(table+" > tr > td.draggable,"+table+" > tbody > tr > td.draggable").not('.notDraggable').mousedown(ploneDnDReorder.doDown).mouseup(ploneDnDReorder.doUp).addClass("draggingHook").css("cursor","ns-resize").html('&#x28ff;')});kukit.commandsGlobalRegistry.registerFromAction('plone-initDragAndDrop',kukit.cr.makeSelectorCommand);if(typeof(Effect)!="undefined"){kukit.HASEFFECTS=1} else{kukit.HASEFFECTS=0}
if(kukit.HASEFFECTS&&typeof(Effect.Transitions)!="undefined"){kukit.actionsGlobalRegistry.register("effect", function(oper){oper.evaluateParameters([],{'type':'fade'},'scriptaculous effect');var node=oper.node;if(oper.parms.type=='fade'){new Effect.Fade(node)} else if(oper.parms.type=='appear'){new Effect.Appear(node)} else if(oper.parms.type=='puff'){new Effect.Puff(node)} else if(oper.parms.type=='blinddown'){new Effect.BlindDown(node)} else if(oper.parms.type=='blindup'){new Effect.BlindUp(node)}});kukit.commandsGlobalRegistry.registerFromAction('effect',kukit.cr.makeSelectorCommand);this.$=function $(){var results=[],element;for(var i=0;i<arguments.length;i++){element=arguments[i];if(typeof element=='string')
element=document.getElementById(element);results.push(Element.extend(element))}
return results.length<2?results[0]:results}}
kukit.actionsGlobalRegistry.register("bindActionMenus", function(oper){initializeMenus();kukit.logDebug('Plone menus initialized')});kukit.log('Plone legacy [initializeMenus] action registered.');kukit.plonelegacy={};if(typeof(scanforlinks)=='undefined'){kukit.plonelegacy.bindExternalLinks=function(){}}
else{kukit.plonelegacy.bindExternalLinks=function(){scanforlinks()}}
kukit.actionsGlobalRegistry.register("bindExternalLinks", function(oper){kukit.plonelegacy.bindExternalLinks();kukit.logDebug('Plone external links bound.')});kukit.log('Plone legacy [bindExternalLinks] action registered.');kukit.actionsGlobalRegistry.register("initializeCollapsible", function(oper){activateCollapsibles()});kukit.log('Plone legacy [initializeCollapsible] action registered.');kukit.actionsGlobalRegistry.register("createTableOfContents", function(oper){createTableOfContents()});kukit.commandsGlobalRegistry.registerFromAction('createTableOfContents',kukit.cr.makeGlobalCommand);kukit.log('Plone [createTableOfContents] action registered.');

/* - ++resource++dropdown-menu.js - */
// http://www.gefaehrdungsbeurteilung.de/portal_javascripts/++resource++dropdown-menu.js?original=1
function sfHover(){var gnav=document.getElementById("portal-globalnav");if(gnav==null){return}
var sfEls=gnav.getElementsByTagName("LI");for(var i=0;i<sfEls.length;i++){sfEls[i].onmouseover=function(){this.className+=" sfhover"}
sfEls[i].onmouseout=function(){this.className=this.className.replace(new RegExp(" sfhover\\b"),"")}}}
if(window.attachEvent){registerPloneFunction(sfHover)}

/* - ++resource++linkcollection.js - */
// http://www.gefaehrdungsbeurteilung.de/portal_javascripts/++resource++linkcollection.js?original=1
var LinkCollection={};LinkCollection.maxheight=0;LinkCollection.render_doc=function render_doc(node,uid){jq('a.current-linklist-item').removeClass('current-linklist-item');jq(node).addClass('current-linklist-item');jq('li.current').removeClass('current');jq(node.parentNode).addClass('current');jq('div.prefetched-docs').each(
function(i){if(jq(this).is(':visible')){jq(this).hide()}});var doc=jq('div#doc-'+uid);doc.fadeIn(300);var linkbox=jq('div#slc-linkcollection-linkbox');var linkboxtop=linkbox.offset().top;var body=jq('html,body');body.scrollTop(linkboxtop);return false}
jQuery(function(){var elems=jQuery("h2.linkcollection");jQuery("h2.linkcollection").nextAll().andSelf().wrapAll('<div id="tabs" />');jQuery("<ul id='slc-linkcollection-list' class='navigationLinkBox'></ul>").prependTo("#tabs");for(var i=0;i<elems.length;i++){jQuery("#tabs ul#slc-linkcollection-list").append("<li><a href='#tabs-"+i+"' class='linkcollectionAnchor'>"+elems[i].textContent+"</li>");jQuery(elems[i]).nextUntil("h2.linkcollection").andSelf().wrapAll("<div id='tabs-"+i+"' />")}
jQuery('#tabs').before('<a name="linkcollectionNavi"></a>');var actual_url=jQuery('#actual-url').text();jQuery('#tabs').after('<span class="linkToTopAnchor"><a href="'+actual_url+'#linkcollectionNavi" class="solitaryLink linkcollectionAnchor" i18n:translate="label_go_up">Go up</a></span>');jQuery('#tabs').after('<div class="visualClear"></div>');jQuery("#tabs").tabs()});var jump=function(e){e.preventDefault();var target=jQuery("#tabs");jQuery('html,body').animate({scrollTop:jQuery(target).offset().top},500,function(){})}
jQuery(document).ready(function(){jQuery('a[href*=#].linkcollectionAnchor').bind("click",jump);return false});

/* - linkscanner.js - */
// http://www.gefaehrdungsbeurteilung.de/portal_javascripts/linkscanner.js?original=1
portal_url='http://www.gefaehrdungsbeurteilung.de';
function adjustTitle(elem){var newTitle='(neues Fenster)';titleVal=elem.getAttribute('title');if(titleVal){if(titleVal.lastIndexOf(newTitle)==-1){titleVal=titleVal+' '+newTitle}}
else{titleVal='Externer Link: '+newTitle}
elem.setAttribute('title',titleVal)}
function osha_gotoURL(x){if(x==''){document.forms['networkchooser'].reset();return} else{if(x.substr(5,11)=='http://'){loc=x} else{loc='http://'+x}
window.location.href=loc}}
function getContentArea(){node=document.getElementById('linkcollection-prefetched-docs')
if(!node||!jq.trim(node.innerHTML).length){node=document.getElementById('parent-fieldname-text')}
if(!node){node=document.getElementById('region-content')}
if(!node){node=document.getElementById('content')}
return node}
function getPortlets(){portlets=new Array();left=document.getElementById('portal-column-one');right=document.getElementById('portal-column-two');if(left){portlets.push(left)}
if(right){portlets.push(right)}
return portlets}
function scanforlinks(){if(!document.getElementsByTagName){return false};if(!document.getElementById){return false};contentarea=getContentArea();portlets=getPortlets();if(!contentarea&&portlets.length<=0){return false}
var links=contentarea.getElementsByTagName('a');for(i=0;i<links.length;i++){modifyLinkTag(links[i])}
for(i=0;i<portlets.length;i++){var plinks=portlets[i].getElementsByTagName('a');for(j=0;j<plinks.length;j++){modifyLinkTag(plinks[j])}}}
function injectNode(node,injectedtype,injectedclass){var injectednode=document.createElement(injectedtype)
var injectedtext=document.createTextNode(String.fromCharCode(160));injectednode.appendChild(injectedtext);injectednode.className=injectedclass;node.parentNode.insertBefore(injectednode,node)}
function modifyLinkTag(node){linkname=node.getAttribute('name');if(linkname){if(linkname.indexOf('navigationlink')==0){return}}
if(node.getAttribute('href')&&node.className.indexOf('link-plain')==-1){var linkval=node.getAttribute('href');var parentclass=node.parentNode.getAttribute('class');if(linkval.toLowerCase().indexOf(window.location.protocol+'//'+window.location.host)==0){if(node.className!='singlelink'&&node.className!='link-to-top'&&parentclass!="linkToTop"){injectNode(node,'span','link-internal-js');if(node.className=='link-internal'){node.className=''}}} else if(linkval.indexOf('http:')!=0){protocols=['ftp','news','irc','callto','javascript','mailto']
var found=0;for(p=0;p<protocols.length;p++){if(linkval.indexOf(protocols[p]+':')==0){linkclass='link-'+protocols[p]
injectNode(node,'span',linkclass+'-js')
if(node.className==linkclass||node.className==linkclass+'-js'){node.removeAttribute('class')}
found=1;break}}
if(node.className!='singlelink'&&node.className.search('fakeLink')<0&&found==0){if(parentclass!="linkToTop"){injectNode(node,'span','link-internal-js');if(node.className=='link-internal'){node.className=''}
if(node.className.toLocaleLowerCase()=='pdf'){injectNode(node,'span','link-pdf-js')}}
else{injectNode(node,'span','link-to-top')}}} else{if(node.getElementsByTagName('img').length==0){injectNode(node,'span','link-external-js');adjustTitle(node);if(node.className=='link-external'){node.className=''}}
if(node.getAttribute('onclick')==false){if(node.addEventListener) node.addEventListener("onclick",window.open(node.href),true);else if(node.attachEvent) node.attachEvent("onclick",window.open(node.href))}}
pathelems=linkval.split('/');filename=pathelems[pathelems.length-1];fileelems=filename.split('.');if(filename.indexOf('?')<0&&fileelems.length>1&&node.getElementsByTagName('img').length==0){ending=fileelems[fileelems.length-1].toLowerCase();endings=['pdf','doc','xls','ppt','zip'];for(e=0;e<endings.length;e++){if(ending==endings[e]){linkclass='link-'+ending+'-js';injectNode(node,'span',linkclass);break}}}}}
unRegisterPloneFunction(scanforlinks);jq(document).ready(function(){scanforlinks()});
function registerPloneFunction(func){if(window.addEventListener) window.addEventListener("load",func,false);else if(window.attachEvent) window.attachEvent("onload",func)}
function unRegisterPloneFunction(func){if(window.removeEventListener) window.removeEventListener("load",func,false);else if(window.detachEvent) window.detachEvent("onload",func)}


