PageSourceSearch

https://www.graphiline.com/src/applications/news/js/cache/graphiline_article_3974_version_0187.js.gz

js graphiline.com collected 2026-10-02 05:55:46 UTC 701,503 bytes, 2,999 lines download raw bytes

1var Prototype={Version:'1.7.3.1',Browser:(function(){var ua=navigator.userAgent;var isOpera=Object.prototype.toString.call(window.opera)=='[object Opera]';return{IE:!!window.attachEvent&&!isOpera,Opera:isOpera,WebKit:ua.indexOf('AppleWebKit/')>-1,Gecko:ua.indexOf('Gecko')>-1&&ua.indexOf('KHTML')===-1,MobileSafari:/Apple.*Mobile/.test(ua)}})(),BrowserFeatures:{XPath:!!document.evaluate,SelectorsAPI:!!document.querySelector,ElementExtensions:(function(){var constructor=window.Element||window.HTMLElement;return!!(constructor&&constructor.prototype)})(),SpecificElementExtensions:(function(){if(typeof window.HTMLDivElement!=='undefined')
2return!0;var div=document.createElement('div'),form=document.createElement('form'),isSupported=!1;if(div.__proto__&&(div.__proto__!==form.__proto__)){isSupported=!0}
3div=form=null;return isSupported})()},ScriptFragment:'<script[^>]*>([\\S\\s]*?)<\/script\\s*>',JSONFilter:/^\/\*-secure-([\s\S]*)\*\/\s*$/,emptyFunction:function(){},K:function(x){return x}};if(Prototype.Browser.MobileSafari)
4Prototype.BrowserFeatures.SpecificElementExtensions=!1;var Class=(function(){var IS_DONTENUM_BUGGY=(function(){for(var p in{toString:1}){if(p==='toString')return!1}
5return!0})();function subclass(){};function create(){var parent=null,properties=$A(arguments);if(Object.isFunction(properties[0]))
6parent=properties.shift();function klass(){this.initialize.apply(this,arguments)}
7Object.extend(klass,Class.Methods);klass.superclass=parent;klass.subclasses=[];if(parent){subclass.prototype=parent.prototype;klass.prototype=new subclass;parent.subclasses.push(klass)}
8for(var i=0,length=properties.length;i<length;i++)
9klass.addMethods(properties[i]);if(!klass.prototype.initialize)
10klass.prototype.initialize=Prototype.emptyFunction;klass.prototype.constructor=klass;return klass}
11function addMethods(source){var ancestor=this.superclass&&this.superclass.prototype,properties=Object.keys(source);if(IS_DONTENUM_BUGGY){if(source.toString!=Object.prototype.toString)
12properties.push("toString");if(source.valueOf!=Object.prototype.valueOf)
13properties.push("valueOf")}
14for(var i=0,length=properties.length;i<length;i++){var property=properties[i],value=source[property];if(ancestor&&Object.isFunction(value)&&value.argumentNames()[0]=="$super"){var method=value;value=(function(m){return function(){return ancestor[m].apply(this,arguments)}})(property).wrap(method);value.valueOf=(function(method){return function(){return method.valueOf.call(method)}})(method);value.toString=(function(method){return function(){return method.toString.call(method)}})(method)}
15this.prototype[property]=value}
16return this}
17return{create:create,Methods:{addMethods:addMethods}}})();(function(){var _toString=Object.prototype.toString,_hasOwnProperty=Object.prototype.hasOwnProperty,NULL_TYPE='Null',UNDEFINED_TYPE='Undefined',BOOLEAN_TYPE='Boolean',NUMBER_TYPE='Number',STRING_TYPE='String',OBJECT_TYPE='Object',FUNCTION_CLASS='[object Function]',BOOLEAN_CLASS='[object Boolean]',NUMBER_CLASS='[object Number]',STRING_CLASS='[object String]',ARRAY_CLASS='[object Array]',DATE_CLASS='[object Date]',NATIVE_JSON_STRINGIFY_SUPPORT=window.JSON&&typeof JSON.stringify==='function'&&JSON.stringify(0)==='0'&&typeof JSON.stringify(Prototype.K)==='undefined';var DONT_ENUMS=['toString','toLocaleString','valueOf','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','constructor'];var IS_DONTENUM_BUGGY=(function(){for(var p in{toString:1}){if(p==='toString')return!1}
18return!0})();function Type(o){switch(o){case null:return NULL_TYPE;case(void 0):return UNDEFINED_TYPE}
19var type=typeof o;switch(type){case 'boolean':return BOOLEAN_TYPE;case 'number':return NUMBER_TYPE;case 'string':return STRING_TYPE}
20return OBJECT_TYPE}
21function extend(destination,source){for(var property in source)
22destination[property]=source[property];return destination}
23function inspect(object){try{if(isUndefined(object))return'undefined';if(object===null)return'null';return object.inspect?object.inspect():String(object)}catch(e){if(e instanceof RangeError)return'...';throw e}}
24function toJSON(value){return Str('',{'':value},[])}
25function Str(key,holder,stack){var value=holder[key];if(Type(value)===OBJECT_TYPE&&typeof value.toJSON==='function'){value=value.toJSON(key)}
26var _class=_toString.call(value);switch(_class){case NUMBER_CLASS:case BOOLEAN_CLASS:case STRING_CLASS:value=value.valueOf()}
27switch(value){case null:return'null';case true:return'true';case false:return'false'}
28var type=typeof value;switch(type){case 'string':return value.inspect(!0);case 'number':return isFinite(value)?String(value):'null';
28case 'object':for(var i=0,length=stack.length;i<length;i++){if(stack[i]===value){throw new TypeError("Cyclic reference to '"+value+"' in object")}}
29stack.push(value);var partial=[];if(_class===ARRAY_CLASS){for(var i=0,length=value.length;i<length;i++){var str=Str(i,value,stack);partial.push(typeof str==='undefined'?'null':str)}
30partial='['+partial.join(',')+']'}else{var keys=Object.keys(value);for(var i=0,length=keys.length;i<length;i++){var key=keys[i],str=Str(key,value,stack);if(typeof str!=="undefined"){partial.push(key.inspect(!0)+':'+str)}}
31partial='{'+partial.join(',')+'}'}
32stack.pop();return partial}}
33function stringify(object){return JSON.stringify(object)}
34function toQueryString(object){return $H(object).toQueryString()}
35function toHTML(object){return object&&object.toHTML?object.toHTML():String.interpret(object)}
36function keys(object){if(Type(object)!==OBJECT_TYPE){throw new TypeError()}
37var results=[];for(var property in object){if(_hasOwnProperty.call(object,property))
38results.push(property)}
39if(IS_DONTENUM_BUGGY){for(var i=0;property=DONT_ENUMS[i];i++){if(_hasOwnProperty.call(object,property))
40results.push(property)}}
41return results}
42function values(object){var results=[];for(var property in object)
43results.push(object[property]);return results}
44function clone(object){return extend({},object)}
45function isElement(object){return!!(object&&object.nodeType==1)}
46function isArray(object){return _toString.call(object)===ARRAY_CLASS}
47var hasNativeIsArray=(typeof Array.isArray=='function')&&Array.isArray([])&&!Array.isArray({});if(hasNativeIsArray){isArray=Array.isArray}
48function isHash(object){return object instanceof Hash}
49function isFunction(object){return _toString.call(object)===FUNCTION_CLASS}
50function isString(object){return _toString.call(object)===STRING_CLASS}
51function isNumber(object){return _toString.call(object)===NUMBER_CLASS}
52function isDate(object){return _toString.call(object)===DATE_CLASS}
53function isUndefined(object){return typeof object==="undefined"}
54extend(Object,{extend:extend,inspect:inspect,toJSON:NATIVE_JSON_STRINGIFY_SUPPORT?stringify:toJSON,toQueryString:toQueryString,toHTML:toHTML,keys:Object.keys||keys,values:values,clone:clone,isElement:isElement,isArray:isArray,isHash:isHash,isFunction:isFunction,isString:isString,isNumber:isNumber,isDate:isDate,isUndefined:isUndefined})})();Object.extend(Function.prototype,(function(){var slice=Array.prototype.slice;function update(array,args){var arrayLength=array.length,length=args.length;while(length--)array[arrayLength+length]=args[length];return array}
55function merge(array,args){array=slice.call(array,0);return update(array,args)}
56function argumentNames(){var names=this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1].replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g,'').replace(/\s+/g,'').split(',');return names.length==1&&!names[0]?[]:names}
57function bind(context){if(arguments.length<2&&Object.isUndefined(arguments[0]))
58return this;if(!Object.isFunction(this))
59throw new TypeError("The object is not callable.");var nop=function(){};var __method=this,args=slice.call(arguments,1);var bound=function(){var a=merge(args,arguments);var c=this instanceof bound?this:context;return __method.apply(c,a)};nop.prototype=this.prototype;bound.prototype=new nop();return bound}
60function bindAsEventListener(context){var __method=this,args=slice.call(arguments,1);return function(event){var a=update([event||window.event],args);return __method.apply(context,a)}}
61function curry(){if(!arguments.length)return this;var __method=this,args=slice.call(arguments,0);return function(){var a=merge(args,arguments);return __method.apply(this,a)}}
62function delay(timeout){var __method=this,args=slice.call(arguments,1);timeout=timeout*1000;return window.setTimeout(function(){return __method.apply(__method,args)},timeout)}
63function p_defer(){var args=update([0.01],arguments);return this.delay.apply(this,args)}
64function wrap(wrapper){var __method=this;return function(){var a=update([__method.bind(this)],arguments);return wrapper.apply(this,a)}}
65function methodize(){if(this._methodized)return this._methodized;var __method=this;return this._methodized=function(){var a=update([this],arguments);return __method.apply(null,a)}}
66var extensions={argumentNames:argumentNames,bindAsEventListener:bindAsEventListener,curry:curry,delay:delay,p_defer:p_defer,wrap:wrap,methodize:methodize};if(!Function.prototype.bind)
67extensions.bind=bind;return extensions})());(function(proto){function toISOString(){return this.getUTCFullYear()+'-'+(this.getUTCMonth()+1).toPaddedString(2)+'-'+this.getUTCDate().toPaddedString(2)+'T'+this.getUTCHours().toPaddedString(2)+':'+this.getUTCMinutes().toPaddedString(2)+':'+this.getUTCSeconds().toPaddedString(2)+'Z'}
68function toJSON(){return this.toISOString()}
69if(!proto.toISOString)proto.toISOString=toISOString;if(!proto.toJSON)proto.toJSON=toJSON})(Date.prototype);RegExp.prototype.match=RegExp.prototype.test;RegExp.escape=function(str){return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g,'\\$1')};var PeriodicalExecuter=Class.create({initialize:function(callback,frequency){this.callback=callback;this.frequency=frequency;this.currentlyExecuting=!1;this.registerCallback()},registerCallback:function(){this.timer=setInterval(this.onTimerEvent.bind(this),this.frequency*1000)},execute:function(){this.callback(this)},stop:function(){if(!this.timer)return;clearInterval(this.timer);this.timer=null},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=!0;this.execute();this.currentlyExecuting=!1}catch(e){this.currentlyExecuting=!1;throw e}}}});Object.extend(String,{interpret:function(value){return value==null?'':String(value)},specialChar:{'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','\\':'\\\\'}});Object.extend(String.prototype,(function(){var NATIVE_JSON_PARSE_SUPPORT=window.JSON&&typeof JSON.parse==='function'&&JSON.parse('{"test": true}').test;function prepareReplacement(replacement){if(Object.isFunction(replacement))return replacement;var template=new Template(replacement);return function(match){return template.evaluate(match)}}
70function isNonEmptyRegExp(regexp){return regexp.source&&regexp.source!=='(?:)'}
71function gsub(pattern,replacement){var result='',source=this,match;replacement=prepareReplacement(replacement);if(Object.isString(pattern))
72pattern=RegExp.escape(pattern);if(!(pattern.length||isNonEmptyRegExp(pattern))){replacement=replacement('');return replacement+source.split('').join(replacement)+replacement}
73while(source.length>0){match=source.match(pattern)
74if(match&&match[0].length>0){result+=source.slice(0,match.index);result+=String.interpret(replacement(match));source=source.slice(match.index+match[0].length)}else{result+=source,source=''}}
75return result}
76function sub(pattern,replacement,count){replacement=prepareReplacement(replacement);count=Object.isUndefined(count)?1:count;
76return this.gsub(pattern,function(match){if(--count<0)return match[0];return replacement(match)})}
77function scan(pattern,iterator){this.gsub(pattern,iterator);return String(this)}
78function truncate(length,truncation){length=length||30;truncation=Object.isUndefined(truncation)?'...':truncation;return this.length>length?this.slice(0,length-truncation.length)+truncation:String(this)}
79function strip(){return this.replace(/^\s+/,'').replace(/\s+$/,'')}
80function stripTags(){return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>'"])+)?\s*("[^">]*|'[^'>])?(\/)?>|<\/\w+>/gi,'')}
81function stripScripts(){return this.replace(new RegExp(Prototype.ScriptFragment,'img'),'')}
82function extractScripts(){var matchAll=new RegExp(Prototype.ScriptFragment,'img'),matchOne=new RegExp(Prototype.ScriptFragment,'im');return(this.match(matchAll)||[]).map(function(scriptTag){return(scriptTag.match(matchOne)||['',''])[1]})}
83function evalScripts(){return this.extractScripts().map(function(script){return eval(script)})}
84function escapeHTML(){return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;')}
85function unescapeHTML(){return this.stripTags().replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&')}
86function toQueryParams(separator){var match=this.strip().match(/([^?#]*)(#.*)?$/);if(!match)return{};return match[1].split(separator||'&').inject({},function(hash,pair){if((pair=pair.split('='))[0]){var key=decodeURIComponent(pair.shift()),value=pair.length>1?pair.join('='):pair[0];if(value!=undefined){value=value.gsub('+',' ');value=decodeURIComponent(value)}
87if(key in hash){if(!Object.isArray(hash[key]))hash[key]=[hash[key]];hash[key].push(value)}else hash[key]=value}
88return hash})}
89function toArray(){return this.split('')}
90function succ(){return this.slice(0,this.length-1)+String.fromCharCode(this.charCodeAt(this.length-1)+1)}
91function times(count){return count<1?'':new Array(count+1).join(this)}
92function camelize(){return this.replace(/-+(.)?/g,function(match,chr){return chr?chr.toUpperCase():''})}
93function capitalize(){return this.charAt(0).toUpperCase()+this.substring(1).toLowerCase()}
94function underscore(){return this.replace(/::/g,'/').replace(/([A-Z]+)([A-Z][a-z])/g,'$1_$2').replace(/([a-z\d])([A-Z])/g,'$1_$2').replace(/-/g,'_').toLowerCase()}
95function dasherize(){return this.replace(/_/g,'-')}
96function inspect(useDoubleQuotes){var escapedString=this.replace(/[\x00-\x1f\\]/g,function(character){if(character in String.specialChar){return String.specialChar[character]}
97return'\\u00'+character.charCodeAt().toPaddedString(2,16)});if(useDoubleQuotes)return'"'+escapedString.replace(/"/g,'\\"')+'"';return"'"+escapedString.replace(/'/g,'\\\'')+"'"}
98function unfilterJSON(filter){return this.replace(filter||Prototype.JSONFilter,'$1')}
99function isJSON(){var str=this;if(str.blank())return!1;str=str.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@');str=str.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']');str=str.replace(/(?:^|:|,)(?:\s*\[)+/g,'');return(/^[\],:{}\s]*$/).test(str)}
100function evalJSON(sanitize){var json=this.unfilterJSON(),cx=/[\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff\u0000]/g;if(cx.test(json)){json=json.replace(cx,function(a){return'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4)})}
101try{if(!sanitize||json.isJSON())return eval('('+json+')')}catch(e){}
102throw new SyntaxError('Badly formed JSON string: '+this.inspect())}
103function parseJSON(){var json=this.unfilterJSON();return JSON.parse(json)}
104function include(pattern){return this.indexOf(pattern)>-1}
105function startsWith(pattern,position){position=Object.isNumber(position)?position:0;return this.lastIndexOf(pattern,position)===position}
106function endsWith(pattern,position){pattern=String(pattern);position=Object.isNumber(position)?position:this.length;if(position<0)position=0;if(position>this.length)position=this.length;var d=position-pattern.length;return d>=0&&this.indexOf(pattern,d)===d}
107function empty(){return this==''}
108function blank(){return/^\s*$/.test(this)}
109function interpolate(object,pattern){return new Template(this,pattern).evaluate(object)}
110return{gsub:gsub,sub:sub,scan:scan,truncate:truncate,strip:String.prototype.trim||strip,stripTags:stripTags,stripScripts:stripScripts,extractScripts:extractScripts,evalScripts:evalScripts,escapeHTML:escapeHTML,unescapeHTML:unescapeHTML,toQueryParams:toQueryParams,parseQuery:toQueryParams,toArray:toArray,succ:succ,times:times,camelize:camelize,capitalize:capitalize,underscore:underscore,dasherize:dasherize,inspect:inspect,unfilterJSON:unfilterJSON,isJSON:isJSON,evalJSON:NATIVE_JSON_PARSE_SUPPORT?parseJSON:evalJSON,include:include,startsWith:String.prototype.startsWith||startsWith,endsWith:String.prototype.endsWith||endsWith,empty:empty,blank:blank,interpolate:interpolate}})());var Template=Class.create({initialize:function(template,pattern){this.template=template.toString();this.pattern=pattern||Template.Pattern},evaluate:function(object){if(object&&Object.isFunction(object.toTemplateReplacements))
111object=object.toTemplateReplacements();
111return this.template.gsub(this.pattern,function(match){if(object==null)return(match[1]+'');var before=match[1]||'';if(before=='\\')return match[2];var ctx=object,expr=match[3],pattern=/^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;match=pattern.exec(expr);if(match==null)return before;while(match!=null){var comp=match[1].startsWith('[')?match[2].replace(/\\\\]/g,']'):match[1];ctx=ctx[comp];if(null==ctx||''==match[3])break;expr=expr.substring('['==match[3]?match[1].length:match[0].length);match=pattern.exec(expr)}
112return before+String.interpret(ctx)})}});Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;var $break={};var Enumerable=(function(){function each(iterator,context){try{this._each(iterator,context)}catch(e){if(e!=$break)throw e}
113return this}
114function eachSlice(number,iterator,context){var index=-number,slices=[],array=this.toArray();if(number<1)return array;while((index+=number)<array.length)
115slices.push(array.slice(index,index+number));return slices.collect(iterator,context)}
116function all(iterator,context){iterator=iterator||Prototype.K;var result=!0;this.each(function(value,index){result=result&&!!iterator.call(context,value,index,this);if(!result)throw $break},this);return result}
117function any(iterator,context){iterator=iterator||Prototype.K;var result=!1;this.each(function(value,index){if(result=!!iterator.call(context,value,index,this))
118throw $break},this);return result}
119function collect(iterator,context){iterator=iterator||Prototype.K;var results=[];this.each(function(value,index){results.push(iterator.call(context,value,index,this))},this);return results}
120function detect(iterator,context){var result;this.each(function(value,index){if(iterator.call(context,value,index,this)){result=value;throw $break}},this);return result}
121function findAll(iterator,context){var results=[];this.each(function(value,index){if(iterator.call(context,value,index,this))
122results.push(value)},this);return results}
123function grep(filter,iterator,context){iterator=iterator||Prototype.K;var results=[];if(Object.isString(filter))
124filter=new RegExp(RegExp.escape(filter));this.each(function(value,index){if(filter.match(value))
125results.push(iterator.call(context,value,index,this))},this);return results}
126function include(object){if(Object.isFunction(this.indexOf)&&this.indexOf(object)!=-1)
127return!0;var found=!1;this.each(function(value){if(value==object){found=!0;throw $break}});return found}
128function inGroupsOf(number,fillWith){fillWith=Object.isUndefined(fillWith)?null:fillWith;return this.eachSlice(number,function(slice){while(slice.length<number)slice.push(fillWith);return slice})}
129function inject(memo,iterator,context){this.each(function(value,index){memo=iterator.call(context,memo,value,index,this)},this);return memo}
130function invoke(method){var args=$A(arguments).slice(1);return this.map(function(value){return value[method].apply(value,args)})}
131function max(iterator,context){iterator=iterator||Prototype.K;var result;this.each(function(value,index){value=iterator.call(context,value,index,this);if(result==null||value>=result)
132result=value},this);return result}
133function min(iterator,context){iterator=iterator||Prototype.K;var result;this.each(function(value,index){value=iterator.call(context,value,index,this);if(result==null||value<result)
134result=value},this);return result}
135function partition(iterator,context){iterator=iterator||Prototype.K;var trues=[],falses=[];this.each(function(value,index){(iterator.call(context,value,index,this)?trues:falses).push(value)},this);return[trues,falses]}
136function pluck(property){var results=[];this.each(function(value){results.push(value[property])});return results}
137function reject(iterator,context){var results=[];this.each(function(value,index){if(!iterator.call(context,value,index,this))
138results.push(value)},this);return results}
139function sortBy(iterator,context){return this.map(function(value,index){return{value:value,criteria:iterator.call(context,value,index,this)}},this).sort(function(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0}).pluck('value')}
140function toArray(){return this.map()}
141function zip(){var iterator=Prototype.K,args=$A(arguments);if(Object.isFunction(args.last()))
142iterator=args.pop();var collections=[this].concat(args).map($A);return this.map(function(value,index){return iterator(collections.pluck(index))})}
143function size(){return this.toArray().length}
144function inspect(){return'#<Enumerable:'+this.toArray().inspect()+'>'}
145return{each:each,eachSlice:eachSlice,all:all,every:all,any:any,some:any,collect:collect,map:collect,detect:detect,findAll:findAll,select:findAll,filter:findAll,grep:grep,include:include,member:include,inGroupsOf:inGroupsOf,inject:inject,invoke:invoke,max:max,min:min,partition:partition,pluck:pluck,reject:reject,sortBy:sortBy,toArray:toArray,entries:toArray,zip:zip,size:size,inspect:inspect,find:detect}})();function $A(iterable){if(!iterable)return[];if('toArray' in Object(iterable))return iterable.toArray();var length=iterable.length||0,results=new Array(length);while(length--)results[length]=iterable[length];return results}
146function $w(string){if(!Object.isString(string))return[];string=string.strip();return string?string.split(/\s+/):[]}
147Array.from=$A;(function(){var arrayProto=Array.prototype,slice=arrayProto.slice,_each=arrayProto.forEach;function each(iterator,context){for(var i=0,length=this.length>>>0;i<length;i++){if(i in this)iterator.call(context,this[i],i,this)}}
148if(!_each)_each=each;function clear(){this.length=0;return this}
149function first(){return this[0]}
150function last(){return this[this.length-1]}
151function compact(){return this.select(function(value){return value!=null})}
152function flatten(){return this.inject([],function(array,value){if(Object.isArray(value))
153return array.concat(value.flatten());array.push(value);return array})}
154function without(){var values=slice.call(arguments,0);return this.select(function(value){return!values.include(value)})}
155function reverse(inline){return(inline===!1?this.toArray():this)._reverse()}
156function uniq(sorted){return this.inject([],function(array,value,index){if(0==index||(sorted?array.last()!=value:!array.include(value)))
157array.push(value);return array})}
158function intersect(array){return this.uniq().findAll(function(item){return array.indexOf(item)!==-1})}
159function clone(){return slice.call(this,0)}
160function size(){return this.length}
161function inspect(){return'['+this.map(Object.inspect).join(', ')+']'}
162function indexOf(item,i){if(this==null)throw new TypeError();var array=Object(this),length=array.length>>>0;if(length===0)return-1;i=Number(i);if(isNaN(i)){i=0}else if(i!==0&&isFinite(i)){i=(i>0?1:-1)*Math.floor(Math.abs(i))}
163if(i>length)return-1;var k=i>
163=0?i:Math.max(length-Math.abs(i),0);for(;k<length;k++)
164if(k in array&&array[k]===item)return k;return-1}
165function lastIndexOf(item,i){if(this==null)throw new TypeError();var array=Object(this),length=array.length>>>0;if(length===0)return-1;if(!Object.isUndefined(i)){i=Number(i);if(isNaN(i)){i=0}else if(i!==0&&isFinite(i)){i=(i>0?1:-1)*Math.floor(Math.abs(i))}}else{i=length}
166var k=i>=0?Math.min(i,length-1):length-Math.abs(i);for(;k>=0;k--)
167if(k in array&&array[k]===item)return k;return-1}
168function concat(_){var array=[],items=slice.call(arguments,0),item,n=0;items.unshift(this);for(var i=0,length=items.length;i<length;i++){item=items[i];if(Object.isArray(item)&&!('callee' in item)){for(var j=0,arrayLength=item.length;j<arrayLength;j++){if(j in item)array[n]=item[j];n++}}else{array[n++]=item}}
169array.length=n;return array}
170function wrapNative(method){return function(){if(arguments.length===0){return method.call(this,Prototype.K)}else if(arguments[0]===undefined){var args=slice.call(arguments,1);args.unshift(Prototype.K);return method.apply(this,args)}else{return method.apply(this,arguments)}}}
171function map(iterator){if(this==null)throw new TypeError();iterator=iterator||Prototype.K;var object=Object(this);var results=[],context=arguments[1],n=0;for(var i=0,length=object.length>>>0;i<length;i++){if(i in object){results[n]=iterator.call(context,object[i],i,object)}
172n++}
173results.length=n;return results}
174if(arrayProto.map){map=wrapNative(Array.prototype.map)}
175function filter(iterator){if(this==null||!Object.isFunction(iterator))
176throw new TypeError();var object=Object(this);var results=[],context=arguments[1],value;for(var i=0,length=object.length>>>0;i<length;i++){if(i in object){value=object[i];if(iterator.call(context,value,i,object)){results.push(value)}}}
177return results}
178if(arrayProto.filter){filter=Array.prototype.filter}
179function some(iterator){if(this==null)throw new TypeError();iterator=iterator||Prototype.K;var context=arguments[1];var object=Object(this);for(var i=0,length=object.length>>>0;i<length;i++){if(i in object&&iterator.call(context,object[i],i,object)){return!0}}
180return!1}
181if(arrayProto.some){some=wrapNative(Array.prototype.some)}
182function every(iterator){if(this==null)throw new TypeError();iterator=iterator||Prototype.K;var context=arguments[1];var object=Object(this);for(var i=0,length=object.length>>>0;i<length;i++){if(i in object&&!iterator.call(context,object[i],i,object)){return!1}}
183return!0}
184if(arrayProto.every){every=wrapNative(Array.prototype.every)}
185Object.extend(arrayProto,Enumerable);if(arrayProto.entries===Enumerable.entries){delete arrayProto.entries}
186if(!arrayProto._reverse)
187arrayProto._reverse=arrayProto.reverse;Object.extend(arrayProto,{_each:_each,map:map,collect:map,select:filter,filter:filter,findAll:filter,some:some,any:some,every:every,all:every,clear:clear,first:first,last:last,compact:compact,flatten:flatten,without:without,reverse:reverse,uniq:uniq,intersect:intersect,clone:clone,toArray:clone,size:size,inspect:inspect});
187var CONCAT_ARGUMENTS_BUGGY=(function(){return[].concat(arguments)[0][0]!==1})(1,2);if(CONCAT_ARGUMENTS_BUGGY)arrayProto.concat=concat;if(!arrayProto.indexOf)arrayProto.indexOf=indexOf;if(!arrayProto.lastIndexOf)arrayProto.lastIndexOf=lastIndexOf})();function $H(object){return new Hash(object)};var Hash=Class.create(Enumerable,(function(){function initialize(object){this._object=Object.isHash(object)?object.toObject():Object.clone(object)}
188function _each(iterator,context){var i=0;for(var key in this._object){var value=this._object[key],pair=[key,value];pair.key=key;pair.value=value;iterator.call(context,pair,i);i++}}
189function set(key,value){return this._object[key]=value}
190function get(key){if(this._object[key]!==Object.prototype[key])
191return this._object[key]}
192function unset(key){var value=this._object[key];delete this._object[key];return value}
193function toObject(){return Object.clone(this._object)}
194function keys(){return this.pluck('key')}
195function values(){return this.pluck('value')}
196function index(value){var match=this.detect(function(pair){return pair.value===value});return match&&match.key}
197function merge(object){return this.clone().update(object)}
198function update(object){return new Hash(object).inject(this,function(result,pair){result.set(pair.key,pair.value);return result})}
199function toQueryPair(key,value){if(Object.isUndefined(value))return key;value=String.interpret(value);value=value.gsub(/(\r)?\n/,'\r\n');value=encodeURIComponent(value);value=value.gsub(/%20/,'+');return key+'='+value}
200function toQueryString(){return this.inject([],function(results,pair){var key=encodeURIComponent(pair.key),values=pair.value;if(values&&typeof values=='object'){if(Object.isArray(values)){var queryValues=[];for(var i=0,len=values.length,value;i<len;i++){value=values[i];queryValues.push(toQueryPair(key,value))}
201return results.concat(queryValues)}}else results.push(toQueryPair(key,values));return results}).join('&')}
202function inspect(){return'#<Hash:{'+this.map(function(pair){return pair.map(Object.inspect).join(': ')}).join(', ')+'}>'}
203function clone(){return new Hash(this)}
204return{initialize:initialize,_each:_each,set:set,get:get,unset:unset,toObject:toObject,toTemplateReplacements:toObject,keys:keys,values:values,index:index,merge:merge,update:update,toQueryString:toQueryString,inspect:inspect,toJSON:toObject,clone:clone}})());Hash.from=$H;Object.extend(Number.prototype,(function(){function toColorPart(){return this.toPaddedString(2,16)}
205function succ(){return this+1}
206function times(iterator,context){$R(0,this,!0).each(iterator,context);return this}
207function toPaddedString(length,radix){var string=this.toString(radix||10);return'0'.times(length-string.length)+string}
208function abs(){return Math.abs(this)}
209function round(){return Math.round(this)}
210function ceil(){return Math.ceil(this)}
211function floor(){return Math.floor(this)}
212return{toColorPart:toColorPart,succ:succ,times:times,toPaddedString:toPaddedString,abs:abs,round:round,ceil:ceil,floor:floor}})());function $R(start,end,exclusive){return new ObjectRange(start,end,exclusive)}
213var ObjectRange=Class.create(Enumerable,(function(){function initialize(start,end,exclusive){this.start=start;this.end=end;this.exclusive=exclusive}
214function _each(iterator,context){var value=this.start,i;for(i=0;this.include(value);i++){iterator.call(context,value,i);value=value.succ()}}
215function include(value){if(value<this.start)
216return!1;if(this.exclusive)
217return value<this.end;return value<=this.end}
218return{initialize:initialize,_each:_each,include:include}})());var Abstract={};var Try={these:function(){var returnValue;for(var i=0,length=arguments.length;i<length;i++){var lambda=arguments[i];try{returnValue=lambda();break}catch(e){}}
219return returnValue}};var Ajax={getTransport:function(){return Try.these(function(){return new XMLHttpRequest()},function(){return new ActiveXObject('Msxml2.XMLHTTP')},function(){return new ActiveXObject('Microsoft.XMLHTTP')})||!1},activeRequestCount:0};Ajax.Responders={responders:[],_each:function(iterator,context){this.responders._each(iterator,context)},register:function(responder){if(!this.include(responder))
220this.responders.push(responder)},unregister:function(responder){this.responders=this.responders.without(responder)},dispatch:function(callback,request,transport,json){this.each(function(responder){if(Object.isFunction(responder[callback])){try{responder[callback].apply(responder,[request,transport,json])}catch(e){}}})}};Object.extend(Ajax.Responders,Enumerable);Ajax.Responders.register({onCreate:function(){Ajax.activeRequestCount++},onComplete:function(){Ajax.activeRequestCount--}});Ajax.Base=Class.create({initialize:function(options){this.options={method:'post',asynchronous:!0,contentType:'application/x-www-form-urlencoded',encoding:'UTF-8',parameters:'',evalJSON:!0,evalJS:!0};Object.extend(this.options,options||{});this.options.method=this.options.method.toLowerCase();if(Object.isHash(this.options.parameters))
221this.options.parameters=this.options.parameters.toObject()}});Ajax.Request=Class.create(Ajax.Base,{_complete:!1,initialize:function($super,url,o
221ptions){$super(options);this.transport=Ajax.getTransport();this.request(url)},request:function(url){this.url=url;this.method=this.options.method;var params=Object.isString(this.options.parameters)?this.options.parameters:Object.toQueryString(this.options.parameters);if(!['get','post'].include(this.method)){params+=(params?'&':'')+"_method="+this.method;this.method='post'}
222if(params&&this.method==='get'){this.url+=(this.url.include('?')?'&':'?')+params}
223this.parameters=params.toQueryParams();try{var response=new Ajax.Response(this);if(this.options.onCreate)this.options.onCreate(response);Ajax.Responders.dispatch('onCreate',this,response);this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);if(this.options.asynchronous)this.respondToReadyState.bind(this).p_defer(1);this.transport.onreadystatechange=this.onStateChange.bind(this);this.setRequestHeaders();this.body=this.method=='post'?(this.options.postBody||params):null;this.transport.send(this.body);if(!this.options.asynchronous&&this.transport.overrideMimeType)
224this.onStateChange()}catch(e){this.dispatchException(e)}},onStateChange:function(){var readyState=this.transport.readyState;if(readyState>1&&!((readyState==4)&&this._complete))
225this.respondToReadyState(this.transport.readyState)},setRequestHeaders:function(){var headers={'X-Requested-With':'XMLHttpRequest','X-Prototype-Version':Prototype.Version,'Accept':'text/javascript, text/html, application/xml, text/xml, */*'};if(this.method=='post'){headers['Content-type']=this.options.contentType+(this.options.encoding?'; charset='+this.options.encoding:'');if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005)
226headers.Connection='close'}
227if(typeof this.options.requestHeaders=='object'){var extras=this.options.requestHeaders;if(Object.isFunction(extras.push))
228for(var i=0,length=extras.length;i<length;i+=2)
229headers[extras[i]]=extras[i+1];else $H(extras).each(function(pair){headers[pair.key]=pair.value})}
230for(var name in headers)
231if(headers[name]!=null)
232this.transport.setRequestHeader(name,headers[name]);},success:function(){var status=this.getStatus();return!status||(status>=200&&status<300)||status==304},getStatus:function(){try{if(this.transport.status===1223)return 204;return this.transport.status||0}catch(e){return 0}},respondToReadyState:function(readyState){var state=Ajax.Request.Events[readyState],response=new Ajax.Response(this);if(state=='Complete'){try{this._complete=!0;(this.options['on'+response.status]||this.options['on'+(this.success()?'Success':'Failure')]||Prototype.emptyFunction)(response,response.headerJSON)}catch(e){this.dispatchException(e)}
233var contentType=response.getHeader('Content-type');if(this.options.evalJS=='force'||(this.options.evalJS&&this.isSameOrigin()&&contentType&&contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
234this.evalResponse()}
235try{(this.options['on'+state]||Prototype.emptyFunction)(response,response.headerJSON);Ajax.Responders.dispatch('on'+state,this,response,response.headerJSON)}catch(e){this.dispatchException(e)}
236if(state=='Complete'){this.transport.onreadystatechange=Prototype.emptyFunction}},isSameOrigin:function(){var m=this.url.match(/^\s*https?:\/\/[^\/]*/);return!m||(m[0]=='#{protocol}//#{domain}#{port}'.interpolate({protocol:location.protocol,domain:document.domain,port:location.port?':'+location.port:''}))},getHeader:function(name){try{return this.transport.getResponseHeader(name)||null}catch(e){return null}},evalResponse:function(){try{return eval((this.transport.responseText||'').unfilterJSON())}catch(e){this.dispatchException(e)}},dispatchException:function(exception){(this.options.onException||Prototype.emptyFunction)(this,exception);Ajax.Responders.dispatch('onException',this,exception)}});Ajax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];Ajax.Response=Class.create({initialize:function(request){this.request=request;var transport=this.transport=request.transport,readyState=this.readyState=transport.readyState;if((readyState>2&&!Prototype.Browser.IE)||readyState==4){this.status=this.getStatus();this.statusText=this.getStatusText();this.responseText=String.interpret(transport.responseText);this.headerJSON=this._getHeaderJSON()}
237if(readyState==4){var xml=transport.responseXML;this.responseXML=Object.isUndefined(xml)?null:xml;this.responseJSON=this._getResponseJSON()}},status:0,statusText:'',getStatus:Ajax.Request.prototype.getStatus,getStatusText:function(){try{return this.transport.statusText||''}catch(e){return''}},getHeader:Ajax.Request.prototype.getHeader,getAllHeaders:function(){try{return this.getAllResponseHeaders()}catch(e){return null}},getResponseHeader:function(name){return this.transport.getResponseHeader(name)},getAllResponseHeaders:function(){return this.transport.getAllResponseHeaders()},_getHeaderJSON:function(){var json=this.getHeader('X-JSON');if(!json)return null;try{json=decodeURIComponent(escape(json))}catch(e){}
238try{return json.evalJSON(this.request.options.sanitizeJSON||!this.request.isSameOrigin())}catch(e){this.request.dispatchException(e)}},_getResponseJSON:function(){var options=this.request.options;if(!options.evalJSON||(options.evalJSON!='force'&&!(this.getHeader('Content-type')||'').include('application/json'))||this.responseText.blank())
239return null;try{return this.responseText.evalJSON(options.sanitizeJSON||!this.request.isSameOrigin())}catch(e){this.request.dispatchException(e)}}});Ajax.Updater=Class.create(Ajax.Request,{initialize:function($super,container,url,o
239ptions){this.container={success:(container.success||container),failure:(container.failure||(container.success?null:container))};options=Object.clone(options);var onComplete=options.onComplete;options.onComplete=(function(response,json){this.updateContent(response.responseText);if(Object.isFunction(onComplete))onComplete(response,json)}).bind(this);$super(url,options)},updateContent:function(responseText){var receiver=this.container[this.success()?'success':'failure'],options=this.options;if(!options.evalScripts)responseText=responseText.stripScripts();if(receiver=$(receiver)){if(options.insertion){if(Object.isString(options.insertion)){var insertion={};insertion[options.insertion]=responseText;receiver.insert(insertion)}else options.insertion(receiver,responseText)}else receiver.update(responseText)}}});Ajax.PeriodicalUpdater=Class.create(Ajax.Base,{initialize:function($super,container,url,options){$super(options);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start()},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent()},stop:function(){this.updater.options.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments)},updateComplete:function(response){if(this.options.decay){this.decay=(response.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=response.responseText}
240this.timer=this.onTimerEvent.bind(this).delay(this.decay*this.frequency)},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options)}});(function(GLOBAL){var UNDEFINED;var SLICE=Array.prototype.slice;var DIV=document.createElement('div');function $(element){if(arguments.length>1){for(var i=0,elements=[],length=arguments.length;i<length;i++)
241elements.push($(arguments[i]));return elements}
242if(Object.isString(element))
243element=document.getElementById(element);return Element.extend(element)}
244GLOBAL.$=$;if(!GLOBAL.Node)GLOBAL.Node={};if(!GLOBAL.Node.ELEMENT_NODE){Object.extend(GLOBAL.Node,{ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12})}
245var ELEMENT_CACHE={};function shouldUseCreationCache(tagName,attributes){if(tagName==='select')return!1;if('type' in attributes)return!1;return!0}
246var HAS_EXTENDED_CREATE_ELEMENT_SYNTAX=(function(){try{var el=document.createElement('<input name="x">');return el.tagName.toLowerCase()==='input'&&el.name==='x'}catch(err){return!1}})();var oldElement=GLOBAL.Element;function Element(tagName,attributes){attributes=attributes||{};tagName=tagName.toLowerCase();if(HAS_EXTENDED_CREATE_ELEMENT_SYNTAX&&attributes.name){tagName='<'+tagName+' name="'+attributes.name+'">';delete attributes.name;return Element.writeAttribute(document.createElement(tagName),attributes)}
247if(!ELEMENT_CACHE[tagName])
248ELEMENT_CACHE[tagName]=Element.extend(document.createElement(tagName));var node=shouldUseCreationCache(tagName,attributes)?ELEMENT_CACHE[tagName].cloneNode(!1):document.createElement(tagName);return Element.writeAttribute(node,attributes)}
249GLOBAL.Element=Element;Object.extend(GLOBAL.Element,oldElement||{});if(oldElement)GLOBAL.Element.prototype=oldElement.prototype;Element.Methods={ByTag:{},Simulated:{}};var methods={};var INSPECT_ATTRIBUTES={id:'id',className:'class'};function inspect(element){element=$(element);var result='<'+element.tagName.toLowerCase();var attribute,value;for(var property in INSPECT_ATTRIBUTES){attribute=INSPECT_ATTRIBUTES[property];value=(element[property]||'').toString();if(value)result+=' '+attribute+'='+value.inspect(!0)}
250return result+'>'}
251methods.inspect=inspect;function visible(element){return $(element).getStyle('display')!=='none'}
252function toggle(element,bool){element=$(element);if(typeof bool!=='boolean')
253bool=!Element.visible(element);Element[bool?'show':'hide'](element);return element}
254function hide(element){element=$(element);element.style.display='none';return element}
255function show(element){element=$(element);element.style.display='';return element}
256Object.extend(methods,{visible:visible,toggle:toggle,hide:hide,show:show});function remove(element){element=$(element);element.parentNode.removeChild(element);return element}
257var SELECT_ELEMENT_INNERHTML_BUGGY=(function(){var el=document.createElement("select"),isBuggy=!0;el.innerHTML="<option value=\"test\">test</option>";if(el.options&&el.options[0]){isBuggy=el.options[0].nodeName.toUpperCase()!=="OPTION"}
258el=null;return isBuggy})();var TABLE_ELEMENT_INNERHTML_BUGGY=(function(){try{var el=document.createElement("table");if(el&&el.tBodies){el.innerHTML="<tbody><tr><td>test</td></tr></tbody>";var isBuggy=typeof el.tBodies[0]=="undefined";el=null;return isBuggy}}catch(e){return!0}})();var LINK_ELEMENT_INNERHTML_BUGGY=(function(){try{var el=document.createElement('div');el.innerHTML="<link />";var isBuggy=(el.childNodes.length===0);el=null;return isBuggy}catch(e){return!0}})();var ANY_INNERHTML_BUGGY=SELECT_ELEMENT_INNERHTML_BUGGY||TABLE_ELEMENT_INNERHTML_BUGGY||LINK_ELEMENT_INNERHTML_BUGGY;
258var SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING=(function(){var s=document.createElement("script"),isBuggy=!1;try{s.appendChild(document.createTextNode(""));isBuggy=!s.firstChild||s.firstChild&&s.firstChild.nodeType!==3}catch(e){isBuggy=!0}
259s=null;return isBuggy})();function update(element,content){element=$(element);var descendants=element.getElementsByTagName('*'),i=descendants.length;while(i--)purgeElement(descendants[i]);if(content&&content.toElement)
260content=content.toElement();if(Object.isElement(content))
261return element.update().insert(content);content=Object.toHTML(content);var tagName=element.tagName.toUpperCase();if(tagName==='SCRIPT'&&SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING){element.text=content;return element}
262if(ANY_INNERHTML_BUGGY){if(tagName in INSERTION_TRANSLATIONS.tags){while(element.firstChild)
263element.removeChild(element.firstChild);var nodes=getContentFromAnonymousElement(tagName,content.stripScripts());for(var i=0,node;node=nodes[i];i++)
264element.appendChild(node);}else if(LINK_ELEMENT_INNERHTML_BUGGY&&Object.isString(content)&&content.indexOf('<link')>-1){while(element.firstChild)
265element.removeChild(element.firstChild);var nodes=getContentFromAnonymousElement(tagName,content.stripScripts(),!0);for(var i=0,node;node=nodes[i];i++)
266element.appendChild(node);}else{element.innerHTML=content.stripScripts()}}else{element.innerHTML=content.stripScripts()}
267content.evalScripts.bind(content).p_defer();return element}
268function replace(element,content){element=$(element);if(content&&content.toElement){content=content.toElement()}else if(!Object.isElement(content)){content=Object.toHTML(content);var range=element.ownerDocument.createRange();range.selectNode(element);content.evalScripts.bind(content).p_defer();content=range.createContextualFragment(content.stripScripts())}
269element.parentNode.replaceChild(content,element);return element}
270var INSERTION_TRANSLATIONS={before:function(element,node){element.parentNode.insertBefore(node,element)},top:function(element,node){element.insertBefore(node,element.firstChild)},bottom:function(element,node){element.appendChild(node)},after:function(element,node){element.parentNode.insertBefore(node,element.nextSibling)},tags:{TABLE:['<table>','</table>',1],TBODY:['<table><tbody>','</tbody></table>',2],TR:['<table><tbody><tr>','</tr></tbody></table>',3],TD:['<table><tbody><tr><td>','</td></tr></tbody></table>',4],SELECT:['<select>','</select>',1]}};var tags=INSERTION_TRANSLATIONS.tags;Object.extend(tags,{THEAD:tags.TBODY,TFOOT:tags.TBODY,TH:tags.TD});function replace_IE(element,content){element=$(element);if(content&&content.toElement)
271content=content.toElement();if(Object.isElement(content)){element.parentNode.replaceChild(content,element);return element}
272content=Object.toHTML(content);var parent=element.parentNode,tagName=parent.tagName.toUpperCase();if(tagName in INSERTION_TRANSLATIONS.tags){var nextSibling=Element.next(element);var fragments=getContentFromAnonymousElement(tagName,content.stripScripts());parent.removeChild(element);var iterator;if(nextSibling)
273iterator=function(node){parent.insertBefore(node,nextSibling)};else iterator=function(node){parent.appendChild(node)}
274fragments.each(iterator)}else{element.outerHTML=content.stripScripts()}
275content.evalScripts.bind(content).p_defer();return element}
276if('outerHTML' in document.documentElement)
277replace=replace_IE;function isContent(content){if(Object.isUndefined(content)||content===null)return!1;if(Object.isString(content)||Object.isNumber(content))return!0;if(Object.isElement(content))return!0;if(content.toElement||content.toHTML)return!0;return!1}
278function insertContentAt(element,content,position){position=position.toLowerCase();var method=INSERTION_TRANSLATIONS[position];if(content&&content.toElement)content=content.toElement();if(Object.isElement(content)){method(element,content);return element}
279content=Object.toHTML(content);var tagName=((position==='before'||position==='after')?element.parentNode:element).tagName.toUpperCase();var childNodes=getContentFromAnonymousElement(tagName,content.stripScripts());if(position==='top'||position==='after')childNodes.reverse();for(var i=0,node;node=childNodes[i];i++)
280method(element,node);content.evalScripts.bind(content).p_defer()}
281function insert(element,insertions){element=$(element);if(isContent(insertions))
282insertions={bottom:insertions};for(var position in insertions)
283insertContentAt(element,insertions[position],position);return element}
284function wrap(element,wrapper,attributes){element=$(element);if(Object.isElement(wrapper)){$(wrapper).writeAttribute(attributes||{})}else if(Object.isString(wrapper)){wrapper=new Element(wrapper,attributes)}else{wrapper=new Element('div',wrapper)}
285if(element.parentNode)
286element.parentNode.replaceChild(wrapper,element);wrapper.appendChild(element);return wrapper}
287function cleanWhitespace(element){element=$(element);var node=element.firstChild;while(node){var nextNode=node.nextSibling;if(node.nodeType===Node.TEXT_NODE&&!/\S/.test(node.nodeValue))
288element.removeChild(node);node=nextNode}
289return element}
290function empty(element){return $(element).innerHTML.blank()}
291function getContentFromAnonymousElement(tagName,html,force){var t=INSERTION_TRANSLATIONS.tags[tagName],div=DIV;var workaround=!!t;if(!workaround&&force){workaround=!0;t=['','',0]}
292if(workaround){div.innerHTML='&#160;'+t[0]+html+t[1];div.removeChild(div.firstChild);for(var i=t[2];i--;)
293div=div.firstChild}else{div.innerHTML=html}
294return $A(div.childNodes)}
295function clone(element,deep){if(!(element=$(element)))return;var clone=element.cloneNode(deep);if(!HAS_UNIQUE_ID_PROPERTY){clone._prototypeUID=UNDEFINED;if(deep){var descendants=Element.select(clone,'*'),i=descendants.length;while(i--)
296descendants[i]._prototypeUID=UNDEFINED}}
297return Element.extend(clone)}
298function purgeElement(element){var uid=getUniqueElementID(element);if(uid){Element.stopObserving(element);if(!HAS_UNIQUE_ID_PROPERTY)
299element._prototypeUID=UNDEFINED;delete Element.Storage[uid]}}
300function purgeCollection(elements){var i=elements.length;while(i--)
301purgeElement(elements[i]);}
302function purgeCollection_IE(elements){var i=elements.length,element,uid;while(i--){element=elements[i];uid=getUniqueElementID(element);delete Element.Storage[uid];delete Event.cache[uid]}}
303if(HAS_UNIQUE_ID_PROPERTY){purgeCollection=purgeCollection_IE}
304function purge(element){if(!(element=$(element)))return;purgeElement(element);var descendants=element.getElementsByTagName('*'),i=descendants.length;while(i--)purgeElement(descendants[i]);return null}
305Object.extend(methods,{remove:remove,update:update,replace:replace,insert:insert,wrap:wrap,cleanWhitespace:cleanWhitespace,empty:empty,clone:clone,purge:purge});function recursivelyCollect(element,property,maximumLength){element=$(element);maximumLength=maximumLength||-1;var elements=[];while(element=element[property]){if(element.nodeType===Node.ELEMENT_NODE)
306elements.push(Element.extend(element));if(elements.length===maximumLength)break}
307return elements}
308function ancestors(element){return recursivelyCollect(element,'parentNode')}
309function descendants(element){return Element.select(element,'*')}
310function firstDescendant(element){element=$(element).firstChild;while(element&&element.nodeType!==Node.ELEMENT_NODE)
311element=element.nextSibling;return $(element)}
312function immediateDescendants(element){var results=[],child=$(element).firstChild;while(child){if(child.nodeType===Node.ELEMENT_NODE)
313results.push(Element.extend(child));child=child.nextSibling}
314return results}
315function previousSiblings(element){return recursivelyCollect(element,'previousSibling')}
316function nextSiblings(element){return recursivelyCollect(element,'nextSibling')}
317function siblings(element){element=$(element);var previous=previousSiblings(element),next=nextSiblings(element);return previous.reverse().concat(next)}
318function match(element,selector){element=$(element);if(Object.isString(selector))
319return Prototype.Selector.match(element,selector);return selector.match(element)}
320function _recursivelyFind(element,property,expression,index){element=$(element),expression=expression||0,index=index||
3200;if(Object.isNumber(expression)){index=expression,expression=null}
321while(element=element[property]){if(element.nodeType!==1)continue;if(expression&&!Prototype.Selector.match(element,expression))
322continue;if(--index>=0)continue;return Element.extend(element)}}
323function up(element,expression,index){element=$(element);if(arguments.length===1)return $(element.parentNode);return _recursivelyFind(element,'parentNode',expression,index)}
324function down(element,expression,index){if(arguments.length===1)return firstDescendant(element);element=$(element),expression=expression||0,index=index||0;if(Object.isNumber(expression))
325index=expression,expression='*';var node=Prototype.Selector.select(expression,element)[index];return Element.extend(node)}
326function previous(element,expression,index){return _recursivelyFind(element,'previousSibling',expression,index)}
327function next(element,expression,index){return _recursivelyFind(element,'nextSibling',expression,index)}
328function select(element){element=$(element);var expressions=SLICE.call(arguments,1).join(', ');return Prototype.Selector.select(expressions,element)}
329function adjacent(element){element=$(element);var expressions=SLICE.call(arguments,1).join(', ');var siblings=Element.siblings(element),results=[];for(var i=0,sibling;sibling=siblings[i];i++){if(Prototype.Selector.match(sibling,expressions))
330results.push(sibling)}
331return results}
332function descendantOf_DOM(element,ancestor){element=$(element),ancestor=$(ancestor);if(!element||!ancestor)return!1;while(element=element.parentNode)
333if(element===ancestor)return!0;return!1}
334function descendantOf_contains(element,ancestor){element=$(element),ancestor=$(ancestor);if(!element||!ancestor)return!1;if(!ancestor.contains)return descendantOf_DOM(element,ancestor);return ancestor.contains(element)&&ancestor!==element}
335function descendantOf_compareDocumentPosition(element,ancestor){element=$(element),ancestor=$(ancestor);if(!element||!ancestor)return!1;return(element.compareDocumentPosition(ancestor)&8)===8}
336var descendantOf;if(DIV.compareDocumentPosition){descendantOf=descendantOf_compareDocumentPosition}else if(DIV.contains){descendantOf=descendantOf_contains}else{descendantOf=descendantOf_DOM}
337Object.extend(methods,{recursivelyCollect:recursivelyCollect,ancestors:ancestors,descendants:descendants,firstDescendant:firstDescendant,immediateDescendants:immediateDescendants,previousSiblings:previousSiblings,nextSiblings:nextSiblings,siblings:siblings,match:match,up:up,down:down,previous:previous,next:next,select:select,adjacent:adjacent,descendantOf:descendantOf,getElementsBySelector:select,childElements:immediateDescendants});var idCounter=1;function identify(element){element=$(element);var id=Element.readAttribute(element,'id');if(id)return id;do{id='anonymous_element_'+idCounter++}while($(id));Element.writeAttribute(element,'id',id);return id}
338function readAttribute(element,name){return $(element).getAttribute(name)}
339function readAttribute_IE(element,name){element=$(element);var table=ATTRIBUTE_TRANSLATIONS.read;if(table.values[name])
340return table.values[name](element,name);if(table.names[name])name=table.names[name];if(name.include(':')){if(!element.attributes||!element.attributes[name])return null;return element.attributes[name].value}
341return element.getAttribute(name)}
342function readAttribute_Opera(element,name){if(name==='title')return element.title;return element.getAttribute(name)}
343function writeAttribute(element,name,value){element=$(element);var attributes={},table=ATTRIBUTE_TRANSLATIONS.write;if(typeof name==='object'){attributes=name}else{attributes[name]=Object.isUndefined(value)?!0:value}
344for(var attr in attributes){name=table.names[attr]||attr;value=attributes[attr];if(table.values[attr]){value=table.values[attr](element,value);if(Object.isUndefined(value))continue}
345if(value===!1||value===null)
346element.removeAttribute(name);else if(value===!0)
347element.setAttribute(name,name);else element.setAttribute(name,value)}
348return element}
349var PROBLEMATIC_HAS_ATTRIBUTE_WITH_CHECKBOXES=(function(){if(!HAS_EXTENDED_CREATE_ELEMENT_SYNTAX){return!1}
350var checkbox=document.createElement('<input type="checkbox">');checkbox.checked=!0;var node=checkbox.getAttributeNode('checked');return!node||!node.specified})();function hasAttribute(element,attribute){attribute=ATTRIBUTE_TRANSLATIONS.has[attribute]||attribute;var node=$(element).getAttributeNode(attribute);return!!(node&&node.specified)}
351function hasAttribute_IE(element,attribute){if(attribute==='checked'){return element.checked}
352return hasAttribute(element,attribute)}
353GLOBAL.Element.Methods.Simulated.hasAttribute=PROBLEMATIC_HAS_ATTRIBUTE_WITH_CHECKBOXES?hasAttribute_IE:hasAttribute;function classNames(element){return new Element.ClassNames(element)}
354var regExpCache={};function getRegExpForClassName(className){if(regExpCache[className])return regExpCache[className];var re=new RegExp("(^|\\s+)"+className+"(\\s+|$)");regExpCache[className]=re;return re}
355function hasClassName(element,className){if(!(element=$(element)))return;var elementClassName=element.className;if(elementClassName.length===0)return!1;if(elementClassName===className)return!0;return getRegExpForClassName(className).test(elementClassName)}
356function addClassName(element,className){if(!(element=$(element)))return;if(!hasClassName(element,className))
357element.className+=(element.className?' ':'')+className;return element}
358function removeClassName(element,className){if(!(element=$(element)))return;element.className=element.className.replace(getRegExpForClassName(className),' ').strip();return element}
359function toggleClassName(element,className,bool){if(!(element=$(element)))return;if(Object.isUndefined(bool))
360bool=!hasClassName(element,className);var method=Element[bool?'addClassName':'removeClassName'];return method(element,className)}
361var ATTRIBUTE_TRANSLATIONS={};var classProp='className',forProp='for';DIV.setAttribute(classProp,'x');if(DIV.className!=='x'){DIV.setAttribute('class','x');if(DIV.className==='x')
362classProp='class'}
363var LABEL=document.createElement('label');LABEL.setAttribute(forProp,'x');if(LABEL.htmlFor!=='x'){LABEL.setAttribute('htmlFor','x');if(LABEL.htmlFor==='x')
364forProp='htmlFor'}
365LABEL=null;function _getAttr(element,attribute){return element.getAttribute(attribute)}
366function _getAttr2(element,attribute){return element.getAttribute(attribute,2)}
367function _getAttrNode(element,attribute){var node=element.getAttributeNode(attribute);return node?node.value:''}
368function _getFlag(element,attribute){return $(element).hasAttribute(attribute)?attribute:null}
369DIV.onclick=Prototype.emptyFunction;var onclickValue=DIV.getAttribute('onclick');var _getEv;if(String(onclickValue).indexOf('{')>-1){_getEv=function(element,attribute){var value=element.getAttribute(attribute);if(!value)return null;value=value.toString();value=value.split('{')[1];value=value.split('}')[0];return value.strip()}}else if(onclickValue===''){_getEv=function(element,attribute){var value=element.getAttribute(attribute);if(!value)return null;return value.strip()}}
370ATTRIBUTE_TRANSLATIONS.read={names:{'class':classProp,'className':classProp,'for':forProp,'htmlFor':forProp},values:{style:function(element){return element.style.cssText.toLowerCase()},title:function(element){return element.title}}};ATTRIBUTE_TRANSLATIONS.write={names:{className:'class',htmlFor:'for',cellpadding:'cellPadding',cellspacing:'cellSpacing'},values:{checked:function(element,value){value=!!value;element.checked=value;return value?'checked':null},style:function(element,value){element.style.cssText=value?value:''}}};ATTRIBUTE_TRANSLATIONS.has={names:{}};Object.extend(ATTRIBUTE_TRANSLATIONS.write.names,ATTRIBUTE_TRANSLATIONS.read.names);var CAMEL_CASED_ATTRIBUTE_NAMES=$w('colSpan rowSpan vAlign dateTime '+'accessKey tabIndex encType maxLength readOnly longDesc frameBorder');for(var i=0,attr;attr=CAMEL_CASED_ATTRIBUTE_NAMES[i];i++){ATTRIBUTE_TRANSLATIONS.write.names[attr.toLowerCase()]=attr;ATTRIBUTE_TRANSLATIONS.has.names[attr.toLowerCase()]=attr}
371Object.extend(ATTRIBUTE_TRANSLATIONS.read.values,{href:_getAttr2,src:_getAttr2,type:_getAttr,action:_getAttrNode,disabled:_getFlag,checked:_getFlag,readonly:_getFlag,multiple:_getFlag,onload:_getEv,onunload:_getEv,onclick:_getEv,ondblclick:_getEv,onmousedown:_getEv,onmouseup:_getEv,onmouseover:_getEv,onmousemove:_getEv,onmouseout:_getEv,onfocus:_getEv,onblur:_getEv,onkeypress:_getEv,onkeydown:_getEv,onkeyup:_getEv,onsubmit:_getEv,onreset:_getEv,onselect:_getEv,onchange:_getEv});Object.extend(methods,{identify:identify,readAttribute:readAttribute,writeAttribute:writeAttribute,classNames:classNames,hasClassName:hasClassName,addClassName:addClassName,removeClassName:removeClassName,toggleClassName:toggleClassName});function normalizeStyleName(style){if(style==='float'||style==='styleFloat')
372return'cssFloat';return style.camelize()}
373function normalizeStyleName_IE(style){if(style==='float'||style==='cssFloat')
374return'styleFloat';return style.camelize()}
375function setStyle(element,styles){element=$(element);var elementStyle=element.style,match;if(Object.isString(styles)){elementStyle.cssText+=';'+styles;if(styles.include('opacity')){var opacity=styles.match(/opacity:\s*(\d?\.?\d*)/)[1];Element.setOpacity(element,opacity)}
376return element}
377for(var property in styles){if(property==='opacity'){Element.setOpacity(element,styles[property])}else{var value=styles[property];if(property==='float'||property==='cssFloat'){property=Object.isUndefined(elementStyle.styleFloat)?'cssFloat':'styleFloat'}
378elementStyle[property]=value}}
379return element}
380function getStyle(element,style){element=$(element);style=normalizeStyleName(style);var value=element.style[style];if(!value||value==='auto'){var css=document.defaultView.getComputedStyle(element,null);value=css?css[style]:null}
381if(style==='opacity')return value?parseFloat(value):1.0;return value==='auto'?null:value}
382function getStyle_Opera(element,style){switch(style){case 'height':case 'width':if(!Element.visible(element))return null;var dim=parseInt(getStyle(element,style),10);if(dim!==element['offset'+style.capitalize()])
383return dim+'px';return Element.measure(element,style);default:return getStyle(element,style)}}
384function getStyle_IE(element,style){element=$(element);style=normalizeStyleName_IE(style);var value=element.style[style];if(!value&&element.currentStyle){value=element.currentStyle[style]}
385if(style==='opacity'){if(!STANDARD_CSS_OPACITY_SUPPORTED)
386return getOpacity_IE(element);else return value?parseFloat(value):1.0}
387if(value==='auto'){if((style==='width'||style==='height')&&Element.visible(element))
388return Element.measure(element,style)+'px';return null}
389return value}
390function stripAlphaFromFilter_IE(filter){return(filter||'').replace(/alpha\([^\)]*\)/gi,'')}
391function hasLayout_IE(element){if(!element.currentStyle||!element.currentStyle.hasLayout)
392element.style.zoom=1;return element}
393var STANDARD_CSS_OPACITY_SUPPORTED=(function(){DIV.style.cssText="opacity:.55";return/^0.55/.test(DIV.style.opacity)})();function setOpacity(element,value){element=$(element);if(value==1||value==='')value='';else if(value<0.00001)value=0;element.style.opacity=value;return element}
394function setOpacity_IE(element,value){if(STANDARD_CSS_OPACITY_SUPPORTED)
395return setOpacity(element,value);element=hasLayout_IE($(element));var filter=Element.getStyle(element,'filter'),style=element.style;if(value==1||value===''){filter=stripAlphaFromFilter_IE(filter);if(filter)style.filter=filter;else style.removeAttribute('filter');return element}
396if(value<0.00001)value=0;style.filter=stripAlphaFromFilter_IE(filter)+' alpha(opacity='+(value*100)+')';return element}
397function getOpacity(element){return Element.getStyle(element,'opacity')}
398function getOpacity_IE(element){if(STANDARD_CSS_OPACITY_SUPPORTED)
399return getOpacity(element);var filter=Element.getStyle(element,'filter');if(filter.length===0)return 1.0;var match=(filter||'').match(/alpha\(opacity=(.*)\)/i);if(match&&match[1])return parseFloat(match[1])/100;return 1.0}
400Object.extend(methods,{setStyle:setStyle,getStyle:getStyle,setOpacity:setOpacity,getOpacity:getOpacity});if('styleFloat' in DIV.style){methods.getStyle=getStyle_IE;methods.setOpacity=setOpacity_IE;methods.getOpacity=getOpacity_IE}
401var UID=0;GLOBAL.Element.Storage={UID:1};function getUniqueElementID(element){if(element===window)return 0;if(typeof element._prototypeUID==='undefined')
402element._prototypeUID=Element.Storage.UID++;return element._prototypeUID}
403function getUniqueElementID_IE(element){if(element===window)return 0;if(element==document)return 1;return element.uniqueID}
404var HAS_UNIQUE_ID_PROPERTY=('uniqueID' in DIV);if(HAS_UNIQUE_ID_PROPERTY)
405getUniqueElementID=getUniqueElementID_IE;function getStorage(element){if(!(element=$(element)))return;var uid=getUniqueElementID(element);if(!Element.Storage[uid])
406Element.Storage[uid]=$H();return Element.Storage[uid]}
407function store(element,key,value){if(!(element=$(element)))return;var storage=getStorage(element);if(arguments.length===2){storage.update(key)}else{storage.set(key,value)}
408return element}
409function retrieve(element,key,defaultValue){if(!(element=$(element)))return;var storage=getStorage(element),value=storage.get(key);if(Object.isUndefined(value)){storage.set(key,defaultValue);value=defaultValue}
410return value}
411Object.extend(methods,{getStorage:getStorage,store:store,retrieve:retrieve});var Methods={},ByTag=Element.Methods.ByTag,F=Prototype.BrowserFeatures;if(!F.ElementExtensions&&('__proto__' in DIV)){GLOBAL.HTMLElement={};GLOBAL.HTMLElement.prototype=DIV.__proto__;F.ElementExtensions=!0}
412function checkElementPrototypeDeficiency(tagName){if(typeof window.Element==='undefined')return!1;if(!HAS_EXTENDED_CREATE_ELEMENT_SYNTAX)return!1;var proto=window.Element.prototype;if(proto){var id='_'+(Math.random()+'').slice(2),el=document.createElement(tagName);proto[id]='x';var isBuggy=(el[id]!=='x');delete proto[id];el=null;return isBuggy}
413return!1}
414var HTMLOBJECTELEMENT_PROTOTYPE_BUGGY=checkElementPrototypeDeficiency('object');function extendElementWith(element,methods){for(var property in methods){var value=methods[property];if(Object.isFunction(value)&&!(property in element))
415element[property]=value.methodize()}}
416var EXTENDED={};function elementIsExtended(element){var uid=getUniqueElementID(element);return(uid in EXTENDED)}
417function extend(element){if(!element||elementIsExtended(element))return element;if(element.nodeType!==Node.ELEMENT_NODE||element==window)
418return element;var methods=Object.clone(Methods),tagName=element.tagName.toUpperCase();if(ByTag[tagName])Object.extend(methods,ByTag[tagName]);extendElementWith(element,methods);EXTENDED[getUniqueElementID(element)]=!0;return element}
419function extend_IE8(element){if(!element||elementIsExtended(element))return element;var t=element.tagName;if(t&&(/^(?:object|applet|embed)$/i.test(t))){extendElementWith(element,Element.Methods);extendElementWith(element,Element.Methods.Simulated);extendElementWith(element,Element.Methods.ByTag[t.toUpperCase()])}
420return element}
421if(F.SpecificElementExtensions){extend=HTMLOBJECTELEMENT_PROTOTYPE_BUGGY?extend_IE8:Prototype.K}
422function addMethodsToTagName(tagName,methods){tagName=tagName.toUpperCase();if(!ByTag[tagName])ByTag[tagName]={};Object.extend(ByTag[tagName],methods)}
423function mergeMethods(destination,methods,onlyIfAbsent){if(Object.isUndefined(onlyIfAbsent))onlyIfAbsent=!1;for(var property in methods){var value=methods[property];if(!Object.isFunction(value))continue;if(!onlyIfAbsent||!(property in destination))
424destination[property]=value.methodize()}}
425function findDOMClass(tagName){var klass;var trans={"OPTGROUP":"OptGroup","TEXTAREA":"TextArea","P":"Paragraph","FIELDSET":"FieldSet","UL":"UList","OL":"OList","DL":"DList","DIR":"Directory","H1":"Heading","H2":"Heading","H3":"Heading","H4":"Heading","H5":"Heading","H6":"Heading","Q":"Quote","INS":"Mod","DEL":"Mod","A":"Anchor","IMG":"Image","CAPTION":"TableCaption","COL":"TableCol","COLGROUP":"TableCol","THEAD":"TableSection","TFOOT":"TableSection","TBODY":"TableSection","TR":"TableRow","TH":"TableCell","TD":"TableCell","FRAMESET":"FrameSet","IFRAME":"IFrame"};if(trans[tagName])klass='HTML'+trans[tagName]+'Element';if(window[klass])return window[klass];klass='HTML'+tagName+'Element';if(window[klass])return window[klass];klass='HTML'+tagName.capitalize()+'Element';if(window[klass])return window[klass];var element=document.createElement(tagName),proto=element.__proto__||element.constructor.prototype;element=null;return proto}
426function addMethods(methods){if(arguments.length===0)addFormMethods();if(arguments.length===2){var tagName=methods;methods=arguments[1]}
427if(!tagName){Object.extend(Element.Methods,methods||{})}else{if(Object.isArray(tagName)){for(var i=0,tag;tag=tagName[i];i++)
428addMethodsToTagName(tag,methods);}else{addMethodsToTagName(tagName,methods)}}
429var ELEMENT_PROTOTYPE=window.HTMLElement?HTMLElement.prototype:Element.prototype;if(F.ElementExtensions){mergeMethods(ELEMENT_PROTOTYPE,Element.Methods);mergeMethods(ELEMENT_PROTOTYPE,Element.Methods.Simulated,!0)}
430if(F.SpecificElementExtensions){for(var tag in Element.Methods.ByTag){var klass=findDOMClass(tag);if(Object.isUndefined(klass))continue;mergeMethods(klass.prototype,ByTag[tag])}}
431Object.extend(Element,Element.Methods);Object.extend(Element,Element.Methods.Simulated);delete Element.ByTag;delete Element.Simulated;Element.extend.refresh();ELEMENT_CACHE={}}
432Object.extend(GLOBAL.Element,{extend:extend,addMethods:addMethods});if(extend===Prototype.K){GLOBAL.Element.extend.refresh=Prototype.emptyFunction}else{GLOBAL.Element.extend.refresh=function(){if(Prototype.BrowserFeatures.ElementExtensions)return;Object.extend(Methods,Element.Methods);Object.extend(Methods,Element.Methods.Simulated);EXTENDED={}}}
433function addFormMethods(){Object.extend(Form,Form.Methods);Object.extend(Form.Element,Form.Element.Methods);Object.extend(Element.Methods.ByTag,{"FORM":Object.clone(Form.Methods),"INPUT":Object.clone(Form.Element.Methods),"SELECT":Object.clone(Form.Element.Methods),"TEXTAREA":Object.clone(Form.Element.Methods),"BUTTON":Object.clone(Form.Element.Methods)})}
434Element.addMethods(methods);function destroyCache_IE(){DIV=null;ELEMENT_CACHE=null}
435if(window.attachEvent)
436window.attachEvent('onunload',destroyCache_IE)})(this);(function(){function toDecimal(pctString){var match=pctString.match(/^(\d+)%?$/i);if(!match)return null;return(Number(match[1])/100)}
437function getRawStyle(element,style){element=$(element);var value=element.style[style];if(!value||value==='auto'){var css=document.defaultView.getComputedStyle(element,null);value=css?css[style]:null}
438if(style==='opacity')return value?parseFloat(value):1.0;return value==='auto'?null:value}
439function getRawStyle_IE(element,style){var value=element.style[style];if(!value&&element.currentStyle){value=element.currentStyle[style]}
440return value}
441function getContentWidth(element,context){var boxWidth=element.offsetWidth;var bl=getPixelValue(element,'borderLeftWidth',context)||0;var br=getPixelValue(element,'borderRightWidth',context)||0;var pl=getPixelValue(element,'paddingLeft',context)||0;var pr=getPixelValue(element,'paddingRight',context)||0;return boxWidth-bl-br-pl-pr}
442if(!Object.isUndefined(document.documentElement.currentStyle)&&!Prototype.Browser.Opera){getRawStyle=getRawStyle_IE}
443function getPixelValue(value,property,context){var element=null;if(Object.isElement(value)){element=value;value=getRawStyle(element,property)}
444if(value===null||Object.isUndefined(value)){return null}
445if((/^(?:-)?\d+(\.\d+)?(px)?$/i).test(value)){return window.parseFloat(value)}
446var isPercentage=value.include('%'),isViewport=(context===document.viewport);if(/\d/.test(value)&&element&&element.runtimeStyle&&!(isPercentage&&isViewport)){var style=element.style.left,rStyle=element.runtimeStyle.left;element.runtimeStyle.left=element.currentStyle.left;element.style.left=value||0;value=element.style.pixelLeft;element.style.left=style;element.runtimeStyle.left=rStyle;return value}
447if(element&&isPercentage){context=context||element.parentNode;var decimal=toDecimal(value),whole=null;var isHorizontal=property.include('left')||property.include('right')||property.include('width');var isVertical=property.include('top')||property.include('bottom')||property.include('height');if(context===document.viewport){if(isHorizontal){whole=document.viewport.getWidth()}else if(isVertical){whole=document.viewport.getHeight()}}else{if(isHorizontal){whole=$(context).measure('width')}else if(isVertical){whole=$(context).measure('height')}}
448return(whole===null)?0:whole*decimal}
449return 0}
450function toCSSPixels(number){if(Object.isString(number)&&number.endsWith('px'))
451return number;return number+'px'}
452function isDisplayed(element){while(element&&element.parentNode){var display=element.getStyle('display');if(display==='none'){return!1}
453element=$(element.parentNode)}
454return!0}
455var hasLayout=Prototype.K;if('currentStyle' in document.documentElement){hasLayout=function(element){if(!element.currentStyle.hasLayout){element.style.zoom=1}
456return element}}
457function cssNameFor(key){if(key.include('border'))key=key+'-width';return key.camelize()}
458Element.Layout=Class.create(Hash,{initialize:function($super,element,preCompute){$super();this.element=$(element);Element.Layout.PROPERTIES.each(function(property){this._set(property,null)},this);if(preCompute){this._preComputing=!0;this._begin();Element.Layout.PROPERTIES.each(this._compute,this);this._end();this._preComputing=!1}},_set:function(property,value){return Hash.prototype.set.call(this,property,value)},set:function(property,value){throw "Properties of Element.Layout are read-only."},get:function($super,property){var value=$super(property);return value===null?this._compute(property):value},_begin:function(){if(this._isPrepared())return;var element=this.element;if(isDisplayed(element)){this._setPrepared(!0);return}
459var originalStyles={position:element.style.position||'',width:element.style.width||'',visibility:element.style.visibility||'',display:element.style.display||''};element.store('prototype_original_styles',originalStyles);var position=getRawStyle(element,'position'),width=element.offsetWidth;if(width===0||width===null){element.style.display='block';width=element.offsetWidth}
460var context=(position==='fixed')?document.viewport:element.parentNode;var tempStyles={visibility:'hidden',display:'block'};if(position!=='fixed')tempStyles.position='absolute';element.setStyle(tempStyles);var positionedWidth=element.offsetWidth,newWidth;if(width&&(positionedWidth===width)){newWidth=getContentWidth(element,context)}else if(position==='absolute'||position==='fixed'){newWidth=getContentWidth(element,context)}else{var parent=element.parentNode,pLayout=$(parent).getLayout();newWidth=pLayout.get('width')-this.get('margin-left')-this.get('border-left')-this.get('padding-left')-this.get('padding-right')-this.get('border-right')-this.get('margin-right')}
461element.setStyle({width:newWidth+'px'});this._setPrepared(!0)},_end:function(){var element=this.element;var originalStyles=element.retrieve('prototype_original_styles');element.store('prototype_original_styles',null);element.setStyle(originalStyles);this._setPrepared(!1)},_compute:function(property){var COMPUTATIONS=Element.Layout.COMPUTATIONS;if(!(property in COMPUTATIONS)){throw "Property not found."}
462return this._set(property,COMPUTATIONS[property].call(this,this.element))},_isPrepared:function(){return this.element.retrieve('prototype_element_layout_prepared',!1)},_setPrepared:function(bool){return this.element.store('prototype_element_layout_prepared',bool)},toObject:function(){var args=$A(arguments);var keys=(args.length===0)?Element.Layout.PROPERTIES:args.join(' ').split(' ');var obj={};keys.each(function(key){if(!Element.Layout.PROPERTIES.include(key))return;var value=this.get(key);if(value!=null)obj[key]=value},this);return obj},toHash:function(){var obj=this.toObject.apply(this,arguments);return new Hash(obj)},toCSS:function(){var args=$A(arguments);var keys=(args.length===0)?Element.Layout.PROPERTIES:args.join(' ').split(' ');var css={};keys.each(function(key){if(!Element.Layout.PROPERTIES.include(key))return;if(Element.Layout.COMPOSITE_PROPERTIES.include(key))return;var value=this.get(key);if(value!=null)css[cssNameFor(key)]=value+'px'},this);return css},inspect:function(){return"#<Element.Layout>"}});Object.extend(Element.Layout,{PROPERTIES:$w('height width top left right bottom border-left border-right border-top border-bottom padding-left padding-right padding-top padding-bottom margin-top margin-bottom margin-left margin-right padding-box-width padding-box-height border-box-width border-box-height margin-box-width margin-box-height'),COMPOSITE_PROPERTIES:$w('padding-box-width padding-box-height margin-box-width margin-box-height border-box-width border-box-height'),COMPUTATIONS:{'height':function(element){if(!this._preComputing)this._begin();var bHeight=this.get('border-box-height');if(bHeight<=0){if(!this._preComputing)this._end();return 0}
463var bTop=this.get('border-top'),bBottom=this.get('border-bottom');var pTop=this.get('padding-top'),pBottom=this.get('padding-bottom');if(!this._preComputing)this._end();return bHeight-bTop-bBottom-pTop-pBottom},'width':function(element){if(!this._preComputing)this._begin();var bWidth=this.get('border-box-width');if(bWidth<=0){if(!this._preComputing)this._end();return 0}
464var bLeft=this.get('border-left'),bRight=this.get('border-right');var pLeft=this.get('padding-left'),pRight=this.get('padding-right');
464if(!this._preComputing)this._end();return bWidth-bLeft-bRight-pLeft-pRight},'padding-box-height':function(element){var height=this.get('height'),pTop=this.get('padding-top'),pBottom=this.get('padding-bottom');return height+pTop+pBottom},'padding-box-width':function(element){var width=this.get('width'),pLeft=this.get('padding-left'),pRight=this.get('padding-right');return width+pLeft+pRight},'border-box-height':function(element){if(!this._preComputing)this._begin();var height=element.offsetHeight;if(!this._preComputing)this._end();return height},'border-box-width':function(element){if(!this._preComputing)this._begin();var width=element.offsetWidth;if(!this._preComputing)this._end();return width},'margin-box-height':function(element){var bHeight=this.get('border-box-height'),mTop=this.get('margin-top'),mBottom=this.get('margin-bottom');if(bHeight<=0)return 0;return bHeight+mTop+mBottom},'margin-box-width':function(element){var bWidth=this.get('border-box-width'),mLeft=this.get('margin-left'),mRight=this.get('margin-right');if(bWidth<=0)return 0;return bWidth+mLeft+mRight},'top':function(element){var offset=element.positionedOffset();return offset.top},'bottom':function(element){var offset=element.positionedOffset(),parent=element.getOffsetParent(),pHeight=parent.measure('height');var mHeight=this.get('border-box-height');return pHeight-mHeight-offset.top},'left':function(element){var offset=element.positionedOffset();return offset.left},'right':function(element){var offset=element.positionedOffset(),parent=element.getOffsetParent(),pWidth=parent.measure('width');var mWidth=this.get('border-box-width');return pWidth-mWidth-offset.left},'padding-top':function(element){return getPixelValue(element,'paddingTop')},'padding-bottom':function(element){return getPixelValue(element,'paddingBottom')},'padding-left':function(element){return getPixelValue(element,'paddingLeft')},'padding-right':function(element){return getPixelValue(element,'paddingRight')},'border-top':function(element){return getPixelValue(element,'borderTopWidth')},'border-bottom':function(element){return getPixelValue(element,'borderBottomWidth')},'border-left':function(element){return getPixelValue(element,'borderLeftWidth')},'border-right':function(element){return getPixelValue(element,'borderRightWidth')},'margin-top':function(element){return getPixelValue(element,'marginTop')},'margin-bottom':function(element){return getPixelValue(element,'marginBottom')},'margin-left':function(element){return getPixelValue(element,'marginLeft')},'margin-right':function(element){return getPixelValue(element,'marginRight')}}});if('getBoundingClientRect' in document.documentElement){Object.extend(Element.Layout.COMPUTATIONS,{'right':function(element){var parent=hasLayout(element.getOffsetParent());var rect=element.getBoundingClientRect(),pRect=parent.getBoundingClientRect();return(pRect.right-rect.right).round()},'bottom':function(element){var parent=hasLayout(element.getOffsetParent());var rect=element.getBoundingClientRect(),pRect=parent.getBoundingClientRect();return(pRect.bottom-rect.bottom).round()}})}
465Element.Offset=Class.create({initialize:function(left,top){this.left=left.round();this.top=top.round();this[0]=this.left;this[1]=this.top},relativeTo:function(offset){return new Element.Offset(this.left-offset.left,this.top-offset.top)},inspect:function(){return"#<Element.Offset left: #{left} top: #{top}>".interpolate(this)},toString:function(){return"[#{left}, #{top}]".interpolate(this)},toArray:function(){return[this.left,this.top]}});function getLayout(element,preCompute){return new Element.Layout(element,preCompute)}
466function measure(element,property){return $(element).getLayout().get(property)}
467function getHeight(element){return Element.getDimensions(element).height}
468function getWidth(element){return Element.getDimensions(element).width}
469function getDimensions(element){element=$(element);var display=Element.getStyle(element,'display');if(display&&display!=='none'){return{width:element.offsetWidth,height:element.offsetHeight}}
470var style=element.style;var originalStyles={visibility:style.visibility,position:style.position,display:style.display};var newStyles={visibility:'hidden',display:'block'};if(originalStyles.position!=='fixed')
471newStyles.position='absolute';Element.setStyle(element,newStyles);var dimensions={width:element.offsetWidth,height:element.offsetHeight};Element.setStyle(element,originalStyles);return dimensions}
472function getOffsetParent(element){element=$(element);function selfOrBody(element){return isHtml(element)?$(document.body):$(element)}
473if(isDocument(element)||isDetached(element)||isBody(element)||isHtml(element))
474return $(document.body);var isInline=(Element.getStyle(element,'display')==='inline');if(!isInline&&element.offsetParent)return selfOrBody(element.offsetParent);while((element=element.parentNode)&&element!==document.body){if(Element.getStyle(element,'position')!=='static'){return selfOrBody(element)}}
475return $(document.body)}
476function cumulativeOffset(element){element=$(element);var valueT=0,valueL=0;if(element.parentNode){do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent}while(element);}
477return new Element.Offset(valueL,valueT)}
478function positionedOffset(element){element=$(element);var layout=element.getLayout();var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;if(element){if(isBody(element))break;var p=Element.getStyle(element,'position');if(p!=='static')break}}while(element);valueL-=layout.get('margin-left');valueT-=layout.get('margin-top');return new Element.Offset(valueL,valueT)}
479function cumulativeScrollOffset(element){var valueT=0,valueL=0;do{if(element===document.body){var bodyScrollNode=document.documentElement||document.body.parentNode||document.body;valueT+=!Object.isUndefined(window.pageYOffset)?window.pageYOffset:bodyScrollNode.scrollTop||0;valueL+=!Object.isUndefined(window.pageXOffset)?window.pageXOffset:bodyScrollNode.scrollLeft||0;break}else{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode}}while(element);return new Element.Offset(valueL,valueT)}
480function viewportOffset(forElement){var valueT=0,valueL=0,docBody=document.body;forElement=$(forElement);var element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==docBody&&Element.getStyle(element,'position')=='absolute')break}while(element=element.offsetParent);element=forElement;do{if(element!=docBody){valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0}}while(element=element.parentNode);return new Element.Offset(valueL,valueT)}
481function absolutize(element){element=$(element);if(Element.getStyle(element,'position')==='absolute'){return element}
482var offsetParent=getOffsetParent(element);var eOffset=element.viewportOffset(),pOffset=offsetParent.viewportOffset();var offset=eOffset.relativeTo(pOffset);var layout=element.getLayout();element.store('prototype_absolutize_original_styles',{position:element.getStyle('position'),left:element.getStyle('left'),top:element.getStyle('top'),width:element.getStyle('width'),height:element.getStyle('height')});element.setStyle({position:'absolute',top:offset.top+'px',left:offset.left+'px',width:layout.get('width')+'px',height:layout.get('height')+'px'});return element}
483function relativize(element){element=$(element);if(Element.getStyle(element,'position')==='relative'){return element}
484var originalStyles=element.retrieve('prototype_absolutize_original_styles');if(originalStyles)element.setStyle(originalStyles);return element}
485function scrollTo(element){element=$(element);var pos=Element.cumulativeOffset(element);window.scrollTo(pos.left,pos.top);return element}
486function makePositioned(element){element=$(element);var position=Element.getStyle(element,'position'),styles={};if(position==='static'||!position){styles.position='relative';if(Prototype.Browser.Opera){styles.top=0;styles.left=0}
487Element.setStyle(element,styles);Element.store(element,'prototype_made_positioned',!0)}
488return element}
489function undoPositioned(element){element=$(element);var storage=Element.getStorage(element),madePositioned=storage.get('prototype_made_positioned');if(madePositioned){storage.unset('prototype_made_positioned');Element.setStyle(element,{position:'',top:'',bottom:'',left:'',right:''})}
490return element}
491function makeClipping(element){element=$(element);var storage=Element.getStorage(element),madeClipping=storage.get('prototype_made_clipping');if(Object.isUndefined(madeClipping)){var overflow=Element.getStyle(element,'overflow');storage.set('prototype_made_clipping',overflow);if(overflow!=='hidden')
492element.style.overflow='hidden'}
493return element}
494function undoClipping(element){element=$(element);var storage=Element.getStorage(element),overflow=storage.get('prototype_made_clipping');if(!Object.isUndefined(overflow)){storage.unset('prototype_made_clipping');element.style.overflow=overflow||''}
495return element}
496function clonePosition(element,source,options){options=Object.extend({setLeft:!0,setTop:!0,setWidth:!0,setHeight:!0,offsetTop:0,offsetLeft:0},options||{});source=$(source);element=$(element);var p,delta,layout,styles={};var isAbsolute=Element.getStyle(element,'position')==='absolute';var parent=Element.getOffsetParent(element);if(options.setLeft||options.setTop){p=Element.viewportOffset(source);delta=[0,0];if(isAbsolute&&parent!==document.body){delta=Element.viewportOffset(parent)}}
497function pageScrollXY(){var x=0,y=0;if(Object.isNumber(window.pageXOffset)){x=window.pageXOffset;y=window.pageYOffset}else if(document.body&&(document.body.scrollLeft||document.body.scrollTop)){x=document.body.scrollLeft;y=document.body.scrollTop}
498return{x:x,y:y}}
499var pageXY=(isAbsolute&&parent===document.body)?pageScrollXY():{x:0,y:0};if(options.setLeft)
500styles.left=(p[0]+pageXY.x-delta[0]+options.offsetLeft)+'px';if(options.setTop)
501styles.top=(p[1]+pageXY.y-delta[1]+options.offsetTop)+'px';if(options.setWidth||options.setHeight){layout=Element.getLayout(source);if(options.setWidth){styles.width=layout.get('width')+'px'}
502if(options.setHeight){styles.height=layout.get('height')+'px'}}
503return Element.setStyle(element,styles)}
504if(Prototype.Browser.IE){getOffsetParent=getOffsetParent.wrap(function(proceed,element){element=$(element);if(isDocument(element)||isDetached(element)||isBody(element)||isHtml(element))
505return $(document.body);var position=element.getStyle('position');if(position!=='static')return proceed(element);element.setStyle({position:'relative'});var value=proceed(element);element.setStyle({position:position});return value});positionedOffset=positionedOffset.wrap(function(proceed,element){element=$(element);if(!element.parentNode)return new Element.Offset(0,0);var position=element.getStyle('position');if(position!=='static')return proceed(element);var offsetParent=element.getOffsetParent();if(offsetParent&&offsetParent.getStyle('position')==='fixed')
506hasLayout(offsetParent);element.setStyle({position:'relative'});var value=proceed(element);element.setStyle({position:position});return value})}else if(Prototype.Browser.Webkit){cumulativeOffset=function(element){element=$(element);var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body){if(Element.getStyle(element,'position')=='absolute')break}
507element=element.offsetParent}while(element);return new Element.Offset(valueL,valueT)}}
508Element.addMethods({getLayout:getLayout,measure:measure,getWidth:getWidth,getHeight:getHeight,getDimensions:getDimensions,getOffsetParent:getOffsetParent,cumulativeOffset:cumulativeOffset,positionedOffset:positionedOffset,cumulativeScrollOffset:cumulativeScrollOffset,viewportOffset:viewportOffset,absolutize:absolutize,relativize:relativize,p_scrollTo:scrollTo,makePositioned:makePositioned,undoPositioned:undoPositioned,makeClipping:makeClipping,undoClipping:undoClipping,clonePosition:clonePosition});function isBody(element){return element.nodeName.toUpperCase()==='BODY'}
509function isHtml(element){return element.nodeName.toUpperCase()==='HTML'}
510function isDocument(element){return element.nodeType===Node.DOCUMENT_NODE}
511function isDetached(element){return element!==document.body&&!Element.descendantOf(element,document.body)}
512if('getBoundingClientRect' in document.documentElement){Element.addMethods({viewportOffset:function(element){element=$(element);if(isDetached(element))return new Element.Offset(0,0);var rect=element.getBoundingClientRect(),docEl=document.documentElement;return new Element.Offset(rect.left-docEl.clientLeft,rect.top-docEl.clientTop)}})}})();(function(){var IS_OLD_OPERA=Prototype.Browser.Opera&&(window.parseFloat(window.opera.version())<9.5);var ROOT=null;function getRootElement(){if(ROOT)return ROOT;ROOT=IS_OLD_OPERA?document.body:document.documentElement;return ROOT}
513function getDimensions(){return{width:this.getWidth(),height:this.getHeight()}}
514function getWidth(){return getRootElement().clientWidth}
515function getHeight(){return getRootElement().clientHeight}
516function getScrollOffsets(){var x=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft;var y=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop;return new Element.Offset(x,y)}
517document.viewport={getDimensions:getDimensions,getWidth:getWidth,getHeight:getHeight,getScrollOffsets:getScrollOffsets}})();window.$$=function(){var expression=$A(arguments).join(', ');return Prototype.Selector.select(expression,document)};Prototype.Selector=(function(){function select(){throw new Error('Method "Prototype.Selector.select" must be defined.')}
518function match(){throw new Error('Method "Prototype.Selector.match" must be defined.')}
519function find(elements,expression,index){index=index||0;var match=Prototype.Selector.match,length=elements.length,matchIndex=0,i;for(i=0;i<length;i++){if(match(elements[i],expression)&&index==matchIndex++){return Element.extend(elements[i])}}}
520function extendElements(elements){for(var i=0,length=elements.length;i<length;i++){Element.extend(elements[i])}
521return elements}
522var K=Prototype.K;return{select:select,match:match,find:find,extendElements:(Element.extend===K)?K:extendElements,extendElement:Element.extend}})();Prototype._original_property=window.Sizzle;(function(){function fakeDefine(fn){Prototype._actual_sizzle=fn()}
523fakeDefine.amd=!0;if(typeof define!=='undefined'&&define.amd){Prototype._original_define=define;Prototype._actual_sizzle=null;window.define=fakeDefine}})();
524/*!
525 * Sizzle CSS Selector Engine v1.10.18
526 * http://sizzlejs.com/
527 *
528 * Copyright 2013 jQuery Foundation, Inc. and other contributors
529 * Released under the MIT license
530 * http://jquery.org/license
531 *
532 * Date: 2014-02-05
533 */
534(function(window){var i,support,Expr,getText,isXML,compile,select,outermostContext,sortInput,hasDuplicate,setDocument,document,docElem,documentIsHTML,rbuggyQSA,rbuggyMatches,matches,contains,expando="sizzle"+ -(new Date()),preferredDoc=window.document,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),sortOrder=function(a,b){if(a===b){hasDuplicate=!0}
535return 0},strundefined=typeof undefined,MAX_NEGATIVE=1<<31,hasOwn=({}).hasOwnProperty,arr=[],pop=arr.pop,push_native=arr.push,push=arr.push,slice=arr.slice,indexOf=arr.indexOf||function(elem){var i=0,len=this.length;for(;i<len;i++){if(this[i]===elem){return i}}
536return-1},booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",whitespace="[\\x20\\t\\r\\n\\f]",characterEncoding="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",identifier=characterEncoding.replace("w","w#"),attributes="\\["+whitespace+"*("+characterEncoding+")"+whitespace+"*(?:([*^$|!~]?=)"+whitespace+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+identifier+")|)|)"+whitespace+"*\\]",pseudos=":("+characterEncoding+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+attributes.replace(3,8)+")*)|.*)\\)|)",rtrim=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$","g"),rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),rcombinators=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+whitespace+"*"),rattributeQuotes=new RegExp("="+whitespace+"*([^\\]'\"]*?)"+whitespace+"*\\]","g"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={"ID":new RegExp("^#("+characterEncoding+")"),"CLASS":new RegExp("^\\.("+characterEncoding+")"),"TAG":new RegExp("^("+characterEncoding.replace("w","w*")+")"),"ATTR":new RegExp("^"+attributes),"PSEUDO":new RegExp("^"+pseudos),"CHILD":new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),"bool":new RegExp("^(?:"+booleans+")$","i"),"needsContext":new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rnative=/^[^{]+\{\s*\[native \w/,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,rescape=/'|\\/g,runescape=new RegExp("\\\\([\\da-f]{1,6}"+whitespace+"?|("+whitespace+")|.)","ig"),funescape=function(_,escaped,escapedWhitespace){var high="0x"+escaped-0x10000;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+0x10000):String.fromCharCode(high>>10|0xD800,high&0x3FF|0xDC00)};try{push.apply((arr=slice.call(preferredDoc.childNodes)),preferredDoc.childNodes);arr[preferredDoc.childNodes.length].nodeType}catch(e){push={apply:arr.length?function(target,els){push_native.apply(target,slice.call(els))}:function(target,els){var j=target.length,i=0;while((target[j++]=els[i++])){}
537target.length=j-1}}}
538function Sizzle(selector,context,results,seed){var match,elem,m,nodeType,i,groups,old,nid,newContext,newSelector;if((context?context.ownerDocument||context:preferredDoc)!==document){setDocument(context)}
539context=context||document;results=results||[];if(!selector||typeof selector!=="string"){return results}
540if((nodeType=context.nodeType)!==1&&nodeType!==9){return[]}
541if(documentIsHTML&&!seed){if((match=rquickExpr.exec(selector))){if
541((m=match[1])){if(nodeType===9){elem=context.getElementById(m);if(elem&&elem.parentNode){if(elem.id===m){results.push(elem);return results}}else{return results}}else{if(context.ownerDocument&&(elem=context.ownerDocument.getElementById(m))&&contains(context,elem)&&elem.id===m){results.push(elem);return results}}}else if(match[2]){push.apply(results,context.getElementsByTagName(selector));return results}else if((m=match[3])&&support.getElementsByClassName&&context.getElementsByClassName){push.apply(results,context.getElementsByClassName(m));return results}}
542if(support.qsa&&(!rbuggyQSA||!rbuggyQSA.test(selector))){nid=old=expando;newContext=context;newSelector=nodeType===9&&selector;if(nodeType===1&&context.nodeName.toLowerCase()!=="object"){groups=tokenize(selector);if((old=context.getAttribute("id"))){nid=old.replace(rescape,"\\$&")}else{context.setAttribute("id",nid)}
543nid="[id='"+nid+"'] ";i=groups.length;while(i--){groups[i]=nid+toSelector(groups[i])}
544newContext=rsibling.test(selector)&&testContext(context.parentNode)||context;newSelector=groups.join(",")}
545if(newSelector){try{push.apply(results,newContext.querySelectorAll(newSelector));return results}catch(qsaError){}finally{if(!old){context.removeAttribute("id")}}}}}
546return select(selector.replace(rtrim,"$1"),context,results,seed)}
547function createCache(){var keys=[];function cache(key,value){if(keys.push(key+" ")>Expr.cacheLength){delete cache[keys.shift()]}
548return(cache[key+" "]=value)}
549return cache}
550function markFunction(fn){fn[expando]=!0;return fn}
551function assert(fn){var div=document.createElement("div");try{return!!fn(div)}catch(e){return!1}finally{if(div.parentNode){div.parentNode.removeChild(div)}
552div=null}}
553function addHandle(attrs,handler){var arr=attrs.split("|"),i=attrs.length;while(i--){Expr.attrHandle[arr[i]]=handler}}
554function siblingCheck(a,b){var cur=b&&a,diff=cur&&a.nodeType===1&&b.nodeType===1&&(~b.sourceIndex||MAX_NEGATIVE)-(~a.sourceIndex||MAX_NEGATIVE);if(diff){return diff}
555if(cur){while((cur=cur.nextSibling)){if(cur===b){return-1}}}
556return a?1:-1}
557function createInputPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type===type}}
558function createButtonPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&elem.type===type}}
559function createPositionalPseudo(fn){return markFunction(function(argument){argument=+argument;return markFunction(function(seed,matches){var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;while(i--){if(seed[(j=matchIndexes[i])]){seed[j]=!(matches[j]=seed[j])}}})})}
560function testContext(context){return context&&typeof context.getElementsByTagName!==strundefined&&context}
561support=Sizzle.support={};isXML=Sizzle.isXML=function(elem){var documentElement=elem&&(elem.ownerDocument||elem).documentElement;return documentElement?documentElement.nodeName!=="HTML":!1};setDocument=Sizzle.setDocument=function(node){var hasCompare,doc=node?node.ownerDocument||node:preferredDoc,parent=doc.defaultView;if(doc===document||doc.nodeType!==9||!doc.documentElement){return document}
562document=doc;docElem=doc.documentElement;documentIsHTML=!isXML(doc);if(parent&&parent!==parent.top){if(parent.addEventListener){parent.addEventListener("unload",function(){setDocument()},!1)}else if(parent.attachEvent){parent.attachEvent("onunload",function(){setDocument()})}}
563support.attributes=assert(function(div){div.className="i";return!div.getAttribute("className")});support.getElementsByTagName=assert(function(div){div.appendChild(doc.createComment(""));return!div.getElementsByTagName("*").length});support.getElementsByClassName=rnative.test(doc.getElementsByClassName)&&assert(function(div){div.innerHTML="<div class='a'></div><div class='a i'></div>";div.firstChild.className="i";return div.getElementsByClassName("i").length===2});support.getById=assert(function(div){docElem.appendChild(div).id=expando;return!doc.getElementsByName||!doc.getElementsByName(expando).length});if(support.getById){Expr.find.ID=function(id,context){if(typeof context.getElementById!==strundefined&&documentIsHTML){var m=context.getElementById(id);return m&&m.parentNode?[m]:[]}};Expr.filter.ID=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId}}}else{delete Expr.find.ID;Expr.filter.ID=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node=typeof elem.getAttributeNode!==strundefined&&elem.getAttributeNode("id");return node&&node.value===attrId}}}
564Expr.find.TAG=support.getElementsByTagName?function(tag,context){if(typeof context.getElementsByTagName!==strundefined){return context.getElementsByTagName(tag)}}:function(tag,context){var elem,tmp=[],i=0,results=context.getElementsByTagName(tag);if(tag==="*"){while((elem=results[i++])){if(elem.nodeType===1){tmp.push(elem)}}
565return tmp}
566return results};Expr.find.CLASS=support.getElementsByClassName&&function(className,context){if(typeof context.getElementsByClassName!==strundefined&&documentIsHTML){return context.getElementsByClassName(className)}};rbuggyMatches=[];rbuggyQSA=[];if((support.qsa=rnative.test(doc.querySelectorAll))){assert(function(div){div.innerHTML="<select t=''><option selected=''></option></select>";if(div.querySelectorAll("[t^='']").length){rbuggyQSA.push("[*^$]="+whitespace+"*(?:''|\"\")")}
567if(!div.querySelectorAll("[selected]").length){rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")")}
568if(!div.querySelectorAll(":checked").length){rbuggyQSA.push(":checked")}});assert(function(div){var input=doc.createElement("input");input.setAttribute("type","hidden");div.appendChild(input).setAttribute("name","D");if(div.querySelectorAll("[name=d]").length){rbuggyQSA.push("name"+whitespace+"*[*^$|!~]?=")}
569if(!div.querySelectorAll(":enabled").length){rbuggyQSA.push(":enabled",":disabled")}
570div.querySelectorAll("*,:x");rbuggyQSA.push(",.*:")})}
571if((support.matchesSelector=rnative.test((matches=docElem.webkitMatchesSelector||docElem.mozMatchesSelector||docElem.oMatchesSelector||docElem.msMatchesSelector)))){assert(function(div){support.disconnectedMatch=matches.call(div,"div");matches.call(div,"[s!='']:x");rbuggyMatches.push("!=",pseudos)})}
572rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|"));rbuggyMatches=rbuggyMatches.length&&new RegExp(rbuggyMatches.join("|"));hasCompare=rnative.test(docElem.compareDocumentPosition);contains=hasCompare||rnative.test(docElem.contains)?function(a,b){var adown=a.nodeType===9?a.documentElement:a,bup=b&&b.parentNode;return a===bup||!!(bup&&bup.nodeType===1&&(adown.contains?adown.contains(bup):a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16))}:function(a,b){if(b){while((b=b.parentNode)){if(b===a){return!0}}}
573return!1};sortOrder=hasCompare?function(a,b){if(a===b){hasDuplicate=!0;return 0}
574var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;if(compare){return compare}
575compare=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1;if(compare&1||(!support.sortDetached&&b.compareDocumentPosition(a)===compare)){if(a===doc||a.ownerDocument===preferredDoc&&contains(preferredDoc,a)){return-1}
576if(b===doc||b.ownerDocument===preferredDoc&&contains(preferredDoc,b)){return 1}
577return sortInput?(indexOf.call(sortInput,a)-indexOf.call(sortInput,b)):0}
578return compare&4?-1:1}:function(a,b){if(a===b){hasDuplicate=!0;return 0}
579var cur,i=0,aup=a.parentNode,bup=b.parentNode,ap=[a],bp=[b];if(!aup||!bup){return a===doc?-1:b===doc?1:aup?-1:bup?1:sortInput?(indexOf.call(sortInput,a)-indexOf.call(sortInput,b)):0}else if(aup===bup){return siblingCheck(a,b)}
580cur=a;while((cur=cur.parentNode)){ap.unshift(cur)}
581cur=b;while((cur=cur.parentNode)){bp.unshift(cur)}
582while(ap[i]===bp[i]){i++}
583return i?siblingCheck(ap[i],bp[i]):ap[i]===preferredDoc?-1:bp[i]===preferredDoc?1:0};return doc};Sizzle.matches=function(expr,elements){return Sizzle(expr,null,null,elements)};Sizzle.matchesSelector=function(elem,expr){if((elem.ownerDocument||elem)!==document){setDocument(elem)}
584expr=expr.replace(rattributeQuotes,"='$1']");if(support.matchesSelector&&documentIsHTML&&(!rbuggyMatches||!rbuggyMatches.test(expr))&&(!rbuggyQSA||!rbuggyQSA.test(expr))){try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&elem.document.nodeType!==11){return ret}}catch(e){}}
585return Sizzle(expr,document,null,[elem]).length>0};Sizzle.contains=function(context,elem){if((context.ownerDocument||context)!==document){setDocument(context)}
586return contains(context,elem)};Sizzle.attr=function(elem,name){if((elem.ownerDocument||elem)!==document){setDocument(elem)}
587var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):undefined;return val!==undefined?val:support.attributes||!documentIsHTML?elem.getAttribute(name):(val=elem.getAttributeNode(name))&&val.specified?val.value:null};Sizzle.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg)};Sizzle.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;hasDuplicate=!support.detectDuplicates;sortInput=!support.sortStable&&results.slice(0);results.sort(sortOrder);if(hasDuplicate){while((elem=results[i++])){if(elem===results[i]){j=duplicates.push(i)}}
588while(j--){results.splice(duplicates[j],1)}}
589sortInput=null;return results};getText=Sizzle.getText=function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(!nodeType){while((node=elem[i++])){ret+=getText(node)}}else if(nodeType===1||nodeType===9||nodeType===11){if(typeof elem.textContent==="string"){return elem.textContent}else{for(elem=elem.firstChild;elem;elem=elem.nextSibling){ret+=getText(elem)}}}else if(nodeType===3||nodeType===4){return elem.nodeValue}
590return ret};Expr=Sizzle.selectors={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{"ATTR":function(match){match[1]=match[1].replace(runescape,funescape);match[3]=(match[4]||match[5]||"").replace(runescape,funescape);if(match[2]==="~="){match[3]=" "+match[3]+" "}
591return match.slice(0,4)},"CHILD":function(match){match[1]=match[1].toLowerCase();if(match[1].slice(0,3)==="nth"){if(!match[3]){Sizzle.error(match[0])}
592match[4]=+(match[4]?match[5]+(match[6]||1):2*(match[3]==="even"||match[3]==="odd"));match[5]=+((match[7]+match[8])||match[3]==="odd")}else if(match[3]){Sizzle.error(match[0])}
593return match},"PSEUDO":function(match){var excess,unquoted=!match[5]&&match[2];
593if(matchExpr.CHILD.test(match[0])){return null}
594if(match[3]&&match[4]!==undefined){match[2]=match[4]}else if(unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,!0))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)){match[0]=match[0].slice(0,excess);match[2]=unquoted.slice(0,excess)}
595return match.slice(0,3)}},filter:{"TAG":function(nodeNameSelector){var nodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return nodeNameSelector==="*"?function(){return!0}:function(elem){return elem.nodeName&&elem.nodeName.toLowerCase()===nodeName}},"CLASS":function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,function(elem){return pattern.test(typeof elem.className==="string"&&elem.className||typeof elem.getAttribute!==strundefined&&elem.getAttribute("class")||"")})},"ATTR":function(name,operator,check){return function(elem){var result=Sizzle.attr(elem,name);if(result==null){return operator==="!="}
596if(!operator){return!0}
597result+="";return operator==="="?result===check:operator==="!="?result!==check:operator==="^="?check&&result.indexOf(check)===0:operator==="*="?check&&result.indexOf(check)>-1:operator==="$="?check&&result.slice(-check.length)===check:operator==="~="?(" "+result+" ").indexOf(check)>-1:operator==="|="?result===check||result.slice(0,check.length+1)===check+"-":!1}},"CHILD":function(type,what,argument,first,last){var simple=type.slice(0,3)!=="nth",forward=type.slice(-4)!=="last",ofType=what==="of-type";return first===1&&last===0?function(elem){return!!elem.parentNode}:function(elem,context,xml){var cache,outerCache,node,diff,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType;if(parent){if(simple){while(dir){node=elem;while((node=node[dir])){if(ofType?node.nodeName.toLowerCase()===name:node.nodeType===1){return!1}}
598start=dir=type==="only"&&!start&&"nextSibling"}
599return!0}
600start=[forward?parent.firstChild:parent.lastChild];if(forward&&useCache){outerCache=parent[expando]||(parent[expando]={});cache=outerCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=cache[0]===dirruns&&cache[2];node=nodeIndex&&parent.childNodes[nodeIndex];while((node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())){if(node.nodeType===1&&++diff&&node===elem){outerCache[type]=[dirruns,nodeIndex,diff];break}}}else if(useCache&&(cache=(elem[expando]||(elem[expando]={}))[type])&&cache[0]===dirruns){diff=cache[1]}else{while((node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())){if((ofType?node.nodeName.toLowerCase()===name:node.nodeType===1)&&++diff){if(useCache){(node[expando]||(node[expando]={}))[type]=[dirruns,diff]}
601if(node===elem){break}}}}
602diff-=last;return diff===first||(diff%first===0&&diff/first>=0)}}},"PSEUDO":function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||Sizzle.error("unsupported pseudo: "+pseudo);if(fn[expando]){return fn(argument)}
603if(fn.length>1){args=[pseudo,pseudo,"",argument];return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){var idx,matched=fn(seed,argument),i=matched.length;while(i--){idx=indexOf.call(seed,matched[i]);seed[idx]=!(matches[idx]=matched[i])}}):function(elem){return fn(elem,0,args)}}
604return fn}},pseudos:{"not":markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrim,"$1"));return matcher[expando]?markFunction(function(seed,matches,context,xml){var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;while(i--){if((elem=unmatched[i])){seed[i]=!(matches[i]=elem)}}}):function(elem,context,xml){input[0]=elem;matcher(input,null,xml,results);return!results.pop()}}),"has":markFunction(function(selector){return function(elem){return Sizzle(selector,elem).length>0}}),"contains":markFunction(function(text){return function(elem){return(elem.textContent||elem.innerText||getText(elem)).indexOf(text)>-1}}),"lang":markFunction(function(lang){if(!ridentifier.test(lang||"")){Sizzle.error("unsupported lang: "+lang)}
605lang=lang.replace(runescape,funescape).toLowerCase();return function(elem){var elemLang;do{if((elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang"))){elemLang=elemLang.toLowerCase();return elemLang===lang||elemLang.indexOf(lang+"-")===0}}while((elem=elem.parentNode)&&elem.nodeType===1);return!1}}),"target":function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id},"root":function(elem){return elem===docElem},"focus":function(elem){return elem===document.activeElement&&(!document.hasFocus||document.hasFocus())&&!!(elem.type||elem.href||~elem.tabIndex)},"enabled":function(elem){return elem.disabled===!1},"disabled":function(elem){return elem.disabled===!0},"checked":function(elem){var nodeName=elem.nodeName.toLowerCase();return(nodeName==="input"&&!!elem.checked)||(nodeName==="option"&&!!elem.selected)},"selected":function(elem){if(elem.parentNode){elem.parentNode.selectedIndex}
606return elem.selected===!0},"empty":function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling){if(elem.nodeType<6){return!1}}
607return!0},"parent":function(elem){return!Expr.pseudos.empty(elem)},"header":function(elem){return rheader.test(elem.nodeName)},"input":function(elem){return rinputs.test(elem.nodeName)},"button":function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type==="button"||name==="button"},"text":function(elem){var attr;return elem.nodeName.toLowerCase()==="input"&&elem.type==="text"&&((attr=elem.getAttribute("type"))==null||attr.toLowerCase()==="text")},"first":createPositionalPseudo(function(){return[0]}),"last":createPositionalPseudo(function(matchIndexes,length){return[length-1]}),"eq":createPositionalPseudo(function(matchIndexes,length,argument){return[argument<0?argument+length:argument]}
607),"even":createPositionalPseudo(function(matchIndexes,length){var i=0;for(;i<length;i+=2){matchIndexes.push(i)}
608return matchIndexes}),"odd":createPositionalPseudo(function(matchIndexes,length){var i=1;for(;i<length;i+=2){matchIndexes.push(i)}
609return matchIndexes}),"lt":createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;--i>=0;){matchIndexes.push(i)}
610return matchIndexes}),"gt":createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;++i<length;){matchIndexes.push(i)}
611return matchIndexes})}};Expr.pseudos.nth=Expr.pseudos.eq;for(i in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0}){Expr.pseudos[i]=createInputPseudo(i)}
612for(i in{submit:!0,reset:!0}){Expr.pseudos[i]=createButtonPseudo(i)}
613function setFilters(){}
614setFilters.prototype=Expr.filters=Expr.pseudos;Expr.setFilters=new setFilters();function tokenize(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[selector+" "];if(cached){return parseOnly?0:cached.slice(0)}
615soFar=selector;groups=[];preFilters=Expr.preFilter;while(soFar){if(!matched||(match=rcomma.exec(soFar))){if(match){soFar=soFar.slice(match[0].length)||soFar}
616groups.push((tokens=[]))}
617matched=!1;if((match=rcombinators.exec(soFar))){matched=match.shift();tokens.push({value:matched,type:match[0].replace(rtrim," ")});soFar=soFar.slice(matched.length)}
618for(type in Expr.filter){if((match=matchExpr[type].exec(soFar))&&(!preFilters[type]||(match=preFilters[type](match)))){matched=match.shift();tokens.push({value:matched,type:type,matches:match});soFar=soFar.slice(matched.length)}}
619if(!matched){break}}
620return parseOnly?soFar.length:soFar?Sizzle.error(selector):tokenCache(selector,groups).slice(0)}
621function toSelector(tokens){var i=0,len=tokens.length,selector="";for(;i<len;i++){selector+=tokens[i].value}
622return selector}
623function addCombinator(matcher,combinator,base){var dir=combinator.dir,checkNonElements=base&&dir==="parentNode",doneName=done++;return combinator.first?function(elem,context,xml){while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){return matcher(elem,context,xml)}}}:function(elem,context,xml){var oldCache,outerCache,newCache=[dirruns,doneName];if(xml){while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){if(matcher(elem,context,xml)){return!0}}}}else{while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){outerCache=elem[expando]||(elem[expando]={});if((oldCache=outerCache[dir])&&oldCache[0]===dirruns&&oldCache[1]===doneName){return(newCache[2]=oldCache[2])}else{outerCache[dir]=newCache;if((newCache[2]=matcher(elem,context,xml))){return!0}}}}}}}
624function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){var i=matchers.length;while(i--){if(!matchers[i](elem,context,xml)){return!1}}
625return!0}:matchers[0]}
626function multipleContexts(selector,contexts,results){var i=0,len=contexts.length;for(;i<len;i++){Sizzle(selector,contexts[i],results)}
627return results}
628function condense(unmatched,map,filter,context,xml){var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=map!=null;for(;i<len;i++){if((elem=unmatched[i])){if(!filter||filter(elem,context,xml)){newUnmatched.push(elem);if(mapped){map.push(i)}}}}
629return newUnmatched}
630function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){if(postFilter&&!postFilter[expando]){postFilter=setMatcher(postFilter)}
631if(postFinder&&!postFinder[expando]){postFinder=setMatcher(postFinder,postSelector)}
632return markFunction(function(seed,results,context,xml){var temp,i,elem,preMap=[],postMap=[],preexisting=results.length,elems=seed||multipleContexts(selector||"*",context.nodeType?[context]:context,[]),matcherIn=preFilter&&(seed||!selector)?condense(elems,preMap,preFilter,context,xml):elems,matcherOut=matcher?postFinder||(seed?preFilter:preexisting||postFilter)?[]:results:matcherIn;if(matcher){matcher(matcherIn,matcherOut,context,xml)}
633if(postFilter){temp=condense(matcherOut,postMap);postFilter(temp,[],context,xml);i=temp.length;while(i--){if((elem=temp[i])){matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem)}}}
634if(seed){if(postFinder||preFilter){if(postFinder){temp=[];i=matcherOut.length;while(i--){if((elem=matcherOut[i])){temp.push((matcherIn[i]=elem))}}
635postFinder(null,(matcherOut=[]),temp,xml)}
636i=matcherOut.length;while(i--){if((elem=matcherOut[i])&&(temp=postFinder?indexOf.call(seed,elem):preMap[i])>-1){seed[temp]=!(results[temp]=elem)}}}}else{matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut);if(postFinder){postFinder(null,results,matcherOut,xml)}else{push.apply(results,matcherOut)}}})}
637function matcherFromTokens(tokens){var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext},implicitRelative,!0),matchAnyContext=addCombinator(function(elem){return indexOf.call(checkContext,elem)>-1},implicitRelative,!0),matchers=[function(elem,context,xml){return(!leadingRelative&&(xml||context!==outermostContext))||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml))}];for(;i<len;i++){if((matcher=Expr.relative[tokens[i].type])){matchers=[addCombinator(elementMatcher(matchers),matcher)]}else{matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches);if(matcher[expando]){j=++i;for(;j<len;j++){if(Expr.relative[tokens[j].type]){break}}
638return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:tokens[i-2].type===" "?"*":""})).replace(rtrim,"$1"),matcher,i<j&&matcherFromTokens(tokens.slice(i,j)),j<len&&matcherFromTokens((tokens=tokens.slice(j))),j<len&&toSelector(tokens))}
639matchers.push(matcher)}}
640return elementMatcher(matchers)}
641function matcherFromGroupMatchers(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find.TAG("*",outermost),dirrunsUnique=(dirruns+=contextBackup==null?1:Math.random()||0.1),len=elems.length;if(outermost){outermostContext=context!==document&&context}
642for(;i!==len&&(elem=elems[i])!=null;i++){if(byElement&&elem){j=0;while((matcher=elementMatchers[j++])){if(matcher(elem,context,xml)){results.push(elem);break}}
643if(outermost){dirruns=dirrunsUnique}}
644if(bySet){if((elem=!matcher&&elem)){matchedCount--}
645if(seed){unmatched.push(elem)}}}
646matchedCount+=i;
646if(bySet&&i!==matchedCount){j=0;while((matcher=setMatchers[j++])){matcher(unmatched,setMatched,context,xml)}
647if(seed){if(matchedCount>0){while(i--){if(!(unmatched[i]||setMatched[i])){setMatched[i]=pop.call(results)}}}
648setMatched=condense(setMatched)}
649push.apply(results,setMatched);if(outermost&&!seed&&setMatched.length>0&&(matchedCount+setMatchers.length)>1){Sizzle.uniqueSort(results)}}
650if(outermost){dirruns=dirrunsUnique;outermostContext=contextBackup}
651return unmatched};return bySet?markFunction(superMatcher):superMatcher}
652compile=Sizzle.compile=function(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){if(!match){match=tokenize(selector)}
653i=match.length;while(i--){cached=matcherFromTokens(match[i]);if(cached[expando]){setMatchers.push(cached)}else{elementMatchers.push(cached)}}
654cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers));cached.selector=selector}
655return cached};select=Sizzle.select=function(selector,context,results,seed){var i,tokens,token,type,find,compiled=typeof selector==="function"&&selector,match=!seed&&tokenize((selector=compiled.selector||selector));results=results||[];if(match.length===1){tokens=match[0]=match[0].slice(0);if(tokens.length>2&&(token=tokens[0]).type==="ID"&&support.getById&&context.nodeType===9&&documentIsHTML&&Expr.relative[tokens[1].type]){context=(Expr.find.ID(token.matches[0].replace(runescape,funescape),context)||[])[0];if(!context){return results}else if(compiled){context=context.parentNode}
656selector=selector.slice(tokens.shift().value.length)}
657i=matchExpr.needsContext.test(selector)?0:tokens.length;while(i--){token=tokens[i];if(Expr.relative[(type=token.type)]){break}
658if((find=Expr.find[type])){if((seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context))){tokens.splice(i,1);selector=seed.length&&toSelector(tokens);if(!selector){push.apply(results,seed);return results}
659break}}}}(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,rsibling.test(selector)&&testContext(context.parentNode)||context);return results};support.sortStable=expando.split("").sort(sortOrder).join("")===expando;support.detectDuplicates=!!hasDuplicate;setDocument();support.sortDetached=assert(function(div1){return div1.compareDocumentPosition(document.createElement("div"))&1});if(!assert(function(div){div.innerHTML="<a href='#'></a>";return div.firstChild.getAttribute("href")==="#"})){addHandle("type|href|height|width",function(elem,name,isXML){if(!isXML){return elem.getAttribute(name,name.toLowerCase()==="type"?1:2)}})}
660if(!support.attributes||!assert(function(div){div.innerHTML="<input/>";div.firstChild.setAttribute("value","");return div.firstChild.getAttribute("value")===""})){addHandle("value",function(elem,name,isXML){if(!isXML&&elem.nodeName.toLowerCase()==="input"){return elem.defaultValue}})}
661if(!assert(function(div){return div.getAttribute("disabled")==null})){addHandle(booleans,function(elem,name,isXML){var val;if(!isXML){return elem[name]===!0?name.toLowerCase():(val=elem.getAttributeNode(name))&&val.specified?val.value:null}})}
662if(typeof define==="function"&&define.amd){define(function(){return Sizzle})}else if(typeof module!=="undefined"&&module.exports){module.exports=Sizzle}else{window.Sizzle=Sizzle}})(window);(function(){if(typeof Sizzle!=='undefined'){return}
663if(typeof define!=='undefined'&&define.amd){window.Sizzle=Prototype._actual_sizzle;window.define=Prototype._original_define;delete Prototype._actual_sizzle;delete Prototype._original_define}else if(typeof module!=='undefined'&&module.exports){window.Sizzle=module.exports;module.exports={}}})();(function(engine){var extendElements=Prototype.Selector.extendElements;function select(selector,scope){return extendElements(engine(selector,scope||document))}
664function match(element,selector){return engine.matches(selector,[element]).length==1}
665Prototype.Selector.engine=engine;Prototype.Selector.select=select;Prototype.Selector.match=match})(Sizzle);window.Sizzle=Prototype._original_property;delete Prototype._original_property;var Form={reset:function(form){form=$(form);form.reset();return form}
665,serializeElements:function(elements,options){if(typeof options!='object')options={hash:!!options};else if(Object.isUndefined(options.hash))options.hash=!0;var key,value,submitted=!1,submit=options.submit,accumulator,initial;if(options.hash){initial={};accumulator=function(result,key,value){if(key in result){if(!Object.isArray(result[key]))result[key]=[result[key]];result[key]=result[key].concat(value)}else result[key]=value;return result}}else{initial='';accumulator=function(result,key,values){if(!Object.isArray(values)){values=[values]}
666if(!values.length){return result}
667var encodedKey=encodeURIComponent(key).gsub(/%20/,'+');return result+(result?"&":"")+values.map(function(value){value=value.gsub(/(\r)?\n/,'\r\n');value=encodeURIComponent(value);value=value.gsub(/%20/,'+');return encodedKey+"="+value}).join("&")}}
668return elements.inject(initial,function(result,element){if(!element.disabled&&element.name){key=element.name;value=$(element).getValue();if(value!=null&&element.type!='file'&&(element.type!='submit'||(!submitted&&submit!==!1&&(!submit||key==submit)&&(submitted=!0)))){result=accumulator(result,key,value)}}
669return result})}};Form.Methods={serialize:function(form,options){return Form.serializeElements(Form.getElements(form),options)},getElements:function(form){var elements=$(form).getElementsByTagName('*');var element,results=[],serializers=Form.Element.Serializers;for(var i=0;element=elements[i];i++){if(serializers[element.tagName.toLowerCase()])
670results.push(Element.extend(element))}
671return results},getInputs:function(form,typeName,name){form=$(form);var inputs=form.getElementsByTagName('input');if(!typeName&&!name)return $A(inputs).map(Element.extend);for(var i=0,matchingInputs=[],length=inputs.length;i<length;i++){var input=inputs[i];if((typeName&&input.type!=typeName)||(name&&input.name!=name))
672continue;matchingInputs.push(Element.extend(input))}
673return matchingInputs},disable:function(form){form=$(form);Form.getElements(form).invoke('disable');return form},enable:function(form){form=$(form);Form.getElements(form).invoke('enable');return form},findFirstElement:function(form){var elements=$(form).getElements().findAll(function(element){return'hidden'!=element.type&&!element.disabled});var firstByIndex=elements.findAll(function(element){return element.hasAttribute('tabIndex')&&element.tabIndex>=0}).sortBy(function(element){return element.tabIndex}).first();return firstByIndex?firstByIndex:elements.find(function(element){return/^(?:input|select|textarea)$/i.test(element.tagName)})},focusFirstElement:function(form){form=$(form);var element=form.findFirstElement();if(element)element.activate();return form},request:function(form,options){form=$(form),options=Object.clone(options||{});var params=options.parameters,action=form.readAttribute('action')||'';if(action.blank())action=window.location.href;options.parameters=form.serialize(!0);if(params){if(Object.isString(params))params=params.toQueryParams();Object.extend(options.parameters,params)}
674if(form.hasAttribute('method')&&!options.method)
675options.method=form.method;return new Ajax.Request(action,options)}};Form.Element={focus:function(element){$(element).focus();return element},select:function(element){$(element).select();return element}};Form.Element.Methods={serialize:function(element){element=$(element);if(!element.disabled&&element.name){var value=element.getValue();if(value!=undefined){var pair={};pair[element.name]=value;return Object.toQueryString(pair)}}
676return''},getValue:function(element){element=$(element);var method=element.tagName.toLowerCase();return Form.Element.Serializers[method](element)},setValue:function(element,value){element=$(element);var method=element.tagName.toLowerCase();Form.Element.Serializers[method](element,value);return element},clear:function(element){$(element).value='';return element},present:function(element){return $(element).value!=''},activate:function(element){element=$(element);try{element.focus();if(element.select&&(element.tagName.toLowerCase()!='input'||!(/^(?:button|reset|submit)$/i.test(element.type))))
677element.select()}catch(e){}
678return element},disable:function(element){element=$(element);element.disabled=!0;return element},enable:function(element){element=$(element);element.disabled=!1;return element}};var Field=Form.Element;var $F=Form.Element.Methods.getValue;Form.Element.Serializers=(function(){function input(element,value){switch(element.type.toLowerCase()){case 'checkbox':case 'radio':return inputSelector(element,value);default:return valueSelector(element,value)}}
679function inputSelector(element,value){if(Object.isUndefined(value))
680return element.checked?element.value:null;else element.checked=!!value}
681function valueSelector(element,value){if(Object.isUndefined(value))return element.value;else element.value=value}
682function select(element,value){if(Object.isUndefined(value))
683return(element.type==='select-one'?selectOne:selectMany)(element);var opt,currentValue,single=!Object.isArray(value);for(var i=0,length=element.length;i<length;i++){opt=element.options[i];currentValue=this.optionValue(opt);if(single){if(currentValue==value){opt.selected=!0;return}}else opt.selected=value.include(currentValue)}}
684function selectOne(element){var index=element.selectedIndex;return index>=0?optionValue(element.options[index]):null}
685function selectMany(element){var values,length=element.length;if(!length)return null;for(var i=0,values=[];i<length;i++){var opt=element.options[i];if(opt.selected)values.push(optionValue(opt))}
686return values}
687function optionValue(opt){return Element.hasAttribute(opt,'value')?opt.value:opt.text}
688return{input:input,inputSelector:inputSelector,textarea:valueSelector,select:select,selectOne:selectOne,selectMany:selectMany,optionValue:optionValue,button:valueSelector}})();Abstract.TimedObserver=Class.create(PeriodicalExecuter,{initialize:function($super,element,frequency,callback){$super(callback,frequency);this.element=$(element);this.lastValue=this.getValue()},execute:function(){var value=this.getValue();if(Object.isString(this.lastValue)&&Object.isString(value)?this.lastValue!=value:String(this.lastValue)!=String(value)){this.callback(this.element,value);this.lastValue=value}}});Form.Element.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.Element.getValue(this.element)}});Form.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.serialize(this.element)}});Abstract.EventObserver=Class.create({initialize:function(element,callback){this.element=$(element);this.callback=callback;this.lastValue=this.getValue();if(this.element.tagName.toLowerCase()=='form')
689this.registerFormCallbacks();else this.registerCallback(this.element)},onElementEvent:function(){var value=this.getValue();if(this.lastValue!=value){this.callback(this.element,value);this.lastValue=value}},registerFormCallbacks:function(){Form.getElements(this.element).each(this.registerCallback,this)},registerCallback:function(element){if(element.type){switch(element.type.toLowerCase()){case 'checkbox':case 'radio':Event.observe(element,'click',this.onElementEvent.bind(this));break;default:Event.observe(element,'change',this.onElementEvent.bind(this));break}}}});Form.Element.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){return Form.Element.getValue(this.element)}});Form.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){return Form.serialize(this.element)}});(function(GLOBAL){var DIV=document.createElement('div');var docEl=document.documentElement;var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED='onmouseenter' in docEl&&'onmouseleave' in docEl;var Event={KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,KEY_HOME:36,KEY_END:35,KEY_PAGEUP:33,KEY_PAGEDOWN:34,KEY_INSERT:45};var isIELegacyEvent=function(event){return!1};if(window.attachEvent){if(window.addEventListener){isIELegacyEvent=function(event){return!(event instanceof window.Event)}}else{isIELegacyEvent=function(event){return!0}}}
690var _isButton;function _isButtonForDOMEvents(event,code){return event.which?(event.which===code+1):(event.button===code)}
691var legacyButtonMap={0:1,1:4,2:2};function _isButtonForLegacyEvents(event,code){return event.button===legacyButtonMap[code]}
692function _isButtonForWebKit(event,code){switch(code){case 0:return event.which==1&&!event.metaKey;case 1:return event.which==2||(event.which==1&&event.metaKey);case 2:return event.which==3;default:return!1}}
693if(window.attachEvent){if(!window.addEventListener){_isButton=_isButtonForLegacyEvents}else{_isButton=function(event,code){return isIELegacyEvent(event)?_isButtonForLegacyEvents(event,code):_isButtonForDOMEvents(event,code)}}}else if(Prototype.Browser.WebKit){_isButton=_isButtonForWebKit}else{_isButton=_isButtonForDOMEvents}
694function isLeftClick(event){return _isButton(event,0)}
695function isMiddleClick(event){return _isButton(event,1)}
696function isRightClick(event){return _isButton(event,2)}
697function element(event){return Element.extend(_element(event))}
698function _element(event){event=Event.extend(event);var node=event.target,type=event.type,currentTarget=event.currentTarget;if(currentTarget&&currentTarget.tagName){if(type==='load'||type==='error'||(type==='click'&&currentTarget.tagName.toLowerCase()==='input'&&currentTarget.type==='radio'))
699node=currentTarget}
700return node.nodeType==Node.TEXT_NODE?node.parentNode:node}
701function findElement(event,expression){var element=_element(event),selector=Prototype.Selector;if(!expression)return Element.extend(element);while(element){if(Object.isElement(element)&&selector.match(element,expression))
702return Element.extend(element);element=element.parentNode}}
703function pointer(event){return{x:pointerX(event),y:pointerY(event)}}
704function pointerX(event){var docElement=document.documentElement,body=document.body||{scrollLeft:0};return event.pageX||(event.clientX+(docElement.scrollLeft||body.scrollLeft)-(docElement.clientLeft||0))}
705function pointerY(event){var docElement=document.documentElement,body=document.body||{scrollTop:0};return event.pageY||(event.clientY+(docElement.scrollTop||body.scrollTop)-(docElement.clientTop||0))}
706function stop(event){Event.extend(event);event.preventDefault();event.stopPropagation();event.stopped=!0}
707Event.Methods={isLeftClick:isLeftClick,isMiddleClick:isMiddleClick,isRightClick:isRightClick,element:element,findElement:findElement,pointer:pointer,pointerX:pointerX,pointerY:pointerY,stop:stop};var methods=Object.keys(Event.Methods).inject({},function(m,name){m[name]=Event.Methods[name].methodize();return m});if(window.attachEvent){function _relatedTarget(event){var element;switch(event.type){case 'mouseover':case 'mouseenter':element=event.fromElement;break;case 'mouseout':case 'mouseleave':element=event.toElement;break;default:return null}
708return Element.extend(element)}
709var additionalMethods={stopPropagation:function(){this.cancelBubble=!0},preventDefault:function(){this.returnValue=!1},inspect:function(){return'[object Event]'}};Event.extend=function(event,element){if(!event)return!1;if(!isIELegacyEvent(event))return event;if(event._extendedByPrototype)return event;event._extendedByPrototype=Prototype.emptyFunction;var pointer=Event.pointer(event);Object.extend(event,{target:event.srcElement||element,relatedTarget:_relatedTarget(event),pageX:pointer.x,pageY:pointer.y});Object.extend(event,methods);Object.extend(event,additionalMethods);return event}}else{Event.extend=Prototype.K}
710if(window.addEventListener){Event.prototype=window.Event.prototype||document.createEvent('HTMLEvents').__proto__;Object.extend(Event.prototype,methods)}
711var EVENT_TRANSLATIONS={mouseenter:'mouseover',mouseleave:'mouseout'};function getDOMEventName(eventName){return EVENT_TRANSLATIONS[eventName]||eventName}
712if(MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED)
713getDOMEventName=Prototype.K;function getUniqueElementID(element){if(element===window)return 0;if(typeof element._prototypeUID==='undefined')
714element._prototypeUID=Element.Storage.UID++;return element._prototypeUID}
715function getUniqueElementID_IE(element){if(element===window)return 0;if(element==document)return 1;return element.uniqueID}
716if('uniqueID' in DIV)
717getUniqueElementID=getUniqueElementID_IE;function isCustomEvent(eventName){return eventName.include(':')}
718Event._isCustomEvent=isCustomEvent;function getOrCreateRegistryFor(element,uid){var CACHE=GLOBAL.Event.cache;if(Object.isUndefined(uid))
719uid=getUniqueElementID(element);if(!CACHE[uid])CACHE[uid]={element:element};return CACHE[uid]}
720function destroyRegistryForElement(element,uid){if(Object.isUndefined(uid))
721uid=getUniqueElementID(element);delete GLOBAL.Event.cache[uid]}
722function register(element,eventName,handler){var registry=getOrCreateRegistryFor(element);if(!registry[eventName])registry[eventName]=[];var entries=registry[eventName];var i=entries.length;while(i--)
723if(entries[i].handler===handler)return null;var uid=getUniqueElementID(element);var responder=GLOBAL.Event._createResponder(uid,eventName,handler);var entry={responder:responder,handler:handler};entries.push(entry);return entry}
724function unregister(element,eventName,handler){var registry=getOrCreateRegistryFor(element);var entries=registry[eventName]||[];var i=entries.length,entry;while(i--){if(entries[i].handler===handler){entry=entries[i];break}}
725if(entry){var index=entries.indexOf(entry);entries.splice(index,1)}
726if(entries.length===0){delete registry[eventName];if(Object.keys(registry).length===1&&('element' in registry))
727destroyRegistryForElement(element)}
728return entry}
729function observe(element,eventName,handler){element=$(element);var entry=register(element,eventName,handler);if(entry===null)return element;var responder=entry.responder;if(isCustomEvent(eventName))
730observeCustomEvent(element,eventName,responder);else observeStandardEvent(element,eventName,responder);return element}
731function observeStandardEvent(element,eventName,responder){var actualEventName=getDOMEventName(eventName);if(element.addEventListener){element.addEventListener(actualEventName,responder,!1)}else{element.attachEvent('on'+actualEventName,responder)}}
732function observeCustomEvent(element,eventName,responder){if(element.addEventListener){element.addEventListener('dataavailable',responder,!1)}else{element.attachEvent('ondataavailable',responder);element.attachEvent('onlosecapture',responder)}}
733function stopObserving(element,eventName,handler){element=$(element);var handlerGiven=!Object.isUndefined(handler),eventNameGiven=!Object.isUndefined(eventName);if(!eventNameGiven&&!handlerGiven){stopObservingElement(element);return element}
734if(!handlerGiven){stopObservingEventName(element,eventName);return element}
735var entry=unregister(element,eventName,handler);if(!entry)return element;removeEvent(element,eventName,entry.responder);return element}
736function stopObservingStandardEvent(element,eventName,responder){var actualEventName=getDOMEventName(eventName);if(element.removeEventListener){element.removeEventListener(actualEventName,responder,!1)}else{element.detachEvent('on'+actualEventName,responder)}}
737function stopObservingCustomEvent(element,eventName,responder){if(element.removeEventListener){element.removeEventListener('dataavailable',responder,!1)}else{element.detachEvent('ondataavailable',responder);element.detachEvent('onlosecapture',responder)}}
738function stopObservingElement(element){var uid=getUniqueElementID(element),registry=GLOBAL.Event.cache[uid];if(!registry)return;
738destroyRegistryForElement(element,uid);var entries,i;for(var eventName in registry){if(eventName==='element')continue;entries=registry[eventName];i=entries.length;while(i--)
739removeEvent(element,eventName,entries[i].responder);}}
740function stopObservingEventName(element,eventName){var registry=getOrCreateRegistryFor(element);var entries=registry[eventName];if(entries){delete registry[eventName]}
741entries=entries||[];var i=entries.length;while(i--)
742removeEvent(element,eventName,entries[i].responder);for(var name in registry){if(name==='element')continue;return}
743destroyRegistryForElement(element)}
744function removeEvent(element,eventName,handler){if(isCustomEvent(eventName))
745stopObservingCustomEvent(element,eventName,handler);else stopObservingStandardEvent(element,eventName,handler)}
746function getFireTarget(element){if(element!==document)return element;if(document.createEvent&&!element.dispatchEvent)
747return document.documentElement;return element}
748function fire(element,eventName,memo,bubble){element=getFireTarget($(element));if(Object.isUndefined(bubble))bubble=!0;memo=memo||{};var event=fireEvent(element,eventName,memo,bubble);return Event.extend(event)}
749function fireEvent_DOM(element,eventName,memo,bubble){var event=document.createEvent('HTMLEvents');event.initEvent('dataavailable',bubble,!0);event.eventName=eventName;event.memo=memo;element.dispatchEvent(event);return event}
750function fireEvent_IE(element,eventName,memo,bubble){var event=document.createEventObject();event.eventType=bubble?'ondataavailable':'onlosecapture';event.eventName=eventName;event.memo=memo;element.fireEvent(event.eventType,event);return event}
751var fireEvent=document.createEvent?fireEvent_DOM:fireEvent_IE;Event.Handler=Class.create({initialize:function(element,eventName,selector,callback){this.element=$(element);this.eventName=eventName;this.selector=selector;this.callback=callback;this.handler=this.handleEvent.bind(this)},start:function(){Event.observe(this.element,this.eventName,this.handler);return this},stop:function(){Event.stopObserving(this.element,this.eventName,this.handler);return this},handleEvent:function(event){var element=Event.findElement(event,this.selector);if(element)this.callback.call(this.element,event,element)}});function on(element,eventName,selector,callback){element=$(element);if(Object.isFunction(selector)&&Object.isUndefined(callback)){callback=selector,selector=null}
752return new Event.Handler(element,eventName,selector,callback).start()}
753Object.extend(Event,Event.Methods);Object.extend(Event,{fire:fire,observe:observe,stopObserving:stopObserving,on:on});Element.addMethods({fire:fire,observe:observe,stopObserving:stopObserving,on:on});Object.extend(document,{fire:fire.methodize(),observe:observe.methodize(),stopObserving:stopObserving.methodize(),on:on.methodize(),loaded:!1});if(GLOBAL.Event)Object.extend(window.Event,Event);else GLOBAL.Event=Event;GLOBAL.Event.cache={};function destroyCache_IE(){GLOBAL.Event.cache=null}
754if(window.attachEvent)
755window.attachEvent('onunload',destroyCache_IE);DIV=null;docEl=null})(this);(function(GLOBAL){var docEl=document.documentElement;var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED='onmouseenter' in docEl&&'onmouseleave' in docEl;function isSimulatedMouseEnterLeaveEvent(eventName){return!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED&&(eventName==='mouseenter'||eventName==='mouseleave')}
756function createResponder(uid,eventName,handler){if(Event._isCustomEvent(eventName))
757return createResponderForCustomEvent(uid,eventName,handler);if(isSimulatedMouseEnterLeaveEvent(eventName))
758return createMouseEnterLeaveResponder(uid,eventName,handler);return function(event){if(!Event.cache)return;var element=Event.cache[uid].element;Event.extend(event,element);handler.call(element,event)}}
759function createResponderForCustomEvent(uid,eventName,handler){return function(event){var cache=Event.cache[uid];var element=cache&&cache.element;if(Object.isUndefined(event.eventName))
760return!1;if(event.eventName!==eventName)
761return!1;Event.extend(event,element);handler.call(element,event)}}
762function createMouseEnterLeaveResponder(uid,eventName,handler){return function(event){var element=Event.cache[uid].element;Event.extend(event,element);var parent=event.relatedTarget;while(parent&&parent!==element){try{parent=parent.parentNode}catch(e){parent=element}}
763if(parent===element)return;handler.call(element,event)}}
764GLOBAL.Event._createResponder=createResponder;docEl=null})(this);(function(GLOBAL){var TIMER;function fireContentLoadedEvent(){if(document.loaded)return;if(TIMER)window.clearTimeout(TIMER);document.loaded=!0;document.fire('dom:loaded')}
765function checkReadyState(){if(document.readyState==='complete'){document.detachEvent('onreadystatechange',checkReadyState);fireContentLoadedEvent()}}
766function pollDoScroll(){try{document.documentElement.doScroll('left')}catch(e){TIMER=pollDoScroll.p_defer();return}
767fireContentLoadedEvent()}
768if(document.readyState==='complete'){fireContentLoadedEvent();return}
769if(document.addEventListener){document.addEventListener('DOMContentLoaded',fireContentLoadedEvent,!1)}else{document.attachEvent('onreadystatechange',checkReadyState);if(window==top)TIMER=pollDoScroll.p_defer()}
770Event.observe(window,'load',fireContentLoadedEvent)})(this);Element.addMethods();Hash.toQueryString=Object.toQueryString;var Toggle={display:Element.toggle};Element.addMethods({childOf:Element.Methods.descendantOf});var Insertion={Before:function(element,content){return Element.insert(element,{before:content})},Top:function(element,content){return Element.insert(element,{top:content})},Bottom:function(element,content){return Element.insert(element,{bottom:content})},After:function(element,content){return Element.insert(element,{after:content})}};var $continue=new Error('"throw $continue" is deprecated, use "return" instead');var Position={includeScrollOffsets:!1,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},within:function(element,x,y){if(this.includeScrollOffsets)
771return this.withinIncludingScrolloffsets(element,x,y);this.xcomp=x;this.ycomp=y;this.offset=Element.cumulativeOffset(element);return(y>=this.offset[1]&&y<this.offset[1]+element.offsetHeight&&x>=this.offset[0]&&x<this.offset[0]+element.offsetWidth)},withinIncludingScrolloffsets:function(element,x,y){var offsetcache=Element.cumulativeScrollOffset(element);this.xcomp=x+offsetcache[0]-this.deltaX;this.ycomp=y+offsetcache[1]-this.deltaY;this.offset=Element.cumulativeOffset(element);return(this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+element.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+element.offsetWidth)},overlap:function(mode,element){if(!mode)return 0;if(mode=='vertical')
772return((this.offset[1]+element.offsetHeight)-this.ycomp)/element.offsetHeight;if(mode=='horizontal')
773return((this.offset[0]+element.offsetWidth)-this.xcomp)/element.offsetWidth},cumulativeOffset:Element.Methods.cumulativeOffset,positionedOffset:Element.Methods.positionedOffset,absolutize:function(element){Position.prepare();return Element.absolutize(element)},relativize:function(element){Position.prepare();return Element.relativize(element)},realOffset:Element.Methods.cumulativeScrollOffset,offsetParent:Element.Methods.getOffsetParent,page:Element.Methods.viewportOffset,clone:function(source,target,options){options=options||{};return Element.clonePosition(target,source,options)}};if(!document.getElementsByClassName)document.getElementsByClassName=function(instanceMethods){function iter(name){return name.blank()?null:"[contains(concat(' ', @class, ' '), ' "+name+" ')]"}
774instanceMethods.getElementsByClassName=Prototype.BrowserFeatures.XPath?function(element,className){className=className.toString().strip();var cond=/\s/.test(className)?$w(className).map(iter).join(''):iter(className);return cond?document._getElementsByXPath('.//*'+cond,element):[]}:function(element,className){className=className.toString().strip();var elements=[],classNames=(/\s/.test(className)?$w(className):null);if(!classNames&&!className)return elements;var nodes=$(element).getElementsByTagName('*');className=' '+className+' ';for(var i=0,child,cn;child=nodes[i];i++){if(child.className&&(cn=' '+child.className+' ')&&(cn.include(className)||(classNames&&classNames.all(function(name){return!name.toString().blank()&&cn.include(' '+name+' ')}))))
775elements.push(Element.extend(child))}
776return elements};return function(className,parentElement){return $(parentElement||document.body).getElementsByClassName(className)}}(Element.Methods);Element.ClassNames=Class.create();Element.ClassNames.prototype={initialize:function(element){this.element=$(element)},_each:function(iterator,context){this.element.className.split(/\s+/).select(function(name){return name.length>0})._each(iterator,context)},set:function(className){this.element.className=className},add:function(classNameToAdd){if(this.include(classNameToAdd))return;this.set($A(this).concat(classNameToAdd).join(' '))},remove:function(classNameToRemove){if(!this.include(classNameToRemove))return;this.set($A(this).without(classNameToRemove).join(' '))},toString:function(){return $A(this).join(' ')}};Object.extend(Element.ClassNames.prototype,Enumerable);(function(){window.Selector=Class.create({initialize:function(expression){this.expression=expression.strip()},findElements:function(rootElement){return Prototype.Selector.select(this.expression,rootElement)},match:function(element){return Prototype.Selector.match(element,this.expression)},toString:function(){return this.expression},inspect:function(){return"#<Selector: "+this.expression+">"}});Object.extend(Selector,{matchElements:function(elements,expression){var match=Prototype.Selector.match,results=[];for(var i=0,length=elements.length;i<length;i++){var element=elements[i];if(match(element,expression)){results.push(Element.extend(element))}}
777return results}
777,findElement:function(elements,expression,index){index=index||0;var matchIndex=0,element;for(var i=0,length=elements.length;i<length;i++){element=elements[i];if(Prototype.Selector.match(element,expression)&&index===matchIndex++){return Element.extend(element)}}},findChildElements:function(element,expressions){var selector=expressions.toArray().join(', ');return Prototype.Selector.select(selector,element||document)}})})();
778/**
779 * @author Ryan Johnson <http://syntacticx.com/>
780 * @copyright 2008 PersonalGrid Corporation <http://personalgrid.com/>
781 * @package LivePipe UI
782 * @license MIT
783 * @url http://livepipe.net/core
784 * @require prototype.js
785 */
786if(typeof(Control)=='undefined')
787Control={};var $proc=function(proc){return typeof(proc)=='function'?proc:function(){return proc}};var $value=function(value){return typeof(value)=='function'?value():value};Object.Event={extend:function(object){object._objectEventSetup=function(event_name){this._observers=this._observers||{};this._observers[event_name]=this._observers[event_name]||[]};object.observe=function(event_name,observer){if(typeof(event_name)=='string'&&typeof(observer)!='undefined'){this._objectEventSetup(event_name);if(!this._observers[event_name].include(observer))
788this._observers[event_name].push(observer)}else for(var e in event_name)
789this.observe(e,event_name[e]);};object.stopObserving=function(event_name,observer){this._objectEventSetup(event_name);if(event_name&&observer)
790this._observers[event_name]=this._observers[event_name].without(observer);else if(event_name)
791this._observers[event_name]=[];else this._observers={}};object.observeOnce=function(event_name,outer_observer){var inner_observer=function(){outer_observer.apply(this,arguments);this.stopObserving(event_name,inner_observer)}.bind(this);this._objectEventSetup(event_name);this._observers[event_name].push(inner_observer)};object.notify=function(event_name){this._objectEventSetup(event_name);var collected_return_values=[];var args=$A(arguments).slice(1);try{for(var i=0;i<this._observers[event_name].length;++i)
792collected_return_values.push(this._observers[event_name][i].apply(this._observers[event_name][i],args)||null);}catch(e){if(e==$break)
793return!1;else throw e}
794return collected_return_values};if(object.prototype){object.prototype._objectEventSetup=object._objectEventSetup;object.prototype.observe=object.observe;object.prototype.stopObserving=object.stopObserving;object.prototype.observeOnce=object.observeOnce;object.prototype.notify=function(event_name){if(object.notify){var args=$A(arguments).slice(1);args.unshift(this);args.unshift(event_name);object.notify.apply(object,args)}
795this._objectEventSetup(event_name);var args=$A(arguments).slice(1);var collected_return_values=[];try{if(this.options&&this.options[event_name]&&typeof(this.options[event_name])=='function')
796collected_return_values.push(this.options[event_name].apply(this,args)||null);for(var i=0;i<this._observers[event_name].length;++i)
797collected_return_values.push(this._observers[event_name][i].apply(this._observers[event_name][i],args)||null);}catch(e){if(e==$break)
798return!1;else throw e}
799return collected_return_values}}}};
800/* Begin Core Extensions */
801
802//Element.observeOnce
803Element.addMethods({
804	observeOnce: function(element,event_name,outer_callback){
805		var inner_callback = function(){
806			outer_callback.apply(this,arguments);
807			Element.stopObserving(element,event_name,inner_callback);
808		};
809		Element.observe(element,event_name,inner_callback);
810	}
811});
812
813//mouse:wheel
814(function(){
815	function wheel(event){
816		var delta, element, custom_event;
817		// normalize the delta
818		if (event.wheelDelta) { // IE & Opera
819			delta = event.wheelDelta / 120;
820		} else if (event.detail) { // W3C
821			delta =- event.detail / 3;
822		}
823		if (!delta) { return; }
824		element = Event.extend(event).target;
825		element = Element.extend(element.nodeType === Node.TEXT_NODE ? element.parentNode : element);
826		custom_event = element.fire('mouse:wheel',{ delta: delta });
827		if (custom_event.stopped) {
828			Event.stop(event);
829			return false;
830		}
831	}
832	document.observe('mousewheel',wheel);
833	document.observe('DOMMouseScroll',wheel);
834})();
835
836/* End Core Extensions */
837
838//from PrototypeUI
839var IframeShim = Class.create({
840	initialize: function() {
841		this.element = new Element('iframe',{
842			style: 'position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);display:none',
843			src: '/src/javascript/blank.html',/*src: 'javascript:void(0);',*/
844			frameborder: 0 
845		});
846		$(document.body).insert(this.element);
847	},
848	hide: function() {
849		this.element.hide();
850		return this;
851	},
852	show: function() {
853		this.element.show();
854		return this;
855	},
856	positionUnder: function(element) {
857		var element = $(element);
858		var offset = element.cumulativeOffset();
859		var dimensions = element.getDimensions();
860		this.element.setStyle({
861			left: offset[0] + 'px',
862			top: offset[1] + 'px',
863			width: dimensions.width + 'px',
864			height: dimensions.height + 'px',
865			zIndex: element.getStyle('zIndex') - 1
866		}).show();
867		return this;
868	},
869	setBounds: function(bounds) {
870		for(prop in bounds)
871			bounds[prop] += 'px';
872		this.element.setStyle(bounds);
873		return this;
874	},
875	destroy: function() {
876		if(this.element)
877			this.element.remove();
878		return this;
879	}
880});
881
882//## tabs.js
883/**
884 * @author Ryan Johnson <http://syntacticx.com/>
885 * @copyright 2008 PersonalGrid Corporation <http://personalgrid.com/>
886 * @package LivePipe UI
887 * @license MIT
888 * @url http://livepipe.net/control/tabs
889 * @require prototype.js, livepipe.js
890 */
891
892/*global window, document, Prototype, $, $A, $H, $break, Class, Element, Event, Control */
893
894if(typeof(Prototype) == "undefined") {
895    throw "Control.Tabs requires Prototype to be loaded."; }
896if(typeof(Object.Event) == "undefined") {
897    throw "Control.Tabs requires Object.Event to be loaded."; }
898
899Control.Tabs = Class.create({
900    initialize: function(tab_list_container,options){
901        if(!$(tab_list_container)) {
902            throw "Control.Tabs could not find the element: " + tab_list_container; }
903        this.activeContainer = false;
904        this.activeLink = false;
905        this.containers = $H({});
906        this.links = [];
907				this.containerId=tab_list_container;
908        Control.Tabs.instances.push(this);
909        this.options = {
910            beforeChange: Prototype.emptyFunction,
911            afterChange: Prototype.emptyFunction,
912            hover: false,
913            linkSelector: 'li a',
914            setClassOnContainer: false,
915            activeClassName: 'active',
916            defaultTab: 'first',
917            autoLinkExternal: true,
918            targetRegExp: /#(.+)$/,
919            showFunction: Element.show,
920            hideFunction: Element.hide
921        };
922        Object.extend(this.options,options || {});
923        (typeof(this.options.linkSelector) == 'string' ?
924            $(tab_list_container).select(this.options.linkSelector) : 
925            this.options.linkSelector($(tab_list_container))
926        ).findAll(function(link){
927            return (/^#/).exec((Prototype.Browser.WebKit ? decodeURIComponent(link.href) : link.href).replace(/.*(#.*)/, "$1"));
928            //return (/^#/).exec((Prototype.Browser.WebKit ? decodeURIComponent(link.href) : link.href).replace(window.location.href.split('#')[0],''));
929        }).each(function(link){
930            this.addTab(link);
931        }.bind(this));
932        this.containers.values().each(Element.hide);
933        if(this.options.defaultTab == 'first') {
934            this.setActiveTab(this.links.first());
935        } else if(this.options.defaultTab == 'last') {
936            this.setActiveTab(this.links.last());
937        } else {
938            this.setActiveTab(this.options.defaultTab); }
939        var targets = this.options.targetRegExp.exec(window.location);
940        if(targets && targets[1]){
941            targets[1].split(',').each(function(target){
942                this.setActiveTab(this.links.find(function(link){
943                    return link.key == target;
944                }));
945            }.bind(this));
946        }
947        if(this.options.autoLinkExternal){
948            $A(document.getElementsByTagName('a')).each(function(a){
949                if(!this.links.include(a)){
950                    var clean_href = a.href.replace(window.location.href.split('#')[0],'');
951                    if(clean_href.substring(0,1) == '#'){
952                        if(this.containers.keys().include(clean_href.substring(1))){
953                            $(a).observe('click',function(event,clean_href){
954                                this.setActiveTab(clean_href.substring(1));
955                            }.bindAsEventListener(this,clean_href));
956                        }
957                    }
958                }
959            }.bind(this));
960        }
961    },
962    addTab: function(link){
963        this.links.push(link);
964        link.key = link.getAttribute('href').replace(window.location.href.split('#')[0],'').split('#').last().replace(/#/,'');
965        var container = $(link.key);
966        if(!container) {
967            throw "Control.Tabs: #" + link.key + " was not found on the page."; }
968        this.containers.set(link.key,container);
969        link[this.options.hover ? 'onmouseover' : 'onclick'] = function(link){
970            if(window.event) {
971                Event.stop(window.event); }
972            this.setActiveTab(link);
973            return false;
974        }.bind(this,link);
975    },
976    setActiveTab: function(link){
977        if(!link && typeof(link) == 'undefined') {
978            return; }
979        if(typeof(link) == 'string'){
980            this.setActiveTab(this.links.find(function(_link){
981                return _link.key == link;
982            }));
983        }else if(typeof(link) == 'number'){
984            this.setActiveTab(this.links[link]);
985        }else{
986            if(this.notify('beforeChange',this.activeContainer,this.containers.get(link.key)) === false) {
987                return; }
988            if(this.activeContainer) {
989                this.options.hideFunction(this.activeContainer); }
990						// Cache tous les tabs
991						if(this.allActivated)
992						{
993							this.links.each(function(item){
994								var key = this.containers.get(item.key)
995								this.options.hideFunction(key);
996							}.bind(this));
997							this.allActivated=false;
998						}
999
1000            this.links.each(function(item){
1001                (this.options.setClassOnContainer ? $(item.parentNode) : item).removeClassName(this.options.activeClassName);
1002            }.bind(this));
1003            (this.options.setClassOnContainer ? $(link.parentNode) : link).addClassName(this.options.activeClassName);
1004            this.activeContainer = this.containers.get(link.key);
1005            this.activeLink = link;
1006            this.options.showFunction(this.containers.get(link.key));
1007            this.notify('afterChange',this.containers.get(link.key));
1008        }
1009    },
1010    next: function(){
1011        this.links.each(function(link,i){
1012            if(this.activeLink == link && this.links[i + 1]){
1013                this.setActiveTab(this.links[i + 1]);
1014                throw $break;
1015            }
1016        }.bind(this));
1017    },
1018    previous: function(){
1019        this.links.each(function(link,i){
1020            if(this.activeLink == link && this.links[i - 1]){
1021                this.setActiveTab(this.links[i - 1]);
1022                throw $break;
1023            }
1024        }.bind(this));
1025    },
1026    first: function(){
1027        this.setActiveTab(this.links.first());
1028    },
1029    last: function(){
1030        this.setActiveTab(this.links.last());
1031		},
1032		// Ajouté 2009-05-11
1033		toggleAll: function()
1034		{
1035			if(this.allActivated)
1036			{
1037				this.none();
1038				this.setActiveTab(this.activeLink);
1039			}
1040			else
1041			{
1042				this.all();
1043			}
1044		},
1045		all: function()
1046		{
1047			if(this.notify('beforeChange',this.activeContainer,null) === false) return;
1048			this.allActivated=true;
1049			this.links.each(function(link,i){
1050				this.options.showFunction(this.containers.get(link.key));
1051			}.bind(this));
1052			this.notify('afterChange',null);
1053		},
1054		none: function()
1055		{
1056			this.allActivated=false;
1057			this.links.each(function(link,i){
1058				this.options.hideFunction(this.containers.get(link.key));
1059			}.bind(this));
1060    }
1061});
1062// cette extension n'a plus l'air de fonctionner et ne sert plus a rien (sauf code florent)
1063Object.extend(Control.Tabs,{
1064    instances: [],
1065	findInstanceByContainerId: function(id){
1066		return Control.Tabs.instances.find(function(tab){
1067			return tab.containerId==id;
1068		});
1069    }
1070});
1071Object.Event.extend(Control.Tabs);
1072
1073//## window.js
1074/**
1075 * @author Ryan Johnson <http://syntacticx.com/>
1076 * @copyright 2008 PersonalGrid Corporation <http://personalgrid.com/>
1077 * @package LivePipe UI
1078 * @license MIT
1079 * @url http://livepipe.net/control/window
1080 * @require prototype.js, effects.js, draggable.js, resizable.js, livepipe.js
1081 */
1082if(typeof(Draggable)!='undefined'){Draggable.prototype.draw=function(point){var pos=Position.cumulativeOffset(this.element);if(this.options.ghosting){var r=Position.realOffset(this.element);pos[0]+=r[0]-Position.deltaX;pos[1]+=r[1]-Position.deltaY}
1083var d=this.currentDelta();pos[0]-=d[0];pos[1]-=d[1];if(this.options.scroll&&(this.options.scroll!=window&&this._isScrollChild)){pos[0]-=this.options.scroll.scrollLeft-this.originalScrollLeft;pos[1]-=this.options.scroll.scrollTop-this.originalScrollTop}
1084var p=[0,1].map(function(i){return(point[i]-pos[i]-this.offset[i])}.bind(this));if(this.options.snap){if(typeof this.options.snap=='function'){p=this.options.snap(p[0],p[1],this)}else{if(this.options.snap instanceof Array){p=p.map(function(v,i){return Math.round(v/this.options.snap[i])*this.options.snap[i]}.bind(this))}else{p=p.map(function(v){return Math.round(v/this.options.snap)*this.options.snap}.bind(this))}}}
1085if(this.options.onDraw)
1086this.options.onDraw.bind(this)(p);else{var style=this.element.style;if(this.options.constrainToViewport){var viewport_dimensions=document.viewport.getDimensions();var container_dimensions=this.element.getDimensions();var margin_top=parseInt(this.element.getStyle('margin-top'));var margin_left=parseInt(this.element.getStyle('margin-left'));var boundary=[[0-margin_left,0-margin_top],[(viewport_dimensions.width-container_dimensions.width)-margin_left,(viewport_dimensions.height-container_dimensions.height)-margin_top]];if((!this.options.constraint)||(this.options.constraint=='horizontal')){if((p[0]>=boundary[0][0])&&(p[0]<=boundary[1][0]))
1087this.element.style.left=p[0]+"px";else this.element.style.left=((p[0]<boundary[0][0])?boundary[0][0]:boundary[1][0])+"px"}
1088if((!this.options.constraint)||(this.options.constraint=='vertical')){if((p[1]>=boundary[0][1])&&(p[1]<=boundary[1][1]))
1089this.element.style.top=p[1]+"px";else this.element.style.top=((p[1]<=boundary[0][1])?boundary[0][1]:boundary[1][1])+"px"}}else{if((!this.options.constraint)||(this.options.constraint=='horizontal'))
1090style.left=p[0]+"px";if((!this.options.constraint)||(this.options.constraint=='vertical'))
1091style.top=p[1]+"px"}
1092if(style.visibility=="hidden")
1093style.visibility=""}}}
1094if(typeof(Prototype)=="undefined")
1095throw "Control.Window requires Prototype to be loaded.";if(typeof(IframeShim)=="undefined")
1096throw "Control.Window requires IframeShim to be loaded.";if(typeof(Object.Event)=="undefined")
1097throw "Control.Window requires Object.Event to be loaded.";
1098/*
1099    known issues:
1100        - when iframe is clicked is does not gain focus
1101        - safari can't open multiple iframes properly
1102        - constrainToViewport: body must have no margin or padding for this to work properly
1103        - iframe will be mis positioned during fade in
1104        - document.viewport does not account for scrollbars (this will eventually be fixed in the prototype core)
1105    notes
1106        - setting constrainToViewport only works when the page is not scrollable
1107        - setting draggable: true will negate the effects of position: center
1108*/
1109Control.Window = Class.create({
1110    initialize: function(container,options){
1111        Control.Window.windows.push(this);
1112        
1113        //attribute initialization
1114        this.container = false;
1115        this.isOpen = false;
1116        this.href = false;
1117        this.sourceContainer = false; //this is optionally the container that will open the window
1118        this.ajaxRequest = false;
1119        this.remoteContentLoaded = false; //this is set when the code to load the remote content is run, onRemoteContentLoaded is fired when the connection is closed
1120        this.numberInSequence = Control.Window.windows.length + 1; //only useful for the effect scoping
1121        this.indicator = false;
1122        this.effects = {
1123            fade: false,
1124            appear: false
1125        };
1126        this.indicatorEffects = {
1127            fade: false,
1128            appear: false
1129        };
1130        
1131        //options
1132        this.options = Object.extend({
1133            //lifecycle
1134            beforeOpen: Prototype.emptyFunction,
1135            afterOpen: Prototype.emptyFunction,
1136            beforeClose: Prototype.emptyFunction,
1137            afterClose: Prototype.emptyFunction,
1138            //dimensions and modes
1139            height: null,
1140            width: null,
1141            className: false,
1142            position: 'center', //'center', 'center_once', 'relative', [x,y], [function(){return x;},function(){return y;}]
1143            offsetLeft: 0, //available only for anchors opening the window, or windows set to position: hover
1144            offsetTop: 0, //""
1145            iframe: false, //if the window has an href, this will display the href as an iframe instead of requesting the url as an an Ajax.Request
1146            hover: false, //element object to hover over, or if "true" only available for windows with sourceContainer (an anchor or any element already on the page with an href attribute)
1147            indicator: false, //element to show or hide when ajax requests, images and iframes are loading
1148            closeOnClick: false, //does not work with hover,can be: true (click anywhere), 'container' (will refer to this.container), or element (a specific element)
1149            iframeshim: true, //whether or not to position an iFrameShim underneath the window 
1150            //effects
1151            fade: false,
1152            fadeDuration: 0.75,
1153            //draggable
1154            draggable: false,
1155            onDrag: Prototype.emptyFunction,
1156            //resizable
1157            resizable: false,
1158            minHeight: false,
1159            minWidth: false,
1160            maxHeight: false,
1161            maxWidth: false,
1162            onResize: Prototype.emptyFunction,
1163            //draggable and resizable
1164            constrainToViewport: false,
1165            //ajax
1166            method: 'post',
1167            parameters: {},
1168            // les deux options ajoutées suivantes servent a désactiver le repositionnement de la fenêtre en cas de resize et si la fenetre est trop grosse par rapport au viewport.
1169            disableOutOfBoundsPositionHandler: false,
1170            disableViewportCheck: false,
1171            onComplete: Prototype.emptyFunction,
1172            onSuccess: Prototype.emptyFunction,
1173            onFailure: Prototype.emptyFunction,
1174            onException: Prototype.emptyFunction,
1175            //any element with an href (image,iframe,ajax) will call this after it is done loading
1176            onRemoteContentLoaded: Prototype.emptyFunction,
1177            insertRemoteContentAt: false //false will set this to this.container, can be string selector (first returned will be selected), or an Element that must be a child of this.container
1178        },options || {});
1179        
1180        //container setup
1181        this.indicator = this.options.indicator ? $(this.options.indicator) : false;
1182        if(container){
1183            if(typeof(container) == "string" && container.match(Control.Window.uriRegex))
1184                this.href = container;
1185            else{
1186                this.container = $(container);
1187                //need to create the container now for tooltips (or hover: element with no container already on the page)
1188                //second call made below will not create the container since the check is done inside createDefaultContainer()
1189                this.createDefaultContainer(container);
1190                //if an element with an href was passed in we use it to activate the window
1191                if(this.container && ((this.container.readAttribute('href') && this.container.readAttribute('href') != '') || (this.options.hover && this.options.hover !== true))){                        
1192                    if(this.options.hover && this.options.hover !== true)
1193                        this.sourceContainer = $(this.options.hover);
1194                    else{
1195                        this.sourceContainer = this.container;
1196                        this.href = this.container.readAttribute('href');
1197                        var rel = this.href.match(/^#(.+)$/);
1198                        if(rel && rel[1]){
1199                            this.container = $(rel[1]);
1200                            this.href = false;
1201                        }else
1202                            this.container = false;
1203                    }
1204                    //hover or click handling
1205                    this.sourceContainerOpenHandler = function(event){
1206                        this.open(event);
1207                        event.stop();
1208                        return false;
1209                    }.bindAsEventListener(this);
1210                    this.sourceContainerCloseHandler = function(event){
1211                        this.close(event);
1212                    }.bindAsEventListener(this);
1213                    this.sourceContainerMouseMoveHandler = function(event){
1214                        this.position(event);
1215                    }.bindAsEventListener(this);
1216                    if(this.options.hover){
1217                        this.sourceContainer.observe('mouseenter',this.sourceContainerOpenHandler);
1218                        this.sourceContainer.observe('mouseleave',this.sourceContainerCloseHandler);
1219                        if(this.options.position == 'mouse')
1220                            this.sourceContainer.observe('mousemove',this.sourceContainerMouseMoveHandler);
1221                    }else
1222                        this.sourceContainer.observe('click',this.sourceContainerOpenHandler);
1223                }
1224            }
1225        }
1226        this.createDefaultContainer(container);
1227        if(this.options.insertRemoteContentAt === false)
1228            this.options.insertRemoteContentAt = this.container;
1229        var styles = {
1230            margin: 0,
1231            position: 'absolute',
1232            zIndex: Control.Window.initialZIndexForWindow()
1233        };
1234        if(this.options.width)
1235            styles.width = $value(this.options.width) + 'px';
1236        if(this.options.height)
1237            styles.height = $value(this.options.height) + 'px';
1238        this.container.setStyle(styles);
1239        if(this.options.className)
1240            this.container.addClassName(this.options.className);
1241        this.positionHandler = this.position.bindAsEventListener(this);
1242        if(this.options.disableOutOfBoundsPositionHandler===true)
1243        {
1244        	this.outOfBoundsPositionHandler = function(){};
1245        }
1246        else
1247        {
1248        	this.outOfBoundsPositionHandler = this.ensureInBounds.bindAsEventListener(this);
1249        }
1250        this.bringToFrontHandler = this.bringToFront.bindAsEventListener(this);
1251        this.container.observe('mousedown',this.bringToFrontHandler);
1252        this.container.hide();
1253        this.closeHandler = this.close.bindAsEventListener(this);
1254        //iframeshim setup
1255        if(this.options.iframeshim){
1256            this.iFrameShim = new IframeShim();
1257            this.iFrameShim.hide();
1258        }
1259        //resizable support
1260        this.applyResizable();
1261        //draggable support
1262        this.applyDraggable();
1263        
1264        //makes sure the window can't go out of bounds
1265        Event.observe(window,'resize',this.outOfBoundsPositionHandler);
1266        
1267        this.notify('afterInitialize');
1268    },
1269    open: function(event){
1270        if(this.isOpen){
1271            this.bringToFront();
1272            return false;
1273        }
1274        if(this.notify('beforeOpen') === false)
1275            return false;
1276        //closeOnClick
1277        if(this.options.closeOnClick){
1278            if(this.options.closeOnClick === true)
1279                this.closeOnClickContainer = $(document.body);
1280            else if(this.options.closeOnClick == 'container')
1281                this.closeOnClickContainer = this.container;
1282            else if (this.options.closeOnClick == 'overlay'){
1283                Control.Overlay.load();
1284                this.closeOnClickContainer = Control.Overlay.container;
1285            }else
1286                this.closeOnClickContainer = $(this.options.closeOnClick);
1287            this.closeOnClickContainer.observe('click',this.closeHandler);
1288        }
1289        if(this.href && !this.options.iframe && !this.remoteContentLoaded){
1290            //link to image
1291            this.remoteContentLoaded = true;
1292            if(this.href.match(/\.(jpe?g|gif|png|tiff?)$/i)){
1293                var img = new Element('img');
1294                img.observe('load',function(img){
1295                    this.getRemoteContentInsertionTarget().insert(img);
1296                    this.position();
1297                    if(this.notify('onRemoteContentLoaded') !== false){
1298                        if(this.options.indicator)
1299                            this.hideIndicator();
1300                        this.finishOpen();
1301                    }
1302                }.bind(this,img));
1303                img.writeAttribute('src',this.href);
1304            }else{
1305                //if this is an ajax window it will only open if the request is successful
1306                if(!this.ajaxRequest){
1307                    if(this.options.indicator)
1308                        this.showIndicator();
1309                    this.ajaxRequest = new Ajax.Request(this.href,{
1310                        method: this.options.method,
1311                        parameters: this.options.parameters,
1312                        onComplete: function(request){
1313                            this.notify('onComplete',request);
1314                            this.ajaxRequest = false;
1315                        }.bind(this),
1316                        onSuccess: function(request){
1317                            this.getRemoteContentInsertionTarget().insert(request.responseText);
1318                            this.notify('onSuccess',request);
1319                            if(this.notify('onRemoteContentLoaded') !== false){
1320                                if(this.options.indicator)
1321                                    this.hideIndicator();
1322                                this.finishOpen();
1323                            }
1324                        }.bind(this),
1325                        onFailure: function(request){
1326                            this.notify('onFailure',request);
1327                            if(this.options.indicator)
1328                                this.hideIndicator();
1329                        }.bind(this),
1330                        onException: function(request,e){
1331                            this.notify('onException',request,e);
1332                            if(this.options.indicator)
1333                                this.hideIndicator();
1334                        }.bind(this)
1335                    });
1336                }
1337            }
1338            return true;
1339        }else if(this.options.iframe && !this.remoteContentLoaded){
1340            //iframe
1341            this.remoteContentLoaded = true;
1342            if(this.options.indicator)
1343                this.showIndicator();
1344            this.getRemoteContentInsertionTarget().insert(Control.Window.iframeTemplate.evaluate({
1345                href: this.href
1346            }));
1347            var iframe = this.container.down('iframe');
1348            //iframe.onload ne fonctionne pas sous IE s'il est défini de cette manière. Remplacé par fakeonload ajouté dynamiquement dans le template de l'iframe.
1349            /*
1350            iframe.onload = function(){
1351                this.notify('onRemoteContentLoaded');
1352                if(this.options.indicator)
1353                    this.hideIndicator();
1354                iframe.onload = null;
1355            }.bind(this);
1356            */
1357            iframe.fakeonload = function(){
1358                this.notify('onRemoteContentLoaded');
1359                if(this.options.indicator)
1360                    this.hideIndicator();
1361                iframe.fakeonload = null;
1362            }.bind(this);
1363        }
1364        this.finishOpen(event);
1365        return true
1366    },
1367    close: function(event){ //event may or may not be present
1368        if(!this.isOpen || this.notify('beforeClose',event) === false)
1369            return false;
1370        if(this.options.closeOnClick)
1371            this.closeOnClickContainer.stopObserving('click',this.closeHandler);
1372        if(this.options.fade){
1373            this.effects.fade = new Effect.Fade(this.container,{
1374                queue: {
1375                    position: 'front',
1376                    scope: 'Control.Window' + this.numberInSequence
1377                },
1378                from: 1,
1379                to: 0,
1380                duration: this.options.fadeDuration / 2,
1381                afterFinish: function(){
1382                    if(this.iFrameShim)
1383                        this.iFrameShim.hide();
1384                    this.isOpen = false;
1385                    this.notify('afterClose');
1386                }.bind(this)
1387            });
1388        }else{
1389            this.container.hide();
1390            if(this.iFrameShim)
1391                this.iFrameShim.hide();
1392        }
1393        if(this.ajaxRequest)
1394            this.ajaxRequest.transport.abort();
1395        if(!(this.options.draggable || this.options.resizable) && this.options.position == 'center')
1396            Event.stopObserving(window,'resize',this.positionHandler);
1397        if(!this.options.draggable && this.options.position == 'center')
1398            Event.stopObserving(window,'scroll',this.positionHandler);
1399        if(this.options.indicator)
1400            this.hideIndicator();
1401        if(!this.options.fade){
1402            this.isOpen = false;
1403            this.notify('afterClose');
1404        }
1405        return true;
1406    },
1407    position: function(event){
1408        //this is up top for performance reasons
1409        if(this.options.position == 'mouse'){
1410            var xy = [Event.pointerX(event),Event.pointerY(event)];
1411            this.container.setStyle({
1412                top: xy[1] + $value(this.options.offsetTop) + 'px',
1413                left: xy[0] + $value(this.options.offsetLeft) + 'px'
1414            });
1415            return;
1416        }
1417        var container_dimensions = this.container.getDimensions();
1418        var viewport_dimensions = document.viewport.getDimensions();
1419        Position.prepare();
1420        var offset_left = (Position.deltaX + Math.floor((viewport_dimensions.width - container_dimensions.width) / 2));
1421        var offset_top = (Position.deltaY + ((viewport_dimensions.height > container_dimensions.height) ? Math.floor((viewport_dimensions.height - container_dimensions.height) / 2) : 0));
1422        if(this.options.position == 'center' || this.options.position == 'center_once'){
1423            this.container.setStyle({
1424							
1425              top: (container_dimensions.height <= viewport_dimensions.height || this.options.disableViewportCheck) ? ((offset_top != null && offset_top > 0) ? offset_top : 0) + 'px' : 0,
1426              left: (container_dimensions.width <= viewport_dimensions.width || this.options.disableViewportCheck) ? ((offset_left != null && offset_left > 0) ? offset_left : 0) + 'px' : 0
1427            });
1428        }else if(this.options.position == 'relative'){
1429            var xy = this.sourceContainer.cumulativeOffset();
1430            var top = xy[1] + $value(this.options.offsetTop);
1431            var left = xy[0] + $value(this.options.offsetLeft);
1432            this.container.setStyle({
1433                top: (container_dimensions.height <= viewport_dimensions.height || this.options.disableViewportCheck) ? (this.options.constrainToViewport ? Math.max(0,Math.min(viewport_dimensions.height - (container_dimensions.height),top)) : top) + 'px' : 0,
1434                left: (container_dimensions.width <= viewport_dimensions.width || this.options.disableViewportCheck) ? (this.options.constrainToViewport ? Math.max(0,Math.min(viewport_dimensions.width - (container_dimensions.width),left)) : left) + 'px' : 0
1435            });
1436        }else if(this.options.position.length){
1437            var top = $value(this.options.position[1]) + $value(this.options.offsetTop);
1438            var left = $value(this.options.position[0]) + $value(this.options.offsetLeft);
1439            this.container.setStyle({
1440                top: (container_dimensions.height <= viewport_dimensions.height || this.options.disableViewportCheck) ? (this.options.constrainToViewport ? Math.max(0,Math.min(viewport_dimensions.height - (container_dimensions.height),top)) : top) + 'px' : 0,
1441                left: (container_dimensions.width <= viewport_dimensions.width || this.options.disableViewportCheck) ? (this.options.constrainToViewport ? Math.max(0,Math.min(viewport_dimensions.width - (container_dimensions.width),left)) : left) + 'px' : 0
1442            });
1443        }
1444        if(this.iFrameShim)
1445            this.updateIFrameShimZIndex();
1446    },
1447    ensureInBounds: function(){
1448        if(!this.isOpen)
1449            return;
1450        var viewport_dimensions = document.viewport.getDimensions();
1451        var container_offset = this.container.cumulativeOffset();
1452        var container_dimensions = this.container.getDimensions();
1453        if(container_offset.left + container_dimensions.width > viewport_dimensions.width){
1454            this.container.setStyle({
1455                left: (Math.max(0,viewport_dimensions.width - container_dimensions.width)) + 'px'
1456            });
1457        }
1458        if(container_offset.top + container_dimensions.height > viewport_dimensions.height){
1459            this.container.setStyle({
1460                top: (Math.max(0,viewport_dimensions.height - container_dimensions.height)) + 'px'
1461            });
1462        }
1463    },
1464    bringToFront: function(){
1465        Control.Window.bringToFront(this);
1466        this.notify('bringToFront');
1467    },
1468    destroy: function(){
1469        this.container.stopObserving('mousedown',this.bringToFrontHandler);
1470        if(this.draggable){
1471            Draggables.removeObserver(this.container);
1472            this.draggable.handle.stopObserving('mousedown',this.bringToFrontHandler);
1473            this.draggable.destroy();
1474        }
1475        if(this.resizable){
1476            Resizables.removeObserver(this.container);
1477            this.resizable.handle.stopObserving('mousedown',this.bringToFrontHandler);
1478            this.resizable.destroy();
1479        }
1480        if(this.container && !this.sourceContainer)
1481            this.container.remove();
1482        if(this.sourceContainer){
1483            if(this.options.hover){
1484                this.sourceContainer.stopObserving('mouseenter',this.sourceContainerOpenHandler);
1485                this.sourceContainer.stopObserving('mouseleave',this.sourceContainerCloseHandler);
1486                if(this.options.position == 'mouse')
1487                    this.sourceContainer.stopObserving('mousemove',this.sourceContainerMouseMoveHandler);
1488            }else
1489                this.sourceContainer.stopObserving('click',this.sourceContainerOpenHandler);
1490        }
1491        if(this.iFrameShim)
1492            this.iFrameShim.destroy();
1493        Event.stopObserving(window,'resize',this.outOfBoundsPositionHandler);
1494        Control.Window.windows = Control.Window.windows.without(this);
1495        this.notify('afterDestroy');
1496    },
1497    //private
1498    applyResizable: function(){
1499        if(this.options.resizable){
1500            if(typeof(Resizable) == "undefined")
1501                throw "Control.Window requires resizable.js to be loaded.";
1502            var resizable_handle = null;
1503            if(this.options.resizable === true){
1504                resizable_handle = new Element('div',{
1505                    className: 'resizable_handle'
1506                });
1507                this.container.insert(resizable_handle);
1508            }else
1509                resizable_handle = $(this.options.resziable);
1510            this.resizable = new Resizable(this.container,{
1511                handle: resizable_handle,
1512                minHeight: this.options.minHeight,
1513                minWidth: this.options.minWidth,
1514                maxHeight: this.options.constrainToViewport ? function(element){
1515                    //viewport height - top - total border height
1516                    return (document.viewport.getDimensions().height - parseInt(element.style.top || 0)) - (element.getHeight() - parseInt(element.style.height || 0
1516));
1517                } : this.options.maxHeight,
1518                maxWidth: this.options.constrainToViewport ? function(element){
1519                    //viewport width - left - total border width
1520                    return (document.viewport.getDimensions().width - parseInt(element.style.left || 0)) - (element.getWidth() - parseInt(element.style.width || 0));
1521                } : this.options.maxWidth
1522            });
1523            this.resizable.handle.observe('mousedown',this.bringToFrontHandler);
1524            Resizables.addObserver(new Control.Window.LayoutUpdateObserver(this,function(){
1525                if(this.iFrameShim)
1526                    this.updateIFrameShimZIndex();
1527                this.notify('onResize');
1528            }.bind(this)));
1529        }
1530    },
1531    applyDraggable: function(){
1532        if(this.options.draggable){
1533            if(typeof(Draggables) == "undefined")
1534                throw "Control.Window requires dragdrop.js to be loaded.";
1535            var draggable_handle = null;
1536            if(this.options.draggable === true){
1537                draggable_handle = new Element('div',{
1538                    className: 'draggable_handle'
1539                });
1540                this.container.insert(draggable_handle);
1541            }else
1542                draggable_handle = $(this.options.draggable);
1543            this.draggable = new Draggable(this.container,{
1544                handle: draggable_handle,
1545                constrainToViewport: this.options.constrainToViewport,
1546                zindex: this.container.getStyle('z-index'),
1547                starteffect: function(){
1548                    if(Prototype.Browser.IE){
1549                        this.old_onselectstart = document.onselectstart;
1550                        document.onselectstart = function(){
1551                            return false;
1552                        };
1553                    }
1554                }.bind(this),
1555                endeffect: function(){
1556                    document.onselectstart = this.old_onselectstart;
1557                }.bind(this)
1558            });
1559            this.draggable.handle.observe('mousedown',this.bringToFrontHandler);
1560            Draggables.addObserver(new Control.Window.LayoutUpdateObserver(this,function(){
1561                if(this.iFrameShim)
1562                    this.updateIFrameShimZIndex();
1563                this.notify('onDrag');
1564            }.bind(this)));
1565        }
1566    },
1567    createDefaultContainer: function(container){
1568        if(!this.container){
1569            //no container passed or found, create it
1570            this.container = new Element('div',{
1571                id: 'control_window_' + this.numberInSequence
1572            });
1573            $(document.body).insert(this.container);
1574            if(typeof(container) == "string" && $(container) == null && !container.match(/^#(.+)$/) && !container.match(Control.Window.uriRegex))
1575                this.container.update(container);
1576        }
1577    },
1578    finishOpen: function(event){
1579        this.bringToFront();
1580        if(this.options.fade){
1581            if(typeof(Effect) == "undefined")
1582                throw "Control.Window requires effects.js to be loaded."
1583            if(this.effects.fade)
1584                this.effects.fade.cancel();
1585            this.effects.appear = new Effect.Appear(this.container,{
1586                queue: {
1587                    position: 'end',
1588                    scope: 'Control.Window.' + this.numberInSequence
1589                },
1590                from: 0,
1591                to: 1,
1592                duration: this.options.fadeDuration / 2,
1593                afterFinish: function(){
1594                    if(this.iFrameShim)
1595                        this.updateIFrameShimZIndex();
1596                    this.isOpen = true;
1597                    this.notify('afterOpen');
1598                }.bind(this)
1599            });
1600        }else
1601            this.container.show();
1602        this.position(event);
1603        if(!(this.options.draggable || this.options.resizable) && this.options.position == 'center')
1604            Event.observe(window,'resize',this.positionHandler,false);
1605        if(!this.options.draggable && this.options.position == 'center')
1606            Event.observe(window,'scroll',this.positionHandler,false);
1607        if(!this.options.fade){
1608            this.isOpen = true;
1609            this.notify('afterOpen');
1610        }
1611        return true;
1612    },
1613    showIndicator: function(){
1614        this.showIndicatorTimeout = window.setTimeout(function(){
1615            if(this.options.fade){
1616                this.indicatorEffects.appear = new Effect.Appear(this.indicator,{
1617                    queue: {
1618                        position: 'front',
1619                        scope: 'Control.Window.indicator.' + this.numberInSequence
1620                    },
1621                    from: 0,
1622                    to: 1,
1623                    duration: this.options.fadeDuration / 2
1624                });
1625            }else
1626                this.indicator.show();
1627        }.bind(this),Control.Window.indicatorTimeout);
1628    },
1629    hideIndicator: function(){
1630        if(this.showIndicatorTimeout)
1631            window.clearTimeout(this.showIndicatorTimeout);
1632        this.indicator.hide();
1633    },
1634    getRemoteContentInsertionTarget: function(){
1635        return typeof(this.options.insertRemoteContentAt) == "string" ? this.container.down(this.options.insertRemoteContentAt) : $(this.options.insertRemoteContentAt);
1636    },
1637    updateIFrameShimZIndex: function(){
1638        if(this.iFrameShim)
1639            this.iFrameShim.positionUnder(this.container);
1640    }
1641});
1642//class methods
1643Object.extend(Control.Window,{
1644    windows: [],
1645    baseZIndex: 9999,
1646    indicatorTimeout: 250,
1647    // Ajout de fakeonload manuellement car iframe.onload ne peut pas être défini dynamiquement sous IE 6 et 7 (testé).
1648    iframeTemplate: new Template('<iframe src="#{href}" width="100%" height="100%" frameborder="0" onload="if(typeof this.fakeonload ==\'function\') {this.fakeonload();}"></iframe>'),
1649    uriRegex: /^(\/|\#|https?\:\/\/|[\w]+\/)/,
1650    bringToFront: function(w){
1651        Control.Window.windows = Control.Window.windows.without(w);
1652        Control.Window.windows.push(w);
1653        Control.Window.windows.each(function(w,i){
1654            var z_index = Control.Window.baseZIndex + i;
1655            w.container.setStyle({
1656                zIndex: z_index
1657            });
1658            if(w.isOpen){
1659                if(w.iFrameShim)
1660                w.updateIFrameShimZIndex();
1661            }
1662            if(w.options.draggable)
1663                w.draggable.options.zindex = z_index;
1664        });
1665    },
1666    open: function(container,options){
1667        var w = new Control.Window(container,options);
1668        w.open();
1669        return w;
1670    },
1671    //protected
1672    initialZIndexForWindow: function(w){
1673        return Control.Window.baseZIndex + (Control.Window.windows.length - 1);
1674    }
1675});
1676Object.Event.extend(Control.Window);
1677
1678//this is the observer for both Resizables and Draggables
1679Control.Window.LayoutUpdateObserver = Class.create({
1680    initialize: function(w,observer){
1681        this.w = w;
1682        this.element = $(w.container);
1683        this.observer = observer;
1684    },
1685    onStart: Prototype.emptyFunction,
1686    onEnd: function(event_name,instance){
1687        if(instance.element == this.element && this.iFrameShim)
1688            this.w.updateIFrameShimZIndex();
1689    },
1690    onResize: function(event_name,instance){
1691        if(instance.element == this.element)
1692            this.observer(this.element);
1693    },
1694    onDrag: function(event_name,instance){
1695        if(instance.element == this.element)
1696            this.observer(this.element);
1697    }
1698});
1699
1700//overlay for Control.Modal
1701Control.Overlay = {
1702    id: 'control_overlay',
1703    loaded: false,
1704    container: false,
1705    lastOpacity: 0,
1706    getStyles: function() {
1707        return {
1708            position: 'fixed',
1709            top: 0,
1710            left: 0,
1711            width: '100%',
1712            height: '100%',
1713            zIndex: Control.Window.baseZIndex - 1
1714        };
1715    },
1716    getIeStyles: function() {
1717        return {
1718            position: 'absolute',
1719            top: 0,
1720            left: 0,
1721            zIndex: Control.Window.baseZIndex - 1
1722        };
1723    },
1724    effects: {
1725        fade: false,
1726        appear: false
1727    },
1728    load: function(){
1729        if(Control.Overlay.loaded)
1730            return false;
1731        Control.Overlay.loaded = true;
1732        Control.Overlay.container = new Element('div',{
1733            id: Control.Overlay.id
1734        });
1735        $(document.body).insert(Control.Overlay.container);
1736        if(Prototype.Browser.IE){
1737            Control.Overlay.container.setStyle(Control.Overlay.getIeStyles());
1738            Event.observe(window,'scroll',Control.Overlay.positionOverlay);
1739            Event.observe(window,'resize',Control.Overlay.positionOverlay);
1740            Control.Overlay.observe('beforeShow',Control.Overlay.positionOverlay);
1741        }else
1742            Control.Overlay.container.setStyle(Control.Overlay.getStyles());
1743        Control.Overlay.iFrameShim = new IframeShim();
1744        Control.Overlay.iFrameShim.hide();
1745        Event.observe(window,'resize',Control.Overlay.positionIFrameShim);
1746        Control.Overlay.container.hide();
1747        return true;
1748    },
1749    unload: function(){
1750        if(!Control.Overlay.loaded)
1751            return false;
1752        Event.stopObserving(window,'resize',Control.Overlay.positionOverlay);
1753        Control.Overlay.stopObserving('beforeShow',Control.Overlay.positionOverlay);
1754        Event.stopObserving(window,'resize',Control.Overlay.positionIFrameShim);
1755        Control.Overlay.iFrameShim.destroy();
1756        Control.Overlay.container.remove();
1757        Control.Overlay.loaded = false;
1758        return true;
1759    },
1760    show: function(opacity,fade){
1761        if(Control.Overlay.notify('beforeShow') === false)
1762            return false;
1763        Control.Overlay.lastOpacity = opacity;
1764        Control.Overlay.positionIFrameShim();
1765        Control.Overlay.iFrameShim.show();
1766        if(fade){
1767            if(typeof(Effect) == "undefined")
1768                throw "Control.Window requires effects.js to be loaded."
1769            if(Control.Overlay.effects.fade)
1770                Control.Overlay.effects.fade.cancel();
1771            Control.Overlay.effects.appear = new Effect.Appear(Control.Overlay.container,{
1772                queue: {
1773                    position: 'end',
1774                    scope: 'Control.Overlay'
1775                },
1776                afterFinish: function(){
1777                    Control.Overlay.notify('afterShow');
1778                },
1779                from: 0,
1780                to: Control.Overlay.lastOpacity,
1781                duration: (fade === true ? 0.75 : fade) / 2
1782            });
1783        }else{
1784            Control.Overlay.container.setStyle({
1785                opacity: opacity || 1
1786            });
1787            Control.Overlay.container.show();
1788            Control.Overlay.notify('afterShow');
1789        }
1790        return true;
1791    },
1792    hide: function(fade){
1793        if(Control.Overlay.notify('beforeHide') === false)
1794            return false;
1795        if(Control.Overlay.effects.appear)
1796            Control.Overlay.effects.appear.cancel();
1797        Control.Overlay.iFrameShim.hide();
1798        if(fade){
1799            Control.Overlay.effects.fade = new Effect.Fade(Control.Overlay.container,{
1800                queue: {
1801                    position: 'front',
1802                    scope: 'Control.Overlay'
1803                },
1804                afterFinish: function(){
1805                    Control.Overlay.notify('afterHide');
1806                },
1807                from: Control.Overlay.lastOpacity,
1808                to: 0,
1809                duration: (fade === true ? 0.75 : fade) / 2
1810            });
1811        }else{
1812            Control.Overlay.container.hide();
1813            Control.Overlay.notify('afterHide');
1814        }
1815        return true;
1816    },
1817    positionIFrameShim: function(){
1818        if(Control.Overlay.container.visible())
1819            Control.Overlay.iFrameShim.positionUnder(Control.Overlay.container);
1820    },
1821    //IE only
1822    positionOverlay: function(){
1823        Control.Overlay.container.setStyle({
1824            width: document.body.clientWidth + 'px',
1825            height: document.body.clientHeight + 'px'
1826        });
1827    }
1828};
1829Object.Event.extend(Control.Overlay);
1830
1831Control.ToolTip = Class.create(Control.Window,{
1832    initialize: function($super,container,tooltip,options){
1833        $super(tooltip,Object.extend(Object.extend(Object.clone(Control.ToolTip.defaultOptions),options || {}),{
1834            position: 'mouse',
1835            hover: container
1836        }));
1837    }
1838});
1839Object.extend(Control.ToolTip,{
1840    defaultOptions: {
1841        offsetLeft: 10
1842    }
1843});
1844
1845Control.Modal = Class.create(Control.Window,{
1846    initialize: function($super,container,options){
1847        Control.Modal.InstanceMethods.beforeInitialize.bind(this)();
1848        $super(container,Object.extend(Object.clone(Control.Modal.defaultOptions),options || {}));
1849    },
1850    closeWithoutOverlay: function(){
1851        this.keepOverlay = true;
1852        this.close();
1853    }
1854});
1855Object.extend(Control.Modal,{
1856    defaultOptions: {
1857        overlayOpacity: 0.5,
1858        closeOnClick: 'overlay'
1859    },
1860    current: false,
1861    open: function(container,options){
1862        var modal = new Control.Modal(container,options);
1863        modal.open();
1864        return modal;
1865    },
1866    close: function(){
1867        if(Control.Modal.current)
1868            Control.Modal.current.close();
1869    },
1870    InstanceMethods: {
1871        beforeInitialize: function(){
1872            Control.Overlay.load();
1873            this.observe('beforeOpen',Control.Modal.Observers.beforeOpen.bind(this));
1874            this.observe('afterOpen',Control.Modal.Observers.afterOpen.bind(this));
1875            this.observe('afterClose',Control.Modal.Observers.afterClose.bind(this));
1876        }
1877    },
1878    Observers: {
1879        beforeOpen: function(){
1880            Control.Window.windows.without(this).each(function(w){
1881                if(w.closeWithoutOverlay && w.isOpen){
1882                    w.closeWithoutOverlay();
1883                }else{
1884                    w.close();
1885                }
1886            });
1887            if(!Control.Overlay.overlayFinishedOpening){
1888                Control.Overlay.observeOnce('afterShow',function(){
1889                    Control.Overlay.overlayFinishedOpening = true;
1890                    this.open();
1891                }.bind(this));
1892                Control.Overlay.show(this.options.overlayOpacity,this.options.fade ? this.options.fadeDuration : false);
1893                throw $break;
1894            }
1895        },
1896        afterOpen: function(){
1897            Control.Overlay.show(this.options.overlayOpacity);
1898            Control.Overlay.overlayFinishedOpening = true;
1899            Control.Modal.current = this;
1900        },
1901        afterClose: function(){
1902            if(!this.keepOverlay){
1903                Control.Overlay.hide(this.options.fade ? this.options.fadeDuration : false);
1904                Control.Overlay.overlayFinishedOpening = false;
1905            }
1906            this.keepOverlay = false;
1907            Control.Modal.current = false;
1908        }
1909    }
1910});
1911
1912Control.LightBox = Class.create(Control.Window,{
1913    initialize: function($super,container,options){
1914        this.allImagesLoaded = false;
1915        if(options.modal){
1916            var options = Object.extend(Object.clone(Control.LightBox.defaultOptions),options || {});
1917            options = Object.extend(Object.clone(Control.Modal.defaultOptions),options);
1918            options = Control.Modal.InstanceMethods.beforeInitialize.bind(this)(options);
1919            $super(container,options);
1920        }else
1921            $super(container,Object.extend(Object.clone(Control.LightBox.defaultOptions),options || {}));
1922        this.hasRemoteContent = this.href && !this.options.iframe;
1923        if(this.hasRemoteContent)
1924            this.observe('onRemoteContentLoaded',Control.LightBox.Observers.onRemoteContentLoaded.bind(this));
1925        else
1926            this.applyImageObservers();
1927        this.observe('beforeOpen',Control.LightBox.Observers.beforeOpen.bind(this));
1928    },
1929    applyImageObservers:function(){
1930        var images = this.getImages();
1931        this.numberImagesToLoad = images.length;
1932        this.numberofImagesLoaded = 0;
1933        images.each(function(image){
1934            image.observe('load',function(image){
1935                ++this.numberofImagesLoaded;
1936                if(this.numberImagesToLoad == this.numberofImagesLoaded){
1937                    this.allImagesLoaded = true;
1938                    this.onAllImagesLoaded();
1939                }
1940            }.bind(this,image));
1941            image.hide();
1942        }.bind(this));
1943    },
1944    onAllImagesLoaded: function(){
1945        this.getImages().each(function(image){
1946            this.showImage(image);
1947        }.bind(this));
1948        if(this.hasRemoteContent){
1949            if(this.options.indicator)
1950                this.hideIndicator();
1951            this.finishOpen();
1952        }else
1953            this.open();
1954    },
1955    getImages: function(){
1956        return this.container.select(Control.LightBox.imageSelector);
1957    },
1958    showImage: function(image){
1959        image.show();
1960    }
1961});
1962Object.extend(Control.LightBox,{
1963    imageSelector: 'img',
1964    defaultOptions: {},
1965    Observers: {
1966        beforeOpen: function(){
1967            if(!this.hasRemoteContent && !this.allImagesLoaded)
1968                throw $break;
1969        },
1970        onRemoteContentLoaded: function(){
1971            this.applyImageObservers();
1972            if(!this.allImagesLoaded)
1973                throw $break;
1974        }
1975    }
1976});
1977
1978//## resizable.js
1979// script.aculo.us Resizables.js
1980
1981// Copyright(c) 2007 - Orr Siloni, Comet Information Systems http://www.comet.co.il/en/
1982//
1983// Resizable.js is freely distributable under the terms of an MIT-style license.
1984// For details, see the script.aculo.us web site: http://script.aculo.us/
1985
1986var Resizables = {
1987	instances: [],
1988	observers: [],
1989	
1990	register: function(resizable) {
1991		if(this.instances.length == 0) {
1992			this.eventMouseUp   = this.endResize.bindAsEventListener(this);
1993			this.eventMouseMove = this.updateResize.bindAsEventListener(this);
1994			
1995			Event.observe(document, "mouseup", this.eventMouseUp);
1996			Event.observe(document, "mousemove", this.eventMouseMove);
1997		}
1998		this.instances.push(resizable);
1999	},
2000	
2001	unregister: function(resizable) {
2002		this.instances = this.instances.reject(function(d) { return d==resizable });
2003		if(this.instances.length == 0) {
2004			Event.stopObserving(document, "mouseup", this.eventMouseUp);
2005			Event.stopObserving(document, "mousemove", this.eventMouseMove);
2006		}
2007	},
2008	
2009	activate: function(resizable) {
2010		if(resizable.options.delay) { 
2011			this._timeout = setTimeout(function() {
2012				Resizables._timeout = null; 
2013				Resizables.activeResizable = resizable; 
2014			}.bind(this), resizable.options.delay); 
2015		} else {
2016			this.activeResizable = resizable;
2017		}
2018	},
2019	
2020	deactivate: function() {
2021		this.activeResizable = null;
2022	},
2023	
2024	updateResize: function(event) {
2025		if(!this.activeResizable) return;
2026		var pointer = [Event.pointerX(event), Event.pointerY(event)];
2027		// Mozilla-based browsers fire successive mousemove events with
2028		// the same coordinates, prevent needless redrawing (moz bug?)
2029		if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return;
2030		this._lastPointer = pointer;
2031		
2032		this.activeResizable.updateResize(event, pointer);
2033	},
2034	
2035	endResize: function(event) {
2036		if(this._timeout) { 
2037		  clearTimeout(this._timeout); 
2038		  this._timeout = null; 
2039		}
2040		if(!this.activeResizable) return;
2041		this._lastPointer = null;
2042		this.activeResizable.endResize(event);
2043		this.activeResizable = null;
2044	},
2045	
2046	addObserver: function(observer) {
2047		this.observers.push(observer);
2048		this._cacheObserverCallbacks();
2049	},
2050  
2051	removeObserver: function(element) {  // element instead of observer fixes mem leaks
2052		this.observers = this.observers.reject( function(o) { return o.element==element });
2053		this._cacheObserverCallbacks();
2054	},
2055	
2056	notify: function(eventName, resizable, event) {  // 'onStart', 'onEnd', 'onResize'
2057		if(this[eventName+'Count'] > 0)
2058			this.observers.each( function(o) {
2059				if(o[eventName]) o[eventName](eventName, resizable, event);
2060			});
2061		if(resizable.options[eventName]) resizable.options[eventName](resizable, event);
2062	},
2063	
2064	_cacheObserverCallbacks: function() {
2065		['onStart','onEnd','onResize'].each( function(eventName) {
2066			Resizables[eventName+'Count'] = Resizables.observers.select(
2067				function(o) { return o[eventName]; }
2068			).length;
2069		});
2070	}
2071}
2072
2073var Resizable = Class.create();
2074Resizable._resizing = {};
2075
2076Resizable.prototype = {
2077	initialize: function(element){
2078		var defaults = {
2079			handle: false,
2080			snap: false,  // false, or xy or [x,y] or function(x,y){ return [x,y] }
2081			delay: 0,
2082			minHeight: false,
2083			minwidth: false,
2084			maxHeight: false,
2085			maxWidth: false
2086		}
2087		
2088		this.element = $(element);
2089		
2090		var options = Object.extend(defaults, arguments[1] || {});
2091		if(options.handle && typeof options.handle == 'string')
2092			this.handle = $(options.handle);
2093		else if(options.handle)
2094			this.handle = options.handle;
2095			
2096		if(!this.handle) this.handle = this.element;
2097		
2098		this.options  = options;
2099		this.dragging = false;
2100		
2101		this.eventMouseDown = this.initResize.bindAsEventListener(this);
2102		Event.observe(this.handle, "mousedown", this.eventMouseDown);
2103		
2104		Resizables.register(this);
2105	},
2106	
2107	destroy: function() {
2108		Event.stopObserving(this.handle, "mousedown", this.eventMouseDown);
2109	},
2110	
2111	currentDelta: function() {
2112		return([
2113			parseInt(Element.getStyle(this.element,'width') || '0'),
2114			parseInt(Element.getStyle(this.element,'height') || '0')]);
2115	},
2116	
2117	initResize: function(event) {
2118		if(typeof Resizable._resizing[this.element] != 'undefined' &&
2119			Resizable._resizing[this.element]) return;
2120		if(Event.isLeftClick(event)) {
2121			// abort on form elements, fixes a Firefox issue
2122			var src = Event.element(event);
2123			if((tag_name = src.tagName.toUpperCase()) && (
2124				tag_name=='INPUT' || tag_name=='SELECT' || tag_name=='OPTION' ||
2125				tag_name=='BUTTON' || tag_name=='TEXTAREA')) return;
2126			
2127			this.pointer = [Event.pointerX(event), Event.pointerY(event)];
2128			this.size = [parseInt(this.element.getStyle('width')) || 0, parseInt(this.element.getStyle('height')) || 0];
2129			
2130			Resizables.activate(this);
2131			Event.stop(event);
2132		}
2133	},
2134	
2135	startResize: function(event) {
2136		this.resizing = true;
2137		if(this.options.zindex) {
2138			this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0);
2139			this.element.style.zIndex = this.options.zindex;
2140		}
2141		Resizables.notify('onStart', this, event);
2142		Resizable._resizing[this.element] = true;
2143	},
2144	
2145	updateResize: function(event, pointer) {
2146		if(!this.resizing) this.startResize(event);
2147		
2148		Resizables.notify('onResize', this, event);
2149		
2150		this.draw(pointer);
2151		if(this.options.change) this.options.change(this);
2152		
2153		// fix AppleWebKit rendering
2154		if(Prototype.Browser.WebKit) window.scrollBy(0,0);
2155		Event.stop(event);
2156	},
2157	
2158	finishResize: function(event, success) {
2159		this.resizing = false;
2160		Resizables.notify('onEnd', this, event);
2161		if(this.options.zindex) this.element.style.zIndex = this.originalZ;
2162		Resizable._resizing[this.element] = false;
2163		Resizables.deactivate(this);
2164	},
2165	
2166	endResize: function(event) {
2167		if(!this.resizing) return;
2168		this.finishResize(event, true);
2169		Event.stop(event);
2170	},
2171	
2172	draw: function(point) {
2173		var p = [0,1].map(function(i){ 
2174			return (this.size[i] + point[i] - this.pointer[i]);
2175		}.bind(this));
2176		
2177		if(this.options.snap) {
2178			if(typeof this.options.snap == 'function') {
2179				p = this.options.snap(p[0],p[1],this);
2180			} else {
2181				if(this.options.snap instanceof Array) {
2182				p = p.map( function(v, i) {
2183				return Math.round(v/this.options.snap[i])*this.options.snap[i] }.bind(this))
2184			} else {
2185				p = p.map( function(v) {
2186				return Math.round(v/this.options.snap)*this.options.snap }.bind(this))
2187			}
2188		}}
2189		
2190		var minWidth = (typeof(this.options.minWidth) == 'function') ? this.options.minWidth(this.element) : this.options.minWidth;
2191		var maxWidth = (typeof(this.options.maxWidth) == 'function') ? this.options.maxWidth(this.element) : this.options.maxWidth;
2192		var minHeight = (typeof(this.options.minHeight) == 'function') ? this.options.minHeight(this.element) : this.options.minHeight;
2193		var maxHeight = (typeof(this.options.maxHeight) == 'function') ? this.options.maxHeight(this.element) : this.options.maxHeight;
2194
2195		if (minWidth && p[0] <= minWidth) p[0] = minWidth;
2196		if (maxWidth && p[0] >= maxWidth) p[0] = maxWidth;
2197		if (minHeight && p[1] <= minHeight) p[1] = minHeight;
2198		if (maxHeight && p[1] >= maxHeight) p[1] = maxHeight;
2199		
2200		var style = this.element.style;
2201		if((!this.options.constraint) || (this.options.constraint=='horizontal')){
2202			style.width = p[0] + "px";
2203		}
2204		if((!this.options.constraint) || (this.options.constraint=='vertical')){
2205			style.height = p[1] + "px";
2206		}
2207		
2208		if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering
2209	}
2210};
2211
2212// rating.js
2213/**
2214 * @author Ryan Johnson <http://syntacticx.com/>
2215 * @copyright 2008 PersonalGrid Corporation <http://personalgrid.com/>
2216 * @package LivePipe UI
2217 * @license MIT
2218 * @url http://livepipe.net/control/rating
2219 * @require prototype.js, livepipe.js
2220 */
2221if(typeof(Prototype)=="undefined"){throw "Control.Rating requires Prototype to be loaded."}
2222if(typeof(Object.Event)=="undefined"){throw "Control.Rating requires Object.Event to be loaded."}
2223Control.Rating=Class.create({initialize:function(container,options){Control.Rating.instances.push(this);this.value=!1;this.links=[];this.container=$(container);this.container.update('');this.options={min:1,max:5,rated:!1,input:!1,reverse:!1,capture:!0,multiple:!1,classNames:{off:'rating_off',half:'rating_half',on:'rating_on',selected:'rating_selected'},updateUrl:!1,updateParameterName:'value',updateOptions:{},afterChange:Prototype.emptyFunction};Object.extend(this.options,options||{});if(this.options.value){this.value=this.options.value;delete this.options.value}
2224if(this.options.input){this.options.input=$(this.options.input);this.options.input.observe('change',function(input){this.setValueFromInput(input)}.bind(this,this.options.input));this.setValueFromInput(this.options.input,!0)}
2225var range=$R(this.options.min,this.options.max);(this.options.reverse?$A(range).reverse():range).each(function(i){var link=this.buildLink(i);this.container.appendChild(link);this.links.push(link)}.bind(this));this.setValue(this.value||this.options.min-1,!1,!0)},buildLink:function(rating){var link=$(document.createElement('a'));link.value=rating;if(this.options.multiple||(!this.options.rated&&!this.options.multiple)){link.href='';link.onmouseover=this.mouseOver.bind(this,link);link.onmouseout=this.mouseOut.bind(this,link);link.onclick=this.click.bindAsEventListener(this,link)}else{link.style.cursor='default';link.observe('click',function(event){Event.stop(event);return!1}.bindAsEventListener(this))}
2226link.addClassName(this.options.classNames.off);return link},disable:function(){this.links.each(function(link){link.onmouseover=Prototype.emptyFunction;link.onmouseout=Prototype.emptyFunction;link.onclick=Prototype.emptyFunction;link.observe('click',function(event){Event.stop(event);return!1}.bindAsEventListener(this));link.style.cursor='default'}.bind(this))},setValueFromInput:function(input,prevent_callbacks){this.setValue($F(input),!0,prevent_callbacks)},setValue:function(value,force_selected,prevent_callbacks){this.value=value;if(this.options.input){if(this.options.input.options){$A(this.options.input.options).each(function(option,i){if(option.value==this.value){this.options.input.options.selectedIndex=i;throw $break}}.bind(this))}else{this.options.input.value=this.value}}
2227this.render(this.value,force_selected);if(!prevent_callbacks){if(this.options.updateUrl){var params={},a;params[this.options.updateParameterName]=this.value;a=new Ajax.Request(this.options.updateUrl,Object.extend(this.options.updateOptions,{parameters:params}))}
2228this.notify('afterChange',this.value)}},render:function(rating,force_selected){(this.options.reverse?this.links.reverse():this.links).each(function(link,i){if(link.value<=Math.ceil(rating)){link.className=this.options.classNames[link.value<=rating?'on':'half'];if(this.options.rated||force_selected){link.addClassName(this.options.classNames.selected)}}else{link.className=this.options.classNames.off}}.bind(this))},mouseOver:function(link){this.render(link.value,!0)},mouseOut:function(link){this.render(this.value)},click:function(event,link){this.options.rated=!0;this.setValue((link.value?link.value:link),!0);if(!this.options.multiple){this.disable()}
2229if(this.options.capture){Event.stop(event);return!1}}});Object.extend(Control.Rating,{instances:[],findByElementId:function(id){return Control.Rating.instances.find(function(instance){return(instance.container.id&&instance.container.id==id)})}});Object.Event.extend(Control.Rating);EyeCandies={};EyeCandies.domLoaded=function(func){if(document.loaded)func.p_defer();else document.observe("dom:loaded",func)};EyeCandies.requirejs=function(libraryName,version){if(version>0)libraryName=libraryName+"?version="+version;try
2230{document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>')}catch(e){var script=document.createElement('script');script.type='text/javascript';script.src=libraryName;document.getElementsByTagName('head')[0].appendChild(script)}};EyeCandies.requirecss=function(cssName,version){if(version>0)cssName=cssName+"?version="+version;var link=document.createElement('link');link.rel='stylesheet';link.type='text/css';link.href=cssName;document.getElementsByTagName('head')[0].appendChild(link)};EyeCandies.toQueryString=function(obj){var str=[];for(var p in obj){if(obj.hasOwnProperty(p)){str.push(encodeURIComponent(p)+"="+encodeURIComponent(obj[p]))}}
2231return str.join("&")};EyeCandies.queryStringToObject=function(query){query=query.substring(query.indexOf('?')+1);var re=/([^&=]+)=?([^&]*)/g;var decodeRE=/\+/g;var decode=function(str){return decodeURIComponent(str.replace(decodeRE," "))};var params={},e;while(e=re.exec(query)){var k=decode(e[1]),v=decode(e[2]);if(k.substring(k.length-2)==='[]'){k=k.substring(0,k.length-2);(params[k]||(params[k]=[])).push(v)}else params[k]=v}
2232var assign=function(obj,keyPath,value){var lastKeyIndex=keyPath.length-1;for(var i=0;i<lastKeyIndex;++i){var key=keyPath[i];if(!(key in obj))
2233obj[key]={};obj=obj[key]}
2234obj[keyPath[lastKeyIndex]]=value};for(var prop in params){var structure=prop.split('[');if(structure.length>1){var levels=[];structure.forEach(function(item,i){var key=item.replace(/[?[\]\\ ]/g,'');levels.push(key)});assign(params,levels,params[prop]);delete(params[prop])}}
2235return params};EyeCandies.scrollPageBottom=function(){window.scrollTo(0,document.body.scrollHeight)};EyeCandies.ajax=function(href,onSuccess,onError){var xhr=new XMLHttpRequest();xhr.open('GET',href,!0);xhr.onload=function(){if(xhr.readyState===XMLHttpRequest.DONE){if(xhr.status===200){onSuccess(xhr)}else{if(onError)onError(xhr)}}};xhr.onerror=function(){if(onError)onError(xhr)};xhr.send(null)};EyeCandies.post=function(path,params,method){method=method||"post";params=params||{};var form=document.createElement("form");form.setAttribute("style","display:none");form.setAttribute("method",method);form.setAttribute("action",path);for(var key in params){if(params.hasOwnProperty(key)){var hiddenField=document.createElement("input");hiddenField.setAttribute("type","hidden");hiddenField.setAttribute("name",key);hiddenField.setAttribute("value",params[key]);form.appendChild(hiddenField)}}
2236document.body.appendChild(form);form.submit();document.body.removeChild(form)};EyeCandies.postUrl=function(urlWithQueryString,method){method=method||"post";var split=urlWithQueryString.split('?');var url=split[0];var params={};if(split.length>1)params=EyeCandies.queryStringToObject(split[1]);EyeCandies.post(url,params,method)};EyeCandies.SessionStorage={setObject:function(key,object){try
2237{window.sessionStorage.setItem(key,JSON.stringify(object));return object}catch(e){return!1}},getObject:function(key){try
2238{return JSON.parse(window.sessionStorage.getItem(key))}catch(e){return!1}},removeObject:function(key){window.sessionStorage.removeItem(key)}};EyeCandies.SessionStorageObject=Class.create({initialize:function(storageKey,defaultObject){this.storageKey=storageKey;if(typeof defaultObject==='object'){var currentlyStoredObject=this.get();if(typeof(currentlyStoredObject)==='object'){var mergedObject=Object.clone(defaultObject);Object.extend(mergedObject,currentlyStoredObject);this.set(mergedObject)}else this.set(defaultObject)}},get:function(key){var storage=EyeCandies.SessionStorage.getObject(this.storageKey);if(typeof storage!=='object'||storage===null)return!1;if(arguments.length==1){return storage[key]}else{return storage}},set:function(arg1,arg2){if(arguments.length==1){return EyeCandies.SessionStorage.setObject(this.storageKey,arg1)}
2239if(arguments.length==2){var key=arg1;var value=arg2;var extObject={};extObject[key]=value;this.set(Object.extend(this.get(),extObject));return value}},remove:function(key){if(arguments.length==1){var object=this.get();delete object[key];this.set(object)}else EyeCandies.SessionStorage.removeObject(this.storageKey)}});EyeCandies.textComboSelectChanged=function(idselect,idtext,idhidden,currentElement){var selectBox=document.getElementById(idselect);var textBox=document.getElementById(idtext);var hiddenBox=document.getElementById(idhidden);if(currentElement.type==='select-one'){hiddenBox.value=selectBox.value;textBox.value=''}else{hiddenBox.value=textBox.value;selectBox.selectedIndex='0'}};EyeCandies.generateStdDate=function(fieldname){var hiddenField=document.getElementsByName(fieldname);var yearField=document.getElementsByName(fieldname+'_year');var monthField=document.getElementsByName(fieldname+'_month');var dayField=document.getElementsByName(fieldname+'_day');var newDateString='';if(yearField[0].value.length>0){newDateString+=yearField[0].value}
2240if(monthField[0].value.length>0){newDateString+='-'+monthField[0].value}
2241if(dayField[0].value.length>0){newDateString+='-'+dayField[0].value}
2242hiddenField[0].value=newDateString};EyeCandies.hoverImage=function(target,imagehref){if(target&&typeof(target)!='undefined'&&typeof(imagehref)=='string'&&imagehref!=""){$$('html')[0].setStyle({overflowY:'scroll'});target.stopObserving('mouseover');Element.observe(target,'mouseover',function(evt){evt.stop();Element.stopObserving(target,'mousemove');Element.stopObserving(target,'mouseout');var img=new Image();img.setStyle({position:'absolute',display:'none'});img.onload=function(){img.show()};img.setAttribute('src',imagehref);$(document.body).insert(img);Element.observe(target,'mousemove',function(evt){var x=Event.pointerX(evt)-img.getWidth()-50+'px';var y=Event.pointerY(evt)-img.getHeight()/2+'px';img.setStyle({left:x,top:y})});Element.observe(target,'mouseout',function(evt){evt.stop();img.hide();img.remove()})})}};EyeCandies.shakeElement=function(eltID){new Effect.Shake(eltID,{duration:2.0})};EyeCandies.HTTP=Class.create();EyeCandies.HTTP.setLocation=function(url){window.location=url};EyeCandies.HTTP.setLocationConfirm=function(url,confirmmessage){if(confirm(confirmmessage)){this.setLocation(url)}};EyeCandies.HTTP.setLocationBlank=function(url){window.open(url,'_blank')};EyeCandies.HTTP.refuseAccess=function(refusemessage){alert(refusemessage);return!1};EyeCandies.CSS=Class.create();EyeCandies.CSS.addCssRules=function(cssrules){if(cssrules){if(Prototype.Browser.IE){document.createStyleSheet().cssText=cssrules}else{var tag=document.createElement('style');tag.type='text/css';document.getElementsByTagName('head')[0].appendChild(tag);var prop='innerHTML';if(Prototype.Browser.WebKit){prop='innerText'}
2243tag[prop]=cssrules}}};EyeCandies.Cookie=Class.create();EyeCandies.Cookie.Jar=Class.create({appendString:"_gfw_",initialize:function(options){this.options={expires:3600,path:'',domain:'',secure:''};Object.extend(this.options,options||{});if(this.options.expires!=''){var date=new Date();date=new Date(date.getTime()+(this.options.expires*1000));this.options.expires='; expires='+date.toGMTString()}
2244if(this.options.path!=''){this.options.path='; path='+escape(this.options.path)}
2245if(this.options.SameSite!=''){this.options.SameSite='; SameSite='+escape(this.options.SameSite)}
2246if(this.options.domain!=''){this.options.domain='; domain='+escape(this.options.domain)}
2247if(this.options.secure=='secure'){this.options.secure='; secure'}else{this.options.secure=''}},put:function(name,value){name=this.appendString+name;var cookie=this.options;var type=typeof value;switch(type){case 'undefined':case 'function':case 'unknown':return!1;case 'boolean':case 'string':case 'number':value=String(value.toString())}
2248var cookie_str=name+"="+escape(Object.toJSON(value));try{document.cookie=cookie_str+cookie.expires+cookie.path+cookie.SameSite+cookie.domain+cookie.secure}catch(e){return!1}
2249return!0},remove:function(name){name=this.appendString+name;var cookie=this.options;try{var date=new Date();date.setTime(date.getTime()-(3600*1000));var expires='; expires='+date.toGMTString();document.cookie=name+"="+expires+cookie.path+cookie.SameSite+cookie.domain+cookie.secure}catch(e){return!1}
2250return!0},get:function(name){name=this.appendString+name;var cookies=document.cookie.match(name+'=(.*?)(;|$)');if(cookies){return(unescape(cookies[1])).evalJSON()}else{return null}},empty:function(){var keys=this.getKeys();var size=keys.size();for(var i=0;i<size;i++){this.remove(keys[i])}},getPack:function(){var pack={};var keys=this.getKeys();var size=keys.size();for(var i=0;i<size;i++){pack[keys[i]]=this.get(keys[i])}
2251return pack},getKeys:function(){var keys=$A();var keyRe=/[^=; ]+(?=\=)/g;var str=document.cookie;var CJRe=new RegExp("^"+this.appendString);var match;while((match=keyRe.exec(str))!=undefined){if(CJRe.test(match[0].strip())){keys.push(match[0].strip().gsub("^"+this.appendString,""))}}
2252return keys}});EyeCandies.Indicator=Class.create({initialize:function(){this.mask=new Element('div');this.mask.setStyle({opacity:0.8,display:'none',zIndex:1001,position:'absolute',backgroundColor:'#ffffff'});this.image=new Element('div');this.image.setStyle({opacity:1,display:'none',zIndex:1002,position:'absolute',backgroundColor:'transparent',backgroundImage:'url(/src/images/ajax-load-bar.gif)',backgroundPosition:'center center',backgroundRepeat:'no-repeat',minHeight:'30px',minWidth:'240px'})},show:function(){this.mask.show();this.image.show()},hide:function(){this.mask.hide();this.image.hide()},positionOn:function(element){this.mask.clonePosition(element);this.image.clonePosition(element)},insert:function(element){if(Object.isElement(element)){element.insert({before:this.image});element.insert({before:this.mask})}},remove:function(){if(this.mask)this.mask.remove();if(this.image)this.image.remove()}});EyeCandies.BackgroundImageLoader=Class.create({initialize:function(target,imageUrl,options){this.target=target;this.imageUrl=imageUrl;this.options=Object.extend({delay:0.25,changeStyle:!1},options||{});this.imgpreload(imageUrl,this.loaded.bind(this))},imgpreload:function(imageUrl,callback){var inc=function(){if(callback)callback()};this.tmpImage=new Image();this.tmpImage.onabort=inc;this.tmpImage.onerror=inc;this.tmpImage.onload=inc;this.tmpImage.src=imageUrl},loaded:function(){this.target.setStyle({opacity:0}
2252);if(this.tmpImage.width>0)this.target.setStyle({width:this.tmpImage.width+'px'});if(this.tmpImage.height>0)this.target.setStyle({height:this.tmpImage.height+'px'});this.showBackgroundImage.bind(this).delay(this.options.delay)},showBackgroundImage:function(){this.target.setStyle({backgroundImage:"url("+this.imageUrl+")",opacity:1});if(this.options.changeStyle){this.target.setStyle(this.options.changeStyle)}}});EyeCandies.GridRepository=new(Class.create({initialize:function(){this.gridList=new Hash()},addGrid:function(name,grid){this.gridList.set(name,grid);this.notify('gridrepository:addgrid',name,grid)},getGrid:function(name){if(!name){var keys=this.gridList.keys();if(keys)name=keys[0]}
2253if(name)return this.gridList.get(name);else return!1},getGridList:function(){return this.gridList}}))();if(typeof(Object.Event)=='object')Object.Event.extend(EyeCandies.GridRepository);EyeCandies.GridFactory=Class.create({});EyeCandies.GridFactory.createGrid=function(gridName,gridParameters){EyeCandies.domLoaded(function(){var grid=new EyeCandies.Grid(gridName,gridParameters);if(grid)EyeCandies.GridRepository.addGrid(gridName,grid)})};EyeCandies.Grid=Class.create({initialize:function(gridId,gridParameters){this.globalSettings=new EyeCandies.SessionStorageObject('gfw-grid-globalsettings',{autoHide:!0});this.gridId=gridId;this.gridParameters=gridParameters;this.gridContainer=$(gridId);this.pagerLinkSelector='#'+this.gridId+' .gfw-pager a';this.sortLinkSelector='#'+this.gridId+' th.sortable a';this.expanderSelector='#'+this.gridId+' .gfw-grid-expander';this.actionLinkSelector='#'+this.gridId+' .gfw-grid-actionlink';this.actionFormSelector='#'+this.gridId+' .gfw-grid-actionform';this.dragHandleSelector='table.gfw-grid > tbody > tr > td.x-draghandle';this.toggler=new EyeCandies.Toggler(this.expanderSelector);if(!this.gridContainer.up('.gfw-grid')){this.columnManager=new EyeCandies.GridColumnManager(this)}
2254if(this.gridContainer.select(this.dragHandleSelector).length>0){new EyeCandies.Grid.DragnDropManager(this,'between',function(href){this.callUrlAndReload(href)}.bind(this))}
2255this.ajaxifyLinks()},getGridParameters:function(){return this.gridParameters},getGridParameter:function(parameter){if(this.gridParameters&&this.gridParameters.hasOwnProperty(parameter))return this.gridParameters[parameter];else return null},getColumnManager:function(){return this.columnManager},hideLoadIndicator:function(){if(!Object.isUndefined(this.indicator)&&this.indicator){this.indicator.remove();this.indicator=null;delete this.indicator}},showLoadIndicator:function(){if(Object.isElement(this.gridContainer)){if(this.indicator!=null)this.hideLoadIndicator();this.indicator=new EyeCandies.Indicator();this.indicator.insert(this.gridContainer);var table=this.gridContainer.down('.gfw-grid');if(!Object.isUndefined(table)){this.indicator.positionOn(table)}else if(!Object.isUndefined(this.gridContainer)){this.indicator.positionOn(this.gridContainer)}
2256this.indicator.show()}},resolveHref:function(element){var href=null;if(element.tagName.toLowerCase()==="a"){href=element.href}else if(element.tagName.toLowerCase()==="button"){href=element.getAttribute("data-href")}
2257return href},ajaxifyLinks:function(){$$(this.pagerLinkSelector).each(function(link){$(link).stopObserving('click');$(link).observe("click",function(e){this.loadPage(e,this.resolveHref(link))}.bind(this))}.bind(this));$$(this.sortLinkSelector).each(function(link){$(link).stopObserving('click');$(link).observe("click",function(e){this.loadPage(e,this.resolveHref(link))}.bind(this))}.bind(this));$$(this.actionLinkSelector).each(function(element){var eventType=element.readAttribute("data-actionlink-eventtype");var href=element.readAttribute("data-actionlink-href");var usejsonstream=element.readAttribute("data-actionlink-usejsonstream");var inputElementSelector=element.readAttribute("data-actionlink-inputelementselector");var confirmString=element.readAttribute("data-actionlink-confirm");if(typeof(eventType)==="string"&&eventType.length>0&&typeof(href)==="string"&&href.length>0){$(element).stopObserving(eventType);$(element).observe(eventType,function(evt){if(confirmString&&!confirm(confirmString))return;var inputElement=evt.target;if(typeof(inputElementSelector)==="string"&&inputElementSelector.length>0){var alternateInputElement=$$(inputElementSelector).first();if(alternateInputElement)inputElement=alternateInputElement}
2258var parsedHref=this.parseHref(href,'element',inputElement);if(usejsonstream){(new EyeCandies.XHRJsonStreamCaller(parsedHref)).call()}else{this.callUrlAndReload(parsedHref)}}.bind(this))}}.bind(this));$$(this.actionFormSelector).each(function(form){$(form).stopObserving('submit');$(form).observe('submit',function(evt){evt.stop();this.postFormAndReload(form,null)}.bind(this))}.bind(this))},parseHref:function(href,groupname,hash){var regexp=new RegExp("\\{"+groupname+"\\.([\\w-]+)\\}","i");var params=new Hash(href.toQueryParams());params.each(function(pair){var matches=pair.value.match(regexp);if(matches){var attributeName=matches[1];if(groupname==='element'&&attributeName.indexOf("data-")===0){var dataSetAttributeName=attributeName.substring('data-'.length,attributeName.length);params.set(pair.key,decodeURIComponent(hash.dataset[dataSetAttributeName]))}else{params.set(pair.key,hash[attributeName])}}});var queryString=params.toQueryString();var scripturl=href.substring(0,href.indexOf("?"));href=scripturl+'?'+queryString;return href},callUrlAndReload:function(href,callback){if(href){this.showLoadIndicator();new Ajax.Request(href,{method:'get',onSuccess:function(xhr){this.hideLoadIndicator();if(typeof(callback)=='function')callback(xhr);this.launchReload()}.bindAsEventListener(this),onFailure:function(xhr){this.hideLoadIndicator()}})}},postFormAndReload:function(form,callback){if(form){this.showLoadIndicator();form.request({method:'post',onSuccess:function(xhr){this.hideLoadIndicator();if(typeof(callback)=='function')callback(xhr);this.launchReload()}.bindAsEventListener(this),onFailure:function(xhr){this.hideLoadIndicator()}})}},launchReload:function(){this.loadPage(null,this.gridParameters.baseRequestUrl)},extractGridMarkup:function(htmlContent){var bodyMatch=htmlContent.match(/<body[^>]*>([\w|\W]*)<\/body>/im);if(bodyMatch){var div=document.createElement("div");div.innerHTML=bodyMatch[1];htmlContent=div.querySelector("#"+this.gridId).outerHTML;div.innerHTML='';div=null}
2259return htmlContent},loadPage:function(event,href){if(typeof(event)!=="undefined"&&event!==null)event.stop();
2259if(typeof(href)!=="string"||href.length===0)return;this.showLoadIndicator();new Ajax.Request(href,{method:'get',parameters:{gridOnly:!0,gridId:this.gridId},evalJS:!0,onSuccess:function(xhr){this.hideLoadIndicator();var content=xhr.responseText;this.gridContainer.replace(this.extractGridMarkup(content));this.gridContainer=$(this.gridId)}.bind(this),onFailure:function(xhr){this.hideLoadIndicator();this.gridContainer.update('');console.log('GfwGrid ajax error : ',xhr.status)}.bind(this)})},getGridContainer:function(){return this.gridContainer}});if(typeof(Object.Event)=='object')Object.Event.extend(EyeCandies.Grid);EyeCandies.Grid.DragnDropManager=Class.create({initialize:function(grid,dragMode,afterDropCallback){this.grid=grid;this.dragMode=dragMode||'between';this.afterDropCallback=afterDropCallback;this.installCallBacks()},installCallBacks:function(){if(typeof this.grid.gridContainer!='undefined'){this.dragHandles=this.grid.gridContainer.select(this.grid.dragHandleSelector);for(var i=0;i<this.dragHandles.length;i++){var dragHandle=this.dragHandles[i];dragHandle.setAttribute('draggable','true');Event.observe(dragHandle,'dragstart',this.dragStartCallback.bind(this));Event.observe(dragHandle,'dragenter',this.dragEnterCallback.bind(this));Event.observe(dragHandle,'dragleave',this.dragLeaveCallback.bind(this));Event.observe(dragHandle,'dragover',this.dragOverCallback.bind(this));Event.observe(dragHandle,'drop',this.dropCallback.bind(this))}}},getHandleDragData:function(dragHandle,attribute){if(dragHandle)return dragHandle.getAttribute(attribute)},dragStartCallback:function(event){event.stopPropagation();var draggedId=this.getHandleDragData(event.target,'data-gfw-dnd-id');event.dataTransfer.setData('Text',draggedId);event.dataTransfer.effectAllowed='move';event.dataTransfer.dropEffect='move';var dragImage=$(event.target).up('tr');if(typeof event.dataTransfer.setDragImage=='function')event.dataTransfer.setDragImage(dragImage,0,0);this.elementDragged=event.target},dragOverCallback:function(event){if(event.target==this.elementDragged)return;if(event.target.getAttribute('data-gfw-dnd-id')!=""){event.stopPropagation();event.preventDefault();var tr=event.target.up('tr');if(this.dragMode=="over"){tr.addClassName('x-drop-over')}else if(this.dragMode=="between"){var position=this.getDropPosition(event);if(position=='after'){tr.removeClassName('x-drop-before');tr.addClassName('x-drop-after')}else if(position=='before'){tr.removeClassName('x-drop-after');tr.addClassName('x-drop-before')}}}},cleanRowClasses:function(){if(!this.rows)this.rows=this.grid.gridContainer.select('tr');this.rows.each(function(e){e.removeClassName('x-drop-over');e.removeClassName('x-drop-after');e.removeClassName('x-drop-before')})},dragEnterCallback:function(event){event.stopPropagation();event.preventDefault();this.cleanRowClasses()},dragLeaveCallback:function(event){this.cleanRowClasses()},dropCallback:function(event){event.stopPropagation();event.preventDefault();this.cleanRowClasses();var href=this.getHandleDragData(event.target,'data-gfw-dnd-href');var draggedId=event.dataTransfer.getData('Text');var dropId=this.getHandleDragData(event.target,'data-gfw-dnd-id');var dropPosition=this.getDropPosition(event);href=this.grid.parseHref(href,'placeholder',{idsrc:draggedId,iddst:dropId,dropposition:dropPosition});for(var i=0;i<this.dragHandles.length;i++){if(this.getHandleDragData(this.dragHandles[i],'data-gfw-dnd-id')==draggedId){if(draggedId>0&&dropId>0&&typeof(href)=="string"&&href!=""){if(typeof(this.afterDropCallback)=="function")this.afterDropCallback(href)}}}},getVerticalPositionInsideDroppable:function(event){var mouseYPosition=event.clientY;var targetYTop=event.target.getBoundingClientRect().top;var targetYHeight=event.target.getBoundingClientRect().height;var percentageYPosition=Math.round((mouseYPosition-targetYTop)/targetYHeight*100);return percentageYPosition},getDropPosition:function(event){var pos=this.getVerticalPositionInsideDroppable(event);if(this.dragMode=="over")return'over';else if(this.dragMode=="between"){if(pos>50)return'after';else return'before'}}});EyeCandies.GridColumnManager=Class.create({initialize:function(grid){this.maxDelta=1;this.grid=grid;this.columns=this.grid.getGridParameter('columns');this.columnsArray=[];this.sortedColumnsArray=[];this.gridContainer=this.grid.getGridContainer();this.recomputeColumnVisibility(!0);var debouncedCallback=EyeCandies.debounce(function(){this.showAllColumns();this.recomputeColumnVisibility.bind(this).p_defer(!1)}.bind(this),200,!1);if(EyeCandies.GridColumnManager.registeredObservers.hasOwnProperty(this.grid.gridId)){var previousObserver=EyeCandies.GridColumnManager.registeredObservers[this.grid.gridId];if(typeof(previousObserver)=='function')Element.stopObserving(window,'resize',previousObserver)}
2260Element.observe(window,'resize',debouncedCallback);EyeCandies.GridColumnManager.registeredObservers[this.grid.gridId]=debouncedCallback},recomputeColumnVisibility:function(initial){this.refreshColumnsInfo(initial);if(this.grid.globalSettings.get('autoHide'))this.autoHideColumns();else this.showAllColumns();this.updateToggleButtonAppearance()},computeVisibleColumnsTotalWidth:function(){var columnsWidth=0;var visibleColumns=this.getVisibleColumns();for(var i=0;i<visibleColumns.length;i++){var column=visibleColumns[i];if(!isNaN(column.currentWidth)){columnsWidth+=column.currentWidth}}
2261return columnsWidth},autoHideColumns:function(){this.containerWidth=this.getAvailableContentWidth(this.gridContainer);var columnsWidth=this.computeVisibleColumnsTotalWidth();var delta=columnsWidth-this.containerWidth;if(delta>this.maxDelta&&this.countVisibleColumns()>1){var widthRemoved=0;for(var i=0;i<this.sortedColumnsArray.length;i++){var column=this.sortedColumnsArray[i];if(column.hidden===!1&&this.columnIsAutoHidable(column.identifier)&&this.countVisibleColumns()>1){widthRemoved+=column.currentWidth;this.hideColumn(column.identifier);if(widthRemoved>delta)break}}}},getAvailableContentWidth:function(element){let paddingLeft=parseFloat(window.getComputedStyle(element).getPropertyValue("padding-left").replace("px",""));let paddingRight=parseFloat(window.getComputedStyle(element).getPropertyValue("padding-right").replace("px",""));if(isNaN(paddingLeft))paddingLeft=0;if(isNaN(paddingRight))paddingRight=0;
2261return element.offsetWidth-paddingLeft-paddingRight},countVisibleColumns:function(){var count=0;for(var i=0;i<this.columnsArray.length;i++){if(this.columnsArray[i].hidden==!1)count++}
2262return count},getVisibleColumns:function(){var columns=[];for(var i=0;i<this.columnsArray.length;i++){if(this.columnsArray[i].hidden==!1)columns.push(this.columnsArray[i])}
2263return columns},getHiddenColumns:function(){var columns=[];for(var i=0;i<this.columnsArray.length;i++){if(this.columnsArray[i].hidden==!0)columns.push(this.columnsArray[i])}
2264return columns},showAllColumns:function(){this.columnsArray.each(function(column){this.showColumn(column.identifier)},this)},hideColumn:function(identifier){this.columns[identifier].hidden=!0;this.gridContainer.select('th.'+identifier).each(function(elt){elt.addClassName('x-colhidden')});this.gridContainer.select('td.'+identifier).each(function(elt){elt.addClassName('x-colhidden')})},showColumn:function(identifier){this.columns[identifier].hidden=!1;this.gridContainer.select('th.'+identifier).each(function(elt){elt.removeClassName('x-colhidden')});this.gridContainer.select('td.'+identifier).each(function(elt){elt.removeClassName('x-colhidden')})},refreshColumnsInfo:function(initial){this.columnsArray=[];this.sortedColumnsArray=[];if(this.columns){var i=0;for(var identifier in this.columns){if(this.columns.hasOwnProperty(identifier)){var headerElement=this.gridContainer.select("th."+identifier).first();if(headerElement){this.columns[identifier].identifier=identifier;this.columns[identifier].columnIndex=i++;this.columns[identifier].currentWidth=headerElement.getWidth();this.columns[identifier].sortIndex=this.columns[identifier].autoHide*1000+this.columns[identifier].columnIndex;this.columnsArray.push(this.columns[identifier]);if(initial==!0)this.columns[identifier].hidden=!1}}}
2265this.sortedColumnsArray=this.columnsArray.sort(this.compareColumnOrder)}},compareColumnOrder:function(columnA,columnB){if(columnA.sortIndex>columnB.sortIndex)return-1;else if(columnA.sortIndex==columnB.sortIndex)return 0;else return 1},columnIsAutoHidable:function(identifier){var column=this.columns[identifier];if(column.autoHide==0)return!1;return!0},updateToggleButtonAppearance:function(){var autoHide=this.grid.globalSettings.get('autoHide');var gridContainerElement=this.grid.getGridContainer();if(gridContainerElement){var toggleButton=gridContainerElement.down('.gfw-button.x-trigger-toggleautohide');if(toggleButton){if(this.getHiddenColumns().length>0){toggleButton.removeClassName("gray");toggleButton.addClassName("x-hashiddencolumns")}else{toggleButton.addClassName("gray");toggleButton.removeClassName("x-hashiddencolumns")}
2266if(autoHide){toggleButton.addClassName('x-icn-arrow-h-collapse');toggleButton.removeClassName('x-icn-arrow-h-expand')}else{toggleButton.addClassName('x-icn-arrow-h-expand');toggleButton.removeClassName('x-icn-arrow-h-collapse')}}}},toggleAutoHide:function(){this.grid.globalSettings.set('autoHide',!this.grid.globalSettings.get('autoHide'));this.recomputeColumnVisibility()}});EyeCandies.GridColumnManager.registeredObservers={};EyeCandies.Form=Class.create({initialize:function(form){var formElt=$(form);if(formElt){this.form=formElt;EyeCandies.Form.instances.set(this.form.id,this)}},activateTabs:function(defaultActiveTabId){var navbar=$(this.form).down('#gfw-tab-navbar_'+this.form.name);if(navbar){this.controlTabs=new Control.Tabs(navbar);this.form.fire('form:controltabsready',{tabs:this.controlTabs});this.form.select(".x-tabcontrol.x-previous").each(function(elt){Element.observe(elt,"click",function(){this.controlTabs.previous()}.bind(this))}.bind(this));this.form.select(".x-tabcontrol.x-next").each(function(elt){Element.observe(elt,"click",function(){this.controlTabs.next()}.bind(this))}.bind(this));this.form.select(".x-tabcontrol.x-toggleall").each(function(elt){Element.observe(elt,"click",function(){this.controlTabs.toggleAll()}.bind(this))}.bind(this));if(defaultActiveTabId)this.showTabUsingId(defaultActiveTabId);this.form.addEventListener("invalid",this.handleInvalidEventTabChange.bind(this),!0)}},handleInvalidEventTabChange:function(e){let input=e.target;if(input){this.showTabContainingField(input);input.focus()}},onTabsReady:function(callback){if(typeof callback==='function'){if(this.controlTabs)callback.call(this);else Element.observe(this.form,'form:controltabsready',callback.bind(this))}},showFirstErrorTab:function(){var fieldElement=this.form.down('.x-invalid');if(fieldElement){this.showTabContainingField(fieldElement);fieldElement.focus()}},scrollToValidationError:function(selector){var errorContainer=$$(selector).first();if(errorContainer){if(typeof(errorContainer.up('.ajs-content'))=='undefined'){Effect.ScrollTo(errorContainer,{duration:1})}}},manageErrorMessageClickEvents:function(selector){let errorContainer=document.querySelector(selector);if(errorContainer){errorContainer.addEventListener('click',function(event){let target=event.target.closest('li.x-error-message[data-fieldname][data-formid]');
2266if(target&&target.dataset.formid&&target.dataset.fieldname){this.showTabContainingField(target.dataset.fieldname)}}.bind(this))}},showTabContainingField:function(elt){if(typeof elt==="string"){elt=this.getFieldsByName(elt).first()}
2267if(elt){var tabsection=elt.up('tbody.gfw-form-section');if(tabsection&&tabsection.id&&this.controlTabs){this.controlTabs.setActiveTab(tabsection.id)}else{Effect.ScrollTo(elt,{duration:0.1,offset:-150})}}},showTabUsingId:function(id){if(typeof id==='string'&&id.length>0&&this.form.querySelector('#'+id)){this.controlTabs.setActiveTab(id)}},getFieldsByName:function(fieldName){var elements=[];if(typeof fieldName==='object'&&fieldName.length>0){for(var i=0;i<fieldName.length;i++){elements=elements.concat(this.getFieldsByName(fieldName[i]))}
2268return elements}else{var simplefields=this.form.select('[name="'+fieldName+'"]');var arrayfields=this.form.select('[name="'+fieldName+'[]"]');if(simplefields)elements=elements.concat(simplefields);if(arrayfields)elements=elements.concat(arrayfields);return elements}},addClassNameToFields:function(fieldName,className){if(this.form&&className){var ctx={className:className};var fields=this.getFieldsByName(fieldName);if(fields)fields.each(function(field){field.addClassName(this.className)},ctx)}},removeClassNameToField:function(fieldName,className){if(this.form&&className){var ctx={className:className};var fields=this.getFieldsByName(fieldName);if(fields)fields.each(function(field){field.removeClassName(this.className)},ctx)}},removeInvalidMarks:function(){if(this.form){this.form.getElements().each(function(elt){elt.removeClassName('x-invalid')})}},setInvalidMarks:function(fields){this.removeInvalidMarks();this.addInvalidMarks(fields)},addInvalidMarks:function(fields){this.addClassNameToFields(fields,'x-invalid')}});EyeCandies.Form.instances=new Hash();EyeCandies.Form.getInstanceById=function(formid){return EyeCandies.Form.instances.get(formid)};EyeCandies.Form.fieldsToQueryString=function(form,fields){if(fields&&fields.length>0){var elementsIncluded={};for(var index=0;index<fields.length;index++){var fieldname=fields[index];var elt=$(form[form.name+'_'+fieldname]);if(elt){elementsIncluded[fieldname]=elt.getValue()}}
2269if(Object.keys(elementsIncluded).length>0){return Object.toQueryString(elementsIncluded)}else return!1}
2270return!1};EyeCandies.Form.callRegisteredMethod=function(form,registeredMethodUrl,formFieldNames){if(typeof(form)=='string')form=document.querySelector(form);if(form){let url=new URL(registeredMethodUrl,window.location.origin);let params=new URLSearchParams(url.search);if(formFieldNames){if(Array.isArray(formFieldNames)){for(let i=0;i<fields.length;i++){let formFieldName=form.name+'_'+formFieldNames[i];let value=form[formFieldName].value;if(value!=="")params.append(formFieldName,value)}}else if(typeof(formFieldNames)=='object'){for(let prop in formFieldNames){let formFieldName=form.name+'_'+formFieldNames[prop];let value=form[formFieldName].value;if(value!=="")params.append(prop,value)}}}
2271url.search=params;EyeCandies.HTTP.setLocation(url);return!0}
2272return!1};EyeCandies.Form.preventAutocomplete=function(){setTimeout(function(){document.querySelectorAll('input[autocomplete=off]').forEach(function(el){var value=el.getAttribute('value');if(typeof value==="string"&&value.trim().length>0)return!1;else{el.value="";return!0}})},100)};EyeCandies.Form.AjaxTools=Class.create({initialize:function(formId){this.formId=formId;this.listingId=this.formId+'-listing-container';this.formContainer=$(this.formId+'-container');this.listingContainer=null;this.form=$(this.formId);this.pagerLinkSelector='.'+this.formId+'-pager a';this.sortLinkSelector='#'+this.listingId+' th a.hedsort';this.installListingContainer();this.buildIndicator();this.observe('searchform:listingupdated',function(){new EyeCandies.Toggler('.gfw-toggler')})},buildIndicator:function(){this.indicator=new EyeCandies.Indicator();if(Object.isElement(this.listingContainer)){this.indicator.insert(this.listingContainer)}},showLoadIndicator:function(){if(Object.isElement(this.listingContainer)&&!Object.isUndefined(this.indicator)&&this.indicator){var grid=this.listingContainer.down('table.gfw-gri
2272d');if(typeof(grid)!='undefined'){this.indicator.positionOn(grid)}else{this.indicator.positionOn(this.listingContainer)}
2273this.indicator.show()}},hideLoadIndicator:function(){if(!Object.isUndefined(this.indicator)&&this.indicator){this.indicator.hide()}},installListingContainer:function(){this.listingContainer=null;if(this.formContainer){this.listingContainer=$(document.createElement("div"));this.listingContainer.setAttribute("id",this.listingId);this.formContainer.insert({after:this.listingContainer})}},ajaxifyListingLinks:function(){$$(this.pagerLinkSelector).each(function(link){$(link).observe("click",function(e){this.launchPagerRequest(e,link.href)}.bindAsEventListener(this,link.href))}.bind(this));$$(this.sortLinkSelector).each(function(link){$(link).observe("click",function(e){this.launchPagerRequest(e,link.href)}.bindAsEventListener(this,link.href))}.bind(this))},launchPagerRequest:function(event,href){if(event!=undefined)event.stop();this.showLoadIndicator();new Ajax.Request(href,{method:'get',parameters:{resultsonly:1},evalJS:!0,onComplete:function(xhr){if(xhr.status==200){this.listingContainer.update(xhr.responseText);this.notify("searchform:listingupdated")}else this.listingContainer.update('Ajax Error : '+xhr.status);this.hideLoadIndicator();this.ajaxifyListingLinks()}.bindAsEventListener(this)})},ajaxIsActive:function(){var exportField=this.form[this.form.name+'_export'];if(exportField){if($(exportField).getValue()>0)return!1;else return!0}else return!0},launchFormRequest:function(event){if(!this.ajaxIsActive())return;if(event!=undefined)event.stop();this.showLoadIndicator();this.form.request({evalJS:!0,parameters:{resultsonly:1},onComplete:function(xhr){if(xhr.status==200){this.listingContainer.update(xhr.responseText);this.notify("searchform:listingupdated")}else this.listingContainer.update('Ajax Error : '+xhr.status);this.hideLoadIndicator();this.ajaxifyListingLinks()}.bindAsEventListener(this)})},ajaxifyRequest:function(withlisting){this.boundLaunchFormRequest=this.launchFormRequest.bind(this);Event.observe(this.form,"submit",this.boundLaunchFormRequest);Event.observe(this.form,"form:launchformsubmit",this.boundLaunchFormRequest);if(withlisting)this.form.fire("form:launchformsubmit")},timersubmit:function(delay){if(delay===!0){this.form.fire("form:launchformsubmit")}else{if(this.crtTimer)window.clearTimeout(this.crtTimer);this.crtTimer=setTimeout(function(){this.timersubmit(!0)}.bind(this),1000)}},activateInstantSearch:function(fields){if(Object.isArray(fields)){for(var i=0;i<fields.length;i++){var fieldName=fields[i];var elements=this.getElements(fieldName);if(Object.isArray(elements)){for(var j=0;j<elements.length;j++){var element=elements[j];switch(element.type){case 'text':element.observe("keyup",function(event){this.timersubmit()}.bindAsEventListener(this,!1));element.addClassName('activeinstantsearchText');break;case 'select-one':element.observe("keyup",function(event){this.timersubmit()}.bindAsEventListener(this,!1));element.observe("change",function(event){this.timersubmit()}.bindAsEventListener(this,!1));break;case 'select-multiple':element.observe("keyup",function(event){this.timersubmit()}.bindAsEventListener(this,!1));element.observe("change",function(event){this.timersubmit()}.bindAsEventListener(this,!1));break;case 'radio':element.observe("click",function(event){this.timersubmit()}.bindAsEventListener(this,!1));element.observe("change",function(event){this.timersubmit()}.bindAsEventListener(this,!1));break;case 'checkbox':element.observe("click",function(event){this.timersubmit()}.bindAsEventListener(this,!1));element.observe("change",function(event){this.timersubmit()}.bindAsEventListener(this,!1));break}}}}}},getElements:function(name){var formelements=this.form.getElements();if(this.form[name]&&formelements){var elements=formelements.findAll(function(elt){return elt.name==name});if(elements)return elements;else return!1}else return!1}});if(typeof(Object.Event)=='object')Object.Event.extend(EyeCandies.Form.AjaxTools);EyeCandies.Form.ExpandBar=Class.create({initialize:function(name,forcedStatus){this.cookieName='EyeCandies.Form.ExpandBar';this.jar=new EyeCandies.Cookie.Jar({expires:3600,path:'/',SameSite:'Lax'});this.name=name;EyeCandies.Form.ExpandBar.Instances.addInstance(this.name,this);this.formElement=$$('form[name='+name+'].gfw-form').first();this.formElement.expandBar=this;this.formElement.getExpandBar=function(){return this.expandBar};this.mainPanelElement=this.formElement.select('table.gfw-form-mainpanel').first();if(!Object.isUndefined(this.formElement)&&!Object.isUndefined(this.mainPanelElement)){this.iconPath='/src/images/icons';this.iconExpandOpenUrl=this.iconPath+'/'+'24/gfw-form-expandbar-btn-open.png';this.iconExpandCloseUrl=this.iconPath+'/'+'24/gfw-form-expandbar-btn-close.png';if(Object.isElement(this.formElement)){if(!Object.isUndefined(this.mainPanelElement)){this.expandBarElement=this.mainPanelElement.select('.gfw-form-expandbar').first();this.expandBarButton=this.expandBarElement.select('img.gfw-form-expandbar-icon').first();this.expandBarElement.observe('click',function(event){this.toggleDisplay()}.bindAsEventListener(this))}}
2274this.status='expanded';var savedStatus=this.loadStatus();if(savedStatus!=null)this.status=savedStatus;if(forcedStatus=='expanded')this.expand();if(forcedStatus=='shrinked')this.shrink();this.refresh()}},toggleDisplay:function(){if(this.status=='expanded')this.shrink();else this.expand()},expand:function(){this.status='expanded';this.saveStatus();this.refresh()},shrink:function(){this.status='shrinked';this.saveStatus();this.refresh()},saveStatus:function(){var storageRoot=this.getStorage();if(typeof storageRoot.expandBars[this.name]!='object')storageRoot.expandBars[this.name]=new Object();storageRoot.expandBars[this.name].status=this.status;this.jar.put(this.cookieName,storageRoot)}
2274,loadStatus:function(){var storageRoot=this.getStorage();if(typeof storageRoot=='object'&&typeof storageRoot.expandBars=='object'&&typeof storageRoot.expandBars[this.name]=='object'){return storageRoot.expandBars[this.name].status}else return'expanded'},getStorage:function(){var storageRoot=this.jar.get(this.cookieName);if(typeof storageRoot!='object'||storageRoot==null)storageRoot=new Object();if(typeof storageRoot.expandBars!='object'||storageRoot.expandBars==null)storageRoot.expandBars=new Object();return storageRoot},refresh:function(){if(this.status=='expanded'){this.expandBarButton.src=this.iconExpandCloseUrl;this.formElement.select('table.gfw-form-mainpanel tbody').each(function(element){element.removeClassName('gfw-shrinked')})}else{this.expandBarButton.src=this.iconExpandOpenUrl;this.formElement.select('table.gfw-form-mainpanel tbody').each(function(element){if(!element.hasClassName('gfw-noshrink'))element.addClassName('gfw-shrinked');else element.removeClassName('gfw-shrinked')})}}});EyeCandies.Form.ExpandBar.Instances={instances:{},addInstance:function(name,object){EyeCandies.Form.ExpandBar.Instances.instances[name]=object},getInstance:function(name){if(name in EyeCandies.Form.ExpandBar.Instances.instances)return EyeCandies.Form.ExpandBar.Instances.instances[name];else return!1},shrink:function(name){var instance=EyeCandies.Form.ExpandBar.Instances.getInstance(name);if(instance)instance.shrink()},expand:function(name){var instance=EyeCandies.Form.ExpandBar.Instances.getInstance(name);if(instance)instance.expand()}};EyeCandies.Form.Filler=Class.create({initialize:function(args){if(typeof(args.formId)!='undefined')this.form=$(args.formId);if(args.usePrefix!==!1)this.prefix=this.form.name+'_';else this.prefix=''},fillFormUsingObject:function(map,data){this.data=data;if(map&&typeof(map)=='object'&&this.data&&typeof(this.data)=='object'&&this.form){$H(map).each(function(pair){this.fillField(pair)},this)}},clearForm:function(map){if(map&&typeof(map)=='object'&&this.form){$H(map).each(function(pair){this.clearField(pair)},this)}},clearField:function(pair){var key=this.prefix+pair.key;if(this.form){var elements=this.form.getElements();if(typeof(key)==='string'&&key!==''&&this.form[key]&&elements){var element=elements.find(function(elt){return elt.name===key});if(element){element.setValue('');this.fireEvent(element,'change')}}}},fillField:function(pair){var key=this.prefix+pair.key;var value=this.data[pair.value];if(typeof(value)==='boolean')value='';if(this.form){var elements=this.form.getElements();if(typeof(key)==='string'&&key!==''&&this.form[key]&&typeof(value)!=='undefined'&&elements){var element=elements.find(function(elt){return elt.name===key});if(element){if(element.getValue()!==value){element.classList.add("gfw-field-change");setTimeout(function(){element.classList.remove("gfw-field-change")},1000);element.setValue(value);this.fireEvent(element,'change')}}}}},fireEvent:function(element,event){if(document.createEventObject){var evt=document.createEventObject();return element.fireEvent('on'+event,evt)}else{var evt=document.createEvent("HTMLEvents");evt.initEvent(event,!0,!0);return!element.dispatchEvent(evt)}}});EyeCandies.Form.Getter=Class.create({initialize:function(args){if(typeof(args.formId)!='undefined')this.form=$(args.formId);if(args.usePrefix!==!1)this.prefix=this.form.name+'_';else this.prefix=''},getFormValuesAsObject:function(array){if(this.form){this.data={};if(array){for(var i=0,len=array.length;i<len;++i){var value=array[i];this.data[value]=this.getFieldValue(value)}}else{}}
2275return this.data},getFormElementsAsObject:function(array){if(this.form){this.data={};if(array){for(var i=0,len=array.length;i<len;++i){var value=array[i];this.data[value]=this.getField(value)}}else{}}
2276return this.data},getField:function(key){key=this.prefix+key;if(this.form){var elements=this.form.getElements();if(typeof(key)==='string'&&key!==''&&this.form[key]&&elements){var element=elements.find(function(elt){return elt.name===key});if(element)return element}}
2277return!1},getFieldValue:function(key){var field=this.getField(key);if(field)return field.getValue();else return!1}});EyeCandies.Form.Updater=Class.create({initialize:function(args){if(typeof(args.formId)!='undefined')this.form=$(args.formId);this.formId=args.formId;this.watchFields=[];if(args.watchFields)this.watchFields=args.watchFields;if(args.saveButtonId)this.saveButtonElement=$(args.saveButtonId);this.url=!1;if(args.url!==!1)this.url=args.url;var urlQueryStringParameters={};if(this.url){urlQueryStringParameters=this.url.parseQuery();if(this.url.indexOf('?')!=-1)this.url=this.url.substr(0,this.url.indexOf('?'))}
2278this.urlParameters=$H();if(args.urlParameters)this.urlParameters=$H(args.urlParameters);this.urlParameters=this.urlParameters.merge(urlQueryStringParameters);this.lastValue=this.getCurrentValue();this.addObservers()},showSaveButton:function(){if(this.saveButtonElement)Effect.Appear(this.saveButtonElement)},hideSaveButton:function(){if(this.saveButtonElement)Effect.Fade(this.saveButtonElement)},hasChanged:function(){if(this.getCurrentValue()!=this.lastValue)return!0;else return!1},checkForChange:function(){if(this.hasChanged())this.showSaveButton()},getCurrentValue:function(){var formGetter=new EyeCandies.Form.Getter({formId:this.formId});var fields=formGetter.getFormValuesAsObject(this.watchFields);return $H(fields).values().join(':')},addObservers:function(){var formGetter=new EyeCandies.Form.Getter({formId:this.formId});var fields=formGetter.getFormElementsAsObject(this.watchFields);$H(fields).each(function(pair){pair.value.observe('change',function(){this.checkForChange()}.bindAsEventListener(this))}.bind(this));if(this.saveButtonElement&&this.url!==!1){this.saveButtonElement.observe('click',function(){var formGetter=new EyeCandies.Form.Getter({formId:this.formId});var values=formGetter.getFormValuesAsObject(this.watchFields);var parameters=this.urlParameters.merge(values);new Ajax.Request(this.url,{parameters:parameters,onSuccess:function(response){this.hideSaveButton();this.lastValue=this.getCurrentValue()}.bind(this),onFailure:function(response){alert(response.responseText)}})}.bindAsEventListener(this))}}});EyeCandies.Form.SubmitModalWindow=Class.create({initialize:function(formElement,windowelement,options){this.windowelement=windowelement;if(this.windowelement.style)this.windowelement.style.display='none';this.formElement=formElement;this.options=Object.extend({closeOnClick:!0,fade:!0},options||{});if(this.formElement)formElement.observe('submit',this.submitHandler.bindAsEventListener(this))},submitHandler:function(event){if(event.target.hasClassName('x-prevent-submission')||typeof(event.target.down('.x-prevent-submission'))!='undefined')return!1;if(this.windowelement){var modal=new Control.Modal(this.windowelement,this.options);modal.open()}}});EyeCandies.Form.TabControls=Class.create({initialize:function(formInstance,submitbutton,prevbutton,nextbutton,translations){this.form=formInstance.form;this.mainpanel=formInstance.form.down('.gfw-form-mainpanel');this.tabs=formInstance.controlTabs;this.commandPanel=this.form.select('.gfw-form-commands').first();this.submitbutton=submitbutton;this.prevbutton=prevbutton;this.nextbutton=nextbutton;this.translations=translations;this.body=$$('body')[0];if(this.tabs){this.installObservers();this.updatePrevNext();this.updateSubmitButton()}
2279if(this.commandPanel){this.submitToolTip=new Control.ToolTip(this.commandPanel,this.translations.transEmptyMandatoryField,{className:'gfw-tooltip',offsetTop:function(){return 0-Element.getHeight(this.submitToolTip.container)-20}.bind(this),offsetLeft:function(){return 0-Element.getWidth(this.submitToolTip.container)/2}.bind(this),beforeOpen:function(){this.updateSubmitButton();if(this.findFirstInvalidFields()==!1)throw $break}.bind(this)})}},installObservers:function(){if(this.tabs){this.prevbutton.observe('click',function(event){event.stop();this.tabs.previous();Effect.ScrollTo(this.mainpanel,{duration:0.2});this.updatePrevNext()}.bind(this));this.nextbutton.observe('click',function(event){event.stop();this.tabs.next();Effect.ScrollTo(this.mainpanel,{duration:0.2});this.updatePrevNext()}.bind(this));this.form.observe('submit',function(event){var invalidElement=this.findFirstInvalidFields();if(invalidElement){event.stop()}}.bind(this));this.form.select('input[type=text].gfw-form-validation-length').each(function(elt){elt.observe('change',function(){this.updateSubmitButton()}.bind(this))}.bind(this));this.tabs.observe('afterChange',function(tab1,tab2){this.updatePrevNext()}.bind(this))}},findFirstInvalidFields:function(){if(this.form){var mustValidateLength=this.form.select('.gfw-form-validation-length');
2279if(mustValidateLength&&mustValidateLength.length>0){for(var i=0;i<mustValidateLength.length;i++){var element=mustValidateLength[i];if(element.value==''&&element.type=='text')return element}
2280return!1}else return!1}else return!1},updateSubmitButton:function(){var invalidField=this.findFirstInvalidFields();if(invalidField){var errorStr=this.translations.transEmptyMandatoryField;var fieldLabelElement=invalidField.up('td').previous('td').down('.gfw-form-label-text');if(fieldLabelElement){var fieldLabel=fieldLabelElement.textContent||fieldLabelElement.innerText;if(!fieldLabel.blank()){errorStr=this.translations.transFieldIsEmpty.replace('%s',fieldLabel)}}
2281if(this.submitToolTip&&this.submitToolTip.container&&fieldLabel)this.submitToolTip.container.innerHTML=errorStr;this.submitbutton.disabled=!0}else{if(this.submitToolTip&&this.submitToolTip.container)this.submitToolTip.container.innerHTML='';this.submitbutton.disabled=!1}},updatePrevNext:function(){if(this.tabs){if(this.tabs.allActivated){this.prevbutton.hide();this.nextbutton.hide()}else{this.prevbutton.show();this.nextbutton.show();if(this.tabs.activeLink==this.tabs.links.first())this.prevbutton.disabled=!0;else this.prevbutton.disabled=!1;if(this.tabs.activeLink==this.tabs.links.last())this.nextbutton.disabled=!0;else this.nextbutton.disabled=!1}}}});EyeCandies.Form.CharCounter=Class.create({initialize:function(name,maxlimit){this.name=name;this.maxlimit=maxlimit;if(this.name&&this.maxlimit>0){this.elt=document.getElementsByName(this.name)[0];if(this.elt){Event.observe(this.elt,'keyup',this.countCharacters.bind(this));Event.observe(this.elt,'keydown',this.countCharacters.bind(this));Event.observe(this.elt,'blur',this.countCharacters.bind(this));Event.observe(this.elt,'focus',this.countCharacters.bind(this));Event.observe(this.elt,'gfw:change',this.countCharacters.bind(this));this.countCharacters()}}},countCharacters:function(){if(this.elt&&this.elt!=undefined&&this.maxlimit>0){var counterId=this.elt.name+'_charCounter';if(!$(counterId))this.elt.insert({after:'<div id="'+counterId+'"></div>'});if(this.elt.value.length>=this.maxlimit)this.elt.value=this.elt.value.substring(0,this.maxlimit);$(counterId).update(this.elt.value.length+'/'+this.maxlimit)}}});EyeCandies.Form.CheckboxAutochecker=Class.create({initialize:function(elementId){this.elementId=elementId;this.init()},init:function(){this.started=!1;this.checked=!1;this.firstTarget=null;this.el=null;this.el=$(this.elementId);if(this.el)this.el.observe('mousedown',this.checkInit.bindAsEventListener(this))},checkInit:function(evt){evt=evt||window.event;this.firstTarget=$(evt.srcElement||evt.target);if(this.firstTarget&&this.firstTarget.nodeType==1&&this.firstTarget.type=='checkbox'&&!this.started){this.checked=!this.firstTarget.checked;this.firstTarget.observe('mouseout',function(evt){this.checkFirst(evt)}.bindAsEventListener(this));this.el.observe('mouseup',this._stop.bindAsEventListener(this));this._start()}},checkFirst:function(evt){this.firstTarget.checked=this.checked},toggleCheckbox:function(e){e=e||window.event;var target=e.srcElement||e.target;if(target&&target.nodeType==1&&target.type=='checkbox')target.checked=this.checked},_start:function(){this.started=!0;this.el.observe('mouseover',this.toggleCheckbox.bindAsEventListener(this))},_stop:function(e){e=e||window.event;var target=e.srcElement||e.target;if(target===this.firstTarget){target.checked=!this.checked}
2282this.started=!1;this.el.stopObserving('mouseup');this.el.stopObserving('mouseover');this.firstTarget.stopObserving('mouseout')},start:function(){this.init()},stop:function(){this.el.stopObserving('mousedown')}});EyeCandies.Form.CheckBoxLimiter=Class.create({initialize:function(container,maxChecked,maxCheckedMessage){this.div=null;if(typeof container!='undefined'&&container!=null&&maxChecked!=null){this.container=container;this.maxChecked=maxChecked;this.maxCheckedMessage=maxCheckedMessage;this.allCheckboxes=this.container.select('input[type=checkbox]');Element.observe(this.container,'change',this.checkMax.bind(this));Element.observe(this.container,'mouseout',this.checkMax.bind(this))}},countChecked:function(){if(this.allCheckboxes&&this.allCheckboxes.length>0){return this.allCheckboxes.inject(0,function(c,checkbox){if(checkbox.checked)return c+1;else return c})}else return 0},getCheckedLabels:function(){if(this.allCheckboxes&&this.allCheckboxes.length>0){return this.allCheckboxes.inject([],function(c,checkbox){if(checkbox.checked){var label=$$('label[for='+checkbox.id+']').first().innerHTML;c.push(label);return c}else{return c}})}else return!1},checkMax:function(event){if(event.target.type=='checkbox'&&this.countChecked()>this.maxChecked){event.target.checked=!1;if(this.maxCheckedMessage!=""){this.showMaxCheckedMessage()}}},showMaxCheckedMessage:function(){if(typeof this.maxCheckedMessage!='undefined'&&this.maxCheckedMessage!=""){if(this.div!=null)return!1;this.div=document.createElement("div");Element.absolutize(this.div);this.div.setAttribute("style","display:none;background-color:#eee;border:2px solid #aaa;border-radius:5px;color:#660000;font-weight:normal;padding:15px;position:absolute;text-align:left;width:350px;");this.div.innerHTML=this.createMessage();Event.observe(this.div,'click',this.destroyMessage.bind(this));Element.insert($$("body").first(),{top:this.div});new Effect.Appear(this.div,{duration:1,beforeStart:function(){this.centerElement(this.div)}.bind(this),afterFinish:this.hideMaxCheckedMessage.bind(this)})}},createMessage:function(){var labels=this.getCheckedLabels();var message=this.maxCheckedMessage.replace("{maxChecked}",this.maxChecked);if(labels.length>
22820){var labelList=document.createElement("div");var ul=document.createElement("ul");labelList.appendChild(ul);for(var i=0;i<labels.length;i++){ul.appendChild(document.createElement('li')).appendChild(document.createTextNode(labels[i]))}
2283message=message.replace("{checkedList}",labelList.innerHTML)}else{message=message.replace("{checkedList}","")}
2284return message},hideMaxCheckedMessage:function(){if(this.div!=null){new Effect.Fade(this.div,{duration:1,delay:6,afterFinish:this.destroyMessage.bind(this)})}},destroyMessage:function(){if(this.div!=null){this.div.hide();this.div.parentNode.removeChild(this.div);this.div=null}},centerElement:function(element){if($(element)!=null){if(typeof window.innerHeight!='undefined'){$(element).style.top=Math.round(document.viewport.getScrollOffsets().top+((window.innerHeight-$(element).getHeight()))/2)+'px';$(element).style.left=Math.round(document.viewport.getScrollOffsets().left+((window.innerWidth-$(element).getWidth()))/2)+'px'}else{$(element).style.top=Math.round(document.body.scrollTop+(($$('body')[0].clientHeight-$(element).getHeight()))/2)+'px';$(element).style.left=Math.round(document.body.scrollLeft+(($$('body')[0].clientWidth-$(element).getWidth()))/2)+'px'}}}});EyeCandies.Form.CheckBoxSearch=Class.create({initialize:function(container,parameters){this.quickCheckControlSelector=".x-quickcheck-control";if(typeof container!=="undefined"){this.SEARCHMODE_CONTAINS="contains";this.SEARCHMODE_EQUALS="equals";this.SEARCHMODE_BEGINSWITH="beginswith";this.SEARCHMODE_ENDSWITH="endswith";this.SEARCHMODE_NOTCONTAINS="notcontains";this.SEARCHMODE_NOTEQUALS="notequals";this.SEARCHMODE_NOTBEGINSWITH="notbeginswith";this.SEARCHMODE_NOTENDSWITH="notendswith";this.negatedSearchModes=[this.SEARCHMODE_NOTCONTAINS,this.SEARCHMODE_NOTEQUALS,this.SEARCHMODE_NOTBEGINSWITH,this.SEARCHMODE_NOTENDSWITH];this.lang='fr_FR';if(parameters&&parameters.lang)this.lang=parameters.lang;this.translator=new EyeCandies.Translator(this.lang,{'Recherche':{'en_US':'Search'},'Rechercher un mot ou une liste de mots séparés par des points-virgules':{'en_US':'Search a word or a list of words separated by semicolons'},'Annuler la recherche':{'en_US':'Clear search'},'Tout sélectionner':{'en_US':'Check all'},'Tout désélectionner':{'en_US':'Uncheck all'},'Voulez vous vraiment cocher toutes les cases ?':{'en_US':'Do you really want to check all the checkboxes ?'},'Voulez vous vraiment décocher toutes les cases ?':{'en_US':'Do you really want to uncheck all the checkboxes ?'},"Pour l'ensemble des groupes : ":{"en_US":"For all groups : "},"Aucun élément n'a été trouvé":{"en_US":"No results"},"Pour l'élément trouvé : ":{"en_US":"For the element found : "},"Pour les #{nbresults} éléments trouvés : ":{"en_US":"For the #{nbresults} elements found : "},"Contient":{"en_US":"Contains"},"Est égal à":{"en_US":"Equals"},"Commence par":{"en_US":"Begins with"},"Finit par":{"en_US":"Ends with"},"Ne contient pas":{"en_US":"Does not contain"},"N\'est pas égal à":{"en_US":"Is not equal to"},"Ne commence pas par":{"en_US":"Does not begin with"},"Ne finit pas par":{"en_US":"Does not end with"}});this.hasSearchConditions=!1;this.container=container;this.searchIsInProgress=!1;this.allGroups=this.container.select('.x-checkbox-group');this.allContainers=this.container.select('div.x-checkbox-container');this.allCheckboxes=this.container.select('input[type=checkbox]');this.allLabels=this.container.select('.x-checkbox-label-container .x-checkbox-label');this.allTags=this.container.select('.x-checkbox-label-container .gfw-taglist li');this.allTooltips=this.container.select('div.x-checkbox-container .tooltip');this.uniqueTags=!1;this.tagSelectors=!1;if(this.allTags){this.uniqueTags=[];for(var i=0;i<this.allTags.length;i++){var value=this.allTags[i].innerHTML;if(this.uniqueTags.indexOf(value)===-1)this.uniqueTags.push(value.strip())}}
2285this.hideAllTags();this.toolBar=new Element('div',{'class':'gfw-checkboxsearch-toolbar'});this.searchField=new Element('input',{type:'text',placeholder:this.translator.gettext('Recherche'),title:this.translator.gettext('Rechercher un mot ou une liste de mots séparés par des points-virgules'),'class':'x-searchfield'});this.searchField.classList.add('std1');this.clearSearchButton=new Element('div',{title:this.translator.gettext('Annuler la recherche'),'class':'x-clearsearchbutton'});this.searchMode=new Element('select',{'class':'x-searchmode std1'});this.searchMode.insert(new Element('option',{'class':'std1','value':this.SEARCHMODE_CONTAINS}).update(this.translator.gettext('Contient')));this.searchMode.insert(new Element('option',{'class':'std1','value':this.SEARCHMODE_EQUALS}).update(this.translator.gettext('Est égal à')));this.searchMode.insert(new Element('option',{'class':'std1','value':this.SEARCHMODE_BEGINSWITH}).update(this.translator.gettext('Commence par')));this.searchMode.insert(new Element('option',{'class':'std1','value':this.SEARCHMODE_ENDSWITH}).update(this.translator.gettext('Finit par')));this.searchMode.insert(new Element('option',{'class':'std1','value':this.SEARCHMODE_NOTCONTAINS}).update(this.translator.gettext('Ne contient pas')));this.searchMode.insert(new Element('option',{'class':'std1','value':this.SEARCHMODE_NOTEQUALS}).update(this.translator.gettext('N\'est pas égal à')));this.searchMode.insert(new Element('option',{'class':'std1','value':this.SEARCHMODE_NOTBEGINSWITH}).update(this.translator.gettext('Ne commence pas par')));this.searchMode.insert(new Element('option',{'class':'std1','value':this.SEARCHMODE_NOTENDSWITH}).update(this.translator.gettext('Ne finit pas par')));if(parameters&&parameters.enableSearchModeSelector===!0)this.searchMode.style.display='block';else this.searchMode.style.display='none';this.searchResultLabel=new Element('span',{'class':'x-result-label'});this.searchResultLabel.insert(this.translator.gettext("Pour l'ensemble des groupes : "));this.buttonCheckAll=new Element('img',{src:'/src/images/icons/svg/8/checkall.svg',border:'0','class':'x-button',title:this.translator.gettext('Tout sélectionner')});this.buttonUncheckAll=new Element('img',{src:'/src/images/icons/svg/8/checknone.svg',border:'0','class':'x-button',title:this.translator.gettext('Tout désélectionner')});this.buttonCheckAll.setStyle({cursor:'pointer'});this.buttonUncheckAll.setStyle({cursor:'pointer'});this.buttonBar=new Element('div',{'class':'std1b x-buttonbar'});this.buttonBar.insert(this.searchResultLabel);this.buttonBar.insert(this.buttonCheckAll);this.buttonBar.insert(this.buttonUncheckAll);
2285this.toolBar.insert(this.buttonBar);this.toolBar.insert(this.searchField);this.toolBar.insert(this.searchMode);this.toolBar.insert(this.clearSearchButton);if(this.uniqueTags)this.installTagSelectors(this.uniqueTags);if(this.buttonCheckAll)Element.observe(this.buttonCheckAll,'click',this.buttonCheckAllHandler.bind(this));if(this.buttonUncheckAll)Element.observe(this.buttonUncheckAll,'click',this.buttonUnCheckAllHandler.bind(this));this.container.down('.x-checkbox-group').insert({before:this.toolBar});if(this.searchField&&this.container){var debouncedTextSearch=EyeCandies.debounce(this.search.bind(this),500,!1);Element.observe(this.searchField,'keyup',function(){debouncedTextSearch()}.bind(this));Element.observe(this.searchField,'change',function(){this.search()}.bind(this));Element.observe(this.searchMode,'change',function(){this.search()}.bind(this));Element.observe(this.searchField,'mouseup',function(){this.search.bind(this).delay(1)}.bind(this));Element.observe(this.searchField,'paste',function(e){this.pasteSearchText(e);this.search()}.bind(this));this.clearSearchButton.addEventListener('click',function(){this.clearSearch()}.bind(this))}}},installTagSelectors:function(uniqueTags){if(uniqueTags){this.tagSelectors=[];var len=uniqueTags.length;var tagSelectorElt=new Element('div',{'class':'x-tagselector'});for(var i=0;i<len;i++){var text=uniqueTags[i];var checkboxElt=new Element('input',{'type':'checkbox','class':'x-tagselector-checkbox','value':text,'style':'display:none'});var labelElt=new Element('label',{'class':'x-tagselector-label'});var textElt=new Element('span',{'class':'x-tagselector-text'}).insert(text);labelElt.insert(checkboxElt);labelElt.insert(textElt);Element.observe(checkboxElt,'change',function(){this.search()}.bind(this));tagSelectorElt.insert(labelElt);this.tagSelectors.push(checkboxElt)}
2286this.toolBar.insert(tagSelectorElt)}},getTextFieldSearchValues:function(){var searchValues=this.searchField.value.split(';').filter(function(elt){return elt!==""});if(searchValues.length>0)return searchValues;return!1},getTagSelectorsSearchValues:function(){var searchArray=!1;if(this.tagSelectors){for(var i=0;i<this.tagSelectors.length;i++){if(this.tagSelectors[i].checked){if(!(searchArray instanceof Array))searchArray=[];searchArray.push(this.tagSelectors[i].value.strip())}}}
2287return searchArray},pasteSearchText:function(evt){if(this.searchField.value.length>0)return;var cData=null;if(typeof(evt.clipboardData)==='object')cData=evt.clipboardData;else if(typeof(window.clipboardData)==='object')cData=window.clipboardData;if(cData){evt.stop();var text=cData.getData('Text');var elements=text.split(/[\r\n]+/).filter(function(e){return!e.empty()});this.searchField.setValue(elements.join(';'))}},searchNew:function(){this.unmarkMatchingSearchAll();this.hideAllTags();var activeSearchMode=this.searchMode.value;var negateSearchMode=this.negatedSearchModes.indexOf(activeSearchMode)>=0;var textFieldSearchValues=this.getTextFieldSearchValues();var tagSelectorSearchValues=this.getTagSelectorsSearchValues();if(textFieldSearchValues||tagSelectorSearchValues){this.hasSearchConditions=!0;this.hideAll()}else{this.hasSearchConditions=!1}
2288if(this.hasSearchConditions){var foundCheckboxContainers=[];var foundLabelContainers=[];var foundTagContainers=[];if((textFieldSearchValues instanceof Array)&&textFieldSearchValues.length>0&&this.allCheckboxes.length>0){var matchingCheckboxes=this.findAllMatchingElementValues(textFieldSearchValues,this.allCheckboxes,activeSearchMode,!1);if(matchingCheckboxes){for(var lblidx=0;lblidx<matchingCheckboxes.length;lblidx++){var checkboxElement=matchingCheckboxes[lblidx];var container=checkboxElement.up('div.x-checkbox-container');foundCheckboxContainers.push(container)}}}
2289if((textFieldSearchValues instanceof Array)&&textFieldSearchValues.length>0&&this.allLabels.length>0){var matchingLabels=this.findAllMatchingElements(textFieldSearchValues,this.allLabels,activeSearchMode,!1);if(matchingLabels){for(var lblidx=0;lblidx<matchingLabels.length;lblidx++){var labelTextElement=matchingLabels[lblidx];var container=labelTextElement.up('div.x-checkbox-container');foundLabelContainers.push(container)}}}
2290if((textFieldSearchValues instanceof Array)&&textFieldSearchValues.length>0&&this.allTooltips.length>0){let matchingTooltips=this.findAllMatchingElements(textFieldSearchValues,this.allTooltips,activeSearchMode,!1);if(matchingTooltips){for(let tidx=0;tidx<matchingTooltips.length;tidx++){let labelTextElement=matchingTooltips[tidx];let container=labelTextElement.up('div.x-checkbox-container');foundLabelContainers.push(container)}}}
2291if((tagSelectorSearchValues instanceof Array)&&tagSelectorSearchValues.length>0&&this.allTags.length>0){var matchingTags=this.findAllMatchingElements(tagSelectorSearchValues,this.allTags,this.SEARCHMODE_EQUALS,!1);if(matchingTags){for(var tagidx=0;tagidx<matchingTags.length;tagidx++){var tagElement=matchingTags[tagidx];var container=tagElement.up('div.x-checkbox-container');tagElement.classList.remove('x-hidden');foundTagContainers.push(container)}}}
2292var textSearchContainers=this.arrayUnique(foundCheckboxContainers.concat(foundLabelContainers
2292));var foundContainers=this.intersectResults(textSearchContainers,foundTagContainers);if(foundContainers&&foundContainers.length>0){for(var i=0;i<foundContainers.length;i++){this.markMatchingSearch(foundContainers[i])}}
2293if(this.allContainers&&negateSearchMode){for(let i=0;i<this.allContainers.length;i++){let container=this.allContainers[i];this.invertMatchingSearch(container)}}}
2294this.refreshSearchResultLabel();this.refreshGroupVisibility()},arrayUnique:function(arr){return arr.filter(function(item,index){return arr.indexOf(item)>=index})},intersectResults:function(){var arrays=Array.prototype.slice.call(arguments);var args=[];for(var i=0;i<arrays.length;i++){if((arrays[i]instanceof Array)&&arrays[i].length>0){args.push(arrays[i])}}
2295if(args.length===0)return!1;if(args.length===1)return args[0];return args.shift().filter(function(v){return args.every(function(a){return a.indexOf(v)!==-1})})},search:function(){if(this.searchField.value==='')this.container.querySelectorAll(this.quickCheckControlSelector).forEach(function(elt){elt.style.display=''});else this.container.querySelectorAll(this.quickCheckControlSelector).forEach(function(elt){elt.style.display='none'});if(this.searchIsInProgress===!0)return;this.searchIsInProgress=!0;this.searchNew();this.searchIsInProgress=!1},clearSearch:function(){this.searchField.value="";this.search()},isMatching:function(needle,haystack,activeSearchMode){var ismatching=!1;needle=needle.toLowerCase().trim();haystack=haystack.toLowerCase().trim();switch(activeSearchMode){case this.SEARCHMODE_EQUALS:ismatching=(needle===haystack&&needle.length>0);break;case this.SEARCHMODE_NOTEQUALS:ismatching=(needle===haystack&&needle.length>0);break;case this.SEARCHMODE_CONTAINS:ismatching=(haystack.indexOf(needle)!==-1);break;case this.SEARCHMODE_NOTCONTAINS:ismatching=(haystack.indexOf(needle)!==-1);break;case this.SEARCHMODE_BEGINSWITH:ismatching=(haystack.indexOf(needle)===0);break;case this.SEARCHMODE_NOTBEGINSWITH:ismatching=(haystack.indexOf(needle)===0);break;case this.SEARCHMODE_ENDSWITH:ismatching=(haystack.endsWith(needle));break;case this.SEARCHMODE_NOTENDSWITH:ismatching=(haystack.endsWith(needle));break;default:ismatching=(haystack.indexOf(needle)!==-1);break}
2296return ismatching},findAllMatchingElementValues:function(searchArray,eltArray,activeSearchMode,negate){var results=[];if(!(searchArray instanceof Array))searchArray=[searchArray];var len=eltArray.length;for(var i=0;i<len;i++){var elt=eltArray[i];if('value' in elt){var elementValue=elt.value;for(var j=0;j<searchArray.length;j++){var needle=searchArray[j];if(this.isMatching(needle,elementValue,activeSearchMode)&&results.indexOf(elt)<0)results.push(elt)}}}
2297if(negate){results=eltArray.filter(function(element){if(results.indexOf(element)<0)return!0;else return!1})}
2298return results},findAllMatchingElements:function(searchArray,eltArray,activeSearchMode,negate){var results=[];if(!(searchArray instanceof Array))searchArray=[searchArray];var len=eltArray.length;for(var i=0;i<len;i++){var elt=eltArray[i];var elementText=elt.innerHTML;for(var j=0;j<searchArray.length;j++){var needle=searchArray[j];if(this.isMatching(needle,elementText,activeSearchMode)&&results.indexOf(elt)<0)results.push(elt)}}
2299if(negate){results=eltArray.filter(function(element){if(results.indexOf(element)<0)return!0;else return!1})}
2300return results},hideAll:function(){var len=this.allContainers.length;for(var i=0;i<len;i++)this.hideElementIfNotChecked(this.allContainers[i]);},hideElementIfNotChecked:function(checkboxContainer){checkboxContainer.setStyle({backgroundColor:null});if(checkboxContainer.down('input').checked===!1){checkboxContainer.hide()}},resetGroupVisibility:function(){this.allGroups.each(function(div){Element.show(div)}.bind(this))},refreshGroupVisibility:function(){this.allGroups.each(function(div){if(this.hasSearchConditions){var isEmpty=!0;div.select('.x-checkbox-container').each(function(element){if(element.style.display!=='none')isEmpty=!1});if(isEmpty)Element.hide(div);else Element.show(div)}else{Element.show(div)}}.bind(this))},markMatchingSearch:function(element){if(!element.classList.contains('gfw-hidable')){element.classList.add("x-matchingsearch");element.show()}},unmarkMatchingSearch:function(element){if(!element.classList.contains('gfw-hidable')){element.classList.remove("x-matchingsearch");element.show()}},invertMatchingSearch:function(element){if(!element.classList.contains('gfw-hidable')){if(element.classList.contains("x-matchingsearch")){element.classList.remove("x-matchingsearch");Element.hide(element)}else{element.classList.add("x-matchingsearch");Element.show(element)}}},unmarkMatchingSearchAll:function(){var len=this.allContainers.length;for(var i=0;i<len;i++)this.unmarkMatchingSearch(this.allContainers[i]);},checkAll:function(){if(this.allCheckboxes)this.allCheckboxes.each(function(element){element.checked=!0}.bind(this))},uncheckAll:function(){if(this.allCheckboxes)this.allCheckboxes.each(function(element){element.checked=!1}
2300.bind(this))},checkMarked:function(){this.getElementsMatchingSearch().each(function(element){element.checked=!0}.bind(this))},uncheckMarked:function(){this.getElementsMatchingSearch().each(function(element){element.checked=!1}.bind(this))},getElementsMatchingSearch:function(){return this.container.select('.x-matchingsearch input[type=checkbox]')},hideAllTags:function(){var len=this.allTags.length;for(var i=0;i<len;i++)this.allTags[i].classList.add('x-hidden');},buttonCheckAllHandler:function(){if(this.hasSearchConditions===!1){if(confirm(this.translator.gettext('Voulez vous vraiment cocher toutes les cases ?')))this.checkAll()}else{this.checkMarked()}},buttonUnCheckAllHandler:function(){if(this.hasSearchConditions===!1){if(confirm(this.translator.gettext('Voulez vous vraiment décocher toutes les cases ?')))this.uncheckAll()}else{this.uncheckMarked()}},refreshSearchResultLabel:function(){var resultLabel=this.translator.gettext("Pour l'ensemble des groupes : ");if(this.hasSearchConditions===!0){var nbresults=this.getElementsMatchingSearch().length;if(nbresults===0)resultLabel=this.translator.gettext("Aucun élément n'a été trouvé");else if(nbresults===1)resultLabel=this.translator.gettext("Pour l'élément trouvé : ");else if(nbresults>1)resultLabel=this.translator.gettext("Pour les #{nbresults} éléments trouvés : ").interpolate({nbresults:nbresults})}
2301this.searchResultLabel.update(resultLabel)}});EyeCandies.Form.PasswordViewerTrigger=function(triggerid){this.triggerid=triggerid;this.triggerElt=document.getElementById(triggerid);this.passwordFieldId=null;this.passwordElt=null;this.installObservers=function(){this.triggerElt.addEventListener('touchstart',function(){this.toggleType()}.bind(this));this.triggerElt.addEventListener('mousedown',function(){this.toTypeText()}.bind(this));this.triggerElt.addEventListener('mouseout',function(){this.toTypePassword()}.bind(this));this.triggerElt.addEventListener('mouseup',function(){this.toTypePassword()}.bind(this))};this.positionTrigger=function(){var triggerWidth=this.passwordElt.offsetHeight+"px";this.passwordElt.style.paddingRight=triggerWidth;this.triggerElt.style.width=triggerWidth;this.triggerElt.style.height='100%';this.triggerElt.style.display='inline-block';this.triggerElt.style.right='0';this.triggerElt.style.top='0';this.triggerElt.style.position='absolute';var container=this.triggerElt.closest('.x-widget-container');if(container){container.style.display='inline-block';container.style.position='relative'}}
2302this.toggleType=function(){if(this.passwordElt.type==='password')this.passwordElt.type='text';else if(this.passwordElt.type==='text')this.passwordElt.type='password'}
2303this.toTypePassword=function(){if(this.passwordElt.type==='text')this.passwordElt.type='password'}
2304this.toTypeText=function(){if(this.passwordElt.type==='password')this.passwordElt.type='text'}
2305this.hideTrigger=function(){if(this.triggerElt)this.triggerElt.style.display='none'}
2306if(this.triggerElt){this.passwordFieldId=this.triggerElt.getAttribute('data-field-id');if(this.passwordFieldId){this.passwordElt=document.getElementById(this.passwordFieldId);this.installObservers();this.positionTrigger()}}}
2307EyeCandies.Form.PasswordChangeCompare=function(field1id,field2id){this.field1=document.getElementById(field1id);this.field2=document.getElementById(field2id);this.installObservers=function(){this.field1.addEventListener('keyup',function(){this.refreshStatus()}.bind(this));this.field2.addEventListener('keyup',function(){this.refreshStatus()}.bind(this));this.field1.addEventListener('change',function(){this.refreshStatus()}.bind(this));this.field2.addEventListener('change',function(){this.refreshStatus()}.bind(this))}
2308this.refreshStatus=function(){var valueField1=this.field1.value;var valueField2=this.field2.value;if(valueField1===""||valueField2===""){this.clearInvalid()}else{if(valueField1===valueField2)this.clearInvalid();else this.setInvalid()}}
2309this.clearInvalid=function(){this.field1.classList.remove('x-invalid');this.field2.classList.remove('x-invalid')}
2310this.setInvalid=function(){this.clearInvalid();this.field1.classList.add('x-invalid');this.field2.classList.add('x-invalid')}
2311if(this.field1&&this.field2){this.installObservers();this.refreshStatus()}}
2312EyeCandies.Form.assignGeneratedPassword=function(generatedPasswordMessage){alertify.confirm(generatedPasswordMessage.title,generatedPasswordMessage.message,function(){var fieldlist=generatedPasswordMessage.fieldlist;var password=generatedPasswordMessage.password;if(Array.isArray(fieldlist)&&fieldlist.length>0){for(var i=0;i<fieldlist.length;i++){var fieldId=fieldlist[i];if(fieldId){var field=document.getElementById(fieldId);if(field)field.value=password}}}},null)}
2313EyeCandies.Form.XHRFormChangeObserver=function(formId,url,options){if(!FormData.prototype.hasOwnProperty('set'))return;this.formId=formId;this.form=document.getElementById(this.formId);if(!this.form)return;this.url=url.substr(0,url.indexOf('?'));this.parameters=EyeCandies.queryStringToObject(url);this.currentFormSerial=null;this.setOnSuccess=function(callback){if(typeof(callback)==='function')this.onSuccess=callback.bind(this)};this.setOnError=function(callback){if(typeof(callback)==='function')this.onError=callback.bind(this)};this.buildFormData=function(){let formData=new FormData(this.form);for(let property in this.parameters){if(this.parameters.hasOwnProperty(property))formData.set(property,this.parameters[property])}
2314return formData}.bind(this);this.serializeFormData=function(formData){let string='';let entries=formData.entries();
2314let formElt=entries.next();while(!formElt.done){let key=formElt.value[0];let value=formElt.value[1];string+=key+'='+value+';';formElt=entries.next()}
2315return string}.bind(this);this.formDataHasChanged=function(){let newFormSerial=this.serializeFormData(this.buildFormData());if(newFormSerial!==this.currentFormSerial){this.currentFormSerial=newFormSerial;return!0}
2316return!1}.bind(this);this.onFormChange=function(evt){if(this.formDataHasChanged()){let XHR=new XMLHttpRequest();if(typeof(this.onSuccess)==='function')XHR.addEventListener("load",this.onSuccess);if(typeof(this.onError)==='function')XHR.addEventListener("error",this.onError);XHR.open("POST",this.url);XHR.send(this.buildFormData())}}.bind(this);this.debouncedOnFormChange=EyeCandies.debounce(this.onFormChange,500,!1);if(typeof(options)==='object'){if(options.hasOwnProperty('onSuccess'))this.setOnSuccess(options.onSuccess);if(options.hasOwnProperty('onError'))this.setOnError(options.onError)}
2317this.form.addEventListener('click',this.debouncedOnFormChange);this.form.addEventListener('change',this.debouncedOnFormChange);this.form.addEventListener('keyup',this.debouncedOnFormChange)};EyeCandies.Form.GeneratedPasswordMessage=function(title,message,password,fieldlist){this.title=title;this.message=message
2318this.password=password;this.fieldlist=fieldlist}
2319EyeCandies.Form.FormBotShield=class
2320{formId;fieldName;url;userHasBeenActiveSensor=!1;constructor(formId,fieldName,url){this.formId=formId;this.fieldName=fieldName;this.url=url;this.installFakeUserActivationSensor();this.installSubmitEventListener()}
2321installFakeUserActivationSensor(){if(!this.canUseUserActivationAPI()){let events=['mousedown','keydown','click','touchend'];let pageActivationEventHandler=(e)=>{if(e.isTrusted){this.userHasBeenActiveSensor=!0;events.forEach(eventType=>window.removeEventListener(eventType,pageActivationEventHandler))}}
2322events.forEach(eventType=>window.addEventListener(eventType,pageActivationEventHandler))}}
2323canUseUserActivationAPI(){if(navigator.userActivation)return!0;return!1}
2324userHasBeenActive(){if(this.canUseUserActivationAPI()){return navigator.userActivation.hasBeenActive}else{return this.userHasBeenActiveSensor}}
2325installSubmitEventListener(){if(this.formId&&this.fieldName&&this.url){let form=document.getElementById(this.formId);if(form)form.addEventListener('submit',function(event){this.submitListener(event)}.bind(this))}}
2326submitListener(event){event.preventDefault();let form=event.target;let field=form.elements[this.fieldName];if(form&&field){if(this.userHasBeenActive()){window.fetch(this.url).then((response)=>{if(!response.ok)throw new Error('[FBS] : Failed to get token from server : Response not ok');return response.json()}).then((response)=>{if(response.token){if(field){field.value=response.token;form.submit()}else throw new Error('[FBS] : Failed to set token : field not found')}else throw new Error('[FBS] : Failed to get token from server : Token is not set')}).catch(e=>{console.log(e.message);form.submit()})}else{console.log("[FBS] : User has not been active");form.submit()}}}}
2327EyeCandies.Util=Class.create();EyeCandies.Util.insertAtCaret=function(field,string){field.focus();if(typeof(document.selection)!='undefined'){var range=document.selection.createRange();if(range.parentElement()!=field)return;range.text=string;range.select()}else if(typeof(field.selectionStart)!='undefined'){var start=field.selectionStart;field.value=field.value.substr(0,start)+string+field.value.substr(field.selectionEnd,field.value.length);start+=string.length;field.setSelectionRange(start,start)}else field.value+=string;field.focus()};EyeCandies.debounce=function(func,threshold,execAsap){var timeout;return function debounced(){var obj=this,args=arguments;function delayed(){if(!execAsap)
2328func.apply(obj,args);timeout=null}
2329if(timeout)clearTimeout(timeout);else if(execAsap)func.apply(obj,args);timeout=setTimeout(delayed,threshold||100)}};EyeCandies.toggleHidableBySelector=function(selector){$$(selector).each(function(container){container.select('.gfw-hidable').each(function(hidable){hidable.toggle()})})};EyeCandies.checkBySelector=function(selector){$$(selector).each(function(elt){if(elt.visible()){elt.checked=!0}})};EyeCandies.uncheckBySelector=function(selector){$$(selector).each(function(elt){if(elt.visible()){elt.checked=!1}
2329})};EyeCandies.checkToggleBySelector=function(selector){$$(selector).each(function(elt){if(elt.visible()){if(elt.checked==!0)elt.checked=!1;else elt.checked=!0}})};EyeCandies.checkAllByName=function(n){var elements=document.getElementsByName(n);if(elements!=null){for(var i=0;i<elements.length;i++){elements[i].checked=!0}}};EyeCandies.uncheckAllByName=function(n){var elements=document.getElementsByName(n);if(elements!=null){for(var i=0;i<elements.length;i++){elements[i].checked=!1}}};EyeCandies.checkToggleByName=function(n){var elements=document.getElementsByName(n);if(elements!=null){for(var i=0;i<elements.length;i++){if(elements[i].checked==!0){elements[i].checked=!1}else{elements[i].checked=!0}}}};EyeCandies.Center=function(element){try
2330{element=$(element)}catch(e){return}
2331var my_width=0;var my_height=0;if(typeof(window.innerWidth)=='number'){my_width=window.innerWidth;my_height=window.innerHeight}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){my_width=document.documentElement.clientWidth;my_height=document.documentElement.clientHeight}else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){my_width=document.body.clientWidth;my_height=document.body.clientHeight}
2332element.style.position='absolute';element.style.zIndex=99;var scrollY=0;if(document.documentElement&&document.documentElement.scrollTop){scrollY=document.documentElement.scrollTop}else if(document.body&&document.body.scrollTop){scrollY=document.body.scrollTop}else if(window.pageYOffset){scrollY=window.pageYOffset}else if(window.scrollY){scrollY=window.scrollY}
2333var elementDimensions=Element.getDimensions(element);var setX=(my_width-elementDimensions.width)/2;var setY=(my_height-elementDimensions.height)/2+scrollY;setX=(setX<0)?0:setX;setY=(setY<0)?0:setY;element.style.left=setX+"px";element.style.top=setY+"px"};EyeCandies.getImageSize=function(img){if(img!=null&&typeof(img)=='object'){var restoreDisplay=!1;var restoreVisibility=!1;var originalPosX=img.style.left;var originalPosY=img.style.top;var originalPosition=img.style.position;if(img.style.visibility=='hidden'||img.style.display=='none'){img.style.position='absolute';img.style.left='-10000px';img.style.top='-10000px';if(img.style.visibility=='hidden'){img.style.visibility='visible';restoreVisibility=!0}
2334if(img.style.display=='none'){img.style.display='block';restoreDisplay=!0}
2335var imageWidth=img.offsetWidth;var imageHeight=img.offsetHeight;if(restoreVisibility){img.style.visibility='hidden'}
2336if(restoreDisplay){img.style.display='none'}
2337img.style.left=originalPosX;img.style.top=originalPosY;img.style.position=originalPosition;return[imageWidth,imageHeight]}else{var imageWidth=img.offsetWidth;var imageHeight=img.offsetHeight;return[imageWidth,imageHeight]}}
2338return!1};EyeCandies.TooltipManager=Class.create();EyeCandies.TooltipManager.prototype={initialize:function(classname,options){this.classname=classname;this.options=options;this.createTooltips()},createTooltips:function(){var elements=document.getElementsByClassName(this.classname);for(var i=0;i<elements.length;i++){new EyeCandies.Tooltip(elements[i],this.options)}}};EyeCandies.Tooltip=Class.create();EyeCandies.Tooltip.prototype={initialize:function(elt,options){this.options={delta_x:13,delta_y:13,cursor:'help',tooltip_class:!1,decorate_tooltip:!0};Object.extend(this.options,options||{});this.trigger=elt;this.tooltip=this.trigger.getElementsByClassName('tooltip')[0];if(!this.tooltip&&this.trigger.title!=''){this.tooltip=new Element('div',{className:'tooltip',style:'display: none;'}).update(this.trigger.title);this.trigger.title='';if(this.options.tooltip_class)this.tooltip.addClassName(this.options.tooltip_class);this.trigger.insert({after:this.tooltip})}
2339if(this.options.decorate_tooltip)this.decorateTooltip();this.decorateTrigger();this.hideTooltip();this.eventMouseOver=this.showTooltip.bindAsEventListener(this);this.eventMouseOut=this.hideTooltip.bindAsEventListener(this);this.registerEvents()},destroy:function(){Event.stopObserving(this.trigger,"mouseover",this.eventMouseOver);
2339Event.stopObserving(this.trigger,"mouseout",this.eventMouseOut)},registerEvents:function(){Event.observe(this.trigger,"mouseover",this.eventMouseOver);Event.observe(this.trigger,"mouseout",this.eventMouseOut)},decorateTrigger:function(){if(this.options.cursor){this.trigger.style.cursor=this.options.cursor}},decorateTooltip:function(){this.tooltip.style.border='1px solid #ccc';this.tooltip.style.position='fixed';this.tooltip.style.padding='2px';this.tooltip.style.backgroundColor='#ffffff';this.tooltip.style.zIndex='1000';this.tooltip.style.whiteSpace='normal'},hideTooltip:function(event){this.tooltip.hide();if(this.currentTimeout){window.clearTimeout(this.currentTimeout)}},showTooltip:function(event){var mouse_x=event.clientX;var mouse_y=event.clientY;var dimensions=this.tooltip.getDimensions();var element_width=dimensions.width;var element_height=dimensions.height;if((element_width+mouse_x)>=(EyeCandies.getWindowWidth()-this.options.delta_x)){mouse_x=mouse_x-element_width;mouse_x=mouse_x-this.options.delta_x}else mouse_x=mouse_x+this.options.delta_x;if((element_height+mouse_y)>=(EyeCandies.getWindowHeight()-this.options.delta_y)){mouse_y=mouse_y-element_height;mouse_y=mouse_y-this.options.delta_y}else mouse_y=mouse_y+this.options.delta_y;this.tooltip.setStyle({position:'fixed',top:mouse_y+"px",left:mouse_x+"px",zIndex:this.options.zindex});this.currentTimeout=Element.show.delay(1,this.tooltip)}};EyeCandies.AutoHider=Class.create();EyeCandies.AutoHider.prototype={initialize:function(containerClass,contentClass){this.containerClass=containerClass;this.contentClass=contentClass;this.autoHide()},autoHide:function(){if(this.containerClass&&this.contentClass){var containerClassSelector='.'+this.containerClass;var contentClassSelector='.'+this.contentClass;$$(containerClassSelector).each(function(elt){var contentArray=elt.select(contentClassSelector);var show=!1;if(contentArray.length>0){for(var index=0,len=contentArray.length;index<len;++index){var content=contentArray[index];var text=content.cleanWhitespace().innerHTML;if(!text.empty()&&text!="0"&&text!="0.00"&&text!="false"){show=!0;break}}}
2340if(show==!1)elt.hide()})}}};EyeCandies.getWindowHeight=function(){if(navigator.appVersion.indexOf('MSIE')>0)return document.body.clientHeight;else return window.innerHeight};EyeCandies.getWindowWidth=function(){if(navigator.appVersion.indexOf('MSIE')>0)return document.body.clientWidth;else return window.innerWidth};EyeCandies.getCookie=function(name){var start=document.cookie.indexOf(name+"=");var len=start+name.length+1;if((!start)&&(name!=document.cookie.substring(0,name.length)))return null;if(start==-1)return null;var end=document.cookie.indexOf(';',len);if(end==-1)end=document.cookie.length;return unescape(document.cookie.substring(len,end))};EyeCandies.setCookie=function(name,value,expires,path,domain,secure){var today=new Date();today.setTime(today.getTime());if(expires)expires=expires*1000*60*60*24;var expires_date=new Date(today.getTime()+(expires));document.cookie=name+'='+escape(value)+((expires)?';expires='+expires_date.toGMTString():'')+((path)?';path='+path:'')+((domain)?';domain='+domain:'')+((secure)?';secure':'')};EyeCandies.deleteCookie=function(name,path,domain){if(getCookie(name))document.cookie=name+'='+((path)?';path='+path:'')+((domain)?';domain='+domain:'')+';expires=Thu, 01-Jan-1970 00:00:01 GMT'};EyeCandies.ResizingTextAreaManager=Class.create();EyeCandies.ResizingTextAreaManager.prototype={initialize:function(classname){this.classname=classname;this.createResizingTextAreas()},createResizingTextAreas:function(){var elements=document.getElementsByClassName(this.classname);for(var i=0;i<elements.length;i++){new EyeCandies.ResizingTextArea(elements[i])}}};EyeCandies.ResizingTextArea=Class.create();EyeCandies.ResizingTextArea.prototype={defaultRows:1,initialize:function(field){this.defaultRows=Math.max(field.rows,1);this.resizeNeeded=this.resizeNeeded.bindAsEventListener(this);Event.observe(field,"click",this.resizeNeeded);Event.observe(field,"keyup",this.resizeNeeded)},resizeNeeded:function(event){var t=Event.element(event);var lines=t.value.split('\n');var newRows=lines.length;var oldRows=t.rows;for(var i=0;i<lines.length;i++){var line=lines[i];if(line.length>
2340=t.cols)newRows+=Math.floor(line.length/t.cols)}
2341if(newRows>t.rows)t.rows=newRows;if(newRows<t.rows)t.rows=Math.max(this.defaultRows,newRows)}};EyeCandies.Form.TabKeypressManager=Class.create({initialize:function(name){var elt=document.getElementsByName(name)[0];if(elt){Event.observe(elt,'keypress',function(evt){this.manageKeypressEvent(evt)}.bind(this))}},manageKeypressEvent:function(evt){var tab="\t";var t=evt.target;var ss=t.selectionStart;var se=t.selectionEnd;if(evt.keyCode==9){evt.preventDefault();if(ss!=se&&t.value.slice(ss,se).indexOf("\n")!=-1){var pre=t.value.slice(0,ss);var sel=t.value.slice(ss,se).replace(/\n/g,"\n"+tab);var post=t.value.slice(se,t.value.length);t.value=pre.concat(tab).concat(sel).concat(post);t.selectionStart=ss+tab.length;t.selectionEnd=se+tab.length}else{t.value=t.value.slice(0,ss).concat(tab).concat(t.value.slice(ss,t.value.length));if(ss==se){t.selectionStart=t.selectionEnd=ss+tab.length}else{t.selectionStart=ss+tab.length;t.selectionEnd=se+tab.length}}}else if(evt.keyCode==8&&t.value.slice(ss-4,ss)==tab){evt.preventDefault();t.value=t.value.slice(0,ss-4).concat(t.value.slice(ss,t.value.length));t.selectionStart=t.selectionEnd=ss-tab.length}else if(evt.keyCode==46&&t.value.slice(se,se+4)==tab){evt.preventDefault();t.value=t.value.slice(0,ss).concat(t.value.slice(ss+4,t.value.length));t.selectionStart=t.selectionEnd=ss}else if(evt.keyCode==37&&t.value.slice(ss-4,ss)==tab){evt.preventDefault();t.selectionStart=t.selectionEnd=ss-4}else if(evt.keyCode==39&&t.value.slice(ss,ss+4)==tab){evt.preventDefault();t.selectionStart=t.selectionEnd=ss+4}}});function checkAllByClass(c){var elements=$$('input.'+c);if(elements!=null){for(var i=0;i<elements.length;i++){var element=elements[i];element.checked=!0}}}
2342function uncheckAllByClass(c){var elements=$$('input.'+c);if(elements!=null){for(var i=0;i<elements.length;i++){var element=elements[i];element.checked=!1}}}
2343function checkToggleByClass(c){var elements=$$('input.'+c);if(elements!=null){for(var i=0;i<elements.length;i++){var element=elements[i];if(element.checked==!0){element.checked=!1}else{element.checked=!0}}}}
2344function getCheckedOption(ar){if(ar==null)return!1;ar=document.getElementsByName(ar);for(var i=0;i<ar.length;i++){if(ar[i].checked==!0){return[i,ar[i]]}}
2345return!1}
2346function findPosX(obj){var curleft=0;if(obj.offsetParent){while(obj.offsetParent){curleft+=obj.offsetLeft;obj=obj.offsetParent}}else if(obj.x)curleft+=obj.x;return curleft}
2347function findPosY(obj){var curtop=0;if(obj.offsetParent){while(obj.offsetParent){curtop+=obj.offsetTop;obj=obj.offsetParent}}else if(obj.y)curtop+=obj.y;return curtop}
2348function showElement(elementID,baseElementID,w,h){var baseElement=document.getElementById(baseElementID);var elt=document.getElementById(elementID);if(baseElement!=null&&elt!=null){var imageWidth=baseElement.offsetWidth;var imageHeight=baseElement.offsetHeight;elt.style.left=findPosX(baseElement)+(imageWidth/2)-(w/2)+'px';elt.style.top=findPosY(baseElement)+imageHeight/2-(h/2)+'px';new Effect.Appear(elt);new Draggable(elt,{revert:!1})}}
2349function showElementWithHandle(elementID,baseElementID,handleId,w,h){var baseElement=document.getElementById(baseElementID);var elt=document.getElementById(elementID);if(baseElement!=null&&elt!=null){var imageWidth=baseElement.offsetWidth;var imageHeight=baseElement.offsetHeight;elt.style.left=findPosX(baseElement)+(imageWidth/2)-(w/2)+'px';elt.style.top=findPosY(baseElement)+imageHeight/2-(h/2)+'px';new Effect.Appear(elt);new Draggable(elt,{revert:!1,handle:handleId})}}
2350function toggleVisibilitySlide(detectId,expandId,openId,closeId){var SlideDur=0.2;detectId=$(detectId);expandId=$(expandId);openId=$(openId);closeId=$(closeId);if(detectId.visible(detectId)){openId.style.display='block';closeId.style.display='none';new Effect.SlideUp(expandId,{duration:SlideDur})}else{openId.style.display='none';closeId.style.display='block';new Effect.SlideDown(expandId,{duration:SlideDur})}}
2351function toggleVisibilitySlideByClass(detectId,elementClass,openId,closeId){var SlideDur=0.2;detectId=$(detectId);openId=$(openId);closeId=$(closeId);var show=!0;if(detectId.style.display=='none'){openId.style.display='block';closeId.style.display='none';show=!0}else{openId.style.display='none';closeId.style.display='block';show=!1}
2352var elements=$$('.'+elementClass);if(elements!=null&&elements.length>0){for(var i=0;i<elements.length;i++){var expandId=elements[i];if(expandId!=null){if(show){new Effect.SlideUp(expandId,{duration:SlideDur})}else{new Effect.SlideDown(expandId,{duration:SlideDur})}}}}}
2353function fitSquare(img,newsize){if(newsize==0){newsize=64}
2354var dimensions=EyeCandies.getImageDimensions(img);var origWidth=dimensions[0];var origHeight=dimensions[1];var ratio=1;img.style.margin='0px;';if(origWidth>origHeight){ratio=origWidth/newsize;img.style.marginTop='auto';img.style.marginBottom='auto'}else{ratio=origHeight/newsize;img.style.marginLeft='auto';img.style.marginRight='auto'}
2355var newWidth=newsize;var newHeight=newsize;if(ratio>0){newWidth=Math.round(origWidth/ratio);newHeight=Math.round(origHeight/ratio)}
2356img.style.width=newWidth+'px';img.style.height=newHeight+'px'}
2357EyeCandies.getImageDimensions=function(img){var tmpImage=new Image();tmpImage.src=img.src;var newWidth=tmpImage.width;var newHeight=tmpImage.height;tmpImage=null;return new Array(newWidth,newHeight)};function printBestFit(id,sizeW,sizeH,unit){if(unit==null||unit==0)unit='mm';if(sizeW==null||sizeW==0)sizeW=180;if(sizeH==null||sizeH==0)sizeH=230;var elt=document.getElementById(id);var imgDim=EyeCandies.getImageDimensions(elt);var realWidth=imgDim[0];var realHeight=imgDim[1];if(realWidth>realHeight){var ratio=realWidth/sizeW}else{var ratio=realHeight/sizeH}
2358var newWidth=realWidth/ratio+unit;var newHeight=realHeight/ratio+unit;elt.style.width=newWidth;elt.style.height=newHeight;window.print()}
2359function scaleIt(v,max,className){var elements=document.getElementsByClassName(className);if(elements==null||elements.length==0){var element=document.getElementById(className);if(element!=null)var elements=[element];else{var elements=document.getElementsByName(className)}}
2360if(elements!=null){for(var i=0;i<elements.length;i++){var value=(v*max).toFixed();if(elements[i]!=null){if(elements[i].tagName=='IMG'){var dimensions=EyeCandies.getImageDimensions(elements[i]);elements[i].style.width=(dimensions[0]*value/100).toFixed()+'px';elements[i].style.height=(dimensions[1]*value/100).toFixed()+'px'}else{var dimensions=[elements[i].style.width,elements[i].style.height];elements[i].style.width=(dimensions[0]*value/100).toFixed()+'px';elements[i].style.height=(dimensions[1]*value/100).toFixed()+'px'}}}}}
2361function fluxImageTool(){}
2362fluxImageTool.sizeUp=function(id,increment){if(increment==null)increment=10;var elt=document.getElementById(id);if(elt!=null){var percentWidth=increment*elt.width/100;var percentHeight=increment*elt.height/100;elt.style.width=parseInt(elt.width+percentWidth)+'px';elt.style.height=parseInt(elt.height+percentHeight)+'px'}};fluxImageTool.sizeDown=function(id,increment){if(increment==null)increment=10;var elt=document.getElementById(id);if(elt!=null){var percentWidth=increment*elt.width/100;var percentHeight=increment*elt.height/100;elt.style.width=parseInt(elt.width-percentWidth)+'px';elt.style.height=parseInt(elt.height-percentHeight)+'px'}};fluxImageTool.sizeReset=function(id){var elt=document.getElementById(id);var dimensions=EyeCandies.getImageDimensions(elt);if(elt!=null){elt.style.width=parseInt(dimensions[0])+'px';elt.style.height=parseInt(dimensions[1])+'px'}};function FluxCheckboxTool(){}
2363FluxCheckboxTool.resolveName=function(name){var object=null;
2363if(typeof(name)=="string"){object=document.getElementsByName(name)}else if(typeof(name)=="object"&&name.length==null){object=document.getElementsByName(name.name)}else if(typeof(name)=="object"&&name.length>0){object=document.getElementsByName(name[0].name)}
2364return object};FluxCheckboxTool.countChecked=function(name){var checkboxArray=this.resolveName(name);if(checkboxArray!=null){var count=0;for(var i=0;i<checkboxArray.length;i++){if(checkboxArray[i].checked==!0){count++}}
2365return count}else return 0};FluxCheckboxTool.limitChecked=function(elementName,count){var checkboxArray=this.resolveName(elementName);if(checkboxArray!=null){if(this.countChecked(checkboxArray)<=count){return!0}else{return!1}}else return!0};function FluxWidget(){}
2366FluxWidget.Select=function(){};FluxWidget.Select.copySelectedOptionToTextField=function(selectFieldName,textFieldName,prefix,suffix){if(selectFieldName!=null&&textFieldName!=null){var selectField=document.getElementsByName(selectFieldName);var textField=document.getElementsByName(textFieldName);if(selectField[0]!=null&&textField[0]!=null){selectField=selectField[0];textField=textField[0];var index=selectField.selectedIndex;if(index>=0){var opt=selectField.options[index];if(opt!=null&&opt.value.length>0&&textField!=null){textField.value=textField.value+prefix+opt.value+suffix}}}}};var GfwResourceLoader=new(Class.create({initialize:function(){this.timer={};this.scripts=[]},load:function(url,callback){var classname=null;var properties=null;try
2367{if($A(this.scripts).indexOf(url)==-1){this.scripts.push(url);if(url.substr(url.length-3,3)==".js"){var script=document.createElement("script");script.setAttribute("type","text/javascript");script.setAttribute("async","true");if(callback&&script){if(script.readyState){script.onreadystatechange=function(){if(script.readyState=="loaded"||script.readyState=="complete"){script.onreadystatechange=null;callback()}}}else{script.onload=function(){callback()}}}
2368script.setAttribute("src",url);$$("head")[0].appendChild(script)}
2369if(url.substr(url.length-4,4)==".css"){var mylink=document.createElement("link");mylink.setAttribute("rel","stylesheet");mylink.setAttribute("type","text/css");mylink.setAttribute("href",url);$$("head")[0].appendChild(mylink)}}else{if(callback){callback()}}}catch(e){alert(e)}}}))();EyeCandies.installSimpleModalWindowClickObserver=function(elt,options){Element.observe(elt,'click',function(evt){evt.stop();var opt=options||{};opt.afterClose=function(){this.destroy()};var modal=EyeCandies.SimpleModalWindowFactory(this.href,opt);modal.open()})};EyeCandies.toggleDisplay=function(element,effectShow,effectHide,effectParams){var elt=$(element);if(elt){effectParams=effectParams||{};if(typeof(effectShow)!='function')effectShow=Effect.SlideDown;if(typeof(effectHide)!='function')effectHide=Effect.SlideUp;if(elt.visible())effectHide(elt,effectParams);else effectShow(elt,effectParams)}};EyeCandies.SimpleModalWindowFactory=function(container,options){return new Control.Modal(container,Object.extend({className:'gfw-widget-lightbox-window',position:'center_once',closeOnClick:!0,fade:0.2,overlayOpacity:0.5,iframeshim:!1,disableOutOfBoundsPositionHandler:!0,disableViewportCheck:!0},options||{}))};EyeCandies.ModalWindowFactory=function(container,options){var window_header=new Element('div',{className:'x-header'});var window_title=new Element('div',{className:'x-title'}).update(options.title);var window_close=new Element('div',{className:'x-close'});var window_contents=new Element('div',{className:'x-contents'});var indicator=new Element('img',{src:'/src/images/icons/32/indicator.gif',style:'display: none; position: absolute;'});var w=new Control.Modal(container,Object.extend({indicator:indicator,className:'gfw-widget-lightbox-window',iframeshim:!1,position:'center_once',closeOnClick:!0,fade:!0,iframe:!0,draggable:options.hasOwnProperty('draggable')?options.draggable:window_header,overlayOpacity:0.5,insertRemoteContentAt:window_contents,disableOutOfBoundsPositionHandler:!0,disableViewportCheck:!0,afterOpen:function(){indicator.style.left=($(window_contents).getDimensions().width/2-indicator.getDimensions().width/2)+'px';indicator.style.top=($(window_contents).getDimensions().height/2-indicator.getDimensions().height/2)+'px'}},options||{}));if(w.draggable)$(window_title).addClassName('x-draggable');w.container.insert(window_header);window_header.insert(window_title);window_header.insert(window_close);w.container.insert(window_contents);window_contents.insert(indicator);return w};var FileUploadManagerRepository=new(Class.create({initialize:function(){this.managerList=[]},addFileUploadManager:function(name,manager){this.managerList[name]=manager},getFileUploadManager:function(name){return this.managerList[name]}}))();EyeCandies.AbstractFileUploadManager=Class.create({initialize:function(fieldId,iframeUrl,profiledir,filedestination,parameters){if(this.previewSize=='undefined')this.previewSize=150;this.fieldId=fieldId;this.formField=$(this.fieldId);this.form=this.formField.up('form');if(this.form){Element.observe(this.form,'submit',this.preventFormSubmissionHandler.bind(this))}
2370FileUploadManagerRepository.addFileUploadManager(fieldId,this);this.iframeUrl=iframeUrl;if(iframeUrl.indexOf('?')!=-1)this.uploadScriptUrl=iframeUrl.substr(0,iframeUrl.indexOf('?'));else this.uploadScriptUrl=iframeUrl;this.container=$(this.fieldId+'-widget-container');this.currentFile=this.formField.getValue();this.profiledir=profiledir;this.filedestination=filedestination;this.lang='fr_FR';if(parameters&&parameters.lang)this.lang=parameters.lang;this.translator=new EyeCandies.Translator(this.lang);this.translator.addDictionary({"Supprimer":{"en_US":"Delete"}});this.translator.addDictionary({"Votre fichier est en cours de téléchargement, veuillez patientez un instant avant de valider le formulaire.":{"en_US":"Your file is still uploading, please wait a moment before submitting the form."}});this.preventFormSubmission(!1)},createDOM:function(){this.previewContainer=new Element('div',{className:'gfw-widget-fileupload-previewcontainer',style:'display: none'});this.previewImage=new Element('img',{id:this.fieldId+'-preview-small',className:'gfw-widget-fileupload-previewimage',border:0,width:this.previewSize,height:this.previewSize});this.identificationDiv=new Element('div',{id:this.fieldId+'-identification',className:'gfw-widget-fileupload-identification'});this.previewErrorMessageDiv=new Element('div',{id:this.fieldId+'-previewerrormessage',className:'gfw-widget-fileupload-previewerrormessage'});this.uploadErrorMessageDiv=new Element('div',{id:this.fieldId+'-uploaderrormessage',className:'gfw-widget-fileupload-uploaderrormessage'});
2370this.controlDiv=new Element('div',{id:this.fieldId+'-controls',className:'gfw-widget-fileupload-controls'});this.maxFileSizeMessageDiv=$(this.fieldId+'-maxfilesize-message');this.deleteButton=new Element('img',{id:this.fieldId+'-deleteBtn',className:'gfw-widget-fileupload-controlbutton',src:'/src/images/icons/32/editdelete.png',title:this.translator.gettext('Supprimer'),border:0});this.controlDiv.insert(this.deleteButton);this.previewContainer.style.width=this.previewSize+'px';this.previewContainer.style.height=this.previewSize+'px';this.uploadFrame=new Element('iframe',{id:this.fieldId+'-iframe',className:'gfw-widget-fileupload-iframe',width:250,height:32,frameborder:0,scrolling:'no',src:this.iframeUrl,style:'float: left',allowTransparency:'true'});this.uploadFrame.observe('load',function(){this.onIframeLoad()}.bindAsEventListener(this));this.waitImageContainer=new Element('div',{id:this.fieldId+'-waitimagecontainer',className:'gfw-widget-fileupload-waitimagecontainer',style:'display: none; float: left;'});this.waitImage=new Element('img',{id:this.fieldId+'-waitimage',className:'gfw-widget-fileupload-waitimage',src:'/src/images/icons/16/progress.gif',border:0,style:'margin-right: 20px;'});this.waitImageContainer.insert(this.waitImage);this.waitImageBig=new Element('img',{id:this.fieldId+'-waitimagebig',className:'gfw-widget-fileupload-waitimagebig',src:'/src/images/wait30trans.gif',border:0,style:'position: absolute; top:43px; left: 43px; display: none;'});this.waitImageBig.style.top=(this.previewSize-64)/2+'px';this.waitImageBig.style.left=(this.previewSize-64)/2+'px';this.previewContainer.insert(this.previewImage);this.previewContainer.insert(this.waitImageBig);this.container.insert(this.previewContainer);this.previewContainer.insert(this.identificationDiv);this.previewContainer.insert(this.previewErrorMessageDiv);this.previewContainer.insert(this.controlDiv);this.container.insert(this.waitImageContainer);this.container.insert(this.uploadFrame);this.container.insert(this.uploadErrorMessageDiv);this.deleteButton.observe('click',function(){this.deleteFileAction()}.bindAsEventListener(this));this.previewImage.observe('click',function(){this.downloadFileAction()}.bindAsEventListener(this));this.previewImage.style.cursor='pointer';this.previewImage.observe('load',function(){this.revealPreviewImage()}.bindAsEventListener(this));this.previewImage.observe('error',function(){this.revealPreviewImage()}.bindAsEventListener(this))},resetDOM:function(){this.previewErrorMessageDiv.hide();this.uploadErrorMessageDiv.hide();if(this.maxFileSizeMessageDiv)this.maxFileSizeMessageDiv.show();this.previewErrorMessageDiv.update('');this.uploadErrorMessageDiv.update('');this.identificationDiv.update('')},setFile:function(file){this.currentFile=file;this.formField.value=this.currentFile;this.updatePreview()},updatePreview:function(){this.previewImage.hide();this.showWaitImageBig();var density=10;if(this.info&&this.info.widthPx>0&&this.info.heightPx>0){density=300;if(this.info.widthPx*this.info.heightPx>500*500)density=72;if(this.info.widthPx*this.info.heightPx>1000*1000)density=36}
2371this.previewImage.src=this.getPreviewUrl(this.previewSize,density)},getPreviewUrl:function(size,density,pagenumber){var params={action:'preview',currentFile:this.currentFile,size:size};if(density>0)params.density=density;if(typeof(pagenumber)!='undefined'&&pagenumber>0)params.pagenumber=pagenumber;return this.iframeUrl+'&'+Object.toQueryString(params)},refresh:function(){this.onBeforeRefresh();this.updateField();this.repaint();this.preventFormSubmission(!1)},onBeforeRefresh:function(){},updateField:function(){this.resetDOM();if(this.info){if(this.info.identifystring)this.identificationDiv.update(this.info.identifystring);else this.identificationDiv.update('Fichier non identifiable');if(this.info.currentFile){if(this.maxFileSizeMessageDiv)this.maxFileSizeMessageDiv.hide();this.setFile(this.info.currentFile);if(this.info.error>0){this.previewErrorMessageDiv.show();this.previewErrorMessageDiv.update(this.info.errormessage)}
2372this.updateMetadata()}else{if(this.info.error>0){this.uploadErrorMessageDiv.update(this.info.errormessage);this.uploadErrorMessageDiv.show()}
2373this.updateMetadata();this.setFile('')}
2374if(this.formField.onchange!=null&&this.formField.onchange!='undefined')this.formField.onchange()}else{this.updateMetadata();this.setFile('')}
2375this.currentFile=this.formField.value},updateMetadata:function(){},repaint:function(){this.onBeforeRepaint();if(this.currentFile){this.showPreview();this.hideIframe()}else{this.showIframe();this.hidePreview()}},onBeforeRepaint:function(){},showPreview:function(){if(this.previewContainer.visible()==!1)new Effect.Grow(this.previewContainer,{duration:0.5,direction:'top-left',afterFinish:this.onShowPreview.bind(this)})},hidePreview:function(){if(this.previewContainer.visible()==!0){new Effect.Shrink(this.previewContainer,{duration:0.5,direction:'top-left',afterFinish:this.onHidePreview.bind(this)})}},onShowPreview:function(){},onHidePreview:function(){},revealPreviewImage:function(){if(this.currentFile!=''){this.hideWaitImageBig();new Effect.Appear(this.previewImage,{duration:0.5,queue:{position:'end',scope:this.fieldId}})}},hidePreviewImage:function(){new Effect.Fade(this.previewImage,{duration:0.5,queue:{position:'front',scope:this.fieldId}})},showIframe:function(){if(this.uploadFrame.visible()==!1){this.uploadFrame.show()}},showWaitImage:function(){this.preventFormSubmission(!0);new Effect.Grow(this.waitImageContainer,{duration:0.5,direction:'top-left'})},hideWaitImage:function(){this.preventFormSubmission(!1);new Effect.Shrink(this.waitImageContainer,{duration:0.5,direction:'top-left'})},showWaitImageBig:function(){this.preventFormSubmission(!0);new Effect.Appear(this.waitImageBig,{duration:0.5,queue:{position:'front',scope:this.fieldId}})},hideWaitImageBig:function(){this.preventFormSubmission(!1);new Effect.Fade(this.waitImageBig,{duration:0.5,queue:{position:'end',scope:this.fieldId}})},hideIframe:function(){if(this.uploadFrame.visible()==!0){this.uploadFrame.hide()}},deleteFile:function(response){this.info=response.responseJSON;this.formField.value='';this.refresh()},identifyFile:function(response){this.info=response.responseJSON;this.refresh()},deleteFileAction:function(){var parameters=this.iframeUrl.parseQuery();parameters.action='delete';parameters.currentFile=this.currentFile;var request=new Ajax.Request(this.uploadScriptUrl,{method:'get',parameters:parameters,onSuccess:function(response){this.deleteFile(response)}.bind(this)})},identifyFileAction:function(){var parameters=this.iframeUrl.parseQuery();parameters.action='identify';parameters.currentFile=this.currentFile;var request=new Ajax.Request(this.uploadScriptUrl,{method:'get',parameters:parameters,onSuccess:function(response){this.identifyFile(response)}.bind(this)})},downloadFileAction:function(){window.location.href=this.iframeUrl+'&action=download&currentFile='+this.currentFile},onIframeLoad:function(){var iframe=$(this.fieldId+'-iframe');if(iframe){this.hideWaitImage();var idoc=iframe.contentDocument||iframe.contentWindow.document;var iwin=iframe.contentWindow||iframe.contentDocument.defaultView;iwin.Element.extend(idoc);this.fileFieldElement=idoc.getElementById('filefield');this.uploadFormElement=idoc.getElementById('uploadform');iwin.Element.extend(this.uploadFormElement);this.infoFormElement=idoc.getElementById('infoform');iwin.Element.extend(this.infoFormElement);this.info={};if(this.infoFormElement!=null){var elements=this.infoFormElement.getElements();var info=elements[0].getValue();if(info!='')this.info=info.evalJSON()}
2376if(this.fileFieldElement){Event.observe(this.fileFieldElement,'change',this.onFileFieldChange.bind(this))}
2377this.refresh()}},onFileFieldChange:function(){if(this.uploadFormElement!=null){this.showWaitImage();this.uploadFormElement.submit()}},setValue:function(fileName){var iframeDoc=this.getIframeDocument();var parameters=iframeDoc.location.href.toQueryParams();parameters.currentFile=fileName;iframeDoc.location.search='?'+$H(parameters).toQueryString()},getIframeDocument:function(){var iframe=this.uploadFrame;if(iframe){var iframeDoc=(iframe.contentWindow||iframe.contentDocument);if(iframeDoc.document)iframeDoc=iframeDoc.document;return iframeDoc}else return!1},preventFormSubmissionHandler:function(evt){if(this.formSubmissionIsPrevented()){if
2377(typeof(evt.stopImmediatePropagation)=='function'){evt.preventDefault();evt.stopImmediatePropagation()}else{evt.stop()}
2378alert(this.translator.gettext("Votre fichier est en cours de traitement, veuillez patienter un instant avant de valider le formulaire."))}},formSubmissionIsPrevented:function(){return this.preventSubmit},preventFormSubmission:function(status){if(typeof(this.form)=='object'){this.preventSubmit=status;if(status){this.form.addClassName('x-prevent-submission');this.container.addClassName('x-prevent-submission')}else{this.form.removeClassName('x-prevent-submission');this.container.removeClassName('x-prevent-submission')}}}});EyeCandies.GenericFileUploadManager=Class.create(EyeCandies.AbstractFileUploadManager,{initialize:function($super,fieldId,iframeUrl,profiledir,filedestination,parameters){this.previewSize=64;$super(fieldId,iframeUrl,profiledir,filedestination,parameters);this.translator.addDictionary({"Supprimer":{"en_US":"Delete"}});if(this.container){this.createDOM();this.resetDOM()}}});EyeCandies.ImageFileUploadManager=Class.create(EyeCandies.AbstractFileUploadManager,{initialize:function($super,fieldId,iframeUrl,profiledir,filedestination,parameters){this.previewSize=150;GfwResourceLoader.load('/src/javascript/jsCropperUI/cropper.js');this.imageminimumwidth=parameters.imageminimumwidth;this.imageminimumheight=parameters.imageminimumheight;this.fileeditmode=parameters.fileeditmode;this.enabledControls=parameters.enabledControls;this.controls=new Hash();$super(fieldId,iframeUrl,profiledir,filedestination,parameters);if(this.container){this.createDOM();this.resetDOM()}},addControl:function(control){if(control&&this.enabledControls.indexOf(control.name)>=0){this.controls.set(control.name,control);this.controlDiv.insert(control.getElement())}},isBitmap:function(){if(this.info.type=="JPEG"||this.info.type=="PNG")return!0;else return!1},isPDF:function(){if(this.info.type=="PDF")return!0;else return!1},getPageCount:function(){if(this.isPDF()&&typeof(this.info.pdfinfo)=='object')return this.info.pdfinfo.numberOfPages;else return!1},createDOM:function(){this.previewContainer=new Element('div',{className:'gfw-widget-fileupload-previewcontainer',style:'display: none'});this.previewImage=new Element('img',{id:this.fieldId+'-preview-small',className:'gfw-widget-fileupload-previewimage',border:0,width:this.previewSize,height:this.previewSize});this.identificationDiv=new Element('div',{id:this.fieldId+'-identification',className:'gfw-widget-fileupload-identification'});this.previewErrorMessageDiv=new Element('div',{id:this.fieldId+'-previewerrormessage',className:'gfw-widget-fileupload-previewerrormessage'});this.uploadErrorMessageDiv=new Element('div',{id:this.fieldId+'-uploaderrormessage',className:'gfw-widget-fileupload-uploaderrormessage'});this.controlDiv=new Element('div',{id:this.fieldId+'-controls',className:'gfw-widget-fileupload-controls'});this.maxFileSizeMessageDiv=$(this.fieldId+'-maxfilesize-message');if(this.fileeditmode){this.addControl(new EyeCandies.ImageFileUploadManager.CropControl(this));this.addControl(new EyeCandies.ImageFileUploadManager.RotateRightControl(this));this.addControl(new EyeCandies.ImageFileUploadManager.RotateLeftControl(this));this.addControl(new EyeCandies.ImageFileUploadManager.SepiaToneControl(this));this.addControl(new EyeCandies.ImageFileUploadManager.GrayscaleControl(this));this.addControl(new EyeCandies.ImageFileUploadManager.ExtractPdfPagesControl(this))}
2379this.addControl(new EyeCandies.ImageFileUploadManager.DeleteControl(this));this.previewContainer.style.width=this.previewSize+'px';this.previewContainer.style.height=this.previewSize+'px';this.uploadFrame=new Element('iframe',{id:this.fieldId+'-iframe',className:'gfw-widget-fileupload-iframe',width:250,height:32,frameborder:0,scrolling:'no',src:this.iframeUrl,style:'float: left',allowTransparency:'true'});this.uploadFrame.observe('load',function(){this.onIframeLoad()}.bindAsEventListener(this));this.waitImageContainer=new Element('div',{id:this.fieldId+'-waitimagecontainer',className:'gfw-widget-fileupload-waitimagecontainer',style:'display: none; float: left;'});this.waitImage=new Element('img',{id:this.fieldId+'-waitimage',className:'gfw-widget-fileupload-waitimage',src:'/src/images/icons/16/progress.gif',border:0,style:'margin-right: 20px;'});this.waitImageContainer.insert(this.waitImage);this.waitImageBig=new Element('img',{id:this.fieldId+'-waitimagebig',className:'gfw-widget-fileupload-waitimagebig',src:'/src/images/wait30trans.gif',border:0,style:'position: absolute; display: none;'});this.waitImageBig.style.top=(this.previewSize-64)/2+'px';this.waitImageBig.style.left=(this.previewSize-64)/2+'px';this.previewContainer.insert(this.previewImage);this.previewContainer.insert(this.waitImageBig);this.container.insert(this.previewContainer);this.previewContainer.insert(this.identificationDiv);this.previewContainer.insert(this.previewErrorMessageDiv);this.previewContainer.insert(this.controlDiv);this.container.insert(this.waitImageContainer);this.container.insert(this.uploadFrame);this.container.insert(this.uploadErrorMessageDiv);this.hideControls();this.previewImage.observe('load',function(){this.revealPreviewImage()}.bindAsEventListener(this));this.previewImage.observe('error',function(){this.revealPreviewImage()}.bindAsEventListener(this))},onShowPreview:function(){this.controls.each(function(pair){var control=pair.value;control.onShowPreview()},this)},onHidePreview:function(){this.controls.each(function(pair){var control=pair.value;control.onHidePreview()},this)},hideControls:function(){this.controls.each(function(pair){var controlName=pair.key;var control=pair.value;if(controlName!="deleteButton")control.element.hide()},this);this.previewImage.style.cursor='auto';this.previewImage.stopObserving('click')},displayEnabledControls:function(){this.controls.each(function(pair){var control=pair.value;if(control.isEnabled())control.element.show();else control.element.hide()},this);this.previewImage.style.cursor='pointer';this.previewImage.observe('click',function(){this.downloadFileAction()}.bindAsEventListener(this))},onBeforeRefresh:function(){if(this.info){if(this.info.error==!1&&this.info.currentFile){this.displayEnabledControls()}else if(this.info.error>0&&this.info.error<200){this.hideControls()}else{this.displayEnabledControls()}}},updateMetadata:function(){if(this.info&&this.info.currentFile){this.formField.setAttribute('data-fileinfo-width',this.info.width);this.formField.setAttribute('data-fileinfo-height',this.info.height);this.formField.setAttribute('data-fileinfo-aspectratio',this.info.aspectratio);if(this.maxFileSizeMessageDiv)this.maxFileSizeMessageDiv.hide()}else{this.formField.removeAttribute('data-fileinfo-width');this.formField.removeAttribute('data-fileinfo-height');this.formField.removeAttribute('data-fileinfo-aspectratio');if(this.maxFileSizeMessageDiv)this.maxFileSizeMessageDiv.show()}},onBeforeRepaint:function(){if(this.currentFile)this._fitSquarePreview()},_fitSquarePreview:function(){if(this.info){var ratio=1;if(this.info.heightPx==null||this.info.widthPx==null||this.info.heightPx==0||this.info.widthPx==0){origHeight=64;origWidth=64}else{var origHeight=parseInt(this.info.heightPx);var origWidth=parseInt(this.info.widthPx)}
2380if(origWidth>origHeight)ratio=origWidth/this.previewSize;else ratio=origHeight/this.previewSize;var newWidth=this.previewSize;var newHeight=this.previewSize;if(ratio>0){if((origWidth>this.previewSize||origHeight>this.previewSize)){newWidth=Math.round(origWidth/ratio);newHeight=Math.round(origHeight/ratio)}else{newWidth=origWidth;newHeight=origHeight}}
2381this.previewImage.style.width=newWidth+'px';this.previewImage.style.height=newHeight+'px';this.previewImage.width=newWidth;this.previewImage.height=newHeight;this.previewImage.style.left=Math.round((this.previewSize-newWidth)/2)+'px';this.previewImage.style.top=Math.round((this.previewSize-newHeight)/2)+'px'}},_finishTransform:function(response){this.info=response.responseJSON;this.refresh()}});EyeCandies.ImageFileUploadManager.Control=Class.create({initialize:function(uploadManager){this.setUploadManager(uploadManager);this.translator=new EyeCandies.Translator(this.uploadManager.lang);this.name='abstractControl';this.className='gfw-widget-fileupload-controlbutton';this.imageSrc='/src/images/icons/svg/btn-empty.svg';this.title='Bouton abstrait';this.element=null;this.callback=this.action},isEnabled:function(){return!1},onShowPreview:function(){},onHidePreview:function(){},setUploadManager:function(uploadManager){this.uploadManager=uploadManager},getElement:function(){if(this.element==null){this.element=new Element('img',{id:this.uploadManager.fieldId+'-'+this.name,className:this.className,src:this.imageSrc,title:this.title,border:0,width:'24px',height:'24px'});if(this.action)Element.observe(this.element,'click',function(){this.action()}.bind(this))}
2382return this.element},action:function(){alert("Bouton abstrait. Ne pas instancier.")}});EyeCandies.ImageFileUploadManager.DeleteControl=Class.create(EyeCandies.ImageFileUploadManager.Control,{initialize:function($super,uploadManager){$super(uploadManager);this.translator.addDictionary({"Supprimer":{"en_US":"Delete"}});this.title=this.translator.gettext("Supprimer");this.name='deleteButton';this.imageSrc='/src/images/icons/svg/btn-cancel.svg'},isEnabled:function(){return!0},action:function(){this.uploadManager.deleteFileAction()}});EyeCandies.ImageFileUploadManager.CropControl=Class.create(EyeCandies.ImageFileUploadManager.Control,{initialize:function($super,uploadManager){$super(uploadManager);this.translator.addDictionary({"Recadrer":{"en_US":"Crop"}});this.title=this.translator.gettext("Recadrer");this.name='cropButton';this.imageSrc='/src/images/icons/svg/btn-crop.svg'},isEnabled:function(){return!0},action:function(){if(this.uploadManager!=null&&this.uploadManager.formField.getValue()!=""){var cropper=new EyeCandies.Cropper({fileUploadManager:this.uploadManager,fieldId:this.uploadManager.fieldId,image:this.uploadManager.getPreviewUrl(500,300),ratioDimX:this.uploadManager.imageminimumwidth,ratioDimY:this.uploadManager.imageminimumheight,lang:this.uploadManager.lang,modalPosition:'center_once',onValidate:function(imageCrop){var width=imageCrop.x2-imageCrop.x1;var height=imageCrop.y2-imageCrop.y1;if(width>0&&height>0&&imageCrop.x1>=0&&imageCrop.y1>=0){this.showWaitImageBig();this.hidePreviewImage();var parameters=this.iframeUrl.parseQuery();parameters.action='transform';parameters.func='crop';parameters.currentFile=this.currentFile;parameters.cropWidth=width;parameters.cropHeight=height;parameters.cropLeft=imageCrop.x1;parameters.cropTop=imageCrop.y1;new Ajax.Request(this.uploadScriptUrl,{method:'get',parameters:parameters,onSuccess:function(response){this._finishTransform(response)}.bind(this)})}}.bind(this.uploadManager)});if(window.self!=window.top){cropper.modalPosition=[function(){return(document.viewport.getWidth()-Element.getWidth(cropper.containerDiv))/2}.bind(this.uploadManager),function(){return this.controlDiv.cumulativeOffset().toArray()[1]-Element.getHeight(cropper.containerDiv)/2}.bind(this.uploadManager)]}
2383cropper.launch()}}});EyeCandies.ImageFileUploadManager.RotateRightControl=Class.create(EyeCandies.ImageFileUploadManager.Control,{initialize:function($super,uploadManager){$super(uploadManager);this.translator.addDictionary({"Rotation":{"en_US":"Rotate"}});this.title=this.translator.gettext("Rotation");this.name='rotateRightButton';this.imageSrc='/src/images/icons/svg/btn-rotateright.svg'},isEnabled:function(){return this.uploadManager.isBitmap()},action:function(){if(this.uploadManager){this.uploadManager.showWaitImageBig();this.uploadManager.hidePreviewImage();var parameters=this.uploadManager.iframeUrl.parseQuery();parameters.action='transform';parameters.func='rotate';parameters.currentFile=this.uploadManager.currentFile;parameters.angle=90;new Ajax.Request(this.uploadManager.uploadScriptUrl,{method:'get',parameters:parameters,onSuccess:function(response){this._finishTransform(response)}.bind(this.uploadManager)})}}});EyeCandies.ImageFileUploadManager.RotateLeftControl=Class.create(EyeCandies.ImageFileUploadManager.Control,{initialize:function($super,uploadManager){$super(uploadManager);this.translator.addDictionary({"Rotation":{"en_US":"Rotate"}});this.title=this.translator.gettext("Rotation");this.name='rotateLeftButton';this.imageSrc='/src/images/icons/svg/btn-rotateleft.svg'},isEnabled:function(){return this.uploadManager.isBitmap()},action:function(){if(this.uploadManager){this.uploadManager.showWaitImageBig();this.uploadManager.hidePreviewImage();var parameters=this.uploadManager.iframeUrl.parseQuery();parameters.action='transform';parameters.func='rotate';parameters.currentFile=this.uploadManager.currentFile;parameters.angle=-90;new Ajax.Request(this.uploadManager.uploadScriptUrl,{method:'get',parameters:parameters,onSuccess:function(response){this._finishTransform(response)}.bind(this.uploadManager)})}}});EyeCandies.ImageFileUploadManager.SepiaToneControl=Class.create(EyeCandies.ImageFileUploadManager.Control,{initialize:function($super,uploadManager){$super(uploadManager);this.translator.addDictionary({"Sepia":{"en_US":"Sepia"}});this.title=this.translator.gettext("Sepia");this.name='sepiaToneButton';this.imageSrc='/src/images/icons/svg/btn-sepia.svg'},isEnabled:function(){return this.uploadManager.isBitmap()},action:function(){if(this.uploadManager){this.uploadManager.showWaitImageBig();this.uploadManager.hidePreviewImage();var parameters=this.uploadManager.iframeUrl.parseQuery();parameters.action='transform';parameters.func='sepiaTone';parameters.currentFile=this.uploadManager.currentFile;parameters.threshold=80;new Ajax.Request(this.uploadManager.uploadScriptUrl,{method:'get',parameters:parameters,onSuccess:function(response){this._finishTransform(response)}.bind(this.uploadManager)})}}});EyeCandies.ImageFileUploadManager.GrayscaleControl=Class.create(EyeCandies.ImageFileUploadManager.Control,{initialize:function($super,uploadManager){$super(uploadManager);this.translator.addDictionary({"Niveaux de gris":{"en_US":"Gray"}});this.title=this.translator.gettext("Niveaux de gris");this.name='grayscaleButton';this.imageSrc='/src/images/icons/svg/btn-grayscale.svg'},isEnabled:function(){return this.uploadManager.isBitmap()},action:function(){if(this.uploadManager){this.uploadManager.showWaitImageBig();this.uploadManager.hidePreviewImage();var parameters=this.uploadManager.iframeUrl.parseQuery();parameters.action='transform';parameters.func='grayscale';parameters.currentFile=this.uploadManager.currentFile;new Ajax.Request(this.uploadManager.uploadScriptUrl,{method:'get',parameters:parameters,onSuccess:function(response){this._finishTransform(response)}.bind(this.uploadManager)})}}});EyeCandies.ImageFileUploadManager.ExtractPdfPagesControl=Class.create(EyeCandies.ImageFileUploadManager.Control,{initialize:function($super,uploadManager){$super(uploadManager);this.translator.addDictionary({"Choisir une page dans le fichier PDF":{"en_US":"Select one page in the PDF file"}});this.title=this.translator.gettext("Choisir une page dans le fichier PDF");this.name='extractPdfPagesButton';this.imageSrc='/src/images/icons/svg/btn-pages.svg';this.pageSelector=null;this.pageSelectorElement=null;this.pageCount=0},isEnabled:function(){return this.uploadManager.isPDF()&&this.uploadManager.getPageCount()>1},onShowPreview:function(){if(this.isEnabled()&&this.buttonIsVisible())this.instantiateAndShowPageSelector()},buttonIsVisible:function(){if(this.element){if(this.element.offsetWidth===0||this.element.offsetHeight===0)return!1;else return!0}else return!1},onHidePreview:function(){this.removePageSelector()},action:function(){if(this.pageSelectorElement==null)this.instantiateAndShowPageSelector();else this.removePageSelector()},instantiateAndShowPageSelector:function(){this.pageCount=this.uploadManager.getPageCount();if(this.pageSelector!=null)this.removePageSelector();this.pageSelector=new EyeCandies.PdfPageSelector(this.uploadManager,this,this.pageCount,this.onPageSelection.bind(this),this.onCancel.bind(this));this.pageSelectorElement=this.pageSelector.buildPageSelector();this.getElement().insert({after:this.pageSelectorElement});this.pageSelector.showPageSelector()},removePageSelector:function(){if(typeof(this.pageSelectorElement)=='object'&&document.body.contains(this.pageSelectorElement))Element.remove(this.pageSelectorElement);this.pageSelector=null;this.pageSelectorElement=null},onPageSelection:function(pageSelected){if(pageSelected>=1&&pageSelected<=this.pageCount){this.repage(pageSelected);this.removePageSelector()}},onCancel:function(){this.removePageSelector()},repage:function(page){this.uploadManager.showWaitImageBig();this.uploadManager.hidePreviewImage();var parameters=this.uploadManager.iframeUrl.parseQuery();parameters.action='transform';parameters.func='extractPdfPages';parameters.firstPage=page;parameters.lastPage=page;parameters.currentFile=this.uploadManager.currentFile;new Ajax.Request(this.uploadManager.uploadScriptUrl,{method:'get',parameters:parameters,onSuccess:function(response){this._finishTransform(response)}.bind(this.uploadManager)})}});EyeCandies.PdfPageSelector=Class.create({initialize:function(uploadManager,control,page
2383Count,onPageSelection,onCancel){this.uploadManager=uploadManager;this.translator=new EyeCandies.Translator(this.uploadManager.lang);this.translator.addDictionary({"Sélectionner":{"en_US":"Select"}});this.translator.addDictionary({"Annuler":{"en_US":"Cancel"}});this.translator.addDictionary({"Sélectionnez la page que vous souhaitez utiliser.":{"en_US":"Select the page you wish to use."}});this.translator.addDictionary({"pages":{"en_US":"pages"}});this.control=control;this.onPageSelection=onPageSelection;this.onCancel=onCancel;this.previewSize=300;this.previewDensity=72;this.previousValue=this.startValue=1;this.pageCount=pageCount},buildPageSelector:function(){this.pageSelectorElt=new Element('div',{className:'gfw-pdfpageselector'});this.pageSelectorElt.setStyle({height:this.previewSize+175+'px',width:this.previewSize+135+'px'});var headerElt=new Element('div',{className:'x-header',draggable:"true"}).insert(this.translator.gettext("Sélectionnez la page que vous souhaitez utiliser."));var contentElt=new Element('div',{className:'x-content'});var previewBlockElt=new Element('div',{className:'x-preview-block'});var numberBlockElt=new Element('div',{className:'x-number-block'});var controlBlockElt=new Element('div',{className:'x-control-block'});this.prevBtnElt=new Element('div',{className:'x-prev x-arrow'});this.prevBtnElt.setStyle({height:this.previewSize+'px'});this.nextBtnElt=new Element('div',{className:'x-next x-arrow'});this.nextBtnElt.setStyle({height:this.previewSize+'px'});this.previewContainer=new Element('div',{className:'x-preview-container'});this.previewContainer.setStyle({height:this.previewSize+'px',width:this.previewSize+'px'});this.textElt=new Element('input',{type:"number",className:"x-pagenumber",min:1,max:this.pageCount,step:1,value:this.startValue});this.okBtnElt=new Element('button',{className:'gfw-button x-skin'}).insert(this.translator.gettext('Sélectionner'));this.cancelBtnElt=new Element('button',{className:'gfw-button x-skin gray'}).insert(this.translator.gettext('Annuler'));this.notch=new Element('div',{className:'notch'});this.notchBackground=new Element('div',{className:'notch notch-bg'});this.pageSelectorElt.insert(headerElt);this.pageSelectorElt.insert(contentElt);contentElt.insert(previewBlockElt);contentElt.insert(numberBlockElt);contentElt.insert(controlBlockElt);previewBlockElt.insert(this.prevBtnElt);previewBlockElt.insert(this.previewContainer);previewBlockElt.insert(this.nextBtnElt);numberBlockElt.insert(this.textElt);numberBlockElt.insert(' / '+this.pageCount+" "+this.translator.gettext("pages"));controlBlockElt.insert(this.okBtnElt);controlBlockElt.insert(this.cancelBtnElt);contentElt.insert(this.notchBackground);contentElt.insert(this.notch);new Draggable(this.pageSelectorElt,{starteffect:null,endeffect:null,handle:headerElt,scroll:window});Element.observe(this.okBtnElt,'click',function(evt){evt.stop();if(this.textElt.value>0){this.onPageSelection(this.textElt.value)}this.pageSelectorElt.hide()}.bind(this));Element.observe(this.cancelBtnElt,'click',function(evt){evt.stop();this.onCancel(this.textElt.value);this.pageSelectorElt.hide()}.bind(this));Element.observe(this.textElt,'keydown',function(evt){if(evt.keyCode==13){evt.stop()}}.bind(this));Element.observe(this.textElt,'keypress',function(evt){if(evt.keyCode==13){evt.stop()}}.bind(this));var debouncedUpdatePreviewShort=EyeCandies.debounce(function(pageOffset){this.checkNumber();this.updatePreview(pageOffset)}.bind(this),500,!1);var debouncedUpdatePreviewLong=EyeCandies.debounce(function(pageOffset){this.checkNumber();this.updatePreview(pageOffset)}.bind(this),1500,!1);Element.observe(this.textElt,'keyup',function(evt){evt.stop();debouncedUpdatePreviewLong(this.textElt.value-this.previousValue)}.bind(this));Element.observe(this.textElt,'change',function(evt){evt.stop();debouncedUpdatePreviewShort(this.textElt.value-this.previousValue)}.bind(this));Element.observe(this.prevBtnElt,'click',function(evt){evt.stop();this.step(-1);debouncedUpdatePreviewShort(-1)}.bind(this));Element.observe(this.nextBtnElt,'click',function(evt){evt.stop();this.step(1);debouncedUpdatePreviewShort(1)}.bind(this));this.pageSelectorElt.hide();return this.pageSelectorElt},step:function(s){var currentValue=Number(this.textElt.value);if(s==1)this.textElt.value=currentValue+1;else if(s==-1)this.textElt.value=currentValue-1},checkNumber:function(){if(this.textElt.value<=0)this.textElt.value=1;if(this.textElt.value>this.pageCount)this.textElt.value=this.pageCount},updatePreview:function(way){this.previousValue=this.textElt.value;var transitionOffset=this.previewSize;var transitionPhase1='center';var transitionPhase2='center';if(way==0){transitionPhase1="center";transitionPhase2="center"}else if(way>0){transitionPhase1=-transitionOffset+'px';transitionPhase2=transitionOffset+'px'}else if(way<0){transitionPhase1=transitionOffset+'px';transitionPhase2=-transitionOffset+'px'}
2384var hidePrevious=function(){this.previewContainer.setStyle({transition:'background-position 0.2s ease-in'});this.previewContainer.setStyle({backgroundPosition:transitionPhase1+' center'})}.bind(this);var showCurrent=function(imageUrl){var img=new Image();img.onload=function(){this.previewContainer.setStyle({backgroundImage:'url('+imageUrl+')',backgroundRepeat:'no-repeat',backgroundPosition:transitionPhase2+' center',transition:'none'});(function(){this.previewContainer.setStyle({backgroundPosition:'center center',transition:'background-position 0.2s ease-out'})}.bind(this)).delay(0.05)}.bind(this);img.src=imageUrl}.bind(this);this.cacheAdjascent(this.textElt.value);hidePrevious();showCurrent.delay(0.2,this.uploadManager.getPreviewUrl(this.previewSize,this.previewDensity,this.textElt.value-1));this.updateArrows()},updateArrows:function(){if(this.textElt.value<=1)this.prevBtnElt.setStyle({visibility:'hidden'});else this.prevBtnElt.setStyle({visibility:'visible'});if(this.textElt.value>=this.pageCount)this.nextBtnElt.setStyle({visibility:'hidden'});else this.nextBtnElt.setStyle({visibility:'visible'})}
2384,cacheAdjascent:function(currentPage){currentPage=parseInt(currentPage);if(currentPage<this.pageCount){var imageUrlNext=this.uploadManager.getPreviewUrl(this.previewSize,this.previewDensity,currentPage+1-1);var imgNext=new Image();imgNext.src=imageUrlNext}
2385if(currentPage>1){var imageUrlPrev=this.uploadManager.getPreviewUrl(this.previewSize,this.previewDensity,currentPage-1-1);var imgPrev=new Image();imgPrev.src=imageUrlPrev}},showPageSelector:function(){var buttonElement=this.control.element;if(typeof(buttonElement)=='object'){var outOfBounds=!1;this.pageSelectorElt.setStyle({position:'absolute'});this.pageSelectorElt.show();var offsetLeft=-this.pageSelectorElt.getWidth()/2+buttonElement.getWidth()/2;var offsetTop=-this.pageSelectorElt.getHeight()-10;var buttonTop=buttonElement.cumulativeOffset().top;if(buttonTop+offsetTop<0){offsetTop=-buttonTop+10;outOfBounds=!0}
2386Element.clonePosition(this.pageSelectorElt,buttonElement,{setWidth:!1,setHeight:!1,offsetTop:offsetTop,offsetLeft:offsetLeft});if(!outOfBounds){this.notch.setStyle({left:this.pageSelectorElt.getWidth()/2-10-1+'px'});this.notchBackground.setStyle({left:this.pageSelectorElt.getWidth()/2-10-1+'px'})}else{this.notch.setStyle({display:'none'});this.notchBackground.setStyle({display:'none'})}
2387this.updatePreview(0)}}});EyeCandies.Cropper=Class.create({initialize:function(parameters){this.cropper=null;this.suffix='_cropper';this.imageCrop={};this.maxViewportSize=500;this.minViewportSize=300;this.lang='fr_FR';this.loadParameters(parameters);this.translator=new EyeCandies.Translator(this.lang,{'Appliquer':{'en_US':'Apply'},'Annuler':{'en_US':'Cancel'},'Définissez votre zone de recadrage en cliquant sur l\'image.':{'en_US':'Define your crop area by clicking on the image.'},'Recadrage d\'image':{'en_US':'Image crop'}})},loadParameters:function(parameters){this.fileUploadManager=parameters.fileUploadManager;this.fieldId=parameters.fieldId;this.imageUrl=parameters.image;this.imageSize={width:parseInt(this.fileUploadManager.info.widthPx),height:parseInt(this.fileUploadManager.info.heightPx)};this.ratioDimX=parameters.ratioDimX;this.ratioDimY=parameters.ratioDimY;this.minWidth=0;this.minHeight=0;this.onValidate=parameters.onValidate;this.onCancel=parameters.onCancel;this.modalPosition=parameters.modalPosition||'center_once';if(parameters&&parameters.lang)this.lang=parameters.lang;if(parameters.onloadCoords!=null){this.onloadCoords=this.toCropperCoords(parameters.onloadCoords)}else{this.onloadCoords=null}
2388this.containerId=this.fieldId+this.suffix;this.imageId=this.fieldId+this.suffix+'_image'},computeViewportSize:function(){this.viewportWidth=this.scaledImageWidth;this.viewportHeight=this.scaledImageHeight;if(this.viewportWidth<this.minViewportSize)this.viewportWidth=this.minViewportSize;if(this.viewportHeight<this.minViewportSize)this.viewportHeight=this.minViewportSize;this.windowWidth=this.viewportWidth+10;this.windowHeight=this.viewportHeight+130},computeFixedImageSize:function(){this.scale=1;if(this.imageSize.width>this.maxViewportSize||this.imageSize.height>this.maxViewportSize){if(this.imageSize.width>this.imageSize.height)this.scale=this.imageSize.width/this.maxViewportSize;else this.scale=this.imageSize.height/this.maxViewportSize}
2389this.scaledImageWidth=Math.round(this.imageSize.width/this.scale);this.scaledImageHeight=Math.round(this.imageSize.height/this.scale)},showWaitImage:function(){this.imageWait.style.top=parseInt(this.containerDiv.style.height)/2-64/2+'px';this.imageWait.style.left=parseInt(this.containerDiv.style.width)/2-64/2+'px';new Effect.Appear(this.imageWait,{duration:0.5})},showImage:function(){new Effect.Fade(this.imageWait,{duration:0.5});new Effect.Appear(this.imageImg,{duration:0.5,afterFinish:function(){this.createCropper()}.bindAsEventListener(this)})},launch:function(){this.computeFixedImageSize();this.computeViewportSize();this.headerDiv=new Element('div',{className:'gfw-widget-cropper-header'});this.imageDiv=new Element('div',{className:'gfw-widget-cropper-imagecontainer'});this.imageImg=new Element('img',{className:'gfw-widget-cropper-image',id:this.imageId,title:'',style:'display: none;'});this.imageWait=new Element('img',{src:'/src/images/wait30trans.gif',style:'display: none; position: absolute;'});this.controlDiv=new Element('div',{className:'gfw-widget-cropper-controlpanel'});this.applyButton=new Element('input',{className:'gfw-widget-cropper-button gfw-button x-skin',id:this.containerId+'_apply',type:'button',value:this.translator.gettext('Appliquer')});this.cancelButton=new Element('input',{className:'gfw-widget-cropper-button gfw-button x-skin gray',id:this.containerId+'_cancel',type:'button',value:this.translator.gettext('Annuler')});this.containerDiv=new Element('div',{className:'gfw-widget-cropper-window',id:this.containerId,style:'position: relative;'});this.imageDiv.insert(this.imageImg);this.controlDiv.insert(this.applyButton);this.controlDiv.insert(this.cancelButton);this.containerDiv.insert(this.headerDiv);this.containerDiv.insert(new Element('div',{style:'padding: 5px;'}).insert(this.translator.gettext('Définissez votre zone de recadrage en cliquant sur l\'image.')));this.containerDiv.insert(this.imageDiv);this.containerDiv.insert(this.controlDiv);this.headerDiv.insert(this.translator.gettext('Recadrage d\'image'));this.containerDiv.style.width=this.windowWidth+'px';this.containerDiv.style.height=this.windowHeight+'px';this.imageDiv.style.width=this.viewportWidth+'px';
2389this.imageDiv.style.height=this.viewportHeight+'px';this.imageImg.style.width=this.scaledImageWidth+'px';this.imageImg.style.height=this.scaledImageHeight+'px';this.imageDiv.insert(this.imageWait);$$('body')[0].insert(this.containerDiv);this.applyButton.observe('click',function(){this.save();this.modal.close()}.bind(this));this.cancelButton.observe('click',function(){this.clear();this.modal.close()}.bind(this));this.showWaitImage();this.imageImg.observe('load',function(){this.showImage()}.bindAsEventListener(this));this.imageImg.src=this.imageUrl;this.modal=new Control.Modal(this.containerDiv,{overlayOpacity:0.5,opacity:0.8,position:this.modalPosition||'center_once',width:this.windowWidth,height:this.windowHeight,disableOutOfBoundsPositionHandler:!0,disableViewportCheck:!0,draggable:this.headerDiv,fade:!0,fadeDuration:0.5,closeOnClick:!1,afterOpen:function(){}.bind(this),afterClose:function(){this.destroyCropper()}.bind(this)});if($('control_overlay'))$('control_overlay').style.backgroundColor='#666';this.modal.open()},onEndCrop:function(coords){this.imageCrop=coords},createCropper:function(){var options={minWidth:this.minWidth,minHeight:this.minHeight,ratioDim:{x:this.ratioDimX,y:this.ratioDimY},displayOnInit:!1,onloadCoords:this.onloadCoords,onEndCrop:function(coords,dimensions){return this.onEndCrop(coords)}.bind(this)};this.cropper=new Cropper.Img(this.imageId,options)},save:function(){if(Object.isFunction(this.onValidate)){this.onValidate(this.toRealCoords())}},clear:function(){this.imageCrop=null;if(Object.isFunction(this.onCancel))this.onCancel(this.imageCrop)},toCropperCoords:function(realCoords){var coords={x1:0,y1:0,x2:this.scaledImageWidth,y2:this.scaledImageHeight};if(realCoords!=null){coords.x1=Math.floor(realCoords.x1/this.scale);coords.y1=Math.floor(realCoords.y1/this.scale);coords.x2=Math.floor(realCoords.x2/this.scale);coords.y2=Math.floor(realCoords.y2/this.scale)}
2390return coords},toRealCoords:function(){var coords={};coords.x1=Math.floor(this.scale*this.imageCrop.x1);coords.y1=Math.floor(this.scale*this.imageCrop.y1);coords.x2=Math.floor(this.scale*this.imageCrop.x2);coords.y2=Math.floor(this.scale*this.imageCrop.y2);return coords},destroyCropper:function(){this.containerDiv.remove();this.cropper=null}});if(typeof(Object.Event)=='object')Object.Event.extend(EyeCandies.Cropper);EyeCandies.ImageBrowser=Class.create({initialize:function(fieldName,options){this.allowDownload=!1;this.fieldName=fieldName;this.container=$(this.fieldName+'-widget-container');this.field=document.getElementsByName(this.fieldName)[0];this.field=$(this.field);this.options=options;if(this.options){this.url=this.options.url;this.thumbnailUrl=this.options.thumbnailUrl;if(options.allowDownload)this.allowDownload=!0}
2391this.ibWindow=null;this.translator=new EyeCandies.Translator(this.options.lang,{'Acc&eacute;der &agrave; la banque d\'image':{'en_US':'Access the image bank'},'Supprimer l\'image':{'en_US':'Delete the image'},'Choisir une autre image':{'en_US':'Select another image'}});this.thumbNailDiv=new Element('div',{id:this.fieldName+'-tn',className:'gfw-widget-fileupload-previewcontainer'});this.thumbNailDiv.observe('click',function(){this.open()}.bindAsEventListener(this));this.controlDiv=new Element('div',{id:this.fieldName+'-controls',className:'gfw-widget-fileupload-controls'});this.openButton=new Element('button',{id:this.fieldName+'-openBtn',type:'button',className:'gfw-button x-skin icon x-emphasized',onclick:'return false;'});this.openButton.insert(this.translator.gettext('<span style="background-image:url(/src/images/icons/12/add-circle.png);">Acc&eacute;der &agrave; la banque d\'image</span>'));this.openButton.observe('click',function(){this.open()}.bindAsEventListener(this));this.changeButton=new Element('img',{id:this.fieldName+'-changeBtn',className:'gfw-widget-fileupload-controlbutton',src:'/src/images/icons/svg/btn-recycle.svg',title:this.translator.gettext('Choisir une autre image'),border:0,width:'24px',height:'24px'});this.changeButton.observe('click',function(e){this.open();Event.stop(e)}.bindAsEventListener(this));if(this.allowDownload){this.downloadButton=new Element('img',{id:this.fieldName+'-downloadBtn',className:'gfw-widget-fileupload-controlbutton',src:'/src/images/icons/svg/btn-download.svg',title:this.translator.gettext('Télécharger l\'image'),border:0,width:'24px',height:'24px'});this.downloadButton.observe('click',function(e){this.download();Event.stop(e)}.bindAsEventListener(this))}
2392this.deleteButton=new Element('img',{id:this.fieldName+'-deleteBtn',className:'gfw-widget-fileupload-controlbutton',src:'/src/images/icons/svg/btn-cancel.svg',title:this.translator.gettext('Supprimer l\'image'),border:0,width:'24px',height:'24px'});this.deleteButton.observe('click',function(e){this.discard();Event.stop(e)}.bindAsEventListener(this));this.container.insert(this.thumbNailDiv);this.thumbNailDiv.insert(this.controlDiv);this.thumbNailDiv.hide();this.controlDiv.insert(this.changeButton);if(this.allowDownload){this.controlDiv.insert(this.downloadButton)}
2393this.controlDiv.insert(this.deleteButton);this.container.insert(this.openButton);if(this.thumbnailUrl==''||this.thumbnailUrl=='undefined')this.thumbnailUrl=null;this.refresh()}
2393,refresh:function(){this.refreshControls();if(this.thumbnailUrl!=null){var imgldr=new Image();imgldr.onload=function(){if(this.thumbNailDiv.visible()){new Effect.Shrink(this.thumbNailDiv,{duration:0.5,direction:'top-left',delay:0.5,afterFinish:function(){this.updateThumbnailDivImage(this.thumbnailUrl);new Effect.Grow(this.thumbNailDiv,{duration:0.5,direction:'top-left',afterFinish:function(){}.bind(this)})}.bind(this)})}else{this.updateThumbnailDivImage(this.thumbnailUrl);new Effect.Grow(this.thumbNailDiv,{duration:0.5,direction:'top-left',queue:{position:'end',scope:this.fieldName},afterFinish:function(){this.thumbNailDiv.show()}.bind(this)})}}.bind(this);imgldr.onerror=function(){new Effect.Shrink(this.thumbNailDiv,{duration:0.5,direction:'top-left',queue:{position:'end',scope:this.fieldName},afterFinish:function(){this.updateThumbnailDivImage(!1);this.thumbNailDiv.hide()}.bind(this)});this.field.value='';this.discard()}.bind(this);imgldr.src=this.thumbnailUrl}else{new Effect.Shrink(this.thumbNailDiv,{duration:0.5,direction:'top-left',queue:{position:'end',scope:this.fieldName},afterFinish:function(){this.updateThumbnailDivImage(!1);this.thumbNailDiv.hide()}.bind(this)});this.field.value=''}},updateThumbnailDivImage:function(imageUrl){if(imageUrl){this.thumbNailDiv.style.width='150px';this.thumbNailDiv.style.height='150px';this.thumbNailDiv.style.backgroundPosition='center center';this.thumbNailDiv.style.backgroundPositionX='center';this.thumbNailDiv.style.backgroundPositionY='center';this.thumbNailDiv.style.backgroundRepeat='no-repeat';this.thumbNailDiv.style.backgroundImage='url('+imageUrl+')'}else{this.thumbNailDiv.style.backgroundImage='none'}},refreshControls:function(){if(this.options.enableControls){if(this.thumbnailUrl!=null){this.deleteButton.show();this.changeButton.show();this.openButton.hide();if(this.downloadButton){this.downloadButton.show()}}else{this.openButton.show();this.deleteButton.hide();this.changeButton.hide();if(this.downloadButton){this.downloadButton.hide()}}}else{this.openButton.hide();this.deleteButton.hide();this.changeButton.hide();if(this.downloadButton){this.downloadButton.hide()}}},setThumbnail:function(src){this.thumbnailUrl=src;this.refresh()},open:function(){if(this.url){if(this.ibWindow==null||this.ibWindow.closed){this.ibWindow=window.open(this.url,this.fieldName,"resizable=yes,scrollbars=yes,status=yes, width=1024, height=768");this.ibWindow.focus()}else{this.ibWindow.focus();this.ibWindow.location.href=this.url}}},discard:function(){this.setThumbnail(null)},download:function(e){if(this.field.value!==''){const link=document.createElement("a");link.href=this.field.value;link.download='';document.body.appendChild(link);link.click();document.body.removeChild(link)}}});var ImageBrowserManager=new(Class.create({initialize:function(){this.imageBrowserList=[]},addImageBrowser:function(name,imageBrowser){this.imageBrowserList[name]=imageBrowser},getImageBrowser:function(name){return this.imageBrowserList[name]},postBackSelection:function(fieldName,imageFileName,imageThumbnailName){if(window.opener!=null){var doc=window.opener.document;var fieldElementArray=doc.getElementsByName(fieldName);if(fieldElementArray[0]){fieldElementArray[0].value=imageFileName}
2394var imageBrowser=window.opener.ImageBrowserManager.getImageBrowser(fieldName);if(imageBrowser){imageBrowser.setThumbnail(imageThumbnailName)}
2395window.opener.focus();window.close()}else{window.close()}}}))();EyeCandies.Translator=Class.create({initialize:function(lang,dictionary){this.lang=lang;this.dictionary={};this.setDictionary(dictionary)},setDictionary:function(dictionary){if(typeof(dictionary)==='object')this.dictionary=dictionary;else this.dictionary={}},addDictionary:function(dictionary){if(typeof(dictionary)==='object')Object.extend(this.dictionary,dictionary)},gettext:function(string){if(this.dictionary[string]&&this.dictionary[string][this.lang])return this.dictionary[string][this.lang];else return string}});EyeCandies.Toggler=Class.create({initialize:function(selector,options){this.selector=selector;this.animate=!1;this.animateDelay=0.2;this.closedIcon='/src/images/icons/svg/8/expand_closed.svg';this.openedIcon='/src/images/icons/svg/8/expand_opened.svg';this.undeterminedIcon='/src/images/icons/svg/8/expand_undetermined.svg';this.noneIcon='/src/images/icons/1/1x1.png';this.autoIcons=!0;this.expandedClass='gfw-toggler-expanded';Object.extend(this,options||{});this.startup()},startup:function(){this.togglers=$$(this.selector);if(this.togglers){this.togglers.each(function(toggler){if(toggler.rel){if(toggler.hasClassName(this.expandedClass)){$$(toggler.rel).each(function(target){this.show(target)},this)}else{$$(toggler.rel).each(function(target){this.hide(target)},this)}}},this);this.togglers.each(function(toggler){this.addObservers(toggler)},this);this.updateAutoIcons()}},addObservers:function(toggler){toggler.onclick=function(){return!1};toggler.stopObserving('click');toggler.observe('click',this.toggle.bind(this))},toggle:function(event){var toggler=Event.findElement(event,this.selector);if(!Object.isUndefined(toggler)&&!Object.isUndefined(toggler.rel)){var currentVisibility=this.getRelVisibility(toggler);if(currentVisibility=='undetermined')$$(toggler.rel).each(function(target){this.updateVisibility(target,'hide')},this);else $$(toggler.rel).each(function(target){this.updateVisibility(target)},this);if(this.animate)this.updateAutoIcons.bind(this).delay(this.animateDelay+0.1);else this.updateAutoIcons()}},updateAutoIcons:function(){if(this.autoIcons)this.togglers.each(function(toggler){this.updateTogglerIcon(toggler)},this)},updateTogglerIcon:function(toggler){if(toggler){if(this.relIsEmpty(toggler))toggler.hide();toggler.setStyle({cursor:'pointer'});if(toggler.hasClassName("x-no-autoicon"))return;var currentVisibility=this.getRelVisibility(toggler);var iconHref=this.noneIcon;
2395if(currentVisibility=='hidden')iconHref=this.closedIcon;else if(currentVisibility=='visible')iconHref=this.openedIcon;else if(currentVisibility=='undetermined')iconHref=this.undeterminedIcon;else if(currentVisibility=='none')iconHref=this.noneIcon;if(iconHref!=null){var img=toggler.down('img');if(img)img.src=iconHref}}},getRelVisibility:function(toggler){var currentVisibility='none';if(!Object.isUndefined(toggler)&&!Object.isUndefined(toggler.rel)){var states={hidden:0,visible:0};$$(toggler.rel).each(function(target){if(target.visible())this.visible++;else this.hidden++},states);if(states.hidden==0&&states.visible>0)currentVisibility='visible';else if(states.visible==0&&states.hidden>0)currentVisibility='hidden';else if(states.visible==0&&states.hidden==0)currentVisibility='none';else currentVisibility='undetermined'}
2396return currentVisibility},relIsEmpty:function(toggler){if(!Object.isUndefined(toggler)&&!Object.isUndefined(toggler.rel)){var targets=$$(toggler.rel);if(targets.length==1&&targets.first().hasClassName("x-empty"))return!0}
2397return!1},updateVisibility:function(target,force){force=force||'toggle';if(target){if(target.hasClassName('x-empty'))this.hide(target);else if(force=='toggle'){if(target.visible())this.hide(target);else this.show(target)}else if(force=='hide'&&target.visible())this.hide(target);else if(force=='show'&&!target.visible())this.show(target)}},show:function(target){if(target.nodeType==1&&target.nodeName.toLowerCase()=='tr'){if(Prototype.Browser.IE){if(document.addEventListener)target.style.display='table-row';else target.style.display='block'}else{target.style.display='table-row'}}else if(this.animate)return new Effect.SlideDown(target,{duration:this.animateDelay});else return target.show()},hide:function(target){if(this.animate)return new Effect.SlideUp(target,{duration:this.animateDelay});else return target.hide()}});EyeCandies.linkField=Class.create({initialize:function(srcselect,destselect,url,msg,defaultmsg){var sources_el=document.getElementsByName(srcselect);var dests_el=document.getElementsByName(destselect);if(sources_el[0]!=null&&dests_el[0]!=null){this.fieldsrc=sources_el[0];this.fielddest=dests_el[0]}
2398this.url=url;this.msg=(msg!=undefined)?msg:'';this.defaultmsg=(defaultmsg!=undefined)?defaultmsg:'';this.fieldsrc.observe('change',this.update.bind(this));if(this.fielddest.type!='textarea')this.update()},update:function(){if(this.fieldsrc&&this.fielddest){var fielddest=this.fielddest;var defaultmsg=this.defaultmsg;var savevalue='';switch(fielddest.type){case 'select':case 'select-one':savevalue=this.fielddest.value;if(fielddest.options){for(var i=fielddest.options.length-1;i>=0;i--)
2399fielddest.options[i]=null;fielddest.options[fielddest.options.length]=new Option('Chargement.....','0',!1,!1)}
2400break;case 'textarea':if(this.msg!=''){if(fielddest.value!=''){if(this.fieldsrc.options[this.fieldsrc.selectedIndex].value==''||confirm(this.msg)==!1)return}}
2401break}
2402new Ajax.Request(this.url+'&limit=nolimit&query='+this.fieldsrc.options[this.fieldsrc.selectedIndex].value+'&curval='+savevalue,{method:'get',onSuccess:function(data){var jsondata=data.responseText.evalJSON();if(jsondata.html){if(jsondata.html.trim()==''&&defaultmsg!=''&&(fielddest.type=='select'||fielddest.type=='select-one')){for(var i=fielddest.options.length-1;i>=0;i--)
2403fielddest.options[i]=null;fielddest.options[fielddest.options.length]=new Option(defaultmsg,'0',!1,!1);fielddest.options[0].disabled=!0}else Element.update(fielddest,jsondata.html)}else switch(fielddest.type){case 'select':case 'select-one':if(fielddest.options)fielddest.options[0]=null;else fielddest.options=[];fielddest.options[0]=new Option('...','',!1,!1);if(jsondata!=null&&jsondata.rows&&jsondata.rows.length)jsondata.rows.each(function(elt){var newoption=new Option(elt.text,elt.value,!1,!1);if(elt.style)
2404newoption.setAttribute("style",elt.style);fielddest.options[fielddest.options.length]=newoption;if(elt.value==savevalue)
2405fielddest.value=savevalue});break;case 'textarea':case 'text':if(jsondata!=null&&jsondata.rows&&jsondata.rows.length)fielddest.value=jsondata.rows[0].text;else fielddest.update('');break}}})}}});EyeCandies.AjaxTagTool=Class.create({initialize:function(ajaxurl,elementname,eltooltip,tooltipclass,tooltipoffsetLeft){this.ajaxurl=ajaxurl;this.elementname=elementname;this.eltooltip=eltooltip;this.tooltipclass=tooltipclass;this.tooltipoffsetLeft=tooltipoffsetLeft;if(eltooltip){var msg=$(eltooltip).readAttribute('data-tooltip');if(msg!='')
2406this.objtooltip=new Control.ToolTip($(eltooltip),msg,{offsetLeft:tooltipoffsetLeft,position:'mouse',className:tooltipclass})}
2407var ellink=$(elementname+'-linktagtool');if(ellink)
2408ellink.observe('click',function(e){this.update(e)}.bindAsEventListener(this))},update:function(event){var myself=this;if($(myself.elementname))$(myself.elementname).src='/src/images/icons/16/progress.gif';new Ajax.Request(myself.ajaxurl,{method:'get',onComplete:function(xhr){if(xhr.status==200){var json_data_object=eval("("+xhr.responseText+")");if($(myself.elementname))$(myself.elementname).src=json_data_object.image;if(myself.eltooltip&&myself.objtooltip){myself.objtooltip.close();myself.objtooltip.destroy();myself.objtooltip=new Control.ToolTip($(myself.eltooltip),json_data_object.text,{offsetLeft:myself.tooltipoffsetLeft,position:'mouse',className:myself.tooltipclass})}
2409if($(myself.elementname+'-text'))
2410$(myself.elementname+'-text').update(json_data_object.inlinetext)}}});event.stop();return(!1)}});EyeCandies.AttributeEditor=Class.create({initialize:function(elementname,jsonlevelselectoptions,defaultlevel,verifcallback,maxvalue,delcallback){this.elementname=elementname;this.defaultlevel=defaultlevel;this.verifcallback=verifcallback;this.maxvalue=maxvalue;this.delcallback=delcallback;if(jsonlevelselectoptions){this.levelselectoptions=[];for(var prop in jsonlevelselectoptions)
2411this.levelselectoptions.push(new Array(prop,jsonlevelselectoptions[prop]));}},DelCB:function(name,clickdiv){var el=$(name);if(this.delcallback)
2412new Ajax.Request(this.delcallback,{method:'get',parameters:{value:clickdiv.getAttribute('data_value')}});if(el)el.remove()},AddAttributes:function(selectedvalues){if(selectedvalues instanceof Array)
2413for(var i=0;i<selectedvalues.length;i++)
2414this.AddAttribute(selectedvalues[i].value,selectedvalues[i].addstyle,selectedvalues[i].level,!1);},AddDiv:function(selectedvalue,addstyle,level,id){if(id==undefined)id=selectedvalue;var maindiv=document.createElement("div");maindiv.setAttribute('class','x-element x-attribute-element-'+this.elementname);$(maindiv).identify();
2414var maindivid=maindiv.id;var input=document.createElement("input");input.setAttribute('type','hidden');if(this.maxvalue>1)
2415input.setAttribute('name',this.elementname+'[]');else input.setAttribute('name',this.elementname);input.setAttribute('value',id);var clickdiv=document.createElement("div");clickdiv.setAttribute('class','x-suplink');clickdiv.setAttribute('data_value',selectedvalue);$(clickdiv).observe("click",function(e){this.DelCB(maindivid,$(clickdiv));return!1}.bind(this));var attributetext=document.createElement("div");attributetext.setAttribute('class','x-attributeditor-element');if(selectedvalue.indexOf('<span>')==-1){var selectedvaluespan=document.createElement("span");selectedvaluespan.innerHTML=selectedvalue;attributetext.appendChild(selectedvaluespan)}else attributetext.innerHTML=selectedvalue;maindiv.setAttribute('style',addstyle);if(this.levelselectoptions instanceof Array&&this.levelselectoptions.length){var levelselect=document.createElement("select");levelselect.setAttribute('name',this.elementname+'_level[]');levelselect.setAttribute('class','x-levelselect');for(var i=0;i<this.levelselectoptions.length;i++){var leveloption=document.createElement("option");leveloption.setAttribute('value',this.levelselectoptions[i][0]);leveloption.appendChild(document.createTextNode(this.levelselectoptions[i][1]));levelselect.appendChild(leveloption)}
2416levelselect.selectedIndex=level?(level-1):(this.defaultlevel-1)}
2417maindiv.appendChild(input);attributetext.appendChild(clickdiv);maindiv.appendChild(attributetext);if(this.levelselectoptions instanceof Array&&this.levelselectoptions.length)maindiv.appendChild(levelselect);$(this.elementname+'_attributecontainer').appendChild(maindiv)},AddAttribute:function(selectedvalue,addstyle,level,veriftag,id){if(addstyle==undefined)addstyle='color:#000000';if(level==undefined)level=0;if(veriftag==undefined)veriftag=!0;if(id==undefined)id=selectedvalue;if(selectedvalue&&selectedvalue!=''){var e=document.getElementsByClassName('x-attribute-element-'+this.elementname);if(this.maxvalue==1&&e&&e.length>0)
2418$(e[0]).remove();var inputel=document.getElementsByName(this.elementname+'[]');if(inputel){if(inputel.length>0){if(inputel.length==this.maxvalue){alert("Vous avez atteint le nombre maximum d'ajout autorisé");return(!1)}
2419for(var i=0;i<inputel.length;i++){if(inputel[i].value.toLowerCase()==id.toLowerCase())return}}}
2420if(this.verifcallback&&veriftag){new Ajax.Request(this.verifcallback,{method:'get',parameters:{keyword:id},onComplete:function(xhr){if(xhr.status==200){var json_data_object=eval("("+xhr.responseText+")");if(json_data_object.msgerreur)alert(json_data_object.msgerreur);else{var dataid=json_data_object.id?json_data_object.id:id;this.AddDiv(json_data_object.keyword,addstyle,level,dataid)}}else this.AddDiv(selectedvalue,addstyle,level,id)}.bind(this)})}else this.AddDiv(selectedvalue,addstyle,level,id)}},InitAddButton:function(buttonid,autosuggestid){if($(buttonid)){$(buttonid).observe("click",function(){this.AddAttribute($(autosuggestid).value);$(autosuggestid).value='';return(!1)}.bind(this))}},InitSearchButton:function(buttonid,autosuggest){if($(buttonid)){$(buttonid).observe("click",function(e){var as=autosuggest;autosuggest.getSuggestions(autosuggest.fld.value,!0);return(!1)}.bind(this))}}});EyeCandies.JoinAttributeEditor=Class.create({initialize:function(elementname,jsonlevelselectoptions,defaultlevel,verifcallback,maxvalue,delcallback){this.elementname=elementname;this.defaultlevel=defaultlevel;this.verifcallback=verifcallback;this.maxvalue=maxvalue;this.delcallback=delcallback;if(jsonlevelselectoptions){this.levelselectoptions=[];for(var prop in jsonlevelselectoptions)
2421this.levelselectoptions.push(new Array(prop,jsonlevelselectoptions[prop]));}},DelCB:function(name,clickdiv){var el=$(name);if(this.delcallback)
2422new Ajax.Request(this.delcallback,{method:'get',parameters:{value:clickdiv.getAttribute('data_value')}});if(el)el.remove()},AddAttributes:function(selectedvalues){if(selectedvalues instanceof Array)
2423for(var i=0;i<selectedvalues.length;i++)
2424this.AddAttribute(selectedvalues[i].value,selectedvalues[i].addstyle,selectedvalues[i].level,null,selectedvalues[i].id);},AddDiv:function(selectedvalue,addstyle,level,selectedid){var maindiv=document.createElement("div");maindiv.setAttribute('class','x-element x-attribute-element-'+this.elementname);$(maindiv).identify();
2424var maindivid=maindiv.id;var input=document.createElement("input");input.setAttribute('type','hidden');if(this.maxvalue>1)
2425input.setAttribute('name',this.elementname+'[]');else input.setAttribute('name',this.elementname);input.setAttribute('value',selectedid);var clickdiv=document.createElement("div");clickdiv.setAttribute('class','x-suplink');clickdiv.setAttribute('data_value',selectedid);$(clickdiv).observe("click",function(){this.DelCB(maindivid,$(clickdiv));return(!1)}.bind(this));var attributetext=document.createElement("div");attributetext.setAttribute('class','x-attributeditor-element');if(selectedvalue.indexOf('<span>')==-1){var selectedvaluespan=document.createElement("span");selectedvaluespan.innerHTML=selectedvalue;attributetext.appendChild(selectedvaluespan)}else attributetext.innerHTML=selectedvalue;maindiv.setAttribute('style',addstyle);if(this.levelselectoptions instanceof Array&&this.levelselectoptions.length){var levelselect=document.createElement("select");levelselect.setAttribute('name',this.elementname+'_level[]');levelselect.setAttribute('class','x-levelselect');for(var j=0;j<this.levelselectoptions.length;j++){var leveloption=document.createElement("option");leveloption.setAttribute('value',this.levelselectoptions[j][0]);leveloption.appendChild(document.createTextNode(this.levelselectoptions[j][1]));levelselect.appendChild(leveloption)}
2426levelselect.selectedIndex=level?(level-1):(this.defaultlevel-1)}
2427maindiv.appendChild(input);attributetext.appendChild(clickdiv);maindiv.appendChild(attributetext);if(this.levelselectoptions instanceof Array&&this.levelselectoptions.length)maindiv.appendChild(levelselect);$(this.elementname+'_attributecontainer').appendChild(maindiv)},AddAttribute:function(selectedvalue,addstyle,level,veriftag,selectedid){if(addstyle==undefined)addstyle='color:#000000';if(level==undefined)level=0;if(selectedvalue&&selectedvalue!=''){var e=document.getElementsByClassName('x-attribute-element-'+this.elementname);if(this.maxvalue==1&&e&&e.length>0)
2428$(e[0]).remove();var inputel=document.getElementsByName(this.elementname+'[]');if(inputel){if(inputel.length>0){if(inputel.length==this.maxvalue){alert("Vous avez atteint le nombre maximum d'ajout autorisé");return(!1)}
2429for(var i=0;i<inputel.length;i++){if(inputel[i].value==selectedid)return}}}
2430if(this.verifcallback&&veriftag){new Ajax.Request(this.verifcallback,{method:'get',parameters:{keyword:selectedid},onComplete:function(xhr){if(xhr.status==200){var json_data_object=eval("("+xhr.responseText+")");if(json_data_object.msgerreur)alert(json_data_object.msgerreur);else{var dataid=json_data_object.id?json_data_object.id:selectedid;this.AddDiv(json_data_object.keyword,addstyle,level,dataid)}}else this.AddDiv(selectedvalue,addstyle,level,selectedid)}.bind(this)})}else this.AddDiv(selectedvalue,addstyle,level,selectedid)}},InitAddButton:function(buttonid,autosuggestid){if($(buttonid)){$(buttonid).observe("click",function(e){this.AddAttribute($(autosuggestid).value);$(autosuggestid).value='';return(!1)}.bind(this))}},InitSearchButton:function(buttonid,autosuggest){if($(buttonid)){$(buttonid).observe("click",function(e){var as=autosuggest;autosuggest.getSuggestions(autosuggest.fld.value,!0);return(!1)}.bind(this))}}});EyeCandies.TagEditor=Class.create({initialize:function(fieldName,containerId,autosuggestUrl,maxentries,tagField,initialTags){this.fieldName=fieldName;this.autosuggestUrl=autosuggestUrl;this.initialTags=initialTags;this.containerId=containerId;this.container=document.getElementById(this.containerId);this.mainInput=this.container.querySelector(".x-input");this.addButton=this.container.querySelector(".x-addbutton");this.tagContainer=this.container.querySelector(".x-tag-container");this.mainInput.getClientRects();var autosuggestParams={width:0,timeout:6000,offsetx:0,offsety:0,zindex:10000,minchars:1,maxheight:200,includeFieldList:!1,clearFieldsOnChange:!0,className:"gfw-widget-autosuggest-selection",shownoresults:!1,json:!0,maxentries:maxentries,script:autosuggestUrl,displayField:tagField,callback:function(element){this.addTag(element.value)}.bind(this)};this.autosuggest=new bsn.AutoSuggest(this.mainInput.id,autosuggestParam
2430s);if(this.addButton){this.addButton.addEventListener("click",function(e){e.preventDefault();this.addTag(this.mainInput.value)}.bind(this))}
2431if(this.initialTags){this.addTags(initialTags)}},addTags:function(tagValues){if(tagValues instanceof Array&&tagValues.length>0){for(var i=0;i<tagValues.length;i++){this.addTag(tagValues[i])}}},addTag:function(tagValue){if(tagValue&&tagValue.length>0){if(!this.hasTag(tagValue)){var tagDiv=document.createElement("div");tagDiv.setAttribute("class","x-tag");var hiddenInput=document.createElement("input");hiddenInput.setAttribute("type","hidden");hiddenInput.setAttribute("name",this.fieldName+"[]");hiddenInput.setAttribute("value",tagValue);var tagDeleteDiv=document.createElement("div");tagDeleteDiv.setAttribute("class","x-deletebutton");tagDeleteDiv.addEventListener("click",function(){this.removeTag(tagDiv)}.bind(this));var tagText=document.createTextNode(tagValue);tagDiv.appendChild(hiddenInput);tagDiv.appendChild(tagText);tagDiv.appendChild(tagDeleteDiv);this.tagContainer.appendChild(tagDiv)}}
2432this.clearMainInput()},hasTag:function(tagValue){var tags=document.getElementsByName(this.fieldName+"[]");if(tags&&tags.length>0){for(var i=0;i<tags.length;i++){if(tags[i].value.toLowerCase()===tagValue.toLowerCase())return!0}}
2433return!1},removeTag:function(tagDiv){this.tagContainer.removeChild(tagDiv)},clearMainInput:function(){if(this.mainInput)this.mainInput.value=null}});EyeCandies.RecordEditor=Class.create({initialize:function(fieldName,containerId,autosuggestUrl,recordIdField,recordTextField,maxentries,initialRecords){this.fieldName=fieldName;this.autosuggestUrl=autosuggestUrl;this.initialRecords=initialRecords;this.containerId=containerId;this.container=document.getElementById(this.containerId);this.mainInput=this.container.querySelector(".x-input");this.tagContainer=this.container.querySelector(".x-tag-container");this.mainInput.getClientRects();let autosuggestParams={width:0,timeout:6000,offsetx:0,offsety:0,zindex:10000,minchars:1,maxheight:200,includeFieldList:!1,clearFieldsOnChange:!0,className:"gfw-widget-autosuggest-selection",shownoresults:!1,json:!0,maxentries:maxentries,script:autosuggestUrl,displayField:recordTextField,callback:function(element){this.addTag(element[recordIdField],element[recordTextField])}.bind(this)};this.autosuggest=new bsn.AutoSuggest(this.mainInput.id,autosuggestParams);this.addTags(initialRecords)},addTags:function(initialRecords){if(Array.isArray(initialRecords)&&initialRecords.length>0){for(let i=0;i<initialRecords.length;i++){let record=initialRecords[i];if(Array.isArray(record)){this.addTag(record[0],record[1])}}}},addTag:function(id,text){if(Number.isInteger(id))id=id.toString()
2434if(id!=="0"&&id.length>0){if(!this.hasRecord(id)){let tagDiv=document.createElement("div");tagDiv.setAttribute("class","x-tag");let hiddenInput=document.createElement("input");hiddenInput.setAttribute("type","hidden");hiddenInput.setAttribute("name",this.fieldName+"[]");hiddenInput.setAttribute("value",id);let tagDeleteDiv=document.createElement("div");tagDeleteDiv.setAttribute("class","x-deletebutton");tagDeleteDiv.addEventListener("click",function(){this.removeTag(tagDiv)}.bind(this));let tagText=document.createTextNode(text);tagDiv.appendChild(hiddenInput);tagDiv.appendChild(tagText);tagDiv.appendChild(tagDeleteDiv);this.tagContainer.appendChild(tagDiv)}}
2435this.clearMainInput()},hasRecord:function(id){let recordInputs=document.getElementsByName(this.fieldName+"[]");if(recordInputs&&recordInputs.length>0){for(let i=0;i<recordInputs.length;i++){if(recordInputs[i].value.toLowerCase()===id.toLowerCase())return!0}}
2436return!1},removeTag:function(tagDiv){this.tagContainer.removeChild(tagDiv)},clearMainInput:function(){if(this.mainInput)this.mainInput.value=null}});EyeCandies.SetEditor=Class.create({initialize:function(fieldName,containerId,maxentries,messages){this.inputContainerSelector=".x-input-container";this.itemLineSelector=".x-itemline";this.dragHandleSelector=".x-draghandle";this.fieldName=fieldName;this.container=document.getElementById(containerId);this.messages=messages;this.maxentries=0;if(maxentries==null)this.maxentries=0;else if(typeof maxentries==='string')this.maxentries=parseInt(maxentries,10);else if(typeof maxentries==='number')this.maxentries=Math.floor(maxentries);this.itemLines=this.container.querySelectorAll(this.itemLineSelector);this.installInputKeyHandler();this.installAddButtonClickHandler();this.installExportExcelButtonClickHandler();this.installExportJsonButtonClickHandler();this.installPasteEventHandler();
2436this.itemLines.forEach(function(itemLine){this.installDeleteButtonClickHandler(itemLine)}.bind(this))
2437this.refreshUI();this.dragNDropSorter=new EyeCandies.DragNDropSorter(this.container,this.itemLineSelector,this.dragHandleSelector,function(){this.refreshUI()}.bind(this))},addLine:function(afterElement){let inputContainer=this.container.querySelector(this.inputContainerSelector);let itemLine=this.container.querySelector(this.itemLineSelector);if(itemLine){let clonedLine=itemLine.cloneNode(!0);clonedLine.setAttribute('data-newline','1');this.clearInputs(clonedLine);if(afterElement){let parentItemLine=afterElement.closest(this.itemLineSelector);if(parentItemLine&&parentItemLine.nextSibling){inputContainer.insertBefore(clonedLine,parentItemLine.nextSibling)}else{inputContainer.appendChild(clonedLine)}}else{inputContainer.appendChild(clonedLine)}
2438this.installDeleteButtonClickHandler(clonedLine);this.refreshUI();this.dragNDropSorter.addDraggableElement(clonedLine);return clonedLine}},installInputKeyHandler:function(){this.container.querySelector(this.inputContainerSelector).addEventListener('keyup',function(e){if(e.keyCode===13&&e.target.classList.contains('x-input')){e.stopPropagation();e.preventDefault();if(this.canAddMore()){let newLine=this.addLine(e.target);if(newLine)newLine.querySelector('.x-input:not([readonly])').focus()}}}.bind(this));this.container.querySelector(this.inputContainerSelector).addEventListener('keydown',function(e){if(e.keyCode===13&&e.target.classList.contains('x-input')){e.stopPropagation();e.preventDefault()}}.bind(this));this.container.querySelector(this.inputContainerSelector).addEventListener('keypress',function(e){if(e.keyCode===13&&e.target.classList.contains('x-input')){e.stopPropagation();e.preventDefault()}}.bind(this))},installAddButtonClickHandler:function(){let addButton=this.container.querySelector(".x-addbutton");if(addButton){addButton.addEventListener("click",function(e){e.stopPropagation();e.preventDefault();if(this.canAddMore()){let newLine=this.addLine();if(newLine)setTimeout(function(){newLine.querySelector('.x-input:not([readonly])').focus()},250)}}.bind(this))}},installExportJsonButtonClickHandler:function(){let button=this.container.querySelector(".x-exportbutton-format-json");if(button){button.addEventListener("click",function(e){e.stopPropagation();e.preventDefault();this.exportToClipboardAsJson()}.bind(this))}},installExportExcelButtonClickHandler:function(){let button=this.container.querySelector(".x-exportbutton-format-excel");if(button){button.addEventListener("click",function(e){e.stopPropagation();e.preventDefault();this.exportToClipboardAsExcel()}.bind(this))}},installPasteEventHandler:function(){this.container.addEventListener("paste",function(evt){if(evt.target.getAttribute('data-itempropname')){this.handlePaste(evt)}}.bind(this))},installDeleteButtonClickHandler:function(itemLine){itemLine.querySelector(".x-deletebutton").addEventListener('click',function(evt){evt.stopPropagation();evt.preventDefault();if(this.canDeleteMore()){if(itemLine.getAttribute('data-newline')){itemLine.parentElement.removeChild(itemLine)}else{if(confirm(this.messages.confirmdelete))itemLine.parentElement.removeChild(itemLine)}
2439this.refreshUI()}}.bind(this))},handlePaste:function(evt){let paste=(evt.clipboardData||window.clipboardData).getData('text');if(paste.indexOf("[")===0){try
2440{let items=JSON.parse(paste);evt.stopPropagation();evt.preventDefault();this.importFromItemArray(items)}catch(e){}}else{if(paste.indexOf("\n")!==-1||paste.indexOf("\t")!==-1){evt.stopPropagation();evt.preventDefault();this.importFromItemArray(this.convertTextToItemArray(paste))}else{}}},buildLinePropObject:function(array){let firstLine=this.container.querySelector(this.itemLineSelector);if(firstLine){let inputs=firstLine.querySelectorAll('.x-input[data-itempropname]:not([data-noimport])');if(inputs){let properties={};for(let i=0;i<inputs.length;i++){let input=inputs[i];if(array[i]!==undefined){properties[input.getAttribute('data-itempropname')]=array[i]}}
2441return properties}}
2442return!1},convertTextToItemArray:function(text){let lines=text.split("\n");let items=[];for(let i=0;i<lines.length;i++){let line=lines[i];if(line.trim()==="")continue;let columns=line.split("\t");if(columns.length>0){items[i]=this.buildLinePropObject(columns)}}
2443return items},importFromItemArray:function(items){if(items.length>0){for(let line=0;line<items.length;line++){if(this.canAddMore()){let currentLine=this.addLine();let item=items[line];for(let itempropname in item){let value=item[itempropname];let input=currentLine.querySelector('.x-input[data-itempropname='+itempropname+']');if(input&&input.getAttribute("data-noimport")!=="1")input.value=value}}else{alertify.notify(this.messages.cannotaddmorelines,'success','5');break}}}},getExportableItemsAsObjectArray:function(){let out=[];let itemlines=this.container.querySelectorAll(this.itemLineSelector);for(let i=0;i<itemlines.length;i++){let itemline=itemlines[i];let inputs=itemline.querySelectorAll(".x-fieldblock .x-input");let itemout={};for(let j=0;j<inputs.length;j++){let input=inputs[j];if(input.getAttribute("data-noexport")!=="1"){let fieldname=input.getAttribute("data-itempropname");itemout[fieldname]=input.value}}
2444out[i]=itemout}
2445return out}
2445,exportToClipboardAsJson:function(){let out=this.getExportableItemsAsObjectArray();let outStr=JSON.stringify(out);if(typeof(outStr)==="string"&&outStr.length>0)navigator.clipboard.writeText(outStr).then(function(){alertify.notify(this.messages.exportsuccess,'success','5')}.bind(this),function(){alertify.notify(this.messages.exporterror,'error','5')}.bind(this))},exportToClipboardAsExcel:function(){let outStr="";let out=this.getExportableItemsAsObjectArray();for(let k=0;k<out.length;k++){let record=out[k];if(record){outStr+=Object.values(record).join("\t")}
2446if(k<out.length-1)outStr+="\n"}
2447if(typeof(outStr)==="string"&&outStr.length>0)navigator.clipboard.writeText(outStr).then(function(){alertify.notify(this.messages.exportsuccess,'success','5')}.bind(this),function(){alertify.notify(this.messages.exporterror,'error','5')}.bind(this))},clearInputs:function(itemLine){if(itemLine){let inputs=itemLine.querySelectorAll('.x-input');inputs.forEach(function(input){input.value=null})}},countItems:function(){let itemLines=this.container.querySelectorAll(this.itemLineSelector);if(itemLines)return itemLines.length;else return 0},canAddMore:function(){if(this.maxentries===0)return!0;else if(this.maxentries>0&&this.countItems()<this.maxentries)return!0;else return!1},canDeleteMore:function(){if(this.countItems()>1)return!0;else return!1},refreshUI:function(){if(this.container){this.refreshHandles();let itemLines=this.container.querySelectorAll(this.itemLineSelector);let i=0;itemLines.forEach(function(itemLine){let labels=itemLine.querySelectorAll(".x-label");if(i===0){labels.forEach(function(label){if(!label.classList.contains('x-hidden'))label.style.display='flex';else label.style.display='none'})}else{labels.forEach(function(label){label.style.display='none'})}
2448let inputs=itemLine.querySelectorAll(".x-input");inputs.forEach(function(input){let fullFieldName=this.fieldName+"["+i+"]["+input.getAttribute("data-itempropname")+"]";input.setAttribute("name",fullFieldName)}.bind(this));i++}.bind(this))}},refreshHandles:function(){let dragHandles=this.container.querySelectorAll(this.dragHandleSelector);if(dragHandles){let firstVisibleInput=this.container.querySelector('.x-input:not([type=hidden])');dragHandles.forEach(function(dragHandle){dragHandle.style.height=firstVisibleInput.offsetHeight+'px'})}}});EyeCandies.DragNDropSorter=function(containerElement,draggableElementsSelector,dragHandleSelector,onChange){this.containerElement=containerElement;this.draggableElementsSelector=draggableElementsSelector;this.dragHandleSelector=dragHandleSelector;this.onChange=onChange;this.addDraggableElement=function(draggableElement){let dragHandle=draggableElement.querySelector(this.dragHandleSelector);if(dragHandle){dragHandle.setAttribute("draggable","true");dragHandle.addEventListener('dragstart',this.handleDragStart.bind(this),!1);dragHandle.addEventListener('dragenter',this.handleDragEnter.bind(this),!1);dragHandle.addEventListener('dragover',this.handleDragOver.bind(this),!1);dragHandle.addEventListener('dragleave',this.handleDragLeave.bind(this),!1);dragHandle.addEventListener('drop',this.handleDrop.bind(this),!1);dragHandle.addEventListener('dragend',this.handleDragEnd.bind(this),!1)}};this.refreshDndIndexes=function(){let i=0;let dragHandles=this.containerElement.querySelectorAll(this.dragHandleSelector);dragHandles.forEach(function(dragHandle){dragHandle.setAttribute("data-dndsorter-index",i.toString());i++})};this.handleDragStart=function(e){this.refreshDndIndexes();e.dataTransfer.effectAllowed='move';e.dataTransfer.setData('text/plain',e.target.getAttribute('data-dndsorter-index'))};this.handleDragOver=function(e){e.preventDefault();e.dataTransfer.dropEffect='move';return!1};this.handleDragEnter=function(e){e.target.classList.add('x-dndsorter-over')};this.handleDragLeave=function(e){e.target.classList.remove('x-dndsorter-over')};this.handleDrop=function(e){let draggableElements=this.containerElement.querySelectorAll(this.draggableElementsSelector);e.stopPropagation();e.preventDefault();let srcIndex=e.dataTransfer.getData('text/plain')
2449let dstIndex=e.target.getAttribute('data-dndsorter-index');if(srcIndex!==dstIndex){if(srcIndex>
2449dstIndex){draggableElements[dstIndex].parentNode.insertBefore(draggableElements[srcIndex],draggableElements[dstIndex])}else if(srcIndex<dstIndex){draggableElements[dstIndex].parentNode.insertBefore(draggableElements[srcIndex],draggableElements[dstIndex].nextSibling)}}
2450if(typeof(this.onChange)==='function'){this.onChange({src:srcIndex,dst:dstIndex})}
2451return!1};this.handleDragEnd=function(e){let dragHandles=this.containerElement.querySelectorAll(this.dragHandleSelector);dragHandles.forEach(function(dragHandle){dragHandle.removeAttribute('data-dndsorter-index');dragHandle.classList.remove('x-dndsorter-over')})};let draggableElements=this.containerElement.querySelectorAll(this.draggableElementsSelector);if(draggableElements){draggableElements.forEach(function(draggableElement){this.addDraggableElement(draggableElement)}.bind(this))}};EyeCandies.RangeInputManager=Class.create({initialize:function(rangeElement){this.rangeElement=rangeElement;this.addDecoration()},addDecoration:function(){if(this.rangeElement.type=="range"){this.rangeElement.observe('change',this.updateValue.bind(this));this.rangeElement.setStyle({display:'inline-block',width:'200px',height:'20px',verticalAlign:'middle',padding:0,margin:0});this.rangeValueIndicator=new Element('div',{'class':'std1sm'});this.rangeValueIndicator.setStyle({width:'240px',textAlign:'center',padding:0,margin:0});this.rangeMin=new Element('div',{'class':'std1sm'});this.rangeMin.setStyle({display:'inline-block',width:'20px',height:'20px',verticalAlign:'baseline',textAlign:'center',padding:0,margin:0,color:'#aaa'});this.rangeMax=new Element('div',{'class':'std1sm'});this.rangeMax.setStyle({display:'inline-block',width:'20px',height:'20px',verticalAlign:'baseline',textAlign:'center',padding:0,margin:0,color:'#aaa'});this.rangeElement.insert({before:this.rangeValueIndicator});this.rangeElement.insert({before:this.rangeMin});this.rangeElement.insert({after:this.rangeMax});this.rangeMin.update(this.rangeElement.min);this.rangeMax.update(this.rangeElement.max);this.updateValue()}},updateValue:function(){this.rangeValueIndicator.update(this.rangeElement.value)}});EyeCandies.ColorPalette=Class.create({initialize:function(field,options){this.useOpacity=this.browserAllowsOpacity();this.defaultOptions={optionsperline:20,cellsize:15,coloroptions:['#fbe3c9','#f8cbcc','#ffd9c5','#fbdbc9','#fdf8c9','#ecf0c7','#d6e7c2','#cfe5c8','#d0e7d8','#d1e9e7','#cfeaf4','#cdeaf9','#cedaed','#cbc7e1','#dac9e1','#e4cae0','#efcbdf','#f7cade','#f7c8d8','#f7c8cf','#f0cea9','#f09699','#f7b797','#fedb97','#faf199','#dbe393','#b1d188','#a5ce96','#a7d3b6','#a8d8d6','#a6daec','#9ed9f3','#9eb5db','#9492c3','#ab96c3','#c29ac3','#d89dc2','#e99bbf','#e99bbf','#f095a7','#e8b884','#ea6668','#f29668','#fcca65','#f7eb66','#c9d658','#93c04b','#86be66','#87c499','#88cbc7','#80cde8','#74c6eb','#7390c4','#5b60a4','#7d67a6','#a070a9','#c577ab','#dd6fa4','#ea6695','#ea637c','#d39b5f','#e53b3c','#ec743a','#f9b936','#f5e731','#bacc00','#7bb51d','#73b333','#73ba7e','#74c4bd','#63c5e7','#57b3e1','#4a6bad','#3f4e99','#5d4b96','#844e95','#b75c9b','#d84d93','#e63a76','#e63957','#bb8a54','#e42322','#e8571f','#f6a816','#f4e500','#abc600','#6cb022','#6ab023','#6db564','#6ec0b4','#52c2eb','#4ca1d5','#3959a1','#314a96','#4b4794','#774491','#b25396','#df3d8c','#e42059','#e42236','#987045','#cb0a1d','#ca461a','#cc890b','#cccc03','#8cbb1e','#50a928','#4ba829','#49ac60','#48b59f','#00aacc','#1b88c5','#2f4e99','#303f90','#453d8e','#6d3b8c','#9f418e','#c71b82','#cc0044','#cc0523','#8b5e34','#98141b','#99351a','#986619','#999a19','#659a26','#1d9a2e','#0b9a2f','#009a4d','#009a7f','#007f98','#006699','#183a8d','#22297d','#3a2782','#612783','#8c2a84','#991167','#981135','#98141b','#715230','#631313','#652614','#654517','#66671f','#446624','#176628','#076629','#016633','#006555','#005566','#014567','#142661','#1e2353','#2a2354','#412359','#631f64','#651546','#661125','#651217','#000000','#111111','#222222','#333333','#444444','#555555','#666666','#777777','#888888','#999999','#aaaaaa','#bbbbbb','#cccccc','#dddddd','#eeeeee','#ffffff']};this.field=$(field);this.options=Object.extend(this.defaultOptions,options||{});if(this.options.optionsperline==0)this.options.optionsperline=20;if(this.options.optionsperline<5)this.options.optionsperline=5;this.initField()},initField:function(){if(this.field){this.createWidget();this.createWindow();this.updateCurrentColor();this.addObservers()}},createWidget:function(){this.widget=new Element('div',{'class':'gfw-colorpalette-widget'});
2451this.buttonBackground=new Element('span',{'class':'x-buttonbackground'});this.button=new Element('div',{'class':'x-currentcolor'});this.icon=new Element('span',{'class':'x-icon'});Element.insert(this.widget,{bottom:this.buttonBackground});Element.insert(this.buttonBackground,{bottom:this.button});Element.insert(this.field,{after:this.widget});Element.insert(this.widget,{bottom:this.icon})},createWindow:function(){this.windowContainer=new Element('div',{'class':'gfw-colorpalette-window-container'});this.window=new Element('div',{'class':'gfw-colorpalette-window'});this.windowCurrentColorBackground=new Element('div',{'class':'x-currentcolorbackground'});this.windowCurrentColor=new Element('div',{'class':'x-currentcolor'});this.palette=new Element('div',{'class':'x-palette'});this.closeButton=new Element('div',{'class':'x-close'});var coloroptions=this.options.coloroptions;var colorElements=[];if(coloroptions){for(var c=0;c<coloroptions.length;c++){var colordef=coloroptions[c];var color='#000000';var colorname='undefined';if(typeof(colordef)==='object'&&Object.prototype.toString.apply(colordef)==='[object Array]'){color=colordef[0];colorname=colordef[1]}else if(typeof(colordef)==='object'){color=colordef.color;colorname=colordef.name}else if(typeof(color)==='string'){color=colordef;colorname=colordef}
2452var colorCellBackground=new Element('div',{'class':'x-colorcellbackground'});var colorCell=new Element('div',{'class':'x-colorcell'});colorCell.setStyle(this.getColorStyle(color));colorCell.setAttribute('data-colorname',colorname);colorCell.setAttribute('title',colorname);colorCell.setStyle({width:this.options.cellsize+'px',height:this.options.cellsize+'px'});colorCellBackground.setStyle({width:this.options.cellsize+'px',height:this.options.cellsize+'px'});colorCell.setAttribute('data-color',color);colorElements[c]=colorCell;Element.insert(this.palette,{bottom:colorCellBackground});Element.insert(colorCellBackground,{bottom:colorCell})}}
2453Element.insert(this.windowContainer,{bottom:this.window});Element.insert(this.window,{bottom:this.windowCurrentColorBackground});Element.insert(this.windowCurrentColorBackground,{bottom:this.windowCurrentColor});Element.insert(this.window,{bottom:this.closeButton});Element.insert(this.window,{bottom:this.palette});Element.insert(this.widget,{after:this.windowContainer});Element.observe(this.palette,'click',this.selectColor.bind(this));Element.observe(this.windowCurrentColor,'click',this.closeDialog.bind(this));Element.observe(this.closeButton,'click',this.closeDialog.bind(this));this.computePaletteWidth();this.positionWindow();Element.hide(this.windowContainer);new Draggable(this.windowContainer)}
2453,computePaletteWidth:function(){var width=(this.options.optionsperline*(this.options.cellsize+3))+'px';this.palette.setStyle({width:width})},addObservers:function(){Element.observe(this.widget,'click',this.openDialog.bind(this));Element.observe(this.field,'color:change',this.updateCurrentColor.bind(this));Element.observe(this.field,'change',this.updateCurrentColor.bind(this))},positionWindow:function(){var offsetLeft=-5;var offsetTop=-5;var top=this.button.measure("top")+offsetTop;var left=this.button.measure("left")+offsetLeft;this.windowContainer.setStyle({'left':left+'px','top':top+'px'});this.updateWindowCurrentColor()},updateWindowCurrentColor:function(){this.windowCurrentColor.setStyle(this.getColorStyle(this.getFieldColor()))},openDialog:function(){this.positionWindow();Effect.SlideDown(this.windowContainer,{duration:0.2})},closeDialog:function(){Effect.SlideUp(this.windowContainer,{duration:0.2})},selectColor:function(event){var colorElt=event.findElement('.gfw-colorpalette-window .x-colorcell');if(colorElt){var color=colorElt.getAttribute('data-color');if(color){this.field.setValue(color);Event.fire(this.field,'color:change',{color:color})}
2454this.closeDialog()}},updateCurrentColor:function(){this.button.setStyle(this.getColorStyle(this.getFieldColor()));this.updateWindowCurrentColor()},getColorStyle:function(color){if(this.useOpacity){return{backgroundColor:color}}else{var rgbColor=new EyeCandies.RGBColor(color);var opaqueColor=rgbColor.toHex();var opacity=rgbColor.getOpacity();var opacity100=Math.floor(opacity*100);return{backgroundColor:opaqueColor,'-ms-filter':'progid:DXImageTransform.Microsoft.Alpha(Opacity='+opacity100+')','filter':'alpha(opacity='+opacity100+')'}}},getFieldColor:function(){var color=this.field.getValue();if(color){var rgbcolor=new EyeCandies.RGBColor(color);var colorOut;if(rgbcolor.ok){return colorOut=this.field.getValue()}else colorOut='#000000'}else{colorOut='#000000'}
2455return colorOut},setCurrentColor:function(color){this.field.setValue(color)},browserAllowsOpacity:function(){var color='rgb(0,0,0,0.1)';try
2456{var test=new Element('div');test.setStyle({color:color});return!0}catch(e){return!1}}});EyeCandies.OptionFontSelector=Class.create({initialize:function(field,noFontText,options){this.defaultOptions={fontoptions:[{"label":"Unknown Font","file":null,"image":null,"value":null}]};this.field=$(field);this.fieldLabel=$$("#"+field.id+"-label"+" "+".gfw-form-label-text").first().innerHTML;this.options=Object.extend(this.defaultOptions,options||{});this.initField();this.noFontText=noFontText},initField:function(){if(this.field){this.createWidget();this.createWindow();this.addObservers();this.setCurrentFont()}},createWidget:function(){this.widget=new Element('div',{'class':'gfw-fontselector-widget'});this.button=new Element('div',{'class':'x-currentfont'});Element.insert(this.field,{after:this.widget});Element.insert(this.widget,{bottom:this.button})},createWindow:function(){this.windowContainer=new Element('div',{'class':'gfw-fontselector-window-container','visibility':'hidden'});this.dimmer=new Element('div',{'class':'gfw-fontselector-dimmer'});this.window=new Element('div',{'class':'gfw-fontselector-window'});this.dragHandle=new Element('div',{'class':'x-drag-handle'});this.dragHandle.innerHTML=this.fieldLabel;this.fontlist=new Element('div',{'class':'x-fontlist'});this.closeButton=new Element('div',{'class':'x-close'});var fontoptions=this.options.fontoptions;if(fontoptions){for(var n=0;n<fontoptions.length;n++){var fontOption=fontoptions[n];if(fontOption.label&&(!fontOption.hasOwnProperty("value")||fontOption.value==""))fontOption.value=fontOption.label;Element.insert(this.fontlist,{bottom:this.buildFontItem(fontOption)})}}
2457Element.insert(this.windowContainer,{bottom:this.window});Element.insert(this.window,{bottom:this.dragHandle});Element.insert(this.window,{bottom:this.closeButton});Element.insert(this.window,{bottom:this.fontlist});Element.insert(this.widget,{after:this.windowContainer});Element.observe(this.fontlist,'click',this.selectFont.bind(this));Element.observe(this.closeButton,'click',this.closeDialog.bind(this));Element.observe(this.dimmer,'click',this.closeDialog.bind(this));Element.hide(this.windowContainer);new Draggable(this.windowContainer,{handle:this.dragHandle})},buildFontItem:function(fontOption){if(fontOption.hasOwnProperty('label')&&fontOption.label!=""){var fontItem=new Element('div');fontItem.addClassName("x-fontitem");fontItem.setAttribute("data-label",fontOption.label);fontItem.setAttribute("data-url",fontOption.url);fontItem.setAttribute("data-image",fontOption.image);fontItem.setAttribute("data-value",fontOption.value);var fontLabel=new Element('div');fontLabel.setAttribute("class","x-fontlabel");fontLabel.innerHTML=fontOption.label;var fontDisplay=new Element('div');fontDisplay.setAttribute("class","x-fontdisplay");Element.insert(fontItem,{bottom:fontDisplay});Element.insert(fontItem,{bottom:fontLabel});if(fontOption.image){fontDisplay.setStyle({backgroundImage:'url('+fontOption.image+')'})}
2458return fontItem}
2459return!1},buildEmptyFontItem:function(){var fontItem=new Element('div');fontItem.addClassName("x-fontitem x-empty");fontItem.setAttribute("data-label","");fontItem.setAttribute("data-url","");fontItem.setAttribute("data-image","");fontItem.setAttribute("data-value","");var fontLabel=new Element('div');fontLabel.setAttribute("class","x-fontlabel");fontLabel.innerHTML=this.noFontText;var fontDisplay=new Element('div');fontDisplay.setAttribute("class","x-fontdisplay");fontDisplay.innerHTML="...";Element.insert(fontItem,{bottom:fontDisplay});Element.insert(fontItem,{bottom:fontLabel});fontDisplay.setStyle({backgroundImage:'none'});return fontItem},addObservers:function(){Element.observe(this.widget,'click',this.openDialog.bind(this));Element.observe(this.field,'font:change',this.updateCurrentFont.bind(this));Element.observe(this.field,'change',this.updateCurrentFont.bind(this))},positionWindow:function(){var offsetLeft=-5;var offsetTop=-5;var top=this.widget.measure("top")+offsetTop;var left=this.widget.measure("left")+offsetLeft;
2459this.windowContainer.setStyle({'left':left+'px','top':top+'px','visibility':'visible'});this.windowContainer.style.width='700px';this.windowContainer.style.height='200px'},getFontByValueFromList:function(value){var fontoptions=this.options.fontoptions;if(fontoptions){for(var n=0;n<fontoptions.length;n++){var fontOption=fontoptions[n];if(fontOption.value==value)return fontOption}
2460return!1}},selectFont:function(evt){var fontItem=evt.findElement('.x-fontitem');if(fontItem){var value=fontItem.getAttribute("data-value");this.setCurrentFont(value)}},setCurrentFont:function(value){if(typeof(value)!=="undefined"){this.field.value=value}
2461this.updateCurrentFont();this.closeDialog()},updateCurrentFont:function(){var fontOption=this.getFontByValueFromList(this.field.value);var fontItem=this.buildFontItem(fontOption);if(this.button.parentNode){while(this.button.firstChild){Element.remove(this.button.firstChild)}}
2462if(fontItem){Element.insert(this.button,{bottom:fontItem})}else{Element.insert(this.button,{bottom:this.buildEmptyFontItem()})}},openDialog:function(){this.positionWindow();this.dim();Effect.SlideDown(this.windowContainer,{duration:0.2})},closeDialog:function(){this.undim();this.fontlist.scrollTop=0;Effect.SlideUp(this.windowContainer,{duration:0.2})},dim:function(){Element.insert(document.body,{bottom:this.dimmer})},undim:function(){if(this.dimmer.parentNode){Element.remove(this.dimmer)}}});EyeCandies.RGBColor=function(color_string){this.ok=!1;if(color_string.charAt(0)=='#')color_string=color_string.substr(1,6);color_string=color_string.replace(/ /g,'');color_string=color_string.toLowerCase();var simple_colors={aliceblue:'f0f8ff',antiquewhite:'faebd7',aqua:'00ffff',aquamarine:'7fffd4',azure:'f0ffff',beige:'f5f5dc',bisque:'ffe4c4',black:'000000',blanchedalmond:'ffebcd',blue:'0000ff',blueviolet:'8a2be2',brown:'a52a2a',burlywood:'deb887',cadetblue:'5f9ea0',chartreuse:'7fff00',chocolate:'d2691e',coral:'ff7f50',cornflowerblue:'6495ed',cornsilk:'fff8dc',crimson:'dc143c',cyan:'00ffff',darkblue:'00008b',darkcyan:'008b8b',darkgoldenrod:'b8860b',darkgray:'a9a9a9',darkgreen:'006400',darkkhaki:'bdb76b',darkmagenta:'8b008b',darkolivegreen:'556b2f',darkorange:'ff8c00',darkorchid:'9932cc',darkred:'8b0000',darksalmon:'e9967a',darkseagreen:'8fbc8f',darkslateblue:'483d8b',darkslategray:'2f4f4f',darkturquoise:'00ced1',darkviolet:'9400d3',deeppink:'ff1493',deepskyblue:'00bfff',dimgray:'696969',dodgerblue:'1e90ff',feldspar:'d19275',firebrick:'b22222',floralwhite:'fffaf0',forestgreen:'228b22',fuchsia:'ff00ff',gainsboro:'dcdcdc',ghostwhite:'f8f8ff',gold:'ffd700',goldenrod:'daa520',gray:'808080',green:'008000',greenyellow:'adff2f',honeydew:'f0fff0',hotpink:'ff69b4',indianred:'cd5c5c',indigo:'4b0082',ivory:'fffff0',khaki:'f0e68c',lavender:'e6e6fa',lavenderblush:'fff0f5',lawngreen:'7cfc00',lemonchiffon:'fffacd',lightblue:'add8e6',lightcoral:'f08080',lightcyan:'e0ffff',lightgoldenrodyellow:'fafad2',lightgrey:'d3d3d3',lightgreen:'90ee90',lightpink:'ffb6c1',lightsalmon:'ffa07a',lightseagreen:'20b2aa',lightskyblue:'87cefa',lightslateblue:'8470ff',lightslategray:'778899',lightsteelblue:'b0c4de',lightyellow:'ffffe0',lime:'00ff00',limegreen:'32cd32',linen:'faf0e6',magenta:'ff00ff',maroon:'800000',mediumaquamarine:'66cdaa',mediumblue:'0000cd',mediumorchid:'ba55d3',mediumpurple:'9370d8',mediumseagreen:'3cb371',mediumslateblue:'7b68ee',mediumspringgreen:'00fa9a',mediumturquoise:'48d1cc',mediumvioletred:'c71585',midnightblue:'191970',mintcream:'f5fffa',mistyrose:'ffe4e1',moccasin:'ffe4b5',navajowhite:'ffdead',navy:'000080',oldlace:'fdf5e6',olive:'808000',olivedrab:'6b8e23',orange:'ffa500',orangered:'ff4500',orchid:'da70d6',palegoldenrod:'eee8aa',palegreen:'98fb98',paleturquoise:'afeeee',palevioletred:'d87093',papayawhip:'ffefd5',peachpuff:'ffdab9',peru:'cd853f',pink:'ffc0cb',plum:'dda0dd',powderblue:'b0e0e6',purple:'800080',red:'ff0000',rosybrown:'bc8f8f',royalblue:'4169e1',saddlebrown:'8b4513',salmon:'fa8072',sandybrown:'f4a460',seagreen:'2e8b57',seashell:'fff5ee',sienna:'a0522d',silver:'c0c0c0',skyblue:'87ceeb',slateblue:'6a5acd',slategray:'708090',snow:'fffafa',springgreen:'00ff7f',steelblue:'4682b4',tan:'d2b48c',teal:'008080',thistle:'d8bfd8',tomato:'ff6347',turquoise:'40e0d0',violet:'ee82ee',violetred:'d02090',
2462wheat:'f5deb3',white:'ffffff',whitesmoke:'f5f5f5',yellow:'ffff00',yellowgreen:'9acd32'};for(var key in simple_colors){if(color_string==key){color_string=simple_colors[key]}}
2463var color_defs=[{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:['rgb(123, 234, 45)','rgb(255,234,245)'],process:function(bits){return[parseInt(bits[1]),parseInt(bits[2]),parseInt(bits[3]),100]}},{re:/^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d*(\.\d*)?)\)$/,example:['rgba(123, 234, 45, 0.5)','rgba(255,234,245,0.5)'],process:function(bits){return[parseInt(bits[1]),parseInt(bits[2]),parseInt(bits[3]),Math.floor(parseFloat(bits[4])*100)]}},{re:/^(\w{2})(\w{2})(\w{2})$/,example:['#00ff00','336699'],process:function(bits){return[parseInt(bits[1],16),parseInt(bits[2],16),parseInt(bits[3],16),100]}},{re:/^(\w{1})(\w{1})(\w{1})$/,example:['#fb0','f0f'],process:function(bits){return[parseInt(bits[1]+bits[1],16),parseInt(bits[2]+bits[2],16),parseInt(bits[3]+bits[3],16),100]}}];for(var i=0;i<color_defs.length;i++){var re=color_defs[i].re;var processor=color_defs[i].process;var bits=re.exec(color_string);if(bits){var channels=processor(bits);this.r=channels[0];this.g=channels[1];this.b=channels[2];this.a=channels[3];this.ok=!0}}
2464this.r=(this.r<0||isNaN(this.r))?0:((this.r>255)?255:this.r);this.g=(this.g<0||isNaN(this.g))?0:((this.g>255)?255:this.g);this.b=(this.b<0||isNaN(this.b))?0:((this.b>255)?255:this.b);this.a=(this.a<0||isNaN(this.a))?0:((this.a>100)?100:this.a);this.toRGB=function(){return'rgb('+this.r+', '+this.g+', '+this.b+')'};this.toRGBA=function(){return'rgba('+this.r+', '+this.g+', '+this.b+', '+this.a/100+')'};this.toHex=function(){var r=this.r.toString(16);var g=this.g.toString(16);var b=this.b.toString(16);if(r.length==1)r='0'+r;if(g.length==1)g='0'+g;if(b.length==1)b='0'+b;return'#'+r+g+b};this.getOpacity=function(){return this.a/100}};EyeCandies.ExpandablePanel=function(expandablePanel,expanded){this.init=function(){if(typeof(expanded)==='undefined')expanded=!1;if(typeof(expandablePanel)=="string")expandablePanel=document.getElementById(expandablePanel);if(typeof(expandablePanel)=="object"){this.panel=expandablePanel;this.header=this.panel.querySelector('.x-header');this.expicon=this.panel.querySelector('.x-header .x-expicon');this.content=this.panel.querySelector('.x-content');this.header.addEventListener('click',this.clickEvent.bind(this));this.content.addEventListener('transitionend',this.transitionEnd.bind(this));this.content.addEventListener('transitionstart',this.transitionStart.bind(this));if(!expanded){this.panel.classList.add("x-hidden");this.content.style.height='0';this.content.style.display='none'}else{this.content.style.display='';this.content.style.height=this.content.scrollHeight+'px'}}}
2465this.isHidden=function(){if(this.panel.classList.contains('x-hidden'))return!0;else return!1};this.clickEvent=function(){this.toggle()};this.toggle=function(){if(this.isHidden()){this.content.style.height='0';this.panel.classList.remove('x-hidden');this.content.style.display='';let scrollHeight=this.content.scrollHeight;this.content.style.height=scrollHeight+'px'}else{this.panel.classList.add('x-hidden');this.content.style.height='0'}};this.transitionStart=function(){if(this.content.style.height==='0px')this.content.style.display=''};this.transitionEnd=function(){if(this.content.style.height==='0px')this.content.style.display='none'}
2466this.init()};EyeCandies.AjaxGetAudiotelnumber=Class.create({initialize:function(event,ajaxurl,linkid){this.ajaxurl=ajaxurl;this.linkid=linkid;this.update(event)},update:function(event){var myself=this;Event.stop(event);new Ajax.Request(myself.ajaxurl,{method:'get',onComplete:function(xhr){if(xhr.status==200){var json_data_object=eval("("+xhr.responseText+")");switch(json_data_object.status){case 0:if($(myself.linkid)){var mydiv=document.createElement('div');mydiv.setAttribute('class',json_data_object.css);var myh=document.createElement('h3');myh.update(json_data_object.audiotelNumber);var myp=document.createElement('p');myp.update(json_data_object.audiotelPrice);mydiv.appendChild(myh);mydiv.appendChild(myp);$(myself.linkid).parentNode.replaceChild(mydiv,$(myself.linkid))}
2467break;case 1:case 2:case 3:alert('Incident technique, merci de réessayer ('+json_data_object.status+')');break}}else alert('Ajax request failed '+xhr.responseText)}});return(!1)}});EyeCandies.AceEditorInstaller=Class.create({initialize:function(id,formname,textareaname,options){this.id=id;this.editor=null;var form=null;var textArea=null;var elements=document.getElementsByName(formname);if(elements!=null)form=elements[0];elements=document.getElementsByName(formname+'_'+textareaname);if(elements!=null)textArea=elements[0];if(typeof(form)=='object'&&typeof(textArea)=='object'){this.defaultOptions={showprintmargin:!0,showgutter:!0,usewrapmode:!0,mode:'html',theme:'textmate',usesofttabs:!1,tabsize:2,useworker:!1,width:null,height:null,maxLines:null,minLines:null};this.options=this.defaultOptions;Object.extend(this.options,options||{});var width=this.options.width||textArea.getWidth();var height=this.options.height||textArea.getHeight();if(EyeCandies.isInteger(width))width=width+'px';if(EyeCandies.isInteger(height))height=height+'px';var container=document.createElement('div');container.setAttribute("id",this.id);container.setStyle({width:width,height:height});textArea.insert({after:container});textArea.hide();this.editor=ace.edit(container);if(this.options.hasOwnProperty('showgutter'))this.editor.renderer.setShowGutter(this.options.showgutter);if(this.options.hasOwnProperty('showprintmargin'))this.editor.renderer.getShowPrintMargin(this.options.showprintmargin);if(this.options.hasOwnProperty('mode'))this.editor.getSession().setMode("ace/mode/"+this.options.mode);if(this.options.hasOwnProperty('usewrapmode'))this.editor.getSession().setUseWrapMode(this.options.usewrapmode);if(this.options.hasOwnProperty('usesofttabs'))this.editor.getSession().setUseSoftTabs(this.options.usesofttabs);if(this.options.hasOwnProperty('showinvisibles'))this.editor.setShowInvisibles(this.options.showinvisibles);if(this.options.hasOwnProperty('navigatewithinsofttabs'))this.editor.getSession().setNavigateWithinSoftTabs(this.options.navigatewithinsofttabs);if(this.options.hasOwnProperty('tabsize'))this.editor.getSession().setTabSize(this.options.tabsize);if(this.options.hasOwnProperty('useworker'))this.editor.getSession().setUseWorker(this.options.useworker);if(this.options.hasOwnProperty('theme'))this.editor.setTheme("ace/theme/"+this.options.theme);this.editor.setOption('showPrintMargin',!1);if(this.options.hasOwnProperty('maxLines'))this.editor.setOption("maxLines",this.options.maxLines);if(this.options.hasOwnProperty('minLines'))this.editor.setOption("minLines",this.options.minLines);this.editor.$blockScrolling=Infinity;this.editor.setOptions({enableBasicAutocompletion:!0});this.editor.getSession().setValue(textArea.value);this.editor.resize(!0);Event.observe(form,"submit",function(){textArea.value=this.editor.getSession().getValue()}.bind(this))}}});EyeCandies.observeMouseOutScreen=Class.create({initialize:function(onmouseout){var t=this;document.observe("dom:loaded",function(event){t.x=parseInt(Event.pointerX(event));t.y=parseInt(Event.pointerY(event));var w=window.innerWidth||(window.document.documentElement.clientWidth||window.document.body.clientWidth);var h=window.innerHeight||(window.document.documentElement.clientHeight||window.document.body.clientHeight);document.onmousemove=function(moveevent){if(t.x==!1&&t.y==!1){t.x=parseInt(Event.pointerX(event));t.y=parseInt(Event.pointerY(event))}else{var xx=parseInt(Event.pointerX(moveevent));var yy=parseInt(Event.pointerY(moveevent));if(((yy<t.y)&&(yy-(t.y-yy))<0)||((yy>t.y)&&(yy+(yy-t.y))>h)||((xx<t.x)&&(xx-(t.x-xx))<0)||((xx>t.x)&&(xx+(xx-t.x))>w)){t.x=t.y=!1;document.fire("dom:winmouseout")}else{t.x=xx;t.y=yy}}}});document.observe("dom:winmouseout",onmouseout)}});EyeCandies.equalizeWidthsByGroups=function(groupSelector,labelSelector,fallbackWidth){if(typeof(fallbackWidth)=='undefined'||fallbackWidth==null)fallbackWidth=120;$$(groupSelector).each(function(group){var maxwidth=-1;group.select(labelSelector).each(function(label){label.style.width='auto';label.style.whiteSpace='nowrap';if(label.offsetWidth>maxwidth)maxwidth=label.offsetWidth});group.select(labelSelector).each(function(label){if(maxwidth==0&&fallbackWidth>0)maxwidth=fallbackWidth;label.style.width=maxwidth+'px'})})};EyeCandies.Hamburger=Class.create({initialize:function(){var eltHeader=document.getElementById('header__icon');
2467if(eltHeader!=null){$(eltHeader).observe("click",function(evt){Event.stop(evt);var bodyelt=$$('body')[0];$(bodyelt).toggleClassName('with--sidebar')}.bindAsEventListener(this))}
2468var elt=document.getElementById('site-cache');if(elt!=null){$(elt).observe("click",function(evt){Event.stop(evt);var bodyelt=$$('body')[0];$(bodyelt).removeClassName('with--sidebar')}.bindAsEventListener(this))}}});EyeCandies.createNotification=function(notificationsArray,type){if("alertify" in window){var notifications=[];if(typeof(notificationsArray)==='string'){notifications.push(notificationsArray)}else if(Object.isArray(notificationsArray)){notifications=notificationsArray}
2469for(var i=0;i<notifications.length;i++){alertify.notify(notifications[i],type)}}};EyeCandies.Swipeable=class
2470{el=null;options=null;startX=null;startY=null;curX=null;curY=null;delectedSwipeMainDirection=null;constructor(el,options){let defaultOptions={minLength:70,disableClick:!1,wantedMainDirection:'horizontal',preventUnwantedPageScroll:!0};if(typeof(options)!=='object')options=defaultOptions;options.minLength=options.minLength||defaultOptions.minLength;options.disableClick=options.disableClick||defaultOptions.disableClick;options.wantedMainDirection=options.wantedMainDirection||defaultOptions.wantedMainDirection;options.preventUnwantedPageScroll=options.preventUnwantedPageScroll||defaultOptions.preventUnwantedPageScroll;this.options=options;this.el=el;this.el.addEventListener("touchstart",this.onTouchStart.bind(this),{passive:!1});this.el.addEventListener("touchmove",this.onTouchMove.bind(this),{passive:!1});this.el.addEventListener("touchend",this.onTouchEnd.bind(this),{passive:!1});this.el.addEventListener("touchcancel",this.onTouchCancel.bind(this),{passive:!0})}
2471onTouchStart(event){if(event.touches.length===1){this.startX=event.touches[0].clientX;this.startY=event.touches[0].clientY;this.curX=event.touches[0].clientX;this.curY=event.touches[0].clientY}}
2472onTouchMove(event){if(event.touches.length===1){this.curX=event.touches[0].clientX;this.curY=event.touches[0].clientY;if(this.getMainDirection(this.getAngle())===this.options.wantedMainDirection&&this.options.preventUnwantedPageScroll&&event.cancelable)event.preventDefault()}else this.onTouchCancel(event)}
2473onTouchEnd(event){if(this.options.disableClick){if(event.cancelable)event.preventDefault()}
2474if(this.computeSwipeLength()>=this.options.minLength){this.el.dispatchEvent(new Event("swipe:"+this.getDirection(this.getAngle())))}
2475this.resetCoords()}
2476onTouchCancel(event){this.resetCoords()}
2477computeSwipeLength(){return Math.sqrt(Math.pow(this.curX-this.startX,2)+Math.pow(this.curY-this.startY,2))}
2478getAngle(){let x,y,r,angle;x=this.startX-this.curX;y=this.curY-this.startY;r=Math.atan2(y,x);angle=Math.round(r*180/Math.PI);if(angle<0)angle=360-Math.abs(angle);return angle}
2479getDirection(angle){let direction;if(angle<=45&&angle>=0)direction="left";else if(angle<=360&&angle>=315)direction="left";else if(angle>=135&&angle<=225)direction="right";else if(angle>45&&angle<135)direction="down";else direction="up";return direction}
2480getMainDirection(angle){let direction;if(angle<=45&&angle>=0)direction="horizontal";else if(angle<=360&&angle>=315)direction="horizontal";else if(angle>=135&&angle<=225)direction="horizontal";else if(angle>45&&angle<135)direction="vertical";else direction="vertical";return direction}
2481resetCoords(){this.startX=this.startY=this.curX=this.curY=null}}
2482EyeCandies.DatePicker=Class.create({initialize:function(dataField,triggerElement,displayFormat,dataFormat,locale,translations,datepickerpikadayoptions){this.dataField=$(dataField);this.triggerElement=$(triggerElement);this.displayFormat=displayFormat!=''?displayFormat:'YYYY-MM-DD';this.dataFormat=dataFormat!=''?dataFormat:'YYYY-MM-DD';this.locale=(typeof(locale)=='string'&&locale!='')?locale:'fr';this.translations=translations;this.displayField=this.createDisplayField(this.dataField);this.datepickerpikadayoptions=datepickerpikadayoptions;Element.stopObserving(this.displayField);Element.observe(this.displayField,'change',function(){this.updateDisplayField()}.bind(this));if(this.dataField&&this.triggerElement){if(typeof(Pikaday)=='function'){this.picker=this.createPicker()}}
2483this.updateDisplayField()},createPicker:function(){moment.locale(this.locale);var localMoment=moment();localMoment.locale(this.locale);var i18n_locale={previousMonth:this.translations.transPM,today:this.translations.transToday,nextMonth:this.translations.transNM,months:localMoment.localeData()._months,weekdays:localMoment.localeData()._weekdays,weekdaysShort:localMoment.localeData()._weekdaysShort};var options={field:this.dataField,trigger:this.triggerElement,format:this.dataFormat,gotoTodayButton:!0,i18n:i18n_locale,position:'bottom right',firstDay:1,onOpen:this.onOpen.bind(this),onSelect:this.onSelect.bind(this)};if(this.hasOwnProperty('datepickerpikadayoptions')&&typeof this.datepickerpikadayoptions==='object'){this.preparePikadayOptions();Object.extend(options,this.datepickerpikadayoptions)}
2484return new Pikaday(options)},preparePikadayOptions:function(){if(this.datepickerpikadayoptions!=null){if(this.datepickerpikadayoptions.hasOwnProperty('minDate')&&typeof this.datepickerpikadayoptions.minDate==="string"){this.datepickerpikadayoptions.minDate=new Date(this.datepickerpikadayoptions.minDate)}
2485if(this.datepickerpikadayoptions.hasOwnProperty('maxDate')&&typeof this.datepickerpikadayoptions.maxDate==="string"){this.datepickerpikadayoptions.maxDate=new Date(this.datepickerpikadayoptions.maxDate)}
2486if(Array.isArray(this.datepickerpikadayoptions.disableDayArray)){let datesDisabled=[];for(let i=0;i<this.datepickerpikadayoptions.disableDayArray.length;i++){let y=parseInt(this.datepickerpikadayoptions.disableDayArray[i].substr(0,4));let m=parseInt(this.datepickerpikadayoptions.disableDayArray[i].substr(5,2))-1;let d=parseInt(this.datepickerpikadayoptions.disableDayArray[i].substr(8,2));if(y>2000&&y<3000&&m>=0&&m<11&&d>0&&d<=31)datesDisabled.push((new Date(y,m,d)).getTime())}
2487delete this.datepickerpikadayoptions.disableDayArray;this.datepickerpikadayoptions.disableDayFn=function(day){return datesDisabled.includes(day.getTime())}.bind(this)}}},onOpen:function(){moment.locale(this.locale)},onSelect:function(){var moment=this.picker.getMoment();if(typeof(moment)=='object'){this.displayField.value=moment.format(this.displayFormat)}}
2487,createDisplayField:function(dataField){var displayField=dataField.clone(!1);displayField.removeAttribute('id');displayField.removeAttribute('name');dataField.style.display='none';dataField.insert({before:displayField});return displayField},updateDisplayField:function(){var date=this.displayField.value;if(date!=''){var m=moment(date,[this.displayFormat,'YYYY-MM-DD']);this.picker.setMoment(m)}else{this.displayFormat.value='';this.dataField.value=''}}});EyeCandies.HelpDialog=Class.create({initialize:function(header,text,width,height){var dialog=this;width=typeof(width)!='undefined'?width:'800px';height=typeof(height)!='undefined'?height:'80%';if(!alertify.HelpDialog){alertify.dialog('HelpDialog',function(){return{main:function(){},setup:function(){return{buttons:[],focus:{},options:{}}},build:function(){this.setContent('');this.setHeader('')},settings:{},hooks:{onshow:function(){var boundAutoSize=dialog.autoSize.bind(dialog);boundAutoSize.p_defer(width,height)}}}})}
2488this.dialog=alertify.HelpDialog().set({modal:!1,resizable:!0,padding:!1,maximizable:!0,closable:!0,transition:'fade',autoReset:!1,pinnable:!1});this.dialog.setContent('<div style="padding:1em">'+text+'</div>');this.dialog.setHeader('<img src="/src/images/icons/16/help.png" style="vertical-align: bottom;border:none;">&nbsp;'+header);this.autoSize(width,height)},show:function(){if(!this.dialog.isOpen())this.dialog.show()},close:function(){this.dialog.close()},autoSize:function(width,height){var contentChildElements=this.dialog.elements.content.childElements();var contentHeight=0;if(contentChildElements){contentChildElements.each(function(element){if(element.tagName!='SCRIPT')contentHeight+=Element.measure(element,'margin-box-height')})}
2489var headerHeight=Element.measure(this.dialog.elements.header,'margin-box-height');var footerHeight=Element.measure(this.dialog.elements.footer,'margin-box-height');var newHeight=contentHeight+headerHeight+footerHeight;var viewportDimensions=document.viewport.getDimensions();if(newHeight*1.05<viewportDimensions.height)this.dialog.resizeTo(width,newHeight);else this.dialog.resizeTo(width,height)},center:function(){var viewportDimensions=document.viewport.getDimensions();this.dialog.moveTo((viewportDimensions.width-this.dialog.elements.dialog.getWidth())/2,(viewportDimensions.height-this.dialog.elements.dialog.getHeight())/2)}});EyeCandies.openHelpDialog=function(helpDialogElement){if(helpDialogElement){var header=helpDialogElement.title;var content=helpDialogElement.innerHTML;if(content)(new EyeCandies.HelpDialog(header,content)).show()}};EyeCandies.openImageLinkAlert=function(imageLinkElement,size){alertify.defaults.preventBodyShift=!0;if(typeof(size)==="undefined")size="50%";if(imageLinkElement&&imageLinkElement.href){var title=imageLinkElement.title?imageLinkElement.title:'&nbsp;';var div=new Element('div',{'class':'gfw-image-link-alert-content',style:'width: 100%; height: 100%; background-image: url("'+imageLinkElement.href+'"); background-repeat: no-repeat; background-position: center center; background-size: contain;'});alertify.alert(title,div).set('transition','fade').set('resizable',!0).resizeTo(size,size).set('frameless',!0)}};EyeCandies.GfwSlidingDialog=Class.create({initialize:function(header,text,content){this.headerDiv=new Element('div');this.headerDiv.addClassName('x-header');this.textDiv=new Element('div');this.textDiv.addClassName('x-text');this.closeBtn=new Element('div');this.closeBtn.addClassName('x-closebtn');this.root=new Element('div');this.root.style.visible='hidden';this.root.addClassName("gfw-slidingdialog");this.root.addClassName("x-hidden");this.root.appendChild(this.headerDiv);this.root.appendChild(this.textDiv);this.root.appendChild(this.closeBtn);document.body.appendChild(this.root);EyeCandies.GfwSlidingDialog.instances.push(this);document.observe('keyup',function(evt){if(evt.which==27&&this.isShown())this.hide()}.bind(this));this.closeBtn.observe('click',function(){if(this.isShown())this.hide()}.bind(this));this.setHeader(header);this.setText(text);this.addContent(content);this.hide()},addClassName:function(className){this.root.addClassName(className);return this},addContent:function(content){if(content)this.root.appendChild(content);return content},setHeader:function(text){if(text)this.headerDiv.innerHTML=text;return this},setText:function(text){if(text)this.textDiv.innerHTML=text;return this},show:function(){this.expandBodyMargin();this.hideAll(this);this.root.removeClassName("x-hidden");this.root.addClassName("x-visible");this.root.style.bottom=0;return this},hide:function(){this.resetBodyMargin();this.root.addClassName("x-hidden");this.root.removeClassName("x-visible");this.root.style.bottom=-this.root.getHeight()+'px';return this},expandBodyMargin:function(){document.body.setStyle({transition:'margin-bottom ease 0.5s'});document.body.setStyle({marginBottom:this.root.getHeight()+'px'})},resetBodyMargin:function(){document.body.setStyle({marginBottom:null})},toggle:function(){if(this.isShown())this.hide();else this.show();return this},isShown:function(){return!this.root.hasClassName('x-hidden')},hideAll:function(except){EyeCandies.GfwSlidingDialog.hideAll(except)}});EyeCandies.GfwSlidingDialog.instances=[];EyeCandies.GfwSlidingDialog.hideAll=function(except){for(var i=0;i<EyeCandies.GfwSlidingDialog.instances.length;i++){var dialog=EyeCandies.GfwSlidingDialog.instances[i];if(except!==dialog&&dialog.isShown())dialog.hide()}};EyeCandies.TableDragnDropManager=Class.create({initialize:function(table,dragHandleSelector,dragHandleIdAttribute,dragMode,afterDropCallback){this.table=table;this.dragHandleSelector=dragHandleSelector;this.dragHandleIdAttribute=dragHandleIdAttribute;this.dragMode=dragMode||'between';this.afterDropCallback=afterDropCallback;this.dragHandles=null;this.installCallBacks()},installCallBacks:function(){if(this.table){this.dragHandles=this.table.select(this.dragHandleSelector);for(var i=0;i<this.dragHandles.length;i++){var dragHandle=this.dragHandles[i];dragHandle.setAttribute('draggable','true');Event.observe(dragHandle,'dragstart',this.dragStartCallback.bind(this));Event.observe(dragHandle,'dragenter',this.dragEnterCallback.bind(this));Event.observe(dragHandle,'dragleave',this.dragLeaveCallback.bind(this));Event.observe(dragHandle,'dragover',this.dragOverCallback.bind(this));Event.observe(dragHandle,'drop',this.dropCallback.bind(this))}}},getHandleDragData:function(dragHandle,attribute){if(dragHandle)return dragHandle.getAttribute(attribute)},dragStartCallback:function(event){event.stopPropagation();var draggedId=this.getHandleDragData(event.target,this.dragHandleIdAttribute);event.dataTransfer.setData('Text',draggedId);event.dataTransfer.effectAllowed='move';event.dataTransfer.dropEffect='move';var dragImage=$(event.target).up('tr');if(typeof event.dataTransfer.setDragImage=='function')event.dataTransfer.setDragImage(dragImage,0,0
2489);this.elementDragged=event.target},dragOverCallback:function(event){if(event.target==this.elementDragged)return;if(event.target.getAttribute(this.dragHandleIdAttribute)!=""){event.stopPropagation();event.preventDefault();var tr=event.target.up('tr');if(this.dragMode=="over"){tr.addClassName('x-drop-over')}else if(this.dragMode=="between"){var position=this.getDropPosition(event);if(position=='after'){tr.removeClassName('x-drop-before');tr.addClassName('x-drop-after')}else if(position=='before'){tr.removeClassName('x-drop-after');tr.addClassName('x-drop-before')}}}},cleanRowClasses:function(){if(!this.rows)this.rows=this.table.select('tr');this.rows.each(function(e){e.removeClassName('x-drop-over');e.removeClassName('x-drop-after');e.removeClassName('x-drop-before')})},dragEnterCallback:function(event){event.stopPropagation();event.preventDefault();this.cleanRowClasses()},dragLeaveCallback:function(){this.cleanRowClasses()},dropCallback:function(event){event.stopPropagation();event.preventDefault();this.cleanRowClasses();var draggedId=event.dataTransfer.getData('Text');var dropId=this.getHandleDragData(event.target,this.dragHandleIdAttribute);var dropPosition=this.getDropPosition(event);var rowsrcAttributeIdSelector=this.dragHandleIdAttribute+'='+draggedId;var rowdstAttributeIdSelector=this.dragHandleIdAttribute+'='+dropId;var rowsrc=this.table.select('td['+rowsrcAttributeIdSelector+']').first().up('tr');var rowdst=this.table.select('td['+rowdstAttributeIdSelector+']').first().up('tr');for(var i=0;i<this.dragHandles.length;i++){if(this.getHandleDragData(this.dragHandles[i],this.dragHandleIdAttribute)==draggedId){if(draggedId&&dropId){if(typeof(this.afterDropCallback)=="function")this.afterDropCallback({idsrc:draggedId,iddst:dropId,dropposition:dropPosition,rowsrc:rowsrc,rowdst:rowdst})}}}},getVerticalPositionInsideDroppable:function(event){var mouseYPosition=event.clientY;var targetYTop=event.target.getBoundingClientRect().top;var targetYHeight=event.target.getBoundingClientRect().height;return Math.round((mouseYPosition-targetYTop)/targetYHeight*100)},getDropPosition:function(event){var pos=this.getVerticalPositionInsideDroppable(event);if(this.dragMode=="over")return'over';else if(this.dragMode=="between"){if(pos>50)return'after';else return'before'}}});EyeCandies.GfwNav=Class.create({initialize:function(rootElt){this.rootElt=rootElt;Event.observe(this.rootElt,'click',this.handleTouchScreenMenuWithDoubleTouch.bind(this));Event.observe(this.rootElt,'touchstart',this.detectTouchScreen.bind(this));this.topNodes=this.rootElt.select('li.x-topnode.has-sub');this.topNodes.each(function(topNode){Event.observe(topNode,'mouseover',function(evt){this.enterNode(evt,topNode)}.bind(this))}.bind(this));this.isTouchDevice=!1;this.lastNodeTouched=null},handleTouchScreenMenuWithDoubleTouch:function(evt){if(this.isTouchDevice){evt=evt||window.event;var target=evt.target||evt.srcElement;var parentLi=target.up('li');if(this.lastNodeTouched!=target&&parentLi&&parentLi.hasClassName('has-sub')){evt.preventDefault()}
2490this.lastNodeTouched=target}},detectTouchScreen:function(){this.isTouchDevice=!0},enterNode:function(evt,topNode){this.fitMenuIntoToViewPort(topNode)},fitMenuIntoToViewPort:function(topNode){var node=topNode.down('ul');var left=Element.viewportOffset(topNode)[0];var viewportWidth=document.viewport.getWidth();var nodeWidth=node.getWidth();var topNodeWidth=topNode.getWidth();if(left+nodeWidth+100>viewportWidth){var position=topNodeWidth-nodeWidth;node.addClassName('x-right');node.setStyle({'left':position+'px'})}else{node.removeClassName('x-right');node.setStyle({'left':null})}}});EyeCandies.GfwVerticalNav=class
2491{rootElement=null;constructor(id){if(id){this.rootElement=document.getElementById(id);if(this.rootElement){this.setClosed();document.addEventListener('click',this.clickEventListener.bind(this))}}}
2492setClosed(){this.rootElement.classList.add('x-closed');this.rootElement.classList.remove('x-opened')}
2493setOpened(){this.rootElement.classList.add('x-opened');this.rootElement.classList.remove('x-closed')}
2494toggleOpen(event){if(this.rootElement.classList.contains('x-opened'))this.setClosed();else if(this.rootElement.classList.contains('x-closed'))this.setOpened();else this.setOpened()}
2495clickEventListener(event){const withinBoundaries=event.composedPath().includes(this.rootElement);if(withinBoundaries)this.toggleOpen();else if(event.target.closest('.gfw-vertical-nav-button'))this.toggleOpen();else this.setClosed()}}
2496EyeCandies.GfwDropDownButton={};EyeCandies.GfwDropDownButton.fitDropDownIntoViewport=function(button){var menu=button.up('.gfw-dropdownbutton').down('ul');if(typeof menu!='undefined'){var viewportWidth=document.viewport.getWidth();var left=Element.viewportOffset(button)[0];var menuWidth=menu.getWidth();var buttonWidth=button.getWidth();if(left+menuWidth+100>viewportWidth){var position=buttonWidth-menuWidth;menu.setStyle({'left':position+'px'})}else{menu.setStyle({'left':null})}}};EyeCandies.GfwMenuInstaller=class
2497{triggerElement;cannotHover=!1;menuSelector='.gfw-menu';menu;constructor(triggerElement){this.triggerElement=triggerElement;if(this.triggerElement){this.menu=this.triggerElement.querySelector(this.menuSelector);if(this.menu){if(window.matchMedia("(any-hover: none)").matches)this.cannotHover=!0;if(this.cannotHover)this.installMobileEventListeners();else this.installDesktopEventListeners();this.offsetLeft()}}}
2498manageClick(event){if(event.target.closest('a')&&!event.target.closest(this.menuSelector))event.preventDefault();this.toggleMenu()}
2499manageClickOutside(event){if(!this.triggerElement.contains(event.target)&&this.isOpened())this.closeMenu()}
2500manageMouseEnter(event){this.openMenu()}
2501manageMouseLeave(event){this.closeMenu()}
2502isOpened(){return this.menu.classList.contains('x-opened')}
2503openMenu(){this.menu.classList.add('x-opened');this.triggerElement.classList.add('x-menu-opened');this.fitMenuIntoViewport()}
2504closeMenu(){this.offsetLeft();this.menu.classList.remove('x-opened');this.triggerElement.classList.remove('x-menu-opened')}
2505toggleMenu(){if(this.isOpened())this.closeMenu();else this.openMenu()}
2506fitMenuIntoViewport(){this.offsetLeft();if(this.menu.getBoundingClientRect().left+this.menu.getBoundingClientRect().width+100>document.body.clientWidth)this.offsetRight()}
2507offsetLeft(){this.menu.classList.add('x-left');this.menu.classList.remove('x-right')}
2508offsetRight(){this.menu.classList.add('x-right');this.menu.classList.remove('x-left')}
2509installMobileEventListeners(){this.triggerElement.addEventListener('click',this.manageClick.bind(this));window.addEventListener('click',this.manageClickOutside.bind(this))}
2510installDesktopEventListeners(){this.triggerElement.addEventListener('mouseenter',this.manageMouseEnter.bind(this));this.triggerElement.addEventListener('mouseleave',this.manageMouseLeave.bind(this))}}
2511EyeCandies.isInteger=function(value){return typeof value==="number"&&isFinite(value)&&Math.floor(value)===value};EyeCandies.setDefaults=function(defaults){EyeCandies.domLoaded(function(){alertify.defaults.glossary.title=' ';alertify.defaults.transition='fade';alertify.defaults.glossary.ok=defaults.translations.alrt_glossary_ok;alertify.defaults.glossary.cancel=defaults.translations.alrt_glossary_cancel})};EyeCandies.extractCurrentScriptVersion=function(){if('currentScript' in document){var version=document.currentScript.src.match(/version=([0-9]+)/);if(version&&!isNaN(parseInt(version[1]))&&version[1]>0){return version[1]}
2512return null}};var version=EyeCandies.extractCurrentScriptVersion();var js=/eyecandies.js(\?.*)?$/;$$('script[src]').findAll(function(s){return s.src.match(js)}).each(function(s){var includes=s.src.match(/\?.*load=([a-z,]*)/);(includes?includes[1]:'bsn,carousel,iphonetoggle,gfwxhrdialog,docpreviewer,docdownloader,gfwfileupload,spinner').split(',').each(function(include){switch(include){case 'bsn':EyeCandies.requirejs('/src/javascript/autosuggest/js/bsn.AutoSuggest.js',version);break;case 'carousel':EyeCandies.requirejs('/src/javascript/carousel/carousel.min.js',version);break;case 'iphonetoggle':EyeCandies.requirejs('/src/javascript/iphonetoggle/iphonetoggle-mini.js',version);EyeCandies.requirecss('/src/javascript/iphonetoggle/style.css',version);break;case 'gfwxhrdialog':EyeCandies.requirejs('/src/javascript/gfwxhrdialog.js',version);break;case 'docpreviewer':EyeCandies.requirejs('/src/inc/docpreviewer/docpreviewer.js',version);EyeCandies.requirecss('/src/inc/docpreviewer/docpreviewer.css',version);break;case 'docdownloader':EyeCandies.requirejs('/src/inc/docdownloader/docdownloader.js',version);EyeCandies.requirecss('/src/inc/docdownloader/docdownloader.css',version);break;case 'gfwfileupload':EyeCandies.requirejs('/src/inc/gfwfileupload/gfwfileupload.js',version);EyeCandies.requirecss('/src/inc/gfwfileupload/gfwfileupload.css',version);break;case 'spinner':EyeCandies.requirejs('/src/javascript/spinner/spinner.js',version);EyeCandies.requirecss('/src/javascript/spinner/spinner.css',version);break}})});EyeCandies.overrideFormVarsAndSubmit=function(form,vars){if(form&&typeof vars=='object'){var alteredValues={};for(var property in vars){if(vars.hasOwnProperty(property)&&typeof form[property]=='object'){alteredValues[property]=form[property].value;form[property].value=vars[property]}}
2513if(typeof form.checkValidity=='function'){if(form.checkValidity())form.submit()}else form.submit();for(var property in alteredValues){if(alteredValues.hasOwnProperty(property)&&typeof form[property]=='object'){form[property].value=alteredValues[property]}}}};EyeCandies.launchDownload=function(url){if(url){var ifr=document.createElement('iframe');ifr.setAttribute('src',url);ifr.style.position='absolute';ifr.style.display='none';ifr.style.width='0px';ifr.style.height='0px';var onload=function(e){setTimeout(function(){document.body.removeChild(ifr)},2000)};ifr.addEventListener('load',onload);document.body.appendChild(ifr)}
2514return!1};EyeCandies.sprintf=function(format){var args=Array.prototype.slice.call(arguments,1);var i=0;return format.replace(/%s/g,function(){return args[i++]})};EyeCandies.GfwHScroller=function(targetElement,step){this.pos=0;if(step){this.step=step;this.fixedStep=!0}else{this.step=200;this.fixedStep=!1}
2514
2515if(typeof(targetElement)==='string')this.targetElement=document.querySelector(targetElement);else if(typeof(targetElement)==='object')this.targetElement=targetElement;else return!1;this.insertScroller();this.insertContainer();this.moveTargetElementInContainer();this.insertSlideButtons();if(!this.hscroller||!this.container)return!1;if(this.btnright)this.btnright.addEventListener('click',function(){this.sideScroll('right')}.bind(this));if(this.btnleft)this.btnleft.addEventListener('click',function(){this.sideScroll('left')}.bind(this));let debouncedScrollObserver=EyeCandies.debounce(function(event){this.refresh()}.bind(this),50,!1);this.container.addEventListener('scroll',debouncedScrollObserver);const resizeObserver=new ResizeObserver(function(entries){this.refresh()}.bind(this));resizeObserver.observe(this.container);this.refresh()};EyeCandies.GfwHScroller.prototype.refresh=function(){if(this.container.scrollLeft===0)this.blurElement(this.btnleft);else this.unblurElement(this.btnleft);if(this.container.scrollLeft>=this.container.scrollWidth-this.container.offsetWidth)this.blurElement(this.btnright);else this.unblurElement(this.btnright);this.pos=this.container.scrollLeft;if(this.fixedStep===!1)this.step=Math.ceil(this.container.offsetWidth*80/100);this.btnleft.style.height=this.container.offsetHeight+"px";this.btnright.style.height=this.container.offsetHeight+"px"};EyeCandies.GfwHScroller.prototype.blurElement=function(element){element.classList.add('x-blurred')}
2516EyeCandies.GfwHScroller.prototype.unblurElement=function(element){element.classList.remove('x-blurred')}
2517EyeCandies.GfwHScroller.prototype.sideScroll=function(direction){if(direction==='left')this.pos-=this.step;else this.pos+=this.step;if(this.pos<0)this.pos=0;else if(this.pos>this.container.scrollWidth-this.container.offsetWidth)this.pos=this.container.scrollWidth-this.container.offsetWidth;this.container.scrollTo({left:this.pos,behavior:'smooth'})};EyeCandies.GfwHScroller.prototype.insertSlideButtons=function(){this.btnleft=this.createButton('left');this.btnright=this.createButton('right');this.hscroller.insertBefore(this.btnleft,this.container);this.hscroller.insertBefore(this.btnright,null);this.blurElement(this.btnleft);this.blurElement(this.btnright)};EyeCandies.GfwHScroller.prototype.createButton=function(direction){let button=document.createElement('div');button.classList.add('x-slidebtn');if(direction==='left')button.classList.add('x-slideleft');else if(direction==='right')button.classList.add('x-slideright');return button};EyeCandies.GfwHScroller.prototype.insertContainer=function(){let container=document.createElement('div');container.classList.add('x-container');this.container=container;this.hscroller.appendChild(this.container)};EyeCandies.GfwHScroller.prototype.insertScroller=function(){let hscroller=document.createElement('div');hscroller.classList.add('gfw-hscroller');this.hscroller=hscroller;this.targetElement.parentElement.insertBefore(this.hscroller,this.targetElement)};EyeCandies.GfwHScroller.prototype.moveTargetElementInContainer=function(){this.container.appendChild(this.targetElement);this.targetElement.style.width="max-content"};EyeCandies.GfwFavoriteButtonClickHandler=function(event,href,translations){const formData=new FormData();const element=event.target;formData.append('payload',element.getAttribute('data-payload'));if(window.fetch){fetch(href,{method:'POST',body:formData}).then(function(response){return response.json()}).then(function(data){if(data.hasOwnProperty('favorite')){if(data.favorite===!0){element.classList.add("x-favorite-on");element.classList.remove("x-favorite-off");if(translations){EyeCandies.createNotification(translations.notifyon,'success');element.setAttribute("title",translations.titleon)}}else{element.classList.remove("x-favorite-on");element.classList.add("x-favorite-off");if(translations){EyeCandies.createNotification(translations.notifyoff,'success');element.setAttribute("title",translations.titleoff)}}}}).catch(function(error){return EyeCandies.createNotification(error,'error')})}}
2518EyeCandies.MouseHoldEventTracker=class
2519{delayHold=75;delayKickIn=1000;intervalHold=null;timeoutKickIn=null;holdIsActive=!1;constructor(buttonElement,callback){this.callback=callback;buttonElement.addEventListener('mousedown',function(e){this.timeoutKickIn=setTimeout(this.kickIn.bind(this),this.delayKickIn)}.bind(this));buttonElement.addEventListener('mouseleave',this.clearKickIn.bind(this));buttonElement.addEventListener('mouseup',this.clearKickIn.bind(this));buttonElement.addEventListener('mousedown',function(e){this.clearHoldInterval();this.intervalHold=setInterval(this.hold.bind(this),this.delayHold)}.bind(this));buttonElement.addEventListener('mouseleave',this.clearHoldInterval.bind(this));buttonElement.addEventListener('mouseup',this.clearHoldInterval.bind(this))}
2520hold(){if(this.holdIsActive){this.callback.call(this)}};kickIn(){this.holdIsActive=!0};clearKickIn(){this.holdIsActive=!1;if(this.timeoutKickIn){clearTimeout(this.timeoutKickIn);this.timeoutKickIn=null}};clearHoldInterval(){if(this.intervalHold){clearInterval(this.intervalHold);this.intervalHold=null}}}
2521EyeCandies.GfwInputQuantity=class
2522{componentroot;input;stepUpButton;stepDownButton;min;max;step;debouncedDispatchChangeEvent;constructor(componentroot){this.componentroot=componentroot;if(this.componentroot){this.input=this.componentroot.querySelector('.x-quantity-input');if(this.input){this.min=this.resolveElementMin();this.max=this.resolveElementMax();this.step=this.resolveElementStep();this.stepUpButton=this.input.parentNode.querySelector('.x-stepup');this.stepDownButton=this.input.parentNode.querySelector('.x-stepdown');this.manageStepButtons();this.input.addEventListener('change',this.changeEventListener.bind(this));this.debouncedDispatchChangeEvent=EyeCandies.debounce(this.dispatchChangeEvent.bind(this),500)}}}
2523changeEventListener(event){let originalValue=this.input.value;
2523let correctedValue=this.fetchClosestValidQuantity(this.getInputValue());if(correctedValue.toString()!==this.input.value.toString()){this.input.dispatchEvent(new CustomEvent("quantitywascorrected",{bubbles:!0,detail:{originalValue:originalValue,correctedValue:correctedValue}}))}else{this.input.dispatchEvent(new CustomEvent("quantityisnowvalid",{bubbles:!0}))}
2524this.setInputValue(correctedValue)}
2525dispatchChangeEvent(){this.input.dispatchEvent(new Event('change',{bubbles:!0}))}
2526manageStepButtons(){if(this.stepUpButton&&this.stepDownButton){this.stepUpButton.addEventListener('click',this.stepUp.bind(this));this.stepDownButton.addEventListener('click',this.stepDown.bind(this));new EyeCandies.MouseHoldEventTracker(this.stepUpButton,this.stepUp.bind(this));new EyeCandies.MouseHoldEventTracker(this.stepDownButton,this.stepDown.bind(this))}}
2527resolveElementInitialQuantity(){let initialQuantity=parseInt(this.input.dataset.initialQuantity);if(isNaN(initialQuantity))initialQuantity=1;return initialQuantity}
2528resolveElementMin(){let min=parseInt(this.input.dataset.min);if(isNaN(min)||min<=0)min=1;return min}
2529resolveElementMax(){let max=parseInt(this.input.dataset.max);if(isNaN(max)||max<0)max=0;return max}
2530resolveElementStep(){let step=parseInt(this.input.dataset.step);if(isNaN(step)||step<=1)step=1;return step}
2531stepUp(){this.setInputValue(this.findNextValidQuantity(this.getInputValue()));this.debouncedDispatchChangeEvent()}
2532stepDown(){this.setInputValue(this.findPreviousValidQuantity(this.getInputValue()));this.debouncedDispatchChangeEvent()}
2533findNextValidQuantity(value){return this.fetchClosestValidQuantity(value+1)}
2534findPreviousValidQuantity(value){return this.fetchClosestValidQuantity(value-this.step)}
2535getInputValue(){let value=parseInt(this.input.value);if(isNaN(value))value=this.resolveElementInitialQuantity();if(isNaN(value))value=1;return value}
2536setInputValue(value){this.input.value=this.fetchClosestValidQuantity(value)}
2537fetchClosestValidQuantity(value){if(isNaN(value))value=this.resolveElementInitialQuantity();value=this.fitQuantityLimits(value);return value}
2538fitQuantityStep(value){if(this.step>0){if(this.min>0&&value===this.min)return value;else if(this.max>0&&value===this.max)return value;else{if(this.min>0&&value<this.min)return this.min;else if(this.max>0&&value>this.max)return this.max;else{let mod=value%this.step;if(mod===0)return value;else return(value-mod)+this.step}}}else return value}
2539fitQuantityLimits(value){value=this.fitQuantityStep(value);if(this.min>0&&value<this.min)return this.min;else if(this.max>0&&value>this.max)return this.max;return value}};/*! alertifyjs - v1.13.1 - Mohammad Younes <[email protected]> (http://alertifyjs.com) */
2540!function(ze){"use strict";var e=":not(:disabled):not(.ajs-reset)",Ee={ENTER:13,ESC:27,F1:112,F12:123,LEFT:37,RIGHT:39,TAB:9},je={autoReset:!0,basic:!1,closable:!0,closableByDimmer:!0,invokeOnCloseOff:!1,frameless:!1,defaultFocusOff:!1,maintainFocus:!0,maximizable:!0,modal:!0,movable:!0,moveBounded:!1,overflow:!0,padding:!0,pinnable:!0,pinned:!0,preventBodyShift:!1,resizable:!0,startMaximized:!1,transition:"pulse",transitionOff:!1,tabbable:["button","[href]","input","select","textarea",'[tabindex]:not([tabindex^="-"])'+e].join(e+","),notifier:{delay:5,position:"bottom-right",closeButton:!1,classes:{base:"alertify-notifier",prefix:"ajs-",message:"ajs-message",top:"ajs-top",right:"ajs-right",bottom:"ajs-bottom",left:"ajs-left",center:"ajs-center",visible:"ajs-visible",hidden:"ajs-hidden",close:"ajs-close"}},glossary:{title:"AlertifyJS",ok:"OK",cancel:"Cancel",acccpt:"Accept",deny:"Deny",confirm:"Confirm",decline:"Decline",close:"Close",maximize:"Maximize",restore:"Restore"},theme:{input:"ajs-input",ok:"ajs-ok",cancel:"ajs-cancel"},hooks:{preinit:function(){},postinit:function(){}}},Me=[];function Ne(e,t){e.className+=" "+t}function Le(e,t){for(var n=e.className.split(" "),i=t.split(" "),s=0;s<i.length;s+=1){var o=n.indexOf(i[s]);-1<o&&n.splice(o,1)}e.className=n.join(" ")}function Ae(){return"rtl"===ze.getComputedStyle(document.body).direction}function Ie(){return document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop}function Se(){return document.documentElement&&document.documentElement.scrollLeft||document.body.scrollLeft}function Pe(e){for(;e.lastChild;)e.removeChild(e.lastChild)}function We(e){if(null===e)return e;if(Array.isArray(e)){for(var t=[],n=0;n<e.length;n+=1)t.push(We(e[n]));return t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return(t=new RegExp(e.source)).global=e.global,t.ignoreCase=e.ignoreCase,t.multiline=e.multiline,t.lastIndex=e.lastIndex,t;if("object"!=typeof e)return e;for(var i in t={},e)e.hasOwnProperty(i)&&(t[i]=We(e[i]));return t}function Fe(e,t){var n;e.elements&&((n=e.elements.root).parentNode.removeChild(n),delete e.elements,e.settings=We(e.__settings),e.__init=t,delete e.__internal)}var o=!1;try{var t=Object.defineProperty({},"passive",{get:function(){o=!0}});ze.addEventListener("test",t,t),ze.removeEventListener("test",t,t)}catch(e){}var Re=function(e,t,n,i,s){e.addEventListener(t,n,o?{capture:i,passive:s}:!0===i)},Be=function(e,t,n,i,s){e.removeEventListener(t,n,o?{capture:i,passive:s}:!0===i)},De=function(){var e,t,n=!1,i={animation:"animationend",OAnimation:"oAnimationEnd oanimationend",msAnimation:"MSAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(e in i)if(void 0!==document.documentElement.style[e]){t=i[e],n=!0;break}return{type:t,supported:n}}();function Ue(n,i){return function(){if(0<arguments.length){for(var e=[],t=0;t<arguments.length;t+=1)e.push(arguments[t]);return e.push(n),i.apply(n,e)}return i.apply(n,[null,n])}}function Xe(e,t){return{index:e,button:t,cancel:!1}}function Ye(e,t){if("function"==typeof t.get(e))return t.get(e).call(t)}var a,l,r,n,m=function(){var o,a,f=[],l=!1,r=-1<ze.navigator.userAgent.indexOf("Safari")&&ze.navigator.userAgent.indexOf("Chrome")<0,h='<div class="ajs-dimmer"></div>',p='<div class="ajs-modal" tabindex="0"></div>
2540',b='<div class="ajs-dialog" tabindex="0"></div>',v='<button class="ajs-reset"></button>',g='<div class="ajs-commands"><button class="ajs-pin"></button><button class="ajs-maximize"></button><button class="ajs-close"></button></div>',y='<div class="ajs-header"></div>',_='<div class="ajs-body"></div>',k='<div class="ajs-content"></div>',x='<div class="ajs-footer"></div>',H={primary:'<div class="ajs-primary ajs-buttons"></div>',auxiliary:'<div class="ajs-auxiliary ajs-buttons"></div>'},O='<button class="ajs-button"></button>',T='<div class="ajs-handle"></div>',w={animationIn:"ajs-in",animationOut:"ajs-out",base:"alertify",basic:"ajs-basic",capture:"ajs-capture",closable:"ajs-closable",fixed:"ajs-fixed",frameless:"ajs-frameless",hidden:"ajs-hidden",maximize:"ajs-maximize",maximized:"ajs-maximized",maximizable:"ajs-maximizable",modeless:"ajs-modeless",movable:"ajs-movable",noSelection:"ajs-no-selection",noOverflow:"ajs-no-overflow",noPadding:"ajs-no-padding",pin:"ajs-pin",pinnable:"ajs-pinnable",prefix:"ajs-",resizable:"ajs-resizable",restore:"ajs-restore",shake:"ajs-shake",unpinned:"ajs-unpinned",noTransition:"ajs-no-transition"};function c(e){if(!e.__internal){var t;Ge.defaults.hooks.preinit(e),delete e.__init,e.__settings||(e.__settings=We(e.settings)),"function"==typeof e.setup?((t=e.setup()).options=t.options||{},t.focus=t.focus||{}):t={buttons:[],focus:{element:null,select:!1},options:{}},"object"!=typeof e.hooks&&(e.hooks={});var n=[];if(Array.isArray(t.buttons))for(var i=0;i<t.buttons.length;i+=1){var s,o=t.buttons[i],a={};for(s in o)o.hasOwnProperty(s)&&(a[s]=o[s]);n.push(a)}var l=e.__internal={isOpen:!1,activeElement:document.body,timerIn:void 0,timerOut:void 0,buttons:n,focus:t.focus,options:{title:void 0,modal:void 0,basic:void 0,frameless:void 0,defaultFocusOff:void 0,pinned:void 0,movable:void 0,moveBounded:void 0,resizable:void 0,autoReset:void 0,closable:void 0,closableByDimmer:void 0,invokeOnCloseOff:void 0,maximizable:void 0,startMaximized:void 0,pinnable:void 0,transition:void 0,transitionOff:void 0,padding:void 0,overflow:void 0,onshow:void 0,onclosing:void 0,onclose:void 0,onfocus:void 0,onmove:void 0,onmoved:void 0,onresize:void 0,onresized:void 0,onmaximize:void 0,onmaximized:void 0,onrestore:void 0,onrestored:void 0},resetHandler:void 0,beginMoveHandler:void 0,beginResizeHandler:void 0,bringToFrontHandler:void 0,modalClickHandler:void 0,buttonsClickHandler:void 0,commandsClickHandler:void 0,transitionInHandler:void 0,transitionOutHandler:void 0,destroy:void 0},r={};r.root=document.createElement("div"),r.root.style.display="none",r.root.className=w.base+" "+w.hidden+" ",r.root.innerHTML=h+p,r.dimmer=r.root.firstChild,r.modal=r.root.lastChild,r.modal.innerHTML=b,r.dialog=r.modal.firstChild,r.dialog.innerHTML=v+g+y+_+x+T+v,r.reset=[],r.reset.push(r.dialog.firstChild),r.reset.push(r.dialog.lastChild),r.commands={},r.commands.container=r.reset[0].nextSibling,r.commands.pin=r.commands.container.firstChild,r.commands.maximize=r.commands.pin.nextSibling,r.commands.close=r.commands.maximize.nextSibling,r.header=r.commands.container.nextSibling,r.body=r.header.nextSibling,r.body.innerHTML=k,r.content=r.body.firstChild,r.footer=r.body.nextSibling,r.footer.innerHTML=H.auxiliary+H.primary,r.resizeHandle=r.footer.nextSibling,r.buttons={},r.buttons.auxiliary=r.footer.firstChild,r.buttons.primary=r.buttons.auxiliary.nextSibling,r.buttons.primary.innerHTML=O,r.buttonTemplate=r.buttons.primary.firstChild,r.buttons.primary.removeChild(r.buttonTemplate);for(var c,d=0;d<e.__internal.buttons.length;d+=1){var u,m=e.__internal.buttons[d];for(u in f.indexOf(m.key)<0&&f.push(m.key),m.element=r.buttonTemplate.cloneNode(),m.element.innerHTML=m.text,"string"==typeof m.className&&""!==m.className&&Ne(m.element,m.className),m.attrs)"className"!==u&&m.attrs.hasOwnProperty(u)&&m.element.setAttribute(u,m.attrs[u]);("auxiliary"===m.scope?r.buttons.auxiliary:r.buttons.primary).appendChild(m.element)}for(c in e.elements=r,l.resetHandler=Ue(e,q),l.beginMoveHandler=Ue(e,re),l.beginResizeHandler=Ue(e,ve),l.bringToFrontHandler=Ue(e,C),l.modalClickHandler=Ue(e,F),l.buttonsClickHandler=Ue(e,U),l.commandsClickHandler=Ue(e,E),l.transitionInHandler=Ue(e,V),l.transitionOutHandler=Ue(e,Q),l.options)void 0!==t.options[c]?e.set(c,t.options[c]):Ge.defaults.hasOwnProperty(c)?e.set(c,Ge.defaults[c]):"title"===c&&e.set(c,Ge.defaults.glossary[c]);"function"==typeof e.build&&e.build(),Ge.defaults.hooks.postinit(e)}document.body.appendChild(e.elements.root)}function d(){ze.scrollTo(o,a)}function u(){for(var e=0,t=0;t<Me.length;t+=1){var n=Me[t];(n.isModal()||n.isMaximized())&&(e+=1)}0===e&&0<=document.body.className.indexOf(w.noOverflow)?(Le(document.body,w.noOverflow),i(!1)):0<e&&document.body.className.indexOf(w.noOverflow)<0&&(i(!0),Ne(document.body,w.noOverflow))}var t="",n=0;function i(e){Ge.defaults.preventBodyShift&&(e&&document.documentElement.scrollHeight>document.documentElement.clientHeight?(n=a,t=ze.getComputedStyle(document.body).top,Ne(document.body,w.fixed),document.body.style.top=-a+"px"):e||(a=n,document.body.style.top=t,Le(document.body,w.fixed),d()))}function C(e,t){for(var n=Me.indexOf(t)+1;n<Me.length;n+=1)if(Me[n].isModal())return;return document.body.lastChild!==t.elements.root&&(document.body.appendChild(t.elements.root),Me.splice(Me.indexOf(t),1),Me.push(t),G(t)),!1}function m(e,t,n,i){switch(t){case"title":e.setHeader(i);break;case"modal":(d=e).get("modal")?(Le(d.elements.root,w.modeless),d.isOpen()&&(He(d),S(d),u(
2540))):(Ne(d.elements.root,w.modeless),d.isOpen()&&(xe(d),S(d),u()));break;case"basic":((c=e).get("basic")?Ne:Le)(c.elements.root,w.basic);break;case"frameless":((c=e).get("frameless")?Ne:Le)(c.elements.root,w.frameless);break;case"pinned":(r=e).get("pinned")?(Le(r.elements.root,w.unpinned),r.isOpen()&&I(r)):(Ne(r.elements.root,w.unpinned),r.isOpen()&&!r.isModal()&&A(r));break;case"closable":(r=e).get("closable")?(Ne(r.elements.root,w.closable),function(e){Re(e.elements.modal,"click",e.__internal.modalClickHandler)}(r)):(Le(r.elements.root,w.closable),function(e){Be(e.elements.modal,"click",e.__internal.modalClickHandler)}(r));break;case"maximizable":((l=e).get("maximizable")?Ne:Le)(l.elements.root,w.maximizable);break;case"pinnable":((l=e).get("pinnable")?Ne:Le)(l.elements.root,w.pinnable);break;case"movable":(a=e).get("movable")?(Ne(a.elements.root,w.movable),a.isOpen()&&Oe(a)):(ue(a),Le(a.elements.root,w.movable),a.isOpen()&&Te(a));break;case"resizable":(o=e).get("resizable")?(Ne(o.elements.root,w.resizable),o.isOpen()&&we(o)):(_e(o),Le(o.elements.root,w.resizable),o.isOpen()&&Ce(o));break;case"padding":i?Le(e.elements.root,w.noPadding):e.elements.root.className.indexOf(w.noPadding)<0&&Ne(e.elements.root,w.noPadding);break;case"overflow":i?Le(e.elements.root,w.noOverflow):e.elements.root.className.indexOf(w.noOverflow)<0&&Ne(e.elements.root,w.noOverflow);break;case"transition":s=e,a=i,"string"==typeof(o=n)&&Le(s.elements.root,w.prefix+o),Ne(s.elements.root,w.prefix+a),s.elements.root.offsetWidth;break;case"transitionOff":((s=e).get("transitionOff")?Ne:Le)(s.elements.root,w.noTransition)}var s,o,a,l,r,c,d;"function"==typeof e.hooks.onupdate&&e.hooks.onupdate.call(e,t,n,i)}function z(e,t,n,i,s){var o,a={op:void 0,items:[]};if(void 0===s&&"string"==typeof i)a.op="get",t.hasOwnProperty(i)?(a.found=!0,a.value=t[i]):(a.found=!1,a.value=void 0);else if(a.op="set","object"==typeof i){var l,r=i;for(l in r)t.hasOwnProperty(l)?(t[l]!==r[l]&&(o=t[l],t[l]=r[l],n.call(e,l,o,r[l])),a.items.push({key:l,value:r[l],found:!0})):a.items.push({key:l,value:r[l],found:!1})}else{if("string"!=typeof i)throw new Error("args must be a string or object");t.hasOwnProperty(i)?(t[i]!==s&&(o=t[i],t[i]=s,n.call(e,i,o,s)),a.items.push({key:i,value:s,found:!0})):a.items.push({key:i,value:s,found:!1})}return a}function s(t){var n;D(t,function(e){return n=!0!==t.get("invokeOnCloseOff")&&!0===e.invokeOnClose}),!n&&t.isOpen()&&t.close()}function E(e,t){switch(e.srcElement||e.target){case t.elements.commands.pin:(t.isPinned()?M:j)(t);break;case t.elements.commands.maximize:(t.isMaximized()?L:N)(t);break;case t.elements.commands.close:s(t)}return!1}function j(e){e.set("pinned",!0)}function M(e){e.set("pinned",!1)}function N(e){Ye("onmaximize",e),Ne(e.elements.root,w.maximized),e.isOpen()&&u(),Ye("onmaximized",e)}function L(e){Ye("onrestore",e),Le(e.elements.root,w.maximized),e.isOpen()&&u(),Ye("onrestored",e)}function A(e){var t=Se();e.elements.modal.style.marginTop=Ie()+"px",e.elements.modal.style.marginLeft=t+"px",e.elements.modal.style.marginRight=-t+"px"}function I(e){var t,n,i=parseInt(e.elements.modal.style.marginTop,10),s=parseInt(e.elements.modal.style.marginLeft,10);e.elements.modal.style.marginTop="",e.elements.modal.style.marginLeft="",e.elements.modal.style.marginRight="",e.isOpen()&&(n=t=0,""!==e.elements.dialog.style.top&&(t=parseInt(e.elements.dialog.style.top,10)),isNaN(i)||(e.elements.dialog.style.top=t+(i-Ie())+"px"),""!==e.elements.dialog.style.left&&(n=parseInt(e.elements.dialog.style.left,10)),isNaN(s)||(e.elements.dialog.style.left=n+(s-Se())+"px"))}function S(e){(e.get("modal")||e.get("pinned")?I:A)(e)}var P=!1,W=0;function F(e,t){200<e.timeStamp-W&&(W=e.timeStamp)&&!P&&(e=e.srcElement||e.target,!0===t.get("closableByDimmer")&&e===t.elements.modal&&s(t)),P=!1}var R=0,B=!1;function D(e,t){if(200<Date.now()-R&&(R=Date.now()))for(var n=0;n<e.__internal.buttons.length;n+=1){var i=e.__internal.buttons[n];if(!i.element.disabled&&t(i)){i=Xe(n,i);"function"==typeof e.callback&&e.callback.apply(e,[i]),!1===i.cancel&&e.close();break}}}function U(e,t){var n=e.srcElement||e.target;D(t,function(e){return e.element===n&&(B=!0)})}function X(e){if(!B){var t=Me[Me.length-1],n=e.keyCode;return 0===t.__internal.buttons.length&&n===Ee.ESC&&!0===t.get("closable")?(s(t),!1):-1<f.indexOf(n)?(D(t,function(e){return e.key===n}),!1):void 0}B=!1}function Y(e){var t=Me[Me.length-1],n=e.keyCode;if(n===Ee.LEFT||n===Ee.RIGHT){for(var i=t.__internal.buttons,s=0;s<i.length;s+=1)if(document.activeElement===i[s].element)switch(n){case Ee.LEFT:return void i[(s||i.length)-1].element.focus();case Ee.RIGHT:return void i[(s+1)%i.length].element.focus()}}else if(n<Ee.F12+1&&n>Ee.F1-1&&-1<f.indexOf(n))return e.preventDefault(),e.stopPropagation(),D(t,function(e){return e.key===n}),!1}function G(e,t){if(t)t.focus();else{var n=e.__internal.focus,i=n.element;switch(typeof n.element){case"number":e.__internal.buttons.length>n.element&&(i=!0===e.get("basic")?e.elements.reset[0]:e.__internal.buttons[n.element].element);break;case"string":i=e.elements.body.querySelector(n.element);break;case"function":i=n.element.call(e)}(i=!0===e.get("defaultFocusOff")||null==i&&0===e.__internal.buttons.length?e.elements.reset[0]:i)&&i.focus&&(i.focus(),n.select&&i.select&&i.select())}}function q(e,t){if(!t)for(var n=Me.length-1;-1<n;--n)if(Me[n].isModal()){t=Me[n];break}var i,s,o,a,l;t&&t.isModal()&&(i=t.elements.reset[0],s=t.elements.reset[1],o=e.relatedTarget,a=t.elements.root.contains(o),(e=e.srcElement||e.target)===i&&!a||e===s&&o===i||(e===s||e===document.body?l=i:e===i&&o===s?l=K(t):e===i&&a&&(l=K(t,!0)),G(t,l)))}function K(e,t){var n=[].slice.call(e.elements.dialog.querySelectorAll(je.tabbable));t&&n.reverse();for(var i=0;i<n.length;i+=1){var s=n[i];if(s.offsetParent||s.offsetWidth||s.offsetHeight||s.getClientRects().length)return s}}function J(e){var t=Me[Me.length-1];t&&e.shiftKey&&e.keyCode===Ee.TAB&&t.elements.reset[1].focus()}function V(e,t){clearTimeout(t.__internal.timerIn),G(t),B=!1,Ye("onfocus",t),Be(t.elements.dialog,De.type,t.__internal.transitionInHandler),Le(t.elements.root,w.animationIn)}function Q(e,t){clearTimeout(t.__internal.timerOut),Be(t.elements.dialog,De.type,t.__internal.transitionOutHandler),ue(t),_e(t),t.isMaximized()&&!t.get("startMaximized")&&L(t),"function"==typeof t.__internal.destroy&&t.__internal.destroy.apply(t)}var Z=null,$=0,ee=0,te="pageX",ne="pageY",ie=null,se=!1,oe=null;function ae(e,t){var n=e[te]-$,e=e[ne]-ee;se&&(e-=document.body.scrollTop),t.style.left=n+"px",t.style.top=e+"px"}function le(e,t){var n=e[te]-$,e=e[ne]-ee;se&&(e-=document.body.scrollTop),t.style.left=Math.min(ie.maxLeft,Math.max(ie.minLeft,n))+"px",t.style.top=se?Math.min(ie.maxTop,Math.max(ie.minTop,e))+"px":Math.max(ie.minTop,e)+"px"}function re(e,t){if(null===me&&!t.isMaximized()&&t.get("movable")){var n,i=0,s=0;if("touchstart"===e.type?(e.preventDefault(),n=e.targetTouches[0],te="clientX",ne="clientY"):0===e.button&&(n=e),n){e=t.elements.dialog;if(Ne(e,w.capture),e.style.left&&(i=parseInt(e.style.left,10)),e.style.top&&(s=parseInt(e.style.top,10)),$=n[te]-i,ee=n[ne]-s,t.isModal()?ee+=t.elements.modal.scrollTop:t.isPinned()&&(ee-=document.body.scrollTop),t.get("moveBounded")){for(var o=e,a=-i,l=-s;a+=o.offsetLeft,l+=o.offsetTop,o=o.offsetParent;);ie={maxLeft:a,minLeft:-a,maxTop:document.documentElement.clientHeight-e.clientHeight-l,minTop:-l},oe=le}else ie=null,oe=ae;return Ye("onmove",t),se=!t.isModal()&&t.isPinned(),Z=t,oe(n,e),Ne(document.body,w.noSelection),!1}}}function ce(e){var t;Z&&("touchmove"===e.type?(e.preventDefault(),t=e.targetTouches[0]):0===e.button&&(t=e),t&&oe(t,Z.elements.dialog))}function de(){var e;Z&&(e=Z,Z=ie=null,Le(document.body,w.noSelection),Le(e.elements.dialog,w.capture),Ye("onmoved",e))}function ue(e){Z=null;e=e.elements.dialog;e.style.left=e.style.top=""}var me=null,fe=Number.Nan,he=0,pe=0,be=0;function ve(e,t){if(!t.isMaximized()&&("touchstart"===e.type?(e.preventDefault(),n=e.targetTouches[0]):0===e.button&&(n=e),n)){Ye("onresize",t),be=(me=t).elements.resizeHandle.offsetHeight/2;var n=t.elements.dialog;return Ne(n,w.capture),fe=parseInt(n.style.left,10),n.style.height=n.offsetHeight+"px",n.style.minHeight=t.elements.header.offsetHeight+t.elements.footer.offsetHeight+"px",n.style.width=(he=n.offsetWidth)+"px","none"!==n.style.maxWidth&&(n.style.minWidth=(pe=n.offsetWidth)+"px"),n.style.maxWidth="none",
2540Ne(document.body,w.noSelection),!1}}function ge(e){var t;me&&("touchmove"===e.type?(e.preventDefault(),t=e.targetTouches[0]):0===e.button&&(t=e),t&&function(e,t,n){for(var i=t,s=0,o=0;s+=i.offsetLeft,o+=i.offsetTop,i=i.offsetParent;);var a,n=!0===n?(a=e.pageX,e.pageY):(a=e.clientX,e.clientY);(e=Ae())&&(a=document.body.offsetWidth-a,isNaN(fe)||(s=document.body.offsetWidth-s-t.offsetWidth)),t.style.height=n-o+be+"px",t.style.width=a-s+be+"px",isNaN(fe)||(a=.5*Math.abs(t.offsetWidth-he),e&&(a*=-1),t.offsetWidth>he?t.style.left=fe+a+"px":t.offsetWidth>=pe&&(t.style.left=fe-a+"px"))}(t,me.elements.dialog,!me.get("modal")&&!me.get("pinned")))}function ye(){var e;me&&(e=me,me=null,Le(document.body,w.noSelection),Le(e.elements.dialog,w.capture),P=!0,Ye("onresized",e))}function _e(e){me=null;e=e.elements.dialog;"none"===e.style.maxWidth&&(e.style.maxWidth=e.style.minWidth=e.style.width=e.style.height=e.style.minHeight=e.style.left="",fe=Number.Nan,he=pe=be=0)}function ke(){for(var e=0;e<Me.length;e+=1){var t=Me[e];t.get("autoReset")&&(ue(t),_e(t))}}function xe(e){Re(e.elements.dialog,"focus",e.__internal.bringToFrontHandler,!0)}function He(e){Be(e.elements.dialog,"focus",e.__internal.bringToFrontHandler,!0)}function Oe(e){Re(e.elements.header,"mousedown",e.__internal.beginMoveHandler),Re(e.elements.header,"touchstart",e.__internal.beginMoveHandler,!1,!1)}function Te(e){Be(e.elements.header,"mousedown",e.__internal.beginMoveHandler),Be(e.elements.header,"touchstart",e.__internal.beginMoveHandler,!1,!1)}function we(e){Re(e.elements.resizeHandle,"mousedown",e.__internal.beginResizeHandler),Re(e.elements.resizeHandle,"touchstart",e.__internal.beginResizeHandler,!1,!1)}function Ce(e){Be(e.elements.resizeHandle,"mousedown",e.__internal.beginResizeHandler),Be(e.elements.resizeHandle,"touchstart",e.__internal.beginResizeHandler,!1,!1)}return{__init:c,isOpen:function(){return this.__internal.isOpen},isModal:function(){return this.elements.root.className.indexOf(w.modeless)<0},isMaximized:function(){return-1<this.elements.root.className.indexOf(w.maximized)},isPinned:function(){return this.elements.root.className.indexOf(w.unpinned)<0},maximize:function(){return this.isMaximized()||N(this),this},restore:function(){return this.isMaximized()&&L(this),this},pin:function(){return this.isPinned()||j(this),this},unpin:function(){return this.isPinned()&&M(this),this},bringToFront:function(){return C(0,this),this},moveTo:function(e,t){if(!isNaN(e)&&!isNaN(t)){Ye("onmove",this);var n=this.elements.dialog,i=n,s=0,o=0;for(n.style.left&&(s-=parseInt(n.style.left,10)),n.style.top&&(o-=parseInt(n.style.top,10));s+=i.offsetLeft,o+=i.offsetTop,i=i.offsetParent;);e=e-s,t=t-o;Ae()&&(e*=-1),n.style.left=e+"px",n.style.top=t+"px",Ye("onmoved",this)}return this},resizeTo:function(e,t){var n=parseFloat(e),i=parseFloat(t),s=/(\d*\.\d+|\d+)%/;return isNaN(n)||isNaN(i)||!0!==this.get("resizable")||(Ye("onresize",this),(""+e).match(s)&&(n=n/100*document.documentElement.clientWidth),(""+t).match(s)&&(i=i/100*document.documentElement.clientHeight),"none"!==(s=this.elements.dialog).style.maxWidth&&(s.style.minWidth=(pe=s.offsetWidth)+"px"),s.style.maxWidth="none",s.style.minHeight=this.elements.header.offsetHeight+this.elements.footer.offsetHeight+"px",s.style.width=n+"px",s.style.height=i+"px",Ye("onresized",this)),this},setting:function(e,t){var i=this,n=z(this,this.__internal.options,function(e,t,n){m(i,e,t,n)},e,t);if("get"===n.op)return n.found?n.value:void 0!==this.settings?z(this,this.settings,this.settingUpdated||function(){},e,t).value:void 0;if("set"===n.op){if(0<n.items.length)for(var s=this.settingUpdated||function(){},o=0;o<n.items.length;o+=1){var a=n.items[o];a.found||void 0===this.settings||z(this,this.settings,s,a.key,a.value)}return this}},set:function(e,t){return this.setting(e,t),this},get:function(e){return this.setting(e)},setHeader:function(e){return"string"==typeof e?(Pe(this.elements.header),this.elements.header.innerHTML=e):e instanceof ze.HTMLElement&&this.elements.header.firstChild!==e&&(Pe(this.elements.header),this.elements.header.appendChild(e)),this},setContent:function(e){return"string"==typeof e?(Pe(this.elements.content),this.elements.content.innerHTML=e):e instanceof ze.HTMLElement&&this.elements.content.firstChild!==e&&(Pe(this.elements.content),this.elements.content.appendChild(e)),this},showModal:function(e){return this.show(!0,e)},show:function(e,t){var n,i,s;return c(this),this.__internal.isOpen?(ue(this),_e(this),Ne(this.elements.dialog,w.shake),n=this,setTimeout(function(){Le(n.elements.dialog,w.shake)},200)):(this.__internal.isOpen=!0,Me.push(this),Ge.defaults.maintainFocus&&(this.__internal.activeElement=document.activeElement),document.body.hasAttribute("tabindex")||document.body.setAttribute("tabindex",l="0"),"function"==typeof this.prepare&&this.prepare(),s=this,1===Me.length&&(Re(ze,"resize",ke),Re(document.body,"keyup",X),Re(document.body,"keydown",Y),Re(document.body,"focu
2540s",q),Re(document.documentElement,"mousemove",ce),Re(document.documentElement,"touchmove",ce,!1,!1),Re(document.documentElement,"mouseup",de),Re(document.documentElement,"touchend",de),Re(document.documentElement,"mousemove",ge),Re(document.documentElement,"touchmove",ge,!1,!1),Re(document.documentElement,"mouseup",ye),Re(document.documentElement,"touchend",ye)),Re(s.elements.commands.container,"click",s.__internal.commandsClickHandler),Re(s.elements.footer,"click",s.__internal.buttonsClickHandler),Re(s.elements.reset[0],"focusin",s.__internal.resetHandler),Re(s.elements.reset[0],"keydown",J),Re(s.elements.reset[1],"focusin",s.__internal.resetHandler),B=!0,Re(s.elements.dialog,De.type,s.__internal.transitionInHandler),s.get("modal")||xe(s),s.get("resizable")&&we(s),s.get("movable")&&Oe(s),void 0!==e&&this.set("modal",e),o=Se(),a=Ie(),u(),"string"==typeof t&&""!==t&&(this.__internal.className=t,Ne(this.elements.root,t)),this.get("startMaximized")?this.maximize():this.isMaximized()&&L(this),S(this),this.elements.root.removeAttribute("style"),Le(this.elements.root,w.animationOut),Ne(this.elements.root,w.animationIn),clearTimeout(this.__internal.timerIn),this.__internal.timerIn=setTimeout(this.__internal.transitionInHandler,De.supported?1e3:100),r&&((i=this.elements.root).style.display="none",setTimeout(function(){i.style.display="block"},0)),this.elements.root.offsetWidth,Le(this.elements.root,w.hidden),d(),"function"==typeof this.hooks.onshow&&this.hooks.onshow.call(this),Ye("onshow",this)),this},close:function(){var e;return this.__internal.isOpen&&!1!==Ye("onclosing",this)&&(e=this,1===Me.length&&(Be(ze,"resize",ke),Be(document.body,"keyup",X),Be(document.body,"keydown",Y),Be(document.body,"focus",q),Be(document.documentElement,"mousemove",ce),Be(document.documentElement,"mouseup",de),Be(document.documentElement,"mousemove",ge),Be(document.documentElement,"mouseup",ye)),Be(e.elements.commands.container,"click",e.__internal.commandsClickHandler),Be(e.elements.footer,"click",e.__internal.buttonsClickHandler),Be(e.elements.reset[0],"focusin",e.__internal.resetHandler),Be(e.elements.reset[0],"keydown",J),Be(e.elements.reset[1],"focusin",e.__internal.resetHandler),Re(e.elements.dialog,De.type,e.__internal.transitionOutHandler),e.get("modal")||He(e),e.get("movable")&&Te(e),e.get("resizable")&&Ce(e),Le(this.elements.root,w.animationIn),Ne(this.elements.root,w.animationOut),clearTimeout(this.__internal.timerOut),this.__internal.timerOut=setTimeout(this.__internal.transitionOutHandler,De.supported?1e3:100),Ne(this.elements.root,w.hidden),this.elements.modal.offsetWidth,Ge.defaults.maintainFocus&&this.__internal.activeElement&&(this.__internal.activeElement.focus(),this.__internal.activeElement=null),void 0!==this.__internal.className&&""!==this.__internal.className&&Le(this.elements.root,this.__internal.className),"function"==typeof this.hooks.onclose&&this.hooks.onclose.call(this),Ye("onclose",this),Me.splice(Me.indexOf(this),1),this.__internal.isOpen=!1,u()),Me.length||"0"!==l||document.body.removeAttribute("tabindex"),this},closeOthers:function(){return Ge.closeAll(this),this},destroy:function(){return this.__internal&&(this.__internal.isOpen?(this.__internal.destroy=function(){Fe(this,c)},this.close()):this.__internal.destroy||Fe(this,c)),this}}}
2540(),f=(l=[],r=je.notifier.classes,n=r.base,{setting:function(e,t){if(i(this),void 0===t)return this.__internal[e];switch(e){case"position":this.__internal.position=t,s(this);break;case"delay":this.__internal.delay=t}return this},set:function(e,t){return this.setting(e,t),this},get:function(e){return this.setting(e)},create:function(e,t){i(this);var n=document.createElement("div");return n.className=r.message+("string"==typeof e&&""!==e?" "+r.prefix+e:""),c(n,t)},dismissAll:function(e){for(var t=l.slice(0),n=0;n<t.length;n+=1){var i=t[n];void 0!==e&&e===i||i.dismiss()}}});function i(e){e.__internal||(e.__internal={position:Ge.defaults.notifier.position,delay:Ge.defaults.notifier.delay},a=document.createElement("DIV"),("transitionOff"in je.notifier?je.notifier:je).transitionOff&&(n=r.base+" ajs-no-transition"),s(e)),a.parentNode!==document.body&&document.body.appendChild(a)}function s(e){switch(a.className=n,e.__internal.position){case"top-right":Ne(a,r.top+" "+r.right);break;case"top-left":Ne(a,r.top+" "+r.left);break;case"top-center":Ne(a,r.top+" "+r.center);break;case"bottom-left":Ne(a,r.bottom+" "+r.left);break;case"bottom-center":Ne(a,r.bottom+" "+r.center);break;default:Ne(a,r.bottom+" "+r.right)}}function c(e,t){function n(e,t){t.__internal.closeButton&&"true"!==e.target.getAttribute("data-close")||t.dismiss(!0)}function i(e,t){Be(t.element,De.type,i),a.removeChild(t.element)}function o(e){clearTimeout(e.__internal.timer),clearTimeout(e.__internal.transitionTimeout)}return(s={element:e,push:function(e,t){if(this.__internal.pushed)return this;var n,i,s;switch((n=this).__internal.pushed=!0,l.push(n),o(this),arguments.length){case 0:s=this.__internal.delay;break;case 1:s="number"==typeof e?e:(i=e,this.__internal.delay);break;case 2:i=e,s=t}return this.__internal.closeButton=Ge.defaults.notifier.closeButton,void 0!==i&&this.setContent(i),f.__internal.position.indexOf("top")<0?a.appendChild(this.element):a.insertBefore(this.element,a.firstChild),this.element.offsetWidth,Ne(this.element,r.visible),Re(this.element,"click",this.__internal.clickHandler),this.delay(s)},ondismiss:function(){},callback:t,dismiss:function(e){return this.__internal.pushed&&(o(this),"function"==typeof this.ondismiss&&!1===this.ondismiss.call(this)||(Be(this.element,"click",this.__internal.clickHandler),void 0!==this.element&&this.element.parentNode===a&&(this.__internal.transitionTimeout=setTimeout(this.__internal.transitionEndHandler,De.supported?1e3:100),Le(this.element,r.visible),"function"==typeof this.callback&&this.callback.call(this,e)),e=this,l.splice(l.indexOf(e),1),e.__internal.pushed=!1)),this},delay:function(e){var t;return o(this),this.__internal.delay=void 0===e||isNaN(+e)?f.__internal.delay:+e,0<this.__internal.delay&&((t=this).__internal.timer=setTimeout(function(){t.dismiss()},1e3*this.__internal.delay)),this},setContent:function(e){return"string"==typeof e?(Pe(this.element),this.element.innerHTML=e):e instanceof ze.HTMLElement&&this.element.firstChild!==e&&(Pe(this.element),this.element.appendChild(e)),this.__internal.closeButton&&(Ne(e=document.createElement("span"),r.close),e.setAttribute("data-close",!0),this.element.appendChild(e)),this},dismissOthers:function(){return f.dismissAll(this),this}}).__internal||(s.__internal={pushed:!1,delay:void 0,timer:void 0,clickHandler:void 0,transitionEndHandler:void 0,transitionTimeout:void 0},s.__internal.clickHandler=Ue(s,n),s.__internal.transitionEndHandler=Ue(s,i)),s;var s}var Ge=new function(){var c={};function d(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function u(e){e=c[e].dialog;return e&&"function"==typeof e.__init&&e.__init(e),e}return{defaults:je,dialog:function(e,t,n,i){if("function"!=typeof t)return u(e);if(this.hasOwnProperty(e))throw new Error("alertify.dialog: name already exists");var s,o,a,l,r=(s=e,a=n,t={dialog:null,factory:o=t},void 0!==(l=i)&&(t.factory=function(){return d(new c[l].factory,new o)}),a||(t.dialog=d(new t.factory,m)),c[s]=t);this[e]=n?function(){if(0===arguments.length)return r.dialog;var e=d(new r.factory,m);return e&&"function"==typeof e.__init&&e.__init(e),e.main.apply(e,arguments),e.show.apply(e)}:function(){if(r.dialog&&"function"==typeof r.dialog.__init&&r.dialog.__init(r.dialog),0===arguments.length)return r.dialog;var e=r.dialog;return e.main.apply(r.dialog,arguments),e.show.apply(r.dialog)}},closeAll:function(e){for(var t=Me.slice(0),n=0;n<t.length;n+=1){var i=t[n];void 0!==e&&e===i||i.close()}},setting:function(e,t,n){if("notifier"===e)return f.setting(t,n);e=u(e);return e?e.setting(t,n):void 0},set:function(e,t,n){return this.setting(e,t,n)},get:function(e,t){return this.setting(e,t)},notify:function(e,t,n,i){return f.create(t,i).push(e,n)},message:function(e,t,n){return f.create(null,n).push(e,t)},success:function(e,t,n){return f.create("success",n).push(e,t)},error:function(e,t,n){return f.create("error",n).push(e,t)},warning:function(e,t,n){return f.create("warning",n).push(e,t)},dismissAll:function(){f.dismissAll()}}};Ge.dialog("alert",function(){return{main:function(e,t,n){var i,s,o;switch(arguments.length){case 1:s=e;break;case 2:"function"==typeof t?(s=e,o=t):(i=e,s=t);break;case 3:i=e,s=t,o=n}return this.set("title",i),this.set("message",s),this.set("onok",o),this},setup:function(){return{buttons:[{text:Ge.defaults.glossary.ok,key:Ee.ESC,invokeOnClose:!0,className:Ge.defaults.theme.ok}
2540],focus:{element:0,select:!1},options:{maximizable:!1,resizable:!1}}},build:function(){},prepare:function(){},setMessage:function(e){this.setContent(e)},settings:{message:void 0,onok:void 0,label:void 0},settingUpdated:function(e,t,n){switch(e){case"message":this.setMessage(n);break;case"label":this.__internal.buttons[0].element&&(this.__internal.buttons[0].element.innerHTML=n)}},callback:function(e){var t;"function"!=typeof this.get("onok")||void 0!==(t=this.get("onok").call(this,e))&&(e.cancel=!t)}}}),Ge.dialog("confirm",function(){var i={timer:null,index:null,text:null,duration:null,task:function(e,t){var n;t.isOpen()?(t.__internal.buttons[i.index].element.innerHTML=i.text+" (&#8207;"+i.duration+"&#8207;) ",--i.duration,-1===i.duration&&(s(t),n=t.__internal.buttons[i.index],n=Xe(i.index,n),"function"==typeof t.callback&&t.callback.apply(t,[n]),!1!==n.close&&t.close())):s(t)}};function s(e){null!==i.timer&&(clearInterval(i.timer),i.timer=null,e.__internal.buttons[i.index].element.innerHTML=i.text)}function t(e,t,n){s(e),i.duration=n,i.index=t,i.text=e.__internal.buttons[t].element.innerHTML,i.timer=setInterval(Ue(e,i.task),1e3),i.task(null,e)}return{main:function(e,t,n,i){var s,o,a,l;switch(arguments.length){case 1:o=e;break;case 2:o=e,a=t;break;case 3:o=e,a=t,l=n;break;case 4:s=e,o=t,a=n,l=i}return this.set("title",s),this.set("message",o),this.set("onok",a),this.set("oncancel",l),this},setup:function(){return{buttons:[{text:Ge.defaults.glossary.ok,key:Ee.ENTER,className:Ge.defaults.theme.ok},{text:Ge.defaults.glossary.cancel,key:Ee.ESC,invokeOnClose:!0,className:Ge.defaults.theme.cancel}],focus:{element:0,select:!1},options:{maximizable:!1,resizable:!1}}},build:function(){},prepare:function(){},setMessage:function(e){this.setContent(e)},settings:{message:null,labels:null,onok:null,oncancel:null,defaultFocus:null,reverseButtons:null},settingUpdated:function(e,t,n){switch(e){case"message":this.setMessage(n);break;case"labels":"ok"in n&&this.__internal.buttons[0].element&&(this.__internal.buttons[0].text=n.ok,this.__internal.buttons[0].element.innerHTML=n.ok),"cancel"in n&&this.__internal.buttons[1].element&&(this.__internal.buttons[1].text=n.cancel,this.__internal.buttons[1].element.innerHTML=n.cancel);break;case"reverseButtons":!0===n?this.elements.buttons.primary.appendChild(this.__internal.buttons[0].element):this.elements.buttons.primary.appendChild(this.__internal.buttons[1].element);break;case"defaultFocus":this.__internal.focus.element="ok"===n?0:1}},callback:function(e){var t;switch(s(this),e.index){case 0:"function"==typeof this.get("onok")&&void 0!==(t=this.get("onok").call(this,e))&&(e.cancel=!t);break;case 1:"function"==typeof this.get("oncancel")&&void 0!==(t=this.get("oncancel").call(this,e))&&(e.cancel=!t)}},autoOk:function(e){return t(this,0,e),this},autoCancel:function(e){return t(this,1,e),this}}}),Ge.dialog("prompt",function(){var i=document.createElement("INPUT"),t=document.createElement("P");return{main:function(e,t,n,i,s){var o,a,l,r,c;switch(arguments.length){case 1:a=e;break;case 2:a=e,l=t;break;case 3:a=e,l=t,r=n;break;case 4:a=e,l=t,r=n,c=i;break;case 5:o=e,a=t,l=n,r=i,c=s}return this.set("title",o),this.set("message",a),this.set("value",l),this.set("onok",r),this.set("oncancel",c),this},setup:function(){return{buttons:[{text:Ge.defaults.glossary.ok,key:Ee.ENTER,className:Ge.defaults.theme.ok},{text:Ge.defaults.glossary.cancel,key:Ee.ESC,invokeOnClose:!0,className:Ge.defaults.theme.cancel}],focus:{element:i,select:!0},options:{maximizable:!1,resizable:!1}}},build:function(){i.className=Ge.defaults.theme.input,i.setAttribute("type","text"),i.value=this.get("value"),this.elements.content.appendChild(t),this.elements.content.appendChild(i)},prepare:function(){},setMessage:function(e){"string"==typeof e?(Pe(t),t.innerHTML=e):e instanceof ze.HTMLElement&&t.firstChild!==e&&(Pe(t),t.appendChild(e))},settings:{message:void 0,labels:void 0,onok:void 0,oncancel:void 0,value:"",type:"text",reverseButtons:void 0},settingUpdated:function(e,t,n){switch(e){case"message":this.setMessage(n);break;case"value":i.value=n;break;case"type":switch(n){case"text":case"color":case"date":case"datetime-local":case"email":case"month":case"number":case"password":case"search":case"tel":case"time":case"week":i.type=n;break;default:i.type="text"}break;case"labels":n.ok&&this.__internal.buttons[0].element&&(this.__internal.buttons[0].element.innerHTML=n.ok),n.cancel&&this.__internal.buttons[1].element&&(this.__internal.buttons[1].element.innerHTML=n.cancel);break;case"reverseButtons":!0===n?this.elements.buttons.primary.appendChild(this.__internal.buttons[0].element):this.elements.buttons.primary.appendChild(this.__internal.buttons[1].element)}},callback:function(e){var t;switch(e.index){case 0:this.settings.value=i.value,"function"==typeof this.get("onok")&&void 0!==(t=this.get("onok").call(this,e,this.settings.value))&&(e.cancel=!t);break;case 1:"function"==typeof this.get("oncancel")&&void 0!==(t=this.get("oncancel").call(this,e))&&(e.cancel=!t),e.cancel||(i.value=this.settings.value)}}}}),"object"==typeof module&&"object"==typeof module.exports?module.exports=Ge:"function"==typeof define&&define.amd?define([],function(){return Ge}):ze.alertify||(ze.alertify=Ge)}("undefined"!=typeof window?window:this);var GoogleMapHelper=Class.create();GoogleMapHelper.prototype={initialize:function(mapoption){this.mapoption=mapoption;this.icons=Array();this.points=Array();this.cercles=Array();this.markers=Array();this.trajet=null;this.resolv=null;this.currentidmarker=null},install:function(){if($(this.mapoption.id)!=null)
2541this.createMap();else return(!1);center=(this.mapoption.center!=null)?this.mapoption.center:[46.182058947,3.1587839126,16];this.map.setCenter(new google.maps.LatLng(center[0],center[1]));this.map.setZoom(center[2]);if(this.mapoption.mapclickredirect!=null){var redirecturl=this.mapoption.mapclickredirect;google.maps.event.addListener(this.map,"click",function(){document.location.href=redirecturl})}
2542if(this.mapoption.zoom!=null)
2543this.map.setZoom(this.mapoption.zoom);this.makePoint();this.makeCercle();if(this.trajet!=null)
2544this.prepareTrajet();if(this.etape!=null)
2545this.AddEtapesTrajet();if(this.resolv!=null)
2546this.prepareResolv();if(this.inputbox!=null)
2547this.prepareInputBoxOnMap()},createMap:function(maptype){var myLatlng=new google.maps.LatLng(46.182058947,3.1587839126);mapoptions={maxZoom:20,zoom:8,center:myLatlng,mapTypeId:google.maps.MapTypeId.ROADMAP};if(this.mapoption.scrollwheel!=null)mapoptions.scrollwheel=this.mapoption.scrollwheel;if(this.mapoption.disableDoubleClickZoom!=null)mapoptions.disableDoubleClickZoom=this.mapoption.disableDoubleClickZoom;if(this.mapoption.overview!=null)mapoptions.overviewMapControl=this.mapoption.overview;if(this.mapoption.scale!=null)mapoptions.scaleControl=this.mapoption.scale;if(this.mapoption.maptypecontrol!=null)mapoptions.mapTypeControl=this.mapoption.maptypecontrol;if(this.mapoption.typemap!=null)mapoptions.mapTypeId=this.mapoption.typemap;if(this.mapoption.zoom!=null)mapoptions.zoom=this.mapoption.zoom;if(this.mapoption.smallmapcontrol!=null&&this.mapoption.smallmapcontrol==!0){mapoptions.mapTypeControl=!0;mapoptions.mapTypeControlOptions={style:google.maps.MapTypeControlStyle.DROPDOWN_MENU};mapoptions.streetViewControl=!1;mapoptions.scaleControl=!0;mapoptions.zoomControl=!0;mapoptions.zoomControlOptions={style:google.maps.ZoomControlStyle.SMALL}}
2548if(this.mapoption.largemapcontrol!=null&&this.mapoption.largemapcontrol==!0){mapoptions.streetViewControl=!0;mapoptions.mapTypeControl=!0;mapoptions.scaleControl=!0;mapoptions.zoomControl=!0;mapoptions.zoomControlOptions={style:google.maps.ZoomControlStyle.LARGE}}
2549if(this.mapoption.nonemapcontrol!=null&&this.mapoption.nonemapcontrol==!0){mapoptions.streetViewControl=!1;mapoptions.mapTypeControl=!1;mapoptions.scaleControl=!1;mapoptions.zoomControl=!1;mapoptions.scaleControl=!1;mapoptions.mapTypeControl=!1}
2550this.map=new google.maps.Map($(this.mapoption.id),mapoptions);var map=this.map;if(this.mapoption.inputCoordId!=null&&$(this.mapoption.inputCoordId)!=null&&this.mapoption.inputCoordId[3]!=null){var mapoption=this.mapoption;google.maps.event.addListener(this.map,'bounds_changed',function(){formname=mapoption.inputCoordId[0];zoom=mapoption.inputCoordId[3];$(formname)[zoom].value=map.getZoom()})}},createIcon:function(iconoptions){var icon=new google.maps.MarkerImage(iconoptions.link,new google.maps.Size(iconoptions.width,iconoptions.height),new google.maps.Point(0,0),undefined,new google.maps.Size(iconoptions.width,iconoptions.height));return icon},refreshcenter:function(delay){delay=(delay==undefined)?0:delay;var myself=this;setTimeout(function(){google.maps.event.trigger(myself.map,"resize");if(myself.markers.length>0)
2551myself.map.setCenter(myself.markers[0].position)},delay)},addIcon:function(iconoptions){if(iconoptions!=null&&iconoptions.length>0)
2552for(var i=0;i<iconoptions.length;i++){this.icons.push({'name':iconoptions[i].name,'icone':this.createIcon(iconoptions[i])})}},addPoint:function(options){if(options!=null&&options.length>0)
2553for(var i=0;i<options.length;i++)
2554this.points.push(options[i]);},addCercle:function(options){if(options!=null&&options.length>0)
2555for(var i=0;i<options.length;i++){this.cercles.push(options[i])}},addInputBoxOnMap:function(options){this.inputbox=options},addEtapes:function(options){this.etape=options},addTrajet:function(options){this.trajet=options},addResolv:function(options){this.resolv=options},createMarker:function(point,options,bulle){var marker=new google.maps.Marker(options);marker.setPosition(point);if(bulle!=null){var infoWindow=new google.maps.InfoWindow({'content':bulle});var map=this.map;var markers=this.markers;marker.infoWindow=infoWindow;google.maps.event.addListener(marker,'click',function(){for(var j=0;j<markers.length;j++)
2556if(markers[j].infoWindow)
2557markers[j].infoWindow.close();infoWindow.open(map,marker);setTimeout(function(){marker.infoWindow.close()},3000)})}
2558return marker},iconeExist:function(name){var icone=null;for(var j=0;j<this.icons.length;j++)
2559if(this.icons[j].name==name)
2560icone=this.icons[j].icone;return(icone)},makeCercle:function(){for(var i=0;i<this.cercles.length;i++){var optionsCercle={map:this.map,center:new google.maps.LatLng(this.cercles[i].latitude,this.cercles[i].longitude),radius:this.cercles[i].radius,fillColor:this.cercles[i].fillColor,fillOpacity:this.cercles[i].fillOpacity,strokeColor:this.cercles[i].strokeColor,strokeOpacity:this.cercles[i].strokeOpacity,strokeWeight:this.cercles[i].strokeWeight};var monCercle=new google.maps.Circle(optionsCercle)}},makePoint:function(){this.bounds=new google.maps.LatLngBounds();for(var i=0;i<this.points.length;i++){icone=this.iconeExist(this.points[i].icone);if(icone!=null){point=new google.maps.LatLng(this.points[i].latitude,this.points[i].longitude);marker=this.createMarker(point,{'draggable':this.points[i].draggable,'icon':icone,'title':this.points[i].title},this.points[i].bulle);if(i==0&&this.mapoption.inputCoordId!=null&&$(this.mapoption.inputCoordId)!=null){var mapoption=this.mapoption;formname=this.mapoption.inputCoordId[0];latname=this.mapoption.inputCoordId[1];lgtname=this.mapoption.inputCoordId[2];google.maps.event.addListener(marker,"dragend",function(){$(formname)[latname].value=this.getPosition().lat();$(formname)[lgtname].value=this.getPosition().lng()})}
2561marker.setMap(this.map);this.markers.push(marker);this.bounds.extend(point)}}
2562if(this.mapoption.autocenter!=null&&this.mapoption.autocenter==!0)
2563this.autoCenter()},CenterWidthInput:function(icone_name){if(this.mapoption.inputCoordId!=null&&$(this.mapoption.inputCoordId)!=null){formname=this.mapoption.inputCoordId[0];latname=this.mapoption.inputCoordId[1];lgtname=this.mapoption.inputCoordId[2];sclname=this.mapoption.inputCoordId[3];formname=this.mapoption.inputCoordId[0];lat=(latname!=undefined)?($(formname)[latname].value!=''?parseFloat($(formname)[latname].value):46):46;lgt=(lgtname!=undefined)?($(formname)[lgtname].value!=''?parseFloat($(formname)[lgtname].value):3):3;scl=(sclname!=undefined)?($(formname)[sclname].value!=''?parseFloat($(formname)[sclname].value):5):'';if(scl!='')
2564this.map.setCenter(new google.maps.LatLng(lat,lgt),scl);else this.map.setCenter(new google.maps.LatLng(lat,lgt));icone=this.iconeExist(icone_name);marker=this.createMarker(new google.maps.LatLng(lat,lgt),{'draggable':!0,'icon':icone,'title':'Votre position'});google.maps.event.addListener(marker,"dragend",function(){$(formname)[latname].value=this.getPosition().lat();$(formname)[lgtname].value=this.getPosition().lng()});marker.setMap(this.map);this.markers.push(marker);if(this.resolv!=null){this.resolv.pointnum=0;this.prepareResolv()}}},autoCenter:function(){if(this.markers!=null&&this.markers.length>1){this.map.fitBounds(this.bounds)}},AddEtapesTrajet:function(){if(this.etape!=null){var etape=this.etape;var map=this.map;from=etape.from;to=etape.to;locale=etape.locale;if(etape.divtrajetId!=null&&$(etape.divtrajetId)!=null&&from!=null&&to!=null&&locale!=null){$(etape.divtrajetId).style.position='relative';$(etape.divtrajetId).style.visibility='visible';$(etape.divtrajetId).update('&nbsp;');var dirRequest={origin:from,destination:to,travelMode:google.maps.DirectionsTravelMode.DRIVING,unitSystem:google.maps.DirectionsUnitSystem.METRIC,provideRouteAlternatives:!1};dirService=new google.maps.DirectionsService();dirService.route(dirRequest,function(dirResult,dirStatus){if(dirStatus!=google.maps.DirectionsStatus.OK){alert('Directions failed: '+dirStatus);return}
2565dirRenderer=new google.maps.DirectionsRenderer();dirRenderer.setOptions({'suppressInfoWindows':!0});
2565dirRenderer.setMap(map);dirRenderer.setPanel($(etape.divtrajetId));dirRenderer.setDirections(dirResult)})}}},prepareInputBoxOnMap:function(){var input=document.createElement("INPUT");input.id='pac-input';this.map.controls[google.maps.ControlPosition.TOP_LEFT].push(input);var autocomplete=new google.maps.places.Autocomplete(input);autocomplete.bindTo('bounds',this.map);var infowindow=new google.maps.InfoWindow();var listemarkers=this.markers;var map=this.map;google.maps.event.addListener(autocomplete,'place_changed',function(){var markers=listemarkers[0];infowindow.close();marker.setVisible(!1);var place=autocomplete.getPlace();if(!place.geometry){window.alert("Autocomplete's returned place contains no geometry");return}
2566if(place.geometry.viewport){map.fitBounds(place.geometry.viewport)}else{map.setCenter(place.geometry.location);map.setZoom(17)}
2567marker.setPosition(place.geometry.location);google.maps.event.trigger(marker,"dragend");marker.setVisible(!0);var address='';if(place.address_components){address=[(place.address_components[0]&&place.address_components[0].short_name||''),(place.address_components[1]&&place.address_components[1].short_name||''),(place.address_components[2]&&place.address_components[2].short_name||'')].join(' ')}
2568infowindow.setContent('<div><strong>'+place.name+'</strong><br>'+address);infowindow.open(map,marker)})},prepareTrajet:function(){var trajet=this.trajet;var map=this.map;if(trajet.formId!=null&&$(trajet.formId)!=null){Event.observe($(trajet.formId),'submit',function(event){Event.stop(event);var from=$(trajet.formId)['from'].value;var to=$(trajet.formId)['to'].value;var locale=$(trajet.formId)['locale'].value;if(trajet.divtrajetId!=null&&$(trajet.divtrajetId)!=null&&from!=null&&to!=null&&locale!=null){$(trajet.divtrajetId).style.position='relative';$(trajet.divtrajetId).style.visibility='visible';$(trajet.divtrajetId).update('&nbsp;');var dirRequest={origin:from,destination:to,travelMode:google.maps.DirectionsTravelMode.DRIVING,unitSystem:google.maps.DirectionsUnitSystem.METRIC,provideRouteAlternatives:!1};dirService=new google.maps.DirectionsService();dirService.route(dirRequest,function(dirResult,dirStatus){if(dirStatus!=google.maps.DirectionsStatus.OK){alert('Directions failed: '+dirStatus);return!1}
2569dirRenderer=new google.maps.DirectionsRenderer();dirRenderer.setOptions({'suppressInfoWindows':!0});dirRenderer.setMap(map);dirRenderer.setPanel($(trajet.divtrajetId));dirRenderer.setDirections(dirResult)})}else alert('La génération de trajet est impossible :  définition html manquante ');return!1})}
2570return!1},prepareResolv:function(){var resolv=this.resolv;var map=this.map;var markers=this.markers;var geocoder=new google.maps.Geocoder();if(resolv.inputId!=null&&$(resolv.inputId)!=null&&resolv.actionId!=null&&$(resolv.actionId)!=null){Event.observe($(resolv.actionId),'click',function(event){geocoder.geocode({'address':$(resolv.inputId).getValue()},function(results,status){if(status==google.maps.GeocoderStatus.OK){map.setCenter(results[0].geometry.location);markers[resolv.pointnum].setPosition(results[0].geometry.location);google.maps.event.trigger(markers[resolv.pointnum],"dragend")}else alert("Impossilbe de géolocaliser cette adresse, raison : "+status)});Event.stop(event)})}},GoGMap:function(lng,lat,zoom,id,content){if(lng!=undefined&&lat!=undefined&&this.map!=undefined){if(content!=''){if(lat&&lng)
2571this.map.panTo(new google.maps.LatLng(lat,lng));if(this.currentidmarker!=null&&this.markers[this.currentidmarker].infoWindow)
2572this.markers[this.currentidmarker].infoWindow.close();this.currentidmarker=id;google.maps.event.trigger(this.markers[id],"click")}else{if(this.markers[id]&&this.markers[id].infoWindow)
2573this.markers[id].infoWindow.close()}}}};function OnScrollActu(){var lastscrollY=0;var sidebar=document.getElementById('sticky-sidebar');sidebar.style.marginTop='0px';var sidebaroffsettop=window.scrollY+sidebar.getBoundingClientRect().top;window.onscroll=function(){var e1=document.getElementsByClassName('main-content-head');var dom_fixed=e1?e1[0]:null;var dom_fixed_scroll=document.body;if(dom_fixed_scroll){if(window.scrollY<=lastscrollY&&window.scrollY>80){dom_fixed_scroll.classList.add('fixed-scroll')}else dom_fixed_scroll.classList.remove('fixed-scroll')}
2574if(dom_fixed){if(window.scrollY>220){dom_fixed.classList.add('fixed');dom_fixed.style.top='0px'}else{dom_fixed.classList.remove('fixed')}}
2575var el=document.getElementsByClassName('bottominfos');if(!el||el.length==0)
2576el=document.querySelectorAll('footer');var bottom=el[0];var bottomTop=bottom.getBoundingClientRect().top;var scrollY=window.scrollY;var gap=128
2577if(window.scrollY>lastscrollY&&scrollY<(sidebar.clientHeight-window.innerHeight)){if(window.scrollY>parseInt(sidebar.style.marginTop.replace('px',''),10)+sidebar.clientHeight-window.innerHeight)
2578sidebar.style.marginTop='0px'}else if(bottom&&sidebar&&(scrollY-170>(sidebar.clientHeight-window.innerHeight))){if((scrollY+window.innerHeight)<bottom.offsetTop){if(window.scrollY<lastscrollY){if(window.scrollY<(bottom.offsetTop-sidebar.clientHeight)){if((window.scrollY-170)<parseInt(sidebar.style.marginTop.replace('px',''),10))
2579sidebar.style.marginTop=(window.scrollY-170)+'px'}}else{if(window.scrollY>parseInt(sidebar.style.marginTop.replace('px',''),10)+sidebar.clientHeight-window.innerHeight)
2580sidebar.style.marginTop=((scrollY+window.innerHeight)-(sidebar.clientHeight+sidebaroffsettop)+190)+'px'}}}else if(window.scrollY<lastscrollY){if((window.scrollY-170)<parseInt(sidebar.style.marginTop.replace('px',''),10)){if((window.scrollY-170)>0)
2581sidebar.style.marginTop=((window.scrollY-170)<0?0:(window.scrollY-170))+'px';else sidebar.style.marginTop='0px'}}
2582lastscrollY=window.scrollY};window.onscroll()}
2583function InstallArticleText(divid,cryptedidnewsarticle){new Ajax.Request('?',{method:"POST",parameters:{idtab:'get_text',idtext:cryptedidnewsarticle},onSuccess:function(result){var jsondata=result.responseText.evalJSON();if(jsondata.text!=undefined&&jsondata.text!=''){document.querySelectorAll(".main-pub-bottom-article").forEach(element=>{element.remove()});
2583var divtext=document.getElementById(divid);if(divtext){divtext.innerHTML=jsondata.text;const scripts=divtext.querySelectorAll("script");scripts.forEach((script)=>{const newScript=document.createElement("script");if(script.textContent){newScript.textContent=script.textContent}
2584for(let attr of script.attributes){newScript.setAttribute(attr.name,attr.value)}
2585script.parentNode.replaceChild(newScript,script)})}["articlepodcast","post--comment","classsuivre"].forEach(className=>{document.querySelectorAll(`.${className}`).forEach(el=>{el.style.display="block"})})}}})}
2586function ShowroomAjaxConnectLoop(divid,cryptedidnewsarticle,href=null,extraParams=null){var href=href?href:'/src/applications/showroom/index.php?page=login&ajaxconnection=1&loginblock=news';function executeScriptsFromHtml(html){var temp=document.createElement('div');temp.innerHTML=html;var links=document.querySelectorAll('.ajax-login-link');links.forEach(function(link){link.addEventListener('click',function(e){e.preventDefault();var extraParams=link.getAttribute('data-params')||'{ajax:1}';var href=link.getAttribute('href');ShowroomAjaxConnectLoop(divid,cryptedidnewsarticle,href,extraParams)})});var scripts=temp.querySelectorAll('script');scripts.forEach((script)=>{const newScript=document.createElement('script');if(script.src){newScript.src=script.src;newScript.async=!1}else{newScript.textContent=script.textContent}
2587document.body.appendChild(newScript)})}
2588var divtext=document.getElementById(divid);var loader=document.createElement('img');loader.src='/src/applications/news/images/loading.gif';loader.alt='Chargement...';loader.style.display='block';loader.style.margin='0 auto';loader.style.maxWidth='50px';const form=divtext.getElementsByTagName('form')[0];if(form)form.prepend(loader);var my_onSuccess=function(xhr){loader.style.display='none';if(xhr.responseJSON){if(xhr.responseJSON.success!=undefined&&xhr.responseJSON.success){if($('loginloopform')){var e=document.getElementById(divid)
2589if(e)
2590e.removeChild($('loginloopform'))}
2591InstallArticleText(divid,cryptedidnewsarticle);new GfwShowroomAjaxDomInit('/yacht-club/?','menuAjaxRefresh');return(!0)}
2592if(!$('loginloopform')){div=document.createElement("div");div.id="loginloopform";var e=document.getElementById(divid);div.innerHTML=xhr.responseJSON.html;e.append(div)
2593executeScriptsFromHtml(div.innerHTML)}else{div=$('loginloopform');div.innerHTML=xhr.responseJSON.html;executeScriptsFromHtml(div.innerHTML)}
2594var formid=$('connexion-form');if(formid){formid.addEventListener("submit",function(e){e.preventDefault();ShowroomAjaxConnectLoop(divid,cryptedidnewsarticle)})}}}.bind(this);["articlepodcast","post--comment","classsuivre"].forEach(className=>{document.querySelectorAll(`.${className}`).forEach(el=>el.style.display="none")});const params=extraParams||GetFormInputValuesForAjax('connexion-form');new Ajax.Request(href,{parameters:params,onSuccess:my_onSuccess,onFailure:function(response){if(loader)loader.style.display='none';alert(response.responseJSON.html)}})}
2595function InstallAjaxTextArticle(divid,cryptedidnewsarticle){var divtext=document.getElementById(divid);if(divtext){var loader=document.createElement('img');loader.src='/src/applications/news/images/loading.gif';loader.alt='Chargement...';loader.style.display='block';loader.style.margin='0 auto';loader.style.maxWidth='50px';divtext.prepend(loader);new Ajax.Request('?',{method:"POST",parameters:{clicajaxaction:'testconnect'},onSuccess:function(result){loader.style.display='none';var jsondata=result.responseText.evalJSON();if(jsondata.needconnect!=undefined&&jsondata.needconnect==1)
2596ShowroomAjaxConnectLoop(divid,cryptedidnewsarticle);else InstallArticleText(divid,cryptedidnewsarticle);var links=document.querySelectorAll('.ajax-login-link');links.forEach(function(link){link.addEventListener('click',function(e){e.preventDefault();var extraParams=link.getAttribute('data-params')||'{ajax:1}';var href=link.getAttribute('href');ShowroomAjaxConnectLoop(divid,cryptedidnewsarticle,extraParams)})})},onFailure:function(){if(loader)loader.style.display='none'}})}};var Scriptaculous={Version:'1.9.0',require:function(libraryName){try{document.write('
2596<script type="text/javascript" src="'+libraryName+'"><\/script>')}catch(e){var script=document.createElement('script');script.type='text/javascript';script.src=libraryName;document.getElementsByTagName('head')[0].appendChild(script)}},REQUIRED_PROTOTYPE:'1.6.0.3',load:function(){function convertVersionString(versionString){var v=versionString.replace(/_.*|\./g,'');v=parseInt(v+'0'.times(4-v.length));return versionString.indexOf('_')>-1?v-1:v}
2597if((typeof Prototype=='undefined')||(typeof Element=='undefined')||(typeof Element.Methods=='undefined')||(convertVersionString(Prototype.Version)<convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
2598throw("script.aculo.us requires the Prototype JavaScript framework >= "+Scriptaculous.REQUIRED_PROTOTYPE);var js=/scriptaculous\.js(\?.*)?$/;$$('script[src]').findAll(function(s){return s.src.match(js)}).each(function(s){var path=s.src.replace(js,''),includes=s.src.match(/\?.*load=([a-z,]*)/);(includes?includes[1]:'builder,effects,dragdrop,controls,slider,sound').split(',').each(function(include){Scriptaculous.require(path+include+'.js')})})}};Scriptaculous.load();String.prototype.parseColor=function(){var color='#';if(this.slice(0,4)=='rgb('){var cols=this.slice(4,this.length-1).split(',');var i=0;do{color+=parseInt(cols[i]).toColorPart()}while(++i<3);}else{if(this.slice(0,1)=='#'){if(this.length==4)for(var i=1;i<4;i++)color+=(this.charAt(i)+this.charAt(i)).toLowerCase();if(this.length==7)color=this.toLowerCase()}}
2599return(color.length==7?color:(arguments[0]||this))};Element.collectTextNodes=function(element){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:(node.hasChildNodes()?Element.collectTextNodes(node):''))}).flatten().join('')};Element.collectTextNodesIgnoreClass=function(element,className){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:((node.hasChildNodes()&&!Element.hasClassName(node,className))?Element.collectTextNodesIgnoreClass(node,className):''))}).flatten().join('')};Element.setContentZoom=function(element,percent){element=$(element);element.setStyle({fontSize:(percent/100)+'em'});if(Prototype.Browser.WebKit)window.scrollBy(0,0);return element};Element.getInlineOpacity=function(element){return $(element).style.opacity||''};Element.forceRerendering=function(element){try{element=$(element);var n=document.createTextNode(' ');element.appendChild(n);element.removeChild(n)}catch(e){}};var Effect={_elementDoesNotExistError:{name:'ElementDoesNotExistError',message:'The specified DOM element does not exist, but is required for this effect to operate'},Transitions:{linear:Prototype.K,sinoidal:function(pos){return(-Math.cos(pos*Math.PI)/2)+.5},reverse:function(pos){return 1-pos},flicker:function(pos){var pos=((-Math.cos(pos*Math.PI)/4)+.75)+Math.random()/4;return pos>1?1:pos},wobble:function(pos){return(-Math.cos(pos*Math.PI*(9*pos))/2)+.5},pulse:function(pos,pulses){return(-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2)+.5},spring:function(pos){return 1-(Math.cos(pos*4.5*Math.PI)*Math.exp(-pos*6))},none:function(pos){return 0},full:function(pos){return 1}},DefaultOptions:{duration:1.0,fps:100,sync:!1,from:0.0,to:1.0,delay:0.0,queue:'parallel'},tagifyText:function(element){var tagifyStyle='position:relative';if(Prototype.Browser.IE)tagifyStyle+=';zoom:1';element=$(element);$A(element.childNodes).each(function(child){if(child.nodeType==3){child.nodeValue.toArray().each(function(character){element.insertBefore(new Element('span',{style:tagifyStyle}).update(character==' '?String.fromCharCode(160):character),child)});Element.remove(child)}})},multiple:function(element,effect){var elements;if(((typeof element=='object')||Object.isFunction(element))&&(element.length))
2600elements=element;else elements=$(element).childNodes;var options=Object.extend({speed:0.1,delay:0.0},arguments[2]||{});var masterDelay=options.delay;$A(elements).each(function(element,index){new effect(element,Object.extend(options,{delay:index*options.speed+masterDelay}))})},PAIRS:{'slide':['SlideDown','SlideUp'],'blind':['BlindDown','BlindUp'],'appear':['Appear','Fade']},toggle:function(element,effect,options){element=$(element);effect=(effect||'appear').toLowerCase();return Effect[Effect.PAIRS[effect][element.visible()?1:0]](element,Object.extend({queue:{position:'end',scope:(element.i
2600d||'global'),limit:1}},options||{}))}};Effect.DefaultOptions.transition=Effect.Transitions.sinoidal;Effect.ScopedQueue=Class.create(Enumerable,{initialize:function(){this.effects=[];this.interval=null},_each:function(iterator){this.effects._each(iterator)},add:function(effect){var timestamp=new Date().getTime();var position=Object.isString(effect.options.queue)?effect.options.queue:effect.options.queue.position;switch(position){case 'front':this.effects.findAll(function(e){return e.state=='idle'}).each(function(e){e.startOn+=effect.finishOn;e.finishOn+=effect.finishOn});break;case 'with-last':timestamp=this.effects.pluck('startOn').max()||timestamp;break;case 'end':timestamp=this.effects.pluck('finishOn').max()||timestamp;break}
2601effect.startOn+=timestamp;effect.finishOn+=timestamp;if(!effect.options.queue.limit||(this.effects.length<effect.options.queue.limit))
2602this.effects.push(effect);if(!this.interval)
2603this.interval=setInterval(this.loop.bind(this),15)},remove:function(effect){this.effects=this.effects.reject(function(e){return e==effect});if(this.effects.length==0){clearInterval(this.interval);this.interval=null}},loop:function(){var timePos=new Date().getTime();for(var i=0,len=this.effects.length;i<len;i++)
2604this.effects[i]&&this.effects[i].loop(timePos);}});Effect.Queues={instances:$H(),get:function(queueName){if(!Object.isString(queueName))return queueName;return this.instances.get(queueName)||this.instances.set(queueName,new Effect.ScopedQueue())}};Effect.Queue=Effect.Queues.get('global');Effect.Base=Class.create({position:null,start:function(options){if(options&&options.transition===!1)options.transition=Effect.Transitions.linear;this.options=Object.extend(Object.extend({},Effect.DefaultOptions),options||{});this.currentFrame=0;this.state='idle';this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.fromToDelta=this.options.to-this.options.from;this.totalTime=this.finishOn-this.startOn;this.totalFrames=this.options.fps*this.options.duration;this.render=(function(){function dispatch(effect,eventName){if(effect.options[eventName+'Internal'])
2605effect.options[eventName+'Internal'](effect);if(effect.options[eventName])
2606effect.options[eventName](effect)}
2607return function(pos){if(this.state==="idle"){this.state="running";dispatch(this,'beforeSetup');if(this.setup)this.setup();dispatch(this,'afterSetup')}
2608if(this.state==="running"){pos=(this.options.transition(pos)*this.fromToDelta)+this.options.from;this.position=pos;dispatch(this,'beforeUpdate');if(this.update)this.update(pos);dispatch(this,'afterUpdate')}}})();this.event('beforeStart');if(!this.options.sync)
2609Effect.Queues.get(Object.isString(this.options.queue)?'global':this.options.queue.scope).add(this)},loop:function(timePos){if(timePos>=this.startOn){if(timePos>=this.finishOn){this.render(1.0);this.cancel();this.event('beforeFinish');if(this.finish)this.finish();this.event('afterFinish');return}
2610var pos=(timePos-this.startOn)/this.totalTime,frame=(pos*this.totalFrames).round();if(frame>this.currentFrame){this.render(pos);this.currentFrame=frame}}},cancel:function(){if(!this.options.sync)
2611Effect.Queues.get(Object.isString(this.options.queue)?'global':this.options.queue.scope).remove(this);this.state='finished'},event:function(eventName){if(this.options[eventName+'Internal'])this.options[eventName+'Internal'](this);if(this.options[eventName])this.options[eventName](this)},inspect:function(){var data=$H();for(property in this)
2612if(!Object.isFunction(this[property]))data.set(property,this[property]);return'#<Effect:'+data.inspect()+',options:'+$H(this.options).inspect()+'>'}});Effect.Parallel=Class.create(Effect.Base,{initialize:function(effects){this.effects=effects||[];this.start(arguments[1])},update:function(position){this.effects.invoke('render',position)},finish:function(position){this.effects.each(function(effect){effect.render(1.0);effect.cancel();effect.event('beforeFinish');if(effect.finish)effect.finish(position);effect.event('afterFinish')})}});Effect.Tween=Class.create(Effect.Base,{initialize:function(object,from,to){object=Object.isString(object)?$(object):object;var args=$A(arguments),method=args.last(),options=args.length==5?args[3]:null;this.method=Object.isFunction(method)?method.bind(object):Object.isFunction(object[method])?object[method].bind(object):function(value){object[method]=value};this.start(Object.extend({from:from,to:to},options||{}))},update:function(position){this.method(position)}});Effect.Event=Class.create(Effect.Base,{initialize:function(){this.start(Object.extend({duration:0},arguments[0]||{}))},update:Prototype.emptyFunction});Effect.Opacity=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout))
2613this.element.setStyle({zoom:1});var options=Object.extend({from:this.element.getOpacity()||0.0,to:1.0},arguments[1]||{});this.start(options)},update:function(position){this.element.setOpacity(position)}});Effect.Move=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({x:0,y:0,mode:'relative'},arguments[1]||{});this.start(options)},setup:function(){this.element.makePositioned();this.originalLeft=parseFloat(this.element.getStyle('left')||'0');this.originalTop=parseFloat(this.element.getStyle('top')||'0');if(this.options.mode=='absolute'){this.options.x=this.options.x-this.originalLeft;this.options.y=this.options.y-this.originalTop}},update:function(position){this.element.setStyle({left:(this.options.x*position+this.originalLeft).round()+'px',top:(this.options.y*position+this.originalTop).round()+'px'})}});Effect.MoveBy=function(element,toTop,toLeft){return new Effect.Move(element,Object.extend({x:toLeft,y:toTop},arguments[3]||{}))};Effect.Scale=Class.create(Effect.Base,{initialize:function(element,percent){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({scaleX:!0,scaleY:!0,scaleContent:!0,scaleFromCenter:!1,scaleMode:'box',scaleFrom:100.0,scaleTo:percent},arguments[2]||{});this.start(options)},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||!1;this.elementPositioning=this.element.getStyle('position');this.originalStyle={};['top','left','width','height','fontSize'].each(function(k){this.originalStyle[k]=this.element.style[k]}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var fontSize=this.element.getStyle('font-size')||'100%';['em','px','%','pt'].each(function(fontSizeType){if(fontSize.indexOf(fontSizeType)>0){this.fontSize=parseFloat(fontSize);this.fontSizeType=fontSizeType}}.bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;this.dims=null;if(this.options.scaleMode=='box')
2614this.dims=[this.element.offsetHeight,this.element.offsetWidth];if(/^content/.test(this.options.scaleMode))
2615this.dims=[this.element.scrollHeight,this.element.scrollWidth];if(!this.dims)
2616this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth]},update:function(position){var currentScale=(this.options.scaleFrom/100.0)+(this.factor*position);if(this.options.scaleContent&&this.fontSize)
2617this.element.setStyle({fontSize:this.fontSize*currentScale+this.fontSizeType});this.setDimensions(this.dims[0]*currentScale,this.dims[1]*currentScale)}
2617,finish:function(position){if(this.restoreAfterFinish)this.element.setStyle(this.originalStyle)},setDimensions:function(height,width){var d={};if(this.options.scaleX)d.width=width.round()+'px';if(this.options.scaleY)d.height=height.round()+'px';if(this.options.scaleFromCenter){var topd=(height-this.dims[0])/2;var leftd=(width-this.dims[1])/2;if(this.elementPositioning=='absolute'){if(this.options.scaleY)d.top=this.originalTop-topd+'px';if(this.options.scaleX)d.left=this.originalLeft-leftd+'px'}else{if(this.options.scaleY)d.top=-topd+'px';if(this.options.scaleX)d.left=-leftd+'px'}}
2618this.element.setStyle(d)}});Effect.Highlight=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({startcolor:'#ffff99'},arguments[1]||{});this.start(options)},setup:function(){if(this.element.getStyle('display')=='none'){this.cancel();return}
2619this.oldStyle={};if(!this.options.keepBackgroundImage){this.oldStyle.backgroundImage=this.element.getStyle('background-image');this.element.setStyle({backgroundImage:'none'})}
2620if(!this.options.endcolor)
2621this.options.endcolor=this.element.getStyle('background-color').parseColor('#ffffff');if(!this.options.restorecolor)
2622this.options.restorecolor=this.element.getStyle('background-color');this._base=$R(0,2).map(function(i){return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16)}.bind(this));this._delta=$R(0,2).map(function(i){return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i]}.bind(this))},update:function(position){this.element.setStyle({backgroundColor:$R(0,2).inject('#',function(m,v,i){return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart())}.bind(this))})},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}))}});Effect.ScrollTo=function(element){var options=arguments[1]||{},scrollOffsets=document.viewport.getScrollOffsets(),elementOffsets=$(element).cumulativeOffset();if(options.offset)elementOffsets[1]+=options.offset;return new Effect.Tween(null,scrollOffsets.top,elementOffsets[1],options,function(p){scrollTo(scrollOffsets.left,p.round())})};Effect.Fade=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();var options=Object.extend({from:element.getOpacity()||1.0,to:0.0,afterFinishInternal:function(effect){if(effect.options.to!=0)return;effect.element.hide().setStyle({opacity:oldOpacity})}},arguments[1]||{});return new Effect.Opacity(element,options)};Effect.Appear=function(element){element=$(element);var options=Object.extend({from:(element.getStyle('display')=='none'?0.0:element.getOpacity()||0.0),to:1.0,afterFinishInternal:function(effect){effect.element.forceRerendering()},beforeSetup:function(effect){effect.element.setOpacity(effect.options.from).show()}},arguments[1]||{});return new Effect.Opacity(element,options)};Effect.Puff=function(element){element=$(element);var oldStyle={opacity:element.getInlineOpacity(),position:element.getStyle('position'),top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};return new Effect.Parallel([new Effect.Scale(element,200,{sync:!0,scaleFromCenter:!0,scaleContent:!0,restoreAfterFinish:!0}),new Effect.Opacity(element,{sync:!0,to:0.0})],Object.extend({duration:1.0,beforeSetupInternal:function(effect){Position.absolutize(effect.effects[0].element)},afterFinishInternal:function(effect){effect.effects[0].element.hide().setStyle(oldStyle)}},arguments[1]||{}))};Effect.BlindUp=function(element){element=$(element);element.makeClipping();return new Effect.Scale(element,0,Object.extend({scaleContent:!1,scaleX:!1,restoreAfterFinish:!0,afterFinishInternal:function(effect){effect.element.hide().undoClipping()}},arguments[1]||{}))};Effect.BlindDown=function(element){element=$(element);var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:!1,scaleX:!1,scaleFrom:0,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:!0,afterSetup:function(effect){effect.element.makeClipping().setStyle({height:'0px'}).show()},afterFinishInternal:function(effect){effect.element.undoClipping()}},arguments[1]||{}))};Effect.SwitchOff=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();return new Effect.Appear(element,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(effect){new Effect.Scale(effect.element,1,{duration:0.3,scaleFromCenter:!0,scaleX:!1,scaleContent:!1,restoreAfterFinish:!0,beforeSetup:function(effect){effect.element.makePositioned().makeClipping()},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned().setStyle({opacity:oldOpacity})}})}},arguments[1]||{}))};Effect.DropOut=function(element){element=$(element);
2622var oldStyle={top:element.getStyle('top'),left:element.getStyle('left'),opacity:element.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(element,{x:0,y:100,sync:!0}),new Effect.Opacity(element,{sync:!0,to:0.0})],Object.extend({duration:0.5,beforeSetup:function(effect){effect.effects[0].element.makePositioned()},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle)}},arguments[1]||{}))};Effect.Shake=function(element){element=$(element);var options=Object.extend({distance:20,duration:0.5},arguments[1]||{});var distance=parseFloat(options.distance);var split=parseFloat(options.duration)/10.0;var oldStyle={top:element.getStyle('top'),left:element.getStyle('left')};return new Effect.Move(element,{x:distance,y:0,duration:split,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance,y:0,duration:split,afterFinishInternal:function(effect){effect.element.undoPositioned().setStyle(oldStyle)}})}})}})}})}})}})};Effect.SlideDown=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:!1,scaleX:!1,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:!0,afterSetup:function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera)effect.element.setStyle({top:''});effect.element.makeClipping().setStyle({height:'0px'}).show()},afterUpdateInternal:function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'})},afterFinishInternal:function(effect){effect.element.undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom})}},arguments[1]||{}))};Effect.SlideUp=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');var elementDimensions=element.getDimensions();return new Effect.Scale(element,window.opera?0:1,Object.extend({scaleContent:!1,scaleX:!1,scaleMode:'box',scaleFrom:100,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:!0,afterSetup:function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera)effect.element.setStyle({top:''});effect.element.makeClipping().show()},afterUpdateInternal:function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'})},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom})}},arguments[1]||{}))};Effect.Squish=function(element){return new Effect.Scale(element,window.opera?1:0,{restoreAfterFinish:!0,beforeSetup:function(effect){effect.element.makeClipping()},afterFinishInternal:function(effect){effect.element.hide().undoClipping()}})};Effect.Grow=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var initialMoveX,initialMoveY;var moveX,moveY;switch(options.direction){case 'top-left':initialMoveX=initialMoveY=moveX=moveY=0;break;case 'top-right':initialMoveX=dims.width;initialMoveY=moveY=0;moveX=-dims.width;break;case 'bottom-left':initialMoveX=moveX=0;initialMoveY=dims.height;moveY=-dims.height;break;case 'bottom-right':initialMoveX=dims.width;initialMoveY=dims.height;moveX=-dims.width;moveY=-dims.height;break;case 'center':initialMoveX=dims.width/2;initialMoveY=dims.height/2;moveX=-dims.width/2;moveY=-dims.height/2;break}
2623return new Effect.Move(element,{x:initialMoveX,y:initialMoveY,duration:0.01,beforeSetup:function(effect){effect.element.hide().makeClipping().makePositioned()},afterFinishInternal:function(effect){new Effect.Parallel([new Effect.Opacity(effect.element,{sync:!0,to:1.0,from:0.0,transition:options.opacityTransition}),new Effect.Move(effect.element,{x:moveX,y:moveY,sync:!0,transition:options.moveTransition}),new Effect.Scale(effect.element,100,{scaleMode:{originalHeight:dims.height,originalWidth:dims.width},sync:!0,scaleFrom:window.opera?1:0,transition:options.scaleTransition,restoreAfterFinish:!0})],Object.extend({beforeSetup:function(effect){effect.effects[0].element.setStyle({height:'0px'}).show()},afterFinishInternal:function(effect){effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle)}},options))}})};Effect.Shrink=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});
2623var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var moveX,moveY;switch(options.direction){case 'top-left':moveX=moveY=0;break;case 'top-right':moveX=dims.width;moveY=0;break;case 'bottom-left':moveX=0;moveY=dims.height;break;case 'bottom-right':moveX=dims.width;moveY=dims.height;break;case 'center':moveX=dims.width/2;moveY=dims.height/2;break}
2624return new Effect.Parallel([new Effect.Opacity(element,{sync:!0,to:0.0,from:1.0,transition:options.opacityTransition}),new Effect.Scale(element,window.opera?1:0,{sync:!0,transition:options.scaleTransition,restoreAfterFinish:!0}),new Effect.Move(element,{x:moveX,y:moveY,sync:!0,transition:options.moveTransition})],Object.extend({beforeStartInternal:function(effect){effect.effects[0].element.makePositioned().makeClipping()},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle)}},options))};Effect.Pulsate=function(element){element=$(element);var options=arguments[1]||{},oldOpacity=element.getInlineOpacity(),transition=options.transition||Effect.Transitions.linear,reverser=function(pos){return 1-transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2)+.5)};return new Effect.Opacity(element,Object.extend(Object.extend({duration:2.0,from:0,afterFinishInternal:function(effect){effect.element.setStyle({opacity:oldOpacity})}},options),{transition:reverser}))};Effect.Fold=function(element){element=$(element);var oldStyle={top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};element.makeClipping();return new Effect.Scale(element,5,Object.extend({scaleContent:!1,scaleX:!1,afterFinishInternal:function(effect){new Effect.Scale(element,1,{scaleContent:!1,scaleY:!1,afterFinishInternal:function(effect){effect.element.hide().undoClipping().setStyle(oldStyle)}})}},arguments[1]||{}))};Effect.Morph=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({style:{}},arguments[1]||{});if(!Object.isString(options.style))this.style=$H(options.style);else{if(options.style.include(':'))
2625this.style=options.style.parseStyle();else{this.element.addClassName(options.style);this.style=$H(this.element.getStyles());this.element.removeClassName(options.style);var css=this.element.getStyles();this.style=this.style.reject(function(style){return style.value==css[style.key]});options.afterFinishInternal=function(effect){effect.element.addClassName(effect.options.style);effect.transforms.each(function(transform){effect.element.style[transform.style]=''})}}}
2626this.start(options)},setup:function(){function parseColor(color){if(!color||['rgba(0, 0, 0, 0)','transparent'].include(color))color='#ffffff';color=color.parseColor();return $R(0,2).map(function(i){return parseInt(color.slice(i*2+1,i*2+3),16)})}
2627this.transforms=this.style.map(function(pair){var property=pair[0],value=pair[1],unit=null;if(value.parseColor('#zzzzzz')!='#zzzzzz'){value=value.parseColor();unit='color'}else if(property=='opacity'){value=parseFloat(value);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout))
2628this.element.setStyle({zoom:1})}else if(Element.CSS_LENGTH.test(value)){var components=value.match(/^([\+\-]?[0-9\.]+)(.*)$/);value=parseFloat(components[1]);unit=(components.length==3)?components[2]:null}
2629var originalValue=this.element.getStyle(property);return{style:property.camelize(),originalValue:unit=='color'?parseColor(originalValue):parseFloat(originalValue||0),targetValue:unit=='color'?parseColor(value):value,unit:unit}}.bind(this)).reject(function(transform){return((transform.originalValue==transform.targetValue)||(transform.unit!='color'&&(isNaN(transform.originalValue)||isNaN(transform.targetValue))))})},update:function(position){var style={},transform,i=this.transforms.length;while(i--)
2630style[(transform=this.transforms[i]).style]=transform.unit=='color'?'#'+(Math.round(transform.originalValue[0]+(transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart()+(Math.round(transform.originalValue[1]+(transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart()+(Math.round(transform.originalValue[2]+(transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart():(transform.originalValue+(transform.targetValue-transform.originalValue)*position).toFixed(3)+(transform.unit===null?'':transform.unit);this.element.setStyle(style,!0)}});Effect.Transform=Class.create({initialize:function(tracks){this.tracks=[];this.options=arguments[1]||{};this.addTracks(tracks)},addTracks:function(tracks){tracks.each(function(track){track=$H(track);var data=track.values().first();this.tracks.push($H({ids:track.keys().first(),effect:Effect.Morph,options:{style:data}}))}.bind(this));return this},play:function(){return new Effect.Parallel(this.tracks.map(function(track){var ids=track.get('ids'),effect=track.get('effect'),options=track.get('options');var elements=[$(ids)||$$(ids)].flatten();return elements.map(function(e){return new effect(e,Object.extend({sync:!0},options))})}).flatten(),this.options)}});Element.CSS_PROPERTIES=$w('backgroundColor backgroundPosition borderBottomColor borderBottomStyle '+'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth '+'borderRightColor borderRightStyle borderRightWidth borderSpacing '+'borderTopColor borderTopStyle borderTopWidth bottom clip color '+'fontSize fontWeight height left letterSpacing lineHeight '+'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+'maxWidth minHeight minWidth opacity outlineColor outlineOffset '+'outlineWidth paddingBottom paddingLeft paddingRight paddingTop '+'right textIndent top width wordSpacing zIndex');Element.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;String.__parseStyleElement=document.createElement('div');String.prototype.parseStyle=function(){var style,styleRules=$H();if(Prototype.Browser.WebKit)
2631style=new Element('div',{style:this}).style;else{String.__parseStyleElement.innerHTML='<div style="'+this+'"></div>';style=String.__parseStyleElement.childNodes[0].style}
2632Element.CSS_PROPERTIES.each(function(property){if(style[property])styleRules.set(property,style[property])});if(Prototype.Browser.IE&&this.include('opacity'))
2633styleRules.set('opacity',this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);return styleRules};if(document.defaultView&&document.defaultView.getComputedStyle){Element.getStyles=function(element){var css=document.defaultView.getComputedStyle($(element),null);return Element.CSS_PROPERTIES.inject({},function(styles,property){styles[property]=css[property];return styles})}}else{Element.getStyles=function(element){element=$(element);var css=element.currentStyle,styles;styles=Element.CSS_PROPERTIES.inject({},function(results,property){results[property]=css[property];return results});if(!styles.opacity)styles.opacity=element.getOpacity();return styles}}
2634Effect.Methods={morph:function(element,style){element=$(element);new Effect.Morph(element,Object.extend({style:style},arguments[2]||{}));return element},visualEffect:function(element,effect,options){element=$(element);var s=effect.dasherize().camelize(),klass=s.charAt(0).toUpperCase()+s.substring(1);new Effect[klass](element,options);return element},highlight:function(element,options){element=$(element);new Effect.Highlight(element,options);return element}};$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+'pulsate shake puff squish switchOff dropOut').each(function(effect){Effect.Methods[effect]=function(element,options){element=$(element);Effect[effect.charAt(0).toUpperCase()+effect.substring(1)](element,options);return element}});$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each(function(f){Effect.Methods[f]=Element[f]});Element.addMethods(Effect.Methods);if(Object.isUndefined(Effect))
2635throw("dragdrop.js requires including script.aculo.us' effects.js library");var Droppables={drops:[],remove:function(element){this.drops=this.drops.reject(function(d){return d.element==$(element)})},add:function(element){element=$(element);var options=Object.extend({greedy:!0,hoverclass:null,tree:!1},arguments[1]||{});if(options.containment){options._containers=[];var containment=options.containment;if(Object.isArray(containment)){containment.each(function(c){options._containers.push($(c))})}else{options._containers.push($(containment))}}
2636if(options.accept)options.accept=[options.accept].flatten();Element.makePositioned(element);options.element=element;this.drops.push(options)},findDeepestChild:function(drops){deepest=drops[0];for(i=1;i<drops.length;++i)
2637if(Element.isParent(drops[i].element,deepest.element))
2638deepest=drops[i];return deepest},isContained:function(element,drop){var containmentNode;if(drop.tree){containmentNode=element.treeNode}else{containmentNode=element.parentNode}
2639return drop._containers.detect(function(c){return containmentNode==c})},isAffected:function(point,element,drop){return((drop.element!=element)&&((!drop._containers)||this.isContained(element,drop))&&((!drop.accept)||(Element.classNames(element).detect(function(v){return drop.accept.include(v)})))&&Position.within(drop.element,point[0],point[1]))},deactivate:function(drop){if(drop.hoverclass)
2640Element.removeClassName(drop.element,drop.hoverclass);this.last_active=null},activate:function(drop){if(drop.hoverclass)
2641Element.addClassName(drop.element,drop.hoverclass);this.last_active=drop},show:function(point,element){if(!this.drops.length)return;var drop,affected=[];this.drops.each(function(drop){if(Droppables.isAffected(point,element,drop))
2642affected.push(drop)});if(affected.length>0)
2643drop=Droppables.findDeepestChild(affected);if(this.last_active&&this.last_active!=drop)this.deactivate(this.last_active);if(drop){Position.within(drop.element,point[0],point[1]);if(drop.onHover)
2644drop.onHover(element,drop.element,Position.overlap(drop.overlap,drop.element));if(drop!=this.last_active)Droppables.activate(drop)}},fire:function(event,element){if(!this.last_active)return;Position.prepare();if(this.isAffected([Event.pointerX(event),Event.pointerY(event)],element,this.last_active))
2645if(this.last_active.onDrop){this.last_active.onDrop(element,this.last_active.element,event);return!0}},reset:function(){if(this.last_active)
2646this.deactivate(this.last_active)}};var Draggables={drags:[],observers:[],register:function(draggable){if(this.drags.length==0){this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.updateDrag.bindAsEventListener(this);this.eventKeypress=this.keyPress.bindAsEventListener(this);Event.observe(document,"mouseup",this.eventMouseUp);Event.observe(document,"mousemove",this.eventMouseMove);Event.observe(document,"keypress",this.eventKeypress)}
2647this.drags.push(draggable)},unregister:function(draggable){this.drags=this.drags.reject(function(d){return d==draggable});if(this.drags.length==0){Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);Event.stopObserving(document,"keypress",this.eventKeypress)}},activate:function(draggable){if(draggable.options.delay){this._timeout=setTimeout(function(){Draggables._timeout=null;window.focus();Draggables.activeDraggable=draggable}.bind(this),draggable.options.delay)}else{window.focus();this.activeDraggable=draggable}},deactivate:function(){this.activeDraggable=null},updateDrag:function(event){if(!this.activeDraggable)return;var pointer=[Event.pointerX(event),Event.pointerY(event)];if(this._lastPointer&&(this._lastPointer.inspect()==pointer.inspect()))return;this._lastPointer=pointer;this.activeDraggable.updateDrag(event,pointer)},endDrag:function(event){if(this._timeout){clearTimeout(this._timeout);this._timeout=null}
2648if(!this.activeDraggable)return;this._lastPointer=null;this.activeDraggable.endDrag(event);this.activeDraggable=null},keyPress:function(event){if(this.activeDraggable)
2649this.activeDraggable.keyPress(event)},addObserver:function(observer){this.observers.push(observer);this._cacheObserverCallbacks()},removeObserver:function(element){this.observers=this.observers.reject(function(o){return o.element==element});this._cacheObserverCallbacks()},notify:function(eventName,draggable,event){if(this[eventName+'Count']>0)
2650this.observers.each(function(o){if(o[eventName])o[eventName](eventName,draggable,event)});if(draggable.options[eventName])draggable.options[eventName](draggable,event)},_cacheObserverCallbacks:function(){['onStart','onEnd','onDrag'].each(function(eventName){Draggables[eventName+'Count']=Draggables.observers.select(function(o){return o[eventName]}).length})}};var Draggable=Class.create({initialize:function(element){var defaults={handle:!1,reverteffect:function(element,top_offset,left_offset){var dur=Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;new Effect.Move(element,{x:-left_offset,y:-top_offset,duration:dur,queue:{scope:'_draggable',position:'end'}})},endeffect:function(element){var toOpacity=Object.isNumber(element._opacity)?element._opacity:1.0;new Effect.Opacity(element,{duration:0.2,from:0.7,to:toOpacity,queue:{scope:'_draggable',position:'end'},afterFinish:function(){Draggable._dragging[element]=!1}})},zindex:1000,revert:!1,quiet:!1,scroll:!1,scrollSensitivity:20,scrollSpeed:15,snap:!1,delay:0};if(!arguments[1]||Object.isUndefined(arguments[1].endeffect))
2651Object.extend(defaults,{starteffect:function(element){element._opacity=Element.getOpacity(element);Draggable._dragging[element]=!0;new Effect.Opacity(element,{duration:0.2,from:element._opacity,to:0.7})}});var options=Object.extend(defaults,arguments[1]||{});this.element=$(element);if(options.handle&&Object.isString(options.handle))
2652this.handle=this.element.down('.'+options.handle,0);if(!this.handle)this.handle=$(options.handle);if(!this.handle)this.handle=this.element;
2652if(options.scroll&&!options.scroll.scrollTo&&!options.scroll.outerHTML){options.scroll=$(options.scroll);this._isScrollChild=Element.childOf(this.element,options.scroll)}
2653Element.makePositioned(this.element);this.options=options;this.dragging=!1;this.eventMouseDown=this.initDrag.bindAsEventListener(this);Event.observe(this.handle,"mousedown",this.eventMouseDown);Draggables.register(this)},destroy:function(){Event.stopObserving(this.handle,"mousedown",this.eventMouseDown);Draggables.unregister(this)},currentDelta:function(){return([parseInt(Element.getStyle(this.element,'left')||'0'),parseInt(Element.getStyle(this.element,'top')||'0')])},initDrag:function(event){if(!Object.isUndefined(Draggable._dragging[this.element])&&Draggable._dragging[this.element])return;if(Event.isLeftClick(event)){var src=Event.element(event);if((tag_name=src.tagName.toUpperCase())&&(tag_name=='INPUT'||tag_name=='SELECT'||tag_name=='OPTION'||tag_name=='BUTTON'||tag_name=='TEXTAREA'))return;var pointer=[Event.pointerX(event),Event.pointerY(event)];var pos=this.element.cumulativeOffset();this.offset=[0,1].map(function(i){return(pointer[i]-pos[i])});Draggables.activate(this);Event.stop(event)}},startDrag:function(event){this.dragging=!0;if(!this.delta)
2654this.delta=this.currentDelta();if(this.options.zindex){this.originalZ=parseInt(Element.getStyle(this.element,'z-index')||0);this.element.style.zIndex=this.options.zindex}
2655if(this.options.ghosting){this._clone=this.element.cloneNode(!0);this._originallyAbsolute=(this.element.getStyle('position')=='absolute');if(!this._originallyAbsolute)
2656Position.absolutize(this.element);this.element.parentNode.insertBefore(this._clone,this.element)}
2657if(this.options.scroll){if(this.options.scroll==window){var where=this._getWindowScroll(this.options.scroll);this.originalScrollLeft=where.left;this.originalScrollTop=where.top}else{this.originalScrollLeft=this.options.scroll.scrollLeft;this.originalScrollTop=this.options.scroll.scrollTop}}
2658Draggables.notify('onStart',this,event);if(this.options.starteffect)this.options.starteffect(this.element)},updateDrag:function(event,pointer){if(!this.dragging)this.startDrag(event);if(!this.options.quiet){Position.prepare();Droppables.show(pointer,this.element)}
2659Draggables.notify('onDrag',this,event);this.draw(pointer);if(this.options.change)this.options.change(this);if(this.options.scroll){this.stopScrolling();var p;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){p=[left,top,left+width,top+height]}}else{p=Position.page(this.options.scroll).toArray();p[0]+=this.options.scroll.scrollLeft+Position.deltaX;p[1]+=this.options.scroll.scrollTop+Position.deltaY;p.push(p[0]+this.options.scroll.offsetWidth);p.push(p[1]+this.options.scroll.offsetHeight)}
2660var speed=[0,0];if(pointer[0]<(p[0]+this.options.scrollSensitivity))speed[0]=pointer[0]-(p[0]+this.options.scrollSensitivity);if(pointer[1]<(p[1]+this.options.scrollSensitivity))speed[1]=pointer[1]-(p[1]+this.options.scrollSensitivity);if(pointer[0]>(p[2]-this.options.scrollSensitivity))speed[0]=pointer[0]-(p[2]-this.options.scrollSensitivity);if(pointer[1]>(p[3]-this.options.scrollSensitivity))speed[1]=pointer[1]-(p[3]-this.options.scrollSensitivity);this.startScrolling(speed)}
2661if(Prototype.Browser.WebKit)window.scrollBy(0,0);Event.stop(event)},finishDrag:function(event,success){this.dragging=!1;if(this.options.quiet){Position.prepare();var pointer=[Event.pointerX(event),Event.pointerY(event)];Droppables.show(pointer,this.element)}
2662if(this.options.ghosting){if(!this._originallyAbsolute)
2663Position.relativize(this.element);delete this._originallyAbsolute;Element.remove(this._clone);this._clone=null}
2664var dropped=!1;if(success){dropped=Droppables.fire(event,this.element);if(!dropped)dropped=!1}
2665if(dropped&&this.options.onDropped)this.options.onDropped(this.element);Draggables.notify('onEnd',this,event);var revert=this.options.revert;if(revert&&Object.isFunction(revert))revert=revert(this.element);var d=this.currentDelta();if(revert&&this.options.reverteffect){if(dropped==0||revert!='failure')
2666this.options.reverteffect(this.element,d[1]-this.delta[1],d[0]-this.delta[0])}else{this.delta=d}
2667if(this.options.zindex)
2668this.element.style.zIndex=this.originalZ;if(this.options.endeffect)
2669this.options.endeffect(this.element);Draggables.deactivate(this);Droppables.reset()},keyPress:function(event){if(event.keyCode!=Event.KEY_ESC)return;this.finishDrag(event,!1);Event.stop(event)},endDrag:function(event){if(!this.dragging)return;this.stopScrolling();this.finishDrag(event,!0);Event.stop(event)},draw:function(point){var pos=this.element.cumulativeOffset();if(this.options.ghosting){var r=Position.realOffset(this.element);pos[0]+=r[0]-Position.deltaX;pos[1]+=r[1]-Position.deltaY}
2670var d=this.currentDelta();pos[0]-=d[0];pos[1]-=d[1];if(this.options.scroll&&(this.options.scroll!=window&&this._isScrollChild)){pos[0]-=this.options.scroll.
2670scrollLeft-this.originalScrollLeft;pos[1]-=this.options.scroll.scrollTop-this.originalScrollTop}
2671var p=[0,1].map(function(i){return(point[i]-pos[i]-this.offset[i])}.bind(this));if(this.options.snap){if(Object.isFunction(this.options.snap)){p=this.options.snap(p[0],p[1],this)}else{if(Object.isArray(this.options.snap)){p=p.map(function(v,i){return(v/this.options.snap[i]).round()*this.options.snap[i]}.bind(this))}else{p=p.map(function(v){return(v/this.options.snap).round()*this.options.snap}.bind(this))}}}
2672var style=this.element.style;if((!this.options.constraint)||(this.options.constraint=='horizontal'))
2673style.left=p[0]+"px";if((!this.options.constraint)||(this.options.constraint=='vertical'))
2674style.top=p[1]+"px";if(style.visibility=="hidden")style.visibility=""},stopScrolling:function(){if(this.scrollInterval){clearInterval(this.scrollInterval);this.scrollInterval=null;Draggables._lastScrollPointer=null}},startScrolling:function(speed){if(!(speed[0]||speed[1]))return;this.scrollSpeed=[speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];this.lastScrolled=new Date();this.scrollInterval=setInterval(this.scroll.bind(this),10)},scroll:function(){var current=new Date();var delta=current-this.lastScrolled;this.lastScrolled=current;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){if(this.scrollSpeed[0]||this.scrollSpeed[1]){var d=delta/1000;this.options.scroll.scrollTo(left+d*this.scrollSpeed[0],top+d*this.scrollSpeed[1])}}}else{this.options.scroll.scrollLeft+=this.scrollSpeed[0]*delta/1000;this.options.scroll.scrollTop+=this.scrollSpeed[1]*delta/1000}
2675Position.prepare();Droppables.show(Draggables._lastPointer,this.element);Draggables.notify('onDrag',this);if(this._isScrollChild){Draggables._lastScrollPointer=Draggables._lastScrollPointer||$A(Draggables._lastPointer);Draggables._lastScrollPointer[0]+=this.scrollSpeed[0]*delta/1000;Draggables._lastScrollPointer[1]+=this.scrollSpeed[1]*delta/1000;if(Draggables._lastScrollPointer[0]<0)
2676Draggables._lastScrollPointer[0]=0;if(Draggables._lastScrollPointer[1]<0)
2677Draggables._lastScrollPointer[1]=0;this.draw(Draggables._lastScrollPointer)}
2678if(this.options.change)this.options.change(this)},_getWindowScroll:function(w){var T,L,W,H;with(w.document){if(w.document.documentElement&&documentElement.scrollTop){T=documentElement.scrollTop;L=documentElement.scrollLeft}else if(w.document.body){T=body.scrollTop;L=body.scrollLeft}
2679if(w.innerWidth){W=w.innerWidth;H=w.innerHeight}else if(w.document.documentElement&&documentElement.clientWidth){W=documentElement.clientWidth;H=documentElement.clientHeight}else{W=body.offsetWidth;H=body.offsetHeight}}
2680return{top:T,left:L,width:W,height:H}}});Draggable._dragging={};var SortableObserver=Class.create({initialize:function(element,observer){this.element=$(element);this.observer=observer;this.lastValue=Sortable.serialize(this.element)},onStart:function(){this.lastValue=Sortable.serialize(this.element)},onEnd:function(){Sortable.unmark();if(this.lastValue!=Sortable.serialize(this.element))
2681this.observer(this.element)}});var Sortable={SERIALIZE_RULE:/^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,sortables:{},_findRootElement:function(element){while(element.tagName.toUpperCase()!="BODY"){if(element.id&&Sortable.sortables[element.id])return element;element=element.parentNode}},options:function(element){element=Sortable._findRootElement($(element));if(!element)return;return Sortable.sortables[element.id]},destroy:function(element){element=$(element);var s=Sortable.sortables[element.id];if(s){Draggables.removeObserver(s.element);s.droppables.each(function(d){Droppables.remove(d)});s.draggables.invoke('destroy');delete Sortable.sortables[s.element.id]}},create:function(element){element=$(element);var options=Object.extend({element:element,tag:'li',dropOnEmpty:!1,tree:!1,treeTag:'ul',overlap:'vertical',constraint:'vertical',containment:element,handle:!1,only:!1,delay:0,hoverclass:null,ghosting:!1,quiet:!1,scroll:!1,scrollSensitivity:20,scrollSpeed:15,format:this.SERIALIZE_RULE,elements:!1,handles:!1,onChange:Prototype.emptyFunction,onUpdate:Prototype.emptyFunction},arguments[1]||{});this.destroy(element);var options_for_draggable={revert:!0,quiet:options.quiet,scroll:options.scroll,scrollSpeed:options.scrollSpeed,scrollSensitivity:options.scrollSensitivity,delay:options.delay,ghosting:options.ghosting,constraint:options.constraint,handle:options.handle};if(options.starteffect)
2682options_for_draggable.starteffect=options.starteffect;if(options.reverteffect)
2683options_for_draggable.reverteffect=options.reverteffect;else if(options.ghosting)options_for_draggable.reverteffect=function(element){element.style.top=0;element.style.left=0};if(options.endeffect)
2684options_for_draggable.endeffect=options.endeffect;if(options.zindex)
2685options_for_draggable.zindex=options.zindex;var options_for_droppable={overlap:options.overlap,containment:options.containment,tree:options.tree,hoverclass:options.hoverclass,onHover:Sortable.onHover};var options_for_tree={onHover:Sortable.onEmptyHover,overlap:options.overlap,containment:options.containment,hoverclass:options.hoverclass};Element.cleanWhitespace(element);options.draggables=[];options.droppables=[];if(options.dropOnEmpty||options.tree){Droppables.add(element,options_for_tree);options.droppables.push(element)}(options.elements||this.findElements(element,options)||[]).each(function(e,i){var handle=options.handles?$(options.handles[i]):(options.handle?$(e).select('.'+options.handle)[0]:e);options.draggables.push(new Draggable(e,Object.extend(options_for_draggable,{handle:handle})));Droppables.add(e,options_for_droppable);if(options.tree)e.treeNode=element;options.droppables.push(e)});if(options.tree){(Sortable.findTreeElements(element,options)||[]).each(function(e){Droppables.add(e,options_for_tree);e.treeNode=element;options.droppables.push(e)})}
2686this.sortables[element.identify()]=options;Draggables.addObserver(new SortableObserver(element,options.onUpdate))},findElements:function(element,options){return Element.findChildren(element,options.only,options.tree?!0:!1,options.tag)},findTreeElements:function(element,options){return Element.findChildren(element,options.only,options.tree?!0:!1,options.treeTag)},onHover:function(element,dropon,overlap){if(Element.isParent(dropon,element))return;if(overlap>.33&&overlap<.66&&Sortable.options(dropon).tree){return}else if(overlap>0.5){Sortable.mark(dropon,'before');if(dropon.previousSibling!=element){var oldParentNode=element.parentNode;element.style.visibility="hidden";dropon.parentNode.insertBefore(element,dropon);if(dropon.parentNode!=oldParentNode)
2687Sortable.options(oldParentNode).onChange(element);Sortable.options(dropon.parentNode).onChange(element)}}else{Sortable.mark(dropon,'after');var nextElement=dropon.nextSibling||null;if(nextElement!=element){var oldParentNode=element.parentNode;element.style.visibility="hidden";dropon.parentNode.insertBefore(element,nextElement);if(dropon.parentNode!=oldParentNode)
2688Sortable.options(oldParentNode).onChange(element);Sortable.options(dropon.parentNode).onChange(element)}}},onEmptyHover:function(element,dropon,overlap){var oldParentNode=element.parentNode;var droponOptions=Sortable.options(dropon);if(!Element.isParent(dropon,element)){var index;var children=Sortable.findElements(dropon,{tag:droponOptions.tag,only:droponOptions.only});var child=null;if(children){var offset=Element.offsetSize(dropon,droponOptions.overlap)*(1.0-overlap);for(index=0;index<children.length;index+=1){if(offset-Element.offsetSize(children[index],droponOptions.overlap)>=0){offset-=Element.offsetSize(children[index],droponOptions.overlap)}else if(offset-(Element.offsetSize(children[index],droponOptions.overlap)/2)>=0){child=index+1<children.length?children[index+1]:null;break}else{child=children[index];break}}}
2689dropon.insertBefore(element,child);Sortable.options(oldParentNode).onChange(element);droponOptions.onChange(element)}},unmark:function(){if(Sortable._marker)Sortable._marker.hide()},mark:function(dropon,position){var sortable=Sortable.options(dropon.parentNode);if(sortable&&!sortable.ghosting)return;if(!Sortable._marker){Sortable._marker=($('dropmarker')||Element.extend(document.createElement('DIV'))).hide().addClassName('dropmarker').setStyle({position:'absolute'});document.getElementsByTagName("body").item(0).appendChild(Sortable._marker)}
2690var offsets=dropon.cumulativeOffset();Sortable._marker.setStyle({left:offsets[0]+'px',top:offsets[1]+'px'});if(position=='after')
2691if(sortable.overlap=='horizontal')
2692Sortable._marker.setStyle({left:(offsets[0]+dropon.clientWidth)+'px'});else Sortable._marker.setStyle({top:(offsets[1]+dropon.clientHeight)+'px'});Sortable._marker.show()},_tree:function(element,options,parent){var children=Sortable.findElements(element,options)||[];for(var i=0;i<children.length;++i){var match=children[i].id.match(options.format);if(!match)continue;var child={id:encodeURIComponent(match?match[1]:null),element:element,parent:parent,children:[],position:parent.children.length,container:$(children[i]).down(options.treeTag)};if(child.container)
2693this._tree(child.container,options,child);parent.children.push(child)}
2694return parent},tree:function(element){element=$(element);var sortableOptions=this.options(element);var options=Object.extend({tag:sortableOptions.tag,treeTag:sortableOptions.treeTag,only:sortableOptions.only,name:element.id,format:sortableOptions.format},arguments[1]||{});var root={id:null,parent:null,children:[],container:element,position:0};return Sortable._tree(element,options,root)},_constructIndex:function(node){var index='';do{if(node.id)index='['+node.position+']'+index}while((node=node.parent)!=null);return index},sequence:function(element){element=$(element);var options=Object.extend(this.options(element),arguments[1]||{});return $(this.findElements(element,options)||[]).map(function(item){return item.id.match(options.format)?item.id.match(options.format)[1]:''})},setSequence:function(element,new_sequence){element=$(element);var options=Object.extend(this.options(element),arguments[2]||{});var nodeMap={};this.findElements(element,options).each(function(n){if(n.id.match(options.format))
2695nodeMap[n.id.match(options.format)[1]]=[n,n.parentNode];n.parentNode.removeChild(n)});new_sequence.each(function(ident){var n=nodeMap[ident];if(n){n[1].appendChild(n[0]);delete nodeMap[ident]}})},serialize:function(element){element=$(element);
2695var options=Object.extend(Sortable.options(element),arguments[1]||{});var name=encodeURIComponent((arguments[1]&&arguments[1].name)?arguments[1].name:element.id);if(options.tree){return Sortable.tree(element,arguments[1]).children.map(function(item){return[name+Sortable._constructIndex(item)+"[id]="+encodeURIComponent(item.id)].concat(item.children.map(arguments.callee))}).flatten().join('&')}else{return Sortable.sequence(element,arguments[1]).map(function(item){return name+"[]="+encodeURIComponent(item)}).join('&')}}};Element.isParent=function(child,element){if(!child.parentNode||child==element)return!1;if(child.parentNode==element)return!0;return Element.isParent(child.parentNode,element)};Element.findChildren=function(element,only,recursive,tagName){if(!element.hasChildNodes())return null;tagName=tagName.toUpperCase();if(only)only=[only].flatten();var elements=[];$A(element.childNodes).each(function(e){if(e.tagName&&e.tagName.toUpperCase()==tagName&&(!only||(Element.classNames(e).detect(function(v){return only.include(v)}))))
2696elements.push(e);if(recursive){var grandchildren=Element.findChildren(e,only,recursive,tagName);if(grandchildren)elements.push(grandchildren)}});return(elements.length>0?elements.flatten():[])};Element.offsetSize=function(element,type){return element['offset'+((type=='vertical'||type=='height')?'Height':'Width')]};if(typeof Effect=='undefined')
2697throw("controls.js requires including script.aculo.us' effects.js library");var Autocompleter={};Autocompleter.Base=Class.create({baseInitialize:function(element,update,options){element=$(element);this.element=element;this.update=$(update);this.hasFocus=!1;this.changed=!1;this.active=!1;this.index=0;this.entryCount=0;this.oldElementValue=this.element.value;if(this.setOptions)
2698this.setOptions(options);else this.options=options||{};this.options.paramName=this.options.paramName||this.element.name;this.options.tokens=this.options.tokens||[];this.options.frequency=this.options.frequency||0.4;this.options.minChars=this.options.minChars||1;this.options.onShow=this.options.onShow||function(element,update){if(!update.style.position||update.style.position=='absolute'){update.style.position='absolute';Position.clone(element,update,{setHeight:!1,offsetTop:element.offsetHeight})}
2699Effect.Appear(update,{duration:0.15})};this.options.onHide=this.options.onHide||function(element,update){new Effect.Fade(update,{duration:0.15})};if(typeof(this.options.tokens)=='string')
2700this.options.tokens=new Array(this.options.tokens);if(!this.options.tokens.include('\n'))
2701this.options.tokens.push('\n');this.observer=null;this.element.setAttribute('autocomplete','off');Element.hide(this.update);Event.observe(this.element,'blur',this.onBlur.bindAsEventListener(this));Event.observe(this.element,'keydown',this.onKeyPress.bindAsEventListener(this))},show:function(){if(Element.getStyle(this.update,'display')=='none')this.options.onShow(this.element,this.update);if(!this.iefix&&(Prototype.Browser.IE)&&(Element.getStyle(this.update,'position')=='absolute')){new Insertion.After(this.update,'<iframe id="'+this.update.id+'_iefix" '+'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" '+'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');this.iefix=$(this.update.id+'_iefix')}
2702if(this.iefix)setTimeout(this.fixIEOverlapping.bind(this),50)},fixIEOverlapping:function(){Position.clone(this.update,this.iefix,{setTop:(!this.update.style.height)});this.iefix.style.zIndex=1;this.update.style.zIndex=2;Element.show(this.iefix)},hide:function(){this.stopIndicator();if(Element.getStyle(this.update,'display')!='none')this.options.onHide(this.element,this.update);if(this.iefix)Element.hide(this.iefix)},startIndicator:function(){if(this.options.indicator)Element.show(this.options.indicator)},stopIndicator:function(){if(this.options.indicator)Element.hide(this.options.indicator)},onKeyPress:function(event){if(this.active)
2703switch(event.keyCode){case Event.KEY_TAB:case Event.KEY_RETURN:this.selectEntry();Event.stop(event);case Event.KEY_ESC:this.hide();this.active=!1;
2703Event.stop(event);return;case Event.KEY_LEFT:case Event.KEY_RIGHT:return;case Event.KEY_UP:this.markPrevious();this.render();Event.stop(event);return;case Event.KEY_DOWN:this.markNext();this.render();Event.stop(event);return}else if(event.keyCode==Event.KEY_TAB||event.keyCode==Event.KEY_RETURN||(Prototype.Browser.WebKit>0&&event.keyCode==0))return;this.changed=!0;this.hasFocus=!0;if(this.observer)clearTimeout(this.observer);this.observer=setTimeout(this.onObserverEvent.bind(this),this.options.frequency*1000)},activate:function(){this.changed=!1;this.hasFocus=!0;this.getUpdatedChoices()},onHover:function(event){var element=Event.findElement(event,'LI');if(this.index!=element.autocompleteIndex){this.index=element.autocompleteIndex;this.render()}
2704Event.stop(event)},onClick:function(event){var element=Event.findElement(event,'LI');this.index=element.autocompleteIndex;this.selectEntry();this.hide()},onBlur:function(event){setTimeout(this.hide.bind(this),250);this.hasFocus=!1;this.active=!1},render:function(){if(this.entryCount>0){for(var i=0;i<this.entryCount;i++)
2705this.index==i?Element.addClassName(this.getEntry(i),"selected"):Element.removeClassName(this.getEntry(i),"selected");if(this.hasFocus){this.show();this.active=!0}}else{this.active=!1;this.hide()}},markPrevious:function(){if(this.index>0)this.index--;else this.index=this.entryCount-1;this.getEntry(this.index).scrollIntoView(!0)},markNext:function(){if(this.index<this.entryCount-1)this.index++;else this.index=0;this.getEntry(this.index).scrollIntoView(!1)},getEntry:function(index){return this.update.firstChild.childNodes[index]},getCurrentEntry:function(){return this.getEntry(this.index)},selectEntry:function(){this.active=!1;this.updateElement(this.getCurrentEntry())},updateElement:function(selectedElement){if(this.options.updateElement){this.options.updateElement(selectedElement);return}
2706var value='';if(this.options.select){var nodes=$(selectedElement).select('.'+this.options.select)||[];if(nodes.length>0)value=Element.collectTextNodes(nodes[0],this.options.select)}else value=Element.collectTextNodesIgnoreClass(selectedElement,'informal');var bounds=this.getTokenBounds();if(bounds[0]!=-1){var newValue=this.element.value.substr(0,bounds[0]);var whitespace=this.element.value.substr(bounds[0]).match(/^\s+/);if(whitespace)
2707newValue+=whitespace[0];this.element.value=newValue+value+this.element.value.substr(bounds[1])}else{this.element.value=value}
2708this.oldElementValue=this.element.value;this.element.focus();if(this.options.afterUpdateElement)
2709this.options.afterUpdateElement(this.element,selectedElement)},updateChoices:function(choices){if(!this.changed&&this.hasFocus){this.update.innerHTML=choices;Element.cleanWhitespace(this.update);Element.cleanWhitespace(this.update.down());if(this.update.firstChild&&this.update.down().childNodes){this.entryCount=this.update.down().childNodes.length;for(var i=0;i<this.entryCount;i++){var entry=this.getEntry(i);entry.autocompleteIndex=i;this.addObservers(entry)}}else{this.entryCount=0}
2710this.stopIndicator();this.index=0;if(this.entryCount==1&&this.options.autoSelect){this.selectEntry();this.hide()}else{this.render()}}},addObservers:function(element){Event.observe(element,"mouseover",this.onHover.bindAsEventListener(this));Event.observe(element,"click",this.onClick.bindAsEventListener(this))},onObserverEvent:function(){this.changed=!1;this.tokenBounds=null;if(this.getToken().length>=this.options.minChars){this.getUpdatedChoices()}else{this.active=!1;this.hide()}
2711this.oldElementValue=this.element.value},getToken:function(){var bounds=this.getTokenBounds();return this.element.value.substring(bounds[0],bounds[1]).strip()},getTokenBounds:function(){if(null!=this.tokenBounds)return this.tokenBounds;var value=this.element.value;if(value.strip().empty())return[-1,0];var diff=arguments.callee.getFirstDifferencePos(value,this.oldElementValue);var offset=(diff==this.oldElementValue.length?1:0);var prevTokenPos=-1,nextTokenPos=value.length;var tp;for(var index=0,l=this.options.tokens.length;index<l;++index){tp=value.lastIndexOf(this.options.tokens[index],diff+offset-1);if(tp>prevTokenPos)prevTokenPos=tp;tp=value.indexOf(this.options.tokens[index],diff+offset);if(-1!=tp&&tp<nextTokenPos)nextTokenPos=tp}
2712return(this.tokenBounds=[prevTokenPos+1,nextTokenPos])}});Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos=function(newS,oldS){var boundary=Math.min(newS.length,oldS.length);for(var index=0;
2712index<boundary;++index)
2713if(newS[index]!=oldS[index])
2714return index;return boundary};Ajax.Autocompleter=Class.create(Autocompleter.Base,{initialize:function(element,update,url,options){this.baseInitialize(element,update,options);this.options.asynchronous=!0;this.options.onComplete=this.onComplete.bind(this);this.options.defaultParams=this.options.parameters||null;this.url=url},getUpdatedChoices:function(){this.startIndicator();var entry=encodeURIComponent(this.options.paramName)+'='+encodeURIComponent(this.getToken());this.options.parameters=this.options.callback?this.options.callback(this.element,entry):entry;if(this.options.defaultParams)
2715this.options.parameters+='&'+this.options.defaultParams;new Ajax.Request(this.url,this.options)},onComplete:function(request){this.updateChoices(request.responseText)}});Autocompleter.Local=Class.create(Autocompleter.Base,{initialize:function(element,update,array,options){this.baseInitialize(element,update,options);this.options.array=array},getUpdatedChoices:function(){this.updateChoices(this.options.selector(this))},setOptions:function(options){this.options=Object.extend({choices:10,partialSearch:!0,partialChars:2,ignoreCase:!0,fullSearch:!1,selector:function(instance){var ret=[];var partial=[];var entry=instance.getToken();var count=0;for(var i=0;i<instance.options.array.length&&ret.length<instance.options.choices;i++){var elem=instance.options.array[i];var foundPos=instance.options.ignoreCase?elem.toLowerCase().indexOf(entry.toLowerCase()):elem.indexOf(entry);while(foundPos!=-1){if(foundPos==0&&elem.length!=entry.length){ret.push("<li><strong>"+elem.substr(0,entry.length)+"</strong>"+elem.substr(entry.length)+"</li>");break}else if(entry.length>=instance.options.partialChars&&instance.options.partialSearch&&foundPos!=-1){if(instance.options.fullSearch||/\s/.test(elem.substr(foundPos-1,1))){partial.push("<li>"+elem.substr(0,foundPos)+"<strong>"+elem.substr(foundPos,entry.length)+"</strong>"+elem.substr(foundPos+entry.length)+"</li>");break}}
2716foundPos=instance.options.ignoreCase?elem.toLowerCase().indexOf(entry.toLowerCase(),foundPos+1):elem.indexOf(entry,foundPos+1)}}
2717if(partial.length)
2718ret=ret.concat(partial.slice(0,instance.options.choices-ret.length));return"<ul>"+ret.join('')+"</ul>"}},options||{})}});Field.scrollFreeActivate=function(field){setTimeout(function(){Field.activate(field)},1)};Ajax.InPlaceEditor=Class.create({initialize:function(element,url,options){this.url=url;this.element=element=$(element);this.prepareOptions();this._controls={};arguments.callee.dealWithDeprecatedOptions(options);Object.extend(this.options,options||{});if(!this.options.formId&&this.element.id){this.options.formId=this.element.id+'-inplaceeditor';if($(this.options.formId))
2719this.options.formId=''}
2720if(this.options.externalControl)
2721this.options.externalControl=$(this.options.externalControl);if(!this.options.externalControl)
2722this.options.externalControlOnly=!1;this._originalBackground=this.element.getStyle('background-color')||'transparent';this.element.title=this.options.clickToEditText;this._boundCancelHandler=this.handleFormCancellation.bind(this);this._boundComplete=(this.options.onComplete||Prototype.emptyFunction).bind(this);this._boundFailureHandler=this.handleAJAXFailure.bind(this);this._boundSubmitHandler=this.handleFormSubmission.bind(this);this._boundWrapperHandler=this.wrapUp.bind(this);this.registerListeners()},checkForEscapeOrReturn:function(e){if(!this._editing||e.ctrlKey||e.altKey||e.shiftKey)return;if(Event.KEY_ESC==e.keyCode)
2723this.handleFormCancellation(e);else if(Event.KEY_RETURN==e.keyCode)
2724this.handleFormSubmission(e)},createControl:function(mode,handler,extraClasses){var control=this.options[mode+'Control'];var text=this.options[mode+'Text'];if('button'==control){var btn=document.createElement('input');btn.type='submit';btn.value=text;btn.className='editor_'+mode+'_button';if('cancel'==mode)
2725btn.onclick=this._boundCancelHandler;this._form.appendChild(btn);this._controls[mode]=btn}else if('link'==control){var link=document.createElement('a');link.href='#';link.appendChild(document.createTextNode(text));link.onclick='cancel'==mode?this._boundCancelHandler:this._boundSubmitHandler;link.className='editor_'+mode+'_link';
2725if(extraClasses)
2726link.className+=' '+extraClasses;this._form.appendChild(link);this._controls[mode]=link}},createEditField:function(){var text=(this.options.loadTextURL?this.options.loadingText:this.getText());var fld;if(1>=this.options.rows&&!/\r|\n/.test(this.getText())){fld=document.createElement('input');fld.type='text';var size=this.options.size||this.options.cols||0;if(0<size)fld.size=size}else{fld=document.createElement('textarea');fld.rows=(1>=this.options.rows?this.options.autoRows:this.options.rows);fld.cols=this.options.cols||40}
2727fld.name=this.options.paramName;fld.value=text;fld.className='editor_field';if(this.options.submitOnBlur)
2728fld.onblur=this._boundSubmitHandler;this._controls.editor=fld;if(this.options.loadTextURL)
2729this.loadExternalText();this._form.appendChild(this._controls.editor)},createForm:function(){var ipe=this;function addText(mode,condition){var text=ipe.options['text'+mode+'Controls'];if(!text||condition===!1)return;ipe._form.appendChild(document.createTextNode(text))};this._form=$(document.createElement('form'));this._form.id=this.options.formId;this._form.addClassName(this.options.formClassName);this._form.onsubmit=this._boundSubmitHandler;this.createEditField();if('textarea'==this._controls.editor.tagName.toLowerCase())
2730this._form.appendChild(document.createElement('br'));if(this.options.onFormCustomization)
2731this.options.onFormCustomization(this,this._form);addText('Before',this.options.okControl||this.options.cancelControl);this.createControl('ok',this._boundSubmitHandler);addText('Between',this.options.okControl&&this.options.cancelControl);this.createControl('cancel',this._boundCancelHandler,'editor_cancel');addText('After',this.options.okControl||this.options.cancelControl)},destroy:function(){if(this._oldInnerHTML)
2732this.element.innerHTML=this._oldInnerHTML;this.leaveEditMode();this.unregisterListeners()},enterEditMode:function(e){if(this._saving||this._editing)return;this._editing=!0;this.triggerCallback('onEnterEditMode');if(this.options.externalControl)
2733this.options.externalControl.hide();this.element.hide();this.createForm();this.element.parentNode.insertBefore(this._form,this.element);if(!this.options.loadTextURL)
2734this.postProcessEditField();if(e)Event.stop(e)},enterHover:function(e){if(this.options.hoverClassName)
2735this.element.addClassName(this.options.hoverClassName);if(this._saving)return;this.triggerCallback('onEnterHover')},getText:function(){return this.element.innerHTML.unescapeHTML()},handleAJAXFailure:function(transport){this.triggerCallback('onFailure',transport);if(this._oldInnerHTML){this.element.innerHTML=this._oldInnerHTML;this._oldInnerHTML=null}},handleFormCancellation:function(e){this.wrapUp();if(e)Event.stop(e)},handleFormSubmission:function(e){var form=this._form;var value=$F(this._controls.editor);this.prepareSubmission();var params=this.options.callback(form,value)||'';if(Object.isString(params))
2736params=params.toQueryParams();params.editorId=this.element.id;if(this.options.htmlResponse){var options=Object.extend({evalScripts:!0},this.options.ajaxOptions);Object.extend(options,{parameters:params,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Updater({success:this.element},this.url,options)}else{var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:params,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Request(this.url,options)}
2737if(e)Event.stop(e)},leaveEditMode:function(){this.element.removeClassName(this.options.savingClassName);this.removeForm();this.leaveHover();this.element.style.backgroundColor=this._originalBackground;this.element.show();if(this.options.externalControl)
2738this.options.externalControl.show();this._saving=!1;this._editing=!1;this._oldInnerHTML=null;this.triggerCallback('onLeaveEditMode')},leaveHover:function(e){if(this.options.hoverClassName)
2739this.element.removeClassName(this.options.hoverClassName);if(this._saving)return;this.triggerCallback('onLeaveHover')},loadExternalText:function(){this._form.addClassName(this.options.loadingClassName);this._controls.editor.disabled=!0;var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:'editorId='+encodeURIComponent(this.element.i
2739d),onComplete:Prototype.emptyFunction,onSuccess:function(transport){this._form.removeClassName(this.options.loadingClassName);var text=transport.responseText;if(this.options.stripLoadedTextTags)
2740text=text.stripTags();this._controls.editor.value=text;this._controls.editor.disabled=!1;this.postProcessEditField()}.bind(this),onFailure:this._boundFailureHandler});new Ajax.Request(this.options.loadTextURL,options)},postProcessEditField:function(){var fpc=this.options.fieldPostCreation;if(fpc)
2741$(this._controls.editor)['focus'==fpc?'focus':'activate']()},prepareOptions:function(){this.options=Object.clone(Ajax.InPlaceEditor.DefaultOptions);Object.extend(this.options,Ajax.InPlaceEditor.DefaultCallbacks);[this._extraDefaultOptions].flatten().compact().each(function(defs){Object.extend(this.options,defs)}.bind(this))},prepareSubmission:function(){this._saving=!0;this.removeForm();this.leaveHover();this.showSaving()},registerListeners:function(){this._listeners={};var listener;$H(Ajax.InPlaceEditor.Listeners).each(function(pair){listener=this[pair.value].bind(this);this._listeners[pair.key]=listener;if(!this.options.externalControlOnly)
2742this.element.observe(pair.key,listener);if(this.options.externalControl)
2743this.options.externalControl.observe(pair.key,listener)}.bind(this))},removeForm:function(){if(!this._form)return;this._form.remove();this._form=null;this._controls={}},showSaving:function(){this._oldInnerHTML=this.element.innerHTML;this.element.innerHTML=this.options.savingText;this.element.addClassName(this.options.savingClassName);this.element.style.backgroundColor=this._originalBackground;this.element.show()},triggerCallback:function(cbName,arg){if('function'==typeof this.options[cbName]){this.options[cbName](this,arg)}},unregisterListeners:function(){$H(this._listeners).each(function(pair){if(!this.options.externalControlOnly)
2744this.element.stopObserving(pair.key,pair.value);if(this.options.externalControl)
2745this.options.externalControl.stopObserving(pair.key,pair.value)}.bind(this))},wrapUp:function(transport){this.leaveEditMode();this._boundComplete(transport,this.element)}});Object.extend(Ajax.InPlaceEditor.prototype,{dispose:Ajax.InPlaceEditor.prototype.destroy});Ajax.InPlaceCollectionEditor=Class.create(Ajax.InPlaceEditor,{initialize:function($super,element,url,options){this._extraDefaultOptions=Ajax.InPlaceCollectionEditor.DefaultOptions;$super(element,url,options)},createEditField:function(){var list=document.createElement('select');list.name=this.options.paramName;list.size=1;this._controls.editor=list;this._collection=this.options.collection||[];if(this.options.loadCollectionURL)
2746this.loadCollection();else this.checkForExternalText();this._form.appendChild(this._controls.editor)},loadCollection:function(){this._form.addClassName(this.options.loadingClassName);this.showLoadingText(this.options.loadingCollectionText);var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:'editorId='+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(transport){var js=transport.responseText.strip();if(!/^\[.*\]$/.test(js))
2747throw('Server returned an invalid collection representation.');this._collection=eval(js);this.checkForExternalText()}.bind(this),onFailure:this.onFailure});new Ajax.Request(this.options.loadCollectionURL,options)},showLoadingText:function(text){this._controls.editor.disabled=!0;var tempOption=this._controls.editor.firstChild;if(!tempOption){tempOption=document.createElement('option');tempOption.value='';this._controls.editor.appendChild(tempOption);tempOption.selected=!0}
2748tempOption.update((text||'').stripScripts().stripTags())},checkForExternalText:function(){this._text=this.getText();if(this.options.loadTextURL)
2749this.loadExternalText();else this.buildOptionList()},loadExternalText:function(){this.showLoadingText(this.options.loadingText);var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:'editorId='+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(transport){this._text=transport.responseText.strip();this.buildOptionList()}.bind(this),onFailure:this.onFailure});new Ajax.Request(this.options.loadTextURL,options)},buildOptionList:function(){this._form.removeClassName(this.options.loadingClassName);this._collection=this._collection.map(function(entry){return 2===entry.length?entry:[entry,entry].flatten()});var marker=('value' in this.options)?this.options.value:this._text;var textFound=this._collection.any(function(entry){return entry[0]==marker}.bind(this));this._controls.editor.update('');var option;this._collection.each(function(entry,index){option=document.createElement('option');option.value=entry[0];option.selected=textFound?entry[0]==marker:0==index;option.appendChild(document.createTextNode(entry[1]));this._controls.editor.appendChild(option)}.bind(this));this._controls.editor.disabled=!1;Field.scrollFreeActivate(this._controls.editor)}});Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions=function(options){if(!options)return;function fallback(name,expr){if(name in options||expr===undefined)return;options[name]=expr};
2749fallback('cancelControl',(options.cancelLink?'link':(options.cancelButton?'button':options.cancelLink==options.cancelButton==!1?!1:undefined)));fallback('okControl',(options.okLink?'link':(options.okButton?'button':options.okLink==options.okButton==!1?!1:undefined)));fallback('highlightColor',options.highlightcolor);fallback('highlightEndColor',options.highlightendcolor)};Object.extend(Ajax.InPlaceEditor,{DefaultOptions:{ajaxOptions:{},autoRows:3,cancelControl:'link',cancelText:'cancel',clickToEditText:'Click to edit',externalControl:null,externalControlOnly:!1,fieldPostCreation:'activate',formClassName:'inplaceeditor-form',formId:null,highlightColor:'#ffff99',highlightEndColor:'#ffffff',hoverClassName:'',htmlResponse:!0,loadingClassName:'inplaceeditor-loading',loadingText:'Loading...',okControl:'button',okText:'ok',paramName:'value',rows:1,savingClassName:'inplaceeditor-saving',savingText:'Saving...',size:0,stripLoadedTextTags:!1,submitOnBlur:!1,textAfterControls:'',textBeforeControls:'',textBetweenControls:''},DefaultCallbacks:{callback:function(form){return Form.serialize(form)},onComplete:function(transport,element){new Effect.Highlight(element,{startcolor:this.options.highlightColor,keepBackgroundImage:!0})},onEnterEditMode:null,onEnterHover:function(ipe){ipe.element.style.backgroundColor=ipe.options.highlightColor;if(ipe._effect)
2750ipe._effect.cancel()},onFailure:function(transport,ipe){alert('Error communication with the server: '+transport.responseText.stripTags())},onFormCustomization:null,onLeaveEditMode:null,onLeaveHover:function(ipe){ipe._effect=new Effect.Highlight(ipe.element,{startcolor:ipe.options.highlightColor,endcolor:ipe.options.highlightEndColor,restorecolor:ipe._originalBackground,keepBackgroundImage:!0})}},Listeners:{click:'enterEditMode',keydown:'checkForEscapeOrReturn',mouseover:'enterHover',mouseout:'leaveHover'}});Ajax.InPlaceCollectionEditor.DefaultOptions={loadingCollectionText:'Loading options...'};Form.Element.DelayedObserver=Class.create({initialize:function(element,delay,callback){this.delay=delay||0.5;this.element=$(element);this.callback=callback;this.timer=null;this.lastValue=$F(this.element);Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this))},delayedListener:function(event){if(this.lastValue==$F(this.element))return;if(this.timer)clearTimeout(this.timer);this.timer=setTimeout(this.onTimerEvent.bind(this),this.delay*1000);this.lastValue=$F(this.element)},onTimerEvent:function(){this.timer=null;this.callback(this.element,$F(this.element))}});if(!Control)var Control={};Control.Slider=Class.create({initialize:function(handle,track,options){var slider=this;if(Object.isArray(handle)){this.handles=handle.collect(function(e){return $(e)})}else{this.handles=[$(handle)]}
2751this.track=$(track);this.options=options||{};this.axis=this.options.axis||'horizontal';this.increment=this.options.increment||1;this.step=parseInt(this.options.step||'1');this.range=this.options.range||$R(0,1);this.value=0;this.values=this.handles.map(function(){return 0});this.spans=this.options.spans?this.options.spans.map(function(s){return $(s)}):!1;this.options.startSpan=$(this.options.startSpan||null);this.options.endSpan=$(this.options.endSpan||null);this.restricted=this.options.restricted||!1;this.maximum=this.options.maximum||this.range.end;this.minimum=this.options.minimum||this.range.start;this.alignX=parseInt(this.options.alignX||'0');this.alignY=parseInt(this.options.alignY||'0');this.trackLength=this.maximumOffset()-this.minimumOffset();this.handleLength=this.isVertical()?(this.handles[0].offsetHeight!=0?this.handles[0].offsetHeight:this.handles[0].style.height.replace(/px$/,"")):(this.handles[0].offsetWidth!=0?this.handles[0].offsetWidth:this.handles[0].style.width.replace(/px$/,""));this.active=!1;this.dragging=!1;this.disabled=!1;if(this.options.disabled)this.setDisabled();this.allowedValues=this.options.values?this.options.values.sortBy(Prototype.K):!1;if(this.allowedValues){this.minimum=this.allowedValues.min();this.maximum=this.allowedValues.max()}
2752this.eventMouseDown=this.startDrag.bindAsEventListener(this);this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.update.bindAsEventListener(this);this.handles.each(function(h,i){i=slider.handles.length-1-i;slider.setValue(parseFloat((Object.isArray(slider.options.sliderValue)?slider.options.sliderValue[i]:slider.options.sliderValue)||slider.range.start),i);h.makePositioned().observe("mousedown",slider.eventMouseDown)});this.track.observe("mousedown",this.eventMouseDown);document.observe("mouseup",this.eventMouseUp);document.observe("mousemove",this.eventMouseMove);this.initialized=!0},dispose:function(){var slider=this;
2752Event.stopObserving(this.track,"mousedown",this.eventMouseDown);Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);this.handles.each(function(h){Event.stopObserving(h,"mousedown",slider.eventMouseDown)})},setDisabled:function(){this.disabled=!0},setEnabled:function(){this.disabled=!1},getNearestValue:function(value){if(this.allowedValues){if(value>=this.allowedValues.max())return(this.allowedValues.max());if(value<=this.allowedValues.min())return(this.allowedValues.min());var offset=Math.abs(this.allowedValues[0]-value);var newValue=this.allowedValues[0];this.allowedValues.each(function(v){var currentOffset=Math.abs(v-value);if(currentOffset<=offset){newValue=v;offset=currentOffset}});return newValue}
2753if(value>this.range.end)return this.range.end;if(value<this.range.start)return this.range.start;return value},setValue:function(sliderValue,handleIdx){if(!this.active){this.activeHandleIdx=handleIdx||0;this.activeHandle=this.handles[this.activeHandleIdx];this.updateStyles()}
2754handleIdx=handleIdx||this.activeHandleIdx||0;if(this.initialized&&this.restricted){if((handleIdx>0)&&(sliderValue<this.values[handleIdx-1]))
2755sliderValue=this.values[handleIdx-1];if((handleIdx<(this.handles.length-1))&&(sliderValue>this.values[handleIdx+1]))
2756sliderValue=this.values[handleIdx+1]}
2757sliderValue=this.getNearestValue(sliderValue);this.values[handleIdx]=sliderValue;this.value=this.values[0];this.handles[handleIdx].style[this.isVertical()?'top':'left']=this.translateToPx(sliderValue);this.drawSpans();if(!this.dragging||!this.event)this.updateFinished()},setValueBy:function(delta,handleIdx){this.setValue(this.values[handleIdx||this.activeHandleIdx||0]+delta,handleIdx||this.activeHandleIdx||0)},translateToPx:function(value){return Math.round(((this.trackLength-this.handleLength)/(this.range.end-this.range.start))*(value-this.range.start))+"px"},translateToValue:function(offset){return((offset/(this.trackLength-this.handleLength)*(this.range.end-this.range.start))+this.range.start)},getRange:function(range){var v=this.values.sortBy(Prototype.K);range=range||0;return $R(v[range],v[range+1])},minimumOffset:function(){return(this.isVertical()?this.alignY:this.alignX)},maximumOffset:function(){return(this.isVertical()?(this.track.offsetHeight!=0?this.track.offsetHeight:this.track.style.height.replace(/px$/,""))-this.alignY:(this.track.offsetWidth!=0?this.track.offsetWidth:this.track.style.width.replace(/px$/,""))-this.alignX)},isVertical:function(){return(this.axis=='vertical')},drawSpans:function(){var slider=this;if(this.spans)
2758$R(0,this.spans.length-1).each(function(r){slider.setSpan(slider.spans[r],slider.getRange(r))});if(this.options.startSpan)
2759this.setSpan(this.options.startSpan,$R(0,this.values.length>1?this.getRange(0).min():this.value));if(this.options.endSpan)
2760this.setSpan(this.options.endSpan,$R(this.values.length>1?this.getRange(this.spans.length-1).max():this.value,this.maximum))},setSpan:function(span,range){if(this.isVertical()){span.style.top=this.translateToPx(range.start);span.style.height=this.translateToPx(range.end-range.start+this.range.start)}else{span.style.left=this.translateToPx(range.start);span.style.width=this.translateToPx(range.end-range.start+this.range.start)}},updateStyles:function(){this.handles.each(function(h){Element.removeClassName(h,'selected')});Element.addClassName(this.activeHandle,'selected')},startDrag:function(event){if(Event.isLeftClick(event)){if(!this.disabled){this.active=!0;var handle=Event.element(event);var pointer=[Event.pointerX(event),Event.pointerY(event)];var track=handle;if(track==this.track){var offsets=this.track.cumulativeOffset();this.event=event;this.setValue(this.translateToValue((this.isVertical()?pointer[1]-offsets[1]:pointer[0]-offsets[0])-(this.handleLength/2)));var offsets=this.activeHandle.cumulativeOffset();this.offsetX=(pointer[0]-offsets[0]);this.offsetY=(pointer[1]-offsets[1])}else{while((this.handles.indexOf(handle)==-1)&&handle.parentNode)
2761handle=handle.parentNode;if(this.handles.indexOf(handle)!=-1){this.activeHandle=handle;this.activeHandleIdx=this.handles.indexOf(this.activeHandle);this.updateStyles();var offsets=this.activeHandle.cumulativeOffset();this.offsetX=(pointer[0]-offsets[0]);this.offsetY=(pointer[1]-offsets[1])}}}
2762Event.stop(event)}},update:function(event){if(this.active){if(!this.dragging)this.dragging=!0;this.draw(event);if(Prototype.Browser.WebKit)window.scrollBy(0,0);Event.stop(event)}},draw:function(event){var pointer=[Event.pointerX(event),Event.pointerY(event)];var offsets=this.track.cumulativeOffset();pointer[0]-=this.offsetX+offsets[0];pointer[1]-=this.offsetY+offsets[1];this.event=event;this.setValue(this.translateToValue(this.isVertical()?pointer[1]:pointer[0]));if(this.initialized&&this.options.onSlide)
2763this.options.onSlide(this.values.length>1?this.values:this.value,this)},endDrag:function(event){if(this.active&&this.dragging){this.finishDrag(event,!0);Event.stop(event)}
2764this.active=!1;this.dragging=!1},finishDrag:function(event,success){this.active=!1;this.dragging=!1;this.updateFinished()},updateFinished:function(){if(this.initialized&&this.options.onChange)
2765this.options.onChange(this.values.length>1?this.values:this.value,this);this.event=null}});if(typeof(bsn)=="undefined")_b=bsn={};if(typeof(_b.Autosuggest)=="undefined")_b.Autosuggest={};else alert("Autosuggest is already set!");_b.AutoSuggest=function(id,param){if(!document.getElementById)return 0;this.fld=_b.DOM.gE(id);if(!this.fld)return 0;this.sInp="";this.nInpC=0;this.aSug=[];this.iHigh=0;this.oP=param?param:{};var k,def={effaceselect:!1,onlyknownvaluewarning:!1,displayField:'value',minchars:1,meth:"get",varname:"input",className:"autosuggest",noclearlist:0,timeout:2500,delay:500,offsety:0,offsetx:0,width:100,shownoresults:!0,noresults:"No results!",maxheight:250,cache:!1,maxentries:25,zindex:0};for(k in def){if(typeof(this.oP[k])!=typeof(def[k]))
2766this.oP[k]=def[k]}
2767var p=this;this.fld.onkeydown=function(ev){return p.onKeyDown(ev)};this.fld.onkeyup=function(ev){return p.onKeyUp(ev)};this.fld.setAttribute("autocomplete","off");this.triggerLoadInProgressId=id+'_loadinprogress';this.trigger_loadinprogress=$(this.triggerLoadInProgressId);this.triggerId=id+'_trigger';this.trigger=$(this.triggerId);if(this.trigger){this.trigger.observe('click',function(event){this.activateTrigger()}.bindAsEventListener(this))}};_b.AutoSuggest.prototype.onKeyDown=function(ev){if(this.oP.onlyknownvaluewarning)
2768this.fld.removeClassName('autosuggest-borderred');var key=(window.event)?window.event.keyCode:ev.keyCode;var RETURN=13;var TAB=9;var ESC=27;var bubble=!0;switch(key){case RETURN:case TAB:this.setHighlightedValue();if(this.idAs!==undefined&&document.getElementById(this.idAs)!=null&&this.iHigh>0)bubble=!1;else this.clearSuggestions();break;case ESC:this.clearSuggestions();this.iHigh=0;break}
2769return bubble};_b.AutoSuggest.prototype.onKeyUp=function(ev){var key=(window.event)?window.event.keyCode:ev.keyCode;var ARRUP=38;var ARRDN=40;var bubble=1;switch(key){case ARRUP:this.changeHighlight(key);this.scrollHighlightIntoView();bubble=0;break;
2769case ARRDN:this.changeHighlight(key);this.scrollHighlightIntoView();bubble=0;break;default:this.getSuggestions(this.fld.value)}
2770return bubble};_b.AutoSuggest.prototype.getSuggestions=function(val,forced){forced=forced?forced:!1;if(val==this.sInp&&forced==!1)return 0;if(forced){var ele=_b.DOM.gE(this.idAs);if(ele)this.clearSuggestions()}
2771_b.DOM.remE(this.idAs);this.removeIframeShim();this.sInp=val;if(val.length<this.oP.minchars){this.aSug=[];this.nInpC=val.length;return 0}
2772var ol=this.nInpC;this.nInpC=val.length?val.length:0;var l=this.aSug.length;if(forced&&l&&l<this.oP.maxentries&&this.oP.cache){this.createList(this.aSug);return!1}else{var pointer=this;var input=this.sInp;clearTimeout(this.ajID);this.ajID=setTimeout(function(){pointer.doAjaxRequest(input)},this.oP.delay)}
2773return!1};_b.AutoSuggest.prototype.doAjaxRequest=function(input){if(input!=this.fld.value)return!1;var pointer=this;if(typeof(this.oP.script)=="function")var url=this.oP.script(encodeURIComponent(this.sInp));else var url=this.oP.script+this.oP.varname+"="+encodeURIComponent(this.sInp);if(!url)return!1;var meth=this.oP.meth;var input=this.sInp;var onSuccessFunc=function(req){if($(pointer.trigger_loadinprogress))$(pointer.trigger_loadinprogress).style.display='none';pointer.setSuggestions(req,input)};var onErrorFunc=function(status){};var myAjax=new _b.Ajax();if($(this.trigger_loadinprogress))$(this.trigger_loadinprogress).style.display='initial';myAjax.makeRequest(url,meth,onSuccessFunc,onErrorFunc)};_b.AutoSuggest.prototype.setSuggestions=function(req,input){if(input!=this.fld.value)return!1;this.aSug=[];if(this.oP.json){var jsondata=eval('('+req.responseText+')');if(jsondata!=null)
2774for(var i=0;i<jsondata.rows.length;i++){this.aSug.push(jsondata.rows[i]);if(this.oP.displayField)
2775this.aSug[i].value=jsondata.rows[i][this.oP.displayField]}}else{var xml=req.responseXML;var results=xml.getElementsByTagName('results')[0].childNodes;for(var i=0;i<results.length;i++){if(results[i].hasChildNodes())
2776this.aSug.push({'id':results[i].getAttribute('id'),'value':results[i].childNodes[0].nodeValue,'info':results[i].getAttribute('info')})}}
2777this.idAs="as_"+this.fld.id;this.createList(this.aSug)};_b.AutoSuggest.prototype.createList=function(arr){var pointer=this;_b.DOM.remE(this.idAs);this.removeIframeShim();this.killTimeout();if(arr.length==0&&!this.oP.shownoresults)return!1;var div=_b.DOM.cE("div",{id:this.idAs,className:this.oP.className});div.style.zIndex=this.oP.zindex;this.listDiv=$(div);var hcorner=_b.DOM.cE("div",{className:"as_corner"});var hbar=_b.DOM.cE("div",{className:"as_bar"});var header=_b.DOM.cE("div",{className:"as_header"});header.appendChild(hcorner);header.appendChild(hbar);div.appendChild(header);var ul=_b.DOM.cE("ul",{id:"as_ul"});ul.style.maxHeight=this.oP.maxheight+"px";for(var i=0;i<arr.length;i++){var val=arr[i].value;var st=val.toLowerCase().indexOf(this.sInp.toLowerCase());var output=val;var span=_b.DOM.cE("span",{},output,!0);if(arr[i].info!=""&&this.oP.template!=""&&this.oP.template!=undefined){var br=_b.DOM.cE("br",{});span.appendChild(br);var small=_b.DOM.cE("small",{});if(this.oP.template&&this.oP.template!=''){var myTemplate=new Template(this.oP.template);small.innerHTML=myTemplate.evaluate(arr[i])}else small.innerHTML=arr[i].info;span.appendChild(small)}
2778var a=_b.DOM.cE("a",{href:"#"});var tl=_b.DOM.cE("span",{className:"tl"}," ");var tr=_b.DOM.cE("span",{className:"tr"}," ");a.appendChild(tl);a.appendChild(tr);a.appendChild(span);a.name=i+1;a.onclick=function(){pointer.setHighlightedValue();return!1};a.onmouseover=function(){pointer.setHighlight(this.name)};var li=_b.DOM.cE("li",{},a);ul.appendChild(li)}
2779if(arr.length==0&&this.oP.shownoresults){var li=_b.DOM.cE("li",{className:"as_warning"},this.oP.noresults);ul.appendChild(li);if(this.oP.onlyknownvaluewarning)
2780this.fld.addClassName('autosuggest-borderred')}
2781div.appendChild(ul);var fcorner=_b.DOM.cE("div",{className:"as_corner"});var fbar=_b.DOM.cE("div",{className:"as_bar"});var footer=_b.DOM.cE("div",{className:"as_footer"});footer.appendChild(fcorner);footer.appendChild(fbar);div.appendChild(footer);div.style.left=(this.fld.getBoundingClientRect().x+this.oP.offsetx+window.scrollX)+"px";div.style.top=(this.fld.getBoundingClientRect().y+this.fld.offsetHeight+this.oP.offsety+window.scrollY)+"px";if(this.oP.width)div.style.width=this.oP.width+"px";else if(this.fld&&this.fld.offsetWidth>0)div.style.width=this.fld.offsetWidth+"px";if(!this.oP.noclearlist){div.onmouseover=function(){pointer.killTimeout()};div.onmouseout=function(){pointer.resetTimeout()}}
2782document.getElementsByTagName("body")[0].appendChild(div);if($(ul).getHeight()>this.oP.maxheight)$(ul).style.height=this.oP.maxheight;this.showIframeShim();this.iHigh=0;var pointer=this;this.toID=setTimeout(function(){pointer.clearSuggestions()}
2782,this.oP.timeout)};_b.AutoSuggest.prototype.showIframeShim=function(){if(Prototype.Browser.IE){this.shim=new Element('iframe',{style:'position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);display:none;border: 1px solid #000;',frameborder:0,src:'/src/javascript/blank.html'});$(this.fld.parentNode).insert(this.shim);this.shim.clonePosition(this.listDiv);this.shim.setStyle(Object.extend(Object.extend(this.listDiv.getDimensions()),{zIndex:this.listDiv.style.zIndex-1})).show()}}
2783_b.AutoSuggest.prototype.removeIframeShim=function(){if(Prototype.Browser.IE){if(this.shim!=null&&typeof(this.shim)=="object")this.shim.remove();this.shim=null}}
2784_b.AutoSuggest.prototype.changeHighlight=function(key){var list=_b.DOM.gE("as_ul");if(!list)return!1;var n;if(key==40)n=this.iHigh+1;else if(key==38)n=this.iHigh-1;if(n>list.childNodes.length)n=list.childNodes.length;if(n<1)n=1;this.setHighlight(n)};_b.AutoSuggest.prototype.scrollHighlightIntoView=function(){var list=_b.DOM.gE("as_ul");if(!list)return!1;if(this.iHigh>0)
2785list.childNodes[this.iHigh-1].scrollIntoView(!1)};_b.AutoSuggest.prototype.setHighlight=function(n){var list=_b.DOM.gE("as_ul");if(!list)return!1;if(this.iHigh>0)this.clearHighlight();this.iHigh=Number(n);list.childNodes[this.iHigh-1].className="as_highlight";this.killTimeout()};_b.AutoSuggest.prototype.clearHighlight=function(){var list=_b.DOM.gE("as_ul");if(!list)return!1;if(this.iHigh>0){list.childNodes[this.iHigh-1].className="";this.iHigh=0}};_b.AutoSuggest.prototype.setHighlightedValue=function(){if(this.iHigh){this.sInp=this.fld.value=this.aSug[this.iHigh-1].value;if(this.oP.effaceselect)
2786this.fld.value='';this.fld.focus();if(this.fld.selectionStart)this.fld.setSelectionRange(this.sInp.length,this.sInp.length);this.clearSuggestions();if(typeof(this.oP.callback)=="function")this.oP.callback(this.aSug[this.iHigh-1])}};_b.AutoSuggest.prototype.killTimeout=function(){clearTimeout(this.toID)};_b.AutoSuggest.prototype.resetTimeout=function(){clearTimeout(this.toID);var pointer=this;this.toID=setTimeout(function(){pointer.clearSuggestions()},6999)};_b.AutoSuggest.prototype.clearSuggestions=function(){this.killTimeout();var ele=_b.DOM.gE(this.idAs);var pointer=this;if(ele){if(this.oP.onlyknownvaluewarning){var touched=!1;for(var i=0;i<this.aSug.length;i++)
2787if(this.aSug[i].value==this.sInp)
2788touched=!0;if(touched==!1)
2789this.fld.addClassName('autosuggest-borderred')}
2790var fade=new _b.Fader(ele,1,0,50,function(){_b.DOM.remE(pointer.idAs);pointer.removeIframeShim()})}};_b.AutoSuggest.prototype.activateTrigger=function(){this.fld.focus();this.getSuggestions(this.fld.value,!0)};if(typeof(_b.Ajax)=="undefined")_b.Ajax={};_b.Ajax=function(){this.req={};this.isIE=!1};_b.Ajax.prototype.makeRequest=function(url,meth,onComp,onErr){if(meth!="POST")meth="GET";this.onComplete=onComp;this.onError=onErr;var pointer=this;if(window.XMLHttpRequest){this.req=new XMLHttpRequest();this.req.onreadystatechange=function(){pointer.processReqChange()};this.req.open("GET",url,!0);this.req.send(null)}else if(window.ActiveXObject){this.req=new ActiveXObject("Microsoft.XMLHTTP");if(this.req){this.req.onreadystatechange=function(){pointer.processReqChange()};this.req.open(meth,url,!0);this.req.send()}}};_b.Ajax.prototype.processReqChange=function(){if(this.req.readyState==4){if(this.req.status==200)this.onComplete(this.req);else this.onError(this.req.status)}};if(typeof(_b.DOM)=="undefined")_b.DOM={};_b.DOM.cE=function(type,attr,cont,html){var ne=document.createElement(type);if(!ne)return 0;for(var a in attr)ne[a]=attr[a];var t=typeof(cont);if(t=="string"&&!html)ne.appendChild(document.createTextNode(cont));else if(t=="string"&&html)ne.innerHTML=cont;else if(t=="object")ne.appendChild(cont);return ne};_b.DOM.gE=function(e){var t=typeof(e);if(t=="undefined")return 0;else if(t=="string"){var re=document.getElementById(e);if(!re)return 0;else if(typeof(re.appendChild)!="undefined")return re;else return 0}else if(typeof(e.appendChild)!="undefined")return e;else return 0};_b.DOM.remE=function(ele){var e=this.gE(ele);if(!e)return 0;else if(e.parentNode.removeChild(e))return!0;else return 0};_b.DOM.getPos=function(e){var e=this.gE(e);var obj=e;var curleft=0;if(obj.offsetParent){while(obj.offsetParent){curleft+=obj.offsetLeft;obj=obj.offsetParent}}else if(obj.x)curleft+=obj.x;var obj=e;var curtop=0;if(obj.offsetParent){while(obj.offsetParent){curtop+=obj.offsetTop;obj=obj.offsetParent}}else if(obj.y)curtop+=obj.y;return{x:curleft,y:curtop}};if(typeof(_b.Fader)=="undefined")_b.Fader={};_b.Fader=function(ele,from,to,fadetime,callback){if(!ele)return 0;this.e=ele;this.from=from;this.to=to;this.cb=callback;this.nDur=fadetime;this.nInt=50;this.nTime=0;var p=this;this.nID=setInterval(function(){p._fade()},this.nInt)};_b.Fader.prototype._fade=function(){this.nTime+=this.nInt;var ieop=Math.round(this._tween(this.nTime,this.from,this.to,this.nDur)*100);var op=ieop/100;if(this.e.filters){try
2791{this.e.filters.item("DXImageTransform.Microsoft.Alpha").opacity=ieop}catch(e){this.e.style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity='+ieop+')'}}else{this.e.style.opacity=op}
2792if(this.nTime==this.nDur){clearInterval(this.nID);if(this.cb!=undefined)this.cb()}};_b.Fader.prototype._tween=function(t,b,c,d){return b+((c-b)*(t/d))};GfwShowroomAjaxDomInit=Class.create({initialize:function(url,classdomSelector,action){this.url=url;this.domSelector='.'+classdomSelector;this.paramaction=action?action:classdomSelector;this.init()},init:function GFW_AjaxRefresh(){var liste_id=[];var liste_params=[];var domSelector=this.domSelector;
2792$$(domSelector).each(function(element){liste_id.push(element.id);liste_params.push(element.getAttribute('ajaxdata')?element.getAttribute('ajaxdata'):'')});new Ajax.Request('/yacht-club/?',{method:"POST",parameters:{gwfajaxaction:1,action:this.paramaction,liste_id:JSON.stringify(liste_id),liste_param:JSON.stringify(liste_params)},onSuccess:function(response){if(response&&response.responseJSON&&response.responseJSON.htmlcontent){var i=0;$$(domSelector).each(function(element){$(element.id).innerHTML=response.responseJSON.htmlcontent[element.id];if(element.id=='menushowroom'){$(element.id).classList.remove("top-user-guest")}
2793i++})}
2794$$(domSelector).each(function(element){$(element.id).style.visibility='visible'})},onFailure:function(response){$$(domSelector).each(function(element){$(element.id).style.visibility='visible'})}})}});AjaxPollUpdate=Class.create({initialize:function(url){this.delai=10000;this.url=url;this.classname='sh-ajaxpollupdate';this.Init();this.RefreshAll(0)},Init:function(){this.params=new Array();var mythis=this;$$("."+this.classname).each(function(divelement){mythis.params.push(divelement)})},AjaxUpdate:function(){var params=new Array();for(var i=0;i<this.params.length;i++){params.push(new Array(this.params[i].getAttribute("id"),this.params[i].dataset.name))}
2795new Ajax.Request(this.url,{method:"POST",parameters:{datas:JSON.stringify(params)},onSuccess:function(result){if(result.responseText){var jsondata=result.responseText.evalJSON();for(var i=0;i<jsondata.elements.length;i++){var elt=jsondata.elements[i];if(elt.id){var divtomodif=document.getElementById(elt.id);if(divtomodif){divtomodif.innerHTML=elt.content?elt.content:"";divtomodif.setAttribute('title',(elt.title?elt.title:""))}}}}
2796this.RefreshAll(this.delai)}.bind(this)})},RefreshAll:function(delai){setTimeout(function(){this.AjaxUpdate()}.bind(this),delai)}});var AfterLoginTargetClick=null;function actionManagment(json){if(json.params_action){var touched=!1;switch(json.params_action){case 'submit_comment':SubmitUserWall(null,json.params_data);touched=!0;break;case 'dontlike_showroom_user':case 'like_showroom_user':case 'suivre_showroom_user':if($(json.params_data))
2797$(json.params_data).fire('widget:click');touched=!0;break;case 'showroom_partage':if($(json.params_data))
2798$(json.params_data).fire('widget:click');touched=!0;break;case 'showroom_comment':if($(json.params_data))
2799$(json.params_data).fire('widget:click');touched=!0;break;case 'addpref_showroom_user':if($(json.params_data))
2800$(json.params_data).fire('widget:click');touched=!0;break;case 'go_url':window.location.href=json.params_data;touched=!0;break}
2801if(touched){if($$('.menuAjaxRefresh'))new GfwShowroomAjaxDomInit('/yacht-club/?','menuAjaxRefresh');if($$('.addprefAjaxRefresh'))new GfwShowroomAjaxDomInit('/yacht-club/?','addprefAjaxRefresh','addpref');new AjaxPollUpdate('/yacht-club/pollupdate.php');return(touched)}}else if(AfterLoginTargetClick){AfterLoginTargetClick();AfterLoginTargetClick=null}else window.location.reload();return(!1)};ModalAdminManager=Class.create({initialize:function(mainclass){this.mainclass=(typeof mainclass=='undefined')?'x-shadminform-window':mainclass;this.installOpenModalObservers('');this.SetTargetHref(null)},getautoredirectlink:function(hrefsrc,location_dest){var regex=/[?&]([^=#]+)=([^&#]*)/g,url=hrefsrc,params={},match;while(match=regex.exec(url))params[match[1]]=match[2];if(location_dest.origin==undefined){var locationdest=document.createElement('a');locationdest.href=location_dest}else var locationdest=location_dest;params.ajaxmodale=1;if(params.params_action=='go_url')
2802params.params_data=locationdest.origin+locationdest.pathname;var parser=document.createElement('a');parser.href=hrefsrc;hrefsrc=parser.origin+parser.pathname+'?';for(var key in params)
2803hrefsrc=hrefsrc+key+'='+params[key]+'&';hrefsrc=hrefsrc.substring(0,hrefsrc.length-1);return(hrefsrc);},installOpenModalObservers:function(blockid){var selector='.x-sr-impose-modaleaction';selector=blockid?('#'+blockid+' '+selector):selector;$$(selector).each(function(linkElt){linkElt.observe('click',function(evt){evt.stop();linkElt.href=this.getautoredirectlink(linkElt.href,(this.GetTargetHref()?this.GetTargetHref(!0):'/yacht-club/'));this.openModal(linkElt)}.bind(this))}.bind(this));var selector='.x-sr-connectform-impose-modaleaction';selector=blockid?('#'+blockid+' '+selector):selector;$$(selector).each(function(linkElt){linkElt.observe('click',function(evt){evt.stop();linkElt.href=linkElt.href+"&ajaxmodale=1";this.mainclass='x-connectform-window';this.openModal(linkElt)}.bind(this))}.bind(this));var selector='.x-sr-impose-ajaxaction';selector=blockid?('#'+blockid+' '+selector):selector;$$(selector).each(function(linkElt){linkElt.observe('click',function(evt){evt.stop();new Ajax.Request(linkElt.href,{method:'post',evalJS:!0,parameters:{ajaxaction:1},onSuccess:function(response){if(response&&response.responseJSON){var json=response.responseJSON;this.SendUrlIC(json);if(json&&json.content&&json.id){$(json.id).update(json.content);this.installOpenModalObservers(json.id);if(json.blocktaux&&$('blocktaux')){if(json.blocktaux=='hide')
2804$('blocktaux').hide();else{$('blocktaux').show();$('blocktaux').update(json.blocktaux)}}
2805if(json.notification)
2806EyeCandies.createNotification(json.notification)}}}.bind(this)})}.bind(this))}.bind(this))},SetTargetHref:function(href){this.target_href=href},GetTargetHref:function(clear){var href=this.target_href;if(clear!=undefined)
2807this.target_href=!1;
2807return(href)},SendUrlIC:function(json){if(json.urlic){var ifrm=document.createElement('iframe');ifrm.setAttribute('id','urlic');var el=document.getElementById('contenu-footer');el.parentNode.insertBefore(ifrm,el);ifrm.setAttribute('src',json.urlic);ifrm.width=ifrm.height=0}},openModal:function(button,options){var showIndicator=function(){Control.Overlay.container.setStyle({backgroundColor:'#000000',backgroundPosition:'center center',backgroundImage:'url(/src/images/ajax-load-bar.gif)',backgroundRepeat:'no-repeat'})};var afterOpenAction=function(){};var hideIndicator=function(){Control.Overlay.container.setStyle({backgroundPosition:'center center',backgroundImage:'none',backgroundRepeat:'no-repeat'})};var observeDelLink=function(modal){var cancelButton=modal.container.down('.x-del-cancel');if(cancelButton)Event.observe(cancelButton,'click',function(evt){evt.stop();new Ajax.Request(cancelButton.href,{method:'post',evalJS:!0,parameters:{ajaxaction:1},onSuccess:function(response){if(response&&response.responseJSON){var json=response.responseJSON;this.SendUrlIC(json);if(json&&json.content&&json.id){$(json.id).update(json.content);this.installOpenModalObservers(json.id);if(json.blocktaux&&$('blocktaux')){if(json.blocktaux=='hide')
2808$('blocktaux').hide();else{$('blocktaux').show();$('blocktaux').update(json.blocktaux)}}
2809if(json.notification)
2810EyeCandies.createNotification(json.notification)}}}.bind(this)});modal.close()}.bind(this))}.bind(this);var observeCancelButton=function(modal){var cancelButton=modal.container.down('.x-cancel');if(cancelButton)Event.observe(cancelButton,'click',function(evt){modal.close();modal.destroy()})};var disposeWindow=function(){hideIndicator();modal.close();modal.destroy();var cancelButton=modal.container.down('.x-cancel');if(cancelButton)Event.stopObserving(cancelButton);if(modal.container){modal.container.remove();this.autosuggestselection=$$('.gfw-widget-autosuggest-selection');if(this.autosuggestselection){this.autosuggestselection.each(function(autosuggestselection){autosuggestselection.remove()})}}
2811Control.Overlay.container.hide();Control.Overlay.overlayFinishedOpening=!1};var configureForm=function(){var form=modal.container.down('form');observeCancelButton(modal);observeDelLink(modal);if(form){var postform=function(evt){evt.stop();Event.stopObserving(form,'submit');form.request({method:'post',evalJS:!0,parameters:{ajaxjson:1,ajaxmodale:1},onSuccess:function(response){if(response&&response.responseJSON){var json=response.responseJSON;if(json.success==!0){this.SendUrlIC(json);if(!actionManagment(json)){if(json.redirect)
2812window.location.href=this.GetTargetHref()?this.GetTargetHref():json.redirect}
2813Event.stopObserving(form);modal.close();if(json.refreshcallback&&$(json.id)){new Ajax.Request(json.refreshcallback,{method:'post',evalJS:!0,parameters:{ajaxjson:1,block:json.id},onSuccess:function(response2){if(response2&&response2.responseJSON){var json2=response2.responseJSON;this.SendUrlIC(json2);if(json2.redirect)
2814window.location=this.GetTargetHref()?this.GetTargetHref():json2.redirect;if(json2&&json2.content){var id=json2.id?json2.id:json2.id;if(id&&$(id)){$(id).update(json2.content);this.installOpenModalObservers(id)}
2815if(json2.blocktaux&&$('blocktaux')){if(json2.blocktaux=='hide')
2816$('blocktaux').hide();else{$('blocktaux').show();$('blocktaux').update(json2.blocktaux)}}}
2817if(json.notification)
2818EyeCandies.createNotification(json.notification)}}.bind(this)})}
2819return}}else if(response&&response.responseText){Event.stopObserving(form);modal.container.update(response.responseText);modal.options.onSuccess()}else alert("Echec de la mise à jour du document")}.bind(this),onFailure:function(){alert("Echec de la mise à jour du document 1")}})}.bind(this);Event.observe(form,'submit',postform)}else{var response=JSON.parse(modal.container.outerText);if(response.redirect){modal.container.update("Chargement en cours...");modal.close();window.location=this.GetTargetHref()?this.GetTargetHref():response.redirect}}};var modaloptions=Object.extend({className:this.mainclass,closeOnClick:'overlay',fade:0.2,iframeshim:!1,beforeOpen:showIndicator,afterOpen:afterOpenAction,onRemoteContentLoaded:hideIndicator,onComplete:hideIndicator,onSuccess:configureForm.bind(this),onFailure:disposeWindow,afterClose:disposeWindow,position:'center_once',disableOutOfBoundsPositionHandler:!0,disableViewportCheck:!0,parameters:{ajax:!0}},options||{});var modal=new Control.Modal(button,modaloptions);modal.open();return modal}});ModalLoginManager=Class.create({initialize:function(mainclass,selector){this.mainclass=(typeof mainclass=='undefined')?'x-shadminform-window':mainclass;this.selector=(typeof selector=='undefined')?'.ajaxneedconnect':selector;this.installOpenModalObservers('');this.SetTargetHref(null)},installOpenModalObservers:function(blockid){$$(this.selector).each(function(linkElt){if(linkElt.type=='button'){AfterLoginTargetClick=linkElt.oncl
2819ick;linkElt.onclick=null}
2820linkElt.observe('click',function(evt,onclickfct){evt.stop();if(linkElt.href)
2821new Ajax.Request(linkElt.href,{method:'post',evalJS:!0,parameters:{askneedconnect:1,ajaxmodale:1,params_action:linkElt.getAttribute('data-action-type'),params_data:linkElt.getAttribute('data-action-data')},onSuccess:function(response){var needconnect=(response&&response.headerJSON&&response.headerJSON.statut)?!0:!1;if(needconnect==!0&&$('connection-candidat')){this.SetTargetHref(linkElt.href);if(linkElt.getAttribute('data-action-url')){if(linkElt.getAttribute('data-action-url').substring(0,4)=='http')
2822$('connection-candidat').href=linkElt.getAttribute('data-action-url');else $('connection-candidat').href=$('connection-candidat').href+linkElt.getAttribute('data-action-url')}else{$('connection-candidat').href=$('connection-candidat').href+"&ajaxmodale=1";$('connection-candidat').href=$('connection-candidat').href.replace("idtab=login","idtab=mlogin");if(linkElt.getAttribute('data-action-type'))$('connection-candidat').href=$('connection-candidat').href+"&params_action="+linkElt.getAttribute('data-action-type');if(linkElt.getAttribute('data-action-data'))$('connection-candidat').href=$('connection-candidat').href+"&params_data="+linkElt.getAttribute('data-action-data')}
2823this.openModal($('connection-candidat'))}else{if(linkElt.getAttribute('data-action-type')=='go_url'&&linkElt.getAttribute('data-action-url'))
2824window.location.href=linkElt.getAttribute('data-action-url')}}.bind(this)});else{if($('connection-candidat')){this.SetTargetHref(window.location.href);$('connection-candidat').href=$('connection-candidat').href+"&ajaxmodale=1";if(linkElt.getAttribute('data-action-type'))
2825$('connection-candidat').href=$('connection-candidat').href+"&params_action="+linkElt.getAttribute('data-action-type');if(linkElt.getAttribute('data-action-data'))
2826$('connection-candidat').href=$('connection-candidat').href+"&params_data="+linkElt.getAttribute('data-action-data');this.openModal($('connection-candidat'))}}}.bind(this))}.bind(this))},SetTargetHref:function(href){this.target_href=href},SendUrlIC:function(json){if(json.urlic){var ifrm=document.createElement('iframe');ifrm.setAttribute('id','urlic');var el=document.getElementById('contenu-footer');el.parentNode.insertBefore(ifrm,el);ifrm.setAttribute('src',json.urlic);ifrm.width=ifrm.height=0}},GetTargetHref:function(){return(this.target_href)},openModal:function(button,options){var showIndicator=function(){Control.Overlay.container.setStyle({backgroundColor:'#000000',backgroundPosition:'center center',backgroundImage:'url(/src/images/ajax-load-bar.gif)',backgroundRepeat:'no-repeat'})};var afterOpenAction=function(){};var hideIndicator=function(){Control.Overlay.container.setStyle({backgroundPosition:'center center',backgroundImage:'none',backgroundRepeat:'no-repeat'})};var observeDelLink=function(modal){var cancelButton=modal.container.down('.x-del-cancel');if(cancelButton)Event.observe(cancelButton,'click',function(evt){evt.stop();new Ajax.Request(cancelButton.href,{method:'post',evalJS:!0,parameters:{ajaxaction:1},onSuccess:function(response){if(response&&response.responseJSON){var json=response.responseJSON;if(json&&json.content&&json.id){$(json.id).update(json.content);this.installOpenModalObservers(json.id);if(json.blocktaux&&$('blocktaux')){if(json.blocktaux=='hide')
2827$('blocktaux').hide();else{$('blocktaux').show();$('blocktaux').update(json.blocktaux)}}
2828if(json.notification)
2829EyeCandies.createNotification(json.notification)}}}.bind(this)});modal.close()}.bind(this))}.bind(this);var observeCreateLink=function(modal){var createButton=modal.container.down('.creacompte>a');if(0)
2830if(createButton)Event.observe(createButton,'click',function(evt){evt.stop();modal.close();createButton.href=createButton.href+"?ajaxmodale=1"
2831this.openModal(createButton)}.bind(this))}.bind(this);var observeCancelButton=function(modal){var cancelButton=modal.container.down('.x-cancel');if(cancelButton)Event.observe(cancelButton,'click',function(evt){modal.close()})};var disposeWindow=function(){hideIndicator();modal.close();modal.destroy();var cancelButton=modal.container.down('.x-cancel');if(cancelButton)Event.stopObserving(cancelButton);if(modal.container){modal.container.remove();this.autosuggestselection=$$('.gfw-widget-autosuggest-selection');if(this.autosuggestselection){this.autosuggestselection.each(function(autosuggestselection){autosuggestselection.remove()})}}
2832Control.Overlay.container.hide();Control.Overlay.overlayFinishedOpening=!1};var configureForm=function(){var form=modal.container.down('form');observeCancelButton(modal);observeDelLink(modal);observeCreateLink(modal);if(form){var postform=function(evt){var loader=document.createElement('img');loader.src='/src/applications/news/images/loading.gif';loader.alt='Chargement...';loader.style.display='block';loader.style.margin='0 auto';loader.style.maxWidth='50px';form.prepend(loader);evt.stop();Event.stopObserving(form,'submit');form.request({method:'post',evalJS:!0,parameters:{ajaxjson:1,ajaxmodale:1},onSuccess:function(response){if(response&&response.responseJSON&&response.responseJSON.success){this.SendUrlIC(response.responseJSON);if(!actionManagment(response.responseJSON)){if(this.GetTargetHref())
2833window.location=this.GetTargetHref()}
2834Event.stopObserving(form);modal.close();return}else if(response&&response.responseText){Event.stopObserving(form);modal.container.update(response.responseText);modal.options.onSuccess()}else alert("Echec de la mise à jour du document")}.bind(this),onFailure:function(){alert("Echec de la mise à jour du document 2")}})}.bind(this);Event.observe(form,'submit',postform)}else{var response=JSON.parse(modal.container.outerText);if(response.redirect)
2835window.location=this.GetTargetHref()?this.GetTargetHref():response.redirect;else{modal.close();modal.destroy();actionManagment(response);window.location.reload()}}};var modaloptions=Object.extend({className:this.mainclass,closeOnClick:'overlay',fade:0.2,iframeshim:!1,beforeOpen:showIndicator,afterOpen:afterOpenAction,onRemoteContentLoaded:hideIndicator,onComplete:hideIndicator,onSuccess:configureForm.bind(this),onFailure:disposeWindow,afterClose:disposeWindow,position:'center_once',disableOutOfBoundsPositionHandler:!0,disableViewportCheck:!0,parameters:{ajax:!0}},options||{});var modal=new Control.Modal(button,modaloptions);modal.open();return modal}});function SR_FbLogin(myappId,sitelinkconnect,params_action,params_data){(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id))return;js=d.createElement(s);js.id=id;js.src="//connect.facebook.net/fr_FR/sdk.js";fjs.parentNode.insertBefore(js,fjs)}(document,'script','facebook-jssdk'));window.fbAsyncInit=function(){FB.init({appId:myappId,cookie:!0,xfbml:!0,version:'v20.0'});FB.login(function(response){if(response){if(response.authResponse){actionManagment({'params_action':'go_url','params_data':sitelinkconnect+'&gourl='+params_data+'&access_token='+response.authResponse.accessToken})}}},{scope:'email'})}};function ShowSousMenuWallActuAdmin(element){var sousMenus=element.parentNode.getElementsByClassName('sousMenu');if(sousMenus){if(sousMenus[0].style.display!='block')
2836sousMenus[0].style.display="block";else sousMenus[0].style.display="none"}
2837return(!1)}
2838function InitShareActionAjaxRequest(linkid,params_targetlink){var elt=$(linkid);elt.targetlink=params_targetlink;Element.observe(elt,'click',function(evt){evt.stop();new Ajax.Request(elt.href,{method:"POST",parameters:{clicajaxaction:'testconnect'},onSuccess:function(result){var jsondata=result.responseText.evalJSON();if(jsondata.needconnect!=undefined&&jsondata.needconnect==1){var adminmanager=new ModalLoginManager();if($('connection-candidat')){$('connection-candidat').href=$('connection-candidat').href.replace('page=login&idtab=login','page=login&idtab=mlogin');$('connection-candidat').href=$('connection-candidat').href+"&ajaxmodale=1&params_action=showroom_partage&params_data="+elt.id;adminmanager.openModal($('connection-candidat'))}else{window.location.href="?page=login&idtab=mlogin"}}else{elt.href=elt.targetlink;elt.fire('widget:click')}}.bind(elt)})});Element.observe(elt,'widget:click',function(evt){evt.stop();if(!modal){var options={className:'sh-modif-publication-window',iframe:!1,closeOnClick:'overlay',position:'center'};var opt=options||{};opt.afterClose=function(){this.destroy()};var modal=EyeCandies.ModalWindowFactory(elt.targetlink+"&modalcb=1",opt);modal.open();$$('.x-close').each(function(elt){Element.observe(elt,'click',function(evt){modal.close()})})}})}
2839var force_like_only_positif_action=0;function InitLikeActionAjaxRequest(elt,url,typename,ajaxmode,force_only_positif_action){if(force_like_only_positif_action==1){if(url.indexOf("<span")==-1)
2840url=url+"?force_only_positif_action=1";else url=url+"&force_only_positif_action=1"}
2841if(((typeof(elt.compute)=='undefined')||elt.compute==!1)){elt.compute=!0;new Ajax.Request(url,{method:"POST",parameters:{clicajaxaction:typename,data:elt.getAttribute("id")},onSuccess:function(result){elt.compute=!1;if(ajaxmode){var jsondata=result.responseText.evalJSON();force_like_only_positif_action=0
2842if(elt.select("img")[0]!=undefined&&jsondata.img!=undefined){elt.select("img")[0].setAttribute("src",jsondata.img);elt.select("img")[0].setAttribute("alt",jsondata.alt);elt.select("img")[0].setAttribute("title",jsondata.alt)}else if(elt.select("span")[0]!=undefined&&jsondata.html.indexOf("<span")==-1){elt.select("span")[0].innerHTML=jsondata.html}else if(jsondata.redirect){Object.assign(document.createElement("a"),{target:"_blank",href:jsondata.redirect}).click()}else elt.innerHTML=jsondata.html;if(jsondata.nb!=undefined)
2843elt.select("label")[0].innerHTML=jsondata.nb}else window.location.href=url}.bind(elt)})}}
2844function InitLikeAction(url,typename,ajaxmode,refid,needconnect_option){var needconnectparam=((typeof(needconnect_option)==='undefined')||needconnect_option)?!0:!1;var selecteur=((typeof(refid)!=='undefined')&&refid!='')?(".class"+typename+refid):(".class"+typename);$$(selecteur).each(function(divelement){divelement.onclick=function(event){event.stop();if(needconnectparam){new Ajax.Request(url,{method:"POST",parameters:{clicajaxaction:'testconnect'},onSuccess:function(result){var jsondata=result.responseText.evalJSON();if(jsondata.needconnect!=undefined&&jsondata.needconnect==1){var adminmanager=new ModalLoginManager();const a=document.createElement('a');a.href='/yacht-club/?page=login&idtab=mlogin'+"&ajaxmodale=1&params_action="+typename+"_showroom_user&params_data="+divelement.i
2844d;a.style.display='none';document.body.appendChild(a);if(a){adminmanager.openModal(a)}else{window.location.href="?page=login&idtab=mlogin"}}else{divelement.href=url;divelement.fire('widget:click')}}.bind(divelement)})}else{divelement.href=url;divelement.fire('widget:click')}
2845return(!1)}.bind(divelement);divelement.observe('widget:click',function(event){InitLikeActionAjaxRequest(this,url,typename,ajaxmode);return(!1)})})}
2846function SendQuizzValue(elt,url,typename,ajaxmode,id,initquizz){new Ajax.Request(url,{method:"POST",parameters:{clicajaxaction:typename,data:id},onSuccess:function(result){if(ajaxmode){var jsondata=result.responseText.evalJSON();if(elt)
2847elt.parentNode.parentNode.innerHTML=jsondata.html;if(initquizz)
2848InitQuizzAction(url,typename,ajaxmode);var notification=alertify.notify('Votre réponse a été enregistrée','success',5,function(){console.log('dismissed')})}else window.location.href=url}.bind(this)})}
2849function InitQuizzAction(url,typename,ajaxmode){$$(".class"+typename).each(function(divelement){divelement.onclick=function(){SendQuizzValue(this,url,typename,ajaxmode,this.getAttribute("id"),!0);return(!1)}.bind(divelement)})}
2850function OnScrollWallShowroom(){var lastscrollY=0;var sidebar=document.getElementById('sr-sticky-sidebar');var sidetype='updown';if(!sidebar){sidebar=document.getElementById('sr-sticky-top-sidebar');sidetype=sidebar?'up':sidetype}
2851if(!sidebar)return!1;if(sidebar.clientHeight<window.innerHeight)
2852sidetype='up';sidebar.style.marginTop='0px';var footers=document.getElementsByTagName('footer');var footerheight=(footers.length?footers[0].clientHeight:0)+20;var headers=document.getElementsByTagName('header');var headerheight=(headers.length?headers[0].clientHeight:0)+10;var sidebaroffsettop=window.scrollY+sidebar.getBoundingClientRect().top;window.onscroll=function(){var scrollY=window.scrollY;if(document.body){if(window.scrollY<lastscrollY&&window.scrollY!=0)
2853document.body.classList.add('fixed-scroll');else document.body.classList.remove('fixed-scroll')}
2854if(window.innerWidth<950){lastscrollY=scrollY;return(!1)}
2855if(sidetype==='up'){window.requestAnimationFrame(function(){if(scrollY>(sidebaroffsettop-headerheight)&&(scrollY-(sidebaroffsettop-headerheight))>1){sidebar.style.setProperty('margin-top',(scrollY-(sidebaroffsettop-headerheight))+'px','important')}})}else{let sidebarHeight=sidebar.clientHeight;let viewportHeight=window.innerHeight;let topLimit=scrollY-(sidebaroffsettop-headerheight);let bottomLimit=scrollY+viewportHeight-sidebarHeight-sidebaroffsettop-footerheight;if(scrollY>lastscrollY){let sidebarBottomInViewport=sidebar.getBoundingClientRect().bottom;if(sidebarBottomInViewport<viewportHeight){sidebar.style.setProperty('margin-top',bottomLimit+'px','important')}}else{let sidebarTopInViewport=sidebar.getBoundingClientRect().top;if(sidebarTopInViewport>headerheight){var mt=Math.max(0,topLimit);sidebar.style.setProperty('margin-top',mt+'px','important')}}}
2856lastscrollY=scrollY};window.onscroll()}
2857function ajouterBoutonsDepliageTousFollowKeywords(){var blocs=document.querySelectorAll(".followkeywords");blocs.forEach(function(followDiv){if(followDiv.dataset.depliageAjoute==="true")return;var hauteurReelle=followDiv.scrollHeight;if(hauteurReelle>44){followDiv.style.maxHeight="44px";followDiv.style.overflow="hidden";followDiv.style.transition="max-height 0.4s ease";var bouton=document.createElement("button");bouton.textContent="Voir plus";bouton.style.display="block";bouton.style.margin="10px auto";bouton.style.cursor="pointer";bouton.classList.add('more-button-keyword');bouton.addEventListener("click",function(){followDiv.style.maxHeight="none";bouton.remove()});followDiv.parentNode.insertBefore(bouton,followDiv.nextSibling);followDiv.dataset.depliageAjoute="true"}})}
2858function rendreTexteRepliable(divId,hauteurMax=10,url=null){const div=document.getElementById(divId);div.style.maxHeight=hauteurMax+'px';div.style.overflow='hidden';div.style.transition='max-height 0.3s ease';requestAnimationFrame(()=>{if(div.scrollHeight>hauteurMax){const bouton=url?document.createElement('a'):document.createElement('button');bouton.textContent='Voir plus';bouton.style.marginTop='5px';bouton.style.display='inline-block';if(url){bouton.href=url;bouton.style.textDecoration='underline';bouton.style.color='blue';bouton.target='_blank';bouton.rel='noopener noreferrer'}else{bouton.addEventListener('click',()=>{div.style.maxHeight='none';bouton.style.display='none'})}
2859div.insertAdjacentElement('afterend',bouton)}})};"use strict";function GfwFileUploaderApi(apiUrl,options){this.options=options;this.apiUrl=apiUrl;this.buildPreviewUrl=function(fileName,size,pagenumber){if(pagenumber===undefined)pagenumber=0;var params={"action":"preview","currentFileName":fileName,"size":size,"pagenumber":pagenumber,"de
2859nsity":"300","setlang":this.options.language};return this.apiUrl+"&"+EyeCandies.toQueryString(params)};this.buildIdentifyUrl=function(fileName){var params={"action":"identify","currentFileName":fileName,"setlang":this.options.language};return this.apiUrl+"&"+EyeCandies.toQueryString(params)};this.buildTransformUrl=function(currentFileName,transformFunction,parameters){var params={"action":"transform","currentFileName":currentFileName,"setlang":this.options.language,"func":transformFunction};return this.apiUrl+"&"+EyeCandies.toQueryString(params)+"&"+EyeCandies.toQueryString(parameters)};this.buildDownloadUrl=function(fileName){var params={"action":"download","currentFileName":fileName};return this.apiUrl+"&"+EyeCandies.toQueryString(params)};this.uploadFile=function(file,params){var onProgress=params.onProgress||function(){};var onLoad=params.onLoad||function(){};var onUpload=params.onUpload||function(){};var onError=params.onError||function(){};var formData=new FormData();formData.append("action","upload");formData.append("MAX_FILE_SIZE",this.options.max_file_size.toString());formData.append("file",file);formData.append("fileName",file.name);formData.append("fileType",file.type);formData.append("fileSize",file.size.toString());var xhr=new XMLHttpRequest();xhr.upload.addEventListener("progress",function(e){onProgress.call(this,e,xhr)},!1);xhr.upload.addEventListener("load",function(e){onLoad.call(this,e,xhr)},!1);xhr.upload.addEventListener("error",function(e){onError.call(this,e,xhr)},!1);xhr.addEventListener("readystatechange",function(e){onUpload.call(this,e,xhr)},!1);xhr.open("POST",this.apiUrl);xhr.send(formData);return xhr};this.identifyFile=function(fileName,params){var onSuccess=params.onSuccess||function(){};var onError=params.onError||function(){};if(fileName){var callback=function(xhr){if(xhr.readyState===4){if(xhr.status===200&&xhr.responseText.length>0){var identifyResponse=JSON.parse(xhr.responseText);if(identifyResponse)onSuccess(identifyResponse);else onError()}else onError()}};var xhr=new XMLHttpRequest();xhr.addEventListener("readystatechange",callback.bind(this,xhr),!1);xhr.open("GET",this.buildIdentifyUrl(fileName));xhr.send()}}}
2860function GfwFileUploader(fieldName,textInputSelector,apiUrl,options,strings){this.initialize=function(){this.fieldName=fieldName;this.api=new GfwFileUploaderApi(apiUrl,options);this.options=options||{};this.textInput=document.querySelector(textInputSelector);this.textInput.style.display="none";this.fileInput=document.createElement("input");this.fileInput.setAttribute("type","file");this.fileInput.setAttribute("name","");this.fileInput.setAttribute("class","x-fileinput");this.fileInput.style.display="none";this.hasError=!1;this.identifyPanel=document.createElement("div");this.identifyPanel.setAttribute("class","x-identifypanel");this.uploader=document.createElement("div");this.uploader.setAttribute("class","gfw-fileuploader");this.form=this.textInput.form;this.container=this.textInput.parentElement;this.previewUrl=null;this.previewSize=500;this.loaded=0;this.total=0;this.isBusy=!1;this.plugins=[];this.strings=strings||{noFile:"Déposez votre fichier ici ou cliquez pour le sélectionner",error:"Erreur",errorFileType:"Le type de fichier %s n'est pas accepté. Votre fichier doit être de type %s",errorFileSize:"La taille de votre fichier est de %s, elle dépasse la limite qui est fixée à %s",titleUploading:"Téléchargement...",titleProcessing:"Traitement du fichier...",titlePreview:"Prévisualisation...",titleDone:"Terminé",hintFileSize:"La taille de votre fichier ne doit pas dépasser %s",hintBusy:"Votre fichier est en cours de transfert, veuillez patienter un instant avant de valider le formulaire"};this.toolbar=document.createElement("div");this.toolbar.setAttribute("class","x-toolbar");this.editButton=document.createElement("div");this.editButton.setAttribute("class","x-button x-editbutton");this.editButton.setAttribute("title","Modifier");this.deleteButton=document.createElement("div");this.deleteButton.setAttribute("class","x-button x-deletebutton");this.deleteButton.setAttribute("title","Supprimer");this.downloadButton=document.createElement("div");this.downloadButton.setAttribute("class","x-button x-downloadbutton");this.downloadButton.setAttribute("title","Télécharger");this.installUploader();this.installEventListeners();this.refreshCurrentImage(this.api.buildPreviewUrl(this.getCurrentFileName(),this.previewSize));this.refreshToolbar();this.identifyFile(this.getCurrentFileName())};this.addPlugin=function(plugin){this.plugins.push(plugin)};this.preventFormSubmissionHandler=function(e){if(this.isBusy){e.preventDefault();e.stopImmediatePropagation();EyeCandies.createNotification(this.strings.hintBusy)}};this.installUploader=function(){this.container.appendChild(this.fileInput);this.container.appendChild(this.uploader);this.container.appendChild(this.toolbar);this.container.appendChild(this.identifyPanel);this.toolbar.appendChild(this.deleteButton);if(this.options.hasOwnProperty("fileeditmode")&&this.options.fileeditmode){this.toolbar.appendChild(this.editButton);this.addPlugin(new GfwFileUploader.SelectPdfPageFileUploaderPlugin(this))}
2861this.toolbar.appendChild(this.downloadButton);this.showContainer(!0,!0)};this.installEventListeners=function(){if(this.form){this.form.addEventListener("submit",this.preventFormSubmissionHandler.bind(this))}
2862this.fileInput.addEventListener("change",function(){this.onChange(this.fileInput.files)}.bind(this));this.uploader.addEventListener("click",this.launchFileSelector.bind(this));this.uploader.addEventListener("dragenter",this.onDragEnter.bind(this),!1);this.uploader.addEventListener("dragover",this.onDragOver.bind(this),!1);this.uploader.addEventListener("dragleave",this.onDragLeave.bind(this),!1);this.uploader.addEventListener("drop",this.onDrop.bind(this),!1);this.deleteButton.addEventListener("click",this.onDeleteButtonClick.bind(this),!1);this.editButton.addEventListener("click",this.onEditButtonClick.bind(this),!1);this.downloadButton.addEventListener("click",this.onDownloadButtonClick.bind(this),!1)};this.showIndicator=function(){this.uploader.style.backgroundImage="url(/src/images/icons/128/indicator.gif)";this.uploader.style.backgroundSize="32px"};this.refreshToolbar=function(){if(this.getCurrentFileName()){let currentFileExtension=this.getCurrentFileName().split('.').pop();this.showElement(this.deleteButton);if(this.isBusy){this.hideElement(this.editButton);this.hideElement(this.downloadButton)}else{this.showElement(this.editButton);if(this.options&&this.options.hasOwnProperty('filedisabledownloadsforextensions')&&Array.isArray(this.options.filedisabledownloadsforextensions)&&this.options.filedisabledownloadsforextensions.includes(currentFileExtension)){this.hideElement(this.downloadButton)}else{this.showElement(this.downloadButton)}}}else{if(this.isBusy)this.showElement(this.deleteButton);else{if(this.hasError===!1)this.hideElement(this.deleteButton);else this.showElement(this.deleteButton)}
2863this.hideElement(this.editButton);this.hideElement(this.downloadButton)}};this.setUploaderStatus=function(status){if(this.uploader.classList){this.resetUploaderStatus();if(status==="uploading")this.uploader.classList.add("x-status-uploading");else if(status==="error")this.uploader.classList.add("x-status-error");else if(status==="uploaded")this.uploader.classList.add("x-status-uploaded")}};this.resetUploaderStatus=function(){if(this.uploader.classList){this.uploader.classList.remove("x-status-uploading");this.uploader.classList.remove("x-status-error");this.uploader.classList.remove("x-status-uploaded")}};this.showElement=function(element){element.style.display=""};this.hideElement=function(element){element.style.display="none"};this.refreshCurrentImage=function(previewUrl){var fileName=this.getCurrentFileName();if(fileName.length>0){this.setImage(previewUrl)}else{this.emptyUploader()}};this.launchFileSelector=function(e){if(this.isBusy)return;e.preventDefault();this.fileInput.click()};this.savePreviewUrl=function(file){this.deletePreviewUrl();this.previewUrl=URL.createObjectURL(file);return this.previewUrl};this.deletePreviewUrl=function(){if(this.previewUrl)URL.revokeObjectURL(this.previewUrl)};this.setImage=function(url){if(typeof url==="string"&&url.length>0){this.showIndicator();this.preloadImage(url,function(){this.uploader.style.backgroundImage="url("+url+")";this.uploader.style.backgroundSize=""}.bind(this))}else{this.uploader.style.backgroundImage=""}
2864this.adjustUploaderSize(url)};this.setCurrentFileName=function(fileName){this.textInput.value=fileName};this.getCurrentFileName=function(){return this.textInput.value};this.showContainer=function(){this.container.style.opacity="1"};this.showLocalPreview=function(file){var imageTypes=["image/jpeg","image/png"];if(imageTypes.indexOf(file.type)!==-1){var url=this.savePreviewUrl(file);var reader=new FileReader();reader.addEventListener("load",function(){this.setImage(url)}.bind(this));
2864reader.readAsDataURL(file)}else{this.setImage("")}};this.setError=function(errorMessage){this.isBusy=!1;this.hasError=!0;this.setImage(null);this.hideIdentifyPanel();this.spinner.setTitle(this.strings.error);this.spinner.setError(errorMessage)};this.adjustUploaderSize=function(imageUrl){var margin=10;var maxHeight=150;if(typeof imageUrl==="string"&&imageUrl.length>0){var img=new Image();img.onload=function(){var newWidth=null,newHeight=null;if(typeof(img.width)==="number"&&typeof(img.height)==="number"&&img.width>0&&img.height>0){newWidth=Math.round(img.width*(maxHeight-margin)/img.height)+margin;newHeight=maxHeight}
2865this.resizeUploader(newWidth,newHeight)}.bind(this);img.onerror=function(){this.resizeUploader(null,null)}.bind(this);img.src=imageUrl}else{this.resizeUploader(null,null)}};this.resizeUploader=function(width,height){if(typeof(width)==="number"&&typeof(height)==="number"&&width>0&&height>0){this.uploader.style.width=width+"px";this.uploader.style.height=height+"px"}else{this.uploader.style.width="";this.uploader.style.height=""}};this.identifyFile=function(fileName){if(fileName){this.api.identifyFile(fileName,{onSuccess:function(identifyResponse){this.onIdentify(identifyResponse);this.showIdentifyPanel(identifyResponse)}.bind(this),onError:function(){this.hideIdentifyPanel()}.bind(this)})}else{this.hideIdentifyPanel()}};this.createSpinner=function(startValue,maxValue,title){if(this.spinner)this.spinner.destroy();var spinnerSize=Math.round(Math.min(this.uploader.offsetWidth,this.uploader.offsetHeight)/2.5);this.spinner=new Spinner(this.uploader,spinnerSize,maxValue,"bytes");this.spinner.updateSpinner(startValue,maxValue,title)};this.showIdentifyPanel=function(identifyResponse){this.identifyPanel.innerHTML=identifyResponse.identifystring;if(typeof identifyResponse.errormessage==="string"&&identifyResponse.errormessage.length>0){this.identifyPanel.innerHTML+="<div class=\"x-errormessage\">"+identifyResponse.errormessage+"</div>"}
2866this.identifyPanel.style.display="";this.identifyPanel.style.opacity="1"};this.hideIdentifyPanel=function(){this.identifyPanel.innerHTML="";this.identifyPanel.style.opacity="0";this.identifyPanel.style.display=""};this.onIdentify=function(identifyResponse){if(this.plugins.length>0){for(var i=0;i<this.plugins.length;i++){this.plugins[i].onIdentify(identifyResponse)}}};this.updateCurrentFileName=function(newFileName){this.setCurrentFileName(newFileName);this.refreshCurrentImage(this.api.buildPreviewUrl(this.getCurrentFileName(),this.previewSize));this.identifyFile(newFileName);this.refreshToolbar()};this.preloadImage=function(url,callback){var img=new Image();img.onload=callback;img.src=url};this.formatBytes=function(bytes,decimals){var sizes=["B","Ko","Mo","Go","To","Po","Eo","Zo","Yo"];if(this.options.language==="fr_FR"||this.options.language==="fr_CA")sizes=["o","Ko","Mo","Go","To","Po","Eo","Zo","Yo"];if(bytes===0)return"0 "+sizes[0];var k=1024;var dm=decimals||2;var i=Math.floor(Math.log(bytes)/Math.log(k));return parseFloat((bytes/Math.pow(k,i)).toFixed(dm))+" "+sizes[i]};this.validateFile=function(file){if(typeof file==="object"&&file.type!==undefined&&file.size!==undefined){if(typeof this.options==="object"){if(typeof this.options.filetyperestrictions!=="undefined"&&this.options.filetyperestrictions.length>0){var allowedMimeTypes=this.options.filetyperestrictions.split(",");var allowedExtensions=this.options.filetypeextensions.split(",");var uniqueExtensions=allowedExtensions.reduce(function(a,b){if(a.indexOf(b)<0)a.push(b);return a},[]);var uniqueExtensionsString=uniqueExtensions.join(", ");if(file.type!==""&&allowedMimeTypes.length>0&&allowedMimeTypes.indexOf(file.type)===-1){throw EyeCandies.sprintf(this.strings.errorFileType,file.type,uniqueExtensionsString)}}
2867if(this.options.max_file_size>0){if(file.size>this.options.max_file_size){throw EyeCandies.sprintf(this.strings.errorFileSize,this.formatBytes(file.size),this.formatBytes(this.options.max_file_size))}}}}};this.onXHRUploadFileProgress=function(e){this.setUploaderStatus("uploading");this.loaded=e.loaded;this.total=e.total;if(e.lengthComputable){if(this.loaded<this.total){this.spinner.updateSpinner(this.loaded,this.total,this.strings.titleUploading)}else{this.spinner.updateSpinner(98,100,this.strings.titleProcessing,"numeric")}}};this.onXHRUploadFileLoad=function(e){this.setUploaderStatus("uploading");this.loaded=e.loaded;this.total=e.total;this.spinner.updateSpinner(98,100,this.strings.titleProcessing,"numeric")};this.onXHRUploadFileError=function(e){this.setUploaderStatus("error");console.log("Upload error : ",e)};this.onXHRUploadFile=function(e,xhr){this.setUploaderStatus("uploading");if(xhr.readyState===4){if(xhr.status===200){this.spinner.updateSpinner(99,100,this.strings.titlePreview,"numeric");if(xhr.responseText.length===0)return;var uploadResponse=JSON.parse(xhr.responseText);if(uploadResponse.errorCode===0)this.onUploadSuccess(uploadResponse);else this.onUploadError(uploadResponse,xhr.responseText)}else if(xhr.status===0){this.onUploadError({fileName:"",previewUrl:"",errorCode:-1,errorMessage:"Arrêt du téléchargement"})}else this.onUploadError({fileName:"",previewUrl:"",errorCode:-2,errorMessage:"Echec du téléchargement"})}};this.onUploadSuccess=function(uploadResponse){this.setCurrentFileName(uploadResponse.fileName);this.preloadImage(uploadResponse.previewUrl,function(){this.refreshCurrentImage(uploadResponse.previewUrl,this.previewSize);this.spinner.updateSpinner(100,100,this.strings.titleDone,"numeric");this.spinner.hide();this.hasError=!1;this.isBusy=!1;this.refreshToolbar();if(this.getCurrentFileName())this.setUploaderStatus("uploaded");else this.setUploaderStatus("")}.bind(this));this.identifyFile(this.getCurrentFileName())};this.onUploadError=function(uploadResponse,responseText){this.setUploaderStatus("error");this.setImage(null);this.setCurrentFileName(null);if(uploadResponse!==null&&typeof uploadResponse==="object"&&uploadResponse.hasOwnProperty("errorMessage")){var errorMessage=uploadResponse.errorMessage;this.spinner.updateSpinner(this.loaded,this.total,this.strings.error);this.setError(errorMessage)}else{this.setError(responseText)}
2868this.isBusy=!1;this.refreshToolbar()};this.clearUploader=function(){this.hideIdentifyPanel();this.uploader.innerHTML=""};this.acceptOnlyImages=function(){if(this.options&&this.options.filetyperestrictions){var mainTypes=this.options.filetyperestrictions.split(',').reduce(function(acc,value){var mainType=value.split('/')[0];return acc.indexOf(mainType)===-1?acc.concat([mainType]):acc},[]);if(mainTypes.join("")==="image")return!0}
2869return!1};this.emptyUploader=function(){this.setUploaderStatus(null);this.hasError=!1;this.setImage("");this.setCurrentFileName("");this.fileInput.value="";this.clearUploader();var div=document.createElement("div");div.setAttribute("class","x-empty");var icon=this.acceptOnlyImages()?"/src/inc/gfwfileupload/icons/photo.svg":"/src/inc/gfwfileupload/icons/upload.svg";var emptyText="<img src=\""+icon+"\" style=\"text-align:center;display:block;margin:1em auto;opacity:0.3;width:32px;height:32px;\"><br>";emptyText+=this.strings.noFile;if(this.options.max_file_size>0){var fileSize=this.formatBytes(this.options.max_file_size);emptyText+="<br><span class='x-sm'>"+EyeCandies.sprintf(this.strings.hintFileSize,fileSize)+"</span>"}
2870div.innerHTML=emptyText;this.uploader.appendChild(div);this.isBusy=!1;if(this.spinner){this.spinner.hide()}
2871this.refreshToolbar()};
2871this.onChange=function(files){if(this.isBusy)return;this.clearUploader();if(files&&files.length>0&&files[0]){var file=files[0];var fileSize=file.size;this.createSpinner(0,fileSize,this.strings.titleUploading);try
2872{this.validateFile(file);this.showLocalPreview(file);this.xhr=this.api.uploadFile(file,{"onProgress":this.onXHRUploadFileProgress.bind(this),"onLoad":this.onXHRUploadFileLoad.bind(this),"onError":this.onXHRUploadFileError.bind(this),"onUpload":this.onXHRUploadFile.bind(this)});this.isBusy=!0;this.refreshToolbar()}catch(e){this.setUploaderStatus("error");this.setImage(null);this.setCurrentFileName(null);this.setError(e);this.refreshToolbar();return!1}}};this.onDragEnter=function(e){if(this.isBusy)return;e.stopPropagation();e.preventDefault()};this.onDragOver=function(e){if(this.isBusy)return;this.setUploaderStatus("uploading");e.stopPropagation();e.preventDefault()};this.onDragLeave=function(e){if(this.isBusy)return;this.setUploaderStatus(null);e.stopPropagation();e.preventDefault()};this.onDrop=function(e){if(this.isBusy)return;this.setUploaderStatus(null);e.stopPropagation();e.preventDefault();var dt=e.dataTransfer;var files=dt.files;this.onChange(files)};this.onDeleteButtonClick=function(){if(this.xhr)this.xhr.abort();this.emptyUploader()};this.onEditButtonClick=function(){if(!this.isBusy)(new GfwFileUploaderImageEditor(this)).open()};this.onDownloadButtonClick=function(){var currentFileName=this.getCurrentFileName();if(typeof(currentFileName)==="string"&&currentFileName.length>0){EyeCandies.postUrl(this.api.buildDownloadUrl(this.getCurrentFileName()))}};this.initialize()}
2873GfwFileUploader.createPlugin=function(constructor){constructor.prototype=Object.create(GfwFileUploader.Plugin.prototype);constructor.prototype.constructor=constructor;return constructor};GfwFileUploader.Plugin=function(fileUploader){this.initialize(fileUploader)};GfwFileUploader.Plugin.prototype={fileUploader:null,initialize:function(fileUploader){this.setFileUploader(fileUploader)},setFileUploader:function(fileUploader){this.fileUploader=fileUploader},getFileUploader:function(){return this.fileUploader},onIdentify:function(identifyResponse){return!1}};GfwFileUploader.SelectPdfPageFileUploaderPlugin=GfwFileUploader.createPlugin(function(fileUploader){this.initialize(fileUploader);this.pageSelector=null;this.pageSelectorElement=null;this.pageCount=0;this.onIdentify=function(identifyResponse){if(identifyResponse.magicktype==="PDF"){if(identifyResponse.hasOwnProperty('pdfinfo')&&identifyResponse.pdfinfo.hasOwnProperty('numberOfPages')){this.pageCount=identifyResponse.pdfinfo.numberOfPages;if(this.pageCount>1)this.instantiateAndShowPageSelector(this.pageCount)}else this.pageCount=1}
2874return!1};this.instantiateAndShowPageSelector=function(pageCount){if(this.pageSelector!=null)this.removePageSelector();var fileUploader=this.getFileUploader();this.pageSelector=new GfwFileUploader.PdfPageSelector(fileUploader,fileUploader.uploader,pageCount,this.onPageSelection.bind(this),this.onCancel.bind(this));this.pageSelectorElement=this.pageSelector.buildPageSelector();this.getFileUploader().container.appendChild(this.pageSelectorElement);this.pageSelector.showPageSelector()};this.removePageSelector=function(){if(typeof this.pageSelectorElement==="object"&&document.body.contains(this.pageSelectorElement))this.pageSelectorElement.remove();this.pageSelector=null;this.pageSelectorElement=null};this.onPageSelection=function(pageSelected){if(pageSelected>=1&&pageSelected<=this.pageCount){this.repage(pageSelected)}};this.onCancel=function(){this.removePageSelector()};this.repage=function(page){var fileUploader=this.getFileUploader();fileUploader.showIndicator();var transformUrl=fileUploader.api.buildTransformUrl(fileUploader.getCurrentFileName(),"extractPdfPages",{firstPage:page,lastPage:page});var onXHRTransform=function(xhr){if(xhr.readyState===4&&xhr.status===200){if(xhr.responseText.length===0)return;var transformResponse=JSON.parse(xhr.responseText);if(transformResponse.errorCode===0){this.getFileUploader().updateCurrentFileName(transformResponse.fileName)}}}.bind(this);var xhr=new XMLHttpRequest();xhr.addEventListener("readystatechange",onXHRTransform.bind(this,xhr),!1);xhr.open("GET",transformUrl);xhr.send();this.removePageSelector()}});GfwFileUploader.PdfPageSelector=function(fileUploader,positioningElement,pageCount,onPageSelection,onCancel){this.fileUploader=fileUploader;this.positioningElement=positioningElement;this.onPageSelection=onPageSelection;this.onCancel=onCancel;this.previewSize=300;this.previewDensity=72;this.previousValue=this.startValue=1;this.pageCount=pageCount};GfwFileUploader.PdfPageSelector.prototype=Object.create({buildPageSelector:function(){this.pageSelectorElt=new Element('div',{className:'gfw-pdfpageselector'});this.pageSelectorElt.setStyle({height:this.previewSize+175+'px',width:this.previewSize+135+'px'});var headerElt=new Element('div',{className:'x-header',draggable:"true"}).insert("Sélectionnez la page que vous souhaitez utiliser.");var contentElt=new Element('div',{className:'x-content'});var previewBlockElt=new Element('div',{className:'x-preview-block'});var numberBlockElt=new Element('div',{className:'x-number-block'});var controlBlockElt=new Element('div',{className:'x-control-block'});this.prevBtnElt=new Element('div',{className:'x-prev x-arrow'});this.prevBtnElt.setStyle({height:this.previewSize+'px'});this.nextBtnElt=new Element('div',{className:'x-next x-arrow'});this.nextBtnElt.setStyle({height:this.previewSize+'px'});this.previewContainer=new Element('div',{className:'x-preview-container'});this.previewContainer.setStyle({height:this.previewSize+'px',width:this.previewSize+'px'});this.textElt=new Element('input',{type:"number",className:"x-pagenumber",min:1,max:this.pageCount,step:1,value:this.startValue});this.okBtnElt=new Element('button',{className:'gfw-button x-skin'}).insert("Sélectionner");this.cancelBtnElt=new Element('button',{className:'gfw-button x-skin gray'}).insert("Annuler");this.pageSelectorElt.insert(headerElt);this.pageSelectorElt.insert(contentElt);contentElt.insert(previewBlockElt);contentElt.insert(numberBlockElt);contentElt.insert(controlBlockElt);previewBlockElt.insert(this.prevBtnElt);previewBlockElt.insert(this.previewContainer);previewBlockElt.insert(this.nextBtnElt);numberBlockElt.insert(this.textElt);numberBlockElt.insert(' / '+this.pageCount+" "+"pages");controlBlockElt.insert(this.okBtnElt);controlBlockElt.insert(this.cancelBtnElt);new Draggable(this.pageSelectorElt,{starteffect:null,endeffect:null,handle:headerElt,scroll:window});Element.observe(this.okBtnElt,'click',function(evt){evt.stop();if(this.textElt.value>0){this.onPageSelection(this.textElt.value)}}.bind(this));Element.observe(this.cancelBtnElt,'click',function(evt){evt.stop();this.onCancel(this.textElt.value)}.bind(this));Element.observe(this.textElt,'keydown',function(evt){if(evt.keyCode===13){evt.stop()}}.bind(this));Element.observe(this.textElt,'keypress',function(evt){if(evt.keyCode===13){evt.stop()}}.bind(this));var debouncedUpdatePreviewShort=EyeCandies.debounce(function(pageOffset){this.checkNumber();this.updatePreview(pageOffset)}.bind(this),500,!1);var debouncedUpdatePreviewLong=EyeCandies.debounce(function(pageOffset){this.checkNumber();this.updatePreview(pageOffset)}.bind(this),1500,!1);Element.observe(this.textElt,'keyup',function(evt){evt.stop();debouncedUpdatePreviewLong(this.textElt.value-this.previousValue)}.bind(this));Element.observe(this.textElt,'change',function(evt){evt.stop();debouncedUpdatePreviewShort(this.textElt.value-this.previousValue)}.bind(this));Element.observe(this.prevBtnElt,'click',function(evt){evt.stop();this.step(-1);debouncedUpdatePreviewShort(-1)}.bind(this));Element.observe(this.nextBtnElt,'click',function(evt){evt.stop();this.step(1);debouncedUpdatePreviewShort(1)}.bind(this));this.pageSelectorElt.hide();return this.pageSelectorElt},step:function(s){var currentValue=parseInt(this.textElt.value);if(s===1)this.textElt.value=currentValue+1;else if(s===-1)this.textElt.value=currentValue-1},checkNumber:function(){if(this.textElt.value<=0)this.textElt.value=1;if(this.textElt.value>this.pageCount)this.textElt.value=this.pageCount},updatePreview:function(way){this.previousValue=this.textElt.value;var transitionOffset=this.previewSize;var transitionPhase1='center';var transitionPhase2='center';if(way===0){transitionPhase1="center";transitionPhase2="center"}else if(way>0){transitionPhase1=-transitionOffset+'px';transitionPhase2=transitionOffset+'px'}else if(way<0){transitionPhase1=transitionOffset+'px';transitionPhase2=-transitionOffset+'px'}
2875var hidePrevious=function(){this.previewContainer.setStyle({transition:'background-position 0.2s ease-in'});this.previewContainer.setStyle({backgroundPosition:transitionPhase1+' center'})}.bind(this);var showCurrent=function(imageUrl){var img=new Image();img.onload=function(){this.previewContainer.setStyle({backgroundImage:'url('+imageUrl+')',backgroundRepeat:'no-repeat',backgroundPosition:transitionPhase2+' center',transition:'none'});(function(){this.previewContainer.setStyle({backgroundPosition:'center center',transition:'background-position 0.2s ease-out'})}.bind(this)).delay(0.05)}.bind(this);img.src=imageUrl}.bind(this);this.cacheAdjascent(this.textElt.value);hidePrevious();showCurrent.delay(0.2,this.getPreviewUrl(this.textElt.value-1));this.updateArrows()},updateArrows:function(){if(this.textElt.value<=1)this.prevBtnElt.setStyle({visibility:'hidden'});else this.prevBtnElt.setStyle({visibility:'visible'});if(this.textElt.value>=this.pageCount)this.nextBtnElt.setStyle({visibility:'hidden'});else this.nextBtnElt.setStyle({visibility:'visible'})}
2875,cacheAdjascent:function(currentPage){currentPage=parseInt(currentPage);if(currentPage<this.pageCount){var imageUrlNext=this.getPreviewUrl(currentPage+1-1);var imgNext=new Image();imgNext.src=imageUrlNext}
2876if(currentPage>1){var imageUrlPrev=this.getPreviewUrl(currentPage-1-1);var imgPrev=new Image();imgPrev.src=imageUrlPrev}},getPreviewUrl:function(pagenumber){var currentFileName=this.fileUploader.getCurrentFileName();return this.fileUploader.api.buildPreviewUrl(currentFileName,this.previewSize,pagenumber)},showPageSelector:function(){var positioningElement=$(this.positioningElement);if(typeof positioningElement==="object"){var outOfBounds=!1;this.pageSelectorElt.setStyle({position:'absolute'});this.pageSelectorElt.show();var offsetLeft=50;var offsetTop=(positioningElement.getHeight()-this.pageSelectorElt.getHeight())/2;var buttonTop=positioningElement.cumulativeOffset().top;if(buttonTop+offsetTop<0){offsetTop=-buttonTop+10}
2877Element.clonePosition(this.pageSelectorElt,positioningElement,{setWidth:!1,setHeight:!1,offsetTop:offsetTop,offsetLeft:offsetLeft});this.updatePreview(0)}}});function GfwFileUploaderImageEditor(gfwFileUploader){this.initialize=function(){this.previewImageSize=1500;this.gfwFileUploader=gfwFileUploader;this.transformFileName=null;this.controls=[];this.alertifyImageEditorDialogName='GfwFileUploadEditDialog-'+gfwFileUploader.textInput.id;if(!alertify[this.alertifyImageEditorDialogName]){var self=this;alertify.dialog(this.alertifyImageEditorDialogName,function factory(){return{main:function(header){this.header=header},setup:function(){return{buttons:[{text:"Annuler",key:27},{text:"Appliquer",key:13}],focus:{element:1}}},prepare:function(){this.setHeader(this.header);this.setContent(self.buildContent());this.set('resizable',!0).resizeTo("80%","80%").set('resizable',!1);this.set('autoReset',!1);this.set('modal',!1);this.set('padding',!1);this.set('moveBounded',!0);this.set('closable',!1);this.set('maximizable',!1);this.set('overflow',!1);this.set('startMaximized',!0)},build:function(){this.elements.buttons.primary.style.textAlign="center"},callback:function(closeEvent){if(closeEvent.index===1){var fileName=self.getTransformFileName();self.gfwFileUploader.updateCurrentFileName(fileName)}}}})}};this.setTransformFileName=function(transformFileName){this.transformFileName=transformFileName};this.getTransformFileName=function(){return this.transformFileName};this.getFileUploader=function(){return this.gfwFileUploader};this.open=function(){this.dialog=alertify[this.alertifyImageEditorDialogName]("Modifier une image").setting("modal","false")};this.addControl=function(control){if(control){control.setImageEditor(this);if(control.isEnabled())this.controls.push(control)}};this.buildContent=function(){this.controls=[];this.setTransformFileName(this.gfwFileUploader.getCurrentFileName());this.root=document.createElement("div");this.root.setAttribute("class","gfwform-fileuploader-editdialog");this.previewContainer=document.createElement("div");this.previewContainer.setAttribute("class","x-preview-container");this.preview=document.createElement("img");this.preview.setAttribute("class","x-preview");this.indicator=document.createElement("div");this.indicator.classList.add("x-indicator");this.indicator.style.display="none";this.previewContainer.appendChild(this.indicator);this.toolbar=document.createElement("div");this.toolbar.setAttribute("class","x-toolbar");this.previewContainer.appendChild(this.preview);this.root.appendChild(this.toolbar);this.root.appendChild(this.previewContainer);window.addEventListener("resize",EyeCandies.debounce(GfwFileUploaderImageEditor.adjustImageSize.bind(this,this.previewContainer,this.preview),150),!1);this.addControl(new GfwFileUploaderImageEditor.CropControl());this.addControl(new GfwFileUploaderImageEditor.RotateControl("left"));this.addControl(new GfwFileUploaderImageEditor.RotateControl("right"));this.addControl(new GfwFileUploaderImageEditor.ReflectControl("horizontal"));this.addControl(new GfwFileUploaderImageEditor.ReflectControl("vertical"));for(var i=0;i<this.controls.length;i++){var control=this.controls[i];this.toolbar.appendChild(control.buildElement())}
2878this.updateImage();return this.root};this.updateImage=function(){this.onBeforeLoad();this.preview.onload=function(){this.onLoad()}.bind(this);this.preview.onerror=function(){this.onLoad()}.bind(this);this.preview.src=this.gfwFileUploader.api.buildPreviewUrl(this.getTransformFileName(),this.previewImageSize)};this.onBeforeLoad=function(){this.preview.style.opacity="0";this.showLoadIndicator()};this.onLoad=function(){this.preview.style.opacity="1";this.hideLoadIndicator();setTimeout(function(){GfwFileUploaderImageEditor.adjustImageSize(this.previewContainer,this.preview)}.bind(this),500)};this.showLoadIndicator=function(){this.getFileUploader().showElement(this.indicator)};this.hideLoadIndicator=function(){this.getFileUploader().hideElement(this.indicator)};this.initialize()}
2879GfwFileUploaderImageEditor.adjustImageSize=function(container,image){var adjust=0.9;var vpWidth=container.offsetWidth;var vpHeight=container.offsetHeight;
2879var imWidth=image.naturalWidth;var imHeight=image.naturalHeight;if(vpWidth>imWidth&&vpHeight>imHeight){image.style.width=imWidth+"px";image.style.height=imHeight+"px"}else{var widthRatio=vpWidth/imWidth;var heightRatio=vpHeight/imHeight;var ratio=Math.min(widthRatio,heightRatio);var newImWidth=Math.ceil(ratio*imWidth*adjust)+"px";var newImHeight=Math.ceil(ratio*imHeight*adjust)+"px";image.style.width=newImWidth;image.style.height=newImHeight}};GfwFileUploaderImageEditor.createControl=function(constructor){constructor.prototype=Object.create(GfwFileUploaderImageEditor.AbstractControl.prototype);constructor.prototype.constructor=constructor;return constructor};GfwFileUploaderImageEditor.AbstractControl=function(){this.initialize("x-button","/src/images/icons/32/btn-empty.png","Bouton abstrait")};GfwFileUploaderImageEditor.AbstractControl.prototype={initialize:function(className,buttonImageSrc,title){this.imageEditor=null;this.className=className;this.buttonImageSrc=buttonImageSrc;this.title=title;this.element=null},setImageEditor:function(imageEditor){this.imageEditor=imageEditor},getImageEditor:function(){return this.imageEditor},buildElement:function(){if(this.element==null){this.element=document.createElement("div");this.element.setAttribute("class",this.className);this.element.setAttribute("title",this.title);if(this.buttonImageSrc)this.element.style.backgroundImage="url("+this.buttonImageSrc+")";this.element.addEventListener("click",this.onButtonClick.bind(this))}
2880return this.element},isEnabled:function(){return!1},onShowPreview:function(){},onHidePreview:function(){},onButtonClick:function(){console.log("Bouton abstrait. Ne pas instancier.")},successTransform:function(transformResponse){this.getImageEditor().setTransformFileName(transformResponse.fileName);this.getImageEditor().updateImage()},errorTransform:function(errorResponse){EyeCandies.createNotification(errorResponse.errorMessage)}};GfwFileUploaderImageEditor.RotateControl=GfwFileUploaderImageEditor.createControl(function(orientation){if(orientation==="left")this.initialize("x-button","/src/inc/gfwfileupload/icons/rotate-left.svg","Pivoter vers la gauche");else this.initialize("x-button","/src/inc/gfwfileupload/icons/rotate-right.svg","Pivoter vers la droite");this.isEnabled=function(){return!0};this.onButtonClick=function(){this.getImageEditor().showLoadIndicator();var angle="90";if(orientation==="left")angle="-90";else angle="90";var transformUrl=this.getImageEditor().getFileUploader().api.buildTransformUrl(this.getImageEditor().getTransformFileName(),"rotate",{"angle":angle});var xhr=new XMLHttpRequest();xhr.addEventListener("readystatechange",this.onXHRTransform.bind(this,xhr),!1);xhr.open("GET",transformUrl);xhr.send()};this.onXHRTransform=function(xhr){if(xhr.readyState===4){if(xhr.status===200){if(xhr.responseText.length===0)return;var transformResponse=JSON.parse(xhr.responseText);if(transformResponse.errorCode===0)this.successTransform(transformResponse);else this.errorTransform(transformResponse)}}}});GfwFileUploaderImageEditor.ReflectControl=GfwFileUploaderImageEditor.createControl(function(orientation){if(orientation==="horizontal")this.initialize("x-button","/src/inc/gfwfileupload/icons/reflect-horizontal.svg","Symétrie horizontale");else this.initialize("x-button","/src/inc/gfwfileupload/icons/reflect-vertical.svg","Symétrie verticale");this.isEnabled=function(){return!0};this.onButtonClick=function(){this.getImageEditor().showLoadIndicator();var transformUrl=this.getImageEditor().getFileUploader().api.buildTransformUrl(this.getImageEditor().getTransformFileName(),"reflect",{"orientation":orientation});var xhr=new XMLHttpRequest();xhr.addEventListener("readystatechange",this.onXHRTransform.bind(this,xhr),!1);xhr.open("GET",transformUrl);xhr.send()};this.onXHRTransform=function(xhr){if(xhr.readyState===4){if(xhr.status===200){if(xhr.responseText.length===0)return;var transformResponse=JSON.parse(xhr.responseText);if(transformResponse.errorCode===0)this.successTransform(transformResponse);else this.errorTransform(transformResponse)}}}});GfwFileUploaderImageEditor.CropControl=GfwFileUploaderImageEditor.createControl(function(){GfwResourceLoader.load('/src/javascript/cropperjs/dist/cropper.min.js');GfwResourceLoader.load('/src/javascript/cropperjs/dist/cropper.min.css');this.initialize("x-button","/src/inc/gfwfileupload/icons/crop.svg","Recadrer");this.currentCropboxDetail=null;this.originalWidth=null;this.originalHeight=null;this.minWidth="20";this.minHeight="20";this.ratioDimX=0;this.ratioDimY=0;this.aspectRatio=NaN;this.isEnabled=function(){return!0};this.onButtonClick=function(){this.ratioDimX=this.getImageEditor().getFileUploader().options.imageminimumwidth;this.ratioDimY=this.getImageEditor().getFileUploader().options.imageminimumheight;this.aspectRatio=NaN;if(this.ratioDimX>0&&this.ratioDimY>0)this.aspectRatio=this.ratioDimX/this.ratioDimY;this.alertifyCropControlDialogName='ImageEditorCropControlDialog-'+this.getImageEditor().getFileUploader().textInput.id;if(!alertify[this.alertifyCropControlDialogName]){var self=this;alertify.dialog(this.alertifyCropControlDialogName,function factory(){return{main:function(header){this.header=header},setup:function(){return{buttons:[{text:"Annuler le recadrage",key:27},{text:"Appliquer le recadrage",key:13}],focus:{element:1}}},prepare:function(){this.setHeader(this.header);this.setContent(self.buildContent());this.set('resizable',!0).resizeTo("80%","80%").set('resizable',!1);this.set('autoReset',!1);this.set('modal',!0);this.set('padding',!1);this.set('moveBounded',!0);this.set('closable',!1);this.set('maximizable',!1);this.set('overflow',!1);this.set('startMaximized',!0)},build:function(){this.elements.buttons.primary.style.textAlign="center"},callback:function(closeEvent){if(closeEvent.index===0){self.removeCropper()}
2881if(closeEvent.index===1){self.doCrop();self.removeCropper()}}}})}
2882this.dialog=alertify[this.alertifyCropControlDialogName]("Recadrer une image")};this.buildContent=function(){this.root=document.createElement("div");this.root.setAttribute("class","gfwform-fileuploader-cropperdialog");this.previewContainer=document.createElement("div");this.previewContainer.setAttribute("class","x-preview-container");this.previewContainer.style.width=this.getImageEditor().preview.naturalWi
2882dth+"px";this.previewContainer.style.height=this.getImageEditor().preview.naturalHeight+"px";this.preview=document.createElement("img");this.preview.setAttribute("class","x-preview");this.preview.onload=function(){this.onLoad()}.bind(this);this.preview.onerror=function(){alertify.error("Une erreur est survenue lors de la génération de la prévisualisation.")}.bind(this);this.preview.src=this.getImageEditor().getFileUploader().api.buildPreviewUrl(this.getImageEditor().getTransformFileName(),this.getImageEditor().previewImageSize);this.previewContainer.appendChild(this.preview);this.root.appendChild(this.previewContainer);return this.root};this.onLoad=function(){GfwFileUploaderImageEditor.adjustImageSize(this.previewContainer,this.preview);this.getImageEditor().getFileUploader().api.identifyFile(this.getImageEditor().getTransformFileName(),{onSuccess:function(identifyResponse){this.createCropper(this.preview,this.minWidth,this.minHeight,identifyResponse.widthPx,identifyResponse.heightPx,this.aspectRatio)}.bind(this)})};this.createCropper=function(image,minWidth,minHeight,originalWidth,originalHeight,aspectRatio){var self=this;this.cropper=new Cropper(image,{viewMode:1,zoomable:!1,minCropBoxWidth:minWidth,minCropBoxHeight:minHeight,aspectRatio:aspectRatio||NaN,ready:function(){self.installCropperPreview(self,this)},crop:function(e){if(self.cropperPreview)self.refreshCropperPreview(self,e.detail);self.currentCropboxDetail=e.detail;var previewWidth=e.target.width;var previewHeight=e.target.height;self.currentCropboxDetail.originalWidth=originalWidth;self.currentCropboxDetail.originalHeight=originalHeight;self.currentCropboxDetail.previewWidth=previewWidth;self.currentCropboxDetail.previewHeight=previewHeight;self.currentCropboxDetail.ratioX=originalWidth/previewWidth;self.currentCropboxDetail.ratioY=originalHeight/previewHeight}});this.removeCropper=function(){this.cropper.destroy();this.removeCropperPreview();this.cropper=null}};this.doCrop=function(){this.getImageEditor().showLoadIndicator();var ratioX=this.currentCropboxDetail.ratioX||1;var ratioY=this.currentCropboxDetail.ratioY||1;var x=Math.round(this.currentCropboxDetail.x*ratioX);var y=Math.round(this.currentCropboxDetail.y*ratioY);var width=Math.round(this.currentCropboxDetail.width*ratioX);var height=Math.round(this.currentCropboxDetail.height*ratioY);if(width>0&&height>0&&x>=0&&y>=0){var params={"cropLeft":x,"cropTop":y,"cropWidth":width,"cropHeight":height};var transformUrl=this.getImageEditor().getFileUploader().api.buildTransformUrl(this.getImageEditor().getTransformFileName(),"crop",params);var xhr=new XMLHttpRequest();xhr.addEventListener("readystatechange",this.onXHRTransform.bind(this,xhr),!1);xhr.open("GET",transformUrl);xhr.send()}};this.onXHRTransform=function(xhr){if(xhr.readyState===4){if(xhr.status===200){if(xhr.responseText.length===0)return;var transformResponse=JSON.parse(xhr.responseText);if(transformResponse.errorCode===0)this.successTransform(transformResponse);else this.errorTransform(transformResponse)}}};this.installCropperPreview=function(control,preview){var previewClone=preview.cloneNode();previewClone.className='';previewClone.style.cssText='display:block;width:100%;min-width: 0;min-height: 0;max-width: none;max-height: none;';control.cropperPreview=document.createElement("div");control.cropperPreview.setAttribute("class","x-cropper-preview");control.cropperPreview.appendChild(previewClone);preview.parentNode.appendChild(control.cropperPreview);control.cropperInfo=document.createElement("div");control.cropperInfo.style.cssText='display:block;width:200px;position:absolute;left:0px;top:200px;color:#ffffff;background-color:#888888;color:var(--fgmen);background-color:var(--bghed);border:none;box-sizing:border-box;padding:1.5em;line-height: 0;font-weight:bold;';preview.parentNode.appendChild(control.cropperInfo)};this.refreshCropperPreview=function(control,data){var imageData=control.cropper.getImageData();var previewAspectRatio=data.width/data.height;var previewImage=control.cropperPreview.getElementsByTagName('img').item(0);var previewWidth=control.cropperPreview.offsetWidth;var previewHeight=previewWidth/previewAspectRatio;var imageScaledRatio=data.width/previewWidth;control.cropperPreview.style.height=previewHeight+'px';
2882previewImage.style.width=imageData.naturalWidth/imageScaledRatio+'px';previewImage.style.height=imageData.naturalHeight/imageScaledRatio+'px';previewImage.style.marginLeft=-data.x/imageScaledRatio+'px';previewImage.style.marginTop=-data.y/imageScaledRatio+'px';control.cropperInfo.innerHTML=Math.round(data.width)+" x "+Math.round(data.height)};this.removeCropperPreview=function(){this.cropperPreview.remove();this.cropperPreview=null}});"use strict";function Spinner(mountElement,spinnerSize,maxValue,unit){this.initialize=function(){this.setUnit(unit||"numeric");this.spinnerSize=spinnerSize;this.maxValue=maxValue;this.mountElement=mountElement;if(typeof this.mountElement==="string")this.mountElement=document.querySelector(this.mountElement);this.spinnerDashWidth=Math.ceil(this.spinnerSize/15);this.spinnerRadius=(this.spinnerSize-this.spinnerDashWidth)/2;this.spinnerOffset=this.spinnerRadius+this.spinnerDashWidth/2;this.spinnerLabelFontSize=Math.round(this.spinnerRadius/2);this.timeStarted=new Date().getTime();this.spinnerContainer=null;this.spinner=null;this.circle=null;this.spinnerBackground=null;this.spinnerForeground=null;this.spinnerLabel=null;this.spinnerTitle=null;this.spinnerStatus=null;this.spinnerTimeLeft=null;this.seconds_elapsed=0;this.progress_per_second=0;this.remaining_progress=0;this.seconds_remaining=0;this.currentValue=0;this.stopAnimationTimeout=null;this.hideTimeout=null;this.initDisplay()};this.mount=function(){if(this.mountElement){this.mountElement.appendChild(this.spinnerContainer)}};this.buildDomElements=function(){this.spinnerContainer=document.createElement("div");this.spinnerContainer.setAttribute("class","spinner-container");this.spinner=document.createElement("div");this.spinner.setAttribute("class","spinner");this.circle=document.createElementNS('http://www.w3.org/2000/svg',"svg");this.circle.setAttribute("class","x-circle");this.spinnerBackground=document.createElementNS('http://www.w3.org/2000/svg',"circle");this.spinnerBackground.setAttribute("class","x-background");this.spinnerBackground.setAttribute("fill","transparent");this.spinnerForeground=document.createElementNS('http://www.w3.org/2000/svg',"circle");this.spinnerForeground.setAttribute("class","x-foreground");this.spinnerForeground.setAttribute("fill","transparent");this.spinnerLabel=document.createElementNS('http://www.w3.org/2000/svg',"text");this.spinnerLabel.setAttribute("class","x-label");this.spinnerLabel.setAttribute("x","50%");this.spinnerLabel.setAttribute("y","50%");this.spinnerLabel.setAttribute("fill","black");this.spinnerLabel.setAttribute("text-anchor","middle");this.spinnerError=document.createElementNS('http://www.w3.org/2000/svg',"image");this.spinnerError.setAttribute("class","x-error-icon");this.spinnerError.setAttribute("x","50%");this.spinnerError.setAttribute("y","50%");this.spinnerError.setAttribute("width","32");this.spinnerError.setAttribute("height","32");this.spinnerError.setAttribute("transform","translate(-16,-16)");this.spinnerError.setAttribute("href","/src/images/icons/svg/close.svg");this.spinnerError.textContent="!";this.spinnerTitle=document.createElement("div");this.spinnerTitle.setAttribute("class","x-title");this.spinnerStatus=document.createElement("div");this.spinnerStatus.setAttribute("class","x-status");this.spinnerTimeLeft=document.createElement("div");this.spinnerTimeLeft.setAttribute("class","x-timeleft");this.circle.appendChild(this.spinnerBackground);this.circle.appendChild(this.spinnerForeground);this.circle.appendChild(this.spinnerLabel);this.circle.appendChild(this.spinnerError);this.spinner.appendChild(this.circle);this.spinnerContainer.appendChild(this.spinner);this.spinnerContainer.appendChild(this.spinnerTitle);this.spinnerContainer.appendChild(this.spinnerStatus);this.spinnerContainer.appendChild(this.spinnerTimeLeft)};this.initDisplay=function(){this.buildDomElements();this.circle.setAttribute("height",this.spinnerSize.toString());this.circle.setAttribute("width",this.spinnerSize.toString());this.circle.setAttribute("viewBox","0 0 "+this.spinnerSize.toString()+" "+this.spinnerSize.toString());
2882this.spinnerBackground.setAttribute("r",this.spinnerRadius);this.spinnerBackground.setAttribute("cx",this.spinnerOffset);this.spinnerBackground.setAttribute("cy",this.spinnerOffset);this.spinnerBackground.style.strokeDashoffset=this.getCirconf();this.spinnerBackground.style.strokeDasharray=0;this.spinnerBackground.style.strokeWidth=this.spinnerDashWidth;this.spinnerForeground.setAttribute("r",this.spinnerRadius);this.spinnerForeground.setAttribute("cx",this.spinnerOffset);this.spinnerForeground.setAttribute("cy",this.spinnerOffset);this.spinnerForeground.style.strokeDashoffset=this.getCirconf();this.spinnerForeground.style.strokeDasharray=this.getCirconf();this.spinnerForeground.style.strokeWidth=this.spinnerDashWidth;this.spinnerLabel.style.fontSize=this.spinnerLabelFontSize+"px";this.spinnerLabel.setAttribute("y",Math.round((this.spinnerSize+this.spinnerLabelFontSize-this.spinnerDashWidth)/2).toString());this.mount()};this.updateSpinner=function(currentValue,maxValue,title,unit){if(typeof title==="undefined")title="";this.startAnimation();if(typeof maxValue!=="undefined")this.maxValue=maxValue;this.currentValue=currentValue;this.spinnerForeground.style.strokeDashoffset=this.pctToDashOffset(this.getProgressAsPct());this.computeProgressStats();this.updateLabel(this.getProgressAsPct());if(title!==null)this.setTitle(title);if(unit!==undefined)this.setUnit(unit);this.updateStatus();this.updateTimeLeft();if(this.maxValue===this.currentValue){this.stopAnimationTimeout=setTimeout(function(){this.stopAnimation()}.bind(this),3000)}};this.computeProgressStats=function(){this.seconds_elapsed=(new Date().getTime()-this.timeStarted)/1000;this.progress_per_second=this.seconds_elapsed?this.currentValue/this.seconds_elapsed:0;this.remaining_progress=this.maxValue-this.currentValue;this.seconds_remaining=this.seconds_elapsed?this.remaining_progress/this.progress_per_second:Infinity};this.setUnit=function(unit){this.unit=unit};this.setLabel=function(string){this.spinnerLabel.textContent=string};this.setTitle=function(string){this.spinnerTitle.innerHTML=string};this.setStatus=function(string){this.spinnerStatus.innerHTML=string;this.setHasError(!1)};this.setTimeLeft=function(string){if(string===""||string===null)string="&nbsp;";this.spinnerTimeLeft.innerHTML=string};this.updateLabel=function(pctTransfered){this.setLabel(Math.round(pctTransfered)+"%")};this.updateStatus=function(){this.setStatus(this.formatValue(this.currentValue)+" / "+this.formatValue(this.maxValue))};this.formatValue=function(value){if(this.unit==="bytes")return this.formatBytes(value);else if(this.unit==="numeric")return Math.round(value);else return Math.round(value)};this.formatBytes=function(bytes){if(bytes===0)return'0 B';var k=1024,dm=0,sizes=['B','Ko','Mo','Go','To','Po','Eo','Zo','Yo'],i=Math.floor(Math.log(bytes)/Math.log(k));return parseFloat((bytes/Math.pow(k,i)).toFixed(dm))+' '+sizes[i]};this.setError=function(errorMessage){this.setLabel("");this.stopAnimation();this.setStatus(errorMessage);this.setHasError(!0)};this.setHasError=function(bool){if(bool)this.spinnerContainer.classList.add("x-error");else this.spinnerContainer.classList.remove("x-error")};this.updateTimeLeft=function(){this.setTimeLeft(this.secondsFormat(this.seconds_remaining))};this.getCirconf=function(){return 2*Math.PI*this.spinnerRadius};this.pctToDashOffset=function(pct){var circonf=this.getCirconf();var offset=circonf-(circonf*pct/100);if(circonf-offset<1)offset=circonf-1;return Math.round(offset)};this.secondsFormat=function(time){if(!isFinite(time))return"";if(time>0){var hrs=Math.floor(time/3600);var mins=Math.floor((time%3600)/60);var secs=Math.floor(time%60);var ret="&#x023F1; ";if(hrs>0&&isFinite(hrs))ret+=""+hrs+" h "+(mins<10?"0":"");if(hrs>0||(mins>0&&isFinite(mins)))ret+=""+mins+" m "+(secs<10?"0":"");ret+=""+secs+" s";return ret}else return""};this.getProgressAsPct=function(){if(this.maxValue>0)return this.currentValue/this.maxValue*100;else return 0};this.startAnimation=function(){if(this.spinner.classList){this.spinner.classList.add("x-animated")}};this.stopAnimation=function(){if(this.spinner.classList){this.spinner.classList.remove("x-animated")}};this.hide=function(){this.spinnerContainer.style.opacity=0;this.hideTimeout=setTimeout(function(){this.spinnerContainer.style.display="none"}.bind(this),1000)};this.show=function(){this.spinnerContainer.style.opacity=0;this.spinnerContainer.style.display="";this.spinnerContainer.style.opacity=1};this.destroy=function(){if(this.spinnerContainer&&this.spinnerContainer.parentNode)this.spinnerContainer.parentNode.removeChild(this.spinnerContainer);if(this.stopAnimationTimeout)clearTimeout(this.stopAnimationTimeout);if(this.hideTimeout)clearTimeout(this.hideTimeout);this.spinner=null};this.initialize()}
2883function SpinnerSimulator(fileSize,minIncr,maxIncr,spinner,interval){this.fileSize=fileSize;this.transferedSize=0;this.minIncr=minIncr;this.maxIncr=maxIncr;this.interval=interval;this.spinner=spinner;this.getRandomArbitrary=function(min,max){return Math.round(Math.random()*(max-min)+min)};this.simulateUpload=function(){this.spinner.updateSpinner(this.transferedSize,this.fileSize,"Téléchargement en cours...");var interval=setInterval(function(){if(this.transferedSize<this.fileSize)this.transferedSize+=this.getRandomArbitrary(this.minIncr,this.maxIncr);else this.transferedSize=this.fileSize;if(this.transferedSize>=this.fileSize){this.transferedSize=this.fileSize;clearInterval(interval)}
2884this.spinner.updateSpinner(this.transferedSize,this.fileSize,"Téléchargement en cours...")}.bind(this),this.interval)}};var arobaseenable;var dieseenable;var invitmessage;var desturl;var enterautosubmit;var mytimeout=0;var save_offset;var save_innerHtml;function DeleteEditContentDomElement(event,wallname,elementname){if(event)Event.stop(event);var v_div_enfant1=document.getElementById(elementname);if(v_div_enfant1)
2885v_div_enfant1.parentNode.removeChild(v_div_enfant1)}
2886function getCaretPosition(){if(window.getSelection&&window.getSelection().getRangeAt&&window.getSelection().anchorNode){var range=window.getSelection().getRangeAt(0);var selectedObj=window.getSelection();var rangeCount=0;var childNodes=selectedObj.anchorNode.parentNode.childNodes;for(var i=0;i<childNodes.length;i++){if(childNodes[i]==selectedObj.anchorNode){break}
2887if(childNodes[i].outerHTML)
2888rangeCount+=childNodes[i].outerHTML.length;else if(childNodes[i].nodeType==3){rangeCount+=childNodes[i].textContent.length}}
2889return range.startOffset+rangeCount}
2890return-1}
2891function setCaretPosition(element,offset){var range=document.createRange();var sel=window.getSelection();var currentNode=null;var previousNode=null;for(var i=0;i<element.childNodes.length;i++){previousNode=currentNode;currentNode=element.childNodes[i];if(previousNode!=null){if(previousNode.outerHTML&&previousNode.outerHTML.length)
2892offset-=previousNode.outerHTML.length;else if(previousNode.nodeType==3)
2893offset-=previousNode.textContent.length}
2894if(offset<=currentNode.length){break}}
2895if(currentNode!=null){if(offset>currentNode.length)offset=currentNode.length;range.setStart(currentNode,offset);range.collapse(!0);sel.removeAllRanges();sel.addRange(range)}}
2896function SubmitUserWall(event,divid){if(event)
2897Event.stop(event);
2897var mywallinput=document.getElementById(divid+"_wallinput");if(!mywallinput&&opener&&opener.document)
2898mywallinput=opener.document.getElementById(divid+"_wallinput");var mywalldata=document.getElementById(divid+"_ajaxeditcontent")
2899if(!mywalldata&&opener&&opener.document)
2900mywalldata=opener.document.getElementById(divid+"_ajaxeditcontent")
2901var mywallinputprevisu=document.getElementById(divid+"_wallinputprevisu");if(!mywallinputprevisu&&opener&&opener.document)
2902mywallinputprevisu=opener.document.getElementById(divid+"_wallinputprevisu");var mywallprevisu=document.getElementById(divid+"_previsu")
2903if(!mywallprevisu&&opener&&opener.document)
2904mywallprevisu=opener.document.getElementById(divid+"_previsu")
2905if(mywallinput&&mywalldata)
2906mywallinput.value=mywalldata.innerHTML;if(mywallinputprevisu&&mywallprevisu)
2907mywallinputprevisu.value=mywallprevisu.innerHTML;var wallform=document.getElementById(divid+"_wallform");if(!wallform&&opener&&opener.document)
2908wallform=opener.document.getElementById(divid+"_wallform");if(wallform)
2909wallform.submit();else return(!1);return(!0)}
2910function IT_InsereDiv(code,searchstr,divid,values,CaretPosition){var val=values[code].replace('&nbsp;',' ');$(divid+"_ajaxeditcontent").innerHTML=$(divid+"_ajaxeditcontent").innerHTML.replace(searchstr,val);if($(divid+'_select'))$(divid+'_select').remove();setCaretPosition($(divid+"_ajaxeditcontent"),CaretPosition+val.length-1)}
2911function CleanContent(divelement,rang,prec,event){if($(divelement).id=='ta_mur_select')
2912return($(divelement));if(divelement.innerText&&typeof(event)!=='undefined')
2913if(event.ctrlKey&&event.keyCode==86){for(var i=0;i<divelement.innerText.length;i++)
2914if(divelement.innerText.charCodeAt(i)==10){divelement.innerText=divelement.innerText.substr(0,i)+divelement.innerText.substr(i+1);i=(i==0)?i:i-1}
2915while(divelement.innerText!=divelement.innerText.replace('  ',' '))
2916divelement.innerText=divelement.innerText.replace('  ',' ');}
2917if($(divelement).hasChildNodes()){var beforechild=null;var children=$(divelement).childNodes;for(var i=0;i<children.length;i++){if((!children[i].hasAttribute||!children[i].hasAttribute('sh'))){var selectlink=null;if(children[i].id)
2918selectlink=$$('#'+children[i].id+">a.ta_link");if(Array.isArray(selectlink)&&selectlink.length){}else if(children[i].hasChildNodes()){var newchild;if(children[i].nodeType==1){newchild=CleanContent(children[i],1,beforechild);if(newchild.hasChildNodes()&&newchild.id!='ta_mur_select'){while(newchild.childNodes.length)
2919$(divelement).insertBefore(newchild.childNodes[newchild.childNodes.length-1],$(divelement).childNodes[i].nextSibling);$(divelement).removeChild(children[i])}else $(divelement).replaceChild(newchild,children[i])}else children[i].innerHTML=children[i].innerText}else{var br=!1;if(i==0&&divelement.tagName=='DIV')
2920br=!0;switch(children[i].tagName){case 'IMG':var newchild=document.createTextNode((br?String.fromCharCode(10):'')+children[i].src);$(divelement).replaceChild(newchild,children[i]);break;case 'A':var newchild=document.createTextNode(br);$(divelement).replaceChild(newchild,children[i]);break;default:if(children[i].innerHTML&&children[i].innerText)
2921children[i].innerHTML=children[i].innerText;else if(children[i].textContent){var newchild=document.createTextNode(children[i].textContent);$(divelement).replaceChild(newchild,children[i])}}}}
2922beforechild=children[i]}}
2923if(rang==0)
2924save_innerHtml=$(divelement).innerHTML;else{if(divelement.nodeName=='DIV'&&prec&&prec.data&&prec.data.length&&prec.data[prec.data.length-1]!="\n"){var newchild=document.createTextNode("\n");$(divelement).insertBefore(newchild,$(divelement).childNodes[0])}
2925return($(divelement))}
2926return($(divelement).innerText)}
2927function UpdateContent(divelement,jsondata,divid,tinymce_editor){var offset=save_offset+1;if(!tinymce_editor){divelement.innerHTML=jsondata.html;CleanContent(divelement,0,null)}else tinymce.activeEditor.setContent(jsondata.html);if(jsondata.previsu){var previsu=document.getElementById(divid+'_previsu');if(previsu)
2928previsu.innerHTML=jsondata.previsu}
2929if(!tinymce_editor)
2930setCaretPosition(divelement,offset);else tinymce.activeEditor.selection.moveToBookmark(offset)}
2931function DragNDropManage(divelement,desturl,divid){var tinymce_editor=!1;divelement.observe('drop',function(event){var offset=getCaretPosition();event.preventDefault();divelement.fire('widget:focus');divelement.innerHTML=divelement.innerHTML.substr(0,offset)+' '+event.dataTransfer.getData("text")+' '+divelement.innerHTML.substr(offset);
2931var domprevisu=document.getElementById(divid+'_previsu');previsuhtml=(domprevisu)?domprevisu.innerHTML:'';new Ajax.Request(desturl,{method:"POST",parameters:{id:divid,itajaxrequest:1,data:divelement.innerHTML,previsu:previsuhtml},onSuccess:function(result){var jsondata=result.responseText.evalJSON();UpdateContent(this,jsondata,divid,tinymce_editor);if(jsondata.previsu){var previsu=document.getElementById(divid+'_previsu');if(previsu)
2932previsu.innerHTML=jsondata.previsu}}.bind(divelement)})})}
2933var clearajaxeditcontentdone;function OncallBackFocusTextarea(event,divid){if($('elt'+divid+'_x-admin-keyword'))
2934$('elt'+divid+'_x-admin-keyword').toggle(!0);if(!clearajaxeditcontentdone){if(event&&event.memo&&event.memo.tinymce_event)
2935tinymce.get(divid+"_ajaxeditcontent").getBody().innerHTML="";else $(divid+"_ajaxeditcontent").innerHTML="";clearajaxeditcontentdone=!0}}
2936function OncallBackKeyUpTextarea(event,divid,desturl){if(event.keyCode==35||event.keyCode==36||event.keyCode==33||event.keyCode==34||event.keyCode==8||event.keyCode==45||event.keyCode==46||event.keyCode==38||event.keyCode==40||event.keyCode==37||event.keyCode==39||event.keyCode==219||event.keyCode==16)
2937return(!1);var divelement=$(divid+"_ajaxeditcontent");if(divelement&&divelement.innerText&&divelement.innerText.length>4&&divelement.innerText.charCodeAt(divelement.innerText.length-1)==10&&divelement.innerText.charCodeAt(divelement.innerText.length-2)==10&&divelement.innerText.charCodeAt(divelement.innerText.length-3)==10&&divelement.innerText.charCodeAt(divelement.innerText.length-4)==10){divelement.innerHTML=divelement.innerHTML.substring(0,divelement.innerHTML.length-1)}
2938var offset;var crttext=divelement.innerHTML;var tinymce_editor=!1;if(event&&event.memo&&event.memo.tinymce_event){event=event.memo.tinymce_event;tinymce_editor=!0}
2939if($('elt'+divid+'_x-admin-keyword'))
2940$('elt'+divid+'_x-admin-keyword').toggle(!0);CleanContent(divelement,0,null,event);setCaretPosition($(divelement),save_offset+1);if(arobaseenable||dieseenable)
2941for(var i=save_offset-1;i>=0;i--)
2942if(((crttext.charAt(i)=='@'&&arobaseenable)||(crttext.charAt(i)=='#'&&dieseenable))&&(i==0||crttext.charAt(i-1)==' '||crttext.charAt(i-1)==';'||crttext.charAt(i-1)=="\r"||crttext.charAt(i-1)=="\n")){var searchtype=crttext.charAt(i);var searchstr=crttext.substr(i+1,save_offset-i);var $debpos=i;searchstr=searchstr.replace(/(\r\n|\n|\r)/gm,"").trim();if($(divid+'_select'))$(divid+'_select').remove();clearTimeout(mytimeout);mytimeout=setTimeout(function(){var crtdivid=divid;new Ajax.Request(desturl,{method:"POST",parameters:{id:crtdivid,itajaxrequest:1,searchtype:searchtype,searchdata:searchstr},onSuccess:function(result){var offset=getCaretPosition();var jsondata=result.responseText.evalJSON();if(jsondata.html&&jsondata.values){var original_value=(!tinymce_editor)?$(divid+"_ajaxeditcontent").innerHTML:tinymce.get(divid+"_ajaxeditcontent").getBody().innerHTML;$(divid+"_ajaxeditcontent").innerHTML=original_value.replace(searchtype+searchstr,searchtype+searchstr+jsondata.html);$$("#"+divid+"_select>a.ta_link").each(function(element){element.observe('click',function(event){Event.stop(event);IT_InsereDiv(element.name,searchtype+searchstr,divid,jsondata.values,$debpos);return(!1)})})}
2943setCaretPosition(this,offset)}.bind(this)})}.bind(divelement),400);break}
2944switch(event.keyCode){case 13:if(enterautosubmit)SubmitUserWall(event,divid);break;case 32:break;case 86:if(!event.ctrlKey){if($(divid+'_select'))$(divid+'_select').remove();return(!1)}
2945break;default:if($(divid+'_select'))$(divid+'_select').remove();return(!1)}
2946Event.stop(event);clearTimeout(mytimeout);mytimeout=setTimeout(function(){var crtdivid=divid;var previsuhtml=document.getElementById(divid+'_previsu')?document.getElementById(divid+'_previsu').innerHTML:'';var textareahtml=(!tinymce_editor)?this.innerHTML:tinymce.get(crtdivid+"_ajaxeditcontent").getBody().innerHTML;new Ajax.Request(desturl,{method:"POST",parameters:{id:crtdivid,itajaxrequest:1,data:textareahtml,previsu:previsuhtml,timeout:mytimeout},onSuccess:function(result){var jsondata=result.responseText.evalJSON();if(jsondata.timeout&&jsondata.timeout==mytimeout){mytimeout=0;if(!jsondata.same_content)
2947UpdateContent(this,jsondata,crtdivid,tinymce_editor)}}.bind(this)})}.bind(divelement),1);return(!1)}
2948function SubmitWalltextarea(event,divid,invitmessage){var walltextarea=document.getElementById(div
2948id+"_ajaxeditcontent");$needsubmit=walltextarea.textContent.trim()!=invitmessage.trim();if(!$needsubmit){$needsubmit=(divid=='ta_modif');walltextarea.innerHTML=''}
2949if(walltextarea&&$needsubmit)
2950SubmitUserWall(event,divid)}
2951function OpenmodalConnect(divid){var adminmanager=new ModalLoginManager('x-shadminform-window','.off-suivre');var infoLink=$('connection-candidat');if(!infoLink){infoLink=document.createElement('a');infoLink.href='/src/applications/showroom/index.php?page=login&idtab=mlogin'}
2952infoLink.href=infoLink.href.replace('page=login&idtab=login','page=login&idtab=mlogin');infoLink.href=infoLink.href+"&ajaxmodale=1&params_action=showroom_comment&params_data="+divid+"_wallsubmit";adminmanager.openModal(infoLink)}
2953function GetFormInputValuesForAjax(formId){var datas={};var form=document.getElementById(formId);if(form){for(var i=0;i<form.length;i++){var input=form[i];var name=input.getAttribute('name');if(!name)continue;if(input.type==='checkbox'){if(input.checked){datas[name]=input.value}}else if(input.type==='radio'){if(input.checked){datas[name]=input.value}}else{datas[name]=input.value}}}
2954return datas}
2955function AjaxConnectLoop(event,divid,invitmessage){var href='/src/applications/showroom/index.php?page=login';href=href+"&ajaxconnection=1&params_action=showroom_comment&params_data="+divid+"_wallsubmit";var my_onSuccess=function(xhr){if(xhr.responseJSON){if(xhr.responseJSON.success!=undefined&&xhr.responseJSON.success){if($('loginloopform')){var e=document.getElementById(divid);if(e)
2956e.removeChild($('loginloopform'))}
2957SubmitWalltextarea(event,divid,invitmessage);return(!0)}
2958if(!$('loginloopform')){div=document.createElement("div");div.id="loginloopform";var e=document.getElementById(divid);div.innerHTML=xhr.responseJSON.html;e.append(div)}else{div=$('loginloopform');div.innerHTML=xhr.responseJSON.html}
2959var formid=$('connexion-form');if(formid){formid.addEventListener("submit",function(e){e.preventDefault();AjaxConnectLoop(event,divid,invitmessage)})}}}.bind(this);new Ajax.Request(href,{parameters:GetFormInputValuesForAjax('connexion-form'),onSuccess:my_onSuccess,onFailure:function(response){alert(response.responseJSON.html)}})}
2960function AjaxeditContent(desturl_init,divid,enterautosubmit_init,invitmessage_init,arobaseenable_init,dieseenable_init,clearajaxeditcontentdone_init){var wallsubmit=document.getElementById(divid+"_wallsubmit");var clearajaxeditcontentdone=clearajaxeditcontentdone_init;var arobaseenable=arobaseenable_init;var dieseenable=dieseenable_init;var invitmessage=invitmessage_init;var desturl=desturl_init;var enterautosubmit=enterautosubmit_init;if(wallsubmit){if(wallsubmit.hasClassName("initdone"))return(!0);wallsubmit.observe('click',function(event){event.stop();new Ajax.Request(desturl_init,{method:"POST",parameters:{clicajaxaction:'testconnect'},onSuccess:function(result){var jsondata=result.responseText.evalJSON();if(jsondata.needconnect!=undefined&&jsondata.needconnect==1){AjaxConnectLoop(event,divid,invitmessage)}else{SubmitWalltextarea(event,divid,invitmessage)}}.bind(wallsubmit)})});wallsubmit.observe('widget:click',function(event){SubmitWalltextarea(event,divid,invitmessage)})}
2961var addphototype=document.getElementById(divid+"_addphototype");if(addphototype)
2962addphototype.observe('click',function(event){Event.stop(event);var e=document.getElementById('photoedit');if(e.style.display=='block')
2963e.style.display='none';else e.style.display='block';return(!1)});$$("#"+divid+"_ajaxeditcontent").each(function(divelement){DragNDropManage(divelement,desturl,divid,this);divelement.observe('focus',function(event){OncallBackFocusTextarea(event,divid)});divelement.observe('widget:focus',function(event){OncallBackFocusTextarea(event,divid)});divelement.observe('keydown',function(event){if(0&&mytimeout){Event.stop(event);return(!1)}
2964if(this.textContent.trim()==invitmessage.trim())this.innerHTML='';save_offset=getCaretPosition()});divelement.observe('dragover',function(event){if(this.textContent.trim()==invitmessage.trim())this.innerHTML=''});divelement.observe('keyup',function(event){if(0&&mytimeout)Event.stop(event);OncallBackKeyUpTextarea(event,divid,desturl)});divelement.observe('widget:keyup',function(event){OncallBackKeyUpTextarea(event,divid,desturl)})});$$("#"+divid+"_answerlink").each(function(element){element.observe('click',function(event){Event.stop(event);
2964var e=document.getElementById(divid);if(e.style.display=='block')
2965e.style.display='none';else e.style.display='block';return(!1)})});if(wallsubmit)
2966wallsubmit.addClassName("initdone")};(function(window){if(!!window.cookieChoices){return window.cookieChoices}
2967var document=window.document;var supportsTextContent=!0;var cookieChoices=(function(){var cookieName='displayCookieConsent';var cookieConsentId='cookieChoiceInfo';var dismissLinkId='cookieChoiceDismiss';function _createHeaderElement(cookieText,dismissText,linkText,linkHref){var butterBarStyles='position:fixed;width:100%;background-color:#999;color:#fff;'+'margin:0; left:0; bottom:0;padding:10px;z-index:1000;text-align:center;';var cookieConsentElement=document.createElement('div');cookieConsentElement.id=cookieConsentId;cookieConsentElement.style.cssText=butterBarStyles;cookieConsentElement.appendChild(_createConsentText(cookieText));if(!!linkText&&!!linkHref){cookieConsentElement.appendChild(_createInformationLink(linkText,linkHref))}
2968cookieConsentElement.appendChild(_createDismissLink(dismissText));return cookieConsentElement}
2969function _createDialogElement(cookieText,dismissText,linkText,linkHref){var glassStyle='bottom:0;left:0;';var dialogStyle='z-index:1000;bottom:0;background-color:#000;opacity:0.8;';var contentStyle='font-size:12px;position:relative;left:0;bottom:0;'+'color:#fff;padding:20px;';var cookieConsentElement=document.createElement('div');cookieConsentElement.id=cookieConsentId;var glassPanel=document.createElement('div');glassPanel.style.cssText=glassStyle;var content=document.createElement('div');content.style.cssText=contentStyle;var dialog=document.createElement('div');dialog.style.cssText=dialogStyle;var dismissLink=_createDismissLink(dismissText);dismissLink.style.display='block';dismissLink.style.textAlign='right';dismissLink.style.top='20px';dismissLink.style.position='absolute';dismissLink.style.right='0';dismissLink.style.borderRadius='5px';dismissLink.style.padding='5px 8px';dismissLink.style.background='#fff';content.appendChild(_createConsentText(cookieText));if(!!linkText&&!!linkHref){content.appendChild(_createInformationLink(linkText,linkHref))}
2970content.appendChild(dismissLink);dialog.appendChild(content);cookieConsentElement.appendChild(dialog);return cookieConsentElement}
2971function _setElementText(element,text){if(supportsTextContent){element.textContent=text}else{element.innerText=text}}
2972function _createConsentText(cookieText){var consentText=document.createElement('span');_setElementText(consentText,cookieText);return consentText}
2973function _createDismissLink(dismissText){var dismissLink=document.createElement('a');_setElementText(dismissLink,dismissText);dismissLink.id=dismissLinkId;dismissLink.href='#';return dismissLink}
2974function _createInformationLink(linkText,linkHref){var infoLink=document.createElement('a');_setElementText(infoLink,linkText);infoLink.href=linkHref;infoLink.target='_blank';infoLink.style.marginLeft='8px';infoLink.style.color='#fff';infoLink.style.textDecoration='underline';return infoLink}
2975function _dismissLinkClick(){_saveUserPreference();_removeCookieConsent();return!1}
2976function _showCookieConsent(cookieText,dismissText,linkText,linkHref,isDialog){if(_shouldDisplayConsent()){_removeCookieConsent();var consentElement=(isDialog)?_createDialogElement(cookieText,dismissText,linkText,linkHref):_createHeaderElement(cookieText,dismissText,linkText,linkHref);var fragment=document.createDocumentFragment();fragment.appendChild(consentElement);document.body.insertBefore(fragment.cloneNode(!0),document.body.firstChild);document.getElementById(dismissLinkId).onclick=_dismissLinkClick}}
2977function showCookieConsentBar(cookieText,dismissText,linkText,linkHref){_showCookieConsent(cookieText,dismissText,linkText,linkHref,!1)}
2978function showCookieConsentDialog(cookieText,dismissText,linkText,linkHref){_showCookieConsent(cookieText,dismissText,linkText,linkHref,!0)}
2979function _removeCookieConsent(){var cookieChoiceElement=document.getElementById(cookieConsentId);if(cookieChoiceElement!=null){cookieChoiceElement.parentNode.removeChild(cookieChoiceElement)}}
2980function _saveUserPreference(){var expiryDate=new Date();expiryDate.setFullYear(expiryDate.getFullYear()+1);document.cookie=cookieName+'=y; SameSite=Lax; path=/; expires='+expiryDate.toGMTString()}
2981function _shouldDisplayConsent(){return!document.cookie.match(new RegExp(cookieName+'=([^;]+)'))}
2982var exports={};exports.showCookieConsentBar=showCookieConsentBar;exports.showCookieConsentDialog=showCookieConsentDialog;return exports})();window.cookieChoices=cookieChoices;return cookieChoices})(this);(function(){'use strict';function StarzRate(el,currentRating,maxRating,callback,labels){var stars=[];var labelElement;
2982(function init(){if(typeof el==="string")el=document.getElementById(el);if(!el)throw Error('No element supplied.');if(!maxRating)throw Error('No max rating supplied.');if(!currentRating)currentRating=0;if(currentRating<0||currentRating>maxRating)throw Error('Current rating is out of bounds.');var reset=document.createElement('li');reset.classList.add('c-rating__reset');el.appendChild(reset);attachResetEvents(reset);for(var i=0;i<maxRating;i++){var star=document.createElement('li');star.classList.add('c-rating__item');star.setAttribute('data-index',i);if(i<currentRating){star.classList.add('is-active')}
2983el.appendChild(star);stars.push(star);attachStarEvents(star)}
2984if(labels){labelElement=document.createElement('li');labelElement.classList.add('c-rating__label');el.appendChild(labelElement);updateLabel(currentRating)}})();function iterate(collection,callback){for(var i=0;i<collection.length;i++){var item=collection[i];callback(item,i)}}
2985function attachStarEvents(star){starMouseOver(star);starMouseOut(star);starClick(star)}
2986function attachResetEvents(reset){resetMouseOver(reset);resetMouseOut(reset);resetClick(reset)}
2987function starMouseOver(star){star.addEventListener('mouseover',function(){iterate(stars,function(item,index){if(index<=parseInt(star.getAttribute('data-index')))item.classList.add('is-active');else item.classList.remove('is-active')});updateLabel(parseInt(star.getAttribute('data-index'))+1)})}
2988function starMouseOut(star){star.addEventListener('mouseout',function(e){if(stars.indexOf(e.relatedTarget)===-1){setRating(null,!1)}
2989updateLabel(getRating())})}
2990function starClick(star){star.addEventListener('click',function(e){e.preventDefault();setRating(parseInt(star.getAttribute('data-index'))+1,!0);updateLabel(getRating())})}
2991function resetMouseOver(reset){reset.addEventListener('mouseover',function(){iterate(stars,function(item){item.classList.remove('is-active')});updateLabel(0)})}
2992function resetMouseOut(reset){reset.addEventListener('mouseout',function(){setRating(null,!1);updateLabel(getRating())})}
2993function resetClick(reset){reset.addEventListener('click',function(e){e.preventDefault();resetRating(!0);updateLabel(getRating())})}
2994function setRating(value,doCallback){if(value&&value<0||value>maxRating)return;if(doCallback===undefined)doCallback=!0;currentRating=value||currentRating;iterate(stars,function(star,index){if(index<currentRating){star.classList.add('is-active')}else{star.classList.remove('is-active')}});if(callback&&doCallback){callback(getRating())}}
2995function resetRating(doCallback){if(doCallback===undefined)doCallback=!0;currentRating=0;iterate(stars,function(star){star.classList.remove('is-active')});if(callback&&doCallback){callback(getRating())}}
2996function updateLabel(value){if(labels&&labelElement){if(value>=0&&value<=maxRating){var labelValue=labels[value];if(typeof labelValue==="string")labelElement.innerText=labels[value]}}}
2997function getRating(){return currentRating}
2998return{setRating:setRating,getRating:getRating}}
2999window.StarzRate=StarzRate})();var gzipped=1

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.