https://www.graphiline.com/src/applications/news/js/cache/graphiline_article_3974_version_0187.js.gz
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&®exp.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,'&').replace(/</g,'<').replace(/>/g,'>')} 85function unescapeHTML(){return this.stripTags().replace(/</g,'<').replace(/>/g,'>').replace(/&/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=' '+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&¤tTarget.tagName){if(type==='load'||type==='error'||(type==='click'&¤tTarget.tagName.toLowerCase()==='input'&¤tTarget.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&¶meters.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&¶meters.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&¶meters.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¤tFile='+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&¶meters.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éder à 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éder à 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;"> '+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:' ';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+" (‏"+i.duration+"‏) ",--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(' ');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(' ');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+"¶ms_action="+linkElt.getAttribute('data-action-type');if(linkElt.getAttribute('data-action-data'))$('connection-candidat').href=$('connection-candidat').href+"¶ms_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+"¶ms_action="+linkElt.getAttribute('data-action-type');if(linkElt.getAttribute('data-action-data')) 2826$('connection-candidat').href=$('connection-candidat').href+"¶ms_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¶ms_action=showroom_partage¶ms_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¶ms_action="+typename+"_showroom_user¶ms_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"&¤tFileName.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=" ";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="⏱ ";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(' ',' ');$(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¶ms_action=showroom_comment¶ms_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¶ms_action=showroom_comment¶ms_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.