var Prototype={Version:'1.6.1',Browser:(function(){var ua=navigator.userAgent;var isOpera=Object.prototype.toString.call(window.opera)=='[object Opera]';return{IE:!!window.attachEvent&&!isOpera,Opera:isOpera,WebKit:ua.indexOf('AppleWebKit/')>-1,Gecko:ua.indexOf('Gecko')>-1&&ua.indexOf('KHTML')===-1,MobileSafari:/Apple.*Mobile.*Safari/.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');var form=document.createElement('form');var isSupported=false;if(div['__proto__']&&(div['__proto__']!==form['__proto__'])){isSupported=true;}
div=form=null;return isSupported;})()},ScriptFragment:'<script[^>]*>([\\S\\s]*?)<\/script>',JSONFilter:/^\/\*-secure-([\s\S]*)\*\/\s*$/,emptyFunction:function(){},K:function(x){return x}};if(Prototype.Browser.MobileSafari)
Prototype.BrowserFeatures.SpecificElementExtensions=false;var Abstract={};var Try={these:function(){var returnValue;for(var i=0,length=arguments.length;i<length;i++){var lambda=arguments[i];try{returnValue=lambda();break;}catch(e){}}
return returnValue;}};var Class=(function(){function subclass(){};function create(){var parent=null,properties=$A(arguments);if(Object.isFunction(properties[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;i<properties.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;var properties=Object.keys(source);if(!Object.keys({toString:true}).length){if(source.toString!=Object.prototype.toString)
properties.push("toString");if(source.valueOf!=Object.prototype.valueOf)
properties.push("valueOf");}
for(var i=0,length=properties.length;i<length;i++){var property=properties[i],value=source[property];if(ancestor&&Object.isFunction(value)&&value.argumentNames().first()=="$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;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(object){var type=typeof object;switch(type){case'undefined':case'function':case'unknown':return;case'boolean':return object.toString();}
if(object===null)return'null';if(object.toJSON)return object.toJSON();if(isElement(object))return;var results=[];for(var property in object){var value=toJSON(object[property]);if(!isUndefined(value))
results.push(property.toJSON()+': '+value);}
return'{'+results.join(', ')+'}';}
function toQueryString(object){return $H(object).toQueryString();}
function toHTML(object){return object&&object.toHTML?object.toHTML():String.interpret(object);}
function keys(object){var results=[];for(var property in object)
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);}
function isArray(object){return _toString.call(object)=="[object Array]";}
function isHash(object){return object instanceof Hash;}
function isFunction(object){return typeof object==="function";}
function isString(object){return _toString.call(object)=="[object String]";}
function isNumber(object){return _toString.call(object)=="[object Number]";}
function isUndefined(object){return typeof object==="undefined";}
extend(Object,{extend:extend,inspect:inspect,toJSON:toJSON,toQueryString:toQueryString,toHTML:toHTML,keys:keys,values:values,clone:clone,isElement:isElement,isArray:isArray,isHash:isHash,isFunction:isFunction,isString:isString,isNumber:isNumber,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);return update(array,args);}
function argumentNames(){var names=this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1].replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g,'').replace(/\s+/g,'').split(',');return names.length==1&&!names[0]?[]:names;}
function bind(context){if(arguments.length<2&&Object.isUndefined(arguments[0]))return this;var __method=this,args=slice.call(arguments,1);return function(){var a=merge(args,arguments);return __method.apply(context,a);}}
function bindAsEventListener(context){var __method=this,args=slice.call(arguments,1);return function(event){var a=update([event||window.event],args);return __method.apply(context,a);}}
function curry(){if(!arguments.length)return this;var __method=this,args=slice.call(arguments,0);return function(){var a=merge(args,arguments);return __method.apply(this,a);}}
function delay(timeout){var __method=this,args=slice.call(arguments,1);timeout=timeout*1000
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:bind,bindAsEventListener:bindAsEventListener,curry:curry,delay:delay,defer:defer,wrap:wrap,methodize:methodize}})());Date.prototype.toJSON=function(){return'"'+this.getUTCFullYear()+'-'+
(this.getUTCMonth()+1).toPaddedString(2)+'-'+
this.getUTCDate().toPaddedString(2)+'T'+
this.getUTCHours().toPaddedString(2)+':'+
this.getUTCMinutes().toPaddedString(2)+':'+
this.getUTCSeconds().toPaddedString(2)+'Z"';};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);},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(){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){if(match=source.match(pattern)){result+=source.slice(0,match.index);result+=String.interpret(replacement(match));source=source.slice(match.index+match[0].length);}else{result+=source,source='';}}
return result;}
function sub(pattern,replacement,count){replacement=prepareReplacement(replacement);count=Object.isUndefined(count)?1:count;return this.gsub(pattern,function(match){if(--count<0)return match[0];return replacement(match);});}
function scan(pattern,iterator){this.gsub(pattern,iterator);return String(this);}
function truncate(length,truncation){length=length||30;truncation=Object.isUndefined(truncation)?'...':truncation;return this.length>length?this.slice(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');var matchOne=new RegExp(Prototype.ScriptFragment,'im');return(this.match(matchAll)||[]).map(function(scriptTag){return(scriptTag.match(matchOne)||['',''])[1];});}
function evalScripts(){return this.extractScripts().map(function(script){return eval(script)});}
function escapeHTML(){return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');}
function unescapeHTML(){return this.stripTags().replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&');}
function toQueryParams(separator){var match=this.strip().match(/([^?#]*)(#.*)?$/);if(!match)return{};return match[1].split(separator||'&').inject({},function(hash,pair){if((pair=pair.split('='))[0]){var key=decodeURIComponent(pair.shift());var value=pair.length>1?pair.join('='):pair[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,this.length-1)+
String.fromCharCode(this.charCodeAt(this.length-1)+1);}
function times(count){return count<1?'':new Array(count+1).join(this);}
function camelize(){var parts=this.split('-'),len=parts.length;if(len==1)return parts[0];var camelized=this.charAt(0)=='-'?parts[0].charAt(0).toUpperCase()+parts[0].substring(1):parts[0];for(var i=1;i<len;i++)
camelized+=parts[i].charAt(0).toUpperCase()+parts[i].substring(1);return camelized;}
function capitalize(){return this.charAt(0).toUpperCase()+this.substring(1).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,16);});if(useDoubleQuotes)return'"'+escapedString.replace(/"/g,'\\"')+'"';return"'"+escapedString.replace(/'/g,'\\\'')+"'";}
function toJSON(){return this.inspect(true);}
function unfilterJSON(filter){return this.replace(filter||Prototype.JSONFilter,'$1');}
function isJSON(){var str=this;if(str.blank())return false;str=this.replace(/\\./g,'@').replace(/"[^"\\\n\r]*"/g,'');return(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);}
function evalJSON(sanitize){var json=this.unfilterJSON();try{if(!sanitize||json.isJSON())return eval('('+json+')');}catch(e){}
throw new SyntaxError('Badly formed JSON string: '+this.inspect());}
function include(pattern){return this.indexOf(pattern)>-1;}
function startsWith(pattern){return this.indexOf(pattern)===0;}
function endsWith(pattern){var d=this.length-pattern.length;return d>=0&&this.lastIndexOf(pattern)===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?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,toJSON:toJSON,unfilterJSON:unfilterJSON,isJSON:isJSON,evalJSON: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]+'');var before=match[1]||'';if(before=='\\')return match[2];var ctx=object,expr=match[3];var pattern=/^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;match=pattern.exec(expr);if(match==null)return before;while(match!=null){var comp=match[1].startsWith('[')?match[2].replace(/\\\\]/g,']'):match[1];ctx=ctx[comp];if(null==ctx||''==match[3])break;expr=expr.substring('['==match[3]?match[1].length:match[0].length);match=pattern.exec(expr);}
return before+String.interpret(ctx);});}});Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;var $break={};var Enumerable=(function(){function each(iterator,context){var index=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)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)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);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:a>b?1: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'#<Enumerable:'+this.toArray().inspect()+'>';}
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,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){for(var i=0,length=this.length;i<length;i++)
iterator(this[i]);}
if(!_each)_each=each;function clear(){this.length=0;return this;}
function first(){return this[0];}
function last(){return this[this.length-1];}
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);return this.select(function(value){return!values.include(value);});}
function reverse(inline){return(inline!==false?this:this.toArray())._reverse();}
function uniq(sorted){return this.inject([],function(array,value,index){if(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);}
function size(){return this.length;}
function inspect(){return'['+this.map(Object.inspect).join(', ')+']';}
function toJSON(){var results=[];this.each(function(object){var value=Object.toJSON(object);if(!Object.isUndefined(value))results.push(value);});return'['+results.join(', ')+']';}
function indexOf(item,i){i||(i=0);var length=this.length;if(i<0)i=length+i;for(;i<length;i++)
if(this[i]===item)return i;return-1;}
function lastIndexOf(item,i){i=isNaN(i)?this.length:(i<0?this.length+i:i)+1;var n=this.slice(0,i).reverse().indexOf(item);return(n<0)?n:i-n-1;}
function concat(){var array=slice.call(this,0),item;for(var i=0,length=arguments.length;i<length;i++){item=arguments[i];if(Object.isArray(item)&&!('callee'in item)){for(var j=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,toJSON:toJSON});var CONCAT_ARGUMENTS_BUGGY=(function(){return[].concat(arguments)[0][0]!==1;})(1,2)
if(CONCAT_ARGUMENTS_BUGGY)arrayProto.concat=concat;if(!arrayProto.indexOf)arrayProto.indexOf=indexOf;if(!arrayProto.lastIndexOf)arrayProto.lastIndexOf=lastIndexOf;})();function $H(object){return new Hash(object);};var Hash=Class.create(Enumerable,(function(){function initialize(object){this._object=Object.isHash(object)?object.toObject():Object.clone(object);}
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))
return results.concat(values.map(toQueryPair.curry(key)));}else results.push(toQueryPair(key,values));return results;}).join('&');}
function inspect(){return'#<Hash:{'+this.map(function(pair){return pair.map(Object.inspect).join(': ');}).join(', ')+'}>';}
function toJSON(){return Object.toJSON(this.toObject());}
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:toJSON,clone:clone};})());Hash.from=$H;Object.extend(Number.prototype,(function(){function toColorPart(){return this.toPaddedString(2,16);}
function succ(){return this+1;}
function times(iterator,context){$R(0,this,true).each(iterator,context);return this;}
function toPaddedString(length,radix){var string=this.toString(radix||10);return'0'.times(length-string.length)+string;}
function toJSON(){return isFinite(this)?this.toString():'null';}
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,toJSON:toJSON,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 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};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.isString(this.options.parameters))
this.options.parameters=this.options.parameters.toQueryParams();else 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.clone(this.options.parameters);if(!['get','post'].include(this.method)){params['_method']=this.method;this.method='post';}
this.parameters=params;if(params=Object.toQueryString(params)){if(this.method=='get')
this.url+=(this.url.include('?')?'&':'?')+params;else if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))
params+='&_=';}
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);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&&!((readyState==4)&&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,2005])[1]<2005)
headers['Connection']='close';}
if(typeof this.options.requestHeaders=='object'){var extras=this.options.requestHeaders;if(Object.isFunction(extras.push))
for(var i=0,length=extras.length;i<length;i+=2)
headers[extras[i]]=extras[i+1];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&&status<300);},getStatus:function(){try{return this.transport.status||0;}catch(e){return 0}},respondToReadyState:function(readyState){var state=Ajax.Request.Events[readyState],response=new Ajax.Response(this);if(state=='Complete'){try{this._complete=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]=='#{protocol}//#{domain}#{port}'.interpolate({protocol:location.protocol,domain:document.domain,port:location.port?':'+location.port:''}));},getHeader:function(name){try{return this.transport.getResponseHeader(name)||null;}catch(e){return null;}},evalResponse:function(){try{return eval((this.transport.responseText||'').unfilterJSON());}catch(e){this.dispatchException(e);}},dispatchException:function(exception){(this.options.onException||Prototype.emptyFunction)(this,exception);Ajax.Responders.dispatch('onException',this,exception);}});Ajax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];Ajax.Response=Class.create({initialize:function(request){this.request=request;var transport=this.transport=request.transport,readyState=this.readyState=transport.readyState;if((readyState>2&&!Prototype.Browser.IE)||readyState==4){this.status=this.getStatus();this.statusText=this.getStatusText();this.responseText=String.interpret(transport.responseText);this.headerJSON=this._getHeaderJSON();}
if(readyState==4){var xml=transport.responseXML;this.responseXML=Object.isUndefined(xml)?null:xml;this.responseJSON=this._getResponseJSON();}},status:0,statusText:'',getStatus:Ajax.Request.prototype.getStatus,getStatusText:function(){try{return this.transport.statusText||'';}catch(e){return''}},getHeader:Ajax.Request.prototype.getHeader,getAllHeaders:function(){try{return this.getAllResponseHeaders();}catch(e){return null}},getResponseHeader:function(name){return this.transport.getResponseHeader(name);},getAllResponseHeaders:function(){return this.transport.getAllResponseHeaders();},_getHeaderJSON:function(){var json=this.getHeader('X-JSON');if(!json)return null;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);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start();},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent();},stop:function(){this.updater.options.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(response){if(this.options.decay){this.decay=(response.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=response.responseText;}
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){for(var i=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,length=query.snapshotLength;i<length;i++)
results.push(Element.extend(query.snapshotItem(i)));return results;};}
if(!window.Node)var Node={};if(!Node.ELEMENT_NODE){Object.extend(Node,{ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12});}
(function(global){var SETATTRIBUTE_IGNORES_NAME=(function(){var elForm=document.createElement("form");var elInput=document.createElement("input");var root=document.documentElement;elInput.setAttribute("name","test");elForm.appendChild(elInput);root.appendChild(elForm);var isBuggy=elForm.elements?(typeof elForm.elements.test=="undefined"):null;root.removeChild(elForm);elForm=elInput=null;return isBuggy;})();var element=global.Element;global.Element=function(tagName,attributes){attributes=attributes||{};tagName=tagName.toLowerCase();var cache=Element.cache;if(SETATTRIBUTE_IGNORES_NAME&&attributes.name){tagName='<'+tagName+' name="'+attributes.name+'">';delete attributes.name;return Element.writeAttribute(document.createElement(tagName),attributes);}
if(!cache[tagName])cache[tagName]=Element.extend(document.createElement(tagName));return Element.writeAttribute(cache[tagName].cloneNode(false),attributes);};Object.extend(global.Element,element||{});if(element)global.Element.prototype=element.prototype;})(this);Element.cache={};Element.idCounter=1;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="<option value=\"test\">test</option>";if(el.options&&el.options[0]){isBuggy=el.options[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="<tbody><tr><td>test</td></tr></tbody>";var isBuggy=typeof el.tBodies[0]=="undefined";el=null;return isBuggy;}}catch(e){return true;}})();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;}catch(e){isBuggy=true;}
s=null;return isBuggy;})();function update(element,content){element=$(element);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(SELECT_ELEMENT_INNERHTML_BUGGY||TABLE_ELEMENT_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{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='<'+element.tagName.toLowerCase();$H({'id':'id','className':'class'}).each(function(pair){var property=pair.first(),attribute=pair.last();var value=(element[property]||'').toString();if(value)result+=' '+attribute+'='+value.inspect(true);});return result+'>';},recursivelyCollect:function(element,property){element=$(element);var elements=[];while(element=element[property])
if(element.nodeType==1)
elements.push(Element.extend(element));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)element=element.nextSibling;return $(element);},immediateDescendants:function(element){if(!(element=$(element).firstChild))return[];while(element&&element.nodeType!=1)element=element.nextSibling;if(element)return[element].concat($(element).nextSiblings());return[];},previousSiblings:function(element){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){if(Object.isString(selector))
selector=new Selector(selector);return selector.match($(element));},up:function(element,expression,index){element=$(element);if(arguments.length==1)return $(element.parentNode);var ancestors=Element.ancestors(element);return Object.isNumber(expression)?ancestors[expression]:Selector.findElement(ancestors,expression,index);},down:function(element,expression,index){element=$(element);if(arguments.length==1)return Element.firstDescendant(element);return Object.isNumber(expression)?Element.descendants(element)[expression]:Element.select(element,expression)[index||0];},previous:function(element,expression,index){element=$(element);if(arguments.length==1)return $(Selector.handlers.previousElementSibling(element));var previousSiblings=Element.previousSiblings(element);return Object.isNumber(expression)?previousSiblings[expression]:Selector.findElement(previousSiblings,expression,index);},next:function(element,expression,index){element=$(element);if(arguments.length==1)return $(Selector.handlers.nextElementSibling(element));var nextSiblings=Element.nextSiblings(element);return Object.isNumber(expression)?nextSiblings[expression]:Selector.findElement(nextSiblings,expression,index);},select:function(element){var args=Array.prototype.slice.call(arguments,1);return Selector.findChildElements(element,args);},adjacent:function(element){var args=Array.prototype.slice.call(arguments,1);return Selector.findChildElements(element.parentNode,args).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&&(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&&!/\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)===8;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],pos[1]);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]):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||value==='')?'':(value<0.00001)?0:value;return element;},getDimensions:function(element){element=$(element);var display=Element.getStyle(element,'display');if(display!='none'&&display!=null)
return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';if(originalPosition!='fixed')
els.position='absolute';els.display='block';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},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;element.style.left=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;},cumulativeOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);return Element._returnOffset(valueL,valueT);},positionedOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;if(element){if(element.tagName.toUpperCase()=='BODY')break;var p=Element.getStyle(element,'position');if(p!=='static')break;}}while(element);return Element._returnOffset(valueL,valueT);},absolutize:function(element){element=$(element);if(Element.getStyle(element,'position')=='absolute')return element;var offsets=Element.positionedOffset(element);var top=offsets[1];var left=offsets[0];var width=element.clientWidth;var height=element.clientHeight;element._originalLeft=left-parseFloat(element.style.left||0);element._originalTop=top-parseFloat(element.style.top||0);element._originalWidth=element.style.width;element._originalHeight=element.style.height;element.style.position='absolute';element.style.top=top+'px';element.style.left=left+'px';element.style.width=width+'px';element.style.height=height+'px';return element;},relativize:function(element){element=$(element);if(Element.getStyle(element,'position')=='relative')return element;element.style.position='relative';var top=parseFloat(element.style.top||0)-(element._originalTop||0);var left=parseFloat(element.style.left||0)-(element._originalLeft||0);element.style.top=top+'px';element.style.left=left+'px';element.style.height=element._originalHeight;element.style.width=element._originalWidth;return element;},cumulativeScrollOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode;}while(element);return Element._returnOffset(valueL,valueT);},getOffsetParent:function(element){if(element.offsetParent)return $(element.offsetParent);if(element==document.body)return $(element);while((element=element.parentNode)&&element!=document.body)
if(Element.getStyle(element,'position')!='static')
return $(element);return $(document.body);},viewportOffset:function(forElement){var valueT=0,valueL=0;var element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body&&Element.getStyle(element,'position')=='absolute')break;}while(element=element.offsetParent);element=forElement;do{if(!Prototype.Browser.Opera||(element.tagName&&(element.tagName.toUpperCase()=='BODY'))){valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;}}while(element=element.parentNode);return Element._returnOffset(valueL,valueT);},clonePosition:function(element,source){var options=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{});source=$(source);var p=Element.viewportOffset(source);element=$(element);var delta=[0,0];var parent=null;if(Element.getStyle(element,'position')=='absolute'){parent=Element.getOffsetParent(element);delta=Element.viewportOffset(parent);}
if(parent==document.body){delta[0]-=document.body.offsetLeft;delta[1]-=document.body.offsetTop;}
if(options.setLeft)element.style.left=(p[0]-delta[0]+options.offsetLeft)+'px';if(options.setTop)element.style.top=(p[1]-delta[1]+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'left':case'top':case'right':case'bottom':if(proceed(element,'position')==='static')return null;case'height':case'width':if(!Element.visible(element))return null;var dim=parseInt(proceed(element,style),10);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);})+'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.getOffsetParent=Element.Methods.getOffsetParent.wrap(function(proceed,element){element=$(element);try{element.offsetParent}
catch(e){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;});$w('positionedOffset viewportOffset').each(function(method){Element.Methods[method]=Element.Methods[method].wrap(function(proceed,element){element=$(element);try{element.offsetParent}
catch(e){return Element._returnOffset(0,0)}
var position=element.getStyle('position');if(position!=='static')return proceed(element);var offsetParent=element.getOffsetParent();if(offsetParent&&offsetParent.getStyle('position')==='fixed')
offsetParent.setStyle({zoom:1});element.setStyle({position:'relative'});var value=proceed(element);element.setStyle({position:position});return value;});});Element.Methods.cumulativeOffset=Element.Methods.cumulativeOffset.wrap(function(proceed,element){try{element.offsetParent}
catch(e){return Element._returnOffset(0,0)}
return proceed(element);});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])return parseFloat(value[1])/100;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;var filter=element.getStyle('filter'),style=element.style;if(value==1||value===''){(filter=stripAlpha(filter))?style.filter=filter:style.removeAttribute('filter');return element;}else if(value<0.00001)value=0;style.filter=stripAlpha(filter)+'alpha(opacity='+(value*100)+')';return element;};Element._attributeTranslations=(function(){var classProp='className';var forProp='for';var 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);},_getAttrNode:function(element,attribute){var node=element.getAttributeNode(attribute);return node?node.value:"";},_getEv:(function(){var el=document.createElement('div');el.onclick=Prototype.emptyFunction;var value=el.getAttribute('onclick');var f;if(String(value).indexOf('{')>-1){f=function(element,attribute){attribute=element.getAttribute(attribute);if(!attribute)return null;attribute=attribute.toString();attribute=attribute.split('{')[1];attribute=attribute.split('}')[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,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)return element.firstDescendant();return Object.isNumber(expression)?_descendants(element)[expression]:Element.select(element,expression)[index||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.999999:(value==='')?'':(value<0.00001)?0:value;return element;};}
else if(Prototype.Browser.WebKit){Element.Methods.setOpacity=function(element,value){element=$(element);element.style.opacity=(value==1||value==='')?'':(value<0.00001)?0:value;if(value==1)
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;};Element.Methods.cumulativeOffset=function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
if(Element.getStyle(element,'position')=='absolute')break;element=element.offsetParent;}while(element);return Element._returnOffset(valueL,valueT);};}
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();var 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){var div=new Element('div'),t=Element._insertionTranslations.tags[tagName];if(t){div.innerHTML=t[0]+html+t[1];t[2].times(function(){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:['<table>','</table>',1],TBODY:['<table><tbody>','</tbody></table>',2],TR:['<table><tbody><tr>','</tr></tbody></table>',3],TD:['<table><tbody><tr><td>','</td></tr></tbody></table>',4],SELECT:['<select>','</select>',1]}};(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);var 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||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;})();Element.hasAttribute=function(element,attribute){if(element.hasAttribute)return element.hasAttribute(attribute);return Element.Methods.Simulated.hasAttribute(element,attribute);};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)});}
if(arguments.length==2){var tagName=methods;methods=arguments[1];}
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);var 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};Element.addMethods({getStorage:function(element){if(!(element=$(element)))return;var uid;if(element===window){uid=0;}else{if(typeof element._prototypeUID==="undefined")
element._prototypeUID=[Element.Storage.UID++];uid=element._prototypeUID[0];}
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){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;if(deep){var descendants=Element.select(clone,'*'),i=descendants.length;while(i--){descendants[i]._prototypeUID=void 0;}}
return Element.extend(clone);}});var Selector=Class.create({initialize:function(expression){this.expression=expression.strip();if(this.shouldUseSelectorsAPI()){this.mode='selectorsAPI';}else if(this.shouldUseXPath()){this.mode='xpath';this.compileXPathMatcher();}else{this.mode="normal";this.compileMatcher();}},shouldUseXPath:(function(){var IS_DESCENDANT_SELECTOR_BUGGY=(function(){var isBuggy=false;if(document.evaluate&&window.XPathResult){var el=document.createElement('div');el.innerHTML='<ul><li></li></ul><div><ul><li></li></ul></div>';var xpath=".//*[local-name()='ul' or local-name()='UL']"+"//*[local-name()='li' or local-name()='LI']";var result=document.evaluate(xpath,el,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);isBuggy=(result.snapshotLength!==2);el=null;}
return isBuggy;})();return function(){if(!Prototype.BrowserFeatures.XPath)return false;var e=this.expression;if(Prototype.Browser.WebKit&&(e.include("-of-type")||e.include(":empty")))
return false;if((/(\[[\w-]*?:|:checked)/).test(e))
return false;if(IS_DESCENDANT_SELECTOR_BUGGY)return false;return true;}})(),shouldUseSelectorsAPI:function(){if(!Prototype.BrowserFeatures.SelectorsAPI)return false;if(Selector.CASE_INSENSITIVE_CLASS_NAMES)return false;if(!Selector._div)Selector._div=new Element('div');try{Selector._div.querySelector(this.expression);}catch(e){return false;}
return true;},compileMatcher:function(){var e=this.expression,ps=Selector.patterns,h=Selector.handlers,c=Selector.criteria,le,p,m,len=ps.length,name;if(Selector._cache[e]){this.matcher=Selector._cache[e];return;}
this.matcher=["this.matcher = function(root) {","var r = root, h = Selector.handlers, c = false, n;"];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i=0;i<len;i++){p=ps[i].re;name=ps[i].name;if(m=e.match(p)){this.matcher.push(Object.isFunction(c[name])?c[name](m):new Template(c[name]).evaluate(m));e=e.replace(m[0],'');break;}}}
this.matcher.push("return h.unique(n);\n}");eval(this.matcher.join('\n'));Selector._cache[this.expression]=this.matcher;},compileXPathMatcher:function(){var e=this.expression,ps=Selector.patterns,x=Selector.xpath,le,m,len=ps.length,name;if(Selector._cache[e]){this.xpath=Selector._cache[e];return;}
this.matcher=['.//*'];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i=0;i<len;i++){name=ps[i].name;if(m=e.match(ps[i].re)){this.matcher.push(Object.isFunction(x[name])?x[name](m):new Template(x[name]).evaluate(m));e=e.replace(m[0],'');break;}}}
this.xpath=this.matcher.join('');Selector._cache[this.expression]=this.xpath;},findElements:function(root){root=root||document;var e=this.expression,results;switch(this.mode){case'selectorsAPI':if(root!==document){var oldId=root.id,id=$(root).identify();id=id.replace(/([\.:])/g,"\\$1");e="#"+id+" "+e;}
results=$A(root.querySelectorAll(e)).map(Element.extend);root.id=oldId;return results;case'xpath':return document._getElementsByXPath(this.xpath,root);default:return this.matcher(root);}},match:function(element){this.tokens=[];var e=this.expression,ps=Selector.patterns,as=Selector.assertions;var le,p,m,len=ps.length,name;while(e&&le!==e&&(/\S/).test(e)){le=e;for(var i=0;i<len;i++){p=ps[i].re;name=ps[i].name;if(m=e.match(p)){if(as[name]){this.tokens.push([name,Object.clone(m)]);e=e.replace(m[0],'');}else{return this.findElements(document).include(element);}}}}
var match=true,name,matches;for(var i=0,token;token=this.tokens[i];i++){name=token[0],matches=token[1];if(!Selector.assertions[name](element,matches)){match=false;break;}}
return match;},toString:function(){return this.expression;},inspect:function(){return"#<Selector:"+this.expression.inspect()+">";}});if(Prototype.BrowserFeatures.SelectorsAPI&&document.compatMode==='BackCompat'){Selector.CASE_INSENSITIVE_CLASS_NAMES=(function(){var div=document.createElement('div'),span=document.createElement('span');div.id="prototype_test_id";span.className='Test';div.appendChild(span);var isIgnored=(div.querySelector('#prototype_test_id .test')!==null);div=span=null;return isIgnored;})();}
Object.extend(Selector,{_cache:{},xpath:{descendant:"//*",child:"/*",adjacent:"/following-sibling::*[1]",laterSibling:'/following-sibling::*',tagName:function(m){if(m[1]=='*')return'';return"[local-name()='"+m[1].toLowerCase()+"' or local-name()='"+m[1].toUpperCase()+"']";},className:"[contains(concat(' ', @class, ' '), ' #{1} ')]",id:"[@id='#{1}']",attrPresence:function(m){m[1]=m[1].toLowerCase();return new Template("[@#{1}]").evaluate(m);},attr:function(m){m[1]=m[1].toLowerCase();m[3]=m[5]||m[6];return new Template(Selector.xpath.operators[m[2]]).evaluate(m);},pseudo:function(m){var h=Selector.xpath.pseudos[m[1]];if(!h)return'';if(Object.isFunction(h))return h(m);return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);},operators:{'=':"[@#{1}='#{3}']",'!=':"[@#{1}!='#{3}']",'^=':"[starts-with(@#{1}, '#{3}')]",'$=':"[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",'*=':"[contains(@#{1}, '#{3}')]",'~=':"[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",'|=':"[contains(concat('-', @#{1}, '-'), '-#{3}-')]"},pseudos:{'first-child':'[not(preceding-sibling::*)]','last-child':'[not(following-sibling::*)]','only-child':'[not(preceding-sibling::* or following-sibling::*)]','empty':"[count(*) = 0 and (count(text()) = 0)]",'checked':"[@checked]",'disabled':"[(@disabled) and (@type!='hidden')]",'enabled':"[not(@disabled) and (@type!='hidden')]",'not':function(m){var e=m[6],p=Selector.patterns,x=Selector.xpath,le,v,len=p.length,name;var exclusion=[];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i=0;i<len;i++){name=p[i].name
if(m=e.match(p[i].re)){v=Object.isFunction(x[name])?x[name](m):new Template(x[name]).evaluate(m);exclusion.push("("+v.substring(1,v.length-1)+")");e=e.replace(m[0],'');break;}}}
return"[not("+exclusion.join(" and ")+")]";},'nth-child':function(m){return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ",m);},'nth-last-child':function(m){return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ",m);},'nth-of-type':function(m){return Selector.xpath.pseudos.nth("position() ",m);},'nth-last-of-type':function(m){return Selector.xpath.pseudos.nth("(last() + 1 - position()) ",m);},'first-of-type':function(m){m[6]="1";return Selector.xpath.pseudos['nth-of-type'](m);},'last-of-type':function(m){m[6]="1";return Selector.xpath.pseudos['nth-last-of-type'](m);},'only-of-type':function(m){var p=Selector.xpath.pseudos;return p['first-of-type'](m)+p['last-of-type'](m);},nth:function(fragment,m){var mm,formula=m[6],predicate;if(formula=='even')formula='2n+0';if(formula=='odd')formula='2n+1';if(mm=formula.match(/^(\d+)$/))
return'['+fragment+"= "+mm[1]+']';if(mm=formula.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(mm[1]=="-")mm[1]=-1;var a=mm[1]?Number(mm[1]):1;var b=mm[2]?Number(mm[2]):0;predicate="[((#{fragment} - #{b}) mod #{a} = 0) and "+"((#{fragment} - #{b}) div #{a} >= 0)]";return new Template(predicate).evaluate({fragment:fragment,a:a,b:b});}}}},criteria:{tagName:'n = h.tagName(n, r, "#{1}", c);      c = false;',className:'n = h.className(n, r, "#{1}", c);    c = false;',id:'n = h.id(n, r, "#{1}", c);           c = false;',attrPresence:'n = h.attrPresence(n, r, "#{1}", c); c = false;',attr:function(m){m[3]=(m[5]||m[6]);return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);},pseudo:function(m){if(m[6])m[6]=m[6].replace(/"/g,'\\"');return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);},descendant:'c = "descendant";',child:'c = "child";',adjacent:'c = "adjacent";',laterSibling:'c = "laterSibling";'},patterns:[{name:'laterSibling',re:/^\s*~\s*/},{name:'child',re:/^\s*>\s*/},{name:'adjacent',re:/^\s*\+\s*/},{name:'descendant',re:/^\s/},{name:'tagName',re:/^\s*(\*|[\w\-]+)(\b|$)?/},{name:'id',re:/^#([\w\-\*]+)(\b|$)/},{name:'className',re:/^\.([\w\-\*]+)(\b|$)/},{name:'pseudo',re:/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/},{name:'attrPresence',re:/^\[((?:[\w-]+:)?[\w-]+)\]/},{name:'attr',re:/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/}],assertions:{tagName:function(element,matches){return matches[1].toUpperCase()==element.tagName.toUpperCase();},className:function(element,matches){return Element.hasClassName(element,matches[1]);},id:function(element,matches){return element.id===matches[1];},attrPresence:function(element,matches){return Element.hasAttribute(element,matches[1]);},attr:function(element,matches){var nodeValue=Element.readAttribute(element,matches[1]);return nodeValue&&Selector.operators[matches[2]](nodeValue,matches[5]||matches[6]);}},handlers:{concat:function(a,b){for(var i=0,node;node=b[i];i++)
a.push(node);return a;},mark:function(nodes){var _true=Prototype.emptyFunction;for(var i=0,node;node=nodes[i];i++)
node._countedByPrototype=_true;return nodes;},unmark:(function(){var PROPERTIES_ATTRIBUTES_MAP=(function(){var el=document.createElement('div'),isBuggy=false,propName='_countedByPrototype',value='x'
el[propName]=value;isBuggy=(el.getAttribute(propName)===value);el=null;return isBuggy;})();return PROPERTIES_ATTRIBUTES_MAP?function(nodes){for(var i=0,node;node=nodes[i];i++)
node.removeAttribute('_countedByPrototype');return nodes;}:function(nodes){for(var i=0,node;node=nodes[i];i++)
node._countedByPrototype=void 0;return nodes;}})(),index:function(parentNode,reverse,ofType){parentNode._countedByPrototype=Prototype.emptyFunction;if(reverse){for(var nodes=parentNode.childNodes,i=nodes.length-1,j=1;i>=0;i--){var node=nodes[i];if(node.nodeType==1&&(!ofType||node._countedByPrototype))node.nodeIndex=j++;}}else{for(var i=0,j=1,nodes=parentNode.childNodes;node=nodes[i];i++)
if(node.nodeType==1&&(!ofType||node._countedByPrototype))node.nodeIndex=j++;}},unique:function(nodes){if(nodes.length==0)return nodes;var results=[],n;for(var i=0,l=nodes.length;i<l;i++)
if(typeof(n=nodes[i])._countedByPrototype=='undefined'){n._countedByPrototype=Prototype.emptyFunction;results.push(Element.extend(n));}
return Selector.handlers.unmark(results);},descendant:function(nodes){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++)
h.concat(results,node.getElementsByTagName('*'));return results;},child:function(nodes){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++){for(var j=0,child;child=node.childNodes[j];j++)
if(child.nodeType==1&&child.tagName!='!')results.push(child);}
return results;},adjacent:function(nodes){for(var i=0,results=[],node;node=nodes[i];i++){var next=this.nextElementSibling(node);if(next)results.push(next);}
return results;},laterSibling:function(nodes){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++)
h.concat(results,Element.nextSiblings(node));return results;},nextElementSibling:function(node){while(node=node.nextSibling)
if(node.nodeType==1)return node;return null;},previousElementSibling:function(node){while(node=node.previousSibling)
if(node.nodeType==1)return node;return null;},tagName:function(nodes,root,tagName,combinator){var uTagName=tagName.toUpperCase();var results=[],h=Selector.handlers;if(nodes){if(combinator){if(combinator=="descendant"){for(var i=0,node;node=nodes[i];i++)
h.concat(results,node.getElementsByTagName(tagName));return results;}else nodes=this[combinator](nodes);if(tagName=="*")return nodes;}
for(var i=0,node;node=nodes[i];i++)
if(node.tagName.toUpperCase()===uTagName)results.push(node);return results;}else return root.getElementsByTagName(tagName);},id:function(nodes,root,id,combinator){var targetNode=$(id),h=Selector.handlers;if(root==document){if(!targetNode)return[];if(!nodes)return[targetNode];}else{if(!root.sourceIndex||root.sourceIndex<1){var nodes=root.getElementsByTagName('*');for(var j=0,node;node=nodes[j];j++){if(node.id===id)return[node];}}}
if(nodes){if(combinator){if(combinator=='child'){for(var i=0,node;node=nodes[i];i++)
if(targetNode.parentNode==node)return[targetNode];}else if(combinator=='descendant'){for(var i=0,node;node=nodes[i];i++)
if(Element.descendantOf(targetNode,node))return[targetNode];}else if(combinator=='adjacent'){for(var i=0,node;node=nodes[i];i++)
if(Selector.handlers.previousElementSibling(targetNode)==node)
return[targetNode];}else nodes=h[combinator](nodes);}
for(var i=0,node;node=nodes[i];i++)
if(node==targetNode)return[targetNode];return[];}
return(targetNode&&Element.descendantOf(targetNode,root))?[targetNode]:[];},className:function(nodes,root,className,combinator){if(nodes&&combinator)nodes=this[combinator](nodes);return Selector.handlers.byClassName(nodes,root,className);},byClassName:function(nodes,root,className){if(!nodes)nodes=Selector.handlers.descendant([root]);var needle=' '+className+' ';for(var i=0,results=[],node,nodeClassName;node=nodes[i];i++){nodeClassName=node.className;if(nodeClassName.length==0)continue;if(nodeClassName==className||(' '+nodeClassName+' ').include(needle))
results.push(node);}
return results;},attrPresence:function(nodes,root,attr,combinator){if(!nodes)nodes=root.getElementsByTagName("*");if(nodes&&combinator)nodes=this[combinator](nodes);var results=[];for(var i=0,node;node=nodes[i];i++)
if(Element.hasAttribute(node,attr))results.push(node);return results;},attr:function(nodes,root,attr,value,operator,combinator){if(!nodes)nodes=root.getElementsByTagName("*");if(nodes&&combinator)nodes=this[combinator](nodes);var handler=Selector.operators[operator],results=[];for(var i=0,node;node=nodes[i];i++){var nodeValue=Element.readAttribute(node,attr);if(nodeValue===null)continue;if(handler(nodeValue,value))results.push(node);}
return results;},pseudo:function(nodes,name,value,root,combinator){if(nodes&&combinator)nodes=this[combinator](nodes);if(!nodes)nodes=root.getElementsByTagName("*");return Selector.pseudos[name](nodes,value,root);}},pseudos:{'first-child':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(Selector.handlers.previousElementSibling(node))continue;results.push(node);}
return results;},'last-child':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(Selector.handlers.nextElementSibling(node))continue;results.push(node);}
return results;},'only-child':function(nodes,value,root){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++)
if(!h.previousElementSibling(node)&&!h.nextElementSibling(node))
results.push(node);return results;},'nth-child':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root);},'nth-last-child':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root,true);},'nth-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root,false,true);},'nth-last-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root,true,true);},'first-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,"1",root,false,true);},'last-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,"1",root,true,true);},'only-of-type':function(nodes,formula,root){var p=Selector.pseudos;return p['last-of-type'](p['first-of-type'](nodes,formula,root),formula,root);},getIndices:function(a,b,total){if(a==0)return b>0?[b]:[];return $R(1,total).inject([],function(memo,i){if(0==(i-b)%a&&(i-b)/a>=0)memo.push(i);return memo;});},nth:function(nodes,formula,root,reverse,ofType){if(nodes.length==0)return[];if(formula=='even')formula='2n+0';if(formula=='odd')formula='2n+1';var h=Selector.handlers,results=[],indexed=[],m;h.mark(nodes);for(var i=0,node;node=nodes[i];i++){if(!node.parentNode._countedByPrototype){h.index(node.parentNode,reverse,ofType);indexed.push(node.parentNode);}}
if(formula.match(/^\d+$/)){formula=Number(formula);for(var i=0,node;node=nodes[i];i++)
if(node.nodeIndex==formula)results.push(node);}else if(m=formula.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(m[1]=="-")m[1]=-1;var a=m[1]?Number(m[1]):1;var b=m[2]?Number(m[2]):0;var indices=Selector.pseudos.getIndices(a,b,nodes.length);for(var i=0,node,l=indices.length;node=nodes[i];i++){for(var j=0;j<l;j++)
if(node.nodeIndex==indices[j])results.push(node);}}
h.unmark(nodes);h.unmark(indexed);return results;},'empty':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(node.tagName=='!'||node.firstChild)continue;results.push(node);}
return results;},'not':function(nodes,selector,root){var h=Selector.handlers,selectorType,m;var exclusions=new Selector(selector).findElements(root);h.mark(exclusions);for(var i=0,results=[],node;node=nodes[i];i++)
if(!node._countedByPrototype)results.push(node);h.unmark(exclusions);return results;},'enabled':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++)
if(!node.disabled&&(!node.type||node.type!=='hidden'))
results.push(node);return results;},'disabled':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++)
if(node.disabled)results.push(node);return results;},'checked':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++)
if(node.checked)results.push(node);return results;}},operators:{'=':function(nv,v){return nv==v;},'!=':function(nv,v){return nv!=v;},'^=':function(nv,v){return nv==v||nv&&nv.startsWith(v);},'$=':function(nv,v){return nv==v||nv&&nv.endsWith(v);},'*=':function(nv,v){return nv==v||nv&&nv.include(v);},'~=':function(nv,v){return(' '+nv+' ').include(' '+v+' ');},'|=':function(nv,v){return('-'+(nv||"").toUpperCase()+'-').include('-'+(v||"").toUpperCase()+'-');}},split:function(expression){var expressions=[];expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/,function(m){expressions.push(m[1].strip());});return expressions;},matchElements:function(elements,expression){var matches=$$(expression),h=Selector.handlers;h.mark(matches);for(var i=0,results=[],element;element=elements[i];i++)
if(element._countedByPrototype)results.push(element);h.unmark(matches);return results;},findElement:function(elements,expression,index){if(Object.isNumber(expression)){index=expression;expression=false;}
return Selector.matchElements(elements,expression||'*')[index||0];},findChildElements:function(element,expressions){expressions=Selector.split(expressions.join(','));var results=[],h=Selector.handlers;for(var i=0,l=expressions.length,selector;i<l;i++){selector=new Selector(expressions[i].strip());h.concat(results,selector.findElements(element));}
return(l>1)?h.unique(results):results;}});if(Prototype.Browser.IE){Object.extend(Selector.handlers,{concat:function(a,b){for(var i=0,node;node=b[i];i++)
if(node.tagName!=="!")a.push(node);return a;}});}
function $$(){return Selector.findChildElements(document,$A(arguments));}
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;var data=elements.inject({},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)))){if(key in result){if(!Object.isArray(result[key]))result[key]=[result[key]];result[key].push(value);}
else result[key]=value;}}
return result;});return options.hash?data:Object.toQueryString(data);}};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;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,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;}).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);form.findFirstElement().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={input:function(element,value){switch(element.type.toLowerCase()){case'checkbox':case'radio':return Form.Element.Serializers.inputSelector(element,value);default:return Form.Element.Serializers.textarea(element,value);}},inputSelector:function(element,value){if(Object.isUndefined(value))return element.checked?element.value:null;else element.checked=!!value;},textarea:function(element,value){if(Object.isUndefined(value))return element.value;else element.value=value;},select:function(element,value){if(Object.isUndefined(value))
return this[element.type=='select-one'?'selectOne':'selectMany'](element);else{var opt,currentValue,single=!Object.isArray(value);for(var i=0,length=element.length;i<length;i++){opt=element.options[i];currentValue=this.optionValue(opt);if(single){if(currentValue==value){opt.selected=true;return;}}
else opt.selected=value.include(currentValue);}}},selectOne:function(element){var index=element.selectedIndex;return index>=0?this.optionValue(element.options[index]):null;},selectMany:function(element){var values,length=element.length;if(!length)return null;for(var i=0,values=[];i<length;i++){var opt=element.options[i];if(opt.selected)values.push(this.optionValue(opt));}
return values;},optionValue:function(opt){return Element.extend(opt).hasAttribute('value')?opt.value:opt.text;}};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,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,KEY_HOME:36,KEY_END:35,KEY_PAGEUP:33,KEY_PAGEDOWN:34,KEY_INSERT:45,cache:{}};var docEl=document.documentElement;var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED='onmouseenter'in docEl&&'onmouseleave'in docEl;var _isButton;if(Prototype.Browser.IE){var buttonMap={0:1,1:4,2:2};_isButton=function(event,code){return event.button===buttonMap[code];};}else if(Prototype.Browser.WebKit){_isButton=function(event,code){switch(code){case 0:return event.which==1&&!event.metaKey;case 1:return event.which==1&&event.metaKey;default:return false;}};}else{_isButton=function(event,code){return event.which?(event.which===code+1):(event.button===code);};}
function isLeftClick(event){return _isButton(event,0)}
function isMiddleClick(event){return _isButton(event,1)}
function isRightClick(event){return _isButton(event,2)}
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;var elements=[element].concat(element.ancestors());return Selector.findElement(elements,expression,0);}
function pointer(event){return{x:pointerX(event),y:pointerY(event)};}
function pointerX(event){var docElement=document.documentElement,body=document.body||{scrollLeft:0};return event.pageX||(event.clientX+
(docElement.scrollLeft||body.scrollLeft)-
(docElement.clientLeft||0));}
function pointerY(event){var docElement=document.documentElement,body=document.body||{scrollTop:0};return event.pageY||(event.clientY+
(docElement.scrollTop||body.scrollTop)-
(docElement.clientTop||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(Prototype.Browser.IE){function _relatedTarget(event){var element;switch(event.type){case'mouseover':element=event.fromElement;break;case'mouseout':element=event.toElement;break;default:return null;}
return Element.extend(element);}
Object.extend(methods,{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(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});return Object.extend(event,methods);};}else{Event.prototype=window.Event.prototype||document.createEvent('HTMLEvents').__proto__;Object.extend(Event.prototype,methods);Event.extend=Prototype.K;}
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,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;if(!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED){_getDOMEventName=function(eventName){var translations={mouseenter:"mouseover",mouseleave:"mouseout"};return eventName in translations?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("onfilterchange",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(Object.isUndefined(registry))return element;if(eventName&&!handler){var responders=registry.get(eventName);if(Object.isUndefined(responders))return element;responders.each(function(r){Element.stopObserving(element,eventName,r.handler);});return element;}else if(!eventName){registry.each(function(pair){var eventName=pair.key,responders=pair.value;responders.each(function(r){Element.stopObserving(element,eventName,r.handler);});});return element;}
var responders=registry.get(eventName);if(!responders)return;var responder=responders.find(function(r){return r.handler===handler;});if(!responder)return element;var actualEventName=_getDOMEventName(eventName);if(eventName.include(':')){if(element.removeEventListener)
element.removeEventListener("dataavailable",responder,false);else{element.detachEvent("ondataavailable",responder);element.detachEvent("onfilterchange",responder);}}else{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',true,true);}else{event=document.createEventObject();event.eventType=bubble?'ondataavailable':'onfilterchange';}
event.eventName=eventName;event.memo=memo||{};if(document.createEvent)
element.dispatchEvent(event);else
element.fireEvent(event.eventType,event);return Event.extend(event);}
Object.extend(Event,Event.Methods);Object.extend(Event,{fire:fire,observe:observe,stopObserving:stopObserving});Element.addMethods({fire:fire,observe:observe,stopObserving:stopObserving});Object.extend(document,{fire:fire.methodize(),observe:observe.methodize(),stopObserving:stopObserving.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;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||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]&&y<this.offset[1]+element.offsetHeight&&x>=this.offset[0]&&x<this.offset[0]+element.offsetWidth);},withinIncludingScrolloffsets:function(element,x,y){var offsetcache=Element.cumulativeScrollOffset(element);this.xcomp=x+offsetcache[0]-this.deltaX;this.ycomp=y+offsetcache[1]-this.deltaY;this.offset=Element.cumulativeOffset(element);return(this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+element.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+element.offsetWidth);},overlap:function(mode,element){if(!mode)return 0;if(mode=='vertical')
return((this.offset[1]+element.offsetHeight)-this.ycomp)/element.offsetHeight;if(mode=='horizontal')
return((this.offset[0]+element.offsetWidth)-this.xcomp)/element.offsetWidth;},cumulativeOffset:Element.Methods.cumulativeOffset,positionedOffset:Element.Methods.positionedOffset,absolutize:function(element){Position.prepare();return Element.absolutize(element);},relativize:function(element){Position.prepare();return Element.relativize(element);},realOffset:Element.Methods.cumulativeScrollOffset,offsetParent:Element.Methods.getOffsetParent,page:Element.Methods.viewportOffset,clone:function(source,target,options){options=options||{};return Element.clonePosition(target,source,options);}};if(!document.getElementsByClassName)document.getElementsByClassName=function(instanceMethods){function iter(name){return name.blank()?null:"[contains(concat(' ', @class, ' '), ' "+name+" ')]";}
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,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;})._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);;if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return"";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;;Prototype.Browser.Plugins={};Prototype.Browser.Plugins.Flash=(function(){var version=(Try.these(function(){return navigator.plugins['Shockwave Flash'].description;},function(){return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version');})||'0 r0').match(/\d+/g);return{version:parseInt(version[0]||0+'.'+version[1]||0,10),build:parseInt(version[2]||0,10)};})();Prototype.Browser.isIE6=function(){return/MSIE 6/i.test(navigator.userAgent);};String.prototype.substitute=function(object,regexp){return this.replace(regexp||(/\\?\{([^}]+)\}/g),function(match,name){if(match.charAt(0)=='\\'){return match.slice(1);}
return(typeof object[name]!=="undefined")?object[name]:'';});};String.prototype.setQueryStringValueForParam=function(param,value){return this.replace(new RegExp("("+param+"=)([^&]*)"),function(){return arguments[2]+encodeURIComponent(arguments[0]);}.curry(value));}
Date.prototype.parseDuration=function(sec){var units={},conv=Date.durations;for(var unit in conv){var value=Math.floor(sec/conv[unit]);if(value){units[unit]=value;if(!(sec-=value*conv[unit])){break;}}}
return units;};Date.prototype.duration=function(sec){var ret=[],units=Date.parseDuration(sec);for(var unit in units){ret.push(units[unit]+Date.durationsAbbr[unit]);}
return ret.join(', ');};Date.prototype.durations={years:31556926,months:2629743.83,days:86400,hours:3600,minutes:60,seconds:1,milliseconds:0.001};Date.prototype.durationsAbbr={years:'j',months:'m',days:'d',hours:'h',minutes:'min',seconds:'sec',milliseconds:'ms'};Number.prototype.round_digits=function(digits){digits=(!digits||digits===0?1:Math.pow(10,digits));result=Math.round(this*digits)/digits;return result;};;var Scriptaculous={Version:'1.8.1',require:function(libraryName){document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');},REQUIRED_PROTOTYPE:'1.6.0',load:function(){function convertVersionString(versionString){var r=versionString.split('.');return parseInt(r[0])*100000+parseInt(r[1])*1000+parseInt(r[2]);}
if((typeof Prototype=='undefined')||(typeof Element=='undefined')||(typeof Element.Methods=='undefined')||(convertVersionString(Prototype.Version)<convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
throw("script.aculo.us requires the Prototype JavaScript framework >= "+
Scriptaculous.REQUIRED_PROTOTYPE);$A(document.getElementsByTagName("script")).findAll(function(s){return(s.src&&s.src.match(/scriptaculous\.js(\?.*)?$/))}).each(function(s){var path=s.src.replace(/scriptaculous\.js(\?.*)?$/,'');var includes=s.src.match(/\?.*load=([a-z,]*)/);(includes?includes[1]:'builder,effects,dragdrop,controls,slider,sound').split(',').each(function(include){Scriptaculous.require(path+include+'.js')});});}}
Scriptaculous.load();;String.prototype.parseColor=function(){var color='#';if(this.slice(0,4)=='rgb('){var cols=this.slice(4,this.length-1).split(',');var i=0;do{color+=parseInt(cols[i]).toColorPart()}while(++i<3);}else{if(this.slice(0,1)=='#'){if(this.length==4)for(var i=1;i<4;i++)color+=(this.charAt(i)+this.charAt(i)).toLowerCase();if(this.length==7)color=this.toLowerCase();}}
return(color.length==7?color:(arguments[0]||this));};Element.collectTextNodes=function(element){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:(node.hasChildNodes()?Element.collectTextNodes(node):''));}).flatten().join('');};Element.collectTextNodesIgnoreClass=function(element,className){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:((node.hasChildNodes()&&!Element.hasClassName(node,className))?Element.collectTextNodesIgnoreClass(node,className):''));}).flatten().join('');};Element.setContentZoom=function(element,percent){element=$(element);element.setStyle({fontSize:(percent/100)+'em'});if(Prototype.Browser.WebKit)window.scrollBy(0,0);return element;};Element.getInlineOpacity=function(element){return $(element).style.opacity||'';};Element.forceRerendering=function(element){try{element=$(element);var n=document.createTextNode(' ');element.appendChild(n);element.removeChild(n);}catch(e){}};var Effect={_elementDoesNotExistError:{name:'ElementDoesNotExistError',message:'The specified DOM element does not exist, but is required for this effect to operate'},Transitions:{linear:Prototype.K,sinoidal:function(pos){return(-Math.cos(pos*Math.PI)/2)+0.5;},reverse:function(pos){return 1-pos;},flicker:function(pos){var pos=((-Math.cos(pos*Math.PI)/4)+0.75)+Math.random()/4;return pos>1?1:pos;},wobble:function(pos){return(-Math.cos(pos*Math.PI*(9*pos))/2)+0.5;},pulse:function(pos,pulses){pulses=pulses||5;return(((pos%(1/pulses))*pulses).round()==0?((pos*pulses*2)-(pos*pulses*2).floor()):1-((pos*pulses*2)-(pos*pulses*2).floor()));},spring:function(pos){return 1-(Math.cos(pos*4.5*Math.PI)*Math.exp(-pos*6));},none:function(pos){return 0;},full:function(pos){return 1;}},DefaultOptions:{duration:1.0,fps:100,sync: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){child.nodeValue.toArray().each(function(character){element.insertBefore(new Element('span',{style:tagifyStyle}).update(character==' '?String.fromCharCode(160):character),child);});Element.remove(child);}});},multiple:function(element,effect){var elements;if(((typeof element=='object')||Object.isFunction(element))&&(element.length))
elements=element;else
elements=$(element).childNodes;var options=Object.extend({speed:0.1,delay:0.0},arguments[2]||{});var masterDelay=options.delay;$A(elements).each(function(element,index){new effect(element,Object.extend(options,{delay:index*options.speed+masterDelay}));});},PAIRS:{'slide':['SlideDown','SlideUp'],'blind':['BlindDown','BlindUp'],'appear':['Appear','Fade']},toggle:function(element,effect){element=$(element);effect=(effect||'appear').toLowerCase();var options=Object.extend({queue:{position:'end',scope:(element.id||'global'),limit:1}},arguments[2]||{});Effect[element.visible()?Effect.PAIRS[effect][1]:Effect.PAIRS[effect][0]](element,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);},remove:function(effect){this.effects=this.effects.reject(function(e){return e==effect});if(this.effects.length==0){clearInterval(this.interval);this.interval=null;}},loop:function(){var timePos=new Date().getTime();for(var i=0,len=this.effects.length;i<len;i++)
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){function codeForEvent(options,eventName){return((options[eventName+'Internal']?'this.options.'+eventName+'Internal(this);':'')+
(options[eventName]?'this.options.'+eventName+'(this);':''));}
if(options&&options.transition===false)options.transition=Effect.Transitions.linear;this.options=Object.extend(Object.extend({},Effect.DefaultOptions),options||{});this.currentFrame=0;this.state='idle';this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.fromToDelta=this.options.to-this.options.from;this.totalTime=this.finishOn-this.startOn;this.totalFrames=this.options.fps*this.options.duration;eval('this.render = function(pos){ '+'if (this.state=="idle"){this.state="running";'+
codeForEvent(this.options,'beforeSetup')+
(this.setup?'this.setup();':'')+
codeForEvent(this.options,'afterSetup')+'};if (this.state=="running"){'+'pos=this.options.transition(pos)*'+this.fromToDelta+'+'+this.options.from+';'+'this.position=pos;'+
codeForEvent(this.options,'beforeUpdate')+
(this.update?'this.update(pos);':'')+
codeForEvent(this.options,'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'#<Effect:'+data.inspect()+',options:'+$H(this.options).inspect()+'>';}});Effect.Parallel=Class.create(Effect.Base,{initialize:function(effects){this.effects=effects||[];this.start(arguments[1]);},update:function(position){this.effects.invoke('render',position);},finish:function(position){this.effects.each(function(effect){effect.render(1.0);effect.cancel();effect.event('beforeFinish');if(effect.finish)effect.finish(position);effect.event('afterFinish');});}});Effect.Tween=Class.create(Effect.Base,{initialize:function(object,from,to){object=Object.isString(object)?$(object):object;var args=$A(arguments),method=args.last(),options=args.length==5?args[3]:null;this.method=Object.isFunction(method)?method.bind(object):Object.isFunction(object[method])?object[method].bind(object):function(value){object[method]=value};this.start(Object.extend({from:from,to:to},options||{}));},update:function(position){this.method(position);}});Effect.Event=Class.create(Effect.Base,{initialize:function(){this.start(Object.extend({duration:0},arguments[0]||{}));},update:Prototype.emptyFunction});Effect.Opacity=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout))
this.element.setStyle({zoom:1});var options=Object.extend({from:this.element.getOpacity()||0.0,to:1.0},arguments[1]||{});this.start(options);},update:function(position){this.element.setOpacity(position);}});Effect.Move=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({x:0,y:0,mode:'relative'},arguments[1]||{});this.start(options);},setup:function(){this.element.makePositioned();this.originalLeft=parseFloat(this.element.getStyle('left')||'0');this.originalTop=parseFloat(this.element.getStyle('top')||'0');if(this.options.mode=='absolute'){this.options.x=this.options.x-this.originalLeft;this.options.y=this.options.y-this.originalTop;}},update:function(position){this.element.setStyle({left:(this.options.x*position+this.originalLeft).round()+'px',top:(this.options.y*position+this.originalTop).round()+'px'});}});Effect.MoveBy=function(element,toTop,toLeft){return new Effect.Move(element,Object.extend({x:toLeft,y:toTop},arguments[3]||{}));};Effect.Scale=Class.create(Effect.Base,{initialize:function(element,percent){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:'box',scaleFrom:100.0,scaleTo:percent},arguments[2]||{});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){this.fontSize=parseFloat(fontSize);this.fontSizeType=fontSizeType;}}.bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;this.dims=null;if(this.options.scaleMode=='box')
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]*currentScale,this.dims[1]*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])/2;var leftd=(width-this.dims[1])/2;if(this.elementPositioning=='absolute'){if(this.options.scaleY)d.top=this.originalTop-topd+'px';if(this.options.scaleX)d.left=this.originalLeft-leftd+'px';}else{if(this.options.scaleY)d.top=-topd+'px';if(this.options.scaleX)d.left=-leftd+'px';}}
if(this.options.scaleFromBottom){d.top=this.element.offsetTop+this.element.offsetHeight-Math.round(height)+"px";l("scale from bottom",d);}
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]||{});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,2).map(function(i){return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16)}.bind(this));this._delta=$R(0,2).map(function(i){return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i]}.bind(this));},update:function(position){this.element.setStyle({backgroundColor:$R(0,2).inject('#',function(m,v,i){return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart());}.bind(this))});},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}));}});Effect.ScrollTo=function(element){var options=arguments[1]||{},scrollOffsets=document.viewport.getScrollOffsets(),elementOffsets=$(element).cumulativeOffset(),max=(window.height||document.body.scrollHeight)-document.viewport.getHeight();if(options.offset)elementOffsets[1]+=options.offset;return new Effect.Tween(null,scrollOffsets.top,elementOffsets[1]>max?max:elementOffsets[1],options,function(p){scrollTo(scrollOffsets.left,p.round())});};Effect.Fade=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();var options=Object.extend({from:element.getOpacity()||1.0,to:0.0,afterFinishInternal:function(effect){if(effect.options.to!=0)return;effect.element.hide().setStyle({opacity:oldOpacity});}},arguments[1]||{});return new Effect.Opacity(element,options);};Effect.Appear=function(element){element=$(element);var options=Object.extend({from:(element.getStyle('display')=='none'?0.0:element.getOpacity()||0.0),to:1.0,afterFinishInternal:function(effect){effect.element.forceRerendering();},beforeSetup:function(effect){effect.element.setOpacity(effect.options.from).show();}},arguments[1]||{});return new Effect.Opacity(element,options);};Effect.Puff=function(element){element=$(element);var oldStyle={opacity:element.getInlineOpacity(),position:element.getStyle('position'),top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};return new Effect.Parallel([new Effect.Scale(element,200,{sync: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].element)},afterFinishInternal:function(effect){effect.effects[0].element.hide().setStyle(oldStyle);}},arguments[1]||{}));};Effect.BlindUp=function(element){element=$(element);element.makeClipping();return new Effect.Scale(element,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(effect){effect.element.hide().undoClipping();}},arguments[1]||{}));};Effect.BlindDown=function(element){element=$(element);var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom: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]||{}));};Effect.SwitchOff=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();return new Effect.Appear(element,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(effect){new Effect.Scale(effect.element,1,{duration:0.3,scaleFromCenter: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]||{}));};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,y:100,sync:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:0.5,beforeSetup:function(effect){effect.effects[0].element.makePositioned();},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);}},arguments[1]||{}));};Effect.Shake=function(element){element=$(element);var options=Object.extend({distance:20,duration:0.5},arguments[1]||{});var distance=parseFloat(options.distance);var split=parseFloat(options.duration)/10.0;var oldStyle={top:element.getStyle('top'),left:element.getStyle('left')};return new Effect.Move(element,{x:distance,y:0,duration:split,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance,y:0,duration:split,afterFinishInternal:function(effect){effect.element.undoPositioned().setStyle(oldStyle);}})}})}})}})}})}});};Effect.SlideDown=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,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]-effect.element.clientHeight)+'px'});},afterFinishInternal:function(effect){effect.element.undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom});}},arguments[1]||{}));};Effect.SlideUp=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');var elementDimensions=element.getDimensions();return new Effect.Scale(element,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:'box',scaleFrom:100,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]-effect.element.clientHeight)+'px'});},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom});}},arguments[1]||{}));};Effect.Squish=function(element){return new Effect.Scale(element,window.opera?1:0,{restoreAfterFinish: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]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var initialMoveX,initialMoveY;var moveX,moveY;switch(options.direction){case'top-left':initialMoveX=initialMoveY=moveX=moveY=0;break;case'top-right':initialMoveX=dims.width;initialMoveY=moveY=0;moveX=-dims.width;break;case'bottom-left':initialMoveX=moveX=0;initialMoveY=dims.height;moveY=-dims.height;break;case'bottom-right':initialMoveX=dims.width;initialMoveY=dims.height;moveX=-dims.width;moveY=-dims.height;break;case'center':initialMoveX=dims.width/2;initialMoveY=dims.height/2;moveX=-dims.width/2;moveY=-dims.height/2;break;}
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,{scaleMode:{originalHeight:dims.height,originalWidth:dims.width},sync:true,scaleFrom:window.opera?1:0,transition:options.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(effect){effect.effects[0].element.setStyle({height:'0px'}).show();},afterFinishInternal:function(effect){effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle);}},options))}});};Effect.Shrink=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});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;break;case'top-right':moveX=dims.width;moveY=0;break;case'bottom-left':moveX=0;moveY=dims.height;break;case'bottom-right':moveX=dims.width;moveY=dims.height;break;case'center':moveX=dims.width/2;moveY=dims.height/2;break;}
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,{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].element.makePositioned().makeClipping();},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle);}},options));};Effect.Pulsate=function(element){element=$(element);var options=arguments[1]||{};var oldOpacity=element.getInlineOpacity();var transition=options.transition||Effect.Transitions.sinoidal;var reverser=function(pos){return transition(1-Effect.Transitions.pulse(pos,options.pulses))};reverser.bind(transition);return new Effect.Opacity(element,Object.extend(Object.extend({duration:2.0,from:0,afterFinishInternal:function(effect){effect.element.setStyle({opacity:oldOpacity});}},options),{transition:reverser}));};Effect.Fold=function(element){element=$(element);var oldStyle={top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};element.makeClipping();return new Effect.Scale(element,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(effect){new Effect.Scale(element,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(effect){effect.element.hide().undoClipping().setStyle(oldStyle);}});}},arguments[1]||{}));};Effect.Morph=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({style:{}},arguments[1]||{});if(!Object.isString(options.style))this.style=$H(options.style);else{if(options.style.include(':'))
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,2).map(function(i){return parseInt(color.slice(i*2+1,i*2+3),16)});}
this.transforms=this.style.map(function(pair){var property=pair[0],value=pair[1],unit=null;if(value.parseColor('#zzzzzz')!='#zzzzzz'){value=value.parseColor();unit='color';}else if(property=='opacity'){value=parseFloat(value);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout))
this.element.setStyle({zoom:1});}else if(Element.CSS_LENGTH.test(value)){var components=value.match(/^([\+\-]?[0-9\.]+)(.*)$/);value=parseFloat(components[1]);unit=(components.length==3)?components[2]:null;}
var originalValue=this.element.getStyle(property);return{style:property.camelize(),originalValue:unit=='color'?parseColor(originalValue):parseFloat(originalValue||0),targetValue:unit=='color'?parseColor(value):value,unit:unit};}.bind(this)).reject(function(transform){return((transform.originalValue==transform.targetValue)||(transform.unit!='color'&&(isNaN(transform.originalValue)||isNaN(transform.targetValue))))});},update:function(position){var style={},transform,i=this.transforms.length;while(i--)
style[(transform=this.transforms[i]).style]=transform.unit=='color'?'#'+
(Math.round(transform.originalValue[0]+
(transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart()+
(Math.round(transform.originalValue[1]+
(transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart()+
(Math.round(transform.originalValue[2]+
(transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart():(transform.originalValue+
(transform.targetValue-transform.originalValue)*position).toFixed(3)+
(transform.unit===null?'':transform.unit);this.element.setStyle(style,true);}});Effect.Transform=Class.create({initialize:function(tracks){this.tracks=[];this.options=arguments[1]||{};this.addTracks(tracks);},addTracks:function(tracks){tracks.each(function(track){track=$H(track);var data=track.values().first();this.tracks.push($H({ids:track.keys().first(),effect:Effect.Morph,options:{style:data}}));}.bind(this));return this;},play:function(){return new Effect.Parallel(this.tracks.map(function(track){var ids=track.get('ids'),effect=track.get('effect'),options=track.get('options');var elements=[$(ids)||$$(ids)].flatten();return elements.map(function(e){return new effect(e,Object.extend({sync: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='<div style="'+this+'"></div>';style=String.__parseStyleElement.childNodes[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]);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]||{}));return element;},visualEffect:function(element,effect,options){element=$(element)
var s=effect.dasherize().camelize(),klass=s.charAt(0).toUpperCase()+s.substring(1);new Effect[klass](element,options);return element;},highlight:function(element,options){element=$(element);new Effect.Highlight(element,options);return element;}};$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+'pulsate shake puff squish switchOff dropOut').each(function(effect){Effect.Methods[effect]=function(element,options){element=$(element);Effect[effect.charAt(0).toUpperCase()+effect.substring(1)](element,options);return element;}});$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each(function(f){Effect.Methods[f]=Element[f];});Element.addMethods(Effect.Methods);;var Builder={NODEMAP:{AREA:'map',CAPTION:'table',COL:'table',COLGROUP:'table',LEGEND:'fieldset',OPTGROUP:'select',OPTION:'select',PARAM:'object',TBODY:'table',TD:'table',TFOOT:'table',TH:'table',THEAD:'table',TR:'table'},node:function(elementName){elementName=elementName.toUpperCase();var parentTag=this.NODEMAP[elementName]||'div';var parentElement=document.createElement(parentTag);try{parentElement.innerHTML="<"+elementName+"></"+elementName+">";}catch(e){}
var element=parentElement.firstChild||null;if(element&&(element.tagName.toUpperCase()!=elementName))
element=element.getElementsByTagName(elementName)[0];if(!element)element=document.createElement(elementName);if(!element)return;if(arguments[1])
if(this._isStringOrNumber(arguments[1])||(arguments[1]instanceof Array)||arguments[1].tagName){this._children(element,arguments[1]);}else{var attrs=this._attributes(arguments[1]);if(attrs.length){try{parentElement.innerHTML="<"+elementName+" "+
attrs+"></"+elementName+">";}catch(e){}
element=parentElement.firstChild||null;if(!element){element=document.createElement(elementName);for(attr in arguments[1])
element[attr=='class'?'className':attr]=arguments[1][attr];}
if(element.tagName.toUpperCase()!=elementName)
element=parentElement.getElementsByTagName(elementName)[0];}}
if(arguments[2])
this._children(element,arguments[2]);return element;},_text:function(text){return document.createTextNode(text);},ATTR_MAP:{'className':'class','htmlFor':'for'},_attributes:function(attributes){var attrs=[];for(attribute in attributes)
attrs.push((attribute in this.ATTR_MAP?this.ATTR_MAP[attribute]:attribute)+'="'+attributes[attribute].toString().escapeHTML().gsub(/"/,'&quot;')+'"');return attrs.join(" ");},_children:function(element,children){if(children.tagName){element.appendChild(children);return;}
if(typeof children=='object'){children.flatten().each(function(e){if(typeof e=='object')
element.appendChild(e)
else
if(Builder._isStringOrNumber(e))
element.appendChild(Builder._text(e));});}else
if(Builder._isStringOrNumber(children))
element.appendChild(Builder._text(children));},_isStringOrNumber:function(param){return(typeof param=='string'||typeof param=='number');},build:function(html){var element=this.node('div');$(element).update(html.strip());return element.down();},dump:function(scope){if(typeof scope!='object'&&typeof scope!='function')scope=window;var tags=("A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY "+"BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET "+"FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX "+"KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P "+"PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD "+"TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR").split(/\s+/);tags.each(function(tag){scope[tag]=function(){return Builder.node.apply(Builder,[tag].concat($A(arguments)));}});}};if(Object.isUndefined(Effect))
throw("dragdrop.js requires including script.aculo.us' effects.js library");var Droppables={drops:[],remove:function(element){this.drops=this.drops.reject(function(d){return d.element==$(element)});},add:function(element){element=$(element);var options=Object.extend({greedy:true,hoverclass:null,tree:false},arguments[1]||{});if(options.containment){options._containers=[];var containment=options.containment;if(Object.isArray(containment)){containment.each(function(c){options._containers.push($(c))});}else{options._containers.push($(containment));}}
if(options.accept)options.accept=[options.accept].flatten();Element.makePositioned(element);options.element=element;this.drops.push(options);},findDeepestChild:function(drops){deepest=drops[0];for(i=1;i<drops.length;++i)
if(Element.isParent(drops[i].element,deepest.element))
deepest=drops[i];return deepest;},isContained:function(element,drop){var containmentNode;if(drop.tree){containmentNode=element.treeNode;}else{containmentNode=element.parentNode;}
return drop._containers.detect(function(c){return containmentNode==c});},isAffected:function(point,element,drop){return((drop.element!=element)&&((!drop._containers)||this.isContained(element,drop))&&((!drop.accept)||(Element.classNames(element).detect(function(v){return drop.accept.include(v)})))&&Position.within(drop.element,point[0],point[1]));},deactivate:function(drop){if(drop.hoverclass)
Element.removeClassName(drop.element,drop.hoverclass);this.last_active=null;},activate:function(drop){if(drop.hoverclass)
Element.addClassName(drop.element,drop.hoverclass);this.last_active=drop;},show:function(point,element){if(!this.drops.length)return;var drop,affected=[];this.drops.each(function(drop){if(Droppables.isAffected(point,element,drop))
affected.push(drop);});if(affected.length>0)
drop=Droppables.findDeepestChild(affected);if(this.last_active&&this.last_active!=drop)this.deactivate(this.last_active);if(drop){Position.within(drop.element,point[0],point[1]);if(drop.onHover)
drop.onHover(element,drop.element,Position.overlap(drop.overlap,drop.element));if(drop!=this.last_active)Droppables.activate(drop);}},fire:function(event,element){if(!this.last_active)return;Position.prepare();if(this.isAffected([Event.pointerX(event),Event.pointerY(event)],element,this.last_active))
if(this.last_active.onDrop){this.last_active.onDrop(element,this.last_active.element,event);return true;}},reset:function(){if(this.last_active)
this.deactivate(this.last_active);}}
var Draggables={drags:[],observers:[],register:function(draggable){if(this.drags.length==0){this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.updateDrag.bindAsEventListener(this);this.eventKeypress=this.keyPress.bindAsEventListener(this);Event.observe(document,"mouseup",this.eventMouseUp);Event.observe(document,"mousemove",this.eventMouseMove);Event.observe(document,"keypress",this.eventKeypress);}
this.drags.push(draggable);},unregister:function(draggable){this.drags=this.drags.reject(function(d){return d==draggable});if(this.drags.length==0){Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);Event.stopObserving(document,"keypress",this.eventKeypress);}},activate:function(draggable){if(draggable.options.delay){this._timeout=setTimeout(function(){Draggables._timeout=null;window.focus();Draggables.activeDraggable=draggable;}.bind(this),draggable.options.delay);}else{window.focus();this.activeDraggable=draggable;}},deactivate:function(){this.activeDraggable=null;},updateDrag:function(event){if(!this.activeDraggable)return;var pointer=[Event.pointerX(event),Event.pointerY(event)];if(this._lastPointer&&(this._lastPointer.inspect()==pointer.inspect()))return;this._lastPointer=pointer;this.activeDraggable.updateDrag(event,pointer);},endDrag:function(event){if(this._timeout){clearTimeout(this._timeout);this._timeout=null;}
if(!this.activeDraggable)return;this._lastPointer=null;this.activeDraggable.endDrag(event);this.activeDraggable=null;},keyPress:function(event){if(this.activeDraggable)
this.activeDraggable.keyPress(event);},addObserver:function(observer){this.observers.push(observer);this._cacheObserverCallbacks();},removeObserver:function(element){this.observers=this.observers.reject(function(o){return o.element==element});this._cacheObserverCallbacks();},notify:function(eventName,draggable,event){if(this[eventName+'Count']>0)
this.observers.each(function(o){if(o[eventName])o[eventName](eventName,draggable,event);});if(draggable.options[eventName])draggable.options[eventName](draggable,event);},_cacheObserverCallbacks:function(){['onStart','onEnd','onDrag'].each(function(eventName){Draggables[eventName+'Count']=Draggables.observers.select(function(o){return o[eventName];}).length;});}}
var Draggable=Class.create({initialize:function(element){var defaults={handle:false,reverteffect:function(element,top_offset,left_offset){var dur=Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;new Effect.Move(element,{x:-left_offset,y:-top_offset,duration:dur,queue:{scope:'_draggable',position:'end'}});},endeffect:function(element){var toOpacity=Object.isNumber(element._opacity)?element._opacity:1.0;new Effect.Opacity(element,{duration:0.2,from:0.7,to:toOpacity,queue:{scope:'_draggable',position:'end'},afterFinish:function(){Draggable._dragging[element]=false}});},zindex:1000,revert:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,snap:false,delay:0};if(!arguments[1]||Object.isUndefined(arguments[1].endeffect))
Object.extend(defaults,{starteffect:function(element){element._opacity=Element.getOpacity(element);Draggable._dragging[element]=true;new Effect.Opacity(element,{duration:0.2,from:element._opacity,to:0.7});}});var options=Object.extend(defaults,arguments[1]||{});this.element=$(element);if(options.handle&&Object.isString(options.handle))
this.handle=this.element.down('.'+options.handle,0);if(!this.handle)this.handle=$(options.handle);if(!this.handle)this.handle=this.element;if(options.scroll&&!options.scroll.scrollTo&&!options.scroll.outerHTML){options.scroll=$(options.scroll);this._isScrollChild=Element.childOf(this.element,options.scroll);}
Element.makePositioned(this.element);this.options=options;this.dragging=false;this.eventMouseDown=this.initDrag.bindAsEventListener(this);Event.observe(this.handle,"mousedown",this.eventMouseDown);Draggables.register(this);},destroy:function(){Event.stopObserving(this.handle,"mousedown",this.eventMouseDown);Draggables.unregister(this);},currentDelta:function(){return([parseInt(Element.getStyle(this.element,'left')||'0'),parseInt(Element.getStyle(this.element,'top')||'0')]);},initDrag:function(event){if(!Object.isUndefined(Draggable._dragging[this.element])&&Draggable._dragging[this.element])return;if(Event.isLeftClick(event)){var src=Event.element(event);if((tag_name=src.tagName.toUpperCase())&&(tag_name=='INPUT'||tag_name=='SELECT'||tag_name=='OPTION'||tag_name=='BUTTON'||tag_name=='TEXTAREA'))return;var pointer=[Event.pointerX(event),Event.pointerY(event)];var pos=Position.cumulativeOffset(this.element);this.offset=[0,1].map(function(i){return(pointer[i]-pos[i])});Draggables.activate(this);Event.stop(event);}},startDrag:function(event){this.dragging=true;if(!this.delta)
this.delta=this.currentDelta();if(this.options.zindex){this.originalZ=parseInt(Element.getStyle(this.element,'z-index')||0);this.element.style.zIndex=this.options.zindex;}
if(this.options.ghosting){this._clone=this.element.cloneNode(true);this.element._originallyAbsolute=(this.element.getStyle('position')=='absolute');if(!this.element._originallyAbsolute)
Position.absolutize(this.element);this.element.parentNode.insertBefore(this._clone,this.element);}
if(this.options.scroll){if(this.options.scroll==window){var where=this._getWindowScroll(this.options.scroll);this.originalScrollLeft=where.left;this.originalScrollTop=where.top;}else{this.originalScrollLeft=this.options.scroll.scrollLeft;this.originalScrollTop=this.options.scroll.scrollTop;}}
Draggables.notify('onStart',this,event);if(this.options.starteffect)this.options.starteffect(this.element);},updateDrag:function(event,pointer){if(!this.dragging)this.startDrag(event);if(!this.options.quiet){Position.prepare();Droppables.show(pointer,this.element);}
Draggables.notify('onDrag',this,event);this.draw(pointer);if(this.options.change)this.options.change(this);if(this.options.scroll){this.stopScrolling();var p;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){p=[left,top,left+width,top+height];}}else{p=Position.page(this.options.scroll);p[0]+=this.options.scroll.scrollLeft+Position.deltaX;p[1]+=this.options.scroll.scrollTop+Position.deltaY;p.push(p[0]+this.options.scroll.offsetWidth);p.push(p[1]+this.options.scroll.offsetHeight);}
var speed=[0,0];if(pointer[0]<(p[0]+this.options.scrollSensitivity))speed[0]=pointer[0]-(p[0]+this.options.scrollSensitivity);if(pointer[1]<(p[1]+this.options.scrollSensitivity))speed[1]=pointer[1]-(p[1]+this.options.scrollSensitivity);if(pointer[0]>(p[2]-this.options.scrollSensitivity))speed[0]=pointer[0]-(p[2]-this.options.scrollSensitivity);if(pointer[1]>(p[3]-this.options.scrollSensitivity))speed[1]=pointer[1]-(p[3]-this.options.scrollSensitivity);this.startScrolling(speed);}
if(Prototype.Browser.WebKit)window.scrollBy(0,0);Event.stop(event);},finishDrag:function(event,success){this.dragging=false;if(this.options.quiet){Position.prepare();var pointer=[Event.pointerX(event),Event.pointerY(event)];Droppables.show(pointer,this.element);}
if(this.options.ghosting){if(!this.element._originallyAbsolute)
Position.relativize(this.element);delete this.element._originallyAbsolute;Element.remove(this._clone);this._clone=null;}
var dropped=false;if(success){dropped=Droppables.fire(event,this.element);if(!dropped)dropped=false;}
if(dropped&&this.options.onDropped)this.options.onDropped(this.element);Draggables.notify('onEnd',this,event);var revert=this.options.revert;if(revert&&Object.isFunction(revert))revert=revert(this.element);var d=this.currentDelta();if(revert&&this.options.reverteffect){if(dropped==0||revert!='failure')
this.options.reverteffect(this.element,d[1]-this.delta[1],d[0]-this.delta[0]);}else{this.delta=d;}
if(this.options.zindex)
this.element.style.zIndex=this.originalZ;if(this.options.endeffect)
this.options.endeffect(this.element);Draggables.deactivate(this);Droppables.reset();},keyPress:function(event){if(event.keyCode!=Event.KEY_ESC)return;this.finishDrag(event,false);Event.stop(event);},endDrag:function(event){if(!this.dragging)return;this.stopScrolling();this.finishDrag(event,true);Event.stop(event);},draw:function(point){var pos=Position.cumulativeOffset(this.element);if(this.options.ghosting){var r=Position.realOffset(this.element);pos[0]+=r[0]-Position.deltaX;pos[1]+=r[1]-Position.deltaY;}
var d=this.currentDelta();pos[0]-=d[0];pos[1]-=d[1];if(this.options.scroll&&(this.options.scroll!=window&&this._isScrollChild)){pos[0]-=this.options.scroll.scrollLeft-this.originalScrollLeft;pos[1]-=this.options.scroll.scrollTop-this.originalScrollTop;}
var p=[0,1].map(function(i){return(point[i]-pos[i]-this.offset[i])}.bind(this));if(this.options.snap){if(Object.isFunction(this.options.snap)){p=this.options.snap(p[0],p[1],this);}else{if(Object.isArray(this.options.snap)){p=p.map(function(v,i){return(v/this.options.snap[i]).round()*this.options.snap[i]}.bind(this))}else{p=p.map(function(v){return(v/this.options.snap).round()*this.options.snap}.bind(this))}}}
var style=this.element.style;if((!this.options.constraint)||(this.options.constraint=='horizontal'))
style.left=p[0]+"px";if((!this.options.constraint)||(this.options.constraint=='vertical'))
style.top=p[1]+"px";if(style.visibility=="hidden")style.visibility="";},stopScrolling:function(){if(this.scrollInterval){clearInterval(this.scrollInterval);this.scrollInterval=null;Draggables._lastScrollPointer=null;}},startScrolling:function(speed){if(!(speed[0]||speed[1]))return;this.scrollSpeed=[speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];this.lastScrolled=new Date();this.scrollInterval=setInterval(this.scroll.bind(this),10);},scroll:function(){var current=new Date();var delta=current-this.lastScrolled;this.lastScrolled=current;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){if(this.scrollSpeed[0]||this.scrollSpeed[1]){var d=delta/1000;this.options.scroll.scrollTo(left+d*this.scrollSpeed[0],top+d*this.scrollSpeed[1]);}}}else{this.options.scroll.scrollLeft+=this.scrollSpeed[0]*delta/1000;this.options.scroll.scrollTop+=this.scrollSpeed[1]*delta/1000;}
Position.prepare();Droppables.show(Draggables._lastPointer,this.element);Draggables.notify('onDrag',this);if(this._isScrollChild){Draggables._lastScrollPointer=Draggables._lastScrollPointer||$A(Draggables._lastPointer);Draggables._lastScrollPointer[0]+=this.scrollSpeed[0]*delta/1000;Draggables._lastScrollPointer[1]+=this.scrollSpeed[1]*delta/1000;if(Draggables._lastScrollPointer[0]<0)
Draggables._lastScrollPointer[0]=0;if(Draggables._lastScrollPointer[1]<0)
Draggables._lastScrollPointer[1]=0;this.draw(Draggables._lastScrollPointer);}
if(this.options.change)this.options.change(this);},_getWindowScroll:function(w){var T,L,W,H;with(w.document){if(w.document.documentElement&&documentElement.scrollTop){T=documentElement.scrollTop;L=documentElement.scrollLeft;}else if(w.document.body){T=body.scrollTop;L=body.scrollLeft;}
if(w.innerWidth){W=w.innerWidth;H=w.innerHeight;}else if(w.document.documentElement&&documentElement.clientWidth){W=documentElement.clientWidth;H=documentElement.clientHeight;}else{W=body.offsetWidth;H=body.offsetHeight}}
return{top:T,left:L,width:W,height:H};}});Draggable._dragging={};var SortableObserver=Class.create({initialize:function(element,observer){this.element=$(element);this.observer=observer;this.lastValue=Sortable.serialize(this.element);},onStart:function(){this.lastValue=Sortable.serialize(this.element);},onEnd:function(){Sortable.unmark();if(this.lastValue!=Sortable.serialize(this.element))
this.observer(this.element)}});var Sortable={SERIALIZE_RULE:/^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,sortables:{},_findRootElement:function(element){while(element.tagName.toUpperCase()!="BODY"){if(element.id&&Sortable.sortables[element.id])return element;element=element.parentNode;}},options:function(element){element=Sortable._findRootElement($(element));if(!element)return;return Sortable.sortables[element.id];},destroy:function(element){var s=Sortable.options(element);if(s){Draggables.removeObserver(s.element);s.droppables.each(function(d){Droppables.remove(d)});s.draggables.invoke('destroy');delete Sortable.sortables[s.element.id];}},create:function(element){element=$(element);var options=Object.extend({element:element,tag:'li',dropOnEmpty:false,tree:false,treeTag:'ul',overlap:'vertical',constraint:'vertical',containment:element,handle:false,only:false,delay:0,hoverclass:null,ghosting:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,format:this.SERIALIZE_RULE,elements:false,handles:false,onChange:Prototype.emptyFunction,onUpdate:Prototype.emptyFunction},arguments[1]||{});this.destroy(element);var options_for_draggable={revert:true,quiet:options.quiet,scroll:options.scroll,scrollSpeed:options.scrollSpeed,scrollSensitivity:options.scrollSensitivity,delay:options.delay,ghosting:options.ghosting,constraint:options.constraint,handle:options.handle};if(options.starteffect)
options_for_draggable.starteffect=options.starteffect;if(options.reverteffect)
options_for_draggable.reverteffect=options.reverteffect;else
if(options.ghosting)options_for_draggable.reverteffect=function(element){element.style.top=0;element.style.left=0;};if(options.endeffect)
options_for_draggable.endeffect=options.endeffect;if(options.zindex)
options_for_draggable.zindex=options.zindex;var options_for_droppable={overlap:options.overlap,containment:options.containment,tree:options.tree,hoverclass:options.hoverclass,onHover:Sortable.onHover}
var options_for_tree={onHover:Sortable.onEmptyHover,overlap:options.overlap,containment:options.containment,hoverclass:options.hoverclass}
Element.cleanWhitespace(element);options.draggables=[];options.droppables=[];if(options.dropOnEmpty||options.tree){Droppables.add(element,options_for_tree);options.droppables.push(element);}
(options.elements||this.findElements(element,options)||[]).each(function(e,i){var handle=options.handles?$(options.handles[i]):(options.handle?$(e).select('.'+options.handle)[0]:e);options.draggables.push(new Draggable(e,Object.extend(options_for_draggable,{handle:handle})));Droppables.add(e,options_for_droppable);if(options.tree)e.treeNode=element;options.droppables.push(e);});if(options.tree){(Sortable.findTreeElements(element,options)||[]).each(function(e){Droppables.add(e,options_for_tree);e.treeNode=element;options.droppables.push(e);});}
this.sortables[element.id]=options;Draggables.addObserver(new SortableObserver(element,options.onUpdate));},findElements:function(element,options){return Element.findChildren(element,options.only,options.tree?true:false,options.tag);},findTreeElements:function(element,options){return Element.findChildren(element,options.only,options.tree?true:false,options.treeTag);},onHover:function(element,dropon,overlap){if(Element.isParent(dropon,element))return;if(overlap>.33&&overlap<.66&&Sortable.options(dropon).tree){return;}else if(overlap>0.5){Sortable.mark(dropon,'before');if(dropon.previousSibling!=element){var oldParentNode=element.parentNode;element.style.visibility="hidden";dropon.parentNode.insertBefore(element,dropon);if(dropon.parentNode!=oldParentNode)
Sortable.options(oldParentNode).onChange(element);Sortable.options(dropon.parentNode).onChange(element);}}else{Sortable.mark(dropon,'after');var nextElement=dropon.nextSibling||null;if(nextElement!=element){var oldParentNode=element.parentNode;element.style.visibility="hidden";dropon.parentNode.insertBefore(element,nextElement);if(dropon.parentNode!=oldParentNode)
Sortable.options(oldParentNode).onChange(element);Sortable.options(dropon.parentNode).onChange(element);}}},onEmptyHover:function(element,dropon,overlap){var oldParentNode=element.parentNode;var droponOptions=Sortable.options(dropon);if(!Element.isParent(dropon,element)){var index;var children=Sortable.findElements(dropon,{tag:droponOptions.tag,only:droponOptions.only});var child=null;if(children){var offset=Element.offsetSize(dropon,droponOptions.overlap)*(1.0-overlap);for(index=0;index<children.length;index+=1){if(offset-Element.offsetSize(children[index],droponOptions.overlap)>=0){offset-=Element.offsetSize(children[index],droponOptions.overlap);}else if(offset-(Element.offsetSize(children[index],droponOptions.overlap)/2)>=0){child=index+1<children.length?children[index+1]:null;break;}else{child=children[index];break;}}}
dropon.insertBefore(element,child);Sortable.options(oldParentNode).onChange(element);droponOptions.onChange(element);}},unmark:function(){if(Sortable._marker)Sortable._marker.hide();},mark:function(dropon,position){var sortable=Sortable.options(dropon.parentNode);if(sortable&&!sortable.ghosting)return;if(!Sortable._marker){Sortable._marker=($('dropmarker')||Element.extend(document.createElement('DIV'))).hide().addClassName('dropmarker').setStyle({position:'absolute'});document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);}
var offsets=Position.cumulativeOffset(dropon);Sortable._marker.setStyle({left:offsets[0]+'px',top:offsets[1]+'px'});if(position=='after')
if(sortable.overlap=='horizontal')
Sortable._marker.setStyle({left:(offsets[0]+dropon.clientWidth)+'px'});else
Sortable._marker.setStyle({top:(offsets[1]+dropon.clientHeight)+'px'});Sortable._marker.show();},_tree:function(element,options,parent){var children=Sortable.findElements(element,options)||[];for(var i=0;i<children.length;++i){var match=children[i].id.match(options.format);if(!match)continue;var child={id:encodeURIComponent(match?match[1]:null),element:element,parent:parent,children:[],position:parent.children.length,container:$(children[i]).down(options.treeTag)}
if(child.container)
this._tree(child.container,options,child)
parent.children.push(child);}
return parent;},tree:function(element){element=$(element);var sortableOptions=this.options(element);var options=Object.extend({tag:sortableOptions.tag,treeTag:sortableOptions.treeTag,only:sortableOptions.only,name:element.id,format:sortableOptions.format},arguments[1]||{});var root={id:null,parent:null,children:[],container:element,position:0}
return Sortable._tree(element,options,root);},_constructIndex:function(node){var index='';do{if(node.id)index='['+node.position+']'+index;}while((node=node.parent)!=null);return index;},sequence:function(element){element=$(element);var options=Object.extend(this.options(element),arguments[1]||{});return $(this.findElements(element,options)||[]).map(function(item){return item.id.match(options.format)?item.id.match(options.format)[1]:'';});},setSequence:function(element,new_sequence){element=$(element);var options=Object.extend(this.options(element),arguments[2]||{});var nodeMap={};this.findElements(element,options).each(function(n){if(n.id.match(options.format))
nodeMap[n.id.match(options.format)[1]]=[n,n.parentNode];n.parentNode.removeChild(n);});new_sequence.each(function(ident){var n=nodeMap[ident];if(n){n[1].appendChild(n[0]);delete nodeMap[ident];}});},serialize:function(element){element=$(element);var options=Object.extend(Sortable.options(element),arguments[1]||{});var name=encodeURIComponent((arguments[1]&&arguments[1].name)?arguments[1].name:element.id);if(options.tree){return Sortable.tree(element,arguments[1]).children.map(function(item){return[name+Sortable._constructIndex(item)+"[id]="+
encodeURIComponent(item.id)].concat(item.children.map(arguments.callee));}).flatten().join('&');}else{return Sortable.sequence(element,arguments[1]).map(function(item){return name+"[]="+encodeURIComponent(item);}).join('&');}}}
Element.isParent=function(child,element){if(!child.parentNode||child==element)return false;if(child.parentNode==element)return true;return Element.isParent(child.parentNode,element);}
Element.findChildren=function(element,only,recursive,tagName){if(!element.hasChildNodes())return null;tagName=tagName.toUpperCase();if(only)only=[only].flatten();var elements=[];$A(element.childNodes).each(function(e){if(e.tagName&&e.tagName.toUpperCase()==tagName&&(!only||(Element.classNames(e).detect(function(v){return only.include(v)}))))
elements.push(e);if(recursive){var grandchildren=Element.findChildren(e,only,recursive,tagName);if(grandchildren)elements.push(grandchildren);}});return(elements.length>0?elements.flatten():[]);}
Element.offsetSize=function(element,type){return element['offset'+((type=='vertical'||type=='height')?'Height':'Width')];};if(typeof Effect=='undefined')
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;this.entryCount=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;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,'<iframe id="'+this.update.id+'_iefix" '+'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" '+'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');this.iefix=$(this.update.id+'_iefix');}
if(this.iefix)setTimeout(this.fixIEOverlapping.bind(this),50);},fixIEOverlapping:function(){Position.clone(this.update,this.iefix,{setTop:(!this.update.style.height)});this.iefix.style.zIndex=1;this.update.style.zIndex=2;Element.show(this.iefix);},hide:function(){this.stopIndicator();if(Element.getStyle(this.update,'display')!='none')this.options.onHide(this.element,this.update);if(this.iefix)Element.hide(this.iefix);},startIndicator:function(){if(this.options.indicator)Element.show(this.options.indicator);},stopIndicator:function(){if(this.options.indicator)Element.hide(this.options.indicator);},onKeyPress:function(event){if(this.active)
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&&event.keyCode==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);},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);this.hasFocus=false;this.active=false;},render:function(){if(this.entryCount>0){for(var i=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)this.index--
else this.index=this.entryCount-1;this.getEntry(this.index).scrollIntoView(true);},markNext:function(){if(this.index<this.entryCount-1)this.index++
else this.index=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)value=Element.collectTextNodes(nodes[0],this.options.select);}else
value=Element.collectTextNodesIgnoreClass(selectedElement,'informal');var bounds=this.getTokenBounds();if(bounds[0]!=-1){var newValue=this.element.value.substr(0,bounds[0]);var whitespace=this.element.value.substr(bounds[0]).match(/^\s+/);if(whitespace)
newValue+=whitespace[0];this.element.value=newValue+value+this.element.value.substr(bounds[1]);}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;i<this.entryCount;i++){var entry=this.getEntry(i);entry.autocompleteIndex=i;this.addObservers(entry);}}else{this.entryCount=0;}
this.stopIndicator();this.index=0;if(this.entryCount==1&&this.options.autoSelect){this.selectEntry();this.hide();}else{this.render();}}},addObservers:function(element){Event.observe(element,"mouseover",this.onHover.bindAsEventListener(this));Event.observe(element,"click",this.onClick.bindAsEventListener(this));},onObserverEvent:function(){this.changed=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],bounds[1]).strip();},getTokenBounds:function(){if(null!=this.tokenBounds)return this.tokenBounds;var value=this.element.value;if(value.strip().empty())return[-1,0];var diff=arguments.callee.getFirstDifferencePos(value,this.oldElementValue);var offset=(diff==this.oldElementValue.length?1:0);var prevTokenPos=-1,nextTokenPos=value.length;var tp;for(var index=0,l=this.options.tokens.length;index<l;++index){tp=value.lastIndexOf(this.options.tokens[index],diff+offset-1);if(tp>prevTokenPos)prevTokenPos=tp;tp=value.indexOf(this.options.tokens[index],diff+offset);if(-1!=tp&&tp<nextTokenPos)nextTokenPos=tp;}
return(this.tokenBounds=[prevTokenPos+1,nextTokenPos]);}});Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos=function(newS,oldS){var boundary=Math.min(newS.length,oldS.length);for(var index=0;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+='&'+this.options.defaultParams;new Ajax.Request(this.url,this.options);},onComplete:function(request){this.updateChoices(request.responseText);}});Autocompleter.Local=Class.create(Autocompleter.Base,{initialize:function(element,update,array,options){this.baseInitialize(element,update,options);this.options.array=array;},getUpdatedChoices:function(){this.updateChoices(this.options.selector(this));},setOptions:function(options){this.options=Object.extend({choices:10,partialSearch:true,partialChars:2,ignoreCase:true,fullSearch:false,selector:function(instance){var ret=[];var partial=[];var entry=instance.getToken();var count=0;for(var i=0;i<instance.options.array.length&&ret.length<instance.options.choices;i++){var elem=instance.options.array[i];var foundPos=instance.options.ignoreCase?elem.toLowerCase().indexOf(entry.toLowerCase()):elem.indexOf(entry);while(foundPos!=-1){if(foundPos==0&&elem.length!=entry.length){ret.push("<li><strong>"+elem.substr(0,entry.length)+"</strong>"+
elem.substr(entry.length)+"</li>");break;}else if(entry.length>=instance.options.partialChars&&instance.options.partialSearch&&foundPos!=-1){if(instance.options.fullSearch||/\s/.test(elem.substr(foundPos-1,1))){partial.push("<li>"+elem.substr(0,foundPos)+"<strong>"+
elem.substr(foundPos,entry.length)+"</strong>"+elem.substr(foundPos+entry.length)+"</li>");break;}}
foundPos=instance.options.ignoreCase?elem.toLowerCase().indexOf(entry.toLowerCase(),foundPos+1):elem.indexOf(entry,foundPos+1);}}
if(partial.length)
ret=ret.concat(partial.slice(0,instance.options.choices-ret.length))
return"<ul>"+ret.join('')+"</ul>";}},options||{});}});Field.scrollFreeActivate=function(field){setTimeout(function(){Field.activate(field);},1);}
Ajax.InPlaceEditor=Class.create({initialize:function(element,url,options){this.url=url;this.element=element=$(element);this.prepareOptions();this._controls={};arguments.callee.dealWithDeprecatedOptions(options);Object.extend(this.options,options||{});if(!this.options.formId&&this.element.id){this.options.formId=this.element.id+'-inplaceeditor';if($(this.options.formId))
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>=this.options.rows&&!/\r|\n/.test(this.getText())){fld=document.createElement('input');fld.type='text';var size=this.options.size||this.options.cols||0;if(0<size)fld.size=size;}else{fld=document.createElement('textarea');fld.rows=(1>=this.options.rows?this.options.autoRows:this.options.rows);fld.cols=this.options.cols||40;}
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;},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;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===entry.length?entry:[entry,entry].flatten();});var marker=('value'in this.options)?this.options.value:this._text;var textFound=this._collection.any(function(entry){return entry[0]==marker;}.bind(this));this._controls.editor.update('');var option;this._collection.each(function(entry,index){option=document.createElement('option');option.value=entry[0];option.selected=textFound?entry[0]==marker:0==index;option.appendChild(document.createTextNode(entry[1]));this._controls.editor.appendChild(option);}.bind(this));this._controls.editor.disabled=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,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,savingClassName:'inplaceeditor-saving',savingText:'Saving...',size: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);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;this.step=parseInt(this.options.step||'1');this.range=this.options.range||$R(0,1);this.value=0;this.values=this.handles.map(function(){return 0});this.spans=this.options.spans?this.options.spans.map(function(s){return $(s)}):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].offsetHeight!=0?this.handles[0].offsetHeight:this.handles[0].style.height.replace(/px$/,"")):(this.handles[0].offsetWidth!=0?this.handles[0].offsetWidth:this.handles[0].style.width.replace(/px$/,""));this.active=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-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]-value);var newValue=this.allowedValues[0];this.allowedValues.each(function(v){var currentOffset=Math.abs(v-value);if(currentOffset<=offset){newValue=v;offset=currentOffset;}});return newValue;}
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;this.activeHandle=this.handles[this.activeHandleIdx];this.updateStyles();}
handleIdx=handleIdx||this.activeHandleIdx||0;if(this.initialized&&this.restricted){if((handleIdx>0)&&(sliderValue<this.values[handleIdx-1]))
sliderValue=this.values[handleIdx-1];if((handleIdx<(this.handles.length-1))&&(sliderValue>this.values[handleIdx+1]))
sliderValue=this.values[handleIdx+1];}
sliderValue=this.getNearestValue(sliderValue);this.values[handleIdx]=sliderValue;this.value=this.values[0];this.handles[handleIdx].style[this.isVertical()?'top':'left']=this.translateToPx(sliderValue);this.drawSpans();if(!this.dragging||!this.event)this.updateFinished();},setValueBy:function(delta,handleIdx){this.setValue(this.values[handleIdx||this.activeHandleIdx||0]+delta,handleIdx||this.activeHandleIdx||0);},translateToPx:function(value){return Math.round(((this.trackLength-this.handleLength)/(this.range.end-this.range.start))*(value-this.range.start))+"px";},translateToValue:function(offset){return((offset/(this.trackLength-this.handleLength)*(this.range.end-this.range.start))+this.range.start);},getRange:function(range){var v=this.values.sortBy(Prototype.K);range=range||0;return $R(v[range],v[range+1]);},minimumOffset:function(){return(this.isVertical()?this.alignY:this.alignX);},maximumOffset:function(){return(this.isVertical()?(this.track.offsetHeight!=0?this.track.offsetHeight:this.track.style.height.replace(/px$/,""))-this.alignY:(this.track.offsetWidth!=0?this.track.offsetWidth:this.track.style.width.replace(/px$/,""))-this.alignX);},isVertical:function(){return(this.axis=='vertical');},drawSpans:function(){var slider=this;if(this.spans)
$R(0,this.spans.length-1).each(function(r){slider.setSpan(slider.spans[r],slider.getRange(r))});if(this.options.startSpan)
this.setSpan(this.options.startSpan,$R(0,this.values.length>1?this.getRange(0).min():this.value));if(this.options.endSpan)
this.setSpan(this.options.endSpan,$R(this.values.length>1?this.getRange(this.spans.length-1).max():this.value,this.maximum));},setSpan:function(span,range){if(this.isVertical()){span.style.top=this.translateToPx(range.start);span.style.height=this.translateToPx(range.end-range.start+this.range.start);}else{span.style.left=this.translateToPx(range.start);span.style.width=this.translateToPx(range.end-range.start+this.range.start);}},updateStyles:function(){this.handles.each(function(h){Element.removeClassName(h,'selected')});Element.addClassName(this.activeHandle,'selected');},startDrag:function(event){if(Event.isLeftClick(event)){if(!this.disabled){this.active=true;var handle=Event.element(event);var pointer=[Event.pointerX(event),Event.pointerY(event)];var track=handle;if(track==this.track){var offsets=Position.cumulativeOffset(this.track);this.event=event;this.setValue(this.translateToValue((this.isVertical()?pointer[1]-offsets[1]:pointer[0]-offsets[0])-(this.handleLength/2)));var offsets=Position.cumulativeOffset(this.activeHandle);this.offsetX=(pointer[0]-offsets[0]);this.offsetY=(pointer[1]-offsets[1]);}else{while((this.handles.indexOf(handle)==-1)&&handle.parentNode)
handle=handle.parentNode;if(this.handles.indexOf(handle)!=-1){this.activeHandle=handle;this.activeHandleIdx=this.handles.indexOf(this.activeHandle);this.updateStyles();var offsets=Position.cumulativeOffset(this.activeHandle);this.offsetX=(pointer[0]-offsets[0]);this.offsetY=(pointer[1]-offsets[1]);}}}
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);Event.stop(event);}},draw:function(event){var pointer=[Event.pointerX(event),Event.pointerY(event)];var offsets=Position.cumulativeOffset(this.track);pointer[0]-=this.offsetX+offsets[0];pointer[1]-=this.offsetY+offsets[1];this.event=event;this.setValue(this.translateToValue(this.isVertical()?pointer[1]:pointer[0]));if(this.initialized&&this.options.onSlide)
this.options.onSlide(this.values.length>1?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?this.values:this.value,this);this.event=null;}});;var Window=Class.create();Window.keepMultiModalWindow=false;Window.hasEffectLib=(typeof Effect!='undefined');Window.resizeEffectDuration=0.4;Window.prototype={initialize:function(){var id;var optionIndex=0;if(arguments.length>0){if(typeof arguments[0]=="string"){id=arguments[0];optionIndex=1;}
else
id=arguments[0]?arguments[0].id:null;}
if(!id)
id="window_"+new Date().getTime();if($(id))
alert("Window "+id+" is already registered in the DOM! Make sure you use setDestroyOnClose() or destroyOnClose: true in the constructor");this.options=Object.extend({className:"dialog",blurClassName:null,minWidth:100,minHeight:20,resizable:true,closable:true,minimizable:true,maximizable:true,draggable:true,userData:null,showEffect:(Window.hasEffectLib?Effect.Appear:Element.show),hideEffect:(Window.hasEffectLib?Effect.Fade:Element.hide),showEffectOptions:{},hideEffectOptions:{},effectOptions:null,parent:document.body,title:"&nbsp;",url:null,onload:Prototype.emptyFunction,width:200,height:300,opacity:1,recenterAuto:true,wiredDrag:false,closeCallback:null,destroyOnClose:false,gridX:1,gridY:1},arguments[optionIndex]||{});if(this.options.blurClassName)
this.options.focusClassName=this.options.className;if(typeof this.options.top=="undefined"&&typeof this.options.bottom=="undefined")
this.options.top=this._round(Math.random()*500,this.options.gridY);if(typeof this.options.left=="undefined"&&typeof this.options.right=="undefined")
this.options.left=this._round(Math.random()*500,this.options.gridX);if(this.options.effectOptions){Object.extend(this.options.hideEffectOptions,this.options.effectOptions);Object.extend(this.options.showEffectOptions,this.options.effectOptions);if(this.options.showEffect==Element.Appear)
this.options.showEffectOptions.to=this.options.opacity;}
if(Window.hasEffectLib){if(this.options.showEffect==Effect.Appear)
this.options.showEffectOptions.to=this.options.opacity;if(this.options.hideEffect==Effect.Fade)
this.options.hideEffectOptions.from=this.options.opacity;}
if(this.options.hideEffect==Element.hide)
this.options.hideEffect=function(){Element.hide(this.element);if(this.options.destroyOnClose)this.destroy();}.bind(this)
if(this.options.parent!=document.body)
this.options.parent=$(this.options.parent);this.element=this._createWindow(id);this.element.win=this;this.eventMouseDown=this._initDrag.bindAsEventListener(this);this.eventMouseUp=this._endDrag.bindAsEventListener(this);this.eventMouseMove=this._updateDrag.bindAsEventListener(this);this.eventOnLoad=this._getWindowBorderSize.bindAsEventListener(this);this.eventMouseDownContent=this.toFront.bindAsEventListener(this);this.eventResize=this._recenter.bindAsEventListener(this);this.topbar=$(this.element.id+"_top");this.bottombar=$(this.element.id+"_bottom");this.content=$(this.element.id+"_content");Event.observe(this.topbar,"mousedown",this.eventMouseDown);Event.observe(this.bottombar,"mousedown",this.eventMouseDown);Event.observe(this.content,"mousedown",this.eventMouseDownContent);Event.observe(window,"load",this.eventOnLoad);Event.observe(window,"resize",this.eventResize);Event.observe(window,"scroll",this.eventResize);Event.observe(this.options.parent,"scroll",this.eventResize);if(this.options.draggable){var that=this;[this.topbar,this.topbar.up().previous(),this.topbar.up().next()].each(function(element){element.observe("mousedown",that.eventMouseDown);element.addClassName("top_draggable");});[this.bottombar.up(),this.bottombar.up().previous(),this.bottombar.up().next()].each(function(element){element.observe("mousedown",that.eventMouseDown);element.addClassName("bottom_draggable");});}
if(this.options.resizable){this.sizer=$(this.element.id+"_sizer");Event.observe(this.sizer,"mousedown",this.eventMouseDown);}
this.useLeft=null;this.useTop=null;if(typeof this.options.left!="undefined"){this.element.setStyle({left:parseFloat(this.options.left)+'px'});this.useLeft=true;}
else{this.element.setStyle({right:parseFloat(this.options.right)+'px'});this.useLeft=false;}
if(typeof this.options.top!="undefined"){this.element.setStyle({top:parseFloat(this.options.top)+'px'});this.useTop=true;}
else{this.element.setStyle({bottom:parseFloat(this.options.bottom)+'px'});this.useTop=false;}
this.storedLocation=null;this.setOpacity(this.options.opacity);if(this.options.zIndex)
this.setZIndex(this.options.zIndex)
if(this.options.destroyOnClose)
this.setDestroyOnClose(true);this._getWindowBorderSize();this.width=this.options.width;this.height=this.options.height;this.visible=false;this.constraint=false;this.constraintPad={top:0,left:0,bottom:0,right:0};if(this.width&&this.height)
this.setSize(this.options.width,this.options.height);this.setTitle(this.options.title)
Windows.register(this);},destroy:function(){this._notify("onDestroy");Event.stopObserving(this.topbar,"mousedown",this.eventMouseDown);Event.stopObserving(this.bottombar,"mousedown",this.eventMouseDown);Event.stopObserving(this.content,"mousedown",this.eventMouseDownContent);Event.stopObserving(window,"load",this.eventOnLoad);Event.stopObserving(window,"resize",this.eventResize);Event.stopObserving(window,"scroll",this.eventResize);Event.stopObserving(this.content,"load",this.options.onload);if(this._oldParent){var content=this.getContent();var originalContent=null;for(var i=0;i<content.childNodes.length;i++){originalContent=content.childNodes[i];if(originalContent.nodeType==1)
break;originalContent=null;}
if(originalContent)
this._oldParent.appendChild(originalContent);this._oldParent=null;}
if(this.sizer)
Event.stopObserving(this.sizer,"mousedown",this.eventMouseDown);if(this.options.url)
this.content.src=null
if(this.iefix)
Element.remove(this.iefix);Element.remove(this.element);Windows.unregister(this);},setCloseCallback:function(callback){this.options.closeCallback=callback;},getContent:function(){return this.content;},setContent:function(id,autoresize,autoposition){var element=$(id);if(null==element)throw"Unable to find element '"+id+"' in DOM";this._oldParent=element.parentNode;var d=null;var p=null;if(autoresize)
d=Element.getDimensions(element);if(autoposition)
p=Position.cumulativeOffset(element);var content=this.getContent();this.setHTMLContent("");content=this.getContent();content.appendChild(element);element.show();if(autoresize)
this.setSize(d.width,d.height);if(autoposition)
this.setLocation(p[1]-this.heightN,p[0]-this.widthW);},setHTMLContent:function(html){if(this.options.url){this.content.src=null;this.options.url=null;var content="<div id=\""+this.getId()+"_content\" class=\""+this.options.className+"_content\"> </div>";$(this.getId()+"_table_content").innerHTML=content;this.content=$(this.element.id+"_content");}
this.getContent().innerHTML=html;},setAjaxContent:function(url,options,showCentered,showModal){this.showFunction=showCentered?"showCenter":"show";this.showModal=showModal||false;options=options||{};this.setHTMLContent("");this.onComplete=options.onComplete;if(!this._onCompleteHandler)
this._onCompleteHandler=this._setAjaxContent.bind(this);options.onComplete=this._onCompleteHandler;new Ajax.Request(url,options);options.onComplete=this.onComplete;},_setAjaxContent:function(originalRequest){Element.update(this.getContent(),originalRequest.responseText);if(this.onComplete)
this.onComplete(originalRequest);this.onComplete=null;this[this.showFunction](this.showModal)},setURL:function(url){if(this.options.url)
this.content.src=null;this.options.url=url;var content="<iframe frameborder='0' name='"+this.getId()+"_content'  id='"+this.getId()+"_content' src='"+url+"' width='"+this.width+"' height='"+this.height+"'> </iframe>";$(this.getId()+"_table_content").innerHTML=content;this.content=$(this.element.id+"_content");},getURL:function(){return this.options.url?this.options.url:null;},refresh:function(){if(this.options.url)
$(this.element.getAttribute('id')+'_content').src=this.options.url;},setCookie:function(name,expires,path,domain,secure){name=name||this.element.id;this.cookie=[name,expires,path,domain,secure];var value=WindowUtilities.getCookie(name)
if(value){var values=value.split(',');var x=values[0].split(':');var y=values[1].split(':');var w=parseFloat(values[2]),h=parseFloat(values[3]);var mini=values[4];var maxi=values[5];this.setSize(w,h);if(mini=="true")
this.doMinimize=true;else if(maxi=="true")
this.doMaximize=true;this.useLeft=x[0]=="l";this.useTop=y[0]=="t";this.element.setStyle(this.useLeft?{left:x[1]}:{right:x[1]});this.element.setStyle(this.useTop?{top:y[1]}:{bottom:y[1]});}},getId:function(){return this.element.id;},setDestroyOnClose:function(){this.options.destroyOnClose=true;},setConstraint:function(bool,padding){this.constraint=bool;this.constraintPad=Object.extend(this.constraintPad,padding||{});if(this.useTop&&this.useLeft)
this.setLocation(parseFloat(this.element.style.top),parseFloat(this.element.style.left));},_initDrag:function(event){if(Event.element(event)==this.sizer&&this.isMinimized())
return;if(Event.element(event)!=this.sizer&&this.isMaximized())
return;if(Prototype.Browser.IE&&this.heightN==0)
this._getWindowBorderSize();this.pointer=[this._round(Event.pointerX(event),this.options.gridX),this._round(Event.pointerY(event),this.options.gridY)];if(this.options.wiredDrag)
this.currentDrag=this._createWiredElement();else
this.currentDrag=this.element;if(Event.element(event)==this.sizer){this.doResize=true;this.widthOrg=this.width;this.heightOrg=this.height;this.bottomOrg=parseFloat(this.element.getStyle('bottom'));this.rightOrg=parseFloat(this.element.getStyle('right'));this._notify("onStartResize");}
else{this.doResize=false;var closeButton=$(this.getId()+'_close');if(closeButton&&Position.within(closeButton,this.pointer[0],this.pointer[1])){this.currentDrag=null;return;}
this.toFront();if(!this.options.draggable)
return;this._notify("onStartMove");}
Event.observe(document,"mouseup",this.eventMouseUp,false);Event.observe(document,"mousemove",this.eventMouseMove,false);WindowUtilities.disableScreen('__invisible__','__invisible__',this.overlayOpacity);document.body.ondrag=function(){return false;};document.body.onselectstart=function(){return false;};this.currentDrag.show();Event.stop(event);},_round:function(val,round){return round==1?val:val=Math.floor(val/round)*round;},_updateDrag:function(event){var pointer=[this._round(Event.pointerX(event),this.options.gridX),this._round(Event.pointerY(event),this.options.gridY)];var dx=pointer[0]-this.pointer[0];var dy=pointer[1]-this.pointer[1];if(this.doResize){var w=this.widthOrg+dx;var h=this.heightOrg+dy;dx=this.width-this.widthOrg
dy=this.height-this.heightOrg
if(this.useLeft)
w=this._updateWidthConstraint(w)
else
this.currentDrag.setStyle({right:(this.rightOrg-dx)+'px'});if(this.useTop)
h=this._updateHeightConstraint(h)
else
this.currentDrag.setStyle({bottom:(this.bottomOrg-dy)+'px'});this.setSize(w,h);this._notify("onResize");}
else{this.pointer=pointer;if(this.useLeft){var left=parseFloat(this.currentDrag.getStyle('left'))+dx;var newLeft=this._updateLeftConstraint(left);this.pointer[0]+=newLeft-left;this.currentDrag.setStyle({left:newLeft+'px'});}
else
this.currentDrag.setStyle({right:parseFloat(this.currentDrag.getStyle('right'))-dx+'px'});if(this.useTop){var top=parseFloat(this.currentDrag.getStyle('top'))+dy;var newTop=this._updateTopConstraint(top);this.pointer[1]+=newTop-top;this.currentDrag.setStyle({top:newTop+'px'});}
else
this.currentDrag.setStyle({bottom:parseFloat(this.currentDrag.getStyle('bottom'))-dy+'px'});this._notify("onMove");}
if(this.iefix)
this._fixIEOverlapping();this._removeStoreLocation();Event.stop(event);},_endDrag:function(event){WindowUtilities.enableScreen('__invisible__');if(this.doResize)
this._notify("onEndResize");else
this._notify("onEndMove");Event.stopObserving(document,"mouseup",this.eventMouseUp,false);Event.stopObserving(document,"mousemove",this.eventMouseMove,false);Event.stop(event);this._hideWiredElement();this._saveCookie()
document.body.ondrag=null;document.body.onselectstart=null;},_updateLeftConstraint:function(left){if(this.constraint&&this.useLeft&&this.useTop){var width=this.options.parent==document.body?WindowUtilities.getPageSize().windowWidth:this.options.parent.getDimensions().width;if(left<this.constraintPad.left)
left=this.constraintPad.left;if(left+this.width+this.widthE+this.widthW>width-this.constraintPad.right)
left=width-this.constraintPad.right-this.width-this.widthE-this.widthW;}
return left;},_updateTopConstraint:function(top){if(this.constraint&&this.useLeft&&this.useTop){var height=this.options.parent==document.body?WindowUtilities.getPageSize().windowHeight:this.options.parent.getDimensions().height;var h=this.height+this.heightN+this.heightS;if(top<this.constraintPad.top)
top=this.constraintPad.top;if(top+h>height-this.constraintPad.bottom)
top=height-this.constraintPad.bottom-h;}
return top;},_updateWidthConstraint:function(w){if(this.constraint&&this.useLeft&&this.useTop){var width=this.options.parent==document.body?WindowUtilities.getPageSize().windowWidth:this.options.parent.getDimensions().width;var left=parseFloat(this.element.getStyle("left"));if(left+w+this.widthE+this.widthW>width-this.constraintPad.right)
w=width-this.constraintPad.right-left-this.widthE-this.widthW;}
return w;},_updateHeightConstraint:function(h){if(this.constraint&&this.useLeft&&this.useTop){var height=this.options.parent==document.body?WindowUtilities.getPageSize().windowHeight:this.options.parent.getDimensions().height;var top=parseFloat(this.element.getStyle("top"));if(top+h+this.heightN+this.heightS>height-this.constraintPad.bottom)
h=height-this.constraintPad.bottom-top-this.heightN-this.heightS;}
return h;},_createWindow:function(id){var className=this.options.className;var win=document.createElement("div");win.setAttribute('id',id);win.className="dialog";var content;if(this.options.url)
content="<iframe frameborder=\"0\" name=\""+id+"_content\"  id=\""+id+"_content\" src=\""+this.options.url+"\"> </iframe>";else
content="<div id=\""+id+"_content\" class=\""+className+"_content\"> </div>";var closeDiv=this.options.closable?"<div class='"+className+"_close' id='"+id+"_close' onclick='Windows.close(\""+id+"\", event)'> </div>":"";var minDiv=this.options.minimizable?"<div class='"+className+"_minimize' id='"+id+"_minimize' onclick='Windows.minimize(\""+id+"\", event)'> </div>":"";var maxDiv=this.options.maximizable?"<div class='"+className+"_maximize' id='"+id+"_maximize' onclick='Windows.maximize(\""+id+"\", event)'> </div>":"";var seAttributes=this.options.resizable?"class='"+className+"_sizer' id='"+id+"_sizer'":"class='"+className+"_se'";var blank="../themes/default/blank.gif";win.innerHTML=closeDiv+minDiv+maxDiv+"\
      <table id='"+id+"_row1' class=\"top table_window\">\
        <tr>\
          <td class='"+className+"_nw'></td>\
          <td class='"+className+"_n'><div id='"+id+"_top' class='"+className+"_title title_window'>"+this.options.title+"</div></td>\
          <td class='"+className+"_ne'></td>\
        </tr>\
      </table>\
      <table id='"+id+"_row2' class=\"mid table_window\">\
        <tr>\
          <td class='"+className+"_w'></td>\
            <td id='"+id+"_table_content' class='"+className+"_content' valign='top'>"+content+"</td>\
          <td class='"+className+"_e'></td>\
        </tr>\
      </table>\
        <table id='"+id+"_row3' class=\"bot table_window\">\
        <tr>\
          <td class='"+className+"_sw'></td>\
            <td class='"+className+"_s'><div id='"+id+"_bottom' class='status_bar'><span style='float:left; width:1px; height:1px'></span></div></td>\
            <td "+seAttributes+"></td>\
        </tr>\
      </table>\
    ";Element.hide(win);this.options.parent.insertBefore(win,this.options.parent.firstChild);Event.observe($(id+"_content"),"load",this.options.onload);return win;},changeClassName:function(newClassName){var className=this.options.className;var id=this.getId();$A(["_close","_minimize","_maximize","_sizer","_content"]).each(function(value){this._toggleClassName($(id+value),className+value,newClassName+value)}.bind(this));this._toggleClassName($(id+"_top"),className+"_title",newClassName+"_title");$$("#"+id+" td").each(function(td){td.className=td.className.sub(className,newClassName);});this.options.className=newClassName;},_toggleClassName:function(element,oldClassName,newClassName){if(element){element.removeClassName(oldClassName);element.addClassName(newClassName);}},setLocation:function(top,left){top=this._updateTopConstraint(top);left=this._updateLeftConstraint(left);var e=this.currentDrag||this.element;e.setStyle({top:top+'px'});e.setStyle({left:left+'px'});this.useLeft=true;this.useTop=true;},getLocation:function(){var location={};if(this.useTop)
location=Object.extend(location,{top:this.element.getStyle("top")});else
location=Object.extend(location,{bottom:this.element.getStyle("bottom")});if(this.useLeft)
location=Object.extend(location,{left:this.element.getStyle("left")});else
location=Object.extend(location,{right:this.element.getStyle("right")});return location;},getSize:function(){return{width:this.width,height:this.height};},setSize:function(width,height,useEffect){width=parseFloat(width);height=parseFloat(height);if(!this.minimized&&width<this.options.minWidth)
width=this.options.minWidth;if(!this.minimized&&height<this.options.minHeight)
height=this.options.minHeight;if(this.options.maxHeight&&height>this.options.maxHeight)
height=this.options.maxHeight;if(this.options.maxWidth&&width>this.options.maxWidth)
width=this.options.maxWidth;if(this.useTop&&this.useLeft&&Window.hasEffectLib&&Effect.ResizeWindow&&useEffect){new Effect.ResizeWindow(this,null,null,width,height,{duration:Window.resizeEffectDuration});}else{this.width=width;this.height=height;var e=this.currentDrag?this.currentDrag:this.element;e.setStyle({width:width+this.widthW+this.widthE+"px"})
e.setStyle({height:height+this.heightN+this.heightS+"px"})
if(!this.currentDrag||this.currentDrag==this.element){var content=$(this.element.id+'_content');content.setStyle({height:height+'px'});content.setStyle({width:width+'px'});}}},updateHeight:function(){this.setSize(this.width,this.content.scrollHeight,true);},updateWidth:function(){this.setSize(this.content.scrollWidth,this.height,true);},toFront:function(){if(this.element.style.zIndex<Windows.maxZIndex)
this.setZIndex(Windows.maxZIndex+1);if(this.iefix)
this._fixIEOverlapping();},getBounds:function(insideOnly){if(!this.width||!this.height||!this.visible)
this.computeBounds();var w=this.width;var h=this.height;if(!insideOnly){w+=this.widthW+this.widthE;h+=this.heightN+this.heightS;}
var bounds=Object.extend(this.getLocation(),{width:w+"px",height:h+"px"});return bounds;},computeBounds:function(){if(!this.width||!this.height){var size=WindowUtilities._computeSize(this.content.innerHTML,this.content.id,this.width,this.height,0,this.options.className)
if(this.height)
this.width=size+5
else
this.height=size+5}
this.setSize(this.width,this.height);if(this.centered)
this._center(this.centerTop,this.centerLeft);},show:function(modal){this.visible=true;if(modal){if(typeof this.overlayOpacity=="undefined"){var that=this;setTimeout(function(){that.show(modal)},10);return;}
Windows.addModalWindow(this);this.modal=true;this.setZIndex(Windows.maxZIndex+1);Windows.unsetOverflow(this);}
else
if(!this.element.style.zIndex)
this.setZIndex(Windows.maxZIndex+1);if(this.oldStyle)
this.getContent().setStyle({overflow:this.oldStyle});this.computeBounds();this._notify("onBeforeShow");if(this.options.showEffect!=Element.show&&this.options.showEffectOptions)
this.options.showEffect(this.element,this.options.showEffectOptions);else
this.options.showEffect(this.element);this._checkIEOverlapping();WindowUtilities.focusedWindow=this
this._notify("onShow");},showCenter:function(modal,top,left){this.centered=true;this.centerTop=top;this.centerLeft=left;this.show(modal);},isVisible:function(){return this.visible;},_center:function(top,left){var windowScroll=WindowUtilities.getWindowScroll(this.options.parent);var pageSize=WindowUtilities.getPageSize(this.options.parent);if(typeof top=="undefined")
top=(pageSize.windowHeight-(this.height+this.heightN+this.heightS))/2;top+=windowScroll.top
if(typeof left=="undefined")
left=(pageSize.windowWidth-(this.width+this.widthW+this.widthE))/2;left+=windowScroll.left
this.setLocation(top,left);this.toFront();},_recenter:function(event){if(this.centered){var pageSize=WindowUtilities.getPageSize(this.options.parent);var windowScroll=WindowUtilities.getWindowScroll(this.options.parent);if(this.pageSize&&this.pageSize.windowWidth==pageSize.windowWidth&&this.pageSize.windowHeight==pageSize.windowHeight&&this.windowScroll.left==windowScroll.left&&this.windowScroll.top==windowScroll.top)
return;this.pageSize=pageSize;this.windowScroll=windowScroll;if($('overlay_modal'))
$('overlay_modal').setStyle({height:(pageSize.pageHeight+'px')});if(this.options.recenterAuto)
this._center(this.centerTop,this.centerLeft);}},hide:function(){this.visible=false;if(this.modal){Windows.removeModalWindow(this);Windows.resetOverflow();}
this.oldStyle=this.getContent().getStyle('overflow')||"auto"
this.getContent().setStyle({overflow:"hidden"});this.options.hideEffect(this.element,this.options.hideEffectOptions);if(this.iefix)
this.iefix.hide();if(!this.doNotNotifyHide)
this._notify("onHide");},close:function(){if(this.visible){if(this.options.closeCallback&&!this.options.closeCallback(this))
return;if(this.options.destroyOnClose){var destroyFunc=this.destroy.bind(this);if(this.options.hideEffectOptions.afterFinish){var func=this.options.hideEffectOptions.afterFinish;this.options.hideEffectOptions.afterFinish=function(){func();destroyFunc()}}
else
this.options.hideEffectOptions.afterFinish=function(){destroyFunc()}}
Windows.updateFocusedWindow();this.doNotNotifyHide=true;this.hide();this.doNotNotifyHide=false;this._notify("onClose");}},minimize:function(){if(this.resizing)
return;var r2=$(this.getId()+"_row2");if(!this.minimized){this.minimized=true;var dh=r2.getDimensions().height;this.r2Height=dh;var h=this.element.getHeight()-dh;if(this.useLeft&&this.useTop&&Window.hasEffectLib&&Effect.ResizeWindow){new Effect.ResizeWindow(this,null,null,null,this.height-dh,{duration:Window.resizeEffectDuration});}else{this.height-=dh;this.element.setStyle({height:h+"px"});r2.hide();}
if(!this.useTop){var bottom=parseFloat(this.element.getStyle('bottom'));this.element.setStyle({bottom:(bottom+dh)+'px'});}}
else{this.minimized=false;var dh=this.r2Height;this.r2Height=null;if(this.useLeft&&this.useTop&&Window.hasEffectLib&&Effect.ResizeWindow){new Effect.ResizeWindow(this,null,null,null,this.height+dh,{duration:Window.resizeEffectDuration});}
else{var h=this.element.getHeight()+dh;this.height+=dh;this.element.setStyle({height:h+"px"})
r2.show();}
if(!this.useTop){var bottom=parseFloat(this.element.getStyle('bottom'));this.element.setStyle({bottom:(bottom-dh)+'px'});}
this.toFront();}
this._notify("onMinimize");this._saveCookie()},maximize:function(){if(this.isMinimized()||this.resizing)
return;if(Prototype.Browser.IE&&this.heightN==0)
this._getWindowBorderSize();if(this.storedLocation!=null){this._restoreLocation();if(this.iefix)
this.iefix.hide();}
else{this._storeLocation();Windows.unsetOverflow(this);var windowScroll=WindowUtilities.getWindowScroll(this.options.parent);var pageSize=WindowUtilities.getPageSize(this.options.parent);var left=windowScroll.left;var top=windowScroll.top;if(this.options.parent!=document.body){windowScroll={top:0,left:0,bottom:0,right:0};var dim=this.options.parent.getDimensions();pageSize.windowWidth=dim.width;pageSize.windowHeight=dim.height;top=0;left=0;}
if(this.constraint){pageSize.windowWidth-=Math.max(0,this.constraintPad.left)+Math.max(0,this.constraintPad.right);pageSize.windowHeight-=Math.max(0,this.constraintPad.top)+Math.max(0,this.constraintPad.bottom);left+=Math.max(0,this.constraintPad.left);top+=Math.max(0,this.constraintPad.top);}
var width=pageSize.windowWidth-this.widthW-this.widthE;var height=pageSize.windowHeight-this.heightN-this.heightS;if(this.useLeft&&this.useTop&&Window.hasEffectLib&&Effect.ResizeWindow){new Effect.ResizeWindow(this,top,left,width,height,{duration:Window.resizeEffectDuration});}
else{this.setSize(width,height);this.element.setStyle(this.useLeft?{left:left}:{right:left});this.element.setStyle(this.useTop?{top:top}:{bottom:top});}
this.toFront();if(this.iefix)
this._fixIEOverlapping();}
this._notify("onMaximize");this._saveCookie()},isMinimized:function(){return this.minimized;},isMaximized:function(){return(this.storedLocation!=null);},setOpacity:function(opacity){if(Element.setOpacity)
Element.setOpacity(this.element,opacity);},setZIndex:function(zindex){this.element.setStyle({zIndex:zindex});Windows.updateZindex(zindex,this);},setTitle:function(newTitle){if(!newTitle||newTitle=="")
newTitle="&nbsp;";Element.update(this.element.id+'_top',newTitle);},getTitle:function(){return $(this.element.id+'_top').innerHTML;},setStatusBar:function(element){var statusBar=$(this.getId()+"_bottom");if(typeof(element)=="object"){if(this.bottombar.firstChild)
this.bottombar.replaceChild(element,this.bottombar.firstChild);else
this.bottombar.appendChild(element);}
else
this.bottombar.innerHTML=element;},_checkIEOverlapping:function(){if(!this.iefix&&(navigator.appVersion.indexOf('MSIE')>0)&&(navigator.userAgent.indexOf('Opera')<0)&&(this.element.getStyle('position')=='absolute')){new Insertion.After(this.element.id,'<iframe id="'+this.element.id+'_iefix" '+'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" '+'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');this.iefix=$(this.element.id+'_iefix');}
if(this.iefix)
setTimeout(this._fixIEOverlapping.bind(this),50);},_fixIEOverlapping:function(){},_getWindowBorderSize:function(event){var div=this._createHiddenDiv(this.options.className+"_n")
this.heightN=Element.getDimensions(div).height;div.parentNode.removeChild(div)
var div=this._createHiddenDiv(this.options.className+"_s")
this.heightS=Element.getDimensions(div).height;div.parentNode.removeChild(div)
var div=this._createHiddenDiv(this.options.className+"_e")
this.widthE=Element.getDimensions(div).width;div.parentNode.removeChild(div)
var div=this._createHiddenDiv(this.options.className+"_w")
this.widthW=Element.getDimensions(div).width;div.parentNode.removeChild(div);var div=document.createElement("div");div.className="overlay_"+this.options.className;document.body.appendChild(div);var that=this;setTimeout(function(){that.overlayOpacity=($(div).getStyle("opacity"));div.parentNode.removeChild(div);},10);if(Prototype.Browser.IE){this.heightS=$(this.getId()+"_row3").getDimensions().height;this.heightN=$(this.getId()+"_row1").getDimensions().height;}
if(Prototype.Browser.WebKit&&Prototype.Browser.WebKitVersion<420)
this.setSize(this.width,this.height);if(this.doMaximize)
this.maximize();if(this.doMinimize)
this.minimize();},_createHiddenDiv:function(className){var objBody=document.body;var win=document.createElement("div");win.setAttribute('id',this.element.id+"_tmp");win.className=className;win.style.display='none';win.innerHTML='';objBody.insertBefore(win,objBody.firstChild);return win;},_storeLocation:function(){if(this.storedLocation==null){this.storedLocation={useTop:this.useTop,useLeft:this.useLeft,top:this.element.getStyle('top'),bottom:this.element.getStyle('bottom'),left:this.element.getStyle('left'),right:this.element.getStyle('right'),width:this.width,height:this.height};}},_restoreLocation:function(){if(this.storedLocation!=null){this.useLeft=this.storedLocation.useLeft;this.useTop=this.storedLocation.useTop;if(this.useLeft&&this.useTop&&Window.hasEffectLib&&Effect.ResizeWindow)
new Effect.ResizeWindow(this,this.storedLocation.top,this.storedLocation.left,this.storedLocation.width,this.storedLocation.height,{duration:Window.resizeEffectDuration});else{this.element.setStyle(this.useLeft?{left:this.storedLocation.left}:{right:this.storedLocation.right});this.element.setStyle(this.useTop?{top:this.storedLocation.top}:{bottom:this.storedLocation.bottom});this.setSize(this.storedLocation.width,this.storedLocation.height);}
Windows.resetOverflow();this._removeStoreLocation();}},_removeStoreLocation:function(){this.storedLocation=null;},_saveCookie:function(){if(this.cookie){var value="";if(this.useLeft)
value+="l:"+(this.storedLocation?this.storedLocation.left:this.element.getStyle('left'))
else
value+="r:"+(this.storedLocation?this.storedLocation.right:this.element.getStyle('right'))
if(this.useTop)
value+=",t:"+(this.storedLocation?this.storedLocation.top:this.element.getStyle('top'))
else
value+=",b:"+(this.storedLocation?this.storedLocation.bottom:this.element.getStyle('bottom'))
value+=","+(this.storedLocation?this.storedLocation.width:this.width);value+=","+(this.storedLocation?this.storedLocation.height:this.height);value+=","+this.isMinimized();value+=","+this.isMaximized();WindowUtilities.setCookie(value,this.cookie)}},_createWiredElement:function(){if(!this.wiredElement){if(Prototype.Browser.IE)
this._getWindowBorderSize();var div=document.createElement("div");div.className="wired_frame "+this.options.className+"_wired_frame";div.style.position='absolute';this.options.parent.insertBefore(div,this.options.parent.firstChild);this.wiredElement=$(div);}
if(this.useLeft)
this.wiredElement.setStyle({left:this.element.getStyle('left')});else
this.wiredElement.setStyle({right:this.element.getStyle('right')});if(this.useTop)
this.wiredElement.setStyle({top:this.element.getStyle('top')});else
this.wiredElement.setStyle({bottom:this.element.getStyle('bottom')});var dim=this.element.getDimensions();this.wiredElement.setStyle({width:dim.width+"px",height:dim.height+"px"});this.wiredElement.setStyle({zIndex:Windows.maxZIndex+30});return this.wiredElement;},_hideWiredElement:function(){if(!this.wiredElement||!this.currentDrag)
return;if(this.currentDrag==this.element)
this.currentDrag=null;else{if(this.useLeft)
this.element.setStyle({left:this.currentDrag.getStyle('left')});else
this.element.setStyle({right:this.currentDrag.getStyle('right')});if(this.useTop)
this.element.setStyle({top:this.currentDrag.getStyle('top')});else
this.element.setStyle({bottom:this.currentDrag.getStyle('bottom')});this.currentDrag.hide();this.currentDrag=null;if(this.doResize)
this.setSize(this.width,this.height);}},_notify:function(eventName){if(this.options[eventName])
this.options[eventName](this);else
Windows.notify(eventName,this);}};var Windows={windows:[],modalWindows:[],observers:[],focusedWindow:null,maxZIndex:0,overlayShowEffectOptions:{duration:0.5},overlayHideEffectOptions:{duration:0.5},addObserver:function(observer){this.removeObserver(observer);this.observers.push(observer);},removeObserver:function(observer){this.observers=this.observers.reject(function(o){return o==observer});},notify:function(eventName,win){this.observers.each(function(o){if(o[eventName])o[eventName](eventName,win);});},getWindow:function(id){return this.windows.detect(function(d){return d.getId()==id});},getFocusedWindow:function(){return this.focusedWindow;},updateFocusedWindow:function(){this.focusedWindow=this.windows.length>=2?this.windows[this.windows.length-2]:null;},register:function(win){this.windows.push(win);},addModalWindow:function(win){if(this.modalWindows.length==0){WindowUtilities.disableScreen(win.options.className,'overlay_modal',win.overlayOpacity,win.getId(),win.options.parent);}
else{if(Window.keepMultiModalWindow){$('overlay_modal').style.zIndex=Windows.maxZIndex+1;Windows.maxZIndex+=1;WindowUtilities._hideSelect(this.modalWindows.last().getId());}
else
this.modalWindows.last().element.hide();WindowUtilities._showSelect(win.getId());}
this.modalWindows.push(win);},removeModalWindow:function(win){this.modalWindows.pop();if(this.modalWindows.length==0)
WindowUtilities.enableScreen();else{if(Window.keepMultiModalWindow){this.modalWindows.last().toFront();WindowUtilities._showSelect(this.modalWindows.last().getId());}
else
this.modalWindows.last().element.show();}},register:function(win){this.windows.push(win);},unregister:function(win){this.windows=this.windows.reject(function(d){return d==win});},closeAll:function(){this.windows.each(function(w){Windows.close(w.getId())});},closeAllModalWindows:function(){WindowUtilities.enableScreen();this.modalWindows.each(function(win){if(win)win.close()});},minimize:function(id,event){var win=this.getWindow(id)
if(win&&win.visible)
win.minimize();Event.stop(event);},maximize:function(id,event){var win=this.getWindow(id)
if(win&&win.visible)
win.maximize();Event.stop(event);},close:function(id,event){var win=this.getWindow(id);if(win)
win.close();if(event)
Event.stop(event);},blur:function(id){var win=this.getWindow(id);if(!win)
return;if(win.options.blurClassName)
win.changeClassName(win.options.blurClassName);if(this.focusedWindow==win)
this.focusedWindow=null;win._notify("onBlur");},focus:function(id){var win=this.getWindow(id);if(!win)
return;if(this.focusedWindow)
this.blur(this.focusedWindow.getId())
if(win.options.focusClassName)
win.changeClassName(win.options.focusClassName);this.focusedWindow=win;win._notify("onFocus");},unsetOverflow:function(except){this.windows.each(function(d){d.oldOverflow=d.getContent().getStyle("overflow")||"auto";d.getContent().setStyle({overflow:"hidden"})});if(except&&except.oldOverflow)
except.getContent().setStyle({overflow:except.oldOverflow});},resetOverflow:function(){this.windows.each(function(d){if(d.oldOverflow)d.getContent().setStyle({overflow:d.oldOverflow})});},updateZindex:function(zindex,win){if(zindex>this.maxZIndex){this.maxZIndex=zindex;if(this.focusedWindow)
this.blur(this.focusedWindow.getId())}
this.focusedWindow=win;if(this.focusedWindow)
this.focus(this.focusedWindow.getId())}};var Dialog={dialogId:null,onCompleteFunc:null,callFunc:null,parameters:null,confirm:function(content,parameters){if(content&&typeof content!="string"){Dialog._runAjaxRequest(content,parameters,Dialog.confirm);return}
content=content||"";parameters=parameters||{};var okLabel=parameters.okLabel?parameters.okLabel:"Ok";var cancelLabel=parameters.cancelLabel?parameters.cancelLabel:"Cancel";parameters=Object.extend(parameters,parameters.windowParameters||{});parameters.windowParameters=parameters.windowParameters||{};parameters.className=parameters.className||"alert";var okButtonClass="class ='"+(parameters.buttonClass?parameters.buttonClass+" ":"")+" ok_button'"
var cancelButtonClass="class ='"+(parameters.buttonClass?parameters.buttonClass+" ":"")+" cancel_button'"
var content="\
      <div class='"+parameters.className+"_message'>"+content+"</div>\
        <div class='"+parameters.className+"_buttons'>\
          <input type='button' value='"+okLabel+"' onclick='Dialog.okCallback()' "+okButtonClass+"/>\
          <input type='button' value='"+cancelLabel+"' onclick='Dialog.cancelCallback()' "+cancelButtonClass+"/>\
        </div>\
    ";return this._openDialog(content,parameters)},alert:function(content,parameters){if(content&&typeof content!="string"){Dialog._runAjaxRequest(content,parameters,Dialog.alert);return}
content=content||"";parameters=parameters||{};var okLabel=parameters.okLabel?parameters.okLabel:"Ok";parameters=Object.extend(parameters,parameters.windowParameters||{});parameters.windowParameters=parameters.windowParameters||{};parameters.className=parameters.className||"alert";var okButtonClass="class ='"+(parameters.buttonClass?parameters.buttonClass+" ":"")+" ok_button'"
var content="\
      <div class='"+parameters.className+"_message'>"+content+"</div>\
        <div class='"+parameters.className+"_buttons'>\
          <input type='button' value='"+okLabel+"' onclick='Dialog.okCallback()' "+okButtonClass+"/>\
        </div>";return this._openDialog(content,parameters)},info:function(content,parameters){if(content&&typeof content!="string"){Dialog._runAjaxRequest(content,parameters,Dialog.info);return}
content=content||"";parameters=parameters||{};parameters=Object.extend(parameters,parameters.windowParameters||{});parameters.windowParameters=parameters.windowParameters||{};parameters.className=parameters.className||"alert";var content="<div id='modal_dialog_message' class='"+parameters.className+"_message'>"+content+"</div>";if(parameters.showProgress)
content+="<div id='modal_dialog_progress' class='"+parameters.className+"_progress'>  </div>";parameters.ok=null;parameters.cancel=null;return this._openDialog(content,parameters)},setInfoMessage:function(message){$('modal_dialog_message').update(message);},closeInfo:function(){Windows.close(this.dialogId);},_openDialog:function(content,parameters){var className=parameters.className;if(!parameters.height&&!parameters.width){parameters.width=WindowUtilities.getPageSize(parameters.options.parent||document.body).pageWidth/2;}
if(parameters.id)
this.dialogId=parameters.id;else{var t=new Date();this.dialogId='modal_dialog_'+t.getTime();parameters.id=this.dialogId;}
if(!parameters.height||!parameters.width){var size=WindowUtilities._computeSize(content,this.dialogId,parameters.width,parameters.height,5,className)
if(parameters.height)
parameters.width=size+5
else
parameters.height=size+5}
parameters.effectOptions=parameters.effectOptions;parameters.resizable=parameters.resizable||false;parameters.minimizable=parameters.minimizable||false;parameters.maximizable=parameters.maximizable||false;parameters.draggable=parameters.draggable||false;parameters.closable=parameters.closable||false;var win=new Window(parameters);win.getContent().innerHTML=content;win.showCenter(true,parameters.top,parameters.left);win.setDestroyOnClose();win.cancelCallback=parameters.onCancel||parameters.cancel;win.okCallback=parameters.onOk||parameters.ok;return win;},_getAjaxContent:function(originalRequest){Dialog.callFunc(originalRequest.responseText,Dialog.parameters)},_runAjaxRequest:function(message,parameters,callFunc){if(message.options==null)
message.options={}
Dialog.onCompleteFunc=message.options.onComplete;Dialog.parameters=parameters;Dialog.callFunc=callFunc;message.options.onComplete=Dialog._getAjaxContent;new Ajax.Request(message.url,message.options);},okCallback:function(){var win=Windows.focusedWindow;if(!win.okCallback||win.okCallback(win)){$$("#"+win.getId()+" input").each(function(element){element.onclick=null;})
win.close();}},cancelCallback:function(){var win=Windows.focusedWindow;$$("#"+win.getId()+" input").each(function(element){element.onclick=null})
win.close();if(win.cancelCallback)
win.cancelCallback(win);}}
if(Prototype.Browser.WebKit){var array=navigator.userAgent.match(new RegExp(/AppleWebKit\/([\d\.\+]*)/));Prototype.Browser.WebKitVersion=parseFloat(array[1]);}
var WindowUtilities={getWindowScroll:function(parent){var T,L,W,H;parent=parent||document.body;if(parent!=document.body){T=parent.scrollTop;L=parent.scrollLeft;W=parent.scrollWidth;H=parent.scrollHeight;}
else{var w=window;with(w.document){if(w.document.documentElement&&documentElement.scrollTop){T=documentElement.scrollTop;L=documentElement.scrollLeft;}else if(w.document.body){T=body.scrollTop;L=body.scrollLeft;}
if(w.innerWidth){W=w.innerWidth;H=w.innerHeight;}else if(w.document.documentElement&&documentElement.clientWidth){W=documentElement.clientWidth;H=documentElement.clientHeight;}else{W=body.offsetWidth;H=body.offsetHeight}}}
return{top:T,left:L,width:W,height:H};},getPageSize:function(parent){parent=parent||document.body;var windowWidth,windowHeight;var pageHeight,pageWidth;if(parent!=document.body){windowWidth=parent.getWidth();windowHeight=parent.getHeight();pageWidth=parent.scrollWidth;pageHeight=parent.scrollHeight;}
else{var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=document.body.scrollWidth;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}
if(self.innerHeight){windowWidth=self.innerWidth;windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}
if(xScroll<windowWidth){pageWidth=windowWidth;}else{pageWidth=xScroll;}}
return{pageWidth:pageWidth,pageHeight:pageHeight,windowWidth:windowWidth,windowHeight:windowHeight};},disableScreen:function(className,overlayId,overlayOpacity,contentId,parent){WindowUtilities.initLightbox(overlayId,className,function(){this._disableScreen(className,overlayId,overlayOpacity,contentId)}.bind(this),parent||document.body);},_disableScreen:function(className,overlayId,overlayOpacity,contentId){var objOverlay=$(overlayId);var pageSize=WindowUtilities.getPageSize(objOverlay.parentNode);if(contentId&&Prototype.Browser.IE){WindowUtilities._hideSelect();WindowUtilities._showSelect(contentId);}
objOverlay.style.height=(pageSize.pageHeight+'px');objOverlay.style.display='none';if(overlayId=="overlay_modal"&&Window.hasEffectLib&&Windows.overlayShowEffectOptions){objOverlay.overlayOpacity=overlayOpacity;new Effect.Appear(objOverlay,Object.extend({from:0,to:overlayOpacity},Windows.overlayShowEffectOptions));}
else
objOverlay.style.display="block";},enableScreen:function(id){id=id||'overlay_modal';var objOverlay=$(id);if(objOverlay){if(id=="overlay_modal"&&Window.hasEffectLib&&Windows.overlayHideEffectOptions)
new Effect.Fade(objOverlay,Object.extend({from:objOverlay.overlayOpacity,to:0},Windows.overlayHideEffectOptions));else{objOverlay.style.display='none';objOverlay.parentNode.removeChild(objOverlay);}
if(id!="__invisible__")
WindowUtilities._showSelect();}},_hideSelect:function(id){if(Prototype.Browser.IE){id=id==null?"":"#"+id+" ";$$(id+'select').each(function(element){if(!WindowUtilities.isDefined(element.oldVisibility)){element.oldVisibility=element.style.visibility?element.style.visibility:"visible";element.style.visibility="hidden";}});}},_showSelect:function(id){if(Prototype.Browser.IE){id=id==null?"":"#"+id+" ";$$(id+'select').each(function(element){if(WindowUtilities.isDefined(element.oldVisibility)){try{element.style.visibility=element.oldVisibility;}catch(e){element.style.visibility="visible";}
element.oldVisibility=null;}
else{if(element.style.visibility)
element.style.visibility="visible";}});}},isDefined:function(object){return typeof(object)!="undefined"&&object!=null;},initLightbox:function(id,className,doneHandler,parent){if($(id)){Element.setStyle(id,{zIndex:Windows.maxZIndex+1});Windows.maxZIndex++;doneHandler();}
else{var objOverlay=document.createElement("div");objOverlay.setAttribute('id',id);objOverlay.className="overlay_"+className
objOverlay.style.display='none';objOverlay.style.position='absolute';objOverlay.style.top='0';objOverlay.style.left='0';objOverlay.style.zIndex=Windows.maxZIndex+1;Windows.maxZIndex++;objOverlay.style.width='100%';parent.insertBefore(objOverlay,parent.firstChild);if(Prototype.Browser.WebKit&&id=="overlay_modal"){setTimeout(function(){doneHandler()},10);}
else
doneHandler();}},setCookie:function(value,parameters){document.cookie=parameters[0]+"="+escape(value)+
((parameters[1])?"; expires="+parameters[1].toGMTString():"")+
((parameters[2])?"; path="+parameters[2]:"")+
((parameters[3])?"; domain="+parameters[3]:"")+
((parameters[4])?"; secure":"");},getCookie:function(name){var dc=document.cookie;var prefix=name+"=";var begin=dc.indexOf("; "+prefix);if(begin==-1){begin=dc.indexOf(prefix);if(begin!=0)return null;}else{begin+=2;}
var end=document.cookie.indexOf(";",begin);if(end==-1){end=dc.length;}
return unescape(dc.substring(begin+prefix.length,end));},_computeSize:function(content,id,width,height,margin,className){var objBody=document.body;var tmpObj=document.createElement("div");tmpObj.setAttribute('id',id);tmpObj.className=className+"_content";if(height)
tmpObj.style.height=height+"px"
else
tmpObj.style.width=width+"px"
tmpObj.style.position='absolute';tmpObj.style.top='0';tmpObj.style.left='0';tmpObj.style.display='none';tmpObj.innerHTML=content;objBody.insertBefore(tmpObj,objBody.firstChild);var size;if(height)
size=$(tmpObj).getDimensions().width+margin;else
size=$(tmpObj).getDimensions().height+margin;objBody.removeChild(tmpObj);return size;}};if(typeof Prototype=='undefined'||!Prototype.Version.match("1.6"))
throw("Prototype-UI library require Prototype library >= 1.6.0");if(Prototype.Browser.WebKit){Prototype.Browser.WebKitVersion=parseFloat(navigator.userAgent.match(/AppleWebKit\/([\d\.\+]*)/)[1]);Prototype.Browser.Safari2=(Prototype.Browser.WebKitVersion<420);}
if(Prototype.Browser.IE){Prototype.Browser.IEVersion=parseFloat(navigator.appVersion.split(';')[1].strip().split(' ')[1]);Prototype.Browser.IE6=Prototype.Browser.IEVersion==6;Prototype.Browser.IE7=Prototype.Browser.IEVersion==7;}
Prototype.falseFunction=function(){return false};Prototype.trueFunction=function(){return true};var UI={Abstract:{},Ajax:{}};Object.extend(Class.Methods,{extend:Object.extend.methodize(),addMethods:Class.Methods.addMethods.wrap(function(proceed,source){if(!source)return this;if(!source.hasOwnProperty('methodsAdded'))
return proceed(source);var callback=source.methodsAdded;delete source.methodsAdded;proceed(source);callback.call(source,this);source.methodsAdded=callback;return this;}),addMethod:function(name,lambda){var methods={};methods[name]=lambda;return this.addMethods(methods);},method:function(name){return this.prototype[name].valueOf();},classMethod:function(){$A(arguments).flatten().each(function(method){this[method]=(function(){return this[method].apply(this,arguments);}).bind(this.prototype);},this);return this;},undefMethod:function(name){this.prototype[name]=undefined;return this;},removeMethod:function(name){delete this.prototype[name];return this;},aliasMethod:function(newName,name){this.prototype[newName]=this.prototype[name];return this;},aliasMethodChain:function(target,feature){feature=feature.camelcase();this.aliasMethod(target+"Without"+feature,target);this.aliasMethod(target,target+"With"+feature);return this;}});Object.extend(Number.prototype,{snap:function(round){return parseInt(round==1?this:(this/round).floor()*round);}});Object.extend(String.prototype,{camelcase:function(){var string=this.dasherize().camelize();return string.charAt(0).toUpperCase()+string.slice(1);},makeElement:function(){var wrapper=new Element('div');wrapper.innerHTML=this;return wrapper.down();}});Object.extend(Array.prototype,{empty:function(){return!this.length;},extractOptions:function(){return this.last().constructor===Object?this.pop():{};},removeAt:function(index){var object=this[index];this.splice(index,1);return object;},remove:function(object){var index;while((index=this.indexOf(object))!=-1)
this.removeAt(index);return object;},insert:function(index){var args=$A(arguments);args.shift();this.splice.apply(this,[index,0].concat(args));return this;}});Element.addMethods({getScrollDimensions:function(element){return{width:element.scrollWidth,height:element.scrollHeight}},getScrollOffset:function(element){return Element._returnOffset(element.scrollLeft,element.scrollTop);},setScrollOffset:function(element,offset){element=$(element);if(arguments.length==3)
offset={left:offset,top:arguments[2]};element.scrollLeft=offset.left;element.scrollTop=offset.top;return element;},getNumStyle:function(element,style){var value=parseFloat($(element).getStyle(style));return isNaN(value)?null:value;},appendText:function(element,text){element=$(element);text=String.interpret(text);element.appendChild(document.createTextNode(text));return element;}});document.whenReady=function(callback){if(document.loaded)
callback.call(document);else
document.observe('dom:loaded',callback);};Object.extend(document.viewport,{getScrollOffset:document.viewport.getScrollOffsets,setScrollOffset:function(offset){Element.setScrollOffset(Prototype.Browser.WebKit?document.body:document.documentElement,offset);},getScrollDimensions:function(){return Element.getScrollDimensions(Prototype.Browser.WebKit?document.body:document.documentElement);}});(function(){UI.Options={methodsAdded:function(klass){klass.classMethod($w(' setOptions allOptions optionsGetter optionsSetter optionsAccessor '));},setOptions:function(options){if(!this.hasOwnProperty('options'))
this.options=this.allOptions();this.options=Object.extend(this.options,options||{});},allOptions:function(){var superclass=this.constructor.superclass,ancestor=superclass&&superclass.prototype;return(ancestor&&ancestor.allOptions)?Object.extend(ancestor.allOptions(),this.options):Object.clone(this.options);},optionsGetter:function(){addOptionsAccessors(this,arguments,false);},optionsSetter:function(){addOptionsAccessors(this,arguments,true);},optionsAccessor:function(){this.optionsGetter.apply(this,arguments);this.optionsSetter.apply(this,arguments);}};function addOptionsAccessors(receiver,names,areSetters){names=$A(names).flatten();if(names.empty())
names=Object.keys(receiver.allOptions());names.each(function(name){var accessorName=(areSetters?'set':'get')+name.camelcase();receiver[accessorName]=receiver[accessorName]||(areSetters?function(value){return this.options[name]=value}:function(){return this.options[name]});});}})();UI.Carousel=Class.create(UI.Options,{options:{direction:"horizontal",previousButton:".previous_button",nextButton:".next_button",container:".container",scrollInc:"auto",disabledButtonSuffix:'_disabled',overButtonSuffix:'_over'},initialize:function(element,options){this.setOptions(options);this.element=$(element);this.id=this.element.id;this.container=this.element.down(this.options.container).firstDescendant();this.elements=this.container.childElements();this.previousButton=this.options.previousButton==false?null:this.element.down(this.options.previousButton);this.nextButton=this.options.nextButton==false?null:this.element.down(this.options.nextButton);this.posAttribute=(this.options.direction=="horizontal"?"left":"top");this.dimAttribute=(this.options.direction=="horizontal"?"width":"height");this.elementSize=this.computeElementSize();this.nbVisible=this.currentSize()/this.elementSize;var scrollInc=this.options.scrollInc;if(scrollInc=="auto")
scrollInc=Math.floor(this.nbVisible);[this.previousButton,this.nextButton].each(function(button){if(!button)return;var className=(button==this.nextButton?"next_button":"previous_button")+this.options.overButtonSuffix;button.clickHandler=this.scroll.bind(this,(button==this.nextButton?-1:1)*scrollInc*this.elementSize);button.observe("click",button.clickHandler).observe("mouseover",function(){button.addClassName(className)}.bind(this)).observe("mouseout",function(){button.removeClassName(className)}.bind(this));},this);this.updateButtons();},destroy:function($super){[this.previousButton,this.nextButton].each(function(button){if(!button)return;button.stopObserving("click",button.clickHandler);},this);this.element.remove();this.fire('destroyed');},destroy_gentle:function($super){[this.previousButton,this.nextButton].each(function(button){if(!button)return;button.stopObserving("click",button.clickHandler);},this);this.container.update("");this.container.setStyle(this.posAttribute+":0px");this.fire('destroyed');},fire:function(eventName,memo){memo=memo||{};memo.carousel=this;return this.element.fire('carousel:'+eventName,memo);},observe:function(eventName,handler){this.element.observe('carousel:'+eventName,handler.bind(this));return this;},stopObserving:function(eventName,handler){this.element.stopObserving('carousel:'+eventName,handler);return this;},checkScroll:function(position,updatePosition){if(position>0)
position=0;else{var limit=this.elements.last().positionedOffset()[this.posAttribute]+this.elementSize;var carouselSize=this.currentSize();if(position+limit<carouselSize)
position+=carouselSize-(position+limit);position=Math.min(position,0);}
if(updatePosition)
this.container.style[this.posAttribute]=position+"px";return position;},scroll:function(deltaPixel){if(this.animating)
return this;var position=this.currentPosition()+deltaPixel;position=this.checkScroll(position,false);deltaPixel=position-this.currentPosition();if(deltaPixel!=0){this.animating=true;this.fire("scroll:started");var that=this;this.container.morph("opacity:0.5",{duration:0.2,afterFinish:function(){that.container.morph(that.posAttribute+": "+position+"px",{duration:0.4,delay:0.2,afterFinish:function(){that.container.morph("opacity:1",{duration:0.2,afterFinish:function(){that.animating=false;that.updateButtons().fire("scroll:ended",{shift:deltaPixel/that.currentSize()});}});}});}});}
return this;},scrollTo:function(index){if(this.animating||index<0||index>this.elements.length||index==this.currentIndex()||isNaN(parseInt(index)))
return this;return this.scroll((this.currentIndex()-index)*this.elementSize);},updateButtons:function(){this.updatePreviousButton();this.updateNextButton();return this;},updatePreviousButton:function(){var position=this.currentPosition();var previousClassName="previous_button"+this.options.disabledButtonSuffix;if(this.previousButton.hasClassName(previousClassName)&&position!=0){this.previousButton.removeClassName(previousClassName);this.fire('previousButton:enabled');}
if(!this.previousButton.hasClassName(previousClassName)&&position==0){this.previousButton.addClassName(previousClassName);this.fire('previousButton:disabled');}},updateNextButton:function(){var lastPosition=this.currentLastPosition();var size=this.currentSize();var nextClassName="next_button"+this.options.disabledButtonSuffix;if(this.nextButton.hasClassName(nextClassName)&&lastPosition!=size){this.nextButton.removeClassName(nextClassName);this.fire('nextButton:enabled');}
if(!this.nextButton.hasClassName(nextClassName)&&lastPosition==size){this.nextButton.addClassName(nextClassName);this.fire('nextButton:disabled');}},computeElementSize:function(){return this.elements.first().getDimensions()[this.dimAttribute];},currentIndex:function(){return-this.currentPosition()/this.elementSize;},currentLastPosition:function(){if(this.container.childElements().empty())
return 0;return this.currentPosition()+
this.elements.last().positionedOffset()[this.posAttribute]+
this.elementSize;},currentPosition:function(){return this.container.getNumStyle(this.posAttribute);},currentSize:function(){return this.container.parentNode.getDimensions()[this.dimAttribute];},updateSize:function(){this.nbVisible=this.currentSize()/this.elementSize;var scrollInc=this.options.scrollInc;if(scrollInc=="auto")
scrollInc=Math.floor(this.nbVisible);[this.previousButton,this.nextButton].each(function(button){if(!button)return;button.stopObserving("click",button.clickHandler);button.clickHandler=this.scroll.bind(this,(button==this.nextButton?-1:1)*scrollInc*this.elementSize);button.observe("click",button.clickHandler);},this);this.checkScroll(this.currentPosition(),true);this.updateButtons().fire('sizeUpdated');return this;}});UI.Ajax.Carousel=Class.create(UI.Carousel,{options:{elementSize:-1,url:null},initialize:function($super,element,options){if(!options.url)
throw("url option is required for UI.Ajax.Carousel");if(!options.elementSize)
throw("elementSize option is required for UI.Ajax.Carousel");$super(element,options);this.endIndex=0;this.hasMore=true;this.updateHandler=this.update.bind(this);this.updateAndScrollHandler=function(nbElements,transport,json){this.update(transport,json);this.scroll(nbElements);}.bind(this);this.runRequest.bind(this).defer({parameters:{from:0,to:Math.ceil(this.nbVisible)-1},onSuccess:this.updateHandler});},runRequest:function(options){this.requestRunning=true;new Ajax.Request(this.options.url,Object.extend({method:"POST"},options));this.fire("request:started");return this;},scroll:function($super,deltaPixel){if(this.animating||this.requestRunning)
return this;var nbElements=(-deltaPixel)/this.elementSize;if(this.hasMore&&nbElements>0&&this.currentIndex()+this.nbVisible+nbElements-1>this.endIndex){var from=this.endIndex+1;var to=Math.ceil(from+this.nbVisible-1);this.runRequest({parameters:{from:from,to:to},onSuccess:this.updateAndScrollHandler.curry(deltaPixel).bind(this)});return this;}
else
$super(deltaPixel);},update:function(transport,json){this.requestRunning=false;this.fire("request:ended");if(!json)
json=transport.responseJSON;this.hasMore=json.more;this.endIndex=Math.max(this.endIndex,json.to);this.elements=this.container.insert({bottom:json.html}).childElements();this.fire("elements:inserted");return this.updateButtons();},computeElementSize:function(){return this.options.elementSize;},updateSize:function($super){var nbVisible=this.nbVisible;$super();if(Math.floor(this.nbVisible)-Math.floor(nbVisible)>=1&&this.hasMore){if(this.currentIndex()+Math.floor(this.nbVisible)>=this.endIndex){var nbNew=Math.floor(this.currentIndex()+Math.floor(this.nbVisible)-this.endIndex);this.runRequest({parameters:{from:this.endIndex+1,to:this.endIndex+nbNew},onSuccess:this.updateHandler});}}
return this;},updateNextButton:function($super){var lastPosition=this.currentLastPosition();var size=this.currentSize();var nextClassName="next_button"+this.options.disabledButtonSuffix;var lastPositionReached=(lastPosition==size);if(this.nextButton.hasClassName(nextClassName)&&!lastPositionReached){this.nextButton.removeClassName(nextClassName);this.fire('nextButton:enabled');}
var force_disable_next_buttonfix=false;if(typeof this.endIndex!=="undefined"){force_disable_next_buttonfix=this.elements.length<this.nbVisible;}
if(!this.nextButton.hasClassName(nextClassName)&&(lastPositionReached||force_disable_next_buttonfix)&&!this.hasMore){this.nextButton.addClassName(nextClassName);this.fire('nextButton:disabled');}}});;if(typeof(Control)=='undefined')
var Control={};Control.Tabs=Class.create();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.extend(Control.Tabs.prototype,{initialize:function(tab_list_container,options){this.activeContainer=false;this.activeLink=false;this.containers=$H({});this.links=[];Control.Tabs.instances.push(this);this.options={beforeChange:Prototype.emptyFunction,afterChange:Prototype.emptyFunction,hover:false,linkSelector:'li a',setClassOnContainer:false,activeClassName:'active',defaultTab:'first',autoLinkExternal:true,targetRegExp:/#(.+)$/,showFunction:Element.show,hideFunction:Element.hide};Object.extend(this.options,options||{});(typeof(this.options.linkSelector=='string')?$(tab_list_container).getElementsBySelector(this.options.linkSelector):this.options.linkSelector($(tab_list_container))).findAll(function(link){return(/^#/).exec(link.href.replace(window.location.href.split('#')[0],''));}).each(function(link){this.addTab(link);}.bind(this));this.containers.values().each(this.options.hideFunction);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]){targets[1].split(',').each(function(target){this.links.each(function(target,link){if(link.key==target){this.setActiveTab(link);throw $break;}}.bind(this,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],'');if(clean_href.substring(0,1)=='#'){if(this.containers.keys().include(clean_href.substring(1))){$(a).observe('click',function(event,clean_href){this.setActiveTab(clean_href.substring(1));}.bindAsEventListener(this,clean_href));}}}}.bind(this));}},addTab:function(link){this.links.push(link);link.key=link.getAttribute('href').replace(window.location.href.split('#')[0],'').split('/').last().replace(/#/,'');this.containers[link.key]=$(link.key);link[this.options.hover?'onmouseover':'onclick']=function(link){if(window.event)
Event.stop(window.event);this.setActiveTab(link);return false;}.bind(this,link);},setActiveTab:function(link){if(!link)
return;if(typeof(link)=='string'){this.links.each(function(_link){if(_link.key==link){this.setActiveTab(_link);throw $break;}}.bind(this));}else{this.notify('beforeChange',this.activeContainer);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[link.key];this.activeLink=link;this.options.showFunction(this.containers[link.key]);this.notify('afterChange',this.containers[link.key]);}},next:function(){this.links.each(function(link,i){if(this.activeLink==link&&this.links[i+1]){this.setActiveTab(this.links[i+1]);throw $break;}}.bind(this));return false;},previous:function(){this.links.each(function(link,i){if(this.activeLink==link&&this.links[i-1]){this.setActiveTab(this.links[i-1]);throw $break;}}.bind(this));return false;},first:function(){this.setActiveTab(this.links.first());return false;},last:function(){this.setActiveTab(this.links.last());return false;},notify:function(event_name){try{if(this.options[event_name])
return[this.options[event_name].apply(this.options[event_name],$A(arguments).slice(1))];}catch(e){if(e!=$break)
throw e;else
return false;}}});if(typeof(Object.Event)!='undefined')
Object.Event.extend(Control.Tabs);;if(!("console"in window)||!("firebug"in console)){(function()
{window.console={log:function()
{logFormatted(arguments,"");},debug:function()
{logFormatted(arguments,"debug");},info:function()
{logFormatted(arguments,"info");},warn:function()
{logFormatted(arguments,"warning");},error:function()
{logFormatted(arguments,"error");},assert:function(truth,message)
{if(!truth)
{var args=[];for(var i=1;i<arguments.length;++i)
args.push(arguments[i]);logFormatted(args.length?args:["Assertion Failure"],"error");throw message?message:"Assertion Failure";}},dir:function(object)
{var html=[];var pairs=[];for(var name in object)
{try
{pairs.push([name,object[name]]);}
catch(exc)
{}}
pairs.sort(function(a,b){return a[0]<b[0]?-1:1;});html.push('<table>');for(var i=0;i<pairs.length;++i)
{var name=pairs[i][0],value=pairs[i][1];html.push('<tr>','<td class="propertyNameCell"><span class="propertyName">',escapeHTML(name),'</span></td>','<td><span class="propertyValue">');appendObject(value,html);html.push('</span></td></tr>');}
html.push('</table>');logRow(html,"dir");},dirxml:function(node)
{var html=[];appendNode(node,html);logRow(html,"dirxml");},group:function()
{logRow(arguments,"group",pushGroup);},groupEnd:function()
{logRow(arguments,"",popGroup);},time:function(name)
{timeMap[name]=(new Date()).getTime();},timeEnd:function(name)
{if(name in timeMap)
{var delta=(new Date()).getTime()-timeMap[name];logFormatted([name+":",delta+"ms"]);delete timeMap[name];}},count:function()
{this.warn(["count() not supported."]);},trace:function()
{this.warn(["trace() not supported."]);},profile:function()
{this.warn(["profile() not supported."]);},profileEnd:function()
{},clear:function()
{consoleBody.innerHTML="";},open:function()
{toggleConsole(true);},close:function()
{if(frameVisible)
toggleConsole();}};var consoleFrame=null;var consoleBody=null;var commandLine=null;var frameVisible=false;var messageQueue=[];var groupStack=[];var timeMap={};var clPrefix=">>> ";var isFirefox=navigator.userAgent.indexOf("Firefox")!=-1;var isIE=navigator.userAgent.indexOf("MSIE")!=-1;var isOpera=navigator.userAgent.indexOf("Opera")!=-1;var isSafari=navigator.userAgent.indexOf("AppleWebKit")!=-1;function toggleConsole(forceOpen)
{frameVisible=forceOpen||!frameVisible;if(consoleFrame)
consoleFrame.style.visibility=frameVisible?"visible":"hidden";else
waitForBody();}
function focusCommandLine()
{toggleConsole(true);if(commandLine)
commandLine.focus();}
function waitForBody()
{if(document.body)
createFrame();else
setTimeout(waitForBody,200);}
function createFrame()
{if(consoleFrame)
return;window.onFirebugReady=function(doc)
{window.onFirebugReady=null;var toolbar=doc.getElementById("toolbar");toolbar.onmousedown=onSplitterMouseDown;commandLine=doc.getElementById("commandLine");addEvent(commandLine,"keydown",onCommandLineKeyDown);addEvent(doc,isIE||isSafari?"keydown":"keypress",onKeyDown);consoleBody=doc.getElementById("log");layout();flush();}
var baseURL=getFirebugURL();consoleFrame=document.createElement("iframe");consoleFrame.setAttribute("src",baseURL+"/firebug.html");consoleFrame.setAttribute("frameBorder","0");consoleFrame.style.visibility=(frameVisible?"visible":"hidden");consoleFrame.style.zIndex="2147483647";consoleFrame.style.position="absolute";consoleFrame.style.top="0";consoleFrame.style.width="100%";consoleFrame.style.left="0";consoleFrame.style.bottom="0";consoleFrame.style.height="200px";document.body.appendChild(consoleFrame);}
function getFirebugURL()
{var lastSlash=document.location.href.lastIndexOf("/");var url=document.location.href.substr(0,lastSlash);return url+"/scripts/lib/firebug";}
function evalCommandLine()
{var text=commandLine.value;commandLine.value="";logRow([clPrefix,text],"command");var value;try
{value=eval(text);}
catch(exc)
{}
console.log(value);}
function layout()
{var toolbar=consoleBody.ownerDocument.getElementById("toolbar");var height=consoleFrame.offsetHeight-(toolbar.offsetHeight+commandLine.offsetHeight);consoleBody.style.top=toolbar.offsetHeight+"px";consoleBody.style.height=height+"px";commandLine.style.top=(consoleFrame.offsetHeight-commandLine.offsetHeight)+"px";}
function logRow(message,className,handler)
{if(isIE&&document.body||consoleBody!=null)
writeMessage(message,className,handler);else
{messageQueue.push([message,className,handler]);waitForBody();}}
function flush()
{var queue=messageQueue;messageQueue=[];for(var i=0;i<queue.length;++i)
writeMessage(queue[i][0],queue[i][1],queue[i][2]);}
function writeMessage(message,className,handler)
{var isScrolledToBottom=consoleBody.scrollTop+consoleBody.offsetHeight>=consoleBody.scrollHeight;if(!handler)
handler=writeRow;handler(message,className);if(isScrolledToBottom)
consoleBody.scrollTop=consoleBody.scrollHeight-consoleBody.offsetHeight;}
function appendRow(row)
{var container=groupStack.length?groupStack[groupStack.length-1]:consoleBody;container.appendChild(row);}
function writeRow(message,className)
{var row=consoleBody.ownerDocument.createElement("div");row.className="logRow"+(className?" logRow-"+className:"");row.innerHTML=message.join("");appendRow(row);}
function pushGroup(message,className)
{logFormatted(message,className);var groupRow=consoleBody.ownerDocument.createElement("div");groupRow.className="logGroup";var groupRowBox=consoleBody.ownerDocument.createElement("div");groupRowBox.className="logGroupBox";groupRow.appendChild(groupRowBox);appendRow(groupRowBox);groupStack.push(groupRowBox);}
function popGroup()
{groupStack.pop();}
function logFormatted(objects,className)
{var html=[];var format=objects[0];var objIndex=0;if(typeof(format)!="string")
{format="";objIndex=-1;}
var parts=parseFormat(format);for(var i=0;i<parts.length;++i)
{var part=parts[i];if(part&&typeof(part)=="object")
{var object=objects[++objIndex];part.appender(object,html);}
else
appendText(part,html);}
for(var i=objIndex+1;i<objects.length;++i)
{appendText(" ",html);var object=objects[i];if(typeof(object)=="string")
appendText(object,html);else
appendObject(object,html);}
logRow(html,className);}
function parseFormat(format)
{var parts=[];var reg=/((^%|[^\\]%)(\d+)?(\.)([a-zA-Z]))|((^%|[^\\]%)([a-zA-Z]))/;var appenderMap={s:appendText,d:appendInteger,i:appendInteger,f:appendFloat};for(var m=reg.exec(format);m;m=reg.exec(format))
{var type=m[8]?m[8]:m[5];var appender=type in appenderMap?appenderMap[type]:appendObject;var precision=m[3]?parseInt(m[3]):(m[4]=="."?-1:0);parts.push(format.substr(0,m[0][0]=="%"?m.index:m.index+1));parts.push({appender:appender,precision:precision});format=format.substr(m.index+m[0].length);}
parts.push(format);return parts;}
function escapeHTML(value)
{function replaceChars(ch)
{switch(ch)
{case"<":return"&lt;";case">":return"&gt;";case"&":return"&amp;";case"'":return"&#39;";case'"':return"&quot;";}
return"?";};return String(value).replace(/[<>&"']/g,replaceChars);}
function objectToString(object)
{try
{return object+"";}
catch(exc)
{return null;}}
function appendText(object,html)
{html.push(escapeHTML(objectToString(object)));}
function appendNull(object,html)
{html.push('<span class="objectBox-null">',escapeHTML(objectToString(object)),'</span>');}
function appendString(object,html)
{html.push('<span class="objectBox-string">&quot;',escapeHTML(objectToString(object)),'&quot;</span>');}
function appendInteger(object,html)
{html.push('<span class="objectBox-number">',escapeHTML(objectToString(object)),'</span>');}
function appendFloat(object,html)
{html.push('<span class="objectBox-number">',escapeHTML(objectToString(object)),'</span>');}
function appendFunction(object,html)
{var reName=/function ?(.*?)\(/;var m=reName.exec(objectToString(object));var name=m?m[1]:"function";html.push('<span class="objectBox-function">',escapeHTML(name),'()</span>');}
function appendObject(object,html)
{try
{if(object==undefined)
appendNull("undefined",html);else if(object==null)
appendNull("null",html);else if(typeof object=="string")
appendString(object,html);else if(typeof object=="number")
appendInteger(object,html);else if(typeof object=="function")
appendFunction(object,html);else if(object.nodeType==1)
appendSelector(object,html);else if(typeof object=="object")
appendObjectFormatted(object,html);else
appendText(object,html);}
catch(exc)
{}}
function appendObjectFormatted(object,html)
{var text=objectToString(object);var reObject=/\[object (.*?)\]/;var m=reObject.exec(text);html.push('<span class="objectBox-object">',m?m[1]:text,'</span>')}
function appendSelector(object,html)
{html.push('<span class="objectBox-selector">');html.push('<span class="selectorTag">',escapeHTML(object.nodeName.toLowerCase()),'</span>');if(object.id)
html.push('<span class="selectorId">#',escapeHTML(object.id),'</span>');if(object.className)
html.push('<span class="selectorClass">.',escapeHTML(object.className),'</span>');html.push('</span>');}
function appendNode(node,html)
{if(node.nodeType==1)
{html.push('<div class="objectBox-element">','&lt;<span class="nodeTag">',node.nodeName.toLowerCase(),'</span>');for(var i=0;i<node.attributes.length;++i)
{var attr=node.attributes[i];if(!attr.specified)
continue;html.push('&nbsp;<span class="nodeName">',attr.nodeName.toLowerCase(),'</span>=&quot;<span class="nodeValue">',escapeHTML(attr.nodeValue),'</span>&quot;')}
if(node.firstChild)
{html.push('&gt;</div><div class="nodeChildren">');for(var child=node.firstChild;child;child=child.nextSibling)
appendNode(child,html);html.push('</div><div class="objectBox-element">&lt;/<span class="nodeTag">',node.nodeName.toLowerCase(),'&gt;</span></div>');}
else
html.push('/&gt;</div>');}
else if(node.nodeType==3)
{html.push('<div class="nodeText">',escapeHTML(node.nodeValue),'</div>');}}
function addEvent(object,name,handler)
{if(document.all)
object.attachEvent("on"+name,handler);else
object.addEventListener(name,handler,false);}
function removeEvent(object,name,handler)
{if(document.all)
object.detachEvent("on"+name,handler);else
object.removeEventListener(name,handler,false);}
function cancelEvent(event)
{if(document.all)
event.cancelBubble=true;else
event.stopPropagation();}
function onError(msg,href,lineNo)
{var html=[];var lastSlash=href.lastIndexOf("/");var fileName=lastSlash==-1?href:href.substr(lastSlash+1);html.push('<span class="errorMessage">',msg,'</span>','<div class="objectBox-sourceLink">',fileName,' (line ',lineNo,')</div>');logRow(html,"error");};function onKeyDown(event)
{if(event.keyCode==123)
toggleConsole();else if((event.keyCode==108||event.keyCode==76)&&event.shiftKey&&(event.metaKey||event.ctrlKey))
focusCommandLine();else
return;cancelEvent(event);}
function onSplitterMouseDown(event)
{if(isSafari||isOpera)
return;addEvent(document,"mousemove",onSplitterMouseMove);addEvent(document,"mouseup",onSplitterMouseUp);for(var i=0;i<frames.length;++i)
{addEvent(frames[i].document,"mousemove",onSplitterMouseMove);addEvent(frames[i].document,"mouseup",onSplitterMouseUp);}}
function onSplitterMouseMove(event)
{var win=document.all?event.srcElement.ownerDocument.parentWindow:event.target.ownerDocument.defaultView;var clientY=event.clientY;if(win!=win.parent)
clientY+=win.frameElement?win.frameElement.offsetTop:0;var height=consoleFrame.offsetTop+consoleFrame.clientHeight;var y=height-clientY;consoleFrame.style.height=y+"px";layout();}
function onSplitterMouseUp(event)
{removeEvent(document,"mousemove",onSplitterMouseMove);removeEvent(document,"mouseup",onSplitterMouseUp);for(var i=0;i<frames.length;++i)
{removeEvent(frames[i].document,"mousemove",onSplitterMouseMove);removeEvent(frames[i].document,"mouseup",onSplitterMouseUp);}}
function onCommandLineKeyDown(event)
{if(event.keyCode==13)
evalCommandLine();else if(event.keyCode==27)
commandLine.value="";}
window.onload=function(){addEvent(document,isIE||isSafari?"keydown":"keypress",onKeyDown);if(document.documentElement.getAttribute("debug")=="true"||document.body.getAttribute("debug")=="true"){toggleConsole(true);}}})();};var CropDraggable=Class.create();Object.extend(Object.extend(CropDraggable.prototype,Draggable.prototype),{initialize:function(_1){this.options=Object.extend({drawMethod:function(){}},arguments[1]||{});this.element=$(_1);this.handle=this.element;this.delta=this.currentDelta();this.dragging=false;this.eventMouseDown=this.initDrag.bindAsEventListener(this);Event.observe(this.handle,"mousedown",this.eventMouseDown);Draggables.register(this);},draw:function(_2){var _3=Position.cumulativeOffset(this.element);var d=this.currentDelta();_3[0]-=d[0];_3[1]-=d[1];var p=[0,1].map(function(i){return(_2[i]-_3[i]-this.offset[i]);}.bind(this));this.options.drawMethod(p);}});var Cropper={};Cropper.Img=Class.create();Cropper.Img.prototype={initialize:function(_7,_8){this.options=Object.extend({ratioDim:{x:0,y:0},minWidth:0,minHeight:0,displayOnInit:false,onEndCrop:Prototype.emptyFunction,captureKeys:true,onloadCoords:null,maxWidth:0,maxHeight:0},_8||{});this.img=$(_7);this.clickCoords={x:0,y:0};this.dragging=false;this.resizing=false;this.isWebKit=/Konqueror|Safari|KHTML/.test(navigator.userAgent);this.isIE=/MSIE/.test(navigator.userAgent);this.isOpera8=/Opera\s[1-8]/.test(navigator.userAgent);this.ratioX=0;this.ratioY=0;this.attached=false;this.fixedWidth=(this.options.maxWidth>0&&(this.options.minWidth>=this.options.maxWidth));this.fixedHeight=(this.options.maxHeight>0&&(this.options.minHeight>=this.options.maxHeight));if(typeof this.img=="undefined"){return;}
$A(document.getElementsByTagName("script")).each(function(s){if(s.src.match(/cropper\.js/)){var _a=s.src.replace(/cropper\.js(.*)?/,"");var _b=document.createElement("link");_b.rel="stylesheet";_b.type="text/css";_b.href=_a+"cropper.css";_b.media="screen";document.getElementsByTagName("head")[0].appendChild(_b);}});if(this.options.ratioDim.x>0&&this.options.ratioDim.y>0){var _c=this.getGCD(this.options.ratioDim.x,this.options.ratioDim.y);this.ratioX=this.options.ratioDim.x/_c;this.ratioY=this.options.ratioDim.y/_c;}
this.subInitialize();if(this.img.complete||this.isWebKit){this.onLoad();}else{Event.observe(this.img,"load",this.onLoad.bindAsEventListener(this));}},getGCD:function(a,b){if(b==0){return a;}
return this.getGCD(b,a%b);},onLoad:function(){var _f="imgCrop_";var _10=this.img.parentNode;var _11="";if(this.isOpera8){_11=" opera8";}
this.imgWrap=Builder.node("div",{"class":_f+"wrap"+_11});this.north=Builder.node("div",{"class":_f+"overlay "+_f+"north"},[Builder.node("span")]);this.east=Builder.node("div",{"class":_f+"overlay "+_f+"east"},[Builder.node("span")]);this.south=Builder.node("div",{"class":_f+"overlay "+_f+"south"},[Builder.node("span")]);this.west=Builder.node("div",{"class":_f+"overlay "+_f+"west"},[Builder.node("span")]);var _12=[this.north,this.east,this.south,this.west];this.dragArea=Builder.node("div",{"class":_f+"dragArea"},_12);this.handleN=Builder.node("div",{"class":_f+"handle "+_f+"handleN"});this.handleNE=Builder.node("div",{"class":_f+"handle "+_f+"handleNE"});this.handleE=Builder.node("div",{"class":_f+"handle "+_f+"handleE"});this.handleSE=Builder.node("div",{"class":_f+"handle "+_f+"handleSE"});this.handleS=Builder.node("div",{"class":_f+"handle "+_f+"handleS"});this.handleSW=Builder.node("div",{"class":_f+"handle "+_f+"handleSW"});this.handleW=Builder.node("div",{"class":_f+"handle "+_f+"handleW"});this.handleNW=Builder.node("div",{"class":_f+"handle "+_f+"handleNW"});this.selArea=Builder.node("div",{"class":_f+"selArea"},[Builder.node("div",{"class":_f+"marqueeHoriz "+_f+"marqueeNorth"},[Builder.node("span")]),Builder.node("div",{"class":_f+"marqueeVert "+_f+"marqueeEast"},[Builder.node("span")]),Builder.node("div",{"class":_f+"marqueeHoriz "+_f+"marqueeSouth"},[Builder.node("span")]),Builder.node("div",{"class":_f+"marqueeVert "+_f+"marqueeWest"},[Builder.node("span")]),this.handleN,this.handleNE,this.handleE,this.handleSE,this.handleS,this.handleSW,this.handleW,this.handleNW,Builder.node("div",{"class":_f+"clickArea"})]);this.imgWrap.appendChild(this.img);this.imgWrap.appendChild(this.dragArea);this.dragArea.appendChild(this.selArea);this.dragArea.appendChild(Builder.node("div",{"class":_f+"clickArea"}));_10.appendChild(this.imgWrap);this.startDragBind=this.startDrag.bindAsEventListener(this);Event.observe(this.dragArea,"mousedown",this.startDragBind);this.onDragBind=this.onDrag.bindAsEventListener(this);Event.observe(document,"mousemove",this.onDragBind);this.endCropBind=this.endCrop.bindAsEventListener(this);Event.observe(document,"mouseup",this.endCropBind);this.resizeBind=this.startResize.bindAsEventListener(this);this.handles=[this.handleN,this.handleNE,this.handleE,this.handleSE,this.handleS,this.handleSW,this.handleW,this.handleNW];this.registerHandles(true);if(this.options.captureKeys){this.keysBind=this.handleKeys.bindAsEventListener(this);Event.observe(document,"keypress",this.keysBind);}
new CropDraggable(this.selArea,{drawMethod:this.moveArea.bindAsEventListener(this)});this.setParams();},registerHandles:function(_13){for(var i=0;i<this.handles.length;i++){var _15=$(this.handles[i]);if(_13){var _16=false;if(this.fixedWidth&&this.fixedHeight){_16=true;}else{if(this.fixedWidth||this.fixedHeight){var _17=_15.className.match(/([S|N][E|W])$/);var _18=_15.className.match(/(E|W)$/);var _19=_15.className.match(/(N|S)$/);if(_17){_16=true;}else{if(this.fixedWidth&&_18){_16=true;}else{if(this.fixedHeight&&_19){_16=true;}}}}}
if(_16){_15.hide();}else{Event.observe(_15,"mousedown",this.resizeBind);}}else{_15.show();Event.stopObserving(_15,"mousedown",this.resizeBind);}}},setParams:function(){this.imgW=this.img.width;this.imgH=this.img.height;$(this.north).setStyle({height:0});$(this.east).setStyle({width:0,height:0});$(this.south).setStyle({height:0});$(this.west).setStyle({width:0,height:0});$(this.imgWrap).setStyle({"width":this.imgW+"px","height":this.imgH+"px"});$(this.selArea).hide();var _1a={x1:0,y1:0,x2:0,y2:0};var _1b=false;if(this.options.onloadCoords!=null){_1a=this.cloneCoords(this.options.onloadCoords);_1b=true;}else{if(this.options.ratioDim.x>0&&this.options.ratioDim.y>0){_1a.x1=Math.ceil((this.imgW-this.options.ratioDim.x)/2);_1a.y1=Math.ceil((this.imgH-this.options.ratioDim.y)/2);_1a.x2=_1a.x1+this.options.ratioDim.x;_1a.y2=_1a.y1+this.options.ratioDim.y;_1b=true;}}
this.setAreaCoords(_1a,false,false,1);if(this.options.displayOnInit&&_1b){this.selArea.show();this.drawArea();this.endCrop();}
this.attached=true;},remove:function(){if(this.attached){this.attached=false;this.imgWrap.parentNode.insertBefore(this.img,this.imgWrap);this.imgWrap.parentNode.removeChild(this.imgWrap);Event.stopObserving(this.dragArea,"mousedown",this.startDragBind);Event.stopObserving(document,"mousemove",this.onDragBind);Event.stopObserving(document,"mouseup",this.endCropBind);this.registerHandles(false);if(this.options.captureKeys){Event.stopObserving(document,"keypress",this.keysBind);}}},reset:function(){if(!this.attached){this.onLoad();}else{this.setParams();}
this.endCrop();},handleKeys:function(e){var dir={x:0,y:0};if(!this.dragging){switch(e.keyCode){case(37):dir.x=-1;break;case(38):dir.y=-1;break;case(39):dir.x=1;break;case(40):dir.y=1;break;}
if(dir.x!=0||dir.y!=0){if(e.shiftKey){dir.x*=10;dir.y*=10;}
this.moveArea([this.areaCoords.x1+dir.x,this.areaCoords.y1+dir.y]);Event.stop(e);}}},calcW:function(){return(this.areaCoords.x2-this.areaCoords.x1);},calcH:function(){return(this.areaCoords.y2-this.areaCoords.y1);},moveArea:function(_1e){this.setAreaCoords({x1:_1e[0],y1:_1e[1],x2:_1e[0]+this.calcW(),y2:_1e[1]+this.calcH()},true,false);this.drawArea();},cloneCoords:function(_1f){return{x1:_1f.x1,y1:_1f.y1,x2:_1f.x2,y2:_1f.y2};},setAreaCoords:function(_20,_21,_22,_23,_24){if(_21){var _25=_20.x2-_20.x1;var _26=_20.y2-_20.y1;if(_20.x1<0){_20.x1=0;_20.x2=_25;}
if(_20.y1<0){_20.y1=0;_20.y2=_26;}
if(_20.x2>this.imgW){_20.x2=this.imgW;_20.x1=this.imgW-_25;}
if(_20.y2>this.imgH){_20.y2=this.imgH;_20.y1=this.imgH-_26;}}else{if(_20.x1<0){_20.x1=0;}
if(_20.y1<0){_20.y1=0;}
if(_20.x2>this.imgW){_20.x2=this.imgW;}
if(_20.y2>this.imgH){_20.y2=this.imgH;}
if(_23!=null){if(this.ratioX>0){this.applyRatio(_20,{x:this.ratioX,y:this.ratioY},_23,_24);}else{if(_22){this.applyRatio(_20,{x:1,y:1},_23,_24);}}
var _27=[this.options.minWidth,this.options.minHeight];var _28=[this.options.maxWidth,this.options.maxHeight];if(_27[0]>0||_27[1]>0||_28[0]>0||_28[1]>0){var _29={a1:_20.x1,a2:_20.x2};var _2a={a1:_20.y1,a2:_20.y2};var _2b={min:0,max:this.imgW};var _2c={min:0,max:this.imgH};if((_27[0]!=0||_27[1]!=0)&&_22){if(_27[0]>0){_27[1]=_27[0];}else{if(_27[1]>0){_27[0]=_27[1];}}}
if((_28[0]!=0||_28[0]!=0)&&_22){if(_28[0]>0&&_28[0]<=_28[1]){_28[1]=_28[0];}else{if(_28[1]>0&&_28[1]<=_28[0]){_28[0]=_28[1];}}}
if(_27[0]>0){this.applyDimRestriction(_29,_27[0],_23.x,_2b,"min");}
if(_27[1]>1){this.applyDimRestriction(_2a,_27[1],_23.y,_2c,"min");}
if(_28[0]>0){this.applyDimRestriction(_29,_28[0],_23.x,_2b,"max");}
if(_28[1]>1){this.applyDimRestriction(_2a,_28[1],_23.y,_2c,"max");}
_20={x1:_29.a1,y1:_2a.a1,x2:_29.a2,y2:_2a.a2};}}}
this.areaCoords=_20;},applyDimRestriction:function(_2d,val,_2f,_30,_31){var _32;if(_31=="min"){_32=((_2d.a2-_2d.a1)<val);}else{_32=((_2d.a2-_2d.a1)>val);}
if(_32){if(_2f==1){_2d.a2=_2d.a1+val;}else{_2d.a1=_2d.a2-val;}
if(_2d.a1<_30.min){_2d.a1=_30.min;_2d.a2=val;}else{if(_2d.a2>_30.max){_2d.a1=_30.max-val;_2d.a2=_30.max;}}}},applyRatio:function(_33,_34,_35,_36){var _37;if(_36=="N"||_36=="S"){_37=this.applyRatioToAxis({a1:_33.y1,b1:_33.x1,a2:_33.y2,b2:_33.x2},{a:_34.y,b:_34.x},{a:_35.y,b:_35.x},{min:0,max:this.imgW});_33.x1=_37.b1;_33.y1=_37.a1;_33.x2=_37.b2;_33.y2=_37.a2;}else{_37=this.applyRatioToAxis({a1:_33.x1,b1:_33.y1,a2:_33.x2,b2:_33.y2},{a:_34.x,b:_34.y},{a:_35.x,b:_35.y},{min:0,max:this.imgH});_33.x1=_37.a1;_33.y1=_37.b1;_33.x2=_37.a2;_33.y2=_37.b2;}},applyRatioToAxis:function(_38,_39,_3a,_3b){var _3c=Object.extend(_38,{});var _3d=_3c.a2-_3c.a1;var _3e=Math.floor(_3d*_39.b/_39.a);var _3f;var _40;var _41=null;if(_3a.b==1){_3f=_3c.b1+_3e;if(_3f>_3b.max){_3f=_3b.max;_41=_3f-_3c.b1;}
_3c.b2=_3f;}else{_3f=_3c.b2-_3e;if(_3f<_3b.min){_3f=_3b.min;_41=_3f+_3c.b2;}
_3c.b1=_3f;}
if(_41!=null){_40=Math.floor(_41*_39.a/_39.b);if(_3a.a==1){_3c.a2=_3c.a1+_40;}else{_3c.a1=_3c.a1=_3c.a2-_40;}}
return _3c;},drawArea:function(){var _42=this.calcW();var _43=this.calcH();var px="px";var _45=[this.areaCoords.x1+px,this.areaCoords.y1+px,_42+px,_43+px,this.areaCoords.x2+px,this.areaCoords.y2+px,(this.img.width-this.areaCoords.x2)+px,(this.img.height-this.areaCoords.y2)+px];var _46=this.selArea.style;_46.left=_45[0];_46.top=_45[1];_46.width=_45[2];_46.height=_45[3];var _47=Math.ceil((_42-6)/2)+px;var _48=Math.ceil((_43-6)/2)+px;this.handleN.style.left=_47;this.handleE.style.top=_48;this.handleS.style.left=_47;this.handleW.style.top=_48;this.north.style.height=_45[1];var _49=this.east.style;_49.top=_45[1];_49.height=_45[3];_49.left=_45[4];_49.width=_45[6];var _4a=this.south.style;_4a.top=_45[5];_4a.height=_45[7];var _4b=this.west.style;_4b.top=_45[1];_4b.height=_45[3];_4b.width=_45[0];this.subDrawArea();this.forceReRender();},forceReRender:function(){if(this.isIE||this.isWebKit){var n=document.createTextNode(" ");var d,el,fixEL,i;if(this.isIE){fixEl=this.selArea;}else{if(this.isWebKit){fixEl=document.getElementsByClassName("imgCrop_marqueeSouth",this.imgWrap)[0];d=Builder.node("div","");d.style.visibility="hidden";var _4e=["SE","S","SW"];for(i=0;i<_4e.length;i++){el=document.getElementsByClassName("imgCrop_handle"+_4e[i],this.selArea)[0];if(el.childNodes.length){el.removeChild(el.childNodes[0]);}
el.appendChild(d);}}}
fixEl.appendChild(n);fixEl.removeChild(n);}},startResize:function(e){this.startCoords=this.cloneCoords(this.areaCoords);this.resizing=true;this.resizeHandle=Event.element(e).classNames().toString().replace(/([^N|NE|E|SE|S|SW|W|NW])+/,"");Event.stop(e);},startDrag:function(e){this.selArea.show();this.clickCoords=this.getCurPos(e);this.setAreaCoords({x1:this.clickCoords.x,y1:this.clickCoords.y,x2:this.clickCoords.x,y2:this.clickCoords.y},false,false,null);this.dragging=true;this.onDrag(e);Event.stop(e);},getCurPos:function(e){var el=this.imgWrap,wrapOffsets=Position.cumulativeOffset(el);while(el.nodeName!="BODY"){wrapOffsets[1]-=el.scrollTop||0;wrapOffsets[0]-=el.scrollLeft||0;el=el.parentNode;}
return curPos={x:Event.pointerX(e)-wrapOffsets[0],y:Event.pointerY(e)-wrapOffsets[1]};},onDrag:function(e){if(this.dragging||this.resizing){var _54=null;var _55=this.getCurPos(e);var _56=this.cloneCoords(this.areaCoords);var _57={x:1,y:1};if(this.dragging){if(_55.x<this.clickCoords.x){_57.x=-1;}
if(_55.y<this.clickCoords.y){_57.y=-1;}
this.transformCoords(_55.x,this.clickCoords.x,_56,"x");this.transformCoords(_55.y,this.clickCoords.y,_56,"y");}else{if(this.resizing){_54=this.resizeHandle;if(_54.match(/E/)){this.transformCoords(_55.x,this.startCoords.x1,_56,"x");if(_55.x<this.startCoords.x1){_57.x=-1;}}else{if(_54.match(/W/)){this.transformCoords(_55.x,this.startCoords.x2,_56,"x");if(_55.x<this.startCoords.x2){_57.x=-1;}}}
if(_54.match(/N/)){this.transformCoords(_55.y,this.startCoords.y2,_56,"y");if(_55.y<this.startCoords.y2){_57.y=-1;}}else{if(_54.match(/S/)){this.transformCoords(_55.y,this.startCoords.y1,_56,"y");if(_55.y<this.startCoords.y1){_57.y=-1;}}}}}
this.setAreaCoords(_56,false,e.shiftKey,_57,_54);this.drawArea();Event.stop(e);}},transformCoords:function(_58,_59,_5a,_5b){var _5c=[_58,_59];if(_58>_59){_5c.reverse();}
_5a[_5b+"1"]=_5c[0];_5a[_5b+"2"]=_5c[1];},endCrop:function(){this.dragging=false;this.resizing=false;this.options.onEndCrop(this.areaCoords,{width:this.calcW(),height:this.calcH()});},subInitialize:function(){},subDrawArea:function(){}};Cropper.ImgWithPreview=Class.create();Object.extend(Object.extend(Cropper.ImgWithPreview.prototype,Cropper.Img.prototype),{subInitialize:function(){this.hasPreviewImg=false;if(typeof(this.options.previewWrap)!="undefined"&&this.options.minWidth>0&&this.options.minHeight>0){this.previewWrap=$(this.options.previewWrap);this.previewImg=this.img.cloneNode(false);this.previewImg.id="imgCrop_"+this.previewImg.id;this.options.displayOnInit=true;this.hasPreviewImg=true;this.previewWrap.addClassName("imgCrop_previewWrap");this.previewWrap.setStyle({width:this.options.minWidth+"px",height:this.options.minHeight+"px"});this.previewWrap.appendChild(this.previewImg);}},subDrawArea:function(){if(this.hasPreviewImg){var _5d=this.calcW();var _5e=this.calcH();var _5f={x:this.imgW/_5d,y:this.imgH/_5e};var _60={x:_5d/this.options.minWidth,y:_5e/this.options.minHeight};var _61={w:Math.ceil(this.options.minWidth*_5f.x)+"px",h:Math.ceil(this.options.minHeight*_5f.y)+"px",x:"-"+Math.ceil(this.areaCoords.x1/_60.x)+"px",y:"-"+Math.ceil(this.areaCoords.y1/_60.y)+"px"};var _62=this.previewImg.style;_62.width=_61.w;_62.height=_61.h;_62.left=_61.x;_62.top=_61.y;}}});;ImageFlow=function(before_scroll_callback,after_scroll_callback){var me=this;var conf_reflection_p=0.5;var conf_focus=4;var conf_slider_width=14;var conf_images_cursor='pointer';var conf_slider_cursor='default';var conf_imageflow='imageflow';var conf_images='images';var conf_captions='captions';var conf_scrollbar='scrollbar';var conf_slider='slider';var caption_id=0;var new_caption_id=0;var current=0;var target=0;var mem_target=0;var timer=0;var array_images=[];var new_slider_pos=0;var dragging=false;var dragobject=null;var dragx=0;var posx=0;var new_posx=0;var xstep=150;var overlay_timer=null;var overlay_delay=500;var overlay_original_image=null;var overlay_element=null;var overlay_element_id="cmyc-coverflow-overlay";var overlay_current_image=null;var current_mouse_position={x:0,y:0};var get_mouse_position=function(){return current_mouse_position;};subscribe_event($(conf_imageflow),function(e){current_mouse_position=e.pointer();},'mousemove');function iefix(element){if(Prototype&&Prototype.Browser.IE){$(element).makePositioned();}}
function active_image(){return img_div.childNodes.item(array_images[caption_id]);}
var mouseover_toggler=null;function show_overlay(){d("[IMAGEFLOW] show_overlay");var_dump();if(active_image()==overlay_current_image){return;}
overlay_current_image=active_image();var current_overlay=new Template('<div id="#{id}" class="imageflow-active-image-overlay" style="position:absolute; z-index:1000;display:none">#{inner_template}</div>');var current_image_object=parse_cmyc_attrib(overlay_current_image);var temp=current_overlay.evaluate({id:overlay_element_id,inner_template:evaltemplate_imageflow(current_image_object)});temp=new Insertion.After($$('#images').first(),temp);after_scroll_callback(overlay_element_id,current_image_object);overlay_element=$(overlay_element_id);Element.clonePosition(overlay_element_id,overlay_current_image,{setLeft:true,setTop:true,setWidth:true,setHeight:true});overlay_element.setStyle({'width':parseInt(overlay_element.getWidth()+1,10)+"px"});if(mouseover_toggler instanceof Cmyc.behaviour.div_toggler.mouseover){mouseover_toggler.destroy();}
mouseover_toggler=new Cmyc.behaviour.div_toggler.mouseover(active_image(),get_mouse_position);}
function reset_overlay(){if(overlay_timer){window.clearTimeout(overlay_timer);overlay_timer=null;}
if(overlay_element){Element.remove(overlay_element);overlay_element=null;}}
function init_overlay(){d("[IMAGEFLOW] ______init_overlay");if(overlay_delay>0){if(overlay_timer){window.clearTimeout(overlay_timer);}
overlay_timer=window.setTimeout(show_overlay,overlay_delay);}else{show_overlay();}}
function step()
{switch(target<current-1||target>current+1)
{case true:reset_overlay();moveTo(current+(target-current)/3);window.setTimeout(step,50);timer=1;break;default:init_overlay();timer=0;break;}}
function glideTo(x,new_caption_id)
{if(typeof before_scroll_callback=="function"){before_scroll_callback();}
target=x;mem_target=x;if(timer==0)
{window.setTimeout(step,50);timer=1;}
caption_id=new_caption_id;caption=img_div.childNodes.item(array_images[caption_id]).getAttribute('alt');if(caption==''){caption='&nbsp;';}
caption_div.innerHTML=caption;if(dragging==false)
{if(new_slider_pos=(scrollbar_width*(-(x*100/((max-1)*xstep)))/100)-new_posx){slider_div.style.marginLeft=(new_slider_pos-conf_slider_width)+'px';}}}
function moveTo(x)
{current=x;var zIndex=max;for(var index=0;index<max;index++)
{var image=img_div.childNodes.item(array_images[index]);var current_image=index*-xstep;if((current_image+max_conf_focus)<mem_target||(current_image-max_conf_focus)>mem_target)
{image.style.visibility='hidden';image.style.display='none';}
else
{var z=Math.sqrt(10000+x*x)+100;var xs=x/z*size+size;image.style.display='block';var new_img_h=(image.h/image.w*image.pc)/z*size;switch(new_img_h>max_height)
{case false:var new_img_w=image.pc/z*size;break;default:new_img_h=max_height;var new_img_w=image.w*new_img_h/image.h;break;}
var new_img_top=(images_width*0.34-new_img_h)+images_top+((new_img_h/(conf_reflection_p+1))*conf_reflection_p);image.style.left=xs-(image.pc/2)/z*size+images_left+'px';if(new_img_w&&new_img_h)
{image.style.height=new_img_h+'px';image.style.width=new_img_w+'px';image.style.top=new_img_top+'px';}
image.style.visibility='visible';switch(x<0)
{case true:zIndex++;break;default:zIndex=zIndex-1;break;}
switch(image.i==caption_id)
{case false:image.onclick=function(){glideTo(this.x_pos,this.i);};break;default:zIndex=zIndex+1;image.onclick=function(){};break;}
image.style.zIndex=zIndex;}
x+=xstep;}}
function refresh(onload)
{imageflow_div=document.getElementById(conf_imageflow);img_div=document.getElementById(conf_images);scrollbar_div=document.getElementById(conf_scrollbar);slider_div=document.getElementById(conf_slider);caption_div=document.getElementById(conf_captions);images_width=img_div.offsetWidth;images_top=imageflow_div.offsetTop;images_left=imageflow_div.offsetLeft;max_conf_focus=conf_focus*xstep;size=images_width*0.5;scrollbar_width=images_width*0.6;conf_slider_width=conf_slider_width*0.5;max_height=images_width*0.51;imageflow_div.style.height=max_height+'px';img_div.style.height=images_width*0.338+'px';caption_div.style.width=images_width+'px';caption_div.style.marginTop=images_width*0.03+'px';scrollbar_div.style.marginTop=images_width*0.02+'px';scrollbar_div.style.marginLeft=images_width*0.2+'px';scrollbar_div.style.width=scrollbar_width+'px';slider_div.onmousedown=function(){dragstart(this);};slider_div.style.cursor=conf_slider_cursor;max=img_div.childNodes.length;var i=0;for(var index=0;index<max;index++)
{var image=img_div.childNodes.item(index);if(image.nodeType==1)
{array_images[i]=index;image.onclick=function(){glideTo(this.x_pos,this.i);};image.x_pos=(-i*xstep);image.i=i;if(onload==true)
{image.w=image.width||image.getAttribute("width");image.h=image.height||image.getAttribute("height");}
switch((image.w+1)>(image.h/(conf_reflection_p+1)))
{case true:image.pc=118;break;default:image.pc=100;break;}
image.style.cursor=conf_images_cursor;i++;}}
max=array_images.length;moveTo(current);glideTo(current,caption_id);}
function show(id)
{var element=document.getElementById(id);element.style.visibility='visible';}
function hide(id)
{var element=document.getElementById(id);element.style.visibility='hidden';element.style.display='none';}
var init=function(){if(document.getElementById(conf_imageflow))
{iefix('images');refresh(true);show(conf_images);show(conf_scrollbar);initMouseWheel();initMouseDrag();registerButtons();}};window.onresize=function(event)
{};window.onunload=function()
{try{document=null;}catch(err){}};function handle(delta)
{var change=false;switch(delta>0)
{case true:if(caption_id>=1)
{target=target+xstep;new_caption_id=caption_id-1;change=true;}
break;default:if(caption_id<(max-1))
{target=target-xstep;new_caption_id=caption_id+1;change=true;}
break;}
if(change==true)
{glideTo(target,new_caption_id);}}
function wheel(event)
{var delta=0;if(!event){event=window.event;}
if(event.wheelDelta)
{delta=event.wheelDelta/120;}
else if(event.detail)
{delta=-event.detail/3;}
if(delta){handle(delta);}
if(event.preventDefault){event.preventDefault();}
event.returnValue=false;}
function initMouseWheel()
{if(window.addEventListener){imageflow_div.addEventListener('DOMMouseScroll',wheel,false);}
imageflow_div.onmousewheel=wheel;}
function dragstart(element)
{dragobject=element;dragx=posx-dragobject.offsetLeft+new_slider_pos;}
function dragstop()
{dragobject=null;dragging=false;}
function drag(e)
{posx=document.all?window.event.clientX:e.pageX;if(dragobject!=null)
{dragging=true;new_posx=(posx-dragx)+conf_slider_width;if(new_posx<(-new_slider_pos)){new_posx=-new_slider_pos;}
if(new_posx>(scrollbar_width-new_slider_pos)){new_posx=scrollbar_width-new_slider_pos;}
var slider_pos=(new_posx+new_slider_pos);var step_width=slider_pos/((scrollbar_width)/(max-1));var image_number=Math.round(step_width);var new_target=(image_number)*-xstep;var new_caption_id=image_number;dragobject.style.left=new_posx+'px';glideTo(new_target,new_caption_id);}}
function initMouseDrag()
{document.onmousemove=drag;document.onmouseup=dragstop;document.onselectstart=function()
{if(dragging==true)
{return false;}
else
{return true;}};}
function getKeyCode(event)
{event=event||window.event;return event.keyCode;}
document.onkeydown=function(event)
{var charCode=getKeyCode(event);switch(charCode)
{case 39:handle(-1);break;case 37:handle(1);break;}};function scrollRelative(delta){var change=false;if(delta>0){delta=Math.min(caption_id,delta);if(caption_id>=1){target=target+(xstep*delta);new_caption_id=caption_id-delta;change=true;}}else{delta=Math.max(-(max-1-caption_id),delta);if(caption_id<(max-1)){target=target+(xstep*delta);new_caption_id=caption_id-delta;change=true;}}
if(change==true){glideTo(target,new_caption_id);}}
function registerButtons(){var delta=1;var temp=null;temp=document.getElementById('imageflowPreviousImage');if(temp){temp.onclick=function(){scrollRelative(delta);};}
temp=document.getElementById('imageflowNextImage');if(temp){temp.onclick=function(){scrollRelative(-delta);};}}
function var_dump(){if(typeof console!="undefined"){}}
window.onload=init;var startup_timer=null;this.start_wait_for_images=function(){var test=false;test=$$('#imageflow #images IMG').find(function(img){return!img.complete;});if(test){startup_timer=window.setTimeout(me.start_wait_for_images,100);}else{if(startup_timer){window.clearTimeout(startup_timer);}
init();}};};;var evaltemplate_imageflow=function(image_data){d("evaltemplate_imageflow",image_data);if(typeof image_data=="undefined"){image_data={};}
var style_hide='display:none';var data={cmyc_attribs:new Template('cmyc="id:#{id},user_id:#{user_id}"').evaluate(image_data),image_user_name:image_data.image_user_name,image_title:image_data.image_title,price_text:(true||image_data.price_forfree?'':' - <span class="mediathekMediaPriceText">'+image_data.price_text+' &euro;</span>'),hide_add_to_shoppingcart:style_hide,hide_add_to_playlist:(Cmyc.singletons.login.is_logged_in()?'':style_hide),hide_download:(!image_data.price_forfree||!image_data.can_download==1?style_hide:'')};if(image_data.owner_viewing_own_mediafile==1){data.hide_add_to_shoppingcart=style_hide;data.hide_download=(!image_data.can_download?style_hide:'');}
switch(image_data.overlay_option){case"edit-permission_viewing-creator-profile":return new Template('\
\
<!-- edit-permission_viewing-creator-profile -->\
<div class="edit-permission_viewing-creator-profile coverFlowListWrap">\
<div class="captionTxt"><a href="#" #{cmyc_attribs} class="cmyc-show-profile">#{image_user_name}</a><span class="mediathekMediaTitle"> - #{image_title}#{price_text}</span></div>\
 <ul class="coverFlowList">\
  <li><a href="#" #{cmyc_attribs} class="playMainPlayer cmyc-play-video">Im Hauptplayer abspielen</a></li>\
  <li><a href="#" #{cmyc_attribs} class="editFile cmyc-edit-file">Datei bearbeiten</a></li>\
  <li style="#{hide_add_to_playlist}"><a href="#" #{cmyc_attribs} class="addPlayList cmyc-show-add-to-playlist">zur Playlist hinzuf&uuml;gen</a></li>\
  <li style="#{hide_add_to_shoppingcart}"><a href="#" #{cmyc_attribs} class="addShoppingcart cmyc-show-add-to-shoppingcart" >zum Warenkorb hinzuf&uuml;gen</a></li>\
  <li style="#{hide_download}"><a href="#" #{cmyc_attribs} class="download cmyc-download-file">download</a></li>\
 </ul>\
</div>\
\
').evaluate(data);break;case"no-edit-permission_viewing-creator-profile":return new Template('\
\
<!-- no-edit-permission_viewing-creator-profile -->\
<div class="no-edit-permission_viewing-creator-profile coverFlowListWrap">\
<div class="captionTxt"><a href="#" #{cmyc_attribs} class="cmyc-show-profile">#{image_user_name}</a><span class="mediathekMediaTitle"> - #{image_title}#{price_text}</span></div>\
 <ul class="coverFlowList">\
  <li><a href="#" #{cmyc_attribs} class="playMainPlayer cmyc-play-video">Im Hauptplayer abspielen</a></li>\
  <li><a href="#" #{cmyc_attribs} class="fileInfo cmyc-show-info">Infos zur Datei</a></li>\
  <li style="#{hide_add_to_playlist}"><a href="#" #{cmyc_attribs} class="addPlayList cmyc-show-add-to-playlist">zur Playlist hinzuf&uuml;gen</a></li>\
  <li style="#{hide_add_to_shoppingcart}"><a href="#" #{cmyc_attribs} class="addShoppingcart cmyc-show-add-to-shoppingcart">zum Warenkorb hinzuf&uuml;gen</a></li>\
  <li style="#{hide_download}"><a href="#" #{cmyc_attribs} class="download cmyc-download-file">download</a></li>\
 </ul>\
</div>\
\
').evaluate(data);break;case"edit-permission_not-viewing-creator-profile":return new Template('\
\
<!-- edit-permission_not-viewing-creator-profile --> \
<div class="edit-permission_not-viewing-creator-profile coverFlowListWrap">\
<div class="captionTxt"><a href="#" #{cmyc_attribs} class="cmyc-show-profile">#{image_user_name}</a><span class="mediathekMediaTitle"> - #{image_title}#{price_text}</span></div>\
 <ul class="coverFlowList">\
  <li><a href="#" #{cmyc_attribs} class="profile cmyc-show-profile">Zum Profil</a></li>\
  <li><a href="#" #{cmyc_attribs} class="editFile cmyc-edit-file">Datei bearbeiten</a></li>\
  <li style="#{hide_add_to_playlist}"><a href="#" #{cmyc_attribs} class="addPlayList cmyc-show-add-to-playlist">zur Playlist hinzuf&uuml;gen</a></li>\
  <li style="#{hide_add_to_shoppingcart}"><a href="#" #{cmyc_attribs} class="addShoppingcart cmyc-show-add-to-shoppingcart">zum Warenkorb hinzuf&uuml;gen</a></li>\
  <li style="#{hide_download}"><a href="#" #{cmyc_attribs} class="download cmyc-download-file">download</a></li>\
 </ul>\
</div>\
\
').evaluate(data);break;case"no-edit-permission_not-viewing-creator-profile":return new Template('\
\
<!-- no-edit-permission_not-viewing-creator-profile -->\
<div class="edit-permission_not-viewing-creator-profile coverFlowListWrap">\
<div class="captionTxt"><a href="#" #{cmyc_attribs} class="cmyc-show-profile">#{image_user_name}</a><span class="mediathekMediaTitle"> - #{image_title}#{price_text}</span></div>\
 <ul class="coverFlowList">\
  <li><a href="#" #{cmyc_attribs} class="profile cmyc-show-profile">Zum Profil</a></li>\
  <li><a href="#" #{cmyc_attribs} class="fileInfo cmyc-show-info">Infos zur Datei</a></li>\
  <li style="#{hide_add_to_playlist}"><a href="#" #{cmyc_attribs} class="addPlayList cmyc-show-add-to-playlist">zur Playlist hinzuf&uuml;gen</a></li>\
  <li style="#{hide_add_to_shoppingcart}"><a href="#" #{cmyc_attribs} class="addShoppingcart cmyc-show-add-to-shoppingcart">zum Warenkorb hinzuf&uuml;gen</a></li>\
  <li style="#{hide_download}"><a href="#" #{cmyc_attribs} class="download cmyc-download-file">download</a></li>\
 </ul>\
</div>\
\
').evaluate(data);break;default:return image_data.overlay_option;break;}};var evaltemplate_default_dialog=function(data){return new Template('\
<div id="overlayHeadOuterSmall" class="clearfix">\
 <div id="overlayHeadSmall">\
  <h1>#{title}</h1>\
  <span class="closeBtn cmyc-window-close"><a href="#">Dieses Fenster schlie&szlig;en</a></span>\
 </div>\
</div>\
\
<div id="overlayOuterSmall" >\
 <div id="overlaySmall">\
  <p>\
  #{content}\
  </p>\
  <span class="btnLinkAction">\
   <span>\
    <a class="cmyc-window-close" cmyc="#{cmyc_attribute}" href="#">Fenster schließen</a>\
   </span>\
  </span>\
 </div>\
</div>\
').evaluate(data||{});};var evaltemplate_confirm_dialog=function(data){return new Template('\
<div id="overlayHeadOuterSmall" class="clearfix">\
 <div id="overlayHeadSmall">\
  <h1>#{title}</h1>\
  <span class="closeBtn cmyc-window-close"><a href="#">Dieses Fenster schlie&szlig;en</a></span>\
 </div>\
</div>\
\
<div id="overlayOuterSmall" >\
 <div id="overlaySmall">\
  <p>\
  #{content}\
  </p>\
  <div class="buttonHolder standalone">\
    <span class="buttonWrapOutter"><input class="ok_button cmyc-window-ok-button" cmyc="#{cmyc_attribute}" type="button" value="#{ok_button_label}"/></span>\
    <span class="buttonWrapOutter"><input class="cancel_button cmyc-window-cancel-button" cmyc="#{cmyc_attribute}" type="button" value="#{cancel_button_label}"/></span>\
  </div\
 </div>\
</div>\
').evaluate(data||{});};var evaltemplate_mediathek_empty=function(data){if(data.own_profile){return new Template('\
  <center>\
   <div id="cmyc-empty-mediathek" style="margin-top:130px">\
    <div id="" style="color:white;margin-bottom:10px;">Es sind momentan keine Dateien vorhanden.</div>\
    <div class="addFile clickable">\
     <a href="#{upload_url}"><span>Datei hochladen</span></a>\
    </div>\
   </div>\
  </center>\
  ').evaluate(data||{});}else{return new Template('\
  <center>\
   <div id="cmyc-empty-mediathek" style="margin-top:130px">\
    <div id="" style="color:white;margin-bottom:10px;">Es sind momentan keine Dateien vorhanden.</div>\
   </div>\
  </center>\
  ').evaluate(data||{});}};var evaltemplate_lightbox=function(data){return new Template('\
  <div id="overlayHeadPlain">\
   <span class="closeBtn cmyc-window-close">Dieses Fenster schlie&szlig;en</span>\
  </div>\
  <div id="overlayOuterPlain">\
   <div id="overlayPlain" class="clearfix">\
    <img id="cmyc-lightbox-image" src="#{src}" width="#{width}" height="#{height}" />\
    <a id="cmyc-lightbox-previous" class="lightbox-previous" style="display:none;"></a>\
    <a id="cmyc-lightbox-next" class="lightbox-next" style="display:none;"></a>\
   </div>\
  </div>\
 ').evaluate(data||{});};var evaltemplate_playlist_create=function(data){return new Template('\
 <div id="overlayHeadOuterSmall" class="clearfix">\
  <div id="overlayHeadSmall">\
   <h1>Playlist anlegen</h1>\
    <span class="closeBtn cmyc-window-close"><a href="#">Dieses Fenster schlie&szlig;en</a></span>\
  </div>\
 </div>\
 <div id="overlayOuterSmall">\
  <div id="overlaySmall">\
   <form action="#{form_url}" class="cmyc-create-playlist-form">\
   <fieldset class="playlist">\
    <label for="newPlaylist">\
     <span>Neue Playlist anlegen</span>\
     <input id="newPlaylist" class="text" type="text" name="new_playlist_name"/>\
    </label>\
   </fieldset>\
   <div class="submit"><input type="submit" value="Playlist anlegen" /></div>\
   <div id="ajaxIndicator" style="display:none"><img width="16" height="16" class="loadingAni" alt="" src="images/ani_indicator_small.gif"/></div>\
   <div id="windowErrors"></div>\
   </form>\
  </div>\
 </div>\
 ').evaluate(data||{});};;Cmyc=(window.Cmyc||Cmyc||{});Cmyc.config={enable_logging:false,enabled_log_levels:{'log':true,'warn':true,'error':true,'debug':true,'info':true},ie_alert_if_error:false,profiling_enabled:false,polling_enabled:true,polling_interval:60000,polling_first_request_delay:60000,modal_window_disturbing_elements:['#imageflow','#sliderOuter','#playerMain','span .online','#cmyc-profile-slider-next-button','#cmyc-profile-slider-previous-button','#cmyc-mediathek-upload-file'],advertisement_slide_open_delay:3500,debug_events:true,debug_inline_javascript_synchronization:false,required_flash_version:9};;Cmyc=(window.Cmyc||Cmyc||{});Cmyc.framework={};Cmyc.framework.events={pre_init:"cmyc:pre_init",init:"cmyc:init",element_pre_update_by_ajax_updater:"cmyc:element_pre_update_by_ajax_updater",element_updated_by_ajax_updater:"cmyc:element_updated_by_ajax_updater"};Cmyc.namespace=function(){var a=arguments,o=null,i,j,d;for(i=0;i<a.length;i=i+1){d=a[i].split(".");o=Cmyc;for(j=(d[0]==="Cmyc")?1:0;j<d.length;j=j+1){o[d[j]]=o[d[j]]||{};o=o[d[j]];}}
return o;};Cmyc.log=function(){var args=$A(arguments);var log_level=args.shift();if(!Cmyc.config.enable_logging){return;}
if(!Cmyc.config.enabled_log_levels[log_level]===true){return;}
if(typeof console!=="undefined"){if(Prototype.Browser.IE){if(args.length>1){try{console[log_level]("<<<");}catch(err){}}
args.each(function(a){try{console[log_level](a);}catch(err2){}});if(args.length>1){try{console[log_level](">>>");}catch(err3){}}
if(Cmyc.config.ie_alert_if_error&&log_level==="error"){alert("IE: JS ERROR please check your javascript console!");}}else{if(typeof console!=="undefined"&&typeof console[log_level]==="function"){console[log_level].apply(this,args);}}}};var l=(window.l||Cmyc.log.curry("log"));var w=(window.w||Cmyc.log.curry("warn"));var e=(window.e||Cmyc.log.curry("error"));var d=(window.d||Cmyc.log.curry("debug"));var info=(window.info||Cmyc.log.curry("info"));l("FILE: cmyc-framework.js: logging functions loaded");Cmyc.namespace('datastorage');Cmyc.datastorage=new function(){var objects_data={};this.register_js_data=function(object_id,object_data){l("register_js_data",arguments);if(typeof object_id=="undefined"){w("REGISTER_JS_DATA: missing parameter1 object_id",arguments);}
if(typeof objects_data[object_id]!=="undefined"){w("REGISTER_JS_DATA: overwriting data for existing ID",object_id,Object.clone(objects_data[object_id]));}
if(typeof object_data=="undefined"){e("REGISTER_JS_DATA: missing parameter2 object_data",arguments);}
if(typeof object_data=="string"){try{object_data=object_data.evalJSON();}catch(err){w("REGISTER_JS_DATA: misformatted JSON!",object_data);}}
objects_data[object_id]=object_data;};this.read_js_data=function(object_id){return objects_data[object_id]||false;};this.dump=function(){return objects_data;};}();Cmyc.helpers=Cmyc.helpers||{};Cmyc.helpers.call_inline_javascript_synchronized=function(callback,nearest_dom_element){var initialized=false;var debug=Cmyc.config.debug_inline_javascript_synchronization||false;var mylogger={d:debug?d:noop,w:debug?w:noop,info:debug?info:noop,l:debug?l:noop};var element_updated_test=function(event){mylogger.l("element_updated_test",event);var dom_element=event.memo;mylogger.d("element_updated_test",dom_element,nearest_dom_element);if(typeof nearest_dom_element==="undefined"){return;}
nearest_dom_element=$(nearest_dom_element);if(nearest_dom_element){nearest_dom_element.identify();var test=dom_element.down('#'+nearest_dom_element.id);if(typeof test!=="undefined"&&test){mylogger.w("JAVASCRIPT_SYNCHRONIZED executing callback ON CMYC:element_updated_by_ajax_updater",dom_element,nearest_dom_element);callback();}else{mylogger.d("is not is_child_of_updated_dif",dom_element,nearest_dom_element);}}else{mylogger.w("Cmyc.helpers.call_inline_javascript_synchronized: cannot find specified nearest_dom_element:",nearest_dom_element);}};mylogger.w("JAVASCRIPT_SYNCHRONIZED registering sync'ed js",callback,nearest_dom_element);document.observe("dom:loaded",function(){mylogger.w("JAVASCRIPT_SYNCHRONIZED got dom:loaded event executing callback",callback,nearest_dom_element);callback();});if(typeof nearest_dom_element!=="undefined"){document.observe(Cmyc.events.element_updated_by_ajax_updater,element_updated_test);}};var call_inline_javascript_synchronized=Cmyc.helpers.call_inline_javascript_synchronized;Cmyc.namespace('helpers');Cmyc.helpers.url={encode:function(action_name,further_params){further_params=further_params||{};var ret="index.php?action="+(action_name||'');if(Object.isString(further_params)){ret+="&"+further_params;}else{ret+="&"+Object.toQueryString(further_params);}
return ret;},find_anchor:function(url){var test=url.split('#');if(test.length>1){return test[1];}else{return'';}},current_action_name:function(){return location.href.toQueryParams().action;},reload:function(){var params=location.href.toQueryParams();var action=params.action;if(typeof params.deeplink!=="undefined"){delete params.deeplink;}
delete params.action;var new_location=Cmyc.helpers.url.encode(action,params);if(location.href==new_location){location.reload();}else{location.href=new_location;}},get_url_param:function(param_name,default_return){default_return=default_return||"";var temp=location.href.toQueryParams();if(typeof temp[param_name]!=="undefined"){return temp[param_name];}
return default_return;}};Cmyc.helpers.parse_cmyc_attribute=function(dom_element){var object={};if(dom_element&&dom_element.id){l("FOUND AN ID, TRYING TO GET DATA FROM Cmyc.datastorage");var test=Cmyc.datastorage.read_js_data(dom_element.id);if(test){l("returning",test);return test;}}
if(dom_element){var cmyc=$(dom_element).getAttribute('cmyc');if(cmyc){try{if(!(cmyc.startsWith('{')&&cmyc.endsWith('}'))){cmyc='{'+cmyc+'}';}
object=cmyc.evalJSON();}catch(exeption){w("parse_cmyc_attribute: error parsing cmyc attribute",dom_element,cmyc);}}else{return false;}}else{w("parse_cmyc_attribute: dom_element does not exist!",dom_element);}
return object;};Cmyc.helpers.flashdetection={required_flash_version_installed:function(){if(typeof Prototype.Browser.Plugins.Flash!="undefined"&&typeof Prototype.Browser.Plugins.Flash.version!="undefined"){return Prototype.Browser.Plugins.Flash.version>=Cmyc.config.required_flash_version;}else{w("Cmyc.helpers.flashdetection: cannot find prototype extion for flash plugin","Object not found: Prototype.Browser.Plugins.Flash",Prototype.Browser.Plugins);}
return false;}};Cmyc.helpers.parse_iframe_content=function(iframe){var tmp,ret={error:"could not parse iframe content!",iframe:iframe};if(iframe&&iframe.contentWindow&&iframe.contentWindow.document){if(iframe.contentWindow.document.body){tmp=iframe.contentWindow.document.body;if(tmp.firstChild&&tmp.firstChild.tagName&&tmp.firstChild.tagName.toUpperCase()==="PRE"){try{ret=tmp.firstChild.innerHTML.evalJSON();}catch(err){e(ret.error,ret,err);}}else if(tmp.innerHTML){try{ret=tmp.innerHTML.evalJSON();}catch(err2){e(ret.error,ret,err2);}}}else{ret=iframe.contentWindow.document.documentElement.innerHTML.evalJSON();}}
return ret;};Cmyc.helpers.get_cmyc_property=function(dom_element,property){return Cmyc.helpers.parse_cmyc_attribute(dom_element)[property];};Cmyc.helpers.set_cmyc_attribute=function(dom_element,object){dom_element.writeAttribute('cmyc',Object.toJSON(object));};Cmyc.helpers.set_cmyc_property=function(dom_element,property,value){var cur_object=Cmyc.helpers.parse_cmyc_attribute(dom_element);cur_object.property=value;Cmyc.helpers.set_cmyc_attribute(dom_element,cur_object);};Cmyc.helpers.ajax_updater_by_action=function(container,action,params){return new Ajax.Updater(container,Cmyc.helpers.url.encode(action,params),{evalScripts:true});};Cmyc.helpers.alert_not_yet_implemented=function(){show_dialogue("Hinweis","Diese Funktion steht erst in Kürze zur Verfügung.");};Cmyc.helpers.document_is_own_profile=function(){var query_params=document.location.href.toQueryParams();return(query_params.action==='showProfile'&&(typeof query_params.id==="undefined"||query_params.id===Cmyc.user.user_id));};Cmyc.helpers.cookies=new function(){var me=this;var init=function(){var allCookies=document.cookie.split('; ');for(var i=0;i<allCookies.length;i++){var cookiePair=allCookies[i].split('=');me[cookiePair[0]]=cookiePair[1];}};this.create=function(name,value,days){var expires="";if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));expires="; expires="+date.toGMTString();}
else{expires="";}
document.cookie=name+"="+value+expires+"; path=/";me[name]=value;};this.erase=function(name){me.create(name,'',-1);me[name]=undefined;};init();}();Cmyc.helpers.string={unique_id:function(){var now;return"uniqueid"+Math.round(Math.random(now=new Date())*now);}};Cmyc.helpers.dom={find_elements:function(elements,root_element){root_element=root_element||document.body;if(Object.isString(elements)){if(elements.match(/^\.[\w\-]+$/)){var css_class=elements.replace('.','');return $A(root_element.getElementsByClassName(css_class));}
return root_element.select(elements);}else{if(Object.isArray(elements)){return elements;}else{return[].concat(elements);}}},find_element:function(elements){return Cmyc.helpers.dom.find_elements(elements).first();}};Cmyc.helpers.loader={load_script_synchronised:function(script_url,callback){var s=document.createElement("script");s.id=Cmyc.helpers.string.unique_id();s.type="text/javascript";s.src=script_url;var find_script=$$("script[src="+script_url+"]");if(!find_script.first()){if(Prototype.Browser.IE){s.onreadystatechange=function(){if(this.readyState==="loaded"||this.readyState==="complete"){d("load_script_synchronised: callback IE after script loaded");callback();d("load_script_synchronised:callback done");}};}else{s.onload=function(){d("load_script_synchronised: callback other browsers after script loaded");callback();d("load_script_synchronised:callback done");};}
$$("HEAD").first().appendChild(s);d("load_script_synchronised: script tag appended");}else{d("load_script_synchronised: script "+script_url+"already loaded");callback();d("load_script_synchronised:callback done");}}};Cmyc.helpers.events={clear_event:function(elements,event_name){Cmyc.helpers.dom.find_elements(elements).invoke('stopObserving',event_name||"click");},capture_event:function(elements,callback,event_name){Cmyc.helpers.events.subscribe_event(elements,callback,event_name,true);},subscribe_event:function(elements,callback,event_name,stop_event){if(Cmyc.config.debug_events){d('subscribe_event',elements,callback,event_name,stop_event);}
if(typeof elements==="undefined"){w("subscribe_event: element to subscribe is empty!",arguments);if(arguments.callee.caller){w("CALLING FUNCTION:",arguments.callee.caller);}}
if(Object.isArray(elements)&&elements.length===0){if(Cmyc.config.debug_events){d("elements to subscribe are empty!");}
return;}
event_name=event_name||'click';stop_event=stop_event||false;var observe_elements=Cmyc.helpers.dom.find_elements(elements);if(Object.isString(observe_elements)||(Object.isArray(observe_elements)&&observe_elements.length>0)){if(stop_event){observe_elements.invoke('stopObserving',event_name);}
var callback_function=function(event){if(stop_event){Event.stop(event);}
if(typeof callback==="function"){callback(event);}};observe_elements.invoke('observe',event_name,callback_function);}else{info("SUBSCRIBER-INFO: no elements found",elements);}},fire_custom_event:function(event_string,data){if(event_string!==""){if(Cmyc.config.debug_events){d("firing event",event_string,data);}
document.fire(event_string,data);}},subscribe_custom_event:function(event_string,callback){if(event_string!==""){if(Cmyc.config.debug_events){d("subscribing event",event_string,callback);}
document.observe(event_string,callback);}},capture_click_events_from_hash:function(master_div,hash){hash.each(function(capture_click_event){capture_event(find_elements(capture_click_event.key,master_div),capture_click_event.value);});}};Cmyc.helpers.form=new function(){var input_error_class='formError';var error_message_template=new Template('<span class="errorMessage">'+'<span>Fehler:</span> #{message}</span>');this.hilite_errors=function(form,errors,errormessages_container){form=form.elements?form:$(form);if(form&&errors){var input_elements=$A(form.getElements()).reject(function(e){return(e.type==='button'||e.type==='submit'||e.type==='cancel');});$A(input_elements).each(function(element){var name=element.getAttribute("name");if(name===null){return;}
name=name.replace("[]","");var matches=name.match(/\[([\w\-]+)\]$/);name=matches?matches[1]:name;if(name in errors){element.addClassName(input_error_class);}else{element.removeClassName(input_error_class);}});var errorMessages='';Object.values(errors).each(function(error){errorMessages+=error_message_template.evaluate(error)+'\n';});$(errormessages_container).update(errorMessages);}};this.unhilite_all_errors=function(form,errormessage_container){this.hilite_errors(form,{},errormessage_container);};this.register_dependent_selects=function(form){l("register dependent selects called");var dependencies={};var Dependency=function(slave_element,toggle_element_id,condition_value){this.element=slave_element;this.toggle_element=$(toggle_element_id)||false;this.condition_value=condition_value||true;};var find_dependencies_by_id=function(master_element_id){if(typeof dependencies[master_element_id]==="undefined"){return[];}
return dependencies[master_element_id];};var add_dependency=function(master_element_id,slave_element,toggle_element_id,condition_value){d("___add_dependency master_element_id="+master_element_id);var master_element=$(master_element_id);var key=master_element_id;if(!dependencies[key]){dependencies[key]=[];}
dependencies[key].push(new Dependency(slave_element,toggle_element_id,condition_value));d("added dependency for "+key+":",dependencies[key]);};var perform_on_dependencies=function(callback){for(var dep in dependencies){callback(dep);}};var update_form_element_visibilty=function(change_event){d("update_form_element_visibilty___onchange",change_event);d("dependencies:::",dependencies);d("key="+change_event.target.id);find_dependencies_by_id(change_event.target.id).each(function(slave_element){d("processing slave element:"+slave_element.element.name);if(slave_element.condition_value===$F(change_event.target)){d("showing toggle_element: "+slave_element.toggle_element.id);if(!slave_element.toggle_element.visible()){slave_element.toggle_element.show();}
var fake_event=slave_element.element.fire("change");update_form_element_visibilty(fake_event);}else{d("hiding toggle_element: "+slave_element.toggle_element.id);if(slave_element.toggle_element.visible()){slave_element.toggle_element.hide();}
d("slave_element:",slave_element);hide_all_slaves(slave_element);}});};var hide_all_slaves=function(dependency){d("hide_all_slaves:",arguments);var element_id=dependency.element.id;find_dependencies_by_id(element_id).each(function(slave_element){d("hiding toggle_element: "+slave_element.toggle_element.id);if(slave_element.toggle_element.visible()){slave_element.toggle_element.hide();}
d("recursively calling hide_all_slaves. slave_element:",slave_element);hide_all_slaves(slave_element);});};form.select('.cmyc-dependent-select').each(function(e){var master_element_id=Cmyc.helpers.parse_cmyc_attribute(e).master_element_id;if(master_element_id){add_dependency(master_element_id,e,Cmyc.helpers.parse_cmyc_attribute(e).toggle_element||e.getAttribute("id")||e,Cmyc.helpers.parse_cmyc_attribute(e).condition_value);}else{}});var fake_event=null;perform_on_dependencies(function(dep){$(dep).observe('change',update_form_element_visibilty);fake_event=$(dep).fire("change");update_form_element_visibilty(fake_event);});d("Register dependent selects finished",dependencies);};this.add_ajax_response_handler=function(config){var secret_hidden_iframe_id="secret-hidden-iframe";var ajax_locked=false;config=config||{};var form=config.form;if(!form){e("config.form invalid - not adding ajax response handler!");return;}
var url='';if(config.url_param_action){url=Cmyc.helpers.url.encode(config.url_param_action);}else if(form.readAttribute('action')){url=form.readAttribute('action');}
d(form,url);var error_container=$(config.error_container||'windowErrors');var success_container=$(config.success_container||'windowErrors');var modal_window=config.modal_window||false;var ajax_indicator=$(config.ajax_indicator||'ajaxIndicator')||false;var update_form_from_result=function(response,result){l("update_form_from_result - got result:",arguments);result=result||response.responseJSON;if(ajax_indicator){ajax_indicator.hide();}
if(typeof config.callback==="function"){d("--- calling config.callback");config.callback(response,result);return;}
if(!result){e("got wrong response from controller! JSON expected, but got:",response.responseText);return;}
var forward_url='';if(result.success){l("result.success");if(error_container){Cmyc.helpers.form.unhilite_all_errors(form,error_container);}
if(typeof config.before_success_callback==="function"){config.before_success_callback(result);}
if(typeof config.success_callback==="function"){config.success_callback(result);}else if(result.success.forward_url){forward_url=result.success.forward_url;if(modal_window){l('success-modal window',modal_window,forward_url);modal_window.setAjaxContent(forward_url,{method:'get'});}else{l('regular redirect',forward_url);document.location.href=forward_url;}}else if(result.success.message){success_container.update(result.success.message);if(result.success.show_elements){l("result.success.show_elements",result.success.show_elements,$$(result.success.show_elements));$$(result.success.show_elements).invoke('show');}
if(result.success.hide_elements){$$(result.success.hide_elements).invoke('hide');}}else if(result.success.close_modal_window&&modal_window){l("result.success.close_modal_window");modal_window.close();}else{w("!!!WARNING!!! SERVER RESPONDED with result.success","Should be result.success.message OR result.success.forward_url");success_container.update(result.success);}}else if(result.errors){l("result.errors",form,result.errors);Cmyc.helpers.form.hilite_errors(form,result.errors,error_container);}};var send_form_via_ajax=function(event){d("add_ajax_response_handler: send_form_via_ajax");if(ajax_locked){l("Locked while ajax request is unanswered");Event.stop(event);return;}
if(typeof config.before_submit==="function"){config.before_submit();}
ajax_locked=true;[success_container,error_container].compact().invoke('update');if(ajax_indicator){ajax_indicator.show();}
if(form.getAttribute("enctype")==="multipart/form-data"){l("SPECIAL: multipart form: hidden iframe");d("form-target:",form.target);if($(secret_hidden_iframe_id)){$(secret_hidden_iframe_id).remove();}
d("inserting "+secret_hidden_iframe_id+" iframe");document.body.insert({bottom:'<iframe id="'+secret_hidden_iframe_id+'"'+' src="javascript:false;"'+' name="'+secret_hidden_iframe_id+'"'+' style="width:0;height:0;border:0px solid #fff;display:none"></iframe>'});d("new iframe:",$(secret_hidden_iframe_id));Element.observe(secret_hidden_iframe_id,"load",function(ele){var result=Cmyc.helpers.parse_iframe_content($(secret_hidden_iframe_id));l("send_form_via_ajax: result parsed from iframe:",result);update_form_from_result(null,result);ajax_locked=false;d("success");});form.target=secret_hidden_iframe_id;d("form-target:",form.target);}else{Event.stop(event);var form_request=new Ajax.Request(url,{parameters:form.serialize(true),method:'POST',onSuccess:function(response,result){update_form_from_result(response,result);ajax_locked=false;},onFailure:function(response,result){e("REQUEST FAILED!",response,result);ajax_locked=false;return;},requestHeaders:{'X-Requested-With':'XMLHttpRequest'}});}};var observe_submit_buttons=function(){var submit_buttons=form.select("input[type='submit'], button[type='submit']");submit_buttons.invoke('observe','mousedown',function(event){var button=event.element();submit_buttons.each(function(element){var _button=element.next('input[name='+element.name+']&&[type=hidden]');if(_button){_button.remove();}});var input=button.next('input[name='+button.name+']&&[type=hidden]');var button_value=null;if(Prototype.Browser.IE&&typeof button.outerHTML=='string'){var matches=button.outerHTML.match(/value=("|')?(\w+)("|')?/);if(matches){button_value=matches[2];}}else{button_value=button.readAttribute('value');}
if(!input){input=new Element('input',{'type':'hidden','name':button.name,'value':button_value});button.insert({after:input});}});}
Cmyc.helpers.events.clear_event(form,'submit');form.observe('submit',send_form_via_ajax);if(config.observe_submit_buttons===true){observe_submit_buttons();}};this.submit=function(form){var name='_final_submit_';var input=form.down("input[name='"+name+"']");if(!input){input=new Element("input",{"type":"submit","name":name,"style":"display: none;"});form.appendChild(input);}
prepare_form_action_querystring_parameter_on_submit(form);if(input){input.click();}};var prepare_form_action_querystring_parameter_on_submit=function(form){if(form.method.toLowerCase()!='post')return;var params=form.readAttribute('action').toQueryParams();for(var key in params){var input=form.down("input[name='"+key+"']");if(!input){input=new Element('input',{'type':'hidden','name':key,'value':params[key]});form.appendChild(input);}};}}();Cmyc.helpers.listscroller=function(config){var blocked=false;var me=this;var getFirstVisible=function(){return config.list.select(".cmyc-visible").first();};var getLastVisible=function(){return config.list.select(".cmyc-visible").last();};var getFirstInvisible=function(){return config.list.select(".cmyc-visible").last().next();};var getLastInvisible=function(){return config.list.select(".cmyc-visible").first().previous();};this.isBlocked=function(){return blocked;};this.isFirst=function(){var first=config.list.select("li").first();var first_visible=config.list.select(".cmyc-visible").first();return first==first_visible;};this.isLast=function(){var last=config.list.select("li").last();var last_visible=config.list.select(".cmyc-visible").last();return last==last_visible;};this.hasMoreLeft=function(){return getLastInvisible()?true:false;};this.hasMoreRight=function(){return getFirstInvisible()?true:false;};var scrollwithCount=function(reset){reset=reset||false;if(typeof scrollwithCount.count=='undefined'||reset){scrollwithCount.count=0;if(reset){return true;}}
return++scrollwithCount.count;};this.scrollPrevious=function(event){if(!blocked){blocked=true;switch(config.orientation){case'vertical':scrollTop(event);break;case'horizontal':scrollLeft(event);break;}
getLastInvisible().addClassName("cmyc-visible");getLastVisible().removeClassName("cmyc-visible");}};this.scrollNext=function(event){if(!blocked){blocked=true;switch(config.orientation){case'vertical':scrollBottom(event);break;case'horizontal':scrollRight(event);break;}
getFirstVisible().removeClassName("cmyc-visible");getFirstInvisible().addClassName("cmyc-visible");}};var scrollTop=function(event){var last_invisible=getLastInvisible();var last_visible=getLastVisible();new Effect.Parallel([new Effect.Morph(last_invisible,{style:{marginTop:"0px"},sync:true}),new Effect.Morph(last_visible,{style:{height:"0px"},sync:true})],{duration:config.duration,afterFinish:function(){last_visible.setStyle({display:'none',height:'auto'});blocked=false;if(scrollwithCount()<config.scrollwidth){me.scrollPrevious();}else{scrollwithCount(true);if(config.callback_previous){config.callback_previous(event);}}}});};var scrollBottom=function(event){var first_visible=getFirstVisible();var first_invisible=getFirstInvisible();var first_invisible_height=first_invisible.getHeight();first_invisible.setStyle({display:'block',height:'0'});new Effect.Parallel([new Effect.Morph(first_visible,{style:{marginTop:"-"+first_visible.getHeight()+"px"},sync:true}),new Effect.Morph(first_invisible,{style:{height:first_invisible_height+"px"},sync:true})],{duration:config.duration,afterFinish:function(){blocked=false;if(scrollwithCount()<config.scrollwidth){me.scrollNext();}else{scrollwithCount(true);if(config.callback_next){config.callback_next(event);}}}});};var scrollLeft=function(event){var last_invisible=getLastInvisible();new Effect.Morph(last_invisible,{style:{marginLeft:"0px"},duration:config.duration,afterFinish:function(){blocked=false;if(scrollwithCount()<config.scrollwidth){me.scrollPrevious();}else{scrollwithCount(true);if(config.callback_previous){config.callback_previous(event);}}}});};var scrollRight=function(event){var first_visible=getFirstVisible();new Effect.Morph(first_visible,{style:{marginLeft:"-"+(first_visible.getWidth()+22)+"px"},duration:config.duration,afterFinish:function(){blocked=false;if(scrollwithCount()<config.scrollwidth){me.scrollNext();}else{scrollwithCount(true);if(config.callback_next){config.callback_next(event);}}}});};config.listsize=config.listsize||config.list.select('li').length;config.orientation=config.orientation||'vertical';config.duration=config.duration||0.8;config.scrollwidth=config.scrollwidth||1;config.list.childElements().each(function(item,index){if(index<config.listsize){item.addClassName("cmyc-visible");}});}
Cmyc.namespace("factory");Cmyc.factory.build_all_from_selector=function(objects_bindings,master_div){var objects=new Hash();master_div=master_div||$(document.body);var temp=null;objects_bindings.each(function(binding){temp=Cmyc.helpers.dom.find_elements(binding.key,master_div);if(temp.length>0){if(temp.length>1){info("Cmyc.factory: building multiple objects for "+binding.key+" found "+temp.length+" elements");}
temp.each(function(single_element,count){objects[binding.key]=objects[binding.key]?objects[binding.key]:[];if(typeof binding.value=="function"||typeof binding.value=="object"){var classname=binding.value.classname?binding.value.classname:binding.value;if(typeof classname!=="function"){w("CANNOT BUILD OBJECT FOR "+binding.key+"reason: Object constructor unknown. type="+typeof binding.value);}else{var second_constructor_param=binding.value.param?binding.value.param:null;if(second_constructor_param){objects[binding.key][count]=new classname(single_element,second_constructor_param);}else{objects[binding.key][count]=new classname(single_element);}
info("Cmyc.factory: building object for "+binding.key+" "+count,objects[binding.key][count]);}}else{w("CANNOT BUILD OBJECT FOR "+binding.key+"reason: Object unknown. type="+typeof binding.value);}});}else{}});return objects;};Cmyc.namespace('wizard');Cmyc.wizard=function(config){var me=this,request=null;this.datastore=null;var register_next_step_listeners=function(){Cmyc.helpers.events.capture_event(config.prev_step_selector||'.cmyc-wizard-prev-step',me.prev_step);Cmyc.helpers.events.capture_event(config.next_step_selector||'.cmyc-wizard-next-step',me.next_step);Cmyc.helpers.events.capture_event(config.last_step_selector||'.cmyc-wizard-last-step',me.last_step);};var execute_current_step=function(){if(config.steps[current_step]){var step=config.steps[current_step];d("___wizard is processing step #"+current_step,step);if(step.url){modal_window.setAjaxContent(step.url,{method:'get',onComplete:register_next_step_listeners});}else if(step.ajax_request){request=new Ajax.Request(step.ajax_request,{onComplete:function(response,result){if(result.success){me.next_step();}}});}else if(step.ajax_form_url&&step.form_selector){modal_window.setAjaxContent(step.ajax_form_url,{method:'get',onComplete:function(){if(Cmyc.helpers.dom.find_element(step.form_selector)){var form=Cmyc.helpers.dom.find_element(step.form_selector);Cmyc.helpers.form.add_ajax_response_handler({form:form,error_container:'windowErrors',success_container:'windowErrors',ajax_indicator:"save_indicator",success_callback:function(json_result){me.datastore=json_result;me.next_step();}});if(typeof step.additional_form_handlers==="function"){step.additional_form_handlers();}}
register_next_step_listeners();}});}else if(typeof step.delegate_callback==="function"){step.delegate_callback(me);}else if(step.fire_event){Cmyc.helpers.events.fire_custom_event(step.fire_event,step.event_data||{});me.next_step();}else{w("WIZARD CANNOT FIND NEXT STEP!",config.steps[current_step],me,config);}}};this.prev_step=function(){if(current_step>0){current_step--;execute_current_step();}};this.next_step=function(){if(config.steps.length-1>current_step){current_step++;execute_current_step();}};this.last_step=function(){current_step=config.steps.length-1;execute_current_step();};l("Cmyc.wizard created",config);var current_step=0;var modal_window=config.modal_window;execute_current_step();};Cmyc.namespace('behaviour');Cmyc.behaviour.anchor_functions=new function(){var anchor_functions={};var found_anchors=0;var ignored_a_elements=0;var anchor_class='cmyc-anchor-function';var anchor_selector='a[class*='+anchor_class+']';var execute_function=function(anchor_name,object){if(anchor_functions[anchor_name]){anchor_functions[anchor_name](object||{},anchor_name);}};this.init=function(){$$(anchor_selector).each(function(a_element){Event.observe(a_element,'click',function(event){execute_function(Cmyc.helpers.url.find_anchor(a_element.href),a_element);});});execute_function(Cmyc.helpers.url.find_anchor(location.href));};this.register_function=function(anchor_name,callback){d("anchor_functions.register_function called",anchor_name,callback);$$('a[href*='+anchor_name+']').invoke('addClassName',anchor_class);anchor_functions[anchor_name]=callback;};}();Cmyc.behaviour.div_toggler=new function(){var get_target=function(ele){return $(Cmyc.helpers.parse_cmyc_attribute(ele).toggle_target||ele);};this.mouseover=function(toggle_control_element,get_mouse_position,toggle_target){var target=function(){return(typeof toggle_target!=="undefined")?get_target(toggle_target):get_target(toggle_control_element);};var do_toggle=function(e){d("do_toggle called",arguments);if(!target()){return;}
var mouse_position={};if(!parseInt(e.pointer().x,10)>0&&typeof get_mouse_position==="function"){mouse_position=get_mouse_position();}else{mouse_position=e.pointer();}
Position.prepare();if(!Position.withinIncludingScrolloffsets(toggle_control_element,mouse_position.x,mouse_position.y)){if(target().visible()){target().hide();}}else{if(!target().visible()){target().show();}}};this.destroy=function(){clear_event(toggle_control_element,'mouseover');clear_event(toggle_control_element,'mouseout');};capture_event(toggle_control_element,do_toggle,'mouseover');capture_event(toggle_control_element,do_toggle,'mouseout');capture_event(target(),do_toggle,'mouseout');var fake_event=toggle_control_element.fire('mouseover');do_toggle(fake_event);};this.click=function(toggle_control_element,active_class){active_class=active_class||'active';Cmyc.helpers.events.capture_event(toggle_control_element,function(){get_target(toggle_control_element).toggle();if(get_target(toggle_control_element).visible()){toggle_control_element.addClassName(active_class);}else{toggle_control_element.removeClassName(active_class);}});};}();Cmyc.behaviour.checkbox_toggler=function(dom_element,form){var toggle_other_checkboxes=function(event){var checkbox=event.target;var elements=form?form.elements:checkbox.form.elements
$A(elements).each(function(element){if(element.type==="checkbox"){element.checked=checkbox.checked;}});};subscribe_event(dom_element,toggle_other_checkboxes);};Cmyc.namespace('modal_windows');Cmyc.modal_windows=new function(){var modal_window=false;var open=false;this.is_open=function(){return open;};var toggle_disturbing_elements=function(viz){var new_style=(viz)?{visibility:'visible'}:{visibility:'hidden'};$$(Cmyc.config.modal_window_disturbing_elements).invoke('setStyle',new_style);};var init_modal_window=function(){toggle_disturbing_elements(false);Cmyc.helpers.events.capture_event('#overlay_modal',function(event){modal_window.close();});Cmyc.helpers.events.capture_event('.cmyc-window-close',function(event){d('.cmyc-window-close',arguments);var test=Cmyc.helpers.parse_cmyc_attribute(event.target);if(test&&test.after_close_link){if(location.href===test.after_close_link){location.reload();}else{location.href=test.after_close_link;}}
modal_window.close();});};var show_disturbing_elements=function(){toggle_disturbing_elements(true);open=false;};Windows.overlayShowEffectOptions=false;Windows.overlayHideEffectOptions=false;var default_window_options={className:"cmyc",zIndex:10000,draggable:false,maximizable:false,minimizable:false,resizable:false,width:462,height:630,hideEffect:Element.hide,showEffect:Element.show,destroyOnClose:true,title:"Check My Clip",onBeforeShow:init_modal_window,onDestroy:show_disturbing_elements};var create=function(window_options){open=true;Windows.closeAll();var current_options=Object.clone(default_window_options);Object.extend(current_options,window_options||{});return new Window(current_options);};this.html_content=function(window_options,html_content,show){modal_window=create(window_options);modal_window.setHTMLContent(html_content||'');if(typeof show!=="undefined"&&show){modal_window.showCenter(true);}
return modal_window;};this.ajax_content=function(window_options,ajax_url,ajax_options,use_iframe){modal_window=create(window_options);if(typeof use_iframe!=="undefined"){modal_window.setURL(ajax_url||Cmyc.helpers.url.encode());modal_window.showCenter(true);}else{modal_window.setAjaxContent(ajax_url||Cmyc.helpers.url.encode(),ajax_options||{method:'get'},true,true);}
return modal_window;};this.ajax_confirm_redirect_dialog=function(dialog_url,redirect_on_ok_url,dialog_options,use_modal_window_for_redirect){var init_confirm_window=function(){Cmyc.helpers.events.capture_event('.cmyc-window-ok-button',function(e){if(typeof use_modal_window_for_redirect!=="undefined"&&use_modal_window_for_redirect){dialogue_modal_window.setAjaxContent(redirect_on_ok_url);}else{location.href=redirect_on_ok_url;}});Cmyc.helpers.events.capture_event('.cmyc-window-close',function(event){dialogue_modal_window.close();if(Cmyc.helpers.parse_cmyc_attribute(event.target).after_close_link){if(location.href===Cmyc.helpers.parse_cmyc_attribute(event.target).after_close_link){location.reload();}else{location.href=Cmyc.helpers.parse_cmyc_attribute(event.target).after_close_link;}}});init_modal_window();};var default_dialog_options={width:351,height:200,onBeforeShow:init_confirm_window,onDestroy:show_disturbing_elements};var current_options=Object.clone(default_dialog_options);Object.extend(current_options,dialog_options||{});var dialogue_modal_window=new Cmyc.modal_windows.ajax_content(current_options,dialog_url,{evalScripts:true});return dialogue_modal_window;};}();Cmyc.namespace("dialogues");Cmyc.dialogues.small_size_default={height:380,width:351};Cmyc.dialogues.show_default=function(title,html_content,cmyc_attribute){return new Cmyc.modal_windows.html_content(Cmyc.dialogues.small_size_default,evaltemplate_default_dialog({title:title||'',content:html_content||'',cmyc_attribute:cmyc_attribute||''}),true);};Cmyc.dialogues.show_confirm_dialogue=function(title,html_content,current_confirm_callback,cmyc_attribute,ok_button_label,cancel_button_label,cancel_button_callback){if(typeof current_confirm_callback!=="undefined"&&typeof current_confirm_callback!=="function"){w("show_confirm_dialogue: confirm_callback is not a function!",current_confirm_callback);}
if(typeof cancel_button_callback!=="undefined"&&typeof cancel_button_callback!=="function"){w("show_confirm_dialogue: cancel_callback is not a function!",cancel_button_callback);}
var modal_window=new Cmyc.modal_windows.html_content(Cmyc.dialogues.small_size_default,evaltemplate_confirm_dialog({title:title||'',content:html_content||'',cmyc_attribute:cmyc_attribute||'',ok_button_label:ok_button_label||'Ja',cancel_button_label:cancel_button_label||'Nein'}),true);Cmyc.helpers.events.capture_event(".cmyc-window-ok-button",function(e){(current_confirm_callback||noop)(e);modal_window.close();});Cmyc.helpers.events.capture_event(".cmyc-window-cancel-button",function(e){modal_window.close();(cancel_button_callback||noop)(e);});return modal_window;};Cmyc.dialogues.show_input_dialogue=function(title,html_content,default_value,current_confirm_callback,ok_button_label,cancel_button_label){var ok_pressed=function(){l("ok pressed"+$('cmyc-input-dialogue-input').value);current_confirm_callback($('cmyc-input-dialogue-input').value);};Cmyc.dialogues.show_confirm_dialogue("Playliste übernehmen",html_content+"<form style='margin-left:20px' action='javascript:return false'><input id='cmyc-input-dialogue-input' type='text' name='name' value='"+(default_value||'')+"'></form>",ok_pressed,'',"Ok","Abbrechen");};Cmyc.namespace("deeplinks");Cmyc.deeplinks=function(deeplinks_map,subscribe_to_event){var deeplink_url_param="deeplink";var deeplink_callback_param="deeplink_param";var find_and_execute_deeplinks=function(){var query_params=document.location.href.toQueryParams();if(query_params[deeplink_url_param]){var found_deeplink=query_params[deeplink_url_param];l("Cmyc.deeplinks: found deeplink "+found_deeplink);if(typeof deeplinks_map[found_deeplink]==='function'){l("Cmyc.deeplinks: calling deeplink "+found_deeplink);deeplinks_map[found_deeplink](query_params[deeplink_callback_param]||null);}}};Cmyc.helpers.events.subscribe_custom_event(subscribe_to_event,find_and_execute_deeplinks);};Cmyc.tab_control=function(div_id,custom_control_options,ajax_updater_container_id){l("Cmyc.tab_control called",arguments);var control_tab=null;var get_content_tab_elements=function(ctrl_tab){return $$("#"+Cmyc.helpers.url.find_anchor(ctrl_tab.getAttribute("href"))+" a");};var execute_directlink=function(url){if(url){d("execute_directlink found url:",url);if(typeof ajax_updater_container_id==="undefined"){document.location.href=url;}else{var updater=new Ajax.Updater(ajax_updater_container_id,url,{evalScripts:true});}}};var find_and_execute_directlink=function(index){if(!control_tab){return;}
if(typeof control_tab.links[index]!=="undefined"){var a=control_tab.links[index];d(Cmyc.helpers.parse_cmyc_attribute(a).tab_directlink);execute_directlink(Cmyc.helpers.parse_cmyc_attribute(a).tab_directlink);}};var control_tab_click=function(event){d("[TAB CONTROL] got click Event:");d(event);Event.stop(event);execute_directlink(Cmyc.helpers.parse_cmyc_attribute(event.target).tab_directlink);};var init=function(){var default_tab_options={hover:true};var control_tabs=$(div_id).select("a");control_tabs.invoke('observe','click',control_tab_click);var current_options=Object.clone(default_tab_options);Object.extend(current_options,custom_control_options||{});control_tab=new Control.Tabs(div_id,current_options);var current_category_id=parseInt(Cmyc.helpers.parse_cmyc_attribute($(div_id)).current_category,10)||null;if(current_category_id){l("Cmyc.tab_control found category_id to highlight navigation ",current_category_id);var active_tab=control_tabs.detect(function(control_tab){d("--- searching control_tab="+control_tab);return get_content_tab_elements(control_tab).detect(function(content_tab_element){d("--- searching content_tab_element="+content_tab_element);return content_tab_element.href.toQueryParams().c===current_category_id;});});if(active_tab){ret.setActiveTab(active_tab);}}};init();l("Cmyc.tab_control created",control_tab);return Object.extend(control_tab,{execute_directlink:find_and_execute_directlink});};Cmyc.tab_control_click=function(element){return new Cmyc.tab_control(element,{hover:false});};Cmyc.namespace("menu_ajax_updater");Cmyc.menu_ajax_updater=function(config,ajax_updater_config){var me=this;var menu_activate_element=function(menu_element,ajax_updater_config){l('menu_ajax_updater: menu_activate_element() called',arguments);var link=menu_element.down('a');var is_empty_link=function(link){return link.lastIndexOf('#')===link.length-1;};if(!menu_element.id&&is_empty_link(link.href)){var child_element=menu_element.down("li");if(child_element){menu_element=child_element;link=menu_element.down('a');}}
var href_params=Cmyc.helpers.parse_cmyc_attribute(menu_element)||Cmyc.helpers.parse_cmyc_attribute(link);var ancestors_to_activate=menu_element.ancestors().findAll(function(element){if(element===main_menu){throw $break;}
return element.tagName==="LI"&&(element!==main_menu);});all_menu_elements.each(function(elem){if(ancestors_to_activate.include(elem)){elem.addClassName(css_class);}else{elem.removeClassName(css_class);}});menu_element.addClassName(css_class);var current_options=Object.clone({method:'get',parameters:href_params,evalScripts:true,onSuccess:function(){content_container.show();}});Object.extend(current_options,ajax_updater_config||{});var action_name=action_map[menu_element.id]||action_map[link.id];var url=(action_name)?Cmyc.helpers.url.encode(action_name):link.href;if(is_empty_link(url)){w("Given url is empty, to get menu content.");return;}
content_container.hide();var updater=new Ajax.Updater(content_container,url,current_options);};var build_action_map=function(all_elements){var ret={};all_elements.each(function(ele){ret[ele.id||ele]=Cmyc.helpers.parse_cmyc_attribute(ele).action;});return ret;};this.activate_menu=function(element_to_activate){d("activate_menu called",arguments);if(element_to_activate===null||element_to_activate.tagName!=='LI'){w("Element to be activated is not valid. given: ",element_to_activate);return;}
menu_activate_element(element_to_activate,ajax_updater_config);};l("creating menu updater",config);var main_menu=$(config.main_menu)||$('mainMnu');var content_container=$(config.content_container||'settingContainer');var css_class=config.css_class||'active';var all_menu_elements=main_menu.select(config.all_menu_elements)||config.all_menu_elements;var action_map=config.action_map||build_action_map(all_menu_elements);if(action_map.length>0){w("Actionmaps for menus depricated ! Please use urls in a tag.");}
all_menu_elements.invoke('observe','click',function(event){var menu_element=event.findElement('LI');if(!all_menu_elements.include(menu_element)){return;}
event.stop();menu_activate_element(menu_element,ajax_updater_config);});if(config.activate_first_element&&all_menu_elements.first()){l("activate first element",all_menu_elements.first());menu_activate_element(all_menu_elements.first(),ajax_updater_config);}
if(config.activate_element){var element_to_activate=$(config.activate_element);me.activate_menu(element_to_activate);}};Cmyc.sortable_with_ajax_request=function(sortable_div_id,sortable_options,ajax_url){var current_sort=null;var sortable_update=function(){var new_sort=Sortable.serialize(sortable_div_id);if(current_sort!==new_sort){l("sort order has been changed!",new_sort);var request=new Ajax.Request(ajax_url,{parameters:new_sort,onSuccess:function(){l("successfully updated the sortable");}});}};sortable_options.onUpdate=sortable_update;Sortable.create(sortable_div_id,sortable_options);current_sort=Sortable.serialize(sortable_div_id);l("Cmyc.sortable_with_ajax_request created",Sortable.sortables);};Cmyc.form_fields_slider=function(config){var round_value=function(v){return v.round_digits(config.round_digits||0);};var update_form=function(values){if(typeof values=="number"){values=[values];}
values.each(function(value,iter){var temp=round_value(value);$(config.fields[iter]).setValue(temp);$(config.handles[iter]).update(temp);});};if(config.handles.length!=config.fields.length){e("Cmyc.Slider: number of handles does not match number of fields",config);}
var start_values=config.fields.collect(function(field_id){return parseFloat($(field_id).getValue());});update_form(start_values);return new Control.Slider(config.handles,config.id,{range:$R(config.min,config.max,false),step:1,increment:1,restricted:true,sliderValue:start_values,onChange:update_form,onSlide:update_form});};Cmyc.generic_pager=function(root_element){var config,forward_button,back_button,elements,elements_per_page,total_elements,active_page,last_page;var is_first_page=function(){return active_page===0;};var is_last_page=function(){return active_page===last_page;};var active_elements_invoke=function(function_name){var _first_element=active_page*elements_per_page;var _last_element=Math.min(((active_page+1)*elements_per_page)-1,total_elements-1);d("generic_pager:active_elements_invoke",active_page,elements_per_page,_first_element,_last_element);for(var i=_first_element;i<=_last_element;i++){d("generic_pager:invoking "+function_name+" on ",elements[i]);elements[i][function_name]();}};var goto_page=function(delta){d("generic_pager:goto_page",active_page,last_page,arguments);if(delta>0&&is_last_page()){return;}
if(delta<0&&is_first_page()){return;}
active_elements_invoke('hide');active_page+=delta;active_elements_invoke('show');update_buttons_state();};var next_page=function(){d("generic_pager:next_page");goto_page(+1);};var previous_page=function(){d("generic_pager:previous_page");goto_page(-1);};var update_buttons_state=function(){if(is_first_page()){back_button.removeClassName('backActive');back_button.addClassName('backInactive');}else{back_button.removeClassName('backInactive');back_button.addClassName('backActive');}
if(is_last_page()){forward_button.removeClassName('forwardActive');forward_button.addClassName('forwardInactive');}else{forward_button.removeClassName('forwardInactive');forward_button.addClassName('forwardActive');}};(function(){config=Cmyc.datastorage.read_js_data(root_element.id);forward_button=find_element(config.forward);if(!forward_button){w("Cmyc.generic_pager: wrong usage. Cannot find forward_button",config.forward);}
back_button=find_element(config.back);if(!back_button){w("Cmyc.generic_pager: wrong usage. Cannot find back_button",config.back);}
elements=find_elements(config.items);elements_per_page=elements.findAll(function(element){return element.visible();}).length;total_elements=elements.length;active_page=0;last_page=0;if(total_elements>elements_per_page){last_page=Math.ceil(total_elements/elements_per_page)-1;}
capture_event(forward_button,next_page);capture_event(back_button,previous_page);update_buttons_state();l("Cmyc.generic_pager: created",config);})();};Cmyc.ajax_updater_link=function(event){var find_container_element=function(element){var match=element.className.match(new RegExp("cmyc-ajax-(link)[:|-]([^\\s]*)"));return(match)?match[2]:null;};(function(){event.stop();var element=event.element();var target_name=find_container_element(element);var target=$(target_name);if(target==null){e('No target container found.','name=',target_name,element);return;}
var params=null;var url=element.href;if(url){new Ajax.Updater(target,url,{method:'post',requestHeaders:{Accept:'text/html'},parameters:params,evalScripts:true,onFailure:function(transport){var result=transport.headerJSON;var errorMessage=null;if(result!=null&&result.error){errorMessage=result.error;}
e('ajax_updater_link.process_event: failure ('+errorMessage+')');},onComplete:function(){Cmyc.factory.build_all_from_selector.defer(new Hash({'DIV.cmyc-initialize-sedcard > div':{classname:Cmyc.profile.controller,param:global_profile_controller_additional_config},'DIV.cmyc-modelvoting-controller':Cmyc.modelvoting.controller}));}});}else{e('ajax_updater_link: No url given.');}})();}
var update_elements_by_hash=function(root,data_hash,data_selector_begin){d("update_elements_by_hash",arguments);$H(data_hash).each(function(iterator){var key=iterator.first();var value=iterator[1];d("processing key:",key);root.select(data_selector_begin+key).each(function(element){switch(element.tagName.toUpperCase()){case"TEXTAREA":d("TEXTAREA",element);element.value=value;break;case"INPUT":d("INPUT",element);if(element.readAttribute("type").toUpperCase()=="RADIO"){d("RADIO",element,(element.value==value));element.checked=(element.value==value);}else{d("INPUT",element);element.value=value;}
break;case"SELECT":d("SELECT",element,element.options);$H(element.options).values().each(function(option,iter){if(option&&option.tagName&&option.tagName.toUpperCase()=="OPTION"){if(option.value==value){element.selectedIndex=option.index;return;}}});break;case"IMG":d("IMG",value);if(value){d("setting img src",element,value);element.src=value;element.show();}else{element.hide();}
break;default:d("DEFAULT ELEMENTS",element,value);element.update(value);break;}});});};Cmyc.profiler=function(profiler_label,log_function){var custom_output_div_id="profiler-result-div";var times=[];var me=this;var custom_output_div=null;var custom_output_div_template=new Template('<div id="#{id}" style="z-index:2000; position:absolute; top:0; left:0; width:250px; height:500px; background:#fff; text-align: left; overflow:auto;"><a href="#" class="cmyc-close-profiling" onclick="Element.hide(this.parentNode);">close</a></div>');var start_label='PROFILER_START';if(typeof log_function=="undefined"){}
var profiling_enabled=Cmyc.config.profiling_enabled||false;var time_diff=function(time_start,time_end){return time_end-time_start;};var append_to_custom_output_div=function(text){if($(custom_output_div_id)){$(custom_output_div_id).innerHTML+='<br/>'+text;}};var insert_div_and_print_profiling_results=function(){if(!document.loaded){window.setTimeout(insert_div_and_print_profiling_results,500);return;}
if(!$(custom_output_div_id)){Element.insert(document.body,{top:custom_output_div_template.evaluate({id:custom_output_div_id})});}
print_profiling_output(append_to_custom_output_div);};var print_profiling_output=function(output_function){output_function("");output_function("PROFILING RESULT: of "+profiler_label);for(var i=1;i<times.length;i++){output_function(times[i].get('label')+': '+time_diff(times[i-1].get('time'),times[i].get('time'))+' ms');}
output_function("TOTAL: "+time_diff(times.first().get('time'),times.last().get('time'))+' ms');};this.profile=function(end_label){if(!profiling_enabled){return;}
end_label=end_label||'PROFILER_END';me.measure_time(end_label);if(typeof log_function!=="undefined"){print_profiling_output(log_function);}else{insert_div_and_print_profiling_results();}};this.measure_time=function(label){if(!profiling_enabled){return;}
var time=new Date().getTime();var temp=$H();temp.set('label',label);temp.set('time',time);times.push(temp);return time;};this.clear=function(){times=[];};if(profiling_enabled){this.measure_time(start_label);}};Cmyc.namespace('prototype.extension.ajax');Cmyc.prototype.extension.ajax.original_updater=Class.create(Ajax.Updater);Cmyc.prototype.extension.ajax.updater=function(div,url,options){var original_oncomplete=noop;options=options||{};if(typeof options.onComplete==="function"){original_oncomplete=options.onComplete;}
if(typeof options.evalScripts==="undefined"){options.evalScripts=true;}
options.onComplete=function(){if($("ajax-updater-overlay")){Element.remove($("ajax-updater-overlay"));}
original_oncomplete(arguments);d("Cmyc.prototype.extension.ajax.updater: calling custom complete for div:",div);if(Object.isString(div)){div=$(div);}
fire.defer(Cmyc.framework.events.element_updated_by_ajax_updater,div);};options.onCreate=function(updater){fire(Cmyc.framework.events.element_pre_update_by_ajax_updater,{element:div,updater:updater});};return new Cmyc.prototype.extension.ajax.original_updater(div,url,options);};Ajax.Updater=Cmyc.prototype.extension.ajax.updater;Ajax.Responders.register({onComplete:function(_,result){if(typeof _!=="undefined"&&_.transport&&_.transport.status){if(!/^2/.test(_.transport.status)){var error_code=_.transport.status;if(error_code===401){location.href=encode_url("showHome",{deeplink:'show_login'});}else{e("SERVER-RESPONDED WITH ERROR code="+error_code,_,result);if(result.headerJSON){if(result.headerJSON.error){e(result.headerJSON.error);}else{e(result.headerJSON);}}else{e(_.transport.responseText.stripTags());}}}}},onException:function(_,result){l("onException handler of Ajax.Responders");w("Exception in Ajax Callback");w(_);w(_.transport);l(_.transport.responseText);w(result);if(arguments.callee.caller){w("CALLING FUNCTION:",arguments.callee.caller);}
try{w(result.message);w(result.fileName);w(result.lineNumber);w(result.name);w(result.stack);}catch(err){};e("Exception in Ajax Callback - exiting!",result);debug_element=result;}});Cmyc.namespace('prototype.extension.originals.form');Cmyc.prototype.extension.originals.form.serializeElements=Form.serializeElements;Form.serializeElements=function(elements,options){var default_text_inputs=elements.findAll(function(element){return element.tag_control&&element.tag_control instanceof Cmyc.Tags.DefaultTextInput});default_text_inputs.each(function(input){input.tag_control.enable_default_text(false,true);});var result=Cmyc.prototype.extension.originals.form.serializeElements(elements,options);default_text_inputs.each(function(input){input.tag_control.enable_default_text(true);});return result;}
var subscribe_this_element_updated=function(div,callback){d("subscribe_this_element_updated ",div);subscribe(Cmyc.events.element_updated_by_ajax_updater,function(e){if(e.memo&&$(e.memo)===$(div)){d("subscribe_this_element_updated_by_ajax_updater: callback - div updated: "+e.memo);d(e.memo);callback();}});};Cmyc.objects=new function(){var click_mappings=$H();var object_mappings=$H();var uncaptured_clicks=[];var captured_clicks=[];var unbuilt_objects=[];var built_objects=[];var me=this;this.debug=function(){w("click_mappings",click_mappings);w("object_mappings",object_mappings);w("uncaptured_clicks",uncaptured_clicks);w("captured_clicks",captured_clicks);w("unbuilt_objects",unbuilt_objects);w("built_objects",built_objects);};var fix_and_eval_json=function(json_data){try{if(!(json_data.startsWith('{')&&json_data.endsWith('}'))){json_data='{'+json_data+'}';}
data=json_data.evalJSON();}catch(exeption){w("fix_and_eval_json: error parsing json_data attribute",json_data);return{};}};this.register_new_objectmapping=function(id,type,json_data){w("register_new_objectmapping",arguments);json_data=json_data||null;var obj={id:id,json_data:json_data};if(click_mappings.get(type)){w("found click mapping for",type);obj.klass=click_mappings.get(type);uncaptured_clicks.push(obj);return;};if(object_mappings.get(type)){w("found object_mappings for",type);obj.klass=object_mappings.get(type);built_objects.push(obj);return;};w("IDENTIFIER NOT DEFINED!",identifier);w(arguments);};this.build_unbuilt_objects=function(){w("build_unbuilt_objects",unbuilt_objects.clone());var temp=false;while(temp=unbuilt_objects.pop()){w("processing object",temp);var dom_element=$(temp.id);if(temp.data!==null){built_objects[id]=new klass(dom_element,data);}else if(temp.json_data!==null){built_objects[id]=new klass(dom_element,fix_and_eval_json(json_data));}}};this.capture_uncaptured_clicks=function(){w("build_unbuilt_objects",uncaptured_clicks.clone());var temp=false;while(temp=uncaptured_clicks.pop()){var dom_element=$(temp.id);capture_event(dom_element,function(event){var data=null;if(temp.json_data){data=fix_and_eval_json(temp.json_data);}else{data=typeof temp.data!=="undefined"?temp.data:null;}
w(typeof temp.klass);temp.klass(event,data);});}};this.init_mapping=function(new_click_mappings,new_object_mappings){w("init_mapping");click_mappings=new_click_mappings;object_mappings=new_object_mappings;};}();;var noop=Prototype.emptyFunction;var register_js_data=Cmyc.datastorage.register_js_data;var read_js_data=Cmyc.datastorage.read_js_data;var encode_url=Cmyc.helpers.url.encode;var get_url_param=Cmyc.helpers.url.get_url_param;var find_elements=Cmyc.helpers.dom.find_elements;var find_element=Cmyc.helpers.dom.find_element;var find_anchor=Cmyc.helpers.url.find_anchor;var register_anchor_function=Cmyc.behaviour.anchor_functions.register_function;var parse_cmyc_attrib=Cmyc.helpers.parse_cmyc_attribute;var set_cmyc_attribute=Cmyc.helpers.set_cmyc_attribute;var get_cmyc_property=Cmyc.helpers.get_cmyc_property;var set_cmyc_property=Cmyc.helpers.set_cmyc_property;var update_by_action=Cmyc.helpers.ajax_updater_by_action;var capture_event=Cmyc.helpers.events.capture_event;var subscribe_event=Cmyc.helpers.events.subscribe_event;var clear_event=Cmyc.helpers.events.clear_event;var fire=Cmyc.helpers.events.fire_custom_event;var subscribe=Cmyc.helpers.events.subscribe_custom_event;var show_dialogue=Cmyc.dialogues.show_default;var show_confirm_dialogue=Cmyc.dialogues.show_confirm_dialogue;var show_input_dialogue=Cmyc.dialogues.show_input_dialogue;var cookies=Cmyc.helpers.cookies;;Cmyc.namespace('Tags');Cmyc.Tags.SelectboxMultiple=Class.create({_height:Number,_focusedElement:Object,_options:{cssClassHover:'hover'},initialize:function(element,options){this._element=$(element);this._options=Object.extend(this._options,options||{});this._focusedElement=null;this._addObservers();this._height=this._element.getHeight();this._element.tagControl=this;if(this._options.new_option_input_event){document.observe(this._options.new_option_input_event,this._new_option_event.bind(this));}},disable:function(disable){this._element.select("input[type='checkbox']").invoke("writeAttribute","disabled",disable);},addOption:function(value,text){var template=new Template($F(this._element.id+'-template-option'));var templateVars={index:'option-'+new Date().getTime(),item_value:value,item_text:text};this._element.insert({bottom:template.evaluate(templateVars)});var element=this._element.select("li").last();if(element){element.observe('click',this._observeOptionEvent.bind(this));}},_new_option_event:function(event){this.addOption(event.memo.id,event.memo.title);},_addObservers:function(){this._element.observe('blur',this._unfocusOption.bind(this,null));this._element.observe('keydown',this._observeKeyDownEvents.bind(this));this._element.select("li").invoke("observe","click",this._observeOptionEvent.bind(this));},_observeOptionEvent:function(event){if(event.element().tagName=="LABEL"){return false;}
this._observeOption(event.findElement("LI"),event.element());},_observeOption:function(li,element){var option=this._getOption(li);var checked=option.checkbox.checked;if(element.tagName=="LI"){checked=!checked;}
if(option){if(checked){this._selectOption(option);}else{this._unselectOption(option);}}
return option;},_getOption:function(li){var checkbox=li.select("input[type=checkbox]").first();var option={li:li,checkbox:checkbox,height:li.getHeight()};return option;},_observeKeyDownEvents:function(event){return;var option=this._focusedElement;var state=true;var li=null;switch(event.keyCode){case Event.KEY_UP:li=option.li.previous();if(li){option=this._getOption(li);}
break;case Event.KEY_DOWN:li=option.li.next();if(li){option=this._getOption(li);}
break;case Event.KEY_PAGEUP:break;case Event.KEY_PAGEDOWN:break;case Event.KEY_RETURN:this._selectOption(option);break;default:state=false;}
if(state){this._focusOption(option);}},_selectOption:function(option){option.checkbox.checked=true;option.li.addClassName("active");this._focusOption(option);},_unselectOption:function(option){option.checkbox.checked=false;option.li.removeClassName("active");this._focusOption(option);},_focusOption:function(option){if(this._focusedElement){this._unfocusOption(this._focusedElement);}
this._focusedElement=option;option.li.focus();},_unfocusOption:function(option){var option=option||this._focusedElement||null;if(option){option.li.removeClassName("focus");}}});Cmyc.Tags.PlaylistSelectBoxMultiple=Class.create(Cmyc.Tags.SelectboxMultiple,(function(){var parent=Cmyc.Tags.SelectboxMultiple.prototype;var options={sedcardId:null};return{initialize:function($super,element,config){options=Object.extend(options,config||{});$super(element,options);},_observeOption:function(li,element){var option=parent._observeOption.call(this,li,element);var fire_event=function(checked){this._element.fire("playlist:sedcard_selected",checked);}.bind(this);if(option.checkbox.value==options.sedcardId){if(option.checkbox.checked){option.checkbox.checked=false;show_confirm_dialogue("Fotos im Sedcardformat","F&uuml;r Fotos innerhalb der Sedcard werden automatisch Bildausschnitte im Format 3:4 ausgew&auml;hlt. Diese Bildausschnitte kannst Du nachtr&auml;glich f&uuml;r jedes Bild &auml;ndern.",function(){option.checkbox.checked=true;fire_event(option.checkbox.checked);});}else{fire_event(option.checkbox.checked);}}}};})());Cmyc.Tags.Cropper=Class.create({_element:null,_options:{ratio:null,width:null,height:null,useUploader:false,enableCropperOnInit:true},_cropper:null,_enabled:true,_uploaderForm:null,_infoForm:null,initialize:function(element,config){this._element=$(element);this._element.tagControl=this;this._options=Object.extend(this._options,config||{});this._imageToCrop=this._element.down(".tag-image-cropper-image-to-crop");this._imageToCrop.observe("load",this._refreshCropper.bind(this));this.inputSourceWidth=this._element.down("input[name='image_cropper[source_width]']");this.inputSourceHeight=this._element.down("input[name='image_cropper[source_height]']");this.inputCoordsTop=this._element.down("input[name='image_cropper[top]']");this.inputCoordsLeft=this._element.down("input[name='image_cropper[left]']");this.inputCoordsWidth=this._element.down("input[name='image_cropper[width]']");this.inputCoordsHeight=this._element.down("input[name='image_cropper[height]']");this.inputDeleteImage=this._element.down("input[name='image_cropper[delete]']");this.inputTmpFileKey=this._element.down("input[name='image_cropper[tmp_file_key]']");this._cropperEnabled=this._options.enableCropperOnInit;this._infoForm=this._element.down("form.tag-image-cropper-form-infos");this._element.down(".tag-image-cropper-reset").observe("click",this._resetCoords.bind(this));if(this._element.down(".tag-image-cropper-set-fullimage")){this._element.down(".tag-image-cropper-set-fullimage").observe("click",this._resetToFullImage.bind(this));}
if(this._options.useUploader){this._initUploader();this._buttonDeleteImage=this._element.down(".tag-image-cropper-delete");this._buttonDeleteImage.observe("click",this._deleteImage.bind(this));if(this._options.originalImage!==null){this._buttonDeleteImage.show();}}
document.observe("playlist:sedcard_selected",this._eventSedcardSelected.bind(this));},setRatio:function(ratio){if(!this._cropperEnabled){return;}
ratio=ratio||this._options.ratio;this._removeCropper();this._initCropper({ratio:ratio});},_deleteImage:function(event){event.stop();this.inputDeleteImage.value=1;this.inputTmpFileKey.value="";if(this._options.originalImage!==null){this._removeCropper();this._cropperEnabled=false;this._imageToCrop.src=this._options.defaultImage;}else{this._imageToCrop.src=this._options.originalImage;}
this._buttonDeleteImage.hide();},_eventSedcardSelected:function(data){if(data.memo==true){this.setRatio(3/4);}else{this.setRatio(-1);this._resetCoords();}},_resetCoords:function(event){if(event){event.stop();}
if(!this._cropperEnabled){return;}
this._initCropper();},_resetToFullImage:function(event){if(event){event.stop();}
if(!this._cropperEnabled){return;}
var fullImageCoords={x1:0,y1:0,x2:this._imageToCrop.width,y2:this._imageToCrop.height};if(!this._cropper){this._initCropper();}
this._cropper.setAreaCoords(fullImageCoords,false,false,1);this._cropper.selArea.show();this._cropper.drawArea();},_initCropper:function(config){if(!this._cropperEnabled){return;}
config=Object.extend(this._options,config||{});var ratioDimension={};if(config.ratio!==null){ratioDimension={x:config.width,y:config.height};if(config.height>config.width){ratioDimension.y=config.width/config.ratio;}else{ratioDimension.x=config.height*config.ratio;}}
var onloadCoords=null;var displayOnInit=false;if(config.coords){var factor=config.width/config.coords.source_width;var top=config.coords.top*factor;var left=config.coords.left*factor;var width=config.coords.width*factor;var height=config.coords.height*factor;onloadCoords={x1:left,y1:top,x2:left+width,y2:top+height};displayOnInit=true;}
if(this._cropper===null){this._cropper=new Cropper.Img(this._imageToCrop,{onloadCoords:onloadCoords,ratioDim:ratioDimension,displayOnInit:displayOnInit,onEndCrop:this._updateCropperCoords.bind(this)});this._cropper.reset();}else{this._cropper.reset();}},_refreshCropper:function(event){if(!this._cropperEnabled){return;}
var image=this._imageToCrop;var config={width:image.width,height:image.height};this.inputSourceWidth.value=image.width;this.inputSourceHeight.value=image.height;this._initCropper(config);},_removeCropper:function(){if(this._cropper!=null){this._cropper.remove();this._cropper=null;}},_updateCropperCoords:function(coords,dimensions){this.inputCoordsTop.value=coords.y1;this.inputCoordsLeft.value=coords.x1;this.inputCoordsWidth.value=dimensions.width;this.inputCoordsHeight.value=dimensions.height;},_initUploader:function(){if(this._options.useUploader==true){this._uploaderForm=this._element.down("form.tag-image-cropper-uploader");this._uploaderForm.observe("submit",this._startUpload.bind(this));}},_startUpload:function(event){var input_file=this._uploaderForm.down("input[type='file']");if(input_file.value!=""){this.inputDeleteImage.value=0;var id='upload-iframe-'+this._element.id;var uploadIFrame=$(document.getElementById(id));if(!uploadIFrame){var iframe_template=new Template('<iframe id="#{id}" src="about:blank" name="#{id}" style="display:none"></iframe>');this._uploaderForm.insert({bottom:iframe_template.evaluate({id:id})});this._uploaderForm.target=id;uploadIFrame=$(document.getElementById(id));uploadIFrame.src="about:blank";uploadIFrame.observe("load",this._uploaderFinish.bind(this));}}else{event.stop();}},_uploaderFinish:function(event){var iframe=event.element();var result=Cmyc.helpers.parse_iframe_content(iframe);if(result.success==true){var inputTmpFileKey=this._infoForm.down("input[name='image_cropper[tmp_file_key]']");if(inputTmpFileKey){this._cropperEnabled=true;inputTmpFileKey.value=result.tmp_file_key;this._buttonDeleteImage.show();this._imageToCrop.src=this._options.tmpImageUrlMask.replace("_tmp_file_key_",result.tmp_file_key);}}}});Cmyc.Tags.Pager={};Cmyc.Tags.Pager.Basic=function(pager_id){var submit_pager_form=function(event){var form=event.target;var form_params_from_action_attribute=form.getAttribute("action").toQueryParams();var input_name_to_change=form.down('.tag-pager-input-current-page').getAttribute('name');var form_values=form.serialize(true);delete form_params_from_action_attribute[input_name_to_change];form_values=Object.extend(form_values,form_params_from_action_attribute);var action_param=form_values['action'];delete form_values['action'];var page_param=parseInt(form_values[input_name_to_change],10);form_values[input_name_to_change]=page_param-1;document.location.href=encode_url(action_param,form_values);};capture_event($(pager_id).down('FORM'),submit_pager_form,'submit');};Cmyc.Tags.Pager.Ajax=function(pager_element,options){var busy=false;var do_page=function(link){img_indicator.show();var temp=new Ajax.Updater(container,link,{method:"post",onSuccess:function(transport){var result=transport.headerJSON;if(result&&result.pager){update_pager(result.pager);}
img_indicator.hide();busy=false;}});};var update_pager=function(pager){var current_page=parseInt(pager.current);button_next_page.href=replace_page_number_in_link(button_next_page.href,current_page+1);button_previous_page.href=replace_page_number_in_link(button_previous_page.href,(current_page==0?current_page:current_page-1));input_current.value=current_page+1;button_container_back.setStyle({visibility:(current_page==0)?"hidden":"visible"});button_container_forward.setStyle({visibility:(current_page==total_pages-1)?"hidden":"visible"});};var adjust_input_field=function(){var page_number=Number(parseInt(input_current.value));if(isNaN(page_number)){input_current.value=1;}
if(page_number<1){input_current.value=1;}
if(page_number>total_pages){input_current.value=total_pages;}};var goto_page=function(page_number){page_number=(page_number>1)?page_number-1:0;page_number=(page_number>total_pages)?total_pages:page_number;do_page(replace_page_number_in_link(button_next_page.href,page_number));};var replace_page_number_in_link=function(link,page_number){var params_object=link.toQueryParams();params_object.p=page_number;return link.split('?').first()+'?'+Object.toQueryString(params_object);};var observe_input_current_page=function(event){var goto_page_on_event=function(){adjust_input_field();goto_page(input_current.value);};input_current.up("form").observe('submit',function(event){Event.stop(event);adjust_input_field();goto_page_on_event();});};var pager_element=$(pager_element);var container=$$(options.container).first();var input_current=pager_element.down('.tag-pager-input-current-page');var img_indicator=pager_element.down('.tag-pager-indicator');var label_total_pages=pager_element.down('.tag-pager-label-total-pages');var button_container_back=pager_element.down(".tag-pager-button-container-back");var button_container_forward=pager_element.down(".tag-pager-button-container-forward");var button_next_page=pager_element.down(".tag-pager-button-next-page");var button_previous_page=pager_element.down(".tag-pager-button-previous-page");var total_pages=parseInt(label_total_pages.innerHTML);var selector="{prefix}first-page, {prefix}previous-page, {prefix}next-page, {prefix}last-page".substitute({prefix:".tag-pager-button-"});pager_element.select(selector).invoke("observe","click",function(event){event.stop();if(!busy){busy=true;do_page(event.findElement("a").href);}});pager_element.tag_control=this;observe_input_current_page();};Cmyc.Tags.Button=function(element,options){this.disable=function(value){if(disabled==value){return;}
disabled=value;var regexp_classname_disabled=/(tag-button-style-[a-z]+)(_disabled)/;var regexp_classname_enabled=/(tag-button-style-[a-z]+)/;var regexp_img_disabled=/(.+images\/tags\/button\/[\w\-]+)(_disabled)(\/.+)/;var regexp_img_enabled=/(.+images\/tags\/button\/[\w\-]+)(\/.+)/;var elements=dom_element.select("[class*='tag-button-style-'], img[src*='images/tags/button']");elements.push(dom_element);elements.each(function(element){switch(true){case!disabled&&element.className&&regexp_classname_disabled.test(element.className):element.className=element.className.replace(regexp_classname_disabled,"$1");break;case disabled&&element.className&&regexp_classname_enabled.test(element.className):element.className=element.className.replace(regexp_classname_enabled,"$1_disabled");break;case!disabled&&element.src&&regexp_img_disabled.test(element.src):element.src=element.src.replace(regexp_img_disabled,"$1$3");break;case disabled&&element.src&&regexp_img_enabled.test(element.src):element.src=element.src.replace(regexp_img_enabled,"$1_disabled$2");break;}});};this.observe=function(event_name,callback){if(event_name!="click"){return;}
dom_element.select("a, button").each(function(element){element.observe(event_name,function(){if(disabled==false){callback();}});});};var dom_element=$(element);var disabled=options.disabled||false;dom_element.tag_control=this;};Cmyc.Tags.DefaultTextInput=function(element,default_text){var dom_element=$(element);dom_element.tag_control=this;var init=function(){default_text=default_text||'Suchen';dom_element.onfocus=function(){set_value_on_test(dom_element,default_text,'');};dom_element.onblur=function(){set_value_on_test(dom_element,'',default_text);};if(dom_element.form){var form=$(dom_element.form);subscribe_event(form,function(event){if(dom_element.value==default_text){dom_element.value='';}},"submit");}
d("creating Cmyc.Tags.DefaultTextInput: FINISHED",default_text);set_value_on_test(dom_element,'',default_text);}
this.has_default_text=function(){return dom_element.value==default_text;};this.enable_default_text=function(state,skip_on_empty){var from,to;skip_on_empty=skip_on_empty||false;if(skip_on_empty&&dom_element.value=='')return;if(state){from='';to=default_text;}else{from=default_text;to='';}
set_value_on_test(dom_element,from,to);};this.get_default_text=function(){return default_text;};var set_value_on_test=function(element,test_value,new_text_value){if(element.value===test_value){element.value=new_text_value;}};l("creating Cmyc.Tags.DefaultTextInput");init();};;l("FILE: cmyc.js");var debug_element=debug_element||null;Cmyc.namespace('events');Cmyc.events=Object.extend(Cmyc.framework.events,{messages_deleted:"cmyc:messages_deleted",shopping_cart_updated:"cmyc:shopping_cart_updated",coverflow_active_image_updated:"cmyc:coverflow_active_image_updated",profile_image_changed:"cmyc:profile_image_changed",playlist_deleted:"cmyc:playlist_deleted",playlist_created:"cmyc:playlist_created",mediaobject_deleted:"cmyc:mediaobject_deleted",find_and_execute_deeplinks:"cmyc:find_and_execute_deeplinks",mediathek_jump_to:"cmyc:mediathek_jump_to",start_registration:"cmyc:start_registration",audioplayer_set_mediaobject_id:"cmyc:audioplayer_set_mediaobject_id",audioplayer_show_comments:"cmyc:audioplayer_show_comments",audioplayer_reset_comments:"cmyc:audioplayer_reset_comments"});Cmyc.events.profilemodules={show_userdata_submenu:"cmyc:profilemodules:show_userdata_submenu",show_contacts_friends:"cmyc:profilemodules:show_contacts_friends",show_contacts_visitors:"cmyc:profilemodules:show_contacts_visitors"};Cmyc.namespace('debug');Cmyc.debug.minify={disable_js_minify:function(){cookies.create(Cmyc.php_constants.COOKIE_DISABLE_JSMINIFY,1,1);Cmyc.helpers.url.reload();},reset_js_minify:function(){cookies.erase(Cmyc.php_constants.COOKIE_DISABLE_JSMINIFY,1,1);Cmyc.helpers.url.reload();}};Cmyc.redirect={redirect_to:function(url){d("Cmyc.redirect.redirect_to "+url);if(location.href===url){location.reload();}else{location.href=url;}},edit_mediaobject:function(event){var mid=parse_cmyc_attrib(event.target).id||parse_cmyc_attrib(event.currentTarget).id||parse_cmyc_attrib(event.target.up()).id;Cmyc.redirect.redirect_to(encode_url('mediaManagementEditMediaObjects',{mid:mid}));},show_profile:function(event){Cmyc.redirect.redirect_to(encode_url("showProfile",{id:parse_cmyc_attrib(event.target).user_id}));},download_file:function(event){Cmyc.redirect.redirect_to(encode_url("fileDownload",{id:parse_cmyc_attrib(event.target).id}));},new_window:function(event){window.open(event.element().href);}};;Cmyc.namespace('activities');Cmyc.activities.controller=function(root_element){var config={friends_checkbox:'.cmyc-onlyfriends',updater:'.cmyc-updater',previous:'.cmyc-previous',next:'.cmyc-next',activity:'.cmyc-activity',activitylist:'.cmyc-activitylist',statusnotice:'.cmyc-statusnotice'};var me=this;var listscroller;var blocked=false;var mousedown=false;var pos;var max_pos;var last_pos;this.showFriendsactivities=function(){var onlyfriends_js_data=read_js_data('onlyfriends');var url=onlyfriends_js_data.url;if(root_element.down(config.friends_checkbox).getValue()){url+="&onlyfriends=true";}
new Ajax.Updater(root_element.down(config.updater),url,{onComplete:function(data){init_update();var visibility;if(data[0].headerJSON.has_next){visibility='visible';}
else{visibility='hidden';}
root_element.down(config.next).setStyle({visibility:visibility});}});};var goNext=function(event){blocked=true;var complete=function(){listscroller.scrollNext(event);};pos++;if(pos<=max_pos){complete();}
else{max_pos=pos;var url=event.target.readAttribute('href')+"&pos="+pos;new Ajax.Request(url,{method:'POST',onComplete:function(data){root_element.down(config.activitylist).insert({bottom:data.responseText});if(!data.headerJSON.has_next){last_pos=pos;}
complete();}});}}
var goNext_finished=function(event){if(pos==1){root_element.down(config.previous).setStyle({visibility:'visible'});}
if(pos==last_pos){root_element.down(config.next).setStyle({visibility:'hidden'});mousedown=false;}
if(mousedown){goNext(event);}
else{blocked=false;}}
var goPrevious=function(event){blocked=true;pos--;if(pos==0){root_element.down(config.previous).setStyle({visibility:'hidden'});mousedown=false;}
if(pos<last_pos){root_element.down(config.next).setStyle({visibility:'visible'});}
listscroller.scrollPrevious(event);}
var goPrevious_finished=function(event){if(mousedown){goPrevious(event);}
else{blocked=false;}}
var doSmth=function(callback,event){if(!blocked&&!mousedown){mousedown=true;callback(event);}};var init=function(){var onlyfriends=root_element.down(config.friends_checkbox);if(onlyfriends){subscribe_event(onlyfriends,me.showFriendsactivities,'click',false);}
init_update();var statusnotice=$$(config.statusnotice).first();if(statusnotice){new Cmyc.statusnotice.controller(statusnotice,me);}
d("Cmyc.activities.controller - init finished");};var init_update=function(){listscroller=new Cmyc.helpers.listscroller({list:root_element.down(config.activitylist),callback_next:goNext_finished,callback_previous:goPrevious_finished,duration:0.4,scrollwidth:4});pos=0;max_pos=pos;var previous_link=root_element.down(config.previous).down('a');var next_link=root_element.down(config.next).down('a');subscribe_event(previous_link,function(event){doSmth(goPrevious,event);},"mousedown");subscribe_event(next_link,function(event){doSmth(goNext,event);},"mousedown");subscribe_event(previous_link,function(){mousedown=false;},"mouseup");subscribe_event(next_link,function(){mousedown=false;},"mouseup");capture_event(previous_link,Prototype.emptyFunction,'click');capture_event(next_link,Prototype.emptyFunction,'click');d("Cmyc.activities.controller - init_update finished");}
init();l('Cmyc.activities.controller created:',this);};;Cmyc.namespace('casting');Cmyc.casting.controller=function(root_element){var config={casting_list:'.castinglist ul',casting_items:'.castinglist ul li',casting_items_active_class:'active',casting_previous:'.castinglist a.cmyc-previous',casting_next:'.castinglist a.cmyc-next',attendances_list:'.attendancelist ul',attendances_previous:'.attendancelist a.cmyc-previous',attendances_next:'.attendancelist a.cmyc-next'};var casting_scroller;var casting_scroller_mousedown=false;var attendances_scroller;var attendances_scroller_mousedown=false;var casting_scroll_left=function(event){casting_scroller_mousedown=true;unset_active_casting();casting_scroller.scrollPrevious(event);};var casting_scroll_left_finished=function(event){casting_set_scrollbuttons();set_active_casting();if(casting_scroller_mousedown&&!casting_scroller.isFirst()){casting_scroll_left(event);}};var casting_scroll_right=function(event){casting_scroller_mousedown=true;unset_active_casting();casting_scroller.scrollNext(event);};var casting_scroll_right_finished=function(event){casting_set_scrollbuttons();set_active_casting();if(casting_scroller_mousedown&&!casting_scroller.isLast()){casting_scroll_right(event);}};var casting_set_scrollbuttons=function(){var display=casting_scroller.hasMoreLeft()?'block':'none';root_element.down(config.casting_previous).setStyle({display:display});display=casting_scroller.hasMoreRight()?'block':'none';root_element.down(config.casting_next).setStyle({display:display});};var unset_active_casting=function(){root_element.select(config.casting_items).each(function(element){element.removeClassName(config.casting_items_active_class);});};var set_active_casting=function(){var active=root_element.down(config.casting_list).down('.cmyc-visible').next();active.addClassName(config.casting_items_active_class);};var attendances_scroll_left=function(event){attendances_scroller_mousedown=true;attendances_scroller.scrollPrevious(event);};var attendances_scroll_left_finished=function(event){attendances_set_scrollbuttons();if(attendances_scroller_mousedown&&!attendances_scroller.isFirst()){attendances_scroll_left(event);}};var attendances_scroll_right=function(event){attendances_scroller_mousedown=true;attendances_scroller.scrollNext(event);};var attendances_scroll_right_finished=function(event){attendances_set_scrollbuttons();if(attendances_scroller_mousedown&&!attendances_scroller.isLast()){attendances_scroll_right(event);}};var attendances_set_scrollbuttons=function(event){var display=attendances_scroller.hasMoreLeft()?'block':'none';root_element.down(config.attendances_previous).setStyle({display:display});display=attendances_scroller.hasMoreRight()?'block':'none';root_element.down(config.attendances_next).setStyle({display:display});};var init=function(){casting_scroller=new Cmyc.helpers.listscroller({list:root_element.down(config.casting_list),listsize:3,callback_next:casting_scroll_right_finished,callback_previous:casting_scroll_left_finished,orientation:'horizontal',duration:1.5});subscribe_event(root_element.down(config.casting_previous),function(event){if(!casting_scroller_mousedown&&!casting_scroller.isBlocked()){casting_scroll_left(event);}},'mousedown');subscribe_event(root_element.down(config.casting_next),function(event){if(!casting_scroller_mousedown&&!casting_scroller.isBlocked()){casting_scroll_right(event);}},'mousedown');var casting_mouseup=function(){casting_scroller_mousedown=false;};subscribe_event(root_element.down(config.casting_previous),casting_mouseup,'mouseup');subscribe_event(root_element.down(config.casting_next),casting_mouseup,'mouseup');attendances_scroller=new Cmyc.helpers.listscroller({list:root_element.down(config.attendances_list),listsize:8,callback_next:attendances_scroll_right_finished,callback_previous:attendances_scroll_left_finished,orientation:'horizontal',duration:0.8});subscribe_event(root_element.down(config.attendances_previous),function(event){if(!attendances_scroller_mousedown&&!attendances_scroller.isBlocked()){attendances_scroll_left(event);}},'mousedown');subscribe_event(root_element.down(config.attendances_next),function(event){if(!attendances_scroller_mousedown&&!attendances_scroller.isBlocked()){attendances_scroll_right(event);}},'mousedown');var attendances_mouseup=function(){attendances_scroller_mousedown=false;};subscribe_event(root_element.down(config.attendances_previous),attendances_mouseup,'mouseup');subscribe_event(root_element.down(config.attendances_next),attendances_mouseup,'mouseup');};init();};Cmyc.namespace('advertisement');Cmyc.advertisement.controller=function(ad_element){if(ad_element.visible()){var ad_control=new Cmyc.advertisement.fullscreen_curtain_banner();}};Cmyc.advertisement.fullscreen_curtain_banner=function(){var ad_container_selector='.cmyc-ad-fullscreen-curtain-container';var left_div_id='cmyc-curtain-left';var right_div_id='cmyc-curtain-right';var extra_ad_id='cmyc-ad-extra-ad';var banner_width=1600;var banner=null;var wait_for_banner_loaded=function(callback){var banner_url=$('cmyc-curtain-left').getStyle('background-image').match(/url\((.*)\)/)[1];d(banner_url);banner=new Image();banner.src=banner_url;var wait_for_complete=function(){d("wait_for_complete called");if(banner.complete){d("banner complete executing callback");callback();}else{d("banner not complete  - setting timeout");window.setTimeout(wait_for_complete,50);}};wait_for_complete();};var start_banner_effect=function(){var available_screenwidth=(window.innerWidth||document.documentElement.clientWidth);var scroll_width=Math.round(available_screenwidth/2);var resynced_effects={};var resync_after_move=function(effect){resynced_effects[effect.element.id]=1;if(resynced_effects[left_div_id]&&resynced_effects[right_div_id]){after_move_effects();}};var after_move_effects=function(){$$(ad_container_selector).first().hide();Element.appear(extra_ad_id);};var slide_open=function(){var tmp;try{tmp=new Effect.Move(left_div_id,{x:-(scroll_width),mode:'relative',afterFinish:resync_after_move});tmp=new Effect.Move(right_div_id,{x:scroll_width,mode:'relative',afterFinish:resync_after_move});}catch(err){$(left_div_id,right_div_id).invoke('hide');}};$(right_div_id,left_div_id).each(function(div){if(div.getStyle('left')==='50%'){div.setStyle({left:(available_screenwidth/2)+'px'});}});Element.hide(extra_ad_id);window.setTimeout(slide_open,Cmyc.config.advertisement_slide_open_delay);};wait_for_banner_loaded(start_banner_effect);};;Cmyc.namespace("charts");Cmyc.charts.controller=function(root_element){var open_audioplayer_charts=function(event){var mo_id=parse_cmyc_attrib(event.target).mediaobject_id;var cw_id=parse_cmyc_attrib(event.target).chart_week_id;window.open(encode_url("showAudioPlayerPopup",{mediaobject_id:mo_id,skip_filters:1,chart_week_id:cw_id}),"Audioplayer","width=970,height=493,left=10,top=10");};capture_event(root_element.select('.cmyc-play-audio-popup'),open_audioplayer_charts);};;Cmyc.namespace("country_select");Cmyc.country_select.controller=function(country_select,config,text_not_set){config=config||{state_select:$$(parse_cmyc_attrib(country_select).state_select).first(),city_select:$$(parse_cmyc_attrib(country_select).city_select).first()};var state_select=config.state_select;var city_select=config.city_select;if(!state_select||!city_select||!country_select){e("Cmyc.country_select.controller cannot find all needed elements - check cmyc-attribute or custom config object",config);}
var countries=null;var init=function(_,result){l("init_countries",arguments);d(result,state_select,city_select);country_select.enable();if(parseInt(country_select.getValue(),10)>0){state_select.enable();}
if(parseInt(state_select.getValue(),10)>0){city_select.enable();}
countries=result.countries;subscribe_event(country_select,update_state_select,'change');subscribe_event(state_select,update_city_select,'change');};var country_data=function(country_id){if(countries!==null){return countries.find(function(test){return test.id==country_id;});}
return null;};var states_invoker=function(country_id,callback){var country=country_data(country_id);if(country&&country.states){country.states.each(callback);}};var cities_invoker=function(country_id,state_id,callback){var country=country_data(country_id);if(country&&country.states){var state=country.states.find(function(test){return test.id==state_id;});if(state&&state.cities){state.cities.each(callback);}}};var update_state_select=function(event){l("update_state_select",event);var cur_country_id=event.target.value;if(cur_country_id){state_select.enable();empty_select_options(state_select);states_invoker(cur_country_id,function(state){var temp=new Option(state.name,state.id,false,false);state_select.options[state_select.options.length]=temp;});}else{state_select.options.length=0;empty_select_options(state_select);}
if(state_select.options.length<=1){state_select.disable();}
var fake_event=state_select.fire('change');update_city_select(fake_event);};var empty_select_options=function(select){select.length=0;select.options[select.options.length]=new Option(text_not_set?text_not_set:"Auswahl",0,false,true);};var update_city_select=function(event){l("update_city_select",event);var selected_state_id=event.target.value;var cur_country_id=country_select.value;if(cur_country_id&&selected_state_id){city_select.enable();empty_select_options(city_select);cities_invoker(cur_country_id,selected_state_id,function(city){city_select.options[city_select.options.length]=new Option(city.name,city.id,false,false);});}else{city_select.options.length=0;empty_select_options(city_select);}
if(city_select.options.length<=1){city_select.disable();}};[state_select,city_select].each(function(select){select.disable();});country_select.disable();var temp=new Ajax.Request(encode_url('ajaxCountryData'),{onComplete:init});};;Cmyc.namespace("dialogues");Cmyc.dialogues.show_confirm_cancel_membership=function(){var temp=new Cmyc.modal_windows.ajax_confirm_redirect_dialog(encode_url('ajaxShowCancelMembership'),encode_url("cancelMembership"));};Cmyc.dialogues.show_cancel_membership_success=function(){var temp=new Cmyc.modal_windows.ajax_confirm_redirect_dialog(encode_url('ajaxShowCancelMembershipSuccess'),'');};Cmyc.dialogues.show_registration_confirmation_success=function(optinkey){l("Cmyc.dialogues.show_registration_success",arguments);var temp=new Cmyc.modal_windows.ajax_confirm_redirect_dialog(encode_url('ajaxShowRegistrationConfirmationSuccess',{optinkey:optinkey}),'',Cmyc.dialogues.small_size_default);};Cmyc.dialogues.email_changed_success=function(){show_dialogue("E-Mail Adresse geändert","E-Mail Adresse wurde erfolgreich geändert!");};Cmyc.dialogues.show_registration_confirmation_error=function(optinkey){l("Cmyc.dialogues.show_registration_error",arguments);var temp=new Cmyc.modal_windows.ajax_confirm_redirect_dialog(encode_url('ajaxShowRegistrationConfirmationError',{optinkey:optinkey}),'',Cmyc.dialogues.small_size_default);};;Cmyc.namespace('home');Cmyc.home.chart_page=function(root_element){var show_chart_page=function(event){var cat=event.target.value;$('homeChartIndicator').show();$('homeChartContent').hide();var updater=new Ajax.Updater('homeChartContent',encode_url('ajaxShowHomeChartPage'),{method:'get',evalScripts:true,parameters:{category_id:cat},onSuccess:function(transport){$('homeChartIndicator').hide();$('homeChartContent').show();}});};capture_event(root_element,show_chart_page,'change');};;Cmyc.mediamanagement=function(root){var button;var uploader_element=find_element('.media-management-uploader');if(uploader_element){var matches=location.pathname.match(/(\/.*)\/index.php/);var dirname=(matches)?matches[1]:'';var form=$('cmyc-uploader-form');var uploader=new Cmyc.Uploader($('cmyc-uploader'),{container:$("cmyc-uploader-container"),width:"100",height:"20",upload_status:$('cmyc-uploader-upload-status-overall'),upload_list:$('cmyc-uploader-upload-list'),buttons_browse:$$('.cmyc-uploader-button-browse'),buttons_upload:$$('.cmyc-uploader-button-upload'),buttons_cancel:$$('.cmyc-uploader-button-cancel'),buttons_edit:$$('.cmyc-uploader-button-edit'),view_init:$('cmyc-uploader-view-uploader-init'),view_flash_missing:$('cmyc-uploader-view-flash-missing'),view_no_files:$('cmyc-uploader-view-no-files'),view_files:$('cmyc-uploader-view-files'),view_success:$('cmyc-uploader-view-success'),view_agb:$('cmyc-uploader-view-agb'),view_uploaded_files:$('cmyc-uploader-view-uploaded-files'),view_uploaded_files_list:$('cmyc-uploader-view-uploaded-files-list'),view_uploaded_files_in_progress:$('cmyc-uploader-view-uploaded-files-in-progress'),errors:$F('cmyc-uploader-errors').evalJSON(),uploaded_files_updater:new Cmyc.uploader.view_updater($("cmyc-uploader-uploaded-files"),{template_uploaded_file_placeholder:new Template($F("template-uploaded-file-placeholder")),template_uploaded_file:new Template($F("template-uploaded-file"))}),template_file:new Template($F('cmyc-uploader-file-template')),limitFiles:20,url:form.readAttribute("action"),fieldName:'Filedata',path:'http://'+location.hostname+dirname+'/scripts/lib/uploader/Swiff.Uploader.swf',form:form});var agb_helper=new Cmyc.mediaobjects.agb_helper({agb_checkbox:uploader_element.down('.cmyc-uploader-agb'),upload_buttons:uploader_element.select('.cmyc-uploader-button-upload'),agb_unchecked_error:$('cmyc-uploader-confirm-agb-message')});}
var retrieve_checked_item_ids=function(){var item_ids=[];root.select("form.cmyc-media-management-item-form-result li input[type='checkbox']&&[name='mid\[\]']").each(function(checkbox){if(checkbox.checked){item_ids.push(checkbox.readAttribute('value'));}});return item_ids;}
var form=find_element('.cmyc-media-management-editmask-form');if((form)){var mo_helper=new Cmyc.mediaobjects.edit_helper({form:form,button_submit:form.down('button[name="submitData"]'),multi_checkboxes:form.select('.cmyc-multivalues-checkbox')});}
var forms=new Hash();root.select("form[class*='cmyc-media-management-item-form']").each(function(form){var matches=form.className.match(/cmyc-media-management-item-form-([\w\-]+)/);if(matches){forms.set(matches[1],form);}});var checkbox=root.down('.cmyc-media-management-toggle-all-checkboxes');if(checkbox){var checkbox_toggler=new Cmyc.behaviour.checkbox_toggler(root.down('.cmyc-media-management-toggle-all-checkboxes'),forms.get('result'));}
var register_filter_events=function(){var forms=root.select('form[class=cmyc-media-management-item-form-search]');var submit_filter=function(event){event.stop();var params=location.href.toQueryParams();var filter_elements=root.select('select[name=playlist], select[name=sort], select[name=items_per_page]');l(filter_elements);forms.each(function(form){Object.extend(params,form.serialize(true));});Object.extend(params,Form.serializeElements(filter_elements,true));var target_location=location.href.replace(/#/,'');location.href=target_location.replace(location.search,'?')+Object.toQueryString(params);}
root.select('div.media-management-search-result select[class*=cmyc-media-management]').invoke('observe','change',submit_filter);forms.invoke('observe','submit',submit_filter);}
var button_delete=root.down('.cmyc-media-management-button-delete-marked');if(button_delete){capture_event(button_delete,function(event){var form=forms.get('result');var element=event.element();var item_ids=retrieve_checked_item_ids();if(item_ids.length==0){show_dialogue("Datei(n) löschen","Bitte markiere zunächst eine oder mehrere Dateien, die du zu einer(m) Playlist/Album hinzufügen möchtest. Klicke dazu auf das Kästchen im Vorschaubild.");}else{show_confirm_dialogue("Markierte Dateien löschen","Bist du sicher, dass du die Datei(en) wirklich löschen möchtest?",function(){var input=new Element('input',{type:'hidden',name:'delete',value:1})
form.appendChild(input);form.action=element.readAttribute('href');form.method='post';Cmyc.helpers.form.submit(form);});}});}
var button_sort=root.down('.cmyc-media-management-button-sort');if(button_sort){capture_event(button_sort,function(event){var element=event.element();var playlist_id=$F(root.down("select[name='playlist']"));location.href=element.readAttribute('href').setQueryStringValueForParam('playlist',playlist_id);});}
var button_edit=root.down('.cmyc-media-management-button-edit-marked');if(button_edit){capture_event(button_edit,function(event){var element=event.element();var form=forms.get('result');var item_ids=retrieve_checked_item_ids();if(item_ids.length==0){show_dialogue("Datei(n) bearbeiten","Bitte markiere zunächst eine oder mehrere Dateien, die du bearbeiten möchtest. Klicke dazu auf das Kästchen im Vorschaubild.");}else{form.action=element.readAttribute('href');Cmyc.helpers.form.submit(form);}});}
register_filter_events();};;Cmyc.namespace("mediaobject_comments.controller");Cmyc.mediaobject_comments.controller=function(config){var active_mediaobject_id=0;var comments_div=null;var comments_toggle_div=null;var pager_id='';var textarea_selector='.cmyc-comments-input-default-text';var comments_title_default_template=new Template("Kommentare");var comments_title_template=new Template("Kommentare zu <span class='userLink'>#{user_name}</span> - <span class='mediaTitle'>#{media_title}</span>");var comments_title_template_wo_username=new Template("Kommentare zu <span class='mediaTitle'>#{media_title}</span>");var write_comment=function(event){Event.stop(event);var form=event.target;var textarea=form.down(textarea_selector);var test=Cmyc.datastorage.read_js_data(textarea.id);if(test&&textarea&&textarea.getValue()!==""&&test.default_text!==textarea.getValue()){save_comment_from_form(form);}};var after_comments_update=function(){l("after_comments_update");comments_div.show();subscribe_event(comments_div.select('FORM.cmyc-write-comment'),write_comment,'submit');capture_event(comments_div.select('.cmyc-start-edit-comment'),start_edit_comment);capture_event(comments_div.select('.cmyc-stop-edit-comment'),stop_edit_comment);capture_event(comments_div.select('.cmyc-delete-comment'),delete_comment);capture_event(comments_div.select('.cmyc-edit-comment'),edit_comment,"submit");capture_event(comments_div.select('.paginator.'+get_pager_id()+' a'),goto_page);capture_event(comments_div.select('.paginator.'+get_pager_id()),goto_page,'submit');};var get_pager_id=function(){return pager_id;};var reload_comments=function(optional_params){optional_params=optional_params||{};var action=config.actions.load||'ajaxShowMediaobjectComments';update_by_action(comments_div,action,Object.extend({id:active_mediaobject_id,pager_id:get_pager_id()},optional_params));};var goto_page=function(event){var params=parse_cmyc_attrib(event.target)||parse_cmyc_attrib(event.target.parentNode);if(!params.p){params.p=($F(event.target['pager-'+get_pager_id()])-1);}
$('loading-'+get_pager_id()).show();reload_comments(params);};var save_comment_from_form=function(form){var action=config.actions.save||'ajaxSaveMediaobjectComment';var params=form.serialize(true);params.id=active_mediaobject_id;params.pager_id=get_pager_id();update_by_action(comments_div,action,params);};var get_edit_comment_form=function(){return find_element('.cmyc-edit-comment');};var get_write_comment_form=function(){return find_element('.cmyc-write-comment');};var start_edit_comment=function(event){l("edit_comment called",arguments);var edit_form=get_edit_comment_form();var comment_id=parse_cmyc_attrib(event.target).comment_id;get_write_comment_form().hide();edit_form.comment_id.value=comment_id;edit_form.comment.value=$('cmyc-comment-'+comment_id).innerHTML;edit_form.show();l("edit comment finished");};var stop_edit_comment=function(event){get_edit_comment_form().hide();get_write_comment_form().show();};var edit_comment=function(event){save_comment_from_form(event.target);};var delete_comment=function(event){l("delete_comment called",arguments);var action=config.actions.remove||'ajaxDeleteMediaobjectComment';var params=parse_cmyc_attrib(event.target);params.id=active_mediaobject_id;params.pager_id=get_pager_id();update_by_action(comments_div,action,params);};var comments_active=function(){return comments_toggle_div.hasClassName("active");};var toggle_comments=function(){l("mediaobject_comments: toggle_comments active_mediaobject_id=",active_mediaobject_id);if(active_mediaobject_id===0){return;}
comments_toggle_div.scrollIntoView();comments_toggle_div.toggleClassName("active");if(comments_div.innerHTML!==""){comments_div.toggle();}else{me.reset_comments();reload_comments();}};this.load_and_show_comments=function(mixed){l("comments: load_and_show_comments",arguments);if(typeof mixed!=="undefined"){me.set_active_mediaobject(mixed);}
comments_toggle_div.addClassName("active");me.reset_comments();reload_comments();d("load_and_show_comments done!");};this.set_active_mediaobject=function(mixed){l("set_active_mediaobject called",mixed);if(mixed.memo){mediaobject_id=mixed.memo.id||mixed.memo.mediaobject_id||mixed.memo;}else{mediaobject_id=mixed;}
d("setting mediaobject_id to ",mediaobject_id);if(parseInt(mediaobject_id,10)>0){active_mediaobject_id=parseInt(mediaobject_id,10);}
if(config.comments_title_div){var new_title='';if(mixed.memo){var mediaobject_info={id:mediaobject_id,user_name:mixed.memo.image_user_name||mixed.memo.user_name,media_title:mixed.memo.image_title||mixed.memo.media_title};if(mediaobject_info.user_name){new_title=comments_title_template.evaluate(mediaobject_info);}else{new_title=comments_title_template_wo_username.evaluate(mediaobject_info);}}else{new_title=comments_title_default_template.evaluate({});}
$$(config.comments_title_div).invoke('update',new_title);}
d("set_active_mediaobject finished active_mediaobject_id=",active_mediaobject_id);};this.reset_comments=function(){d("reset_comments called");var update_content=(comments_active()&&config.loading_animation)?'<img src="'+config.loading_animation+'"/>':"";if(comments_div){comments_div.update(update_content);}};l("c'tor mediaobject_comments.controller ",config);var me=this;config.actions=config.actions||{};pager_id=config.pager_id;comments_div=find_element(config.comments_div);comments_toggle_div=find_element(config.comments_toggle_div);subscribe_this_element_updated(comments_div,after_comments_update);capture_event(comments_toggle_div,toggle_comments);if(config.event_set_mediaobject_id){subscribe(config.event_set_mediaobject_id,me.set_active_mediaobject);}
if(config.event_show_comments){subscribe(config.event_show_comments,me.load_and_show_comments);}
if(config.event_reset_comments){subscribe(config.event_reset_comments,me.reset_comments);}
l("Cmyc.mediaobject_comments.controller created",comments_div,comments_toggle_div);};;Cmyc.namespace("mediaobjects.uploader_helper");Cmyc.mediaobjects.agb_helper=function(config){var require_agb_active=function(mixed){var checkbox=mixed.target?mixed.target:mixed;config.upload_buttons.each(function(button){if(button.tag_control&&button.tag_control instanceof Cmyc.Tags.Button){button.tag_control.disable(!checkbox.checked);}
[config.agb_unchecked_error].invoke(checkbox.checked?'hide':'show');});};l("Cmyc.mediaobjects.uploader_helper",config);subscribe_event(config.agb_checkbox,require_agb_active);config.agb_checkbox.checked=false;};Cmyc.mediaobjects.edit_helper=function(config){var fake_submit=function(form){var uid='x-y-z';var input=form.down("#"+uid);if(!input){input=new Element("input",{"type":"submit","name":"final_submit","id":uid,"style":"display: none;"});form.appendChild(input);}
if(input){input.click();}};var submit_form=function(event){event.stop();var do_submit=function(){transfer_image_cropper_infos();fake_submit(config.form);};if(is_multi_edit){var test=config.multi_checkboxes.find(function(checkbox){return(checkbox.checked&&parse_cmyc_attrib(checkbox).different_start_values);});if(test){show_confirm_dialogue("Unterschiedliche Werte gefunden!","Warnung: Die Form hat unterschideliche Werte, die geändert wurden. Willst du die Werte wirklich  überschreiben?",function(){do_submit();});}else{do_submit();}}else{do_submit();}};var transfer_image_cropper_infos=function(){var cropper_info_elements=$$("form.tag-image-cropper-form-infos input[type='hidden']").each(function(input){config.form.appendChild(input);});};var set_multi_element_visibility=function(checkbox,visible){checkbox.checked=visible;var tr_element=checkbox.up("tr");var form_elements=tr_element.select("input:not(.cmyc-multivalues-checkbox), textarea, select").findAll(function(element){return!element.up(".tag-selectbox-multiple");});var tag_elements=tr_element.select(".tag-selectbox-multiple");d("tr_element",tr_element,"form_elements=",form_elements);form_elements.invoke("writeAttribute","disabled",!visible);if(!visible){tr_element.addClassName("disabled");}else{tr_element.removeClassName("disabled");}
if(tag_elements){tag_elements.each(function(tag_element){if(tag_element.tagControl instanceof Cmyc.Tags.SelectboxMultiple){tag_element.tagControl.disable(!visible);}});}};var switch_multi_element_visiblity=function(event){var checkbox=event.target;set_multi_element_visibility(checkbox,checkbox.checked);};var init_multi_form=function(){config.multi_checkboxes.each(function(checkbox){if(get_cmyc_property(checkbox,'different_start_values')==1){d("different startvalues",checkbox);set_multi_element_visibility(checkbox,false);checkbox.checked=false;}else{d("same startvalues",checkbox);set_multi_element_visibility(checkbox,true);checkbox.checked=true;}});};var register_selectbox_listeners=function(){var selectbox_categories=config.form.down("#media-object-category-filetype");var selectbox_genre=config.form.down("#media-object-genre");var container_category_genre=config.form.down('.cmyc-mediamanagement-container-category-genre');var container_category_no_genre=config.form.down('.cmyc-mediamanagement-container-category-no-genre');if(selectbox_categories){selectbox_categories.observe("change",function(event){var value=event.element().value;if(value!==""||value!==0){var temp=new Ajax.Updater(container_category_genre,encode_url('ajaxMediamanagentSelectGenre',{id:value}),{onComplete:function(){if(container_category_no_genre){container_category_no_genre.hide();}
container_category_genre.show();container_category_genre.disabled=false;}});}else{if(container_category_no_genre){container_category_no_genre.show();}
container_category_genre.hide();container_category_genre.disabled=true;}});}};var register_category_and_genre_selectbox_listeners=function(){var selectbox_category=config.form.down('select.cmyc-media-management-category');var selectbox_category_genre=config.form.down('select.cmyc-media-management-category-genre');if(!selectbox_category&&!selectbox_category_genre){return;}
var display_optgroup_elements=function(selectbox,state){var id='tmp-'+selectbox.id;var optgroup_container=selectbox.previous('select#'+id);if(!optgroup_container){optgroup_container=new Element('select',{id:id}).hide();selectbox.insert({before:optgroup_container});}
if(state){optgroup_container.select('optgroup').each(function(optgroup){selectbox.appendChild(optgroup);});}else{selectbox.select('optgroup').each(function(optgroup){optgroup_container.appendChild(optgroup);});}};var show_optgroup_options_only=function(selectbox,optgroup_id){display_optgroup_elements(selectbox,true);var optgroup=selectbox.down('optgroup[id='+optgroup_id+']');if(!optgroup)return;var selected_option=$(selectbox[selectbox.selectedIndex]);optgroup.select('option').each(function(option){var _option=new Element('option');_option.value=option.value;_option.appendChild(document.createTextNode(option.text));_option.addClassName('tmp');if(selected_option.value==_option.value){selected_option.selected=false;_option.selected=true;}
selectbox.appendChild(_option);});display_optgroup_elements(selectbox,false);};var set_selectbox_category_option=function(option){selectbox_category_genre.select('option.tmp').invoke('remove');if(option.value==''){display_optgroup_elements(selectbox_category_genre,true);selectbox_category_genre.selectedIndex=0;}else{show_optgroup_options_only(selectbox_category_genre,option.value);selectbox_category_genre.selectedIndex=0;}};var set_selectbox_category_genre_option=function(option,init){init=init||false;var optgroup=option.up('optgroup');if(init){if(optgroup){show_optgroup_options_only(selectbox_category_genre,optgroup.id);}}else{if(optgroup){var index=-1;$A(selectbox_category.options).detect(function(element){index++;return element.value==optgroup.id;});selectbox_category.selectedIndex=index;if(selectbox_category.disabled){var checkbox=config.form.down("input[name='media_object_changes[category_filetype_id]']");set_multi_element_visibility(checkbox,true);}}}};selectbox_category.observe('change',function(event){set_selectbox_category_option($(selectbox_category.options[selectbox_category.selectedIndex]));});selectbox_category_genre.observe('change',function(event){set_selectbox_category_genre_option($(selectbox_category_genre.options[selectbox_category_genre.selectedIndex]));});set_selectbox_category_genre_option($(selectbox_category_genre.options[selectbox_category_genre.selectedIndex]),true);}
subscribe_event(config.button_submit,submit_form,'click');Cmyc.helpers.form.add_ajax_response_handler({form:config.form,error_container:$('media-management-edit-mask-errors')});var is_multi_edit=config.multi_checkboxes.length>0;if(is_multi_edit){init_multi_form();subscribe_event(config.multi_checkboxes,switch_multi_element_visiblity,'click');}
register_category_and_genre_selectbox_listeners();};;Cmyc.namespace('mediaobjects_slider');Cmyc.mediaobjects_slider=function(slider_container_id){var config={slider_tabs:$$('.cmyc-top10slider-tab'),source_switch:$$('.cmyc-top10slider-source-switch').first(),active_class:'active',date_filter_select:'select#cmyc-top10slider-filter'};var slider=null;var get_date_filter_value=function(){var test=slider_container_id.down(config.date_filter_select);if(test){return test.getValue();}
return null;};var date_filter_changed=function(event){switch_slider(active_tab_get_mediaobject_id());};var active_tab_get_mediaobject_id=function(){var active_tab=config.slider_tabs.find(function(test){return test.hasClassName(config.active_class);});if(!active_tab){return Cmyc.php_constants.MEDIAOBJECT_TYPE_VIDEO;}
return parse_cmyc_attrib(active_tab);};var slider_tab_clicked=function(event){var li_element=event.findElement("LI");var slider_tab=parse_cmyc_attrib(li_element);if(slider_tab){config.slider_tabs.invoke('removeClassName',config.active_class);li_element.addClassName(config.active_class);switch_slider(slider_tab);}};var switch_slider=function(slider_tab){l("switch_slider",arguments);var type=slider_tab.mediaobject_type;var user_id=slider_tab.user_id;if(slider){slider.destroy_gentle();}
slider=new UI.Ajax.Carousel(slider_container_id,{url:encode_url("ajaxShowHomeChartSliderPage",{chart_item_selection:type,source:config.source_switch.value,date_filter:get_date_filter_value(),user_id:user_id}),elementSize:65,container:".container",previousButton:".previous_button",nextButton:".next_button"});l("Cmyc.mediaobjects_slider.switch_slider:",slider);};capture_event(config.slider_tabs,slider_tab_clicked);subscribe_event(slider_container_id.down(config.date_filter_select),date_filter_changed,'change');switch_slider(active_tab_get_mediaobject_id());l("Cmyc.mediaobjects_slider created",this);};;Cmyc.namespace("mediathek.dialogues");Cmyc.mediathek.dialogues={show_add_media_to_playlist:function(mixed){if(!Cmyc.singletons.login.is_logged_in()){Cmyc.singletons.login.show_login();return;}
var mid=mixed.target?parse_cmyc_attrib(mixed.target).id:mixed;if(!mid){w("no mediaobject id given:");return;}
mid=(!Object.isArray(mid))?[mid]:mid;var querystring="mid[]="+mid.join('&mid[]=');var handle_form=function(){Cmyc.helpers.form.add_ajax_response_handler({form:find_element('.cmyc-add-to-playlist'),modal_window:message_window});capture_event('.cmyc-playlist',playlistChanged,'change');};var message_window=new Cmyc.modal_windows.ajax_content(Object.extend(Cmyc.dialogues.small_size_default,{onShow:handle_form}),encode_url('ajaxShowAddToPlaylist',querystring));var playlistChanged=function(event){var playlist_id=$F(event.element());var playlist_data=$H(read_js_data('cmyc-playlist'));var test=playlist_data.get(playlist_id).visibility;$$('.cmyc-visibility').first().value=test;}},show_delete_media_from_playlist:function(playlist_id,media_object_ids,config){if(!Cmyc.singletons.login.is_logged_in()){Cmyc.singletons.login.show_login();return;}
if(!Object.isArray(media_object_ids)){media_object_ids=[media_object_ids];}
var querystring="playlist="+playlist_id+"&mid[]="+media_object_ids.join('&mid[]=');var handle_form=function(){Cmyc.helpers.form.add_ajax_response_handler({form:find_element('.cmyc-delete-from-playlist'),modal_window:message_window,success_callback:config.success_callback||null});};var message_window=new Cmyc.modal_windows.ajax_content(Object.extend(Cmyc.dialogues.small_size_default,{onShow:handle_form}),encode_url('ajaxShowDeleteFromPlaylist',querystring));},show_create_playlist:function(playlist_id){l("show_create_playlist");var create_playlist_success=function(result){l("create_playlist_success",result);fire(Cmyc.events.playlist_created,result.data);modal_window.close();};var handle_form=function(){l("handle_form called",arguments);Cmyc.helpers.form.add_ajax_response_handler({form:find_element('.cmyc-create-playlist-form'),modal_window:modal_window,success_callback:create_playlist_success});};var querystring=playlist_id?"playlist="+playlist_id:'';var modal_window=new Cmyc.modal_windows.ajax_content(Object.extend(Cmyc.dialogues.small_size_default,{onShow:handle_form}),encode_url('ajaxShowCreateEditPlaylist',querystring));},delete_playlist:function(e){var playlist=parse_cmyc_attrib(e.target);var do_delete=function(event){var temp=new Ajax.Request(encode_url("ajaxDeletePlaylist",{id:playlist.id}),{onComplete:fire.curry(Cmyc.events.playlist_deleted,playlist.id)});};show_confirm_dialogue("Playlist löschen","Willst du die Playlist '"+playlist.title+"' wirklich löschen?",do_delete);},show_info:function(mixed){var mid=mixed.target?parse_cmyc_attrib(mixed.target).id:mixed;var message_window=new Cmyc.modal_windows.ajax_content({},encode_url('ajaxShowFileMetaData',{mid:mid}));}};;Cmyc.namespace("messaging");Cmyc.messaging.delete_form_controller=function(delete_messaging_form){capture_event(delete_messaging_form,Cmyc.singletons.messaging.show_delete_message,'submit');};;Cmyc.metapages=function(container_element){var query_params=location.href.toQueryParams();var meta_pages_updater=new Cmyc.menu_ajax_updater({activate_first_element:false,activate_element:query_params.page?('page-'+query_params.page).camelize():false,all_menu_elements:'.cmyc-page',main_menu:'cmyc-metapages-menu',content_container:'metapageContent'},{});};;Cmyc.namespace('modelvoting');Cmyc.modelvoting.controller=function(root_element){var config={showsedcard_elements:'A.cmyc-showsedcard',arrow_elements:'DIV.arrow'};var showsedcard=function(event){sedcard_elements=$$(config.showsedcard_elements);arrow_elements=$$(config.arrow_elements);clicked_element=event.element();sedcard_elements.invoke('removeClassName','active');arrow_elements.each(function(elem){elem.removeClassName('arrow1')
elem.removeClassName('arrow2')});clicked_element.addClassName('active');if(clicked_element==sedcard_elements[0]){arrow_elements[0].addClassName('arrow1');}else{arrow_elements[0].addClassName('arrow2');}};var init=function(){subscribe_event(config.showsedcard_elements,showsedcard,"click",false);d("Cmyc.modelvoting.controller - init finished");};init();l('Cmyc.modelvoting.controller created:',this);};;Cmyc.namespace('newsarchive');Cmyc.newsarchive.controller=function(root){var config={active_news_selector:'.cmyc-active-news',teaser_sub_selector:'.cmyc-teaser-element',active_class:'active',teaser_data_sub_selector:'.cmyc-jsondata',wrapper_usernews_id:'cmyc-usernewsarchive',usernews_image_toggler_selector:'.cmyc-data-image',usernews_image_toggler_target_selector:'.cmyc-usernews-mouseover-play',comments_toggle_subcontainer_selector:".cmyc-usernews-comments-toggle",comments_subcontainer_selector:".cmyc-usernews-comments"};var comments_controller=null;var event_show_comments="Cmyc.profile.modules.usernews:show_comments";var active_toggler;var active_news;var set_active_newsteaser=function(news_id){d("set_active_newsteaser",arguments);root.select(config.teaser_sub_selector).invoke('removeClassName',config.active_class);var active_teaser=root.select(config.teaser_sub_selector).find(function(element){return parse_cmyc_attrib(element).id==news_id;});if(active_teaser){active_teaser.addClassName(config.active_class);}};var display_news=function(active_news){l("display_news",arguments);show_active_toggler();active_news.news=active_news.news.gsub("\n","<br>");if(active_news.previewimage!=''){active_news.image=active_news.previewimage;}
update_elements_by_hash(root.down(config.active_news_selector),$H(active_news),'.cmyc-data-');set_active_newsteaser(active_news.id);comments_controller.load_and_show_comments({memo:{id:active_news.id,user_name:active_news.user_showname,media_title:active_news.headline}});};var play_active_usernews=function(){if(active_news&&active_news.id){Cmyc.singletons.videoplayer.play_usernewsarchive_video(active_news.id);}};var play_active_news=function(){if(active_news&&active_news.id){Cmyc.singletons.videoplayer.play_newsarchive_video(active_news.id);}};var show_active_toggler=function(){if(active_news.video!=''){create_active_toggler();}else{delete_active_toggler();}};var create_active_toggler=function(){active_toggler=new Cmyc.behaviour.div_toggler.mouseover(root.down(config.usernews_image_toggler_selector),null,root.down(config.usernews_image_toggler_target_selector));};var delete_active_toggler=function(){if(active_toggler){active_toggler.destroy();delete active_toggler;}};var get_comments_toggle_div=function(){return root.down(config.comments_toggle_subcontainer_selector);};var get_comments_div=function(){return root.down(config.comments_subcontainer_selector);};var create_comments_controller=function(){var comments_config={comments_div:get_comments_div(),comments_toggle_div:get_comments_toggle_div(),pager_id:'cmyc-usernews-comments-pager',loading_animation:'images/ajax_indicator_big.gif',event_show_comments:event_show_comments,comments_title_div:".cmyc-usernews-comments-title"};if(root==$(config.wrapper_usernews_id)){comments_config.actions={load:'ajaxShowUsernewsComments',save:'ajaxSaveUsernewsComment',remove:'ajaxDeleteUsernewsComment'}}else{comments_config.actions={load:'ajaxShowNewsComments',save:'ajaxSaveNewsComment',remove:'ajaxDeleteNewsComment'}}
comments_controller=new Cmyc.mediaobject_comments.controller(comments_config);};var load_initial_news=function(){var active_teaser=root.select(config.teaser_sub_selector).find(function(element){return element.hasClassName(config.active_class);});active_news=Cmyc.datastorage.read_js_data(active_teaser.id);display_news(active_news);}
create_comments_controller();load_initial_news();var active_news_id="cmyc-newsarchive-teaser-"+parse_cmyc_attrib($('cmyc-active-news')).id;active_news=Cmyc.datastorage.read_js_data(active_news_id);show_active_toggler();capture_event(root.select(config.teaser_sub_selector),function(event){var news_teaser_element=$(Event.element(event));active_news=Cmyc.datastorage.read_js_data(news_teaser_element.id);if(!active_news){news_teaser_element=news_teaser_element.up(config.teaser_sub_selector);active_news=Cmyc.datastorage.read_js_data(news_teaser_element.id);}
display_news(active_news);});if(root==$(config.wrapper_usernews_id)){capture_event(root.select(config.usernews_image_toggler_target_selector),play_active_usernews);}
else{capture_event(root.select(config.usernews_image_toggler_target_selector),play_active_news);}};;Cmyc.namespace('newsportlet');Cmyc.newsportlet.controller=function(root){var me=this;var config={cmycnews_portlet:'#cmyc-cmycnews',cmycnews_prev_link:'#cmyc-cmycnews .teasertext a.previous',cmycnews_next_link:'#cmyc-cmycnews .teasertext a.next',usernews_portlet:'#cmyc-usernews',usernews_prev_link:'#cmyc-usernews .teasertext a.previous',usernews_next_link:'#cmyc-usernews .teasertext a.next'};this.previous_or_next_cmycnews=function(event){me.update(event,$$(config.cmycnews_portlet).first(),me.init_cmycnews);}
this.previous_or_next_usernews=function(event){me.update(event,$$(config.usernews_portlet).first(),me.init_usernews);}
this.update=function(event,container,callback){if(typeof container!='undefined'){new Ajax.Updater(container,event.element().readAttribute('href'),{onComplete:callback});}}
this.init_cmycnews=function(){capture_event(config.cmycnews_prev_link,me.previous_or_next_cmycnews);capture_event(config.cmycnews_next_link,me.previous_or_next_cmycnews);}
this.init_usernews=function(){capture_event(config.usernews_prev_link,me.previous_or_next_usernews);capture_event(config.usernews_next_link,me.previous_or_next_usernews);}
this.init_cmycnews();this.init_usernews();l("Cmyc.newsportlet.controller created");};Cmyc.playlistmanagement=function(root){var register_filter_events=function(){var forms=root.select('form[class=cmyc-playlist-management-filter-search]');var submit_filter=function(event){event.stop();var params=location.href.toQueryParams();var filter_elements=root.select('select[name=playlist], select[name=sort], input[name=view]');forms.each(function(form){Object.extend(params,form.serialize(true));});Object.extend(params,Form.serializeElements(filter_elements,true));var target_location=location.href.replace(/#/,'');location.href=target_location.replace(location.search,'?')+Object.toQueryString(params);}
root.select('select[class*=cmyc-playlist-management]').invoke('observe','change',submit_filter);forms.invoke('observe','submit',submit_filter);}
var register_sort_events=function(){var list=root.down('.cmyc-playlist-sort-list');if(list){list.identify();var mode=parse_cmyc_attrib(list).mode|| null;if(mode=='sort'){Sortable.create(list,{tag:'li',ghosting:false});}}};var register_event_play_playlist=function(event){var element=event.element();var selectbox=root.down('.cmyc-playlist-management-playlists');var playlist_id=parseInt($F(selectbox));if(playlist_id){location.href=element.readAttribute('href').setQueryStringValueForParam('playlist_id',playlist_id);}};var register_view_mode_toolbar=function(){var elements=root.select('.cmyc-playlist-management-view-choicer a');var element_list=root.down('.cmyc-playlist-sort-list');capture_event(elements,function(event){var form=event.findElement('form');var input=form.down('input[name=view]');if(!input){input=new Element('input',{'type':'hidden','name':'view'});form.appendChild(input);}
var target_element=event.element();elements.each(function(element){element.className=element.className.replace(/\w+ViewActive/g,'');});var mode=parse_cmyc_attrib(target_element).mode;input.value=mode;element_list.className=element_list.className.replace(/searchResultListView[\w]/g,'');switch(mode){case'detail':target_element.addClassName('detailViewActive');element_list.addClassName('searchResultListViewIconsText');break;case'thumbnail':target_element.addClassName('thumbnailViewActive');element_list.addClassName('searchResultListViewOnlyIcons');break;}});}
var prepare_submit_playlist_form=function(event){var list=root.down('.cmyc-playlist-sort-list');list.select("li input[name*='item_position']").each(function(input,index){input.value=index+1;});}
register_view_mode_toolbar();register_sort_events();register_filter_events();var form_edit_playlist_position=root.down('form.cmyc-playlist-management-edit');var checkbox=root.down('.cmyc-playlist-management-toggle-all-checkboxes');if(checkbox){var checkbox_toggler=new Cmyc.behaviour.checkbox_toggler(checkbox,form_edit_playlist_position);}
var button_play_playlist=root.down('.cmyc-playlist-management-play-playlist');if(button_play_playlist){capture_event(button_play_playlist,register_event_play_playlist);}
if(form_edit_playlist_position){Cmyc.helpers.form.add_ajax_response_handler({form:form_edit_playlist_position,observe_submit_buttons:true,before_submit:prepare_submit_playlist_form,success_callback:function(result){show_dialogue("Playlist sortieren","Die neue Reihenfolge wurde erfolgreich gespeichert");}});}
var retrieve_checked_item_ids=function(){var list=root.down('.cmyc-playlist-sort-list');var item_ids=[];list.select("li input[type='checkbox']&&[name='item\[\]']").each(function(checkbox){if(checkbox.checked){item_ids.push(checkbox.readAttribute('value'));}});return item_ids;}
var button_sort=root.down('.cmyc-playlist-management-button-sort');if(button_sort){capture_event(button_sort,function(event){var element=event.element();var playlist_id=$F(root.down("select[name='playlist']"));location.href=element.readAttribute('href').setQueryStringValueForParam('playlist',playlist_id);});}
var button_add_to_playlist=root.down('.cmyc-playlist-management-button-add-to-playlist');if(button_add_to_playlist){capture_event(button_add_to_playlist,function(){var media_object_ids=retrieve_checked_item_ids();if(media_object_ids.length){Cmyc.mediathek.dialogues.show_add_media_to_playlist(media_object_ids);}else{show_dialogue("Zur Playlist hinzufügen","Bitte markiere zunächst eine oder mehrere Dateien, die du zu einer(m) Playlist/Album hinzufügen möchtest. Klicke dazu auf das Kästchen im Vorschaubild.");}});}
var button_delete_from_playlist=root.down('.cmyc-playlist-management-button-delete-from-playlist');if(button_delete_from_playlist){capture_event(button_delete_from_playlist,function(){var media_object_ids=retrieve_checked_item_ids();if(media_object_ids.length){var selectbox=root.down('.cmyc-playlist-management-playlists');var playlist_id=parseInt($F(selectbox));Cmyc.mediathek.dialogues.show_delete_media_from_playlist(playlist_id,media_object_ids,{success_callback:function(){location.reload();}});}else{show_dialogue("Datei(n) aus der Playliste entfernen","Bitte markiere zunächst eine oder mehrere Dateien, die du zu einer(m) Playlist/Album hinzufügen möchtest. Klicke dazu auf das Kästchen im Vorschaubild.");}});}
var button_edit_playlist=root.down('.cmyc-playlist-management-button-edit');if(button_edit_playlist){capture_event(button_edit_playlist,function(){var selectbox=root.down('.cmyc-playlist-management-playlists');var playlist_id=parseInt($F(selectbox));Cmyc.mediathek.dialogues.show_create_playlist(playlist_id,{success_callback:function(){}});});}};Cmyc.namespace('profile');Cmyc.profile.controller=function(root_element,additional_config){var config={sortable_element_id:'cmyc-profile-sort',block_selector:'.block',block_subcontent_class:'subContent',toggle_element_prefix:'profile-',active_class:'act'};config=Object.extend(config,additional_config);var module_controllers={};var active_anchor=find_anchor(location.href);var show_or_toggle_module_block=function(a_element,id,additional_complete_callback,show_not_toggle,do_not_scroll_into_view,deepcall_value){w("show_or_toggle_module_block",arguments);show_not_toggle=show_not_toggle||false;additional_complete_callback=additional_complete_callback||noop;do_not_scroll_into_view=do_not_scroll_into_view||false;deepcall_value=deepcall_value||{};if(!do_not_scroll_into_view&&a_element&&a_element.scrollIntoView){a_element.scrollIntoView();}
if(a_element.name&&!show_not_toggle){$(config.toggle_element_prefix+id).up().toggleClassName(config.active_class);}else{$(config.toggle_element_prefix+id).up().addClassName(config.active_class);}
if(!$(config.toggle_element_prefix+id).down()||(typeof deepcall_value.ajax_reload!='undefined'&&deepcall_value.ajax_reload)){d("show_or_toggle_module_block starting ajax updater");var update_div=config.toggle_element_prefix+id;var link;if(typeof deepcall_value.link!='undefined'){link=deepcall_value.link;}else{link=parse_cmyc_attrib($(id)).link;}
var temp=new Ajax.Updater(update_div,link,{method:'get',evalScripts:true,onComplete:function(){create_module_controller(update_div);additional_complete_callback.call();}});}else{d("show_or_toggle_module_block only hide/show");additional_complete_callback.call();}};var create_module_controller=function(element_id){l("create_module_controllers",arguments);var module_controller_class=config.module_controllers.get(element_id);d("module_controller_class=",module_controller_class);if(typeof module_controller_class=="function"){module_controllers[element_id]=new module_controller_class();}else{w("Cmyc.profile.controller: no cfunction allback defined for "+element_id);}};var init_modules_sortable=function(){if(Cmyc.helpers.document_is_own_profile()){var profile_sortable=new Cmyc.sortable_with_ajax_request(config.sortable_element_id,{tag:'div',only:'block',overlap:'vertical',constraint:'vertical',handle:'barControl'},encode_url('ajaxSaveProfileBlockOrder'));}};var register_module_block_anchor_functions=function(){var process_first_element_only=true;$$(config.block_selector).each(function(elem){try{var anchor_target=elem.getElementsByClassName(config.block_subcontent_class)[0].id.split('-')[1];}catch(err){e("error in profile anchor functions");}
register_anchor_function(anchor_target,show_or_toggle_module_block);if(process_first_element_only){process_first_element_only=false;if(active_anchor!==anchor_target){show_or_toggle_module_block($(anchor_target),anchor_target,noop,false,true);}}});};var init_profilehead_controller=function(){var header_controller=Cmyc.factory.build_all_from_selector($H({'#cmyc-profile-main-tabs':Cmyc.profile.header.controller}),root_element);};var find_id_in_anchor=function(anchor){var anchor_name=anchor.href?anchor.href:anchor;if(anchor_name.indexOf("http")!==false){anchor_name=Cmyc.helpers.url.find_anchor(anchor_name);}
return anchor_name.match(/[0-9]+/);};var register_deepcall_from_hash=function(deepcall){var active_tab=deepcall.value.tab;var event=deepcall.value.event;var event_data=deepcall.value.event_data||false;register_anchor_function(deepcall.key,function(){show_or_toggle_module_block($(active_tab),active_tab,fire.curry(event,event_data),true,false,deepcall.value);});};var register_deepcalls=function(){var userdata_deepcalls_config=$H();var anchors_selector='.cmyc-module-userdata-profile';var anchor_begin='userdata-profile-';$$(anchors_selector).each(function(profile_anchor){var profile_id=find_id_in_anchor(profile_anchor);d("Profile.controller: registering deepcall for PROFILE ID"+profile_id);var temp_object={tab:'property',event:Cmyc.events.profilemodules.show_userdata_submenu,event_data:'cmyc-profile-menu-prop-'+profile_id};userdata_deepcalls_config.set('userdata-profile-'+profile_id,temp_object);});d(config.deepcalls_config);config.deepcalls_config.each(register_deepcall_from_hash);userdata_deepcalls_config.each(register_deepcall_from_hash);};init_modules_sortable();register_module_block_anchor_functions();init_profilehead_controller();register_deepcalls();l("Cmyc.profile.controller created");};Cmyc.namespace('profile.header.controller');Cmyc.profile.header.controller=function(tab_element){l("Cmyc.profile.header.controller called",arguments);var config={tab_options:{linkSelector:'li a',setClassOnContainer:true,hover:false},tab_add_elements:'#cmyc-profile-profile-tabs LI A',slider_container_id:'cmyc-profile-profile-tabs',slider_options:{container:".container",previousButton:"#cmyc-profile-slider-previous-button",nextButton:"#cmyc-profile-slider-next-button"}};var profile_main_tab_control=new Cmyc.tab_control(tab_element,config.tab_options);$$(config.tab_add_elements).each(function(a_item){profile_main_tab_control.addTab(a_item);});profile_main_tab_control.first();var slider_size=function(){return $$("#"+config.slider_container_id+" "+config.slider_options.container+" LI").size();};if(slider_size()>0){var profile_profile_slider=new UI.Carousel(config.slider_container_id,config.slider_options);if(slider_size()<4){$$(config.slider_options.nextButton).invoke('hide');}}else{$(config.slider_container_id).hide();}
l("Cmyc.profile.header.controller",profile_main_tab_control);};;Cmyc.namespace('profile.modules');Cmyc.profile.modules.audioplayer=function(container_element){var config={form_selector:'.cmyc-audioplayer-filter-form',audioplayer_js_container_id:'audioplayerMain',comments_controller_config:{comments_div:'.cmyc-audioplayer-comments',comments_toggle_div:'.cmyc-audioplayer-comments-toggle',pager_id:'audioplayer-pager-id',event_set_mediaobject_id:Cmyc.events.audioplayer_set_mediaobject_id,event_show_comments:Cmyc.events.audioplayer_show_comments,event_reset_comments:Cmyc.events.audioplayer_reset_comments,loading_animation:'images/ajax_indicator_big.gif',comments_title_div:".cmyc-audioplayer-comments-title"}};var comments_controller=null;var filter_results=function(form){var form_data=form.serialize(true);update_by_action(config.audioplayer_js_container_id,'ajaxSelectAudioPlaylist',{playlist_id:form_data.p_id,search_item:form_data.searchTerm,user_id:form_data.user_id});};if(find_element(config.comments_controller_config.comments_div)){comments_controller=new Cmyc.mediaobject_comments.controller(config.comments_controller_config);subscribe(config.comments_controller_config.event_set_mediaobject_id,function(event){l("c'tor mediaobjects_comments: firing event",config.comments_controller_config.event_show_comments,event.memo);fire(config.comments_controller_config.event_show_comments,event.memo);});}
capture_event(config.form_selector+' SELECT',function(event){filter_results(event.target.form);},'change');capture_event(config.form_selector,function(event){filter_results(event.target);},'submit');l("Cmyc.profile.modules.audioplayer created",this);};;Cmyc.namespace('profile.modules.contacts');Cmyc.profile.modules.contacts.controller=function(){var tab_container=$("cmyc-contacts-container");var self_class=Cmyc.profile.modules.contacts.controller;self_class.tab_control=typeof self_class.tab_control!='undefined'?self_class.tab_control:null;self_class.profile_element=typeof self_class.profile_element!='undefined'?self_class.profile_element:null;l('self_class.tab_control',self_class.tab_control);var load_tab_control=function(){var temp=find_element("#cmyc-contacts-tab-control");if(temp&&(self_class.profile_element==null||typeof self_class.profile_element.up('html')=='undefined')){d("starting to load tab_control");self_class.profile_element=temp;self_class.tab_control=new Cmyc.tab_control("cmyc-contacts-tab-control",{setClassOnContainer:true,hover:false},"cmyc-contacts-container");}};var activate_visitors_tab=function(){if(!self_class.tab_control){return;}
self_class.tab_control.setActiveTab('cmyc-profile-visitors-tab');$('friends').scrollTo();};var activate_friends_tab=function(){if(!self_class.tab_control){return;}
self_class.tab_control.setActiveTab('cmyc-profile-friends-tab');$('friends').scrollTo();};var create_visitors_and_friends=function(){l("container updated!",arguments);if(tab_container.select(".cmyc-friend-item").length>0){var temp=new Cmyc.profile.modules.contacts.friends();}
if(tab_container.select('.cmyc-show-visitor-details').length>0){var temp2=new Cmyc.profile.modules.contacts.visitors();}};load_tab_control();subscribe(Cmyc.events.profilemodules.show_contacts_friends,activate_friends_tab);subscribe(Cmyc.events.profilemodules.show_contacts_visitors,activate_visitors_tab);create_visitors_and_friends();subscribe_this_element_updated(tab_container,create_visitors_and_friends);w("Cmyc.profile.modules.contacts created",this);};;Cmyc.namespace('profile.modules.contacts');Cmyc.profile.modules.contacts.friends=function(){var me=this;var register_listeners=function(){capture_event('#profile-friends .paginator.friendlist a',me.pagerList);capture_event('#profile-friends .paginator.friendlist',me.pagerList,'submit');capture_event('#profile-friends .cmyc-friend-item',me.showDetail);};var register_listeners_detail=function(){capture_event('#profile-friends .paginator.frienddetaillist a',me.pagerDetail);capture_event('#profile-friends .paginator.frienddetaillist',me.pagerDetail,'submit');};this.pagerList=function(event){var params=parse_cmyc_attrib(event.target)||parse_cmyc_attrib(event.target.parentNode);if(!params.p){params.p=($F(event.target['pager-friendlist'])-1);}
$('loading-friendlist').show();update_by_action('profile-friends','ajaxShowFriends',params);};this.pagerDetail=function(event){var params=parse_cmyc_attrib(event.target)||parse_cmyc_attrib(event.target.parentNode);if(!params.p){params.p=($F(event.target['pager-frienddetaillist'])-1);}
$('loading-frienddetaillist').show();update_by_action('friendDetails','ajaxShowFriend',params);};this.showDetail=function(event){var params=parse_cmyc_attrib(event.target)||parse_cmyc_attrib(event.target.parentNode);update_by_action('friendDetails','ajaxShowFriend',params);};register_listeners();register_listeners_detail();subscribe_this_element_updated('profile-friends',register_listeners);subscribe_this_element_updated('friendDetails',register_listeners_detail);l("Cmyc.profile.modules.contacts.friends created",this);};;Cmyc.namespace('profile.modules.contacts');Cmyc.profile.modules.contacts.visitors=function(root){root=root||document.body;var show_visitor_details=function(event){w("click on cmyc-show-visitor-details",arguments);var data=parse_cmyc_attrib(event.findElement("a"));var updater=new Ajax.Updater("cmyc-visitor-details",encode_url("ajaxShowVisitor",{profile_owner_id:data.profile_owner_id,profile_visitor_id:data.profile_visitor_id}));};var register_listeners=function(){d("register listeners");var temp=root.select('.cmyc-show-visitor-details');capture_event(temp,show_visitor_details);};register_listeners();subscribe_this_element_updated('profile-visitors',register_listeners);l("Cmyc.profile.modules.contacts.visitors created",this);};;Cmyc.namespace('profile.modules');Cmyc.profile.modules.mediathek=function(){var config={tab_control_id:"cmyc-profile-mediathek-tabs",extern_trigger_selector:".cmyc-mediathek-link",extern_trigger_event:Cmyc.events.mediathek_jump_to,playlist_container_id:"cmyc-mediathek-playlists",videos_container_id:"cmyc-mediathek-videos",fotos_container_id:"cmyc-mediathek-fotos",songs_container_id:"cmyc-mediathek-songs",mixed_container_id:"cmyc-mediathek-mixed",coverflow_loading_container_id:"loading",comments_toggle_subcontainer_selector:".cmyc-mediathek-comments-toggle",comments_subcontainer_selector:".cmyc-mediathek-comments"};var mediathek_slider=null;var current_coverflow=null;var cmyc_profile_mediathek_tabs=null;var active_container_id=null;var comments_controller=null;var cache=new Hash();var event_show_comments="Cmyc.profile.modules.mediathek:show_comments";var get_comments_toggle_div=function(){return $(active_container_id).down(config.comments_toggle_subcontainer_selector);};var get_comments_div=function(){return $(active_container_id).down(config.comments_subcontainer_selector);};var get_playlist_filter=function(){return $(active_container_id).down("SELECT");};var create_comments_controller=function(){comments_controller=new Cmyc.mediaobject_comments.controller({comments_div:get_comments_div(),comments_toggle_div:get_comments_toggle_div(),pager_id:'mediathek-comments-pager',loading_animation:'images/ajax_indicator_big.gif',event_show_comments:event_show_comments,comments_title_div:".cmyc-mediathek-comments-title"});};var reset_comments=function(){d("reset_comments called",comments_controller);if(comments_controller!==null){comments_controller.reset_comments();}};var set_comments_visibility=function(active){[get_comments_div(),get_comments_toggle_div()].invoke(active?'show':'hide');};var find_target_and_change_tab=function(event){d("find_target_and_change_tab",event);mixed=event.memo?event.memo:parse_cmyc_attrib(event.target).mediathek_target;cmyc_profile_mediathek_tabs.setActiveTab(mixed);};var tab_changed=function(new_container){d("tab changed",new_container);var tab_id=new_container.getAttribute("id");active_container_id=tab_id;switch(active_container_id){case config.playlist_container_id:load_playlist_carousel();break;case config.videos_container_id:case config.fotos_container_id:case config.songs_container_id:case config.mixed_container_id:create_coverflow_from_container(parse_cmyc_attrib($(active_container_id)).container);break;}};var create_coverflow_from_form=function(form,container_id){d("create_coverflow_from_form",form);var form_data=form.serialize(true);if(form_data.searchTerm&&form_data.searchTerm=="Suchen"){form_data.searchTerm="";}
create_coverflow(container_id,form_data,true);};var create_coverflow_from_container=function(container_id){d("create_coverflow_from_container",container_id);create_coverflow(container_id,parse_cmyc_attrib($(container_id)));};var coverflow_updated_callback=function(overlay_div_id,mediaobject){l("coverflow_updated_callback",arguments);try{comments_controller.set_active_mediaobject(mediaobject.id);fire(event_show_comments,mediaobject);recapture_startup_events_for_element(overlay_div_id);}catch(err){w("coverflow_updated_callback: A RARE ERROR OCCURRED - FIXME!!!",this);}};var create_coverflow=function(container_id,ajax_params,reload_cache){l("create_coverflow",arguments);reload_cache=reload_cache||false;if($('imageflow')){Element.remove('imageflow');}
if(current_coverflow){try{delete current_coverflow;}catch(err){}}
$(container_id).update();var init_tab=function(tab_id){cache[tab_id]=$(tab_id).innerHTML;if($(config.coverflow_loading_container_id)){$(config.coverflow_loading_container_id).hide();}
if($$('#imageflow #images IMG').length){current_coverflow=new ImageFlow(reset_comments,coverflow_updated_callback);current_coverflow.start_wait_for_images();set_comments_visibility(true);create_comments_controller(true);}else{var data={};if(Cmyc.helpers.document_is_own_profile()){data.own_profile=true;}
data.upload_url=encode_url('showMediaManagement');$(container_id).innerHTML=evaltemplate_mediathek_empty(data);set_comments_visibility(false);}
capture_event($(container_id).select('.cmyc-mediathek-copy-current-playlist'),copy_current_playlist);};if(reload_cache||typeof cache[container_id]=="undefined"){l("using request");var temp=new Ajax.Updater(container_id,encode_url('ajaxShowCoverflow'),{method:'get',evalScripts:true,parameters:ajax_params||{},onComplete:init_tab.curry(container_id)});}else{l("using cache",reload_cache,typeof cache[container_id]);$(container_id).update(cache[container_id]);init_tab(container_id);}};var copy_current_playlist=function(event){l("copy_current_playlist",arguments);var make_request=function(new_title){var default_playlist_name;var playlist_select=get_playlist_filter();var params={id:playlist_select.getValue()};if(typeof new_title!=="undefined"){params.title=new_title;default_playlist_name=new_title;}else{try{default_playlist_name=playlist_select.options[playlist_select.selectedIndex].label;}catch(err){}}
var temp=new Ajax.Request(encode_url("ajaxCopyPlaylist",params),{onComplete:function(response,result){d("__complete ajaxcopyplaylist",arguments);if(result.success){show_dialogue("Playliste übernommen","Die Playliste wurde erfolgreich übernommen!");}else{if(result.errors&&result.errors.playlist_title_exists){show_input_dialogue("Playliste übernehmen",result.errors.playlist_title_exists.message,default_playlist_name,make_request,'',"Ok","Abbrechen");}}}});};make_request();};var load_playlist_carousel=function(){l("load_playlist_carousel");var slider_container_selector=".cmyc-playlist-slider1-container";var slider_div_id="mediathek-playlists-slider";var attr=parse_cmyc_attrib($(config.playlist_container_id));if(mediathek_slider!==null){mediathek_slider.destroy_gentle();}
mediathek_slider=new UI.Ajax.Carousel(slider_div_id,{url:encode_url("ajaxPlaylistSliderPage",{user_id:attr.user_id}),elementSize:26,container:slider_container_selector,previousButton:"#cmyc-playlist-slider1-previous-button",nextButton:"#cmyc-playlist-slider1-next-button",direction:"vertical"});document.observe('carousel:elements:inserted',function(event){if(event.memo.carousel.id!==slider_div_id){return;}
capture_event("#"+slider_div_id+" .cmyc-add-playlist-to-shoppingcart",Cmyc.singletons.shopping_cart.add_playlist);capture_event("#"+slider_div_id+" .cmyc-edit-playlist",edit_playlist);capture_event("#"+slider_div_id+" .cmyc-delete-playlist",Cmyc.mediathek.dialogues.delete_playlist);capture_event("#"+slider_div_id+" .cmyc-play-playlist",Cmyc.singletons.videoplayer.play_playlist);});l("load_playlist_carousel: mediathek_slider=",mediathek_slider);};var edit_playlist=Cmyc.helpers.alert_not_yet_implemented.methodize();var register_listeners=function(){subscribe_event(config.extern_trigger_selector,find_target_and_change_tab);subscribe(config.extern_trigger_event,find_target_and_change_tab);["videos","songs","fotos","mixed"].each(function(id){capture_event('.cmyc-mediathek-'+id+'-form SELECT',function(event){create_coverflow_from_form(event.target.form,"cmyc-mediathek-"+id+"-coverflow");},'change');capture_event('.cmyc-mediathek-'+id+'-form',function(event){create_coverflow_from_form(event.target,"cmyc-mediathek-"+id+"-coverflow");},'submit');});capture_event('.cmyc-mediathek-play-playlist-from-select',function(event){d("play_playlist_from_select");var cmyc_attr=parse_cmyc_attrib(event.target);var form_select=$(cmyc_attr.form_select);var search_type=cmyc_attr.search_type;l('form_select',form_select);var test=parseInt(form_select.getValue(),10);if(test>0){d("playing playlist "+test);Cmyc.singletons.videoplayer.play_playlist(test,search_type);}});capture_event('.cmyc-mediathek-playlists-search',function(event){var form_data=event.target.serialize(true);load_playlist_carousel();},'submit');subscribe(Cmyc.events.playlist_deleted,function(event){l("mediathek got noticed that a playlist has been deleted",event.memo);load_playlist_carousel();});subscribe(Cmyc.events.playlist_created,function(event){l("mediathek got noticed that a playlist has been playlist_created",event.memo);load_playlist_carousel();});};l("CTOR MEDIATHEK");cmyc_profile_mediathek_tabs=new Cmyc.tab_control(config.tab_control_id,{linkSelector:'li a',setClassOnContainer:true,hover:false,afterChange:tab_changed});register_listeners();l("Cmyc.profile.modules.mediathek created",this);};;Cmyc.namespace('profile.modules');Cmyc.profile.modules.pinboard=function(){var me=this;var update_pinboard_div=function(url,parameters){if($('pinboard_indicator')){$('pinboard_indicator').show();}
var temp=new Ajax.Updater('profile-pinboard',url,{method:'post',parameters:parameters||'',onSuccess:function(transport){$('pinboard_indicator').hide();}});};var submit_handler=function(event){if($('pinboardText').value===''){return;}
update_pinboard_div(encode_url('ajaxSavePinboardEntry'),event.target.serialize(true));};var register_listeners=function(){capture_event('#profile-pinboard .cmyc-pinboard-entry-form',submit_handler,"submit");capture_event('#profile-pinboard .cmyc-delete-pinboard-entry',me.delete_pinboard_entry);capture_event('#profile-pinboard .cmyc-switch-pinboard-color',me.switchPinboardColor);capture_event('#profile-pinboard .paginator.pinboard a',me.showPage);capture_event('#profile-pinboard .paginator.pinboard',me.showPage,'submit');};this.delete_pinboard_entry=function(event){update_pinboard_div(encode_url('ajaxDeletePinboardEntry'),parse_cmyc_attrib(event.target));};this.switchPinboardColor=function(event){var new_color=parse_cmyc_attrib(event.target).color;$('pinboardText').writeAttribute("class",new_color);$('pinboard_color').value=new_color;};this.showPage=function(event){var params=parse_cmyc_attrib(event.target)||parse_cmyc_attrib(event.target.parentNode);if(!params.p){params.p=($F(event.target['pager-pinboard'])-1);}
$('loading-pinboard').show();update_by_action('profile-pinboard','ajaxShowPinboard',params);};register_listeners();subscribe_this_element_updated('profile-pinboard',register_listeners);l("Cmyc.profile.modules.pinboard created",this);};;Cmyc.namespace('profile.modules');Cmyc.profile.modules.sedcard=function(){var config={preview_image_selector:'.cmyc-profile-sedcard-preview-image',preview_image_actions:{add_to_playlist:'.cmyc-profile-sedcardimage-addtoplaylist',fullscreen:'.cmyc-profile-sedcardimage-fullscreen',info:'.cmyc-profile-sedcardimage-info',edit:".cmyc-profile-sedcardimage-edit",goto_groupmember_profile:'.cmyc-profile-sedcardimage-goto-groupmember-profile'},main_toolbar:{edit:'.cmyc-profile-sedcard-main-toolbar-edit',remove:'.cmyc-profile-sedcard-main-toolbar-remove'},slider_image_selector:'.cmyc-profile-sedcard-slider-image',info_container_id:'cmyc-sedcard-info-container',fullscreen_margin_height:50,fullscreen_margin_width:20,remove_groupmember_link:'a.cmyc-settings-remove-group-member'};var preview_image_element=null,preview_image_data=null,modal_window=null;var get_preview_image_mid=function(){d("calling get_preview_image_mid. pid=",preview_image_data);return preview_image_data&&preview_image_data.id?preview_image_data.id:false;};var get_sedcard_id=function(){return preview_image_data&&preview_image_data.sedcard_id?preview_image_data.sedcard_id:null;};var get_groupmember_groupid=function(){return preview_image_data&&preview_image_data.groupmember_group_id?preview_image_data.groupmember_group_id:null;};var get_groupmember_userid=function(){d("calling get_groupmember_userid. pid=",preview_image_data);return preview_image_data&&preview_image_data.groupmember_user_id?preview_image_data.groupmember_user_id:false;};var find_first_sliderimage=function(){return $$(config.slider_image_selector).first();};var start_capturing_slider_image_clicks=function(){d("SEDCARD start_capturing_slider_image_clicks()");capture_event(config.slider_image_selector,function(event){var image_data=parse_cmyc_attrib(event.target);set_preview_image(image_data);});};var set_preview_image=function(image_data){l("SEDCARD set_preview_image",arguments,preview_image_element);preview_image_data=image_data;preview_image_element.setStyle({'background':"url("+preview_image_data.src+")"});if(preview_image_data.info_url!==''){var temp=new Ajax.Updater($(config.info_container_id),preview_image_data.info_url);}};var show_add_to_playlist=function(){Cmyc.mediathek.dialogues.show_add_media_to_playlist(get_preview_image_mid());};var show_info=function(){Cmyc.mediathek.dialogues.show_info(get_preview_image_mid());};var edit=function(){document.location.href=encode_url("mediaManagementEditMediaObjects",{mid:get_preview_image_mid()});};var goto_groupmember_profile=function(){document.location.href=encode_url("showProfile",{id:get_groupmember_userid()});};var register_listeners=function(){capture_event(config.preview_image_actions.add_to_playlist,show_add_to_playlist);capture_event(config.preview_image_actions.fullscreen,function(){modal_window=Cmyc.imageLightbox.show_fullscreen(preview_image_data,config);});start_capturing_slider_image_clicks();};var register_toolbar_listeners=function(){var goto_edit=function(event){var element=event.element();element.writeAttribute('href',element.readAttribute('href').setQueryStringValueForParam('mid',get_preview_image_mid()));}
var remove=function(){var media_object_id=get_preview_image_mid();var playlist_id=get_sedcard_id();Cmyc.mediathek.dialogues.show_delete_media_from_playlist(playlist_id,media_object_id,{success_callback:function(modal_window){modal_window.close();location.reload();}});}
subscribe_event(config.main_toolbar.edit,goto_edit);capture_event(config.main_toolbar.remove,remove);};var register_pager_listener=function(){var get_pager=function(){var pager_element=$$('.cmyc-sedcard-imagelist-container div.tag-pager').first();if(pager_element&&pager_element.tag_control instanceof Cmyc.Tags.Pager.Ajax){pager=pager_element.tag_control;}
return pager;}
var do_page=function(command){var pager=get_pager();if(pager){switch(command){case'previous':if(pager.hasPreviousElement()){pager.gotoPreviousElement();}
break;case'next':if(pager.hasNextElement()){pager.gotoNextElement();}
break;}}}
capture_event('.myc-profile-sedcardimage-previous',do_page.curry('previous'));capture_event('.myc-profile-sedcardimage-next',do_page.curry('next'));}
var remove_groupmember=function(event){var element=event.element();var url=encode_url('ajaxGroupMemberSettingsRemoveUser',{id:get_groupmember_userid()});new Ajax.Request(url,{onComplete:function(){var url=encode_url('showProfile',{id:get_groupmember_groupid()});url+='#sedcard';window.location.href=url;}});};var me=this;preview_image_element=find_element(config.preview_image_selector);preview_image_data=parse_cmyc_attrib(find_first_sliderimage());register_listeners();if(find_element('.cmyc-profile-sedcard-main-toolbar')){register_toolbar_listeners();}
if(preview_image_element){var temp=new Cmyc.behaviour.div_toggler.mouseover(preview_image_element);}
subscribe_this_element_updated($("cmyc-profile-sedcardimages-listcontainer"),start_capturing_slider_image_clicks);capture_event($$(config.remove_groupmember_link),remove_groupmember,'click');l("SEDCARD ... Cmyc.profile.modules.sedcard created",this);};;Cmyc.namespace('profile.modules');Cmyc.profile.modules.userdata=function(container_element,direct_link){var config={activate_first_element:true,all_menu_elements:'.cmyc-profile-menu',main_menu:'mainMnu',content_container:'profileData'};if(typeof direct_link!=="undefined"&&$(direct_link)){config.activate_element=$(direct_link);}
var menu_updater=new Cmyc.menu_ajax_updater(config);var activate_menu=function(mixed){var menu_item=$(mixed.memo);l("activate_menu",arguments,menu_item);menu_updater.activate_menu(menu_item);};subscribe(Cmyc.events.profilemodules.show_userdata_submenu,activate_menu);l("Cmyc.profile.modules.userdata created",this);};;Cmyc.namespace('profile.modules');Cmyc.profile.modules.usernews=function(container_element){var config={active_class:'active',root_element:'.cmyc-usernews',tab_control_element:find_element('#cmyc-usernews-tab-control'),select_elements_selector:'.cmyc-usernews-direct',edit_usernews_selector:'.cmyc-usernews-edit-usernews',new_usernews_selector:'.cmyc-usernews-new',stop_edit_usernews_selector:'.cmyc-usernews-canceledit-usernews',teaser_elements_selector:'.cmyc-usernews-teaser',active_news_display_selector:'.cmyc-usernews-active-news',active_news_display_selector_date:'.cmyc-usernews-active-news-date',active_news_editor_selector:'.cmyc-usernews-active-news-editor',delete_usernews_selector:'.cmyc-usernews-delete-usernews',edit_usernews_form_selector:'.cmyc-usernews-editor-form',form_errors_container_selector:'.cmyc-formerrors',pagercontent_selector:'.cmyc-pager-content',play_video_selector:'.cmyc-play-active-news',usernews_image_toggler_selector:'.cmyc-active-news-toggler',usernews_image_toggler_target_selector:'.cmyc-usernews-mouseover-play',data_selectors:{createdate:'.cmyc-data-createdate',headline:'.cmyc-data-headline',text:'.cmyc-data-text',image:'.cmyc-data-image'},comments_toggle_subcontainer_selector:".cmyc-usernews-comments-toggle",comments_subcontainer_selector:".cmyc-usernews-comments"};var tab_control=null,active_mediaobjects={},active_togglers={};var comments_controller=null;var event_show_comments="Cmyc.profile.modules.usernews:show_comments";this.debug=function(){l(active_mediaobjects);};var set_data_for_active_tab=function(data){active_mediaobjects[get_active_tab().identify()]=Object.clone(data);};var get_data_for_active_tab=function(){return active_mediaobjects[get_active_tab().identify()]||{};};var create_active_toggler=function(){if(typeof active_togglers[get_active_tab().identify()]==="undefined"){active_togglers[get_active_tab().identify()]=new Cmyc.behaviour.div_toggler.mouseover(get_active_tab().down(config.usernews_image_toggler_selector),null,get_active_tab().down(config.usernews_image_toggler_target_selector));}};var delete_active_toggler=function(){if(active_togglers[get_active_tab().identify()]){active_togglers[get_active_tab().identify()].destroy();delete active_togglers[get_active_tab().identify()];}else{w("cannot destroy toggler for ",get_active_tab().identify(),active_togglers);}};var play_active_news=function(){var active_media=get_data_for_active_tab();if(active_media&&active_media.mediaobject_id){Cmyc.singletons.videoplayer.play_video(active_media.mediaobject_id);}};var populate_active_news_view=function(_,result){l("populate_active_news_view",arguments);if(result.usernews){set_data_for_active_tab(result.usernews);if(result.usernews.text){result.usernews.text=result.usernews.text.gsub("\n","<br>");}
update_elements_by_hash(get_active_tab().down(config.active_news_display_selector),$H(result.usernews),'.cmyc-data-');update_elements_by_hash(get_active_tab().down(config.active_news_display_selector_date),$H(result.usernews),'.cmyc-data-');update_elements_by_hash(get_active_tab().down(config.active_news_editor_selector),$H(get_data_for_active_tab()),'.cmyc-data-');if(result.usernews.mediaobject_id&&result.usernews.mediaobject_id>0){d("user image",result.usernews.mediaobject_id);get_active_tab().down(config.usernews_image_toggler_selector).addClassName('clickable');create_active_toggler();}else{d("default IMAGE");delete_active_toggler();get_active_tab().down(config.usernews_image_toggler_selector).removeClassName('clickable');}
comments_controller.load_and_show_comments({memo:{id:result.usernews.id,user_name:result.usernews.user_showname,media_title:result.usernews.headline}});}};var set_active_newsteaser=function(usernews_id){d("set_active_newsteaser",arguments);get_active_tab().select(config.teaser_elements_selector).invoke('removeClassName',config.active_class);var active_teaser=get_active_tab().select(config.teaser_elements_selector).find(function(element){return parse_cmyc_attrib(element).id==usernews_id;});if(active_teaser){active_teaser.addClassName(config.active_class);}};var get_active_newsteaser=function(){var active_teaser=get_active_tab().select(config.teaser_elements_selector).find(function(element){return element.hasClassName(config.active_class);})||false;return active_teaser;};var show_edit_news=function(){if(get_active_tab()){get_active_tab().down(config.active_news_editor_selector).show();get_active_tab().down(config.active_news_display_selector).hide();var test=get_active_tab().down(config.active_news_editor_selector).down('.cmyc-data-id');if(test&&test.value){get_active_tab().down(config.delete_usernews_selector).show();}else{get_active_tab().down(config.delete_usernews_selector).hide();}
get_active_tab().down(config.edit_usernews_selector).hide();get_active_tab().down(config.stop_edit_usernews_selector).show();}else{show_dialogue("Persönliche News editieren","Bitte wähle zuerst eine persönliche News aus, die du editieren willst");}};var edit_active_news=function(){var usernews_id=parse_cmyc_attrib(get_active_newsteaser()).id;reload_active_usernews(usernews_id,show_edit_news);};var stop_edit_news=function(){if(get_active_tab()){get_active_tab().select([config.active_news_editor_selector,config.delete_usernews_selector,config.stop_edit_usernews_selector]).invoke('hide');get_active_tab().select([config.active_news_display_selector,config.edit_usernews_selector]).invoke('show');}};var remove_activenews_from_view=function(){reload_own_usernews();};var reload_own_usernews=function(){if(location.href.endsWith('#usernews')){location.reload();}else{location.href=encode_url('showProfile')+'#usernews';}};var delete_news=function(){if(show_confirm_dialogue("Persönliche News löschen","Willst du diese persönliche News wirklich löschen")){var usernews_id=parse_cmyc_attrib(get_active_newsteaser()).id;var temp=new Ajax.Request(encode_url('ajaxDeleteUserNews',{id:usernews_id}),{onComplete:remove_activenews_from_view});}};var reload_active_usernews=function(usernews_id,before_populate_callback){var temp=new Ajax.Request(encode_url("ajaxGetUserNews",{id:usernews_id}),{onComplete:function(_,result){if(typeof before_populate_callback=="function"){before_populate_callback();}
populate_active_news_view.defer(_,result);}});};var display_news=function(event){l("display_news",arguments);var usernews_id=false;if(event.target.value){usernews_id=event.target.value;}else if(parse_cmyc_attrib(event.target)){usernews_id=parse_cmyc_attrib(event.target).id;}else{usernews_id=parse_cmyc_attrib(event.element().up(config.teaser_elements_selector)).id;}
d("usernews_id=",usernews_id);if(usernews_id){set_active_newsteaser(usernews_id);d("usernews_id=",usernews_id);reload_active_usernews(usernews_id);}else{w("display_news cannot find usernews_id",arguments);}};var get_active_tab=function(){return tab_control?tab_control.activeContainer||false:false;};var reset_all_editforms=function(new_container){d("reset_all_editforms",new_container);$$(config.edit_usernews_form_selector).each(function(form){form.id.value="";form.headline.value="";form.text.innerHTML="";form.text.value="";form.mediaobject_id.selectedIndex=0;});};var new_news=function(){reset_all_editforms();show_edit_news();};var update_view_after_edit=function(mixed){l("update_view_after_edit",arguments);stop_edit_news();reload_own_usernews();};var get_comments_toggle_div=function(){return $(get_active_tab()).down(config.comments_toggle_subcontainer_selector);};var get_comments_div=function(){return $(get_active_tab()).down(config.comments_subcontainer_selector);};var create_comments_controller=function(){comments_controller=new Cmyc.mediaobject_comments.controller({comments_div:get_comments_div(),comments_toggle_div:get_comments_toggle_div(),pager_id:'cmyc-usernews-comments-pager',loading_animation:'images/ajax_indicator_big.gif',event_show_comments:event_show_comments,comments_title_div:".cmyc-usernews-comments-title",actions:{load:'ajaxShowUsernewsComments',save:'ajaxSaveUsernewsComment',remove:'ajaxDeleteUsernewsComment'}});};var load_initial_news=function(){var active_teaser=get_active_tab().select(config.teaser_elements_selector).find(function(element){return element.hasClassName(config.active_class);});reload_active_usernews(parse_cmyc_attrib(active_teaser).id);}
var start_capturing_events=function(root_element){l("start capturing events",root_element);root_element=root_element||$$(config.root_element).first();capture_event(root_element.select(config.play_video_selector),play_active_news);capture_event(root_element.select(config.select_elements_selector),display_news,'change');capture_event(root_element.select(config.teaser_elements_selector),display_news);capture_event(root_element.select(config.edit_usernews_selector),edit_active_news);capture_event(root_element.select(config.new_usernews_selector),new_news);capture_event(root_element.select(config.stop_edit_usernews_selector),stop_edit_news);capture_event(root_element.select(config.delete_usernews_selector),delete_news);load_initial_news();root_element.select(config.edit_usernews_form_selector).each(function(form){d("usernews: adding ajax response handler for form",form);Cmyc.helpers.form.add_ajax_response_handler({form:form,success_container:form.down(config.form_errors_container_selector),error_container:form.down(config.form_errors_container_selector),success_callback:update_view_after_edit});});};tab_control=new Cmyc.tab_control(config.tab_control_element,{linkSelector:'li a',setClassOnContainer:true,hover:false,afterChange:stop_edit_news});create_comments_controller();start_capturing_events();subscribe_this_element_updated($$(config.root_element).first().down(config.pagercontent_selector),start_capturing_events);l("Cmyc.profile.modules.usernews created",this);};;Cmyc.search=function(root){var config={detailsearch_toggle_selector:'.cmyc-toggle-detailsearch',detailsearch_select_selector:'.cmyc-detailsearch-filter-select',search_tab_box_id:'searchTabBox',top_toggle_link_id:'showDetailSearchTabBox',scope_selector_id:'propertyScopeId',searchwrap_selector:'#searchWrap'};var detailsearch_country_select_controller=null;root=root||document.body;var detailsearch_init_country_select=function(){l("detailsearch_init_country_select");if(detailsearch_country_select_controller===null){var all_select_inputs=$$(config.detailsearch_select_selector);var country_select=all_select_inputs.find(function(test){return test.name=='filter[search2]';});var state_select=all_select_inputs.find(function(test){return test.name=='filter[search3]';});var city_select=all_select_inputs.find(function(test){return test.name=='filter[search4]';});detailsearch_country_select_controller=new Cmyc.country_select.controller(country_select,{state_select:state_select,city_select:city_select},"egal");}};var toggle_detailsearch=function(event){$$(config.detailsearch_toggle_selector).first().toggleClassName("opened");Effect.toggle(config.search_tab_box_id,'appear');capture_event('#'+config.scope_selector_id,selectScope,'change');var fake_event=$(config.scope_selector_id).fire('change');selectScope(fake_event);if($$(config.detailsearch_toggle_selector).first().hasClassName("opened")){detailsearch_init_country_select();clear_event($(config.top_toggle_link_id));}else{capture_event('#'+config.top_toggle_link_id,toggle_detailsearch);}};var selectScope=function(event){l("Cmyc.search.selectScope",arguments);var selectElem=event.target;var filterBox=$('scopeFilter');var child=null;for(var i=0;i<filterBox.childNodes.length;i++){child=filterBox.childNodes[i];if(child.hide){d(child,"hide");child.hide();}}
var box=$('propScope'+$F(selectElem));if(box.show){d(box,"show");box.show();}};var build_mouseover_toggler=function(){var rebuilt_objects=Cmyc.factory.build_all_from_selector(new Hash({'.cmyc-search-toggler-mouseover':Cmyc.behaviour.div_toggler.mouseover}),root);};var init=function(){l("Cmyc.search init");var p=new Cmyc.profiler("search C'tor");capture_event(config.detailsearch_toggle_selector,toggle_detailsearch);capture_event('#'+config.scope_selector_id,selectScope,'change');build_mouseover_toggler();if($$(config.detailsearch_toggle_selector).first().hasClassName("opened")){detailsearch_init_country_select();}
p.profile("C'tor finished");l("Cmyc.search created");};subscribe_this_element_updated(root.down(config.searchwrap_selector),build_mouseover_toggler);init.defer();};Cmyc.namespace('quicksearch');Cmyc.quicksearch.controller=function(){var me=this;var config={box_id:'quicksearchfilter',quicksearch_form:'cmyc-quicksearch-form',searchwrap_id:'searchWrap',toggle_link:'.cmyc-toggle-quicksearch',top_toggle_link_id:'showQuickSearchTabBox',textboxes_to_clear:'.cmyc-quicksearch-clear',selectbox_filetype:'.cmyc-quicksearch-genre',genrewapper_id:'cmyc-quicksearch-genrewrapper',genrewapper_select:'#cmyc-quicksearch-genrewrapper select',search_label:Cmyc.php_constants.SEARCH_FIELD_HOME_DEFAULT_TEXT,display_complete:'.cmyc-quicksearch-complete',display_minimal:'.cmyc-quicksearch-minimal',display_container:'.cmyc-meta-display',type_selector:'#cmyc-search input[name="t"]',quicksearch_order_id:'cmyc-quicksearch-order',quicksearch_limit_id:'cmyc-quicksearch-limit',vip_filter:'.cmyc-vip-filter',vip_filter_active:'active',searchLoadingIndicator:'.searchLoadingIndicator',memberContentWrap_id:'memberContentWrap'}
this.toggle=function(event){if($(config.box_id).visible()){capture_event('#'+config.top_toggle_link_id,me.toggle);Effect.BlindUp($(config.box_id));}else{clear_event($(config.top_toggle_link_id));Effect.BlindDown($(config.box_id));}
$(config.top_toggle_link_id).toggleClassName('opened');}
this.cleartextbox=function(event){var element=event.element();if($F(element)==config.search_label){element.clear();}}
this.filltextbox=function(event){var element=event.element();if($F(element).blank()){element.value=config.search_label;}}
this.register_after_update=function(){capture_event($(config.quicksearch_order_id),me.order_and_limit,'change');capture_event($(config.quicksearch_limit_id),me.order_and_limit,'change');capture_event(config.display_complete,me.display);capture_event(config.display_minimal,me.display);capture_event(config.vip_filter,call_vip_filter);}
var serialize_form=function(){var serialized_form=$H($(config.quicksearch_form).serialize(true));serialized_form.set('p',0);serialized_form.unset('action');return serialized_form;}
this.order_and_limit=function(event){show_loading_indicator();var serialized_form=serialize_form();serialized_form.set('order',$F($(config.quicksearch_order_id)));serialized_form.set('limit',$F($(config.quicksearch_limit_id)));var url=Cmyc.helpers.url.encode('ajaxDoSearchPage',serialized_form.toQueryString());new Ajax.Updater($(config.searchwrap_id),url,{evalScripts:true,onComplete:function(){hide_loading_indicator();}});}
var call_vip_filter=function(event){show_loading_indicator();var vipfilter;var element=event.element();if(element.hasClassName(config.vip_filter_active)){vipfilter=0;element.removeClassName(config.vip_filter_active);}else{vipfilter=1;element.addClassName(config.vip_filter_active);}
var serialized_form=serialize_form();serialized_form.set('vipfilter',vipfilter);var url=Cmyc.helpers.url.encode('ajaxDoSearchPage',serialized_form.toQueryString());new Ajax.Updater($(config.searchwrap_id),url,{evalScripts:true,onComplete:function(){hide_loading_indicator();}});};this.display=function(event){var element=event.element();clear_event(element);type='';if($$(config.display_complete).indexOf(element)==0){$$(config.display_container).invoke('show');type='complete';capture_event(config.display_minimal,me.display);}else
if($$(config.display_minimal).indexOf(element)==0){$$(config.display_container).invoke('hide');type='minimal';capture_event(config.display_complete,me.display);}
if(type!=''){$$('.cmyc-quicksearch-complete').invoke('removeClassName','selected');$$('.cmyc-quicksearch-minimal').invoke('removeClassName','selected');$$('.cmyc-quicksearch-'+type).invoke('addClassName','selected');new Ajax.Request(encode_url("ajaxSetSearchresultDisplaytype",{type:type}));}}
var show_loading_indicator=function(){$$(config.searchLoadingIndicator).invoke('show');$$(config.searchLoadingIndicator).each(function(element){element.setStyle({height:$(config.memberContentWrap_id).getHeight()+'px'});});}
var hide_loading_indicator=function(){$$(config.searchLoadingIndicator).invoke('hide');}
capture_event(config.toggle_link,this.toggle);if($(config.top_toggle_link_id).hasClassName('opened')){clear_event($(config.top_toggle_link_id));}
capture_event(config.textboxes_to_clear,this.cleartextbox);capture_event(config.textboxes_to_clear,this.filltextbox,'blur');subscribe_this_element_updated(config.searchwrap_id,this.register_after_update);this.register_after_update();l("Cmyc.quicksearch.controller created");};Cmyc.namespace("settings");Cmyc.settings.profile_image=function(image_element){var config={ajax_url:encode_url("ajaxGetProfileImageUrl")};var reload_image=function(){w("Cmyc.settings.profile_image.reload_image",arguments);var temp=new Ajax.Request(config.ajax_url,{method:'GET',onSuccess:function(data,result){d("setting profile image src to "+data.responseText);find_element(image_element).src=data.responseText;}});};subscribe(Cmyc.events.profile_image_changed,reload_image);l("Cmyc.profile.profile_image created",this);};Cmyc.settings.controller=function(root_element){var activate_element=$(location.href.toQueryParams().activate)||null;var menu_updater_config={all_menu_elements:'.cmyc-profile-settings',main_menu:'mainMnu',content_container:'settingContainer',action_map:{'subMnuNewCat':'ajaxShowNewCategory','subMnuSetCat':'ajaxShowSettingCategory'}};if(activate_element){menu_updater_config.activate_element=activate_element;}else{menu_updater_config.activate_first_element=true;}
var init=function(){var updated_root_element=$(menu_updater_config.content_container);var country_select=updated_root_element.down('.cmyc-country-select');if(country_select){var temp=new Cmyc.country_select.controller(country_select);}
var form=updated_root_element.down('FORM.cmyc-profile-settings-form');if(form){Cmyc.helpers.form.register_dependent_selects(form);Cmyc.helpers.form.add_ajax_response_handler({form:form,error_container:'windowErrors',success_container:'windowSuccess',ajax_indicator:"ajaxIndicator"});}
var delete_profile=updated_root_element.down('.cmyc-delete-profile');if(delete_profile){capture_event(delete_profile,function(e){var redirect=function(){document.location=e.target.getAttribute("href");};show_confirm_dialogue("Profil löschen","Möchtest du dieses Profil jetzt löschen?",redirect);});}
var settings_category=updated_root_element.down('.cmyc-user-setting-category');if(settings_category){subscribe_event(settings_category,function(event){var temp=new Ajax.Updater('settingContainer',encode_url('ajaxSelectSettingCategory'),{method:'get',parameters:{category_id:event.target.getValue()}});},'change');}
var edit_category=updated_root_element.select('.cmyc-settings-edit-category');if(edit_category.length>0){capture_event(edit_category,function(event){var params=parse_cmyc_attrib(event.target)||parse_cmyc_attrib(event.target.parentNode);var temp=new Ajax.Updater('settingContainer',encode_url('ajaxShowSettingCategory',params),{evalScripts:true});});}
d("Cmyc.settings.controller - init finished");};var temp=new Cmyc.menu_ajax_updater(menu_updater_config,{onComplete:init});subscribe_this_element_updated($('settingContainer'),init);temp=Cmyc.helpers.events.capture_click_events_from_hash(root_element,$H({'.cmyc-profile-show-imageupload':Cmyc.singletons.profile_image.show_imageupload,'.cmyc-delete-profile-image':Cmyc.singletons.profile_image.delete_image,'.cmyc-cancel-membership':Cmyc.dialogues.show_confirm_cancel_membership}));temp=Cmyc.settings.profile_image(root_element.down('#cmyc-profile-image'));l('Cmyc.settings.controller created:',this);};;Cmyc.namespace('singletons');Cmyc.singletons.friends_requests={request_friendship:function(event){d("request_friendship",arguments);d(parse_cmyc_attrib(event.target).friend_id);var temp=new Ajax.Request(encode_url("ajaxRequestFriendship",{friend_id:parse_cmyc_attrib(event.target).friend_id}),{onSuccess:function(response){d("request_friendship onSuccess",arguments);var result=response.responseJSON;if(result.success){result.data.new_friend.pronoun=Cmyc.php_constants.get_gender_pronoun(result.data.new_friend.gender);show_dialogue("Freundschaftsangebot versendet",new Template("#{showname} hat dein Freundschaftsangebot erhalten. Sobald #{pronoun} sich entschieden hat, erhältst du eine Benachrichtigung.").evaluate(result.data.new_friend));}else if(result.errors){show_dialogue("Freundschaft",result.errors.message);}}});},reject_friendship:function(event){d("reject_friendship called",arguments);var message_id=parse_cmyc_attrib(event.target).message_id;var temp=new Ajax.Request(encode_url("ajaxRejectFriendshipRequest",{message_id:message_id}),{onSuccess:function(response){d("request_friendship success got result",result);var result=response.responseJSON;if(result.success){show_dialogue("Freundschaft abgelehnt",new Template("Du hast das Freundschaftsangebot von #{showname} abgelehnt.").evaluate(result.data.new_friend),"after_close_link:location.href");}else if(result.errors){show_dialogue("Freundschaft",result.errors.message);}
fire(Cmyc.events.messages_deleted,{'msg[]':message_id});}});},accept_friendship:function(event){d("accept_friendship called",arguments);var message_id=parse_cmyc_attrib(event.target).message_id;var temp=new Ajax.Request(encode_url("ajaxAcceptFriendshipRequest",{message_id:message_id}),{onSuccess:function(response){d("accept_friendship success got result",result);var result=response.responseJSON;if(result.success){show_dialogue("Freundschaft angenommen",new Template("Du hast das Freundschaftsangebot von #{showname} angenommen. Ihr seid nun befreundet.").evaluate(result.data.new_friend),'after_close_link:location.href');}else if(result.errors){show_dialogue("Freundschaft",result.errors.message);}
fire(Cmyc.events.messages_deleted,{'msg[]':message_id});}});},cancel_friendship:function(event){d("cancel_friendship",arguments);var friend_id=parse_cmyc_attrib(event.target).friend_id;var temp=new Cmyc.modal_windows.ajax_confirm_redirect_dialog(encode_url('ajaxShowCancelFriendship',{friend_id:friend_id}),encode_url("ajaxCancelFriendship",{friend_id:friend_id}),{},true);}};;Cmyc.imageLightbox=new function(){this.show_fullscreen=function(params,config){d("SEDCARD show_fullscreen",config);var onshow={};if(typeof params.multiple!='undefined'){if(params.multiple.items.length>=params.multiple.start+1){var preview_image_data=parse_cmyc_attrib(params.multiple.items[params.multiple.start]);params.full_src=preview_image_data.full_src;params.full_width=preview_image_data.full_width;params.full_height=preview_image_data.full_height;var navigator_previous=function(){if(params.multiple.start>0){params.multiple.start-=1;Cmyc.imageLightbox.show_fullscreen(params,config);}};var navigator_next=function(){if(params.multiple.start+1<params.multiple.items.length){params.multiple.start+=1;Cmyc.imageLightbox.show_fullscreen(params,config);}};onshow=function(){if(params.multiple.start>0){$('cmyc-lightbox-previous').observe('click',navigator_previous);$('cmyc-lightbox-previous').show();}
if(params.multiple.start+1<params.multiple.items.length){$('cmyc-lightbox-image').observe('click',navigator_next);$('cmyc-lightbox-next').observe('click',navigator_next);$('cmyc-lightbox-next').show();}};}}
var max_possible_width=(window.innerWidth||document.documentElement.clientWidth)-(2*config.fullscreen_margin_width);var max_possible_height=(window.innerHeight||document.documentElement.clientHeight)-(2*config.fullscreen_margin_height);var img_width=parseInt(params.full_width,10);var img_height=parseInt(params.full_height,10);if(img_height>max_possible_height){img_width=parseInt(img_width*max_possible_height/img_height,10);img_height=max_possible_height;}else if(img_width>max_possible_width){img_height=parseInt(img_height*max_possible_width/img_width,10);img_width=max_possible_width;}
var win_width=img_width+parseInt(config.fullscreen_margin_width,10);var win_height=img_height+parseInt(config.fullscreen_margin_height,10);modal_window=new Cmyc.modal_windows.html_content({height:win_height,width:win_width},evaltemplate_lightbox({src:params.full_src,width:img_width,height:img_height}));modal_window.showCenter(true);onshow();return modal_window;};};;Cmyc.namespace('singletons');Cmyc.singletons.login=new function(){var modal_window=null,user_id=0;this.show_login=function(){modal_window=new Cmyc.modal_windows.ajax_content({onShow:update_modal_window_eventlisteners},encode_url('showLogin'));};this.is_logged_in=function(){if(typeof Cmyc.bootstrap_data.user.user_id!=="undefined"&&Cmyc.bootstrap_data.user.user_id>0){return true;}else{return false;}};var update_modal_window_eventlisteners=function(){var form_login=find_element('FORM.cmyc-login-form');if(form_login){Cmyc.helpers.form.add_ajax_response_handler({form:form_login,url_param_action:'doLogin',error_container:'windowErrors',ajax_indicator:'loginAjaxIndicator',success_callback:function(result){user_id=result.success.user_id;document.location.href=result.success.forward_url;}});}
var forgot_password_form=find_element('.cmyc-forgot-password-form');if(forgot_password_form){Cmyc.helpers.form.add_ajax_response_handler({form:forgot_password_form,url_param_action:'sendPasswordRecovery',error_container:'windowErrors',success_container:'windowErrors',modal_window:modal_window});}
capture_event('.cmyc-start-registration',function(){modal_window.close();window.setTimeout("fire(Cmyc.events.start_registration)",500);});capture_event('.cmyc-forgot-password-link',function(){modal_window.setAjaxContent(encode_url('showPasswordRecovery'),{method:'get'});});capture_event('.cmyc-login-link',function(){modal_window.setAjaxContent(encode_url('showLogin'),{method:'get'});});};l("Cmyc.singletons.login created");}();;Cmyc.namespace('singletons');Cmyc.singletons.mediaobjects=new function(){var prefix_mediaobject_container="cmyc-mediaobject-container-";this.show_delete_mediaobject=function(event){var mediaobject=parse_cmyc_attrib(event.target);var delete_callback=function(event){var request=new Ajax.Request(encode_url("ajaxDeleteMediaObject",{mid:mediaobject.id}),{onComplete:function(_,result){if(result.success){var temp=$(prefix_mediaobject_container+mediaobject.id);if(temp){temp.remove();}
fire(Cmyc.events.mediaobject_deleted,mediaobject.id);}}});};show_confirm_dialogue("Mediendatei löschen","Willst du die Datei '"+mediaobject.title+"' wirklich löschen?",delete_callback);};this.toggle_mediaobject_visibility=function(event){var additional_invisible_class="invisible";var prefix_mediaobject_image_div="cmyc-mediaobject-";var mediaobject=parse_cmyc_attrib(event.target);var new_visibility=mediaobject.visibility==1?0:1;var temp=new Ajax.Request(encode_url("ajaxChangeMediaObjectProperty",{mediaobject_id:mediaobject.id,visibility:new_visibility}),{onComplete:function(_,result){l("Cmyc.singletons.mediaobjects.toggle_mediaobject_visibility onComplete. visibility="+result.visibility);mediaobject.visibility=result.visibility;set_cmyc_attribute(event.target,mediaobject);var image_div=$(prefix_mediaobject_image_div+mediaobject.id);if(result.visibility){event.target.removeClassName(additional_invisible_class);image_div.down().hide();}else{event.target.addClassName(additional_invisible_class);image_div.down().show();}}});};var test=function(event){l("Cmyc.singletons.mediaobjects.test",event);};subscribe(Cmyc.events.mediaobject_deleted,test);}();;Cmyc.namespace('singletons');Cmyc.singletons.messaging=new function(){var message_window=null;var me=this;this.form={submit:function(select){if($(select).value){$(select).form.submit();}}};var write_message_success=function(){destroy_tinymce();message_window.close();show_dialogue("Nachricht versenden - Bestätigung","Deine Nachricht ist erfolgreich verschickt worden");};var destroy_tinymce=function(){var tiny_instance=tinymce.EditorManager.getInstanceById("messageid");if(tiny_instance){d("tinymce: destroying old instance");d(tiny_instance);try{tiny_instance.destroy();}catch(err){}
d("tinymce: destroying old instance done");}};var handle_write_message_form=function(){l("handle_write_message_form",arguments);if($("message_id")!=null&&$F("message_id")==""){capture_event("#subject",function(event){event.target.value="";clear_event("#subject");});}
capture_event(".cmyc-write-message-choose-recipient",me.choose_recipient,"change");var form=find_element('FORM.cmyc-messaging-write-message-form');if(form){Cmyc.helpers.form.add_ajax_response_handler({form:form,error_container:'windowErrors',success_container:'windowSuccess',ajax_indicator:"ajaxIndicator",modal_window:message_window,success_callback:write_message_success});d("callback of load_script_sync - we try to finally init tinymce");destroy_tinymce();d("tinymce: init new instance");var fix_content=function(instance){try{$('messagecontentid').value=instance.getBody().innerHTML;}catch(err){}};tinyMCE.init({mode:'textareas',theme:'advanced',language:'de',theme_advanced_more_colors:false,plugins:'emotions',theme_advanced_buttons1:Prototype.Browser.isIE6()?'bold,italic,underline,strikethrough,|,removeformat,emotions,|,fontselect,fontsizeselect':'bold,italic,underline,strikethrough,|,removeformat,emotions,|,forecolor,backcolor,fontselect,fontsizeselect',theme_advanced_buttons2:'',theme_advanced_buttons3:'',theme_advanced_buttons4:'',theme_advanced_font_sizes:'1,2,3,4,5,6,7',theme_advanced_toolbar_location:'top',theme_advanced_toolbar_align:'left',theme_advanced_statusbar_location:'bottom',theme_advanced_resizing:false,width:'442',elements:'messageid',setup:function(ed){if(Prototype.Browser.IE){var fix_toolbar_icons=function(){$$(".mceIcon, .mceAction, .mceOpen").each(function(element){element.style.width=element.getWidth()+"px";});};ed.onInit.add(fix_toolbar_icons);}
ed.onSubmit.add(fix_content);}});d("tinymce: init new instance done");}
if($("smileyHolder")){var smilie_slider=new UI.Carousel($("smileyHolder"),{previousButton:"#smileyScrollerLeft",nextButton:"#smileyScrollerRight",container:".container"});l("handle_write_message_form created smilie slider",smilie_slider);}};this.show_write_message=function(mixed){l("show_write_message",arguments);var cmyc_user_id=mixed.target?parse_cmyc_attrib(mixed.target).message_recipient_id:mixed;var message_id=mixed.target?parse_cmyc_attrib(mixed.target).message_id:null;message_window=new Cmyc.modal_windows.ajax_content({height:600,onShow:handle_write_message_form,onClose:destroy_tinymce},encode_url('ajaxShowWriteMessage',{rid:cmyc_user_id,message_id:message_id}));};this.choose_recipient=function(event){var select=event.target;try{d('__choose_recipient: rebuild message window with rid='+select.value);if(select.value){message_window.setAjaxContent(encode_url('ajaxShowWriteMessage',{rid:select.value}),{method:'get',onShow:handle_write_message_form,onClose:destroy_tinymce});}}catch(err){e("error in choose_recipient",err);}};this.show_delete_message=function(event){var last_deleted_messages=null;var messages_deleted=function(_,json){d("messages_deleted",arguments);fire(Cmyc.events.messages_deleted,last_deleted_messages);message_window.close();};var handle_delete_message_form=function(){var form=find_element('FORM.cmyc-do-delete-message-form');if(form){d("handle_delete_message_form:__found form",form);Cmyc.helpers.form.add_ajax_response_handler({form:form,success_callback:messages_deleted});}};var params=event.target.serialize?event.target.serialize(true):{'msg[]':parse_cmyc_attrib(event.target).message_id};last_deleted_messages=params;message_window=new Cmyc.modal_windows.ajax_content(Object.extend(Cmyc.dialogues.small_size_default,{onShow:handle_delete_message_form}),encode_url('ajaxShowMessageDelete',params));};this.get_message_content=function(mixed){d("get_message_content",arguments);var message_id=mixed.target?parse_cmyc_attrib(Event.findElement(mixed,'td')).message_id:mixed;var link=$('messageLink-'+message_id);var container=$("messageContent-"+message_id);var container_buttons=$("messageButtons-"+message_id);var header_row=$("cmyc-message-"+message_id);var url=encode_url('ajaxShowMessageContent',{id:message_id});if(link){link.toggleClassName('opened');}
if(container.innerHTML!==''){container.toggle();if(container_buttons){container_buttons.toggle();}
Element.toggleClassName(header_row,"opened");}else{var temp=new Ajax.Updater(container,url,{method:'get',evalScripts:true,onComplete:function(){container.show();Element.removeClassName(header_row,"new");Element.addClassName(header_row,"opened");if(container_buttons){container_buttons.show();}}});}};var holder;var current_smiley;this.showSmiley=function(container,smiley,input,inputvalue){if(current_smiley===smiley){me.hideSmiley(container);current_smiley=null;}else{current_smiley=smiley;l("showSmiley called",arguments);holder=$(container);holder.update();var so=new SWFObject(smiley,'smileybig','100%','100%','8','#ffffff');so.addParam('allowFullscreen','false');so.addParam('wmode','transparent');so.addVariable('big',true);so.addVariable('container',container);so.write(container);holder.show();if(input&&$(input)&&inputvalue){$(input).writeAttribute('value',inputvalue);}}};this.hideSmiley=function(container){if($(container)){$(container).hide();}};var remove_messages_from_view=function(data){if(!(data&&data.memo)){return;}
l("remove_messages_from_view");var message_selector_base="cmyc-message-";var message_selector_content_base="cmyc-message-content-";var message_ids=[].concat(data.memo["msg[]"]);d(message_ids);message_ids.each(function(msg_id){d("removing "+message_selector_base+msg_id);try{Element.hide(message_selector_base+msg_id);Element.hide(message_selector_content_base+msg_id);Element.remove(message_selector_base+msg_id);Element.remove(message_selector_content_base+msg_id);}catch(err){w("error",err);}});};subscribe(Cmyc.events.messages_deleted,remove_messages_from_view);l("Cmyc.singletons.messaging created",this);}();;Cmyc.namespace("singletons.messaging");Cmyc.singletons.messaging.confirmable_messages=new function(){var send_request_and_show_response=function(href,message_data){l("confirmable_messages:send_request_and_show_response",arguments);var temp=new Ajax.Request(href,{onComplete:function(_,result){l("confirmable_messages:send_request_and_show_response onComplete called",arguments);if(result.success){l(message_data);show_dialogue(message_data.headline,message_data.text);}else{e("ERROR ON REQUEST",href,message_data);}}});};this.accept=function(event){l("confirmable_messages:accept",arguments);var anchor=event.findElement("a");var data=$(parse_cmyc_attrib(anchor).message_result_container).value.evalJSON();send_request_and_show_response(anchor.href,data.accept);};this.reject=function(event){l("confirmable_messages:reject",arguments);var anchor=event.findElement("a");var data=$(parse_cmyc_attrib(anchor).message_result_container).value.evalJSON();send_request_and_show_response(anchor.href,data.reject);};}();;Cmyc.namespace("messaging.new_messages_notification");Cmyc.messaging.new_messages_notification=function(container_element){var config={status_text_element:$('cmyc-message-notification-statustext'),prev_button:$('cmyc-message-notification-previous'),next_button:$('cmyc-message-notification-next'),save_button:$('cmyc-message-notification-save'),open_button:$('cmyc-message-notification-open'),delete_button:$('cmyc-message-notification-delete'),username_text_element:$('cmyc-message-notification-username'),userimage_element:$('cmyc-message-notification-userimage'),user_online_element:$('cmyc-message-notification-useronline'),user_element:$('cmyc-message-notification-user'),chatinvitation:{wrapper:'.cmyc-chatinvitation',approve:'.cmyc-chatinvitation-approve',disclaim:'.cmyc-chatinvitation-disclaim',messageid_begin:'cmyc-messageid-'}};var me=this;var new_messages=[];var current_message=null;var status_text="";var timer=null;var message_window=null;var messages_amount=0;this.debug_enable_polling=function(){Cmyc.config.polling_enabled=true;d("new_messages_notification polling enabled");start_polling();};this.debug_disable_polling=function(){Cmyc.config.polling_enabled=false;d("new_messages_notification polling disabled");};var update_status_text=function(text){status_text=text;};var exists_message=function(test_message){var ret=false;var test=new_messages.each(function(cur_message){if(cur_message.id===test_message.id){ret=true;return;}});return ret;};var add_new_messages=function(more_new_messages){if(more_new_messages&&more_new_messages.length>0){more_new_messages.inject(new_messages,function(array,obj){if(!exists_message(obj)){array.push(obj);}
return array;});if(current_message===null){current_message=0;}}};var remove_current_message=function(){d("remove_current_message");new_messages=new_messages.without(new_messages[current_message]);current_message=Math.min(current_message,Math.max(new_messages.length-1,0));messages_amount-=1;l(new_messages);};var get_current_message=function(){return new_messages[current_message]||null;};var new_messages_empty=function(){return new_messages.length===0;};var count_new_messgages=function(){return new_messages.length;};var is_first_message=function(){return new_messages_empty()||current_message==0;};var is_last_message=function(){return new_messages_empty()||current_message==messages_amount-1;};var update_view_by_result=function(result){d("Cmyc.messaging.new_messages_notification:update_view_by_result",arguments);messages_amount=0;if(result&&result.success&&result.new_messages&&result.count){messages_amount=result.count;add_new_messages(result.new_messages);update_status_text(result.status_text);update_view();}
if(result&&result.errors){stop_polling();Cmyc.helpers.url.reload();}};var show_chat_invitations=function(result){var invitation_ids=new Array();result.new_messages.each(function(new_message){var msg=new_message.message;if(msg.message_type==3&&msg.inchat==1){invitation_ids.push(msg.id);}});if(invitation_ids.length>0){var do_open=false;if(!Cmyc.modal_windows.is_open()){do_open=true;}else
if($$(config.chatinvitation.wrapper).length>0){do_open=true;}
if(do_open){message_window=new Cmyc.modal_windows.ajax_content({width:351,onShow:function(){subscribe_event(config.chatinvitation.approve,chatinvitation_answer,'click',false);subscribe_event(config.chatinvitation.disclaim,chatinvitation_answer,'click',false);}},encode_url('ajaxShowChatInvitation',{ids:invitation_ids.join(",")}));}}};var chatinvitation_answer=function(event){var selector='*[class*='+config.chatinvitation.messageid_begin+']';var main_element=$(event.target).up(selector);var regex=new RegExp(config.chatinvitation.messageid_begin+"(\\d+)");var match=main_element.readAttribute('class').match(regex);var message_id=match[1];message_window.close();var url=encode_url('ajaxSetChatinvitationAsReaded',{id:message_id});new Ajax.Request(url,{method:'POST',onComplete:function(data){stop_polling();start_polling();}});};var start_polling=function(){var temp=new Ajax.Request(encode_url('ajaxGetNewMessages'),{method:'POST',onSuccess:function(_,result){if(result){d("Cmyc.messaging.new_messages_notification: ajaxGetNewMessages result:",result);show_chat_invitations(result);update_view_by_result(result);}
if(Cmyc.config.polling_enabled){timer=window.setTimeout(start_polling,Cmyc.config.polling_interval);}}});};var stop_polling=function(){Cmyc.config.polling_enabled=false;if(timer){window.clearTimeout(timer);}};var show_successor_message=function(delta){var new_cm=current_message+delta;if(new_cm==0||(new_cm>=0&&new_cm<messages_amount)){if(new_cm==new_messages.length||delta==0){new Ajax.Request(encode_url('ajaxGetNewMessages',{start:new_cm}),{method:'POST',onSuccess:function(_,result){current_message=new_cm;if(result){show_chat_invitations(result);update_view_by_result(result);}}});}else{current_message=new_cm;update_view();}}};var open_message=function(){w("open message");if(get_current_message()){w("got current message");var message_id=get_current_message().id;var temp=new Ajax.Request(encode_url('ajaxSetMessageRead'),{parameters:{id:message_id},method:'POST',onSuccess:function(_,result){l("success!");document.location.href=encode_url('showMessages',{deeplink:'show_message',deeplink_param:message_id});}});}};var make_request_and_remove_current_message=function(action_name){new Ajax.Request(encode_url(action_name),{parameters:{id:get_current_message().id},method:'POST',onSuccess:function(_,result){remove_current_message();show_successor_message(0);}});};var save_message=function(){make_request_and_remove_current_message('ajaxSetMessageRead');};var delete_message=function(){make_request_and_remove_current_message('ajaxDoMessageDelete');};var display_message_elements=function(is_visible){var new_visibility=is_visible?'visible':'hidden';[config.save_button,config.open_button,config.delete_button,config.username_text_element,config.userimage_element,config.user_online_element,config.user_element].invoke('setStyle',{'visibility':new_visibility});};var update_view=function(){config.status_text_element.update(status_text);if(is_first_message()){config.prev_button.removeClassName('backActive');config.prev_button.addClassName('backInactive');}else{config.prev_button.removeClassName('backInactive');config.prev_button.addClassName('backActive');}
if(is_last_message()){config.next_button.removeClassName('forwardActive');config.next_button.addClassName('forwardInactive');}else{config.next_button.removeClassName('forwardInactive');config.next_button.addClassName('forwardActive');}
display_message_elements(!new_messages_empty());if(get_current_message()){config.username_text_element.update(get_current_message().message_sender.showname);config.user_element.href=encode_url("showProfile",{id:get_current_message().message_sender.id});config.userimage_element.src=get_current_message().message_sender.image;if(get_current_message().message_sender.online){config.user_online_element.show();}else{config.user_online_element.hide();}}else{config.username_text_element.update('');config.userimage_element.src='';config.user_online_element.hide();config.status_text_element.update("du hast keine neuen Nachrichten");}};var load_startup_values=function(){var result=read_js_data('new_messages');d("LOAD  STARTUP VALUES result:",result);update_view_by_result(result);};var register_listeners=function(){capture_event(config.prev_button,show_successor_message.curry(-1));capture_event(config.next_button,show_successor_message.curry(1));capture_event(config.save_button,save_message);capture_event(config.open_button,open_message);capture_event(config.delete_button,delete_message);};load_startup_values();register_listeners();if(Cmyc.singletons.login.is_logged_in()){window.setTimeout(start_polling,Cmyc.config.polling_first_request_delay);}
l("Cmyc.messaging.new_messages_notification created:",this);};var showSmiley=Cmyc.singletons.messaging.showSmiley;var hideSmiley=Cmyc.singletons.messaging.hideSmiley;;Cmyc.namespace('singletons');Cmyc.singletons.profile_image=new function(){var modal_window=null;var close_modalwindow=function(){modal_window.close();location.reload();};this.show_imageupload=function(){l('show imageupload called',arguments);modal_window=new Cmyc.modal_windows.ajax_content({},encode_url('ajaxShowProfileImageUpload'),{method:'get',evalScripts:true});};this.delete_image=function(){l('delete image called',arguments);var delete_image_on_server=function(){var temp=new Ajax.Request(encode_url('ajaxDeleteProfileImage'),{onComplete:function(result,_){location.reload();}});};show_confirm_dialogue("Profilbild löschen","Bist du sicher, dass du dein Profilbild löschen möchtest?",delete_image_on_server);};this.flashplayer_gateway={finished_image_upload:function(data){create_wizard();}};var create_wizard=function(){var temp=new Cmyc.wizard({modal_window:modal_window,steps:[{url:encode_url("ajaxShowImageCrop",{'target':'ajaxDoImageCropProfileImage'})},{delegate_callback:Cmyc.wizards.fileupload.crop},{delegate_callback:close_modalwindow}]});};}();;l("FILE: cmyc.js");var debug_element=debug_element||null;Cmyc.namespace('events');Cmyc.events=Object.extend(Cmyc.framework.events,{messages_deleted:"cmyc:messages_deleted",shopping_cart_updated:"cmyc:shopping_cart_updated",coverflow_active_image_updated:"cmyc:coverflow_active_image_updated",profile_image_changed:"cmyc:profile_image_changed",playlist_deleted:"cmyc:playlist_deleted",playlist_created:"cmyc:playlist_created",mediaobject_deleted:"cmyc:mediaobject_deleted",find_and_execute_deeplinks:"cmyc:find_and_execute_deeplinks",mediathek_jump_to:"cmyc:mediathek_jump_to",start_registration:"cmyc:start_registration",audioplayer_set_mediaobject_id:"cmyc:audioplayer_set_mediaobject_id",audioplayer_show_comments:"cmyc:audioplayer_show_comments",audioplayer_reset_comments:"cmyc:audioplayer_reset_comments"});Cmyc.events.profilemodules={show_userdata_submenu:"cmyc:profilemodules:show_userdata_submenu",show_contacts_friends:"cmyc:profilemodules:show_contacts_friends",show_contacts_visitors:"cmyc:profilemodules:show_contacts_visitors"};Cmyc.namespace('debug');Cmyc.debug.minify={disable_js_minify:function(){cookies.create(Cmyc.php_constants.COOKIE_DISABLE_JSMINIFY,1,1);Cmyc.helpers.url.reload();},reset_js_minify:function(){cookies.erase(Cmyc.php_constants.COOKIE_DISABLE_JSMINIFY,1,1);Cmyc.helpers.url.reload();}};Cmyc.redirect={redirect_to:function(url){d("Cmyc.redirect.redirect_to "+url);if(location.href===url){location.reload();}else{location.href=url;}},edit_mediaobject:function(event){var mid=parse_cmyc_attrib(event.target).id||parse_cmyc_attrib(event.currentTarget).id||parse_cmyc_attrib(event.target.up()).id;Cmyc.redirect.redirect_to(encode_url('mediaManagementEditMediaObjects',{mid:mid}));},show_profile:function(event){Cmyc.redirect.redirect_to(encode_url("showProfile",{id:parse_cmyc_attrib(event.target).user_id}));},download_file:function(event){Cmyc.redirect.redirect_to(encode_url("fileDownload",{id:parse_cmyc_attrib(event.target).id}));},new_window:function(event){window.open(event.element().href);}};;Cmyc.namespace('singletons');Cmyc.singletons.registration=new function(){var modal_window=null;var config={show_agb_selector:'.cmyc-registration-agb-show',show_main_selector:'.cmyc-registration-agb-back',agb_selector:'.cmyc-registration-agb',main_selector:'.cmyc-registration-main'};var show_agb=function(){d("show_agb");$$(config.main_selector).first().hide();$$(config.agb_selector).first().show();};var hide_agb=function(){d("hide_agb");$$(config.agb_selector).first().hide();$$(config.main_selector).first().show();};var update_modal_window_eventlisteners=function(){l('registration:: update_modal_window_eventlisteners');var form_userdata=find_element('.cmyc-registration-send-userdata-form');if(form_userdata){Cmyc.helpers.form.add_ajax_response_handler({form:form_userdata,url_param_action:'ajaxSaveRegistration',error_container:'windowErrors',modal_window:modal_window});}
capture_event('.cmyc-start-registration',function(){modal_window.close();window.setTimeout("fire(Cmyc.events.start_registration)",500);});capture_event(config.show_agb_selector,show_agb);capture_event(config.show_main_selector,hide_agb);};this.start_registration=function(){modal_window=new Cmyc.modal_windows.ajax_content({onShow:update_modal_window_eventlisteners},encode_url('ajaxRegistration'));};subscribe(Cmyc.events.start_registration,this.start_registration);l("Cmyc.singletons.registration created");}();;Cmyc.namespace('singletons');Cmyc.singletons.shopping_cart=new function(){var items_per_page=3;var current_page=1;var row_template=null;var data={};var image_cache={};var count_items=function(){return data.items?data.items.length:0;};var last_page=function(){return Math.ceil(count_items()/items_per_page);};var current_page_items=function(){var first_page_item=(current_page-1)*items_per_page;return data.items.slice(first_page_item,first_page_item+items_per_page);};var update_data=function(result_data){data=result_data;fire(Cmyc.events.shopping_cart_updated,data);};var _set_button_active=function(button,active,prefix){if(active){button.addClassName(prefix+"Active");button.removeClassName(prefix+"Inactive");}else{button.removeClassName(prefix+"Active");button.addClassName(prefix+"Inactive");}};var update_buttons=function(){var back_button=find_element('.cmyc-shoppingcart-previous-item');if(current_page>1){_set_button_active(back_button,true,"back");}else{_set_button_active(back_button,false,"back");}
var forward_button=find_element('.cmyc-shoppingcart-next-item');if(current_page<last_page()){_set_button_active(forward_button,true,"forward");}else{_set_button_active(forward_button,false,"forward");}
capture_event('.cmyc-shoppingcart-previous-item',previous_items);capture_event('.cmyc-shoppingcart-next-item',next_items);};var update_view=function(new_page){if(typeof new_page==="undefined"){new_page=last_page();}
if(count_items()===0||new_page<1||new_page>last_page()){return;}
current_page=new_page;var new_rows="";current_page_items().each(function(item){new_rows+=get_row_template().evaluate(item);});find_element('.cmyc-shoppingcart-contentrows').update(new_rows);find_element('.cmyc-shoppingcart-total-price').update(data.total_price);find_element('.cmyc-shoppingcart-amount-articles').update(data.total_quantity);update_buttons();find_element('.cmyc-mini-shopping-cart').show();};var get_row_template=function(){if(row_template===null){row_template=new Template($('cmyc-jstemplate-mini-cart-row').value);}
return row_template;};var next_items=function(event){if(current_page===last_page()){return;}
update_view(current_page+1);};var previous_items=function(event){if(current_page===1){return;}
update_view(current_page-1);};var shopping_cart_updated=function(_,result){l("shopping_cart_updated",arguments);update_data(result.data);update_view();};this.add_item=function(mixed){var media_id=mixed.target?parse_cmyc_attrib(mixed.target).id:mixed;var temp=new Ajax.Request(encode_url('ajaxShoppingCartAddItem',{item:media_id}),{onSuccess:shopping_cart_updated});};this.add_playlist=function(mixed){var playlist_id=mixed.target?parse_cmyc_attrib(mixed.target).id:mixed;var temp=new Ajax.Request(encode_url('ajaxShoppingCartAddItemsFromPlaylist',{playlist_id:playlist_id}),{onSuccess:shopping_cart_updated});};this.init_from_template=function(template){if(template){var new_data=datacontainer.value.evalJSON();update_data(new_data);update_view(1);}};}();;Cmyc.namespace('singletons');Cmyc.singletons.videoplayer=new function(){var me=this;var active_href_element=null;var videoplayer=null;this.init_flash=function(){if(Cmyc.helpers.flashdetection.required_flash_version_installed()&&$('playerMain')){var so=new SWFObject('swf/video_player.swf','videoplayer','100%','100%','9','#000000');so.addParam('allowFullScreen','true');so.addParam('scale','noscale');so.addParam('wmode','window');so.addVariable('path',Cmyc.videoplayer_config.path);so.addVariable('session',Cmyc.videoplayer_config.session);so.addVariable('playlist_id',Cmyc.videoplayer_config.playlist_id);so.write('playerMain');videoplayer=$('videoplayer');}else{if($('cmyc-noflash')){$('cmyc-noflash').show();}}};this.play_video=function(vid,href_element){l("Cmyc.singletons.videoplayer.play_video",arguments);var temp=new Ajax.Request(encode_url('ajaxSelectVideo'),{method:'get',parameters:{video_id:vid},onSuccess:refresh_player});if(typeof href_element!=="undefined"&&href_element){if(active_href_element){active_href_element.removeClassName('active');}
active_href_element=href_element;$(active_href_element).addClassName('active');}};this.play_usernewsarchive_video=function(news_id,href_element){l("Cmyc.singletons.videoplayer.play_usernewsarchive_video",arguments);var temp=new Ajax.Request(encode_url('ajaxSelectUsernewsarchiveVideo'),{method:'get',parameters:{news_id:news_id},onSuccess:refresh_player});};this.play_newsarchive_video=function(news_id,href_element){l("Cmyc.singletons.videoplayer.play_newsarchive_video",arguments);var temp=new Ajax.Request(encode_url('ajaxSelectNewsarchiveVideo'),{method:'get',parameters:{news_id:news_id},onSuccess:refresh_player});};this.play_video_by_event=function(event){var data=parse_cmyc_attrib(event.target);info("play_video_by_event",data);me.play_video(data.id);};this.play_playlist=function(mixed,search_type){d("play_playlist called",arguments);mixed=mixed.target?parse_cmyc_attrib(mixed.findElement("A")).id:mixed;search_type=search_type?search_type:'';var temp=new Ajax.Request(encode_url('ajaxSelectPlaylist'),{method:'get',parameters:{playlist_id:mixed,search_type:search_type},onSuccess:refresh_player});};var refresh_player=function(){document.body.scrollTo();if(Prototype.Browser.IE){me.init_flash();}
videoplayer.onSelectMedia();};}();var play_video=Cmyc.singletons.videoplayer.play_video;var selectVideo=function(){w("selectVideo is deprecated - use play_video instead!");play_video(arguments);};;Cmyc.namespace('singletons');Cmyc.singletons.charts=new function(){var me=this;var videoplayer=null;var currentId=null;this.init=function(){if($$('.cmyc-charts-load-video').length){var so=new SWFObject('swf/chartplayer.swf','videoplayer-charts','300','225','9','#000000');so.addParam('allowFullScreen','true');so.addParam('wmode','window');so.addVariable('path',Cmyc.videoplayer_config.path);so.write('cmyc-videoplayer-charts');videoplayer=$('videoplayer-charts');}
if($$('IMG.cmyc-charts-load-image').first()){var first=$$('IMG.cmyc-charts-load-image').first();var data=parse_cmyc_attrib(first);load_image(data);}};this.player_loaded=function(){var first=$$('IMG.cmyc-charts-load-video').first();var data=parse_cmyc_attrib(first);load_video(data);};this.load_video_event=function(event){var data=parse_cmyc_attrib(event.target);load_video(data);};var load_video=function(data){currentId=data.id;if(videoplayer&&videoplayer.playFile){videoplayer.playFile(data.id);}
showHeadlines(data.id,data.position);showChartsComments(data.id);};this.load_image_event=function(event){var data=parse_cmyc_attrib(event.target);load_image(data);};var load_image=function(data){currentId=data.id;showHeadlines(data.id,data.position);showImage(data.id,data.counter);showChartsComments(data.id);};var showHeadlines=function(id,position){var url=encode_url('ajaxShowChartsHeadlines',{id:id,position:position});new Ajax.Updater('cmyc-charts-headlines',url);};var showImage=function(id,counter){var url=encode_url('ajaxShowChartsImage',{id:id,counter:counter});new Ajax.Updater('cmyc-videoplayer-charts',url,{onComplete:function(){$$('#js-charts-image-overlay,#js-charts-image').each(function(element){element.observe('mouseover',function(){$('js-charts-image-overlay').show();});});$$('#js-charts-image-overlay,#js-charts-image').each(function(element){element.observe('mouseout',function(){$('js-charts-image-overlay').hide();});});}});};this.showImageInLightbox=function(){var data=parse_cmyc_attrib($('js-charts-image'));var params={multiple:{items:$$('.cmyc-charts-load-image'),start:data.counter}};Cmyc.imageLightbox.show_fullscreen(params,{fullscreen_margin_width:20,fullscreen_margin_height:50});};var showChartsComments=function(id){var url=encode_url('ajaxShowChartsComments',{id:id});new Ajax.Updater('cmyc-comments',url);};this.submitCommentForm=function(e){if(currentId){var element=e.element();var input=element.up('form').select('input[name=comment]').first();var url=encode_url('ajaxWriteChartsComment',{id:currentId,text:input.getValue()});new Ajax.Updater('cmyc-comments',url);}};this.deleteComment=function(e){var data=parse_cmyc_attrib(e.target.up('li'));var url=encode_url('ajaxDeleteChartsComment',{id:currentId,comment_id:data.id});new Ajax.Updater('cmyc-comments',url);};}();;Cmyc.namespace('singletons');Cmyc.singletons.tablist=new function(){this.init=function(){$$('.tablist').each(function(tablist){tablist.select('li').each(function(li){li.observe('mouseover',function(){if(!this.hasClassName('active')&&!this.hasClassName('vip')){this.addClassName('hover');}}).observe('mouseout',function(){this.removeClassName('hover');});});});};}();;Cmyc.namespace('statusnotice');Cmyc.statusnotice.controller=function(root_element,activities_controller){var config={max_characters:Cmyc.php_constants.STATUSNOTICE_MAX_CHARACTERS,remains:'.cmyc-statusnotice-remains',input:'.cmyc-statusnotice-input',submit:'.statusnotice-submit'};var input_window;var show_statusnotice_input=function(){input_window=new Cmyc.modal_windows.ajax_content({onShow:function(){init_update();}},encode_url('ajaxStatusnoticeInputform',{}));}
var character_counter=function(event){var input=$$(config.input).first();var length=input.getValue().length;length=config.max_characters-length;if(length<=0){length=0;input.value=input.value.substring(0,config.max_characters);}
$$(config.remains).first().innerHTML=length;}
var submit=function(event){var submit=event.element();var form=submit.up("form");var serialized_form=$H(form.serialize(true));var url=Cmyc.helpers.url.encode("ajaxWriteStatusnotice",serialized_form.toQueryString());new Ajax.Request(url,{method:'POST',onComplete:function(data){activities_controller.showFriendsactivities();input_window.close();}});}
var init=function(){capture_event(root_element,show_statusnotice_input);var params=document.location.href.toQueryParams();if(params.showStatusnotice){show_statusnotice_input();}
d("Cmyc.statusnotice.controller - init finished");};var init_update=function(){subscribe_event(config.input,character_counter,"keypress");subscribe_event(config.input,character_counter,"keyup");capture_event(config.submit,submit);d("Cmyc.statusnotice.controller - init_update finished");}
init();l('Cmyc.statusnotice.controller created:',this);};Cmyc.namespace("wizards.fileupload");Cmyc.wizards.fileupload={crop:function(wizard){l("Cmyc.wizards.fileupload.crop executing");$$('.loadingIndicator').first().toggle();$('cropForm').request({onLoaded:function(){d("--onloaded");$('cropLoader').show();$('cropButton').hide();},onComplete:function(data,json){d("--onComplete",data,json);if(wizard&&typeof wizard.next_step==="function"){d("next step");d(wizard);wizard.next_step();}}});}};;Cmyc.namespace('introduceuser');Cmyc.introduceuser.controller=function(root_element){var config={duration:0.6,previous_link:'.cmyc-previous',next_link:'.cmyc-next',scrollcontainer:'.cmyc-scrollcontainer',scrollcontainer_item:'.cmyc-scrollcontainer-item',meta_data:'.cmyc-meta',visible_classname:'cmyc-visible',invisible_classname:'cmyc-invisible'};var mousedown=false;var animating=false;var initial_visible;var more=true;var page=1;var is_loading=false;var getPreviousLink=function(){return root_element.down(config.previous_link).down('a');};var getNextLink=function(){return root_element.down(config.next_link).down('a');};var setVisible=function(element){element.addClassName(config.visible_classname);element.removeClassName(config.invisible_classname);};var setInvisible=function(element){element.removeClassName(config.visible_classname);element.addClassName(config.invisible_classname);};var getFirstVisible=function(){return root_element.select('.'+config.visible_classname).first();};var getLastVisible=function(){return root_element.select('.'+config.visible_classname).last();};var getFirstInvisible=function(){return root_element.select('.'+config.visible_classname).last().next();};var getLastInvisible=function(){return root_element.select('.'+config.visible_classname).first().previous();};var manageArrows=function(){var last_invisible=getLastInvisible();if(last_invisible===null){new Effect.Fade(root_element.down(config.previous_link),{duration:config.duration});mousedown=false;}
else{new Effect.Appear(root_element.down(config.previous_link),{duration:config.duration});}
var first_visible=getFirstInvisible();if(first_visible===null){new Effect.Fade(root_element.down(config.next_link),{duration:config.duration});mousedown=false;}
else{new Effect.Appear(root_element.down(config.next_link),{duration:config.duration});}};var goPrevious=function(){animating=true;var last_invisible=getLastInvisible();setVisible(last_invisible);setInvisible(getLastVisible());new Effect.Morph(last_invisible,{style:{marginLeft:"0px"},afterFinish:function(){if(mousedown){goPrevious();}
else{animating=false;}},duration:config.duration});manageArrows();};var goNext=function(){animating=true;var first_visible=getFirstVisible();setInvisible(first_visible);setVisible(getFirstInvisible());new Effect.Morph(first_visible,{style:{marginLeft:"-73px"},afterFinish:function(){if(mousedown){goNext();}
else{animating=false;}
reloading();},duration:config.duration});manageArrows();};var reloading=function(){if(is_loading){window.setTimeout(reloading,100);}
else{if(more&&getLastVisible().nextSiblings().length<initial_visible){var url=getNextLink().readAttribute('href')+"&pos="+(++page);is_loading=true;new Ajax.Request(url,{method:'POST',onComplete:function(data){more=data.headerJSON.has_next;root_element.down(config.scrollcontainer).insert({bottom:data.responseText});init_update();is_loading=false;}});}}};var doSmth=function(callback){if(!animating&&!mousedown){mousedown=true;callback();}};var activate_item=function(event){var element=event.findElement('li');var cmyc_attr=parse_cmyc_attrib(element);var user_data=read_js_data('user-'+cmyc_attr.user_id);var meta_element=root_element.down(config.meta_data);meta_element.innerHTML=user_data.showname+" ("+user_data.regdate_formatted+")";root_element.select(config.scrollcontainer_item).each(function(elem){elem.removeClassName('active');});element.addClassName('active');};var init=function(){initial_visible=root_element.select('.'+config.visible_classname).length;capture_event(getPreviousLink(),function(){doSmth(goPrevious);},'mousedown');capture_event(getNextLink(),function(){doSmth(goNext);},'mousedown');capture_event(getPreviousLink(),function(){mousedown=false;},'mouseup');capture_event(getNextLink(),function(){mousedown=false;},'mouseup');capture_event(getNextLink(),Prototype.emptyFunction,'click');init_update();d("Cmyc.introduceuser.controller - init finished");};var init_update=function(){var items=root_element.select(config.scrollcontainer_item);items.each(function(item){item.stopObserving('mouseover');});capture_event(items,activate_item,'mouseover');};init();l("Cmyc.introduceuser.controller created");};Cmyc.namespace('flashplayer_gateway');Cmyc.flashplayer_gateway=new function(){var deprecated=function(fn_name){e("ERROR: "+fn_name+" is no longer part of flashplayer gateway - remove this call in flash!");};this.profile_fileupload_finished=Cmyc.singletons.profile_image.flashplayer_gateway.finished_image_upload;this.show_login=Cmyc.singletons.login.show_login;this.show_registration=Cmyc.singletons.registration.show_registration_step_userdata;this.show_write_message=Cmyc.singletons.messaging.show_write_message;this.log=l.curry("[FLASHPLAYER-LOG]");this.show_add_playlist=Cmyc.mediathek.dialogues.show_add_media_to_playlist;this.add_item_to_shopping_cart=Cmyc.singletons.shopping_cart.add_item;this.add_playlist_to_shopping_cart=Cmyc.singletons.shopping_cart.add_playlist;this.cookies=cookies;this.open_audioplayer_popup=function(url){info(url);window.open(url,"Audioplayer","width=970,height=493,left=10,top=10");};this.audioplayer_init_comments=function(mediaobject){l("audioplayer_init_comments",arguments);d(mediaobject);mediaobject=mediaobject.evalJSON();d(mediaobject);fire(Cmyc.events.audioplayer_set_mediaobject_id,mediaobject);};this.audioplayer_show_comments=function(mediaobject){l("audioplayer_show_comments",arguments);d(mediaobject);mediaobject=mediaobject.evalJSON();d(mediaobject);fire(Cmyc.events.audioplayer_show_comments,mediaobject);};this.audioplayer_reset_comments=function(mediaobject){l("audioplayer_reset_comments",arguments);mediaobject=mediaobject.evalJSON();fire(Cmyc.events.audioplayer_reset_comments,mediaobject);};this.fileupload_finished=deprecated.curry("fileupload_finished");this.add_to_shopping_cart=deprecated.curry("add_to_shopping_cart");this.sedcard_fileupload_finished=deprecated.curry("sedcard_fileupload_finished");this.cover_fileupload_finished=deprecated.curry("cover_fileupload_finished");}();;l("FILE: cmyc-bootstrap.js");Cmyc.namespace('bootstrap');Cmyc.bootstrap.element_updated_subscriber=new function(){var me=this;this.recapture_events=function(limit_to_div){var p=new Cmyc.profiler('Cmyc.bootstrap.recapture_events');var master_div=$(limit_to_div)||$(document.body);l("Cmyc.bootstrap.element_updated_subscriber.recapture_events master_div=",master_div);if(typeof master_div.select!=="function"){e("Cmyc.bootstrap.element_updated_subscriber.recapture_events: cannot find master_div",master_div);return;}
p.measure_time('init');if(Cmyc.singletons.login.is_logged_in()){Cmyc.helpers.events.capture_click_events_from_hash(master_div,$H({'A.cmyc-write-message':Cmyc.singletons.messaging.show_write_message,'A.cmyc-delete-message':Cmyc.singletons.messaging.show_delete_message,'TD.cmyc-get-message-content':Cmyc.singletons.messaging.get_message_content,'.cmyc-show-create-playlist':Cmyc.mediathek.dialogues.show_create_playlist.curry(null),'A.cmyc-delete-mediaobject':Cmyc.singletons.mediaobjects.show_delete_mediaobject,'A.cmyc-toggle-mediaobject-visibility':Cmyc.singletons.mediaobjects.toggle_mediaobject_visibility,'A.cmyc-request-friendship':Cmyc.singletons.friends_requests.request_friendship,'A.cmyc-cancel-friendship':Cmyc.singletons.friends_requests.cancel_friendship,'A.cmyc-friendship-request-accept':Cmyc.singletons.friends_requests.accept_friendship,'A.cmyc-friendship-request-reject':Cmyc.singletons.friends_requests.reject_friendship,'A.cmyc-confirmable-message-accept':Cmyc.singletons.messaging.confirmable_messages.accept,'A.cmyc-confirmable-message-reject':Cmyc.singletons.messaging.confirmable_messages.reject}));p.measure_time('capture_click_events for logged in users');}else{Cmyc.helpers.events.capture_click_events_from_hash(master_div,$H({'DIV.cmyc-login, A.cmyc-login':Cmyc.singletons.login.show_login,'A.cmyc-register,DIV.cmyc-register':Cmyc.singletons.registration.start_registration}));p.measure_time('capture_click_events for NOT logged in users');}
Cmyc.helpers.events.capture_click_events_from_hash(master_div,$H({'A[class*=cmyc-ajax-link]':Cmyc.ajax_updater_link,'A.cmyc-lightbox-open':Cmyc.lightbox.curry('open'),'A.cmyc-lightbox-link':Cmyc.lightbox.curry('link'),'A.cmyc-show-info':Cmyc.mediathek.dialogues.show_info,'IMG.cmyc-play-video,A.cmyc-play-video':Cmyc.singletons.videoplayer.play_video_by_event,'IMG.cmyc-charts-load-video,A.cmyc-charts-load-video':Cmyc.singletons.charts.load_video_event,'IMG.cmyc-charts-load-image':Cmyc.singletons.charts.load_image_event,'.cmyc-charts-lightbox':Cmyc.singletons.charts.showImageInLightbox,'IMG.cmyc-show-add-to-playlist, A.cmyc-show-add-to-playlist':Cmyc.mediathek.dialogues.show_add_media_to_playlist,'DIV.cmyc-edit-file,A.cmyc-edit-file':Cmyc.redirect.edit_mediaobject,'DIV.cmyc-show-profile, A.cmyc-show-profile':Cmyc.redirect.show_profile,'A.cmyc-download-file':Cmyc.redirect.download_file,'A.cmyc-link-target-blank':Cmyc.redirect.new_window,'.cmyc-charts-write-comment':Cmyc.singletons.charts.submitCommentForm,'.cmyc-charts-comment-delete':Cmyc.singletons.charts.deleteComment}));p.measure_time('capture_click_events for any users');var rebuilt_objects=Cmyc.factory.build_all_from_selector.defer(new Hash({'DIV.cmyc-generic-pager':Cmyc.generic_pager,'DIV.cmyc-generic-toggler-mouseover':Cmyc.behaviour.div_toggler.mouseover,'A.cmyc-generic-toggler-click':Cmyc.behaviour.div_toggler.click,'INPUT.cmyc-toggle-all-checkboxes':Cmyc.behaviour.checkbox_toggler,'FORM.cmyc-delete-messages-form':Cmyc.messaging.delete_form_controller,'DIV.cmyc-friends-register':Cmyc.profile.modules.contacts.controller,'.tablist':Cmyc.singletons.tablist.init}),master_div);p.profile('rebuilt_objects execution');};subscribe(Cmyc.events.element_updated_by_ajax_updater,function(e){l("Cmyc.bootstrap.element_updated_subscriber: Cmyc.events.element_updated_by_ajax_updater subscribed",e);me.recapture_events(e.memo);});}();var recapture_startup_events_for_element=Cmyc.bootstrap.element_updated_subscriber.recapture_events;var global_profile_controller_additional_config;Cmyc.bootstrap.init_startup_objects=function(){var p=new Cmyc.profiler('Cmyc.bootstrap.init_startup_objects');var profile_controller_additional_config={module_controllers:$H({'profile-sedcard':Cmyc.profile.modules.sedcard,'profile-friends':Cmyc.profile.modules.contacts.controller,'profile-mediathek':Cmyc.profile.modules.mediathek,'profile-pinboard':Cmyc.profile.modules.pinboard,'profile-property':Cmyc.profile.modules.userdata,'profile-audioplayer':Cmyc.profile.modules.audioplayer,'profile-usernews':Cmyc.profile.modules.usernews}),deepcalls_config:$H({'contact-visitors':{tab:'friends',event:Cmyc.events.profilemodules.show_contacts_visitors,ajax_reload:true,link:encode_url("ajaxShowVisitors",{})},'contact-friends':{tab:'friends',event:Cmyc.events.profilemodules.show_contacts_friends,ajax_reload:true}})};global_profile_controller_additional_config=profile_controller_additional_config;var startup_objects=Cmyc.factory.build_all_from_selector.defer(new Hash({'#cmyc-navigation-default-tabs':Cmyc.tab_control_click,'#cmyc-navigation-default-tabs-nocontent':Cmyc.tab_control,'#cmyc-top10slider-container':Cmyc.mediaobjects_slider,'DIV.cmyc-settings':Cmyc.settings.controller,'DIV.cmyc-message-notification':Cmyc.messaging.new_messages_notification,'DIV.cmyc-profile-controller':{classname:Cmyc.profile.controller,param:profile_controller_additional_config},'DIV.cmyc-modelvoting-controller':Cmyc.modelvoting.controller,'DIV.cmyc-activities':Cmyc.activities.controller,'DIV.cmyc-introduceuser':Cmyc.introduceuser.controller,'DIV.cmyc-initialize-sedcard > div':{classname:Cmyc.profile.controller,param:profile_controller_additional_config},'DIV.cmyc-media-management':Cmyc.mediamanagement,'DIV.cmyc-playlist-management':Cmyc.playlistmanagement,'#cmyc-metapages-menu':Cmyc.metapages,'#cmyc-friends-profile-users-tabs':Cmyc.tab_control_click,'#cmyc-show-home-chart-page':Cmyc.home.chart_page,'#cmyc-search':Cmyc.search,'#cmyc-charts':Cmyc.charts.controller,'#cmyc-newsarchive':Cmyc.newsarchive.controller,'#cmyc-usernewsarchive':Cmyc.newsarchive.controller,'#quicksearchfilter':Cmyc.quicksearch.controller,'#cmyc-cmycnews':Cmyc.newsportlet.controller,'#cmyc-usernews':Cmyc.newsportlet.controller,'#cmyc-casting':Cmyc.casting.controller}));p.measure_time('startup_objects build_all_from_selector');info("startup_objects=",startup_objects);Cmyc.behaviour.anchor_functions.init.defer();p.measure_time('Cmyc.behaviour.anchor_functions.init');var deeplinks=new Cmyc.deeplinks({cancel_membership_success:Cmyc.dialogues.show_cancel_membership_success,email_changed_success:Cmyc.dialogues.email_changed_success,registration_confirmation_success:Cmyc.dialogues.show_registration_confirmation_success,registration_confirmation_error:Cmyc.dialogues.show_registration_confirmation_error,show_message:Cmyc.singletons.messaging.get_message_content,show_login:Cmyc.singletons.login.show_login,show_registration:Cmyc.singletons.registration.start_registration,mediathek_playlists:fire.curry(Cmyc.events.mediathek_jump_to,'cmyc-mediathek-playlists'),disable_js_minify:Cmyc.debug.minify.disable_js_minify,reset_js_minify:Cmyc.debug.minify.reset_js_minify},Cmyc.events.find_and_execute_deeplinks);fire(Cmyc.events.find_and_execute_deeplinks);p.profile('deeplinks def, find & execute');};Cmyc.bootstrap.pre_init=function(){Cmyc.singletons.videoplayer.init_flash();Cmyc.singletons.charts.init();};Cmyc.bootstrap.init=function(){var init=function(){var p=new Cmyc.profiler('Cmyc.bootstrap.init');Cmyc.a=function(){};Cmyc.bootstrap.element_updated_subscriber.recapture_events();p.measure_time('recapture_events');Cmyc.bootstrap.init_startup_objects();p.profile('init startup objects (Cmyc.bootstrap.init finished)');};init.defer();};Cmyc.bootstrap.startup=function(){l('Cmyc.bootstrap.startup: '+new Date());subscribe(Cmyc.events.pre_init,Cmyc.bootstrap.pre_init);subscribe(Cmyc.events.pre_init,Cmyc.bootstrap.init);fire(Cmyc.events.pre_init);fire(Cmyc.events.init);};document.observe('dom:loaded',Cmyc.bootstrap.startup.bind(this));;function checkCondition(source,prop_id,value){if($(source).value==value){$("prop_"+prop_id).style.display="block";}else{$("prop_"+prop_id).style.display="none";}}
function textCounter(tf,countfield,maxlimit){if($(tf).value.length>maxlimit){$(tf).value=$(tf).value.substring(0,maxlimit);}
$(countfield).innerHTML=maxlimit-$(tf).value.length;}
Cmyc.lightbox=function(mode,event){l(arguments);(function(){event.stop();var element=event.findElement('a');var callback=function(){var modal_window_content=find_element('.cmyc_content');fire(Cmyc.framework.events.element_updated_by_ajax_updater,modal_window_content);}
if(mode=='open'||mode=='link'){modal_window=Cmyc.modal_windows.ajax_content({onShow:callback},element.href);}})();}