String.prototype.parseColor=function(){var color='#';if(this.slice(0,4)=='rgb('){var cols=this.slice(4,this.length-1).split(',');var i=0;do{color+=parseInt(cols[i]).toColorPart()}while(++i<3);}else{if(this.slice(0,1)=='#'){if(this.length==4)for(var i=1;i<4;i++)color+=(this.charAt(i)+this.charAt(i)).toLowerCase();if(this.length==7)color=this.toLowerCase();}}
return(color.length==7?color:(arguments[0]||this));}
Element.collectTextNodes=function(element){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:(node.hasChildNodes()?Element.collectTextNodes(node):''));}).flatten().join('');}
Element.collectTextNodesIgnoreClass=function(element,className){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:((node.hasChildNodes()&&!Element.hasClassName(node,className))?Element.collectTextNodesIgnoreClass(node,className):''));}).flatten().join('');}
Element.setContentZoom=function(element,percent){element=$(element);element.setStyle({fontSize:(percent/100)+'em'});if(Prototype.Browser.WebKit)window.scrollBy(0,0);return element;}
Element.getInlineOpacity=function(element){return $(element).style.opacity||'';}
Element.forceRerendering=function(element){try{element=$(element);var n=document.createTextNode(' ');element.appendChild(n);element.removeChild(n);}catch(e){}};Array.prototype.call=function(){var args=arguments;this.each(function(f){f.apply(this,args)});}
var Effect={_elementDoesNotExistError:{name:'ElementDoesNotExistError',message:'The specified DOM element does not exist, but is required for this effect to operate'},tagifyText:function(element){if(typeof Builder=='undefined')
throw("Effect.tagifyText requires including script.aculo.us' builder.js library");var tagifyStyle='position:relative';if(Prototype.Browser.IE)tagifyStyle+=';zoom:1';element=$(element);$A(element.childNodes).each(function(child){if(child.nodeType==3){child.nodeValue.toArray().each(function(character){element.insertBefore(Builder.node('span',{style:tagifyStyle},character==' '?String.fromCharCode(160):character),child);});Element.remove(child);}});},multiple:function(element,effect){var elements;if(((typeof element=='object')||(typeof element=='function'))&&(element.length))
elements=element;else
elements=$(element).childNodes;var options=Object.extend({speed:0.1,delay:0.0},arguments[2]||{});var masterDelay=options.delay;$A(elements).each(function(element,index){new effect(element,Object.extend(options,{delay:index*options.speed+masterDelay}));});},PAIRS:{'slide':['SlideDown','SlideUp'],'blind':['BlindDown','BlindUp'],'appear':['Appear','Fade']},toggle:function(element,effect){element=$(element);effect=(effect||'appear').toLowerCase();var options=Object.extend({queue:{position:'end',scope:(element.id||'global'),limit:1}},arguments[2]||{});Effect[element.visible()?Effect.PAIRS[effect][1]:Effect.PAIRS[effect][0]](element,options);}};var Effect2=Effect;Effect.Transitions={linear:Prototype.K,sinoidal:function(pos){return(-Math.cos(pos*Math.PI)/2)+0.5;},reverse:function(pos){return 1-pos;},flicker:function(pos){var pos=((-Math.cos(pos*Math.PI)/4)+0.75)+Math.random()/4;return(pos>1?1:pos);},wobble:function(pos){return(-Math.cos(pos*Math.PI*(9*pos))/2)+0.5;},pulse:function(pos,pulses){pulses=pulses||5;return(Math.round((pos%(1/pulses))*pulses)==0?((pos*pulses*2)-Math.floor(pos*pulses*2)):1-((pos*pulses*2)-Math.floor(pos*pulses*2)));},none:function(pos){return 0;},full:function(pos){return 1;}};Effect.ScopedQueue=Class.create();Object.extend(Object.extend(Effect.ScopedQueue.prototype,Enumerable),{initialize:function(){this.effects=[];this.interval=null;},_each:function(iterator){this.effects._each(iterator);},add:function(effect){var timestamp=new Date().getTime();var position=(typeof effect.options.queue=='string')?effect.options.queue:effect.options.queue.position;switch(position){case'front':this.effects.findAll(function(e){return e.state=='idle'}).each(function(e){e.startOn+=effect.finishOn;e.finishOn+=effect.finishOn;});break;case'with-last':timestamp=this.effects.pluck('startOn').max()||timestamp;break;case'end':timestamp=this.effects.pluck('finishOn').max()||timestamp;break;}
effect.startOn+=timestamp;effect.finishOn+=timestamp;if(!effect.options.queue.limit||(this.effects.length<effect.options.queue.limit))
this.effects.push(effect);if(!this.interval)
this.interval=setInterval(this.loop.bind(this),15);},remove:function(effect){this.effects=this.effects.reject(function(e){return e==effect});if(this.effects.length==0){clearInterval(this.interval);this.interval=null;}},loop:function(){var timePos=new Date().getTime();for(var i=0,len=this.effects.length;i<len;i++)
this.effects[i]&&this.effects[i].loop(timePos);}});Effect.Queues={instances:$H(),get:function(queueName){if(typeof queueName!='string')return queueName;if(!this.instances[queueName])
this.instances[queueName]=new Effect.ScopedQueue();return this.instances[queueName];}}
Effect.Queue=Effect.Queues.get('global');Effect.DefaultOptions={transition:Effect.Transitions.sinoidal,duration:1.0,fps:100,sync:false,from:0.0,to:1.0,delay:0.0,queue:'parallel'}
Effect.Base=function(){};Effect.Base.prototype={position:null,start:function(options){function codeForEvent(options,eventName){return((options[eventName+'Internal']?'this.options.'+eventName+'Internal(this);':'')+
(options[eventName]?'this.options.'+eventName+'(this);':''));}
if(options.transition===false)options.transition=Effect.Transitions.linear;this.options=Object.extend(Object.extend({},Effect.DefaultOptions),options||{});this.currentFrame=0;this.state='idle';this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.fromToDelta=this.options.to-this.options.from;this.totalTime=this.finishOn-this.startOn;this.totalFrames=this.options.fps*this.options.duration;eval('this.render = function(pos){ '+'if(this.state=="idle"){this.state="running";'+
codeForEvent(options,'beforeSetup')+
(this.setup?'this.setup();':'')+
codeForEvent(options,'afterSetup')+'};if(this.state=="running"){'+'pos=this.options.transition(pos)*'+this.fromToDelta+'+'+this.options.from+';'+'this.position=pos;'+
codeForEvent(options,'beforeUpdate')+
(this.update?'this.update(pos);':'')+
codeForEvent(options,'afterUpdate')+'}}');this.event('beforeStart');if(!this.options.sync)
Effect.Queues.get(typeof this.options.queue=='string'?'global':this.options.queue.scope).add(this);},loop:function(timePos){if(timePos>=this.startOn){if(timePos>=this.finishOn){this.render(1.0);this.cancel();this.event('beforeFinish');if(this.finish)this.finish();this.event('afterFinish');return;}
var pos=(timePos-this.startOn)/this.totalTime,frame=Math.round(pos*this.totalFrames);if(frame>this.currentFrame){this.render(pos);this.currentFrame=frame;}}},cancel:function(){if(!this.options.sync)
Effect.Queues.get(typeof this.options.queue=='string'?'global':this.options.queue.scope).remove(this);this.state='finished';},event:function(eventName){if(this.options[eventName+'Internal'])this.options[eventName+'Internal'](this);if(this.options[eventName])this.options[eventName](this);},inspect:function(){var data=$H();for(property in this)
if(typeof this[property]!='function')data[property]=this[property];return'#<Effect:'+data.inspect()+',options:'+$H(this.options).inspect()+'>';}}
Effect.Parallel=Class.create();Object.extend(Object.extend(Effect.Parallel.prototype,Effect.Base.prototype),{initialize:function(effects){this.effects=effects||[];this.start(arguments[1]);},update:function(position){this.effects.invoke('render',position);},finish:function(position){this.effects.each(function(effect){effect.render(1.0);effect.cancel();effect.event('beforeFinish');if(effect.finish)effect.finish(position);effect.event('afterFinish');});}});Effect.Event=Class.create();Object.extend(Object.extend(Effect.Event.prototype,Effect.Base.prototype),{initialize:function(){var options=Object.extend({duration:0},arguments[0]||{});this.start(options);},update:Prototype.emptyFunction});Effect.Opacity=Class.create();Object.extend(Object.extend(Effect.Opacity.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout))
this.element.setStyle({zoom:1});var options=Object.extend({from:this.element.getOpacity()||0.0,to:1.0},arguments[1]||{});this.start(options);},update:function(position){this.element.setOpacity(position);}});Effect.Move=Class.create();Object.extend(Object.extend(Effect.Move.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({x:0,y:0,mode:'relative'},arguments[1]||{});this.start(options);},setup:function(){this.element.makePositioned();this.originalLeft=parseFloat(this.element.getStyle('left')||'0');this.originalTop=parseFloat(this.element.getStyle('top')||'0');if(this.options.mode=='absolute'){this.options.x=this.options.x-this.originalLeft;this.options.y=this.options.y-this.originalTop;}},update:function(position){this.element.setStyle({left:Math.round(this.options.x*position+this.originalLeft)+'px',top:Math.round(this.options.y*position+this.originalTop)+'px'});}});Effect.MoveBy=function(element,toTop,toLeft){return new Effect.Move(element,Object.extend({x:toLeft,y:toTop},arguments[3]||{}));};Effect.Scale=Class.create();Object.extend(Object.extend(Effect.Scale.prototype,Effect.Base.prototype),{initialize:function(element,percent){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:'box',scaleFrom:100.0,scaleTo:percent},arguments[2]||{});this.start(options);},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle('position');this.originalStyle={};['top','left','width','height','fontSize'].each(function(k){this.originalStyle[k]=this.element.style[k];}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var fontSize=this.element.getStyle('font-size')||'100%';['em','px','%','pt'].each(function(fontSizeType){if(fontSize.indexOf(fontSizeType)>0){this.fontSize=parseFloat(fontSize);this.fontSizeType=fontSizeType;}}.bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;this.dims=null;if(this.options.scaleMode=='box')
this.dims=[this.element.offsetHeight,this.element.offsetWidth];if(/^content/.test(this.options.scaleMode))
this.dims=[this.element.scrollHeight,this.element.scrollWidth];if(!this.dims)
this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth];},update:function(position){var currentScale=(this.options.scaleFrom/100.0)+(this.factor*position);if(this.options.scaleContent&&this.fontSize)
this.element.setStyle({fontSize:this.fontSize*currentScale+this.fontSizeType});this.setDimensions(this.dims[0]*currentScale,this.dims[1]*currentScale);},finish:function(position){if(this.restoreAfterFinish)this.element.setStyle(this.originalStyle);},setDimensions:function(height,width){var d={};if(this.options.scaleX)d.width=Math.round(width)+'px';if(this.options.scaleY)d.height=Math.round(height)+'px';if(this.options.scaleFromCenter){var topd=(height-this.dims[0])/2;var leftd=(width-this.dims[1])/2;if(this.elementPositioning=='absolute'){if(this.options.scaleY)d.top=this.originalTop-topd+'px';if(this.options.scaleX)d.left=this.originalLeft-leftd+'px';}else{if(this.options.scaleY)d.top=-topd+'px';if(this.options.scaleX)d.left=-leftd+'px';}}
this.element.setStyle(d);}});Effect.Highlight=Class.create();Object.extend(Object.extend(Effect.Highlight.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({startcolor:'#ffff99'},arguments[1]||{});this.start(options);},setup:function(){if(this.element.getStyle('display')=='none'){this.cancel();return;}
this.oldStyle={};if(!this.options.keepBackgroundImage){this.oldStyle.backgroundImage=this.element.getStyle('background-image');this.element.setStyle({backgroundImage:'none'});}
if(!this.options.endcolor)
this.options.endcolor=this.element.getStyle('background-color').parseColor('#ffffff');if(!this.options.restorecolor)
this.options.restorecolor=this.element.getStyle('background-color');this._base=$R(0,2).map(function(i){return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16)}.bind(this));this._delta=$R(0,2).map(function(i){return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i]}.bind(this));},update:function(position){this.element.setStyle({backgroundColor:$R(0,2).inject('#',function(m,v,i){return m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart());}.bind(this))});},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}));}});Effect.ScrollTo=Class.create();Object.extend(Object.extend(Effect.ScrollTo.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);this.start(arguments[1]||{});},setup:function(){Position.prepare();var offsets=Position.cumulativeOffset(this.element);if(this.options.offset)offsets[1]+=this.options.offset;var max=window.innerHeight?window.height-window.innerHeight:document.body.scrollHeight-
(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight);this.scrollStart=Position.deltaY;this.delta=(offsets[1]>max?max:offsets[1])-this.scrollStart;},update:function(position){Position.prepare();window.scrollTo(Position.deltaX,this.scrollStart+(position*this.delta));}});Effect.Fade=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();var options=Object.extend({from:element.getOpacity()||1.0,to:0.0,afterFinishInternal:function(effect){if(effect.options.to!=0)return;effect.element.hide().setStyle({opacity:oldOpacity});}},arguments[1]||{});return new Effect.Opacity(element,options);}
Effect.Appear=function(element){element=$(element);var options=Object.extend({from:(element.getStyle('display')=='none'?0.0:element.getOpacity()||0.0),to:1.0,afterFinishInternal:function(effect){effect.element.forceRerendering();},beforeSetup:function(effect){effect.element.setOpacity(effect.options.from).show();}},arguments[1]||{});return new Effect.Opacity(element,options);}
Effect.Puff=function(element){element=$(element);var oldStyle={opacity:element.getInlineOpacity(),position:element.getStyle('position'),top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};return new Effect.Parallel([new Effect.Scale(element,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:1.0,beforeSetupInternal:function(effect){Position.absolutize(effect.effects[0].element)},afterFinishInternal:function(effect){effect.effects[0].element.hide().setStyle(oldStyle);}},arguments[1]||{}));}
Effect.BlindUp=function(element){element=$(element);element.makeClipping();return new Effect.Scale(element,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(effect){effect.element.hide().undoClipping();}},arguments[1]||{}));}
Effect.BlindDown=function(element){element=$(element);var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makeClipping().setStyle({height:'0px'}).show();},afterFinishInternal:function(effect){effect.element.undoClipping();}},arguments[1]||{}));}
Effect.SwitchOff=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();return new Effect.Appear(element,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(effect){new Effect.Scale(effect.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(effect){effect.element.makePositioned().makeClipping();},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned().setStyle({opacity:oldOpacity});}})}},arguments[1]||{}));}
Effect.DropOut=function(element){element=$(element);var oldStyle={top:element.getStyle('top'),left:element.getStyle('left'),opacity:element.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(element,{x:0,y:100,sync:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:0.5,beforeSetup:function(effect){effect.effects[0].element.makePositioned();},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);}},arguments[1]||{}));}
Effect.Shake=function(element){element=$(element);var oldStyle={top:element.getStyle('top'),left:element.getStyle('left')};return new Effect.Move(element,{x:20,y:0,duration:0.05,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-20,y:0,duration:0.05,afterFinishInternal:function(effect){effect.element.undoPositioned().setStyle(oldStyle);}})}})}})}})}})}});}
Effect.SlideDown=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera)effect.element.setStyle({top:''});effect.element.makeClipping().setStyle({height:'0px'}).show();},afterUpdateInternal:function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'});},afterFinishInternal:function(effect){effect.element.undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom});}},arguments[1]||{}));}
Effect.SlideUp=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');return new Effect.Scale(element,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:'box',scaleFrom:100,restoreAfterFinish:true,beforeStartInternal:function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera)effect.element.setStyle({top:''});effect.element.makeClipping().show();},afterUpdateInternal:function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'});},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned().setStyle({bottom:oldInnerBottom});effect.element.down().undoPositioned();}},arguments[1]||{}));}
Effect.Squish=function(element){return new Effect.Scale(element,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(effect){effect.element.makeClipping();},afterFinishInternal:function(effect){effect.element.hide().undoClipping();}});}
Effect.Grow=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var initialMoveX,initialMoveY;var moveX,moveY;switch(options.direction){case'top-left':initialMoveX=initialMoveY=moveX=moveY=0;break;case'top-right':initialMoveX=dims.width;initialMoveY=moveY=0;moveX=-dims.width;break;case'bottom-left':initialMoveX=moveX=0;initialMoveY=dims.height;moveY=-dims.height;break;case'bottom-right':initialMoveX=dims.width;initialMoveY=dims.height;moveX=-dims.width;moveY=-dims.height;break;case'center':initialMoveX=dims.width/2;initialMoveY=dims.height/2;moveX=-dims.width/2;moveY=-dims.height/2;break;}
return new Effect.Move(element,{x:initialMoveX,y:initialMoveY,duration:0.01,beforeSetup:function(effect){effect.element.hide().makeClipping().makePositioned();},afterFinishInternal:function(effect){new Effect.Parallel([new Effect.Opacity(effect.element,{sync:true,to:1.0,from:0.0,transition:options.opacityTransition}),new Effect.Move(effect.element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition}),new Effect.Scale(effect.element,100,{scaleMode:{originalHeight:dims.height,originalWidth:dims.width},sync:true,scaleFrom:window.opera?1:0,transition:options.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(effect){effect.effects[0].element.setStyle({height:'0px'}).show();},afterFinishInternal:function(effect){effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle);}},options))}});}
Effect.Shrink=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var moveX,moveY;switch(options.direction){case'top-left':moveX=moveY=0;break;case'top-right':moveX=dims.width;moveY=0;break;case'bottom-left':moveX=0;moveY=dims.height;break;case'bottom-right':moveX=dims.width;moveY=dims.height;break;case'center':moveX=dims.width/2;moveY=dims.height/2;break;}
return new Effect.Parallel([new Effect.Opacity(element,{sync:true,to:0.0,from:1.0,transition:options.opacityTransition}),new Effect.Scale(element,window.opera?1:0,{sync:true,transition:options.scaleTransition,restoreAfterFinish:true}),new Effect.Move(element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition})],Object.extend({beforeStartInternal:function(effect){effect.effects[0].element.makePositioned().makeClipping();},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle);}},options));}
Effect.Pulsate=function(element){element=$(element);var options=arguments[1]||{};var oldOpacity=element.getInlineOpacity();var transition=options.transition||Effect.Transitions.sinoidal;var reverser=function(pos){return transition(1-Effect.Transitions.pulse(pos,options.pulses))};reverser.bind(transition);return new Effect.Opacity(element,Object.extend(Object.extend({duration:2.0,from:0,afterFinishInternal:function(effect){effect.element.setStyle({opacity:oldOpacity});}},options),{transition:reverser}));}
Effect.Fold=function(element){element=$(element);var oldStyle={top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};element.makeClipping();return new Effect.Scale(element,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(effect){new Effect.Scale(element,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(effect){effect.element.hide().undoClipping().setStyle(oldStyle);}});}},arguments[1]||{}));};Effect.Morph=Class.create();Object.extend(Object.extend(Effect.Morph.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({style:{}},arguments[1]||{});if(typeof options.style=='string'){if(options.style.indexOf(':')==-1){var cssText='',selector='.'+options.style;$A(document.styleSheets).reverse().each(function(styleSheet){if(styleSheet.cssRules)cssRules=styleSheet.cssRules;else if(styleSheet.rules)cssRules=styleSheet.rules;$A(cssRules).reverse().each(function(rule){if(selector==rule.selectorText){cssText=rule.style.cssText;throw $break;}});if(cssText)throw $break;});this.style=cssText.parseStyle();options.afterFinishInternal=function(effect){effect.element.addClassName(effect.options.style);effect.transforms.each(function(transform){if(transform.style!='opacity')
effect.element.style[transform.style]='';});}}else this.style=options.style.parseStyle();}else this.style=$H(options.style)
this.start(options);},setup:function(){function parseColor(color){if(!color||['rgba(0, 0, 0, 0)','transparent'].include(color))color='#ffffff';color=color.parseColor();return $R(0,2).map(function(i){return parseInt(color.slice(i*2+1,i*2+3),16)});}
this.transforms=this.style.map(function(pair){var property=pair[0],value=pair[1],unit=null;if(value.parseColor('#zzzzzz')!='#zzzzzz'){value=value.parseColor();unit='color';}else if(property=='opacity'){value=parseFloat(value);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout))
this.element.setStyle({zoom:1});}else if(Element.CSS_LENGTH.test(value)){var components=value.match(/^([\+\-]?[0-9\.]+)(.*)$/);value=parseFloat(components[1]);unit=(components.length==3)?components[2]:null;}
var originalValue=this.element.getStyle(property);return{style:property.camelize(),originalValue:unit=='color'?parseColor(originalValue):parseFloat(originalValue||0),targetValue:unit=='color'?parseColor(value):value,unit:unit};}.bind(this)).reject(function(transform){return((transform.originalValue==transform.targetValue)||(transform.unit!='color'&&(isNaN(transform.originalValue)||isNaN(transform.targetValue))))});},update:function(position){var style={},transform,i=this.transforms.length;while(i--)
style[(transform=this.transforms[i]).style]=transform.unit=='color'?'#'+
(Math.round(transform.originalValue[0]+
(transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart()+
(Math.round(transform.originalValue[1]+
(transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart()+
(Math.round(transform.originalValue[2]+
(transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart():transform.originalValue+Math.round(((transform.targetValue-transform.originalValue)*position)*1000)/1000+transform.unit;this.element.setStyle(style,true);}});Effect.Transform=Class.create();Object.extend(Effect.Transform.prototype,{initialize:function(tracks){this.tracks=[];this.options=arguments[1]||{};this.addTracks(tracks);},addTracks:function(tracks){tracks.each(function(track){var data=$H(track).values().first();this.tracks.push($H({ids:$H(track).keys().first(),effect:Effect.Morph,options:{style:data}}));}.bind(this));return this;},play:function(){return new Effect.Parallel(this.tracks.map(function(track){var elements=[$(track.ids)||$$(track.ids)].flatten();return elements.map(function(e){return new track.effect(e,Object.extend({sync:true},track.options))});}).flatten(),this.options);}});Element.CSS_PROPERTIES=$w('backgroundColor backgroundPosition borderBottomColor borderBottomStyle '+'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth '+'borderRightColor borderRightStyle borderRightWidth borderSpacing '+'borderTopColor borderTopStyle borderTopWidth bottom clip color '+'fontSize fontWeight height left letterSpacing lineHeight '+'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+'maxWidth minHeight minWidth opacity outlineColor outlineOffset '+'outlineWidth paddingBottom paddingLeft paddingRight paddingTop '+'right textIndent top width wordSpacing zIndex');Element.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;String.prototype.parseStyle=function(){var element=document.createElement('div');element.innerHTML='<div style="'+this+'"></div>';var style=element.childNodes[0].style,styleRules=$H();Element.CSS_PROPERTIES.each(function(property){if(style[property])styleRules[property]=style[property];});if(Prototype.Browser.IE&&this.indexOf('opacity')>-1){styleRules.opacity=this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1];}
return styleRules;};Element.morph=function(element,style){new Effect.Morph(element,Object.extend({style:style},arguments[2]||{}));return element;};['getInlineOpacity','forceRerendering','setContentZoom','collectTextNodes','collectTextNodesIgnoreClass','morph'].each(function(f){Element.Methods[f]=Element[f];});Element.Methods.visualEffect=function(element,effect,options){s=effect.dasherize().camelize();effect_class=s.charAt(0).toUpperCase()+s.substring(1);new Effect[effect_class](element,options);return $(element);};Element.addMethods();function show_quantity(id){var suggest_checkbox=document.getElementById('check_'+id);var suggest_qty_div=document.getElementById('qty_div_'+id);var suggest_qty=document.getElementById('check_quantity_'+id);var suggest_hidden_qty=document.getElementById('check_hidden_quantity_'+id);var suggest_btn=document.getElementById('suggest_chkout');var suggest_frm=document.forms['suggestive_selling_form'];suggest_btn.disabled=true;suggest_hidden_qty.disabled=true;if(suggest_checkbox.checked){suggest_btn.disabled=false;if(suggest_qty_div){suggest_qty_div.style.display='block';suggest_qty.disabled=false;suggest_qty.value='1';}
else{suggest_hidden_qty.disabled=false;}}
else{var i=0;for(i=0;i<suggest_frm.elements.length;i++){if(suggest_frm.elements[i].type=="checkbox"&&suggest_frm.elements[i].checked==true){suggest_btn.disabled=false;break;}}
if(suggest_qty_div){suggest_qty_div.style.display='none';suggest_qty.disabled=true;}
else{suggest_hidden_qty.disabled=false;}}}
if(typeof Prototype=='undefined')alert("CalendarDateSelect Error: Prototype could not be found. Please make sure that your application's layout includes prototype.js (e.g. <%= javascript_include_tag :defaults %>) *before* it includes calendar_date_select.js (e.g. <%= calendar_date_select_includes %>).");Element.addMethods({purgeChildren:function(element){$A(element.childNodes).each(function(e){$(e).remove();});},build:function(element,type,options,style){newElement=Element.build(type,options,style);element.appendChild(newElement);return newElement;}});Element.build=function(type,options,style)
{e=$(document.createElement(type));$H(options).each(function(pair){eval("e."+pair.key+" = pair.value");});if(style)
$H(style).each(function(pair){eval("e.style."+pair.key+" = pair.value");});return e;};nil=null;Date.one_day=24*60*60*1000;Date.weekdays=$w("S M T W T F S");Date.first_day_of_week=0;Date.months=$w("January February March April May June July August September October November December");Date.padded2=function(hour){padded2=hour.toString();if(parseInt(hour)<10)padded2="0"+padded2;return padded2;}
Date.prototype.getPaddedMinutes=function(){return Date.padded2(this.getMinutes());}
Date.prototype.getAMPMHour=function(){hour=this.getHours();return(hour==0)?12:(hour>12?hour-12:hour)}
Date.prototype.getAMPM=function(){return(this.getHours()<12)?"AM":"PM";}
Date.prototype.stripTime=function(){return new Date(this.getFullYear(),this.getMonth(),this.getDate());};Date.prototype.daysDistance=function(compare_date){return Math.round((compare_date-this)/Date.one_day);};Date.prototype.toFormattedString=function(include_time){str=Date.months[this.getMonth()]+" "+this.getDate()+", "+this.getFullYear();if(include_time){hour=this.getHours();str+=" "+this.getAMPMHour()+":"+this.getPaddedMinutes()+" "+this.getAMPM()}
return str;}
Date.parseFormattedString=function(string){return new Date(string);}
Math.floor_to_interval=function(n,i){return Math.floor(n/i)*i;}
Math.ceil_to_interval=function(n,i){return Math.ceil(n/i)*i;}
window.f_height=function(){return([window.innerHeight?window.innerHeight:null,document.documentElement?document.documentElement.clientHeight:null,document.body?document.body.clientHeight:null].select(function(x){return x>0}).first()||0);}
window.f_scrollTop=function(){return([window.pageYOffset?window.pageYOffset:null,document.documentElement?document.documentElement.scrollTop:null,document.body?document.body.scrollTop:null].select(function(x){return x>0}).first()||0);}
_translations={"OK":"OK","Now":"Now","Today":"Today"}
SelectBox=Class.create();SelectBox.prototype={initialize:function(parent_element,values,html_options,style_options){this.element=$(parent_element).build("select",html_options,style_options);this.populate(values);},populate:function(values){this.element.purgeChildren();that=this;$A(values).each(function(pair){if(typeof(pair)!="object"){pair=[pair,pair]};that.element.build("option",{value:pair[1],innerHTML:pair[0]})});},setValue:function(value){e=this.element;matched=false;$R(0,e.options.length-1).each(function(i){if(e.options[i].value==value.toString()){e.selectedIndex=i;matched=true;};});return matched;},getValue:function(){return $F(this.element)}}
CalendarDateSelect=Class.create();CalendarDateSelect.prototype={initialize:function(target_element,options){this.target_element=$(target_element);if(!this.target_element){alert("Target element "+target_element+" not found!");return false;}
if(down=this.target_element.down("INPUT"))this.target_element=down;this.target_element.calendar_date_select=this;this.last_click_at=0;this.options=$H({embedded:false,popup:nil,time:false,buttons:true,year_range:10,calendar_div:nil,close_on_click:nil,minute_interval:5,popup_by:this.target_element,month_year:"dropdowns",onchange:this.target_element.onchange}).merge(options||{});this.selection_made=$F(this.target_element).strip()!=="";this.use_time=this.options.time;this.callback("before_show")
this.calendar_div=$(this.options.calendar_div);this.parseDate();if(this.calendar_div==nil){this.calendar_div=$(this.options.embedded?this.target_element.parentNode:document.body).build('div');}
if(!this.options.embedded)this.calendar_div.setStyle({position:"absolute",visibility:"hidden",left:0,top:0})
this.calendar_div.addClassName("calendar_date_select");if(this.options["embedded"])this.options["close_on_click"]=false;if(this.options['close_on_click']===nil)
{if(this.options['time'])
this.options["close_on_click"]=false;else
this.options['close_on_click']=true;}
if(!this.options["embedded"]){Event.observe(document,"mousedown",this.closeIfClickedOut_handler=this.closeIfClickedOut.bindAsEventListener(this));Event.observe(document,"keypress",this.keyPress_handler=this.keyPress.bindAsEventListener(this));}
this.init();if(!this.options["embedded"]){this.positionCalendarDiv()};this.updateSelectedDate({year:this.selected_date.getFullYear(),month:this.selected_date.getMonth(),day:this.selected_date.getDate(),hour:this.selected_date.getHours(),minute:this.selected_date.getMinutes()},false);this.callback("after_show")},positionCalendarDiv:function(){above=false;c_pos=Position.cumulativeOffset(this.calendar_div);c_left=c_pos[0];c_top=c_pos[1];c_dim=this.calendar_div.getDimensions();c_height=c_dim.height;c_width=c_dim.width;w_top=window.f_scrollTop();w_height=window.f_height();e_dim=Position.cumulativeOffset($(this.options.popup_by));e_top=e_dim[1];e_left=e_dim[0];e_height=$(this.options.popup_by).getDimensions().height;e_bottom=e_top+e_height;if(((e_bottom+c_height)>(w_top+w_height))&&(e_bottom-c_height>w_top))above=true;left_px=e_left.toString()+"px";top_px=(above?(e_top-c_height):(e_top+e_height)).toString()+"px";this.calendar_div.style.left=left_px;this.calendar_div.style.top=top_px;this.calendar_div.setStyle({visibility:""});if(navigator.appName=="Microsoft Internet Explorer")this.iframe=$(document.body).build("iframe",{className:"ie6_blocker"},{left:left_px,top:top_px,height:c_height.toString()+"px",width:c_width.toString()+"px",border:"0px"})},init:function(){that=this;$w("top header body buttons footer bottom").each(function(name){eval(name+"_div = that."+name+"_div = that.calendar_div.build('div', { className: 'cds_"+name+"' }, { clear: 'left'} ); ");});this.initHeaderDiv();this.initButtonsDiv();this.initCalendarGrid();this.updateFooter("&nbsp;");this.refresh();this.setUseTime(this.use_time);},initHeaderDiv:function(){header_div=this.header_div;this.close_button=header_div.build("a",{innerHTML:"x",href:"#",onclick:function(){this.close();return false;}.bindAsEventListener(this),className:"close"});this.next_month_button=header_div.build("a",{innerHTML:"&gt;",href:"#",onclick:function(){this.navMonth(this.date.getMonth()+1);return false;}.bindAsEventListener(this),className:"next"});this.prev_month_button=header_div.build("a",{innerHTML:"&lt;",href:"#",onclick:function(){this.navMonth(this.date.getMonth()-1);return false;}.bindAsEventListener(this),className:"prev"});if(this.options.month_year=="dropdowns"){this.month_select=new SelectBox(header_div,$R(0,11).map(function(m){return[Date.months[m],m]}),{className:"month",onchange:function(){this.navMonth(this.month_select.getValue())}.bindAsEventListener(this)});this.year_select=new SelectBox(header_div,[],{className:"year",onchange:function(){this.navYear(this.year_select.getValue())}.bindAsEventListener(this)});this.populateYearRange();}else{this.month_year_label=header_div.build("span")}},initCalendarGrid:function(){body_div=this.body_div;this.calendar_day_grid=[];days_table=body_div.build("table",{cellPadding:"0px",cellSpacing:"0px",width:"100%"})
weekdays_row=days_table.build("thead").build("tr");Date.weekdays.each(function(weekday){weekdays_row.build("th",{innerHTML:weekday});});days_tbody=days_table.build("tbody")
row_number=0
for(cell_index=0;cell_index<42;cell_index++)
{weekday=(cell_index+Date.first_day_of_week)%7;if(cell_index%7==0)days_row=days_tbody.build("tr",{className:'row_'+row_number++});(this.calendar_day_grid[cell_index]=days_row.build("td",{calendar_date_select:this,onmouseover:function(){this.calendar_date_select.dayHover(this);},onmouseout:function(){this.calendar_date_select.dayHoverOut(this)},onclick:function(){this.calendar_date_select.updateSelectedDate(this,true);},className:(weekday==0)||(weekday==6)?" weekend":""},{cursor:"pointer"})).build("div");this.calendar_day_grid[cell_index];}},initButtonsDiv:function()
{buttons_div=this.buttons_div;if(this.options["time"])
{blank_time=$A(this.options.time=="mixed"?[[" - ",""]]:[]);buttons_div.build("span",{innerHTML:"@",className:"at_sign"});t=new Date();this.hour_select=new SelectBox(buttons_div,blank_time.concat($R(0,23).map(function(x){t.setHours(x);return $A([t.getAMPMHour()+" "+t.getAMPM(),x])})),{calendar_date_select:this,onchange:function(){this.calendar_date_select.updateSelectedDate({hour:this.value});},className:"hour"});buttons_div.build("span",{innerHTML:":",className:"seperator"});that=this;this.minute_select=new SelectBox(buttons_div,blank_time.concat($R(0,59).select(function(x){return(x%that.options.minute_interval==0)}).map(function(x){return $A([Date.padded2(x),x]);})),{calendar_date_select:this,onchange:function(){this.calendar_date_select.updateSelectedDate({minute:this.value})},className:"minute"});}else if(!this.options.buttons)buttons_div.remove();if(this.options.buttons){buttons_div.build("span",{innerHTML:"&nbsp;"});if(this.options.time=="mixed"||!this.options.time)b=buttons_div.build("a",{innerHTML:_translations["Today"],href:"#",onclick:function(){this.today(false);return false;}.bindAsEventListener(this)});if(this.options.time=="mixed")buttons_div.build("span",{innerHTML:" | ",className:"button_seperator"})
if(this.options.time)b=buttons_div.build("a",{innerHTML:_translations["Now"],href:"#",onclick:function(){this.today(true);return false}.bindAsEventListener(this)});if(!this.options.embedded)
{buttons_div.build("span",{innerHTML:"&nbsp;"});buttons_div.build("a",{innerHTML:_translations["OK"],href:"#",onclick:function(){this.close();return false;}.bindAsEventListener(this)});}}},refresh:function()
{this.refreshMonthYear();this.refreshCalendarGrid();this.setSelectedClass();this.updateFooter();},refreshCalendarGrid:function(){this.beginning_date=new Date(this.date).stripTime();this.beginning_date.setDate(1);this.beginning_date.setHours(12);pre_days=this.beginning_date.getDay()
if(pre_days<3)pre_days+=7;this.beginning_date.setDate(1-pre_days+Date.first_day_of_week);iterator=new Date(this.beginning_date);today=new Date().stripTime();this_month=this.date.getMonth();for(cell_index=0;cell_index<42;cell_index++)
{day=iterator.getDate();month=iterator.getMonth();cell=this.calendar_day_grid[cell_index];Element.remove(cell.childNodes[0]);div=cell.build("div",{innerHTML:day});if(month!=this_month)div.className="other";cell.day=day;cell.month=month;cell.year=iterator.getFullYear();iterator.setDate(day+1);}
if(this.today_cell)this.today_cell.removeClassName("today");if($R(0,42).include(days_until=this.beginning_date.daysDistance(today))){this.today_cell=this.calendar_day_grid[days_until];this.today_cell.addClassName("today");}},refreshMonthYear:function(){m=this.date.getMonth();y=this.date.getFullYear();if(this.options.month_year=="dropdowns")
{this.month_select.setValue(m,false);e=this.year_select.element;if(this.flexibleYearRange()&&(!(this.year_select.setValue(y,false))||e.selectedIndex<=1||e.selectedIndex>=e.options.length-2))this.populateYearRange();this.year_select.setValue(y);}else{this.month_year_label.update(Date.months[m]+" "+y.toString());}},populateYearRange:function(){this.year_select.populate(this.yearRange().toArray());},yearRange:function(){if(!this.flexibleYearRange())
return $R(this.options.year_range[0],this.options.year_range[1]);y=this.date.getFullYear();return $R(y-this.options.year_range,y+this.options.year_range);},flexibleYearRange:function(){return(typeof(this.options.year_range)=="number");},validYear:function(year){if(this.flexibleYearRange()){return true;}else{return this.yearRange().include(year);}},dayHover:function(element){element.addClassName("hover");hover_date=new Date(this.selected_date);hover_date.setYear(element.year);hover_date.setMonth(element.month);hover_date.setDate(element.day);this.updateFooter(hover_date.toFormattedString(this.use_time));},dayHoverOut:function(element){element.removeClassName("hover");this.updateFooter();},setSelectedClass:function(){if(!this.selection_made)return;if(this.selected_cell)this.selected_cell.removeClassName("selected");if($R(0,42).include(days_until=this.beginning_date.daysDistance(this.selected_date.stripTime()))){this.selected_cell=this.calendar_day_grid[days_until];this.selected_cell.addClassName("selected");}},reparse:function(){this.parseDate();this.refresh();},dateString:function(){return(this.selection_made)?this.selected_date.toFormattedString(this.use_time):"&nbsp;";},parseDate:function()
{value=$F(this.target_element).strip()
this.date=value==""?NaN:Date.parseFormattedString(this.options['date']||value);if(isNaN(this.date))this.date=new Date();if(!this.validYear(this.date.getFullYear()))this.date.setYear((this.date.getFullYear()<this.yearRange().start)?this.yearRange().start:this.yearRange().end);this.selected_date=new Date(this.date);this.use_time=/[0-9]:[0-9]{2}/.exec(value)?true:false;this.date.setDate(1);},updateFooter:function(text){if(!text)text=this.dateString();this.footer_div.purgeChildren();this.footer_div.build("span",{innerHTML:text});},updateSelectedDate:function(parts,via_click){if((this.target_element.disabled||this.target_element.readOnly)&&this.options.popup!="force")return false;if(parts.day){this.selection_made=true;for(x=0;x<=1;x++){this.selected_date.setDate(parts.day);this.selected_date.setMonth(parts.month);this.selected_date.setYear(parts.year);}}
if(!isNaN(parts.hour))this.selected_date.setHours(parts.hour);if(!isNaN(parts.minute))this.selected_date.setMinutes(Math.ceil_to_interval(parts.minute,this.options.minute_interval));if(parts.hour===""||parts.minute==="")
this.setUseTime(false);else if(!isNaN(parts.hour)||!isNaN(parts.minute))
this.setUseTime(true);this.updateFooter();this.setSelectedClass();if(this.selection_made)this.updateValue();if(via_click&&this.options.close_on_click){this.close();}
if(via_click&&!this.options.embedded){if((new Date()-this.last_click_at)<333)this.close();this.last_click_at=new Date();}},navMonth:function(month){(target_date=new Date(this.date)).setMonth(month);return(this.navTo(target_date));},navYear:function(year){(target_date=new Date(this.date)).setYear(year);return(this.navTo(target_date));},navTo:function(date){if(!this.validYear(date.getFullYear()))return false;this.date=date;this.date.setDate(1);this.refresh();this.callback("after_navigate",this.date);return true;},setUseTime:function(turn_on){this.use_time=this.options.time&&(this.options.time=="mixed"?turn_on:true)
if(this.use_time&&this.selected_date){minute=Math.floor_to_interval(this.selected_date.getMinutes(),this.options.minute_interval);hour=this.selected_date.getHours();this.hour_select.setValue(hour);this.minute_select.setValue(minute)}else if(this.options.time=="mixed"){this.hour_select.setValue("");this.minute_select.setValue("");}},updateValue:function(){last_value=this.target_element.value;this.target_element.value=this.dateString();if(last_value!=this.target_element.value)this.callback("onchange");},today:function(now){d=new Date();this.date=new Date();o=$H({day:d.getDate(),month:d.getMonth(),year:d.getFullYear(),hour:d.getHours(),minute:d.getMinutes()});if(!now)o=o.merge({hour:"",minute:""});this.updateSelectedDate(o,true);this.refresh();},close:function(){if(this.closed)return false;this.callback("before_close");this.target_element.calendar_date_select=nil;Event.stopObserving(document,"mousedown",this.closeIfClickedOut_handler);Event.stopObserving(document,"keypress",this.keyPress_handler);this.calendar_div.remove();this.closed=true;if(this.iframe)this.iframe.remove();if(this.target_element.type!="hidden")this.target_element.focus();this.callback("after_close");},closeIfClickedOut:function(e){if(!$(Event.element(e)).descendantOf(this.calendar_div))this.close();},keyPress:function(e){if(e.keyCode==Event.KEY_ESC)this.close();},callback:function(name,param){if(this.options[name]){this.options[name].bind(this.target_element)(param);}}}
ToggleTab=Behavior.create({initialize:function(e){},onclick:function(e){var source=Event.element(e);var id=Element.readAttribute(source,'submenu_id');$$('#main .submenu_tab_pane').each(function(e){e.hide();});$$('#tabsB ul li a').each(function(e){e.removeClassName('current');});source.up().addClassName('current');$('submenu_tab_'+id).show();$('submenus_tab_'+id);return false;},onmouseover:function(){this.element.addClassName("over");},onmouseout:function(){this.element.removeClassName("over");}});ToggleModifierGroup=Behavior.create({initialize:function(e){},onclick:function(e){var source=Event.element(e);var dom_id=Element.readAttribute(source,'href');var id=dom_id.split('#')[1];var element_id="modifier_group_modifiers_"+id
var element=$(element_id);if(element){element.toggle();source.innerHTML=element.visible()?"(Hide Options)":"(Show Options)"}
return false;}});ToggleMenuModifiers=Behavior.create({initialize:function(e){},onclick:function(e){var source=Event.element(e);var menuModifierId=Element.readAttribute(source,'menu_modifier');var menuModifierElement=$("menu_modifier_"+menuModifierId);if(source.hasClassName('need_to_fetch_modifier_groups')){new Ajax.Updater(menuModifierElement,'/menus;get_modifier_groups',{asynchronous:true,method:'post',parameters:source.serialize(),onLoading:function(){menuModifierElement.update('<img alt="Please Wait" id="load_menu_item_spinner" src="/images/spinner.gif" />Loading options');menuModifierElement.show();}});source.removeClassName('need_to_fetch_modifier_groups');}else{if(source.checked){menuModifierElement.show();}else{menuModifierElement.hide();}}}});function hideSubMenuDetail(header,menu_items,sub_menus){if($(header))$(header).show();if($(menu_items))$(menu_items).hide();if($(sub_menus))$(sub_menus).hide();}
var associated_mod_grps_arr=[];function showHideAssociatedModGrp(associated_mod_grp_div_id,self_div_id){var self_div_ids=""
var in_array=-1
for(var al=0;al<associated_mod_grps_arr.length;al++){in_array=associated_mod_grps_arr[al].search(associated_mod_grp_div_id+',');if(in_array==0){associated_mod_grps_arr[al]=associated_mod_grps_arr[al]+self_div_id+",";self_div_ids=associated_mod_grps_arr[al]}}
if(in_array!=0){self_div_ids=associated_mod_grp_div_id+","+self_div_id+",";associated_mod_grps_arr.push(self_div_ids);}
var associated_mod_grp_selected=false;var associated_mod_grp_elements=document.getElementsByClassName(associated_mod_grp_div_id);for(var j=0;j<associated_mod_grp_elements.length;j++){var node1=associated_mod_grp_elements[j];if(node1.checked==true){associated_mod_grp_selected=true;}
node1.onclick=function(){associatedModGrpValueChanged(associated_mod_grp_div_id,self_div_ids.substr(0,self_div_ids.length-1));}}
var self_elements=document.getElementsByClassName(self_div_id);for(var i=0;i<self_elements.length;i++){var node=self_elements[i];if(associated_mod_grp_selected==true){node.disabled=false;document.getElementById(self_div_id+'_choice_message').style.display='';document.getElementById(self_div_id+'_disabled_message').style.display='none';}else{node.disabled=true;document.getElementById(self_div_id+'_choice_message').style.display='none';document.getElementById(self_div_id+'_disabled_message').style.display='';}}}
function associatedModGrpValueChanged(associated_mod_grp_div_id,self_div_ids){var associated_mod_grp_selected=false;var associated_mod_grp_elements=document.getElementsByClassName(associated_mod_grp_div_id);for(var i=0;i<associated_mod_grp_elements.length;i++){var node=associated_mod_grp_elements[i];if(node.checked==true){associated_mod_grp_selected=true;}}
var self_elements_array=self_div_ids.split(",");for(i=1;i<self_elements_array.length;i++)
{var self_elements=document.getElementsByClassName(self_elements_array[i]);if(associated_mod_grp_selected==true){for(var j=0;j<self_elements.length;j++){var node1=self_elements[j];node1.disabled=false;document.getElementById(self_elements_array[i]+'_choice_message').style.display='';document.getElementById(self_elements_array[i]+'_disabled_message').style.display='none';}}else{for(var k=0;k<self_elements.length;k++){var node2=self_elements[k];node2.disabled=true;node2.checked=false;document.getElementById(self_elements_array[i]+'_choice_message').style.display='none';document.getElementById(self_elements_array[i]+'_disabled_message').style.display='';}}}}
function hideAllSubmenuDetails(parent_id){$$('#submenus_for_'+parent_id+' div.submenu').each(function(e){e.hide()});$$('#submenus_for_'+parent_id+' div.menuitems').each(function(e){e.hide()});$$('#submenus_for_'+parent_id+' div.submenutitle').each(function(e){e.show()});$$('#submenus_for_'+parent_id+' div.submenutitle div.submenu_condensed').each(function(e){e.show()});}
function toggleSubMenu(submenu_id,parent_id){var menuItemsElement=$('menu_items_for_'+submenu_id);var subMenusElement=$('submenus_for_'+submenu_id);var isVisible=(subMenusElement!=null&&subMenusElement.visible())||(menuItemsElement!=null&&menuItemsElement.visible());if(isVisible){hideSubMenuDetail('condensed_'+submenu_id,menuItemsElement,subMenusElement);}else{hideAllSubmenuDetails(parent_id);if(menuItemsElement)menuItemsElement.show();if(subMenusElement)subMenusElement.show();if($('condensed_'+submenu_id))$('condensed_'+submenu_id).hide();}}
var submenuTimer=null;HideSubMenuDetailOnMouseOut=Behavior.create({onmouseover:function(e){clearTimeout(submenuTimer);},onmouseout:function(e){clearTimeout(submenuTimer);var source=Event.element(e);while(!source.hasClassName('level1'))source=source.up();var submenu_id=source.id.replace("menu_items_for_","");var menu_items='menu_items_for_'+submenu_id;var sub_menus='submenus_for_'+submenu_id;submenuTimer=setTimeout("hideSubMenuDetail('sub_menu_"+submenu_id+"', '"+menu_items+"', '"+sub_menus+"')",200);}});ToggleList=Behavior.create({initialize:function(e){var container=this.element;if(!container.hasClassName('submenu_condensed'))return true;while(!container.hasClassName('submenutitle'))container=container.up();this.toggle(container);},onclick:function(e){var source=Event.element(e);while(!source.hasAttribute("submenu_id")){source=source.up();}
this.toggle(source);Event.stop(e);},toggle:function(element){var submenu_id=Element.readAttribute(element,'submenu_id');var parent_id=Element.readAttribute(element,'parent_id');toggleSubMenu(submenu_id,parent_id);}});var popTimer=null;PopupImage=Behavior.create({onmouseover:function(e){var source=Event.element(e);while(!source.hasClassName("menuitem"))source=source.up();PopupMenuItem.show(source.id);},onmouseout:function(e){var source=Event.element(e);while(!source.hasClassName("menuitem"))source=source.up();PopupMenuItem.hide(source.id);},onclick:function(e){var source=Event.element(e);var submenu_id=Element.readAttribute(source,'submenu_id');var submenu=$('sub_menu_'+submenu_id);if(submenu){var parent_id=Element.readAttribute(submenu,'parent_id');if(parent_id)toggleSubMenu(submenu_id,parent_id);}}});var PopupMenuItem={timeout:null,showing:[],show:function(mi){this.showPopup(mi,'popup_'+mi)},hide:function(mi){this.hidePopup(mi,'popup_'+mi)},showPopup:function(mi,p){var subMenuId=mi.substring(0,mi.indexOf("_"));this.showAllMenuItems(mi,subMenuId);this._hideAllExcept(mi,p);if($(p)){if($(mi)&&$(mi).ignoreEvents)return;if($(p).ignoreEvents)return;clearTimeout(this.timeout);if($(p).style.display=='none'){this.timeout=setTimeout(function(){var parent_id=mi.split('_')[0];hideAllSubmenuDetails(parent_id);PopupMenuItem._addShowing(mi,p);PopupMenuItem._show(mi,p);},400);}}},showAllMenuItems:function(mi,subMenuId){$$('#submenu_tab_'+subMenuId+' *.highlightable_slot').each(function(e){if(e.id!=mi){e.show();if($('popup_'+e.id)){$('popup_'+e.id).hide()}}});},hidePopup:function(mi,p){if($(p)){if($(mi)&&$(mi).ignoreEvents)return;if($(p).ignoreEvents)return;if($(p).style.display=='none'){clearTimeout(this.timeout);}else{this.timeout=setTimeout(function(){PopupMenuItem._hide(mi,p);},100);}}},_show:function(mi,p){$(mi).ignoreEvents=true;$(p).ignoreEvents=true;new Effect.Parallel([new Effect.BlindDown(p,{sync:true,scaleFrom:1}),new Effect.BlindUp(mi,{sync:true,scaleTo:1})],{duration:.2,fps:40,queue:'end',afterFinish:function(){$(mi).ignoreEvents=false;$(p).ignoreEvents=false;}});},_hide:function(mi,p,fast){$(mi).ignoreEvents=true;$(p).ignoreEvents=true;if(fast){$(mi).show();$(p).hide();PopupMenuItem._restore(mi,p);}else{new Effect.Parallel([new Effect.BlindUp(p,{sync:true,scaleTo:1}),new Effect.BlindDown(mi,{sync:true,scaleTo:1})],{duration:0.2,fps:40,queue:'end',afterFinish:function(){PopupMenuItem._restore(mi,p);}});}},_restore:function(mi,p){$(mi).ignoreEvents=false;$(p).ignoreEvents=false;PopupMenuItem._removeShowing(mi,p);},_addShowing:function(mi,p){if($(p)){var idx=this.showing.indexOf([mi,p]);if(idx<0)this.showing[this.showing.length]=[mi,p];}},_removeShowing:function(mi,p){var idx=this.showing.indexOf([mi,p]);if(idx>-1)this.showing.splice(idx,1);},_hideAllExcept:function(mi,p){var pair;while(pair=this.showing[this.showing.length-1]){this.showing.length=this.showing.length-1;if($(pair[1])&&(pair[1]!=p)){this._hide(pair[0],pair[1],true);}}
this.showing=[[mi,p]];}}
function showLoadingContent(){showTab('options_content');$('item_ordering_options').innerHTML='<img alt="Please Wait" id="load_menu_item_spinner" src="/images/spinner.gif" />Loading Menu Item'}
SelectMenuItem=Remote.Link({onLoading:function(e){showLoadingContent();},onComplete:function(e){}});SelectMenuItemButton=Behavior.create({onclick:function(e){var source=Event.element(e);var popup=source;while(!popup.hasClassName('menu_image_popup'))popup=popup.up();PopupMenuItem.hide(popup.id.replace('popup_',''));var id=source.id.replace('select_menu_item_','');new Ajax.Request('/menus/'+id,{evaluateScripts:true,method:'get',onLoading:function(){showLoadingContent();}});}});AddToOrderForm=Remote.Form({onLoading:function(){$$('.add_to_order_spinner').each(function(e){e.show();});},onComplete:function(e){$$('.add_to_order_spinner').each(function(e){e.hide();});}});OrderFormMode=Remote.Form({onLoading:function(){$('order_form_spinner').show();},onComplete:function(e){$('order_form_spinner').hide();}});OrderForm=Remote.Form({onLoading:function(){$('order_spinner').show();},onComplete:function(e){$('order_spinner').hide();}});OrderChangeObserver=Behavior.create({initialize:function(e){},onchange:function(e){var source=Event.element(e);$('change_indicator').value="true";}});ContinueWithOrder=Behavior.create({initialize:function(e){},onclick:function(e){var source=Event.element(e);if($('change_indicator').value=="false"){continueWithOrder();return false;}
$('save_type').value="continue_with_order";}});function showTimeSelection(){showTab('time_selection')}
function showMain(){showTab('main');}
function showOrderContent(){showTab('order_content');}
function continueWithOrder(){new Effect.Highlight("main_menu",{});}
function updateItemOrderingForm(showLineItem){Event.addBehavior({'#order_line_item_form':AddToOrderForm});if(showLineItem){showTab('options_content');}}
updateItemOrderingForm(false);function updateSuggestiveSellingForm(){Event.addBehavior({'#suggestive_selling_form':AddToOrderForm});}
updateSuggestiveSellingForm();function updateAddOtherGroupOrdersForm(){Event.addBehavior({'#group_order_line_item':AddToOrderForm});}
updateAddOtherGroupOrdersForm();Event.addBehavior({'#save_instructions_button:click':function(event){$('save_type').value="save";},'#save_name_button:click':function(event){$('save_type').value="save";},'#checkout_button:click':function(event){$('save_type').value="checkout";},'#selectOptionTab:click':function(event){showTab('options_content');return false;},'#reviewOrderTab:click':function(event){showTab('order_content');return false;}});var tabsForPane={time_selection:'timeSelectionTab',main:'mainMenuTab',options_content:'selectOptionTab',order_content:'reviewOrderTab'}
function showTab(id){if(id=="options_content"){$('order_content').hide();$('other_orders').hide();$('options_content').show();if(!$('main').visible())showTab('main');}else if(id=="order_content"){$('options_content').hide();$('other_orders').hide();$('order_content').show();if(!$('main').visible())showTab('main');}else{$$('.tabPane').each(function(e){e.hide();});$$('div#tabsC ul li a').each(function(e){e.removeClassName('current');});$(tabsForPane[id]).addClassName('current');$(id).show();}}
HighlightSlot=Behavior.create({onmouseover:function(e){var srcElement=Event.element(e);while(!srcElement.hasClassName('highlightable_slot'))srcElement=srcElement.up();srcElement.addClassName('slot_hover');},onmouseout:function(e){var srcElement=Event.element(e);while(!srcElement.hasClassName('highlightable_slot'))srcElement=srcElement.up();srcElement.removeClassName('slot_hover');}});Event.addBehavior({'#main .submenu_tab a':ToggleTab,'#main .highlightable_slot':HighlightSlot,'#main .submenutitle .submenu_condensed':ToggleList,'#main .submenu_header .popup_closer':ToggleList,'#main .submenu_header h3.submenu_closer':ToggleList,'#main .menuitem0':PopupImage,'a.menu_item':SelectMenuItem,'input.select_menu_item':SelectMenuItemButton,'#order_form a':Remote.Link,'#order_form':OrderForm,'#setordertime_form':Remote.Form,'#orderform_patron_order_form':OrderFormMode,'#continue_order_button':ContinueWithOrder,'#order_patron_order_note':OrderChangeObserver,'#order_order_name':OrderChangeObserver,'#order_line_item_form a.collapsible_modifier_group':ToggleModifierGroup,'.choice_with_modifiers':ToggleMenuModifiers});Event.onReady(function(){new Insertion.Top('menus','<div style="position:absolute;top:1px;left:1px;background-color:white;" id="debug_console"></div>');var submenus=$$('#main .submenu_list');submenus.each(function(e){$('debug_console').innerHTML+="hiding submenu "+e+"...<br/>";e.hide();});if(submenus.length>0){submenus[0].show();new Effect.Highlight("select_item_help",{});new Effect.Highlight(submenus[0],{});}
$$('ul.submenu div.menuitems').each(function(e){e.hide();});});