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(a){a=a.toUpperCase();var g=this.NODEMAP[a]||"div";var b=document.createElement(g);try{b.innerHTML="<"+a+"></"+a+">"}catch(f){}var d=b.firstChild||null;if(d&&(d.tagName.toUpperCase()!=a)){d=d.getElementsByTagName(a)[0]}if(!d){d=document.createElement(a)}if(!d){return}if(arguments[1]){if(this._isStringOrNumber(arguments[1])||(arguments[1] instanceof Array)||arguments[1].tagName){this._children(d,arguments[1])}else{var c=this._attributes(arguments[1]);if(c.length){try{b.innerHTML="<"+a+" "+c+"></"+a+">"}catch(f){}d=b.firstChild||null;if(!d){d=document.createElement(a);for(attr in arguments[1]){d[attr=="class"?"className":attr]=arguments[1][attr]}}if(d.tagName.toUpperCase()!=a){d=b.getElementsByTagName(a)[0]}}}}if(arguments[2]){this._children(d,arguments[2])}return $(d)},_text:function(a){return document.createTextNode(a)},ATTR_MAP:{className:"class",htmlFor:"for"},_attributes:function(a){var b=[];for(attribute in a){b.push((attribute in this.ATTR_MAP?this.ATTR_MAP[attribute]:attribute)+'="'+a[attribute].toString().escapeHTML().gsub(/"/,"&quot;")+'"')}return b.join(" ")},_children:function(b,a){if(a.tagName){b.appendChild(a);return}if(typeof a=="object"){a.flatten().each(function(c){if(typeof c=="object"){b.appendChild(c)}else{if(Builder._isStringOrNumber(c)){b.appendChild(Builder._text(c))}}})}else{if(Builder._isStringOrNumber(a)){b.appendChild(Builder._text(a))}}},_isStringOrNumber:function(a){return(typeof a=="string"||typeof a=="number")},build:function(b){var a=this.node("div");$(a).update(b.strip());return a.down()},dump:function(b){if(typeof b!="object"&&typeof b!="function"){b=window}var a=("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+/);a.each(function(c){b[c]=function(){return Builder.node.apply(Builder,[c].concat($A(arguments)))}})}};String.prototype.parseColor=function(){var a="#";if(this.slice(0,4)=="rgb("){var c=this.slice(4,this.length-1).split(",");var b=0;do{a+=parseInt(c[b]).toColorPart()}while(++b<3)}else{if(this.slice(0,1)=="#"){if(this.length==4){for(var b=1;b<4;b++){a+=(this.charAt(b)+this.charAt(b)).toLowerCase()}}if(this.length==7){a=this.toLowerCase()}}}return(a.length==7?a:(arguments[0]||this))};Element.collectTextNodes=function(a){return $A($(a).childNodes).collect(function(b){return(b.nodeType==3?b.nodeValue:(b.hasChildNodes()?Element.collectTextNodes(b):""))}).flatten().join("")};Element.collectTextNodesIgnoreClass=function(a,b){return $A($(a).childNodes).collect(function(c){return(c.nodeType==3?c.nodeValue:((c.hasChildNodes()&&!Element.hasClassName(c,b))?Element.collectTextNodesIgnoreClass(c,b):""))}).flatten().join("")};Element.setContentZoom=function(a,b){a=$(a);a.setStyle({fontSize:(b/100)+"em"});if(Prototype.Browser.WebKit){window.scrollBy(0,0)}return a};Element.getInlineOpacity=function(a){return $(a).style.opacity||""};Element.forceRerendering=function(a){try{a=$(a);var c=document.createTextNode(" ");a.appendChild(c);a.removeChild(c)}catch(b){}};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(a){return(-Math.cos(a*Math.PI)/2)+0.5},reverse:function(a){return 1-a},flicker:function(a){var a=((-Math.cos(a*Math.PI)/4)+0.75)+Math.random()/4;return a>1?1:a},wobble:function(a){return(-Math.cos(a*Math.PI*(9*a))/2)+0.5},pulse:function(b,a){return(-Math.cos((b*((a||5)-0.5)*2)*Math.PI)/2)+0.5},spring:function(a){return 1-(Math.cos(a*4.5*Math.PI)*Math.exp(-a*6))},none:function(a){return 0},full:function(a){return 1}},DefaultOptions:{duration:1,fps:100,sync:false,from:0,to:1,delay:0,queue:"parallel"},tagifyText:function(a){var b="position:relative";if(Prototype.Browser.IE){b+=";zoom:1"}a=$(a);$A(a.childNodes).each(function(c){if(c.nodeType==3){c.nodeValue.toArray().each(function(d){a.insertBefore(new Element("span",{style:b}).update(d==" "?String.fromCharCode(160):d),c)});Element.remove(c)}})},multiple:function(b,c){var e;if(((typeof b=="object")||Object.isFunction(b))&&(b.length)){e=b}else{e=$(b).childNodes}var a=Object.extend({speed:0.1,delay:0},arguments[2]||{});var d=a.delay;$A(e).each(function(g,f){new c(g,Object.extend(a,{delay:f*a.speed+d}))})},PAIRS:{slide:["SlideDown","SlideUp"],blind:["BlindDown","BlindUp"],appear:["Appear","Fade"]},toggle:function(b,c){b=$(b);c=(c||"appear").toLowerCase();var a=Object.extend({queue:{position:"end",scope:(b.id||"global"),limit:1}},arguments[2]||{});Effect[b.visible()?Effect.PAIRS[c][1]:Effect.PAIRS[c][0]](b,a)}};Effect.DefaultOptions.transition=Effect.Transitions.sinoidal;Effect.ScopedQueue=Class.create(Enumerable,{initialize:function(){this.effects=[];this.interval=null},_each:function(a){this.effects._each(a)},add:function(b){var c=new Date().getTime();var a=Object.isString(b.options.queue)?b.options.queue:b.options.queue.position;switch(a){case"front":this.effects.findAll(function(d){return d.state=="idle"}).each(function(d){d.startOn+=b.finishOn;d.finishOn+=b.finishOn});break;case"with-last":c=this.effects.pluck("startOn").max()||c;break;case"end":c=this.effects.pluck("finishOn").max()||c;break}b.startOn+=c;b.finishOn+=c;if(!b.options.queue.limit||(this.effects.length<b.options.queue.limit)){this.effects.push(b)}if(!this.interval){this.interval=setInterval(this.loop.bind(this),15)}},remove:function(a){this.effects=this.effects.reject(function(b){return b==a});if(this.effects.length==0){clearInterval(this.interval);this.interval=null}},loop:function(){var c=new Date().getTime();for(var b=0,a=this.effects.length;b<a;b++){this.effects[b]&&this.effects[b].loop(c)}}});Effect.Queues={instances:$H(),get:function(a){if(!Object.isString(a)){return a}return this.instances.get(a)||this.instances.set(a,new Effect.ScopedQueue())}};Effect.Queue=Effect.Queues.get("global");Effect.Base=Class.create({position:null,start:function(a){function b(d,c){return((d[c+"Internal"]?"this.options."+c+"Internal(this);":"")+(d[c]?"this.options."+c+"(this);":""))}if(a&&a.transition===false){a.transition=Effect.Transitions.linear}this.options=Object.extend(Object.extend({},Effect.DefaultOptions),a||{});this.currentFrame=0;this.state="idle";this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.fromToDelta=this.options.to-this.options.from;this.totalTime=this.finishOn-this.startOn;this.totalFrames=this.options.fps*this.options.duration;this.render=(function(){function c(e,d){if(e.options[d+"Internal"]){e.options[d+"Internal"](e)}if(e.options[d]){e.options[d](e)}}return function(d){if(this.state==="idle"){this.state="running";c(this,"beforeSetup");if(this.setup){this.setup()}c(this,"afterSetup")}if(this.state==="running"){d=(this.options.transition(d)*this.fromToDelta)+this.options.from;this.position=d;c(this,"beforeUpdate");if(this.update){this.update(d)}c(this,"afterUpdate")}}})();this.event("beforeStart");if(!this.options.sync){Effect.Queues.get(Object.isString(this.options.queue)?"global":this.options.queue.scope).add(this)}},loop:function(c){if(c>=this.startOn){if(c>=this.finishOn){this.render(1);this.cancel();this.event("beforeFinish");if(this.finish){this.finish()}this.event("afterFinish");return}var b=(c-this.startOn)/this.totalTime,a=(b*this.totalFrames).round();if(a>this.currentFrame){this.render(b);this.currentFrame=a}}},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(a){if(this.options[a+"Internal"]){this.options[a+"Internal"](this)}if(this.options[a]){this.options[a](this)}},inspect:function(){var a=$H();for(property in this){if(!Object.isFunction(this[property])){a.set(property,this[property])}}return"#<Effect:"+a.inspect()+",options:"+$H(this.options).inspect()+">"}});Effect.Parallel=Class.create(Effect.Base,{initialize:function(a){this.effects=a||[];this.start(arguments[1])},update:function(a){this.effects.invoke("render",a)},finish:function(a){this.effects.each(function(b){b.render(1);b.cancel();b.event("beforeFinish");if(b.finish){b.finish(a)}b.event("afterFinish")})}});Effect.Tween=Class.create(Effect.Base,{initialize:function(c,f,e){c=Object.isString(c)?$(c):c;var b=$A(arguments),d=b.last(),a=b.length==5?b[3]:null;this.method=Object.isFunction(d)?d.bind(c):Object.isFunction(c[d])?c[d].bind(c):function(g){c[d]=g};this.start(Object.extend({from:f,to:e},a||{}))},update:function(a){this.method(a)}});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(b){this.element=$(b);if(!this.element){throw (Effect._elementDoesNotExistError)}if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)){this.element.setStyle({zoom:1})}var a=Object.extend({from:this.element.getOpacity()||0,to:1},arguments[1]||{});this.start(a)},update:function(a){this.element.setOpacity(a)}});Effect.Move=Class.create(Effect.Base,{initialize:function(b){this.element=$(b);if(!this.element){throw (Effect._elementDoesNotExistError)}var a=Object.extend({x:0,y:0,mode:"relative"},arguments[1]||{});this.start(a)},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(a){this.element.setStyle({left:(this.options.x*a+this.originalLeft).round()+"px",top:(this.options.y*a+this.originalTop).round()+"px"})}});Effect.MoveBy=function(b,a,c){return new Effect.Move(b,Object.extend({x:c,y:a},arguments[3]||{}))};Effect.Scale=Class.create(Effect.Base,{initialize:function(b,c){this.element=$(b);if(!this.element){throw (Effect._elementDoesNotExistError)}var a=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:c},arguments[2]||{});this.start(a)},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle("position");this.originalStyle={};["top","left","width","height","fontSize"].each(function(b){this.originalStyle[b]=this.element.style[b]}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var a=this.element.getStyle("font-size")||"100%";["em","px","%","pt"].each(function(b){if(a.indexOf(b)>0){this.fontSize=parseFloat(a);this.fontSizeType=b}}.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(a){var b=(this.options.scaleFrom/100)+(this.factor*a);if(this.options.scaleContent&&this.fontSize){this.element.setStyle({fontSize:this.fontSize*b+this.fontSizeType})}this.setDimensions(this.dims[0]*b,this.dims[1]*b)},finish:function(a){if(this.restoreAfterFinish){this.element.setStyle(this.originalStyle)}},setDimensions:function(a,e){var f={};if(this.options.scaleX){f.width=e.round()+"px"}if(this.options.scaleY){f.height=a.round()+"px"}if(this.options.scaleFromCenter){var c=(a-this.dims[0])/2;var b=(e-this.dims[1])/2;if(this.elementPositioning=="absolute"){if(this.options.scaleY){f.top=this.originalTop-c+"px"}if(this.options.scaleX){f.left=this.originalLeft-b+"px"}}else{if(this.options.scaleY){f.top=-c+"px"}if(this.options.scaleX){f.left=-b+"px"}}}this.element.setStyle(f)}});Effect.Highlight=Class.create(Effect.Base,{initialize:function(b){this.element=$(b);if(!this.element){throw (Effect._elementDoesNotExistError)}var a=Object.extend({startcolor:"#ffff99"},arguments[1]||{});this.start(a)},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(a){return parseInt(this.options.startcolor.slice(a*2+1,a*2+3),16)}.bind(this));this._delta=$R(0,2).map(function(a){return parseInt(this.options.endcolor.slice(a*2+1,a*2+3),16)-this._base[a]}.bind(this))},update:function(a){this.element.setStyle({backgroundColor:$R(0,2).inject("#",function(b,c,d){return b+((this._base[d]+(this._delta[d]*a)).round().toColorPart())}.bind(this))})},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}))}});Effect.ScrollTo=function(c){var b=arguments[1]||{},a=document.viewport.getScrollOffsets(),d=$(c).cumulativeOffset();if(b.offset){d[1]+=b.offset}return new Effect.Tween(null,a.top,d[1],b,function(e){scrollTo(a.left,e.round())})};Effect.Fade=function(c){c=$(c);var a=c.getInlineOpacity();var b=Object.extend({from:c.getOpacity()||1,to:0,afterFinishInternal:function(d){if(d.options.to!=0){return}d.element.hide().setStyle({opacity:a})}},arguments[1]||{});return new Effect.Opacity(c,b)};Effect.Appear=function(b){b=$(b);var a=Object.extend({from:(b.getStyle("display")=="none"?0:b.getOpacity()||0),to:1,afterFinishInternal:function(c){c.element.forceRerendering()},beforeSetup:function(c){c.element.setOpacity(c.options.from).show()}},arguments[1]||{});return new Effect.Opacity(b,a)};Effect.Puff=function(b){b=$(b);var a={opacity:b.getInlineOpacity(),position:b.getStyle("position"),top:b.style.top,left:b.style.left,width:b.style.width,height:b.style.height};return new Effect.Parallel([new Effect.Scale(b,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(b,{sync:true,to:0})],Object.extend({duration:1,beforeSetupInternal:function(c){Position.absolutize(c.effects[0].element)},afterFinishInternal:function(c){c.effects[0].element.hide().setStyle(a)}},arguments[1]||{}))};Effect.BlindUp=function(a){a=$(a);a.makeClipping();return new Effect.Scale(a,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(b){b.element.hide().undoClipping()}},arguments[1]||{}))};Effect.BlindDown=function(b){b=$(b);var a=b.getDimensions();return new Effect.Scale(b,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:a.height,originalWidth:a.width},restoreAfterFinish:true,afterSetup:function(c){c.element.makeClipping().setStyle({height:"0px"}).show()},afterFinishInternal:function(c){c.element.undoClipping()}},arguments[1]||{}))};Effect.SwitchOff=function(b){b=$(b);var a=b.getInlineOpacity();return new Effect.Appear(b,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(c){new Effect.Scale(c.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(d){d.element.makePositioned().makeClipping()},afterFinishInternal:function(d){d.element.hide().undoClipping().undoPositioned().setStyle({opacity:a})}})}},arguments[1]||{}))};Effect.DropOut=function(b){b=$(b);var a={top:b.getStyle("top"),left:b.getStyle("left"),opacity:b.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(b,{x:0,y:100,sync:true}),new Effect.Opacity(b,{sync:true,to:0})],Object.extend({duration:0.5,beforeSetup:function(c){c.effects[0].element.makePositioned()},afterFinishInternal:function(c){c.effects[0].element.hide().undoPositioned().setStyle(a)}},arguments[1]||{}))};Effect.Shake=function(d){d=$(d);var b=Object.extend({distance:20,duration:0.5},arguments[1]||{});var e=parseFloat(b.distance);var c=parseFloat(b.duration)/10;var a={top:d.getStyle("top"),left:d.getStyle("left")};return new Effect.Move(d,{x:e,y:0,duration:c,afterFinishInternal:function(f){new Effect.Move(f.element,{x:-e*2,y:0,duration:c*2,afterFinishInternal:function(g){new Effect.Move(g.element,{x:e*2,y:0,duration:c*2,afterFinishInternal:function(h){new Effect.Move(h.element,{x:-e*2,y:0,duration:c*2,afterFinishInternal:function(i){new Effect.Move(i.element,{x:e*2,y:0,duration:c*2,afterFinishInternal:function(j){new Effect.Move(j.element,{x:-e,y:0,duration:c,afterFinishInternal:function(k){k.element.undoPositioned().setStyle(a)}})}})}})}})}})}})};Effect.SlideDown=function(c){c=$(c).cleanWhitespace();var a=c.down().getStyle("bottom");var b=c.getDimensions();return new Effect.Scale(c,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:b.height,originalWidth:b.width},restoreAfterFinish:true,afterSetup:function(d){d.element.makePositioned();d.element.down().makePositioned();if(window.opera){d.element.setStyle({top:""})}d.element.makeClipping().setStyle({height:"0px"}).show()},afterUpdateInternal:function(d){d.element.down().setStyle({bottom:(d.dims[0]-d.element.clientHeight)+"px"})},afterFinishInternal:function(d){d.element.undoClipping().undoPositioned();d.element.down().undoPositioned().setStyle({bottom:a})}},arguments[1]||{}))};Effect.SlideUp=function(c){c=$(c).cleanWhitespace();var a=c.down().getStyle("bottom");var b=c.getDimensions();return new Effect.Scale(c,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,scaleMode:{originalHeight:b.height,originalWidth:b.width},restoreAfterFinish:true,afterSetup:function(d){d.element.makePositioned();d.element.down().makePositioned();if(window.opera){d.element.setStyle({top:""})}d.element.makeClipping().show()},afterUpdateInternal:function(d){d.element.down().setStyle({bottom:(d.dims[0]-d.element.clientHeight)+"px"})},afterFinishInternal:function(d){d.element.hide().undoClipping().undoPositioned();d.element.down().undoPositioned().setStyle({bottom:a})}},arguments[1]||{}))};Effect.Squish=function(a){return new Effect.Scale(a,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(b){b.element.makeClipping()},afterFinishInternal:function(b){b.element.hide().undoClipping()}})};Effect.Grow=function(c){c=$(c);var b=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var a={top:c.style.top,left:c.style.left,height:c.style.height,width:c.style.width,opacity:c.getInlineOpacity()};var g=c.getDimensions();var h,f;var e,d;switch(b.direction){case"top-left":h=f=e=d=0;break;case"top-right":h=g.width;f=d=0;e=-g.width;break;case"bottom-left":h=e=0;f=g.height;d=-g.height;break;case"bottom-right":h=g.width;f=g.height;e=-g.width;d=-g.height;break;case"center":h=g.width/2;f=g.height/2;e=-g.width/2;d=-g.height/2;break}return new Effect.Move(c,{x:h,y:f,duration:0.01,beforeSetup:function(i){i.element.hide().makeClipping().makePositioned()},afterFinishInternal:function(i){new Effect.Parallel([new Effect.Opacity(i.element,{sync:true,to:1,from:0,transition:b.opacityTransition}),new Effect.Move(i.element,{x:e,y:d,sync:true,transition:b.moveTransition}),new Effect.Scale(i.element,100,{scaleMode:{originalHeight:g.height,originalWidth:g.width},sync:true,scaleFrom:window.opera?1:0,transition:b.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(j){j.effects[0].element.setStyle({height:"0px"}).show()},afterFinishInternal:function(j){j.effects[0].element.undoClipping().undoPositioned().setStyle(a)}},b))}})};Effect.Shrink=function(c){c=$(c);var b=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});var a={top:c.style.top,left:c.style.left,height:c.style.height,width:c.style.width,opacity:c.getInlineOpacity()};var f=c.getDimensions();var e,d;switch(b.direction){case"top-left":e=d=0;break;case"top-right":e=f.width;d=0;break;case"bottom-left":e=0;d=f.height;break;case"bottom-right":e=f.width;d=f.height;break;case"center":e=f.width/2;d=f.height/2;break}return new Effect.Parallel([new Effect.Opacity(c,{sync:true,to:0,from:1,transition:b.opacityTransition}),new Effect.Scale(c,window.opera?1:0,{sync:true,transition:b.scaleTransition,restoreAfterFinish:true}),new Effect.Move(c,{x:e,y:d,sync:true,transition:b.moveTransition})],Object.extend({beforeStartInternal:function(g){g.effects[0].element.makePositioned().makeClipping()},afterFinishInternal:function(g){g.effects[0].element.hide().undoClipping().undoPositioned().setStyle(a)}},b))};Effect.Pulsate=function(c){c=$(c);var b=arguments[1]||{},a=c.getInlineOpacity(),e=b.transition||Effect.Transitions.linear,d=function(f){return 1-e((-Math.cos((f*(b.pulses||5)*2)*Math.PI)/2)+0.5)};return new Effect.Opacity(c,Object.extend(Object.extend({duration:2,from:0,afterFinishInternal:function(f){f.element.setStyle({opacity:a})}},b),{transition:d}))};Effect.Fold=function(b){b=$(b);var a={top:b.style.top,left:b.style.left,width:b.style.width,height:b.style.height};b.makeClipping();return new Effect.Scale(b,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(c){new Effect.Scale(b,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(d){d.element.hide().undoClipping().setStyle(a)}})}},arguments[1]||{}))};Effect.Morph=Class.create(Effect.Base,{initialize:function(c){this.element=$(c);if(!this.element){throw (Effect._elementDoesNotExistError)}var a=Object.extend({style:{}},arguments[1]||{});if(!Object.isString(a.style)){this.style=$H(a.style)}else{if(a.style.include(":")){this.style=a.style.parseStyle()}else{this.element.addClassName(a.style);this.style=$H(this.element.getStyles());this.element.removeClassName(a.style);var b=this.element.getStyles();this.style=this.style.reject(function(d){return d.value==b[d.key]});a.afterFinishInternal=function(d){d.element.addClassName(d.options.style);d.transforms.each(function(e){d.element.style[e.style]=""})}}}this.start(a)},setup:function(){function a(b){if(!b||["rgba(0, 0, 0, 0)","transparent"].include(b)){b="#ffffff"}b=b.parseColor();return $R(0,2).map(function(c){return parseInt(b.slice(c*2+1,c*2+3),16)})}this.transforms=this.style.map(function(g){var f=g[0],e=g[1],d=null;if(e.parseColor("#zzzzzz")!="#zzzzzz"){e=e.parseColor();d="color"}else{if(f=="opacity"){e=parseFloat(e);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)){this.element.setStyle({zoom:1})}}else{if(Element.CSS_LENGTH.test(e)){var c=e.match(/^([\+\-]?[0-9\.]+)(.*)$/);e=parseFloat(c[1]);d=(c.length==3)?c[2]:null}}}var b=this.element.getStyle(f);return{style:f.camelize(),originalValue:d=="color"?a(b):parseFloat(b||0),targetValue:d=="color"?a(e):e,unit:d}}.bind(this)).reject(function(b){return((b.originalValue==b.targetValue)||(b.unit!="color"&&(isNaN(b.originalValue)||isNaN(b.targetValue))))})},update:function(a){var d={},b,c=this.transforms.length;while(c--){d[(b=this.transforms[c]).style]=b.unit=="color"?"#"+(Math.round(b.originalValue[0]+(b.targetValue[0]-b.originalValue[0])*a)).toColorPart()+(Math.round(b.originalValue[1]+(b.targetValue[1]-b.originalValue[1])*a)).toColorPart()+(Math.round(b.originalValue[2]+(b.targetValue[2]-b.originalValue[2])*a)).toColorPart():(b.originalValue+(b.targetValue-b.originalValue)*a).toFixed(3)+(b.unit===null?"":b.unit)}this.element.setStyle(d,true)}});Effect.Transform=Class.create({initialize:function(a){this.tracks=[];this.options=arguments[1]||{};this.addTracks(a)},addTracks:function(a){a.each(function(b){b=$H(b);var c=b.values().first();this.tracks.push($H({ids:b.keys().first(),effect:Effect.Morph,options:{style:c}}))}.bind(this));return this},play:function(){return new Effect.Parallel(this.tracks.map(function(a){var d=a.get("ids"),c=a.get("effect"),b=a.get("options");var e=[$(d)||$$(d)].flatten();return e.map(function(f){return new c(f,Object.extend({sync:true},b))})}).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 b,a=$H();if(Prototype.Browser.WebKit){b=new Element("div",{style:this}).style}else{String.__parseStyleElement.innerHTML='<div style="'+this+'"></div>';b=String.__parseStyleElement.childNodes[0].style}Element.CSS_PROPERTIES.each(function(c){if(b[c]){a.set(c,b[c])}});if(Prototype.Browser.IE&&this.include("opacity")){a.set("opacity",this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1])}return a};if(document.defaultView&&document.defaultView.getComputedStyle){Element.getStyles=function(b){var a=document.defaultView.getComputedStyle($(b),null);return Element.CSS_PROPERTIES.inject({},function(c,d){c[d]=a[d];return c})}}else{Element.getStyles=function(b){b=$(b);var a=b.currentStyle,c;c=Element.CSS_PROPERTIES.inject({},function(d,e){d[e]=a[e];return d});if(!c.opacity){c.opacity=b.getOpacity()}return c}}Effect.Methods={morph:function(a,b){a=$(a);new Effect.Morph(a,Object.extend({style:b},arguments[2]||{}));return a},visualEffect:function(c,e,b){c=$(c);var d=e.dasherize().camelize(),a=d.charAt(0).toUpperCase()+d.substring(1);new Effect[a](c,b);return c},highlight:function(b,a){b=$(b);new Effect.Highlight(b,a);return b}};$w("fade appear grow shrink fold blindUp blindDown slideUp slideDown pulsate shake puff squish switchOff dropOut").each(function(a){Effect.Methods[a]=function(c,b){c=$(c);Effect[a.charAt(0).toUpperCase()+a.substring(1)](c,b);return c}});$w("getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles").each(function(a){Effect.Methods[a]=Element[a]});Element.addMethods(Effect.Methods);if(typeof Effect=="undefined"){throw ("controls.js requires including script.aculo.us' effects.js library")}var Autocompleter={};Autocompleter.Base=Class.create({baseInitialize:function(b,c,a){b=$(b);this.element=b;this.update=$(c);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(a)}else{this.options=a||{}}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(d,e){if(!e.style.position||e.style.position=="absolute"){e.style.position="absolute";Position.clone(d,e,{setHeight:false,offsetTop:d.offsetHeight})}Effect.Appear(e,{duration:0.15})};this.options.onHide=this.options.onHide||function(d,e){new Effect.Fade(e,{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(a){if(this.active){switch(a.keyCode){case Event.KEY_TAB:case Event.KEY_RETURN:this.selectEntry();Event.stop(a);case Event.KEY_ESC:this.hide();this.active=false;Event.stop(a);return;case Event.KEY_LEFT:case Event.KEY_RIGHT:return;case Event.KEY_UP:this.markPrevious();this.render();Event.stop(a);return;case Event.KEY_DOWN:this.markNext();this.render();Event.stop(a);return}}else{if(a.keyCode==Event.KEY_TAB||a.keyCode==Event.KEY_RETURN||(Prototype.Browser.WebKit>0&&a.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(b){var a=Event.findElement(b,"LI");if(this.index!=a.autocompleteIndex){this.index=a.autocompleteIndex;this.render()}Event.stop(b)},onClick:function(b){var a=Event.findElement(b,"LI");this.index=a.autocompleteIndex;this.selectEntry();this.hide()},onBlur:function(a){setTimeout(this.hide.bind(this),250);this.hasFocus=false;this.active=false},render:function(){if(this.entryCount>0){for(var a=0;a<this.entryCount;a++){this.index==a?Element.addClassName(this.getEntry(a),"selected"):Element.removeClassName(this.getEntry(a),"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(a){return this.update.firstChild.childNodes[a]},getCurrentEntry:function(){return this.getEntry(this.index)},selectEntry:function(){this.active=false;this.updateElement(this.getCurrentEntry())},updateElement:function(f){if(this.options.updateElement){this.options.updateElement(f);return}var d="";if(this.options.select){var a=$(f).select("."+this.options.select)||[];if(a.length>0){d=Element.collectTextNodes(a[0],this.options.select)}}else{d=Element.collectTextNodesIgnoreClass(f,"informal")}var c=this.getTokenBounds();if(c[0]!=-1){var e=this.element.value.substr(0,c[0]);var b=this.element.value.substr(c[0]).match(/^\s+/);if(b){e+=b[0]}this.element.value=e+d+this.element.value.substr(c[1])}else{this.element.value=d}this.oldElementValue=this.element.value;this.element.focus();if(this.options.afterUpdateElement){this.options.afterUpdateElement(this.element,f)}},updateChoices:function(c){if(!this.changed&&this.hasFocus){this.update.innerHTML=c;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 a=0;a<this.entryCount;a++){var b=this.getEntry(a);b.autocompleteIndex=a;this.addObservers(b)}}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(a){Event.observe(a,"mouseover",this.onHover.bindAsEventListener(this));Event.observe(a,"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 a=this.getTokenBounds();return this.element.value.substring(a[0],a[1]).strip()},getTokenBounds:function(){if(null!=this.tokenBounds){return this.tokenBounds}var e=this.element.value;if(e.strip().empty()){return[-1,0]}var f=arguments.callee.getFirstDifferencePos(e,this.oldElementValue);var h=(f==this.oldElementValue.length?1:0);var d=-1,c=e.length;var g;for(var b=0,a=this.options.tokens.length;b<a;++b){g=e.lastIndexOf(this.options.tokens[b],f+h-1);if(g>d){d=g}g=e.indexOf(this.options.tokens[b],f+h);if(-1!=g&&g<c){c=g}}return(this.tokenBounds=[d+1,c])}});Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos=function(c,a){var d=Math.min(c.length,a.length);for(var b=0;b<d;++b){if(c[b]!=a[b]){return b}}return d};Ajax.Autocompleter=Class.create(Autocompleter.Base,{initialize:function(c,d,b,a){this.baseInitialize(c,d,a);this.options.asynchronous=true;this.options.onComplete=this.onComplete.bind(this);this.options.defaultParams=this.options.parameters||null;this.url=b},getUpdatedChoices:function(){this.startIndicator();var a=encodeURIComponent(this.options.paramName)+"="+encodeURIComponent(this.getToken());this.options.parameters=this.options.callback?this.options.callback(this.element,a):a;if(this.options.defaultParams){this.options.parameters+="&"+this.options.defaultParams}new Ajax.Request(this.url,this.options)},onComplete:function(a){this.updateChoices(a.responseText)}});Autocompleter.Local=Class.create(Autocompleter.Base,{initialize:function(b,d,c,a){this.baseInitialize(b,d,a);this.options.array=c},getUpdatedChoices:function(){this.updateChoices(this.options.selector(this))},setOptions:function(a){this.options=Object.extend({choices:10,partialSearch:true,partialChars:2,ignoreCase:true,fullSearch:false,selector:function(b){var d=[];var c=[];var h=b.getToken();var g=0;for(var e=0;e<b.options.array.length&&d.length<b.options.choices;e++){var f=b.options.array[e];var j=b.options.ignoreCase?f.toLowerCase().indexOf(h.toLowerCase()):f.indexOf(h);while(j!=-1){if(j==0&&f.length!=h.length){d.push("<li><strong>"+f.substr(0,h.length)+"</strong>"+f.substr(h.length)+"</li>");break}else{if(h.length>=b.options.partialChars&&b.options.partialSearch&&j!=-1){if(b.options.fullSearch||/\s/.test(f.substr(j-1,1))){c.push("<li>"+f.substr(0,j)+"<strong>"+f.substr(j,h.length)+"</strong>"+f.substr(j+h.length)+"</li>");break}}}j=b.options.ignoreCase?f.toLowerCase().indexOf(h.toLowerCase(),j+1):f.indexOf(h,j+1)}}if(c.length){d=d.concat(c.slice(0,b.options.choices-d.length))}return"<ul>"+d.join("")+"</ul>"}},a||{})}});Field.scrollFreeActivate=function(a){setTimeout(function(){Field.activate(a)},1)};Ajax.InPlaceEditor=Class.create({initialize:function(c,b,a){this.url=b;this.element=c=$(c);this.prepareOptions();this._controls={};arguments.callee.dealWithDeprecatedOptions(a);Object.extend(this.options,a||{});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(a){if(!this._editing||a.ctrlKey||a.altKey||a.shiftKey){return}if(Event.KEY_ESC==a.keyCode){this.handleFormCancellation(a)}else{if(Event.KEY_RETURN==a.keyCode){this.handleFormSubmission(a)}}},createControl:function(g,c,b){var e=this.options[g+"Control"];var f=this.options[g+"Text"];if("button"==e){var a=document.createElement("input");a.type="submit";a.value=f;a.className="editor_"+g+"_button";if("cancel"==g){a.onclick=this._boundCancelHandler}this._form.appendChild(a);this._controls[g]=a}else{if("link"==e){var d=document.createElement("a");d.href="#";d.appendChild(document.createTextNode(f));d.onclick="cancel"==g?this._boundCancelHandler:this._boundSubmitHandler;d.className="editor_"+g+"_link";if(b){d.className+=" "+b}this._form.appendChild(d);this._controls[g]=d}}},createEditField:function(){var c=(this.options.loadTextURL?this.options.loadingText:this.getText());var b;if(1>=this.options.rows&&!/\r|\n/.test(this.getText())){b=document.createElement("input");b.type="text";var a=this.options.size||this.options.cols||0;if(0<a){b.size=a}}else{b=document.createElement("textarea");b.rows=(1>=this.options.rows?this.options.autoRows:this.options.rows);b.cols=this.options.cols||40}b.name=this.options.paramName;b.value=c;b.className="editor_field";if(this.options.submitOnBlur){b.onblur=this._boundSubmitHandler}this._controls.editor=b;if(this.options.loadTextURL){this.loadExternalText()}this._form.appendChild(this._controls.editor)},createForm:function(){var b=this;function a(d,e){var c=b.options["text"+d+"Controls"];if(!c||e===false){return}b._form.appendChild(document.createTextNode(c))}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)}a("Before",this.options.okControl||this.options.cancelControl);this.createControl("ok",this._boundSubmitHandler);a("Between",this.options.okControl&&this.options.cancelControl);this.createControl("cancel",this._boundCancelHandler,"editor_cancel");a("After",this.options.okControl||this.options.cancelControl)},destroy:function(){if(this._oldInnerHTML){this.element.innerHTML=this._oldInnerHTML}this.leaveEditMode();this.unregisterListeners()},enterEditMode:function(a){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(a){Event.stop(a)}},enterHover:function(a){if(this.options.hoverClassName){this.element.addClassName(this.options.hoverClassName)}if(this._saving){return}this.triggerCallback("onEnterHover")},getText:function(){return this.element.innerHTML.unescapeHTML()},handleAJAXFailure:function(a){this.triggerCallback("onFailure",a);if(this._oldInnerHTML){this.element.innerHTML=this._oldInnerHTML;this._oldInnerHTML=null}},handleFormCancellation:function(a){this.wrapUp();if(a){Event.stop(a)}},handleFormSubmission:function(d){var b=this._form;var c=$F(this._controls.editor);this.prepareSubmission();var f=this.options.callback(b,c)||"";if(Object.isString(f)){f=f.toQueryParams()}f.editorId=this.element.id;if(this.options.htmlResponse){var a=Object.extend({evalScripts:true},this.options.ajaxOptions);Object.extend(a,{parameters:f,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Updater({success:this.element},this.url,a)}else{var a=Object.extend({method:"get"},this.options.ajaxOptions);Object.extend(a,{parameters:f,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Request(this.url,a)}if(d){Event.stop(d)}},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(a){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 a=Object.extend({method:"get"},this.options.ajaxOptions);Object.extend(a,{parameters:"editorId="+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(c){this._form.removeClassName(this.options.loadingClassName);var b=c.responseText;if(this.options.stripLoadedTextTags){b=b.stripTags()}this._controls.editor.value=b;this._controls.editor.disabled=false;this.postProcessEditField()}.bind(this),onFailure:this._boundFailureHandler});new Ajax.Request(this.options.loadTextURL,a)},postProcessEditField:function(){var a=this.options.fieldPostCreation;if(a){$(this._controls.editor)["focus"==a?"focus":"activate"]()}},prepareOptions:function(){this.options=Object.clone(Ajax.InPlaceEditor.DefaultOptions);Object.extend(this.options,Ajax.InPlaceEditor.DefaultCallbacks);[this._extraDefaultOptions].flatten().compact().each(function(a){Object.extend(this.options,a)}.bind(this))},prepareSubmission:function(){this._saving=true;this.removeForm();this.leaveHover();this.showSaving()},registerListeners:function(){this._listeners={};var a;$H(Ajax.InPlaceEditor.Listeners).each(function(b){a=this[b.value].bind(this);this._listeners[b.key]=a;if(!this.options.externalControlOnly){this.element.observe(b.key,a)}if(this.options.externalControl){this.options.externalControl.observe(b.key,a)}}.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(b,a){if("function"==typeof this.options[b]){this.options[b](this,a)}},unregisterListeners:function(){$H(this._listeners).each(function(a){if(!this.options.externalControlOnly){this.element.stopObserving(a.key,a.value)}if(this.options.externalControl){this.options.externalControl.stopObserving(a.key,a.value)}}.bind(this))},wrapUp:function(a){this.leaveEditMode();this._boundComplete(a,this.element)}});Object.extend(Ajax.InPlaceEditor.prototype,{dispose:Ajax.InPlaceEditor.prototype.destroy});Ajax.InPlaceCollectionEditor=Class.create(Ajax.InPlaceEditor,{initialize:function($super,c,b,a){this._extraDefaultOptions=Ajax.InPlaceCollectionEditor.DefaultOptions;$super(c,b,a)},createEditField:function(){var a=document.createElement("select");a.name=this.options.paramName;a.size=1;this._controls.editor=a;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(b){this._controls.editor.disabled=true;var a=this._controls.editor.firstChild;if(!a){a=document.createElement("option");a.value="";this._controls.editor.appendChild(a);a.selected=true}a.update((b||"").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 a=Object.extend({method:"get"},this.options.ajaxOptions);Object.extend(a,{parameters:"editorId="+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(b){this._text=b.responseText.strip();this.buildOptionList()}.bind(this),onFailure:this.onFailure});new Ajax.Request(this.options.loadTextURL,a)},buildOptionList:function(){this._form.removeClassName(this.options.loadingClassName);this._collection=this._collection.map(function(d){return 2===d.length?d:[d,d].flatten()});var b=("value" in this.options)?this.options.value:this._text;var a=this._collection.any(function(d){return d[0]==b}.bind(this));this._controls.editor.update("");var c;this._collection.each(function(e,d){c=document.createElement("option");c.value=e[0];c.selected=a?e[0]==b:0==d;c.appendChild(document.createTextNode(e[1]));this._controls.editor.appendChild(c)}.bind(this));this._controls.editor.disabled=false;Field.scrollFreeActivate(this._controls.editor)}});Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions=function(a){if(!a){return}function b(c,d){if(c in a||d===undefined){return}a[c]=d}b("cancelControl",(a.cancelLink?"link":(a.cancelButton?"button":a.cancelLink==a.cancelButton==false?false:undefined)));b("okControl",(a.okLink?"link":(a.okButton?"button":a.okLink==a.okButton==false?false:undefined)));b("highlightColor",a.highlightcolor);b("highlightEndColor",a.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(a){return Form.serialize(a)},onComplete:function(b,a){new Effect.Highlight(a,{startcolor:this.options.highlightColor,keepBackgroundImage:true})},onEnterEditMode:null,onEnterHover:function(a){a.element.style.backgroundColor=a.options.highlightColor;if(a._effect){a._effect.cancel()}},onFailure:function(b,a){alert("Error communication with the server: "+b.responseText.stripTags())},onFormCustomization:null,onLeaveEditMode:null,onLeaveHover:function(a){a._effect=new Effect.Highlight(a.element,{startcolor:a.options.highlightColor,endcolor:a.options.highlightEndColor,restorecolor:a._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(b,a,c){this.delay=a||0.5;this.element=$(b);this.callback=c;this.timer=null;this.lastValue=$F(this.element);Event.observe(this.element,"keyup",this.delayedListener.bindAsEventListener(this))},delayedListener:function(a){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))}});var alertDialog=Class.create({initialize:function(d){var c=d.src;var b=d.message;var a=d.sec;this.dialog=new Element("div",{"class":"actionpopup notification",style:"cursor:pointer"});this.dialog.update("<center><h2>"+b+"</h2></center>");document.body.appendChild(this.dialog);showPopip(c,this.dialog);this.closeOnClick.bindAsEventListener(this).delay(0.5);if(a){this.click.bindAsEventListener(this).delay(a)}},closeOnClick:function(){document.observe("click",this.click.bindAsEventListener(this))},click:function(a){if(this.dialog&&this.dialog.parentNode){this.dialog.parentNode.removeChild(this.dialog);this.dialog=null;document.stopObserving("click")}}});var Feedbacker=Class.create({initialize:function(c){var b=Object.extend({feedBackDivId:null},c||{});this.options=b;var a=c.sec;if(a){this.close.bindAsEventListener(this).delay(a)}},close:function(a){$(this.options.feedBackDivId).hide()},error:function(a){return this.feedback(a,"error_message")},feedback:function(b,a){$(this.options.feedBackDivId).removeClassName("error_message");$(this.options.feedBackDivId).removeClassName("success_message");$(this.options.feedBackDivId).addClassName(a);$(this.options.feedBackDivId).update("<strong>"+b.strip()+"</strong>");if($(this.options.feedBackDivId).visible()){Effect.Pulsate($(this.options.feedBackDivId))}else{Effect.Appear($(this.options.feedBackDivId))}return $(this.options.feedBackDivId)},success:function(a){return this.feedback(a,"success_message")}});var OpenIDProviders={openid:{name:"OpenID",label:"Введите Ваш OpenID.",url:"http://"},yandex:{name:"Yandex",url:"http://yandex.ru"},google:{name:"Google",url:"https://www.google.com/accounts/o8/id"},yahoo:{name:"Yahoo",url:"http://yahoo.com/"},myopenid:{name:"MyOpenID",label:"Ваш MyOpenID логин",url:"http://{username}.myopenid.com/"},livejournal:{name:"LiveJournal",label:"Ваш Livejournal логин",url:"http://{username}.livejournal.com/"},technorati:{name:"Technorati",label:"Ваш Technorati логин",url:"http://technorati.com/people/technorati/{username}/"},wordpress:{name:"Wordpress",label:"Ваш Wordpress.com логин",url:"http://{username}.wordpress.com/"},verisign:{name:"Verisign",label:"Ваш Verisign логин",url:"http://{username}.pip.verisignlabs.com/"},vidoop:{name:"Vidoop",label:"Ваш Vidoop логин",url:"http://{username}.myvidoop.com/"},verisign:{name:"Verisign",label:"Ваш Verisign логин",url:"http://{username}.pip.verisignlabs.com/"},claimid:{name:"ClaimID",label:"Ваш ClaimID логин",url:"http://claimid.com/{username}"},aol:{name:"AOL",label:"Введите Ваш AOL логин",url:"http://openid.aol.com/{username}"}};var OpenIDProvidersMini={openid:OpenIDProviders.openid,yandex:OpenIDProviders.yandex,google:OpenIDProviders.google,yahoo:OpenIDProviders.yahoo,myopenid:OpenIDProviders.myopenid,livejournal:OpenIDProviders.livejournal};var OpenIDSelector=Class.create({initialize:function(a){this.placeholder=a.placeholder;this.providers=$H(a.providers);this.identifierName=a.identifierName;this.formName=a.formName;this.formAction=a.formAction;this.initUI()},initUI:function(){this.form=new Element("form",{"class":"openidSelector",name:this.formName,action:this.formAction});this.hiddenIdentifier=new Element("input",{type:"hidden",name:this.identifierName});this.form.appendChild(this.hiddenIdentifier);this.form.observe("submit",this.setURL.bind(this));this.buttonsDiv=new Element("div",{"class":"buttons"});this.form.appendChild(this.buttonsDiv);this.inputArea=new Element("div",{"class":"inputArea"});this.form.appendChild(this.inputArea);this.inputLabel=new Element("div",{"class":"inputLabel"}).update("Введите URL авторизации");this.input=new Element("input",{type:"text",value:"http://","class":"identifier"});this.submit=new Element("input",{type:"submit",value:"Войти"});this.inputArea.appendChild(this.inputLabel);this.inputArea.appendChild(this.input);this.inputArea.appendChild(this.submit);this.placeholder.appendChild(this.form);this.providers.each(function(b){var a=new Element("a",{href:"javascript:void(0)","class":b.key,title:b.key});a.observe("click",this.signIn.bindAsEventListener(this,b.value,a));this.buttonsDiv.appendChild(a)}.bind(this))},setURL:function(){this.submit.disable();if(this.selectedProvider){this.hiddenIdentifier.value=this.selectedProvider.url.replace("{username}",this.input.value)}else{this.hiddenIdentifier.value=this.input.value}return true},signIn:function(b,c,a){this.selectedProvider=c;this.buttonsDiv.select("a").each(function(d){d.removeClassName("selected")});a.addClassName("selected");this.inputLabel.update(c.label?c.label:"");this.input.value=c.url.include("{username}")?"":c.url;this.input.focus();if(!c.label){this.setURL();this.form.submit()}}});function showPopip(d,b){var c=$(d).cumulativeOffset();$(b).setOpacity(0);$(b).style.display="block";b.style.left=c[0]+"px";b.style.top=(c[1]+$(d).offsetHeight)+"px";new Effect.Opacity($(b),{from:0,to:0.99,duration:0.5});var a=$(b).down("#close");if(a){a.observe("click",function(){$(b).hide()})}}var UserNameChecker=Class.create({initialize:function(a){this.element=a.element;this.checkbutton=new Element("input",{type:"button",value:"проверить"});this.element.insert({after:this.checkbutton});this.checkbutton.observe("click",this.checkUserName.bindAsEventListener(this))},checkUserName:function(){if(!this.element.value.strip()){new Feedbacker({feedBackDivId:"feedback"}).error("Пожалуйста, введите имя пользователя!");return}new Ajax.Request("/register/check/",{parameters:"userName="+encodeURIComponent(this.element.value.strip()),onSuccess:function(a){new Feedbacker({feedBackDivId:"feedback"}).success("Поздравляем, такое имя свободно!")},onFailure:function(a){new Feedbacker({feedBackDivId:"feedback"}).error(a.responseText)}})}});var TagPrefs=Class.create({initialize:function(m){var e=new Element("div");var a=new Element("h2",{"class":"highlight"}).update("Интересующие теги");var c=new Element("input",{type:"text",name:"tags"});var d=new Element("div",{"class":"autocomplete",id:"interestedAuto"});this.interestedWrapper=new Element("div",{id:"interestedTagsWrapper"});var b=new Element("a",{href:"javascript:void(0)","class":"addlink"});var k=new Element("h2",{"class":"highlight"}).update("Игнорировать теги");this.ignoredWrapper=new Element("div",{id:"ignoredTagsWrapper"});var j=new Element("input",{type:"text",name:"tags"});var l=new Element("div",{"class":"autocomplete",id:"ignoredAuto"});var i=new Element("a",{href:"javascript:void(0)","class":"addlink"});e.appendChild(a);e.appendChild(this.interestedWrapper);e.appendChild(c);e.appendChild(d);e.appendChild(b);e.appendChild(k);e.appendChild(this.ignoredWrapper);e.appendChild(j);e.appendChild(l);e.appendChild(i);$(m.placeholder).appendChild(e);new Ajax.Autocompleter(c,d,"/tags/suggest",{tokens:[" "],minChars:1});new Ajax.Autocompleter(j,l,"/tags/suggest",{tokens:[" "],minChars:1});var h=this;c.observe("keypress",function(n){if(n.keyCode==Event.KEY_RETURN){h.addTag(n,h.interestedWrapper,c,true)}});b.observe("click",this.addTag.bindAsEventListener(this,this.interestedWrapper,c,true));i.observe("click",this.addTag.bindAsEventListener(this,this.ignoredWrapper,j,true));j.observe("keypress",function(n){if(n.keyCode==Event.KEY_RETURN){h.addTag(n,h.ignoredWrapper,j,true)}});var g=m.interested;g.each(function(n){if(n){h.addTag(null,h.interestedWrapper,new Element("input",{type:"text",value:n}),false)}});this.applyPrefs(h.interestedWrapper);var f=m.ignored;f.each(function(n){if(n){h.addTag(null,h.ignoredWrapper,new Element("input",{type:"text",value:n}),false)}});this.applyPrefs(h.ignoredWrapper)},addTag:function(f,a,g,i){if(!$(g).value.strip()){return}var b=new Element("div",{style:"float:left;margin-right:5px;"});var j=new Element("a",{"class":"boxtag",href:"/tagged/"+encodeURIComponent(g.value)}).update(g.value);var c=new Element("a",{"class":"deltag"});var h=this;c.observe("click",function(){var k=h.transform(j.innerHTML);$$(k).each(function(n){var m=(a==h.interestedWrapper?"interesting":"ignored");var l=n.up(".e-prev");if(l){l.removeClassName(m)}});j.parentNode.removeChild(c);j.parentNode.removeChild(j);var e=(a==h.interestedWrapper?"removeinterest":"removeignored");new Ajax.Request("/settings/"+e,{parameters:"value="+encodeURIComponent(j.innerHTML)})});b.appendChild(j);b.appendChild(c);a.appendChild(b);if(i){this.applyPrefs(a)}if(f){var d=(a==h.interestedWrapper?"addinterest":"addignored");new Ajax.Request("/settings/"+d,{parameters:"value="+encodeURIComponent(g.value)})}g.value=""},applyPrefs:function(c){var b=this;var a=c.select(".boxtag");a.each(function(d,e){var f=this.transform(d.innerHTML);$$(f).each(function(i){var h=(c==b.interestedWrapper?"interesting":"ignored");var g=i.up(".e-prev");if(g){g.addClassName(h)}})},this)},transform:function(a){a=a.replace("+","P_X_S");a=a.replace("#","S_X_P");a=a.replace("!","E_X_N");a=a.replace("-","D_X_H");a=a.replace(".","D_X_T");return".ttt-"+a}});var Tooltip=Class.create({initialize:function(c,b){var a=Object.extend({default_css:false,margin:"0px",padding:"5px",backgroundColor:"#d6d6fc",min_distance_x:5,min_distance_y:5,delta_x:0,delta_y:0,zindex:1000},arguments[2]||{});this.element=$(c);this.options=a;if($(b)){this.tool_tip=$(b)}else{this.tool_tip=$(document.createElement("div"));document.body.appendChild(this.tool_tip);this.tool_tip.addClassName("tooltip");this.tool_tip.appendChild(document.createTextNode(b))}this.tool_tip.hide();this.eventMouseOver=this.showTooltip.bindAsEventListener(this);this.eventMouseOut=this.hideTooltip.bindAsEventListener(this);this.eventMouseMove=this.moveTooltip.bindAsEventListener(this);this.registerEvents()},destroy:function(){Event.stopObserving(this.element,"mouseover",this.eventMouseOver);Event.stopObserving(this.element,"mouseout",this.eventMouseOut);Event.stopObserving(this.element,"mousemove",this.eventMouseMove)},registerEvents:function(){Event.observe(this.element,"mouseover",this.eventMouseOver);Event.observe(this.element,"mouseout",this.eventMouseOut);Event.observe(this.element,"mousemove",this.eventMouseMove)},moveTooltip:function(e){Event.stop(e);var b=Event.pointerX(e);var a=Event.pointerY(e);var d=Element.getDimensions(this.tool_tip);var c=d.width;var f=d.height;if((c+b)>=(this.getWindowWidth()-this.options.min_distance_x)){b=b-c;b=b-this.options.min_distance_x}else{b=b+this.options.min_distance_x}if((f+a)>=(this.getWindowHeight()-this.options.min_distance_y)){a=a-f;a=a-this.options.min_distance_y}else{a=a+this.options.min_distance_y}this.setStyles(b,a)},showTooltip:function(a){Event.stop(a);this.moveTooltip(a);new Element.show(this.tool_tip)},setStyles:function(a,b){Element.setStyle(this.tool_tip,{position:"absolute",top:b+this.options.delta_y+"px",left:a+this.options.delta_x+"px",zindex:this.options.zindex});if(this.options.default_css){Element.setStyle(this.tool_tip,{margin:this.options.margin,padding:this.options.padding,backgroundColor:this.options.backgroundColor,zindex:this.options.zindex})}},hideTooltip:function(a){new Element.hide(this.tool_tip)},getWindowHeight:function(){var a;if(navigator.appVersion.indexOf("MSIE")>0){a=document.body.clientHeight}else{a=window.innerHeight}return a},getWindowWidth:function(){var a;if(navigator.appVersion.indexOf("MSIE")>0){a=document.body.clientWidth}else{a=window.innerWidth}return a}});(function(){var a={insertTag:function(h,e,k,j){h.clearDefaultValue();var n=h;var c=n.scrollTop;if(document.selection){n.focus();var d=document.selection.createRange();var f=document.selection.createRange();var o=d.text;if(!o&&j){o=j}d.text=" "+e+o.strip()+k+" ";d.move("character",f.text.length);d.select();n.scrollTop=c}else{var i=n.value.length;var b=n.selectionStart;var g=n.selectionEnd;var d=n.value.substring(b,g);var l=g;if(!d&&j){d=j}var m=e+d+k;n.value=n.value.substring(0,b)+m+n.value.substring(g,i);if(b!=g){l+=e.length+k.length}else{l=b+e.length}n.selectionStart=l;n.selectionEnd=l;n.scrollTop=c;n.focus()}},insertText:function(g,j){g.clearDefaultValue();var i=g;var c=i.scrollTop;if(document.selection){i.focus();var e=document.selection.createRange();var d=document.selection.createRange();d.text=d.text+j;d.move("character",e.text.length);d.select();i.scrollTop=c}else{if(i.selectionStart||i.selectionStart=="0"){var b=i.selectionStart;var f=i.selectionEnd;var h=f;var c=i.scrollTop;i.value=i.value.substring(0,f)+j+i.value.substring(f,i.value.length);h+=j.length;i.selectionStart=h;i.selectionEnd=h;i.scrollTop=c}}}};$w("textarea").each(function(b){Element.addMethods(b,a)})})();var abstractButton=Class.create({initialize:function(a){var a=Object.extend({},a||{});this.cssClass=a.cssClass;this.textControl=a.textControl;this.element=a.element||this.createButtonElement();this.toolbar=a.toolbar},createButtonElement:function(){return null},getElement:function(){return this.element}});var tagButton=Class.create(abstractButton,{initialize:function($super,a){this.label=a.label;$super(a);this.tagStart=a.tagStart;this.tagEnd=a.tagEnd;this.element.observe("click",this.clickButton.bindAsEventListener(this))},clickButton:function(){this.textControl.insertTag(this.tagStart,this.tagEnd)},createButtonElement:function(){var a=new Element("a",{href:"javascript:void(0)","class":this.cssClass});if(this.label!=undefined){a.update(this.label)}return a}});var listButton=Class.create(abstractButton,{initialize:function($super,a){this.options=a.options;$super(a);this.element.observe("change",this.clickButton.bindAsEventListener(this))},createButtonElement:function(){var a=new Element("select",{"class":this.cssClass});this.options.each(function(c,b){a.options[b]=new Option(c.label,c.name)});return a},clickButton:function(){if(this.element.selectedIndex>0){var a=this.options[this.element.selectedIndex];if(a.tagStart&&a.tagEnd){this.textControl.insertTag(a.tagStart,a.tagEnd)}this.element.selectedIndex=0}}});var inputButton=Class.create(tagButton,{initialize:function($super,a){$super(a);this.hintText=a.hintText},clickButton:function(){var a=prompt(this.hintText,"http://");if(a){this.textControl.insertTag(new Template(this.tagStart).evaluate({"0":a}),this.tagEnd,a)}}});var buttonSetSimple=[{cssClass:"tb_list_header",handler:listButton,options:[{name:"dummy",label:"Заголовок"},{name:"h2",label:"H2",tagStart:"<h2>",tagEnd:"</h2>"},{name:"h3",label:"H3",tagStart:"<h3>",tagEnd:"</h3>"},{name:"h4",label:"H4",tagStart:"<h4>",tagEnd:"</h4>"},{name:"h5",label:"H5",tagStart:"<h5>",tagEnd:"</h5>"}]},{cssClass:"tb_b",handler:tagButton,tagStart:"<b>",tagEnd:"</b>",label:"B"},{cssClass:"tb_i",handler:tagButton,tagStart:"<i>",tagEnd:"</i>",label:"I"},{cssClass:"tb_s",handler:tagButton,tagStart:"<s>",tagEnd:"</s>",label:"S"},{cssClass:"tb_u",handler:tagButton,tagStart:"<u>",tagEnd:"</u>",label:"U"},{cssClass:"tb_ol",handler:tagButton,tagStart:"\n<ol>\n<li>",tagEnd:"\n</li>\n</ol>\n"},{cssClass:"tb_ul",handler:tagButton,tagStart:"\n<ul>\n<li>\n",tagEnd:"\n</li>\n</ul>\n"},{cssClass:"tb_li",handler:tagButton,tagStart:"\n<li>",tagEnd:"\n</li>"},{cssClass:"tb_link",handler:inputButton,tagStart:" <a href='#{0}'>",tagEnd:"</a> ",hintText:"Введите URL"}];var buttonSetExtended=buttonSetSimple.clone();buttonSetExtended[buttonSetExtended.length]={cssClass:"tb_list_code",handler:listButton,options:[{name:"dummy",label:"Исходный код"},{name:"java",label:"JAVA",tagStart:'<code lang="java">\n',tagEnd:"\n</code>"},{name:"php",label:"PHP",tagStart:'<code lang="php">\n',tagEnd:"\n</code>"},{name:"Javascript",label:"Javascript",tagStart:'<code lang="Javascript">\n',tagEnd:"\n</code>"},{name:"Perl",label:"Perl",tagStart:'<code lang="Perl">\n',tagEnd:"\n</code>"},{name:"Python",label:"Python",tagStart:'<code lang="Python">\n',tagEnd:"\n</code>"},{name:"C++",label:"C++",tagStart:'<code lang="cpp">\n',tagEnd:"\n</code>"},{name:"C#",label:"C#",tagStart:'<code lang="csharp">\n',tagEnd:"\n</code>"},{name:"Cqt",label:"C++(QT)",tagStart:'<code lang="cpp-qt">\n',tagEnd:"\n</code>"},{name:"MySQL",label:"MySQL",tagStart:'<code lang="MySQL">\n',tagEnd:"\n</code>"},{name:"SQL",label:"SQL",tagStart:'<code lang="SQL">\n',tagEnd:"\n</code>"},{name:"HTML",label:"HTML",tagStart:'<code lang="html4strict">\n',tagEnd:"\n</code>"},{name:"CSS",label:"CSS",tagStart:'<code lang="CSS">\n',tagEnd:"\n</code>"},{name:"XML",label:"XML",tagStart:'<code lang="XML">\n',tagEnd:"\n</code>"},{name:"ini",label:"ini файлы",tagStart:'<code lang="ini">\n',tagEnd:"\n</code>"},{name:"Ruby",label:"Ruby",tagStart:'<code lang="Ruby">\n',tagEnd:"\n</code>"},{name:"other",label:"Другой(см. Помощь)",tagStart:'<code lang="yourlanghere">\n',tagEnd:"\n</code>"}]};var editorPreview=Class.create(tagButton,{initialize:function($super,a){this.editor=$(a.textControl);this.div=new Element("div",{"class":"previewText"});this.editor.insert({after:this.div});new Form.Element.Observer(this.editor,0.4,this.changedText.bindAsEventListener(this))},changedText:function(a,b){this.div.update(this.prepareText(this.editor.strip()))},prepareText:function(f){var e=/[\[\<]code\s*(lang|language)\=[\"\'](\w+)[\"\'][\]\>]([\D\S]+?)[\[\<]\/code[\]\>]/gi;var a="CODECODECODE";var b=f.match(e);if(b!=null){for(var d=0;d<b.length;d++){var c=b[d];f=f.replace(c,a)}}f=f.replace(/\r/g,"").replace(/\n/g,"<br/>");if(b!=null){for(var d=0;d<b.length;d++){var c=b[d];code=c.substring(c.indexOf(">")+1);code=code.substring(0,code.lastIndexOf("</"));f=f.replace(a,'<pre class="code">'+code.escapeHTML()+"</pre>")}}return f}});var toolBar=Class.create({initialize:function(a){this.textControl=a.textControl;this.buttonSet=a.buttonSet;this.buildUI()},buildUI:function(){var c=new Element("div",{"class":"edittoolbar"});var b=this.textControl;var a=this;this.buttonSet.each(function(d){Object.extend(d,{textControl:b,toolbar:a});var e=new d.handler(d);c.appendChild(e.getElement())});this.textControl.insert({before:c});this.wrapper=c}});var attachLibrary=Class.create({initialize:function(a){this.textControl=a.textControl;this.buttonSet=a.buttonSet;this.libraryClass=a.libraryClass||SelectableLibrary;this.uploaderClass=a.uploaderClass||IVV.SelectableUploader;this.buildUI()},buildUI:function(){this.div=new Element("div",{"class":"attachLibrary"});var a=new Element("a",{href:"javascript:void(0)","class":"attachImagesLink"});a.innerHTML="Загрузить изображения";this.div.appendChild(a);this.textControl.insert({after:this.div});a.observe("click",this.toggleLibrary.bindAsEventListener(this))},toggleLibrary:function(){if(this.libraryPlaceholder){this.libraryPlaceholder.toggle()}else{this.libraryPlaceholder=new Element("div",{style:"clear:both; width:100%;"});var d=new Element("ul",{"class":"nav_tabs small",style:"margin-left:10px;"});d.appendChild(new Element("li",{"class":"active"})).appendChild(new Element("a",{id:"tab_upload"}).update("Загрузить"));d.appendChild(new Element("li")).appendChild(new Element("a",{id:"tab_browse"}).update("Библиотека"));this.libraryPlaceholder.appendChild(d);var a=new Element("div",{style:"clear:both;float:left; width:95%; border:1px solid #515656;margin:5px;margin-top:0;background-color:#CCCCCC;"});this.libraryPlaceholder.appendChild(a);this.fileUploadDiv=this.buildUploaderUI();a.appendChild(this.fileUploadDiv);var b=new Tabs({tabs:d.select("a")});var c=this;b.onChangeTab=function(e,f){switch(f.id){case"tab_browse":e.up("li").removeClassName("active");f.up("li").addClassName("active");c.fileUploadDiv.hide();if(!this.imageLibrary){this.imageLibraryPlaceHolder=$(new Element("div",{"class":"libraryPlaceHolder"}));a.appendChild(this.imageLibraryPlaceHolder);this.imageLibrary=new c.libraryClass({editor:c.textControl,placeholder:this.imageLibraryPlaceHolder,limit:14})}else{this.imageLibraryPlaceHolder.show()}return true;break;case"tab_upload":this.imageLibraryPlaceHolder.hide();c.fileUploadDiv.show();e.up("li").removeClassName("active");f.up("li").addClassName("active");return true;break}};this.div.appendChild(this.libraryPlaceholder)}},buildUploaderUI:function(){var a=new Element("div",{style:"clear:both; float:left;background-color:white; width:100%"});var f=new Element("div",{id:"uploadPlaceHolder2"});var b=new Element("div",{id:"placeholder2sidebar"});f.appendChild(b);var e=new Element("div",{id:"fileselector",style:"float: left;"});var d=new Element("div",{id:"uploadstarter",style:"display: none;float: left;"});b.appendChild(e);b.appendChild(d);a.appendChild(f);var c=new Element("div",{id:"upload2queue",style:"width:98%;"});a.appendChild(c);this.imageUploader=new this.uploaderClass({editor:this.textControl,placeholder:f,placeHolders:{buttons:e,queueElement:c,startUpload:d,enableSelect:false}});return a}});var IvvToolTip=Class.create(Tooltip,{showTooltip:function($super,a){$$("div.tooltip").each(function(b){b.hide()});$super(a)}});var ImageLibrary=Class.create({initialize:function(a){this.placeholder=a.placeholder;this.limit=a.limit;this.initControls();this.loadFiles();this.next=null;this.prev=null;this.current=0;this.firstItemNumber=null;this.lastItemNumber=null;this.totalItemCount=null;this.pageCount=null;this.handlers=a.handlers||{};this.fileNameSearch=""},initControls:function(){this.searchText=new Element("input",{type:"text",id:"search"});var b=new Element("input",{type:"Button",value:"Искать"});var c=new Element("input",{type:"Button",value:"Очистить"});var d=new Element("div",{id:"searchbar"});d.appendChild(this.searchText);d.appendChild(b);d.appendChild(c);this.pager=new Element("div",{id:"pager"});var a=new Element("div",{id:"toolbar"});a.appendChild(d);a.appendChild(this.pager);this.placeholder.appendChild(a);this.fileList=new Element("div",{id:"fileList","class":"fileList"});this.placeholder.appendChild(this.fileList);$(c).observe("click",function(){this.initDefaults();this.searchText.value="";this.fileNameSearch=this.searchText.value;this.loadFiles()}.bind(this));$(b).observe("click",function(){this.fileNameSearch=this.searchText.value;this.loadFiles()}.bind(this))},initDefaults:function(){this.next=0;this.prev=0;this.current=0;this.firstItemNumber=0;this.lastItemNumber=0;this.totalItemCount=0;this.pageCount=0},fileLoaded:function(b){var g=new Element("div",{id:"fileItem","class":"fileItem"});var e=new Element("img",{id:"thumb",src:b.thumbUrl,width:"80",height:"80"});var f=new Element("a",{href:"javascript:void(0)",id:"deleteIcon"});var j=new Element("img",{src:"/resources/images/delete16x16.png"});f.appendChild(j);var a=new Element("div",{"class":"tooltip",style:"display:none"});var d=new Image;d.src=b.smallUrl;a.appendChild(d);document.body.appendChild(a);var i=new IvvToolTip(g,a);var h=this;f.observe("click",function(){i.destroy();a.parentNode.removeChild(a);new Ajax.Request("/imagelibrary/delete",{parameters:"&fileId="+b.uniqid,onSuccess:function(k){h.loadFiles()},onFailure:function(k){alert("error "+k.status+" -- "+k.statusText)}})}.bind(this));g.appendChild(e);g.appendChild(f);var c=new Element("div",{id:"fileName"});c.innerHTML=b.name;g.appendChild(c);this.fileList.appendChild(g);return g},adjustPaging:function(a){this.initDefaults();if(a){this.next=a.next;this.prev=a.previous;this.current=a.current;this.firstItemNumber=a.firstItemNumber;this.lastItemNumber=a.lastItemNumber;this.totalItemCount=a.totalItemCount;this.pageCount=a.pageCount}this.redrawPager()},redrawPager:function(){this.pager.innerHTML="";var d=new Element("span",{});d.innerHTML=this.firstItemNumber+" - "+this.lastItemNumber+" из "+this.totalItemCount;this.pager.appendChild(d);var b=this.prev==null?new Element("span",{"class":"disabled"}):new Element("a",{href:"javascript:void(0)"});b.innerHTML="Раньше";this.pager.appendChild(b);if(this.prev!=null){$(b).observe("click",function(){c.current=c.current-1;c.loadFiles()})}var a=this.next==null?new Element("span",{"class":"disabled"}):new Element("a",{href:"javascript:void(0)"});a.innerHTML="Дальше";this.pager.appendChild(a);var c=this;if(this.next!=null){$(a).observe("click",function(){c.current=c.current+1;c.loadFiles()})}},loadFiles:function(){var a=this;new Ajax.Request("/imagelibrary/search",{parameters:"&page="+this.current+(a.fileNameSearch?"&fileNameSearch="+this.fileNameSearch.strip():"")+"&limit="+this.limit,onSuccess:function(c){var b=c.responseText.evalJSON();a.adjustPaging(b);a.drawResult(b)},onFailure:function(b){alert("error "+b.status+" -- "+b.statusText)}})},drawResult:function(b){var c=this;this.fileList.innerHTML="";var a=b.items;a.each(function(e){var d=e.evalJSON();c.fileLoaded(d)})}});var IVV={};IVV.FileUploaderQueue=Class.create({initialize:function(a){this.queue=a.queueElement||new Element("div",{id:"queque"});this.queueArray=[];this.queueArrayPending=[];this.queueArrayUploaded=[];this.uploader=a.uploader},queueForm:function(a){this.queue.insert({top:a.getForm()});this.queueArray[this.queueArray.length]=a;this.queueArrayPending[this.queueArrayPending.length]=a;a.buildFileInfo();a.uploader.showStartUpload()},deleteForm:function(a){this.queueArray=this.queueArray.without(a);this.queueArrayPending=this.queueArrayPending.without(a);a.form.parentNode.removeChild(a.form)},formUploaded:function(a){this.queueArrayPending=this.queueArrayPending.without(a);this.queueArrayUploaded[this.queueArrayUploaded.length]=a},startUpload:function(){this.uploader.hideStartUpload();var a=this.queueArrayPending;a.each(function(c,b){a[b].startUpload()})}});IVV.FileUploaderForm=Class.create({initialize:function(c){this.uploadURL="/upload/library";var d=new Date().getTime();this.form=new Element("form",{method:"post",enctype:"multipart/form-data",action:this.uploadURL,target:"upload_target"+d});this.form=$(Builder.node("form",{method:"post",enctype:"multipart/form-data",action:this.uploadURL,target:"upload_target"+d}));var a=new Element("input",{type:"hidden",name:"MAX_FILE_SIZE",value:"2048000"});var b=new Element("iframe",{name:"upload_target"+d,style:"width:0;height:0;border:none"});b.observe("load",this.frameLoaded.bindAsEventListener(this,b));b.observe("error",this.frameLoadFailed.bindAsEventListener(this));this.form.appendChild(a);this.form.appendChild(b);this.processed=false;this.fileControl=null;this.uploader=c.uploader;this.queue=c.queue},frameLoadFailed:function(){alert("Failed to upload file")},frameLoaded:function(d,b){if(this.processed==true){var c=b.contentDocument||b.contentWindow.document;var a=c.body.innerHTML;this.form.className=this.form.className+" uploadDone";this.queue.formUploaded(this);this.uploadComplete(a)}},uploadComplete:function(b){try{var d=b.evalJSON();var a=new Element("img",{src:d.thumbUrl,width:48,height:48});this.getForm().appendChild(a);this.setStatus("загружен")}catch(c){this.setStatus("ошибка:"+b);return false}return true},setUploadControl:function(a){this.fileControl=a;this.fileControl.hide();this.form.appendChild(a)},startUpload:function(){if(this.processed==false){this.uploadStarted();this.processed=true;this.form.submit()}},uploadStarted:function(){var a=this.uploader.placeholder.select("input[id=tags]")[0].value;this.setTags(a);this.setStatus("загружаю...");this.showSpinner()},getForm:function(){return this.form},setTags:function(a){this.form.appendChild(new Element("input",{type:"hidden",name:"tags",value:a.strip()}))},setStatus:function(b){var a=this.form.select("div[id=fStatus]")[0];var c=a.parentNode;c.removeChild(a);c.appendChild(new Element("div",{id:"fStatus"}).update(b))},showSpinner:function(a){if(this.form.select("img[id=spinner]").length>0){if(a){this.form.select("img[id=spinner]")[0].show()}else{this.form.select("img[id=spinner]")[0].hide()}}else{this.form.select("div[id=fStatus]")[0].appendChild(new Element("img",{src:"/resources/images/uploadspinner.gif",style:"clear:both;float:left;border:none"}))}},setFileName:function(c){var b=this.form.select("div[id=fName]")[0];var a=b.parentNode;a.removeChild(b);a.appendChild(new Element("div",{id:"fName"}).update(c))},fileInfo:function(b){var a=b.match(/([^\/\\]+)\.(\w+)$/);if(a){return{name:a[0],shortName:a[1],ext:a[2]}}else{return{name:b,shortName:"unknown",ext:"unknown"}}},buildFileInfo:function(){var a=null;a=new Element("div",{id:"fileInfo"});var g=new Element("div",{id:"fName"});var b=new Element("div",{id:"fStatus"});b.innerHTML="Ожидаю...";a.appendChild(g);a.appendChild(b);this.form.appendChild(a);var d=this.fileInfo(this.fileControl.value);this.setFileName(d.name);var f=new Element("a",{href:"javascript:void(0)",id:"deleteIcon"});var c=new Element("img",{src:"/resources/images/delete16x16.png"});f.appendChild(c);var e=this;f.observe("click",function(){e.queue.deleteForm(form)});this.form.appendChild(f)}});IVV.FileUploader=Class.create({initialize:function(a){var a=Object.extend({},a||{});this.placeHolders=a.placeHolders;this.placeholder=$(a.placeholder);this.queueShell=null;this.buttonsShell=null;this.uploadStarted=false;this.validExtensions=a.extensions||"jpg|jpeg|png|gif";this.initControls()},initControls:function(){this.queueShell=new IVV.FileUploaderQueue({uploader:this,queueElement:this.placeHolders.queueElement});this.buttonsShell=$(this.getButtonsShell());this.placeholder.appendChild(this.queueShell.queue);if(!this.placeHolders.buttons){this.placeholder.appendChild(this.buttonsShell)}},getNewFileUploadForm:function(a){var b=new IVV.FileUploaderForm({uploader:this,queue:this.queueShell});return b},addNewFile:function(d){var c=Event.element(d);if(!this.validate_file(c.value)){alert("неподдерживаемый формат файла.");return false}var b=this.getNewFileUploadForm();b.setUploadControl(c);var a=new Element("input",{type:"file",name:"Filedata"});a.observe("change",this.addNewFile.bind(this));this.buttonsShell.insert({top:a});this.queueShell.queueForm(b);return true},getButtonsShell:function(){var b=this.placeHolders.buttons||new Element("div",{id:"buttons"});var a=new Element("input",{type:"file",name:"Filedata"});a.observe("change",this.addNewFile.bind(this));b.appendChild(a);return b},validate_file:function(b){b=b.replace(/^\s|\s$/g,"");var a=new RegExp(".*("+this.validExtensions+")$","i");return b.match(a)},startUpload:function(){this.queueShell.startUpload()},showStartUpload:function(){if(this.customButtons){this.tagsText.value="";this.customButtons.show()}else{this.customButtons=this.placeHolders.startUpload||new Element("div",{id:"customButtons"});this.startUploadButton=new Element("input",{type:"button","class":"uploadButton",value:"Загрузить"});this.startUploadButton.observe("click",this.startUpload.bind(this));this.tagsText=new Element("input",{type:"text",id:"tags"});var a=new Element("span",{}).update(" &nbsp;<b> Теги: </b>");this.customButtons.appendChild(a);this.customButtons.appendChild(this.tagsText);this.customButtons.appendChild(this.startUploadButton);this.customButtons.show();if(!this.placeHolders.startUpload){this.placeholder.appendChild(this.customButtons)}}},hideStartUpload:function(){this.customButtons.hide()}});IVV.SelectableFileUploaderForm=Class.create(IVV.FileUploaderForm,{initialize:function($super,a){$super(a);this.editor=a.editor},uploadComplete:function($super,d){var g=$super(d);if(g){var b=d.evalJSON();var c=new Element("div",{"class":"tooltip",style:"display:none"});var f=new Image;f.src=b.smallUrl;c.appendChild(f);document.body.appendChild(c);var a=new IvvToolTip(this.getForm(),c);var e=this;this.getForm().style.cursor="pointer";this.getForm().observe("click",function(){var i=new Element("div",{});var h=new Element("a",{rel:"lightbox",href:b.largeUrl});h.appendChild(new Element("img",{src:b.mediumUrl}));i.appendChild(h);e.doSelect(i,b)})}},doSelect:function(b,a){this.editor.insertText(b.innerHTML)}});IVV.SelectableUploader=Class.create(IVV.FileUploader,{initialize:function($super,a){$super(a);this.editor=a.editor},getNewFileUploadForm:function(a){return new IVV.SelectableFileUploaderForm({editor:this.editor,uploader:this,queue:this.queueShell})}});var SelectableLibrary=Class.create(ImageLibrary,{initialize:function($super,a){$super(a);this.editor=a.editor},fileLoaded:function($super,a){var c=$super(a);var b=c.down("img[id=thumb]");b.style.cursor="pointer";var d=this;b.observe("click",function(){var f=new Element("div",{});var e=new Element("a",{href:a.largeUrl});e.appendChild(new Element("img",{src:a.mediumUrl}));f.appendChild(e);d.doSelect(f,a)})},doSelect:function(b,a){this.editor.insertText(b.innerHTML)}});function TextAreaResizer(b,a){this.textarea=b;this.staticOffset;this.iLastMousePos=0;this.iMin=32;this.grip;this.options=a;this.init()}TextAreaResizer.prototype.init=function(){this.textarea.addClassName("processed");this.staticOffset=null;var b=new Element("span");Element.wrap(this.textarea,b);b.wrap(new Element("div",{"class":"resizable-textarea"}));var a=new Element("div",{"class":"grippie"});b.parentNode.insert(a);a.style.marginRight=(a.getWidth()-this.textarea.getWidth())+"px";Event.observe(a,"mousedown",this.startDrag.bindAsEventListener(this))};TextAreaResizer.prototype.startDrag=function(a){var b=$A(arguments);b.shift();this.textarea=$(Event.element(a)).previous().firstDescendant();this.iLastMousePos=a.pointerY();this.staticOffset=this.textarea.getHeight()-this.iLastMousePos;Event.observe(document,"mousemove",this.performDrag.bindAsEventListener(this));Event.observe(document,"mouseup",this.endDrag.bindAsEventListener(this));return false};TextAreaResizer.prototype.performDrag=function(b){var d=$A(arguments);d.shift();var a=b.pointerY();var c=this.staticOffset+a;if(this.iLastMousePos>=(a)){c-=5}this.iLastMousePos=a;c=Math.max(this.iMin,c);this.textarea.setStyle({height:c+"px"});if(c<this.iMin){this.endDrag(b)}return false};TextAreaResizer.prototype.endDrag=function(a){var b=$A(arguments);b.shift();Event.stopObserving(document,"mousemove");Event.stopObserving(document,"mouseup");this.textarea.focus();this.staticOffset=null;this.textarea=null;this.iLastMousePos=0;if(this.options){if(this.options.afterDrag){this.options.afterDrag()}}};var Tabs=Class.create({initialize:function(b){var b=Object.extend({},b||{});this.tabs=b.tabs;this.currentTab=this.tabs[0];var a=this;this.tabs.each(function(c){c.observe("click",function(f){var d=a.onChangeTab(a.currentTab,c);if(d){a.changeTab(a.currentTab,c)}})})},onChangeTab:function(a,b){return true},changeTab:function(a,b){if(a){a.className=""}b.className="active";this.currentTab=b}});function bookmark(b,a){if(b.hasClassName("done")){b.removeClassName("done")}else{b.addClassName("done")}new Ajax.Request("/submit/bookmark/",{parameters:"questionId="+encodeURIComponent(a),onFailure:function(c){new Feedbacker({feedBackDivId:this.errorFeedbackDiv}).error("ошибка, пожалуйста сообщите администрации!")}})}function vote(a,c,h,d,g){var c=c;var f=c.down(".vote_plus");var i=c.down(".vote_minus");var b=c.down(".voteCount");var e=null;if(isNaN(g)){return}if(g>=0){e="plus";if(f.hasClassName("voted")){f.removeClassName("voted");e="clear"}else{f.addClassName("voted");i.removeClassName("voted")}}else{if(g<0){e="minus";if(i.hasClassName("voted")){i.removeClassName("voted");e="clear"}else{f.removeClassName("voted");i.addClassName("voted")}}}if(e==null){return}new Ajax.Request("/vote/"+e,{parameters:"objectId="+encodeURIComponent(h)+"&objectType="+encodeURIComponent(d),onSuccess:function(j){if(j.responseText.strip()){$(b).innerHTML=j.responseText;new Effect.Opacity(b,{from:1,to:0.2})}},onFailure:function(j){f.removeClassName("voted");i.removeClassName("voted");new alertDialog({src:a,message:j.responseText,sec:"2"})}})}function postNewAswer(d,b,a,e){if(d.down("textarea").strip().blank()){new Feedbacker({feedBackDivId:d.down("div[id=newAnswerFeedback]")}).error("нужно что-то написать!");return}var c=d.next("input[type=button]");c.disable();d.down("div[id=newAnswerFeedback]").hide();var f=d.getDimensions();d.request({onSuccess:function(g){c.enable();var h=g.responseText;if(a){b.insert({before:h})}else{b.insert({after:h})}b.show();d.reset();if(d.down(".previewText")){d.down(".previewText").update("");d.down(".previewText").hide()}if(e){e(d)}},onFailure:function(g){c.enable();new Feedbacker({feedBackDivId:d.down("div#newAnswerFeedback")}).error("ошибка на сервере. Если ошибка повторится, пожалуйста, сообщите администрации")}})}function modifyForm(c,d,a,b){c.action="/postcomment/"+d;c.objectId.value=a;c.replyToId.value=b}function reply(j,e,f,g,i,b,a,c){b=$(b);var d=f.down("form");var h=d.objectId.value;b.insert({after:f});f.show();modifyForm(d,e,g,i);f.down("input[id=postcommentButton]").onclick=function(){postNewAswer(d,a,c,function(){f.hide()})}}(function(){var a={defaultValueActsAsHint:function(c,b){c=$(c);if(c.value){return}c.value=b;c._default=c.value;return c.observe("focus",function(){if(c._default!=c.value){return}c.removeClassName("defaultValue").value=""}).observe("blur",function(){if(c.value.strip()!=""){return}c.addClassName("defaultValue").value=c._default}).addClassName("defaultValue")},clearDefaultValue:function(b){if(b._default!=b.value){return}b.removeClassName("defaultValue").value=""},strip:function(b){if("_default" in b){if(b._default==b.value){return""}}return b.value.strip()},isURL:function(b){var d=b.strip();var c=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;return c.test(d)},isEmail:function(b){var d=b.strip();var c=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;return c.test(d)},setValue:function(b,c){if(c.strip()){b.removeClassName("defaultValue");b.value=c}}};$w("input textarea").each(function(b){Element.addMethods(b,a)})})();function showFlagger(d,c,a,b){if(!b){new alertDialog({src:d,message:"Нужно как минимум 15 баллов репутации для использования флагов",sec:"2.5"});return}new AjaxFlagger({type:c,id:a,src:d})}function startBonus(c,a,b){if(b<100){new alertDialog({src:c,message:"Нужно как минимум 100 баллов репутации",sec:"2.5"});return}new AjaxBonusSetter({id:a,src:c,currentScore:b})}var AjaxBonusSetter=Class.create({initialize:function(h){var c=new Element("div",{"class":"actionpopup bonus",id:"bonusform"});var a=new Element("form",{action:"/submit/bonus/"});a.appendChild(new Element("input",{type:"hidden",name:"questionId",value:h.id}));var f=new Element("label",{}).update("Размер бонуса");var j=new Element("select",{name:"amount"});for(var b=50;b<=(h.currentScore<500?h.currentScore:500);b+=50){j.appendChild(new Element("option",{value:b}).update(b))}f.appendChild(j);a.appendChild(f);var e=new Element("div",{id:"buttons"});var d=new Element("input",{type:"button",value:"Отправить"});var g=new Element("input",{type:"button",value:"Отмена"});e.appendChild(d);e.appendChild(g);a.appendChild(e);c.appendChild(a);document.body.appendChild(c);g.observe("click",function(){c.parentNode.removeChild(c)});d.observe("click",function(){a.request({onSuccess:function(i){c.parentNode.removeChild(c);$(h.src).parentNode.replaceChild(new Element("span",{"class":"bonusIndicator"}).update("бонус +"+j.value),h.src)},onFailure:function(i){c.parentNode.removeChild(c);new alertDialog({src:h.src,message:i.responseText,sec:"2"})}})});showPopip(h.src,c)}});var AjaxFlagger=Class.create({initialize:function(i){var c=new Element("div",{"class":"actionpopup red",id:"flaggerform"});var a=new Element("form",{action:"/submit/flag/"});a.appendChild(new Element("input",{type:"hidden",name:"id",value:i.id}));a.appendChild(new Element("input",{type:"hidden",name:"type",value:i.type}));var f=new Element("label",{}).update("Грубые или ненормативные высказывания");f.appendChild(new Element("input",{type:"radio",name:"flag",value:"offensive"}));var b=new Element("label",{}).update("Не IT тематика");b.appendChild(new Element("input",{type:"radio",name:"flag",value:"not_thematic"}));var g=new Element("label",{}).update("Спам");g.appendChild(new Element("input",{type:"radio",name:"flag",value:"spam"}));a.appendChild(f);a.appendChild(b);a.appendChild(g);var e=new Element("div",{id:"buttons"});var d=new Element("input",{type:"button",value:"Отправить"});var h=new Element("input",{type:"button",value:"Отмена"});e.appendChild(d);e.appendChild(h);a.appendChild(e);c.appendChild(a);document.body.appendChild(c);h.observe("click",function(){c.parentNode.removeChild(c)});d.observe("click",function(){a.request({onSuccess:function(j){c.parentNode.removeChild(c)},onFailure:function(j){c.parentNode.removeChild(c);new alertDialog({src:i.src,message:j.responseText,sec:"2"})}})});showPopip(i.src,c)}});function setBestAnswer(d,c,a){if(!a){$$(".ans_mark").each(function(e){e.hide()})}var b=$(d).up("div.answer");if(b.hasClassName("best")){b.removeClassName("best");new Ajax.Request("/submit/removebestanswer/",{parameters:"answerId="+encodeURIComponent(c),onSuccess:function(e){new Feedbacker({feedBackDivId:"feedback"}).success("Лучший ответ снят!")},onFailure:function(e){new Feedbacker({feedBackDivId:"feedback"}).error(e.responseText)}})}else{$$("div.answer").each(function(f,e){f.removeClassName("best")});b.addClassName("best");new Ajax.Request("/submit/setbestanswer/",{parameters:"answerId="+encodeURIComponent(c),onSuccess:function(e){new Feedbacker({feedBackDivId:"feedback"}).success("Лучший ответ выбран!")},onFailure:function(e){new Feedbacker({feedBackDivId:"feedback"}).error(e.responseText)}})}}function deleteOpenId(b,a){new Ajax.Request("/settings/deleteopenid/",{parameters:"openidUrl="+encodeURIComponent(a),onSuccess:function(c){$(b).hide();new Feedbacker({feedBackDivId:"feedback"}).success("openID был удален успешно!")},onFailure:function(c){new Feedbacker({feedBackDivId:"feedback"}).error(c.responseText)}})}function deleteAnswer(b,c,a){if(confirm("Вы уверены что хотите удалить ответ?")){new Ajax.Request("/submit/deleteanswer/",{parameters:"answerId="+encodeURIComponent(c),onSuccess:function(d){new Effect.Opacity($(a),{from:1,to:0.2});new Feedbacker({feedBackDivId:"feedback"}).success("Ответ был удален успешно!")},onFailure:function(d){new Feedbacker({feedBackDivId:"feedback"}).error(d.responseText)}})}}function deleteComment(b,a){new Ajax.Request("/submit/deletecomment/",{parameters:"commentId="+a,onSuccess:function(c){new Effect.Opacity($(b.up("div.comment")),{from:1,to:0.2})},onFailure:function(c){new Feedbacker({feedBackDivId:"feedback"}).error(c.responseText)}})}function subscribeAnswers(c,a){var b="/settings/subscribequestion/";if(!c.checked){b="/settings/unsubscribequestion/"}new Ajax.Request(b,{parameters:"questionId="+a,onSuccess:function(d){new Feedbacker({feedBackDivId:"feedback"}).success(d.responseText)},onFailure:function(d){new Feedbacker({feedBackDivId:"feedback"}).error(d.responseText)}})}function bookmarkOff(b,a){document.getElementById("loginHelpTitle").innerHTML="Авторизуйтесь, пожалуйста!";showPopip(b,document.getElementById("dest"))}function voteOff(c,e,a,b,d){document.getElementById("loginHelpTitle").innerHTML="Авторизуйтесь, чтобы голосовать!";showPopip($(c),document.getElementById("dest"))}function replyOff(e,d,c,b,a,h,g,f){document.getElementById("loginHelpTitle").innerHTML="Авторизуйтесь, чтобы отвечать!";showPopip(e,document.getElementById("dest"))}function showFlaggerOff(e,b,d,a,c){document.getElementById("loginHelpTitle").innerHTML="Авторизуйтесь, пожалуйста!";showPopip(e,document.getElementById("dest"))};