var Prototype={Version:"1.7",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.0,Gecko:ua.indexOf("Gecko")>-1.0&&ua.indexOf("KHTML")===-1.0,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")return true;var div=document.createElement("div"),form=document.createElement("form"),isSupported=false;if(div.__proto__&&(div.__proto__!==form.__proto__)){isSupported=true;}div=form=null;return isSupported;})()},ScriptFragment:"\u003Cscript[^\u003E]*\u003E([\\S\\s]*?)\u003C/script\u003E",JSONFilter:/^\/\*-secure-([\s\S]*)\*\/\s*$/,emptyFunction:function(){},K:function(x){return x;}};if(Prototype.Browser.MobileSafari)Prototype.BrowserFeatures.SpecificElementExtensions=false;var Class=(function(){var IS_DONTENUM_BUGGY=(function(){for(var p in{toString:1.0}){if(p==="toString")return false;}return true;})();function subclass(){}function create(){var parent=null,properties=$A(arguments);if(Object.isFunction(properties[0.0]))parent=properties.shift();function klass(){this.initialize.apply(this,arguments);}Object.extend(klass,Class.Methods);klass.superclass=parent;klass.subclasses=[];if(parent){subclass.prototype=parent.prototype;klass.prototype=new subclass();parent.subclasses.push(klass);}for(var i=0.0,length=properties.length;i<length;i++)klass.addMethods(properties[i]);if(!klass.prototype.initialize)klass.prototype.initialize=Prototype.emptyFunction;klass.prototype.constructor=klass;return klass;}function addMethods(source){var ancestor=this.superclass&&this.superclass.prototype,properties=Object.keys(source);if(IS_DONTENUM_BUGGY){if(source.toString!=Object.prototype.toString)properties.push("toString");if(source.valueOf!=Object.prototype.valueOf)properties.push("valueOf");}for(var i=0.0,length=properties.length;i<length;i++){var property=properties[i],value=source[property];if(ancestor&&Object.isFunction(value)&&value.argumentNames()[0.0]=="$super"){var method=value;value=(function(m){return function(){return ancestor[m].apply(this,arguments);};})(property).wrap(method);value.valueOf=method.valueOf.bind(method);value.toString=method.toString.bind(method);}this.prototype[property]=value;}return this;}return{create:create,Methods:{addMethods:addMethods}};})();(function(){var _toString=Object.prototype.toString,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)==="0"&&typeof JSON.stringify(Prototype.K)==="undefined";function Type(o){switch(o){case null:return NULL_TYPE;case (void 0.0):return UNDEFINED_TYPE;}var type=typeof o;switch(type){case "boolean":return BOOLEAN_TYPE;case "number":return NUMBER_TYPE;case "string":return STRING_TYPE;}return OBJECT_TYPE;}function extend(destination,source){for(var property in source)destination[property]=source[property];return destination;}function 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;}}function toJSON(value){return Str("",{"":value},[]);}function Str(key,holder,stack){var value=holder[key],type=typeof value;if(Type(value)===OBJECT_TYPE&&typeof value.toJSON==="function"){value=value.toJSON(key);}var _class=_toString.call(value);switch(_class){case NUMBER_CLASS:case BOOLEAN_CLASS:case STRING_CLASS:value=value.valueOf();}switch(value){case null:return"null";case true:return"true";case false:return"false";}type=typeof value;switch(type){case "string":return value.inspect(true);case "number":return isFinite(value)?String(value):"null";case "object":for(var i=0.0,length=stack.length;i<length;i++){if(stack[i]===value){throw new TypeError();}}stack.push(value);var partial=[];if(_class===ARRAY_CLASS){for(var i=0.0,length=value.length;i<length;i++){var str=Str(i,value,stack);partial.push(typeof str==="undefined"?"null":str);}partial="["+partial.join(",")+"]";}else{var keys=Object.keys(value);for(var i=0.0,length=keys.length;i<length;i++){var key=keys[i],str=Str(key,value,stack);if(typeof str!=="undefined"){partial.push(key.inspect(true)+":"+str);}}partial="{"+partial.join(",")+"}";}stack.pop();return partial;}}function stringify(object){return JSON.stringify(object);}function toQueryString(object){return $H(object).toQueryString();}function toHTML(object){return object&&object.toHTML?object.toHTML():String.interpret(object);}function keys(object){if(Type(object)!==OBJECT_TYPE){throw new TypeError();}var results=[];for(var property in object){if(object.hasOwnProperty(property)){results.push(property);}}return results;}function values(object){var results=[];for(var property in object)results.push(object[property]);return results;}function clone(object){return extend({},object);}function isElement(object){return!!(object&&object.nodeType==1.0);}function isArray(object){return _toString.call(object)===ARRAY_CLASS;}var hasNativeIsArray=(typeof Array.isArray=="function")&&Array.isArray([])&&!Array.isArray({});if(hasNativeIsArray){isArray=Array.isArray;}function isHash(object){return object instanceof Hash;}function isFunction(object){return _toString.call(object)===FUNCTION_CLASS;}function isString(object){return _toString.call(object)===STRING_CLASS;}function isNumber(object){return _toString.call(object)===NUMBER_CLASS;}function isDate(object){return _toString.call(object)===DATE_CLASS;}function isUndefined(object){return typeof object==="undefined";}extend(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;}function merge(array,args){array=slice.call(array,0.0);return update(array,args);}function argumentNames(){var names=this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1.0].replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g,"").replace(/\s+/g,"").split(",");return names.length==1.0&&!names[0.0]?[]:names;}function bind(context){if(arguments.length<2.0&&Object.isUndefined(arguments[0.0]))return this;var __method=this,args=slice.call(arguments,1.0);return function(){var a=merge(args,arguments);return __method.apply(context,a);};}function bindAsEventListener(context){var __method=this,args=slice.call(arguments,1.0);return function(event){var a=update([event||window.event],args);return __method.apply(context,a);};}function curry(){if(!arguments.length)return this;var __method=this,args=slice.call(arguments,0.0);return function(){var a=merge(args,arguments);return __method.apply(this,a);};}function delay(timeout){var __method=this,args=slice.call(arguments,1.0);timeout=timeout*1000.0;return window.setTimeout(function(){return __method.apply(__method,args);},timeout);}function defer(){var args=update([0.01],arguments);return this.delay.apply(this,args);}function wrap(wrapper){var __method=this;return function(){var a=update([__method.bind(this)],arguments);return wrapper.apply(this,a);};}function methodize(){if(this._methodized)return this._methodized;var __method=this;return this._methodized=function(){var a=update([this],arguments);return __method.apply(null,a);};}return{argumentNames:argumentNames,bind:Function.prototype.bind||bind,bindAsEventListener:bindAsEventListener,curry:curry,delay:delay,defer:defer,wrap:wrap,methodize:methodize};})());(function(proto){function toISOString(){return this.getUTCFullYear()+"-"+(this.getUTCMonth()+1.0).toPaddedString(2.0)+"-"+this.getUTCDate().toPaddedString(2.0)+"T"+this.getUTCHours().toPaddedString(2.0)+":"+this.getUTCMinutes().toPaddedString(2.0)+":"+this.getUTCSeconds().toPaddedString(2.0)+"Z";}function toJSON(){return this.toISOString();}if(!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=false;this.registerCallback();},registerCallback:function(){this.timer=setInterval(this.onTimerEvent.bind(this),this.frequency*1000.0);},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=true;this.execute();this.currentlyExecuting=false;} catch(e){this.currentlyExecuting=false;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);};}function gsub(pattern,replacement){var result="",source=this,match;replacement=prepareReplacement(replacement);if(Object.isString(pattern))pattern=RegExp.escape(pattern);if(!(pattern.length||pattern.source)){replacement=replacement("");return replacement+source.split("").join(replacement)+replacement;}while(source.length>0.0){if(match=source.match(pattern)){result+=source.slice(0.0,match.index);result+=String.interpret(replacement(match));source=source.slice(match.index+match[0.0].length);}else{result+=source,source="";}}return result;}function sub(pattern,replacement,count){replacement=prepareReplacement(replacement);count=Object.isUndefined(count)?1.0:count;return this.gsub(pattern,function(match){if(--count<0.0)return match[0.0];return replacement(match);});}function scan(pattern,iterator){this.gsub(pattern,iterator);return String(this);}function truncate(length,truncation){length=length||30.0;truncation=Object.isUndefined(truncation)?"...":truncation;return this.length>length?this.slice(0.0,length-truncation.length)+truncation:String(this);}function strip(){return this.replace(/^\s+/,"").replace(/\s+$/,"");}function stripTags(){return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi,"");}function stripScripts(){return this.replace(new RegExp(Prototype.ScriptFragment,"img"),"");}function 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.0];});}function evalScripts(){return this.extractScripts().map(function(script){return eval(script);});}function escapeHTML(){return this.replace(/&/g,"\u0026amp;").replace(/</g,"\u0026lt;").replace(/>/g,"\u0026gt;");}function unescapeHTML(){return this.stripTags().replace(/&lt;/g,"\u003C").replace(/&gt;/g,"\u003E").replace(/&amp;/g,"\u0026");}function toQueryParams(separator){var match=this.strip().match(/([^?#]*)(#.*)?$/);if(!match)return{};return match[1.0].split(separator||"\u0026").inject({},function(hash,pair){if((pair=pair.split("="))[0.0]){var key=decodeURIComponent(pair.shift()),value=pair.length>1.0?pair.join("="):pair[0.0];if(value!=undefined)value=decodeURIComponent(value);if(key in hash){if(!Object.isArray(hash[key]))hash[key]=[hash[key]];hash[key].push(value);}else hash[key]=value;}return hash;});}function toArray(){return this.split("");}function succ(){return this.slice(0.0,this.length-1.0)+String.fromCharCode(this.charCodeAt(this.length-1.0)+1.0);}function times(count){return count<1.0?"":new Array(count+1.0).join(this);}function camelize(){return this.replace(/-+(.)?/g,function(match,chr){return chr?chr.toUpperCase():"";});}function capitalize(){return this.charAt(0.0).toUpperCase()+this.substring(1.0).toLowerCase();}function 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();}function dasherize(){return this.replace(/_/g,"-");}function inspect(useDoubleQuotes){var escapedString=this.replace(/[\x00-\x1f\\]/g,function(character){if(character in String.specialChar){return String.specialChar[character];}return"\\u00"+character.charCodeAt().toPaddedString(2.0,16.0);});if(useDoubleQuotes)return"\""+escapedString.replace(/"/g,"\\\"")+"\"";return"'"+escapedString.replace(/'/g,"\\'")+"'";}function unfilterJSON(filter){return this.replace(filter||Prototype.JSONFilter,"$1");}function isJSON(){var str=this;if(str.blank())return false;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);}function evalJSON(sanitize){var json=this.unfilterJSON(),cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;if(cx.test(json)){json=json.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0.0).toString(16.0)).slice(-4.0);});}try {if(!sanitize||json.isJSON())return eval("("+json+")");} catch(e){}throw new SyntaxError("Badly formed JSON string: "+this.inspect());}function parseJSON(){var json=this.unfilterJSON();return JSON.parse(json);}function include(pattern){return this.indexOf(pattern)>-1.0;}function startsWith(pattern){return this.lastIndexOf(pattern,0.0)===0.0;}function endsWith(pattern){var d=this.length-pattern.length;return d>=0.0&&this.indexOf(pattern,d)===d;}function empty(){return this=="";}function blank(){return/^\s*$/.test(this);}function interpolate(object,pattern){return new Template(this,pattern).evaluate(object);}return{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:startsWith,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))object=object.toTemplateReplacements();return this.template.gsub(this.pattern,function(match){if(object==null)return(match[1.0]+"");var before=match[1.0]||"";if(before=="\\")return match[2.0];var ctx=object,expr=match[3.0],pattern=/^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;match=pattern.exec(expr);if(match==null)return before;while(match!=null){var comp=match[1.0].startsWith("[")?match[2.0].replace(/\\\\]/g,"]"):match[1.0];ctx=ctx[comp];if(null==ctx||""==match[3.0])break;expr=expr.substring("["==match[3.0]?match[1.0].length:match[0.0].length);match=pattern.exec(expr);}return before+String.interpret(ctx);});}});Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;var $break={};var Enumerable=(function(){function each(iterator,context){var index=0.0;try {this._each(function(value){iterator.call(context,value,index++);});} catch(e){if(e!=$break)throw e;}return this;}function eachSlice(number,iterator,context){var index=-number,slices=[],array=this.toArray();if(number<1.0)return array;while((index+=number)<array.length)slices.push(array.slice(index,index+number));return slices.collect(iterator,context);}function all(iterator,context){iterator=iterator||Prototype.K;var result=true;this.each(function(value,index){result=result&&!!iterator.call(context,value,index);if(!result)throw $break;});return result;}function any(iterator,context){iterator=iterator||Prototype.K;var result=false;this.each(function(value,index){if(result=!!iterator.call(context,value,index))throw $break;});return result;}function collect(iterator,context){iterator=iterator||Prototype.K;var results=[];this.each(function(value,index){results.push(iterator.call(context,value,index));});return results;}function detect(iterator,context){var result;this.each(function(value,index){if(iterator.call(context,value,index)){result=value;throw $break;}});return result;}function findAll(iterator,context){var results=[];this.each(function(value,index){if(iterator.call(context,value,index))results.push(value);});return results;}function grep(filter,iterator,context){iterator=iterator||Prototype.K;var results=[];if(Object.isString(filter))filter=new RegExp(RegExp.escape(filter));this.each(function(value,index){if(filter.match(value))results.push(iterator.call(context,value,index));});return results;}function include(object){if(Object.isFunction(this.indexOf))if(this.indexOf(object)!=-1.0)return true;var found=false;this.each(function(value){if(value==object){found=true;throw $break;}});return found;}function inGroupsOf(number,fillWith){fillWith=Object.isUndefined(fillWith)?null:fillWith;return this.eachSlice(number,function(slice){while(slice.length<number)slice.push(fillWith);return slice;});}function inject(memo,iterator,context){this.each(function(value,index){memo=iterator.call(context,memo,value,index);});return memo;}function invoke(method){var args=$A(arguments).slice(1.0);return this.map(function(value){return value[method].apply(value,args);});}function max(iterator,context){iterator=iterator||Prototype.K;var result;this.each(function(value,index){value=iterator.call(context,value,index);if(result==null||value>=result)result=value;});return result;}function min(iterator,context){iterator=iterator||Prototype.K;var result;this.each(function(value,index){value=iterator.call(context,value,index);if(result==null||value<result)result=value;});return result;}function partition(iterator,context){iterator=iterator||Prototype.K;var trues=[],falses=[];this.each(function(value,index){(iterator.call(context,value,index)?trues:falses).push(value);});return [trues,falses];}function pluck(property){var results=[];this.each(function(value){results.push(value[property]);});return results;}function reject(iterator,context){var results=[];this.each(function(value,index){if(!iterator.call(context,value,index))results.push(value);});return results;}function sortBy(iterator,context){return this.map(function(value,index){return{value:value,criteria:iterator.call(context,value,index)};}).sort(function(left,right){var a=left.criteria,b=right.criteria;return a<b?-1.0:a>b?1.0:0.0;}).pluck("value");}function toArray(){return this.map();}function zip(){var iterator=Prototype.K,args=$A(arguments);if(Object.isFunction(args.last()))iterator=args.pop();var collections=[this].concat(args).map($A);return this.map(function(value,index){return iterator(collections.pluck(index));});}function size(){return this.toArray().length;}function inspect(){return"#\u003CEnumerable:"+this.toArray().inspect()+"\u003E";}return{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.0,results=new Array(length);while(length--)results[length]=iterable[length];return results;}function $w(string){if(!Object.isString(string))return [];string=string.strip();return string?string.split(/\s+/):[];}Array.from=$A;(function(){var arrayProto=Array.prototype,slice=arrayProto.slice,_each=arrayProto.forEach;function each(iterator,context){for(var i=0.0,length=this.length>>>0.0;i<length;i++){if(i in this)iterator.call(context,this[i],i,this);}}if(!_each)_each=each;function clear(){this.length=0.0;return this;}function first(){return this[0.0];}function last(){return this[this.length-1.0];}function compact(){return this.select(function(value){return value!=null;});}function flatten(){return this.inject([],function(array,value){if(Object.isArray(value))return array.concat(value.flatten());array.push(value);return array;});}function without(){var values=slice.call(arguments,0.0);return this.select(function(value){return!values.include(value);});}function reverse(inline){return(inline===false?this.toArray():this)._reverse();}function uniq(sorted){return this.inject([],function(array,value,index){if(0.0==index||(sorted?array.last()!=value:!array.include(value)))array.push(value);return array;});}function intersect(array){return this.uniq().findAll(function(item){return array.detect(function(value){return item===value;});});}function clone(){return slice.call(this,0.0);}function size(){return this.length;}function inspect(){return"["+this.map(Object.inspect).join(", ")+"]";}function indexOf(item,i){i||(i=0.0);var length=this.length;if(i<0.0)i=length+i;for(;i<length;i++)if(this[i]===item)return i;return-1.0;}function lastIndexOf(item,i){i=isNaN(i)?this.length:(i<0.0?this.length+i:i)+1.0;var n=this.slice(0.0,i).reverse().indexOf(item);return(n<0.0)?n:i-n-1.0;}function concat(){var array=slice.call(this,0.0),item;for(var i=0.0,length=arguments.length;i<length;i++){item=arguments[i];if(Object.isArray(item)&&!("callee"in item)){for(var j=0.0,arrayLength=item.length;j<arrayLength;j++)array.push(item[j]);}else{array.push(item);}}return array;}Object.extend(arrayProto,Enumerable);if(!arrayProto._reverse)arrayProto._reverse=arrayProto.reverse;Object.extend(arrayProto,{_each:_each,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});var CONCAT_ARGUMENTS_BUGGY=(function(){return [].concat(arguments)[0.0][0.0]!==1.0;})(1.0,2.0);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);}function _each(iterator){for(var key in this._object){var value=this._object[key],pair=[key,value];pair.key=key;pair.value=value;iterator(pair);}}function set(key,value){return this._object[key]=value;}function get(key){if(this._object[key]!==Object.prototype[key])return this._object[key];}function unset(key){var value=this._object[key];delete this._object[key];return value;}function toObject(){return Object.clone(this._object);}function keys(){return this.pluck("key");}function values(){return this.pluck("value");}function index(value){var match=this.detect(function(pair){return pair.value===value;});return match&&match.key;}function merge(object){return this.clone().update(object);}function update(object){return new Hash(object).inject(this,function(result,pair){result.set(pair.key,pair.value);return result;});}function toQueryPair(key,value){if(Object.isUndefined(value))return key;return key+"="+encodeURIComponent(String.interpret(value));}function 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.0,len=values.length,value;i<len;i++){value=values[i];queryValues.push(toQueryPair(key,value));}return results.concat(queryValues);}}else results.push(toQueryPair(key,values));return results;}).join("\u0026");}function inspect(){return"#\u003CHash:{"+this.map(function(pair){return pair.map(Object.inspect).join(": ");}).join(", ")+"}\u003E";}function clone(){return new Hash(this);}return{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.0,16.0);}function succ(){return this+1.0;}function times(iterator,context){$R(0.0,this,true).each(iterator,context);return this;}function toPaddedString(length,radix){var string=this.toString(radix||10.0);return"0".times(length-string.length)+string;}function abs(){return Math.abs(this);}function round(){return Math.round(this);}function ceil(){return Math.ceil(this);}function floor(){return Math.floor(this);}return{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);}var ObjectRange=Class.create(Enumerable,(function(){function initialize(start,end,exclusive){this.start=start;this.end=end;this.exclusive=exclusive;}function _each(iterator){var value=this.start;while(this.include(value)){iterator(value);value=value.succ();}}function include(value){if(value<this.start)return false;if(this.exclusive)return value<this.end;return value<=this.end;}return{initialize:initialize,_each:_each,include:include};})());var Abstract={};var Try={these:function(){var returnValue;for(var i=0.0,length=arguments.length;i<length;i++){var lambda=arguments[i];try {returnValue=lambda();break;} catch(e){}}return returnValue;}};var Ajax={getTransport:function(){return Try.these(function(){return new XMLHttpRequest();},function(){return new ActiveXObject("Msxml2.XMLHTTP");},function(){return new ActiveXObject("Microsoft.XMLHTTP");})||false;},activeRequestCount:0.0};Ajax.Responders={responders:[],_each:function(iterator){this.responders._each(iterator);},register:function(responder){if(!this.include(responder))this.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:true,contentType:"application/x-www-form-urlencoded",encoding:"UTF-8",parameters:"",evalJSON:true,evalJS:true};Object.extend(this.options,options||{});this.options.method=this.options.method.toLowerCase();if(Object.isHash(this.options.parameters))this.options.parameters=this.options.parameters.toObject();}});Ajax.Request=Class.create(Ajax.Base,{_complete:false,initialize:function($super,url,options){$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?"\u0026":"")+"_method="+this.method;this.method="post";}if(params&&this.method==="get"){this.url+=(this.url.include("?")?"\u0026":"?")+params;}this.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).defer(1.0);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)this.onStateChange();} catch(e){this.dispatchException(e);}},onStateChange:function(){var readyState=this.transport.readyState;if(readyState>1.0&&!((readyState==4.0)&&this._complete))this.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.0,2005.0])[1.0]<2005.0)headers.Connection="close";}if(typeof this.options.requestHeaders=="object"){var extras=this.options.requestHeaders;if(Object.isFunction(extras.push))for(var i=0.0,length=extras.length;i<length;i+=2.0)headers[extras[i]]=extras[i+1.0];else $H(extras).each(function(pair){headers[pair.key]=pair.value;});}for(var name in headers)this.transport.setRequestHeader(name,headers[name]);},success:function(){var status=this.getStatus();return!status||(status>=200.0&&status<300.0)||status==304.0;},getStatus:function(){try {if(this.transport.status===1223.0)return 204.0;return this.transport.status||0.0;} catch(e){return 0.0;}},respondToReadyState:function(readyState){var state=Ajax.Request.Events[readyState],response=new Ajax.Response(this);if(state=="Complete"){try {this._complete=true;(this.options["on"+response.status]||this.options["on"+(this.success()?"Success":"Failure")]||Prototype.emptyFunction)(response,response.headerJSON);} catch(e){this.dispatchException(e);}var 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)))this.evalResponse();}try {(this.options["on"+state]||Prototype.emptyFunction)(response,response.headerJSON);Ajax.Responders.dispatch("on"+state,this,response,response.headerJSON);} catch(e){this.dispatchException(e);}if(state=="Complete"){this.transport.onreadystatechange=Prototype.emptyFunction;}},isSameOrigin:function(){var m=this.url.match(/^\s*https?:\/\/[^\/]*/);return!m||(m[0.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.0&&!Prototype.Browser.IE)||readyState==4.0){this.status=this.getStatus();this.statusText=this.getStatusText();this.responseText=String.interpret(transport.responseText);this.headerJSON=this._getHeaderJSON();}if(readyState==4.0){var xml=transport.responseXML;this.responseXML=Object.isUndefined(xml)?null:xml;this.responseJSON=this._getResponseJSON();}},status:0.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;json=decodeURIComponent(escape(json));try {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())return 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,options){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.0);this.decay=(this.options.decay||1.0);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.0);this.lastText=response.responseText;}this.timer=this.onTimerEvent.bind(this).delay(this.decay*this.frequency);},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options);}});function $(element){if(arguments.length>1.0){for(var i=0.0,elements=[],length=arguments.length;i<length;i++)elements.push($(arguments[i]));return elements;}if(Object.isString(element))element=document.getElementById(element);return Element.extend(element);}if(Prototype.BrowserFeatures.XPath){document._getElementsByXPath=function(expression,parentElement){var results=[];var query=document.evaluate(expression,$(parentElement)||document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);for(var i=0.0,length=query.snapshotLength;i<length;i++)results.push(Element.extend(query.snapshotItem(i)));return results;};}if(!Node)var Node={};if(!Node.ELEMENT_NODE){Object.extend(Node,{ELEMENT_NODE:1.0,ATTRIBUTE_NODE:2.0,TEXT_NODE:3.0,CDATA_SECTION_NODE:4.0,ENTITY_REFERENCE_NODE:5.0,ENTITY_NODE:6.0,PROCESSING_INSTRUCTION_NODE:7.0,COMMENT_NODE:8.0,DOCUMENT_NODE:9.0,DOCUMENT_TYPE_NODE:10.0,DOCUMENT_FRAGMENT_NODE:11.0,NOTATION_NODE:12.0});}(function(global){function shouldUseCache(tagName,attributes){if(tagName==="select")return false;if("type"in attributes)return false;return true;}var HAS_EXTENDED_CREATE_ELEMENT_SYNTAX=(function(){try {var el=document.createElement("\u003Cinput name=\"x\"\u003E");return el.tagName.toLowerCase()==="input"&&el.name==="x";} catch(err){return false;}})();var element=global.Element;global.Element=function(tagName,attributes){attributes=attributes||{};tagName=tagName.toLowerCase();var cache=Element.cache;if(HAS_EXTENDED_CREATE_ELEMENT_SYNTAX&&attributes.name){tagName="\u003C"+tagName+" name=\""+attributes.name+"\"\u003E";delete attributes.name;return Element.writeAttribute(document.createElement(tagName),attributes);}if(!cache[tagName])cache[tagName]=Element.extend(document.createElement(tagName));var node=shouldUseCache(tagName,attributes)?cache[tagName].cloneNode(false):document.createElement(tagName);return Element.writeAttribute(node,attributes);};Object.extend(global.Element,element||{});if(element)global.Element.prototype=element.prototype;})(this);Element.idCounter=1.0;Element.cache={};Element._purgeElement=function(element){var uid=element._prototypeUID;if(uid){Element.stopObserving(element);element._prototypeUID=void 0.0;delete Element.Storage[uid];}};Element.Methods={visible:function(element){return $(element).style.display!="none";},toggle:function(element){element=$(element);Element[Element.visible(element)?"hide":"show"](element);return element;},hide:function(element){element=$(element);element.style.display="none";return element;},show:function(element){element=$(element);element.style.display="";return element;},remove:function(element){element=$(element);element.parentNode.removeChild(element);return element;},update:(function(){var SELECT_ELEMENT_INNERHTML_BUGGY=(function(){var el=document.createElement("select"),isBuggy=true;el.innerHTML="\u003Coption value=\"test\"\u003Etest\u003C/option\u003E";if(el.options&&el.options[0.0]){isBuggy=el.options[0.0].nodeName.toUpperCase()!=="OPTION";}el=null;return isBuggy;})();var TABLE_ELEMENT_INNERHTML_BUGGY=(function(){try {var el=document.createElement("table");if(el&&el.tBodies){el.innerHTML="\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd\u003Etest\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E";var isBuggy=typeof el.tBodies[0.0]=="undefined";el=null;return isBuggy;}} catch(e){return true;}})();var LINK_ELEMENT_INNERHTML_BUGGY=(function(){try {var el=document.createElement("div");el.innerHTML="\u003Clink\u003E";var isBuggy=(el.childNodes.length===0.0);el=null;return isBuggy;} catch(e){return true;}})();var ANY_INNERHTML_BUGGY=SELECT_ELEMENT_INNERHTML_BUGGY||TABLE_ELEMENT_INNERHTML_BUGGY||LINK_ELEMENT_INNERHTML_BUGGY;var SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING=(function(){var s=document.createElement("script"),isBuggy=false;try {s.appendChild(document.createTextNode(""));isBuggy=!s.firstChild||s.firstChild&&s.firstChild.nodeType!==3.0;} catch(e){isBuggy=true;}s=null;return isBuggy;})();function update(element,content){element=$(element);var purgeElement=Element._purgeElement;var descendants=element.getElementsByTagName("*"),i=descendants.length;while(i--)purgeElement(descendants[i]);if(content&&content.toElement)content=content.toElement();if(Object.isElement(content))return 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;}if(ANY_INNERHTML_BUGGY){if(tagName in Element._insertionTranslations.tags){while(element.firstChild){element.removeChild(element.firstChild);}Element._getContentFromAnonymousElement(tagName,content.stripScripts()).each(function(node){element.appendChild(node);});}else if(LINK_ELEMENT_INNERHTML_BUGGY&&Object.isString(content)&&content.indexOf("\u003Clink")>-1.0){while(element.firstChild){element.removeChild(element.firstChild);}var nodes=Element._getContentFromAnonymousElement(tagName,content.stripScripts(),true);nodes.each(function(node){element.appendChild(node);});}else{element.innerHTML=content.stripScripts();}}else{element.innerHTML=content.stripScripts();}content.evalScripts.bind(content).defer();return element;}return update;})(),replace:function(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).defer();content=range.createContextualFragment(content.stripScripts());}element.parentNode.replaceChild(content,element);return element;},insert:function(element,insertions){element=$(element);if(Object.isString(insertions)||Object.isNumber(insertions)||Object.isElement(insertions)||(insertions&&(insertions.toElement||insertions.toHTML)))insertions={bottom:insertions};var content,insert,tagName,childNodes;for(var position in insertions){content=insertions[position];position=position.toLowerCase();insert=Element._insertionTranslations[position];if(content&&content.toElement)content=content.toElement();if(Object.isElement(content)){insert(element,content);continue;}content=Object.toHTML(content);tagName=((position=="before"||position=="after")?element.parentNode:element).tagName.toUpperCase();childNodes=Element._getContentFromAnonymousElement(tagName,content.stripScripts());if(position=="top"||position=="after")childNodes.reverse();childNodes.each(insert.curry(element));content.evalScripts.bind(content).defer();}return element;},wrap:function(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);if(element.parentNode)element.parentNode.replaceChild(wrapper,element);wrapper.appendChild(element);return wrapper;},inspect:function(element){element=$(element);var result="\u003C"+element.tagName.toLowerCase();$H({"id":"id","className":"class"}).each(function(pair){var property=pair.first(),attribute=pair.last(),value=(element[property]||"").toString();if(value)result+=" "+attribute+"="+value.inspect(true);});return result+"\u003E";},recursivelyCollect:function(element,property,maximumLength){element=$(element);maximumLength=maximumLength||-1.0;var elements=[];while(element=element[property]){if(element.nodeType==1.0)elements.push(Element.extend(element));if(elements.length==maximumLength)break;}return elements;},ancestors:function(element){return Element.recursivelyCollect(element,"parentNode");},descendants:function(element){return Element.select(element,"*");},firstDescendant:function(element){element=$(element).firstChild;while(element&&element.nodeType!=1.0)element=element.nextSibling;return $(element);},immediateDescendants:function(element){var results=[],child=$(element).firstChild;while(child){if(child.nodeType===1.0){results.push(Element.extend(child));}child=child.nextSibling;}return results;},previousSiblings:function(element,maximumLength){return Element.recursivelyCollect(element,"previousSibling");},nextSiblings:function(element){return Element.recursivelyCollect(element,"nextSibling");},siblings:function(element){element=$(element);return Element.previousSiblings(element).reverse().concat(Element.nextSiblings(element));},match:function(element,selector){element=$(element);if(Object.isString(selector))return Prototype.Selector.match(element,selector);return selector.match(element);},up:function(element,expression,index){element=$(element);if(arguments.length==1.0)return $(element.parentNode);var ancestors=Element.ancestors(element);return Object.isNumber(expression)?ancestors[expression]:Prototype.Selector.find(ancestors,expression,index);},down:function(element,expression,index){element=$(element);if(arguments.length==1.0)return Element.firstDescendant(element);return Object.isNumber(expression)?Element.descendants(element)[expression]:Element.select(element,expression)[index||0.0];},previous:function(element,expression,index){element=$(element);if(Object.isNumber(expression))index=expression,expression=false;if(!Object.isNumber(index))index=0.0;if(expression){return Prototype.Selector.find(element.previousSiblings(),expression,index);}else{return element.recursivelyCollect("previousSibling",index+1.0)[index];}},next:function(element,expression,index){element=$(element);if(Object.isNumber(expression))index=expression,expression=false;if(!Object.isNumber(index))index=0.0;if(expression){return Prototype.Selector.find(element.nextSiblings(),expression,index);}else{var maximumLength=Object.isNumber(index)?index+1.0:1.0;return element.recursivelyCollect("nextSibling",index+1.0)[index];}},select:function(element){element=$(element);var expressions=Array.prototype.slice.call(arguments,1.0).join(", ");return Prototype.Selector.select(expressions,element);},adjacent:function(element){element=$(element);var expressions=Array.prototype.slice.call(arguments,1.0).join(", ");return Prototype.Selector.select(expressions,element.parentNode).without(element);},identify:function(element){element=$(element);var id=Element.readAttribute(element,"id");if(id)return id;do {id="anonymous_element_"+Element.idCounter++;} while($(id));Element.writeAttribute(element,"id",id);return id;},readAttribute:function(element,name){element=$(element);if(Prototype.Browser.IE){var t=Element._attributeTranslations.read;if(t.values[name])return t.values[name](element,name);if(t.names[name])name=t.names[name];if(name.include(":")){return(!element.attributes||!element.attributes[name])?null:element.attributes[name].value;}}return element.getAttribute(name);},writeAttribute:function(element,name,value){element=$(element);var attributes={},t=Element._attributeTranslations.write;if(typeof name=="object")attributes=name;else attributes[name]=Object.isUndefined(value)?true:value;for(var attr in attributes){name=t.names[attr]||attr;value=attributes[attr];if(t.values[attr])name=t.values[attr](element,value);if(value===false||value===null)element.removeAttribute(name);else if(value===true)element.setAttribute(name,name);else element.setAttribute(name,value);}return element;},getHeight:function(element){return Element.getDimensions(element).height;},getWidth:function(element){return Element.getDimensions(element).width;},classNames:function(element){return new Element.ClassNames(element);},hasClassName:function(element,className){if(!(element=$(element)))return;var elementClassName=element.className;return(elementClassName.length>0.0&&(elementClassName==className||new RegExp("(^|\\s)"+className+"(\\s|$)").test(elementClassName)));},addClassName:function(element,className){if(!(element=$(element)))return;if(!Element.hasClassName(element,className))element.className+=(element.className?" ":"")+className;return element;},removeClassName:function(element,className){if(!(element=$(element)))return;element.className=element.className.replace(new RegExp("(^|\\s+)"+className+"(\\s+|$)")," ").strip();return element;},toggleClassName:function(element,className){if(!(element=$(element)))return;return Element[Element.hasClassName(element,className)?"removeClassName":"addClassName"](element,className);},cleanWhitespace:function(element){element=$(element);var node=element.firstChild;while(node){var nextNode=node.nextSibling;if(node.nodeType==3.0&&!/\S/.test(node.nodeValue))element.removeChild(node);node=nextNode;}return element;},empty:function(element){return $(element).innerHTML.blank();},descendantOf:function(element,ancestor){element=$(element),ancestor=$(ancestor);if(element.compareDocumentPosition)return(element.compareDocumentPosition(ancestor)&8.0)===8.0;if(ancestor.contains)return ancestor.contains(element)&&ancestor!==element;while(element=element.parentNode)if(element==ancestor)return true;return false;},scrollTo:function(element){element=$(element);var pos=Element.cumulativeOffset(element);window.scrollTo(pos[0.0],pos[1.0]);return element;},getStyle:function(element,style){element=$(element);style=style=="float"?"cssFloat":style.camelize();var value=element.style[style];if(!value||value=="auto"){var css=document.defaultView.getComputedStyle(element,null);value=css?css[style]:null;}if(style=="opacity")return value?parseFloat(value):1.0;return value=="auto"?null:value;},getOpacity:function(element){return $(element).getStyle("opacity");},setStyle:function(element,styles){element=$(element);var elementStyle=element.style,match;if(Object.isString(styles)){element.style.cssText+=";"+styles;return styles.include("opacity")?element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1.0]):element;}for(var property in styles)if(property=="opacity")element.setOpacity(styles[property]);else elementStyle[(property=="float"||property=="cssFloat")?(Object.isUndefined(elementStyle.styleFloat)?"cssFloat":"styleFloat"):property]=styles[property];return element;},setOpacity:function(element,value){element=$(element);element.style.opacity=(value==1.0||value==="")?"":(value<1.0e-05)?0.0:value;return element;},makePositioned:function(element){element=$(element);var pos=Element.getStyle(element,"position");if(pos=="static"||!pos){element._madePositioned=true;element.style.position="relative";if(Prototype.Browser.Opera){element.style.top=0.0;element.style.left=0.0;}}return element;},undoPositioned:function(element){element=$(element);if(element._madePositioned){element._madePositioned=undefined;element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right="";}return element;},makeClipping:function(element){element=$(element);if(element._overflow)return element;element._overflow=Element.getStyle(element,"overflow")||"auto";if(element._overflow!=="hidden")element.style.overflow="hidden";return element;},undoClipping:function(element){element=$(element);if(!element._overflow)return element;element.style.overflow=element._overflow=="auto"?"":element._overflow;element._overflow=null;return element;},clonePosition:function(element,source){var options=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0.0,offsetLeft:0.0},arguments[2.0]||{});source=$(source);var p=Element.viewportOffset(source),delta=[0.0,0.0],parent=null;element=$(element);if(Element.getStyle(element,"position")=="absolute"){parent=Element.getOffsetParent(element);delta=Element.viewportOffset(parent);}if(parent==document.body){delta[0.0]-=document.body.offsetLeft;delta[1.0]-=document.body.offsetTop;}if(options.setLeft)element.style.left=(p[0.0]-delta[0.0]+options.offsetLeft)+"px";if(options.setTop)element.style.top=(p[1.0]-delta[1.0]+options.offsetTop)+"px";if(options.setWidth)element.style.width=source.offsetWidth+"px";if(options.setHeight)element.style.height=source.offsetHeight+"px";return element;}};Object.extend(Element.Methods,{getElementsBySelector:Element.Methods.select,childElements:Element.Methods.immediateDescendants});Element._attributeTranslations={write:{names:{className:"class",htmlFor:"for"},values:{}}};if(Prototype.Browser.Opera){Element.Methods.getStyle=Element.Methods.getStyle.wrap(function(proceed,element,style){switch(style){case "height":case "width":if(!Element.visible(element))return null;var dim=parseInt(proceed(element,style),10.0);if(dim!==element["offset"+style.capitalize()])return dim+"px";var properties;if(style==="height"){properties=["border-top-width","padding-top","padding-bottom","border-bottom-width"];}else{properties=["border-left-width","padding-left","padding-right","border-right-width"];}return properties.inject(dim,function(memo,property){var val=proceed(element,property);return val===null?memo:memo-parseInt(val,10.0);})+"px";default:{return proceed(element,style);}}});Element.Methods.readAttribute=Element.Methods.readAttribute.wrap(function(proceed,element,attribute){if(attribute==="title")return element.title;return proceed(element,attribute);});}else if(Prototype.Browser.IE){Element.Methods.getStyle=function(element,style){element=$(element);style=(style=="float"||style=="cssFloat")?"styleFloat":style.camelize();var value=element.style[style];if(!value&&element.currentStyle)value=element.currentStyle[style];if(style=="opacity"){if(value=(element.getStyle("filter")||"").match(/alpha\(opacity=(.*)\)/))if(value[1.0])return parseFloat(value[1.0])/100.0;return 1.0;}if(value=="auto"){if((style=="width"||style=="height")&&(element.getStyle("display")!="none"))return element["offset"+style.capitalize()]+"px";return null;}return value;};Element.Methods.setOpacity=function(element,value){function stripAlpha(filter){return filter.replace(/alpha\([^\)]*\)/gi,"");}element=$(element);var currentStyle=element.currentStyle;if((currentStyle&&!currentStyle.hasLayout)||(!currentStyle&&element.style.zoom=="normal"))element.style.zoom=1.0;var filter=element.getStyle("filter"),style=element.style;if(value==1.0||value===""){(filter=stripAlpha(filter))?style.filter=filter:style.removeAttribute("filter");return element;}else if(value<1.0e-05)value=0.0;style.filter=stripAlpha(filter)+"alpha(opacity="+(value*100.0)+")";return element;};Element._attributeTranslations=(function(){var classProp="className",forProp="for",el=document.createElement("div");el.setAttribute(classProp,"x");if(el.className!=="x"){el.setAttribute("class","x");if(el.className==="x"){classProp="class";}}el=null;el=document.createElement("label");el.setAttribute(forProp,"x");if(el.htmlFor!=="x"){el.setAttribute("htmlFor","x");if(el.htmlFor==="x"){forProp="htmlFor";}}el=null;return{read:{names:{"class":classProp,"className":classProp,"for":forProp,"htmlFor":forProp},values:{_getAttr:function(element,attribute){return element.getAttribute(attribute);},_getAttr2:function(element,attribute){return element.getAttribute(attribute,2.0);},_getAttrNode:function(element,attribute){var node=element.getAttributeNode(attribute);return node?node.value:"";},_getEv:(function(){var el=document.createElement("div"),f;el.onclick=Prototype.emptyFunction;var value=el.getAttribute("onclick");if(String(value).indexOf("{")>-1.0){f=function(element,attribute){attribute=element.getAttribute(attribute);if(!attribute)return null;attribute=attribute.toString();attribute=attribute.split("{")[1.0];attribute=attribute.split("}")[0.0];return attribute.strip();};}else if(value===""){f=function(element,attribute){attribute=element.getAttribute(attribute);if(!attribute)return null;return attribute.strip();};}el=null;return f;})(),_flag:function(element,attribute){return $(element).hasAttribute(attribute)?attribute:null;},style:function(element){return element.style.cssText.toLowerCase();},title:function(element){return element.title;}}}};})();Element._attributeTranslations.write={names:Object.extend({cellpadding:"cellPadding",cellspacing:"cellSpacing"},Element._attributeTranslations.read.names),values:{checked:function(element,value){element.checked=!!value;},style:function(element,value){element.style.cssText=value?value:"";}}};Element._attributeTranslations.has={};$w("colSpan rowSpan vAlign dateTime accessKey tabIndex encType maxLength readOnly longDesc frameBorder").each(function(attr){Element._attributeTranslations.write.names[attr.toLowerCase()]=attr;Element._attributeTranslations.has[attr.toLowerCase()]=attr;});(function(v){Object.extend(v,{href:v._getAttr2,src:v._getAttr2,type:v._getAttr,action:v._getAttrNode,disabled:v._flag,checked:v._flag,readonly:v._flag,multiple:v._flag,onload:v._getEv,onunload:v._getEv,onclick:v._getEv,ondblclick:v._getEv,onmousedown:v._getEv,onmouseup:v._getEv,onmouseover:v._getEv,onmousemove:v._getEv,onmouseout:v._getEv,onfocus:v._getEv,onblur:v._getEv,onkeypress:v._getEv,onkeydown:v._getEv,onkeyup:v._getEv,onsubmit:v._getEv,onreset:v._getEv,onselect:v._getEv,onchange:v._getEv});})(Element._attributeTranslations.read.values);if(Prototype.BrowserFeatures.ElementExtensions){(function(){function _descendants(element){var nodes=element.getElementsByTagName("*"),results=[];for(var i=0.0,node;node=nodes[i];i++)if(node.tagName!=="!")results.push(node);return results;}Element.Methods.down=function(element,expression,index){element=$(element);if(arguments.length==1.0)return element.firstDescendant();return Object.isNumber(expression)?_descendants(element)[expression]:Element.select(element,expression)[index||0.0];};})();}}else if(Prototype.Browser.Gecko&&/rv:1\.8\.0/.test(navigator.userAgent)){Element.Methods.setOpacity=function(element,value){element=$(element);element.style.opacity=(value==1.0)?0.999999:(value==="")?"":(value<1.0e-05)?0.0:value;return element;};}else if(Prototype.Browser.WebKit){Element.Methods.setOpacity=function(element,value){element=$(element);element.style.opacity=(value==1.0||value==="")?"":(value<1.0e-05)?0.0:value;if(value==1.0)if(element.tagName.toUpperCase()=="IMG"&&element.width){element.width++;element.width--;}else try {var n=document.createTextNode(" ");element.appendChild(n);element.removeChild(n);} catch(e){}return element;};}if("outerHTML"in document.documentElement){Element.Methods.replace=function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();if(Object.isElement(content)){element.parentNode.replaceChild(content,element);return element;}content=Object.toHTML(content);var parent=element.parentNode,tagName=parent.tagName.toUpperCase();if(Element._insertionTranslations.tags[tagName]){var nextSibling=element.next(),fragments=Element._getContentFromAnonymousElement(tagName,content.stripScripts());parent.removeChild(element);if(nextSibling)fragments.each(function(node){parent.insertBefore(node,nextSibling);});else fragments.each(function(node){parent.appendChild(node);});}else element.outerHTML=content.stripScripts();content.evalScripts.bind(content).defer();return element;};}Element._returnOffset=function(l,t){var result=[l,t];result.left=l;result.top=t;return result;};Element._getContentFromAnonymousElement=function(tagName,html,force){var div=new Element("div"),t=Element._insertionTranslations.tags[tagName];var workaround=false;if(t)workaround=true;else if(force){workaround=true;t=["","",0.0];}if(workaround){div.innerHTML="\u0026nbsp;"+t[0.0]+html+t[1.0];div.removeChild(div.firstChild);for(var i=t[2.0];i--;){div=div.firstChild;}}else{div.innerHTML=html;}return $A(div.childNodes);};Element._insertionTranslations={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:["\u003Ctable\u003E","\u003C/table\u003E",1.0],TBODY:["\u003Ctable\u003E\u003Ctbody\u003E","\u003C/tbody\u003E\u003C/table\u003E",2.0],TR:["\u003Ctable\u003E\u003Ctbody\u003E\u003Ctr\u003E","\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E",3.0],TD:["\u003Ctable\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd\u003E","\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E",4.0],SELECT:["\u003Cselect\u003E","\u003C/select\u003E",1.0]}};(function(){var tags=Element._insertionTranslations.tags;Object.extend(tags,{THEAD:tags.TBODY,TFOOT:tags.TBODY,TH:tags.TD});})();Element.Methods.Simulated={hasAttribute:function(element,attribute){attribute=Element._attributeTranslations.has[attribute]||attribute;var node=$(element).getAttributeNode(attribute);return!!(node&&node.specified);}};Element.Methods.ByTag={};Object.extend(Element,Element.Methods);(function(div){if(!Prototype.BrowserFeatures.ElementExtensions&&div.__proto__){window.HTMLElement={};window.HTMLElement.prototype=div.__proto__;Prototype.BrowserFeatures.ElementExtensions=true;}div=null;})(document.createElement("div"));Element.extend=(function(){function checkDeficiency(tagName){if(typeof window.Element!="undefined"){var proto=window.Element.prototype;if(proto){var id="_"+(Math.random()+"").slice(2.0),el=document.createElement(tagName);proto[id]="x";var isBuggy=(el[id]!=="x");delete proto[id];el=null;return isBuggy;}}return false;}function extendElementWith(element,methods){for(var property in methods){var value=methods[property];if(Object.isFunction(value)&&!(property in element))element[property]=value.methodize();}}var HTMLOBJECTELEMENT_PROTOTYPE_BUGGY=checkDeficiency("object");if(Prototype.BrowserFeatures.SpecificElementExtensions){if(HTMLOBJECTELEMENT_PROTOTYPE_BUGGY){return function(element){if(element&&typeof element._extendedByPrototype=="undefined"){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()]);}}return element;};}return Prototype.K;}var Methods={},ByTag=Element.Methods.ByTag;var extend=Object.extend(function(element){if(!element||typeof element._extendedByPrototype!="undefined"||element.nodeType!=1.0||element==window)return element;var methods=Object.clone(Methods),tagName=element.tagName.toUpperCase();if(ByTag[tagName])Object.extend(methods,ByTag[tagName]);extendElementWith(element,methods);element._extendedByPrototype=Prototype.emptyFunction;return element;},{refresh:function(){if(!Prototype.BrowserFeatures.ElementExtensions){Object.extend(Methods,Element.Methods);Object.extend(Methods,Element.Methods.Simulated);}}});extend.refresh();return extend;})();if(document.documentElement.hasAttribute){Element.hasAttribute=function(element,attribute){return element.hasAttribute(attribute);};}else{Element.hasAttribute=Element.Methods.Simulated.hasAttribute;}Element.addMethods=function(methods){var F=Prototype.BrowserFeatures,T=Element.Methods.ByTag;if(!methods){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)});}if(arguments.length==2.0){var tagName=methods;methods=arguments[1.0];}if(!tagName)Object.extend(Element.Methods,methods||{});else{if(Object.isArray(tagName))tagName.each(extend);else extend(tagName);}function extend(tagName){tagName=tagName.toUpperCase();if(!Element.Methods.ByTag[tagName])Element.Methods.ByTag[tagName]={};Object.extend(Element.Methods.ByTag[tagName],methods);}function copy(methods,destination,onlyIfAbsent){onlyIfAbsent=onlyIfAbsent||false;for(var property in methods){var value=methods[property];if(!Object.isFunction(value))continue;if(!onlyIfAbsent||!(property in destination))destination[property]=value.methodize();}}function 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;}var elementPrototype=window.HTMLElement?HTMLElement.prototype:Element.prototype;if(F.ElementExtensions){copy(Element.Methods,elementPrototype);copy(Element.Methods.Simulated,elementPrototype,true);}if(F.SpecificElementExtensions){for(var tag in Element.Methods.ByTag){var klass=findDOMClass(tag);if(Object.isUndefined(klass))continue;copy(T[tag],klass.prototype);}}Object.extend(Element,Element.Methods);delete Element.ByTag;if(Element.extend.refresh)Element.extend.refresh();Element.cache={};};document.viewport={getDimensions:function(){return{width:this.getWidth(),height:this.getHeight()};},getScrollOffsets:function(){return Element._returnOffset(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop);}};(function(viewport){var B=Prototype.Browser,doc=document,element,property={};function getRootElement(){if(B.WebKit&&!doc.evaluate)return document;if(B.Opera&&window.parseFloat(window.opera.version())<9.5)return document.body;return document.documentElement;}function define(D){if(!element)element=getRootElement();property[D]="client"+D;viewport["get"+D]=function(){return element[property[D]];};return viewport["get"+D]();}viewport.getWidth=define.curry("Width");viewport.getHeight=define.curry("Height");})(document.viewport);Element.Storage={UID:1.0};Element.addMethods({getStorage:function(element){if(!(element=$(element)))return;var uid;if(element===window){uid=0.0;}else{if(typeof element._prototypeUID==="undefined")element._prototypeUID=Element.Storage.UID++;uid=element._prototypeUID;}if(!Element.Storage[uid])Element.Storage[uid]=$H();return Element.Storage[uid];},store:function(element,key,value){if(!(element=$(element)))return;if(arguments.length===2.0){Element.getStorage(element).update(key);}else{Element.getStorage(element).set(key,value);}return element;},retrieve:function(element,key,defaultValue){if(!(element=$(element)))return;var hash=Element.getStorage(element),value=hash.get(key);if(Object.isUndefined(value)){hash.set(key,defaultValue);value=defaultValue;}return value;},clone:function(element,deep){if(!(element=$(element)))return;var clone=element.cloneNode(deep);clone._prototypeUID=void 0.0;if(deep){var descendants=Element.select(clone,"*"),i=descendants.length;while(i--){descendants[i]._prototypeUID=void 0.0;}}return Element.extend(clone);},purge:function(element){if(!(element=$(element)))return;var purgeElement=Element._purgeElement;purgeElement(element);var descendants=element.getElementsByTagName("*"),i=descendants.length;while(i--)purgeElement(descendants[i]);return null;}});(function(){function toDecimal(pctString){var match=pctString.match(/^(\d+)%?$/i);if(!match)return null;return(Number(match[1.0])/100.0);}function getPixelValue(value,property,context){var element=null;if(Object.isElement(value)){element=value;value=element.getStyle(property);}if(value===null){return null;}if(/^(?:-)?\d+(\.\d+)?(px)?$/i.test(value)){return window.parseFloat(value);}var 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.0;value=element.style.pixelLeft;element.style.left=style;element.runtimeStyle.left=rStyle;return value;}if(element&&isPercentage){context=context||element.parentNode;var decimal=toDecimal(value);var whole=null;var position=element.getStyle("position");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");}}return(whole===null)?0.0:whole*decimal;}return 0.0;}function toCSSPixels(number){if(Object.isString(number)&&number.endsWith("px")){return number;}return number+"px";}function isDisplayed(element){var originalElement=element;while(element&&element.parentNode){var display=element.getStyle("display");if(display==="none"){return false;}element=$(element.parentNode);}return true;}var hasLayout=Prototype.K;if("currentStyle"in document.documentElement){hasLayout=function(element){if(!element.currentStyle.hasLayout){element.style.zoom=1.0;}return element;};}function cssNameFor(key){if(key.include("border"))key=key+"-width";return key.camelize();}Element.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=true;this._begin();Element.Layout.PROPERTIES.each(this._compute,this);this._end();this._preComputing=false;}},_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._prepared)return;var element=this.element;if(isDisplayed(element)){this._prepared=true;return;}var 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=element.getStyle("position"),width=element.getStyle("width");if(width==="0px"||width===null){element.style.display="block";width=element.getStyle("width");}var context=(position==="fixed")?document.viewport:element.parentNode;element.setStyle({position:"absolute",visibility:"hidden",display:"block"});var positionedWidth=element.getStyle("width");var newWidth;if(width&&(positionedWidth===width)){newWidth=getPixelValue(element,"width",context);}else if(position==="absolute"||position==="fixed"){newWidth=getPixelValue(element,"width",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");}element.setStyle({width:newWidth+"px"});this._prepared=true;},_end:function(){var element=this.element;var originalStyles=element.retrieve("prototype_original_styles");element.store("prototype_original_styles",null);element.setStyle(originalStyles);this._prepared=false;},_compute:function(property){var COMPUTATIONS=Element.Layout.COMPUTATIONS;if(!(property in COMPUTATIONS)){throw"Property not found.";}return this._set(property,COMPUTATIONS[property].call(this,this.element));},toObject:function(){var args=$A(arguments);var keys=(args.length===0.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.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"#\u003CElement.Layout\u003E";}});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.0){if(!this._preComputing)this._end();return 0.0;}var 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.0){if(!this._preComputing)this._end();return 0.0;}var bLeft=this.get("border-left"),bRight=this.get("border-right");var pLeft=this.get("padding-left"),pRight=this.get("padding-right");if(!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.0)return 0.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.0)return 0.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();}});}Element.Offset=Class.create({initialize:function(left,top){this.left=left.round();this.top=top.round();this[0.0]=this.left;this[1.0]=this.top;},relativeTo:function(offset){return new Element.Offset(this.left-offset.left,this.top-offset.top);},inspect:function(){return"#\u003CElement.Offset left: #{left} top: #{top}\u003E".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);}function measure(element,property){return $(element).getLayout().get(property);}function getDimensions(element){element=$(element);var display=Element.getStyle(element,"display");if(display&&display!=="none"){return{width:element.offsetWidth,height:element.offsetHeight};}var style=element.style;var originalStyles={visibility:style.visibility,position:style.position,display:style.display};var newStyles={visibility:"hidden",display:"block"};if(originalStyles.position!=="fixed")newStyles.position="absolute";Element.setStyle(element,newStyles);var dimensions={width:element.offsetWidth,height:element.offsetHeight};Element.setStyle(element,originalStyles);return dimensions;}function getOffsetParent(element){element=$(element);if(isDocument(element)||isDetached(element)||isBody(element)||isHtml(element))return $(document.body);var isInline=(Element.getStyle(element,"display")==="inline");if(!isInline&&element.offsetParent)return $(element.offsetParent);while((element=element.parentNode)&&element!==document.body){if(Element.getStyle(element,"position")!=="static"){return isHtml(element)?$(document.body):$(element);}}return $(document.body);}function cumulativeOffset(element){element=$(element);var valueT=0.0,valueL=0.0;if(element.parentNode){do {valueT+=element.offsetTop||0.0;valueL+=element.offsetLeft||0.0;element=element.offsetParent;} while(element);}return new Element.Offset(valueL,valueT);}function positionedOffset(element){element=$(element);var layout=element.getLayout();var valueT=0.0,valueL=0.0;do {valueT+=element.offsetTop||0.0;valueL+=element.offsetLeft||0.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-top");valueT-=layout.get("margin-left");return new Element.Offset(valueL,valueT);}function cumulativeScrollOffset(element){var valueT=0.0,valueL=0.0;do {valueT+=element.scrollTop||0.0;valueL+=element.scrollLeft||0.0;element=element.parentNode;} while(element);return new Element.Offset(valueL,valueT);}function viewportOffset(forElement){element=$(element);var valueT=0.0,valueL=0.0,docBody=document.body;var element=forElement;do {valueT+=element.offsetTop||0.0;valueL+=element.offsetLeft||0.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.0;valueL-=element.scrollLeft||0.0;}} while(element=element.parentNode);return new Element.Offset(valueL,valueT);}function absolutize(element){element=$(element);if(Element.getStyle(element,"position")==="absolute"){return element;}var 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",{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;}function relativize(element){element=$(element);if(Element.getStyle(element,"position")==="relative"){return element;}var originalStyles=element.retrieve("prototype_absolutize_original_styles");if(originalStyles)element.setStyle(originalStyles);return element;}if(Prototype.Browser.IE){getOffsetParent=getOffsetParent.wrap(function(proceed,element){element=$(element);if(isDocument(element)||isDetached(element)||isBody(element)||isHtml(element))return $(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,0.0);var position=element.getStyle("position");if(position!=="static")return proceed(element);var offsetParent=element.getOffsetParent();if(offsetParent&&offsetParent.getStyle("position")==="fixed")hasLayout(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.0,valueL=0.0;do {valueT+=element.offsetTop||0.0;valueL+=element.offsetLeft||0.0;if(element.offsetParent==document.body)if(Element.getStyle(element,"position")=="absolute")break;element=element.offsetParent;} while(element);return new Element.Offset(valueL,valueT);};}Element.addMethods({getLayout:getLayout,measure:measure,getDimensions:getDimensions,getOffsetParent:getOffsetParent,cumulativeOffset:cumulativeOffset,positionedOffset:positionedOffset,cumulativeScrollOffset:cumulativeScrollOffset,viewportOffset:viewportOffset,absolutize:absolutize,relativize:relativize});function isBody(element){return element.nodeName.toUpperCase()==="BODY";}function isHtml(element){return element.nodeName.toUpperCase()==="HTML";}function isDocument(element){return element.nodeType===Node.DOCUMENT_NODE;}function isDetached(element){return element!==document.body&&!Element.descendantOf(element,document.body);}if("getBoundingClientRect"in document.documentElement){Element.addMethods({viewportOffset:function(element){element=$(element);if(isDetached(element))return new Element.Offset(0.0,0.0);var rect=element.getBoundingClientRect(),docEl=document.documentElement;return new Element.Offset(rect.left-docEl.clientLeft,rect.top-docEl.clientTop);}});}})();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.");}function match(){throw new Error("Method \"Prototype.Selector.match\" must be defined.");}function find(elements,expression,index){index=index||0.0;var match=Prototype.Selector.match,length=elements.length,matchIndex=0.0,i;for(i=0.0;i<length;i++){if(match(elements[i],expression)&&index==matchIndex++){return Element.extend(elements[i]);}}}function extendElements(elements){for(var i=0.0,length=elements.length;i<length;i++){Element.extend(elements[i]);}return elements;}var K=Prototype.K;return{select:select,match:match,find:find,extendElements:(Element.extend===K)?K:extendElements,extendElement:Element.extend};})();(function(){var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,done=0.0,toString=Object.prototype.toString,hasDuplicate=false,baseHasDuplicate=true;[0.0,0.0].sort(function(){baseHasDuplicate=false;return 0.0;});var Sizzle=function(selector,context,results,seed){results=results||[];var origContext=context=context||document;if(context.nodeType!==1.0&&context.nodeType!==9.0){return [];}if(!selector||typeof selector!=="string"){return results;}var parts=[],m,set,checkSet,check,mode,extra,prune=true,contextXML=isXML(context),soFar=selector;while((chunker.exec(""),m=chunker.exec(soFar))!==null){soFar=m[3.0];parts.push(m[1.0]);if(m[2.0]){extra=m[3.0];break;}}if(parts.length>1.0&&origPOS.exec(selector)){if(parts.length===2.0&&Expr.relative[parts[0.0]]){set=posProcess(parts[0.0]+parts[1.0],context);}else{set=Expr.relative[parts[0.0]]?[context]:Sizzle(parts.shift(),context);while(parts.length){selector=parts.shift();if(Expr.relative[selector])selector+=parts.shift();set=posProcess(selector,set);}}}else{if(!seed&&parts.length>1.0&&context.nodeType===9.0&&!contextXML&&Expr.match.ID.test(parts[0.0])&&!Expr.match.ID.test(parts[parts.length-1.0])){var ret=Sizzle.find(parts.shift(),context,contextXML);context=ret.expr?Sizzle.filter(ret.expr,ret.set)[0.0]:ret.set[0.0];}if(context){var ret=seed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop(),parts.length===1.0&&(parts[0.0]==="~"||parts[0.0]==="+")&&context.parentNode?context.parentNode:context,contextXML);set=ret.expr?Sizzle.filter(ret.expr,ret.set):ret.set;if(parts.length>0.0){checkSet=makeArray(set);}else{prune=false;}while(parts.length){var cur=parts.pop(),pop=cur;if(!Expr.relative[cur]){cur="";}else{pop=parts.pop();}if(pop==null){pop=context;}Expr.relative[cur](checkSet,pop,contextXML);}}else{checkSet=parts=[];}}if(!checkSet){checkSet=set;}if(!checkSet){throw"Syntax error, unrecognized expression: "+(cur||selector);}if(toString.call(checkSet)==="[object Array]"){if(!prune){results.push.apply(results,checkSet);}else if(context&&context.nodeType===1.0){for(var i=0.0;checkSet[i]!=null;i++){if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1.0&&contains(context,checkSet[i]))){results.push(set[i]);}}}else{for(var i=0.0;checkSet[i]!=null;i++){if(checkSet[i]&&checkSet[i].nodeType===1.0){results.push(set[i]);}}}}else{makeArray(checkSet,results);}if(extra){Sizzle(extra,origContext,results,seed);Sizzle.uniqueSort(results);}return results;};Sizzle.uniqueSort=function(results){if(sortOrder){hasDuplicate=baseHasDuplicate;results.sort(sortOrder);if(hasDuplicate){for(var i=1.0;i<results.length;i++){if(results[i]===results[i-1.0]){results.splice(i--,1.0);}}}}return results;};Sizzle.matches=function(expr,set){return Sizzle(expr,null,null,set);};Sizzle.find=function(expr,context,isXML){var set,match;if(!expr){return [];}for(var i=0.0,l=Expr.order.length;i<l;i++){var type=Expr.order[i],match;if((match=Expr.leftMatch[type].exec(expr))){var left=match[1.0];match.splice(1.0,1.0);if(left.substr(left.length-1.0)!=="\\"){match[1.0]=(match[1.0]||"").replace(/\\/g,"");set=Expr.find[type](match,context,isXML);if(set!=null){expr=expr.replace(Expr.match[type],"");break;}}}}if(!set){set=context.getElementsByTagName("*");}return{set:set,expr:expr};};Sizzle.filter=function(expr,set,inplace,not){var old=expr,result=[],curLoop=set,match,anyFound,isXMLFilter=set&&set[0.0]&&isXML(set[0.0]);while(expr&&set.length){for(var type in Expr.filter){if((match=Expr.match[type].exec(expr))!=null){var filter=Expr.filter[type],found,item;anyFound=false;if(curLoop==result){result=[];}if(Expr.preFilter[type]){match=Expr.preFilter[type](match,curLoop,inplace,result,not,isXMLFilter);if(!match){anyFound=found=true;}else if(match===true){continue;}}if(match){for(var i=0.0;(item=curLoop[i])!=null;i++){if(item){found=filter(item,match,i,curLoop);var pass=not^!!found;if(inplace&&found!=null){if(pass){anyFound=true;}else{curLoop[i]=false;}}else if(pass){result.push(item);anyFound=true;}}}}if(found!==undefined){if(!inplace){curLoop=result;}expr=expr.replace(Expr.match[type],"");if(!anyFound){return [];}break;}}}if(expr==old){if(anyFound==null){throw"Syntax error, unrecognized expression: "+expr;}else{break;}}old=expr;}return curLoop;};var Expr=Sizzle.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(elem){return elem.getAttribute("href");}},relative:{"+":function(checkSet,part,isXML){var isPartStr=typeof part==="string",isTag=isPartStr&&!/\W/.test(part),isPartStrNotTag=isPartStr&&!isTag;if(isTag&&!isXML){part=part.toUpperCase();}for(var i=0.0,l=checkSet.length,elem;i<l;i++){if((elem=checkSet[i])){while((elem=elem.previousSibling)&&elem.nodeType!==1.0);checkSet[i]=isPartStrNotTag||elem&&elem.nodeName===part?elem||false:elem===part;}}if(isPartStrNotTag){Sizzle.filter(part,checkSet,true);}},"\u003E":function(checkSet,part,isXML){var isPartStr=typeof part==="string";if(isPartStr&&!/\W/.test(part)){part=isXML?part:part.toUpperCase();for(var i=0.0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){var parent=elem.parentNode;checkSet[i]=parent.nodeName===part?parent:false;}}}else{for(var i=0.0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){checkSet[i]=isPartStr?elem.parentNode:elem.parentNode===part;}}if(isPartStr){Sizzle.filter(part,checkSet,true);}}},"":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck;if(!/\W/.test(part)){var nodeCheck=part=isXML?part:part.toUpperCase();checkFn=dirNodeCheck;}checkFn("parentNode",part,doneName,checkSet,nodeCheck,isXML);},"~":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck;if(typeof part==="string"&&!/\W/.test(part)){var nodeCheck=part=isXML?part:part.toUpperCase();checkFn=dirNodeCheck;}checkFn("previousSibling",part,doneName,checkSet,nodeCheck,isXML);}},find:{ID:function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1.0]);return m?[m]:[];}},NAME:function(match,context,isXML){if(typeof context.getElementsByName!=="undefined"){var ret=[],results=context.getElementsByName(match[1.0]);for(var i=0.0,l=results.length;i<l;i++){if(results[i].getAttribute("name")===match[1.0]){ret.push(results[i]);}}return ret.length===0.0?null:ret;}},TAG:function(match,context){return context.getElementsByTagName(match[1.0]);}},preFilter:{CLASS:function(match,curLoop,inplace,result,not,isXML){match=" "+match[1.0].replace(/\\/g,"")+" ";if(isXML){return match;}for(var i=0.0,elem;(elem=curLoop[i])!=null;i++){if(elem){if(not^(elem.className&&(" "+elem.className+" ").indexOf(match)>=0.0)){if(!inplace)result.push(elem);}else if(inplace){curLoop[i]=false;}}}return false;},ID:function(match){return match[1.0].replace(/\\/g,"");},TAG:function(match,curLoop){for(var i=0.0;curLoop[i]===false;i++);return curLoop[i]&&isXML(curLoop[i])?match[1.0]:match[1.0].toUpperCase();},CHILD:function(match){if(match[1.0]=="nth"){var test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(match[2.0]=="even"&&"2n"||match[2.0]=="odd"&&"2n+1"||!/\D/.test(match[2.0])&&"0n+"+match[2.0]||match[2.0]);match[2.0]=(test[1.0]+(test[2.0]||1.0))-0.0;match[3.0]=test[3.0]-0.0;}match[0.0]=done++;return match;},ATTR:function(match,curLoop,inplace,result,not,isXML){var name=match[1.0].replace(/\\/g,"");if(!isXML&&Expr.attrMap[name]){match[1.0]=Expr.attrMap[name];}if(match[2.0]==="~="){match[4.0]=" "+match[4.0]+" ";}return match;},PSEUDO:function(match,curLoop,inplace,result,not){if(match[1.0]==="not"){if((chunker.exec(match[3.0])||"").length>1.0||/^\w/.test(match[3.0])){match[3.0]=Sizzle(match[3.0],null,null,curLoop);}else{var ret=Sizzle.filter(match[3.0],curLoop,inplace,true^not);if(!inplace){result.push.apply(result,ret);}return false;}}else if(Expr.match.POS.test(match[0.0])||Expr.match.CHILD.test(match[0.0])){return true;}return match;},POS:function(match){match.unshift(true);return match;}},filters:{enabled:function(elem){return elem.disabled===false&&elem.type!=="hidden";},disabled:function(elem){return elem.disabled===true;},checked:function(elem){return elem.checked===true;},selected:function(elem){elem.parentNode.selectedIndex;return elem.selected===true;},parent:function(elem){return!!elem.firstChild;},empty:function(elem){return!elem.firstChild;},has:function(elem,i,match){return!!Sizzle(match[3.0],elem).length;},header:function(elem){return/h\d/i.test(elem.nodeName);},text:function(elem){return"text"===elem.type;},radio:function(elem){return"radio"===elem.type;},checkbox:function(elem){return"checkbox"===elem.type;},file:function(elem){return"file"===elem.type;},password:function(elem){return"password"===elem.type;},submit:function(elem){return"submit"===elem.type;},image:function(elem){return"image"===elem.type;},reset:function(elem){return"reset"===elem.type;},button:function(elem){return"button"===elem.type||elem.nodeName.toUpperCase()==="BUTTON";},input:function(elem){return/input|select|textarea|button/i.test(elem.nodeName);}},setFilters:{first:function(elem,i){return i===0.0;},last:function(elem,i,match,array){return i===array.length-1.0;},even:function(elem,i){return i%2.0===0.0;},odd:function(elem,i){return i%2.0===1.0;},lt:function(elem,i,match){return i<match[3.0]-0.0;},gt:function(elem,i,match){return i>match[3.0]-0.0;},nth:function(elem,i,match){return match[3.0]-0.0==i;},eq:function(elem,i,match){return match[3.0]-0.0==i;}},filter:{PSEUDO:function(elem,match,i,array){var name=match[1.0],filter=Expr.filters[name];if(filter){return filter(elem,i,match,array);}else if(name==="contains"){return(elem.textContent||elem.innerText||"").indexOf(match[3.0])>=0.0;}else if(name==="not"){var not=match[3.0];for(var i=0.0,l=not.length;i<l;i++){if(not[i]===elem){return false;}}return true;}},CHILD:function(elem,match){var type=match[1.0],node=elem;switch(type){case "only":case "first":while((node=node.previousSibling)){if(node.nodeType===1.0)return false;}if(type=="first")return true;node=elem;case "last":while((node=node.nextSibling)){if(node.nodeType===1.0)return false;}return true;case "nth":var first=match[2.0],last=match[3.0];if(first==1.0&&last==0.0){return true;}var doneName=match[0.0],parent=elem.parentNode;if(parent&&(parent.sizcache!==doneName||!elem.nodeIndex)){var count=0.0;for(node=parent.firstChild;node;node=node.nextSibling){if(node.nodeType===1.0){node.nodeIndex=++count;}}parent.sizcache=doneName;}var diff=elem.nodeIndex-last;if(first==0.0){return diff==0.0;}else{return(diff%first==0.0&&diff/first>=0.0);}}},ID:function(elem,match){return elem.nodeType===1.0&&elem.getAttribute("id")===match;},TAG:function(elem,match){return(match==="*"&&elem.nodeType===1.0)||elem.nodeName===match;},CLASS:function(elem,match){return(" "+(elem.className||elem.getAttribute("class"))+" ").indexOf(match)>-1.0;},ATTR:function(elem,match){var name=match[1.0],result=Expr.attrHandle[name]?Expr.attrHandle[name](elem):elem[name]!=null?elem[name]:elem.getAttribute(name),value=result+"",type=match[2.0],check=match[4.0];return result==null?type==="!=":type==="="?value===check:type==="*="?value.indexOf(check)>=0.0:type==="~="?(" "+value+" ").indexOf(check)>=0.0:!check?value&&result!==false:type==="!="?value!=check:type==="^="?value.indexOf(check)===0.0:type==="$="?value.substr(value.length-check.length)===check:type==="|="?value===check||value.substr(0.0,check.length+1.0)===check+"-":false;},POS:function(elem,match,i,array){var name=match[2.0],filter=Expr.setFilters[name];if(filter){return filter(elem,i,match,array);}}}};var origPOS=Expr.match.POS;for(var type in Expr.match){Expr.match[type]=new RegExp(Expr.match[type].source+/(?![^\[]*\])(?![^\(]*\))/.source);Expr.leftMatch[type]=new RegExp(/(^(?:.|\r|\n)*?)/.source+Expr.match[type].source);}var makeArray=function(array,results){array=Array.prototype.slice.call(array,0.0);if(results){results.push.apply(results,array);return results;}return array;};try {Array.prototype.slice.call(document.documentElement.childNodes,0.0);} catch(e){makeArray=function(array,results){var ret=results||[];if(toString.call(array)==="[object Array]"){Array.prototype.push.apply(ret,array);}else{if(typeof array.length==="number"){for(var i=0.0,l=array.length;i<l;i++){ret.push(array[i]);}}else{for(var i=0.0;array[i];i++){ret.push(array[i]);}}}return ret;};}var sortOrder;if(document.documentElement.compareDocumentPosition){sortOrder=function(a,b){if(!a.compareDocumentPosition||!b.compareDocumentPosition){if(a==b){hasDuplicate=true;}return 0.0;}var ret=a.compareDocumentPosition(b)&4.0?-1.0:a===b?0.0:1.0;if(ret===0.0){hasDuplicate=true;}return ret;};}else if("sourceIndex"in document.documentElement){sortOrder=function(a,b){if(!a.sourceIndex||!b.sourceIndex){if(a==b){hasDuplicate=true;}return 0.0;}var ret=a.sourceIndex-b.sourceIndex;if(ret===0.0){hasDuplicate=true;}return ret;};}else if(document.createRange){sortOrder=function(a,b){if(!a.ownerDocument||!b.ownerDocument){if(a==b){hasDuplicate=true;}return 0.0;}var aRange=a.ownerDocument.createRange(),bRange=b.ownerDocument.createRange();aRange.setStart(a,0.0);aRange.setEnd(a,0.0);bRange.setStart(b,0.0);bRange.setEnd(b,0.0);var ret=aRange.compareBoundaryPoints(Range.START_TO_END,bRange);if(ret===0.0){hasDuplicate=true;}return ret;};}(function(){var form=document.createElement("div"),id="script"+(new Date()).getTime();form.innerHTML="\u003Ca name='"+id+"'/\u003E";var root=document.documentElement;root.insertBefore(form,root.firstChild);if(!!document.getElementById(id)){Expr.find.ID=function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1.0]);return m?m.id===match[1.0]||typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id").nodeValue===match[1.0]?[m]:undefined:[];}};Expr.filter.ID=function(elem,match){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return elem.nodeType===1.0&&node&&node.nodeValue===match;};}root.removeChild(form);root=form=null;})();(function(){var div=document.createElement("div");div.appendChild(document.createComment(""));if(div.getElementsByTagName("*").length>0.0){Expr.find.TAG=function(match,context){var results=context.getElementsByTagName(match[1.0]);if(match[1.0]==="*"){var tmp=[];for(var i=0.0;results[i];i++){if(results[i].nodeType===1.0){tmp.push(results[i]);}}results=tmp;}return results;};}div.innerHTML="\u003Ca href='#'\u003E\u003C/a\u003E";if(div.firstChild&&typeof div.firstChild.getAttribute!=="undefined"&&div.firstChild.getAttribute("href")!=="#"){Expr.attrHandle.href=function(elem){return elem.getAttribute("href",2.0);};}div=null;})();if(document.querySelectorAll)(function(){var oldSizzle=Sizzle,div=document.createElement("div");div.innerHTML="\u003Cp class='TEST'\u003E\u003C/p\u003E";if(div.querySelectorAll&&div.querySelectorAll(".TEST").length===0.0){return;}Sizzle=function(query,context,extra,seed){context=context||document;if(!seed&&context.nodeType===9.0&&!isXML(context)){try {return makeArray(context.querySelectorAll(query),extra);} catch(e){}}return oldSizzle(query,context,extra,seed);};for(var prop in oldSizzle){Sizzle[prop]=oldSizzle[prop];}div=null;})();if(document.getElementsByClassName&&document.documentElement.getElementsByClassName)(function(){var div=document.createElement("div");div.innerHTML="\u003Cdiv class='test e'\u003E\u003C/div\u003E\u003Cdiv class='test'\u003E\u003C/div\u003E";if(div.getElementsByClassName("e").length===0.0)return;div.lastChild.className="e";if(div.getElementsByClassName("e").length===1.0)return;Expr.order.splice(1.0,0.0,"CLASS");Expr.find.CLASS=function(match,context,isXML){if(typeof context.getElementsByClassName!=="undefined"&&!isXML){return context.getElementsByClassName(match[1.0]);}};div=null;})();function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){var sibDir=dir=="previousSibling"&&!isXML;for(var i=0.0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){if(sibDir&&elem.nodeType===1.0){elem.sizcache=doneName;elem.sizset=i;}elem=elem[dir];var match=false;while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break;}if(elem.nodeType===1.0&&!isXML){elem.sizcache=doneName;elem.sizset=i;}if(elem.nodeName===cur){match=elem;break;}elem=elem[dir];}checkSet[i]=match;}}}function dirCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){var sibDir=dir=="previousSibling"&&!isXML;for(var i=0.0,l=checkSet.length;i<l;i++){var elem=checkSet[i];if(elem){if(sibDir&&elem.nodeType===1.0){elem.sizcache=doneName;elem.sizset=i;}elem=elem[dir];var match=false;while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break;}if(elem.nodeType===1.0){if(!isXML){elem.sizcache=doneName;elem.sizset=i;}if(typeof cur!=="string"){if(elem===cur){match=true;break;}}else if(Sizzle.filter(cur,[elem]).length>0.0){match=elem;break;}}elem=elem[dir];}checkSet[i]=match;}}}var contains=document.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)&16.0;}:function(a,b){return a!==b&&(a.contains?a.contains(b):true);};var isXML=function(elem){return elem.nodeType===9.0&&elem.documentElement.nodeName!=="HTML"||!!elem.ownerDocument&&elem.ownerDocument.documentElement.nodeName!=="HTML";};var posProcess=function(selector,context){var tmpSet=[],later="",match,root=context.nodeType?[context]:context;while((match=Expr.match.PSEUDO.exec(selector))){later+=match[0.0];selector=selector.replace(Expr.match.PSEUDO,"");}selector=Expr.relative[selector]?selector+"*":selector;for(var i=0.0,l=root.length;i<l;i++){Sizzle(selector,root[i],tmpSet);}return Sizzle.filter(later,tmpSet);};window.Sizzle=Sizzle;})();Prototype._original_property=window.Sizzle;(function(engine){var extendElements=Prototype.Selector.extendElements;function select(selector,scope){return extendElements(engine(selector,scope||document));}function match(element,selector){return engine.matches(selector,[element]).length==1.0;}Prototype.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;},serializeElements:function(elements,options){if(typeof options!="object")options={hash:!!options};else if(Object.isUndefined(options.hash))options.hash=true;var key,value,submitted=false,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].push(value);}else result[key]=value;return result;};}else{initial="";accumulator=function(result,key,value){return result+(result?"\u0026":"")+encodeURIComponent(key)+"="+encodeURIComponent(value);};}return 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!==false&&(!submit||key==submit)&&(submitted=true)))){result=accumulator(result,key,value);}}return result;});}};Form.Methods={serialize:function(form,options){return Form.serializeElements(Form.getElements(form),options);},getElements:function(form){var elements=$(form).getElementsByTagName("*"),element,arr=[],serializers=Form.Element.Serializers;for(var i=0.0;element=elements[i];i++){arr.push(element);}return arr.inject([],function(elements,child){if(serializers[child.tagName.toLowerCase()])elements.push(Element.extend(child));return elements;});},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.0,matchingInputs=[],length=inputs.length;i<length;i++){var input=inputs[i];if((typeName&&input.type!=typeName)||(name&&input.name!=name))continue;matchingInputs.push(Element.extend(input));}return 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.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(true);if(params){if(Object.isString(params))params=params.toQueryParams();Object.extend(options.parameters,params);}if(form.hasAttribute("method")&&!options.method)options.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);}}return"";},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)))element.select();} catch(e){}return element;},disable:function(element){element=$(element);element.disabled=true;return element;},enable:function(element){element=$(element);element.disabled=false;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);}}}function inputSelector(element,value){if(Object.isUndefined(value))return element.checked?element.value:null;else element.checked=!!value;}function valueSelector(element,value){if(Object.isUndefined(value))return element.value;else element.value=value;}function select(element,value){if(Object.isUndefined(value))return(element.type==="select-one"?selectOne:selectMany)(element);var opt,currentValue,single=!Object.isArray(value);for(var i=0.0,length=element.length;i<length;i++){opt=element.options[i];currentValue=this.optionValue(opt);if(single){if(currentValue==value){opt.selected=true;return;}}else opt.selected=value.include(currentValue);}}function selectOne(element){var index=element.selectedIndex;return index>=0.0?optionValue(element.options[index]):null;}function selectMany(element){var values,length=element.length;if(!length)return null;for(var i=0.0,values=[];i<length;i++){var opt=element.options[i];if(opt.selected)values.push(optionValue(opt));}return values;}function optionValue(opt){return Element.hasAttribute(opt,"value")?opt.value:opt.text;}return{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")this.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(){var Event={KEY_BACKSPACE:8.0,KEY_TAB:9.0,KEY_RETURN:13.0,KEY_ESC:27.0,KEY_LEFT:37.0,KEY_UP:38.0,KEY_RIGHT:39.0,KEY_DOWN:40.0,KEY_DELETE:46.0,KEY_HOME:36.0,KEY_END:35.0,KEY_PAGEUP:33.0,KEY_PAGEDOWN:34.0,KEY_INSERT:45.0,cache:{}};var docEl=document.documentElement;var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED="onmouseenter"in docEl&&"onmouseleave"in docEl;var isIELegacyEvent=function(event){return false;};if(window.attachEvent){if(window.addEventListener){isIELegacyEvent=function(event){return!(event instanceof window.Event);};}else{isIELegacyEvent=function(event){return true;};}}var _isButton;function _isButtonForDOMEvents(event,code){return event.which?(event.which===code+1.0):(event.button===code);}var legacyButtonMap={0.0:1.0,1.0:4.0,2.0:2.0};function _isButtonForLegacyEvents(event,code){return event.button===legacyButtonMap[code];}function _isButtonForWebKit(event,code){switch(code){case 0.0:return event.which==1.0&&!event.metaKey;case 1.0:return event.which==2.0||(event.which==1.0&&event.metaKey);case 2.0:return event.which==3.0;default:{return false;}}}if(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;}function isLeftClick(event){return _isButton(event,0.0);}function isMiddleClick(event){return _isButton(event,1.0);}function isRightClick(event){return _isButton(event,2.0);}function element(event){event=Event.extend(event);var node=event.target,type=event.type,currentTarget=event.currentTarget;if(currentTarget&&currentTarget.tagName){if(type==="load"||type==="error"||(type==="click"&&currentTarget.tagName.toLowerCase()==="input"&&currentTarget.type==="radio"))node=currentTarget;}if(node.nodeType==Node.TEXT_NODE)node=node.parentNode;return Element.extend(node);}function findElement(event,expression){var element=Event.element(event);if(!expression)return element;while(element){if(Object.isElement(element)&&Prototype.Selector.match(element,expression)){return Element.extend(element);}element=element.parentNode;}}function pointer(event){return{x:pointerX(event),y:pointerY(event)};}function pointerX(event){var docElement=document.documentElement,body=document.body||{scrollLeft:0.0};return event.pageX||(event.clientX+(docElement.scrollLeft||body.scrollLeft)-(docElement.clientLeft||0.0));}function pointerY(event){var docElement=document.documentElement,body=document.body||{scrollTop:0.0};return event.pageY||(event.clientY+(docElement.scrollTop||body.scrollTop)-(docElement.clientTop||0.0));}function stop(event){Event.extend(event);event.preventDefault();event.stopPropagation();event.stopped=true;}Event.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;}}return Element.extend(element);}var additionalMethods={stopPropagation:function(){this.cancelBubble=true;},preventDefault:function(){this.returnValue=false;},inspect:function(){return"[object Event]";}};Event.extend=function(event,element){if(!event)return false;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;}if(window.addEventListener){Event.prototype=window.Event.prototype||document.createEvent("HTMLEvents").__proto__;Object.extend(Event.prototype,methods);}function _createResponder(element,eventName,handler){var registry=Element.retrieve(element,"prototype_event_registry");if(Object.isUndefined(registry)){CACHE.push(element);registry=Element.retrieve(element,"prototype_event_registry",$H());}var respondersForEvent=registry.get(eventName);if(Object.isUndefined(respondersForEvent)){respondersForEvent=[];registry.set(eventName,respondersForEvent);}if(respondersForEvent.pluck("handler").include(handler))return false;var responder;if(eventName.include(":")){responder=function(event){if(Object.isUndefined(event.eventName))return false;if(event.eventName!==eventName)return false;Event.extend(event,element);handler.call(element,event);};}else{if(!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED&&(eventName==="mouseenter"||eventName==="mouseleave")){if(eventName==="mouseenter"||eventName==="mouseleave"){responder=function(event){Event.extend(event,element);var parent=event.relatedTarget;while(parent&&parent!==element){try {parent=parent.parentNode;} catch(e){parent=element;}}if(parent===element)return;handler.call(element,event);};}}else{responder=function(event){Event.extend(event,element);handler.call(element,event);};}}responder.handler=handler;respondersForEvent.push(responder);return responder;}function _destroyCache(){for(var i=0.0,length=CACHE.length;i<length;i++){Event.stopObserving(CACHE[i]);CACHE[i]=null;}}var CACHE=[];if(Prototype.Browser.IE)window.attachEvent("onunload",_destroyCache);if(Prototype.Browser.WebKit)window.addEventListener("unload",Prototype.emptyFunction,false);var _getDOMEventName=Prototype.K,translations={mouseenter:"mouseover",mouseleave:"mouseout"};if(!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED){_getDOMEventName=function(eventName){return(translations[eventName]||eventName);};}function observe(element,eventName,handler){element=$(element);var responder=_createResponder(element,eventName,handler);if(!responder)return element;if(eventName.include(":")){if(element.addEventListener)element.addEventListener("dataavailable",responder,false);else{element.attachEvent("ondataavailable",responder);element.attachEvent("onlosecapture",responder);}}else{var actualEventName=_getDOMEventName(eventName);if(element.addEventListener)element.addEventListener(actualEventName,responder,false);else element.attachEvent("on"+actualEventName,responder);}return element;}function stopObserving(element,eventName,handler){element=$(element);var registry=Element.retrieve(element,"prototype_event_registry");if(!registry)return element;if(!eventName){registry.each(function(pair){var eventName=pair.key;stopObserving(element,eventName);});return element;}var responders=registry.get(eventName);if(!responders)return element;if(!handler){responders.each(function(r){stopObserving(element,eventName,r.handler);});return element;}var i=responders.length,responder;while(i--){if(responders[i].handler===handler){responder=responders[i];break;}}if(!responder)return element;if(eventName.include(":")){if(element.removeEventListener)element.removeEventListener("dataavailable",responder,false);else{element.detachEvent("ondataavailable",responder);element.detachEvent("onlosecapture",responder);}}else{var actualEventName=_getDOMEventName(eventName);if(element.removeEventListener)element.removeEventListener(actualEventName,responder,false);else element.detachEvent("on"+actualEventName,responder);}registry.set(eventName,responders.without(responder));return element;}function fire(element,eventName,memo,bubble){element=$(element);if(Object.isUndefined(bubble))bubble=true;if(element==document&&document.createEvent&&!element.dispatchEvent)element=document.documentElement;var event;if(document.createEvent){event=document.createEvent("HTMLEvents");event.initEvent("dataavailable",bubble,true);}else{event=document.createEventObject();event.eventType=bubble?"ondataavailable":"onlosecapture";}event.eventName=eventName;event.memo=memo||{};if(document.createEvent)element.dispatchEvent(event);else element.fireEvent(event.eventType,event);return Event.extend(event);}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;}return new Event.Handler(element,eventName,selector,callback).start();}Object.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:false});if(window.Event)Object.extend(window.Event,Event);else window.Event=Event;})();(function(){var timer;function fireContentLoadedEvent(){if(document.loaded)return;if(timer)window.clearTimeout(timer);document.loaded=true;document.fire("dom:loaded");}function checkReadyState(){if(document.readyState==="complete"){document.stopObserving("readystatechange",checkReadyState);fireContentLoadedEvent();}}function pollDoScroll(){try {document.documentElement.doScroll("left");} catch(e){timer=pollDoScroll.defer();return;}fireContentLoadedEvent();}if(document.addEventListener){document.addEventListener("DOMContentLoaded",fireContentLoadedEvent,false);}else{document.observe("readystatechange",checkReadyState);if(window==top)timer=pollDoScroll.defer();}Event.observe(window,"load",fireContentLoadedEvent);})();Element.addMethods();Hash.toQueryString=Object.toQueryString;var Toggle={display:Element.toggle};Element.Methods.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:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0.0;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0.0;},within:function(element,x,y){if(this.includeScrollOffsets)return this.withinIncludingScrolloffsets(element,x,y);this.xcomp=x;this.ycomp=y;this.offset=Element.cumulativeOffset(element);return(y>=this.offset[1.0]&&y<this.offset[1.0]+element.offsetHeight&&x>=this.offset[0.0]&&x<this.offset[0.0]+element.offsetWidth);},withinIncludingScrolloffsets:function(element,x,y){var offsetcache=Element.cumulativeScrollOffset(element);this.xcomp=x+offsetcache[0.0]-this.deltaX;this.ycomp=y+offsetcache[1.0]-this.deltaY;this.offset=Element.cumulativeOffset(element);return(this.ycomp>=this.offset[1.0]&&this.ycomp<this.offset[1.0]+element.offsetHeight&&this.xcomp>=this.offset[0.0]&&this.xcomp<this.offset[0.0]+element.offsetWidth);},overlap:function(mode,element){if(!mode)return 0.0;if(mode=="vertical")return((this.offset[1.0]+element.offsetHeight)-this.ycomp)/element.offsetHeight;if(mode=="horizontal")return((this.offset[0.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+" ')]";}instanceMethods.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.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+" ");}))))elements.push(Element.extend(child));}return 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){this.element.className.split(/\s+/).select(function(name){return name.length>0.0;})._each(iterator);},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"#\u003CSelector: "+this.expression+"\u003E";}});Object.extend(Selector,{matchElements:function(elements,expression){var match=Prototype.Selector.match,results=[];for(var i=0.0,length=elements.length;i<length;i++){var element=elements[i];if(match(element,expression)){results.push(Element.extend(element));}}return results;},findElement:function(elements,expression,index){index=index||0.0;var matchIndex=0.0,element;for(var i=0.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);}});})();(function(){if(typeof console==="undefined"){window.console={};}if(!("log"in window.console)){window.console.log=function(){};}var methods=["info","warn","error","trace","dir"];for(var i=0.0,n=methods.length;i<n;++i){var name=methods[i];if(!(name in window.console)){window.console[name]=window.console.log;}}})();String.prototype.parseColor=function(){var color="#";if(this.slice(0.0,4.0)=="rgb("){var cols=this.slice(4.0,this.length-1.0).split(",");var i=0.0;do {color+=parseInt(cols[i]).toColorPart();} while(++i<3.0);}else{if(this.slice(0.0,1.0)=="#"){if(this.length==4.0)for(var i=1.0;i<4.0;i++)color+=(this.charAt(i)+this.charAt(i)).toLowerCase();if(this.length==7.0)color=this.toLowerCase();}}return(color.length==7.0?color:(arguments[0.0]||this));};Element.collectTextNodes=function(element){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3.0?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.0?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.0)+"em"});if(Prototype.Browser.WebKit)window.scrollBy(0.0,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.0)+0.5;},reverse:function(pos){return 1.0-pos;},flicker:function(pos){var pos=((-Math.cos(pos*Math.PI)/4.0)+0.75)+Math.random()/4.0;return pos>1.0?1.0:pos;},wobble:function(pos){return(-Math.cos(pos*Math.PI*(9.0*pos))/2.0)+0.5;},pulse:function(pos,pulses){return(-Math.cos((pos*((pulses||5.0)-0.5)*2.0)*Math.PI)/2.0)+0.5;},spring:function(pos){return 1.0-(Math.cos(pos*4.5*Math.PI)*Math.exp(-pos*6.0));},none:function(pos){return 0.0;},full:function(pos){return 1.0;}},DefaultOptions:{duration:1.0,fps:100.0,sync:false,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.0){child.nodeValue.toArray().each(function(character){element.insertBefore(new Element("span",{style:tagifyStyle}).update(character==" "?String.fromCharCode(160.0):character),child);});Element.remove(child);}});},multiple:function(element,effect){var elements;if(((typeof element=="object")||Object.isFunction(element))&&element.length)elements=element;else elements=$(element).childNodes;var options=Object.extend({speed:0.1,delay:0.0},arguments[2.0]||{});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:0.0]](element,Object.extend({queue:{position:"end",scope:(element.id||"global"),limit:1.0}},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;}effect.startOn+=timestamp;effect.finishOn+=timestamp;if(!effect.options.queue.limit||(this.effects.length<effect.options.queue.limit))this.effects.push(effect);if(!this.interval)this.interval=setInterval(this.loop.bind(this),15.0);},remove:function(effect){this.effects=this.effects.reject(function(e){return e==effect;});if(this.effects.length==0.0){clearInterval(this.interval);this.interval=null;}},loop:function(){var timePos=new Date().getTime();for(var i=0.0,len=this.effects.length;i<len;i++)this.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===false)options.transition=Effect.Transitions.linear;this.options=Object.extend(Object.extend({},Effect.DefaultOptions),options||{});this.currentFrame=0.0;this.state="idle";this.startOn=this.options.delay*1000.0;this.finishOn=this.startOn+(this.options.duration*1000.0);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"])effect.options[eventName+"Internal"](effect);if(effect.options[eventName])effect.options[eventName](effect);}return function(pos){if(this.state==="idle"){this.state="running";dispatch(this,"beforeSetup");if(this.setup)this.setup();dispatch(this,"afterSetup");}if(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)Effect.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;}var 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)Effect.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)if(!Object.isFunction(this[property]))data.set(property,this[property]);return"#\u003CEffect:"+data.inspect()+",options:"+$H(this.options).inspect()+"\u003E";}});Effect.Parallel=Class.create(Effect.Base,{initialize:function(effects){this.effects=effects||[];this.start(arguments[1.0]);},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.0?args[3.0]: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.0},arguments[0.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))this.element.setStyle({zoom:1.0});var options=Object.extend({from:this.element.getOpacity()||0.0,to:1.0},arguments[1.0]||{});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.0,y:0.0,mode:"relative"},arguments[1.0]||{});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.0]||{}));};Effect.Scale=Class.create(Effect.Base,{initialize:function(element,percent){this.element=$(element);if(!this.element)throw Effect._elementDoesNotExistError;var options=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100.0,scaleTo:percent},arguments[2.0]||{});this.start(options);},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;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.0){this.fontSize=parseFloat(fontSize);this.fontSizeType=fontSizeType;}}).bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100.0;this.dims=null;if(this.options.scaleMode=="box")this.dims=[this.element.offsetHeight,this.element.offsetWidth];if(/^content/.test(this.options.scaleMode))this.dims=[this.element.scrollHeight,this.element.scrollWidth];if(!this.dims)this.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)this.element.setStyle({fontSize:this.fontSize*currentScale+this.fontSizeType});this.setDimensions(this.dims[0.0]*currentScale,this.dims[1.0]*currentScale);},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.0])/2.0;var leftd=(width-this.dims[1.0])/2.0;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";}}this.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.0]||{});this.start(options);},setup:function(){if(this.element.getStyle("display")=="none"){this.cancel();return;}this.oldStyle={};if(!this.options.keepBackgroundImage){this.oldStyle.backgroundImage=this.element.getStyle("background-image");this.element.setStyle({backgroundImage:"none"});}if(!this.options.endcolor)this.options.endcolor=this.element.getStyle("background-color").parseColor("#ffffff");if(!this.options.restorecolor)this.options.restorecolor=this.element.getStyle("background-color");this._base=$R(0.0,2.0).map((function(i){return parseInt(this.options.startcolor.slice(i*2.0+1.0,i*2.0+3.0),16.0);}).bind(this));this._delta=$R(0.0,2.0).map((function(i){return parseInt(this.options.endcolor.slice(i*2.0+1.0,i*2.0+3.0),16.0)-this._base[i];}).bind(this));},update:function(position){this.element.setStyle({backgroundColor:$R(0.0,2.0).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.0]||{},scrollOffsets=document.viewport.getScrollOffsets(),elementOffsets=$(element).cumulativeOffset();if(options.offset)elementOffsets[1.0]+=options.offset;return new Effect.Tween(null,scrollOffsets.top,elementOffsets[1.0],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.0)return;effect.element.hide().setStyle({opacity:oldOpacity});}},arguments[1.0]||{});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.0]||{});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.0,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:1.0,beforeSetupInternal:function(effect){Position.absolutize(effect.effects[0.0].element);},afterFinishInternal:function(effect){effect.effects[0.0].element.hide().setStyle(oldStyle);}},arguments[1.0]||{}));};Effect.BlindUp=function(element){element=$(element);element.makeClipping();return new Effect.Scale(element,0.0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(effect){effect.element.hide().undoClipping();}},arguments[1.0]||{}));};Effect.BlindDown=function(element){element=$(element);var elementDimensions=element.getDimensions();return new Effect.Scale(element,100.0,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0.0,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makeClipping().setStyle({height:"0px"}).show();},afterFinishInternal:function(effect){effect.element.undoClipping();}},arguments[1.0]||{}));};Effect.SwitchOff=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();return new Effect.Appear(element,Object.extend({duration:0.4,from:0.0,transition:Effect.Transitions.flicker,afterFinishInternal:function(effect){new Effect.Scale(effect.element,1.0,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(effect){effect.element.makePositioned().makeClipping();},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned().setStyle({opacity:oldOpacity});}});}},arguments[1.0]||{}));};Effect.DropOut=function(element){element=$(element);var oldStyle={top:element.getStyle("top"),left:element.getStyle("left"),opacity:element.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(element,{x:0.0,y:100.0,sync:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:0.5,beforeSetup:function(effect){effect.effects[0.0].element.makePositioned();},afterFinishInternal:function(effect){effect.effects[0.0].element.hide().undoPositioned().setStyle(oldStyle);}},arguments[1.0]||{}));};Effect.Shake=function(element){element=$(element);var options=Object.extend({distance:20.0,duration:0.5},arguments[1.0]||{});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.0,duration:split,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance*2.0,y:0.0,duration:split*2.0,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:distance*2.0,y:0.0,duration:split*2.0,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance*2.0,y:0.0,duration:split*2.0,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:distance*2.0,y:0.0,duration:split*2.0,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance,y:0.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.0,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0.0:1.0,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,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.0]-effect.element.clientHeight)+"px"});},afterFinishInternal:function(effect){effect.element.undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom});}},arguments[1.0]||{}));};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.0:1.0,Object.extend({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100.0,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,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.0]-effect.element.clientHeight)+"px"});},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom});}},arguments[1.0]||{}));};Effect.Squish=function(element){return new Effect.Scale(element,window.opera?1.0:0.0,{restoreAfterFinish:true,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.0]||{});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.0;break;case "top-right":initialMoveX=dims.width;initialMoveY=moveY=0.0;moveX=-dims.width;break;case "bottom-left":initialMoveX=moveX=0.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.0;initialMoveY=dims.height/2.0;moveX=-dims.width/2.0;moveY=-dims.height/2.0;break;}return 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:true,to:1.0,from:0.0,transition:options.opacityTransition}),new Effect.Move(effect.element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition}),new Effect.Scale(effect.element,100.0,{scaleMode:{originalHeight:dims.height,originalWidth:dims.width},sync:true,scaleFrom:window.opera?1.0:0.0,transition:options.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(effect){effect.effects[0.0].element.setStyle({height:"0px"}).show();},afterFinishInternal:function(effect){effect.effects[0.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.0]||{});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 moveX,moveY;switch(options.direction){case "top-left":moveX=moveY=0.0;break;case "top-right":moveX=dims.width;moveY=0.0;break;case "bottom-left":moveX=0.0;moveY=dims.height;break;case "bottom-right":moveX=dims.width;moveY=dims.height;break;case "center":moveX=dims.width/2.0;moveY=dims.height/2.0;break;}return new Effect.Parallel([new Effect.Opacity(element,{sync:true,to:0.0,from:1.0,transition:options.opacityTransition}),new Effect.Scale(element,window.opera?1.0:0.0,{sync:true,transition:options.scaleTransition,restoreAfterFinish:true}),new Effect.Move(element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition})],Object.extend({beforeStartInternal:function(effect){effect.effects[0.0].element.makePositioned().makeClipping();},afterFinishInternal:function(effect){effect.effects[0.0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle);}},options));};Effect.Pulsate=function(element){element=$(element);var options=arguments[1.0]||{},oldOpacity=element.getInlineOpacity(),transition=options.transition||Effect.Transitions.linear,reverser=function(pos){return 1.0-transition((-Math.cos((pos*(options.pulses||5.0)*2.0)*Math.PI)/2.0)+0.5);};return new Effect.Opacity(element,Object.extend(Object.extend({duration:2.0,from:0.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.0,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(effect){new Effect.Scale(element,1.0,{scaleContent:false,scaleY:false,afterFinishInternal:function(effect){effect.element.hide().undoClipping().setStyle(oldStyle);}});}},arguments[1.0]||{}));};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.0]||{});if(!Object.isString(options.style))this.style=$H(options.style);else{if(options.style.include(":"))this.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]="";});};}}this.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.0,2.0).map(function(i){return parseInt(color.slice(i*2.0+1.0,i*2.0+3.0),16.0);});}this.transforms=this.style.map((function(pair){var property=pair[0.0],value=pair[1.0],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))this.element.setStyle({zoom:1.0});}else if(Element.CSS_LENGTH.test(value)){var components=value.match(/^([\+\-]?[0-9\.]+)(.*)$/);value=parseFloat(components[1.0]);unit=(components.length==3.0)?components[2.0]:null;}var originalValue=this.element.getStyle(property);return{style:property.camelize(),originalValue:unit=="color"?parseColor(originalValue):parseFloat(originalValue||0.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--)style[(transform=this.transforms[i]).style]=transform.unit=="color"?"#"+Math.round(transform.originalValue[0.0]+(transform.targetValue[0.0]-transform.originalValue[0.0])*position).toColorPart()+Math.round(transform.originalValue[1.0]+(transform.targetValue[1.0]-transform.originalValue[1.0])*position).toColorPart()+Math.round(transform.originalValue[2.0]+(transform.targetValue[2.0]-transform.originalValue[2.0])*position).toColorPart():(transform.originalValue+(transform.targetValue-transform.originalValue)*position).toFixed(3.0)+(transform.unit===null?"":transform.unit);this.element.setStyle(style,true);}});Effect.Transform=Class.create({initialize:function(tracks){this.tracks=[];this.options=arguments[1.0]||{};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:true},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)style=new Element("div",{style:this}).style;else{String.__parseStyleElement.innerHTML="\u003Cdiv style=\""+this+"\"\u003E\u003C/div\u003E";style=String.__parseStyleElement.childNodes[0.0].style;}Element.CSS_PROPERTIES.each(function(property){if(style[property])styleRules.set(property,style[property]);});if(Prototype.Browser.IE&&this.include("opacity"))styleRules.set("opacity",this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1.0]);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;};}Effect.Methods={morph:function(element,style){element=$(element);new Effect.Morph(element,Object.extend({style:style},arguments[2.0]||{}));return element;},visualEffect:function(element,effect,options){element=$(element);var s=effect.dasherize().camelize(),klass=s.charAt(0.0).toUpperCase()+s.substring(1.0);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.0).toUpperCase()+effect.substring(1.0)](element,options);return element;};});$w("getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles").each(function(f){Effect.Methods[f]=Element[f];});Element.addMethods(Effect.Methods);Effect.DEFAULT_SPEED=350.0;Effect.Replace=function(before,after,options){if(options){options=Object.extend({},options);}else{options={};}var speed="speed"in options?options.speed:("duration"in options?0.0:Effect.DEFAULT_SPEED);delete options.speed;var afterOptions={};for(var i=0.0,n=Effect.Replace.COPIED_OPTIONS.length;i<n;++i){var name=Effect.Replace.COPIED_OPTIONS[i];if(name in options){afterOptions[name]=options[name];}}var morphOptions={};if(options.beforeResize){morphOptions.beforeUpdate=options.beforeResize;}if(options.afterResize){morphOptions.beforeUpdate=options.afterResize;}var effects=[];var beforeDimensions;var beforeMargin;if(before){before=$(before).cleanWhitespace();beforeDimensions=before.getDimensions();var layout=new Element.Layout(before);beforeMargin={right:layout.get("margin-right")||0.0,bottom:layout.get("margin-bottom")||0.0};beforeDimensions.width+=beforeMargin.right+layout.get("margin-left");beforeDimensions.height+=beforeMargin.bottom+layout.get("margin-top");}else{beforeDimensions={width:0.0,height:0.0};beforeMargin={right:0.0,bottom:0.0};}var afterDimensions;var afterMargin;if(after){after=$(after).cleanWhitespace();afterDimensions=after.getDimensions();var layout=new Element.Layout(after);afterMargin={right:layout.get("margin-right")||0.0,bottom:layout.get("margin-bottom")||0.0};afterDimensions.width+=afterMargin.right+layout.get("margin-left");afterDimensions.height+=afterMargin.bottom+layout.get("margin-top");}else{afterDimensions={width:0.0,height:0.0};afterMargin={right:0.0,bottom:0.0};}if(before){effects.push(new Effect.Opacity(before,{from:1.0,to:0.0,sync:true}));var morph=false;var style={};var hdiff=afterDimensions.height-beforeDimensions.height;var distance=150.0;var afterDistance=150.0;if(hdiff>0.0){morph=true;style.marginBottom=(beforeMargin.bottom+hdiff)+"px";if(hdiff>distance)distance=hdiff;}else{if(-hdiff>afterDistance)afterDistance=-hdiff;}var wdiff=afterDimensions.width-beforeDimensions.width;if(wdiff>0.0){morph=true;style.marginRight=(beforeMargin.right+wdiff)+"px";if(wdiff>distance)distance=wdiff;}else{if(-wdiff>afterDistance)afterDistance=-wdiff;}if(speed){options.duration=distance/speed;afterOptions.duration=afterDistance/speed;}else{var duration=options.duration;options.duration=duration*distance/(distance+afterDistance);afterOptions.duration=duration*afterDistance/(distance+afterDistance);}if(morph){effects.push(new Effect.Morph(before,Object.extend({sync:true,style:style},morphOptions)));}delete options.beforeFinish;options.afterFinish=function(){var effects=[];if(after){before.style.display="none";before.style.marginRight=beforeMargin.right+"px";before.style.marginBottom=beforeMargin.bottom+"px";}else{effects.push(new Effect.Morph(before,Object.extend({sync:true,style:{marginRight:(beforeMargin.right-beforeDimensions.width)+"px",marginBottom:(beforeMargin.bottom-beforeDimensions.height)+"px"}},morphOptions)));var afterFinish=afterOptions.afterFinish;afterOptions.afterFinish=function(){before.style.display="none";before.style.marginRight=beforeMargin.right+"px";before.style.marginBottom=beforeMargin.bottom+"px";if(typeof afterFinish=="function"){afterFinish();}};}if(after){after.setOpacity(0.0);effects.push(new Effect.Opacity(after,{from:0.0,to:1.0,sync:true}));var morph=false;var style={};if(hdiff<0.0){morph=true;after.style.marginBottom=(afterMargin.bottom-hdiff)+"px";style.marginBottom=afterMargin.bottom+"px";}if(wdiff<0.0){morph=true;after.style.marginRight=(afterMargin.right-wdiff)+"px";style.marginRight=afterMargin.right+"px";}if(morph){effects.push(new Effect.Morph(after,Object.extend({sync:true,style:style},morphOptions)));}after.style.display="";}new Effect.Parallel(effects,afterOptions);};}else if(after){if(speed){var distance=Math.max(Math.max(afterDimensions.width,afterDimensions.height),150.0);options.duration=distance/speed;}after.style.marginRight=(afterMargin.right-afterDimensions.width)+"px";after.style.marginBottom=(afterMargin.bottom-afterDimensions.height)+"px";effects.push(new Effect.Appear(after,{sync:true}));effects.push(new Effect.Morph(after,Object.extend({sync:true,style:{marginRight:afterMargin.right+"px",marginBottom:afterMargin.bottom+"px"}},morphOptions)));}return new Effect.Parallel(effects,options);};Effect.Replace.COPIED_OPTIONS=["beforeFinish","afterFinish","beforeUpdate","afterUpdate"];if(typeof Control=="undefined")Control={};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))this._observers[event_name].push(observer);}else for(var e in event_name)this.observe(e,event_name[e]);};object.stopObserving=function(event_name,observer){this._objectEventSetup(event_name);if(event_name&&observer)this._observers[event_name]=this._observers[event_name].without(observer);else if(event_name)this._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.0);try {for(var i=0.0;i<this._observers[event_name].length;++i)collected_return_values.push(this._observers[event_name][i].apply(this,args)||null);} catch(e){if(e==$break)return false;else throw e;}return 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.0);args.unshift(this);args.unshift(event_name);object.notify.apply(object,args);}this._objectEventSetup(event_name);var args=$A(arguments).slice(1.0);var collected_return_values=[];try {if(this.options&&this.options[event_name]&&typeof this.options[event_name]=="function")collected_return_values.push(this.options[event_name].apply(this,args)||null);var callbacks_copy=this._observers[event_name];for(var i=0.0;i<callbacks_copy.length;++i)collected_return_values.push(callbacks_copy[i].apply(this,args)||null);} catch(e){if(e==$break)return false;else throw e;}return collected_return_values;};}}};Element.addMethods({observeOnce:function(element,event_name,outer_callback){var inner_callback=function(){outer_callback.apply(this,arguments);Element.stopObserving(element,event_name,inner_callback);};Element.observe(element,event_name,inner_callback);}});(function(){function wheel(event){var delta,element,custom_event;if(event.wheelDelta){delta=event.wheelDelta/120.0;}else if(event.detail){delta=-event.detail/3.0;}if(!delta){return;}element=Event.extend(event).target;element=Element.extend(element.nodeType===Node.TEXT_NODE?element.parentNode:element);custom_event=element.fire("mouse:wheel",{delta:delta});if(custom_event.stopped){Event.stop(event);return false;}}document.observe("mousewheel",wheel);document.observe("DOMMouseScroll",wheel);})();var IframeShim=Class.create({initialize:function(){this.element=new Element("iframe",{style:"position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);display:none",src:"javascript:void(0);",frameborder:0.0});$(document.body).insert(this.element);},hide:function(){this.element.hide();return this;},show:function(){this.element.show();return this;},positionUnder:function(element){var element=$(element);var offset=element.cumulativeOffset();var dimensions=element.getDimensions();this.element.setStyle({left:offset[0.0]+"px",top:offset[1.0]+"px",width:dimensions.width+"px",height:dimensions.height+"px",zIndex:element.getStyle("zIndex")-1.0}).show();return this;},setBounds:function(bounds){for(prop in bounds)bounds[prop]+="px";this.element.setStyle(bounds);return this;},destroy:function(){if(this.element)this.element.remove();return this;}});if(typeof Prototype=="undefined"){throw"Control.Tabs requires Prototype to be loaded.";}if(typeof Object.Event=="undefined"){throw"Control.Tabs requires Object.Event to be loaded.";}Control.Tabs=Class.create({initialize:function(tab_list_container,options){if(!$(tab_list_container)){throw"Control.Tabs could not find the element: "+tab_list_container;}this.activeContainer=false;this.activeLink=false;this.containers=$H({});this.links=[];this.options={beforeChange:Prototype.emptyFunction,afterChange:Prototype.emptyFunction,hover:false,tracked:true,linkSelector:"li a",linkAttribute:"href",setClassOnContainer:false,activeClassName:"active",disabledClassName:"disabled",defaultTab:"first",autoLinkExternal:true,targetRegExp:/#(.+)$/,showFunction:Element.show,hideFunction:Element.hide};Object.extend(this.options,options||{});if(this.options.tracked){Control.Tabs.instances.push(this);}var filterLinks;switch(this.options.linkAttribute){case "href":case "src":var locationPrefix=window.location.href.split("#")[0.0];filterLinks=function(link){return/^#/.test(link.getAttribute(this.options.linkAttribute).replace(locationPrefix,""));};break;default:{if(typeof this.options.linkAttribute=="function"){filterLinks=this.options.linkAttribute;}else{filterLinks=function(link){return link.hasAttribute(this.options.linkAttribute);};}break;}}(typeof this.options.linkSelector=="string"?$(tab_list_container).select(this.options.linkSelector):this.options.linkSelector($(tab_list_container))).findAll(filterLinks.bind(this)).each((function(link){this.addTab(link);}).bind(this));this.containers.values().each(Element.hide);if(this.options.defaultTab=="first"){this.setActiveTab(this.links.first());}else if(this.options.defaultTab=="last"){this.setActiveTab(this.links.last());}else{this.setActiveTab(this.options.defaultTab);}var targets=this.options.targetRegExp.exec(window.location);if(targets&&targets[1.0]){targets[1.0].split(",").each((function(target){this.setActiveTab(this.links.find(function(link){return link.key==target;}));}).bind(this));}if(this.options.autoLinkExternal){$A(document.getElementsByTagName("a")).each((function(a){if(!this.links.include(a)){var clean_href=a.href.replace(window.location.href.split("#")[0.0],"");if(clean_href.substring(0.0,1.0)=="#"){if(this.containers.keys().include(clean_href.substring(1.0))){$(a).observe("click",(function(event,clean_href){this.setActiveTab(clean_href.substring(1.0));}).bindAsEventListener(this,clean_href));}}}}).bind(this));}},addTab:function(link){this.links.push(link);switch(this.options.linkAttribute){case "href":case "src":link.key=link.getAttribute(this.options.linkAttribute).replace(window.location.href.split("#")[0.0],"").split("#").last().replace(/#/,"");break;default:{if(typeof this.options.linkAttribute=="function"){link.key=this.options.linkAttribute(link);}else{link.key=link.getAttribute(this.options.linkAttribute);}break;}}var container=this.options.tabs_container?this.options.tabs_container.down("#"+link.key):$(link.key);if(!container){throw"Control.Tabs: #"+link.key+" was not found on the page.";}this.containers.set(link.key,container);link[this.options.hover?"onmouseover":"onclick"]=this.clickLink.bind(this,link);},clickLink:function(link){if(window.event){Event.stop(window.event);}this.setActiveTab(link);return false;},getTab:function(link){if(!link&&typeof link=="undefined"){return null;}if(typeof link=="string"){return this.getTab(this.links.find(function(_link){return _link.key==link;}));}else if(typeof link=="number"){return this.getTab(this.links[link]);}else{return this.containers.get(link.key);}},setActiveTab:function(link){if(!link&&typeof link=="undefined"){return;}if(typeof link=="string"){this.setActiveTab(this.links.find(function(_link){return _link.key==link;}));}else if(typeof link=="number"){this.setActiveTab(this.links[link]);}else if(!(this.options.setClassOnContainer?$(link.parentNode):link).hasClassName(this.options.disabledClassName)){if(link==this.activeLink){return;}if(this.notify("beforeChange",this.activeContainer,this.containers.get(link.key))===false){return;}if(this.activeContainer){this.options.hideFunction(this.activeContainer);}this.links.each((function(item){(this.options.setClassOnContainer?$(item.parentNode):item).removeClassName(this.options.activeClassName);}).bind(this));(this.options.setClassOnContainer?$(link.parentNode):link).addClassName(this.options.activeClassName);this.activeContainer=this.containers.get(link.key);this.activeLink=link;this.options.showFunction(this.containers.get(link.key));this.notify("afterChange",this.containers.get(link.key));}},disableTab:function(link){if(!link&&typeof link=="undefined"){return;}if(typeof link=="string"){this.disableTab(this.links.find(function(_link){return _link.key==link;}));}else if(typeof link=="number"){this.disableTab(this.links[link]);}else{if({"INPUT":true,"BUTTON":true,"SELECT":true,"TEXTAREA":true}[link.nodeName]){link.disabled=true;}(this.options.setClassOnContainer?$(link.parentNode):link).addClassName(this.options.disabledClassName);}},enableTab:function(link){if(!link&&typeof link=="undefined"){return;}if(typeof link=="string"){this.enableTab(this.links.find(function(_link){return _link.key==link;}));}else if(typeof link=="number"){this.enableTab(this.links[link]);}else{if({"INPUT":true,"BUTTON":true,"SELECT":true,"TEXTAREA":true}[link.nodeName]){link.disabled=false;}(this.options.setClassOnContainer?$(link.parentNode):link).removeClassName(this.options.disabledClassName);}},next:function(){this.links.each((function(link,i){if(this.activeLink==link&&this.links[i+1.0]){this.setActiveTab(this.links[i+1.0]);throw $break;}}).bind(this));},previous:function(){this.links.each((function(link,i){if(this.activeLink==link&&this.links[i-1.0]){this.setActiveTab(this.links[i-1.0]);throw $break;}}).bind(this));},first:function(){this.setActiveTab(this.links.first());},last:function(){this.setActiveTab(this.links.last());}});Object.extend(Control.Tabs,{instances:[],findByTabId:function(id){return Control.Tabs.instances.find(function(tab){return tab.links.find(function(link){return link.key==id;});});}});Object.Event.extend(Control.Tabs);if(typeof Effect=="undefined")throw"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=false;this.changed=false;this.active=false;this.index=0.0;this.entryCount=0.0;this.oldElementValue=this.element.value;if(this.setOptions)this.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.0;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:false,offsetTop:element.offsetHeight});}Effect.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")this.options.tokens=new Array(this.options.tokens);if(!this.options.tokens.include("\n"))this.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,"\u003Ciframe id=\""+this.update.id+"_iefix\" "+"style=\"display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);\" "+"src=\"javascript:false;\" frameborder=\"0\" scrolling=\"no\"\u003E\u003C/iframe\u003E");this.iefix=$(this.update.id+"_iefix");}if(this.iefix)setTimeout(this.fixIEOverlapping.bind(this),50.0);},fixIEOverlapping:function(){Position.clone(this.update,this.iefix,{setTop:(!this.update.style.height)});this.iefix.style.zIndex=1.0;this.update.style.zIndex=2.0;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)switch(event.keyCode){case Event.KEY_TAB:case Event.KEY_RETURN:this.selectEntry();Event.stop(event);case Event.KEY_ESC:this.hide();this.active=false;Event.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.0&&event.keyCode==0.0))return;this.changed=true;this.hasFocus=true;if(this.observer)clearTimeout(this.observer);this.observer=setTimeout(this.onObserverEvent.bind(this),this.options.frequency*1000.0);},activate:function(){this.changed=false;this.hasFocus=true;this.getUpdatedChoices();},onHover:function(event){var element=Event.findElement(event,"LI");if(this.index!=element.autocompleteIndex){this.index=element.autocompleteIndex;this.render();}Event.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.0);this.hasFocus=false;this.active=false;},render:function(){if(this.entryCount>0.0){for(var i=0.0;i<this.entryCount;i++)this.index==i?Element.addClassName(this.getEntry(i),"selected"):Element.removeClassName(this.getEntry(i),"selected");if(this.hasFocus){this.show();this.active=true;}}else{this.active=false;this.hide();}},markPrevious:function(){if(this.index>0.0)this.index--;else this.index=this.entryCount-1.0;this.getEntry(this.index).scrollIntoView(true);},markNext:function(){if(this.index<this.entryCount-1.0)this.index++;else this.index=0.0;this.getEntry(this.index).scrollIntoView(false);},getEntry:function(index){return this.update.firstChild.childNodes[index];},getCurrentEntry:function(){return this.getEntry(this.index);},selectEntry:function(){this.active=false;this.updateElement(this.getCurrentEntry());},updateElement:function(selectedElement){if(this.options.updateElement){this.options.updateElement(selectedElement);return;}var value="";if(this.options.select){var nodes=$(selectedElement).select("."+this.options.select)||[];if(nodes.length>0.0)value=Element.collectTextNodes(nodes[0.0],this.options.select);}else value=Element.collectTextNodesIgnoreClass(selectedElement,"informal");var bounds=this.getTokenBounds();if(bounds[0.0]!=-1.0){var newValue=this.element.value.substr(0.0,bounds[0.0]);var whitespace=this.element.value.substr(bounds[0.0]).match(/^\s+/);if(whitespace)newValue+=whitespace[0.0];this.element.value=newValue+value+this.element.value.substr(bounds[1.0]);}else{this.element.value=value;}this.oldElementValue=this.element.value;this.element.focus();if(this.options.afterUpdateElement)this.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.0;i<this.entryCount;i++){var entry=this.getEntry(i);entry.autocompleteIndex=i;this.addObservers(entry);}}else{this.entryCount=0.0;}this.stopIndicator();this.index=0.0;if(this.entryCount==1.0&&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=false;this.tokenBounds=null;if(this.getToken().length>=this.options.minChars){this.getUpdatedChoices();}else{this.active=false;this.hide();}this.oldElementValue=this.element.value;},getToken:function(){var bounds=this.getTokenBounds();return this.element.value.substring(bounds[0.0],bounds[1.0]).strip();},getTokenBounds:function(){if(null!=this.tokenBounds)return this.tokenBounds;var value=this.element.value;if(value.strip().empty())return [-1.0,0.0];var diff=arguments.callee.getFirstDifferencePos(value,this.oldElementValue);var offset=(diff==this.oldElementValue.length?1.0:0.0);var prevTokenPos=-1.0,nextTokenPos=value.length;var tp;for(var index=0.0,l=this.options.tokens.length;index<l;++index){tp=value.lastIndexOf(this.options.tokens[index],diff+offset-1.0);if(tp>prevTokenPos)prevTokenPos=tp;tp=value.indexOf(this.options.tokens[index],diff+offset);if(-1.0!=tp&&tp<nextTokenPos)nextTokenPos=tp;}return(this.tokenBounds=[prevTokenPos+1.0,nextTokenPos]);}});Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos=function(newS,oldS){var boundary=Math.min(newS.length,oldS.length);for(var index=0.0;index<boundary;++index)if(newS[index]!=oldS[index])return index;return boundary;};Ajax.Autocompleter=Class.create(Autocompleter.Base,{initialize:function(element,update,url,options){this.baseInitialize(element,update,options);this.options.asynchronous=true;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)this.options.parameters+="\u0026"+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.0,partialSearch:true,partialChars:2.0,ignoreCase:true,fullSearch:false,selector:function(instance){var ret=[];var partial=[];var entry=instance.getToken();var count=0.0;for(var i=0.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.0){if(foundPos==0.0&&elem.length!=entry.length){ret.push("\u003Cli\u003E\u003Cstrong\u003E"+elem.substr(0.0,entry.length)+"\u003C/strong\u003E"+elem.substr(entry.length)+"\u003C/li\u003E");break;}else if(entry.length>=instance.options.partialChars&&instance.options.partialSearch&&foundPos!=-1.0){if(instance.options.fullSearch||/\s/.test(elem.substr(foundPos-1.0,1.0))){partial.push("\u003Cli\u003E"+elem.substr(0.0,foundPos)+"\u003Cstrong\u003E"+elem.substr(foundPos,entry.length)+"\u003C/strong\u003E"+elem.substr(foundPos+entry.length)+"\u003C/li\u003E");break;}}foundPos=instance.options.ignoreCase?elem.toLowerCase().indexOf(entry.toLowerCase(),foundPos+1.0):elem.indexOf(entry,foundPos+1.0);}}if(partial.length)ret=ret.concat(partial.slice(0.0,instance.options.choices-ret.length));return"\u003Cul\u003E"+ret.join("")+"\u003C/ul\u003E";}},options||{});}});Field.scrollFreeActivate=function(field){setTimeout(function(){Field.activate(field);},1.0);};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))this.options.formId="";}if(this.options.externalControl)this.options.externalControl=$(this.options.externalControl);if(!this.options.externalControl)this.options.externalControlOnly=false;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)this.handleFormCancellation(e);else if(Event.KEY_RETURN==e.keyCode)this.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)btn.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";if(extraClasses)link.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.0>=this.options.rows&&!/\r|\n/.test(this.getText())){fld=document.createElement("input");fld.type="text";var size=this.options.size||this.options.cols||0.0;if(0.0<size)fld.size=size;}else{fld=document.createElement("textarea");fld.rows=(1.0>=this.options.rows?this.options.autoRows:this.options.rows);fld.cols=this.options.cols||40.0;}fld.name=this.options.paramName;fld.value=text;fld.className="editor_field";if(this.options.submitOnBlur)fld.onblur=this._boundSubmitHandler;this._controls.editor=fld;if(this.options.loadTextURL)this.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===false)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())this._form.appendChild(document.createElement("br"));if(this.options.onFormCustomization)this.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)this.element.innerHTML=this._oldInnerHTML;this.leaveEditMode();this.unregisterListeners();},enterEditMode:function(e){if(this._saving||this._editing)return;this._editing=true;this.triggerCallback("onEnterEditMode");if(this.options.externalControl)this.options.externalControl.hide();this.element.hide();this.createForm();this.element.parentNode.insertBefore(this._form,this.element);if(!this.options.loadTextURL)this.postProcessEditField();if(e)Event.stop(e);},enterHover:function(e){if(this.options.hoverClassName)this.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))params=params.toQueryParams();params.editorId=this.element.id;if(this.options.htmlResponse){var options=Object.extend({evalScripts:true},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);}if(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)this.options.externalControl.show();this._saving=false;this._editing=false;this._oldInnerHTML=null;this.triggerCallback("onLeaveEditMode");},leaveHover:function(e){if(this.options.hoverClassName)this.element.removeClassName(this.options.hoverClassName);if(this._saving)return;this.triggerCallback("onLeaveHover");},loadExternalText:function(){this._form.addClassName(this.options.loadingClassName);this._controls.editor.disabled=true;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._form.removeClassName(this.options.loadingClassName);var text=transport.responseText;if(this.options.stripLoadedTextTags)text=text.stripTags();this._controls.editor.value=text;this._controls.editor.disabled=false;this.postProcessEditField();}).bind(this),onFailure:this._boundFailureHandler});new Ajax.Request(this.options.loadTextURL,options);},postProcessEditField:function(){var fpc=this.options.fieldPostCreation;if(fpc)$(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=true;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)this.element.observe(pair.key,listener);if(this.options.externalControl)this.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)this.element.stopObserving(pair.key,pair.value);if(this.options.externalControl)this.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.0;this._controls.editor=list;this._collection=this.options.collection||[];if(this.options.loadCollectionURL)this.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))throw"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=true;var tempOption=this._controls.editor.firstChild;if(!tempOption){tempOption=document.createElement("option");tempOption.value="";this._controls.editor.appendChild(tempOption);tempOption.selected=true;}tempOption.update((text||"").stripScripts().stripTags());},checkForExternalText:function(){this._text=this.getText();if(this.options.loadTextURL)this.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.0===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.0]==marker;}).bind(this));this._controls.editor.update("");var option;this._collection.each((function(entry,index){option=document.createElement("option");option.value=entry[0.0];option.selected=textFound?entry[0.0]==marker:0.0==index;option.appendChild(document.createTextNode(entry[1.0]));this._controls.editor.appendChild(option);}).bind(this));this._controls.editor.disabled=false;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;}fallback("cancelControl",(options.cancelLink?"link":(options.cancelButton?"button":options.cancelLink==options.cancelButton==false?false:undefined)));fallback("okControl",(options.okLink?"link":(options.okButton?"button":options.okLink==options.okButton==false?false:undefined)));fallback("highlightColor",options.highlightcolor);fallback("highlightEndColor",options.highlightendcolor);};Object.extend(Ajax.InPlaceEditor,{DefaultOptions:{ajaxOptions:{},autoRows:3.0,cancelControl:"link",cancelText:"cancel",clickToEditText:"Click to edit",externalControl:null,externalControlOnly:false,fieldPostCreation:"activate",formClassName:"inplaceeditor-form",formId:null,highlightColor:"#ffff99",highlightEndColor:"#ffffff",hoverClassName:"",htmlResponse:true,loadingClassName:"inplaceeditor-loading",loadingText:"Loading...",okControl:"button",okText:"ok",paramName:"value",rows:1.0,savingClassName:"inplaceeditor-saving",savingText:"Saving...",size:0.0,stripLoadedTextTags:false,submitOnBlur:false,textAfterControls:"",textBeforeControls:"",textBetweenControls:""},DefaultCallbacks:{callback:function(form){return Form.serialize(form);},onComplete:function(transport,element){new Effect.Highlight(element,{startcolor:this.options.highlightColor,keepBackgroundImage:true});},onEnterEditMode:null,onEnterHover:function(ipe){ipe.element.style.backgroundColor=ipe.options.highlightColor;if(ipe._effect)ipe._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:true});}},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.0);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)];}this.track=$(track);this.options=options||{};this.axis=this.options.axis||"horizontal";this.increment=this.options.increment||1.0;this.step=parseInt(this.options.step||"1");this.range=this.options.range||$R(0.0,1.0);this.value=0.0;this.values=this.handles.map(function(){return 0.0;});this.spans=this.options.spans?this.options.spans.map(function(s){return $(s);}):false;this.options.startSpan=$(this.options.startSpan||null);this.options.endSpan=$(this.options.endSpan||null);this.restricted=this.options.restricted||false;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.0].offsetHeight!=0.0?this.handles[0.0].offsetHeight:this.handles[0.0].style.height.replace(/px$/,"")):(this.handles[0.0].offsetWidth!=0.0?this.handles[0.0].offsetWidth:this.handles[0.0].style.width.replace(/px$/,""));this.active=false;this.dragging=false;this.disabled=false;if(this.options.disabled)this.setDisabled();this.allowedValues=this.options.values?this.options.values.sortBy(Prototype.K):false;if(this.allowedValues){this.minimum=this.allowedValues.min();this.maximum=this.allowedValues.max();}this.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.0-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=true;},dispose:function(){var slider=this;Event.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=true;},setEnabled:function(){this.disabled=false;},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.0]-value);var newValue=this.allowedValues[0.0];this.allowedValues.each(function(v){var currentOffset=Math.abs(v-value);if(currentOffset<=offset){newValue=v;offset=currentOffset;}});return newValue;}if(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.0;this.activeHandle=this.handles[this.activeHandleIdx];this.updateStyles();}handleIdx=handleIdx||this.activeHandleIdx||0.0;if(this.initialized&&this.restricted){if((handleIdx>0.0)&&(sliderValue<this.values[handleIdx-1.0]))sliderValue=this.values[handleIdx-1.0];if((handleIdx<(this.handles.length-1.0))&&(sliderValue>this.values[handleIdx+1.0]))sliderValue=this.values[handleIdx+1.0];}sliderValue=this.getNearestValue(sliderValue);this.values[handleIdx]=sliderValue;this.value=this.values[0.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.0]+delta,handleIdx||this.activeHandleIdx||0.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.0;return $R(v[range],v[range+1.0]);},minimumOffset:function(){return(this.isVertical()?this.alignY:this.alignX);},maximumOffset:function(){return(this.isVertical()?(this.track.offsetHeight!=0.0?this.track.offsetHeight:this.track.style.height.replace(/px$/,""))-this.alignY:(this.track.offsetWidth!=0.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)$R(0.0,this.spans.length-1.0).each(function(r){slider.setSpan(slider.spans[r],slider.getRange(r));});if(this.options.startSpan)this.setSpan(this.options.startSpan,$R(0.0,this.values.length>1.0?this.getRange(0.0).min():this.value));if(this.options.endSpan)this.setSpan(this.options.endSpan,$R(this.values.length>1.0?this.getRange(this.spans.length-1.0).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=true;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.0]-offsets[1.0]:pointer[0.0]-offsets[0.0])-(this.handleLength/2.0)));var offsets=this.activeHandle.cumulativeOffset();this.offsetX=(pointer[0.0]-offsets[0.0]);this.offsetY=(pointer[1.0]-offsets[1.0]);}else{while((this.handles.indexOf(handle)==-1.0)&&handle.parentNode)handle=handle.parentNode;if(this.handles.indexOf(handle)!=-1.0){this.activeHandle=handle;this.activeHandleIdx=this.handles.indexOf(this.activeHandle);this.updateStyles();var offsets=this.activeHandle.cumulativeOffset();this.offsetX=(pointer[0.0]-offsets[0.0]);this.offsetY=(pointer[1.0]-offsets[1.0]);}}}Event.stop(event);}},update:function(event){if(this.active){if(!this.dragging)this.dragging=true;this.draw(event);if(Prototype.Browser.WebKit)window.scrollBy(0.0,0.0);Event.stop(event);}},draw:function(event){var pointer=[Event.pointerX(event),Event.pointerY(event)];var offsets=this.track.cumulativeOffset();pointer[0.0]-=this.offsetX+offsets[0.0];pointer[1.0]-=this.offsetY+offsets[1.0];this.event=event;this.setValue(this.translateToValue(this.isVertical()?pointer[1.0]:pointer[0.0]));if(this.initialized&&this.options.onSlide)this.options.onSlide(this.values.length>1.0?this.values:this.value,this);},endDrag:function(event){if(this.active&&this.dragging){this.finishDrag(event,true);Event.stop(event);}this.active=false;this.dragging=false;},finishDrag:function(event,success){this.active=false;this.dragging=false;this.updateFinished();},updateFinished:function(){if(this.initialized&&this.options.onChange)this.options.onChange(this.values.length>1.0?this.values:this.value,this);this.event=null;}});var Media={containerExtender:{isMedia:true,media_info:function(which){var m,cdata;this.media_info_cached={};m=this.className.match(/((\S+)_)?Media_(\S+)/);if(m){this.media_info_cached.media_id=m[3.0];this.media_info_cached.media_class=m[0.0];if(m[2.0]){m=m[2.0].split("_");this.media_info_cached[m[0.0].toLowerCase()+"_id"]=m[1.0];}}m=this.className.match(/MediaUUID_(\S+)/);if(m)this.media_info_cached.uuid=m[1.0];cdata=this.firstChild;if(cdata.nodeType==8.0||cdata.nodeType==4.0)this.media_info_cached.options=cdata.nodeValue.strip();if(which)return this.media_info_cached[which];return this.media_info_cached;},media_class:function(){return this.media_info("media_class");},media_id:function(){return this.media_info("media_id");},parameters:function(){var o;o=Object.clone(this.media_info());o.mediaContainerId=this.identify();return o;},media_options:function(){return this.mediainfo("options");},set_media_class:function(m){var newClassName;this.className=this.className.replace(/\S*_?Media\S*/g,"");if(typeof m=="string"){newClassName=m;}else{newClassName=[m.mediaof_type,m.mediaof_id,"Media",m.media_id].compact().join("_")+" Media_"+m.media_id;}this.className=this.className+" "+newClassName;this.media_info_cached=false;this.media_info();},reload:function(media_id){if(!media_id)media_id=this.media_id();new Ajax.Request("/medias/"+media_id,{method:"get",parameters:this.parameters()});},update_media:function(media_class,render){this.set_media_class(media_class);this.reload();}},getMediaContainer:function(which){which=$(which);if(!which.isMedia)Object.extend(which,this.containerExtender);return which;},reload:function(selector,media_id){var elems=$$("."+selector);for(var i=0.0;i<elems.length;i++){var mcel=elems[i];if(!mcel.media_info)Object.extend(mcel,this.containerExtender);mcel.reload(media_id);}},openUpload:function(which,options){var mcel,path,params;options=Object.extend({position:"append"},options||{});if(which){switch(options.position){case "before":mcel=$(which).next(".mediaContainer");break;default:{mcel=$(which).previous(".mediaContainer");break;}}options.uuid=mcel.className.replace(/^.*mediaUUID_(\S+).*$/,"$1");}else{new Ajax.Request("/medias/new",{parameters:options,method:"get"});return;}if(!mcel)return;if(!mcel.media_info)Object.extend(mcel,this.containerExtender);path=mcel.media_id()=="missing"?"/medias/new":"/medias/"+mcel.media_id()+"/edit";var get_params=mcel.parameters();Object.extend(get_params,{media:(options.set||{})});new Ajax.Request(path,{method:"get",parameters:get_params});},media_id:function(mcel){if(!(mcel=$(mcel)))return;if(!mcel.media_info)Object.extend(mcel,this.containerExtender);return mcel.media_id();},update:function(mcel,media_class){if(!(mcel=$(mcel)))return;if(!mcel.media_info)Object.extend(mcel,this.containerExtender);return mcel.update_media(media_class);},update_all:function(selector,media_class){var elements=$$(selector);for(var i=0.0;i<elements.length;i++){this.update(elements[i],media_class);}}};var Lightbox=function(el,options){return Lightbox.create(el,options);};Object.extend(Lightbox,{baseZ:10000.0,defaults:{id:"lightbox",className:"lightbox",closename:"Close",onCreate:null,onClose:null,duration:0.3,position:function(dims){var vpd=document.viewport.getDimensions();var vpso=document.viewport.getScrollOffsets();this.scrolling=this.down(".lightboxScrolling");if(this.scrolling)this.scrolling.hide();var cd=this.down().getDimensions();var lpd=this.getDimensions();var layout=this.getLayout();lpd.width+=cd.width-(layout.get("width")||0.0);lpd.height+=cd.height-(layout.get("height")||0.0);lpd.left=vpso.left+(vpd.width-lpd.width)*0.5;lpd.top=vpso.top+(vpd.height-lpd.height)*0.5;if(dims&&dims.clone){if((dims.clone=$(dims.clone))){if(dims.width===true||dims.height===true){var d=dims.clone.getDimensions();if(dims.width===true)dims.width=d.width;if(dims.height===true)dims.height=d.height;}if(dims.top===true||dims.left===true){var p=dims.clone.cumulativeOffset();if(dims.top===true)dims.top=p.top;if(dims.left===true)dims.left=p.left;}}}Object.extend(lpd,dims);if(lpd.left<0.0)lpd.left=0.0;if(lpd.top<vpso.top+30.0)lpd.top=vpso.top+30.0;var containerStyle={left:lpd.left+"px",top:lpd.top+"px"};var lightboxStyle={};if(dims&&(dims.width||dims.height)){var st={};if(lpd.width)lightboxStyle.width=lpd.width+"px";if(lpd.height)lightboxStyle.height=lpd.height+"px";}if(this.scrolling){this.scrolling.show();}if(dims&&dims.animation){var opts={};if(this.duration){opts.duration=this.duration;}if(typeof dims.animation=="object"){Object.extend(opts,dims.animation);}return new Effect.Parallel([new Effect.Morph(this.container,{sync:true,style:containerStyle}),new Effect.Morph(this,{sync:true,style:lightboxStyle})],opts);}else{try {this.container.setStyle(containerStyle);} catch(e){console.error(this,e);}this.setStyle(lightboxStyle);return{container:containerStyle,lightbox:lightboxStyle};}},close:function(){Lightbox.close(this);},content:function(){return this.innerHTML;}},close:function(lightbox){if(!lightbox)lightbox=this.defaults.id;lightbox=$(lightbox);if(!lightbox)return null;if(lightbox.onClose){try {lightbox.onClose();} catch(e){console.error(e);}}if(lightbox.duration){new Effect.Opacity(lightbox.layer,{from:1.0,to:0.0,duration:lightbox.duration,afterFinish:Lightbox._cleanup.curry(lightbox)});}else{Lightbox._cleanup(lightbox);}return lightbox;},_cleanup:function(lightbox){Event.stopObserving(window,"resize",lightbox.resizeMe);if(lightbox.layer)lightbox.layer.remove();if(lightbox.shadow)lightbox.shadow.lightbox=null;if(lightbox.closeButton)lightbox.closeButton.lightbox=null;lightbox.scrolling=lightbox.layer=lightbox.shadow=lightbox.container=lightbox.closeButton=null;},create:function(el,options){options=Object.extend(Object.clone(this.defaults),options||{});if(typeof options.onCreate=="string")options.onCreate=new Function(options.onCreate);if(typeof options.onClose=="string")options.onClose=new Function(options.onClose);var lightbox=$(options.id);var body=$(document.body);var effect=!!options.duration?"appear":"none";var className=options.className;var needResizeListener=false;delete options.className;if(!lightbox){needResizeListener=true;lightbox=E.div({className:"lightbox darkBorder",style:"position:relative;"});lightbox.container=E.div({className:options.id+"_container lightboxContainer",style:{position:"absolute",zIndex:Lightbox.baseZ+2.0}});var layer_opts={className:options.id+"_layer lightboxLayer",style:{position:"absolute",left:"0px",right:"0px",width:"100%",height:"100%",visibility:"hidden",zIndex:Lightbox.baseZ}};lightbox.layer=E.div(layer_opts);if(effect=="appear")lightbox.layer.setOpacity(0.0);lightbox.shadow=E.div({className:options.id+"_shadow lightboxShadow",style:{display:lightbox.noShadow?"none":"block",position:"fixed",zIndex:Lightbox.baseZ+1.0,textAlign:"right",top:"0px",left:"0px",height:"100%",width:"100%"}});lightbox.shadow.lightbox=lightbox;if(!options.noCloseButton){var lightbox_id=E.identify(lightbox);lightbox.shadow.observe("click",Lightbox._click_shadow.curry(lightbox));lightbox.closeButton=E.div({"class":options.id+"_close lightboxClose",style:"position:absolute;",onclick:Lightbox.close.bind(Lightbox,lightbox)});lightbox.closeButton.lightbox=lightbox;lightbox.closeButton.innerHTML=options.closename;lightbox.container.appendChild(lightbox.closeButton);}lightbox.container.appendChild(lightbox);lightbox.layer.appendChild(lightbox.container);lightbox.layer.appendChild(lightbox.shadow);body.insert({top:lightbox.layer});}else{if(lightbox.visible()){if(effect!="none")effect="replace";}else{needResizeListener=true;}lightbox.layer.setStyle({zIndex:Lightbox.baseZ});lightbox.shadow.setStyle({zIndex:Lightbox.baseZ+1.0});lightbox.container.setStyle({zIndex:Lightbox.baseZ+2.0});}Object.extend(lightbox,options);lightbox.addClassName(className);Lightbox.baseZ=Lightbox.baseZ+3.0;if(typeof el=="string"){el=E.div({innerHTML:el});}var old;if(effect=="replace"){el.hide();old=lightbox.down();}else{lightbox.innerHTML="";}if(Object.isElement(el)||Object.isTextNode(el)){lightbox.insert({top:el});}var effects=[];if(effect=="replace"){if(!options.dimensions){lightbox.dimensions=el.getDimensions();}lightbox.dimensions.animation={sync:true};effects.push(lightbox.position(lightbox.dimensions));lightbox.dimensions.animation=false;}else{if(lightbox.dimensions)lightbox.dimensions.animation=false;lightbox.position(lightbox.dimensions);}if(lightbox.onCreate)lightbox.onCreate();if(effect=="replace"){effects.push(new Effect.Replace(old,el,{duration:options.duration,afterFinish:function(){if(old.parentNode){old.parentNode.removeChild(old);}}}));}else{lightbox.layer.setStyle({visibility:"visible"});if(effect=="appear"){effects.push(new Effect.Opacity(lightbox.layer,{from:0.0,to:1.0,sync:true}));}}if(effects.length>0.0){new Effect.Parallel(effects,{duration:options.duration,afterFinish:R4.U.autofocus.curry(el)});}else{R4.U.autofocus(el);}if(needResizeListener){lightbox.resizeMe=lightbox.position.bind(lightbox,lightbox.dimensions);Event.observe(window,"resize",lightbox.resizeMe);}else if(!("resizeMe"in lightbox)){lightbox.resizeMe=Prototype.emptyFunction;}return lightbox;},request:function(path,options){options=Object.extend({method:"get",evalScripts:true},options||{});var lightbox_options={};for(var name in this.defaults){if(name in options){lightbox_options[name]=options[name];delete options[name];}}var lightbox_id=lightbox_options.id||this.defaults.id;switch(typeof options.parameters){case "string":options.parameters=options.parameters.parseQuery();break;case "object":options.parameters=Object.extend({},options.parameters);default:{options.parameters={};}}if(options.onSuccess)options.parameters.no_redirect=true;options.parameters.lightbox_id=lightbox_id;Lightbox(E.div({className:"bigSpinner"}),lightbox_options);new Ajax.Request(path,options);},_click_shadow:function(lightbox,event){var E_lightbox=$(lightbox);if(E_lightbox&&event.target===E_lightbox.shadow){E_lightbox.close();}}});function Extend(){var destination=arguments[0.0]||{};for(var s=1.0;s<arguments.length;s++){var source=arguments[s];if(source){for(var property in source){destination[property]=source[property];}}}return destination;}function R4(){if(R4.debug)console.log("R4",arguments.caller,arguments);var args=R4.U.toArray(arguments);var ro,el=args.pop(),opts=args.pop()||{};if(!el)return null;if(el._isRanqqObject||el._isRanqqCollection)return el;if(typeof el=="string"){try {el=JSON.parse(el);} catch(e){if(document.getElementById(el)){el=document.getElementById(el);}else if($$("."+el).length>0.0){el=$$("."+el);}else{return null;}}}if(el.nodeName){var info=R4.init.parseDOM(el);if(info&&info._ranqqObject){info._ranqqObject.addDOMElement(el);ro=info._ranqqObject;return(ro&&opts.invoke)?ro[opts.invoke]:ro;}}var saved_el=el;if(el.body)el=el.body;if(R4.U.isArray(el)){var objects=new R4.Collection();var childopts=Extend({},opts);delete childopts.invoke;for(var i=0.0;i<el.length;i++){ro=R4(childopts,el[i]);if(!ro||!ro._isRanqqObject)continue;objects.push(ro);}ro=objects;}else{ro=R4.init(el,opts);}if(opts.invoke){try {if(!opts.invokeArgs)opts.invokeArgs=[];var operateOn;switch(typeof opts.property){case "string":operateOn=opts.boundTo[opts.property];break;case "function":operateOn=opts.property.call(opts.boundTo,opts);break;default:{operateOn=opts.boundTo;break;}}if(typeof operateOn==="undefined"){console.info("operateOn was null",saved_el);}else if(typeof opts.invoke==="string"){operateOn[opts.invoke].apply(operateOn,opts.invokeArgs);}else if(typeof opts.invoke==="function"){opts.invoke.apply(operateOn,opts.invokeArgs);}} catch(exc){console.error("R4",opts);console.error(exc);}}return ro;}Extend(R4,{options:{anonymous:true,ttl:60.0},hoverElement:false,hoverRanqqObject:false,idCounter:0.0,getId:function(){var args=R4.U.toArray(arguments);if(!args[0.0])args[0.0]="new";var id=args.join("_");var maxLoopRuns=1000.0,stopAt=R4.idCounter+maxLoopRuns;R4.idCounter++;while(document.getElementById(id+"_"+R4.idCounter)){R4.idCounter++;if(R4.idCounter>stopAt)throw maxLoopRuns+" Loops in R4.getId";}return id+"_"+R4.idCounter;},dataStore:{},dataSet:function(key,value){if(key.nodeType===1.0){if(!key.id)key.id=R4.getId();key=key.id;}return R4.dataStore[key]=value;},dataGet:function(key){if(key.nodeType===1.0){if(!key.id)return;key=key.id;}return R4.dataStore[key];},dataPurge:function(){var keys=R4.U.toArray(arguments);var recurse;if(typeof keys[keys.length-1.0]=="boolean"){recurse=keys.pop();}for(var i=0.0;i<keys.length;i++){var key=keys[i],id;if(R4.U.isArray(key)){R4.dataPurge.apply(R4,key);}else if(key.nodeType==1.0){if(recurse){R4.U.allNodes(key,function(k){if(k.id)delete R4.dataStore[k.id];});}else{delete R4.dataStore[key.id];}}else if(typeof key=="string"){delete R4.dataStore[key];}}},find:function(){var el;switch(arguments.length){case 1.0:el=arguments[0.0];break;case 2.0:el=(arguments[0.0]+"_"+arguments[1.0]).toLowerCase();break;case 0.0:default:{return null;}}var info;if(el._isRanqqObject)return el;if(typeof el=="string"){info=R4.init.parseClassName(el);if(info&&info._ranqqObject)return info._ranqqObject;el=document.getElementById(el);if(!el)return null;}if(el.tagName){info=R4.init.parseDOM(el);if(info&&info._ranqqObject){info._ranqqObject.addDOMElement(el);return info._ranqqObject;}}return null;},load:function(what,options){var method=[];if(what._isRanqqObject)what=what.dom;if(typeof what=="string")what=what.split("_");if(what.length!=2.0)return;method=what;if(!options)options={};if(options.prepend){if(options.prepend._isRanqqObject)options.prepend=options.prepend.dom;if(typeof options.prepend=="string")options.prepend=options.prepend.split("_");method=options.prepend.concat(method);delete options.prepend;}if(options.append){if(options.append._isRanqqObject)options.append=options.append.dom;if(typeof options.append=="string")options.append=options.append.split("_");method=method.concat(options.append);delete options.append;}if(options.onSuccess){var onSuccess=options.onSuccess;options.onSuccess=function(response){onSuccess.call(this,R4(options,response));};}else{options.onSuccess=R4.bind(R4,options);}options.debug=true;R4.API.call(method.join("/").toLowerCase(),options);},destroy:function(what,options){var method=[];if(what._isRanqqObject)what=what.dom;if(typeof what=="string")what=what.split("_");if(what.length!=2.0)return;method=what;if(!options)options={};options.debug=true;console.info("TODO implement delete to API.call: destroy called for",method.join("/").toLowerCase());},loadAndExec:function(){var args=R4.U.toArray(arguments),invoke,invokeArgs;if(R4.U.isArray(args[args.length-1.0])){invokeArgs=args.pop();}else{invokeArgs=[];}invoke=args.pop();var ranqqObjectId=args.shift(),executeLocal=false;var opts=args.shift()||{};if(typeof opts=="string")opts={append:opts};var boundTo=R4.getObject(ranqqObjectId);if(boundTo){if(typeof invoke!="function")invoke=boundTo[invoke];invoke.apply(boundTo,invokeArgs);}else{if(opts.append&&opts.append._isRanqqObject)opts.append=opts.append.dom;opts.invoke=invoke;opts.invokeArgs=invokeArgs;R4.load(ranqqObjectId,opts);}return this;},handler:function(objectClass,class_prototype){var types=objectClass.split("|");var handler=R4.handler[types[0.0]]=function(info,opts){if(info._isRanqqObject){this._source=this._clonedFrom=info;Extend(this,info);this.id=R4.getId("new");this.dom=this.type.toLowerCase()+"_"+this.id;this.initClone&&this.initClone(opts||{});}else{this["_is"+info.type]=true;Extend(this,info);this.init(opts);}R4.register(this);};var TRANSIENT=R4.handler.base_prototype.TRANSIENT.concat(class_prototype.TRANSIENT||[]);Extend(handler.prototype,R4.handler.base_prototype,class_prototype);handler.prototype._TRANSIENT={};for(var i=0.0,n=TRANSIENT.length;i<n;++i){handler.prototype._TRANSIENT[TRANSIENT[i]]=true;}R4.Collection.extend(class_prototype);R4.handler.types.push(types[0.0].toLowerCase());for(i=1.0;i<types.length;i++){R4.handler[types[i]]=handler;R4.handler.types.push(types[i].toLowerCase());}},init:function(el,opts){var rv;if(el.className){rv=R4.init.parseDOM(el);}else if(el.type||(el.body&&el.body.type)){rv=R4.init.parseAPI(el);}else{return null;}if(!rv)return null;var ro=rv._ranqqObject;try {if(ro){ro.update(rv);if(opts&&opts.elements){var regex=new RegExp("\\b"+ro.type.toLowerCase()+"_(new|-?\\d+)\\b");for(var i=0.0,n=opts.elements.length;i<n;++i){var element=opts.elements[i];element.className=element.className.replace(regex)+" "+ro.dom;}}}else{ro=new R4.handler[rv.type](rv,opts);}} catch(e){console.error("R4.init: Error",e,el,rv,opts);ro=null;}ro.dom=ro.type.toLowerCase()+"_"+ro.id;return ro;},create:function(klass,source){var id=R4.getId("new");return new R4.handler[klass]({type:klass,id:id,dom:(klass+"_"+id).toLowerCase(),_source:source||{}},source);},O:{},register:function(ro){if(!ro||!ro._isRanqqObject)return null;var objects=R4.O[ro.type];if(!objects)objects=R4.O[ro.type]={};objects[ro.id]=ro;return ro;},unregister:function(ro){if(ro&&ro._isRanqqObject&&ro.type in R4.O){delete R4.O[ro.type][ro.id];}},getObject:function(klass,id){if(!id){var p=klass.toLowerCase().split("_");klass=p[0.0].slice(0.0,1.0).toUpperCase()+p[0.0].slice(1.0);id=p[1.0];}return R4.O[klass][id];},E:{}});Extend(R4.init,{parseDOM:function(el){var rv=R4.init.parseClassName(el.className);if(!rv)return null;rv._source=el;if(/^new/.test(rv.id)){el.className=el.className.replace(new RegExp("\\b"+rv.type.toLowerCase()+"_new\\b","g"),rv.dom);}return rv;},parseAPI:function(el){if(el.body)el=el.body;var id=el.id==="new"||el.id===null||el.id===undefined?el.id=R4.getId("new"):el.id;var rv={type:el.type,id:id,dom:el.dom||el.type.toLowerCase()+"_"+id,_source:el};var ro;if(rv.type in R4.O){ro=R4.O[rv.type][id];}if(ro)rv._ranqqObject=ro;return rv;},parseClassName:function(className){if(!className)return null;var regexp=new RegExp("(\\b)(("+R4.handler.types.join("|")+")(_(-?\\d+|new(_\\d+)?)))(_|\\b)");var m=className.match(regexp);if(!m)return null;var rv={type:m[3.0].slice(0.0,1.0).toUpperCase()+m[3.0].slice(1.0),id:m[5.0],dom:m[2.0]};if(rv.id=="new"){rv.id=R4.getId("new");rv.dom=rv.type.toLowerCase()+"_"+rv.id;}var ro;if(rv.type in R4.O){ro=R4.O[rv.type][rv.id];}if(ro)rv._ranqqObject=ro;return rv;}});R4.Check=function(t,opts){if(!opts)opts={};if(t===undefined||/^\s*$/.test(t))return opts.blank?true:false;if(opts.test)return opts.test(t);return t;};Extend(R4.Check,{date:function(t,opts){var m;if(!opts)opts={};opts.test=function(t){if((m=t.match(/(\d+)\.(\d+)\.(\d*)/))){t=m[2.0]+"/"+m[1.0]+"/"+(m[3.0]||new Date().getYear()+1900.0);}return!isNaN(new Date(t).getTime());};return R4.Check(t,opts);},time:function(t,opts){var m;if(!opts)opts={};opts.test=function(t){return!isNaN(new Date("1/1/2011 "+t).getTime());};return R4.Check(t,opts);}});R4.U={isDomElement:function(el){return el.nodeType===1.0;},toArray:$A,textSelect:function(selectable,el){if(!el)el=document.body;if(Prototype.Browser.IE){R4.U.allNodes(el,(function(el){el.unselectable=this.selectable?"on":"off";}).bind({selectable:selectable}));}else if(selectable){E.$removeClass(el,"RanqqNoSelect");}else{E.$addClass(el,"RanqqNoSelect");}},allNodes:function(el,exec){if(el.nodeType==1.0)exec(el);var child=el.firstChild;while(child){R4.U.allNodes(child,exec);child=child.nextSibling;}},date:function(date){return new Date(date).toLocaleString();},dropTarget:function(target,action,methodScope){this.action=action.bind(methodScope||this,this);this.target=target;Extend(this,target.getDimensions(),target.cumulativeOffset());this.right=this.left+this.width;this.bottom=this.top+this.height;},dropTargets:function(targets){this.targets={};for(var i in targets){var el=targets[i];var target=Extend({type:i,element:el,ranqqObject:R4(el.up(".ranqq")),opinion:(el.hasClassName("agreed")||el.hasClassName("disagreed")?el.hasClassName("agreed"):null),ranks:[]},el.getDimensions(),el.cumulativeOffset());target.right=target.left+target.width;target.bottom=target.top+target.height;var ranks=el.select(".rank");for(var j=0.0;j<ranks.length;j++){var rank=ranks[j];rank=target.ranks[j]=Extend({element:rank,position:j,ranqqObject:R4(rank)},rank.getDimensions(),rank.cumulativeOffset());rank.right=rank.left+rank.width;rank.bottom=rank.top+rank.height;}this.targets[i]=target;}},showError:function(error,options){return Lightbox("\u003Ch2\u003E"+error.name+"\u003C/h2\u003E"+error.message,Extend({id:"error_lightbox","class":"error"},options));},showJSError:function(exc){return R4.U.showError({type:"JavaScriptError",message:"\u003Cp\u003E"+exc.toString().escapeHTML()+"\u003C/p\u003E",name:_._0,exception:exc});},replace:function(element,content){element=$(element);if(!Object.isElement(content)){content=E.html(content);}if(R4.U.isArray(content)){content=E.div(content);}content.style.display="none";element.parentNode.insertBefore(content,element);new Effect.Replace(element,content,{afterFinish:function(){R4.U.autofocus(content);if(element.parentNode)element.parentNode.removeChild(element);}});},require:function(url,callback){var scripts=$$("script");var srcs={};for(var i=0.0,n=scripts.length;i<n;++i){var script=scripts[i];var src=script.src;if(src)srcs[R4.URL.abs(src)]={state:"loaded"};}R4.U._required=srcs;R4.U.require=R4.U._require;R4.U._require(url,callback);},_require:function(url,callback){var i,n;if(typeof callback==="function"){callback={onload:callback};}if(R4.U.isArray(url)){if(callback){var loaded={};for(i=0.0,n=url.length;i<n;++i){loaded[R4.URL.abs(url[i])]=false;}var callback_multi=R4.U._require_callback_multi(loaded,callback);for(i=0.0,n=url.length;i<n;++i){R4.U.require(url[i],callback_multi);}}else{for(i=0.0,n=url.length;i<n;++i){R4.U.require(url[i]);}}return;}url=R4.URL.abs(url);var module=R4.U._required[url];if(!module||module.state==="error"){R4.U._required[url]=module={state:"start",callbacks:[]};if(callback){module.callbacks.push(callback);}var script=E.script({type:"text/javascript",src:url});script.onload=script.onreadystatechange=R4.U._require_callback.curry(url);document.body.appendChild(script);}else if(callback){if(module.state==="loaded"){if(callback.onload){try {callback.onload(url);} catch(e){console.error(e);}}}else{module.callbacks.push(callback);}}},_require_callback:function(url){var module=R4.U._required[url];if(module&&module.state==="start"&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){module.state="loaded";for(var i=0.0,n=module.callbacks.length;i<n;++i){var callback=module.callbacks[i];if(callback.onload){try {callback.onload(url);} catch(e){console.error(e);}}}delete module.callbacks;this.onload=this.onreadystatechange=null;if(this.parentNode){this.parentNode.removeChild(this);}}},_require_callback_multi:function(loaded,callback){return{onload:function(url){loaded[url]=true;var urls=[];for(var url in loaded){if(!loaded[url])return;urls.push(url);}if(callback&&callback.onload){callback.onload(urls);}},onerror:function(error){if(callback&&callback.onerror){callback.onerror(error);}}};},_require_error:function(error){if(!R4.U._required)return false;var url=R4.URL.abs(error.filename);var module=R4.U._required[url];if(module){module.state="error";for(var i=0.0,n=module.callbacks.length;i<n;++i){var callback=module.callbacks[i];if(callback.onerror){try {callback.onerror(error);} catch(e){console.error(e);}}}delete R4.U._required[url];return true;}return false;},distance:function(p1,p2){var dx=p2.x-p1.x;var dy=p2.y-p1.y;return Math.sqrt(dx*dx+dy*dy);},code:function(code,args){var sargs={};for(var name in args){sargs[name]=JSON.stringify(args[name]);}return code.interpolate(sargs);},autofocus:(function(dummy,autofocus,ctx){if("autofocus"in document.createElement("input")){R4.U.autofocus=dummy;}else{R4.U.autofocus=autofocus;autofocus(ctx);}}).curry(function(){},function(ctx){var elements=Element.select(ctx||document.body,"*[autofocus]");for(var i=0.0,n=elements.length;i<n;++i){try {elements[i].focus();return;} catch(e){}}}),functionize:function(method){return function(){return method.call(arguments[0.0],Array.prototype.slice.call(arguments,1.0));};}};R4.U.has=R4.U.functionize(Object.prototype.hasOwnProperty);Extend(R4.U.dropTarget.prototype,{within:function(){var x,y;var dropPadding=0.0;if(arguments[0.0].pointerX){y=arguments[0.0].pointerY();x=arguments[0.0].pointerX();}else{y=arguments[1.0];x=arguments[0.0];}if(!this.width||!this.height){Extend(this,this.target.getDimensions(),this.target.cumulativeOffset());this.right=this.left+this.width;this.bottom=this.top+this.height;}return y>(this.top-dropPadding)&&y<(this.bottom+dropPadding)&&x>this.left&&x<this.right;}});R4.U.dropTargets.prototype.find=function(eventOrPosition){var inTarget;var targetDropPadding=0.0;if(eventOrPosition.pointerX){var y=eventOrPosition.pointerY();var x=eventOrPosition.pointerX();for(var i in this.targets){var target=this.targets[i];if(y>(target.top-targetDropPadding)&&y<(target.bottom+targetDropPadding)&&x>target.left&&x<target.right){inTarget=target;break;}}if(!inTarget)return null;for(i=inTarget.ranks.length-1.0;i>=0.0;i--){var rank=inTarget.ranks[i];if(!rank)continue;if(y>rank.top+5.0){return Extend({position:i+2.0,renderOpts:{position:i+2.0,target:rank.element,insert:"after"},preceding:inTarget.ranks.slice(0.0,i+1.0),following:inTarget.ranks.slice(i+1.0)},inTarget);}}return Extend({position:1.0,renderOpts:{position:i+1.0,target:inTarget.element,insert:"top"},following:[],preceding:[]},inTarget);}else{var position=eventOrPosition;if(position){inTarget=this.targets.agreed;}else{inTarget=this.targets.disagreed;}return Extend({position:position,renderOpts:{position:position,target:inTarget.element,insert:"bottom"},preceding:inTarget.ranks.slice(0.0,position-1.0),following:inTarget.ranks.slice(position)},inTarget);}};if(Array.isArray){R4.U.isArray=Array.isArray;}else if(Object.isArray){R4.U.isArray=Object.isArray;}else{R4.U.isArray=function(el){try {return el.constructor.toString().indexOf("Array")!=-1.0;} catch(e){return false;}};}R4._start=[];R4.start=function(){for(var i=0.0;i<R4._start.length;i++)R4._start[i]();};R4.URL=function(url){var absurl=R4.URL.abs(url);var match=/^([a-z][-_a-z0-9]*:)\/\/(?:([^:@\/]*)(?::([^:@\/]*))?@)?([^:@\/]*)(?::(\d+))?(?:(\/[^#\?]*)(\?[^#]*)?(#.*)?)?$/i.exec(absurl);if(!match){throw new URIError("Illegal URL: "+JSON.stringify(url));}this.protocol=match[1.0].toLowerCase();this.username=match[2.0];this.password=match[3.0];this.hostname=match[4.0];this.port=match[5.0];this.pathname=match[6.0]||"/";this.search=match[7.0]||"";this.hash=match[8.0]||"";if(this.port===undefined){this.port=R4.URL.DEFAULT_PORTS[this.protocol];}else{this.port=parseInt(this.port,10.0);}};R4.URL.prototype={toString:function(){return this.protocol+"//"+(this.username||this.password?(this.username||"anonymous")+(this.password?":"+this.password:"")+"@":"")+this.hostname+(this.port!==undefined&&R4.URL.DEFAULT_PORTS[this.protocol]!=this.port?":"+this.port:"")+this.pathname+this.search+this.hash;},params:function(){var params={};var search=this.search&&this.search[0.0]=="?"?this.search.substring(1.0):"";search=search.split("\u0026");for(var i=0.0,n=search.length;i<n;++i){var v=search[i].split("=");var key=decodeURIComponent(v[0.0]);var value=decodeURIComponent(v[1.0]||"");if(key in params){var existing=params[key];if(typeof existing=="string"){params[key]=[existing,value];}else{existing.push(value);}}else{params[key]=value;}}return params;}};Extend(R4.URL,{DEFAULT_PORTS:{"http:":80.0,"https:":443.0,"ftp:":21.0,"ftps:":990.0,"file":""},abs:function(url){if(/^\/\//.test(url)){return window.location.protocol+url;}else if(/^\//.test(url)){return window.location.protocol+"//"+window.location.host+url;}else if(/^[#\?]/.test(url)){return window.location.protocol+"//"+window.location.host+window.location.pathname+url;}else if(/^[a-z][-_a-z0-9]*:/i.test(url)){return url;}else{var path=window.location.pathname.split("/");path.pop();if(path.length===0.0){path.push("");}path.push(url);return window.location.protocol+"//"+window.location.host+path.join("/");}}});R4.Shorturl={encode:function(url){return"TODO";},decode:function(url){return"TODO";}};R4.API={default_version:"3.0",prefix:"/api/v3/",format:"json",api_key:null,callbacks:{},queues:{},next_callback:0.0,timeout_interval:30000.0,STATUS:{STARTED:0.0,RECEIVED:1.0,FINISHED:2.0,DEFERRED:3.0},call:function(method,params){params=params||{};var prefix=params.prefix||R4.API.prefix;var format=((!params.format&&(params.files||params.form))?"html":params.format||R4.API.format);var path=prefix+method+"."+format;var key=params.key||R4.API.api_key;var query={};if(params.parameters){for(var name in params.parameters){var value=params.parameters[name];if(typeof value!="string"){value=Object.toJSON(value);}query[name]=value;}}var data=Object.extend({api:{version:params.version||R4.API.default_version}},params.data||{});if(location&&location.href)data.api.location=location.href;if(params.credentials){data.api.credentials=params.credentials;}query.data=Object.toJSON(data);if(key){query.key=key;}if(params.query){query.query=String(params.query);}if(params.page){query.page=String(params.page);}if(params.pagesize){query.pagesize=String(params.pagesize);}var callback_id=R4.API.next_callback++;var queue_name=null,queue=null;if(params.queue){queue_name=params.queue===true?"method:"+method:"custom:"+params.queue;queue=queue_name in R4.API.queues?R4.API.queues[queue_name]:(R4.API.queues[queue_name]=[]);queue.push(callback_id);}params.collect=!!params.collect;var callback=new R4.API.Callback(callback_id,method,params,queue_name);query.callback_arg=String(callback_id);if(callback.params.collect&&R4.API.collectable_call_in_progress(method)){R4.API.callbacks[callback_id]=callback;return callback;}R4.API.callbacks[callback_id]=callback;callback.restartTimeout();if(params.spinner){FrT.submit({timeout:false});}switch(format){case "json":callback.ajax=R4.API._ajax_call(callback,path,params.method||"post",query);break;case "js":if(params.method)query._method=params.method;query.callback="R4.API.callback";var url=path+"?"+Object.toQueryString(query);callback.elements=[E(document.body).script({type:"text/javascript",src:url})];break;case "html":if(window.location.origin){query.target_origin=window.location.origin;}else{query.target_origin=window.location.protocol+"//"+window.location.host;}var form=params.form||E.form({style:"display:none;"});var iframe=E.iframe({id:true,style:"visibility:hidden;position:fixed;right:0;bottom:0;width:0;height:0;"});iframe.setAttribute("name",iframe.id);form.setAttribute("action",path);form.setAttribute("method",params.method||"post");form.setAttribute("target",iframe.id);for(var key in query){var input=form.down("input[name="+Object.toJSON(key)+"]");if(input){input.setValue(query[key]);}else{form.appendChild(E.input({type:"hidden",name:key,value:query[key]}));}}if(params.files){for(var name in params.files){var file=params.files[name];file.setAttribute("name",name);form.appendChild(file);}}if(form.down("input[type=\"file\"]")){form.setAttribute("enctype","multipart/form-data");}callback.elements=[iframe];document.body.appendChild(iframe);if(!form.up()){callback.elements.push(form);document.body.appendChild(form);}if(!window.postMessage){var iframePoller=function(){if(R4.API.callbacks[callback_id]===undefined)return;var received_data=iframe.contentWindow.location.hash.replace(/^#*/,"");if(received_data!==""){callback.onMessage(received_data.evalJSON());}else{window.setTimeout(iframePoller,600.0);}};window.setTimeout(iframePoller,600.0);}form.submit();break;default:{throw new Error("Illegal transfer format: "+format);}}return callback;},Callback:function(id,method,params,queueName){this.id=id;this.status=R4.API.STATUS.STARTED;this.method=method;this.params=params;this.queueName=queueName;},callback:function(response,callback_id){if(callback_id===undefined&&response.api){callback_id=response.api.callback_arg;}if(callback_id===undefined){console.error("cannot dispatch response: no callback id given",response);return;}var callback=R4.API.callbacks[callback_id];if(callback===undefined){throw new Error("Illegal callback ID: "+callback_id);}else{console.log("onMessage",response);callback.onMessage(response);}},_ajax_call:function(callback,path,method,query){return new Ajax.Request(path,{method:method,evalJS:false,parameters:query||{},onSuccess:function(response){var contentType=response.getHeader("Content-type");if(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i.test(contentType)){eval(response.responseText);callback.onMessage({api:{version:R4.API.default_version},error:{defer:true,silent:true}});}else if(/^\s*application\/json(;.*)?\s*$/i.test(contentType)){callback.onMessage(response.responseText.evalJSON());}else{console.error("illegal content type:",contentType);callback.onMessage({api:{version:R4.API.default_version},error:{type:"TransferError",name:_._1,message:_._2.interpolate({type:contentType})}});}},onException:function(response,exc){callback.onMessage({api:{version:R4.API.default_version},error:{type:"JavaScriptError",name:_._3,message:"\u003Cp\u003E"+exc.toString().escapeHTML()+"\u003C/p\u003E",exception:exc}});console.error(exc);},onFailure:function(response){console.error("AJAX failure",arguments);callback.onMessage(response.responseText.evalJSON());}});},deferred_call:function(callback_id,path,method,query){var callback=R4.API.callbacks[callback_id];if(!callback){throw new Error("Illegal callback ID: "+callback_id);}callback.status=R4.API.STATUS.STARTED;callback.restartTimeout();callback.ajax=R4.API._ajax_call(callback,path,method,query);return callback;},collectable_call_in_progress:function(method){for(var id in R4.API.callbacks){var callback=R4.API.callbacks[id];if(callback.params.collect&&callback.method===method){return true;}}return false;},collectable_callbacks_for:function(method){var callbacks=[];for(var id in R4.API.callbacks){var callback=R4.API.callbacks[id];if(callback.params.collect&&callback.method===method&&callback.status===R4.API.STATUS.STARTED){callbacks.push(callback);}}return callbacks;},status_name:function(status){for(var name in R4.API.STATUS){if(status===R4.API.STATUS[name]){return name;}}return null;}};R4.API.Callback.prototype={onMessage:function(response){this._onMessage(response);if(this.params.collect){var callbacks=R4.API.collectable_callbacks_for(this.method);for(var i=0.0,n=callbacks.length;i<n;++i){var callback=callbacks[i];if(callback!==this){callback._onMessage(response);}}}},_onMessage:function(response){if(this.params.debug)console.log("onMessage",this.params,response);if("timer"in this){window.clearTimeout(this.timer);delete this.timer;}if(this.status!==R4.API.STATUS.STARTED&&this.status!==R4.API.STATUS.DEFERRED){console.error("got response for "+(R4.API.status_name(this.status)||"unknown status ("+this.status+")").toLowerCase()+" request:",response);return;}try {if(response.api.session_time_left===undefined){UserDB.clearTA();}else{UserDB.startTA(response.api.session_time_left);}} catch(e){console.error(e);}this.status=R4.API.STATUS.RECEIVED;this.response=response;if(this.queueName===null||R4.API.queues[this.queueName][0.0]===this.id){this.deliverMessage();}},deliverMessage:function(){var response=this.response;try {try {if(!("error"in response)){if(this.params.onSuccess){this.params.onSuccess.call(this,response);}}else if(response.error.defer){this.status=R4.API.STATUS.DEFERRED;if(this.params.onDefer){this.params.onDefer.call(this,response.error);}else if(!response.error.silent){R4.U.showError(response.error,{onClose:(function(){if(this.status!==R4.API.STATUS.STARTED){this.status=R4.API.STATUS.FINISHED;this.cleanup();}}).bind(this)});}}else if(this.params.onError){this.params.onError.call(this,response.error);}else{R4.U.showError(response.error);}} catch(exc){console.error(exc);if(this.params.onError){this.params.onError.call(this,{type:"JavaScriptError",name:_._3,message:"\u003Cp\u003E"+exc.toString().escapeHTML()+"\u003C/p\u003E",exception:exc});}} finally {if(this.params.spinner){FrT.hide();}if(this.status===R4.API.STATUS.RECEIVED){this.status=R4.API.STATUS.FINISHED;if(this.params.onFinish){this.params.onFinish.call(this,response,false);}}}} catch(e){console.error(e);} finally {this.cleanup();}},cancel:function(){if(this.ajax){try {this.ajax.transport.abort();delete this.ajax;} catch(e){console.error(e);}}try {if(this.status!==R4.API.STATUS.FINISHED){this.status=R4.API.STATUS.FINISHED;if(this.params.spinner){FrT.hide();}if(this.params.onFinish){this.params.onFinish.call(this,this.response,true);}}} finally {this.cleanup();}},cleanup:function(){delete this.ajax;if(this.elements){for(var i=0.0,n=this.elements.length;i<n;++i){var element=this.elements[i];if(element.parentNode){try {element.parentNode.removeChild(element);} catch(e2){console.error(e2);}}}delete this.elements;}if("timer"in this){window.clearTimeout(this.timer);delete this.timer;}if(this.status===R4.API.STATUS.FINISHED){delete R4.API.callbacks[this.id];if(this.queueName){var queue=R4.API.queues[this.queueName];if(!queue){console.error("assertion failed: queue not found:",this.queueName);}else if(queue[0.0]!==this.id){console.error("assertion failed: finished callback",this.id,"is not head of queue ",this.queueName);}else{queue.shift();if(queue.length===0.0){delete R4.API.queues[queue_name];}else{var other_callback=R4.API.callbacks[queue[0.0]];if(other_callback.status===R4.API.STATUS.RECEIVED){other_callback.deliverMessage();}}}}}},restartTimeout:function(){if("timer"in this){window.clearTimeout(this.timer);}this.timer=window.setTimeout(this._onTimeout.bind(this),R4.API.timeout_interval);},_onTimeout:function(){if(R4.API.callbacks[this.id]===this){this.onMessage({api:{version:this.params.version||R4.API.default_version},error:{type:"NetworkError",name:_._4,message:_._5.interpolate({method:this.method.escapeHTML()})}});}}};Extend(R4,{eventHandler:function(event){var target=event.target,ranqqObject,type,m;var ranqqObjectRegexp=new RegExp("\\b("+R4.handler.types.join("|")+")_(-?\\d+|new(_\\d+)?)\\b");var type_match=new RegExp("\\b(event|"+event.type+")_(\\S+)\\b","g");var rv;try {while(1.0){if(!target)return rv;if(target==top||/\bRanqqApp\b/.test(target.className))return rv;if(!type&&target.className&&(m=target.className.match(type_match)))type=m;if(type){if(/\bcatch\b/.test(target.className)){if(R4.eventCallAction(type,target,event)===false)rv=false;break;}if(ranqqObjectRegexp.test(target.className)){ranqqObject=R4(target);if(target&&R4.eventCallAction(type,ranqqObject,event,target)===false)rv=false;break;}}target=target.parentNode;}} catch(e){console.error(e);}if(rv===false)event.stop();return typeof rv=="undefined"?true:rv;},eventCallAction:function(type,which,event,ranqqObjectTarget){var rv=true;for(var i=0.0;i<type.length;i++){var method=type[i].split("_",2.0)[1.0]||type[i];var action=(which&&which._isRanqqObject&&which.Actions&&which.Actions[method])||(R4.Actions&&R4.Actions[method]);if(!action){console.info("Uncaught Action '"+method+"'",which,event.target,event);continue;}if(action.call(which,event,ranqqObjectTarget)===false)rv=false;}return rv;}});R4._start.push(function(){$w("click keydown keyup change mouseover mouseout cut paste focus blur").each(function(type){Event.observe(document.body,type,R4.eventHandler);});});R4._start.push(R4.U.autofocus);if(window.postMessage){Event.observe(window,"message",function(message){message=message.data;if(typeof message=="string"){try {message=JSON.parse(message);} catch(e){return;}}if(message.type=="api_callback"&&message.data){R4.API.callback(message.data,message.callback_arg);}});}window.onbeforeunload=function(){if(R4.confirm_leave){return _._6;}};window.onerror=function(message,filename,lineno){var error={message:message,filename:R4.URL.abs(filename),lineno:lineno};if(R4.U._require_error(error))return;if(LinkedData.onerror(error))return;};R4.Collection=Extend(function(){this.length=0.0;this.elements=[];if(arguments.length===0.0)return;var elements=arguments;if(arguments[0.0]._isRanqqCollection)elements=arguments[0.0].elements;for(var i=0.0;i<elements.length;i++){if(!elements[i]||!elements[i]._isRanqqObject)continue;this.push(elements[i]);}},{simulateArray:function(){R4.Collection.prototype.get=function(i){this._lastIndex=i||0.0;if(this._lastIndex<0.0)i=this.elements.length+this._lastIndex;return this.elements[i];};R4.Collection.prototype.next=function(){if(typeof this._lastIndex=="undefined")this._lastIndex=0.0;if(this._lastIndex<0.0){if(this.elements.length-(this._lastIndex-1.0)<0.0)return;this._lastIndex--;i=this.elements.length-this._lastIndex;}else{if(this.elements.length>=(this._lastIndex+1.0))return;this._lastIndex++;i=this._lastIndex;}return this.elements[i];};R4.Collection.prototype.set=function(i,ro){if(i<0.0)i=this.elements.length-i;if(!ro._isRanqqObject)return false;this.elements[i||0.0]=ro;this.length=this.elements.length;return ro;};var methods=["join","pop","reverse","shift","slice","splice","sort"];var i,prop;for(i=0.0;i<methods.length;i++){prop=methods[i];R4.Collection.prototype[prop]=(function(){var args=R4.U.toArray(arguments);var prop=args.shift();var rv=this.elements[prop].apply(this.elements,args);this.length=this.elements.length;if(R4.U.isArray(rv))return R4(rv);return rv;}).curry(prop);}methods=["push","unshift"];for(i=0.0;i<methods.length;i++){prop=methods[i];R4.Collection.prototype[prop]=(function(prop,ro){if(!ro._isRanqqObject)return false;var rv=this.elements[prop].call(this.elements,ro);this.length=this.elements.length;return rv;}).curry(prop);}R4.Collection.prototype.concat=function(rc){var rv=new R4.Collection(this);rv.extend(rc);return rv;};if("reduce"in Array.prototype){R4.Collection.prototype.reduce=function(f,initialValue){return this.elements.reduce(f.bind(this),initialValue);};}else{R4.Collection.prototype.reduce=function(f,initialValue){for(var i=0.0;i<this.length;++i){initialValue=f.call(this,initialValue,this.elements[i],i);}return initialValue;};}if("forEach"in Array.prototype){R4.Collection.prototype.forEach=R4.Collection.prototype.each=function(f){this.elements.forEach(f);return this;};}else{R4.Collection.prototype.forEach=R4.Collection.prototype.each=function(f){for(var i=0.0,n=this.elements.length;i<n;++i){f(this.elements[i],i);}return this;};}methods=prop=null;},extend:function(prototype){var proto=Extend({},prototype);for(var prop in proto){if(/^(init(API|DOM|Clone))/.test(prop))continue;if(typeof R4.Collection.prototype[prop]!="undefined")continue;if(typeof proto[prop]!="function")continue;R4.Collection.prototype[prop]=(function(){return this.collect.apply(this,arguments);}).curry(prop);}},prototype:{_isRanqqCollection:true,collect:function(){var args=R4.U.toArray(arguments),rvs=new R4.Collection();var prop=args.shift();for(var index=0.0;index<this.elements.length;index++){if(prop=="render"){if(!args[1.0])args[1.0]={};args[1.0].index=index;}var ranqqObject=this.elements[index];var meth=(typeof prop=="function"?prop:ranqqObject[prop]);var rv;if(typeof meth=="function"){rv=meth.apply(ranqqObject,args);}else if(args.length>0.0){rv=[meth];for(var i=0.0;i<args.length;i++){rv.push(ranqqObject[args[i]]);}}else{rv=meth;}if(rv===undefined)continue;if(!rv._isRanqqObject&&rvs._isRanqqCollection)rvs=rvs.elements;rvs.push(rv);}return rvs;},extend:function(rc){for(var i=0.0,n=rc.length;i<n;++i)this.elements.push(rc.get(i));this.length=this.elements.length;},clear:function(){this.length=this.elements.length=0.0;},toAPIData:function(opts){return this.collect("toAPIData",opts);},toString:function(){return"R4(["+this.elements.join(", ")+"])";},toArray:function(){return this.elements.slice();},select:function(){var args=R4.U.toArray(arguments),rvs=new R4.Collection();var func,prop=args.shift();for(var index=0.0;index<this.elements.length;index++){var ranqqObject=this.elements[index];var meth=(typeof prop=="function"?prop:ranqqObject[prop]);var rv=(typeof meth=="function"?meth.apply(ranqqObject,args):meth);if(!rv)continue;rvs.push(ranqqObject);}return rvs;},render:function(){var i=0.0,rv,template,target,append,prepend;if(typeof arguments[0.0]=="function"||typeof arguments[0.0]=="string"){template=arguments[0.0];i=1.0;}var opts=Extend({},arguments[i]);if(opts){if(opts.target){target=opts.target;switch(opts.insert){case "replace":console.error("insert-type replace doesn't make sense with collections",this);break;case "top":console.warn("TODO implement collection.render('\u2026',{insert:top, \u2026");break;case "append":case "after":target=target.parentNode;break;case "update":target.innerHTML="";case "bottom":default:{append=target.down(".renderAppend");if(append)append.remove();break;}}delete opts.target;delete opts.insert;}if(opts.prepend){prepend=opts.prepend;prepend.addClassName("renderPrepend");delete opts.prepend;}if(opts.append){append=opts.append;append.addClassName("renderAppend");delete opts.append;}var afterInsert=opts.afterInsert;delete opts.afterInsert;}rv=this.collect("render",template,opts);if(prepend)rv.unshift(prepend);if(append)rv.push(append);if(target){for(i=0.0;i<rv.length;i++){target.appendChild(rv[i]);}if(afterInsert)afterInsert();}return rv;}}});R4.Collection.simulateArray();R4.Collection.extend(R4.handler.base_prototype);R4.Actions={login:function(event){Lightbox.request("/login?tab=sign_in",{asynchronous:true,evalScripts:true,method:"get"});},toggleNotYet:function(event){this.up().select(".users").invoke("toggle");},launchNewRanqq:function(event){location.pathname="/topics/new";return;var E_name=E.$textField({name:"topic[name]"});Lightbox(E.form({"class":"launch-new-ranqq",action:"/topics",method:"post",onsubmit:"return R4.Topic.validate(this);"},E.input({type:"hidden",name:"_action",value:"put"}),E.input({type:"hidden",name:"category",value:"1"}),E.div({"class":"head"},_._7),E.div({"class":"body"},E.label({"for":E_name.down("input[type=\"text\"]")},_._8),E_name,E.$button({onclick:"R4.Topic.submitNew(Element.up(this,'form'));"},_._9))));},startHover:function(event,target){var e=target||event.target||event;if(R4.hover)E.$removeClass(R4.hoverElement,"hover");R4.hoverElement=e;E.$addClass(e,"hover");},endHover:function(){if(R4.hoverElement){E.$removeClass(R4.hoverElement,"hover");R4.hoverElement=false;}},otherGroups:function(event){this.up(".container").down(".otherCoranqqsBody").show();},saveTopic:function(event){E.$removeClass(this,"catch");this.select(".fieldWithError").invoke("removeClassName","fieldWithError");var fields=this.serialize(true);for(var i in fields){if(/_replaced$/.test(i))delete fields[i];}var submit=true;if(!R4.Check.date(fields["topic[startdate]"],{blank:true})){submit=false;E.$addClass(this["topic[startdate]_replaced"],"fieldWithError");}if(!R4.Check.date(fields["topic[enddate]"],{blank:true})){submit=false;E.$addClass(this["topic[enddate]_replaced"],"fieldWithError");}if(!R4.Check.time(fields["topic[starttime]"],{blank:true})){submit=false;E.$addClass(this["topic[starttime]_replaced"],"fieldWithError");}if(!R4.Check.time(fields["topic[endtime]"],{blank:true})){submit=false;E.$addClass(this["topic[endtime]_replaced"],"fieldWithError");}if(!R4.Check(fields["topic[name]"])){submit=false;E.$addClass(this["topic[name]_replaced"],"fieldWithError");}if(!submit){E.$addClass(this,"catch");return false;}new Ajax.Request("/topics/",{asynchronous:true,evalScripts:true,method:"post",parameters:fields});}};Extend(R4,{mousePressed:false,mouseUp:function(event){if(event.isLeftClick()){R4.mousePressed=false;if(R4.drag.end){R4.drag.end(event);delete R4.drag.end;}}},mouseDown:function(event){if(event.isLeftClick()){var E_element;if(event.findElement("#ranqqDrag")){E_element=R4.hoverElement;}else{E_element=event.findElement(".rank")||event.findElement(".items");}if(E_element&&!E_element.hasClassName("nodrag")){R4.mousePressed=true;}}},drag:function(event){if(!event)return!!R4.drag.dragging;if(event.target.nodeName=="TEXTAREA"||event.target.nodeName=="INPUT")return true;if(!R4.mousePressed){if(R4.drag.end)R4.drag.end(event);return true;}if(R4.drag.end)return R4.drag.process(event);return R4.drag.start(event);}});Extend(R4.drag,{start:(function(event){InfoSlide.hide({quick:true});var E_element=event.target.up(".rank")||event.target.up(".items");if(!E_element||E.$hasClass(E_element,"nodrag")){return true;}R4.U.textSelect(false);var E_topic=E_element.up(".topics");var topic_id=E_topic.className.match(/topic_(\d+)/)[1.0];var E_editRanqq=E_topic.down(".editRanqq");var d=this.dragging={ranqqObject:R4(E_element),sourceElement:E_element,startTop:event.pointerY(),startLeft:event.pointerX(),dropMarker:document.getElementById("dropMarker"),dropTargets:new R4.U.dropTargets({agreed:E_editRanqq.down(".agreed"),disagreed:E_editRanqq.down(".disagreed")}),dragElement:document.getElementById("ranqqDrag"),E_ranqq:E_editRanqq,ranqq:R4(E_editRanqq)};E.$addClass(E_editRanqq,"ranqqChanged");d.dragElement.down(".information").show();d.dragOffsetTop=parseInt(d.dragElement.style.top);d.dragOffsetLeft=parseInt(d.dragElement.style.left);var bg_classNames;d.dragElement.className=d.dragElement.className.replace(/\b(removable|over_.*?)\b/,"");if(event.findElement(".editRanqq")){d.draggedFromEditRanqq=true;if(event.findElement(".agreed")){d.wasAgreed=true;E.$addClass(d.dragElement,["removable","over_agreed"]);}else{d.wasAgreed=false;E.$addClass(d.dragElement,["removable","over_disagreed"]);}}else{var rankInEditRanqq=$$(".editRanqq")[0.0].down("."+d.ranqqObject._topicItem_dom);if(rankInEditRanqq){d.draggedFromEditRanqq=false;d.sourceElement=rankInEditRanqq;d.ranqqObject=R4(rankInEditRanqq);if(rankInEditRanqq.up(".agreed")){E.$addClass(d.dragElement,"over_agreed");d.wasAgreed=true;}else{E.$addClass(d.dragElement,"over_disagreed");d.wasAgreed=false;}}else{d.draggedFromEditRanqq=false;E.$addClass(d.dragElement,"over_none");}}R4.drag.end=R4.drag.finalize;return null;}).bind(R4.drag),process:(function(event){var d=this.dragging;d.dragElement.style.top=d.dragOffsetTop+event.pointerY()-d.startTop+"px";d.dragElement.style.left=d.dragOffsetLeft+event.pointerX()-d.startLeft+"px";var target=d.dropTargets.find(event);if(d.lastTarget){if(d.lastTarget===null&&target===null)return null;if(target!==null&&d.lastTarget.position==target.position)return null;}d.lastTarget=target;if(target===null){d.dropMarker.hide();d.dragElement.className=d.dragElement.className.replace(/\bover\S+\b/,"over_none");}else{d.dragElement.className=d.dragElement.className.replace(/\bover\S+\b/,"over_"+target.type+(target.type=="agreed"&&target.position==1.0?"_first":""));var dropTop;if(target.preceding[target.preceding.length-1.0]){dropTop=target.preceding[target.preceding.length-1.0].bottom;}else{dropTop=target.top;}d.dropMarker.style.left=(target.left+3.0)+"px";d.dropMarker.style.width=target.width+"px";d.dropMarker.style.top=dropTop+"px";d.dropMarker.show();}return null;}).bind(R4.drag),finalize:(function(event){var d=this.dragging;var drop_marker=$("dropMarker");if(drop_marker)drop_marker.hide();if(!d||event===true){delete this.end;delete this.dragging;R4.U.textSelect(true);try {$("ranqqDrag").hide();} catch(e){}return null;}var target=d.dropTargets.find(event);if(target===null){if(d.draggedFromEditRanqq){new Effect.Fade(d.dragElement,{duration:0.2});}else{new Effect.Parallel([new Effect.Fade(d.dragElement,{sync:true}),new Effect.Move(d.dragElement,{sync:true,mode:"absolute",x:d.dragOffsetLeft,y:d.dragOffsetTop})],{duration:0.4});}d.ranqqObject.droppedOutside(d);}else{var dropTop,dropLeft;if(target.preceding[target.preceding.length-1.0]){dropTop=target.preceding[target.preceding.length-1.0].bottom-10.0;dropLeft=target.preceding[target.preceding.length-1.0].left;}else{dropTop=target.top+30.0;dropLeft=target.left;}new Effect.Move(d.dragElement,{duration:0.5,x:dropLeft,y:dropTop,mode:"absolute"});new Effect.Fade(d.dragElement,{duration:0.75});d.ranqqObject.droppedInside(d,target);}R4.U.textSelect(true);delete this.end;delete this.dragging;return false;}).bind(R4.drag)});R4._start.push(function(){$$(".RanqqApp").each(function(el){Event.observe(el,"mousemove",R4.drag);Event.observe(el,"mouseup",R4.mouseUp);Event.observe(el,"mousedown",R4.mouseDown);});});Extend(R4.handler,{types:[],base_prototype:{_isRanqqObject:true,TRANSIENT:["dom"],E:function(id,dom){if(dom)this.E[id]=dom;return this.E[id];},get:function(){return this;},init:function(opts){this._clientTimestamp=new Date().getTime();if(this._source.tagName){this._serverTimestamp=new Date(document.lastModified).getTime();if(R4.debug)console.log("init DOM",this.type,this);this.initDOM&&this.initDOM(opts||{});}else{this._serverTimestamp=this._source.timestamp;if(R4.debug)console.log("init API",this.type,this);this.initAPI&&this.initAPI(opts||{});}return this;},update:function(opts){this._source=opts._source;return this.init(opts);},clone:function(){return this._clone();},_clone:function(){return new this.constructor(this);},purge:function(){R4.unregister(this);return this;},toJSON:function(space){return JSON.stringify(this.toAPIData(),null,space);},toString:function(){return"R4("+this.toJSON()+")";},path:function(append){if(!append)append="";var path=[this.type.toLowerCase()+"s",this.id];return"/"+path.join("/")+append;},toAPIData:function(opts){var rv=(this._toAPIData&&this._toAPIData(opts))||{};var recurse=!opts||!opts.noRecurse;for(var property in this){var value=this[property];if(value===null||value===undefined)continue;if(property in rv)continue;if(typeof value=="function")continue;if(!/^[a-z]/.test(property))continue;if(property in this._TRANSIENT)continue;if(value.toAPIData){if(recurse){rv[property]=value.toAPIData(opts);}}else{rv[property]=value;}}return rv;},reload:function(){var args=R4.U.toArray(arguments);if(R4.U.isArray(args[args.length-1.0])){invokeArgs=args.pop();}else{invokeArgs=[];}invoke=args.pop();var opts=args.shift()||{};var cb=typeof args[0.0]=="function"?args.shift():function(){console.log(this);};opts.invoke=invoke;opts.invokeArgs=invokeArgs;if(!opts.boundTo)opts.boundTo=this;R4.load(this,opts);},loadAndExec:function(){var args=R4.U.toArray(arguments),invoke,invokeArgs;if(R4.U.isArray(args[args.length-1.0])){invokeArgs=args.pop();}else{invokeArgs=[];}invoke=args.pop();var property=args.shift(),executeLocal=false;var opts=args.shift()||{};if(typeof opts=="string")opts={append:opts};if(typeof property=="function"){property=property.call(this,opts);}if(typeof property=="string"){if(typeof opts.property=="undefined")opts.property=property;executeLocal=!!this[property];}else if(typeof property=="undefined"||typeof opts.property=="undefined"||property===false||property===null){executeLocal=false;}else{executeLocal=true;}if(executeLocal){if(!opts.boundTo)opts.boundTo=this;if(opts.property)opts.boundTo=opts.boundTo[opts.property];if(typeof invoke!="function")invoke=opts.boundTo[invoke];invoke.apply(opts.boundTo,invokeArgs);}else{if(opts.append&&opts.append._isRanqqObject)opts.append=opts.append.dom;opts.invoke=invoke;opts.invokeArgs=invokeArgs;if(!opts.boundTo)opts.boundTo=this;R4.load(this,opts);}return this;},render:function(template,opts){if(!opts)opts={};opts.template=template;if(this._isRanqqCollection)return this.render.apply(this,args);var rv,hidden;try {if(typeof template=="function");else if(typeof template=="string"){if(!this.Templates)throw"NoTemplate";if(!this.Templates[template])throw"NoTemplate";if(typeof this.Templates[template]!="function")throw"NoFunction";template=this.Templates[template];}else{throw"NoTemplate";}hidden=opts.hidden;delete opts.hidden;rv=template.call(this,opts);} catch(exc){if(exc=="NoTemplate"){console.warn(this.type+".render no template.",opts);rv=E.div({className:"ranqqBaseRender"},E.pre(this.toJSON("\t")));}else{console.error(exc,template,opts);rv=E.div({className:"ranqqBaseRender"},E.pre(String(template)),E.pre(JSON.stringify(opts)));}}if(hidden)rv.style.display="none";if(opts.target){if(opts.insert=="update"){Element.update(opts.target,rv);}else if(opts.insert=="replace"){Element.replace(opts.target,rv);}else{var insert={};if(opts.insert=="append")opts.insert="after";if(opts.insert=="prepend")opts.insert="before";insert[opts.insert||"bottom"]=rv;Element.insert(opts.target,insert);}if(opts.afterInsert)opts.afterInsert();}return rv;},fire:function(method,event){var action=(this.Actions&&this.Actions[method])||(R4.Actions&&R4.Actions[method]);if(action){if(action.call(this,event)===false){return false;}}else{console.info("Uncaught Action '"+method+"'",this,event.target,event);}return true;},ranqq_dom_class:function(){var type="",dom="",append="";var args=R4.U.toArray(arguments);if(this._ranqq_dom_class)this._ranqq_dom_class(args);for(var i=0.0;i<args.length;i++){var arg=args[i];if(!arg)continue;if(R4.U.isArray(arg)){var app=[];for(var j=0.0;j<arg.length;j++){if(!arg[j])continue;app.push(arg[j]._isRanqqObject?arg[j].dom:arg[j]);}append+=" "+app.join("_");}else if(arg._isRanqqObject){append+=" "+this.dom+"_"+arg.dom;}else if(typeof arg=="string"){if(/^:/.test(arg)){type+=this.type.toLowerCase()+arg.slice(1.0,2.0).toUpperCase()+arg.slice(2.0)+"s ";dom+=this.dom+"_"+arg.slice(1.0);}else{append+=" "+arg;}}}if(!type)type=this.type.toLowerCase()+"s";if(!dom)dom=this.dom;var rv=type+" "+dom;if(append)rv+=append;return rv.replace(/(^\s+|\s+$)/,"");},findDomElements:function(){var className="."+this.dom;for(var i=0.0;i<arguments.length;i++){if(!arguments[i])continue;if(arguments[i].slice(0.0,1.0)!="_")className+="";className+=append;}return $$(className);},addDOMElement:function(element){this._lastAccessedDomElement=E.identify(element);}}});R4.Topic={validate:function(form){try {if(Form.serialize(form,true)["topic[name]"].strip().length==0.0){R4.U.showError({name:_._10,message:_._11});return false;}} catch(e){R4.U.showJSError(e);return false;}return true;},submitNew:function(form){if(R4.Topic.validate(form)){form.submit();}}};R4.handler("Topic",{initAPI:function(opts){this.name=this._source.name;if(this._source.groups)this._groups=R4(this._source.groups);if(this._source.items){this._availableItemsContainer=R4.create("Coranqq",{owner_type:"Topic",owner_id:this.id,topic_id:this.id,topic:this});var ranqq=this._availableItemsContainer,topic=this;this._availableItems=this._availableItemsContainer._availableItems=R4(this._source.items).collect(function(){return R4.create("Corank",{topic_id:topic.id,ranqq:ranqq,item:this});});}},initDOM:function(){var topicDOM=$(this._source);this.name=topicDOM.down(".name").innerHTML.stripTags();this.E("root",topicDOM);},sideSelect:function(on){this._edit=!!on;if(on){var target;if(!target)target=$$("."+this.dom+" .topicMy")[0.0];this.render("ranqqsOfOthers",{target:target,insert:"update"});this.render("availableItems",{target:target,insert:"bottom"});}else{location.reload();}},sideYourRanqq:function(on){this._edit=!!on;var ranqq=R4.currentuser().ranqq(this.id);if(ranqq.unavailable){R4.currentuser()["_topic_ranqq_"+this.id]=ranqq=R4.create("Ranqq",{owner_type:"User",owner_id:R4.currentuser().id,topic_id:this.id,topic:this,agreed:[],disagreed:[]});}var target=$$("."+this.dom+" .topicMy")[0.0];ranqq.render("myRanqq",{target:target,insert:"update"});},_ranqq_dom_class:function(args){args.push("topicElements");args.push(this.dom+"_element");},mainRanqq:function(){return R4($$("."+this.dom+" .mainRanqq")[0.0]);},_showRanqq:function(E_topic,ranqq,afterFinish){var E_ranqq=Element.down(E_topic,".ranqqs");var E_new_ranqq=ranqq.render("mainRanqq");E_new_ranqq.style.display="none";E_ranqq.parentNode.appendChild(E_new_ranqq);var E_buttons=Element.select(E_topic,".topicActions .click_showRanqq");for(var i=0.0,n=E_buttons.length;i<n;++i){var E_button=E_buttons[i];var button_ranqq=E.$get(E_button,"ranqq");if(button_ranqq&&button_ranqq.type==ranqq.type&&button_ranqq.id==ranqq.id){Element.hide(E_button);}else{Element.show(E_button);}}new Effect.Replace(E_ranqq,E_new_ranqq,{afterFinish:function(){E_ranqq.remove();if(afterFinish)afterFinish.apply(this,arguments);},duration:0.5});},Templates:{widget:function(opts){if(!opts)opts={};var hideDisagreed=true;var E_topic=E.div({className:this.ranqq_dom_class("widget",hideDisagreed&&"noDisagreed")});var E_container=E(E_topic).div({className:"container"});var E_head=E(E_container).div({className:"head topicHead"},E.div({className:"container"},E.div({className:"name"},this.name)));var E_body=E(E_container).div({className:"body topicBody"},opts.E_ranqq,opts.E_myRanqq);var E_foot=E(E_container).div({className:"foot topicFoot"});var E_actions=E(E_container).div({className:"actions topicActions"});return E_topic;},ranqqsOfOthers:function(){var E_topic=E.div({className:[this.dom+"_element",this.dom+"_ranqqsOfOthers ranqqsOfOthers","topicElements","topicDepots"]});var E_container=E(E_topic).div({className:"container"},E.div({className:"headline"},_._12));var E_head=E(E_container).div({className:"head topicHead"});var E_body=E(E_container).div({className:"body topicBody"},E.div({className:"ranqqsOfMembers"},FrT.horizontal()));var E_content=E(E_container).div({className:"content topicMy"});var E_foot=E(E_container).div({className:"foot topicFoot"});var mainRanqq=this.mainRanqq();var group_id=mainRanqq._isCoranqq?mainRanqq.owner_id:0.0;this.loadAndExec("_groups",{append:"groups/"+group_id,property:false},function(target){this._groups.get(0.0).render("ranqqsOfMembers",{topic:this,insert:"update",target:target});},[E_body]);return E_topic;},ranqqsOfGroups:function(opts){var E_container=E.div({className:"container"});var E_head=E(E_container).div({className:"head mygroupHead"},E.div({className:"information"},E.div({className:"name"},_._13)));var E_body=E(E_container).div({className:"body mygroupBody mygroups"});var E_content=E(E_container).div({className:"content mygroupContent"}).hide();this._groups.render("map",{topic:this,target:E_body,map:new R4.Media.Map(25.0,2.0,this),insert:"update",addClass:function(){if(this._lastTopic){if(this._lastTopic.unavailable)return this._lastTopic.unavailable.status+" not_ranqqed click_ranqqsOfGroups";if(this._lastTopic._isRanqq)return"available click_ranqqsOfGroups";}return"invitable not_ranqqed click_ranqqsOfGroups";},imageAppend:E.div({className:"status"}),title:function(){if(!this._lastTopic)return _._14.interpolate({name:this.screenname});if(this._lastTopic.unavailable)return _._15.interpolate({name:this.screenname,msg:this._lastTopic.unavailable.msg});if(this._lastTopic._isRanqq)return _._16.interpolate({name:this.screenname});return this.screenname;},append:E.div({className:"clear"})});return E_container;},availableItems:function(){var E_topic=E.div({className:[this.dom+"_items","topicItems","topicElements","topicDepots"]});var E_container=E(E_topic).div({className:"container"},E.div({className:"headline"},_._17));var E_head=E(E_container).div({className:"head topicHead"});var E_body=E(E_container).div({className:"body topicBody"},FrT.horizontal());var E_foot=E(E_container).div({className:"foot topicFoot"});this.loadAndExec("_availableItems","items",function(target){this.render("standard",{asElement:"available",insert:"update",target:target});},[E_body]);return E_topic;}},Actions:{showItems:function(event){$$("."+this.dom+" .topicActions .active").invoke("removeClassName","active");$$("."+this.dom+" .topicBody \u003E div").invoke("hide");$$("."+this.dom+" .topicItems").invoke("show");},showRanqq:function(event){var E_button=$(event.target);var E_topic=E_button.up(".topics");var E_topicBody=E_topic.down(".topicBody");var ranqq=R4(E.$get(E_button,"ranqq"));var E_ranqq=E_topicBody.down("."+ranqq.dom);E_topicBody.select("\u003E div").invoke("hide");if(E_ranqq){E_ranqq.show();return;}E_ranqq=ranqq.render("loading",{target:E_topicBody});E_button.up(".topicActions").select(".click_showRanqq").invoke("removeClassName","active");E_button.addClassName("active");ranqq.loadAndExec(false,"render",["widget",{target:E_ranqq,insert:"replace"}]);}}});R4.handler("Ranqq|Coranqq",{initAPI:function(opts){var source=this._source;this.topic_id=source.topic_id;if(source.topic){var topic=R4(source.topic);if(topic){if(!("topic_id"in source)){this.topic_id=topic.id;}else if(this.topic_id!=topic.id){console.error("topic.id (",topic.id,") and topic_id (",this.topic_id,") missmatch");}}}if(source.agreed)this._agreed=R4({ranqq:this,agreed:true},source.agreed);if(source.disagreed)this._disagreed=R4({ranqq:this,agreed:false},source.disagreed);this.privacy=source.privacy;var owner=source.user||source.group||source.owner;if(owner){this._owner=R4({ranqq:this},owner);this.owner_type=this._owner.type;this.owner_id=this._owner.id;this._owner["_topic_ranqq_"+this.topic_id]=this;}else{this.owner_type=source.owner_type;this.owner_id=source.owner_id;}if(this._isCoranqq&&source.participants){this._participants=R4(source.participants);}},initDOM:function(opts){var E_ranqq=$(this._source);var m=E_ranqq.className.match(/\btopic_(\d+)_(user|group)_(new_\d+|-?\d+)\b/);this.topic_id=m[1.0];this.owner_type=m[2.0].slice(0.0,1.0).toUpperCase()+m[2.0].slice(1.0);this.owner_id=m[3.0];if(E_ranqq.down(".agreed")){this._agreed=R4({ranqq:this,opinion:true},E_ranqq.select(".agreed .rank"));this._disagreed=R4({ranqq:this,opinion:false},E_ranqq.select(".disagreed .rank"));}this._owner=R4({ranqq:this},E_ranqq.down(".owner"));if(this._owner){this._owner["_ranqq_topic_"+this.topic_id]=this;}},initClone:function(opts){delete this._serverTimestamp;if(this._isCoranqq){delete this._isCoranqq;this._isRanqq=true;this.type="Ranqq";this.dom=this.dom.slice(2.0);}this._owner=R4.currentuser();this.owner_type="User";this.owner_id=this._owner.id;this._owner["_topic_ranqq_"+this.topic_id]=this;this.privacy=this._owner.privacy;this.hideDisagree=this._owner.hideDisagree;this.loadAndExec(this._agreed,{property:false},function(){this._agreed=this._agreed.collect("clone");for(var i=0.0,n=this._agreed.length;i<n;i++)this._agreed.get(i).position=i+1.0;this._disagreed=R4([]);});},_toAPIData:function(options){var rv={topic:this.topic().toAPIData(Extend({},options,{noRecurse:true})),agreed:this._yourAgreed?this._yourAgreed.toAPIData(options):[],disagreed:this._yourDisagreed?this._yourDisagreed.toAPIData(options):[]};if(this._clonedFrom)rv.cloned_from=this._clonedFrom.dom;return rv;},_ranqq_dom_class:function(args){args.push("ranqq",["topic",this.topic_id,this.owner_type.toLowerCase(),this.owner_id]);},topic:function(){return R4.getObject("Topic",this.topic_id);},saved:function(data){console.log(data);alert("Danke, Mathias! in der Konsole siehst obs gut gegangen ist");},addNewItem:function(name){var user_id=R4.currentuser().id;var topic_id=this.topic_id;var item=R4.create("Item",{name:name,state:"new"});var rank=R4.create("Rank",{ranqq:this,topic_id:topic_id,item:item,owner_type:"User",owner_id:user_id});this._yourAgreed.push(rank);var E_rank=rank.render("myRanqq",{target:this.findEditRanqq(".agreed"),insert:"bottom"});this.renumber();item.disambiguate(E_rank);},findEditRanqq:function(selector,asArray){var rv=$$(".topic_"+this.topic_id+" .editRanqq "+(selector||""));if(asArray)return rv;return rv[0.0];},renumber:function(){var i,E_ranks,E_rank,rank;E_ranks=this.findEditRanqq(".agreed .rank",true);if(E_ranks){this._yourAgreed=new R4.Collection();for(i=0.0;i<E_ranks.length;i++){E_rank=E_ranks[i];this._yourAgreed.set(i,rank=R4(E_rank));rank.position=i+1.0;rank.render("position",{target:E_rank.down(".positions"),insert:"replace"});}}else{for(i=0.0;i<this._yourAgreed.length;i++){this._yourAgreed[i].position=i+1.0;}}var placeholder=this.findEditRanqq(".agreed .emptyRanqqPlaceholder");if(placeholder){placeholder.style.display=this._yourAgreed.length>0.0?"none":"block";}E_ranks=this.findEditRanqq(".disagreed .rank",true);if(E_ranks){this._yourDisagreed=new R4.Collection();for(i=0.0;i<E_ranks.length;i++){E_rank=E_ranks[i];this._yourDisagreed.set(i,rank=R4(E_rank));rank.position=undefined;E_rank.down(".positions").update();}}else{for(i=0.0;i<this._yourDisagreed.length;i++){this._yourDisagreed[i].position=i+1.0;}}placeholder=this.findEditRanqq(".disagreed .emptyRanqqPlaceholder");if(placeholder){placeholder.style.display=this._yourDisagreed.length>0.0?"none":"block";}return this;},yours:function(){return this.owner_type=="User"&&this.owner_id==R4.currentuser().id;},isNew:function(){return/^new/.test(this.id);},Templates:{loading:function(opts){var E_ranqq=E.div({className:this.ranqq_dom_class(opts.edit?"editRanqq":"mainRanqq","loading")},E.div({className:"container"},FrT.horizontal()));return E_ranqq;},embed:function(opts){opts=Extend({},opts,{embed:true});delete opts.target;delete opts.insert;return this.render("mainRanqq",opts);},mainRanqq:function(opts){var E_ranqq=E.div({className:this.ranqq_dom_class(opts.edit?"editRanqq":"mainRanqq")});var E_container=E(E_ranqq).div({className:"container"});var agree_headline,disagree_headline,owner_className;try {if(this.owner_id==R4.currentuser().id&&this.owner_type=="User"){agree_headline="\u003Cspan class='name' style='display:none'\u003E"+R4.currentuser().screenname.escapeHTML()+"\u003C/span\u003E "+_._18;disagree_headline=_._19;owner_className=R4.currentuser().ranqq_dom_class("owner");}else if(this.owner_type=="User"){agree_headline=_._20.interpolate({name:this._owner.screenname.escapeHTML()});disagree_headline=_._21;}else if(this.owner_id<=0.0&&this.owner_type=="Group"){agree_headline=_._22.interpolate({name:this._owner.screenname.escapeHTML()});disagree_headline=_._21;}else{agree_headline=_._23.interpolate({name:this._owner.screenname.escapeHTML()});disagree_headline=_._21;}if(!owner_className)owner_className=this._owner.ranqq_dom_class("owner");} catch(e){console.error(e);agree_headline=_._24;disagree_headline=_._21;owner_className="owner users";}var E_headContainer,E_participants;var E_head=E(E_container).div({className:"head ranqqHead"},(E_headContainer=E.div({className:"container"})));E(E_headContainer).div({className:"opinion-of"},E.html(agree_headline));E(E_headContainer).div({className:"information"},E.div({className:"updated-at"},_._25.interpolate({date:new Date(this._serverTimestamp||this._clientTimestamp).toLocaleString()})));E(E_container).div({className:"actions ranqqActions"},E.div({className:"click_share share"},_._26,E.$sprite("share")),E.div({className:"view-modes"},E.$sprite("view_minimal"),E.$sprite("view_standard"),E.$sprite("view_extended")));var E_body=E(E_container).div({className:"body ranqqBody"});var E_foot=E(E_container).div({className:"foot ranqqFoot"});var E_agreedContainer=E(E_body).div({className:"container"});var E_agreed=E(E_agreedContainer).div({className:"agreed"},FrT.horizontal());if(opts.edit&&$("newRanqqable")){E_agreedContainer.appendChild($("newRanqqable"));}var E_disagreedContainer,E_disagreed,E_disagreedHeadline;if(!opts.embed){E_disagreedContainer=E(E_body).div({className:"container"});E_disagreedHeadline=E(E_disagreedContainer).div({className:"headline"},_._27);E_disagreed=E(E_disagreedContainer).div({className:"disagreed"},FrT.horizontal());}this.loadAndExec(this._agreed&&this._disagreed,{property:false},function(template,E_agreed,E_disagreed){this._agreed.render(template,{insert:"update",target:E_agreed});if(E_disagreed){this._disagreed.render(template,{asElement:"main",insert:"update",target:E_disagreed});}},[opts.template,E_agreed,E_disagreed,E_participants]);return E_ranqq;},widget:function(opts){var edit_ranqq_class=this.type=="Ranqq"?"editRanqq":"";var E_ranqq=E.div({className:this.ranqq_dom_class(edit_ranqq_class)});var E_container=E(E_ranqq).div({className:"container"});var owner_screenname,owner_className;try {owner_screenname=this._owner.screenname;owner_className=this._owner.ranqq_dom_class("owner");} catch(e){owner_screenname="unknown";owner_className="owner users";}var E_headContainer;var E_head=E(E_container).div({className:"head ranqqHead"},(E_headContainer=E.div({className:"container"})));E(E_headContainer).div({className:"opinion-of click_switchWidget"},E.div({className:owner_className},(this.type=="Ranqq"?_._28:_._29)));var E_body=E(E_container).div({className:"body ranqqBody",display:this.type=="Coranqq"});var E_foot=E(E_container).div({className:"foot ranqqFoot"});var E_actions=E(E_container).div({className:"actions ranqqActions"},E.div({className:"share click_share"},_._26,E.$sprite("share")));if(!this.isNew());var E_bodyContainer=E(E_body).div({className:"container"});var E_agreed=E(E_bodyContainer).div({className:"agreed"},FrT.horizontal());E(E_bodyContainer).div({className:"headline disagreedHeadline"},_._19);var E_disagreed=E(E_bodyContainer).div({className:"disagreed"},FrT.horizontal());this.loadAndExec(this._agreed&&this._disagreed,{property:false},function(template,E_agreed,E_disagreed){this._agreed.render("widget",{insert:"update",target:E_agreed});this._disagreed.render("widget",{insert:"update",target:E_disagreed});if(this.type=="Ranqq"){E(E_agreed).div({className:"emptyRanqqPlaceholder",style:"display:none"},_._30);E(E_disagreed,"update").div({className:"emptyRanqqPlaceholder",style:"display:none"},_._31);}},[opts.template,E_agreed,E_disagreed]);opts.afterInsert=(function(){this.renumber();}).bind(this);if(this.type=="Ranqq"){E(E_foot).$button({className:"button publish click_publish"},_._32);return E_ranqq;}else{E(E_foot).a({className:"details",target:"_top",href:R4.URL.abs(this.path())},_._33," ",E.$sprite("arrow_right"));}var myRanqq=this.clone();var E_myRanqq=myRanqq.render("widget");this.render("drag",{target:document.body});return this.topic().render("widget",{E_ranqq:E_ranqq,E_myRanqq:E_myRanqq});},myRanqq:function(opts){var E_ranqq=E.div({className:this.ranqq_dom_class("myVersion")});var E_container=E(E_ranqq).div({className:"container"});this._owner=R4.currentuser();var owner_screenname,owner_className;try {owner_screenname=this._owner.screenname;owner_className=this._owner.ranqq_dom_class("owner");} catch(e){owner_screenname="unknown";owner_className="owner users";}var E_headContainer;var E_head=E(E_container).div({className:"head ranqqHead"},(E_headContainer=E.div({className:"container"})));E(E_headContainer).div({className:"opinion-of"},_._34);E(E_headContainer).add(this._owner.render("my_profile"));var E_body=E(E_container).div({className:"body ranqqBody"});var E_foot=E(E_container).div({className:"foot ranqqFoot"});E(E_foot).div({className:"click_privacy clear"},E.table(E.tr(E.td(R4.Inputs.Radio("privacy",_._35,2.0,this.privacy)),E.td(R4.Inputs.Radio("privacy",_._36,1.0,this.privacy)),E.td(R4.Inputs.Radio("privacy",_._37,0.0,this.privacy)))));E(E_foot).$button({className:"button delete "+(this.isNew()?"disable":"click_destroy")},_._38);E(E_foot).$button({className:"button reset click_cancelEdit"},_._39);E(E_foot).$button({className:"button save click_save"},_._40);var href="";var m=location.pathname.match(/^\/coranqqs\/\d+/);if(m)href=m[0.0];href+="/ranqqs/"+this.id;var E_actions=E(E_container).div({className:"actions ranqqActions"});if(!this.isNew());var E_bodyContainer=E(E_body).div({className:"container"});E_ranqq.className+=" editRanqq";var E_agreed=E(E_bodyContainer).div({className:"agreed"},FrT.horizontal());this.render("newRanqqable",{target:E_bodyContainer});E(E_bodyContainer).div({className:"headline"},_._19);var E_disagreed=E(E_bodyContainer).div({className:"disagreed"},FrT.horizontal());if(!this._yourAgreed&&this._agreed){this._yourAgreed=this._agreed.collect("clone");}if(!this._yourDisagreed&&this._disagreed){this._yourDisagreed=this._disagreed.collect("clone");}this.loadAndExec(this._yourAgreed&&this._yourDisagreed,{property:false},function(template,E_agreed,E_disagreed){this._yourAgreed.render(template,{insert:"update",target:E_agreed});E(E_agreed).div({className:"emptyRanqqPlaceholder",style:"display:none"},_._30);this._yourDisagreed.render(template,{insert:"update",target:E_disagreed});E(E_disagreed).div({className:"emptyRanqqPlaceholder",style:"display:none"},_._31);},[opts.template,E_agreed,E_disagreed]);opts.afterInsert=(function(){this.renumber();}).bind(this);this.render("drag",{target:document.body});return E_ranqq;},drag:function(){var E_dragElementContainer=E.div({className:"dragElementContainer"});var E_ranqqDrag=E(E_dragElementContainer).div({id:"ranqqDrag",display:false},E.$sprite("move"),E.div({className:"overlay",style:"width:"+E.$sprite.def.move[1.0]+"px;height:"+E.$sprite.def.move[2.0]+"px"}),E.div({className:"information",display:false},E.div({className:"name"})));E_ranqqDrag.observe("mouseout",function(event){if(!R4.hoverRanqqObject)return;R4.hoverRanqqObject.Actions.endHover.call(R4.hoverRanqqObject,event,R4.hoverElement);});E_ranqqDrag.observe("mousemove",function(event){if(R4.drag.dragging||!R4.mousePressed||!R4.hoverRanqqObject)return true;var fake_event=Extend({},event);fake_event.target=R4.hoverElement.down();return R4.drag.start(fake_event);});E(E_dragElementContainer).div({id:"dropMarker"},E.div());return E_dragElementContainer;},newRanqqable:function(){var E_form=E.form({"onsubmit":"return false","class":"newItem","autocomplete":"off"});E(E_form).div(E.div(E.span({className:"inputReplacementContainer formTextContainer"},E.div({"class":"formTitle"},_._41),E.input({"type":"text","name":"ranqqable[name]","size":"20","autocomplete":"off","id":"ranqqable_name","className":"formText event_newRanqqable","title":_._41,"onfocus":"InputReplacement.text_focus(this);","onchange":"InputReplacement.text_blur(this);","onblur":"InputReplacement.text_blur(this);"}))),E.div(E.$button({className:"click_newRanqqable"},_._42)));return E_form;},participant:function(){if(this._isCoranqq){console.warn("particpants of a coranqq can just be ranqqs");return;}return E.li({className:this.ranqq_dom_class("clickable click_show")},E.div({className:"container"},E.div({className:"head ranqqHead"},this._owner.render("participant"))));}},Actions:{login:function(event){Lightbox.request("/login?tab=sign_in",{asynchronous:true,evalScripts:true,method:"get",onSuccess:(function(){Lightbox.close();this.changeToEdit();}).bind(this),parameters:{topic_id:this.topic_id}});},cancelEdit:function(event){R4.drag.finalize(true);R4.confirm_leave=false;location.reload();try {event.findElement(".lightbox").close();} catch(e){}},destroy:function(event){if(confirm(_._43)){R4.destroy(this);}},cloneThis:function(event){this.changeToEdit();Lightbox.close();},loadCurrentusers:function(ev){Lightbox.close();var ranqq=R4.currentuser().ranqq(this.topic_id);if(!ranqq){console.info("Ranqq.loadCurrentusers currentusers ranqq not loaded. should never happen");}else if(ranqq.unavailable){console.info("Ranqq.loadCurrentusers currentusers ranqq not available. should never happen");}else{ranqq.changeToEdit();}},privacy:function(ev){var ranqq=this;if(ev.target.name=="privacy"){this.privacy=ev.target.value;}else if(ev.target.name=="hide_disagree"){this.hideDisagree=ev.target.checked;var E_ranqq=ev.findElement(".ranqq");if(!E_ranqq)return;if(this.hideDisagree){E_ranqq.addClassName("hideDisagree");}else{E_ranqq.removeClassName("hideDisagree");}}},save:function(event,target){if(typeof this.privacy=="undefined"){alert(_._44);return;}E.$removeClass(target,"ranqqChanged");var params={spinner:true,data:{body:this.toAPIData({changes_only:true})},onSuccess:(function(data){R4.confirm_leave=false;window.location="/ranqqs/"+data.body.id;}).bind(this)};R4.API.call("ranking/save",params);},publish:function(event,target){var params={spinner:true,data:{body:this.toAPIData({changes_only:true})},onSuccess:function(data){E.$removeClass(target,"ranqqChanged");}};R4.API.call("ranking/save",params);},show:function(event,target){var E_container;if(this._isCoranqq){E_container=target.up(".consents");}else{E_container=target.up(".participants");}E_container.select(".active").invoke("removeClassName","active");var E_otherCoranqqs=E_container.down(".otherCoranqqsBody");if(E_otherCoranqqs)E_otherCoranqqs.hide();E_otherCoranqqs=target.up(".otherCoranqqs");if(E_otherCoranqqs){E_otherCoranqqs.down(".otherCoranqqsHead .information").update(target.cloneNode(true));E.$addClass(E_otherCoranqqs,"active");}else{E.$addClass(target,"active");}var E_topic=event.findElement(".topics");var E_topicBody=E_topic.down(".topicBody");E_topicBody.select("\u003E div").invoke("hide");E_topic.select(".topicItems").invoke("hide");location.hash=this.path();var E_ranqq=E_topicBody.down("."+this.dom);if(!E_ranqq||E.$hasClass(E_ranqq,"loading")){var E_ranqq=this.render("loading",{target:E_topicBody});this.loadAndExec(false,function(E_ranqq,target,E_otherCoranqqs){this.render("mainRanqq",{target:E_ranqq,insert:"replace"});if(this._participants){var E_participants=target.down(".participants");if(!E_participants)E_participants=E(target.down()).ul({className:"body ranqqBody participants"});this._participants.render("participant",{target:E_participants,insert:"update"});if(E_otherCoranqqs){E_otherCoranqqs.down(".otherCoranqqsHead .information").update(target.cloneNode(true));}}},[E_ranqq,target,E_otherCoranqqs]);}return E_ranqq.show();},newRanqqable:function(event){var text_field=event.findElement("form").down("#ranqqable_name");if((event.type=="keydown"&&13.0==event.keyCode)||(event.type=="click"&&event.findElement(".button"))){text_field.blur();if(text_field.value.blank())return false;var rank=this.addNewItem(text_field.value);if(event.type=="keydown"){InputReplacement.empty(text_field);text_field.focus();}else{InputReplacement.empty(text_field);return false;}}else if(event.type=="change"){InputReplacement.text_blur(text_field);}return true;},newRanqqableClear:function(event){var text_field=event.target.up("form").down("#ranqqable_name");InputReplacement.empty(text_field);return false;},wall:function(event){alert("TODO implement wall api call and render in ranqq4_ranqq.js:Actions.wall");},viewMinimal:function(event,target){E.$removeClass(target,"view-extended");E.$removeClass(target,"view-standard");E.$addClass(target,"view-minimal");},viewStandard:function(event,target){E.$removeClass(target,"view-extended");E.$addClass(target,"view-standard");E.$removeClass(target,"view-minimal");},viewExtended:function(event,target){E.$addClass(target,"view-extended");E.$removeClass(target,"view-standard");E.$removeClass(target,"view-minimal");},switchWidget:function(event,target){var E_body=target.down(".ranqqBody");var eff=[];if(E_body.visible())return;if(this.type=="Coranqq"){target.down(".ranqqFoot").show();eff.push(new Effect.SlideDown(E_body,{sync:true}));target.nextSibling.down(".ranqqBody").hide();eff.push(new Effect.SlideUp(target.nextSibling.down(".ranqqBody"),{sync:true}));}else{target.down(".ranqqFoot").show();eff.push(new Effect.SlideDown(E_body,{sync:true}));target.previousSibling.down(".ranqqBody").hide();eff.push(new Effect.SlideUp(target.previousSibling.down(".ranqqBody"),{sync:true}));}new Effect.Parallel(eff,{duration:0.3});},share:function(event,target){new Ajax.Request(this.path("/api/new"),{asynchronous:true,evalScripts:true,method:"get"});}}});R4.handler("Rank|Corank",{initAPI:function(opts){var source=this._source;this._ranqq=opts&&opts.ranqq;this.opinion=opts.opinion||source.opinion||null;this.item=R4(source.item);this.position=source.position;this.topic_id=source.topic_id;this.owner_type=source.owner_type;this.owner_id=source.owner_id;this._topicItem_dom="topic_"+this.topic_id+"_item_"+this.item.id;this.why=source.why;},initDOM:function(opts){var m;if(this.topic_id)return this;var E_rank=$(this._source);if(E_rank.className.match(/\brank_\d+_why\b/)){this.owner_type="User";this.owner_id=E_rank.down(".users").match(/\buser_(\d+)\b/)[1.0];return this;}m=E_rank.className.match(/\btopic_(\d+)_item_\d+\b/);this.topic_id=parseInt(m[1.0],10.0);this._topicItem_dom=m[0.0];try {this.opinion=E_rank.className.match(/\b(dis)?agree\b/)[0.0]=="agree";if(!R4.E[this._topicItem_dom])R4.E[this._topicItem_dom]={};R4.E[this._topicItem_dom].main=E_rank;} catch(e){this.opinion=null;}if(!this.item)this.item=(opts&&opts.item)||R4(E_rank.down(".items"));this.position=E_rank.down(".positions").className.match(/position_(\d+)/)[1.0];m=E_rank.className.match(/\b(group|user)_(new_\d+|-?\d+)/);this.owner_type=m[1.0].slice(0.0,1.0).toUpperCase()+m[1.0].slice(1.0);this.owner_id=m[2.0];if(this.type=="Rank"){var E_why=E_rank.down("."+this.dom+"_why .why");if(E_why){this.why=E_why.innerHTML;}}else{null;}return this;},ranqq:function(){if(!this._ranqq)this._ranqq=R4.find(this.owner_type,this.owner_id).ranqq(this.topic_id);return this._ranqq;},_toAPIData:function(){var rv={};if(this._clonedFrom)rv.cloned_from=this._clonedFrom.dom;return rv;},_ranqq_dom_class:function(args){args.push("rank "+this._topicItem_dom);if(this.owner_type)args.push(this.owner_type.toLowerCase()+"_"+this.owner_id+"_rank");if(typeof this.opinion===true){args.push("agree");var position=parseInt(this.position,10.0);if(!isNaN(position))args.push("rank_pos_class_"+(position%2.0));}else if(typeof this.opinion===false)args.push("disagree");},initClone:function(opts){delete this._serverTimestamp;delete this.opinion;delete this.position;if(this._isCorank){delete this._isCorank;this._isRank=true;this.type="Rank";this.dom=this.dom.slice(2.0);}this.owner_type="User";this.owner_id=R4.currentuser().id;},elementInMainRanqq:function(){try {return $$(".mainRanqq ."+this._topicItem_dom)[0.0];} catch(e){return null;}},droppedOutside:function(d){if(E.$hasClass(d.dragElement,"from_widget")){d.sourceElement.parentNode.removeChild(d.sourceElement);delete this.opinion;if(d.wasAgreed)d.ranqq.renumber();}return this;},droppedInside:function(d,target){var ro,el;console.log(d,target);if(d.draggedFromEditRanqq||typeof d.wasAgreed=="boolean"){ro=this;el=d.sourceElement;E(target.renderOpts.target,target.renderOpts.insert).add(el);}else{ro=d.ranqqObject.clone();target.renderOpts.edit=true;el=ro.render(E.$hasClass(document.body,"RanqqWidget")?"widget":"standard",target.renderOpts);}ro.opinion=(target.type=="agreed");d.ranqq.renumber();},yours:function(){return this.owner_type=="User"&&this.owner_id==R4.currentuser().id;},E:function(asElement,E_rank){if(!asElement)asElement="main";if(!R4.E[this._topicItem_dom])R4.E[this._topicItem_dom]={};var es=R4.E[this._topicItem_dom];if(E_rank&&es[asElement]&&es[asElement].parentNode){es[asElement].parentNode.removeChild(es[asElement]);}if(E_rank)es[asElement]=E_rank;return es[asElement];},Templates:{standard:function(opts){if(!opts)opts={};var opinion_className;if(typeof this.opinion!="undefined"){opinion_className=this.opinion?"agree":"disagree";}var E_rank=E.div({className:this.ranqq_dom_class(opinion_className,"mouseover_startHover mouseout_endHover")});var E_container=E(E_rank).div({className:"container"});var E_head=E(E_container).div({className:"head rankHead"},E.div({className:"container"},this.render("position",opts)));if(opts.edit){E(E_container).div({className:"actions rankActions"},E.div({className:"container"},E.div({className:"drag_handle"},E.$sprite("drag_handle"))));}var E_body=E(E_container).div({className:"body rankBody"},this.item.render("standard",opts));if(!E.$hasClass(document.body,"RanqqWidget")){if(this.why||(this.yours()&&opts.edit)){var E_foot=E(E_container).div({className:"foot rankFoot"});if(this.why&&this.why._isRanqqCollection){this.why.render("why",{target:E_foot});}else{this.render("why",{edit:opts.edit,target:E_foot});}}}return E_rank;},widget:function(opts){var E_rank=this.Templates.standard.call(this,opts);return E_rank;},why:function(opts){var me=this.yours();if(!this.why&&!(opts.edit&&me))return;var E_whyContainer=E.div({className:"whyContainer"});var E_why=E(E_whyContainer).div({className:this.dom+"_why"});var owner=this.ranqq()._owner;var E_user=E(E_why).span({className:owner.ranqq_dom_class("clickable click_ownerWhy")},owner.render("media_thumbnail",{size:27.0}));E(E_user).span({className:"clickable name"+(me?" hidden":"")},owner.screenname+":");if(me){E(E_user).span({className:"your"},_._45);}if(opts.edit&&me){E(E_why).span({className:"why clickable click_editWhy "+(this.why||"blank"),title:_._46},this.why||_._47);}else{var text=this.position?_._48.interpolate({pos:this.position}):_._49;E(E_why).span({className:"opinion"},text);E(E_why).span({className:"why"},this.why);}return E_whyContainer;},mainRanqq:function(opts){if(!opts)opts={};opts.container="main";var E_rank=this.Templates.standard.call(this,opts);return E_rank;},myRanqq:function(opts){if(!opts)opts={};opts.container="edit";opts.edit=true;var E_rank=this.Templates.standard.call(this,opts);return E_rank;},position:function(opts){if(!opts)opts={};var position=parseInt(opts.position||this.position||0.0,10.0)+"";var pos_arr=position.split(/(\d?)/);var E_position=E.div({className:"positions position_"+position});if(opts.index&&opts.index!=position-1.0)E_position.className+=" exAequo";E(E_position).span({className:"posNumberText"},position);return E_position;}},Actions:{editWhy:function(ev){var why=/\bblank\b/.test(ev.target.className)?"":ev.target.innerHTML;var E_textarea;var E_editWhy=E.div({className:"editWhyContainer"},_._50,(E_textarea=R4.Inputs.TextArea("why",why,{title:_._51,resizing:true,focus:true,append:E.div({className:this.dom+"_whyEdit buttonSmall click_editWhySave"},_._52)})));InfoBox(ev.target,{"top":50.0,"left":25.0,"position":"south","content":E_editWhy,"afterOpen":function(){E_textarea.focus();R4.Inputs.TextArea.resize.bind(E_textarea);},"closeRemove":true,"className":"editWhyIB","dontCareAboutViewport":true});},editWhySave:function(ev){var textarea=ev.target.previous("textarea");var why=this.why=/\bblank\b/.test(textarea.className)?"":textarea.value;var m=ev.target.className.match(/\b(rank_.*?_why)Edit/);$$("."+m[1.0]).each(function(e){var E_why=e.down(".why");E_why.innerHTML=why||_._47;if(why)E_why.removeClassName("blank");else E_why.addClassName("blank");});ev.findElement(".infoBox").close();if(!this.ranqq()||this.ranqq()._edit)return;m=ev.target.className.match(/\brank_(\d+)/);new Ajax.Request("/ranks/"+m[1.0]+"/why",{method:"post",parameters:{"rank[why]":why}});},startHover:function(event,ranqqObjectTarget){if(R4.drag.dragging)return;R4.Actions.startHover(ranqqObjectTarget);R4.hoverRanqqObject=this;$$("."+this._topicItem_dom).invoke("addClassName","hover");var E_ranqqDrag,E_name,E_information;if((E_ranqqDrag=document.getElementById("ranqqDrag"))){var inMainRanqq=event.findElement(".mainRanqq");E_ranqqDrag.className="unselectable from_"+(inMainRanqq?"mainRanqq":"widget");E_information=E_ranqqDrag.lastChild;E_name=E_information.firstChild;E_information.clonePosition(ranqqObjectTarget.down(".rankBody"),{setTop:false,setLeft:false}).hide();E_name.innerHTML=ranqqObjectTarget.down(".itemHead .name").innerHTML;E_ranqqDrag.clonePosition(ranqqObjectTarget,{setWidth:false,setHeight:false}).show();}},endHover:function(event,ranqqObjectTarget){if(R4.drag.dragging)return;var fromElement=event.relatedTarget||event.fromElement;try {if(Element.up(fromElement,"#ranqqDrag"))return;} catch(e){}R4.Actions.endHover(ranqqObjectTarget);delete R4.hoverRanqqObject;$$("."+this._topicItem_dom).invoke("removeClassName","hover");try {document.getElementById("ranqqDrag").hide();} catch(e){}R4.drag.symbol=false;}}});R4.Item={MEDIA_SELECTOR_OPTIONS:{width:92.0,height:69.0,clip:true,preview:true},addMediaSelector:function(E_item,media,top,displayed){var E_list=E_item.down(".media-add-widget-trash-list");var attrs={};if(!displayed)attrs.style="display:none;";var E_empty=E_list.down("\u003E li \u003E .empty");if(E_empty){E_empty.remove();}return E(E_list,top?"top":"bottom").li(attrs,media.render("selector",Extend({},R4.Item.MEDIA_SELECTOR_OPTIONS)));},moveMediaToTrash:function(slide){var media=R4(slide.content.down(".medias"));if(!media)return;var E_item=this.container().up(".items");var E_selector=R4.Item.addMediaSelector(E_item,media,true);var E_before=null;var E_icon=E_item.down(".media-tab-trash-icon");if(E_icon.style.display==="none"){E_icon.style.display="";}new Effect.Replace(null,E_selector);if(!E_icon.hasClassName("selected")){R4.Item.selectMediaTab(E_icon);}},updateItemMedias:function(){var E_item=this.container().up(".items");var item=R4(E_item);item._medias=this.getMedias();},changeItemName:function(E_rank,name){E_rank=$(E_rank);var E_item=E_rank.down(".items");var E_form=this.up(".items");var item=R4(E_form);if(R4(E_item)===item){E_item.down(".name").update(name);}item.name=name;},getEditedItem:function(E_item){return Extend(E.$get(E_item,"item"),{id:/\bitem_(\S+)\b/.exec(E_item.className)[1.0],name:E_item.down("input[name=\"name\"]").value,medias:E_item.down(".carousel").carousel.getMedias()});},setId:function(E_item,id){E_item.className=E_item.className.replace(/\bitem_\S+\b/g,"")+" item_"+id;},select:function(E_item){var E_selection=$(E_item).up(".item-selection");E_selection.select(".items").invoke("removeClassName","selected");E_item.addClassName("selected");var item=R4(E_item);var E_choose=E_selection.next(".disambiguate-choose");var E_media_array=E_choose.down(".media-array");var E_title=E_choose.down(".disambiguate-choose-title");var E_subtitle=E_choose.down(".disambiguate-choose-subtitle");E_title.innerHTML="";E_subtitle.innerHTML="";E_media_array.innerHTML="";if(item._medias&&item._medias.length>0.0){for(var i=0.0,n=item._medias.length;i<n;++i){E_media_array.appendChild(item._medias.get(i).render("preview",R4.Item.MEDIA_SELECTOR_OPTIONS));}E_media_array.appendChild(E.div({"class":"clear"}));E_media_array.style.display="";}else{E_media_array.style.display="none";}if(E_item.hasClassName("new")){E(E_title).text(_._53.interpolate({name:item.name}));E_subtitle.style.display="none";E_choose.down(".button.accept").style.display="none";E_choose.down(".button.new-other").style.display="none";E_choose.down(".button.new").style.display="";}else{E(E_title).text(_._53.interpolate({name:item.name}));if(item.usage_count===0.0){E(E_subtitle).text(_._54.interpolate({name:item.name}));}else if(item.usage_count===1.0){E(E_subtitle).text(_._55.interpolate({name:item.name}));}else{E(E_subtitle).text(_._56.interpolate({name:item.name,count:item.usage_count}));}E_subtitle.style.display="";E_choose.down(".button.accept").style.display="";E_choose.down(".button.new-other").style.display="";E_choose.down(".button.new").style.display="none";}E_choose.style.display="";},acceptItem:function(E_button){var E_selection=$(E_button).up(".disambiguate-choose").previous(".item-selection");var E_item=E_selection.down(".items.selected");var E_rank=$(E.$get(E_selection,"rank",true));var item=R4(E_item);if(!item)return;if(item._state!=="complete")item._state="complete";var rank=R4(E_rank);E_item=E_rank.down(".items");R4.Item.setId(E_item,item.id);E(E_item.down(".name"),"update").text(item.name);rank.item=item;R4.Tooltip.hide(E_rank);},newFromSelected:function(E_button){var E_selection=$(E_button).up(".disambiguate-choose").previous(".item-selection");var E_item=E_selection.down(".items.selected");var E_rank=$(E.$get(E_selection,"rank",true));var item=R4(E_item);if(!item)return;var E_newItem=E_selection.down(".items.new");var newItem=R4(E_newItem)||R3.create("Item");if(newItem._state!=="complete")newItem._state="complete";newItem.name=item.name;newItem.derived_from=item.id;newItem.text=item.text;if(item._medias){newItem._medias=item._medias.slice();}else{delete newItem._medias;}var rank=R4(E_rank);E_item=E_rank.down(".items");R4.Item.setId(E_item,newItem.id);E(E_item.down(".name"),"update").text(newItem.name);newItem.edit(E_rank,{medias:{Wikipedia:R4.Item.getItemMediasOfSource(E_selection,"wikipedia")}});},newItem:function(E_button){var E_selection=$(E_button).up(".disambiguate-choose").previous(".item-selection");var E_item=E_selection.down(".items.selected");var E_rank=$(E.$get(E_selection,"rank",true));var item=R4(E_item);if(!item)return;if(item._state!=="complete")item._state="complete";var rank=R4(E_rank);E_item=E_rank.down(".items");R4.Item.setId(E_item,item.id);E(E_item.down(".name"),"update").text(item.name);rank.item=item;item.edit(E_rank,{medias:{Wikipedia:R4.Item.getItemMediasOfSource(E_selection,"wikipedia")}});},getItemMediasOfSource:function(E_selection,source){var items=R4(E_selection.select(".items"));var medias=[];var mediamap={};for(var i=0.0;i<items.length;++i){var item=items.get(i);if(item.source===source&&item._medias){for(var j=0.0;j<item._medias.length;++j){var media=item._medias.get(j);if(mediamap[media.about]!==true){mediamap[media.about]=true;medias.push(media);}}}}return R4(medias);},mediaTabSearch:function(E_icon,E_content,query){var resource=E.$get(E_content,"resource",true);var E_list=E_content.down("ul");var E_status=E_icon.down(".media-tab-status-icon");E_list.innerHTML="";R4.Item.setMediaTabStatus(E_icon,E_content,true);var E_spinner=E(E_list).li(E.div({"class":"spinner"}));R4.Media.searchLDO(query,{render:R4.Media.renderQueryArg(R4.Item.MEDIA_SELECTOR_OPTIONS),resources:[resource],onMedia:function(media){E(E_spinner,"before").li(media.render("selector",Extend({},R4.Item.MEDIA_SELECTOR_OPTIONS)));},onFinish:function(){E_spinner.remove();R4.Item.setMediaTabStatus(E_icon,E_content,false);}});},mediaTabResults:function(E_icon,E_content,medias){var E_list=E_content.down("ul");E_list.innerHTML="";var options=Extend({},R4.Item.MEDIA_SELECTOR_OPTIONS);for(var i=0.0;i<medias.length;++i){E_list.appendChild(medias.get(i).render("selector",options));}R4.Item.setMediaTabStatus(E_icon,E_content,false);},setMediaTabStatus:function(E_icon,E_content,active){var E_list=E_content.down("ul");var E_status=E_icon.down(".media-tab-status-icon");if(active){E_status.innerHTML="";E_status.removeClassName("media-tab-status-icon-finished").addClassName("media-tab-status-icon-searching");E_content.down("form .button").addClassName("disabled");}else{var resource=E.$get(E_content,"resource",true);var count=E_list.select(".media-selector").length;E_content.down("form .button").removeClassName("disabled");E_status.removeClassName("media-tab-status-icon-searching").addClassName("media-tab-status-icon-finished");E_status.innerHTML="\u003Cdiv\u003E"+count+"\u003C/div\u003E";var statusText;if(count===0.0){E(E_list).li(E.div({"class":"empty"},_._57));statusText=_._58.interpolate({resource:resource});}else if(count===1.0){statusText=_._59.interpolate({resource:resource});}else{statusText=_._60.interpolate({count:String(count),resource:resource});}E.$set(E_status,"tooltip",statusText,true);}},mediaTabSearchClick:function(E_form){try {if(!Element.down(E_form,".button").hasClassName("disabled")){var E_content=Element.up(E_form,"div");R4.Item.mediaTabSearch($(E.$get(E_content,"tabIcon",true)),E_content,E_form.search.value,E.$get(E_content,"resource",true));}} catch(e){console.error(e);}},selectMediaTab:function(E_icon){if(E.$get(E_icon,"tabAnimating"))return;var E_content=$(E.$get(E_icon,"tabContent",true));var E_icons=Element.up(E_icon,".media-add-widget-icons");var E_selected=E_icons.down("\u003E .selected");E.$set(E_icon,"tabAnimating",true);var opts={duration:0.25,afterFinish:E.$set.bind(E,E_icon,"tabAnimating",false,false)};if(E_icon===E_selected){E_icon.removeClassName("selected");new Effect.Replace(E_content,null,opts);}else{E_icon.addClassName("selected");if(E_selected){E_selected.removeClassName("selected");new Effect.Replace($(E.$get(E_selected,"tabContent",true)),E_content,opts);}else{new Effect.Replace(null,E_content,opts);}}}};R4.handler("Item",{initAPI:function(opts){var source=this._source;this.source=source.source;this.name=source.name;this.text=source.text;this.url=source.url;this.privacy=!!source.privacy;this.usage_count=source.usage_count||0.0;this._total_medias=source.total_medias;if(source.medias)this._medias=R4({item:this},source.medias);this._state="state"in source?source.state:"complete";},initDOM:function(opts){var E_item=$(this._source);R4(E_item.up(".ranks"),{item:this});this.name=E_item.down(".name").innerHTML.unescapeHTML();},isNew:function(){return/^new/.test(this.id);},isComplete:function(){return this._state==="complete";},isEmpty:function(){return(this.text||"").strip().length===0.0&&(!this._medias||this._medias.length===0.0);},edit:function(E_rank,options){if(this._state==="new"){this.disambiguate(E_rank);}else{var medias=(options&&options.medias)||{};E_rank=$(E_rank);var E_form=this.render("edit",{rank:E.identify(E_rank),name:this.name});var query=this.name;E_form.select(".linkeddata-media-tab").each(function(E_content){var resource=E.$get(E_content,"resource",true);var E_icon=E_form.down("#"+E.$get(E_content,"tabIcon",true));var foundMedias=medias[resource];if(foundMedias){R4.Item.mediaTabResults(E_icon,E_content,foundMedias);}else{R4.Item.mediaTabSearch(E_icon,E_content,query);}});R4.Tooltip.show(E_rank,E_form,{position:"right",hideon:"click","class":"disambiguate"});}},disambiguate:function(E_rank){E_rank=$(E_rank);E_rank.up(".ranqqs").select("*[data-tooltip-id]").each(R4.Tooltip.hide);var E_spinner=E.div({"class":"item-array-spinner"});var E_text_item_array_clear=E.div({"class":"clear"});var cbCount=0.0;R4.Tooltip.show(E_rank,[E.div({"class":"disambiguate-head"},_._61),E.div({"class":"item-selection","data-rank":E.identify(E_rank)},E.div({"class":"text-item-array",style:"display:none;"},E_text_item_array_clear),E.div({"class":"item-array"},E_spinner,this.render("newSelector"),E.div({"class":"clear"}))),E.div({"class":"disambiguate-choose",style:"display:none;"},E.div({"class":"disambiguate-choose-head"},E.div({"class":"disambiguate-choose-title"}),E.div({"class":"disambiguate-choose-subtitle"})),E.div({"class":"media-array"}),E.div({"class":"disambiguate-choose-buttons"},E.$button({"class":"accept",onclick:"R4.Item.acceptItem(this); event.stop();"},_._62),E.br(),E.$button({"class":"new-other",onclick:"R4.Item.newFromSelected(this); event.stop();"},_._63),E.$button({"class":"new",onclick:"R4.Item.newItem(this); event.stop();",style:"display:none;"},_._64)))],{position:"right",hideon:"click","class":"disambiguate"});function addItem(item){if(item._medias&&item._medias.length>0.0){E_spinner.parentNode.insertBefore(item.render("selector"),E_spinner);}else{var E_text_item_array=E_text_item_array_clear.parentNode;E_text_item_array.insertBefore(item.render("textOnlySelector"),E_text_item_array_clear);E_text_item_array.style.display="";}}++cbCount;R4.API.call("item/find",{parameters:{query:this.name,render:R4.Media.renderQueryArg(R4.Item.MEDIA_SELECTOR_OPTIONS)},onSuccess:function(response){for(var i=0.0,n=response.body.length;i<n;++i){addItem(R4(response.body[i]));}},onError:function(error){R4.U.showError(error);},onFinish:function(){--cbCount;if(cbCount===0.0&&E_spinner.parentNode){E_spinner.parentNode.removeChild(E_spinner);}}});++cbCount;R4.Media.searchLDO(this.name,{resources:["Wikipedia"],render:R4.Media.renderQueryArg(R4.Item.MEDIA_SELECTOR_OPTIONS),onResults:function(objects){for(var i=0.0,n=objects.length;i<n;++i){var obj=objects[i];if(obj.type==="Media"){obj={type:"MediaGroup",name:obj.caption,resource:obj.source,about:obj.about,url:obj.url,text:"",medias:[obj]};}var item=R4.create("Item",{name:obj.name,text:obj.text,source:obj.resource,url:obj.about,medias:obj.medias});addItem(item);}},onFinish:function(){--cbCount;if(cbCount===0.0){E_spinner.parentNode.removeChild(E_spinner);}}});},hasChanges:function(E_item){var data=R4.Item.getEditedItem(E_item);if(!["id","source","name","text","url","privacy"].all((function(name){return this[name]===data[name];}).bind(this))){return true;}if(!this._medias){if(data.medias.length>0.0){return true;}else{return false;}}if(this._medias.length!==data.medias.length)return true;var media_ids={};for(var i=0.0,n=this._medias.length;i<n;++i){media_ids[this._medias.get(i).id]=true;}for(var i=0.0,n=this._medias.length;i<n;++i){if(!(data.medias.get(i).id in media_ids)){return true;}}return false;},addMediaByUrl:function(form){var data=Form.serialize(form,true);if(!data.url)return;var media={content:data.url};if(data.caption)media.caption=data.caption;this.submitMedia(Element.up(form,".items"),{data:{body:media}});form.url.value="";form.caption.value="";},addMediaByUpload:function(E_upload){var E_form=E_upload.down("form");var E_file=E_form.file;var E_caption=E_upload.down("input[name=\"caption\"]");var caption=E_caption.value.strip();var media={content_part:"file"};if(caption)media.caption=caption;this.submitMedia(E_upload.up(".items"),{format:"html",form:E_form,data:{body:media},onFinish:E_file.setValue.bind(E_file,"")});E_caption.value="";},submitMedia:function(element,params){var carousel=$(element).down(".carousel").carousel;var handle=carousel.addDeferred({caption:_._65});params.data.render=[R4.Media.renderQueryArg({preview:true,clip:true,width:carousel.options.preview.width,height:carousel.options.preview.height}),R4.Media.renderQueryArg({preview:false,clip:false,width:carousel.options.slide.width,height:carousel.options.slide.height})];params.onSuccess=this._submitMediaSuccess.bind(this,handle);params.onError=handle.onError.bind(handle);R4.API.call("media/create",params);},_submitMediaSuccess:function(handle,response){handle.onMedia(response.body);},droppedOutside:function(d){console.log("outside",this,d);},droppedInside:function(d,target){d.ranqqObject=R4.create("Rank",{topic_id:target.ranqqObject.topic_id,ranqq:target.ranqqObject,item:this});return d.ranqqObject.droppedInside(d,target);},_toAPIData:function(options){var rv={};if((!options||!options.noRecurse)&&this._medias){rv.medias=this._medias.toAPIData(options);}return rv;},mediaTabIcon:function(image,title){return E.div({"class":"media-tab-icon"},E.img({src:image,alt:title,title:title}),E.div({"class":"media-tab-status-icon media-tab-status-icon-searching"}));},mediaTab:function(resource){return{icon:this.mediaTabIcon("/images/"+resource.toLowerCase()+"-icon32.png",resource),content:E.div({"class":"linkeddata-media-tab","data-resource":resource},E.form({"class":"media-search",onsubmit:"R4.Item.mediaTabSearchClick(this); return false;"},E.$textField({name:"search",value:this.name}),E.$button({"class":"disabled",onclick:"R4.Item.mediaTabSearchClick(Element.up(this,\"form\")); return false;"},_._66)),E.ul({"class":"media-add-widget-list"}))};},trashTab:function(){var title=_._67;return{icon:E.div({"class":"media-tab-icon media-tab-trash-icon",style:"display:none;"},E.img({src:"/images/trash-icon.png",alt:title,title:title})),content:E.div({"class":"trash-media-tab"},E.ul({"class":"media-add-widget-list media-add-widget-trash-list"}))};},urlTab:function(){var E_urlInput=E.$textField({name:"url"});var E_urlCaptionInput=E.$textField({name:"caption"});var title=_._68;return{icon:E.div({"class":"media-tab-icon"},E.img({src:"/images/link-icon.png",alt:title,title:title})),content:E.form({"class":"url-media-tab",onsubmit:"R4(Element.up(this, \".items\")).addMediaByUrl(this); return false;"},E.table([[E.label({"for":E_urlInput.down("input[type=\"text\"]")},_._69+":"),E_urlInput],[E.label({"for":E_urlCaptionInput.down("input[type=\"text\"]")},_._70+":"),E_urlCaptionInput]]),E.div(E.$button({"class":"add click_addMediaByUrl"},_._42)))};},uploadTab:function(){var E_uploadInput=E.input({type:"file","class":"click_uploadKeydown",name:"file"});var E_fileCaptionInput=E.$textField({name:"caption","class":"click_uploadKeydown"});var title=_._71;return{icon:E.div({"class":"media-tab-icon"},E.img({src:"/images/upload-icon.png",alt:title,title:title})),content:E.div({"class":"upload-media-tab"},E.table([[E.label({"for":E_uploadInput},_._72+":"),E.form(E_uploadInput)],[E.label({"for":E_fileCaptionInput.down("input[type=\"text\"]")},_._70+":"),E_fileCaptionInput]]),E.div(E.$button({"class":"add click_addMediaByUpload"},_._42)))};},mediaAddWidget:function(){var E_icons=E.div({"class":"media-add-widget-icons"},E.nbsp);var E_content=E.div({"class":"media-add-widget-content"});var tabs=["YouTube","Wikipedia"].collect(this.mediaTab.bind(this));tabs.unshift(this.urlTab());tabs.unshift(this.uploadTab());tabs.push(this.trashTab());for(var i=0.0,n=tabs.length;i<n;++i){var tab=tabs[i];tab.icon.observe("click",R4.Item.selectMediaTab.methodize());E.$set(tab.icon,"tabContent",E.identify(tab.content),true);E.$set(tab.content,"tabIcon",E.identify(tab.icon),true);tab.content.addClassName("media-tab");tab.content.style.display="none";E_icons.appendChild(tab.icon);E_content.appendChild(tab.content);}E_icons.appendChild(E.div({"class":"clear"}));return E.div({"class":"media-add-widget"},E_icons,E_content,E.div({"class":"clear"}));},Templates:{standard:function(opts){var E_item=E.div({"class":this.ranqq_dom_class()});var E_container=E(E_item).div({"class":"container"});E(E_container).div({"class":"head itemHead"},E.div({"class":"information"},E.span({"class":"name"},this.name)));if(opts.edit){E(E_container).div({"class":"actions itemActions"},E.div({className:"container"},E.div({className:"show_details"},E.$sprite("show_details",{"class":"click_details"}))));}return E_item;},drag:function(opts){return E.div({id:"ranqqDrag","class":opts.overClassName,style:"display:none"},E.div({"class":"name"},this.name),E.div({"class":"background"}));},details:function(options){if(!options)options={};var dataset={};if("rank"in options){dataset.rank=options.rank;}var E_name=[this.render("sourceIcon"),this.name];var E_item=E.div({"class":this.ranqq_dom_class("nodrag"),dataset$raw:dataset},E.h3({"class":"name"},this.url?E.a({href:this.url,target:"ranqq_extern_link"},E_name):E_name));var medias=this._medias?this._medias.elements:null;if(medias&&medias.length>0.0){if(medias.length===1.0){E.add(E_item,medias[0.0].render("standard",{width:230.0,height:172.0}));}else{new Carousel(medias,{parent:E_item});}}if(this.privacy){var priv=_._73;E(E_item).img({src:"/images/privacy.gif",alt:priv,title:priv});}E(E_item).div({"class":"text scrolling"},this.text);if(options.editable){E(E_item).p({"class":"ranqqEditItem"},E.$button({"class":"edit click_edit"},_._74));}return E_item;},textOnlySelector:function(options){return E.div({"class":this.ranqq_dom_class("nodrag"),onclick:"R4.Item.select(this)"},this.render("sourceIcon")," ",E.span({"class":"name"},this.name));},selector:function(options){return E.div({"class":this.ranqq_dom_class("nodrag"),onclick:"R4.Item.select(this)","data-tooltip":E.div(this.render("sourceIcon")," "+this.name).innerHTML},(this._medias&&this._medias.length>0.0?this._medias.get(0.0).render("preview",R4.Item.MEDIA_SELECTOR_OPTIONS):E.div({"class":"noborder"},E.div({"class":"spacer"}),E.div({"class":"label"},this.name))));},newSelector:function(options){return E.div({"class":this.ranqq_dom_class("nodrag new"),onclick:"R4.Item.select(this);","data-tooltip":E.div(this.render("sourceIcon"),_._75.interpolate({name:this.name})).innerHTML},E.div({"class":"border"},E.div({"class":"spacer"}),E.div({"class":"label"},_._76)));},sourceIcon:function(options){var name=this.source;if(!name){name="Ranqq";}else if(!name.match(/[A-Z]/)){name=name.capitalize();}var title=_._77.interpolate({source:name}).escapeHTML();return E.img({"class":"sourceIcon",src:"/images/"+name.toLowerCase().replace(/\s/g,"-")+"-icon.png",alt:"",title:title});},edit:function(options){var medias=this._medias?this._medias.elements:[];var carousel=new Carousel(medias,{editable:true});var name="name"in options?options.name:this.name;carousel.observe("afterAdd",R4.Item.updateItemMedias);carousel.observe("beforeRemove",R4.Item.moveMediaToTrash);carousel.observe("afterRemove",R4.Item.updateItemMedias);return E.div({"class":this.ranqq_dom_class("edit nodrag"),dataset$raw:{rank:options.rank},dataset:{item:{privacy:this.privacy,text:this.text,url:this.url,source:this.source}}},E.div({"class":"item-edit-head"},this.render("sourceIcon"),E.$editable(name,{name:"name",onChange:R4.Item.changeItemName.curry(options.rank)})),carousel.container(),this.mediaAddWidget());},widgetDetails:function(options){var E_rank=options.E_rank;var rank=R4(E_rank);var width=options.size.width-6.0;var height=options.size.height-6.0;var mediaWidth=Math.max(width-20.0,48.0);var mediaHeight=Math.round(mediaWidth*3.0/4.0);return E.div({"class":this.ranqq_dom_class("widget-item-details nodrag"),style:{width:width+"px",height:height+"px",left:options.position.x+"px",top:options.position.y+"px"}},E.div({"class":"head"},E.$button({"class":"click_hideWidgetItemInfo"},_._78),E.div({"class":"name"},rank.position+". "+this.name)),(this._medias&&this._medias.length>0.0?this._medias.get(0.0).render("preview",{width:mediaWidth,height:mediaHeight,clip:true}):null),E.div({"class":"metadata"},_._79.interpolate({nr:rank.position})));}},Actions:{details:function(event){var E_rank=Element.up(event.target,".rank");if($(document.body).hasClassName("RanqqWidget")){var E_topic=E_rank.up(".topics");var dims=E_topic.getDimensions();var E_details=this.render("widgetDetails",{E_rank:E_rank,size:dims,position:{x:dims.width,y:0.0}});E_rank.up("#pageWidget").appendChild(E_details);new Effect.Parallel([new Effect.Move(E_topic,{x:-dims.width,mode:"absolute",sync:true}),new Effect.Move(E_details,{x:0.0,mode:"absolute",sync:true})],{duration:0.25});}else if(E_rank.up(".editRanqq")){this.edit(E_rank);}else{Lightbox(this.render("details",{rank:E.identify(E_rank),displayed:true}),{id:"edit_item_lightbox"});}},addMediaByUrl:function(event){this.addMediaByUrl(Element.up(event.target,"form"));},addMediaByUpload:function(event){this.addMediaByUpload(Element.up(event.target,".upload-media-tab"));},uploadKeydown:function(event){if(event.keyCode===13.0){this.addMediaByUpload(Element.up(event.target,".upload-media-tab"));event.stop();}},selectMedia:function(event){var E_selector=Element.up(event.target,".media-selector").up("li");if(E.$get(E_selector,"adding"))return;var E_list=E_selector.up("ul");E_list.up(".items").down(".carousel").carousel.add(R4(E_selector.down(".medias")));var E_after=null;if(E_list.select("\u003E li")===1.0){E_after=E(E_list).li({style:"display:none;"},E.div({"class":"empty"},_._80));}E.$set(E_selector,"adding",true);new Effect.Replace(E_selector,E_after,{afterFinish:Element.remove.curry(E_selector)});},edit:function(event){var E_rank=$(E.$get(Element.up(event.target,".items"),"rank",true));if(E_rank){this.edit(E_rank);}},hideWidgetItemInfo:function(event){var E_widget=$("pageWidget");var E_topic=E_widget.down("\u003E .topics");var E_details=E_widget.down("\u003E .widget-item-details");new Effect.Parallel([new Effect.Move(E_topic,{x:0.0,mode:"absolute",sync:true}),new Effect.Move(E_details,{x:E_topic.getWidth(),mode:"absolute",sync:true,afterFinish:Element.remove.curry(E_details)})],{duration:0.25});}}});R4.handler("User",{initAPI:function(opts){var source=this._source;if("screenname"in source)this.screenname=source.screenname;if("unregistered"in source)this.unregistered=source.unregistered;var ranqq=source.ranqq||opts.ranqq;if(ranqq){this._lastTopic=this["_topic_ranqq_"+ranqq.topic_id]=R4(ranqq)||ranqq;}if("agegroup"in source)this.agegroup=source.agegroup;if("gender"in source)this.gender=source.gender;if("region"in source)this.region=Extend({},source.region);if("media"in source)this._media=R4(source.media);},ranqq:function(topic){var topic_id;if(parseInt(topic,10.0))topic_id=parseInt(topic,10.0);else if(typeof topic=="string")topic_id=topic.match(/topic_(\d+)/)[1.0];else topic_id=topic.id;return this["_topic_ranqq_"+topic_id]||{topic_id:topic_id,unavailable:{status:"unavailable",msg:_._81}};},me:function(){return this.id==R4.currentuser().id;},_ranqq_dom_class:function(args){if(this.me())args.push("me");},Actions:{ownerWhy:function(event){var fake_event={target:$$(".ranqqsOfOthers ."+this.dom)[0.0].down(),type:"click"};var group=R4(fake_event.target.up(".groups"));group.Actions.ranqqsOfGroup.call(this,fake_event,true);this.Actions.ranqqsOfMembers.call(this,fake_event);},showRanqq:function(event){var E_participants=event.findElement(".participants");var E_topicBody=event.findElement(".topicBody");var E_coranqq;var E_user=event.findElement(".users");try {E_coranqq=E_topicBody.down("."+E_user.className.match(/\bparticipant_(coranqq_\d+)\b/)[1.0]);} catch(e){console.error(e);}E_topicBody.select("\u003E div").invoke("hide");var topic=R4(event.findElement(".topics"));var ranqq=this.ranqq(topic);var E_ranqq=E_topicBody.select("."+ranqq.dom)[0.0];var copy_participants=(function(E_coranqq,E_ranqq){var E_participants=E_ranqq.down(".participants .container").hide();if(!E_coranqq)return;E(E_participants,"update").html(E_coranqq.down(".participants .container").innerHTML);E_participants.down("."+this.dom).addClassName("active").siblings().invoke("removeClassName","active");return E_participants.show();}).bind(this);if(E_ranqq){E_ranqq.show();copy_participants(E_coranqq,E_ranqq);}else{E_ranqq=E(E_topicBody).div({className:"ranqqs ranqq container"},FrT.horizontal());this.loadAndExec("_topic_ranqq_"+topic.id,{append:topic},function(target,coranqq){E_ranqq=this.render("mainRanqq",{target:E_ranqq,insert:"replace"});copy_participants(E_coranqq,E_ranqq);},[E_ranqq,E_coranqq]);}return event;},ranqqsOfMembers:function(event){var E_member=event.target.up(".users");var E_group=E_member.up(".groups");var E_topic=E_group.up(".ranqqsOfOthers");var E_members=event.target.up(".members");var E_content=E_members.next(".content").show();if(/local/.test(location.host)&&this._lastTopic){if(this._checkIfLastTopicStillTheSame_id&&this._lastTopic.id!=this._checkIfLastTopicStillTheSame_id)alert("R4 this._lastTopic possible mismatch");this._checkIfLastTopicStillTheSame_id=this._lastTopic.id;}if(!this._lastTopic||this._lastTopic.unavailable){var msg;switch(this._lastTopic&&this._lastTopic.unavailable.status){case "refused":msg=_._82.interpolate({name:this.screenname});break;case "invited":msg=_._83.interpolate({name:this.screenname});break;case "invitable":default:{msg=E.div({className:"invites"},_._84.interpolate({name:this.screenname}));break;}}E_content.update(msg);E_topic.select(".groups").invoke("removeClassName","active");}else{if(!E_member.hasClassName("active")){this._lastTopic.loadAndExec("_agreed",{property:false},"render",["ranqqsOfOthers",{target:E_content.update(FrT.horizontal()),insert:"update"}]);this.memberActive(true);E_topic.select(".groups").invoke("removeClassName","active");}}},confirmPassword:function(event){var E_user=Element.up(event.target,".users");var E_input=event.findElement("input");var other_name=/^(.*)\[[^\[\]]*\]$/.exec(E_input.name)[1.0]+(/\[new_password_confirmation\]$/.test(E_input.name)?"[new_password]":"[new_password_confirmation]");var E_other=E_user.down("input[name="+JSON.stringify(other_name)+"]");if(E_other.value===E_input.value){E.$addClass(E_input.up(),"passwordsMatch");E.$addClass(E_other.up(),"passwordsMatch");FieldErrors.clear(E_input,E_other);}else{FieldErrors.add(E_input);FieldErrors.add(E_other);}}},memberActive:function(active){return;var switch_func=function(element,active){if(typeof active!="boolean")active=false;if(active==element.hasClassName("active"))return;var i=0.0,activeWidth=35.0,top=0.0,left=0.0,space=parseInt(element.getStyle("margin-right"),10.0),width=parseInt(element.getStyle("height"),10.0);if(active){space=space/width*activeWidth;width=activeWidth;top=-10.0;left=-5.0;}try {i=parseInt(element.className.match(/\bindex_(\d+)\b/)[1.0],10.0);} catch(e){}element[(active?"add":"remove")+"ClassName"]("active").down(".mapClipper").setStyle({width:width+"px",height:width+"px",top:top+"px",left:left+"px",zIndex:(active?100.0:0.0)}).down("img").setStyle({height:width+"px",left:"-"+parseInt((width+space)*i,10.0)+"px"});};var element=$(this._lastAccessedDomElement);element.siblings().each(switch_func);switch_func(element,active);},Templates:{map:function(opts){if(!opts)opts={};var map=opts.map?opts.map:new R4.Media.Map(35.0,2.0,this);var title=opts.title?opts.title.call(this,opts):this.screenname;var html_class=this.ranqq_dom_class();if(opts.action)html_class+=" click_"+opts.action;if(typeof opts.index!="undefined")html_class+=" index_"+opts.index;if(typeof opts.addClass=="function"){var className=opts.addClass.call(this,opts);html_class+=" "+(typeof className=="string"?className:(className?" active_true":" active_false"));}else if(typeof opts.addClass=="string"){html_class+=" "+className;}var E_member=E.div({className:html_class,style:(opts.style||"")+";position:relative;"+"width:"+map.width+"px;height:"+map.width+"px;"+"margin:0 "+map.space+"px "+map.space+"px 0;",title:title});var E_container=E(E_member).div({className:"container"});var E_head=E(E_container).div({className:"head userHead"});E(E_head).div({className:"information"},map.render(this),opts.imageAppend.cloneNode(true),E.div({className:"name"},this.screenname));return E_member;},invite:function(){var E_invite=E.div({className:this.ranqq_dom_class()},E.input({type:"checkbox",name:this.dom,value:1.0,checked:"checked"}),E.label({"for":this.dom},this.screenname));return E_invite;},participant:function(){return E.li({title:this.screenname,className:this.ranqq_dom_class("opinion-of")},E.div({className:"name"},this.screenname),E.div({className:"information"},this.render("media_thumbnail",{size:27.0})));},my_profile:function(){return E.div({title:this.screenname,className:this.ranqq_dom_class()},E.div({className:"container"},E.div({className:"head userHead"},E.div({className:"name"},this.screenname),E.div({className:"information"},this.render("media_thumbnail",{size:30.0}))),E.div({className:"actions userActions"},E.div({className:"container"},E.a({className:"messages",href:"/users/"+this.id+"#messages"},_._85),E.a({className:"profile",href:"/users/"+this.id+"#edit"},_._86),E.a({className:"home",href:"/users/"+this.id},_._87))),E.div({className:"marker"},E.$sprite("group_marker"))));},media_thumbnail:function(opts){if(!opts.size)opts.size=27.0;var media_path=(this._media&&this._media.url.replace(/\/[^\/]*$/,""))||"/media/ec158c00-4bf8-012d-5ea1-001b2122e50c";return E.img({style:"width:"+opts.size+"px;height:"+opts.size+"px",className:"media-thumbnail",src:media_path+"/screen_img_"+opts.size+".jpg",alt:this.screenname});},selector:function(options){return E.li({"class":this.ranqq_dom_class(),onclick:"R4.UserSelect.select(this);"},this.render("avatar",options),E.span({"class":"name"},this.screenname));},avatar:function(options){return E.div({"class":"avatar"},this._media?this._media.render("preview",{width:48.0,height:48.0,clip:true}):"");}}});Extend(R4,{currentuser:function(obj){if(obj)R4._currentuser=R4(obj);if(!R4._currentuser){R4._currentuser=R4.create("User",{unregistered:true,screenname:_._88});}return R4._currentuser;}});R4.UserSelect={submit:function(button,callback){var div=Element.up(button,".user-select");var id=div.down("input[name=\"user_id\"]").value;if(id!==""){callback.call(div,R4({type:"User",id:id}));Element.down(div,".user-select-popup").hide();}},select:function(item){this._select(item);Element.up(item,".user-select-popup").hide();},changed:function(input){var div=Element.up(input,".user-select");var old_value=div.down("input[name=\"old_user_select\"]").value;if(input.value!=old_value){div.down("input[name=\"user_id\"]").value="";div.down("input[name=\"old_user_select\"]").value=input.value;if(div._api_callback){div._api_callback.cancel();div._api_callback=null;}if(typeof div._type_delay_timer=="number"){clearTimeout(div._type_delay_timer);}div._type_delay_timer=setTimeout(this._request_search.bind(this,input),500.0);}},_show_popup:function(popup){var input=Element.up(popup,".user-select").down(".inputReplacementContainer");var dims=input.getDimensions();var offset=input.positionedOffset();popup.style.top=(offset.top+dims.height)+"px";popup.style.left=offset.left+"px";Element.show(popup);},_request_search:function(input){var query=input.value.strip();if(query.length<2.0)return;var div=Element.up(input,".user-select");div.down(".user-select-spinner").show();div._type_delay_timer=null;div._api_callback=R4.API.call(div.down("input[name=\"action\"]").value,{query:query,onSuccess:(function(response){div._api_callback=null;var users=response.body;var list=div.down("ul.user-select-list");list.innerHTML="";if(users.length===0.0){list.up(".user-select-popup").hide();div.down("input[name=\"user_id\"]").value="";}else{this._show_popup(list.up(".user-select-popup"));for(var i=0.0,n=users.length;i<n;++i){var user=R4(users[i]);list.appendChild(user.render("selector"));}}}).bind(this),onFinish:Element.hide.curry(div.down(".user-select-spinner"))});},_select:function(item){var list=Element.up(item,"ul");var user=R4(item);list.select("\u003E li.selected").invoke("removeClassName","selected");Element.addClassName(item,"selected");var div=list.up(".user-select");div.down("input[name=\"old_user_select\"]").value=user.screenname;div.down("input[name=\"user_id\"]").value=user.id;div.down("input[name=\"user_select\"]").value=user.screenname;var user_select=div.down("input[name=\"user_select\"]");user_select.value=user.screenname;user_select.focus();user_select.select();},_select_next:function(div){var popup=div.down(".user-select-popup");var list=popup.down("\u003E ul.user-select-list");var item=list.down("\u003E li.selected");if(!item){item=list.down("\u003E li");}else{item=item.next("li");if(!item)item=list.down("\u003E li");}if(item){this._show_popup(popup);this._select(item);}},_select_previous:function(div){var popup=div.down(".user-select-popup");var list=popup.down("\u003E ul.user-select-list");var item=list.down("\u003E li.selected");if(!item){item=list.lastElementChild;}else{item=item.previous("li");if(!item)item=list.lastElementChild;}if(item){this._show_popup(popup);this._select(item);}},keydown:function(input,event){var keyCode=event.keyCode;if(keyCode===0.0&&event.charCode){keyCode=String.fromCharCode(event.charCode).toUpperCase().charCodeAt(0.0);}switch(keyCode){case 38.0:if(!event.shiftKey&&!event.ctrlKey&&!event.altKey){this._select_previous(Element.up(input,".user-select"));Event.stop(event);}break;case 40.0:if(!event.shiftKey&&!event.ctrlKey&&!event.altKey){this._select_next(Element.up(input,".user-select"));Event.stop(event);}break;case 27.0:if(!event.shiftKey&&!event.ctrlKey&&!event.altKey){var div=Element.up(input,".user-select");if(div._api_callback){div._api_callback.cancel();div._api_callback=null;}if(typeof div._type_delay_timer=="number"){clearTimeout(div._type_delay_timer);div._type_delay_timer=null;}div.down(".user-select-popup").hide();}break;case 13.0:if(!event.shiftKey&&!event.ctrlKey&&!event.altKey){var div=Element.up(input,".user-select");div.down(".user-select-buttons a.button").onclick();}Event.stop(event);break;default:{this.willChange(input);}}},willChange:function(input){this.changed.bind(this).defer(input);},blur:function(input){var div=Element.up(input,".user-select");var popup=Element.down(div,".user-select-popup");if(popup.visible()){setTimeout(function(){if(!E.$hasClass(input,"focus")){popup.hide();}},500.0);}}};R4.MultiUserSelect={selected:function(element){return Element.down(element,".multi-user-select-list").select(".users input").collect(function(user){return user.value;});},add:function(element,user,options){if($A(this.selected(element)).include(user.id))return;var list=Element.down(element,".multi-user-select-list");var item=E(list).li({style:"display:none;","class":"users user_"+user.id},E.input({type:"hidden",name:"users["+user.id+"]",value:user.id}),E.span({"class":"screenname"},user.screenname));E(item).a({"class":"button",onclick:this.remove.bind(this,item,options)},_._89);this._exec_callbacks.call(item,["add","change"],options);new Effect.Replace(null,item);},remove:function(item,options){Element.down(item,"input").remove();this._exec_callbacks.call(item,["remove","change"],options);new Effect.Replace(item,null,{afterFinish:Element.remove.curry(item)});},_exec_callbacks:function(events,callbacks){if(callbacks){for(var i=0.0,n=events.length;i<n;++i){var callback=callbacks["on"+events[i]];if(typeof callback=="function"){callback.call(this);}else if(typeof callback=="string"){eval(callback);}}}}};R4.Group={validate:function(form){try {if(Form.serialize(form,true)["group[name]"].strip().length==0.0){R4.U.showError({name:_._10,message:_._90});return false;}} catch(e){R4.U.showJSError(e);return false;}return true;},submitNew:function(form){if(R4.Group.validate(form)){form.submit();}}};R4.handler("Group",{initAPI:function(opts){var source=this._source;this.screenname=source.screenname;this._admin=source.admin;this._isMember=source.isMember;this._media=source.media;var ranqq=source.ranqq||opts.ranqq;if(ranqq){this._lastTopic=this["_topic_ranqq_"+ranqq.topic_id]=R4({group:this},ranqq)||ranqq;}if(source.members)this._members=R4({group:this},source.members);this._invitable=parseInt(this.id,10.0)>0.0;},initDOM:function(options){var E_group=$(this._source);this.screenname=E_group.down(".name").innerHTML.unescapeHTML();},ranqq:function(topic){var topic_id;if(parseInt(topic,10.0))topic_id=parseInt(topic,10.0);else if(typeof topic=="string")topic_id=topic.match(/topic_(\d+)/)[1.0];else topic_id=topic.id;return this["_topic_ranqq_"+topic_id]||{topic_id:topic_id,unavailable:{status:"unavailable",msg:_._81}};},destroy:function(){if(confirm(_._91.interpolate({group:this.screenname}))){R4.API.call("group/"+this.id+"/destroy",{spinner:true,onSuccess:function(){window.location="/users/home";}});}},editMember:function(user){var E_edit=$("member_edit_box");var E_container=E_edit.down(".memberContainer");E.add(E_container,[user.render("avatar"),E.span({"class":"name"},user.screenname)],"update");E_edit.show();},Actions:{ownerWhy:function(event){var ranqq=event.findElement(".ranqq");},ranqqsOfGroup:function(event){var E_group=event.target.up(".groups").addClassName("active");var E_roo=E_group.up(".ranqqsOfOthers");var E_result=E_group.down(".body").next(".content");E_roo.select(".groupContent").invoke("hide");E_group.siblings().invoke("removeClassName","active");E_result.show();var m=E_roo.className.match(/topic_(\d+)/);if(this.ranqq(m[1.0])===undefined){this.loadAndExec("_topic_ranqq_"+m[1.0],m[0.0],"render",["ranqqsOfOthers",{target:E_result.update(FrT.horizontal()),insert:"update"}]);}try {E_group.down(".members").show().select(".users").each(function(gm){try {R4.find(gm).memberActive(false);} catch(e){}});} catch(e){}},ranqqsOfGroups:function(event){var E_mygroup=event.findElement(".mygroups");var E_topic=E_mygroup.up(".ranqqsOfOthers");var E_content=E_mygroup.down(".content").show();if(/local/.test(location.host)&&this._lastTopic){if(this._checkIfLastTopicStillTheSame_id&&this._lastTopic.id!=this._checkIfLastTopicStillTheSame_id)alert("R4 this._lastTopic possible mismatch");this._checkIfLastTopicStillTheSame_id=this._lastTopic.id;}if(!this._lastTopic||this._lastTopic.unavailable){var msg;switch(this._lastTopic&&this._lastTopic.unavailable.status){case "refused":msg=_._82.interpolate({name:this.screenname});break;case "invited":msg=_._83.interpolate({name:this.screenname});break;case "invitable":default:{msg=E.div({className:"invites"},_._84.interpolate({name:this.screenname}));break;}}E_content.update(msg);E_topic.select(".groups").invoke("removeClassName","active");}else{if(!E_member.hasClassName("active")){this._lastTopic.loadAndExec("_agreed",{property:false},"render",["ranqqsOfOthers",{target:E_content.update(FrT.horizontal()),insert:"update"}]);this.memberActive(true);E_topic.select(".groups").invoke("removeClassName","active");}}},invite:function(event){var E_group=event.target.up(".groups");var E_roo=E_group.up(".ranqqsOfOthers");var topic=R4(E_roo.className.replace(/^.*?(topic_\d+).*/,"$1"));var E_result=E_group.down(".groupContent");var invites=R4(E_group.select(".invitable"));E_result.update(E.div({className:topic.ranqq_dom_class(":invites")},E.form({className:"container"},E.div({className:"headline"},_._92),E.div({className:"invites"},invites.render("invite")),E.input({type:"submit",value:_._93})))).show();},addTopic:function(event){var E_group=event.target.up(".groups");var topic=R4(event.target.up(".ranqqsOfOthers").className.match(/topic_\d+/)[0.0]);Lightbox("Launch \u00bb"+topic.name+"\u00ab in group \u00bb"+this.screenname+"\u00ab"+"\nTODO: onSubmit this.loadAndExec({method: 'post', append: topic},this.render,'ranqqsOfOthers',{target:E_group,insert:update}} } to add topic to group and group reload with E_group as target");}},Templates:{ranqqsOfMembers:function(opts){var coranqq=this.ranqq(opts.topic),active="available";if(coranqq&&coranqq.unavailable)active=coranqq.unavailable.status+" not_ranqqed";var E_group=E.div({className:this.ranqq_dom_class()});var E_container=E(E_group).div({className:"container "+active});var E_head=E(E_container).div({className:"head groupHead"},E.div({className:"information"},E.span({className:"name clickable click_ranqqsOfOthers"},_._94.interpolate({name:this.screenname}))));var E_body=E(E_container).div({className:"body groupBody members"});E(E_container).div({className:"content groupContent"}).hide();var E_foot=E(E_container).div({className:"foot groupFoot members"});E(E_container).div({className:"content groupContent"}).hide();this.loadAndExec("_members",function(target,topic){var renderOpts={topic:topic,map:new R4.Media.Map(35.0,2.0,this),insert:"append",addClass:function(opts){if(this.ranqq(opts.topic)){if(this.ranqq(opts.topic).unavailable)return this.ranqq(opts.topic).unavailable.status+" not_ranqqed click_ranqqsOfMembers";if(this.ranqq(opts.topic)._isRanqq)return"available click_ranqqsOfMembers";}return"invitable not_ranqqed click_ranqqsOfMembers";},imageAppend:E.div({className:"status"}),title:function(opts){if(!this.ranqq(opts.topic))return _._95.interpolate({name:this.screenname});if(this.ranqq(opts.topic).unavailable)return _._15.interpolate({name:this.screenname,msg:this.ranqq(opts.topic).unavailable.msg});if(this.ranqq(opts.topic)._isRanqq)return _._96.interpolate({name:this.screenname});return this.screenname;}};var participants=this.select(function(topic){return!this.ranqq(topic).unavailable;},topic);renderOpts.target=E(target.down(".groupBody"),"update").div({className:"headline"},_._97);renderOpts.append=E.div({className:"clear"});participants.render("map",renderOpts);var not_yet=this.select(function(topic){return!!this.ranqq(topic).unavailable;},topic);renderOpts.target=E(target.down(".groupFoot"),"update").div({className:"headline catch click_toggleNotYet"},E.span({className:"clickable"},_._98.interpolate({num:not_yet.length})));renderOpts.append=E.div({className:"clear"});renderOpts.style="display:none";not_yet.render("map",renderOpts);},[E_group,opts.topic]);return E_group;},map:function(opts){if(!opts)opts={};var map=opts.map?opts.map:new R4.Media.Map(25.0,2.0,this);var title=opts.title?opts.title.call(this,opts.titleOpts):this.screenname;var html_class=this.ranqq_dom_class();if(opts.action)html_class+=" click_"+opts.action;if(typeof opts.index!="undefined")html_class+=" index_"+opts.index;if(typeof opts.addClass=="function"){var className=opts.addClass.call(this,opts.addClassOpts);html_class+=" "+(typeof className=="string"?className:(className?" active_true":" active_false"));}else if(typeof opts.addClass=="string"){html_class+=" "+className;}var E_map=E.div({className:html_class,style:"position:relative;"+"width:"+map.width+"px;height:"+map.width+"px;"+"margin:0 "+map.space+"px "+map.space+"px 0;",title:title});var E_container=E(E_map).div({className:"container"});var E_head=E(E_container).div({className:"head userHead"});E(E_head).div({className:"information"},map.render(this),opts.imageAppend.cloneNode(true),E.div({className:"name"},this.screenname));return E_map;}}});R4.Media={QueuedRender:{_queue:{},request:function(id,options){if(typeof options==="string"){options=[options];}for(var i=0.0,n=options.length;i<n;++i){var opt=options[i];var request;if(opt in this._queue){request=this._queue[opt];request.medias[id]=true;clearTimeout(request.timer);}else{var request=this._queue[opt]={render:opt,medias:{}};request.medias[id]=true;}var callback=(function(){R4.API.call("media/get",{parameters:{id:$H(this.medias).keys(),render:this.render},onSuccess:(function(request){var medias=R4(request.body);var render=this.render;for(var i=0.0,n=medias.length;i<n;++i){var media=medias.get(i);R4.Media.replacePlaceholder(media.id,render,(function(html){var E_media=E.html(html)||E.span();E.$set(E_media,"cacheid",render,true);return E_media;}).curry(media._cache[render]));}}).bind(this),onError:(function(error){var medias=$H(this.medias).keys();var render=this.render;if(this.render[0.0]==="p"){for(var i=0.0,n=medias.length;i<n;++i){R4.Media.replacePlaceholder(medias[i],render,E.img.bind(E,{title:error.name.stripTags(),src:"/images/broken.png"}));}}else{for(var i=0.0,n=medias.length;i<n;++i){R4.Media.replacePlaceholder(medias[i],render,function(){return E.span({title:error.message.stripTags()},error.name);});}}}).bind(this)});delete R4.Media.QueuedRender._queue[this.render];}).bind(request);request.timer=setTimeout(callback,250.0);}}},replacePlaceholder:function(id,cacheId,builder){var effects=[];var placeholders=$$(".renderedMediaPlaceholder_"+id+"_"+cacheId);for(var i=0.0,n=placeholders.length;i<n;++i){var placeholder=placeholders[i];if(placeholder.visible()){effects.push(new Effect.Fade(placeholder,{sync:true}));}else{var wrapper=placeholder.up();var parent;if(wrapper&&(parent=wrapper.up())){var rendered=builder();parent.insertBefore(rendered,wrapper);wrapper.remove();}}}if(effects.length>0.0){new Effect.Parallel(effects,{duration:0.25,afterFinish:function(){var effects=[];for(var i=0.0,n=placeholders.length;i<n;++i){var placeholder=placeholders[i];var wrapper=placeholder.up();var parent;if(wrapper&&(parent=wrapper.up())){var rendered=builder();rendered.setOpacity(0.0);parent.insertBefore(rendered,wrapper);wrapper.remove();effects.push(new Effect.Appear(rendered,{sync:true}));}}new Effect.Parallel(effects,{duration:0.25});}});}},Map:function(width,space){this.width=width;this.space=space;this.objects=new R4.Collection();this.src="/images/maps/";var obj,i;for(i=2.0;i<arguments.length;i++){obj=arguments[i];if(!obj)continue;if(obj._isRanqqCollection)this.objects=this.objects.concat(obj);else this.objects.push(obj);}for(i=0.0;i<this.objects.length;i++){obj=this.objects.get(i);if(!obj.type)continue;this.src+=obj.type.slice(0.0,1.0)+obj.id;}this.src=this.src+"_"+width+"_"+space+".png";},Stack:function(medias){this.medias=R4(medias||[]);},renderQueryArg:function(options){if(options===true||(options.width===undefined&&options.height===undefined&&options.preview===undefined&&options.clip===undefined))return"true";else if(options===false)return"false";var arg=(options.preview?"p":"r");if(options.width!==undefined){arg+=options.width;}arg+="x";if(options.height!==undefined){arg+=options.height;}if(options.clip!==undefined){arg+=options.clip?"c":"C";}return arg;},searchLDO:function(query,options){options=Extend({},options);var renderOpts={};if("render"in options){renderOpts.render=options.render;delete options.render;}var callbacks={onResults:options.onResults||function(objects){for(var i=0.0,n=objects.length;i<n;++i){var obj=objects[i];if(obj.type==="MediaGroup"){callbacks.onMediaGroup(obj);}else{callbacks.onMedia(obj);}}},onMedia:options.onMedia||function(media){console.log("Media:",media);},onMediaGroup:options.onMediaGroup||function(group){for(var i=0.0,n=group.medias.length;i<n;++i){callbacks.onMedia(group.medias[i]);}},onError:options.onError||function(error){console.error("R4.Media.searchLDO Error:",error);},onFinish:options.onFinish||Prototype.emptyFunction};delete options.onMedia;delete options.onError;delete options.onFinish;var finishedLDOQuery=false;var cbCount=0.0;var CreateMediaParams=function(objects){++cbCount;this._mediaMap={};this._objects=objects;this.data=Extend({body:[]},renderOpts);for(var i=0.0,n=objects.length;i<n;++i){var obj=objects[i];if(obj.type==="MediaGroup"){for(var j=0.0,m=obj.medias.length;j<m;++j){this.addMedia(obj.medias[j],obj);}}else{this.addMedia(obj);}}};CreateMediaParams.prototype={addMedia:function(media,group){var groups;if(media.about in this._mediaMap){groups=this._mediaMap[media.about].groups;}else{this._mediaMap[media.about]={media:media,groups:(groups=[])};this.data.body.push({caption:media.title||media.name||media.text||media.description,content:media,source:media.source||media.resource});}if(group){groups.push(group);}},onSuccess:function(response){var medias=response.body.collect(function(media){return R4(media);});var mediaMap={};for(var i=0.0;i<medias.length;++i){var media=medias[i];if(!(media.about in this.params._mediaMap)){this.params.addMedia(medias[i]);}mediaMap[media.about]=media;}var objects=[];var requestObjects=this.params._objects;for(var i=0.0;i<requestObjects.length;++i){var object=requestObjects[i];if(object.type==="MediaGroup"){var group=Extend({},object,{medias:[]});for(var j=0.0;j<object.medias.length;++j){var media=mediaMap[object.medias[j].about];if(!media){console.log("ranqq refused to create media for:",object.medias[j]);}else{group.medias.push(media);}}objects.push(group);}else{var media=mediaMap[object.about];if(!media){console.log("ranqq refused to create media for:",object);}else{objects.push(media);}}}var last=finishedLDOQuery&&cbCount===1.0;callbacks.onResults(objects,last);},onError:callbacks.onError,onFinish:function(){--cbCount;if(finishedLDOQuery&&cbCount===0.0){callbacks.onFinish();}}};LinkedData.search(query,function(data){if(!data.finished){if(data.last){finishedLDOQuery=true;}var params=new CreateMediaParams(data.results);if(params.data.body.length>0.0){R4.API.call("media/create",params);}else{var request={params:params};var response={body:[]};try {params.onSuccess.call(request,response);} finally {params.onFinish.call(request,response);}}}},options);}};Extend(R4.Media.Map.prototype,{offset:function(i){return(this.width+this.space)*i-2.0;},offsetObject:function(object){if(!object)return 0.0;for(var i=0.0;i<this.objects.length;i++){if(this.objects.get(i)==object)return this.offset(i);}return null;},render:function(object){if(!isNaN(object))object=this.objects.get(object);if(!object)object=this.objects.get(0.0);return E.div({"class":"mapClipper",style:"top:0;left:0;"+"width:"+this.width+"px;height:"+this.width+"px;"},E.img({"class":"mapImage",src:this.src,alt:(object.screenname||object.name),style:"position:absolute;left:-"+this.offsetObject(object)+"px;height:"+this.width+"px;"}));}});R4.Media.Stack.prototype={render:function(options){var element;if(!options)options={};var className=options.className||options["class"];delete options.className;delete options["class"];if(!this.medias||this.medias.length===0.0){element=E.div({"class":"media-stack-empty with-tooltip-right "+className},E.nbsp);}else if(this.medias.length===1.0){var media=this.medias.get(0.0);element=E.div({"class":"media-stack-single with-tooltip-right "+className,onclick:R4.U.code("R4.find(\"Media\",%{id}).showOverlay({full:true});",{id:media.id})},media.render("preview",Extend({},R4.Media.Stack.PREVIEW_OPTIONS)));}else{var data={medias:this.medias.collect("id")};if(options)data.options=options;element=E.div({"class":"media-stack with-tooltip-right "+className,onclick:"R4.Media.Stack.show(this);",dataset:{mediaStack:data}},this.medias.get(0.0).render("preview",Extend({},R4.Media.Stack.PREVIEW_OPTIONS)));}return element;}};Extend(R4.Media.Stack,{PREVIEW_OPTIONS:{width:92.0,height:69.0,clip:true,preview:true},show:function(E_stack){R4.Tooltip.hide(E_stack);var stack=E.$get(E_stack,"mediaStack");var medias=stack.medias.collect(function(id){return R4.find("Media",id);});var options=stack.options||{};var dims=Element.getDimensions(E_stack);var height=dims.height-20.0;var width=(options.width||320.0);var E_previews=medias.collect(function(media){return E.div({"class":"media-stack-frame",onclick:R4.U.code("R4.find(\"Media\",%{id}).showOverlay({full:true});",{id:media.id})},media.render("preview",Extend({},R4.Media.Stack.PREVIEW_OPTIONS)));});if(E_previews.length>0.0){E_previews[0.0].className+=" selected";}var E_selector=E(E_stack.parentNode).div({"class":"media-stack-selector",style:{left:(E_stack.offsetLeft-19.0)+"px",top:(E_stack.offsetTop-1.0)+"px",height:height+"px",width:width+"px",display:"none"}},E.div({"class":"media-stack-scroll-arrow-left",style:{height:height+"px"},onclick:"R4.Media.Stack.scrollLeft(Element.up(this,\".media-stack-selector\"));"}),E.div({"class":"media-stack-scroll-arrow-right",style:{height:height+"px"},onclick:"R4.Media.Stack.scrollRight(Element.up(this,\".media-stack-selector\"));"}),E.div({"class":"media-stack-scroll-area",style:{height:height+"px",width:(width-38.0)+"px"},onmousewheel:R4.Media.Stack._wheel,onDOMMouseScroll:R4.Media.Stack._wheel},E.div({"class":"media-stack-scroller",style:{height:height+"px",width:(medias.length*(R4.Media.Stack.PREVIEW_OPTIONS.width+10.0))+"px"}},E_previews,E.div({"class":"clear"}))));new Effect.Appear(E_selector,{duration:0.25,afterFinish:R4.Media.Stack._install_close_handler.curry(E.identify(E_stack),E.identify(E_selector))});},scroll:function(E_selector,where){if(E.$get(E_selector,"scrolling"))return;var E_scrollArea=E_selector.down(".media-stack-scroll-area");var E_scroller=E_scrollArea.down("\u003E .media-stack-scroller");var E_selected=E_scroller.down("\u003E .selected");var E_next;if(!E_selected){E_next=E_scroller.down("\u003E .media-stack-frame");}else{if(where==="next"&&E_scroller.getWidth()-E_selected.offsetLeft<E_scrollArea.getWidth())return;E_next=E_selected[where](".media-stack-frame");if(E_next){E_selected.removeClassName("selected");}}if(!E_next)return;E_next.addClassName("selected");E.$set(E_selector,"scrolling",true);new Effect.SmoothScroll(E_scrollArea,{duration:0.25,x:E_next.offsetLeft-Element.positionedOffset(E_scroller).left,afterFinish:E.$set.bind(E,E_selector,"scrolling",false,false)});},scrollLeft:function(E_selector){this.scroll(E_selector,"previous");},scrollRight:function(E_selector){this.scroll(E_selector,"next");},_wheel:function(event){if(!event){event=window.event;}var E_selector=event.findElement(".media-stack-selector");event.cancelBubble=true;Event.stop(event);var delta=0.0;if(event.wheelDelta){delta=event.wheelDelta/120.0;}else if(event.detail){delta=-event.detail/3.0;}R4.Media.Stack.scroll(E_selector,delta>0.0?"previous":"next");},_install_close_handler:function(stack_id,selector_id){var handler=function(event){if(!event.findElement("#"+selector_id)&&!event.findElement("#"+stack_id)&&!event.findElement(".media-overlay")){var E_selector=$(selector_id);if(E_selector){new Effect.Fade(E_selector,{duration:0.25,afterFinish:Element.remove.curry(E_selector)});var elements=E_selector.select("*[data-tooltip]");for(var i=0.0,n=elements.length;i<n;++i){var element=elements[i];R4.Tooltip.hide(element);E.$remove(element,"tooltip");}}Event.stopObserving(document,"click",handler);}};Event.observe(document,"click",handler);}});R4.handler("Media",{initAPI:function(options){var data=this._source;if(!this._cache||options.clearCache)this._cache={};this.content_type=data.content_type;this.caption=data.caption;this.width=data.width;this.height=data.height;this.source=data.source;if(data.rendered){if(R4.U.isArray(data.rendered)){for(var i=0.0,n=data.rendered.length;i<n;++i){var rendered=data.rendered[i];this._cache[this.cacheId(rendered.options)]=rendered.html;}}else{this._cache[this.cacheId(data.rendered.options)]=data.rendered.html;}}this.url=data.url;this.link=data.link;this.uuid=data.uuid;this.about=data.about;},toAPIData:function(options){if(!options)options={};if(options.changes_only){if(this.id&&!/new/.test(this.id)){return{id:this.id};}else{var rv={};["content_type","content","url","caption"].each((function(name){var value=this[name];if(value){rv[name]=value;}}).bind(this));if(options.content_part){rv.content_part=options.content_part;}return rv;}}else{return R4.handler.base_prototype.toAPIData.call(this,options);}},cacheId:function(options){var dim=this.dimensions(options);var cacheId=(options.preview?"p":"r")+[dim.width,dim.height].join("x");if("clip"in options)cacheId+=options.clip?"c":"C";return cacheId;},dimensions:function(options){if(!options)options={};var width=options.width;var height=options.height;var clip=!!options.clip;if(options.full){if(this.width)width=this.width;if(this.height)height=this.height;}else{if(!width)width=this.width;if(!height&&width&&this.width&&this.height){height=Math.round(this.height*width/this.width);}}return{width:width,height:height,clip:clip};},showOverlay:function(options){options=Extend({width:this.width||550.0},options||{});var lightbox=Lightbox(E.div(this.render("standard",options)));lightbox.layer.addClassName("media-overlay");return lightbox;},Templates:{standard:function(options){if(!options)options={};var href=(this.link||this.url);var E_caption=[this.render("sourceIcon")," \n ",this.caption];if(href){var source=_._77.interpolate({source:this.source.capitalize()}).escapeHTML();E_caption=E.a({href:href,title:source,target:"_blank"},E_caption);}var rCacheId=this.cacheId(Extend({clip:false},options,{preview:false}));var pCacheId;var rendered=this._cache[rCacheId];var preview;if(options.preview){pCacheId=this.cacheId(Extend({clip:false},options.preview,{preview:true}));preview=this._cache[pCacheId];}var rv;if(rendered&&(preview||!options.preview)){var E_media=E.html(rendered);rv=[E.div(E_media),E_caption];E.$set(rv[0.0],"cacheid",rCacheId,true);if(preview){rv.push(E.html(preview));}}else{var E_rendered;var renderDims=[];var style,dims,width,height;if(rendered){E_rendered=E.html(rendered);E.$set(E_rendered,"cacheid",rCacheId,true);}else{dims=this.dimensions(options);dims.preview=false;renderDims.push(R4.Media.renderQueryArg(dims));style={};if(dims.width){style.width=dims.width+"px";}if(dims.height){style.height=dims.height+"px";}E_rendered=E.div({style:style,"class":this.ranqq_dom_class()},E.div({"class":"renderedMediaPlaceholder renderedMediaPlaceholder_"+this.id+"_"+rCacheId}));}rv=[E.div(E_rendered),E_caption];if(preview){var E_preview=E.html(preview);E.$set(E_preview,"cacheid",pCacheId,true);rv.push(E_preview);}else if(options.preview){dims=this.dimensions(options.preview);dims.preview=true;renderDims.push(R4.Media.renderQueryArg(dims));style={};if(dims.width){style.width=dims.width+"px";}if(dims.height){style.height=dims.height+"px";}rv.push(E.div({style:style,"class":this.ranqq_dom_class()},E.div({"class":"renderedMediaPlaceholder renderedMediaPlaceholder_"+this.id+"_"+pCacheId})));}R4.Media.QueuedRender.request(this.id,renderDims);}return rv;},preview:function(options){options=Extend({},options||{},{preview:true});var cacheId=this.cacheId(options);var preview=this._cache[cacheId];if(preview){preview=E.html(preview);E.$set(preview,"cacheid",cacheId,true);return preview;}var dims=this.dimensions(options);dims.preview=true;var previewDims=R4.Media.renderQueryArg(dims);var style={};if(dims.width){style.width=dims.width+"px";}if(dims.height){style.height=dims.height+"px";}var E_preview=E.div({style:style,"class":this.ranqq_dom_class()},E.div({"class":"renderedMediaPlaceholder renderedMediaPlaceholder_"+this.id+"_"+cacheId}));R4.Media.QueuedRender.request(this.id,previewDims);return E_preview;},sourceIcon:function(options){var name=this.source;if(!name.match(/[A-Z]/)){name=name.capitalize();}var title=_._77.interpolate({source:name}).escapeHTML();return E.img({"class":"sourceIcon",src:"/images/"+name.toLowerCase().replace(/\s/g,"-")+"-icon.png",alt:"",title:title});},selector:function(options){var E_preview=this.render("preview",options);var attrs={"class":"preview",target:"_blank",href:this.link||this.url||"#",onclick:"R4(Element.down(this,\".medias\")).showOverlay(); return false;"};return E.div({"class":"media-selector"},E.a(attrs,E_preview),E.a(Extend({},attrs,{"class":"caption"}),this.render("sourceIcon")," \n ",this.caption),E.$button({"class":"add click_selectMedia"},_._42),E.div({"class":"clear"}));},tooltip:function(options){return [this.render("sourceIcon")," \n ",this.caption];}}});R4.Inputs={Text:{event:function(event){switch(event.type){case "change":var isBlank=/\bblank\b/.test(this.className);if(isBlank){this.nextSibling.value="";}else{this.nextSibling.value=this.value;}if(/^\s+$/.test(this.value)){this.value=this.title;if(!isBlank)this.className+=" blank";}break;case "focus":case "cut":case "paste":case "drop":case "keydown":if(/\bblank\b/.test(this.className)){this.className=this.className.replace(/\bblank\b/,"");this.value="";}break;default:{break;}}return true;}},TextArea:function(name,value,opts){if(!opts)opts={};if(!value)value="";var args={className:["formText","catch","event_textEnter"],name:name,title:opts.title,id:opts.id,rows:opts.rows,cols:opts.cols,autocomplete:"off"};if(opts.className)args.className.push(opts.className);var focus_event;if(opts.resizing){args.className.push("event_resizing");focus_event=function(ev){R4.Inputs.Text.event.call(this,ev);R4.Inputs.TextArea.resizing.call(this,ev);};}else{focus_event=R4.Inputs.Text.event;}var ta_value=value;if(/^\s*$/.test(value)){args.className.push("blank");ta_value=args.title;}var E_textareaContainer=E.span({className:"formTextContainer formTextAreaContainer inputReplacementContainer"},E.textarea(args,ta_value).observe("focus",focus_event),E.input({type:"hidden",name:name,value:value}));if(opts.append)E(E_textareaContainer).add(opts.append);if(opts.resizing){R4.Inputs.TextArea.initResizing(E_textareaContainer);}if(opts.focus)E_textareaContainer.focus();return E_textareaContainer;},TextField:function(name,value,opts){},CheckBox:function(name,label,value,checked,opts){if(typeof checked!="boolean")checked=(value==checked);var args=Extend({},opts,{type:"checkbox",value:value,name:name,checked:checked});var input=E.input(args);return E.span({className:"inputContainer radioContainer"},input,E.label({"for":input},label));},Radio:function(name,label,value,checked,opts){if(typeof checked!="boolean")checked=(value==checked);var args=Extend({},opts,{type:"radio",value:value,name:name,checked:checked});var input=E.input(args);return E.span({className:"inputContainer radioContainer"},input,E.label({"for":input},label));},Submit:function(name,value,opts){}};R4.InputsExtends={TextArea:{initResizing:function(textarea){if(typeof textarea=="string")textarea=document.getElementById(textarea);if(textarea){if(!/\bevent_resizing\b/.test(textarea.classname))return;textarea.focus();textarea.select();R4.Inputs.TextArea.resize.call(textarea);textarea.blur();}else{$$("textarea.event_resizing").each(function(textarea){textarea.focus();textarea.select();R4.Inputs.TextArea.resize.call(textarea);textarea.blur();});}},resize:function(){var parentNodeHeightSet=!!this.parentNode.style.height||this.parentNode.style.height=="auto";if(!parentNodeHeightSet)this.parentNode.style.height=this.parentNode.scrollHeight+"px";this.style.height="auto";this.style.height=this.scrollHeight+"px";if(!parentNodeHeightSet)this.parentNode.style.height="";if(Prototype.Browser.IE){this.parentNode.className="d "+this.parentNode.className;window.setTimeout(R4.Inputs.TextArea.ie_workaround.bind(this.parentNode),0.0);}},ie_workaround:function(){this.className=this.className.slice(2.0);},resizing:function(event){switch(event.type){case "change":R4.Inputs.TextArea.resize.call(this);break;case "focus":case "cut":case "paste":case "drop":case "keydown":window.setTimeout(R4.Inputs.TextArea.resize.bind(this),0.0);break;default:{break;}}return true;}}};for(var type in R4.Inputs)Extend(R4.Inputs[type],R4.InputsExtends[type]);R4._start.push(R4.Inputs.TextArea.initResizing);R4.Actions.resizing=function(ev){R4.Inputs.TextArea.resizing.call(this,ev);};R4.Actions.textEnter=function(ev){R4.Inputs.Text.event.call(this,ev);};if(typeof R4==="undefined"){R4={};}R4.Widget={resizeIframeContainer:function(iframeID){var E_widget=Element.down(document.body,".widget");var widget_dims=E_widget.getDimensions();if(widget_dims.width==0.0)widget_dims.width=100.0;if(widget_dims.height==0.0)widget_dims.height=100.0;widget_dims=widget_dims.width+"x"+widget_dims.height;if(window.postMessage){parent.postMessage(iframeID+"="+widget_dims,"*");}else{parent.location.hash=iframeID+"="+widget_dims;}},iframe:function(api_key,options){if(!this.Private.check())return this.Private.errors;var html_id=this.Private.html_id();var params=(options&&options.params)?options.params:{};var iframe=document.createElement("iframe");iframe.id=iframe.name=html_id;var firefox_iframe_bug_fix=navigator.userAgent.match(/Gecko\/(\d+)/);if(firefox_iframe_bug_fix){iframe.src="about:blank";iframe.setAttribute("onload","this.src = '"+this.Private.url(api_key,"iframe",html_id,params)+"';this.setAttribute('onload','')");}else{iframe.src=this.Private.url(api_key,"iframe",html_id,params);}iframe.setAttribute("style","width:1px;height:1px;border:0");iframe.setAttribute("scrolling","no");iframe.setAttribute("frameborder","0");if(typeof window.postMessage!="undefined"){if(typeof window.addEventListener!="undefined"){window.addEventListener("message",R4.Widget.iframeMessage,false);}else if(typeof window.attachEvent!="undefined"){window.attachEvent("onmessage",R4.Widget.iframeMessage);}}else{if(!this.iframeSizePollingIv){this.original_hash=document.location.hash;this.iframeSizePollingQueue={};this.iframeSizePollingIv=window.setInterval("R4.Widget.iframeSizePolling()",10.0);}this.iframeSizePollingQueue[html_id]=true;}if(options.parent_id){document.getElementById(options.parent_id).appendChild(iframe);}else if(options.parent){options.parent.appendChild(iframe);}else{var rv=document.createElement("span");rv.appendChild(iframe);document.writeln(rv.innerHTML);}return null;},iframeMessage:function(event){if(typeof event.data=="string"){var size_info=event.data.match(/^(RanqqIframe_[^=]+)=(\d+x\d+)$/);if(size_info!==null){R4.Widget.iframeResize(size_info[1.0],size_info[2.0]);}}},iframeResize:function(target,geometry){var iframe=document.getElementById(target);if(!iframe)return;geometry=geometry.split("x");iframe.style.width=geometry[0.0]+"px";iframe.style.height=geometry[1.0]+"px";},iframeSizePolling:function(){if(document.location.hash==this.original_hash)return;var size_info=document.location.hash.match(/([^#=]+)=(\d+x\d+)$/);document.location.hash=this.original_hash;if(!size_info)return;if(this.iframeSizePollingQueue[size_info[1.0]]){this.iframeSizePollingQueue[size_info[1.0]]=false;this.iframeResize(size_info[1.0],size_info[2.0]);}else{window.clearInterval(this.iframeSizePollingIv);this.iframeSizePollingIv=false;}},data:function(api_key,func){return this.Private.request(api_key,"data",func);},userRanqq:function(id,options){if(!this.Private.check())return this.Private.errors;return null;},coRanqq:function(id,options){if(!this.Private.check())return this.Private.errors;return null;},Lib:{request:function(url,options){if(!this.isPrototype())return false;return new Ajax.request(url.options);},toJSON:function(hash){if(this.isPrototype())return $H(hash).toJSON();if(typeof JSON!="undefined")return JSON.stringify(json_string);return false;},evalJSON:function(json_string){if(this.isPrototype())return json_string.parseJSON();if(typeof JSON!="undefined")return JSON.parse(json_string);return false;},isPrototype:function(){if(typeof Prototype=="undefined"){alert("Prototype is missing. Please refer to http://prototypejs.org/,\nor replace the Lib-section of the R4.Widget\nwith equal functionality.");return false;}if(/^1\.[6789]/.test(Prototype.Version))return true;alert("You are including Prototype "+Prototype.Version+".\nPlease include Prototype \u003E 1.6 and \u003C 2.");return false;}},Private:{check:function(){return true;},toQueryString:function(params,ext_params){if(ext_params){for(var i in ext_params){params[i]=ext_params[i];}}var p=[];for(var i in params)p.push(encodeURIComponent(i)+"="+encodeURIComponent(params[i]));return p.join("\u0026");},url:function(url,format,html_id,added_params){var u;if(/^http:\/\//.test(url)){u=url.replace(/[\.\?].*?/,"");}else{var s_u=url.split(/_/);var host_with_port=s_u[0.0].split(/:/);var host=host_with_port[0.0];var port=host_with_port[1.0];if(port)host=host+":"+port;u="http://"+host+"/api/"+s_u[1.0];}if(format)u=u+"."+format;var params={};if(html_id)params.html_id=html_id;params.location=document.location;if(typeof added_params=="string"){params=this.toQueryString(params)+"\u0026"+added_params;}else if(typeof added_params=="object"){params=this.toQueryString(params,added_params);}else{params=this.toQueryString(params);}if(params.length>0.0)u=u+"?"+params.replace(/&$/,"");return encodeURI(u);},html_id:function(){return"RanqqIframe_"+new Date().getTime();},request:function(api_key,format,func){R4.Widget.Func[api_key]=func;var s=document.createElement("script");s.setAttribute("type","text/javascript");s.setAttribute("src",this.url(api_key,format));if(document.body){document.body.appendChild(s);}else if(typeof window.addEventListener!="undefined"){window.addEventListener("load",function(){document.body.appendChild(s);},false);}else if(typeof window.attachEvent!="undefined"){window.attachEvent("onload",function(){document.body.appendChild(s);});}else{document.writeln("\u003Cscript type=\"text/javascript\" src=\""+this.url(api_key,format)+"\"\u003E\u003C/script\u003E");}}},Cache:{},Func:{}};R4.Tooltip={delay:700.0,_delay_timer:null,_delay_element:null,_hideon_click:{},_getOptions:function(element,options){options=Extend({},options);if(!options.position){if(element.hasClassName("with-tooltip-below")){options.position="below";}else if(element.hasClassName("with-tooltip-above")){options.position="above";}else if(element.hasClassName("with-tooltip-left")){options.position="left";}else if(element.hasClassName("with-tooltip-right")){options.position="right";}else{options.position="below";}}if(!("hideon"in options)){options.hideon="mouseout";}var className="";if(options.className){className=options.className;}if(options["class"]){if(className)className+=" ";className+=options["class"];}if(!className){className=E.$get(element,"tooltip-class",true);}options.className=className;delete options["class"];return options;},_getOrCreate:function(element,tooltip,className){var E_tooltip;var tooltip_id=E.$get(element,"tooltipId",true);if(tooltip_id){E_tooltip=$(tooltip_id);if(E_tooltip){E_tooltip.className=className;E.$set(E_tooltip,"tooltipFor",E.identify(element),true);E.add(E_tooltip.down("\u003E .tooltip-body"),tooltip,"update");}}if(!E_tooltip){E_tooltip=E(document.body).div({"class":className,style:"display:none;","data-tooltip-for":E.identify(element)},E.div({"class":"tooltip-body"},tooltip),E.div({"class":"tooltip-arrow"}));}return E_tooltip;},_getGeometry:function(element,E_tooltip,E_arrow){var pos=Element.cumulativeOffset(element);var parent=element.parentNode;while(parent&&parent!==document.body){pos.left-=parent.scrollLeft;pos.top-=parent.scrollTop;parent=parent.parentNode;}var nesting=0.0;parent=element;var ContinueValues={"":true,"auto":true,"inherit":true};var zIndex="";while(parent&&parent!==document){if(parent.style.zIndex in ContinueValues){parent=parent.parentNode;++nesting;}else{zIndex=String(parseInt(parent.style.zIndex,10.0)+nesting);break;}}var elementDims=Element.getDimensions(element);var tooltipDims=Element.getDimensions(E_tooltip);var arrowDims;if(window.getComputedStyle){var arrowStyle=window.getComputedStyle(E_arrow,"");arrowDims={width:parseFloat(arrowStyle.getPropertyValue("width").replace(/px$/,"")),height:parseFloat(arrowStyle.getPropertyValue("height").replace(/px$/,""))};}else if(E_arrow.currentStyle){arrowDims={width:E_arrow.currentStyle.width.replace(/px$/,""),height:E_arrow.currentStyle.height.replace(/px$/,"")};arrowDims.width=isNaN(arrowDims.width)?E_arrow.getWidth():parseFloat(arrowDims.width);arrowDims.height=isNaN(arrowDims.height)?E_arrow.getHeight():parseFloat(arrowDims.height);}else if(options.position==="below"||options.position==="above"){arrowDims={width:24.0,height:11.0};}else{arrowDims={width:11.0,height:24.0};}return{position:pos,zIndex:zIndex,element:elementDims,tooltip:tooltipDims,arrow:arrowDims};},_setGeometry:function(E_tooltip,E_arrow,position,geometry){switch(position){case "below":E_tooltip.style.left=Math.round(geometry.position.left+(geometry.element.width-geometry.tooltip.width)*0.5)+"px";E_tooltip.style.top=(geometry.position.top+geometry.element.height)+"px";E_arrow.style.left=Math.round((geometry.tooltip.width-geometry.arrow.width)*0.5)+"px";break;case "right":E_tooltip.style.left=(geometry.position.left+geometry.element.width)+"px";E_tooltip.style.top=Math.round(geometry.position.top+(geometry.element.height-geometry.tooltip.height)*0.5)+"px";E_arrow.style.top=Math.round((geometry.tooltip.height-geometry.arrow.height)*0.5)+"px";break;case "above":E_tooltip.style.left=Math.round(geometry.position.left+(geometry.element.width-geometry.tooltip.width)*0.5)+"px";E_tooltip.style.top=(geometry.position.top-geometry.tooltip.height)+"px";E_arrow.style.left=Math.round((geometry.tooltip.width-geometry.arrow.width)*0.5)+"px";break;case "left":E_tooltip.style.left=(geometry.position.left-geometry.tooltip.width)+"px";E_tooltip.style.top=Math.round(geometry.position.top+(geometry.element.height-geometry.tooltip.height)*0.5)+"px";E_arrow.style.top=Math.round((geometry.tooltip.height-geometry.arrow.height)*0.5)+"px";break;}},show:function(element,tooltip,options){element=$(element);var E_parentTooltip=element.up(".tooltip");if(E_parentTooltip){var parentTooltipElement=$(E.$get(E_parentTooltip,"tooltipFor",true));if(!parentTooltipElement||E.$get(parentTooltipElement,"tooltipAnimation",true)==="hide"||E.$get(parentTooltipElement,"tooltipQueuedAnimation",true)==="hide"){return null;}}if(!tooltip){tooltip=E.html(E.$get(element,"tooltip",true));}options=R4.Tooltip._getOptions(element,options);var className="tooltip tooltip-"+options.position+(options.className?" "+options.className:"");var E_tooltip=R4.Tooltip._getOrCreate(element,tooltip,className);var E_arrow=E_tooltip.down("\u003E .tooltip-arrow");var tooltip_id=E.identify(E_tooltip);E.$set(element,"tooltipId",tooltip_id,true);E.$set(element,"tooltipAnimation","show",true);var geometry=R4.Tooltip._getGeometry(element,E_tooltip,E_arrow);R4.Tooltip._setGeometry(E_tooltip,E_arrow,options.position,geometry);delete R4.Tooltip._hideon_click[E.identify(element)];switch(options.hideon){case "mouseout":R4.Tooltip._addMouseOutListener(element);break;case "click":R4.Tooltip._addClickOutsiedeListener(element);break;case "never":default:{break;}}new Effect.Appear(E_tooltip,{duration:0.25,afterFinish:R4.Tooltip._afterAnimation.curry(E.identify(element))});return E_tooltip;},_addMouseOutListener:function(element){if(E.$get(element,"tooltipMouseOutListener"))return;var handler=function(event){element=$(element);if(!element)return;var related=event.relatedTarget||event.toElement;if(related&&(related===element||Element.descendantOf(related,element)))return;if(E.$has(element,"tooltipAnimation")){if(E.$get(element,"tooltipAnimation",true)==="show"){E.$set(element,"tooltipQueuedAnimation","hide",true);}}else{R4.Tooltip.hide(element);}element.stopObserving("mouseout",handler);E.$remove(element,"tooltipMouseOutListener");};element.observe("mouseout",handler);E.$set(element,"tooltipMouseOutListener",true);element=E.identify(element);},_addClickOutsiedeListener:function(element){element=E.identify(element);R4.Tooltip._hideon_click[element]=true;},hide:function(element){var tooltip_id=E.$get(element,"tooltipId",true);if(tooltip_id===null)return;var E_tooltip=$(tooltip_id);E.$remove(element,"tooltipId");if(!E_tooltip)return;E.$set(element,"tooltipAnimation","hide",true);element=E.identify(element);delete R4.Tooltip._hideon_click[element];new Effect.Fade(E_tooltip,{duration:0.25,afterFinish:function(){var E_tooltip=$(tooltip_id);if(E_tooltip)E_tooltip.remove();R4.Tooltip._afterAnimation(element);}});E_tooltip.select("*[data-tooltip-id]").each(R4.Tooltip.hide);E_tooltip=null;},_afterAnimation:function(element){element=$(element);if(!element)return;var animation=E.$get(element,"tooltipQueuedAnimation",true);if(animation){E.$remove(element,"tooltipQueuedAnimation");if(animation==="show"){R4.Tooltip.show(element);}else{R4.Tooltip.hide(element);}}else{E.$remove(element,"tooltipAnimation");}}};R4._start.push(function(){Event.observe(document.body,"mouseover",function(event){var element=event.findElement("*[data-tooltip]");if(!element){clearTimeout(R4.Tooltip._delay_timer);R4.Tooltip._delay_timer=null;R4.Tooltip._delay_element=null;return;}var tooltip=E.$get(element,"tooltip",true);if(E.$has(element,"tooltipAnimation"));else if(!E.$has(element,"tooltipId")){element=E.identify(element);if(R4.Tooltip._delay_timer!==null){if(R4.Tooltip._delay_element===element){return;}else{clearTimeout(R4.Tooltip._delay_timer);}}R4.Tooltip._delay_element=element;R4.Tooltip._delay_timer=setTimeout(function(){R4.Tooltip._delay_timer=null;R4.Tooltip._delay_element=null;R4.Tooltip.show(element,E.html(tooltip));},R4.Tooltip.delay);}});});Event.observe(document,"click",function(event){var tooltips=R4.Tooltip._hideon_click;R4.Tooltip._hideon_click={};for(var element in tooltips){var ctx=$(element);if(!ctx){continue;}var tooltip_id=E.$get(ctx,"tooltipId",true);if(!tooltip_id){continue;}if(!event.findElement("#"+tooltip_id)&&!event.findElement("#"+element)&&!event.findElement(".lightboxLayer")){R4.Tooltip.hide(ctx);}else{R4.Tooltip._hideon_click[element]=true;}}});var LinkedData={searchCount:0.0,search:function(query,callback,options){this.searchCount++;var search=new this.Search("s"+this.searchCount,callback,options);LinkedData.CB[search.id]=search;search.start(query.replace(/^\s+/,"").replace(/\s+$/,"").replace(/\s\s+/," "));return search;},CB:{},finish:function(search){delete LinkedData.CB[search.id];},Search:function(id,callback,options){this.id=id;this.callback=callback;this.started=new Date();this.options=options||{};this.cbCount=0.0;this.data={version:3.0,results:[],finished:false};this.cb={};},onerror:function(error){for(var id in this.CB){if(this.CB[id].onerror(error))return true;}return false;},ResourceBase:function(){}};LinkedData.Search.prototype={start:function(query){if(this.options.resources){for(var i=0.0,n=this.options.resources.length;i<n;++i){this.addQuery(query,this.options.resources[i]);}}else{for(var resource in LinkedDataResources){this.addQuery(query,resource);}}},addQuery:function(query,resource){var cb_id="c"+this.cbCount;var callback="LinkedData.CB."+this.id+".cb."+cb_id;var cb=typeof resource==="string"?new LinkedDataResources[resource]():new resource();cb.search=this;cb.id=cb_id;this.cb[cb_id]=cb;this.cbCount++;cb.start(query,callback);},results:function(resource,result){this.cbCount--;var partial={version:this.data.version,results:result,finished:false,last:(this.cbCount===0.0)};this.exec_callback(partial);this.data.results=this.data.results.concat(result);if(this.cbCount===0.0){this.finish();}},exec_callback:function(data){try {switch(typeof this.callback){case "function":this.callback(data);break;case "object":this.callback.results(data);break;default:{window[this.callback](data);break;}}} catch(e){console.error("linked data callback failed:",e);}},finish:function(){this.data.finished=true;this.exec_callback(this.data);for(var cb in this.cb){this.cb[cb].cleanup();delete this.cb[cb];}LinkedData.finish(this);},onerror:function(error){for(var cb_id in this.cb){if(this.cb[cb_id].onerror(error)){this.cbCount--;if(this.cbCount<=0.0){this.finish();}return true;}}return false;}};LinkedData.ResourceBase._request_callback=function(search_id,cb_id,url){var search=LinkedData.CB[search_id];if(!search)return;var cb=search.cb[cb_id];if(!cb||!cb._requests)return;if(!this.readyState||this.readyState==="loaded"||this.readyState==="complete"){var request=cb._requests[url];delete cb._requests[url];if("timer"in request){window.clearTimeout(request.timer);}this.onload=this.onreadystatechange=null;if(this.parentNode){this.parentNode.removeChild(this);}for(var i=0.0,n=request.callbacks.length;i<n;++i){try {request.callbacks[i](search_id,cb_id,url);} catch(e){console.log("linked data callback error:",e);}}}};LinkedData.ResourceBase._request_timeout=function(search_id,cb_id,url){var search=LinkedData.CB[search_id];if(!search)return;var cb=search.cb[cb_id];if(!cb||!cb._requests)return;delete cb._requests[url].timer;search.onerror({filename:url,lineno:0.0,message:"Request Timeout"});};LinkedData.ResourceBase.prototype={cleanup:function(){if(!this._requests)return;for(var url in this._requests){var request=this._requests[url];if("timer"in request){window.clearTimeout(request.timer);}var tag=request.tag;if(tag.parentNode){tag.parentNode.removeChild(tag);}}this._requests={};},request:function(url,callback){if(!this._requests)this._requests={};if(url in this._requests){if(callback)this._requests[url].callbacks.push(callback);return;}var request=this._requests[url]={callbacks:[],tag:E.script({type:"text/javascript",src:url}),timer:window.setTimeout(LinkedData.ResourceBase._request_timeout.curry(this.search.id,this.id,url),10000.0)};if(callback)request.callbacks.push(callback);request.tag.onload=request.tag.onreadystatechange=LinkedData.ResourceBase._request_callback.curry(this.search.id,this.id,url);document.body.appendChild(request.tag);},onerror:function(error){if(!this._requests)return;var url=error.filename;if(url in this._requests){console.error(url+":"+error.lineno+": Broken linked data query ("+this.search.id+", "+this.id+", "+this.resource+") because: "+error.message);this.cleanup();return true;}return false;}};var LinkedDataResources={YouTube:function(){this.resource="youtube";},Wikipedia:function(){this.resource="wikipedia";this.lang=window.Lang||"en";}};LinkedDataResources.YouTube.prototype=Object.extend(new LinkedData.ResourceBase(),{start:function(query,callback){var q=$H({"q":query,"v":2.0,"format":5.0,"alt":"json-in-script","callback":callback+".callback","start-index":1.0,"max-results":30.0}).toQueryString();this.request("http://gdata.youtube.com/feeds/api/videos?"+q);},callback:function(data){var videos=[];try {for(var i=0.0,n=data.feed.entry.length;i<n;i++){var entry=data.feed.entry[i];var media=entry.media$group;var thumbnail=$A(media.media$thumbnail).find(function(t){return/hqdefault\.jpg$/.test(t.url);});try {var video={type:"Media",source:"youtube",title:media.media$title.$t,description:media.media$description.$t,youtube_id:media.yt$videoid.$t,player:media.media$player.url,length:parseInt(media.yt$duration.seconds,10.0),width:480.0,height:360.0,preview:thumbnail};if(media.yt$aspectRatio){video.aspect=media.yt$aspectRatio.$t;}video.url="http://www.youtube.com/watch?v="+video.youtube_id;video.about=video.url;video.name=video.title;video.text=video.description;videos.push(video);} catch(e){console.error(e);}}} catch(e){console.error(e);}this.search.results(this,videos);}});LinkedDataResources.Wikipedia.imageIsNewer=function(image1,image2){var url1=image1.imageurl;var url2=image2.imageurl;var archive1=/\/archive\//.test(url1);var archive2=/\/archive\//.test(url2);if(archive1&&archive2){var date1=/\/(\d*)%21[^\/]*$/.exec(url1);var date2=/\/(\d*)%21[^\/]*$/.exec(url2);if(date1===null)return false;if(date2===null)return true;return parseInt(date1,10.0)>parseInt(date2,10.0);}else{return!archive1;}};LinkedDataResources.Wikipedia.prototype=Object.extend(new LinkedData.ResourceBase(),{start:function(query,callback){var q=$H({action:"opensearch",search:query,format:"json",limit:20.0,callback:callback+".callback_1"}).toQueryString();this.query=query;this.prefix=callback;this.cb2Count=0.0;this.cb3Count=0.0;this.wikipages={};this.commons={};this.request("http://"+this.lang+".wikipedia.org/w/api.php?"+q);},callback_1:function(data){var titles=data[1.0];if(titles.length===0.0){this.exec_callback();return;}titles.sort();var query=this.query.toLowerCase().split(/\s+/);var fullmatches=[];for(var i=0.0;i<titles.length;){var title=titles[i];var words=title.toLowerCase().split(/\s+/);var missing=false;for(var j=0.0,m=query.length;j<m;++j){if(words.indexOf(query[i])<0.0){missing=true;break;}}if(!missing){titles.splice(i,1.0);fullmatches.push([words.length-query.length,title]);}else{++i;}}fullmatches.sort();for(var i=0.0,n=fullmatches.length;i<n;++i){titles.splice(i,0.0,fullmatches[i][1.0]);}this.titles=titles;for(var i=0.0,n=Math.min(titles.length,30.0);i<n;++i){var q=$H({action:"query",titles:titles[i],cllimit:20.0,imlimit:10.0,prop:"categories|images|info",inprop:"url",format:"json",aplimit:10.0,callback:this.prefix+".callback_2"}).toQueryString();++this.cb2Count;this.request("http://"+this.lang+".wikipedia.org/w/api.php?"+q,this.cb2Finish.bind(this));}},cb2Finish:function(){--this.cb2Count;if(this.cb2Count===0.0&&this.cb3Count===0.0){this.exec_callback();}},callback_2:function(data){var i,n;var requests=[];var commons={};try {for(var id in data.query.pages){var page=data.query.pages[id];if(id in this.wikipages)continue;var wiki=this.wikipages[id]={id:id,url:page.fullurl,name:page.title,text:"",commons:[],resource:"wikipedia"};if(page.categories){var categories=[];for(i=0.0;i<page.categories.length;++i){var title=page.categories[i].title;if(!/\barticles\b|:wikipedia\b/i.test(title))categories.push(title.replace(/.*?:/,""));}wiki.text=categories.join(", ");}if(page.images){try {var count=0.0;for(i=0.0,n=page.images.length;i<n&&count<7.0;++i){var image=page.images[i];if(/(jpg|gif|png|svg)$/i.test(image.title)){++count;if(!(image.title in this.commons)){this.commons[image.title]=wiki;commons[image.title]=true;}}}} catch(e){console.error("wikipedia callback error",e);}}}var common_ids=$H(commons).keys();if(common_ids.length===0.0){return;}var callback=this.prefix+".callback_3";for(i=0.0;i<common_ids.length;i+=50.0){var q=$H({action:"query",titles:common_ids.slice(i,i+50.0).join("|"),format:"json",prop:"imageinfo",iiprop:"size|url",iiurlwidth:200.0,iiurlheight:150.0,iilimit:1.0,callback:callback}).toQueryString();requests.push("http://"+this.lang+".wikipedia.org/w/api.php?"+q);}} catch(e){console.error("wikipedia callback error",e,data);return;}for(i=0.0,n=requests.length;i<n;++i){this.cb3Count++;this.request(requests[i],this.cb3Finish.bind(this));}},cb3Finish:function(){this.cb3Count--;if(this.cb2Count===0.0&&this.cb3Count===0.0){this.exec_callback();}},callback_3:function(data){for(var id in data.query.pages){try {var image_data=data.query.pages[id];var wiki=this.commons[image_data.title];for(var i=0.0;i<image_data.imageinfo.length;++i){var info=image_data.imageinfo[i];wiki.commons.push(info);}} catch(e){console.error("wikipedia callback error",e,data);}}},exec_callback:function(){var imageIsNewer=LinkedDataResources.Wikipedia.imageIsNewer;var articles=$H(this.wikipages).values();var items=[];var medias={};var sortmap={};for(var i=0.0;i<this.titles.length;++i){sortmap[this.titles[i]]=i;}for(var i=0.0;i<articles.length;++i){var article=articles[i];var commons=article.commons;var images=[];if(commons){for(var j=0.0;j<commons.length;++j){var image=commons[j];var other=medias[image.descriptionurl];if(!image.url){continue;}image.type="Media";image.name=article.name;image.resource=article.resource;image.imageurl=image.url;image.about=image.url;image.url=article.url;if(!other||!imageIsNewer(other,image)){medias[image.descriptionurl]=image;}else{image=other;}if(!images.include(image.descriptionurl)){images.push(image.descriptionurl);}}}items.push([sortmap[article.name],article.name,{type:"MediaGroup",id:article.id,name:article.name,resource:article.resource,text:article.text,url:article.url,about:article.url,medias:images}]);}items.sort();for(var i=0.0;i<items.length;++i){var item=items[i]=items[i][2.0];item.medias=item.medias.slice(0.0,7.0).collect(function(key){return medias[key];});}this.search.results(this,items);}});Template.Pattern=/(^|.|\r|\n)(%\{(.*?)\})/;var ApiCB=function(src){d=document.createElement("script");d.setAttribute("type","text/javascript");d.setAttribute("src",src);document.body.appendChild(d);};Object.extend(ApiCB,{Freebase:{AbstractCall:function(guid,url){ApiCB("http://www.freebase.com/api/trans/raw/guid/"+guid+"?callback=ApiCB.Freebase.Abstract('freebase:"+guid+"','"+url+"');");},AbstractCB:function(guid,data,url){if(data.code!="/api/status/ok")return;var d=data.result.body.replace(/<.*?>|\n/gm," ");d=d.replace(/\([^\(]*?\)/gm," ").replace(/\([^\(]*?\)/gm," ").replace(/\(|\)/gm," ");d=d.replace(/^(.{80}.+?\D\.).*/gm,"$1 \u2026");if(url&&url.length>0.0)d=d+" "+"Freebase".link(url);$(guid).update(d);},Abstract:function(guid,url){return function(data){ApiCB.Freebase.AbstractCB(guid,data,url);};}}});var OverOut=function(which){which=$(which);which.observe("mouseover",OverOut.over);which.onmouseover=function(){};};Object.extend(OverOut,{hide:function(){if(OverOut.openElement){Element.hide(OverOut.openElement);Event.stopObserving(document.body,"mouseover",OverOut.hide);}OverOut.openElement=undefined;},over:function(event){event.stop();if(OverOut.openElement&&OverOut.openElement!=this)OverOut.hide();OverOut.openElement=this;Event.observe(document.body,"mouseover",OverOut.hide);this.show();}});var Tab={show:function(which){try {this.getTab(which).show();} catch(e){}},hide:function(which){try {var tab=this.getTab(which).hide();if(tab.hasClassName("tabSelected")){var next_tab=tab.nextSiblings().find(function(t){return t.visible();});if(!next_tab)next_tab=tab.previousSiblings().find(function(t){return t.visible();});if(next_tab)this.select(next_tab);}this.hideContainer(which);} catch(e){}},select:function(which){try {var menu=Tab.getMenu(which);menu.select(".tabs").invoke("hide");menu.select(".tabSelected").each(function(t){var m=t.className.match(/tab_(\w+)/);if(m)Tab.hideContainer(m[1.0]);t.removeClassName("tabSelected");});Tab.showContainer(which);Tab.show(which);Tab.getTab(which).addClassName("tabSelected");} catch(e){}},click:function(which){which=Tab.getTab(which);var t=which.down("button")||which.down("a");try {return t.onclick(which);} catch(e){}return false;},getMenu:function(which){try {return this.getTab(which).up(".mkMenu");} catch(e){return null;}},getContainer:function(which){try {if(typeof which=="string")return $(which);m=which.className.match(/tab_(\w+)/);if(!m)return which;return $(m[1.0]);} catch(e){return null;}},showContainer:function(which){try {this.getContainer(which).show();} catch(e){}},hideContainer:function(which){try {this.getContainer(which).hide();} catch(e){}},getTab:function(which){if(typeof which!="string")return which;return $$(".tab_"+which)[0.0];}};var Memberships={button:"\u003Ca href='#' onclick='Memberships.edit()'\u003EEdit\u003C/a\u003E",activate:function(){var editButtons=this.editButtons;$$(".membershipEditable").each(function(m){m.insert({bottom:"\u003Cdiv class='membershipsAction'\u003E"+Memberships.button+"\u003C/div\u003E"});});},edit:function(which){which=$(which).up(".entityList");var m=which.className.match(/group_(\d+)_user_(\d+)/);var path="/groups/"+m[1.0]+"/users/"+m[2.0]+"/edit";var container_id=which.identify();new Ajax.Request(path,{asynchronous:true,evalScripts:true,method:"get",parameters:{"html_id":container_id}});}};var Article={toggle:function(which){which=$(which);if(which.hasClassName("collapsed")){new Effect.SlideDown(which.removeClassName("collapsed").up().previous(".articleContainer"));}else{new Effect.SlideUp(which.addClassName("collapsed").up().previous(".articleContainer"));}},edit:function(which,about_type,about_id){which=$(which);var article=which.up(".article").down().show().down(".articleContent");if(article.down("textarea"))return;article.about_type=about_type;article.about_id=about_id;article.text=article.innerHTML.strip();var textarea=article.update("\u003Ctextarea cols='1'\u003E\u003C/textarea\u003E").down("textarea");textarea.value=article.text;textarea.observe("blur",function(event){this.stopObserving();if(this.up().text==this.value)return;var article=this.up();article.update(this.value);article.insert({bottom:"\u003Cbutton onclick='Article.save(this);return false'\u003Esave\u003C/button\u003E"});});},save:function(which){which=$(which);var container=which.up();which.remove();new Ajax.Request("/articles/",{method:"post",parameters:{"article[text]":container.innerHTML,"article[about_id]":container.about_id,"article[about_type]":container.about_type}});}};function switchTab(which){Element.up(which,".lightbox").select("div.tabs").invoke("hide");$(which).show();}function a_submit(which){var f=Element.up(which,"form");if(!f.onsubmit){return f.submit();}else{return f.onsubmit()&&f.submit();}}function select_region(which,region,update_target){if(!region.select){$("selectedRegionSubmit").removeClassName("disabled");$("selectedRegion_id").value=region.id;$("selectedRegion_name").value=region.name;$("selectedRegion_name_replaced").value=region.name;}var ra=[];if($("region[id]_"+region.id)){InputReplacement.click("region[id]_"+region.id);ra=$("region[id]_"+region.id).ancestors();}var rc=$$(".regionContainers");for(var i=0.0;i<rc.length;rc++){if(ra.include(rc[i]))rc[i].removeClassName("collapsed");else rc[i].addClassName("collapsed");}if(update_target&&$(update_target)){$(update_target).up().removeClassName("collapsed");if($(update_target).innerHTML.blank()){new Ajax.Request("/regions/"+region.id+"/entities",{asynchronous:true,evalScripts:true,method:"get",onCreate:function(){FrT.field("selectedRegion_name_replaced");},onComplete:function(ajax){FrT.hide();select_region.show(ajax.request.options.updateTarget);},updateTarget:update_target,parameters:{selectable:region.selectable}});}else{select_region.show(update_target);}}}select_region.show=function(update_target){$$(".regionContainers").invoke("addClassName","collapsed");$(update_target).ancestors().each(function(a){if(a.hasClassName("regionContainers"))a.removeClassName("collapsed");});};var FieldErrors={_get:function(element){if(typeof element==="string"){if(/#|\.|\s|\*/.test(element.strip())){element=$$(element);}else{element=$(element);}}if(element&&element.up()&&element.up().hasClassName("inputReplacementContainer")){element=element.up();}return element;},add:function(element){if(Object.isArray(element)){var args=Array.prototype.slice.call(arguments);for(var i=0.0;i<element.length;++i){args[0.0]=element[i];FieldErrors.add.apply(FieldErrors,args);}}else{element=FieldErrors._get(element);if(!element)return;element.addClassName("fieldWithErrors");if(arguments.length>1.0){var content=element.down(".errorMessage")||E.ul({"class":"errorMessage"});for(var i=1.0;i<arguments.length;++i){E(content).li(E.html(arguments[i]));}if(!content.up()){element.appendChild(content);}}}},clear:function(){if(arguments.length===0.0){$$(".fieldWithErrors").invoke("removeClassName","fieldWithErrors");$$(".errorMessage").invoke("remove");}else{for(var i=0.0;i<arguments.length;++i){if(Object.isArray(element)){if(element.length>0.0){FieldErrors.clear.apply(FieldErrors,element);}}else{var element=FieldErrors._get(arguments[i]);if(!element)continue;element.removeClassName("fieldWithErrors");element.select(".errorMessage").invoke("remove");}}}}};Element.addMethods({isActive:function(element){element.addClassName("active");},notActive:function(element){element.removeClassName("active");},getZIndex:function(element){element=$(element);if((zindex=element.getStyle("zIndex")))return parseInt(zindex,10.0);if(element==document.body)return 0.0;return element.up().getZIndex();},setDisabled:function(element,disable){if(disable){Element.addClassName(element,"disabled");element.select("input").invoke("disable");element.select("textarea").invoke("disable");}else{Element.removeClassName(element,"disabled");element.select("input").invoke("enable");element.select("textarea").invoke("enable");}return element;}});Element.addMethods("SELECT",{optionsSet:function(element,o){element=$(element);element.update();for(var i=0.0;i<o.length;i++){el=document.createElement("option");if(o[i].pop){el.text=o[i][0.0];el.value=o[i][1.0];el.selected=el.defaultSelected=o[i][2.0];}else{el.text=el.value=o[i];el.selected=false;}element.add(el,document.all?i:null);}}});Element.addMethods("FORM",{non_empty:function(){var element=$(arguments[0.0]);var data=element.serialize(true);for(var i=1.0;i<arguments.length;i++){var field=data[arguments[i]];if(typeof field=="undefined"||field.strip().empty())return false;}return true;},serialize_only:function(){var args=$A(arguments);var serialized=$H(args.shift().serialize(true));var just_hash;if(typeof args.last()=="boolean")just_hash=args.pop();var data={};for(var i=0.0;i<args.length;i++){data[args[i]]=serialized.get(args[i]);}return just_hash?data:$H(data).toQueryString();},clear:function(element){$A($(element).elements).each(function(el){switch(el.nodeName){case "TEXTAREA":el.value="";break;case "SELECT":el.selectedIndex=null;break;default:{switch(el.type){case "radio":case "checkbox":el.checked=false;break;case "text":el.value="";break;default:{break;}}break;}}});}});Element.addMethods("IFRAME",{source:function(IFrameObj){if(IFrameObj.contentDocument){return IFrameObj.contentDocument;}else if(IFrameObj.contentWindow){return IFrameObj.contentWindow.document;}else if(IFrameObj.document){return IFrameObj.document;}else{return null;}}});Hash.prototype.toQueryString=function(){var s=[];var k=this.keys();var a=$A(arguments[0.0]||[]);if(arguments[1.0])a.push(arguments[1.0]);for(var i=0.0;i<k.length;i++){var p,v=this.get(k[i]);if(a.length===0.0)p=k[i];else p=a[0.0]+"["+a.slice(1.0).concat([k[i]]).join("][")+"]";if(typeof v=="object"){if(Object.isArray(v)){s.push(encodeURIComponent(p)+"="+encodeURIComponent(v.first));}else{s.push($H(v).toQueryString(a,k[i]));}}else if(typeof v!="function"){s.push(encodeURIComponent(p)+"="+encodeURIComponent(v));}}return s.join("\u0026");};var AdSpace=function(id){var which=$(id);if(which.hasClassName("WbAdded"))return;which.addClassName("WbAdded");var container_dims=which.up().getDimensions();var which_dims=which.getDimensions();var ad={};ad.height=container_dims.height-which_dims.height;ad.width=which_dims.width;var el=$(document.createElement("div"));el.className="WbContainer";el.setStyle({width:ad.width+"px",height:ad.height+"px"});which.appendChild(el);ad.wb_id=el.identify();new Ajax.Request("/ads",{asynchronous:true,evalScripts:true,method:"get",parameters:ad});};var Message={destroy:function(which){which=Element.up(which,"li");id=which.id.replace(/message_/,"");new Ajax.Request("/messages/"+id,{asynchronous:true,evalScripts:true,method:"delete"});},remove:function(id){var which=$("message_"+id);var ul=which.up("ul");which.remove();if(ul.childElements().length===0.0)ul.up("div.messages").remove();}};function chr(codePt){if(codePt>65535.0){codePt-=65536.0;return String.fromCharCode(55296.0+(codePt>>10.0),56320.0+(codePt&1023.0));}else{return String.fromCharCode(codePt);}}function urlUpdate(url,params){if(!/\?/.test(url))url=url+"?";var p=Object.extend(url.toQueryParams(),params);return url.replace(/\?.*$/,"?"+$H(p).toQueryString());}var FrustrationTolerator,FrT;FrustrationTolerator=FrT=function(el,options){return FrT.show(el,options);};Object.extend(FrT,{options:{className:"FrT",src:"/images/spinner.gif",alt:"",content:"\u003Cimg src='/images/spinner.gif' alt='' /\u003E",timeout:30000.0},fill:function(which){$(which).update(this.options.content);},submit:function(options){var timeout=true;if(options&&options.timeout!==undefined){timeout=options.timeout;}if(timeout){FrT.setTimeout();}Lightbox(this.options.content,{id:"FrT_Lightbox",noCloseButton:true});},show:function(el,options){try {FrT.setTimeout();el=$(el)||$(document.body);if(el.frt)return el.frt;el.frt=E.div({className:this.options.className||"FrT"});el.frt.hide();el.frt.update(this.options.content);document.body.appendChild(el.frt);el.frt.clonePosition(el);el.frt.show();el.frt.element=el;el.frt=E.div({className:this.options.className||"FrT"});return el.frt;} catch(e){return null;}},hide:function(){try {FrT.clearTimeout();Lightbox.close("FrT_Lightbox");$$(".FrT").each(function(f){delete f.element.frustrationTolerator;f.remove();});} catch(e){return false;}FrT.hideField();return true;},field:function(el,skipTimeout){if(!skipTimeout)FrT.setTimeout();el=$(el);el.addClassName("frtProgress");el._backgroundPosition=el.style.backgroundPosition;if(typeof FrT.shiftingOffset=="undefined")FrT.shiftingOffset=0.0;el.style.backgroundPosition=FrT.shiftingOffset+"px 0px";if(!FrT.shiftingFields){FrT.shiftingFields=[];FrT.shifting=new PeriodicalExecuter(function(pe){if(typeof pe.shiftingOffset=="undefined")pe.shiftingOffset=0.0;pe.shiftingOffset=pe.shiftingOffset+2.0;for(var i=0.0;i<FrT.shiftingFields.length;i++){var field=FrT.shiftingFields[i];field.style.backgroundPosition=pe.shiftingOffset+"px 0px";}},0.1);}FrT.shiftingFields.push(el);return el;},hideField:function(which){which=$(which);FrT.clearTimeout();if(!FrT.shifting||!FrT.shiftingFields)return;for(var i=0.0;i<FrT.shiftingFields.length;i++){var field=FrT.shiftingFields[i];if(!which||field==which){field.removeClassName("frtProgress");if(field._backgroundPosition){field.style.backgroundPosition=field._backgroundPosition;}else{field.style.backgroundPosition="";}FrT.shiftingFields[i]=null;}}FrT.shiftingFields=FrT.shiftingFields.compact();if(FrT.shiftingFields.length===0.0){FrT.shifting.stop();delete FrT.shiftingFields;}},timeout_handle:[],setTimeout:function(){FrT.timeout_handle.push(window.setTimeout(FrT.inTimeout,FrT.options.timeout));},clearTimeout:function(){for(var i=0.0;i<FrT.timeout_handle.length;i++){window.clearTimeout(FrT.timeout_handle.pop());}},inTimeout:function(){alert(_._99);FrT.hide();},horizontal:function(){return FrT.field(E.div({className:"FrThorizontal",style:"height:1em;"}),true);},vertical:function(){return E.div({className:"FrTvertical"},"SPINNER VERTICAL");}});var InputReplacement={initialize:function(irs){if(!irs)irs=$$(".inputReplacementContainer");for(var i=0.0;i<irs.length;i++)this.Base.initialize(irs[i]);},Base:{isIR:true,initialize:function(which){if(which.isIR)return which;Object.extend(which,InputReplacement.Base);var el;if((el=which.down(".textReplacement"))){InputReplacement.Text.initialize(el);}else if((el=which.down(".radioReplacement"))){InputReplacement.Radio.initialize(el);}else if((el=which.down(".checkboxReplacement"))){InputReplacement.Checkbox.initialize(el);}try {delete which.initialize;delete which.create;} catch(e){}return which;}},Text:{initialize:function(which){Object.extend(which,this);InputReplacement[which.nodeName=="TEXTAREA"?"TextArea":"TextField"].initialize(which);return which;}},TextField:{initialize:function(which){Object.extend(which,this);return which;}},Radio:{initialize:function(which){Object.extend(which,this);return which;}},Checkbox:{initialize:function(which){Object.extend(which,this);return which;}},TextArea:{initialize:function(which){Object.extend(which,this);if(which.className.match(/inputReplacementExpandable/))which.observe("keydown",InputReplacement.TextArea.resize).resize();return which;},create:function(name,value,opts){opts=opts||{title:""};value=value||"";var span=$(document.createElement("span"));span.className="formTextContainer formTextAreaContainer inputReplacementContainer";var textarea=$(document.createElement("textarea"));textarea.title=opts.title;textarea.name=name+"_replaced";textarea.className="formText  textReplacement "+(value.blank()?"textBlank":"");if(opts.expandable)textarea.addClassName("inputReplacementExpandable");textarea.rows=2.0;textarea.appendChild(document.createTextNode(value.blank()?opts.title:value));textarea.focus();textarea.observe("keydown",InputReplacement.textAreaResize);textarea.observe("cut",InputReplacement.textAreaResize);textarea.observe("paste",InputReplacement.textAreaResize);textarea.observe("drop",InputReplacement.textAreaResize);textarea.observe("focus",InputReplacement.text_focus);textarea.observe("change",InputReplacement.text_blur);textarea.observe("blur",InputReplacement.text_blur);textarea.fire("keydown");span.appendChild(textarea);var hidden=$(document.createElement("input"));hidden.type="hidden";hidden.name=name;hidden.value=value;span.appendChild(hidden);if(opts.submit){var submit=Object.extend(document.createElement("a"),{href:(opts.submit.href||"#"),className:"inputReplacementTextSubmit"});submit.appendChild(document.createTextNode(opts.submit.name||"OK"));submit.setAttribute("onclick",(opts.submit.onclick||"")+";return false;");if(opts.submit.click){submit.observe("click",opts.submit.click);}span.appendChild(submit);}InputReplacement.Base.initialize(span);return span;},resize:function(){var sc=this.scrollHeight;if(sc===0.0){sc=parseInt(this.getStyle("line-height"),10.0)*2.0;}this.style.height=sc+"px";}},text_focus:function(which){if(this.nodeType===1.0)which=this;which=$(which).addClassName("focus");if(which.parentNode&&E.$hasClass(which.parentNode,"inputReplacementContainer")){E.$addClass(which.parentNode,"focus");}var E_title=Element.down(which.parentNode,".formTitle");if(E_title)E_title.style.display="none";var E_buttons=which.next(".formTextButtons");var E_submit=E_buttons&&E_buttons.down(".inputReplacementTextSubmit");if(E_submit)E_submit.show();return which;},text_blur:function(which){if(this.nodeType===1.0)which=this;E.$removeClass(which,"focus");if(which.parentNode&&E.$hasClass(which.parentNode,"inputReplacementContainer")){E.$removeClass(which.parentNode,"focus");}var E_title=Element.down(which.parentNode,".formTitle");if(E_title)E_title.style.display=which.value.blank()?"":"none";var E_buttons=which.next(".formTextButtons");var E_submit=E_buttons&&E_buttons.down(".inputReplacementTextSubmit");if(E_submit){window.setTimeout(function(){if(!E.$hasClass(which,"focus")){E_submit.hide();}},250.0);}return which;},text_down:function(which,event){if(which.nodeName=="TEXTAREA")this.textAreaResize(which);try {var kcode=(window.event?event.keyCode:event.which);if(which.value.blank())return;if(13.0===kcode){FrT.field(E.identify(which));which.blur();which.form.submit();}} catch(e){return;}},text_submit:function(which,options){console.log("submit",which);which=Element.up(which,".formTextButtons");var E_field=which.previous(".formText");Element.hide(which);FrT.field(which.up().hasClassName("inputReplacementContainer")?which.up():E_field);var url=options.url;var parameters={};parameters[E_field.name]=E_field.value;var opts={asynchronous:true,onComplete:FrT.hide,evalScripts:true,method:"post",parameters:parameters};for(var i in options)opts[i]=options[i];delete opts.url;new Ajax.Request(url,opts);},empty:function(which){return InputReplacement.setValue(which,"");},setValue:function(which,value){which=$(which);if(!which)return;which.value=value;if(!E.$hasClass(which,"focus")){var E_title=Element.down(which.parentNode,".formTitle");if(E_title)E_title.style.display=which.value.blank()?"":"none";}},textAreaResize:function(which){if(!which)which=this;if((which.nodeName=="TEXTAREA")&&which.className.match(/expandableText/))which.style.height=which.scrollHeight+"px";return which;},textAreaTag:function(name,value,opts){opts=opts||{title:""};value=value||"";var span=$(document.createElement("span"));span.className="formTextContainer formTextAreaContainer inputReplacement";if(opts.expandable)span.addClassName("inputReplacementExpandable");var textarea=$(document.createElement("textarea"));textarea.title=opts.title;textarea.name=name+"_replaced";textarea.className="formText "+(value.blank()?"textBlank":"");textarea.rows=2.0;textarea.value=value.blank()?opts.title:value;textarea.observe("keydown",InputReplacement.textAreaResize);textarea.observe("focus",InputReplacement.text_focus);textarea.observe("change",InputReplacement.text_blur);textarea.observe("blur",InputReplacement.text_blur);textarea.fire("keydown");span.appendChild(textarea);if(opts.submit){var submit=Object.extend(document.createElement("a"),{href:"#",className:"inputReplacementTextSubmit"});switch(typeof opts.submit){case "function":submit.observe("click",opts.submit);break;case "string":submit.setAttribute("onclick",opts.submit+";return false");break;default:{break;}}span.appendChild(submit);}var hidden=$(document.createElement("input"));hidden.type="hidden";hidden.name=name;hidden.value=value;span.appendChild(hidden);return span;},Init:function(which){which=$(which);if(which.isInputReplacement)return;if(which.type=="hidden")return;if(which.tagName=="TEXTAREA"||which.type=="text"){which.onfocus=function(t){if(t.hasClassName("textBlank")){t.value="";t.removeClassName("textBlank");}};which.onblur=function(t){if(t.value.blank()){t.value=this.title;t.addClassName("textBlank");}else{t.removeClassName("textBlank");}};}else if(which.type=="radio"||which.type=="checkbox"){alert("radio and checkbox not implemented");return;}},clickByKeypress:function(which,event){if((event.charCode||event.keyCode)===32.0){InputReplacement.click(which);Event.stop(event);}},click:function(which,check,force){if(!which.isInputReplacement)which=this.extend(which);if(which.hasClassName("inputReplacementDisabled")){which.input.disable();return false;}which.input.enable();if(!(which.input.type=="radio"&&which.input.checked&&typeof force=="undefined"&&!force)){if(typeof check=="boolean")which.input.checked=check;else which.input.checked=!which.input.checked;}this.switchStyles(which,which.input.checked);var m=which.input.className.match(/(checkbox|radio)Replacement_\S+/);if(!m)return true;var elements=$$("."+m[0.0]);if(/inputReplacementExclusive/.test(which.className)){for(var j=0.0;j<elements.length;j++){var el=elements[j];if(which.input==el)continue;el.checked=false;}}this.update(elements);return true;},extend:function(which){which=$(which);if(!which)return null;var container;if(which.hasClassName("inputReplacementContainer")){container=which;if(!container.button)container.button=$(container.id+"_button");which=container.button;which.container=container;}if(!which.isInputReplacement){if(!which.container)which.container=Element.up(which);Object.extend(which,this.ElementExtender);which.container.input=which.input=$(which.container.id+"_input");which.input.button=which;which.input.container=which.container;Object.extend(which.input,this.InputExtender);}return which;},check:function(which){this.extend(which).check(true);},uncheck:function(which){this.extend(which).check(false);},is_checked:function(which){return this.extend(which).is_checked();},update:function(elements){for(var j=0.0;j<elements.length;j++){var el=elements[j];this.switchStyles(el.nextSibling,el.checked);}},switchStyles:function(e,checked){if(!e.checked_image){e.images=$A(e.childNodes);}if(checked){if(e.container)e.container.value=true;e.images[0.0].style.display="";e.images[1.0].style.display="none";}else{if(e.container)e.container.value=false;e.images[1.0].style.display="";e.images[0.0].style.display="none";}},reset:function(which){if(which.tagName=="FORM"){which.reset();this.update(Element.select(which,".inputReplacement input"));}else if(Element.hasClassName("inputReplacement")){var i=which.down("input");i.checked=i.defaultChecked;this.update([i]);}},find_fields:function(fields){fields=$A(fields);var e=fields.shift();var es=[];if(fields.length>0.0){for(var i=0.0;i<fields.length;i++)es.push(e+"_"+fields[i]);}else{es.push(e);}return es;},disable:function(){var es=this.find_fields(arguments);for(var i=0.0;i<es.length;i++){this.extend(es[i]).irDisable();}},enable:function(){var es=this.find_fields(arguments);for(var i=0.0;i<es.length;i++){this.extend(es[i]).irEnable();}},ElementExtender:{isInputReplacement:true,click:function(check,force){InputReplacement.click(this,check,force);},check:function(){this.click(true);},uncheck:function(force){this.click(false,force);},is_checked:function(){return this.input.checked;},irDisable:function(){this.uncheck(true);this.input.disable();this.addClassName("inputReplacementDisabled");},irEnable:function(){this.input.enable();this.removeClassName("inputReplacementDisabled");}},InputExtender:{click:function(check){this.button.click(check);},check:function(){this.button.click(true);},uncheck:function(){this.button.click(false);},is_checked:function(){return this.checked;}}};var InfoBox=function(which,options){which=$(which);InfoBox.initialize(this);InfoBox.Source.init(which,options).over();};Object.extend(InfoBox,{initialize:function(which){if(which.initialized)return;which.initialized=true;},hideAll:function(){$$(".infoBox").invoke("hide");},spare_content:"\u003Cimg src='/images/spinner.gif' alt='' style='display:block;margin:15px auto 0'/\u003E",cumulatedScrollTop:function(which){if(which==document.body)return 0.0;return which.scrollTop+this.cumulatedScrollTop(which.parentNode);},closeInstant:function(event){if(this.timeout){window.clearTimeout(this.timeout);this.timeout=false;}$$(".infoBox").invoke("hide");},outAll:function(event){},cancelTimeout:function(){if(this.timeout){window.clearTimeout(this.timeout);this.timeout=false;}},disable:function(){this.cancelTimeout();$$(".infoBox").invoke("hide");this.disabled=true;},enable:function(){this.disabled=false;},open:function(which){if(this.freezed)return;if(this.disabled)return;this.cancelTimeout();this.timeout=window.setTimeout(function(){try {which.ibox.open();} catch(e){}},500.0);},close:function(which){if(this.freezed)return;this.cancelTimeout();this.timeout=window.setTimeout(function(){try {which.ibox.close();} catch(e){}},100.0);},freeze:function(){this.freezed=true;},thaw:function(){this.freezed=false;this.closeInstant();},Source:{init:function(which,options){if(which.isIBoxSource)return which;which.isIBoxSource=true;Object.extend(which,InfoBox.Source);this.isOver=true;which.iboxOpts=Object.extend({position:"east"},options||{});which.generate();return which;},over:function(event){this.isOver=true;if(this.ibox_disabled)return;InfoBox.open(this);},out:function(event){this.isOver=false;InfoBox.close(this);},generate:function(){var ibox=this.ibox=$(document.createElement("div"));ibox.source=this;var opts=ibox.opts=this.iboxOpts;ibox.className="infoBox infoBoxLoading";if(opts.className)ibox.className=ibox.className+" "+opts.className;ibox.id=opts.id||"infoBox_"+this.identify();Object.extend(ibox,InfoBox.IBox);ibox.setStyle({display:"none"});ibox.arrow=ibox.appendChild($(document.createElement("div")));ibox.arrow.className="infoBoxArrow infoBox_"+opts.position;ibox.closeButton=ibox.appendChild($(document.createElement("div")));ibox.closeButton.className="infoBoxClose";ibox.closeButton.observe("click",ibox.close);ibox.content=ibox.appendChild($(document.createElement("div")));ibox.content.innerHTML=InfoBox.spare_content;ibox.content.className="infoBoxContent";ibox.content.id=ibox.id+"_content";}},IBox:{isIbox:true,closeInstant:function(){if(this.effect){this.effect.cancel();this.effect=false;}this.hide();},over:function(event){InfoBox.cancelTimeout();this.isOver=true;},out:function(event){this.isOver=false;InfoBox.close(this.source);},setContent:function(content,pos){if(typeof content=="function");else if(typeof content=="object"){var c_before=false;if(content.before){try {c_before=eval("(function(which){"+content.before+"})")(this.source);} catch(e){c_before=false;}}if(content.nodeType==1.0){this.removeClassName("infoBoxLoading").content.update(content);}else if(c_before&&!c_before.blank()){this.removeClassName("infoBoxLoading").content.update(c_before);}else{var url=content.url+"?infobox_id="+this.identify();content=Object.clone(content);delete content.url;content.infobox=this;content.method="get";content.onSuccess=function(ajax){ajax.request.options.infobox.removeClassName("infoBoxLoading").set_position();};content.onFailure=function(ajax){ajax.request.options.infobox.remove();};new Ajax.Request(url,content);}}else if(typeof content=="string"){this.removeClassName("infoBoxLoading").content.update(content);}this.set_position(pos);},reload:function(){this.setContent(this.opts.content);},open:function(pos){InfoBox.cancelTimeout();if(InfoBox.disabled)return;if(this.visible())return;if(!document.getElementById(this.id))document.body.appendChild(this);if(!this.opts.content_set)this.setContent(this.opts.content);else this.set_position(pos);this.opts.content_set=true;if(typeof this.opts.onOpen=="function")content=this.opts.onOpen(this.content);if(typeof content=="string")this.content.update(content);this.effect=new Effect.Appear(this,{beforeStart:function(){$$(".infoBox").invoke("hide");},afterFinish:function(eff){eff.element.effect=false;if(eff.element.opts.afterOpen)eff.element.opts.afterOpen(eff.element);},duration:0.2});},close:function(){var which=this;if(!which.hasClassName("infoBox"))which=this.up(".infoBox");try {if(which.opts.onClose)which.onClose();} catch(e){console.log(e);}try {if(which.opts.closeRemove){which.source.isIBoxSource=false;which.remove();}else which.hide();} catch(e){console.log(e);}},set_position:function(){var sourceOffset=this.source.cumulativeOffset();var sourceDims=this.source.getDimensions();var myDims=this.getDimensions();var style={top:parseInt(this.opts.offset_top,10.0)||0.0,left:parseInt(this.opts.offset_left,10.0)||0.0};var arrow_style={};var arrow_broad=48.0;var arrow_delta=10.0;var box_margin=20.0;var scrollTop=InfoBox.cumulatedScrollTop(this.source);switch(this.opts.position){case "east":style.top=this.opts.top?(sourceOffset.top+this.opts.top):(style.top+sourceOffset.top-scrollTop+((sourceDims.height-myDims.height)/2.0).floor());style.left=this.opts.left?(sourceOffset.left+this.opts.left):(style.left+sourceOffset.left+sourceDims.width+box_margin);arrow_style.top=((myDims.height-arrow_broad-arrow_delta)/2.0).floor();break;case "north":style.left=this.opts.left?(sourceOffset.left+this.opts.left):(style.left+sourceOffset.left+((sourceDims.width-myDims.width)/2.0).floor());style.top=this.opts.top?(sourceOffset.top+this.opts.top):(style.top+sourceOffset.top-scrollTop-box_margin-myDims.height);arrow_style.left=((myDims.width-arrow_broad)/2.0).floor();break;case "south":style.left=this.opts.left?(sourceOffset.left+this.opts.left):(style.left+sourceOffset.left+((sourceDims.width-myDims.width)/2.0).floor());style.top=this.opts.top?(sourceOffset.top+this.opts.top):(style.top+(sourceOffset.top+sourceDims.height-scrollTop+box_margin));arrow_style.left=((myDims.width-arrow_broad)/2.0).floor();break;case "west":style.top=this.opts.top?(sourceOffset.top+this.opts.top):(style.top+sourceOffset.top-scrollTop+((sourceDims.height-myDims.height)/2.0).floor());style.left=this.opts.left?(sourceOffset.left+this.opts.left):(style.left+sourceOffset.left-myDims.width-box_margin);arrow_style.top=((myDims.height-arrow_broad-arrow_delta)/2.0).floor();break;default:{break;}}var viewportSo=document.viewport.getScrollOffsets();var viewportDims=document.viewport.getDimensions();if(!this.opts.dontCareAboutViewport){if(style.top+myDims.height>viewportDims.height+viewportSo.top){var style_top=(viewportDims.height+viewportSo.top-myDims.height);if(style_top>0.0){arrow_style.top=arrow_style.top+(style.top-style_top)+10.0;style.top=style_top-10.0;}}else if(style.top<viewportSo.top){var style_top=viewportSo.top;arrow_style.top=arrow_style.top+(style.top-style_top)-10.0;style.top=style_top+10.0;}}this.style.top=style.top+"px";this.style.left=style.left+"px";if(typeof arrow_style.top!="undefined")this.arrow.style.top=arrow_style.top+"px";if(typeof arrow_style.left!="undefined")this.arrow.style.left=arrow_style.left+"px";return this;}}});document.observe("click",function(ev){if(!ev.findElement(".infoBox"))InfoBox.hideAll();});document.observe("keydown",function(event){if((window.event?event.keyCode:event.which)==Event.KEY_ESC){InfoBox.hideAll();}});var InfoSlide=function(which,options){InfoSlide.show(which,options);};Object.extend(InfoSlide,{options:{speed:Effect.DEFAULT_SPEED},get:function(){return $("ranqq-info-slide");},getElement:function(infoslide){if(!infoslide)infoslide=InfoSlide.get();if(infoslide&&infoslide._data){return document.getElementById(infoslide._data.element);}else{return null;}},getContent:function(infoslide){if(!infoslide)infoslide=InfoSlide.get();if(infoslide){return infoslide.down(".InfoSlideContent");}else{return null;}},visible:function(){var infoslide=InfoSlide.get();return!!(infoslide&&infoslide.visible());},opened:function(infoslide){if(!infoslide)infoslide=InfoSlide.get();return!!(infoslide&&infoslide._data&&infoslide._data.opened);},getOrCreate:function(){var infoslide=InfoSlide.get();if(!infoslide){infoslide=InfoSlide.create();infoslide.style.display="none";document.body.appendChild(infoslide);}return infoslide;},create:function(){return E.div({className:"InfoSlide",id:"ranqq-info-slide"},E.div({className:"InfoSlideContainer"},E.div({className:"InfoSlideContent"})),E.div({className:"InfoSlideConnector"},E.div({className:"InfoSlideConnectorContent"},E.nbsp)));},_animation:null,_showAfterHide:null,_showing:false,_afterHide:function(){var infoslide=InfoSlide.get();if(infoslide){infoslide._data.opened=false;}var args=InfoSlide._showAfterHide;if(args){InfoSlide._showAfterHide=null;InfoSlide.show(args.which,args.options);}},toggle:function(which,options){which=$(which);var infoslide=InfoSlide.get();if(infoslide&&infoslide._data&&infoslide._data.opened&&infoslide.visible()&&document.getElementById(infoslide.element)===which){return InfoSlide.hide(options);}else{return InfoSlide.show(which,options);}},show:function(which,options){which=$(which);options=Object.extend({autohide:true,minTop:0.0,minHeigth:"0px"},options||{});var infoslide=InfoSlide.getOrCreate();if(InfoSlide._animation){var success=true;if(InfoSlide._showing){if(infoslide._data.notify("beforeAutohide","showOther")===false){return false;}success=InfoSlide.hide({afterHide:infoslide._data.notify.bind(infoslide._data,"afterAutohide")});}InfoSlide._showAfterHide={which:E.identify(which),options:options};return success;}else if(infoslide._data&&infoslide._data.opened){if(infoslide._data.notify("beforeAutohide","showOther")===false){return false;}else if(infoslide._data.suspended){infoslide._data.notify("afterAutohide");return InfoSlide._show(infoslide,which,options);}infoslide._data.observe("afterHide",infoslide._data.notify.bind(infoslide._data,"afterAutohide"));return InfoSlide._hide(infoslide,{afterHide:InfoSlide._show.bind(this,infoslide,E.identify(which),options)});}else{return InfoSlide._show(infoslide,which,options);}},replace:function(content,options){var infoslide=InfoSlide.get();if(!infoslide)return;if(InfoSlide._animation){var event=InfoSlide._showing?"afterShow":"afterHide";infoslide._data.observe(event,InfoSlide._replace.bind(this,infoslide,content,options));}else{InfoSlide._replace(infoslide,content,options);}},hide:function(options){if(!options)options={};var infoslide=InfoSlide.get();if(!infoslide){return true;}if(options.quick){return InfoSlide._quick_hide(infoslide,options);}else if(InfoSlide._animation){if(!InfoSlide._showing){return true;}InfoSlide._animation.cancel();return InfoSlide._hide(infoslide,options);}else if(infoslide._data&&infoslide._data.opened){return InfoSlide._hide(infoslide,options);}else{return false;}},suspend:function(){var infoslide=InfoSlide.get();if(infoslide&&infoslide._data&&infoslide._data.opened&&!infoslide._data.suspended){infoslide.style.display="none";infoslide._data.suspended=true;}},resume:function(){var infoslide=InfoSlide.get();if(infoslide&&infoslide._data&&infoslide._data.opened&&infoslide._data.suspended){InfoSlide.reposition();infoslide.style.display="";infoslide._data.suspended=false;}},_animOpts:function(distance){var opts=Object.extend({},InfoSlide.options);if("speed"in opts){opts.duration=Math.abs(distance)/opts.speed;delete opts.speed;}return opts;},_show:function(infoslide,which,options){which=$(which);var data=new InfoSlide.EventManager();data.observe("afterHide",InfoSlide._afterHide.bind(this));data.observeAll(options);var content=options.content||"";var minTop=options.minTop||0.0;var minHeight=options.minHeight;var minHeightPercent=/%$/.test(minHeight);minHeight=parseFloat(minHeight)||0.0;data.opened=true;data.suspended=false;data.autohide=!!options.autohide;data.minTop=minTop;data.element=E.identify(which);data.minHeight=minHeight;data.minHeightPercent=minHeightPercent;if(data.notify("beforeShow")===false){return false;}var container=infoslide.down(".InfoSlideContainer");var moveOpts={sync:true,style:{left:"0px"}};var opts={afterFinish:function(){InfoSlide._animation=null;container.style.left="";data.notify("afterShow");}};infoslide._data=data;var contentDiv=container.down(".InfoSlideContent");if(typeof content=="function"){content=content.call(infoslide);}if(typeof content=="string"){contentDiv.innerHTML=content;}else{contentDiv.innerHTML="";E.add(contentDiv,content);}var winHeight=document.viewport.getHeight();var elPos=which.cumulativeOffset();var elDim=which.getDimensions();if(minHeightPercent){minHeight=winHeight*minHeight/100.0;}infoslide.style.top=elPos.top+"px";container.style.height="";infoslide.style.visibility="hidden";infoslide.style.display="";var layout=infoslide.getLayout();var containerLayout=container.getLayout();var hmargin=(layout.get("margin-left")||0.0)+(layout.get("padding-left")||0.0)+(layout.get("border-left")||0.0)+(containerLayout.get("margin-left")||0.0);var startLeft=elPos.left+elDim.width-hmargin;infoslide.style.left=startLeft+"px";Object.extend(opts,InfoSlide._animOpts(startLeft));var contTMargin=containerLayout.get("margin-top")||0.0;var tmargin=((layout.get("margin-top")||0.0)+(layout.get("padding-top")||0.0)+(layout.get("border-top")||0.0)+contTMargin);var whichLayout=which.getLayout();var elTPadding=((whichLayout.get("padding-top")||0.0)+(whichLayout.get("border-top")||0.0));var elTMargin=(whichLayout.get("margin-top")||0.0)+elTPadding+0.5;var top=elPos.top+elTMargin-tmargin;var dim=infoslide.getDimensions();var width=dim.width;var height=data.originalHeight=dim.height;var innerHeight=height>winHeight?winHeight:height;if(innerHeight<minHeight){innerHeight=minHeight;}innerHeight-=InfoSlide._sum_layout(container,infoslide,["margin-top","margin-bottom","padding-top","padding-bottom","border-top","border-bottom"]);container.style.height=innerHeight+"px";height=infoslide.getHeight();var scrollTop=document.viewport.getScrollOffsets().top;var connector=infoslide.down(".InfoSlideConnector");if(top+height-scrollTop>winHeight){top=winHeight-height+scrollTop;var elBottom=elPos.top+elDim.height;if(top+height<elBottom){top=elBottom-height;}}else if(top-scrollTop-tmargin<0.0){top=scrollTop-tmargin;if(top>elPos.top+elTMargin-tmargin){top=elPos.top+elTMargin-tmargin;}}if(top<minTop){top=minTop;}infoslide.style.top=Math.round(top)+"px";connector.style.top=Math.round(elPos.top+elTPadding-top)+"px";var connectorHeight=elDim.height-((whichLayout.get("border-top")||0.0)+(whichLayout.get("border-bottom")||0.0)+(whichLayout.get("padding-top")||0.0)+(whichLayout.get("padding-bottom")||0.0));connector.down(".InfoSlideConnectorContent").style.height=connectorHeight+"px";container.style.left=connector.style.left=-width+"px";infoslide.style.visibility="";InfoSlide._showing=true;var effects=[new Effect.Morph(container,moveOpts),new Effect.Morph(connector,moveOpts)];InfoSlide._animation=new Effect.Parallel(effects,opts);return true;},_quick_hide:function(infoslide,options){if(options){infoslide._data.observeAll(options);}if(infoslide._data.notify("beforeHide")===false){infoslide._data.stopObservingAll(options);return false;}if(InfoSlide._animation){InfoSlide._animation.cancel();InfoSlide._animation=null;}infoslide.remove();infoslide._data.notify("afterHide");return true;},_hide:function(infoslide,options){if(options){infoslide._data.observeAll(options);}if(infoslide._data.notify("beforeHide")===false){infoslide._data.stopObservingAll(options);return false;}var container=infoslide.down(".InfoSlideContainer");var opts={afterFinish:function(){InfoSlide._animation=null;infoslide.style.display="none";container.style.left="";container.down(".InfoSlideContent").style.height="";infoslide._data.notify("afterHide");}};if(infoslide._data.suspended){opts.afterFinish();}else{var width=infoslide.getWidth();var moveOpts={sync:true,style:{left:-width+"px"}};Object.extend(opts,InfoSlide._animOpts(width));if(options&&"from"in options){moveOpts.from=opts.from=options.from;}var connector=infoslide.down(".InfoSlideConnector");var effects=[new Effect.Morph(container,moveOpts),new Effect.Morph(connector,moveOpts)];InfoSlide._animation=new Effect.Parallel(effects,opts);}InfoSlide._showing=false;return true;},_replace:function(infoslide,content,options){if(options){infoslide._data.observeAllOnce(options);}infoslide._data.notify("beforeReplace");if(typeof content=="function"){content=content.call(infoslide);}var contentDiv=infoslide.down(".InfoSlideContent");if(infoslide._data&&infoslide._data.opened){var opts=Object.extend(InfoSlide._animOpts(150.0),{from:1.0,to:0.0,afterFinish:function(){var newContentDiv=E.div({className:"InfoSlideContent"});newContentDiv.setOpacity(0.0);if(typeof content=="string"){newContentDiv.innerHTML=content;}else{E.add(newContentDiv,content);}var container=contentDiv.up();container.appendChild(newContentDiv);contentDiv.remove();infoslide._data.notify("betweenReplace");var dim=InfoSlide._redimension(infoslide,true);var connector=infoslide.down(".InfoSlideConnector");var slidePos=infoslide.cumulativeOffset();var distance=Math.max(Math.max(Math.abs(dim.slideTop-slidePos.top),Math.abs(dim.slideLeft-slidePos.left)),Math.max(Math.abs(dim.containerHeight-container.getHeight()),Math.abs(dim.connectorTop-connector.cumulativeOffset().top)));var slideOpts={sync:true,style:{left:dim.slideLeft+"px",top:dim.slideTop+"px"}};var containerOpts={sync:true,style:{height:dim.containerHeight+"px"}};var connectorOpts={sync:true,style:{top:dim.connectorTop+"px"}};var opts=Object.extend(InfoSlide._animOpts(distance),{from:0.0,to:1.0,afterFinish:function(){new Effect.Opacity(newContentDiv,InfoSlide._animOpts(150.0));infoslide._data.notify("afterReplace");}});var effects=[new Effect.Morph(infoslide,slideOpts),new Effect.Morph(container,containerOpts),new Effect.Morph(connector,connectorOpts)];new Effect.Parallel(effects,opts);}});new Effect.Opacity(contentDiv,opts);}else if(typeof content=="string"){contentDiv.innerHTML=content;}else{contentDiv.innerHTML="";E.add(contentDiv,content);}},reposition:function(){var infoslide=InfoSlide.get();if(infoslide){var pos=InfoSlide._reposition(infoslide,infoslide.getHeight());infoslide.style.left=pos.slideLeft+"px";infoslide.style.top=pos.slideTop+"px";infoslide.down(".InfoSlideConnector").style.top=pos.connectorTop+"px";}},_reposition:function(infoslide,height){var minTop=infoslide._data.minTop;var which=document.getElementById(infoslide._data.element);var elPos=which.cumulativeOffset();var elDim=which.getDimensions();var layout=infoslide.getLayout();var containerLayout=infoslide.down(".InfoSlideContainer").getLayout();var whichLayout=which.getLayout();var contTMargin=containerLayout.get("margin-top")||0.0;var tmargin=((layout.get("margin-top")||0.0)+(layout.get("padding-top")||0.0)+(layout.get("border-top")||0.0)+contTMargin);var elTPadding=((whichLayout.get("padding-top")||0.0)+(whichLayout.get("border-top")||0.0));var elTMargin=(whichLayout.get("margin-top")||0.0)+elTPadding+0.5;var top=elPos.top+elTMargin-tmargin;var connHeight=infoslide.down(".InfoSlideConnectorContent").getHeight();var scrollTop=document.viewport.getScrollOffsets().top;var winHeight=document.viewport.getHeight();if(top+height-scrollTop>winHeight){top=winHeight-height+scrollTop;var elBottom=elPos.top+elDim.height;if(top+height<elBottom){top=elBottom-height;}}else if(top-scrollTop-tmargin<0.0){top=scrollTop-tmargin;if(top>elPos.top+elTMargin-tmargin){top=elPos.top+elTMargin-tmargin;}}if(top<minTop){top=minTop;}var hmargin=(layout.get("margin-left")||0.0)+(layout.get("padding-left")||0.0)+(layout.get("border-left")||0.0)+(infoslide.down(".InfoSlideContainer").getLayout().get("margin-left")||0.0);return{slideLeft:elPos.left+elDim.width-hmargin,slideTop:Math.round(top),connectorTop:Math.round(elPos.top+elTPadding-top)};},_document_scroll:function(){var infoslide=InfoSlide.get();if(infoslide&&infoslide._data&&infoslide._data.opened){var pos=InfoSlide._reposition(infoslide,infoslide.getHeight());infoslide.style.left=pos.slideLeft+"px";infoslide.style.top=pos.slideTop+"px";infoslide.down(".InfoSlideConnector").style.top=pos.connectorTop+"px";}},_sum_layout:function(element,anchestor,values){var sum=0.0;var n=values.length;for(;;){var layout=element.getLayout();for(var i=0.0;i<n;++i){sum+=layout.get(values[i])||0.0;}if(element==anchestor)break;element=element.parentNode;}return sum;},redimension:function(reassess_content){var infoslide=InfoSlide.get();if(infoslide){var dim=InfoSlide._redimension(infoslide,reassess_content);infoslide.down(".InfoSlideContainer").style.height=dim.containerHeight+"px";infoslide.style.left=dim.slideLeft+"px";infoslide.style.top=dim.slideTop+"px";infoslide.down(".InfoSlideConnector").style.top=dim.connectorTop+"px";}},_redimension:function(infoslide,reassess_content){var container=infoslide.down(".InfoSlideContainer");var data=infoslide._data;var originalHeight;var content=container.down(".InfoSlideContent");var vmargin=InfoSlide._sum_layout(container,infoslide,["margin-top","margin-bottom","padding-top","padding-bottom","border-top","border-bottom"]);if(reassess_content){var layout=content.getLayout();var contentVMargin=(layout.get("margin-top")||0.0)+(layout.get("margin-bottom")||0.0);data.originalHeight=originalHeight=vmargin+contentVMargin+content.getHeight();}else{originalHeight=data.originalHeight;}var winHeight=document.viewport.getHeight();var minHeight=data.minHeight;if(data.minHeightPercent){minHeight=winHeight*minHeight/100.0;}var height=originalHeight>winHeight?winHeight:originalHeight;if(height<minHeight){height=minHeight;}var dim=InfoSlide._reposition(infoslide,height);dim.containerHeight=height-vmargin;return dim;},_window_resize:function(){var infoslide=InfoSlide.get();if(infoslide&&infoslide._data&&infoslide._data.opened){var dim=InfoSlide._redimension(infoslide);infoslide.down(".InfoSlideContainer").style.height=dim.containerHeight+"px";infoslide.style.left=dim.slideLeft+"px";infoslide.style.top=dim.slideTop+"px";infoslide.down(".InfoSlideConnector").style.top=dim.connectorTop+"px";}},_document_click:function(event){if(InfoSlide._animation){return;}var infoslide=InfoSlide.get();var target=event.target||event.srcElement;while(target){if(target==infoslide){return;}target=target.parentNode;}if(!infoslide||!infoslide._data||!infoslide._data.autohide||!infoslide._data.opened||infoslide._data.notify("beforeAutohide","click",event)===false){return;}infoslide._data.observeOnce("afterHide",infoslide._data.notify.bind(infoslide._data,"afterAutohide"));InfoSlide.hide();},_EVENT_NAMES:["beforeShow","afterShow","beforeHide","afterHide","beforeAutohide","afterAutohide","beforeReplace","afterReplace","betweenReplace"],EventManager:Class.create({observeAll:function(oberservers){var events=InfoSlide._EVENT_NAMES;for(var i=0.0,n=events.length;i<n;++i){var event=events[i];if(event in oberservers){this.observe(event,oberservers[event]);}}},stopObservingAll:function(oberservers){var events=InfoSlide._EVENT_NAMES;for(var i=0.0,n=events.length;i<n;++i){var event=events[i];if(event in oberservers){this.stopObserving(event,oberservers[event]);}}},observeAllOnce:function(oberservers){var events=InfoSlide._EVENT_NAMES;for(var i=0.0,n=events.length;i<n;++i){var event=events[i];if(event in oberservers){this.observeOnce(event,oberservers[event]);}}}})});Object.Event.extend(InfoSlide.EventManager);document.observe("scroll",InfoSlide._document_scroll);document.observe("click",InfoSlide._document_click);try {Event.observe(window,"resize",InfoSlide._window_resize);} catch(e){}var UserDB={startTA:function(seconds){this.clearTA();this.calledSeconds=parseInt(seconds,10.0);if(this.calledSeconds>this.preWarnSeconds)this.logoutNoticeTA=window.setTimeout(UserDB.showCountdownNotice,(seconds-this.preWarnSeconds)*1000.0);else if(this.calledSeconds>0.0)UserDB.showCountdownNotice(this.calledSeconds);},clearTA:function(){if("logoutNoticeTA"in this){window.clearTimeout(this.logoutNoticeTA);delete this.logoutNoticeTA;}if("logoutCD"in this){window.clearInterval(this.logoutCD);delete this.logoutCD;}},preWarnSeconds:180.0,executeStay:function(){new Ajax.Request("/sessions/renew",{asynchronous:true,evalScripts:true,method:"get"});Lightbox.close("userDBlightbox");},showCountdownNotice:function(){UserDB.remainingSeconds=UserDB.preWarnSeconds;Lightbox(E.div(_._100,E.span({id:"userDBsecsTillLogout"},String(UserDB.remainingSeconds)),_._101,E.br(),_._102,E.p({style:"overflow:hidden"},E.a({onclick:"UserDB.executeStay();return false;",href:"#",className:"button"},_._52))),{id:"userDBlightbox",duration:0.3});UserDB.logoutCD=window.setInterval(UserDB.logoutCountdown,UserDB.countDownSeconds*1000.0);},countDownSeconds:1.0,logoutCountdown:function(){UserDB.remainingSeconds=UserDB.remainingSeconds-UserDB.countDownSeconds;try {$("userDBsecsTillLogout").innerHTML=String(UserDB.remainingSeconds);} catch(e){}if(UserDB.remainingSeconds<=0.0){new Ajax.Request("/sessions/new",{method:"get",parameters:"except=anonymous|sign_up\u0026reason=autosignout\u0026lightbox_id=userDBlightbox"});UserDB.remainingSeconds=UserDB.preWarnSeconds;window.clearInterval(UserDB.logoutCD);delete UserDB.logoutCD;}}};Control.Slider.addMethods({translateToPx:function(value){return(Math.round(((this.trackLength-this.handleLength)/(this.range.end-this.range.start))*(value-this.range.start))||0.0)+"px";},translateToValue:function(offset){return(((offset/(this.trackLength-this.handleLength)*(this.range.end-this.range.start))+this.range.start)||0.0);}});if(!("isTextNode"in Object)){Object.isTextNode=function(object){return!!(object&&object.nodeType==3.0);};}if(!("curryfy"in Function.prototype)){Function.prototype.curryfy=function(n){var f;if(typeof n=="undefined"){n=this.argumentNames().length-1.0;}if(n<=0.0){return this;}else if(n==1.0){f=this;return function(arg){return f.bind(this,arg);};}else{f=this;return function(arg){return f.bind(this,arg).curryfy(n-1.0);};}};}if(!("trim"in String.prototype)){String.prototype.trim=function(){return this.replace(/^\s\s*/,"").replace(/\s\s*$/,"");};}var E=(function(){var nextId=0.0;var build=function(tag){var e=$(document.createElement(tag));for(var i=1.0,n=arguments.length;i<n;++i){ElementBuilder.add(e,arguments[i]);}return e;};var builder=build.curryfy(1.0);var INSERT_ACTIONS={update:true,top:true,bottom:true,replace:true,after:true,before:true};var ElementBuilder=function ElementBuilder(tag_or_element){if(typeof tag_or_element=="string"){return build.apply(this,arguments);}else if(arguments.length>1.0&&!(arguments[1.0] in INSERT_ACTIONS)){var args=[];for(var i=1.0,n=arguments.length;i<n;++i){args.push(arguments[i]);}var child=build.apply(this,args);tag_or_element.appendChild(child);return child;}else{return new BoundElementBuilder(tag_or_element,arguments[1.0]);}};var BoundElementBuilder=function BoundElementBuilder(element,insert){this.element=element;this.insert=insert||"bottom";};var delegate=function(name){return function(){var child=ElementBuilder[name].apply(ElementBuilder,arguments);ElementBuilder.add(this.element,child,this.insert);return child;};};BoundElementBuilder.prototype={text:delegate("text"),html:delegate("html"),identify:function(){var args=[this.element];for(var i=0.0,n=arguments.length;i<n;++i){args.push(arguments[i]);}return ElementBuilder.identify.apply(ElementBuilder,args);},add:function(child,insert){return ElementBuilder.add(this.element,child,insert||this.insert);},$set:function(key,value,raw){ElementBuilder.$set(this.element,key,value,raw);return this;},$get:function(key,raw){return ElementBuilder.$set(this.element,key,raw);},$has:function(key){return ElementBuilder.$has(this.element,key);},$remove:function(key){ElementBuilder.$remove(this.element,key);return this;},E:function(tag_or_element){var child;if(typeof tag_or_element==="string"){child=build.apply(this,arguments);this.element.appendChild(child);return ElementBuilder(child);}else if(arguments.length>1.0){this.element.appendChild(tag_or_element);var args=[];for(var i=1.0,n=arguments.length;i<n;++i){args.push(arguments[i]);}child=build.apply(this,args);tag_or_element.appendChild(child);return ElementBuilder(child);}else{this.element.appendChild(tag_or_element);return ElementBuilder(tag_or_element);}}};var tablePart=function(tag,dataTag,attrs,rows){if(Object.isArray(attrs)){var tmp=attrs;attrs=rows;rows=tmp;}var tpart=build(tag,attrs);if(rows){for(var i=0.0;i<rows.length;++i){var row=rows[i];if(Object.isArray(row)){var tr=build("tr");for(var j=0.0;j<row.length;++j){var cell=row[j];var td=null;if(Object.isElement(cell)){var tagName=cell.tagName.toLowerCase();if(tagName=="td"||tagName=="th"){td=cell;}}if(!td){td=build(dataTag,cell);}tr.appendChild(td);}tpart.appendChild(tr);}else{ElementBuilder.add(tpart,row);}}}return tpart;};var dataAttrName=function(name){var buf=["data"];var start=0.0;for(var i=1.0,n=name.length;i<n;++i){var c=name.slice(i,i+1.0);if(c.toLowerCase()!=c){buf.push(name.slice(start,i).toLowerCase());start=i;}}if(start<n){buf.push(name.slice(start,n).toLowerCase());}return buf.join("-");};Object.extend(ElementBuilder,{ID_PREFIX:"E",builder:builder,nbsp:"\u00a0",lq:_._103,rq:_._104,text:function(){var buf=[];for(var i=0.0;i<arguments.length;++i){buf.push(String(arguments[i]));}return $(document.createTextNode(buf.join("")));},thead:tablePart.curry("thead","th"),tbody:tablePart.curry("tbody","td"),tfoot:tablePart.curry("tfoot","td"),table:function(){var table=build("table");var parts=[];for(var i=0.0;i<arguments.length;++i){var arg=arguments[i];if(Object.isArray(arg)){parts.push(arg);}else{ElementBuilder.add(table,arg);}}if(parts.length==1.0){ElementBuilder.add(table,ElementBuilder.tbody(parts[0.0]));}else if(parts.length==2.0){ElementBuilder.add(table,ElementBuilder.thead(parts[0.0]));ElementBuilder.add(table,ElementBuilder.tbody(parts[1.0]));}else if(parts.length==3.0){ElementBuilder.add(table,ElementBuilder.thead(parts[0.0]));ElementBuilder.add(table,ElementBuilder.tbody(parts[1.0]));ElementBuilder.add(table,ElementBuilder.tfoot(parts[2.0]));}else if(parts.length!==0.0){throw new Error("Illegal number of arguments.");}return table;},insert:function(element,child,insert){switch(insert){case "replace":element.parentNode.replaceChild(child,element);break;case "top":if(element.firstChild)element.insertBefore(child,element.firstChild);else element.appendChild(child);break;case "after":if(element.nextSibling)element.parentNode.insertBefore(child,element.nextSibling);else element.parentNode.appendChild(child);break;case "before":element.parentNode.insertBefore(child,element);break;case "update":element.innerHTML="";case "bottom":default:{element.appendChild(child);break;}}return child;},identify:function(e){if(e.id)return e.id;var exists=null;var maxId=nextId+1000.0;var prefix=(Array.prototype.slice.call(arguments,1.0).join("_")||ElementBuilder.ID_PREFIX)+"_";while(nextId<maxId&&(exists=document.getElementById(prefix+nextId))){++nextId;}if(exists){throw new Error("Could not find free DOM id.");}return(e.id=prefix+(nextId++));},add:function(e,child,insert){var i,n;if(typeof child=="function"){child=child(e);}if(child===null||child===undefined)return e;if(Object.isElement(child)||Object.isTextNode(child)){ElementBuilder.insert(e,child,insert);}else if(typeof child!=="object"){ElementBuilder.insert(e,ElementBuilder.text(child),insert);}else if(Object.isArray(child)){switch(insert){case "replace":for(n=child.length,i=0.0;i<n;++i){ElementBuilder.add(e,child[i],"before");}e.parentNode.removeChild(e);break;case "top":for(n=child.length,i=n-1.0;i>=0.0;--i){ElementBuilder.add(e,child[i],"top");}break;case "after":for(n=child.length,i=n-1.0;i>=0.0;--i){ElementBuilder.add(e,child[i],"after");}break;case "before":for(n=child.length,i=0.0;i<n;++i){ElementBuilder.add(e,child[i],"before");}break;case "update":e.innerHTML="";case "bottom":default:{for(n=child.length,i=0.0;i<n;++i){ElementBuilder.add(e,child[i],"bottom");}break;}}}else{for(var attr in child){var value=child[attr];if(attr==="className"||attr==="class"){if(value!==null&&value!==undefined){ElementBuilder.$addClass(e,value);}}else if(attr==="htmlFor"||attr==="for"){if(Object.isElement(value)){e.htmlFor=ElementBuilder.identify(value);}else{e.htmlFor=String(value);}}else if(attr==="display"){if(value===true){if(e.style.display==="none")e.style.display="";}else e.style.display=value||"none";}else if(attr==="style"){e.setStyle(value);}else if(attr==="value"&&e.nodeName==="TEXTAREA"){e.value=value;}else if(attr==="innerHTML"){ElementBuilder.add(e,ElementBuilder.html(String(value)),insert||"update");}else if(/^on./.test(attr)){if(!Object.isArray(value)){value=[value];}var event=attr.replace(/^on/,"");for(i=0.0;i<value.length;++i){var handler=value[i];if(typeof handler!=="function"){handler=new Function("event","if ((function (event) {\n"+handler+"\n}).call(this,event) === false) { if (event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; } }");}Event.observe(e,event,handler);}}else if(attr==="dataset"&&typeof value==="object"){for(var name in value){ElementBuilder.$set(e,name,value[name]);}}else if(attr==="dataset$raw"&&typeof value==="object"){for(var name in value){ElementBuilder.$set(e,name,value[name],true);}}else if(value===true){if(attr==="id"){ElementBuilder.identify(e);}else{e.setAttribute(attr,attr);}}else if(value===false||value===undefined||value===null){e.removeAttribute(attr);}else{e.setAttribute(attr,String(value));}}}return e;},html:function(){var e=build("div");e.innerHTML=$A(arguments).join("");var scripts=e.select("script");for(var i=0.0,n=scripts.length;i<n;++i){var script=scripts[i];var replacement=build("script",{type:script.getAttribute("type")});var src=script.getAttribute("src");if(src){replacement.setAttribute("src",src);}var code=script.innerHTML;var buf=[];while(code){var pos=code.search(/<!\[CDATA\[|<!--/i);if(pos<0.0){buf.push(code.unescapeHTML());break;}buf.push(code.slice(0.0,pos).unescapeHTML());code=code.slice(pos);var end;if(/^<!--/.test(code)){code=code.slice(4.0);end="--\u003E";}else{code=code.slice(9.0);end="]]\u003E";}pos=code.search(end);if(pos<0.0){buf.push(code);break;}else{buf.push(code.slice(0.0,pos));code=code.slice(pos+end.length);}}if(buf.length>0.0){code=buf.join("");try {replacement.appendChild(ElementBuilder.text(code));} catch(exc){replacement.text=code;}}script.parentNode.replaceChild(replacement,script);}var elements=[];var child=e.firstChild;while(child){elements.push($(child));child=child.nextSibling;}if(elements.length===0.0){return null;}else if(elements.length===1.0){return elements[0.0];}else{return elements;}},$define:function(name,handler,redefine){if(!redefine&&(name in BoundElementBuilder.prototype||name in ElementBuilder)){throw new Error("Builder function \""+name+"\" is already defined.");}BoundElementBuilder.prototype[name]=delegate(name);ElementBuilder[name]=handler;}});var supportsDataset=function(){var e=document.createElement("div");e.setAttribute("data-x-y","z");return!!(e.dataset&&e.dataset.xY==="z");};var supportsClassList=function(){var classList=document.createElement("div").classList;return!!(classList&&classList.add&&classList.remove&&classList.contains);};var feature=function(name,test,supported,fallback){ElementBuilder[name]=function(){return(this[name]=test()?supported:fallback).apply(this,arguments);};};feature("$set",supportsDataset,function(e,key,value,raw){e.dataset[key]=raw?String(value):JSON.stringify(value);},function(e,key,value,raw){e.setAttribute(dataAttrName(key),raw?String(value):JSON.stringify(value));});feature("$get",supportsDataset,function(e,key,raw){var value=e.dataset[key];if(value&&!raw){value=JSON.parse(value);}return value;},function(e,key,raw){var value=e.getAttribute(dataAttrName(key));if(value&&!raw){value=JSON.parse(value);}return value;});feature("$has",supportsDataset,function(e,key){return key in e.dataset;},function(e,key){return e.getAttribute(dataAttrName(key))!==null;});feature("$remove",supportsDataset,function(e,key){delete e.dataset[key];},function(e,key){e.removeAttribute(dataAttrName(key));});feature("$addClass",supportsClassList,function(e,className){var classNames=Object.isArray(className)?className:className.trim().split(/\s+/);for(var i=0.0,n=classNames.length;i<n;++i){e.classList.add(classNames[i]);}return e;},function(e,className){var i,n,classNames=e.className.trim().split(/\s+/);var map={};for(i=0.0,n=classNames.length;i<n;++i){map[classNames[i]]=true;}classNames=Object.isArray(className)?className:className.trim().split(/\s+/);for(i=0.0,n=classNames.length;i<n;++i){map[classNames[i]]=true;}classNames=[];for(var className in map){classNames.push(className);}e.className=classNames.join(" ");return e;});feature("$hasClass",supportsClassList,function(e,className){var classNames=Object.isArray(className)?className:className.trim().split(/\s+/);for(var i=0.0,n=classNames.length;i<n;++i){if(!e.classList.contains(classNames[i])){return false;}}return true;},function(e,className){var i,n,classNames=e.className.trim().split(/\s+/);var map={};var has=Object.prototype.hasOwnProperty;for(i=0.0,n=classNames.length;i<n;++i){map[classNames[i]]=true;}classNames=Object.isArray(className)?className:className.trim().split(/\s+/);for(i=0.0,n=classNames.length;i<n;++i){if(!has.call(map,classNames[i])){return false;}}return true;});feature("$removeClass",supportsClassList,function(e,className){var classNames=Object.isArray(className)?className:className.trim().split(/\s+/);for(var i=0.0,n=classNames.length;i<n;++i){e.classList.remove(classNames[i]);}},function(e,className){var i,n,classNames=e.className.trim().split(/\s+/);var map={};for(i=0.0,n=classNames.length;i<n;++i){map[classNames[i]]=true;}classNames=Object.isArray(className)?className:className.trim().split(/\s+/);for(i=0.0,n=classNames.length;i<n;++i){delete map[classNames[i]];}classNames=[];for(var className in map){classNames.push(className);}e.className=classNames.join(" ");});var tags=["div","span","img","p","pre","a","h1","h2","h3","h4","h5","h6","em","strong","sup","sub","input","button","select","label","textarea","form","iframe","ul","li","td","tr","th","br","thead","tbody","tfoot","table","script","style","link","meta"];var tag;for(var i=0.0,n=tags.length;i<n;++i){tag=tags[i];if(!(tag in BoundElementBuilder.prototype)){BoundElementBuilder.prototype[tag]=delegate(tag);}if(!(tag in ElementBuilder)){ElementBuilder[tag]=builder(tag);}}tags=null;tag=null;return ElementBuilder;})();E.$define("$tabs",function(opts){var tablist=E.ul({"class":"tabList darkBorder"});var tabs=E.div({"class":"tabsContainer"});if(!opts.disabledClassName){opts.disabledClassName="disabled";}var initTab=null;var tabs_id=E.identify(opts);for(var i=0.0,n=opts.tabs.length;i<n;++i){var tab=opts.tabs[i];var tab_id=tabs_id+"_"+i;var button=E.a({"class":"button",href:"#"+tab_id},tab.name);if(tab.disabled){button.className=opts.disabledClassName;button.disabled=true;}else if(initTab===null){initTab=i;}if(tab.title){button.title=tab.title;}tablist.appendChild(E.li(button));var content=E.div(tab.attrs||{},tab.content);if(initTab!=i){content.style.display="none";}content.id=tab_id;content.addClassName(opts.contentClassName||"tabContent");tabs.appendChild(content);}var containeropts=Object.extend({},opts);["tabs","defaultTab","beforeChange","afterChange","afterResize","contentClassName","borderClassName","disabledClassName","header","footer"].each(function(name){delete containeropts[name];});if(!("defaultTab"in opts)&&initTab!==null){opts.initTab=initTab;}var container=E.div(containeropts,opts.header,tablist,tabs,clear,opts.footer);opts.tabs_container=tabs;SimpleTabs.initialize(container,tablist,opts);return container;});E.$define("$expander",function(opts){var content=opts.content;var name=opts.name;delete opts.content;delete opts.name;var expander=new Expander(name,content,opts);return [expander.name,expander.wrapper];});E.$define("$editable",Extend(function(text,options){if(!options)options={};if(!options.name)options.name="text";return E.span({"class":"editable"},E.span({"class":"text "+options.name,onclick:function(){E.$editable.edit.call(Element.up(this,".editable"),options);}},text),E.div({"class":"formTextContainer",style:"display:none;"},E.input({type:"text","class":"formText "+options.name,name:options.name,value:text,onkeydown:function(event){switch(event.keyCode){case 13.0:E.$editable.change.call(Element.up(this,".editable"),options);break;case 27.0:E.$editable.cancel.call(Element.up(this,".editable"),options);break;}}})),E.a({href:"#",title:_._46,onclick:["return false;",function(event){var E_editable=Element.up(this,".editable");if(E_editable.down("\u003E .formTextContainer").style.display==="none"){E.$editable.edit.call(E_editable,options);}else{E.$editable.change.call(E_editable,options);}}]},E.img({src:"/images/pencil.png"})));},{edit:function(options){var E_container=Element.down(this,"\u003E .formTextContainer");var E_input=Element.down(E_container,"\u003E .formText");var E_span=Element.down(this,"\u003E span.text");var text=E_span.innerHTML.unescapeHTML();E_input.value=text;E_span.style.display="none";E_container.style.display="";E_input.focus();E_input.select();if(options.onEdit){options.onEdit.call(this,text);}},change:function(options){var E_container=Element.down(this,"\u003E .formTextContainer");var E_input=Element.down(E_container,"\u003E .formText");var E_span=Element.down(this,"\u003E span.text");var text=E_input.value=E_input.value.strip().replace(/\s\s+/g," ");if(text!==E_span.innerHTML.unescapeHTML().strip().replace(/\s\s+/g," ")){E_span.innerHTML=text.escapeHTML();E_span.style.display="";E_container.style.display="none";if(options.onChange){options.onChange.call(this,text);}}else{E_span.style.display="";E_container.style.display="none";if(options.onCancel){options.onCancel.call(this,text);}}},cancel:function(options){var E_container=Element.down(this,"\u003E .formTextContainer");var E_input=Element.down(E_container,"\u003E .formText");var E_span=Element.down(this,"\u003E span.text");var text=E_span.innerHTML.unescapeHTML();E_input.value=text;E_span.style.display="";E_container.style.display="none";if(options.onCancel){options.onCancel.call(this,text);}}}));E.$define("$button",function(){var button=E.div({"class":"button"});var content=E(button).div({"class":"content"});for(var i=0.0,n=arguments.length;i<n;++i){var arg=arguments[i];if(arg&&typeof arg.nodeType==="number"){content.appendChild(arg);}else if(typeof arg==="object"){E.add(button,arg);}else{E.add(content,arg);}}return button;});E.$define("$sprite",function(which,attributes){var sd=E.$sprite.def[which];if(!sd)sd=["Unknown "+which,20.0,30.0,0.0,0.0,""];return E.div({title:sd[0.0],"class":"sprite sprite-"+which+" "+sd[5.0],style:"width:"+sd[1.0]+"px;height:"+sd[2.0]+"px"},attributes,E.img({draggable:"false",src:E.$sprite.img||"/images/sprites.png",alt:sd[0.0],style:"left:-"+sd[3.0]+"px;top:-"+sd[4.0]+"px"}));});E.$define("$textField",function(options){return E.div({"class":"formTextContainer"},E.input({"class":"formText",type:"text",autocomplete:"off"},options));});var SimpleTabs={initialize:function(container,tablist,opts){var previous=null;var animating=false;if(!opts){opts={};}var animopts={duration:0.25,afterFinish:function(){animating=false;},beforeResize:opts.beforeResize,afterResize:opts.afterResize};if(opts.transition){Object.extend(animopts,opts.transition);}var controlopts={tracked:false,linkSelector:opts.linkSelector||"li a",linkAttribute:opts.linkAttribute||"href",activeClassName:opts.activeClassName||"tabSelected",disabledClassName:opts.disabledClassName||"disabled",hideFunction:function(tab){previous=tab;},showFunction:function(tab){if(previous===null){Element.show(tab);}else{animating=true;new Effect.Replace(previous,tab,animopts);}},beforeChange:function(previous,tab){if(animating){throw $break;}}};var defaultTab=opts.defaultTab;var beforeChange=opts.beforeChange;var afterChange=opts.afterChange;if(beforeChange){controlopts.beforeChange=beforeChange;}if(afterChange){controlopts.afterChange=afterChange;}switch(defaultTab){case undefined:case null:case "first":defaultTab=0.0;break;case "last":defaultTab=tablist.select(controlopts.linkSelector).length-1.0;break;default:{if(typeof defaultTab!="number"){defaultTab=0.0;}break;}}controlopts.defaultTab=defaultTab;if(opts.tabs_container){controlopts.tabs_container=opts.tabs_container;}container.controlTabs=new Control.Tabs(tablist,controlopts);opts=null;container=null;tablist=null;}};var Steps={initialize:function(container,tablist,opts){if(!opts){opts={};}var validators=opts.validators||{};var async_validators=opts.async_validators||{};delete opts.validators;delete opts.async_validators;SimpleTabs.initialize(container,tablist,opts);container._async_active=false;container._skip_validation=false;var validate=function(activeContainer,nextContainer){if(container._async_active){throw $break;}if(activeContainer&&!container._skip_validation){var validator=validators[activeContainer.id];if(validator&&!validator.call(activeContainer,container)){throw $break;}validator=async_validators[activeContainer.id];if(validator){container._async_active=true;validator.call(activeContainer,container,function(valid){container._async_active=false;if(valid){if(nextContainer){container._skip_validation=true;container.controlTabs.enableTab(nextContainer.id);container.controlTabs.setActiveTab(nextContainer.id);}else{container.controlTabs.notify("submit");}}});throw $break;}}container._skip_validation=false;};container.controlTabs.observe("beforeChange",validate);}};Effect.SmoothScroll=Class.create();Object.extend(Object.extend(Effect.SmoothScroll.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);var options=Object.extend({x:0.0,y:0.0,mode:"absolute"},arguments[1.0]||{});this.start(options);},setup:function(){if(this.options.continuous&&!this.element._ext){this.element.cleanWhitespace();this.element._ext=true;this.element.appendChild(this.element.firstChild);}this.originalLeft=this.element.scrollLeft;this.originalTop=this.element.scrollTop;if(this.options.mode=="absolute"){this.options.x-=this.originalLeft;this.options.y-=this.originalTop;}},update:function(position){this.element.scrollLeft=this.options.x*position+this.originalLeft;this.element.scrollTop=this.options.y*position+this.originalTop;}});var Carousel=Class.create({initialize:function(medias,options){this.options=Object.extend({initial:0.0,duration:0.25,auto:false,frequency:3.0,wheel:true,transition:"sinoidal",editable:false},options||{});this.options.slide=Object.extend({width:352.0,height:264.0},this.options.slide||{});this.options.preview=Object.extend({width:92.0,height:69.0,paddingLeft:5.0,paddingRight:5.0,paddingTop:5.0,paddingBottom:5.0,navWidth:20.0,clip:true},this.options.preview||{});this.timer=null;this.slides=[];this.slideEffect=null;this.previewEffect=null;this.current=null;this.currentPreview=null;this.placeholder=E.div({"class":"carousel-slide carousel-placeholder"},E.div(_._80));this.number=E.div({"class":"carousel-slide-number"},"0/0");this.caption=E.div();var prev=E.a({"class":"carousel-control carousel-prev-slide",title:_._105,onclick:this.clickAction(this.prev)},"\u2039");var next=E.a({"class":"carousel-control carousel-next-slide",title:_._106,onclick:this.clickAction(this.next)},"\u203a");var navigation=E.div({"class":"carousel-navigation"},prev,next);var expand=E.div({"class":"carousel-expand-slide"},E.a({onclick:this.clickAction(this.expandSlide)},_._107));this.wrapper=E.div({"class":"carousel-wrapper",onmousemove:"Element.addClassName(this, \"carousel-wrapper-hover\");",onmouseout:"Element.removeClassName(this, \"carousel-wrapper-hover\");"},this.number,E.div({"class":"carousel-slide-caption",style:{top:(this.options.slide.height-1.0)+"px"},onmousemove:"Element.addClassName(this, \"carousel-slide-caption-hover\");",onmouseout:"Element.removeClassName(this, \"carousel-slide-caption-hover\");"},this.caption),navigation,expand,this.placeholder);this.previewsClear=E.div({"class":"clear"});this.previews=E.div({"class":"carousel-previews-wrapper"},this.previewsClear);var navWidth=this.options.preview.navWidth+"px";this.previewPrev=E.div({"class":"carousel-prev-preview"},E.a({"class":"carousel-control",style:{width:navWidth},onclick:this.clickAction(this.scrollPreviewsLeft)},"\u2039"));this.previewNext=E.div({"class":"carousel-next-preview"},E.a({"class":"carousel-control",style:{width:navWidth},onclick:this.clickAction(this.scrollPreviewsRight)},"\u203a"));var container=E.div({"class":"carousel",style:{width:this.options.slide.width+"px"}},this.wrapper,E.div({"class":"carousel-previews-container"},this.previewPrev,this.previewNext,E.div({"class":"carousel-previews",style:{width:(this.options.slide.width-2.0*this.options.preview.navWidth)+"px",height:(this.options.preview.height+this.options.preview.paddingTop+this.options.preview.paddingBottom)+"px",marginLeft:navWidth,marginRight:navWidth}},this.previews)));container.carousel=this;if(this.options.editable){var removeButton=E.div({"class":"carousel-del-button"},E.$button({onclick:"Element.up(this,\".carousel\").carousel.clickRemove();"},_._89));this.wrapper.appendChild(removeButton);}var i,n,events=["beforeMove","afterMove","beforeAdd","afterAdd","beforeRemove","afterRemove","beforeMovePreview","afterMovePreview"];for(i=0.0,n=events.length;i<n;++i){var event=events[i];var observer=this.options[event];if(observer&&typeof observer=="function"){this.observe(event,observer);}}if(this.options.wheel){var slideWheel=this.slideWheel.bindAsEventListener(this);this.wrapper.observe("mousewheel",slideWheel);this.wrapper.observe("DOMMouseScroll",slideWheel);var previewWheel=this.previewWheel.bindAsEventListener(this);this.previews.observe("mousewheel",previewWheel);this.previews.observe("DOMMouseScroll",previewWheel);}var slideWidth=this.options.slide.width+"px";var slideHeight=this.options.slide.height+"px";this.placeholder.style.width=slideWidth;this.placeholder.style.height=slideHeight;this.wrapper.style.width=slideWidth;this.wrapper.style.height=slideHeight;this.previews.style.height=this.options.preview.height+"px";if(medias&&medias.length>0.0){for(i=0.0,n=medias.length;i<n;++i){this._add({media:medias[i]}).slide.preview.style.display="";}this.placeholder.style.display="none";}else{this.placeholder.style.visibility="hidden";container.addClassName("carousel-empty");}this._adjustPreviewWrapperSize();if(this.options.parent){$(this.options.parent).appendChild(container);delete this.options.parent;}if(!medias||medias.length===0.0){var dims=this.placeholder.down().getDimensions();this._centerContent(this.placeholder,dims.width||this.options.slide.width,dims.height||14.0);this.placeholder.style.visibility="";}this.moveTo({index:this.options.initial});if(this.options.auto){this.start();}},container:function(){return this.wrapper.up(".carousel");},clickRemove:function(){if(this.current&&!this.controlsDeactivated()){this.remove({slide:this.current});}},expandSlide:function(){if(R4.O.Media&&this.current){var E_media=this.current.content.down(".medias");if(E_media){var media=R4(E_media);if(media){media.showOverlay({full:true});}}}},cancelAnimation:function(){this.cancelSlideAnimation();this.cancelPreviewAnimation();},cancelSlideAnimation:function(){if(this.slideEffect){this.slideEffect.cancel();this.slideEffect=null;}},cancelPreviewAnimation:function(){if(this.previewEffect){this.previewEffect.cancel();this.previewEffect=null;}},animating:function(){return!!(this.slideEffect||this.previewEffect);},clickAction:function(action){return(function(event){if(this.controlsDeactivated()){return;}Event.stop(event);action.call(this,event);}).bind(this);},get:function(key){switch(typeof key){case "number":key={index:key};break;case "string":key={id:key};break;case "object":if(Object.isElement(key)){key={content:key};}break;default:{return null;}}var i,n,slide,slides=this.slides;if("id"in key){key=key.id;for(i=0.0,n=slides.length;i<n;++i){slide=slides[i];if(slide.id==key){return{index:i,slide:slide};}}}else if("content"in key){key=key.content;for(i=0.0,n=slides.length;i<n;++i){slide=slides[i];if(slide.content==key){return{index:i,slide:slide};}}}else if("slide"in key){key=key.slide;for(i=0.0,n=slides.length;i<n;++i){slide=slides[i];if(slide==key){return{index:i,slide:slide};}}}else if("index"in key){key=key.index;slide=slides[key];if(!slide){return null;}else{return{index:key,slide:slide};}}else if("preview"in key){key=key.preview;for(i=0.0,n=slides.length;i<n;++i){slide=slides[i];if(slide.preview==key){return{index:i,slide:slide};}}}return null;},getMedias:function(){return R4(this.wrapper.select(".carousel-slide .medias"));},_add:function(options){var caption;var content;var id=null;var preview;if(options.media){var media=R4(options.media);id=media.id;var elements=media.render("standard",{width:this.options.slide.width,height:this.options.slide.height,preview:this.options.preview});content=elements[0.0];caption=elements[1.0];preview=elements[2.0];}else{preview=E.div({"class":"previewPlaceholder"},E.nbsp);content=E.div({"class":"renderedMediaPlaceholder"},E.nbsp);if(typeof options.caption=="string"){caption=options.caption.escapeHTML();}else if(options.caption){caption=options.caption;}else{caption="";}}var slide={id:id,caption:caption};var slideWidth=this.options.slide.width;var slideHeight=this.options.slide.height;slide.content=content=E.div({"class":"carousel-slide",style:{display:"none",width:slideWidth+"px",height:slideHeight+"px"}},content);if(options.media){this._centerContent(content,options.media.width,options.media.height);}slide.preview=preview=E.div({"class":"carousel-preview",style:{display:"none",width:this.options.preview.width+"px",height:this.options.preview.height+"px",paddingLeft:this.options.preview.paddingLeft+"px",paddingRight:this.options.preview.paddingRight+"px",paddingTop:this.options.preview.paddingTop+"px",paddingBottom:this.options.preview.paddingBottom+"px"},onclick:this.moveTo.bind(this,{slide:slide})},E.div({style:{width:this.options.preview.width+"px",height:this.options.preview.height+"px",overflow:"hidden"}}).update(preview));var handle={index:this.slides.length,slide:slide};this.notify("beforeAdd",slide);this.slides.push(slide);this.wrapper.appendChild(content);this.previews.insertBefore(preview,this.previewsClear);this._adjustPreviewWrapperSize();this.container().removeClassName("carousel-empty");new Effect.Appear(preview,{duration:this.options.duration});this.observeOnce("afterMove",this.notify.bind(this,"afterAdd",slide));return handle;},_adjustPreviewWrapperSize:function(){this.previews.style.width=(this.slides.length*(this.options.preview.width+this.options.preview.paddingLeft+this.options.preview.paddingRight))+"px";},_setCaption:function(caption){this.caption.update(caption);},_centerContent:function(content,width,height){var fw=this.options.slide.width/width;var fh=this.options.slide.height/height;var f;if(fw===0.0){f=fh;}else if(fh===0.0){f=fw;}else{f=fh>fw?fw:fh;}var render_width=Math.round(width*f);var render_height=Math.round(height*f);var padding_horizontal=(this.options.slide.width-render_width)*0.5;var padding_vertical=(this.options.slide.height-render_height)*0.5;content.style.width=render_width+"px";content.style.height=render_height+"px";content.style.paddingTop=padding_vertical+"px";content.style.paddingBottom=padding_vertical+"px";content.style.paddingLeft=padding_horizontal+"px";content.style.paddingRight=padding_horizontal+"px";},_setCurrentPreviewBorder:function(slide){for(var i=0.0,n=this.slides.length;i<n;++i){this.slides[i].preview.removeClassName("carousel-current-preview");}slide.preview.addClassName("carousel-current-preview");},add:function(media){if(typeof media=="string"){if(R4.O.Medias){media=R4.O.Medias[media];}if(!media){media=R4({type:"Media",id:media});}}var handle=this._add({media:media});this._moveTo(handle);return handle.slide;},addDeferred:function(options){if(!options){options={};}var handle=this._add(options);this._moveTo(handle);return{slide:handle.slide,onMedia:(function(media){media=R4(media);handle.slide.id=media.id;var mediaPlaceholder=handle.slide.content.down(".renderedMediaPlaceholder");var previewPlaceholder=handle.slide.preview.down(".previewPlaceholder");var effects=[];effects.push(new Effect.Fade(mediaPlaceholder,{duration:this.options.duration,sync:true}));effects.push(new Effect.Fade(previewPlaceholder,{duration:this.options.duration,sync:true}));new Effect.Parallel(effects,{duration:this.options.duration,afterFinish:(function(){var elements=media.render("standard",{width:this.options.slide.width,height:this.options.slide.height,preview:this.options.preview});handle.slide.caption=elements[1.0];if(handle.slide==this.current){this._setCaption(elements[1.0]);}var content=elements[0.0];content.style.display="none";handle.slide.content.appendChild(content);mediaPlaceholder.remove();this._centerContent(handle.slide.content,media.width,media.height);var effects=[];effects.push(new Effect.Appear(content,{duration:this.options.duration,sync:true}));var preview=elements[2.0];preview.style.display="none";previewPlaceholder.parentNode.appendChild(preview);previewPlaceholder.remove();effects.push(new Effect.Appear(preview,{duration:this.options.duration,sync:true}));new Effect.Parallel(effects,{duration:this.options.duration});}).bind(this)});}).bind(this),onError:(function(error){var mediaPlaceholder=handle.slide.content.down(".renderedMediaPlaceholder");var previewPlaceholder=handle.slide.preview.down(".previewPlaceholder");var effects=[];effects.push(new Effect.Fade(mediaPlaceholder,{duration:this.options.duratioi,sync:true}));effects.push(new Effect.Fade(previewPlaceholder,{duration:this.options.duration,sync:true}));new Effect.Parallel(effects,{duration:this.options.duration,afterFinish:(function(){handle.slide.caption="";if(handle.slide==this.current){this._setCaption("");}var errorMessage=E.div({"class":"carousel-error",style:"visibility:hidden;"},E.h3(error.name),E.p().update(error.message));handle.slide.content.appendChild(errorMessage);mediaPlaceholder.remove();var dims=errorMessage.getDimensions();this._centerContent(handle.slide.content,dims.width,dims.height);errorMessage.style.display="none";errorMessage.style.visibility="";var effects=[];effects.push(new Effect.Appear(errorMessage,{duration:this.options.duration,sync:true}));var preview=E.div({"class":"carousel-preview-error",style:{display:"none",width:this.options.preview.width+"px",height:this.options.preview.height+"px"}},E.nbsp);previewPlaceholder.parentNode.appendChild(preview);previewPlaceholder.remove();effects.push(new Effect.Appear(preview,{duration:this.options.duration,sync:true}));new Effect.Parallel(effects,{duration:this.options.duration});}).bind(this)});}).bind(this)};},remove:function(key){var handle=this.get(key);if(!handle)return;this.notify("beforeRemove",handle.slide);this.cancelAnimation();this.deactivateControls();var remove=(function(){handle=this.get({slide:handle.slide});if(!handle)return;this.slides.splice(handle.index,1.0);this.wrapper.removeChild(handle.slide.content);this._adjustPreviewWrapperSize();this.notify("afterRemove",handle.slide);}).bind(this);new Effect.Fade(handle.slide.preview,{duration:this.options.duration,afterFinish:function(){if(handle.slide.preview.up())handle.slide.preview.remove();}});if(this.slides.length>1.0){if(this.current===handle.slide){var previous=this.get({slide:this.current});var nextIndex=previous.index+1.0;if(nextIndex>=this.slides.length){nextIndex=previous.index-1.0;}var target=this.get({index:nextIndex});this.notify("beforeMove",previous.slide,target.slide);this._setCurrentPreviewBorder(target.slide);this.slideEffect=new Effect.Fade(handle.slide.content,{duration:this.options.duration,afterFinish:(function(){remove();this.number.update((this.get({slide:target.slide}).index+1.0)+"/"+this.slides.length);this._setCaption(target.slide.caption);this.current=target.slide;this.slideEffect=new Effect.Appear(target.slide.content,{duration:this.options.duration,afterFinish:(function(){this.activateControls();this.slideEffect=null;this.notify("afterMove",previous.slide,target.slide);}).bind(this)});}).bind(this)});}else{if(this.currentPreview){this._moveToPreview(this.get({slide:this.currentPreview}));}else{this._moveToPreview(this.get({index:0.0}));}remove();}}else{this.slideEffect=new Effect.Fade(handle.slide.content,{duration:this.options.duration,afterFinish:(function(){remove();this.container().addClassName("carousel-empty");this.current=null;this.currentPreview=null;this.previews.scrollLeft=0.0;this.previews.scrollTop=0.0;this.placeholder.style.visibility="hiddden";this.placeholder.style.display="";var dims=this.placeholder.down("\u003E div").getDimensions();this._centerContent(this.placeholder,dims.width||this.options.slide.width,dims.height||14.0);this.slideEffect=new Effect.Appear(this.placeholder,{duration:this.options.duration,afterFinish:(function(){this.activateControls();this.slideEffect=null;}).bind(this)});}).bind(this)});}},clear:function(){this.cancelAnimation();this.deactivateControls();for(var i=0.0,n=this.slides.length;i<n;++i){var slide=this.slides[i];this.notify("beforeRemove",slide);this.wrapper.removeChild(slide.content);if(slide.preview.up())slide.preview.remove();this.notify("afterRemove",slide);}this.slides=[];this.current=null;this.currentPreview=null;this.container().addClassName("carousel-empty");this._adjustPreviewWrapperSize();this.previews.scrollLeft=0.0;this.previews.scrollTop=0.0;this.placeholder.style.visibility="";this.placeholder.style.display="";var dims=this.placeholder.down("\u003E div").getDimensions();this._centerContent(this.placeholder,dims.width||this.options.slide.width,dims.height||14.0);this.activateControls();},moveTo:function(key){this._moveTo(this.get(key));},_moveTo:function(handle){if(!handle||this.current==handle.slide)return;this.notify("beforeMove",this.current,handle.slide);var previous=this.current;this.cancelSlideAnimation();this._setCurrentPreviewBorder(handle.slide);this._moveToPreview(handle);this.deactivateControls();var appear=(function(){this.number.update((handle.index+1.0)+"/"+this.slides.length);this._setCaption(handle.slide.caption);this.current=handle.slide;this.slideEffect=new Effect.Appear(handle.slide.content,{duration:this.options.duration,afterFinish:(function(){this.activateControls();this.slideEffect=null;this.notify("afterMove",previous,this.current);}).bind(this)});}).bind(this);if(previous){this.slideEffect=new Effect.Fade(previous.content,{duration:this.options.duration,afterFinish:(function(){this.slideEffect=null;appear();}).bind(this)});}else if(this.placeholder.visible()){this.slideEffect=new Effect.Fade(this.placeholder,{duration:this.options.duration,afterFinish:(function(){this.slideEffect=null;appear();}).bind(this)});}else{appear();}},moveToPreview:function(id){this._moveToPreview(this.get(id));},_moveToPreview:function(handle){if(!handle||this.currentPreview===handle.slide)return;var previous=this.currentPreview;this.notify("beforeMovePreview",previous,handle.slide);this.currentPreview=handle.slide;var x=handle.index*(this.options.preview.width+this.options.preview.paddingLeft+this.options.preview.paddingRight);var previewsWidth=this.previews.getWidth();var containerWidth=this.previews.parentNode.getWidth();if(previewsWidth>=containerWidth){if((containerWidth-(previewsWidth-x))>0.0){x=previewsWidth-containerWidth;}}else{x=0.0;}this.cancelPreviewAnimation();var transition;switch(this.options.transition){case "spring":transition=Effect.Transitions.spring;break;case "sinoidal":default:{transition=Effect.Transitions.sinoidal;break;}}this.previewEffect=new Effect.SmoothScroll(this.previews.parentNode,{duration:this.options.duration,x:x,transition:transition,afterFinish:(function(){this.previewEffect=null;this.notify("afterMovePreview",previous,handle.slide);}).bind(this)});},prevPreview:function(){if(this.slides.length===0.0)return;var handle;if(this.currentPreview){handle=this.get({slide:this.currentPreview});}else{handle=this.get({index:0.0});}if(handle.index>0.0){this.moveToPreview({index:handle.index-1.0});}},nextPreview:function(){if(this.slides.length===0.0)return;var handle;if(this.currentPreview){handle=this.get({slide:this.currentPreview});}else{handle=this.get({index:0.0});}var nextIndex=handle.index+1.0;if(nextIndex<this.slides.length){this.moveToPreview({index:nextIndex});}},scrollPreviewsLeft:function(){var index=Math.floor(this.previews.parentNode.scrollLeft/(this.options.preview.width+this.options.preview.paddingLeft+this.options.preview.paddingRight))-1.0;if(index<0.0){index=0.0;}else if(index>=this.slides.length){index=this.slides.length-1.0;}this.moveToPreview({index:index});},scrollPreviewsRight:function(){var index=Math.floor(this.previews.parentNode.scrollLeft/(this.options.preview.width+this.options.preview.paddingLeft+this.options.preview.paddingRight))+1.0;if(index<0.0){index=0.0;}else if(index>=this.slides.length){index=this.slides.length-1.0;}this.moveToPreview({index:index});},prev:function(){if(this.slides.length===0.0)return;var handle;if(this.current){handle=this.get({slide:this.current});}else{handle=this.get({index:0.0});}if(handle.index>0.0){this.moveTo({index:handle.index-1.0});}else{this.last();}},next:function(){if(this.slides.length===0.0)return;var handle;if(this.current){handle=this.get({slide:this.current});}else{handle=this.get({index:0.0});}var nextIndex=handle.index+1.0;if(nextIndex<this.slides.length){this.moveTo({index:nextIndex});}else{this.first();}},first:function(){this.moveTo({index:0.0});},last:function(){this.moveTo({index:this.slides.length-1.0});},start:function(){this.deactivateControls();this.periodicallyUpdate();},pause:function(){this.stop();},resume:function(){this.start();},stop:function(){if(this.timer!==null){clearTimeout(this.timer);this.timer=null;}this.activateControls();},periodicallyUpdate:function(){if(this.timer!==null){clearTimeout(this.timer);this.next();}this.timer=setTimeout(this.periodicallyUpdate.bind(this),this.options.frequency*1000.0);},wheel:function(event){if(!event){event=window.event;}event.cancelBubble=true;Event.stop(event);var delta=0.0;if(event.wheelDelta){delta=event.wheelDelta/120.0;}else if(event.detail){delta=-event.detail/3.0;}if(!this.scrolling){if(delta>0.0){return"prev";}else{return"next";}}},slideWheel:function(event){switch(this.wheel(event)){case "prev":this.prev();break;case "next":this.next();break;default:{break;}}},previewWheel:function(event){switch(this.wheel(event)){case "prev":this.scrollPreviewsLeft();break;case "next":this.scrollPreviewsRight();break;default:{break;}}},controlsDeactivated:function(){return this.container().hasClassName("carousel-deactivated");},deactivateControls:function(){this.container().addClassName("carousel-deactivated");},activateControls:function(){this.container().removeClassName("carousel-deactivated");}});Object.Event.extend(Carousel);var Expander=Class.create({initialize:function(name,content,options){this.options=Object.extend({expanded:false,parent:null},options||{});if(!("speed"in this.options)&&!("duration"in this.options)){this.options.speed=Effect.DEFAULT_SPEED;}this.connect("beforeExpand","beforeAnimate");this.connect("beforeCollapse","beforeAnimate");this.connect("afterExpand","afterAnimate");this.connect("afterCollapse","afterAnimate");this.observe("afterAnimate",this._afterAnimate.bind(this));var contentAttrs={};if(!this.options.expanded){contentAttrs.style="display:none;";}this.wrapper=E.div(contentAttrs);if(this.options.expanded){if(typeof content=="function"){content=content.call(this);}E.add(this.wrapper,content);this._content_added=true;}this.content=content;this.arrow=E.a({className:"arrowContainer arrowActive "+(this.options.expanded?"arrowDown":"arrowRight")},E.img({src:"/images/icons.png",className:"arrow",alt:""}));this.name=E.a({href:"#",onclick:["return false;",this.toggle.bind(this)]},name," \n ",this.arrow);if(this.options.title){this.name.title=this.options.title;}if(this.options.parent){this.options.parent.appendChild(this.name);this.options.parent.appendChild(this.wrapper);}},isExpanded:function(){return this.arrow.hasClassName("arrowDown");},expand:function(){if(this._animating||this.isExpanded())return;this._expand();},collapse:function(){if(this._animating||!this.isExpanded())return;this._collapse();},toggle:function(){if(this._animating)return;if(this.isExpanded()){this._collapse();}else{this._expand();}},_content_added:false,_animating:false,_animOpts:function(distance){var opts={beforeUpdate:this.notify.bind(this,"beforeResize"),afterUpdate:this.notify.bind(this,"afterResize")};if("speed"in this.options){opts.duration=distance/this.options.speed;}else{opts.duration=this.options.duration;}return opts;},_afterAnimate:function(){this._animating=false;},_expand:function(){if(this.notify("beforeExpand")===false)return;this._animating=true;if(!this._content_added){if(typeof this.content=="function"){this.content=this.content.call(this);}E.add(this.wrapper,this.content);this._content_added=true;}var animOpts=this._animOpts(this.wrapper.getHeight());animOpts.afterFinish=this.notify.bind(this,"afterExpand");this.arrow.removeClassName("arrowRight").addClassName("arrowDown");new Effect.SlideDown(this.wrapper,animOpts);},_collapse:function(){if(this.notify("beforeCollapse")===false)return;this._animating=true;var animOpts=this._animOpts(this.wrapper.getHeight());animOpts.afterFinish=this.notify.bind(this,"afterCollapse");this.arrow.removeClassName("arrowDown").addClassName("arrowRight");new Effect.SlideUp(this.wrapper,animOpts);},connect:function(sourceEvent,targetEvent,target){if(!target)target=this;this.observe(sourceEvent,target.notify.bind(target,targetEvent));}});Object.Event.extend(Expander);var InlineEdit=Class.create({initialize:function(element,options){this.options=Object.extend({multiline:false,autoresize:true,ignoreCase:true,rows:1.0},options||{});this.element=element;this._closed=false;this._cancelTimer=null;if(this.options.multiline){this.input=E.textarea({className:"inlineEdit formText",value:this.originalText(),rows:this.options.rows,onfocus:(function(){if(this._cancelTimer!==null){clearTimeout(this._cancelTimer);this._cancelTimer=null;}}).bind(this),onblur:(function(){this._cancelTimer=setTimeout(this.cancel.bind(this),250.0);}).bind(this),onkeydown:(function(event){if(27.0===(event.keyCode||event.which)){this.cancel();}}).bind(this)});if(this.options.autoresize){this.input.setStyle({height:"1em"});var resize=this.resize.bind(this);var delayedResize=setTimeout.bind(window,resize,0.0);this.input.observe("change",resize);this.input.observe("cut",delayedResize);this.input.observe("paste",delayedResize);this.input.observe("drop",delayedResize);this.input.observe("keydown",delayedResize);}this.wrapper=E.span({className:"formTextContainer formTextAreaContainer"},this.input,E.a({href:"#",className:"inputReplacementTextSubmit",onclick:["return false;",this.ok.bind(this)]},_._52));}else{this.wrapper=this.input=E.input({className:"inlineEdit formText",type:"text",value:this.originalText(),autocomplete:"off",onkeydown:(function(event){switch(event.keyCode||event.which){case 13.0:this.ok();break;case 27.0:this.cancel();break;default:{break;}}}).bind(this),onblur:this.cancel().bind(this)});}element.setStyle({display:"none"});element.parentNode.insertBefore(this.wrapper,element);if(this.options.multiline&&this.options.autoresize){this.resize();}this.input.focus();this.input.select();this.notify("open");},resize:function(){var dummy=this.input.cloneNode(false);dummy.style.visibility="hidden";dummy.style.height="auto";dummy.style.position="absolute";dummy.style.left="0px";dummy.style.top="0px";dummy.value=this.input.value;this.input.parentNode.insertBefore(dummy,this.input);this.input.style.height=(dummy.scrollTop+dummy.scrollHeight)+"px";this.input.parentNode.removeChild(dummy);},cancel:function(){this.close(false);},ok:function(){this.close(true);},close:function(ok){if(this._closed)return;var text=this.text();var changed=this.changed();if(this.notify("close",ok,text,changed)===false)return;if(ok&&changed){if(this.notify("change",text)===false)return;this.element.innerHTML=text.escapeHTML();}else{if(this.notify("cancel")===false)return;}this.wrapper.parentNode.removeChild(this.wrapper);this.element.setStyle({display:""});this._closed=true;},originalText:function(){return this.element.innerHTML.unescapeHTML().trim();},text:function(){return this.input.value.trim();},changed:function(){if(this.options.ignoreCase){return this.text().toLowerCase()!=this.originalText().toLowerCase();}else{return this.text()!=this.originalText();}},closed:function(){return this._closed;}});Object.Event.extend(InlineEdit);Object.extend(InlineEdit,{edit:function(element,options){return new InlineEdit(element,options);}});
