function getElementsByTagNames(list,obj){if(!obj)obj=document;var tagNames=list.split(',');var resultArray=new Array();for(var i=0;i<tagNames.length;i++){var tags=obj.getElementsByTagName(tagNames[i]);for(var j=0;j<tags.length;j++){resultArray.push(tags[j]);}}
return resultArray;}
if(!Scrolling)var Scrolling={};Scrolling.createScroll=function(scroller_id,scrollbar_id,width,height){var scroller=new Scrolling.Scroller(document.getElementById(scroller_id),width,height,new Scrolling.ScrollTween());var scrollbar=new Scrolling.Scrollbar(document.getElementById(scrollbar_id),scroller,new Scrolling.ScrollTween());return[scroller,scrollbar];};Scrolling.Scrollbar=function(o,s,t){var self=this;var _components={};var _dimensions={};var _temporary={};var _hasTween=t?true:false;var _timer,_ratio;this.onMouseDown=function(){};this.onMouseUp=function(){};this.onScroll=function(){};this.scrollAmount=5;this.scrollSpeed=30;this.disabled=false;function initialize(){var c=_components;var d=_dimensions;var g=s.getDimensions();s.scrollBar=self;c.up=findComponent("Scrollbar-Up",o);c.down=findComponent("Scrollbar-Down",o);c.track=findComponent("Scrollbar-Track",o);c.handle=findComponent("Scrollbar-Handle",c.track);c.spinner=findComponent("Scrollbar-Preloader",o)||false;d.trackTop=findOffsetTop(c.track);d.trackHeight=c.track.offsetHeight;d.handleHeight=c.handle.offsetHeight;d.x=0;d.y=0;if(_hasTween)t.apply(self);addEvent(s.getContent(),"mousewheel",scrollbarWheel);addEvent(o,"mousedown",scrollbarClickPrimer);self.reset();};function findOffsetTop(o){var t=0;if(o.offsetParent){while(o.offsetParent){t+=o.offsetTop;o=o.offsetParent;}}
return t;};function addEvent(o,t,f){if(o.attachEvent)o.attachEvent('on'+t,f);else o.addEventListener(t,f,false);};function removeEvent(o,t,f){if(o.detachEvent)o.detachEvent('on'+t,f);else o.removeEventListener(t,f,false);};function findComponent(c,o){var kids=o.childNodes;for(var i=0;i<kids.length;i++){if(kids[i].className&&kids[i].className.indexOf(c)>=0){return kids[i];}}};function scroll(y){if(y<0)y=0;if(y>_dimensions.trackHeight-_dimensions.handleHeight)
y=_dimensions.trackHeight-_dimensions.handleHeight;_components.handle.style.top=y+"px";_dimensions.y=y;s.scrollTo(0,Math.round(_dimensions.y*_ratio));self.onScroll();};function scrollbarClickPrimer(e){if(self.disabled)return false;e=e?e:event;if(!e.target)e.target=e.srcElement;scrollbarClick(e.target.className,e);};function scrollbarClick(c,e){var d=_dimensions;var t=_temporary;var cy=e.clientY+document.body.scrollTop;if(c.indexOf("Scrollbar-Up")>=0)
startScroll(-self.scrollAmount);if(c.indexOf("Scrollbar-Down")>=0)
startScroll(self.scrollAmount);if(c.indexOf("Scrollbar-Track")>=0)
if(_hasTween)self.tweenTo((cy-d.trackTop-d.handleHeight/2)*_ratio);else scroll(cy-d.trackTop-d.handleHeight/2);if(c.indexOf("Scrollbar-Handle")>=0){t.grabPoint=cy-findOffsetTop(_components.handle);addEvent(document,"mousemove",scrollbarDrag,false);}
t.target=e.target;t.select=document.onselectstart;document.onselectstart=function(){return false;};self.onMouseDown(e.target,c,e);addEvent(document,"mouseup",stopScroll);};function scrollbarDrag(e){e=e?e:event;var d=_dimensions;var t=parseInt(_components.handle.style.top);var v=e.clientY+document.body.scrollTop-d.trackTop;if(v>=d.trackHeight-d.handleHeight+_temporary.grabPoint)
v=d.trackHeight-d.handleHeight;else if(v<=_temporary.grabPoint)
v=0;else v=v-_temporary.grabPoint;scroll(v);};function scrollbarWheel(e){if(self.disabled)return false;e=e?e:event;var dir=0;if(e.wheelDelta>=120)dir=-1;if(e.wheelDelta<=-120)dir=1;self.scrollBy(dir*20);e.returnValue=false;};function startScroll(y){_temporary.disty=y;_timer=window.setInterval(function(){self.scrollBy(_temporary.disty);},self.scrollSpeed);};function stopScroll(e){e=e?e:event;removeEvent(document,"mousemove",scrollbarDrag);removeEvent(document,"mouseup",stopScroll);document.onselectstart=_temporary.select;if(_timer)window.clearInterval(_timer);self.onMouseUp(_temporary.target,_temporary.target.className,e);};this.reset=function(){var d=_dimensions;var c=_components;var g=s.getDimensions();_ratio=(g.theight-g.vheight)/(d.trackHeight-d.handleHeight);var pos=Math.round(g.y/_ratio);c.handle.style.top=pos+"px";c.handle.ondragstart=function(){return false;};c.handle.onmousedown=function(){return false;};s.reset();if(g.theight<g.vheight){this.disabled=true;o.className+=" Scrollbar-Disabled";}};this.scrollTo=function(y){scroll(y/_ratio);};this.scrollBy=function(y){scroll((s.getDimensions().y+y)/_ratio);};this.scrollToElement=function(element_id){var element=$(element_id);if(element){this.scrollTo(element.positionedOffset()[1]);}};this.swapContent=function(n,w,h){o=n;s.swapContent(o,w,h);initialize();};this.disable=function(){this.disabled=true;o.className+="Scrollbar-Disabled";};this.enable=function(){this.disabled=false;o.className=o.className.replace(/Scrollbar\-Disabled/,"");};this.getContent=function(){return s.getContent();};this.getComponents=function(){return _components;};this.getDimensions=function(){var d=s.getDimensions();d.trackHeight=_dimensions.trackHeight;d.handleHeight=_dimensions.handleHeight;return d;};this.showSpinner=function(flag){if(_components.spinner){if(flag){_components.spinner.style.display='block';}else{_components.spinner.style.display='none';}}};this.resetBar=function(){this.reset();};initialize();};if(!Scrolling)var Scrolling={};Scrolling.Scroller=function(o,w,h,t){var list=getElementsByTagNames("div,ul",o);for(var i=0;i<list.length;i++){if(list[i].className.indexOf("Scroller-Container")>-1){o=list[i];}}
var self=this;var _vwidth=w;var _vheight=h;var _o=o;var _twidth=o.offsetWidth;var _theight=o.offsetHeight;var _hasTween=t?true:false;var _requesting=false;var _timer,_x,_y;this.onScrollStart=function(){};this.onScrollStop=function(){};this.onScroll=function(){};this.scrollBar=false;this.scrollSpeed=30;this.preloadDistance=100;this.fetchUrl=false;this.preloadElements=10;this.totalElements=0;this.actualElements=getNumOfItems();this.resetScrollBar=false;function setPosition(x,y){if(x<_vwidth-_twidth)
x=_vwidth-_twidth;if(x>0)x=0;if(y<_vheight-_theight)
y=_vheight-_theight;if(y>0)y=0;if(!_requesting&&self.fetchUrl&&self.actualElements<self.totalElements&&(_theight-_vheight+y)<self.preloadDistance){_requesting=true;self.scrollBar.showSpinner(true);_fetchItemsRequest();}
_x=x;_y=y;o.style.left=_x+"px";o.style.top=_y+"px";};function _fetchItemsRequest(){new Ajax.Request(self.fetchUrl,{method:'get',parameters:'offset='+self.actualElements,requestHeaders:{Accept:'text/html'},onComplete:function(response){_fetchNewItemsResponse(response);}});}
function _fetchNewItemsResponse(response){o.innerHTML+=response.responseText;self.actualElements=getNumOfItems();_twidth=o.offsetWidth;_theight=o.offsetHeight;self.scrollBar.resetBar();_requesting=false;self.scrollBar.showSpinner(false);}
function getNumOfItems(){var num=0;for(var i=0;i<o.childNodes.length;i++){if(o.childNodes[i].nodeName.search(/.*(div|li).*/i)!=-1)num++;}
return num;}
this.setAjaxPreloader=function(url,preloadNum,totalNum,preloadDistance){this.preloadDistance=preloadDistance;this.fetchUrl=url;this.preloadElements=preloadNum;this.totalElements=totalNum;};this.scrollBy=function(x,y){setPosition(_x-x,_y-y);this.onScroll();};this.scrollTo=function(x,y){setPosition(-x,-y);this.onScroll();};this.startScroll=function(x,y){this.stopScroll();this.onScrollStart();_timer=window.setInterval(function(){self.scrollBy(x,y);},this.scrollSpeed);};this.stopScroll=function(){if(_timer)window.clearInterval(_timer);this.onScrollStop();};this.reset=function(){_twidth=o.offsetWidth;_theight=o.offsetHeight;_x=0;_y=0;if(_hasTween)t.apply(this);};this.swapContent=function(c,w,h){o=c;var list=getElementsByTagNames("div,ul",o);for(var i=0;i<list.length;i++){if(list[i].className.indexOf("Scroller-Container")>-1){o=list[i];}}
if(w)_vwidth=w;if(h)_vheight=h;reset();};this.getDimensions=function(){return{vwidth:_vwidth,vheight:_vheight,twidth:_twidth,theight:_theight,x:-_x,y:-_y};};this.getContent=function(){return o;};this.reset();};if(!Scrolling)var Scrolling={};Scrolling.ScrollTween=function(){var self=this;var _steps=[0,25,50,70,85,95,97,99,100];var _values=[];var _idle=true;var o,_inc,_timer;function tweenTo(y){if(!_idle)return false;var d=o.getDimensions();if(y<0)y=0;if(y>d.theight-d.vheight)
y=d.theight-d.vheight;var dist=y-d.y;_inc=0;_timer=null;_values=[];_idle=false;for(var i=0;i<_steps.length;i++){_values[i]=Math.round(d.y+dist*(_steps[i]/100));}
_timer=window.setInterval(function(){o.scrollTo(_values[_inc]);if(_inc==_steps.length-1){window.clearInterval(_timer);_idle=true;}else _inc++;},o.stepSpeed);};function tweenBy(y){o.tweenTo(o.getDimensions().y+y);};function setSteps(s){_steps=s;};this.apply=function(p){o=p;o.tweenTo=tweenTo;o.tweenBy=tweenBy;o.setSteps=setSteps;o.stepSpeed=30;};};function scrollToSectionHandler(event){var link=Event.findElement(event,'a');var element_id='l-'+link.href.split('#').last();if(scrollbar){scrollbar.scrollToElement(element_id);}
var linkList=Event.findElement(event,'ul');linkList.select('a').each(function(e){e.className='';});link.className='active';Event.stop(event);}
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._originallyAbsolute=(this.element.getStyle('position')=='absolute');if(!this._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._originallyAbsolute)
Position.relativize(this.element);delete this._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){element=$(element);var s=Sortable.sortables[element.id];if(s){Draggables.removeObserver(s.element);s.droppables.each(function(d){Droppables.remove(d)});s.draggables.invoke('destroy');delete Sortable.sortables[s.element.id];}},create:function(element){element=$(element);var options=Object.extend({element:element,tag:'li',dropOnEmpty: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')];};var CropDraggable=Class.create();Object.extend(Object.extend(CropDraggable.prototype,Draggable.prototype),{initialize:function(element){this.options=Object.extend({drawMethod:function(){}},arguments[1]||{});this.element=$(element);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(point){var pos=Position.cumulativeOffset(this.element);var d=this.currentDelta();pos[0]-=d[0];pos[1]-=d[1];var p=[0,1].map(function(i){return(point[i]-pos[i]-this.offset[i])}.bind(this));this.options.drawMethod(p);}});var Cropper={};Cropper.Img=Class.create();Cropper.Img.prototype={initialize:function(element,options){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},options||{});this.img=$(element);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;if(this.options.ratioDim.x>0&&this.options.ratioDim.y>0){var gcd=this.getGCD(this.options.ratioDim.x,this.options.ratioDim.y);this.ratioX=this.options.ratioDim.x/gcd;this.ratioY=this.options.ratioDim.y/gcd;}
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 cNamePrefix='imgCrop_';var insertPoint=this.img.parentNode;var fixOperaClass='';if(this.isOpera8)fixOperaClass=' opera8';this.imgWrap=Builder.node('div',{'class':cNamePrefix+'wrap'+fixOperaClass});this.north=Builder.node('div',{'class':cNamePrefix+'overlay '+cNamePrefix+'north'},[Builder.node('span')]);this.east=Builder.node('div',{'class':cNamePrefix+'overlay '+cNamePrefix+'east'},[Builder.node('span')]);this.south=Builder.node('div',{'class':cNamePrefix+'overlay '+cNamePrefix+'south'},[Builder.node('span')]);this.west=Builder.node('div',{'class':cNamePrefix+'overlay '+cNamePrefix+'west'},[Builder.node('span')]);var overlays=[this.north,this.east,this.south,this.west];this.dragArea=Builder.node('div',{'class':cNamePrefix+'dragArea'},overlays);this.handleN=Builder.node('div',{'class':cNamePrefix+'handle '+cNamePrefix+'handleN'});this.handleNE=Builder.node('div',{'class':cNamePrefix+'handle '+cNamePrefix+'handleNE'});this.handleE=Builder.node('div',{'class':cNamePrefix+'handle '+cNamePrefix+'handleE'});this.handleSE=Builder.node('div',{'class':cNamePrefix+'handle '+cNamePrefix+'handleSE'});this.handleS=Builder.node('div',{'class':cNamePrefix+'handle '+cNamePrefix+'handleS'});this.handleSW=Builder.node('div',{'class':cNamePrefix+'handle '+cNamePrefix+'handleSW'});this.handleW=Builder.node('div',{'class':cNamePrefix+'handle '+cNamePrefix+'handleW'});this.handleNW=Builder.node('div',{'class':cNamePrefix+'handle '+cNamePrefix+'handleNW'});this.selArea=Builder.node('div',{'class':cNamePrefix+'selArea'},[Builder.node('div',{'class':cNamePrefix+'marqueeHoriz '+cNamePrefix+'marqueeNorth'},[Builder.node('span')]),Builder.node('div',{'class':cNamePrefix+'marqueeVert '+cNamePrefix+'marqueeEast'},[Builder.node('span')]),Builder.node('div',{'class':cNamePrefix+'marqueeHoriz '+cNamePrefix+'marqueeSouth'},[Builder.node('span')]),Builder.node('div',{'class':cNamePrefix+'marqueeVert '+cNamePrefix+'marqueeWest'},[Builder.node('span')]),this.handleN,this.handleNE,this.handleE,this.handleSE,this.handleS,this.handleSW,this.handleW,this.handleNW,Builder.node('div',{'class':cNamePrefix+'clickArea'})]);this.imgWrap.appendChild(this.img);this.imgWrap.appendChild(this.dragArea);this.dragArea.appendChild(this.selArea);this.dragArea.appendChild(Builder.node('div',{'class':cNamePrefix+'clickArea'}));insertPoint.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(registration){for(var i=0;i<this.handles.length;i++){var handle=$(this.handles[i]);if(registration){var hideHandle=false;if(this.fixedWidth&&this.fixedHeight)hideHandle=true;else if(this.fixedWidth||this.fixedHeight){var isCornerHandle=handle.className.match(/([S|N][E|W])$/)
var isWidthHandle=handle.className.match(/(E|W)$/);var isHeightHandle=handle.className.match(/(N|S)$/);if(isCornerHandle)hideHandle=true;else if(this.fixedWidth&&isWidthHandle)hideHandle=true;else if(this.fixedHeight&&isHeightHandle)hideHandle=true;}
if(hideHandle)handle.hide();else Event.observe(handle,'mousedown',this.resizeBind);}else{handle.show();Event.stopObserving(handle,'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 startCoords={x1:0,y1:0,x2:0,y2:0};var validCoordsSet=false;if(this.options.onloadCoords!=null){startCoords=this.cloneCoords(this.options.onloadCoords);validCoordsSet=true;}else if(this.options.ratioDim.x>0&&this.options.ratioDim.y>0){startCoords.x1=Math.ceil((this.imgW-this.options.ratioDim.x)/2);startCoords.y1=Math.ceil((this.imgH-this.options.ratioDim.y)/2);startCoords.x2=startCoords.x1+this.options.ratioDim.x;startCoords.y2=startCoords.y1+this.options.ratioDim.y;validCoordsSet=true;}
this.setAreaCoords(startCoords,false,false,1);if(this.options.displayOnInit&&validCoordsSet){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(point){this.setAreaCoords({x1:point[0],y1:point[1],x2:point[0]+this.calcW(),y2:point[1]+this.calcH()},true,false);this.drawArea();},cloneCoords:function(coords){return{x1:coords.x1,y1:coords.y1,x2:coords.x2,y2:coords.y2};},setAreaCoords:function(coords,moving,square,direction,resizeHandle){if(moving){var targW=coords.x2-coords.x1;var targH=coords.y2-coords.y1;if(coords.x1<0){coords.x1=0;coords.x2=targW;}
if(coords.y1<0){coords.y1=0;coords.y2=targH;}
if(coords.x2>this.imgW){coords.x2=this.imgW;coords.x1=this.imgW-targW;}
if(coords.y2>this.imgH){coords.y2=this.imgH;coords.y1=this.imgH-targH;}}else{if(coords.x1<0)coords.x1=0;if(coords.y1<0)coords.y1=0;if(coords.x2>this.imgW)coords.x2=this.imgW;if(coords.y2>this.imgH)coords.y2=this.imgH;if(direction!=null){if(this.ratioX>0)this.applyRatio(coords,{x:this.ratioX,y:this.ratioY},direction,resizeHandle);else if(square)this.applyRatio(coords,{x:1,y:1},direction,resizeHandle);var mins=[this.options.minWidth,this.options.minHeight];var maxs=[this.options.maxWidth,this.options.maxHeight];if(mins[0]>0||mins[1]>0||maxs[0]>0||maxs[1]>0){var coordsTransX={a1:coords.x1,a2:coords.x2};var coordsTransY={a1:coords.y1,a2:coords.y2};var boundsX={min:0,max:this.imgW};var boundsY={min:0,max:this.imgH};if((mins[0]!=0||mins[1]!=0)&&square){if(mins[0]>0)mins[1]=mins[0];else if(mins[1]>0)mins[0]=mins[1];}
if((maxs[0]!=0||maxs[0]!=0)&&square){if(maxs[0]>0&&maxs[0]<=maxs[1])maxs[1]=maxs[0];else if(maxs[1]>0&&maxs[1]<=maxs[0])maxs[0]=maxs[1];}
if(mins[0]>0)this.applyDimRestriction(coordsTransX,mins[0],direction.x,boundsX,'min');if(mins[1]>1)this.applyDimRestriction(coordsTransY,mins[1],direction.y,boundsY,'min');if(maxs[0]>0)this.applyDimRestriction(coordsTransX,maxs[0],direction.x,boundsX,'max');if(maxs[1]>1)this.applyDimRestriction(coordsTransY,maxs[1],direction.y,boundsY,'max');coords={x1:coordsTransX.a1,y1:coordsTransY.a1,x2:coordsTransX.a2,y2:coordsTransY.a2};}}}
this.areaCoords=coords;},applyDimRestriction:function(coords,val,direction,bounds,type){var check;if(type=='min')check=((coords.a2-coords.a1)<val);else check=((coords.a2-coords.a1)>val);if(check){if(direction==1)coords.a2=coords.a1+val;else coords.a1=coords.a2-val;if(coords.a1<bounds.min){coords.a1=bounds.min;coords.a2=val;}else if(coords.a2>bounds.max){coords.a1=bounds.max-val;coords.a2=bounds.max;}}},applyRatio:function(coords,ratio,direction,resizeHandle){var newCoords;if(resizeHandle=='N'||resizeHandle=='S'){newCoords=this.applyRatioToAxis({a1:coords.y1,b1:coords.x1,a2:coords.y2,b2:coords.x2},{a:ratio.y,b:ratio.x},{a:direction.y,b:direction.x},{min:0,max:this.imgW});coords.x1=newCoords.b1;coords.y1=newCoords.a1;coords.x2=newCoords.b2;coords.y2=newCoords.a2;}else{newCoords=this.applyRatioToAxis({a1:coords.x1,b1:coords.y1,a2:coords.x2,b2:coords.y2},{a:ratio.x,b:ratio.y},{a:direction.x,b:direction.y},{min:0,max:this.imgH});coords.x1=newCoords.a1;coords.y1=newCoords.b1;coords.x2=newCoords.a2;coords.y2=newCoords.b2;}},applyRatioToAxis:function(coords,ratio,direction,bounds){var newCoords=Object.extend(coords,{});var calcDimA=newCoords.a2-newCoords.a1;var targDimB=Math.floor(calcDimA*ratio.b/ratio.a);var targB;var targDimA;var calcDimB=null;if(direction.b==1){targB=newCoords.b1+targDimB;if(targB>bounds.max){targB=bounds.max;calcDimB=targB-newCoords.b1;}
newCoords.b2=targB;}else{targB=newCoords.b2-targDimB;if(targB<bounds.min){targB=bounds.min;calcDimB=targB+newCoords.b2;}
newCoords.b1=targB;}
if(calcDimB!=null){targDimA=Math.floor(calcDimB*ratio.a/ratio.b);if(direction.a==1)newCoords.a2=newCoords.a1+targDimA;else newCoords.a1=newCoords.a1=newCoords.a2-targDimA;}
return newCoords;},drawArea:function(){var areaWidth=this.calcW();var areaHeight=this.calcH();var px='px';var params=[this.areaCoords.x1+px,this.areaCoords.y1+px,areaWidth+px,areaHeight+px,this.areaCoords.x2+px,this.areaCoords.y2+px,(this.img.width-this.areaCoords.x2)+px,(this.img.height-this.areaCoords.y2)+px];var areaStyle=this.selArea.style;areaStyle.left=params[0];areaStyle.top=params[1];areaStyle.width=params[2];areaStyle.height=params[3];var horizHandlePos=Math.ceil((areaWidth-6)/2)+px;var vertHandlePos=Math.ceil((areaHeight-6)/2)+px;this.handleN.style.left=horizHandlePos;this.handleE.style.top=vertHandlePos;this.handleS.style.left=horizHandlePos;this.handleW.style.top=vertHandlePos;this.north.style.height=params[1];var eastStyle=this.east.style;eastStyle.top=params[1];eastStyle.height=params[3];eastStyle.left=params[4];eastStyle.width=params[6];var southStyle=this.south.style;southStyle.top=params[5];southStyle.height=params[7];var westStyle=this.west.style;westStyle.top=params[1];westStyle.height=params[3];westStyle.width=params[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 classList=['SE','S','SW'];for(i=0;i<classList.length;i++){el=document.getElementsByClassName('imgCrop_handle'+classList[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 resizeHandle=null;var curPos=this.getCurPos(e);var newCoords=this.cloneCoords(this.areaCoords);var direction={x:1,y:1};if(this.dragging){if(curPos.x<this.clickCoords.x)direction.x=-1;if(curPos.y<this.clickCoords.y)direction.y=-1;this.transformCoords(curPos.x,this.clickCoords.x,newCoords,'x');this.transformCoords(curPos.y,this.clickCoords.y,newCoords,'y');}else if(this.resizing){resizeHandle=this.resizeHandle;if(resizeHandle.match(/E/)){this.transformCoords(curPos.x,this.startCoords.x1,newCoords,'x');if(curPos.x<this.startCoords.x1)direction.x=-1;}else if(resizeHandle.match(/W/)){this.transformCoords(curPos.x,this.startCoords.x2,newCoords,'x');if(curPos.x<this.startCoords.x2)direction.x=-1;}
if(resizeHandle.match(/N/)){this.transformCoords(curPos.y,this.startCoords.y2,newCoords,'y');if(curPos.y<this.startCoords.y2)direction.y=-1;}else if(resizeHandle.match(/S/)){this.transformCoords(curPos.y,this.startCoords.y1,newCoords,'y');if(curPos.y<this.startCoords.y1)direction.y=-1;}}
this.setAreaCoords(newCoords,false,e.shiftKey,direction,resizeHandle);this.drawArea();Event.stop(e);}},transformCoords:function(curVal,baseVal,coords,axis){var newVals=[curVal,baseVal];if(curVal>baseVal)newVals.reverse();coords[axis+'1']=newVals[0];coords[axis+'2']=newVals[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 calcWidth=this.calcW();var calcHeight=this.calcH();var dimRatio={x:this.imgW/calcWidth,y:this.imgH/calcHeight};var posRatio={x:calcWidth/this.options.minWidth,y:calcHeight/this.options.minHeight};var calcPos={w:Math.ceil(this.options.minWidth*dimRatio.x)+'px',h:Math.ceil(this.options.minHeight*dimRatio.y)+'px',x:'-'+Math.ceil(this.areaCoords.x1/posRatio.x)+'px',y:'-'+Math.ceil(this.areaCoords.y1/posRatio.y)+'px'}
var previewStyle=this.previewImg.style;previewStyle.width=calcPos.w;previewStyle.height=calcPos.h;previewStyle.left=calcPos.x;previewStyle.top=calcPos.y;}}});var CropImageManager={curCrop:null,imageElement:'webshow-background-image',startDimensions:{x:400,y:90},ratio:null,init:function(ratio){if(this.curCrop){this.curCrop.remove();this.curCrop=null;}
this.ratio=ratio;this.minCropWidth=this.startDimensions.x/this.ratio;this.minCropHeight=this.startDimensions.y/this.ratio;this.attachCropper();},attachCropper:function(){if(this.curCrop==null){this.curCrop=new Cropper.Img(this.imageElement,{ratioDim:this.startDimensions,minWidth:this.minCropWidth,minHeight:this.minCropHeight,displayOnInit:true,onEndCrop:this.onEndCrop});}},removeCropper:function(){if(this.curCrop!=null){this.curCrop.remove();this.curCrop=null;}},onEndCrop:function(coords,dimensions){form=$('crop_image_form');form.start_x.value=coords.x1;form.start_y.value=coords.y1;form.width.value=dimensions.width;form.height.value=dimensions.height;}};function limittags(field,limit){tag_info_div=document.getElementById('tag_info');tag_main_info_div=document.getElementById('tag_main_info');if(field.value.split(',').length>limit){field.value=field.value.substring(0,field.value.lastIndexOf(','));info_message="Thank you that's 3!";tag_info_div.innerHTML=info_message;}else if(field.value.split(',').length>limit-1){info_message="Please give your video a maximum of 3 tags separated by a comma.";tag_main_info_div.innerHTML=info_message;}}
function checkselectset(select_id){var select=$(select_id);if(null==select){return false;}
else{if(select.selectedIndex>0){select.style.border='';return false;}
else{select.style.border='1px solid red';return true;}}}
function checkfieldlength(field_id,min){field=document.getElementById(field_id);if(field&&field.value.length<min){field.style.border='1px solid red';return true;}
else{if(field){field.style.border='';}
return false;}}
function checkHiddenField(field_id,field_id_for_border){var field=document.getElementById(field_id);var field_for_border=document.getElementById(field_id_for_border);if(field&&field.value==''){if(field_for_border){field_for_border.style.border='1px solid red';}
return true;}else{if(field&&field_for_border){field_for_border.style.border='';}
return false;}}
function checkform(error_id){error_message='';var form_ok=true;if(checkfieldlength('fi-desc',1)){form_ok=false;}
if(checkfieldlength('video_name',1)){form_ok=false;}
if(checkfieldlength('fi-webshow_title',1)){form_ok=false;}
if(checkfieldlength('fi-webshow_desc',1)){form_ok=false;}
if(checkselectset('fi-category')){form_ok=false;}
if(checkselectset('fi-webshow_category')){form_ok=false;}
if(checkHiddenField('fi-webshow_select_category','webshow_list')){form_ok=false;}
if(form_ok==false){error_message='Oops! Before you can go to the next step you need to enter information in the highlighted fields.';}
$(error_id).innerHTML=error_message;$(error_id).show();return form_ok;}
function checkPollForm(preview){if($('skip_poll_radio').checked==true){return true;}
error_message='';var form_ok=true;if(checkfieldlength('fi-question',1)){form_ok=false;}
if(checkfieldlength('fi-answer1',1)){form_ok=false;}
if(checkfieldlength('fi-answer2',1)){form_ok=false;}
if(form_ok==false){if(preview==true){error_message='Oops! Before you can preview your poll you need to enter text in the highlighted fields.';}else{error_message='Oops! Before you can go to the next step you need to enter information in the highlighted fields.';}}
document.getElementById('error').innerHTML=error_message;return form_ok;}
function checkFeedbackForm(){error_message='';var form_ok=true;var cat=$('feedback_category');if(cat.value=="0"){cat.style.border='1px solid red';form_ok=false;}
else{cat.style.border='';}
if(checkfieldlength('fi_message',1)){form_ok=false;}
if(form_ok==false){error_message='Oops! Before you send a feedback you need to enter information in the highlighted fields.';}
else{$('fi_message').style.border='1px solid #999';}
document.getElementById('error').innerHTML=error_message;return form_ok;}
function clear_feedback_form(){if($('message_chars_count'))$('message_chars_count').innerHTML=500;$('feedback_category').selectedIndex=0;$('fi_message').value='';}
function generate_preview_popup(){if(checkPollForm(true)==false){return false;}
else{popup=new Kidzbop.VideoPollPreviewPopup();popup.open();}}
function checkPollResults(){$('video_poll_answers_preview').style.display='none';$('video_poll_results_preview').style.display='block';$('results_answer_preview_1').innerHTML=$('fi-answer1').value;$('results_answer_preview_2').innerHTML=$('fi-answer2').value;if($('fi-answer3').value!=''){$('results_answer_preview_3').innerHTML=$('fi-answer3').value;$('poll_result_preview_3').style.display='block';}else{$('poll_result_preview_3').style.display='none';}}
function checkWebshowDescriptionForm(){error_message='';error_message_detail='';var form_ok=true;if(checkfieldlength('webshow_desc',1)){error_message_detail+='<li>You need to describe your Webshow.</li>';form_ok=false;}
if(checkselectset('webshow_category')){error_message_detail+='<li>You need to select a Category for your Webshow.</li>';form_ok=false;}
if(form_ok==false){error_message='Oops! Before you can go to the next step you need to enter information in the highlighted fields.';}
document.getElementById('error').innerHTML=error_message;document.getElementById('error_detail').innerHTML=error_message_detail;return form_ok;}
if(!window.Kidzbop)Kidzbop={};Kidzbop.UserContests={nextNumberOfRule:function(){return document.getElementsByTagName('textarea').length+2;},checkBannerForm:function(){var error_messages=new Array('','');var error_message_details=new Array('','');var form_ok=true;if(window.checkfieldlength('title',1)){form_ok=false;error_messages[0]='Oops! Before you can go to the next step you need to enter information in the highlighted fields.';error_message_details[0]+='&bull; You need to give your Contest a Title.<br/>';}else{Kidzbop.UserContests.check_url_availability(document.getElementById('title').value);if(document.getElementById('url_available').value=='false'){form_ok=false;error_messages[0]='Oops! Before you can go to the next step you need to enter information in the highlighted fields.';}}
if(window.checkfieldlength('hidden_field_font_color',1)){form_ok=false;error_messages[0]='Oops! Before you can go to the next step you need to enter information in the highlighted fields.';error_message_details[0]+='&bull; You need to choose a Font Color.<br/>';}
if(window.checkfieldlength('font_name',1)){form_ok=false;error_messages[0]='Oops! Before you can go to the next step you need to enter information in the highlighted fields.';error_message_details[0]+='&bull; You need to choose a Font Style.<br/>';}
if(window.checkfieldlength('hidden_field_background_id',1)){form_ok=false;error_messages[0]='Oops! Before you can go to the next step you need to enter information in the highlighted fields.';error_message_details[0]+='&bull; You need to choose a Background.<br />';}
if(checkfieldlength('description_area',1)){error_messages[1]='Oops! Before you can go to the next step you need to enter information in the highlighted fields.';error_message_details[1]+='&bull; You need to describe your Contest.<br />';form_ok=false;}
if(checkselectset('select_category_id')){error_messages[1]='Oops! Before you can go to the next step you need to enter information in the highlighted fields.';error_message_details[1]+='&bull; You need to select a Category for your Contest.<br />';form_ok=false;}
for(var i=0;i<error_messages.length;i++){var error_element=$('error_'+i);var error_detail_element=$('error_detail_'+i);if(error_messages[i]!=''){error_element.innerHTML=error_messages[i];error_detail_element.innerHTML=error_message_details[i];error_element.show();error_detail_element.show();}else{error_element.hide();error_detail_element.hide();}}
if(form_ok==true){$('hidden_description').value=$('description_area').value;$('hidden_category').value=$('select_category_id').value;}
return form_ok;},checkRulesFormInPopup:function(){var error_message_detail='';var error_element=$('error_detail_0');var form_ok=true;if(checkfieldlength('user_rule_2',1)){error_message_detail='Whoops! Before you can move on you need to write your rules.';form_ok=false;}
if(form_ok==false){error_element.innerHTML=error_message_detail;error_element.show();}else{error_element.hide();}
return form_ok;},checkVotingFormInPopup:function(){var error_message_detail='';var error_element=$('error_detail_1');var form_ok=true;var winner_type_number=$('winner_type_number').value;if(winner_type_number==''){error_message_detail+='&bull; You need to specify how would you like the winner to be picked.<br />';form_ok=false;}
if(form_ok==false){error_element.innerHTML=error_message_detail;error_element.show();}else{error_element.hide();}
return form_ok;},checkPrizesFormInPopup:function(){var error_message_detail='';var error_element=$('error_detail_2');var form_ok=true;if(!($('badge_1').value>0&&$('badge_2').value>0&&$('badge_3').value>0)){form_ok=false;error_message_detail='Whoops! Before you can move on you need to select prizes.';}
if(form_ok==false){error_element.innerHTML=error_message_detail;error_element.show();}else{error_element.hide();}
return form_ok;},checkRulesForm:function(){var error_message_details=new Array('','','');var form_ok=true;if(checkfieldlength('user_rule_2',1)){error_message_details[0]='Whoops! Before you can move on you need to write your rules.';form_ok=false;}
var winner_type_number=$('winner_type_number').value;if(winner_type_number==''){error_message_details[1]='Whoops! Before you can move on you need to select how the winner will be picked.';form_ok=false;}
if(!($('badge_1').value>0&&$('badge_2').value>0&&$('badge_3').value>0)){form_ok=false;error_message_details[2]='Whoops! Before you can move on you need to select prizes.';}
for(var i=0;i<error_message_details.length;i++){var error_element=$('error_detail_'+i);if(error_message_details[i]!=''){error_element.innerHTML=error_message_details[i];error_element.show();}else{error_element.hide();}}
return form_ok;},check_url_availability_for_input:function(value){if(document.getElementById('error_detail_0').innerHTML.length<5){Kidzbop.UserContests.check_url_availability(value);}else{Kidzbop.UserContests.checkBannerForm();}},check_url_availability:function(value){var user_contest_id=document.getElementById('user_contest_id')?"&user_contest_id="+document.getElementById('user_contest_id').value.toString():'';new Ajax.Request('/user_contests/check_url_availability?title='+value+user_contest_id,{asynchronous:false,evalScripts:true});Kidzbop.UserContests.set_error_messages_for_url_availability();},set_error_messages_for_url_availability:function(){var form_ok=true;var error_message,error_message_detail_for_url;if(document.getElementById('url_available').value=='false'&&document.getElementById('title').value.length>0){error_message_detail_for_url='&bull; Contest title already exists<br />';document.getElementById('error_detail_for_url').innerHTML=error_message_detail_for_url;document.getElementById('title').style.border='1px solid red';$('error_detail_for_url').show();error_message='Oops! Before you can go to the next step you need to enter information in the highlighted fields.';document.getElementById('error_0').innerHTML=error_message;$('error_0').show();return false;}
else{if(document.getElementById('error_detail_0').innerHTML.length<5){document.getElementById('error_0').innerHTML='';$('error_0').hide();}
document.getElementById('error_detail_for_url').innerHTML='';$('error_detail_for_url').hide();document.getElementById('title').style.border='none';return true;}},checkDescriptionOnEntryUploadForm:function(){error_message='';error_message_detail='';var form_ok=true;if(checkfieldlength('fi-desc',1)){error_message_detail='&bull; You need to tell us why your entry should win.';form_ok=false;}
if(form_ok==false){error_message='Oops! Before you can go to the next step you need to enter information in the highlighted fields.';document.getElementById('error').innerHTML=error_message;document.getElementById('error_detail').innerHTML=error_message_detail;$('error').show();$('error_detail').show();}else{$('error').hide();$('error_detail').hide();}
return form_ok;},showIntroVideo:function(){$('show_intro_video').addClassName('link_bg');$('show_closing_video').removeClassName('link_bg');$('intro_box').show();$('outro_box').hide();},showClosingVideo:function(){$('show_intro_video').removeClassName('link_bg');$('show_closing_video').addClassName('link_bg');$('intro_box').hide();$('outro_box').show();},setWinnerType:function(number){$$('#radio_buttons_winner_type label').each(function(el){el.removeClassName('selected');});var selected=$('winner_type_'+number);if(selected){selected.addClassName('selected');$('winner_type_number').value=number;}},setBadge:function(place,number){$$('#badges_slider_div'+place+' label').each(function(el){el.removeClassName('selected');});var selected=$('badge_label_'+place+'_'+number);if(selected){selected.addClassName('selected');}
$('badge_'+place).value=number;}};Kidzbop.ImageCropper={checkUploadBackgroundForm:function(){if($('uploaded_file').value!=''){$('upload_indicator').show();$('background_upload_error_message_2').innerHTML="";document.background_upload_form.submit();return true;}
else{$('background_upload_error_message_2').innerHTML=$('uploaded_file').value==''?"You haven't selected an image to upload!":"";return false;}},cleanUploadBackgroundForm:function(){if($('uploaded_file'))$('uploaded_file').value='';if($('upload_indicator'))$('upload_indicator').hide();if($('upload_image'))$('upload_image').hide();if($('background_upload_error_message_2'))$('background_upload_error_message_2').innerHTML="";},show_hide_upload_bg_form:function(id,element_id){if($(id).style.display=="none"){if(window.returnBrowserType()=="IE"){$(element_id).setAttribute("className","edit_active");}else{$(element_id).setAttribute("class","edit_active");}}else{if(window.returnBrowserType()=="IE"){$(element_id).setAttribute("className","edit");}else{$(element_id).setAttribute("class","edit");}}
$(id).toggle();}};var JWPlayer=Class.create({initialize:function(containerID,options){this.options=options;this.containerID=containerID;this.base=this.options.base||"http://www.kidzbop.com";this.skin=this.options.skin||this.base+"/flash/nacht.zip";this.autostart=this.options.autostart||false;this.playlist=this.options.playlist||[];this.playerId=this.options.playerId||'jw_player';JWPlayer.prototype.image=this.options.image||'';this.dimensions={width:this.options.width||320,height:this.options.height||275};this.createPlaylist();this.createPlayer();}});JWPlayer.fn=JWPlayer.prototype;JWPlayer.fn.playlists={};JWPlayer.fn.video_ad=null;JWPlayer.fn.already_called_tracking_pixels={};JWPlayer.fn.createPlayer=function(){var flashvars={id:this.playerId,autostart:this.autostart,playlist:"none",playlistsize:"0",shuffle:false,repeat:"list",skin:this.skin,stretching:"exactfit",controlbar:"bottom",plugins:"gapro-1","gapro.accountid":"UA-10269482-1"};var params={allowfullscreen:true,allowscriptaccess:"always",wmode:"transparent",base:this.base};var attributes={id:this.playerId,name:this.playerId};swfobject.embedSWF(this.base+"/flash/jw_player.swf",this.containerID,this.dimensions.width,this.dimensions.height,"9.0.115",false,flashvars,params,attributes);};JWPlayer.fn.drawVideoAdvert=function(video_adverts,overall_freq_cap){if(overall_freq_cap==0||this.getOverallFreqCapCookieValue()<=overall_freq_cap){var ads=[];video_adverts.each(function(ad){if(ad['display_limit']==0||this.getAdCookieValue(ad['video_id'])<=ad['display_limit']){ads.push(ad);}}.bind(this));if(ads.length>0){return ads[Math.floor(Math.random()*ads.length)];}}
return null;};JWPlayer.fn.createPlaylist=function(){var list=new Array();this.playlist.each(function(e){list.push(e);}.bind(this));if(this.video_ad){this.updateAdCookieValue(this.video_ad['video_id']);setTimeout(function(){$$('body')[0].insert(this.video_ad['tracking_pixel']);}.bind(this),1000);list.unshift(this.video_ad);}
this.playlists[this.playerId]=list;};JWPlayer.fn.getAdCookieValue=function(video_id){var cookie_name='v_ad_'+video_id;var cookie=parseInt(Cookie.getCookie(cookie_name));return isNaN(cookie)?1:cookie+1;};JWPlayer.fn.getOverallFreqCapCookieValue=function(){var cookie_name='v_ad_overall';var cookie=parseInt(Cookie.getCookie(cookie_name));return isNaN(cookie)?1:cookie+1;};JWPlayer.fn.updateAdCookieValue=function(video_id){var cookie_name='v_ad_'+video_id;var date=new Date();var time_to_midnight=((23-date.getHours())*60+(60-date.getMinutes()))/(24*60);Cookie.setCookie(cookie_name,this.getAdCookieValue(video_id),time_to_midnight,'/');Cookie.setCookie('v_ad_overall',this.getOverallFreqCapCookieValue(),time_to_midnight,'/');};JWPlayer.fn.loadPlaylist=function(object_id){this.player=this.loadPlayerObject(object_id);this.player.sendEvent('LOAD',this.playlists[object_id]);};JWPlayer.fn.loadPlayerObject=function(object_id){return $(object_id);};JWPlayer.fn.addEvents=function(){this.player.addViewListener('PLAY','JWPlayer.fn.adRedirect');this.player.addModelListener('STATE','JWPlayer.fn.adMessage');this.player.addModelListener('TIME','JWPlayer.fn.playbackTracking');};JWPlayer.fn.playbackTracking=function(e){var item=this.getCurrentPlayingItem();if(item['ad']){if(!this.already_called_tracking_pixels[item['video_id']]){this.already_called_tracking_pixels[item['video_id']]={};}
var percent=e['position']/e['duration'];var place=0;[0,25,50,75,100].each(function(step){place=step==100?98:step;if(percent*100>=place&&item['tracking_pixel_'+step]&&!this.already_called_tracking_pixels[item['video_id']][step]){this.already_called_tracking_pixels[item['video_id']][step]=true;$$('body')[0].insert(item['tracking_pixel_'+step]);}}.bind(this));}};JWPlayer.fn.adRedirect=function(e){var item=this.getCurrentPlayingItem();var state=this.player.getConfig().state;if(!!item['ad']&&!!item['link']&&(state!='IDLE')&&(state!='COMPLETED')){window.location=item['link'];}};JWPlayer.fn.getCurrentPlayingItem=function(){return this.player.getPlaylist()[this.player.getConfig().item];};JWPlayer.fn.adMessage=function(e){var item=this.getCurrentPlayingItem();if(e.newstate=='PLAYING'&&item['ad']){this.player.up().insert('<div class="player_ad">Advertisement - Your content will start after this message.</div>');}else{this.player.up().select('.player_ad').each(function(e){e.remove();});}};playerReady=function(e){JWPlayer.fn.loadPlaylist(e['id']);JWPlayer.fn.addEvents(e['id']);};var Carousel=Class.create();Carousel.prototype={carousel_in_progress:false,updating_items:false,nextButton:null,prevButton:null,carouselElement:null,step:null,item_width:null,total_number_of_items:null,loaded_number_of_items:null,current_position:0,fetch_url:null,initialize:function(options){this.nextButton=$(options.next_button_id);this.prevButton=$(options.prev_button_id);this.carouselElement=$(options.carousel_element_id);this.step=options.step;this.item_width=options.item_width;this.total_number_of_items=options.total_number_of_items;this.loaded_number_of_items=options.loaded_number_of_items;this.fetch_url=options.fetch_url;this.initializeButtons();},initializeButtons:function(){this.showOrHideButtons();this.nextButton.onclick=function(){this.moveCarouselNext();return false;}.bind(this);this.prevButton.onclick=function(){this.moveCarouselPrev();return false;}.bind(this);},moveCarouselNext:function(){var step=this.current_position+this.step+this.step>this.loaded_number_of_items?this.loaded_number_of_items-this.current_position-this.step:this.step;this.moveCarousel(step);},moveCarouselPrev:function(){var step=-1*(this.current_position-this.step<0?this.current_position:this.step);this.moveCarousel(step);},moveCarousel:function(step){if(this.carousel_in_progress===false&&step!=0){this.carousel_in_progress=true;this.current_position+=step;this.loadElements();new Effect.Move(this.carouselElement,{x:-1*step*this.item_width,y:0,mode:'relative',duration:0.5,transition:Effect.Transitions.sinoidal,afterFinish:function(){this.showOrHideButtons();this.carousel_in_progress=false;}.bind(this)});}},showOrHideButtons:function(){if(this.current_position>0){this.prevButton.show();}else{this.prevButton.hide();}
if(this.current_position+this.step<this.loaded_number_of_items){this.nextButton.show();}else{this.nextButton.hide();}},canUpdateItems:function(){return this.updating_items===false&&this.fetch_url&&(this.current_position+2*this.step>=this.loaded_number_of_items)&&this.loaded_number_of_items<this.total_number_of_items;},loadElements:function(){if(this.canUpdateItems()){this.updating_items=true;var url=this.fetch_url+'&offset='+this.loaded_number_of_items;new Ajax.Request(url,{method:'get',onSuccess:function(response){this.carouselElement.insert(response.responseText);this.loaded_number_of_items=this.carouselElement.childElements().size();this.carouselElement.style.width=(this.loaded_number_of_items*(this.item_width+2))+'px';this.showOrHideButtons();}.bind(this),onComplete:function(){this.updating_items=false;}.bind(this)});}}}