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 Stars=Class.create();Stars.prototype={initialize:function(options){this.options={bindField:null,maxRating:5,container:null,imgPath:'/images/',imgRate:'',imgYourRate:'your_rating.gif',imgOn:'star_on.gif',imgOff:'star_off.gif',imgRateOn:'star_on_r.gif',imgRateOff:'star_off_r.gif',actionURL:null,initialRate:0,locked:false,ratingTextId:'rating_text'};Object.extend(this.options,options);this.yourRate=0;this.stars=[];this.locked=this.options.locked;this.infoImg=new Image();this.starSrc={empty:this.options.imgPath+this.options.imgOff,full:this.options.imgPath+this.options.imgOn,rate_empty:this.options.imgPath+this.options.imgRateOff,rate_full:this.options.imgPath+this.options.imgRateOn};this.display();},display:function(){this.getContainer();var p=document.createElement('p');p.className='stars';if(this.locked){p.className+='_r';};if(this.options.imgRate!=''){p.appendChild(this.setInfoImg());}
p.appendChild(this.buildStars());this.container.appendChild(p);this.setInitialState();},setInfoImg:function(){if(this.locked){this.infoImg.src=this.options.imgPath+this.options.imgYourRate;this.infoImg.alt='';}else{this.infoImg.src=this.options.imgPath+this.options.imgRate;this.infoImg.alt='';}
return this.infoImg;},getContainer:function(){if(this.options.container){this.container=$(this.options.container);}else{var containerId='starsContainer.'+Math.random(0,100000);document.write('<p class="rate" id="'+containerId+'"></p>');this.container=$(containerId);}},buildStars:function(){var span=document.createElement('span');for(var i=0;i<this.options.maxRating;i++){var star=new Image();star.src=this.starSrc.empty;if(!this.locked){star.style.cursor='pointer';}
if(!this.locked){Event.observe(star,'mouseover',this.starMouseOver.bind(this));Event.observe(star,'click',this.starMouseClick.bind(this));Event.observe(star,'mouseout',this.starMouseOut.bind(this));}
this.stars.push(star);span.appendChild(star);}
return span;},starMouseOver:function(e){if(this.locked){return;}
if(!e)e=window.event;var star=Event.element(e);var rating_text='';var markFull=true;for(var i=0;i<this.stars.length;i++){this.stars[i].src=markFull?this.starSrc.full:this.starSrc.empty;if(this.stars[i]==star){markFull=false;switch(i+1){case 1:rating_text='Needs Work';break;case 2:rating_text='Okay';break;case 3:rating_text='Really good';break;case 4:rating_text='Totally awesome!';break;case 5:rating_text='Best thing EVER!';break;}
var rating_text_el=$(this.options.ratingTextId);if(rating_text_el){rating_text_el.innerHTML=rating_text;}}}},starMouseClick:function(e){if(this.locked){return;}
if(!e)e=window.event;var star=Event.element(e);for(var i=0;i<this.stars.length;i++){if(this.stars[i]==star){this.yourRate=i+1;this.setState();break;}}},starMouseOut:function(e){if(this.locked){return;}
this.setStarsSrc(this.options.initialRate);var rating_text_el=$(this.options.ratingTextId);if(rating_text_el){rating_text_el.innerHTML=' ';}},setStarsSrc:function(rateValue){var prefix=this.locked?"rate_":"";for(var i=1;i<this.stars.length+1;i++){this.stars[i-1].src=(i<=rateValue+0.5)?eval("this.starSrc."+prefix+"full"):eval("this.starSrc."+prefix+"empty");}},sendAjaxRequest:function(){if(this.options.actionURL){new Ajax.Request(this.options.actionURL+"&rate="+this.yourRate,{method:'get'});}},setInitialState:function(){this.setStarsSrc(this.options.initialRate)
this.setWidgetValue(this.options.initialRate);},setState:function(){var markFull=true;for(var i=0;i<this.stars.length;i++){this.stars[i].src=markFull?this.starSrc.full:this.starSrc.empty;if(i+1==this.yourRate){markFull=false;}}
this.sendAjaxRequest();this.locked=true;this.setInfoImg();this.setStarsSrc(this.yourRate);this.setWidgetValue(this.yourRate);},setWidgetValue:function(rate){if(this.options.bindField){$(this.options.bindField).value=rate;}}};if(!window.Kidzbop)Kidzbop={};var player_playing_state=false;Kidzbop.MyChannel={showPlayer:function(){if($('jw_mp3_player_container')){$('jw_mp3_player_container').show();}},check_yes_or_no_selected_radio_button:function(form){var radio_buttons=form.getInputs('radio');var selected_yes=false;if(radio_buttons){radio_buttons.each(function(radio){if(radio.checked&&radio.value=="yes"){selected_yes=true;return;}});}
return selected_yes;},toogleClassName:function(element,class_name){if(element.hasClassName(class_name)){element.removeClassName(class_name);}else{element.addClassName(class_name);}
return element;},toggleInfoRow:function(attribute_name,fill_element){var text_element=$(attribute_name);var form_element=$(attribute_name+'_form');var error_message_element=$(attribute_name+'_error');var edit_element=$(attribute_name+'_edit');if(text_element&&form_element&&error_message_element&&edit_element){text_element.toggle();if(fill_element=='form'){var textarea_element=form_element.select('textarea')[0];textarea_element.value=text_element.innerHTML;limitchars(400,textarea_element,attribute_name+'_chars_count',1);}else if(fill_element=='text'){text_element.innerHTML=form_element.select('textarea')[0].value;}
error_message_element.hide();form_element.toggle();edit_element.toggle();}},checkCheckboxes:function(checkboxes,value){checkboxes.each(function(checkbox){checkbox.checked=value;});},showStatusesDropdown:function(){$$('#online_status .dropdown')[0].show();$$('#online_status .button')[0].hide();setTimeout("Event.observe($$('body')[0], 'click', Kidzbop.MyChannel.hideStatusesDropdown)",200);},hideStatusesDropdown:function(){$$('#online_status .dropdown')[0].hide();$$('#online_status .button')[0].show();Event.stopObserving($$('body')[0],'click',Kidzbop.MyChannel.hideStatusesDropdown);}};Event.observe(window,'load',function(){Kidzbop.MyChannel.showPlayer();});Kidzbop.Photos={check_files_selected_status:function(show_alert){var oInputFilesSelected=document.getElementById('files_selected');if(oInputFilesSelected){if(oInputFilesSelected.value=='false'){if(show_alert)alert('Please click "Upload" and select a photo before clicking "Next"');return false;}
else{return true;}}
else{return false;}},check_if_files_upload_is_finished:function(show_alert){var oInputFilesSelected=document.getElementById('files_finished_uploading');if(oInputFilesSelected){if(oInputFilesSelected.value=='false'){if(show_alert)alert('Your photos are being uploaded. Please wait until all uploads are complete, then click "Next"');return false;}else{return true;}}
else{return true;}},check_photo_album_to_edit:function(form){if(form.album_id.value=='0'){$('error_message').show();return false;}},set_album_active:function(el){$$('.edit_photo_album .album_thumbnail').each(function(img){img.removeClassName('active_album');});el.addClassName('active_album');},select_image_and_check_box:function(selected_check_box_id,selected_image_id){var selected_check_box=$(selected_check_box_id);var selected_image=$(selected_image_id);if(selected_check_box.checked==true){selected_check_box.checked=false;selected_image.removeClassName('clicked');}else{selected_check_box.checked=true;selected_image.addClassName('clicked');}},check_selected_check_boxes:function(check_boxes_name){var aSelectedCheckBoxes=$$(check_boxes_name);var iSelectedNumber=0;for(var i=0;i<aSelectedCheckBoxes.length;i++){if(aSelectedCheckBoxes[i].checked)iSelectedNumber+=1;}
if(iSelectedNumber>0){return iSelectedNumber;}
return false;},check_files_selected_and_selected_images:function(show_function_alert){if(!(Kidzbop.Photos.check_if_files_upload_is_finished(true))){return false;}
else if(!(Kidzbop.Photos.check_files_selected_status(show_function_alert)||Kidzbop.Photos.check_selected_check_boxes('input[name="photos_list[]"]'))){if(!show_function_alert)alert('Please click "Upload" and select a photo before clicking "Next"');return false;}else{return true;}},check_selected_images:function(){var hidden_fields=$$('#photos_you_made_slider_div input[name="photos_list[]"]');for(var i=0;i<hidden_fields.length;i++){if(hidden_fields[i].value!=''){return true;}}
alert('Please choose photos before clicking "Next"');return false;},set_form_action_for_photos_upload:function(form,edit_photos_url,confirm_url){if(Kidzbop.Photos.check_files_selected_status(false)){form.action=edit_photos_url;}else{form.action=confirm_url;}
return true;},togglePhoto:function(photo_id,image){var hidden=$('photo_hidden_'+photo_id);hidden.value=hidden.value==''?photo_id:'';image.toggleClassName('active');},choosePhotoAlbum:function(photo_album_id,image){var hidden=$('photo_album_hidden');hidden.value=photo_album_id;$$('#photo_albums_slider_div .cell').each(function(img){img.removeClassName('active');});image.toggleClassName('active');},check_selected_album:function(){var hidden=$('photo_album_hidden');if(hidden.value==''){alert('Please choose a photo album');return false;}
return true;}};Kidzbop.UploadContent={setContent:function(type,id){var element_type=$('type');var element_id=$('content_id');if(element_type&&element_id){element_type.value=type;element_id.value=id;}
$$('.carousel_container div.cell').each(function(el){el.removeClassName('active');});var element_content=$(type+'_'+id);if(element_content){element_content.addClassName('active');}},setClassPopupConfirmation:function(){var popup=$('popup_update_content');if(popup){popup.addClassName('confirmation');}}};Kidzbop.AlertsEmailSettings={toggleAlertsRules:function(){var element_rules=$('alerts_rules');var element_save=$('alerts_save');var element_yes_cancel=$('alerts_yes_cancel');if(element_rules&&element_save&&element_yes_cancel){element_rules.toggle();element_save.toggle();element_yes_cancel.toggle();if(popup.getHeight()==320){popup.setHeight(600);}else{popup.setHeight(320);}}},validateEmails:function(){return!!(Kidzbop.SignUp.checkUserEmail(false)&&Kidzbop.SignUp.checkUserEmailConfirm(false));}};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)});}}}
LightboxOptions=Object.extend({fileLoadingImage:'/images/lightbox/loading.gif',fileBottomNavCloseImage:'/images/lightbox/closelabel.gif',overlayOpacity:0.8,animate:true,resizeSpeed:7,borderSize:10,labelImage:"Image",labelOf:"of"},window.LightboxOptions||{});var Lightbox=Class.create();Lightbox.prototype={imageArray:[],activeImage:undefined,initialize:function(){this.updateImageList();this.keyboardAction=this.keyboardAction.bindAsEventListener(this);if(LightboxOptions.resizeSpeed>10)LightboxOptions.resizeSpeed=10;if(LightboxOptions.resizeSpeed<1)LightboxOptions.resizeSpeed=1;this.resizeDuration=LightboxOptions.animate?((11-LightboxOptions.resizeSpeed)*0.15):0;this.overlayDuration=LightboxOptions.animate?0.2:0;var size=(LightboxOptions.animate?250:1)+'px';var objBody=$$('body')[0];objBody.appendChild(Builder.node('div',{id:'overlay'}));objBody.appendChild(Builder.node('div',{id:'lightbox'},[Builder.node('div',{id:'outerImageContainer'},Builder.node('div',{id:'imageContainer'},[Builder.node('img',{id:'lightboxImage'}),Builder.node('div',{id:'hoverNav'},[Builder.node('a',{id:'prevLink',href:'#'}),Builder.node('a',{id:'nextLink',href:'#'})]),Builder.node('div',{id:'loading'},Builder.node('a',{id:'loadingLink',href:'#'},Builder.node('img',{src:LightboxOptions.fileLoadingImage})))])),Builder.node('div',{id:'imageDataContainer'},Builder.node('div',{id:'imageData'},[Builder.node('div',{id:'imageDetails'},[Builder.node('span',{id:'caption'}),Builder.node('span',{id:'numberDisplay'})]),Builder.node('div',{id:'bottomNav'},Builder.node('a',{id:'bottomNavClose',href:'#'},Builder.node('img',{src:LightboxOptions.fileBottomNavCloseImage})))]))]));$('overlay').hide().observe('click',(function(){this.end();}).bind(this));$('lightbox').hide().observe('click',(function(event){if(event.element().id=='lightbox')this.end();}).bind(this));$('outerImageContainer').setStyle({width:size,height:size});$('prevLink').observe('click',(function(event){event.stop();this.changeImage(this.activeImage-1);}).bindAsEventListener(this));$('nextLink').observe('click',(function(event){event.stop();this.changeImage(this.activeImage+1);}).bindAsEventListener(this));$('loadingLink').observe('click',(function(event){event.stop();this.end();}).bind(this));$('bottomNavClose').observe('click',(function(event){event.stop();this.end();}).bind(this));var th=this;(function(){var ids='overlay lightbox outerImageContainer imageContainer lightboxImage hoverNav prevLink nextLink loading loadingLink '+'imageDataContainer imageData imageDetails caption numberDisplay bottomNav bottomNavClose';$w(ids).each(function(id){th[id]=$(id);});}).defer();},updateImageList:function(){this.updateImageList=Prototype.emptyFunction;document.observe('click',(function(event){var target=event.findElement('a[rel^=lightbox]')||event.findElement('area[rel^=lightbox]');if(target){event.stop();this.start(target);}}).bind(this));},start:function(imageLink){$$('select','object','embed').each(function(node){node.style.visibility='hidden'});var arrayPageSize=this.getPageSize();$('overlay').setStyle({width:arrayPageSize[0]+'px',height:arrayPageSize[1]+'px'});new Effect.Appear(this.overlay,{duration:this.overlayDuration,from:0.0,to:LightboxOptions.overlayOpacity});this.imageArray=[];var imageNum=0;if((imageLink.rel=='lightbox')){this.imageArray.push([imageLink.href,imageLink.title]);}else{this.imageArray=$$(imageLink.tagName+'[href][rel="'+imageLink.rel+'"]').collect(function(anchor){return[anchor.href,anchor.title];}).uniq();while(this.imageArray[imageNum][0]!=imageLink.href){imageNum++;}}
var arrayPageScroll=document.viewport.getScrollOffsets();var lightboxTop=arrayPageScroll[1]+(document.viewport.getHeight()/10);var lightboxLeft=arrayPageScroll[0];this.lightbox.setStyle({top:lightboxTop+'px',left:lightboxLeft+'px'}).show();this.changeImage(imageNum);},changeImage:function(imageNum){this.activeImage=imageNum;if(LightboxOptions.animate)this.loading.show();this.lightboxImage.hide();this.hoverNav.hide();this.prevLink.hide();this.nextLink.hide();this.imageDataContainer.setStyle({opacity:.0001});this.numberDisplay.hide();var imgPreloader=new Image();imgPreloader.onload=(function(){this.lightboxImage.src=this.imageArray[this.activeImage][0];this.resizeImageContainer(imgPreloader.width,imgPreloader.height);}).bind(this);imgPreloader.src=this.imageArray[this.activeImage][0];},resizeImageContainer:function(imgWidth,imgHeight){var widthCurrent=this.outerImageContainer.getWidth();var heightCurrent=this.outerImageContainer.getHeight();var widthNew=(imgWidth+LightboxOptions.borderSize*2);var heightNew=(imgHeight+LightboxOptions.borderSize*2);var xScale=(widthNew/widthCurrent)*100;var yScale=(heightNew/heightCurrent)*100;var wDiff=widthCurrent-widthNew;var hDiff=heightCurrent-heightNew;if(hDiff!=0)new Effect.Scale(this.outerImageContainer,yScale,{scaleX:false,duration:this.resizeDuration,queue:'front'});if(wDiff!=0)new Effect.Scale(this.outerImageContainer,xScale,{scaleY:false,duration:this.resizeDuration,delay:this.resizeDuration});var timeout=0;if((hDiff==0)&&(wDiff==0)){timeout=100;if(Prototype.Browser.IE)timeout=250;}
(function(){this.prevLink.setStyle({height:imgHeight+'px'});this.nextLink.setStyle({height:imgHeight+'px'});this.imageDataContainer.setStyle({width:widthNew+'px'});this.showImage();}).bind(this).delay(timeout/1000);},showImage:function(){this.loading.hide();new Effect.Appear(this.lightboxImage,{duration:this.resizeDuration,queue:'end',afterFinish:(function(){this.updateDetails();}).bind(this)});this.preloadNeighborImages();},updateDetails:function(){if(this.imageArray[this.activeImage][1]!=""){this.caption.update(this.imageArray[this.activeImage][1]).show();}
if(this.imageArray.length>1){this.numberDisplay.update(LightboxOptions.labelImage+' '+(this.activeImage+1)+' '+LightboxOptions.labelOf+'  '+this.imageArray.length).show();}
new Effect.Parallel([new Effect.SlideDown(this.imageDataContainer,{sync:true,duration:this.resizeDuration,from:0.0,to:1.0}),new Effect.Appear(this.imageDataContainer,{sync:true,duration:this.resizeDuration})],{duration:this.resizeDuration,afterFinish:(function(){var arrayPageSize=this.getPageSize();this.overlay.setStyle({height:arrayPageSize[1]+'px'});this.updateNav();}).bind(this)});},updateNav:function(){this.hoverNav.show();if(this.activeImage>0)this.prevLink.show();if(this.activeImage<(this.imageArray.length-1))this.nextLink.show();this.enableKeyboardNav();},enableKeyboardNav:function(){document.observe('keydown',this.keyboardAction);},disableKeyboardNav:function(){document.stopObserving('keydown',this.keyboardAction);},keyboardAction:function(event){var keycode=event.keyCode;var escapeKey;if(event.DOM_VK_ESCAPE){escapeKey=event.DOM_VK_ESCAPE;}else{escapeKey=27;}
var key=String.fromCharCode(keycode).toLowerCase();if(key.match(/x|o|c/)||(keycode==escapeKey)){this.end();}else if((key=='p')||(keycode==37)){if(this.activeImage!=0){this.disableKeyboardNav();this.changeImage(this.activeImage-1);}}else if((key=='n')||(keycode==39)){if(this.activeImage!=(this.imageArray.length-1)){this.disableKeyboardNav();this.changeImage(this.activeImage+1);}}},preloadNeighborImages:function(){var preloadNextImage,preloadPrevImage;if(this.imageArray.length>this.activeImage+1){preloadNextImage=new Image();preloadNextImage.src=this.imageArray[this.activeImage+1][0];}
if(this.activeImage>0){preloadPrevImage=new Image();preloadPrevImage.src=this.imageArray[this.activeImage-1][0];}},end:function(){this.disableKeyboardNav();this.lightbox.hide();new Effect.Fade(this.overlay,{duration:this.overlayDuration});$$('select','object','embed').each(function(node){node.style.visibility='visible'});},getPageSize:function(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=window.innerWidth+window.scrollMaxX;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}
var windowWidth,windowHeight;if(self.innerHeight){if(document.documentElement.clientWidth){windowWidth=document.documentElement.clientWidth;}else{windowWidth=self.innerWidth;}
windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}
if(xScroll<windowWidth){pageWidth=xScroll;}else{pageWidth=windowWidth;}
return[pageWidth,pageHeight];}}
lightbox=null;document.observe('dom:loaded',function(){lightbox=new Lightbox();});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);}
if(!window.Kidzbop)Kidzbop={};Kidzbop.SignUp={setGender:function(gender){$$('.gender a').each(function(el){el.removeClassName('selected');});var selected=$('gender_'+gender);if(selected){selected.addClassName('selected');}
$('user_sex').value=gender;},checkUsername:function(){if($('signup-username').value.length<4){return this.setErrorMessage('login-check',false,'Oops! You need to create a membername.');}else if($('signup-username').value.match(/[^a-zA-Z0-9\-_]/)){return this.setErrorMessage('login-check',false,'Oops! Your membername can include only letters and numbers.');}
new Ajax.Request('/join/username_available',{asynchronous:false,evalScripts:true,parameters:{login:$('signup-username').value}});return true;},checkPassword:function(still_typing){if($('signup-username').value==$('signup-password').value){return this.setErrorMessage('pass-check',false,'Oops! You need to create a password.');}else if(!still_typing&&$('signup-password').value.length<4){return this.setErrorMessage('pass-check',false,'Oops! You need to create a password.');}else if(!still_typing){return this.setErrorMessage('pass-check',true,'Cool now be sure to remember it!');}else{return this.resetErrorMessage('pass-check');}},checkPasswordConfirm:function(on_submit){if($('signup-password').value==""){return this.setErrorMessage('pass_confirm-check',false,'Oops! You need to create a password.');}
else if($('signup-password').value==$('signup-password-confirm').value){return this.setErrorMessage('pass_confirm-check',true,'Good memory. It\'s a match!');}else{return this.setErrorMessage('pass_confirm-check',false,'Oops! It didn\'t match. Please retype.');}},checkGender:function(){if($('user_sex').value!='boy'&&$('user_sex').value!='girl'){return this.setErrorMessage('gender-check',false,'Oops! You forgot to tell us.');}else{return this.resetErrorMessage('gender-check');}},checkBirthDate:function(){if($('user_birth_date_1i').value==''||$('user_birth_date_2i').value==''||$('user_birth_date_3i').value==''){return this.setErrorMessage('birth_date-check',false,'Oops! You forgot to tell us.');}else{return this.resetErrorMessage('birth_date-check');}},checkParentEmail:function(under_thirteen){if(under_thirteen){if($('parents_email').value==''){return this.setErrorMessage('parent_email-check',false,'Oops! You forgot to tell us.');}else if(!isEmailValid($('parents_email').value)){return this.setErrorMessage('parent_email-check',false,'Oops! That\'s not a real email. Please re-enter.');}else{return this.setErrorMessage('parent_email-check',true,'Thanks we\'ll be in touch with them.');}}else{return true;}},checkParentEmailConfirm:function(under_thirteen){if(under_thirteen){if($('parents_email').value==""&&$('parents_email_confirm').value==""){return this.setErrorMessage('parent_email_confirm-check',false,'Oops! You forgot to tell us.');}else if($('parents_email').value!=$('parents_email_confirm').value){return this.setErrorMessage('parent_email_confirm-check',false,'Oops! they don\'t match. Please re-type.');}else{return this.setErrorMessage('parent_email_confirm-check',true,'Good memory. It\'s a match!');}}else{return true;}},checkUserEmail:function(under_thirteen){if(under_thirteen){if($('user_email').value!=''){if(!isEmailValid($('user_email').value)){return this.setErrorMessage('user_email-check',false,'Oops! That\'s not a real email. Please re-enter.');}else if($('user_email').value==$('parents_email').value){return this.setErrorMessage('user_email-check',false,'Oops! That\'s the same email as your parent.');}else{return this.setErrorMessage('user_email-check',true,'Thanks we\'ll be in touch with you!');}}else{return this.resetErrorMessage('user_email-check');}}else{if($('user_email').value==''){return this.setErrorMessage('user_email-check',false,'Oops! You forgot to tell us.');}else if(!isEmailValid($('user_email').value)){return this.setErrorMessage('user_email-check',false,'Oops! That\'s not a real email. Please re-enter.');}else{return this.setErrorMessage('user_email-check',true,'Thanks we\'ll be in touch with you!');}}},checkUserEmailConfirm:function(under_thirteen){if($('user_email').value==''&&$('user_email_confirm').value==''){if(under_thirteen){return this.resetErrorMessage('user_email_confirm-check');}else{return this.setErrorMessage('user_email_confirm-check',false,'Oops! You forgot to tell us.');}}else{if($('user_email').value==$('user_email_confirm').value){return this.setErrorMessage('user_email_confirm-check',true,'Good memory. It\'s a match!');}else{return this.setErrorMessage('user_email_confirm-check',false,'Oops! they don\'t match. Please re-type.');}}},validateStep1:function(){return!!(this.checkUsername()&this.checkPassword()&this.checkPasswordConfirm()&this.checkGender()&this.checkBirthDate());},validateStep2:function(under_thirteen){return!!(this.checkParentEmail(under_thirteen)&this.checkParentEmailConfirm(under_thirteen)&this.checkUserEmail(under_thirteen)&this.checkUserEmailConfirm(under_thirteen));},showSpinner:function(element_id){Element.replace(element_id,'<img src="/images/spinner.gif" id="spinner" />');},setErrorMessage:function(error_id,success,message){var error_container=$(error_id);if(error_container){if(success){error_container.update('<p class="success">'+message+'</p>');}else{error_container.update('<p class="error">'+message+'</p>');}}
return success;},resetErrorMessage:function(error_id){var error_container=$(error_id);if(error_container){error_container.update('');}
return true;},tooglePadlock:function(padlock_id,bar){$(padlock_id).toggle();Element.extend(bar);bar.toggleClassName('active');}};Kidzbop.Parents={goToParentsSection:function(link,element_id){if(scrollbar){scrollbar.scrollToElement(element_id);}
$$('.parents_left_nav li a').each(function(e){e.className='';});link.className='active';},checkParentFeedbackFrom:function(form_id){var form_ok=true;error_message='';var form=$(form_id);if(form.email.value==''||!isEmailValid(form.email.value)){form_ok=false;$('email_error').show();}else{$('email_error').hide();}
if(form.fe_message.value.length<1){form_ok=false;$('comment_error').show();}else{$('comment_error').hide();}
return form_ok;}};Kidzbop.AudioPlayer=Class.create({initialize:function(){},setPlayer:function(flashPlayer){this.flashPlayer=flashPlayer;},onInit:function(){},onUpdate:function(){if(this.isPlaying=="false"){this.stop();}},play:function(track){this.stop();this.currentTrack=track;this.flashPlayer.SetVariable("method:setUrl",this.currentTrack.url);this.flashPlayer.SetVariable("method:play","");this.flashPlayer.SetVariable("enabled","true");this.currentTrack.play();},stop:function(){if(this.currentTrack!=null){this.currentTrack.stop();}
this.flashPlayer.SetVariable("method:stop","");}});Kidzbop.Track=Class.create({initialize:function(url,albumName,trackName,playButton,stopButton){this.url=url;this.albumName=albumName;this.trackName=trackName;this.playButton=playButton;this.stopButton=stopButton;},play:function(){this.playButton.hide();this.stopButton.show();if(typeof(pageTracker)!='undefined'){pageTracker._trackEvent("Cd Albums",this.albumName,this.trackName+' play event');}
var play_number=this.playButton.up('div.play_number');if(play_number){play_number.addClassName('show_play');}},stop:function(){this.stopButton.hide();this.playButton.show();var play_number=this.playButton.up('div.play_number');if(play_number){play_number.removeClassName('show_play');}}});var audioPlayer=new Kidzbop.AudioPlayer();Kidzbop.Comments={toogleCommentsProps:function(id){$$('.props_comments_nav .button').each(function(el){el.removeClassName('active');$(el.id.replace('_button','')).hide();});$(id).show();$(id+'_button').addClassName('active');if(id=='video_props'&&video_prop_scroller_initialized==false&&$$('.props_scroller .Scroller').size>0){Scrolling.createScroll($$('.props_scroller .Scroller')[0].id,$$('.props_scroller .Scrollbar-Container')[0].id,600,300);video_prop_scroller_initialized=true;}}};var video_prop_scroller_initialized=false;