(function(f){f.fn.qtip=function(B,u){var y,t,A,s,x,w,v,z;if(typeof B=="string"){if(typeof f(this).data("qtip")!=="object"){f.fn.qtip.log.error.call(self,1,f.fn.qtip.constants.NO_TOOLTIP_PRESENT,false)}if(B=="api"){return f(this).data("qtip").interfaces[f(this).data("qtip").current]}else{if(B=="interfaces"){return f(this).data("qtip").interfaces}}}else{if(!B){B={}}if(typeof B.content!=="object"||(B.content.jquery&&B.content.length>0)){B.content={text:B.content}}if(typeof B.content.title!=="object"){B.content.title={text:B.content.title}}if(typeof B.position!=="object"){B.position={corner:B.position}}if(typeof B.position.corner!=="object"){B.position.corner={target:B.position.corner,tooltip:B.position.corner}}if(typeof B.show!=="object"){B.show={when:B.show}}if(typeof B.show.when!=="object"){B.show.when={event:B.show.when}}if(typeof B.show.effect!=="object"){B.show.effect={type:B.show.effect}}if(typeof B.hide!=="object"){B.hide={when:B.hide}}if(typeof B.hide.when!=="object"){B.hide.when={event:B.hide.when}}if(typeof B.hide.effect!=="object"){B.hide.effect={type:B.hide.effect}}if(typeof B.style!=="object"){B.style={name:B.style}}B.style=c(B.style);s=f.extend(true,{},f.fn.qtip.defaults,B);s.style=a.call({options:s},s.style);s.user=f.extend(true,{},B)}return f(this).each(function(){if(typeof B=="string"){w=B.toLowerCase();A=f(this).qtip("interfaces");if(typeof A=="object"){if(u===true&&w=="destroy"){while(A.length>0){A[A.length-1].destroy()}}else{if(u!==true){A=[f(this).qtip("api")]}for(y=0;y<A.length;y++){if(w=="destroy"){A[y].destroy()}else{if(A[y].status.rendered===true){if(w=="show"){A[y].show()}else{if(w=="hide"){A[y].hide()}else{if(w=="focus"){A[y].focus()}else{if(w=="disable"){A[y].disable(true)}else{if(w=="enable"){A[y].disable(false)}}}}}}}}}}}else{v=f.extend(true,{},s);v.hide.effect.length=s.hide.effect.length;v.show.effect.length=s.show.effect.length;if(v.position.container===false){v.position.container=f(document.body)}if(v.position.target===false){v.position.target=f(this)}if(v.show.when.target===false){v.show.when.target=f(this)}if(v.hide.when.target===false){v.hide.when.target=f(this)}t=f.fn.qtip.interfaces.length;for(y=0;y<t;y++){if(typeof f.fn.qtip.interfaces[y]=="undefined"){t=y;break}}x=new d(f(this),v,t);f.fn.qtip.interfaces[t]=x;if(typeof f(this).data("qtip")=="object"){if(typeof f(this).attr("qtip")==="undefined"){f(this).data("qtip").current=f(this).data("qtip").interfaces.length}f(this).data("qtip").interfaces.push(x)}else{f(this).data("qtip",{current:0,interfaces:[x]})}if(v.content.prerender===false&&v.show.when.event!==false&&v.show.ready!==true){v.show.when.target.bind(v.show.when.event+".qtip-"+t+"-create",{qtip:t},function(C){z=f.fn.qtip.interfaces[C.data.qtip];z.options.show.when.target.unbind(z.options.show.when.event+".qtip-"+C.data.qtip+"-create");z.cache.mouse={x:C.pageX,y:C.pageY};p.call(z);z.options.show.when.target.trigger(z.options.show.when.event)})}else{x.cache.mouse={x:v.show.when.target.offset().left,y:v.show.when.target.offset().top};p.call(x)}}})};function d(u,t,v){var s=this;s.id=v;s.options=t;s.status={animated:false,rendered:false,disabled:false,focused:false};s.elements={target:u.addClass(s.options.style.classes.target),tooltip:null,wrapper:null,content:null,contentWrapper:null,title:null,button:null,tip:null,bgiframe:null};s.cache={mouse:{},position:{},toggle:0};s.timers={};f.extend(s,s.options.api,{show:function(y){var x,z;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"show")}if(s.elements.tooltip.css("display")!=="none"){return s}s.elements.tooltip.stop(true,false);x=s.beforeShow.call(s,y);if(x===false){return s}function w(){if(s.options.position.type!=="static"){s.focus()}s.onShow.call(s,y);if(f.browser.msie){s.elements.tooltip.get(0).style.removeAttribute("filter")}}s.cache.toggle=1;if(s.options.position.type!=="static"){s.updatePosition(y,(s.options.show.effect.length>0))}if(typeof s.options.show.solo=="object"){z=f(s.options.show.solo)}else{if(s.options.show.solo===true){z=f("div.qtip").not(s.elements.tooltip)}}if(z){z.each(function(){if(f(this).qtip("api").status.rendered===true){f(this).qtip("api").hide()}})}if(typeof s.options.show.effect.type=="function"){s.options.show.effect.type.call(s.elements.tooltip,s.options.show.effect.length);s.elements.tooltip.queue(function(){w();f(this).dequeue()})}else{switch(s.options.show.effect.type.toLowerCase()){case"fade":s.elements.tooltip.fadeIn(s.options.show.effect.length,w);break;case"slide":s.elements.tooltip.slideDown(s.options.show.effect.length,function(){w();if(s.options.position.type!=="static"){s.updatePosition(y,true)}});break;case"grow":s.elements.tooltip.show(s.options.show.effect.length,w);break;default:s.elements.tooltip.show(null,w);break}s.elements.tooltip.addClass(s.options.style.classes.active)}return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_SHOWN,"show")},hide:function(y){var x;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"hide")}else{if(s.elements.tooltip.css("display")==="none"){return s}}clearTimeout(s.timers.show);s.elements.tooltip.stop(true,false);x=s.beforeHide.call(s,y);if(x===false){return s}function w(){s.onHide.call(s,y)}s.cache.toggle=0;if(typeof s.options.hide.effect.type=="function"){s.options.hide.effect.type.call(s.elements.tooltip,s.options.hide.effect.length);s.elements.tooltip.queue(function(){w();f(this).dequeue()})}else{switch(s.options.hide.effect.type.toLowerCase()){case"fade":s.elements.tooltip.fadeOut(s.options.hide.effect.length,w);break;case"slide":s.elements.tooltip.slideUp(s.options.hide.effect.length,w);break;case"grow":s.elements.tooltip.hide(s.options.hide.effect.length,w);break;default:s.elements.tooltip.hide(null,w);break}s.elements.tooltip.removeClass(s.options.style.classes.active)}return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_HIDDEN,"hide")},updatePosition:function(w,x){var C,G,L,J,H,E,y,I,B,D,K,A,F,z;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"updatePosition")}else{if(s.options.position.type=="static"){return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.CANNOT_POSITION_STATIC,"updatePosition")}}G={position:{left:0,top:0},dimensions:{height:0,width:0},corner:s.options.position.corner.target};L={position:s.getPosition(),dimensions:s.getDimensions(),corner:s.options.position.corner.tooltip};if(s.options.position.target!=="mouse"){if(s.options.position.target.get(0).nodeName.toLowerCase()=="area"){J=s.options.position.target.attr("coords").split(",");for(C=0;C<J.length;C++){J[C]=parseInt(J[C])}H=s.options.position.target.parent("map").attr("name");E=f('img[usemap="#'+H+'"]:first').offset();G.position={left:Math.floor(E.left+J[0]),top:Math.floor(E.top+J[1])};switch(s.options.position.target.attr("shape").toLowerCase()){case"rect":G.dimensions={width:Math.ceil(Math.abs(J[2]-J[0])),height:Math.ceil(Math.abs(J[3]-J[1]))};break;case"circle":G.dimensions={width:J[2]+1,height:J[2]+1};break;case"poly":G.dimensions={width:J[0],height:J[1]};for(C=0;C<J.length;C++){if(C%2==0){if(J[C]>G.dimensions.width){G.dimensions.width=J[C]}if(J[C]<J[0]){G.position.left=Math.floor(E.left+J[C])}}else{if(J[C]>G.dimensions.height){G.dimensions.height=J[C]}if(J[C]<J[1]){G.position.top=Math.floor(E.top+J[C])}}}G.dimensions.width=G.dimensions.width-(G.position.left-E.left);G.dimensions.height=G.dimensions.height-(G.position.top-E.top);break;default:return f.fn.qtip.log.error.call(s,4,f.fn.qtip.constants.INVALID_AREA_SHAPE,"updatePosition");break}G.dimensions.width-=2;G.dimensions.height-=2}else{if(s.options.position.target.add(document.body).length===1){G.position={left:f(document).scrollLeft(),top:f(document).scrollTop()};G.dimensions={height:f(window).height(),width:f(window).width()}}else{if(typeof s.options.position.target.attr("qtip")!=="undefined"){G.position=s.options.position.target.qtip("api").cache.position}else{G.position=s.options.position.target.offset()}G.dimensions={height:s.options.position.target.outerHeight(),width:s.options.position.target.outerWidth()}}}y=f.extend({},G.position);if(G.corner.search(/right/i)!==-1){y.left+=G.dimensions.width}if(G.corner.search(/bottom/i)!==-1){y.top+=G.dimensions.height}if(G.corner.search(/((top|bottom)Middle)|center/)!==-1){y.left+=(G.dimensions.width/2)}if(G.corner.search(/((left|right)Middle)|center/)!==-1){y.top+=(G.dimensions.height/2)}}else{G.position=y={left:s.cache.mouse.x,top:s.cache.mouse.y};G.dimensions={height:1,width:1}}if(L.corner.search(/right/i)!==-1){y.left-=L.dimensions.width}if(L.corner.search(/bottom/i)!==-1){y.top-=L.dimensions.height}if(L.corner.search(/((top|bottom)Middle)|center/)!==-1){y.left-=(L.dimensions.width/2)}if(L.corner.search(/((left|right)Middle)|center/)!==-1){y.top-=(L.dimensions.height/2)}I=(f.browser.msie)?1:0;B=(f.browser.msie&&parseInt(f.browser.version.charAt(0))===6)?1:0;if(s.options.style.border.radius>0){if(L.corner.search(/Left/)!==-1){y.left-=s.options.style.border.radius}else{if(L.corner.search(/Right/)!==-1){y.left+=s.options.style.border.radius}}if(L.corner.search(/Top/)!==-1){y.top-=s.options.style.border.radius}else{if(L.corner.search(/Bottom/)!==-1){y.top+=s.options.style.border.radius}}}if(I){if(L.corner.search(/top/)!==-1){y.top-=I}else{if(L.corner.search(/bottom/)!==-1){y.top+=I}}if(L.corner.search(/left/)!==-1){y.left-=I}else{if(L.corner.search(/right/)!==-1){y.left+=I}}if(L.corner.search(/leftMiddle|rightMiddle/)!==-1){y.top-=1}}if(s.options.position.adjust.screen===true){y=o.call(s,y,G,L)}if(s.options.position.target==="mouse"&&s.options.position.adjust.mouse===true){if(s.options.position.adjust.screen===true&&s.elements.tip){K=s.elements.tip.attr("rel")}else{K=s.options.position.corner.tooltip}y.left+=(K.search(/right/i)!==-1)?-6:6;y.top+=(K.search(/bottom/i)!==-1)?-6:6}if(!s.elements.bgiframe&&f.browser.msie&&parseInt(f.browser.version.charAt(0))==6){f("select, object").each(function(){A=f(this).offset();A.bottom=A.top+f(this).height();A.right=A.left+f(this).width();if(y.top+L.dimensions.height>=A.top&&y.left+L.dimensions.width>=A.left){k.call(s)}})}y.left+=s.options.position.adjust.x;y.top+=s.options.position.adjust.y;F=s.getPosition();if(y.left!=F.left||y.top!=F.top){z=s.beforePositionUpdate.call(s,w);if(z===false){return s}s.cache.position=y;if(x===true){s.status.animated=true;s.elements.tooltip.animate(y,200,"swing",function(){s.status.animated=false})}else{s.elements.tooltip.css(y)}s.onPositionUpdate.call(s,w);if(typeof w!=="undefined"&&w.type&&w.type!=="mousemove"){f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_POSITION_UPDATED,"updatePosition")}}return s},updateWidth:function(w){var x;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"updateWidth")}else{if(w&&typeof w!=="number"){return f.fn.qtip.log.error.call(s,2,"newWidth must be of type number","updateWidth")}}x=s.elements.contentWrapper.siblings().add(s.elements.tip).add(s.elements.button);if(!w){if(typeof s.options.style.width.value=="number"){w=s.options.style.width.value}else{s.elements.tooltip.css({width:"auto"});x.hide();if(f.browser.msie){s.elements.wrapper.add(s.elements.contentWrapper.children()).css({zoom:"normal"})}w=s.getDimensions().width+1;if(!s.options.style.width.value){if(w>s.options.style.width.max){w=s.options.style.width.max}if(w<s.options.style.width.min){w=s.options.style.width.min}}}}if(w%2!==0){w-=1}s.elements.tooltip.width(w);x.show();if(s.options.style.border.radius){s.elements.tooltip.find(".qtip-betweenCorners").each(function(y){f(this).width(w-(s.options.style.border.radius*2))})}if(f.browser.msie){s.elements.wrapper.add(s.elements.contentWrapper.children()).css({zoom:"1"});s.elements.wrapper.width(w);if(s.elements.bgiframe){s.elements.bgiframe.width(w).height(s.getDimensions.height)}}return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_WIDTH_UPDATED,"updateWidth")},updateStyle:function(w){var z,A,x,y,B;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"updateStyle")}else{if(typeof w!=="string"||!f.fn.qtip.styles[w]){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.STYLE_NOT_DEFINED,"updateStyle")}}s.options.style=a.call(s,f.fn.qtip.styles[w],s.options.user.style);s.elements.content.css(q(s.options.style));if(s.options.content.title.text!==false){s.elements.title.css(q(s.options.style.title,true))}s.elements.contentWrapper.css({borderColor:s.options.style.border.color});if(s.options.style.tip.corner!==false){if(f("<canvas>").get(0).getContext){z=s.elements.tooltip.find(".qtip-tip canvas:first");x=z.get(0).getContext("2d");x.clearRect(0,0,300,300);y=z.parent("div[rel]:first").attr("rel");B=b(y,s.options.style.tip.size.width,s.options.style.tip.size.height);h.call(s,z,B,s.options.style.tip.color||s.options.style.border.color)}else{if(f.browser.msie){z=s.elements.tooltip.find('.qtip-tip [nodeName="shape"]');z.attr("fillcolor",s.options.style.tip.color||s.options.style.border.color)}}}if(s.options.style.border.radius>0){s.elements.tooltip.find(".qtip-betweenCorners").css({backgroundColor:s.options.style.border.color});if(f("<canvas>").get(0).getContext){A=g(s.options.style.border.radius);s.elements.tooltip.find(".qtip-wrapper canvas").each(function(){x=f(this).get(0).getContext("2d");x.clearRect(0,0,300,300);y=f(this).parent("div[rel]:first").attr("rel");r.call(s,f(this),A[y],s.options.style.border.radius,s.options.style.border.color)})}else{if(f.browser.msie){s.elements.tooltip.find('.qtip-wrapper [nodeName="arc"]').each(function(){f(this).attr("fillcolor",s.options.style.border.color)})}}}return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_STYLE_UPDATED,"updateStyle")},updateContent:function(A,y){var z,x,w;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"updateContent")}else{if(!A){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.NO_CONTENT_PROVIDED,"updateContent")}}z=s.beforeContentUpdate.call(s,A);if(typeof z=="string"){A=z}else{if(z===false){return}}if(f.browser.msie){s.elements.contentWrapper.children().css({zoom:"normal"})}if(A.jquery&&A.length>0){A.clone(true).appendTo(s.elements.content).show()}else{s.elements.content.html(A)}x=s.elements.content.find("img[complete=false]");if(x.length>0){w=0;x.each(function(C){f('<img src="'+f(this).attr("src")+'" />').load(function(){if(++w==x.length){B()}})})}else{B()}function B(){s.updateWidth();if(y!==false){if(s.options.position.type!=="static"){s.updatePosition(s.elements.tooltip.is(":visible"),true)}if(s.options.style.tip.corner!==false){n.call(s)}}}s.onContentUpdate.call(s);return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_CONTENT_UPDATED,"loadContent")},loadContent:function(w,z,A){var y;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"loadContent")}y=s.beforeContentLoad.call(s);if(y===false){return s}if(A=="post"){f.post(w,z,x)}else{f.get(w,z,x)}function x(B){s.onContentLoad.call(s);f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_CONTENT_LOADED,"loadContent");s.updateContent(B)}return s},updateTitle:function(w){if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"updateTitle")}else{if(!w){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.NO_CONTENT_PROVIDED,"updateTitle")}}returned=s.beforeTitleUpdate.call(s);if(returned===false){return s}if(s.elements.button){s.elements.button=s.elements.button.clone(true)}s.elements.title.html(w);if(s.elements.button){s.elements.title.prepend(s.elements.button)}s.onTitleUpdate.call(s);return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_TITLE_UPDATED,"updateTitle")},focus:function(A){var y,x,w,z;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"focus")}else{if(s.options.position.type=="static"){return f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.CANNOT_FOCUS_STATIC,"focus")}}y=parseInt(s.elements.tooltip.css("z-index"));x=6000+f("div.qtip[qtip]").length-1;if(!s.status.focused&&y!==x){z=s.beforeFocus.call(s,A);if(z===false){return s}f("div.qtip[qtip]").not(s.elements.tooltip).each(function(){if(f(this).qtip("api").status.rendered===true){w=parseInt(f(this).css("z-index"));if(typeof w=="number"&&w>-1){f(this).css({zIndex:parseInt(f(this).css("z-index"))-1})}f(this).qtip("api").status.focused=false}});s.elements.tooltip.css({zIndex:x});s.status.focused=true;s.onFocus.call(s,A);f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_FOCUSED,"focus")}return s},disable:function(w){if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"disable")}if(w){if(!s.status.disabled){s.status.disabled=true;f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_DISABLED,"disable")}else{f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.TOOLTIP_ALREADY_DISABLED,"disable")}}else{if(s.status.disabled){s.status.disabled=false;f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_ENABLED,"disable")}else{f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.TOOLTIP_ALREADY_ENABLED,"disable")}}return s},destroy:function(){var w,x,y;x=s.beforeDestroy.call(s);if(x===false){return s}if(s.status.rendered){s.options.show.when.target.unbind("mousemove.qtip",s.updatePosition);s.options.show.when.target.unbind("mouseout.qtip",s.hide);s.options.show.when.target.unbind(s.options.show.when.event+".qtip");s.options.hide.when.target.unbind(s.options.hide.when.event+".qtip");s.elements.tooltip.unbind(s.options.hide.when.event+".qtip");s.elements.tooltip.unbind("mouseover.qtip",s.focus);s.elements.tooltip.remove()}else{s.options.show.when.target.unbind(s.options.show.when.event+".qtip-create")}if(typeof s.elements.target.data("qtip")=="object"){y=s.elements.target.data("qtip").interfaces;if(typeof y=="object"&&y.length>0){for(w=0;w<y.length-1;w++){if(y[w].id==s.id){y.splice(w,1)}}}}delete f.fn.qtip.interfaces[s.id];if(typeof y=="object"&&y.length>0){s.elements.target.data("qtip").current=y.length-1}else{s.elements.target.removeData("qtip")}s.onDestroy.call(s);f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_DESTROYED,"destroy");return s.elements.target},getPosition:function(){var w,x;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"getPosition")}w=(s.elements.tooltip.css("display")!=="none")?false:true;if(w){s.elements.tooltip.css({visiblity:"hidden"}).show()}x=s.elements.tooltip.offset();if(w){s.elements.tooltip.css({visiblity:"visible"}).hide()}return x},getDimensions:function(){var w,x;if(!s.status.rendered){return f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.TOOLTIP_NOT_RENDERED,"getDimensions")}w=(!s.elements.tooltip.is(":visible"))?true:false;if(w){s.elements.tooltip.css({visiblity:"hidden"}).show()}x={height:s.elements.tooltip.outerHeight(),width:s.elements.tooltip.outerWidth()};if(w){s.elements.tooltip.css({visiblity:"visible"}).hide()}return x}})}function p(){var s,w,u,t,v,y,x;s=this;s.beforeRender.call(s);s.status.rendered=true;s.elements.tooltip='<div qtip="'+s.id+'" class="qtip '+(s.options.style.classes.tooltip||s.options.style)+'"style="display:none; -moz-border-radius:0; -webkit-border-radius:0; border-radius:0;position:'+s.options.position.type+';">  <div class="qtip-wrapper" style="position:relative; overflow:hidden; text-align:left;">    <div class="qtip-contentWrapper" style="overflow:hidden;">       <div class="qtip-content '+s.options.style.classes.content+'"></div></div></div></div>';s.elements.tooltip=f(s.elements.tooltip);s.elements.tooltip.appendTo(s.options.position.container);s.elements.tooltip.data("qtip",{current:0,interfaces:[s]});s.elements.wrapper=s.elements.tooltip.children("div:first");s.elements.contentWrapper=s.elements.wrapper.children("div:first").css({background:s.options.style.background});s.elements.content=s.elements.contentWrapper.children("div:first").css(q(s.options.style));if(f.browser.msie){s.elements.wrapper.add(s.elements.content).css({zoom:1})}if(s.options.hide.when.event=="unfocus"){s.elements.tooltip.attr("unfocus",true)}if(typeof s.options.style.width.value=="number"){s.updateWidth()}if(f("<canvas>").get(0).getContext||f.browser.msie){if(s.options.style.border.radius>0){m.call(s)}else{s.elements.contentWrapper.css({border:s.options.style.border.width+"px solid "+s.options.style.border.color})}if(s.options.style.tip.corner!==false){e.call(s)}}else{s.elements.contentWrapper.css({border:s.options.style.border.width+"px solid "+s.options.style.border.color});s.options.style.border.radius=0;s.options.style.tip.corner=false;f.fn.qtip.log.error.call(s,2,f.fn.qtip.constants.CANVAS_VML_NOT_SUPPORTED,"render")}if((typeof s.options.content.text=="string"&&s.options.content.text.length>0)||(s.options.content.text.jquery&&s.options.content.text.length>0)){u=s.options.content.text}else{if(typeof s.elements.target.attr("title")=="string"&&s.elements.target.attr("title").length>0){u=s.elements.target.attr("title").replace("\\n","<br />");s.elements.target.attr("title","")}else{if(typeof s.elements.target.attr("alt")=="string"&&s.elements.target.attr("alt").length>0){u=s.elements.target.attr("alt").replace("\\n","<br />");s.elements.target.attr("alt","")}else{u=" ";f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.NO_VALID_CONTENT,"render")}}}if(s.options.content.title.text!==false){j.call(s)}s.updateContent(u);l.call(s);if(s.options.show.ready===true){s.show()}if(s.options.content.url!==false){t=s.options.content.url;v=s.options.content.data;y=s.options.content.method||"get";s.loadContent(t,v,y)}s.onRender.call(s);f.fn.qtip.log.error.call(s,1,f.fn.qtip.constants.EVENT_RENDERED,"render")}function m(){var F,z,t,B,x,E,u,G,D,y,w,C,A,s,v;F=this;F.elements.wrapper.find(".qtip-borderBottom, .qtip-borderTop").remove();t=F.options.style.border.width;B=F.options.style.border.radius;x=F.options.style.border.color||F.options.style.tip.color;E=g(B);u={};for(z in E){u[z]='<div rel="'+z+'" style="'+((z.search(/Left/)!==-1)?"left":"right")+":0; position:absolute; height:"+B+"px; width:"+B+'px; overflow:hidden; line-height:0.1px; font-size:1px">';if(f("<canvas>").get(0).getContext){u[z]+='<canvas height="'+B+'" width="'+B+'" style="vertical-align: top"></canvas>'}else{if(f.browser.msie){G=B*2+3;u[z]+='<v:arc stroked="false" fillcolor="'+x+'" startangle="'+E[z][0]+'" endangle="'+E[z][1]+'" style="width:'+G+"px; height:"+G+"px; margin-top:"+((z.search(/bottom/)!==-1)?-2:-1)+"px; margin-left:"+((z.search(/Right/)!==-1)?E[z][2]-3.5:-1)+'px; vertical-align:top; display:inline-block; behavior:url(#default#VML)"></v:arc>'}}u[z]+="</div>"}D=F.getDimensions().width-(Math.max(t,B)*2);y='<div class="qtip-betweenCorners" style="height:'+B+"px; width:"+D+"px; overflow:hidden; background-color:"+x+'; line-height:0.1px; font-size:1px;">';w='<div class="qtip-borderTop" dir="ltr" style="height:'+B+"px; margin-left:"+B+'px; line-height:0.1px; font-size:1px; padding:0;">'+u.topLeft+u.topRight+y;F.elements.wrapper.prepend(w);C='<div class="qtip-borderBottom" dir="ltr" style="height:'+B+"px; margin-left:"+B+'px; line-height:0.1px; font-size:1px; padding:0;">'+u.bottomLeft+u.bottomRight+y;F.elements.wrapper.append(C);if(f("<canvas>").get(0).getContext){F.elements.wrapper.find("canvas").each(function(){A=E[f(this).parent("[rel]:first").attr("rel")];r.call(F,f(this),A,B,x)})}else{if(f.browser.msie){F.elements.tooltip.append('<v:image style="behavior:url(#default#VML);"></v:image>')}}s=Math.max(B,(B+(t-B)));v=Math.max(t-B,0);F.elements.contentWrapper.css({border:"0px solid "+x,borderWidth:v+"px "+s+"px"})}function r(u,w,s,t){var v=u.get(0).getContext("2d");v.fillStyle=t;v.beginPath();v.arc(w[0],w[1],s,0,Math.PI*2,false);v.fill()}function e(v){var t,s,x,u,w;t=this;if(t.elements.tip!==null){t.elements.tip.remove()}s=t.options.style.tip.color||t.options.style.border.color;if(t.options.style.tip.corner===false){return}else{if(!v){v=t.options.style.tip.corner}}x=b(v,t.options.style.tip.size.width,t.options.style.tip.size.height);t.elements.tip='<div class="'+t.options.style.classes.tip+'" dir="ltr" rel="'+v+'" style="position:absolute; height:'+t.options.style.tip.size.height+"px; width:"+t.options.style.tip.size.width+'px; margin:0 auto; line-height:0.1px; font-size:1px;">';if(f("<canvas>").get(0).getContext){t.elements.tip+='<canvas height="'+t.options.style.tip.size.height+'" width="'+t.options.style.tip.size.width+'"></canvas>'}else{if(f.browser.msie){u=t.options.style.tip.size.width+","+t.options.style.tip.size.height;w="m"+x[0][0]+","+x[0][1];w+=" l"+x[1][0]+","+x[1][1];w+=" "+x[2][0]+","+x[2][1];w+=" xe";t.elements.tip+='<v:shape fillcolor="'+s+'" stroked="false" filled="true" path="'+w+'" coordsize="'+u+'" style="width:'+t.options.style.tip.size.width+"px; height:"+t.options.style.tip.size.height+"px; line-height:0.1px; display:inline-block; behavior:url(#default#VML); vertical-align:"+((v.search(/top/)!==-1)?"bottom":"top")+'"></v:shape>';t.elements.tip+='<v:image style="behavior:url(#default#VML);"></v:image>';t.elements.contentWrapper.css("position","relative")}}t.elements.tooltip.prepend(t.elements.tip+"</div>");t.elements.tip=t.elements.tooltip.find("."+t.options.style.classes.tip).eq(0);if(f("<canvas>").get(0).getContext){h.call(t,t.elements.tip.find("canvas:first"),x,s)}if(v.search(/top/)!==-1&&f.browser.msie&&parseInt(f.browser.version.charAt(0))===6){t.elements.tip.css({marginTop:-4})}n.call(t,v)}function h(t,v,s){var u=t.get(0).getContext("2d");u.fillStyle=s;u.beginPath();u.moveTo(v[0][0],v[0][1]);u.lineTo(v[1][0],v[1][1]);u.lineTo(v[2][0],v[2][1]);u.fill()}function n(u){var t,w,s,x,v;t=this;if(t.options.style.tip.corner===false||!t.elements.tip){return}if(!u){u=t.elements.tip.attr("rel")}w=positionAdjust=(f.browser.msie)?1:0;t.elements.tip.css(u.match(/left|right|top|bottom/)[0],0);if(u.search(/top|bottom/)!==-1){if(f.browser.msie){if(parseInt(f.browser.version.charAt(0))===6){positionAdjust=(u.search(/top/)!==-1)?-3:1}else{positionAdjust=(u.search(/top/)!==-1)?1:2}}if(u.search(/Middle/)!==-1){t.elements.tip.css({left:"50%",marginLeft:-(t.options.style.tip.size.width/2)})}else{if(u.search(/Left/)!==-1){t.elements.tip.css({left:t.options.style.border.radius-w})}else{if(u.search(/Right/)!==-1){t.elements.tip.css({right:t.options.style.border.radius+w})}}}if(u.search(/top/)!==-1){t.elements.tip.css({top:-positionAdjust})}else{t.elements.tip.css({bottom:positionAdjust})}}else{if(u.search(/left|right/)!==-1){if(f.browser.msie){positionAdjust=(parseInt(f.browser.version.charAt(0))===6)?1:((u.search(/left/)!==-1)?1:2)}if(u.search(/Middle/)!==-1){t.elements.tip.css({top:"50%",marginTop:-(t.options.style.tip.size.height/2)})}else{if(u.search(/Top/)!==-1){t.elements.tip.css({top:t.options.style.border.radius-w})}else{if(u.search(/Bottom/)!==-1){t.elements.tip.css({bottom:t.options.style.border.radius+w})}}}if(u.search(/left/)!==-1){t.elements.tip.css({left:-positionAdjust})}else{t.elements.tip.css({right:positionAdjust})}}}s="padding-"+u.match(/left|right|top|bottom/)[0];x=t.options.style.tip.size[(s.search(/left|right/)!==-1)?"width":"height"];t.elements.tooltip.css("padding",0);t.elements.tooltip.css(s,x);if(f.browser.msie&&parseInt(f.browser.version.charAt(0))==6){v=parseInt(t.elements.tip.css("margin-top"))||0;v+=parseInt(t.elements.content.css("margin-top"))||0;t.elements.tip.css({marginTop:v})}}function j(){var s=this;if(s.elements.title!==null){s.elements.title.remove()}s.elements.title=f('<div class="'+s.options.style.classes.title+'">').css(q(s.options.style.title,true)).css({zoom:(f.browser.msie)?1:0}).prependTo(s.elements.contentWrapper);if(s.options.content.title.text){s.updateTitle.call(s,s.options.content.title.text)}if(s.options.content.title.button!==false&&typeof s.options.content.title.button=="string"){s.elements.button=f('<a class="'+s.options.style.classes.button+'" style="float:right; position: relative"></a>').css(q(s.options.style.button,true)).html(s.options.content.title.button).prependTo(s.elements.title).click(function(t){if(!s.status.disabled){s.hide(t)}})}}function l(){var t,v,u,s;t=this;v=t.options.show.when.target;u=t.options.hide.when.target;if(t.options.hide.fixed){u=u.add(t.elements.tooltip)}if(t.options.hide.when.event=="inactive"){s=["click","dblclick","mousedown","mouseup","mousemove","mouseout","mouseenter","mouseleave","mouseover"];function y(z){if(t.status.disabled===true){return}clearTimeout(t.timers.inactive);t.timers.inactive=setTimeout(function(){f(s).each(function(){u.unbind(this+".qtip-inactive");t.elements.content.unbind(this+".qtip-inactive")});t.hide(z)},t.options.hide.delay)}}else{if(t.options.hide.fixed===true){t.elements.tooltip.bind("mouseover.qtip",function(){if(t.status.disabled===true){return}clearTimeout(t.timers.hide)})}}function x(z){if(t.status.disabled===true){return}if(t.options.hide.when.event=="inactive"){f(s).each(function(){u.bind(this+".qtip-inactive",y);t.elements.content.bind(this+".qtip-inactive",y)});y()}clearTimeout(t.timers.show);clearTimeout(t.timers.hide);t.timers.show=setTimeout(function(){t.show(z)},t.options.show.delay)}function w(z){if(t.status.disabled===true){return}if(t.options.hide.fixed===true&&t.options.hide.when.event.search(/mouse(out|leave)/i)!==-1&&f(z.relatedTarget).parents("div.qtip[qtip]").length>0){z.stopPropagation();z.preventDefault();clearTimeout(t.timers.hide);return false}clearTimeout(t.timers.show);clearTimeout(t.timers.hide);t.elements.tooltip.stop(true,true);t.timers.hide=setTimeout(function(){t.hide(z)},t.options.hide.delay)}if((t.options.show.when.target.add(t.options.hide.when.target).length===1&&t.options.show.when.event==t.options.hide.when.event&&t.options.hide.when.event!=="inactive")||t.options.hide.when.event=="unfocus"){t.cache.toggle=0;v.bind(t.options.show.when.event+".qtip",function(z){if(t.cache.toggle==0){x(z)}else{w(z)}})}else{v.bind(t.options.show.when.event+".qtip",x);if(t.options.hide.when.event!=="inactive"){u.bind(t.options.hide.when.event+".qtip",w)}}if(t.options.position.type.search(/(fixed|absolute)/)!==-1){t.elements.tooltip.bind("mouseover.qtip",t.focus)}if(t.options.position.target==="mouse"&&t.options.position.type!=="static"){v.bind("mousemove.qtip",function(z){t.cache.mouse={x:z.pageX,y:z.pageY};if(t.status.disabled===false&&t.options.position.adjust.mouse===true&&t.options.position.type!=="static"&&t.elements.tooltip.css("display")!=="none"){t.updatePosition(z)}})}}function o(u,v,A){var z,s,x,y,t,w;z=this;if(A.corner=="center"){return v.position}s=f.extend({},u);y={x:false,y:false};t={left:(s.left<f.fn.qtip.cache.screen.scroll.left),right:(s.left+A.dimensions.width+2>=f.fn.qtip.cache.screen.width+f.fn.qtip.cache.screen.scroll.left),top:(s.top<f.fn.qtip.cache.screen.scroll.top),bottom:(s.top+A.dimensions.height+2>=f.fn.qtip.cache.screen.height+f.fn.qtip.cache.screen.scroll.top)};x={left:(t.left&&(A.corner.search(/right/i)!=-1||(A.corner.search(/right/i)==-1&&!t.right))),right:(t.right&&(A.corner.search(/left/i)!=-1||(A.corner.search(/left/i)==-1&&!t.left))),top:(t.top&&A.corner.search(/top/i)==-1),bottom:(t.bottom&&A.corner.search(/bottom/i)==-1)};if(x.left){if(z.options.position.target!=="mouse"){s.left=v.position.left+v.dimensions.width}else{s.left=z.cache.mouse.x}y.x="Left"}else{if(x.right){if(z.options.position.target!=="mouse"){s.left=v.position.left-A.dimensions.width}else{s.left=z.cache.mouse.x-A.dimensions.width}y.x="Right"}}if(x.top){if(z.options.position.target!=="mouse"){s.top=v.position.top+v.dimensions.height}else{s.top=z.cache.mouse.y}y.y="top"}else{if(x.bottom){if(z.options.position.target!=="mouse"){s.top=v.position.top-A.dimensions.height}else{s.top=z.cache.mouse.y-A.dimensions.height}y.y="bottom"}}if(s.left<0){s.left=u.left;y.x=false}if(s.top<0){s.top=u.top;y.y=false}if(z.options.style.tip.corner!==false){s.corner=new String(A.corner);if(y.x!==false){s.corner=s.corner.replace(/Left|Right|Middle/,y.x)}if(y.y!==false){s.corner=s.corner.replace(/top|bottom/,y.y)}if(s.corner!==z.elements.tip.attr("rel")){e.call(z,s.corner)}}return s}function q(u,t){var v,s;v=f.extend(true,{},u);for(s in v){if(t===true&&s.search(/(tip|classes)/i)!==-1){delete v[s]}else{if(!t&&s.search(/(width|border|tip|title|classes|user)/i)!==-1){delete v[s]}}}return v}function c(s){if(typeof s.tip!=="object"){s.tip={corner:s.tip}}if(typeof s.tip.size!=="object"){s.tip.size={width:s.tip.size,height:s.tip.size}}if(typeof s.border!=="object"){s.border={width:s.border}}if(typeof s.width!=="object"){s.width={value:s.width}}if(typeof s.width.max=="string"){s.width.max=parseInt(s.width.max.replace(/([0-9]+)/i,"$1"))}if(typeof s.width.min=="string"){s.width.min=parseInt(s.width.min.replace(/([0-9]+)/i,"$1"))}if(typeof s.tip.size.x=="number"){s.tip.size.width=s.tip.size.x;delete s.tip.size.x}if(typeof s.tip.size.y=="number"){s.tip.size.height=s.tip.size.y;delete s.tip.size.y}return s}function a(){var s,t,u,x,v,w;s=this;u=[true,{}];for(t=0;t<arguments.length;t++){u.push(arguments[t])}x=[f.extend.apply(f,u)];while(typeof x[0].name=="string"){x.unshift(c(f.fn.qtip.styles[x[0].name]))}x.unshift(true,{classes:{tooltip:"qtip-"+(arguments[0].name||"defaults")}},f.fn.qtip.styles.defaults);v=f.extend.apply(f,x);w=(f.browser.msie)?1:0;v.tip.size.width+=w;v.tip.size.height+=w;if(v.tip.size.width%2>0){v.tip.size.width+=1}if(v.tip.size.height%2>0){v.tip.size.height+=1}if(v.tip.corner===true){v.tip.corner=(s.options.position.corner.tooltip==="center")?false:s.options.position.corner.tooltip}return v}function b(v,u,t){var s={bottomRight:[[0,0],[u,t],[u,0]],bottomLeft:[[0,0],[u,0],[0,t]],topRight:[[0,t],[u,0],[u,t]],topLeft:[[0,0],[0,t],[u,t]],topMiddle:[[0,t],[u/2,0],[u,t]],bottomMiddle:[[0,0],[u,0],[u/2,t]],rightMiddle:[[0,0],[u,t/2],[0,t]],leftMiddle:[[u,0],[u,t],[0,t/2]]};s.leftTop=s.bottomRight;s.rightTop=s.bottomLeft;s.leftBottom=s.topRight;s.rightBottom=s.topLeft;return s[v]}function g(s){var t;if(f("<canvas>").get(0).getContext){t={topLeft:[s,s],topRight:[0,s],bottomLeft:[s,0],bottomRight:[0,0]}}else{if(f.browser.msie){t={topLeft:[-90,90,0],topRight:[-90,90,-s],bottomLeft:[90,270,0],bottomRight:[90,270,-s]}}}return t}function k(){var s,t,u;s=this;u=s.getDimensions();t='<iframe class="qtip-bgiframe" frameborder="0" tabindex="-1" src="javascript:false" style="display:block; position:absolute; z-index:-1; filter:alpha(opacity=\'0\'); border: 1px solid red; height:'+u.height+"px; width:"+u.width+'px" />';s.elements.bgiframe=s.elements.wrapper.prepend(t).children(".qtip-bgiframe:first")}f(document).ready(function(){f.fn.qtip.cache={screen:{scroll:{left:f(window).scrollLeft(),top:f(window).scrollTop()},width:f(window).width(),height:f(window).height()}};var s;f(window).bind("resize scroll",function(t){clearTimeout(s);s=setTimeout(function(){if(t.type==="scroll"){f.fn.qtip.cache.screen.scroll={left:f(window).scrollLeft(),top:f(window).scrollTop()}}else{f.fn.qtip.cache.screen.width=f(window).width();f.fn.qtip.cache.screen.height=f(window).height()}for(i=0;i<f.fn.qtip.interfaces.length;i++){var u=f.fn.qtip.interfaces[i];if(u.status.rendered===true&&(u.options.position.type!=="static"||u.options.position.adjust.scroll&&t.type==="scroll"||u.options.position.adjust.resize&&t.type==="resize")){u.updatePosition(t,true)}}},100)});f(document).bind("mousedown.qtip",function(t){if(f(t.target).parents("div.qtip").length===0){f(".qtip[unfocus]").each(function(){var u=f(this).qtip("api");if(f(this).is(":visible")&&!u.status.disabled&&f(t.target).add(u.elements.target).length>1){u.hide(t)}})}})});f.fn.qtip.interfaces=[];f.fn.qtip.log={error:function(){return this}};f.fn.qtip.constants={};f.fn.qtip.defaults={content:{prerender:false,text:false,url:false,data:null,title:{text:false,button:false}},position:{target:false,corner:{target:"bottomRight",tooltip:"topLeft"},adjust:{x:0,y:0,mouse:true,screen:false,scroll:true,resize:true},type:"absolute",container:false},show:{when:{target:false,event:"mouseover"},effect:{type:"fade",length:100},delay:140,solo:false,ready:false},hide:{when:{target:false,event:"mouseout"},effect:{type:"fade",length:100},delay:0,fixed:false},api:{beforeRender:function(){},onRender:function(){},beforePositionUpdate:function(){},onPositionUpdate:function(){},beforeShow:function(){},onShow:function(){},beforeHide:function(){},onHide:function(){},beforeContentUpdate:function(){},onContentUpdate:function(){},beforeContentLoad:function(){},onContentLoad:function(){},beforeTitleUpdate:function(){},onTitleUpdate:function(){},beforeDestroy:function(){},onDestroy:function(){},beforeFocus:function(){},onFocus:function(){}}};f.fn.qtip.styles={defaults:{background:"white",color:"#111",overflow:"hidden",textAlign:"left",width:{min:0,max:250},padding:"5px 9px",border:{width:1,radius:0,color:"#d3d3d3"},tip:{corner:false,color:false,size:{width:13,height:13},opacity:1},title:{background:"#e1e1e1",fontWeight:"bold",padding:"7px 12px"},button:{cursor:"pointer"},classes:{target:"",tip:"qtip-tip",title:"qtip-title",button:"qtip-button",content:"qtip-content",active:"qtip-active"}},cream:{border:{width:3,radius:0,color:"#F9E98E"},title:{background:"#F0DE7D",color:"#A27D35"},background:"#FBF7AA",color:"#A27D35",classes:{tooltip:"qtip-cream"}},light:{border:{width:3,radius:0,color:"#E2E2E2"},title:{background:"#f1f1f1",color:"#454545"},background:"white",color:"#454545",classes:{tooltip:"qtip-light"}},dark:{border:{width:3,radius:0,color:"#303030"},title:{background:"#404040",color:"#f3f3f3"},background:"#505050",color:"#f3f3f3",classes:{tooltip:"qtip-dark"}},red:{border:{width:3,radius:0,color:"#CE6F6F"},title:{background:"#f28279",color:"#9C2F2F"},background:"#F79992",color:"#9C2F2F",classes:{tooltip:"qtip-red"}},green:{border:{width:3,radius:0,color:"#A9DB66"},title:{background:"#b9db8c",color:"#58792E"},background:"#CDE6AC",color:"#58792E",classes:{tooltip:"qtip-green"}},blue:{border:{width:3,radius:0,color:"#ADD9ED"},title:{background:"#D0E9F5",color:"#5E99BD"},background:"#E5F6FE",color:"#4D9FBF",classes:{tooltip:"qtip-blue"}}}})(jQuery);var warehouse={init:function(){warehouse.img=new Image();},log:function(params){warehouse.img.src=document.location.protocol+"//"+document.location.host+"/warehouse/log?"+params+"&_nocache="+Math.random();},logPageView:function(){warehouse.log("type=page_view&page="+escape(location.pathname+location.search));jQuery(document).ready(function(){var timingReady=(new Date())-timingStart;warehouse.log("type=page_load&page="+escape(location.pathname+location.search)+"&page_time="+timingReady);});}};warehouse.init();function addFriend(profileId,onSuccess){new Ajax.Request(ctx+'/profile/addFriend',{method:'get',parameters:{profileId:profileId},onSuccess:friendAddedSuccess});}
function friendAddedSuccess(transport){var json=transport.responseJSON;if(json.result=="ok"){alert("Nu följer du medlemmen!");}
if(json.result=="not-logged-in"){alert("Du måste skapa ett konto och logga in för att kunna följa medlemmar.");}
if(json.result=="duplicate"){alert("Du följer redan medlemmen.");}}
function removeFriend(profileId,onSuccess){new Ajax.Request(ctx+'/profile/removeFriend',{method:'get',parameters:{profileId:profileId},onSuccess:friendRemovedSuccess});}
function friendRemovedSuccess(transport){var json=transport.responseJSON;if(json.result=="ok"){alert("Nu följer du inte längre medlemmen!");}
if(json.result=="not-logged-in"){alert("Du måste logga in.");}}
function sendQuery(f){var queryEncoded=encodeURIComponent(f.query.value);document.location=ctx+"/recept-sok/"+queryEncoded;}
function appendUrlParameter(url,param){if(param=="")return url;if(url.indexOf('?')==-1){url+='?';}else{url+='&';}
url+=param;return url;}
Event.observe(window,'load',function(){$$("table.zebra").each(function(table){Selector.findChildElements(table,["tr"]).findAll(function(row,i){return i%2==0;}).invoke("addClassName","odd");});$$("ul.zebra").each(function(table){Selector.findChildElements(table,["li"]).findAll(function(row,i){return i%2==0;}).invoke("addClassName","odd");});});function newestImagesByDishType(dishTypeId){jQuery(".newestImages .focus-choice").removeClass("active");jQuery("#newestImagesByDishType_"+dishTypeId).addClass("active");params={};if(dishTypeId!=-1){params={dishTypeId:dishTypeId};}
new Ajax.Updater('newestImages',ctx+'/ajax/newestImagesByDishType',{parameters:params});pageTracker._trackPageview("/ajax/newestImagesByDishType?dishTypeId="+dishTypeId);}
function newestRecipeEvents(eventType){jQuery(".newestRecipes .focus-choice").removeClass("active");jQuery("#newestRecipes_"+eventType).addClass("active");params={eventType:eventType};new Ajax.Updater('newestRecipeEvents',ctx+'/ajax/newestRecipeEvents',{parameters:params,onCreate:function(){Element.hide('newestRecipeEvents');Element.show('workingRecipe');},onComplete:function(){Element.hide('workingRecipe');Element.show('newestRecipeEvents');}});}
function newestRecipeGroupEvents(eventType){jQuery(".newestRecipes .focus-choice").removeClass("active");jQuery("#newestRecipes_"+eventType).addClass("active");params={eventType:eventType};new Ajax.Updater('newestRecipeEvents',ctx+'/ajax/newestRecipeGroupEvents',{parameters:params,onCreate:function(){Element.hide('newestRecipeEvents');Element.show('workingRecipe');},onComplete:function(){Element.hide('workingRecipe');Element.show('newestRecipeEvents');}});}
function addToGroup(groupId,recipeId){new Ajax.Request(ctx+'/profile/addRecipeToGroup',{method:'get',parameters:{groupId:groupId,recipeId:recipeId},onSuccess:function(transport){var json=transport.responseJSON;if(json.result=="ok"){$("groupResultLink").innerHTML="<p>Sparat i <a href='/home?tab=tab2&extranav=groups&groupId="+json.groupId+"'>"+json.groupName+"</a></p>"
new Effect.Highlight("groupResultLink",{endcolor:'#E9E6D8'});jQuery("#shareSaveOnFacebook").show();}
if(json.result=="duplicate"){$("groupResultLink").innerHTML="<p>Receptet fanns redan i kokboken <a href='/home?tab=tab2&extranav=groups&groupId="+json.groupId+"'>"+json.groupName+"</a></p>"
new Effect.Highlight("groupResultLink",{endcolor:'#E9E6D8'});jQuery("#shareSaveOnFacebook").show();}}});}
function dateChanged(calendar){if(calendar.dateClicked){var y=calendar.date.getFullYear();var m=calendar.date.getMonth();m+=1;if(m<10){m="0"+m;}
var d=calendar.date.getDate();if(d<10){d="0"+d;}
$('menuItemDate').value=y+"-"+m+"-"+d;}};function addToMenu(menuId,recipeId){var mealTypeId=$("menuItemMealType").value;var date=$("menuItemDate").value;if(mealTypeId==-1){alert("Välj typ av måltid");return;}
new Ajax.Request(ctx+'/recipe/addRecipeToMenu',{method:'get',parameters:{menuId:menuId,recipeId:recipeId,mealTypeId:mealTypeId,date:date},onSuccess:function(transport){var json=transport.responseJSON;if(json.result=="ok"){$("menuResultLink").innerHTML="<p>Receptet tillagt i <a href='/home?tab=menu&startDate="+json.date+"&menuId="+json.menuId+"'>"+json.menuName+"</a></p>"
new Effect.Highlight("menuResultLink",{endcolor:'#E9E6D8'});}
if(json.result=="duplicate"){alert("Recept var redan med i matsedeln "+json.menuName);}
if(json.result=="failed"){alert(json.reason);}}});}
function rate(rating,recipeId){new Ajax.Request(ctx+'/recipe/rate',{method:'get',parameters:{rating:rating,id:recipeId},onSuccess:function(transport){var json=transport.responseJSON;if(json.result=="ok"){if(json.duplicate=="duplicate"){Modal.show("Röstning","Tack för din röst. Du hade redan röstat på detta recept så din röst är nu ändrad.");}else{Modal.show("Röstning","Tack för din röst.");}
setRating(json.votes,json.rating,json.ratingPercentage);}
if(json.result=="must-log-in"){Modal.show("Röstning","Du måste vara inloggad för att få rösta.");}
if(json.result=="new-recipe"){Modal.show("Röstning","Receptet måste funnits 4 timmar för att du ska få rösta.");}
if(json.result=="own-recipe"){Modal.show("Röstning","Du kan inte rösta på ditt eget recept.");}}});}
function setRating(votes,rating,ratingPercentage){$("ratingText").innerHTML="Betyg: "+rating+"/5 ("+votes+" röster)";$("current-rating").style.width=ratingPercentage+"%";}
function showSubmitRecipePhotoDiv(){Modal.show("Ladda upp foto",DomUtil.fromElm("submitRecipePhotoDiv"));}
function showSubmitRecipeVideoDiv(){Modal.show("Ladda upp video",DomUtil.fromElm("submitRecipeVideoDiv"));}
function showSubmitRecipeCommentDiv(){Modal.show("Kommentera",DomUtil.fromElm("submitRecipeCommentDiv"));}
function showSaveRecipeDiv(){Modal.show("Spara i kokbok",DomUtil.fromElm("saveRecipeDiv"));}
function showAddToMenuDiv(){Modal.show("Lägg till meny",DomUtil.fromElm("addToMenuDiv"));$$("#modal #calendar-container")[0].id="active-calendar-container"
Calendar.setup({flat:"active-calendar-container",flatCallback:dateChanged,showOthers:false});}
function showSendRecipeDiv(){Modal.show("Tipsa en vän",DomUtil.fromElm("sendRecipeDiv"));}
var fileLoadingImage="/gfx/lightbox/loading.gif";var fileBottomNavCloseImage="/gfx/lightbox/closelabel.gif";var overlayOpacity=0.8;var animate=true;var resizeSpeed=10;var borderSize=10;var imageArray=new Array;var activeImage;if(animate==true){overlayDuration=0.2;if(resizeSpeed>10){resizeSpeed=10;}
if(resizeSpeed<1){resizeSpeed=1;}
resizeDuration=(11-resizeSpeed)*0.15;}else{overlayDuration=0;resizeDuration=0;}
Object.extend(Element,{getWidth:function(element){element=$(element);return element.offsetWidth;},setWidth:function(element,w){element=$(element);element.style.width=w+"px";},setHeight:function(element,h){element=$(element);element.style.height=h+"px";},setTop:function(element,t){element=$(element);element.style.top=t+"px";},setLeft:function(element,l){element=$(element);element.style.left=l+"px";},setSrc:function(element,src){element=$(element);element.src=src;},setHref:function(element,href){element=$(element);element.href=href;},setInnerHTML:function(element,content){element=$(element);element.innerHTML=content;}});Array.prototype.removeDuplicates=function(){for(i=0;i<this.length;i++){for(j=this.length-1;j>i;j--){if(this[i][0]==this[j][0]){this.splice(j,1);}}}}
Array.prototype.empty=function(){for(i=0;i<=this.length;i++){this.shift();}}
var Lightbox=Class.create();Lightbox.prototype={initialize:function(){this.updateImageList();var objBody=document.getElementsByTagName("body").item(0);var objOverlay=document.createElement("div");objOverlay.setAttribute('id','overlay');objOverlay.style.display='none';objOverlay.onclick=function(){myLightbox.end();}
objBody.appendChild(objOverlay);var objLightbox=document.createElement("div");objLightbox.setAttribute('id','lightbox');objLightbox.style.display='none';objLightbox.onclick=function(e){if(!e)var e=window.event;var clickObj=Event.element(e).id;if(clickObj=='lightbox'){myLightbox.end();}};objBody.appendChild(objLightbox);var objOuterImageContainer=document.createElement("div");objOuterImageContainer.setAttribute('id','outerImageContainer');objLightbox.appendChild(objOuterImageContainer);if(animate){Element.setWidth('outerImageContainer',250);Element.setHeight('outerImageContainer',250);}else{Element.setWidth('outerImageContainer',1);Element.setHeight('outerImageContainer',1);}
var objImageContainer=document.createElement("div");objImageContainer.setAttribute('id','imageContainer');objOuterImageContainer.appendChild(objImageContainer);var objLightboxImage=document.createElement("img");objLightboxImage.setAttribute('id','lightboxImage');objImageContainer.appendChild(objLightboxImage);var objHoverNav=document.createElement("div");objHoverNav.setAttribute('id','hoverNav');objImageContainer.appendChild(objHoverNav);var objPrevLink=document.createElement("a");objPrevLink.setAttribute('id','prevLink');objPrevLink.setAttribute('href','#');objHoverNav.appendChild(objPrevLink);var objNextLink=document.createElement("a");objNextLink.setAttribute('id','nextLink');objNextLink.setAttribute('href','#');objHoverNav.appendChild(objNextLink);var objLoading=document.createElement("div");objLoading.setAttribute('id','loading');objImageContainer.appendChild(objLoading);var objLoadingLink=document.createElement("a");objLoadingLink.setAttribute('id','loadingLink');objLoadingLink.setAttribute('href','#');objLoadingLink.onclick=function(){myLightbox.end();return false;}
objLoading.appendChild(objLoadingLink);var objLoadingImage=document.createElement("img");objLoadingImage.setAttribute('src',fileLoadingImage);objLoadingLink.appendChild(objLoadingImage);var objImageDataContainer=document.createElement("div");objImageDataContainer.setAttribute('id','imageDataContainer');objLightbox.appendChild(objImageDataContainer);var objImageData=document.createElement("div");objImageData.setAttribute('id','imageData');objImageDataContainer.appendChild(objImageData);var objImageDetails=document.createElement("div");objImageDetails.setAttribute('id','imageDetails');objImageData.appendChild(objImageDetails);var objCaption=document.createElement("span");objCaption.setAttribute('id','caption');objImageDetails.appendChild(objCaption);var objNumberDisplay=document.createElement("span");objNumberDisplay.setAttribute('id','numberDisplay');objImageDetails.appendChild(objNumberDisplay);var objBottomNav=document.createElement("div");objBottomNav.setAttribute('id','bottomNav');objImageData.appendChild(objBottomNav);var objBottomNavCloseLink=document.createElement("a");objBottomNavCloseLink.setAttribute('id','bottomNavClose');objBottomNavCloseLink.setAttribute('href','#');objBottomNavCloseLink.onclick=function(){myLightbox.end();return false;}
objBottomNav.appendChild(objBottomNavCloseLink);var objBottomNavCloseImage=document.createElement("img");objBottomNavCloseImage.setAttribute('src',fileBottomNavCloseImage);objBottomNavCloseLink.appendChild(objBottomNavCloseImage);},updateImageList:function(){if(!document.getElementsByTagName){return;}
var anchors=document.getElementsByTagName('a');var areas=document.getElementsByTagName('area');for(var i=0;i<anchors.length;i++){var anchor=anchors[i];var relAttribute=String(anchor.getAttribute('rel'));if(anchor.getAttribute('href')&&(relAttribute.toLowerCase().match('lightbox'))){anchor.onclick=function(){myLightbox.start(this);return false;}}}
for(var i=0;i<areas.length;i++){var area=areas[i];var relAttribute=String(area.getAttribute('rel'));if(area.getAttribute('href')&&(relAttribute.toLowerCase().match('lightbox'))){area.onclick=function(){myLightbox.start(this);return false;}}}},start:function(imageLink){hideSelectBoxes();hideFlash();var arrayPageSize=getPageSize();Element.setWidth('overlay',arrayPageSize[0]);Element.setHeight('overlay',arrayPageSize[1]);new Effect.Appear('overlay',{duration:overlayDuration,from:0.0,to:overlayOpacity});imageArray=[];imageNum=0;if(!document.getElementsByTagName){return;}
var anchors=document.getElementsByTagName(imageLink.tagName);if((imageLink.getAttribute('rel')=='lightbox')){imageArray.push(new Array(imageLink.getAttribute('href'),imageLink.getAttribute('title')));}else{for(var i=0;i<anchors.length;i++){var anchor=anchors[i];if(anchor.getAttribute('href')&&(anchor.getAttribute('rel')==imageLink.getAttribute('rel'))){imageArray.push(new Array(anchor.getAttribute('href'),anchor.getAttribute('title')));}}
imageArray.removeDuplicates();while(imageArray[imageNum][0]!=imageLink.getAttribute('href')){imageNum++;}}
var arrayPageScroll=getPageScroll();var lightboxTop=arrayPageScroll[1]+(arrayPageSize[3]/10);var lightboxLeft=arrayPageScroll[0];Element.setTop('lightbox',lightboxTop);Element.setLeft('lightbox',lightboxLeft);Element.show('lightbox');this.changeImage(imageNum);},changeImage:function(imageNum){activeImage=imageNum;if(animate){Element.show('loading');}
Element.hide('lightboxImage');Element.hide('hoverNav');Element.hide('prevLink');Element.hide('nextLink');Element.hide('imageDataContainer');Element.hide('numberDisplay');imgPreloader=new Image();imgPreloader.onload=function(){Element.setSrc('lightboxImage',imageArray[activeImage][0]);myLightbox.resizeImageContainer(imgPreloader.width,imgPreloader.height);imgPreloader.onload=function(){};}
imgPreloader.src=imageArray[activeImage][0];},resizeImageContainer:function(imgWidth,imgHeight){this.widthCurrent=Element.getWidth('outerImageContainer');this.heightCurrent=Element.getHeight('outerImageContainer');var widthNew=(imgWidth+(borderSize*2));var heightNew=(imgHeight+(borderSize*2));this.xScale=(widthNew/this.widthCurrent)*100;this.yScale=(heightNew/this.heightCurrent)*100;wDiff=this.widthCurrent-widthNew;hDiff=this.heightCurrent-heightNew;if(!(hDiff==0)){new Effect.Scale('outerImageContainer',this.yScale,{scaleX:false,duration:resizeDuration,queue:'front'});}
if(!(wDiff==0)){new Effect.Scale('outerImageContainer',this.xScale,{scaleY:false,delay:resizeDuration,duration:resizeDuration});}
if((hDiff==0)&&(wDiff==0)){if(navigator.appVersion.indexOf("MSIE")!=-1){pause(250);}else{pause(100);}}
Element.setHeight('prevLink',imgHeight);Element.setHeight('nextLink',imgHeight);Element.setWidth('imageDataContainer',widthNew);this.showImage();},showImage:function(){Element.hide('loading');new Effect.Appear('lightboxImage',{duration:resizeDuration,queue:'end',afterFinish:function(){myLightbox.updateDetails();}});this.preloadNeighborImages();},updateDetails:function(){if(imageArray[activeImage][1]){Element.show('caption');Element.setInnerHTML('caption',imageArray[activeImage][1]);}
if(imageArray.length>1){Element.show('numberDisplay');Element.setInnerHTML('numberDisplay',"Image "+eval(activeImage+1)+" of "+imageArray.length);}
new Effect.Parallel([new Effect.SlideDown('imageDataContainer',{sync:true,duration:resizeDuration,from:0.0,to:1.0}),new Effect.Appear('imageDataContainer',{sync:true,duration:resizeDuration})],{duration:resizeDuration,afterFinish:function(){var arrayPageSize=getPageSize();Element.setHeight('overlay',arrayPageSize[1]);myLightbox.updateNav();}});},updateNav:function(){Element.show('hoverNav');if(activeImage!=0){Element.show('prevLink');document.getElementById('prevLink').onclick=function(){myLightbox.changeImage(activeImage-1);return false;}}
if(activeImage!=(imageArray.length-1)){Element.show('nextLink');document.getElementById('nextLink').onclick=function(){myLightbox.changeImage(activeImage+1);return false;}}
this.enableKeyboardNav();},enableKeyboardNav:function(){document.onkeydown=this.keyboardAction;},disableKeyboardNav:function(){document.onkeydown='';},keyboardAction:function(e){if(e==null){keycode=event.keyCode;escapeKey=27;}else{keycode=e.keyCode;escapeKey=e.DOM_VK_ESCAPE;}
key=String.fromCharCode(keycode).toLowerCase();if((key=='x')||(key=='o')||(key=='c')||(keycode==escapeKey)){myLightbox.end();}else if((key=='p')||(keycode==37)){if(activeImage!=0){myLightbox.disableKeyboardNav();myLightbox.changeImage(activeImage-1);}}else if((key=='n')||(keycode==39)){if(activeImage!=(imageArray.length-1)){myLightbox.disableKeyboardNav();myLightbox.changeImage(activeImage+1);}}},preloadNeighborImages:function(){if((imageArray.length-1)>activeImage){preloadNextImage=new Image();preloadNextImage.src=imageArray[activeImage+1][0];}
if(activeImage>0){preloadPrevImage=new Image();preloadPrevImage.src=imageArray[activeImage-1][0];}},end:function(){this.disableKeyboardNav();Element.hide('lightbox');new Effect.Fade('overlay',{duration:overlayDuration});showSelectBoxes();showFlash();}}
function getPageScroll(){var xScroll,yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;xScroll=self.pageXOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;xScroll=document.documentElement.scrollLeft;}else if(document.body){yScroll=document.body.scrollTop;xScroll=document.body.scrollLeft;}
arrayPageScroll=new Array(xScroll,yScroll)
return arrayPageScroll;}
function getPageSize(){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;}
arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight)
return arrayPageSize;}
function getKey(e){if(e==null){keycode=event.keyCode;}else{keycode=e.which;}
key=String.fromCharCode(keycode).toLowerCase();if(key=='x'){}}
function listenKey(){document.onkeypress=getKey;}
function showSelectBoxes(){var selects=document.getElementsByTagName("select");for(i=0;i!=selects.length;i++){selects[i].style.visibility="visible";}}
function hideSelectBoxes(){var selects=document.getElementsByTagName("select");for(i=0;i!=selects.length;i++){selects[i].style.visibility="hidden";}}
function showFlash(){var flashObjects=document.getElementsByTagName("object");for(i=0;i<flashObjects.length;i++){flashObjects[i].style.visibility="visible";}
var flashEmbeds=document.getElementsByTagName("embed");for(i=0;i<flashEmbeds.length;i++){flashEmbeds[i].style.visibility="visible";}}
function hideFlash(){var flashObjects=document.getElementsByTagName("object");for(i=0;i<flashObjects.length;i++){flashObjects[i].style.visibility="hidden";}
var flashEmbeds=document.getElementsByTagName("embed");for(i=0;i<flashEmbeds.length;i++){flashEmbeds[i].style.visibility="hidden";}}
function pause(ms){var date=new Date();curDate=null;do{var curDate=new Date();}
while(curDate-date<ms);}
function initLightbox(){myLightbox=new Lightbox();}
Event.observe(window,'load',initLightbox,false);var Scriptaculous={Version:'1.7.1_beta3',require:function(libraryName){document.write('<script type="text/javascript" src="'+libraryName+'"></script>');},REQUIRED_PROTOTYPE:'1.5.1',load:function(){function convertVersionString(versionString){var r=versionString.split('.');return parseInt(r[0])*100000+parseInt(r[1])*1000+parseInt(r[2]);}
if((typeof Prototype=='undefined')||(typeof Element=='undefined')||(typeof Element.Methods=='undefined')||(convertVersionString(Prototype.Version)<convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
throw("script.aculo.us requires the Prototype JavaScript framework >= "+
Scriptaculous.REQUIRED_PROTOTYPE);$A(document.getElementsByTagName("script")).findAll(function(s){return(s.src&&s.src.match(/scriptaculous\.js(\?.*)?$/))}).each(function(s){var path=s.src.replace(/scriptaculous\.js(\?.*)?$/,'');var includes=s.src.match(/\?.*load=([a-z,]*)/);(includes?includes[1]:'builder,effects,dragdrop,controls,slider,sound').split(',').each(function(include){Scriptaculous.require(path+include+'.js')});});}}
Scriptaculous.load();String.prototype.parseColor=function(){var color='#';if(this.slice(0,4)=='rgb('){var cols=this.slice(4,this.length-1).split(',');var i=0;do{color+=parseInt(cols[i]).toColorPart()}while(++i<3);}else{if(this.slice(0,1)=='#'){if(this.length==4)for(var i=1;i<4;i++)color+=(this.charAt(i)+this.charAt(i)).toLowerCase();if(this.length==7)color=this.toLowerCase();}}
return(color.length==7?color:(arguments[0]||this));}
Element.collectTextNodes=function(element){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:(node.hasChildNodes()?Element.collectTextNodes(node):''));}).flatten().join('');}
Element.collectTextNodesIgnoreClass=function(element,className){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:((node.hasChildNodes()&&!Element.hasClassName(node,className))?Element.collectTextNodesIgnoreClass(node,className):''));}).flatten().join('');}
Element.setContentZoom=function(element,percent){element=$(element);element.setStyle({fontSize:(percent/100)+'em'});if(Prototype.Browser.WebKit)window.scrollBy(0,0);return element;}
Element.getInlineOpacity=function(element){return $(element).style.opacity||'';}
Element.forceRerendering=function(element){try{element=$(element);var n=document.createTextNode(' ');element.appendChild(n);element.removeChild(n);}catch(e){}};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();var Util={center:function(a){a=$(a);l=(document.viewport.getWidth()-a.getWidth())/2;a.setStyle({left:Math.floor(l)+"px"})},pinTop:function(c,a){c=$(c);if(a){c.setStyle({top:window.pageYOffset+"px"})}else{var b=new Effect.Move(c,{y:window.pageYOffset,mode:"absolute",duration:0.25})}},getTickWaiter:function(c,b){var a=0;return function(){if(a==c){b()}
a++}},calcBox:function(e,b,c,a,d){d.top=Math.min(e,c);d.left=Math.min(b,a);d.width=Math.abs(b-a);d.height=Math.abs(e-c)},initBox:function(c,b,a){a.top=c;a.left=b;a.width=0;a.height=0},pointOnBox:function(c,b,a){return(b>=a.top&&b<=a.top+a.height&&c>=a.left&&c<=a.left+a.width)},cmpBox:function(c,b,a){if(b<a.top||c<a.left){return-1}
if(b>a.top+a.height||c>a.left+a.width){return 1}
return 0},boxOnBox:function(c,b){var e=Math.max(c.top,b.top);var a=Math.max(c.left,b.left);var d=Math.min(c.top+c.height,b.top+b.height);var g=Math.min(c.left+c.width,b.left+b.width);return(e<d&&a<g)},reduceBox:function(a,b){out={};out.width=a.width*b;out.height=a.height*b;out.top=a.top+(a.height-out.height)/2;out.left=a.left+(a.width-out.width)/2;return out},getBox:function(c){c=$(c);var b=c.getDimensions();var a=c.viewportOffset();return{top:a.top,left:a.left,width:b.width,height:b.height}},ts:function(){var a=new Date();return a.getUTCFullYear().toString()+"-"+(a.getUTCMonth()+1).toString().lpad(2)+"-"+a.getUTCDate().toString().lpad(2)+" "+a.getUTCHours().toString().lpad(2)+":"+a.getUTCMinutes().toString().lpad(2)+":"+a.getUTCSeconds().toString().lpad(2)},time:function(){return(new Date()).getTime()},last_time:false,delta:function(b){var a=Util.time();if(Util.last_time&&(!b||typeof(b)!="boolean")){Util.log(a-Util.last_time)}
Util.last_time=a;if(typeof(b)=="string"){Util.log("^ "+b)}},toggle_names:{},toggle:function(a){if(Util.toggle_names[a]){Util.toggle_names[a]=false}else{Util.toggle_names[a]=true}
return Util.toggle_names[a]},reset_toggle:function(a){Util.set_toggle(a,false)},set_toggle:function(a,b){Util.toggle_names[a]=b},set_next_toggle:function(a,b){Util.toggle_names[a]=!b},url_hash:function(){var a=location.href.split("#");if(a.length<2){return""}else{return a[a.length-1]}},copy_to_clipboard:function(h,c,g){cb_elt=$("hold_clipboard");cb_elt.value=h;if(cb_elt.createTextRange){var a=cb_elt.createTextRange();if(a&&(typeof(BodyLoaded)=="undefined"||BodyLoaded==1)){try{a.execCommand("Copy")}catch(d){g=g||"Please copy the text below:";c=c||"Copy text";DomUtil.fillVal(h,"text-to-copy");DomUtil.fillVal(g,"copy-modal-body");Modal.show(c,DomUtil.fromElm("copy-modal"));$("text-to-copy").select()}}}else{if(!$("flashcb")){var j=document.createElement("div");j.id="flashcb";document.body.appendChild(j)}
$("flashcb").innerHTML="";var b='<embed src="/static/swf/_clipboard.swf" FlashVars="clipboard='+encodeURIComponent(cb_elt.value)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';$("flashcb").innerHTML=b}},scrollTop:function(){return window.scrollY||document.documentElement.scrollTop||0},scrollLeft:function(){return window.scrollX||document.documentElement.scrollLeft||0},setCursor:function(a){if(!document.styleSheets[0].cssRules){return}
(document.styleSheets[0].rules||document.styleSheets[0].cssRules)[0].style.cursor=a;(document.styleSheets[0].rules||document.styleSheets[0].cssRules)[1].style.cursor=a},clearCursor:function(){if(!document.styleSheets[0].cssRules){return}
(document.styleSheets[0].rules||document.styleSheets[0].cssRules)[0].style.cursor="auto";(document.styleSheets[0].rules||document.styleSheets[0].cssRules)[1].style.cursor="pointer"},noHorizScroll:function(){if(!/Mac.*Firefox\/3/.match(navigator.userAgent)){document.body.style.overflowX="hidden"}},allowHorizScroll:function(){document.body.style.overflowX=""},scried:{},scry:function(c){var a=Util.scried;var b=a[c];if(!b){b=$(c);a[c]=b}
return b},pathDepth:function(c){var b=c.split("/");var d=0;for(var a=0;a<b.length;a++){if(b[a].length){d++}}
return d},normPath:function(a){if(!a||a.charAt(a.length-1)!="/"){return a}
return a.substr(0,a.length-1)},normDir:function(a){return Util.normPath(a)+"/"},urlquote:function(a){return a.split("/").map(encodeURIComponent).join("/")},unevent:function(j){var c=j.attributes;if(j.attributes){j.onclick=null;j.onmouseover=null;j.onmouseout=null;j.onmousedown=null;j.onmouseup=null;j.onmousemove=null}
var g=j.childNodes,h,e;if(g){e=g.length;for(h=0;h<e;h+=1){Util.unevent(g[h])}}},yank:function(a){Util.unevent(a);if(!Util.dom_trash_can){Util.dom_trash_can=Util.scry("trash-can")}
Util.dom_trash_can.insert(a);Util.dom_trash_can.update();a=null;return a},ie6:window.external&&typeof window.XMLHttpRequest=="undefined",ie:Prototype.Browser.IE,linux_ff3:navigator.userAgent.toLowerCase().indexOf("linux")>-1,log:function(){Util.scry("ieconsole").innerHTML+=$A(arguments).join(" ")+"<br>"},childElement:function(j,c){var g=0;var b=j.childNodes;var a,d;a=b.length;for(d=0;d<a;++d){var h=b[d];if(h.tagName&&g++==c){return h}}},disableSelection:function(a){a.onselectstart=function(){return false};a.unselectable="on";a.style.MozUserSelect="none";a.style.cursor="default"},enableSelection:function(a){a.onselectstart=function(){return true};a.unselectable="off";a.style.MozUserSelect="";a.style.cursor=""},bsearch:function(a,h,d){if(!d){d=function(j){return j}}
var c=a.length;var e=0;while(c>e){var b=Math.floor(c/2+e/2);var g=d(a[b]);if(g>h){c=b}else{if(g<h){e=b+1}else{return b}}}
return-1},nonce:function(){var c=new Date();var b=c.getTime().toString();var a=Math.floor(Math.random()*1000000).toString().lpad(6);return b+a}};String.prototype.widthSplit=function(d){d=d||15;var a=[];var c=this;var e=0;var b=c.substring(e,e+d);while(b!==""){a.push(b);e+=d;b=c.substring(e,e+d)}
return a};String.prototype.lpad=function(b,a){var c=this;a=a||"0";while(c.length<b){c=a+c}
return c};String.prototype.pad_nums=function(){return this.replace(/(\d+)/,function(a){return a.lpad(10)})};String.prototype.reverse=function(){splitext=this.split("");revertext=splitext.reverse();reversed=revertext.join("");return reversed};String.prototype.replace_last=function(e,a){var d=this.reverse();var c=e.reverse();var b=a.reverse();return d.replace(c,b).reverse()};String.prototype.create=function(a){return a};String.prototype.snippet=function(g,e){g=g||45;e=e||0.75;if(this.length<=g){return this}
var a=this.lastIndexOf(".");var b="";if(a>0){b=this.substr(a);g=g-b.length}else{a=this.length;b=""}
g=g-this.create("...").length;var c=Math.floor(g*e);var h=g-c;var m=a-h;var d=this.substr(0,c);var j=this.substr(m,a-m);return d+"..."+j+b};var Emstring=Class.create({initialize:function(a){this.s=a;this.info=this.widthInfo();this.length=a.length?this.info[this.s.length-1]:0},create:function(a){return new Emstring(a)},widthInfo:function(){var b={};b[-1]=0;for(var a=0;a<this.s.length;a++){b[a]=b[a-1]+this.ems(this.s.charAt(a))}
return b},findSpot:function(b){if(!b){return 0}
var d=0;var h=this.s.length;var j=0;while(d<=h){var a=Math.floor(d/2+h/2);var g=this.info[a-1];if(g>b){h=a-1}else{if(g<b){d=a+1}else{return a}}}
if(d>a){return d}else{return a}},ems:function(a){if(a=="i"||a=="l"){return 0.3}
if(a=="m"||a=="w"){return 1}
return 0.6},substr:function(b,a){b=this.findSpot(b);a=a!==null?this.findSpot(a):this.s.length;return new Emstring(this.s.substr(b,a))},indexOf:function(b){var a=this.s.indexOf(b);return a>-1?this.info[a-1]:-1},lastIndexOf:function(b){var a=this.s.reverse().indexOf(b.reverse());if(a<0){return-1}
return(this.s.length-a)-b.length},toString:function(){return this.s},snippet:String.prototype.snippet});var Job={complete:{},handled:function(a){if(!a){return false}
var b=!!Job.complete[a];Job.complete[a]=true;return b},peek:function(a){if(!a){return false}
return!!Job.complete[a]}};var RequestWatcher={reqs:[],working_msg:"Still working...",TIMEOUT:5,watch:function(b,c){var a=RequestWatcher.reqs;if(!a.length){RequestWatcher.int_id=setInterval(RequestWatcher.check_up,500)}
if(c){b.skip_message=true}
a.push([b,Util.time()])},check_up:function(){RequestWatcher.scan(req_to_remove=false)},remove:function(a){RequestWatcher.scan(req_to_remove=a)},scan:function(g){var b=Util.time();var c=RequestWatcher.reqs.length;var a=RequestWatcher.reqs;var d=[];for(var e=0;e<c;e++){var j=a[e][0];var h=a[e][1];var m=b-h;if(j.transport.readyState==4){Notify.clearIf(RequestWatcher.working_msg);continue}
if(m>2000&&!j.skip_message){j.skip_message=true;Notify.ServerSuccess(RequestWatcher.working_msg)}
if(m>RequestWatcher.TIMEOUT*1000&&j.job){j.transport.abort()}
if(j!=g){d.push([j,h])}else{j.transport.abort()}}
RequestWatcher.reqs=d;if(!d.length){clearInterval(RequestWatcher.int_id)}}};var ProgressWatcher={job_info:{},INIT_POLL_INT:1000,FAILS_MEAN_FAIL:3,MODAL_WAIT_MS:1000,watch:function(a){ProgressWatcher.job_info[a.job_id]={};var b=ProgressWatcher.job_info[a.job_id];b.req=a;b.poll_int=ProgressWatcher.INIT_POLL_INT;b.poll_count=0;b.int_id=setInterval(ProgressWatcher.update_for(a.job_id),b.poll_int);b.failures=0;b.start_time=Util.time()},update_for:function(a){return function(){return ProgressWatcher.update(a)}},backoff:function(b){var a=ProgressWatcher.job_info[b];clearInterval(a.int_id);a.poll_int=Math.min(Math.floor(a.poll_int*1.5),30000);a.int_id=setInterval(ProgressWatcher.update_for(b),a.poll_int)},update:function(d){var c=ProgressWatcher.job_info[d];if(Job.peek(d)){return ProgressWatcher.done(d)}
c.poll_count++;if(c.poll_count%10===0){ProgressWatcher.backoff(d)}
if(!c.modaled&&Util.time()-c.start_time>ProgressWatcher.MODAL_WAIT_MS){var b=c.req.options;ModalProgress.show(b.progress_text,b.cover_this);b.onProgress=ModalProgress.update;c.modaled=true}
var a=new Ajax.Request("/job_status/"+d,{method:"post",t:Constants.TOKEN,onSuccess:function(m){var p=ProgressWatcher.job_info[d];var j=m.responseText;var h=false;if(j.indexOf("err")===0){ProgressWatcher.done(d);ModalProgress.hide();if(p.req.options.onFailure&&!Job.handled(d)){p.req.options.onFailure(m)}
return}
if(j.indexOf("done")===0){p.req.options.job=false;if(!Job.handled(d)){var g=new Ajax.Request("/job_results/"+d,{onSuccess:function(e){if(Job.handled(d)){return}
Notify.clearIf(RequestWatcher.working_msg);if(p.req.options.onSuccess){p.req.options.onSuccess(e)}},onFailure:function(e){if(Job.handled(d)){return}
Notify.clearIf(RequestWatcher.working_msg);if(p.req.options.onFailure){p.req.options.onFailure(e)}}})}
var o=j.split("/");j=o[1]+"/"+o[1];ProgressWatcher.done(d);ModalProgress.hide()}else{try{if(p.req.options.onProgress){p.req.options.onProgress(m.responseText)}}catch(n){}}},onFailure:function(e){var g=ProgressWatcher.job_info[d];g.failures++;if(g.failures>=ProgressWatcher.FAILS_MEAN_FAIL){if(g.req.options.onFailure){g.req.options.onFailure(e,force=true)}
RequestWatcher.remove(g.req);ProgressWatcher.done(d);ModalProgress.hide()}}})},done:function(b){var a=ProgressWatcher.job_info[b];clearInterval(a.int_id);delete ProgressWatcher.job_info[b];ModalProgress.hide()}};Ajax.DBRequest=Class.create(Ajax.Request,{initialize:function($super,b,a){a=a||{};a.method="post";a.parameters=a.parameters||{};a.parameters.t=Constants.TOKEN;var d=a.cleanUp||function(h){};if(a.job){this.job_id=Util.nonce();a.parameters.job_id=this.job_id;ProgressWatcher.watch(this)}
RequestWatcher.watch(this,no_still_working=!!a.job);var c=a.onFailure;var g=a.onSuccess;var e=a.onComplete;a.onFailure=function(h){if(Job.handled(h.request.job_id)){return}
Notify.ServerError();d(okay=false);if(c){c(h)}};a.onSuccess=function(h){if(Job.handled(h.request.job_id)){return}
if(!h.responseText.length){if(!a.job){if(!a.noAutonotify){Notify.ServerError()}
if(c){c(h)}}}else{if(h.responseText.indexOf("err:")===0){if(!a.noAutonotify){Notify.ServerError(h.responseText.substr(4))}
if(c){c(h)}}else{if(g){g(h)}
if(e){e(h)}}}
d(okay=true)};if(a.job){b+=(b.indexOf("?")!=-1?"&":"?")+"long_running"}
$super(b,a)}});var TreeView={tv:{},set_params:function(a){TreeView.ajax_params=a},init:function(c,a,d){d=d||"treeview";TreeView.tv[d]={};var b=TreeView.tv[d];b.autohide=a==null?true:a;b.handler=c;b.viewdiv=$(d);b.hidefunc=TreeView.hide.bindAsEventListener(this)},reset:function(){new Ajax.DBRequest("/ajax_subtreeview",{parameters:TreeView.ajax_params,onSuccess:function(a){for(tree_id in TreeView.tv){TreeView.tv[tree_id].viewdiv.down(".treeview-folders").update(a.responseText)}}})},toggle:function(c,b){Event.stop(c);var a=TreeView.tv[b||"treeview"];if(a.shown){a.shown=false;TreeView.hide(c,b)}else{a.shown=true;TreeView.show(c.target,b)}
return false},hide:function(c,b){var a=TreeView.tv[b||"treeview"];if(!c||!$(c.target).descendantOf(a.viewdiv)){a.viewdiv.hide();Event.stopObserving(window,"click",a.hidefunc);a.shown=false}},show:function(c,b){var a=TreeView.tv[b||"treeview"];c=$(c);c.blur();var d=c.cumulativeOffset();a.viewdiv.setStyle({top:(d.top+c.getHeight())+"px",left:(d.left-4)+"px"});a.viewdiv.show();Event.observe(window,"click",a.hidefunc)},toggleNode:function(b){b=$(b);var a=b.down("img");if(a.className.match("_plus")){Sprite.replace(a,"_plus","_minus")}else{Sprite.replace(a,"_minus","_plus")}
b.up().next("div").toggle();b.blur();return false},toggleNodeAjax:function(c,a){if(c.fetched_children){return TreeView.toggleNode(c)}
c=$(c);var b=c.down("img");var d=Sprite.get(b);b.src="/static/images/icons/ajax-loading-small.gif";new Ajax.DBRequest("/ajax_subtreeview"+a,{parameters:TreeView.ajax_params,onSuccess:function(e){var g=new Element("div",{style:"display: none;"}).update(e.responseText);c.up().insert({after:g});c.fetched_children=true;Sprite.set(b,d);return TreeView.toggleNode(c)},cleanUp:function(e){if(/loading/.match(b.src)){Sprite.set(b,d)}}});return false},handle:function(c,b){var d=$H(TreeView.tv).keys();var a=$(b).ancestors().find(function(e){return d.include(e.id)});if(!a){return}
a=TreeView.tv[a.id];if(a.handler){a.handler(c,b)}
if(a.autohide){TreeView.hide(a.id)}}};var ProgressBar={MAGIC:42,make:function(a,b,c){b=b||200;wstr=b.toString()+"px";c=typeof(c)!="undefined"?c:"0%";var j=new Element("div",{"class":"outer-progress-bar",style:"width: "+wstr});var m=new Element("div",{"class":"inner-progress-bar",id:"pb_"+a,style:"width: "+wstr});var g=new Element("div",{"class":"under-pb progress-bar",style:"width: "+wstr});var e=new Element("div",{style:"display: none","class":"over-pb progress-bar",id:"pb_"+a+"_over"});var d=new Element("div",{"class":"pb-percentage",id:"pb_"+a+"_upct",style:"width: "+wstr});d.update(c);var h=new Element("div",{"class":"pb-percentage",id:"pb_"+a+"_opct",style:"width: "+wstr});h.update(c);g.insert(d);e.insert(h);m.insert(g);m.insert(e);j.insert(m);e.progress_width=b;return j},reset:function(a){ProgressBar.set(a,0)},set:function(e,a,d){a=Math.min(a,1);d=typeof(d)!="undefined"&&d!==false?d:Math.floor(a*100).toString()+"%";var c=$("pb_"+e+"_over");if(!c){return}
var b=c.progress_width*a;c.show();c.makeClipping().setStyle({width:b.toString()+"px",backgroundColor:"#3a93d2"});$("pb_"+e+"_upct").innerHTML=d;$("pb_"+e+"_opct").innerHTML=d},errorState:function(c){var b=$("pb_"+c+"_over");if(!b){return}
var a=b.progress_width;b.show();b.makeClipping().setStyle({width:a.toString()+"px",backgroundColor:"#d23a3a"});$("pb_"+c+"_upct").innerHTML="Error";$("pb_"+c+"_opct").innerHTML="Error"}};var ModalProgress={show:function(c,a){if(!c){return}
a=$(a||"browse-box");var b=$("modal-progress-overlay");b.clonePosition(a);if(b.getWidth()==0){return}
$("modal-progress-text").update(c);$("modal-progress-bar").setOpacity(1);$("modal-progress-bar").update(ProgressBar.make("modal-progress",150,""));$("modal-progress-content").style.top=(Math.max(0,Util.scrollTop()-a.cumulativeOffset().top)+120)+"px";Effect.Appear(b,{to:0.7,duration:0.25});Effect.Appear("modal-progress-content",{duration:0.25})},update:function(progress){ProgressBar.set("modal-progress",eval(progress),"")},hide:function(){Effect.Fade("modal-progress-overlay",{duration:0.25});Effect.Fade("modal-progress-content",{duration:0.25})}};var FileQueue={fileRows:{},fileProgress:{},uploading:false,toUpload:0,completed_files:{},empty:function(){return!FileQueue.toUpload},numShown:function(){return $H(FileQueue.fileRows).keys().length},lastOne:function(){return 1==FileQueue.toUpload},push:function(c){name=c.name;id=c.id;FileQueue.fileProgress[id]=ProgressBar.make(id,width=200,start_text="");var e=new Element("tr");var h=new Element("td",{width:125});var g=new Element("div",{style:"float:left;overflow:hidden;width:125px;"});g.update(name.snippet(20));h.insert(g);var a=new Element("td",{width:200});a.insert(FileQueue.fileProgress[id]);var b=new Element("td",{width:75});FileQueue.fileRows[id]=e;$("file-queue").insert(e);e.update(h);e.insert(a);e.insert(b);var d=FileQueue.removeButton(id);b.insert(d);$("file-queue-table").show();FileQueue.toUpload++},removeButton:function(b){var a=new Element("a",{"class":"panel",href:"#",style:"width:75px; display: block;"});a.onclick=function(){FileQueue.remove(b)};a.update('<img src="/static/images/icons/delete.gif" align="absbottom" border="0">&nbsp;Remove');return a},remove:function(a){Upload.SWFU.cancelUpload(a);FileQueue.fileRows[a].remove();if(!FileQueue.completed_files[a]){FileQueue.toUpload=Math.max(0,FileQueue.toUpload-1)}
delete FileQueue.fileRows[a];delete FileQueue.fileProgress[a];if(FileQueue.numShown()==0){$("file-queue-table").hide();FileQueue.doneUploading()}},update:function(c,b,a){text=false;if(b=="done"){text="Done";b=a=1}else{if(b/a==1){text="Saving..."}}
ProgressBar.set(c.id,b/a,text)},errored:function(a){ProgressBar.errorState(a.id);FileQueue.doneUploading()},completed:function(a){FileQueue.toUpload=Math.max(0,FileQueue.toUpload-1);FileQueue.completed_files[a.id]=true;var b=FileQueue.fileRows[a.id];if(b){b.down("a").update('<img src="/static/images/icons/delete.gif" align="absbottom" border="0">&nbsp;Hide')}},clear:function(a){for(var b in FileQueue.fileRows){if(a||FileQueue.completed_files[b]){FileQueue.remove(b);Upload.SWFU.cancelUpload(b)}}},chooseFiles:function(a){a=$("choose-button");if(a.value.match("Choose")){a.value=a.value.replace("Choose","Add more")}
FileQueue.colorButtons("upload-button");return false},uploadFiles:function(){if(FileQueue.toUpload==0){return}
Upload.updatePostParams({dest:$F("dest-folder"),t:Constants.TOKEN});if(!FileQueue.uploading){Upload.uploadNext();$("upload-button").value="Uploading...";FileQueue.uploading=true}else{}},colorButtons:function(a){$A(["choose-button","upload-button"]).each(function(b){if(b==a){$(b).removeClassName("grayed")}else{$(b).addClassName("grayed")}})},doneUploading:function(){FileQueue.colorButtons("choose-button");$("upload-button").value="Start Upload";FileQueue.uploading=false}};var Platform={Windows:navigator.userAgent.indexOf("Win")>-1,XP:navigator.userAgent.indexOf("Windows NT 5")>-1,Vista:navigator.userAgent.indexOf("Windows NT 6")>-1,Mac:navigator.appVersion.indexOf("Mac")>-1};var Welcome={clear_placeholder:function(a){if(a.value=="you@example.com"){a.value=""}
$("submit").disabled=false}};var Revisions={confirm_purge:function(a){DomUtil.fillVal(a,"purge-victim");Modal.show("Purge file?",DomUtil.fromElm("purge-confirm"));return false},purge:function(){$("purge-form").submit()}};var DomUtil={fromElm:function(a){return $(a).innerHTML},fillVal:function(b,a){$$("."+a).each(function(d){d=$(d);var c=d.tagName.toLowerCase();if(c=="input"){d.value=b;d.defaultValue=b}else{d.innerHTML=b}})}};var Modal={show:function(title,content,d,a,c){Modal.vars=d||{};icon=Modal.vars.icon||"help";c=c||500;var b=(document.viewport.getScrollOffsets().top+150);Util.scry("modal").setStyle({top:b+"px"});Util.scry("modal").setStyle({width:c+"px",margin:"0 0 0 "+Math.floor(-c/2).toString()+"px"});Util.scry("modal-title").innerHTML=title;if(typeof(content)=="string"){Util.scry("modal-content").innerHTML=content}else{content.each(function(h){Util.scry("modal-content").insert(h)})}
Util.scry("modal-overlay").setOpacity(0.6);Util.scry("modal-overlay").show();Element.show("modal");Util.scry("modal-behind").setStyle({height:(Util.scry("modal").getHeight()+20)+"px",width:(Util.scry("modal").getWidth()+20)+"px",margin:"0 0 0 "+Math.floor(-c/2-10).toString()+"px",top:(b-10)+"px"});Util.scry("modal-behind").setOpacity(0.2);Util.scry("modal-behind").show();if(a){$("modal-content").select("#"+a.id).first().focus()}else{if(!Util.ie){firstButton=Util.scry("modal").down("input[type=button]")||Util.scry("modal").down("input[type=submit]");if(firstButton){firstButton.focus()}}}
ActAsBlock.register(false,"modal")},shown:function(){return Util.scry("modal").visible()},hide:function(a){if(a){Event.stop(a)}
if(Modal.confirm_close){if(!confirm("Leaving this box may cut your operation short.\n\nAre you sure you want to?")){return}
Modal.confirm_close=false}
Element.hide("modal-behind");Element.hide("modal-overlay");Element.hide("modal");if(Modal.track_id){clearInterval(Modal.track_id);Modal.track_id=false}
if(Modal.refresh_after_close&&Browse.files&&Browse.files.length){Browse.reload();Modal.refresh_after_close=false}},track_resizes:function(){Modal.track_id=setInterval(Modal.resize_bg,150)},resize_bg:function(){var a=Util.scry("modal").getHeight();if(Modal.old_height!=a){Modal.old_height=a;Util.scry("modal-behind").setStyle({height:(a+20)+"px"})}},vars:{}};var Tabs={init:function(){var d=document.getElementsByClassName("subtab");for(i=0;i<d.length;i++){var b=d[i].down();var c=b.href.split("/");b.href="#"+c[c.length-1]}},check_url:function(b){var a=Util.url_hash();if(Tabs.last_shown==a){return}
Tabs.last_shown=a;if(Util.url_hash()){Tabs.showTab(Util.url_hash()+"-tab",Util.url_hash())}else{Tabs.showTab(b+"-tab",b)}},showTab:function(h,d){h=$(h);var e=document.getElementsByClassName("subtab");for(var c=0;c<e.length;c++){e[c].removeClassName("selected")}
var a=document.getElementsByClassName("content-tab");for(var c=0;c<a.length;c++){a[c].hide()}
var g=$(d+"-tab")||$$(".subtab").first();var b=$(d+"-content")||$$(".content-tab").first();if(g){g.addClassName("selected")}
if(b){b.show()}}};var Hosts={edit:function(d){var c=$("host"+d);if(c.editing){return}
c.editing=true;var b=c.innerHTML;c.previous=b;c.innerHTML="<input type='text' class='skinny-input' size='20' value=\""+b.escapeHTML().gsub('"',"&quot;")+"\">&nbsp;<input type='button' onclick='Hosts.doneEditing(\""+d+"\");' class='button' value='Save'>&nbsp;<input type='button' onclick='Hosts.cancelEditing(\""+d+"\");' class='button grayed' value='Cancel'>";var a=c.down("input");Event.observe(a,"keydown",Hosts.checkKey(d));a.select();return false},doneEditing:function(c){var b=$("host"+c);var a=b.down("input").value;new Ajax.DBRequest("/computer_edit?host_id="+c+"&name="+a,{onSuccess:function(d){Hosts.unedit(b,d.responseText)}})},cancelEditing:function(b){var a=$("host"+b);Hosts.unedit(a,a.previous)},unedit:function(b,a){b.editing=false;b.innerHTML=a},unlink:function(c,b,a){DomUtil.fillVal(b,"unlink-confirm-name");Modal.show("Unlink computer?",DomUtil.fromElm("unlink-confirm"),{host_id:c,plat:a})},doUnlink:function(b,a){new Ajax.DBRequest("/computer_edit?host_id="+b+"&unlink=yessir",{onSuccess:function(c){Hosts.killRow(b);Hosts.dec_count(a)}})},dec_count:function(a){var c=$(a+"-count");if(!c){return}
var d=c.innerHTML.split(" ");var b=parseInt(d.shift());var e=d.join(" ");if(!b){return}
b--;if(b==1&&e.charAt(e.length-1)=="s"){e=e.substr(0,e.length-1)}else{if(b!=1&&e.charAt(e.length-1)!="s"){e=e+"s"}}
c.innerHTML=b.toString()+" "+e},killRow:function(d){var a=$("host"+d).up("table");$("host"+d).up("tr").remove();if(Hosts.rowCount()==0){var b=new Element("tr");var c=new Element("td",{colspan:4});c.innerHTML="<center>You no longer have any hosts linked.</center>";a.insert(b);b.insert(c)}},rowCount:function(){return $$(".host-row").length},checkKey:function(a){return function(b){b=b||window.event;if(b.keyCode==Event.KEY_RETURN){Hosts.doneEditing(a)}
if(b.keyCode==Event.KEY_ESC){Hosts.cancelEditing(a)}}}};var LeftNavBox={close:function(a){t=$(a).up().up("div");var b=1;new Effect.BlindUp(t,{duration:b});new Effect.Fade(t,{duration:b});return false}};var ThumbVote={decline:function(a){new Ajax.DBRequest("/thumbs?declined=ajax")}};var Invitations={submit:function(a){a=a||window.event;if(a.keyCode==Event.KEY_RETURN){Invitations.send()}},send:function(){var a=$F("invite-recip");new Ajax.DBRequest("/send_invite?email="+encodeURIComponent(a),{onSuccess:function(b){Invitations.updateStatus("Invite sent!");$("invite-recip").setValue("");Invitations.countDown()},onFailure:function(b){Invitations.updateStatus(b.responseText.substr(4),true)},noAutonotify:true});return false},hideForSession:function(){new Ajax.DBRequest("/hide_sharing")},updateStatus:function(c,a){var b=$("invite-sent");b.update(c);b.show();new Effect.Highlight(b,{startcolor:a?"#ff9999":"#66ff66",duration:2,delay:0.25})},countDown:function(){var b=Number($("invite-count").innerHTML.split(" ")[0]);if(b==1){$("invite-body").update("No more invites...<br>check back for more!");$("invite-ex").show()}else{b--;var a=b==1?"invite":"invites";$("invite-count").update(b.toString()+" "+a)}},clearInput:function(){if($("invite-recip").value=="E-mail address"){$("invite-recip").value="";$("invite-recip").setStyle({color:""})}}};var Feed={firstTime:true,showCommentBox:function(a,b){if(Feed.firstTime){$("comment").observe("keydown",Feed.onEnterGo);Feed.firstTime=false}
if($("comment-row").style.display=="none"){Effect.BlindFadeDown("comment-row",{duration:0.5,afterFinish:function(){$("comment-row").style.height="";$("comment").focus()}})}else{$("comment").focus()}
return false},hideCommentBox:function(){Effect.BlindFadeUp("comment-row",{duration:0.5});$("comment").value="";Feed.disableCommentables()},COMMENT_DEFAULT:"Add a comment to the Recent Events feed",addComment:function(){if(!$F("comment").length||$("comment").value==Feed.COMMENT_DEFAULT){return false}
new Ajax.DBRequest("/share_ajax/add_comment",{parameters:{comment:$F("comment"),ns_id:$F("comment-ns_id")},onSuccess:function(a){Feed.addCommentRow(a.responseText);$("comment").value=""}});return false},addCommentRow:function(a){var g=new Element("tr");var e=new Element("td",{valign:"top","class":"note"});var d=new Element("img",{src:"/static/images/icons/comment.gif"});e.insert(d);var c=new Element("td",{valign:"top","class":"note"});c.innerHTML=a;var b=new Element("td",{valign:"top","class":"note",width:"100",nowrap:"nowrap",align:"right"});b.innerHTML="(just added)";g.update(e);g.insert(c);g.insert(b);$("event-table").down("tr").insert({before:g})},commentablesEnabled:false,enableCommentables:function(){$$(".add_comment_icon").invoke("show");Feed.commentablesEnabled=true},disableCommentables:function(){$$(".add_comment_icon").invoke("hide");Feed.commentablesEnabled=true},mouseover:function(a){if(!Feed.commentablesEnabled){return}
$(a).show()},mouseout:function(a){if(!Feed.commentablesEnabled){return}
$(text_elm).hide()},onEnterGo:function(a){if(a.keyCode==Event.KEY_RETURN){Feed.addComment()}},feedPages:[],currentPage:0,maxPage:0,ns_id:false,goBack:function(){if(Feed.currentPage==0){return}
Feed.showLoading(true);Feed.showPage(--Feed.currentPage);Feed.hideLoading();return false},goForward:function(){if(Feed.currentPage==0&&!Feed.feedPages.length){Feed.feedPages.push(Feed.getCurrentPage())}
if(Feed.currentPage<Feed.maxPage){Feed.showLoading(true);Feed.showPage(++Feed.currentPage);Feed.hideLoading();return false}else{ns_str=Feed.ns_id?"&ns_id="+Feed.ns_id.toString():"&is_home=yes";Feed.showLoading();new Ajax.DBRequest("/next_events?cur_page="+(Feed.currentPage+1).toString()+ns_str,{onSuccess:function(a){Feed.feedPages.push(a.responseText);Feed.showPage(++Feed.currentPage);Feed.maxPage=Feed.currentPage}})}
return false},getCurrentPage:function(){return $("event-table").innerHTML},showLoading:function(d,a,c){c=true;a=a||$("event-table").up("table");var b=$("feed-loading");b.clonePosition(a);if(b.getWidth()==0){return}
b.setOpacity(0.9);if(d){$("feed-loading-text").update()}else{$("feed-loading-text").update("<img src='/static/images/icons/ajax-loading.gif' style='vertical-align: bottom;'/>"+(c?"":"Loading..."))}
$("feed-loading").show()},hideLoading:function(){$("feed-loading").hide()},showPage:function(a){Feed.hideLoading();$("event-table").update(Feed.feedPages[a]);Feed.updateLinks()},updateLinks:function(){var a=[];if(Feed.currentPage>0){a.push('<a href="#" onclick="javascript: return Feed.goBack();">&laquo;&nbsp;back</a>')}
if(Feed.currentPage<Feed.maxPage||!$("more-events").empty()){a.push('<a href="#" onclick="javascript: return Feed.goForward();">next&nbsp;&raquo;</a>')}
$("event-page-links").update(a.join("&nbsp;|&nbsp;"))},reload:function(){if(!Feed.lastShown){return}
Feed.feedPages=[];Feed.currentPage=0;Feed.maxPage=0;Feed.ns_id=false;Feed.lastShown=0},toggle:function(g){g=$(g);var c=$("events-container");if(Feed.hidden===undefined){Feed.hidden=(c.style.display=="none")}
if(!Feed.hidden&&!Feed.busy){var a=new Ajax.DBRequest("/hide_events?hide=1");Feed.busy=true;Feed.hidden=true;Sprite.replace(g.down(),"s_dropdown_arrow_small","s_dropdown_arrow_small2");var b=new Effect.BlindUp(c,{afterFinish:function(){Feed.busy=false}})}else{if(c.style.display=="none"&&!Feed.busy){var e=new Ajax.DBRequest("/hide_events?hide=0");Feed.hidden=false;Feed.busy=true;Sprite.replace(g.down(),"s_dropdown_arrow_small2","s_dropdown_arrow_small");var d=new Effect.BlindDown(c,{afterFinish:function(){c.style.height="auto";Feed.busy=false}})}}
return false}};Effect.BlindFadeUp=function(b,a){new Effect.BlindUp(b,a);new Effect.Fade(b,a)};Effect.BlindFadeDown=function(b,a){new Effect.BlindDown(b,a);new Effect.Appear(b,a)};var Base={mouseOut:false,sf_hidden:false,showSharedFolders:function(b,c){Event.stop(c);var a=$("shared-folder-dropdown");Event.observe(a,"mouseover",Base.mouseOverList);Event.observe(a,"mouseout",Base.mouseOutList);Event.observe(c.target,"mouseout",Base.mouseOutList);Event.observe(c.target,"mouseover",Base.mouseOverList);Event.observe(document,"click",Base.hideSharedFolders);Base.sf_hidden=false;setTimeout(function(){if(Base.sf_hidden){return}
var e=$("share-menu-shadow");var d=a.select("li").length;a.clonePosition($(b).down("img"),{offsetTop:8,offsetLeft:1,setWidth:false,setHeight:false});a.style.height=(d>9)?"200px":"";a.show();e.clonePosition($(b).down("img"),{offsetTop:9,offsetLeft:2,setWidth:false,setHeight:false});e.clonePosition(a,{setTop:false,setLeft:false});e.setOpacity(0.2);e.show()},350);return false},hideSharedFolders:function(b){var a=$("shared-folder-dropdown");$("shared-folder-dropdown").hide();$("share-menu-shadow").hide();Event.stopObserving(window,"click",Base.hideSharedFolders);Event.stopObserving(a,"mouseover",Base.mouseOverList);Event.stopObserving(a,"mouseout",Base.mouseOutList);clearTimeout(Base.mouseOut);Base.mouseOut=false;Base.sf_hidden=true},mouseOverList:function(){clearTimeout(Base.mouseOut);Base.mouseOut=false},mouseOutList:function(b,a){clearTimeout(Base.mouseOut);Base.mouseOut=setTimeout(Base.hideSharedFolders,a||200)}};var Notify={ServerError:function(a){return Notify.showDiv(a,"server-error","There was a problem completing this request.")},ServerSuccess:function(a){return Notify.showDiv(a,"server-success","Your request completed successfully.")},showDiv:function(c,d,b){Notify.last_msg=c;Notify.clearAll();c=c||b;var a=Util.scry(d);a.down("span").update(c);Util.center(a);new Effect.BlindFadeDown(a,{duration:0.5,scaleTo:75,queue:{scope:"notify"}});new Effect.BlindFadeUp(a,{duration:0.3,scaleFrom:75,delay:8,queue:{scope:"notify"}});if(Util.ie6){a.scrollTo()}},clearAll:function(){$$(".notify").invoke("hide");var a=Effect.Queues.get("notify");a.effects=[];clearInterval(a.interval);a.interval=null},clearIf:function(a){if(Notify.last_msg==a){Notify.clearAll()}}};var Tooltip={attach:function(g,b,a){b=b.widthSplit(50).invoke("escapeHTML").join("&#8203;<wbr>");g=$(g);a=a?$(a):null;var e=g.id?g.id:Math.floor(Math.random()*10000+1);var c=new Element("div",{id:e+"-tooltip","class":"tooltip"});c.setStyle({display:"none",position:"absolute"});c.update(b);$("floaters").insert(c);g.tooltip=c;g.out_target=a?true:false;g.observe("mouseout",Tooltip.mouseout("target",g));g.observe("mouseover",Tooltip.mouseover("target",g));g.out_trigger=a?false:true;if(a){a.observe("mouseout",Tooltip.mouseout("trigger",g));a.observe("mouseover",Tooltip.mouseover("trigger",g))}
g.out_tooltip=true;c.observe("mouseout",Tooltip.mouseout("tooltip",g));c.observe("mouseover",Tooltip.mouseover("tooltip",g))},update:function(b,a){if(b.tooltip){$(b.tooltip).update(a)}},mouseover:function(a,b){return function(){b["out_"+a]=false}},mouseout:function(a,b){return function(){b["out_"+a]=true;Tooltip.hide_if_out.defer(b)}},show_by:function(b){var c=$(b.tooltip);var a=b.cumulativeOffset();c.clonePosition(b,{setWidth:false,setHeight:false,offsetTop:Math.floor(b.getHeight()/2),offsetLeft:b.getWidth()+1});if(Util.ie6){c.style.top=(b.parentNode.parentNode.parentNode.file.box.top+Math.floor(b.getHeight()/2))+"px"}
c.show()},hide_if_out:function(a){if(!a.out_target||!a.out_trigger||!a.out_tooltip){return}
var b=$(a.tooltip);b.hide()},show:function(c,b,a){c=$(c);a=a?$(a):null;if(!c.tooltip){Tooltip.attach(c,b,a)}
Tooltip.show_by(c)}};var BrowseURL={PATH:0,SORT:1,DEL:2,get_sort:function(){return Util.url_hash().split(":")[BrowseURL.SORT]},get_path:function(){return Util.url_hash().split(":")[BrowseURL.PATH]},get_del:function(){return Util.url_hash().split(":")[BrowseURL.DEL]},make_url:function(c,a){var b=Util.url_hash().split(":");b[c]=a;return"#"+b.join(":")},get_sort_url:function(b,a){return BrowseURL.make_url(BrowseURL.SORT,b+","+(a?1:0))},get_path_url:function(b){if(b.charAt(b.length-1)!="/"){b+="/"}
if(Browse.root){var a=b.split("/");b="/"+a.slice(Browse.root_depth+1).join("/")}
return BrowseURL.make_url(BrowseURL.PATH,b)},get_del_url:function(a){return BrowseURL.make_url(BrowseURL.DEL,a?1:0)},check_url:function(){var e=Util.url_hash();if(!e.length&&BrowseURL.last_hash&&BrowseURL.last_hash.length){if(location.href.match(/\.pdf/)&&Prototype.Browser.WebKit){clearInterval(BrowseURL.checkInterval);return}
location.href="#"+BrowseURL.last_hash;if(!Constants.IS_PROD){alert("restored location. don't do whatever you just did...")}
return}
var a=null;if(BrowseURL.last_hash!=e){BrowseURL.set_iframe_hash(e);a=e}
a=a||BrowseURL.get_iframe_hash();if(a&&a!=e){location.href="#"+a;e=a}
if(BrowseURL.last_hash!=e){var d=e.split(":");var b=(BrowseURL.last_hash||"").split(":");BrowseURL.last_hash=e;if(b.length>BrowseURL.SORT-1&&b[BrowseURL.SORT]!=d[BrowseURL.SORT]){SortSet.url_sort()}
if((b[BrowseURL.PATH]!=d[BrowseURL.PATH])||(b[BrowseURL.DEL]!=d[BrowseURL.DEL])){var c=b[BrowseURL.DEL]!=d[BrowseURL.DEL];Browse.deleted_shown=d[BrowseURL.DEL]=="1"?1:0;Browse.reload((Browse.root||"")+d[BrowseURL.PATH],force=c)}}},set_iframe_hash:function(a){if(typeof(BrowseURL.url_iframe)=="undefined"){BrowseURL.url_iframe=$("url-iframe")}
if(!BrowseURL.url_iframe){return}
document.frames["the-iframe"].location.href="/blank"+a},get_iframe_hash:function(a){if(typeof(BrowseURL.url_iframe)=="undefined"){BrowseURL.url_iframe=$("url-iframe")}
if(!BrowseURL.url_iframe){return false}
return document.frames["the-iframe"].location.href.split("/blank")[1]}};var SortSet={sort:function(c,a){c.blur();Util.setCursor("progress");var b=SortSet.pick(c);Browse.sort(a,reverse=!b);Util.clearCursor();return true},pick:function(c){var b=Util.toggle(c.id);var a=$$(".sort_option");a.each(function(d){if(d!=c){Sprite.src(d.down("img"),"downtick-spacer");d.onmouseout=null;d.onmouseover=null;Util.reset_toggle(d.id);d.href=BrowseURL.get_sort_url(d.id,false)}else{var e=b?"up":"down";Sprite.src(d.down("img"),"sort-"+e+"tick-on");d.onmouseout=function(){Sprite.src(d.down("img"),"sort-"+e+"tick-off")};d.onmouseover=function(){Sprite.src(d.down("img"),"sort-"+e+"tick-on")};d.href=BrowseURL.get_sort_url(d.id,b)}});return b},make_url:function(b,a){return b+","+(a?1:0)},last_url:"",url_sort:function(){var a=BrowseURL.get_sort();if(a&&a.length){var b=a.split(",");var c=document.getElementById(b[0]);Util.set_next_toggle(c.id,b[1]=="1"?true:false);c.onclick();return true}
return false}};var Sort={FILES_BY_NAME:function(b,e){var a=e.dir-b.dir;if(a!=0){return a}
var d=b.filename.toLowerCase();var c=e.filename.toLowerCase();return d==c?0:(d.pad_nums()<c.pad_nums()?-1:1)},FILES_BY_SIZE:function(b,c){var a=c.dir-b.dir;if(a!=0){return-1*a}
if(b.dir){return Sort.FILES_BY_NAME(b,c)}
return c.bytes-b.bytes},FILES_BY_MODIFIED:function(a,d){var c=a.ts;var b=d.ts;return c==b?0:(c<b?1:-1)}};var BrowseFile=Class.create({initialize:function(n,g,b,p,a,q,r,h,j,d,e,m,o,c){this.icon=n;this.caption=p;this.filename=a;this.where=g;this.hash=e;this.href=b;this.size=q!="None"?q:"";this.bytes=r;this.ago=h;this.ts=j;this.selected=false;this.drag_startPos=null;this.drop_target=o;this.dir=m?1:0;this.dragging=false;this.str_actions=d;d=d.split("|");this.main_actions=d[0].split(" ");this.more_actions=d[1]&&d[1].length?d[1].split(" "):[];this.rest_actions=d[2]&&d[2].length?d[2].split(" "):[];Browse.add_file(this,c)},drag_dist:function(a){return Math.abs(this.drag_startPos.x-a.clientX)+Math.abs(this.drag_startPos.y-a.clientY)},render:function(c,e){if(c){this.div=new Element("div",{"class":Browse.details?"browse-file-box-details":"browse-file-box-iconic"});var a=this.bytes!="-1"?"":" deleted_file_line";var d=Browse.minimode?" details-filename-mini":"";var b=e?e:"#";this.div.update("<div style='position: relative;'><div class='details-icon'><img src='/static/images/"+this.icon+"' align='absbottom'></div><div class='details-filename"+a+d+"'><a href='"+b+"'>"+this.caption+"</a></div><div class='details-size'>"+(this.size||"&nbsp;")+"</div><div class='details-modified'>"+this.ago+"</div><a class='dropdown-arrow' style='visibility: hidden;' href='#'><img src='/static/images/big-dropdown.gif'></a><br class='clear'/><div class='miniscule-text'>&nbsp;</div></div>")}else{this.div=Util.childElement(Browse.file_div,Browse.files.length-(Browse.has_parent_link?0:1))}
return this.listen(this.div)},listen:function(e){var c=Util.childElement(e,0);var d=Util.childElement(c,1);var b=$(Util.childElement(d,0));this.a=b;if(this.dir){b.href=BrowseURL.get_path_url(this.where);this.dir_click=(function(){return Browse.reload(this.where)}).bind(this);b.observe("click",this.dir_click)}
b.title=this.filename;this._over=this.over.bind(this);this._out=this.out.bind(this);Event.observe(e,"mouseover",this._over);Event.observe(e,"mouseout",this._out);if(this.filename){this._down=this.down.bindAsEventListener(this);Event.observe(e,"mousedown",this._down);this._ignorenonlink=this.ignorenonlink.bindAsEventListener(this);Event.observe(e,"click",this._ignorenonlink);this.arrow_link=Util.childElement(c,4);this._down_dropdown=this.down_dropdown.bind(this);Event.observe(this.arrow_link,"mousedown",this._down_dropdown)}
e.file=this;return e},unload:function(){if(this.dir_click){this.a.stopObserving("click",this.dir_click)}
Event.stopObserving(this.div,"mouseover",this._over);Event.stopObserving(this.div,"mouseout",this._out);if(this.filename){Event.stopObserving(this.div,"mousedown",this._down);Event.stopObserving(this.div,"click",this._ignorenonlink);Event.stopObserving(this.arrow_link,"mousedown",this._down_dropdown)}
this.a=null;this.div.file=null;this.div=null;this.arrow_link=null},tooltip:function(){if(this.caption.unescapeHTML()!=this.filename&&this.filename.length){Tooltip.show(this.a,this.filename)}},rename:function(a,b,e){var c=FileOps.filename(a);this.caption=c.snippet();this.filename=c;this.where=Util.urlquote(a);this.hash=e;this.ago=b?"":"just now";if(b){this.href=BrowseURL.get_path_url(this.where)}else{var d=this.href.split("/");d[d.length-1]=Util.urlquote(c)+"?w="+e;this.href=d.join("/")}
this.a.update(this.caption);this.a.title=this.filename;this.a.href=this.href},move:function(a){new Effect.Fade(this.div,{afterFinish:a})},del:function(c){if(!Browse.deleted_shown){new Effect.Fade(this.div,{afterFinish:c});Browse.emptyCheck()}else{this.size="None";this.bytes=-1;this.ago=this.dir?"":"just now";this.main_actions=this.dir?["full_restore"]:"undelete purge".split(" ");this.more_actions=this.dir?["purge_folder"]:["revisions"];this.rest_actions=[];var b=this.div.down("a");b.addClassName("deleted_file_line");if(this.dir){this.div.down("img").src="/static/images/icons/folder_gray.gif"}}},purge:function(a){new Effect.Fade(this.div,{afterFinish:a});Browse.emptyCheck()},setOpacity:function(){if(this.size=="None"){this.div.down("div").down("img").setOpacity(0.5)}},cachePos:function(){if(!this.box){this.box={}}
var a=Browse.viewportOffset();if(!a){return}
this.box.left=a.left+this.div.offsetLeft;this.box.top=a.top+this.div.offsetTop;if(!this.box.width){this.box.width=this.div.getWidth();this.box.height=this.div.getHeight()}},overlaps:function(a){return Util.boxOnBox(a,this.box)},ignorenonlink:function(a){if(a.target.tagName.toLowerCase()!="a"){Event.stop(a)}},over:function(){if(Browse.dragging){return}
if(this.filename){this.dropdown_arrow(on=true)}
if(!this.selected){this.div.addClassName("file-highlight")}else{this.div.addClassName("file-selected-highlight")}},out:function(a){if(a.toElement){if(a.toElement.className=="tooltip"||$(a.toElement)==this.div||$(a.toElement).descendantOf(this.div)){return}}
if(!this.selected){this.div.removeClassName("file-highlight");if(this.filename){this.dropdown_arrow(on=false)}}else{this.div.removeClassName("file-selected-highlight")}},down:function(a){if(this.editing){return}
Event.stop(a);this.click_select(a);Browse.find_icons();BrowseActions.kill_dropdowns();this.drag_startPos={x:a.clientX,y:a.clientY};this.dragging=true;this.drag_watch=this.drag.bindAsEventListener(this);this.up_watch=this.up.bindAsEventListener(this);Event.observe(document,"mousemove",this.drag_watch);Event.observe(document,"mouseup",this.up_watch);Browse.clone_selected(a)},show_dropdown:function(a){BrowseActions.kill_dropdowns();this.dropdown_arrow(on=true);BrowseActions.dropdown(this,a)},down_dropdown:function(a){this.click_select(a);this.show_dropdown(show_all=true)},up:function(a){if(this.editing){return}
Event.stop(a);var b=this.drag_end(a);if(a.target.tagName!="A"&&!b){this.show_dropdown()}
Event.stopObserving(document,"mousemove",this.drag_watch);Event.stopObserving(document,"mouseup",this.up_watch)},click_select:function(a){Event.stop(a);if(false&&a.shiftKey&&a.ctrlKey){Browse.select_range_to(this,additive=true)}else{if(false&&a.shiftKey){Browse.select_range_to(this)}else{if(false&&a.ctrlKey){this.toggle();this.over()}else{if(!this.selected){this.select();Browse.deselect_all_but(this)}}}}
if(false&&(!a.shiftKey||a.ctrlKey)){Browse.shift_start=this}},drag:function(a){Event.stop(a);if(this.drag_dist(a)<10){return}
Browse.dragging=true;Util.setCursor("move");Browse.draw_clones(a);Util.noHorizScroll();Browse.highlight_drop_target(a)},drag_end:function(g){if(!Browse.dragging){return false}
Browse.dragging=false;Util.clearCursor();f=Browse.find_drop_target(g);Util.allowHorizScroll();var h=false;if(f){f.drop_lowlight();if(this.bytes==-1){Notify.ServerError("Moving deleted "+(this.dir?"folders":"files")+" is not allowed.")}else{if(this.where=="/Public"){Notify.ServerError("Moving your Public folder is not allowed.")}else{if(this.where=="/Photos"){Notify.ServerError("Moving your Photos folder is not allowed.")}else{if(f!=this){var c=Browse.get_selected();if(!c.length){return}
var a=c[0];var b=f;var d=a.dir?FileOps.show_move_confirm:FileOps.do_move;d(a.where,decodeURIComponent(b.where),is_folder=a.dir);BrowseActions.kill_dropdowns();h=true}}}}}
Browse.kill_clones(g);return h},select:function(){this.selected=true;this.div.addClassName("file-select");Browse.selected_files.push(this)},deselect:function(){this.selected=false;this.div.removeClassName("file-select");this.div.removeClassName("file-highlight");this.div.removeClassName("file-selected-highlight");this.dropdown_arrow(show=false)},toggle:function(a){if(a==null){a=this.selected}
if(a){return this.deselect()}else{return this.select()}},set:function(a){return this.toggle(!a)},drop_highlight:function(){this.div.addClassName("drop-highlight")},drop_lowlight:function(){this.div.removeClassName("drop-highlight")},dropdown_arrow:function(a){if(a){if(this.div.select(".dropdown-arrow").length){this.div.select(".dropdown-arrow")[0].style.visibility=""}}else{if(this.div.select(".dropdown-arrow").length){this.div.select(".dropdown-arrow")[0].style.visibility="hidden"}}},edit:function(h){if(Browse.in_placer){Browse.in_placer.file.editing=false;Browse.in_placer.editor.dispose();Browse.in_placer.name.innerHTML=Browse.in_placer.name_old_innerHTML;Browse.in_placer=null}
Browse.selectable();this.editing=true;var b=this.div.down("a");var e=b.innerHTML;b.innerHTML=this.filename.escapeHTML();var g=h?"new":"rename";var a=h?"Create":"Rename";var d=this.dir?"yes":"";var c=new Ajax.InPlaceEditor(b,"/cmd/"+g+this.where+"?long_running",{okControl:"link",cancelControl:"link",htmlResponse:false,highlightColor:"#ddf0ff",highlightEndColor:"#fafdff",okText:a,cancelText:"Cancel",clickToEditText:"",cols:Browse.minimode?15:25,callback:function(j,m){return{to_path:m,t:Constants.TOKEN,folder:d}},ajaxOptions:{method:"post"},onComplete:(function(n){if(n&&n.status.toString().charAt(0)=="5"){return}
Browse.unselectable();c.dispose();this.editing=false;Browse.in_placer=null;if(!n){if(h){this.purge(afterwards=Browse.show_message)}else{b.innerHTML=e}
return}
if(n.responseText.indexOf("err:")==0){Notify.ServerError(n.responseText.substr(4));c.dispose();this.editing=false;Browse.in_placer=null;Browse.unselectable();if(h){this.del(afterwards=Browse.show_message)}else{this.rename(decodeURIComponent(this.where),h)}}else{var q=n.responseText.split(":");var j=q[0];var m=q[1];var p=FileOps.filename(j);if(h){var o=Browse.find_file(Util.urlquote(j));if(o&&o.bytes.toString()=="-1"){o.purge()}}
this.rename(j,d,m);Browse.resort();this.div.scrollTo();if(h){TreeView.reset()}}}).bind(this),onFailure:(function(){c.dispose();this.editing=false;Browse.in_placer=null;Browse.unselectable();if(h){this.del(afterwards=Browse.show_message)}else{b.innerHTML=e}
Notify.ServerError()}).bind(this)});c.enterEditMode();Browse.in_placer={file:this,editor:c,new_folder:h,name:b,name_old_innerHTML:e}}});BrowseActions={option_dict:{share_here:{verb:"share_existing",icon:"user_add",text:"Share this"},share:{verb:"share_existing",icon:"user_add",text:"Share folder"},share_opts_here:{verb:"share",icon:"user_add",text:"Sharing info"},share_opts:{verb:"share",icon:"user_add",text:"Sharing info"},revisions:{verb:"revisions",icon:"time",text:"Revisions"},undelete:{href:function(){return"/revisions"+this.where+"?undelete=yes"},icon:"basket_remove",text:"Undelete"},copy_url:{icon:"world_link",text:"Copy public URL",public_href:function(){return"http://"+Constants.PUBSERVER+"/u/"+Constants.uid+this.where.substring(7)},onclick:function(a){BrowseActions.showCopyPublicUrlModal("http://"+Constants.PUBSERVER+"/u/"+Constants.uid+this.where.substring(7));Event.stop(a)}},download:{href:function(){return Constants.protocol+"://"+Constants.block+"/get"+this.where+this.hash+"&dl=1"},icon:"page_white_go",text:"Download file"},view:{href:function(){return Constants.protocol+"://"+Constants.block+"/get"+this.where+this.hash},icon:"page_white_magnify",text:"View file"},zipped_dl:{href:function(){return Constants.protocol+"://"+Constants.block+"/zip"+this.where+this.hash},icon:"page_white_compressed",text:"Download .ZIP"},photos:{href:function(){return"/photos"+this.where.substring(7)},icon:"pictures",text:"Gallery view"},a_photo:{href:function(){return"/photos/show"+this.where.substring(7)},icon:"pictures",text:"Gallery view"},rejoin:{verb:"rejoin",icon:"folder_user",text:"Rejoin share"},restore:{href:function(){return"/restore"+this.where+"?prev="+encodeURIComponent(location.href)},icon:"time_go",text:"Restore files"},full_restore:{href:function(){return"/restore"+this.where+"?prev="+encodeURIComponent(location.href)},icon:"time_go",text:"Restore folder"},show_del:{onclick:function(a){Event.stop(a);location.href=BrowseURL.get_del_url(true)},icon:"page_white_stack",text:"Show deleted files"},hide_del:{onclick:function(a){Event.stop(a);location.href=BrowseURL.get_del_url(false)},icon:"page_white_stack",text:"Hide deleted files"},copy:{icon:"page_white_copy",text:"Copy file to...",onclick:function(a){FileOps.show_copy(this.where);Event.stop(a)}},copy_folder:{icon:"folder_page",text:"Copy folder to...",onclick:function(a){FileOps.show_copy(this.where,is_folder=true);Event.stop(a)}},move:{icon:"page_white_put",text:"Move file to...",onclick:function(a){FileOps.show_move(this.where);Event.stop(a)}},move_folder:{icon:"folder_go",text:"Move folder to...",onclick:function(a){FileOps.show_move(this.where,is_folder=true);Event.stop(a)}},rename:{icon:"page_white_edit",text:"Rename file...",onclick:function(b){var a=Browse.find_file(this.where);if(a){a.edit()}
Event.stop(b)}},rename_folder:{icon:"folder_edit",text:"Rename folder...",onclick:function(b){var a=Browse.find_file(this.where);if(a){a.edit()}
Event.stop(b)}},"delete":{icon:"page_white_delete",text:"Delete file...",onclick:function(a){FileOps.show_delete(this.where);Event.stop(a)}},delete_folder:{icon:"folder_delete",text:"Delete folder...",onclick:function(a){FileOps.show_delete(this.where,is_folder=true);Event.stop(a)}},purge:{icon:"time_delete",text:"Purge",onclick:function(a){FileOps.show_purge(this.where);Event.stop(a)}},purge_folder:{icon:"time_delete",text:"Purge folder",onclick:function(a){FileOps.show_purge(this.where,is_folder=true);Event.stop(a)}},new_folder:{icon:"folder_add",text:"Create folder",onclick:function(a){FileOps.inplace_new_folder(this.where);Event.stop(a);return false}},upload:{icon:"page_white_get",text:"Upload",onclick:function(a){FileOps.show_upload(this.where);Event.stop(a)}}},generate_li:function(e,j,c,h){var d=BrowseActions.option_dict[j];d.where=e;d.hash=c?"?w="+c:"";var n=new Element("li");var m=new Element("a",{target:"_top","class":"background-icon",href:d.onclick?"#":d.verb?("/"+d.verb+e):d.href()});if(!h){HoverIconSwap.register(m)}
if(d.onclick){m.observe("click",(function(a){d.onclick(a);BrowseActions.kill_dropdowns()}).bindAsEventListener(d))}
var g=Sprite.make(d.icon,{"class":"icon_no_hover"});var b=Sprite.make(d.icon+"_blue",{"class":"icon_hover"});m.update(g);m.insert(b);m.update(m.innerHTML+d.text);n.update(m);return n},fillActionUL:function(a,d,b,e,c){b.update(e?"<li class='action-separator'>|</li>":"");if(d&&d.length){b.show();d.each(function(g){b.insert(BrowseActions.generate_li(a,g,c,true))})}else{b.hide()}},showFor:function(a){return function(){$("browse-filename").update(a.caption.widthSplit().join("&#8203;<wbr>"));if(a.size=="None"){$("browse-filesize").update("<i>deleted</i>")}else{if(a.size!=false){$("browse-filesize").update(a.size)}else{$("browse-filesize").update()}}
if(a.ago){$("browse-filemodified").update("Last modified "+a.ago)}else{$("browse-filemodified").update()}
var b=$("browse-file-actions").down("ul");BrowseActions.fillActionUL(a.where,a.main_actions,b,add_separator=true);BrowseActions.fillActionUL(a.where,a.more_actions,$("more-file-actions"))}},clear:function(a){$("browse-filename").update();$("browse-filesize").update();$("browse-filemodified").update();$("browse-file-actions").down("ul").update();$("more-file-actions").update()},more:function(a){a=$(a);BrowseActions.more_link=a;a.blur();var d=a.positionedOffset();var b=a.getDimensions();BrowseActions.kill_dropdowns();var c=$("more-actions");a.style.border=c.style.border;BrowseActions.more_link.style.backgroundColor="#e6f2ff";c.setStyle({position:"absolute",left:d.left+"px",top:(d.top+b.height-3)+"px"});c.show();Event.observe(document,"click",BrowseActions.hide_more);return false},hide_more:function(){$("more-actions").hide();if(BrowseActions.more_link){BrowseActions.more_link.style.border="";BrowseActions.more_link.style.backgroundColor="";Event.stopObserving(document,"click",BrowseActions.hide_more)}},kill_dropdowns:function(){BrowseActions.hide_more();if($("dropdown")){$("dropdown").hide()}},dropdown:function(c,m,p){var d=c.div;if(p){Event.stop(p)}
var n=c.where;var j=c.hash;var x=c.main_actions.concat(c.more_actions);if(c.rest_actions.length==1){m=true}
if(m){x=x.concat(c.rest_actions)}
if(!x.length){return}
var v=$("dropdown");if(v){Event.stopObserving(document,"click",v.listener);v=Util.yank(v);if(Browse.more_link){Event.stopObserving(Browse.more_link,"click",Browse.more_link_action);Browse.more_link=null;Browse.more_link_action=null}}
d=$(d);var a=new Element("div",{id:"dropdown",style:"position:absolute; left: 0px; top: 0px; margin:0;padding:0; width: 137px"});var b=new Element("ul",{"class":"dropdown dropdown-lite note"});var u=false;$A(x).each(function(e){b.insert(BrowseActions.generate_li(n,e,j))});var h=null;if(!m&&c.rest_actions.length){h=(new Element("a",{href:"#",style:"text-align: right"})).update("More &#187;");Browse.more_link=h;Browse.more_link_action=BrowseActions.dropdown.curry(c,m=true);h.observe("click",Browse.more_link_action);var g=new Element("li");b.insert(g);g.insert(h)}
a.insert(b);b.listener=function(z){var y=$("dropdown");if(y){y=Util.yank(y)}
Event.stopObserving(document,"click",b.listener);if(Browse.more_link){Event.stopObserving(Browse.more_link,"click",Browse.more_link_action);Browse.more_link=null;Browse.more_link_action=null}
if(z.target.tagName.toLowerCase()!="a"||z.target.href.length<=2){Event.stop(z)}};Event.observe(document,"click",b.listener);$(d.offsetParent).insert(a);if(Util.ie6){var r={top:d.offsetTop,left:d.offsetLeft}}else{var r=d.positionedOffset()}
var o=d.getDimensions();var q=a.getDimensions();a.style.left=(r.left-q.width+o.width)+"px";a.style.top=(r.top+o.height-1+(Util.ie6?71:0))+"px";if(!Util.ie){var w=a.viewportOffset();if(q.height+w.top>(window.innerHeight||document.documentElement.clientHeight)){setTimeout(function(){a.scrollIntoView(false);a=null},100)}}
window.focus();return false},showCopyPublicUrlModal:function(a){Modal.show("Copy Public URL",DomUtil.fromElm("copy-public-url"));$("public_url").setValue(a);$("public_url").select()}};var FileOps={filename:function(a){a=Util.normPath(decodeURIComponent(a));a=a.split("/");filename=a.pop();if(filename==""){return"My Dropbox"}
return filename},dir_handler:function(c,b){if(typeof(b)=="string"){b=$(b)}
var a=b.up("div");a.addClassName("highlight");if(Modal.vars.selected&&Modal.vars.selected!=a){Modal.vars.selected.removeClassName("highlight")}
Modal.vars.selected=a;if(Modal.shown()){b.blur()}
Modal.vars.selected_path=encodeURIComponent(c)},show_folder_pick:function(e,a,c,d){DomUtil.fillVal(FileOps.filename(a),"folder-pick-file");Modal.show(e,DomUtil.fromElm("folder-pick"),{where:a,action:c,folder:d});var b=$("first-treeview-link");if(!Util.ie){b.onclick()}},show_copy:function(a,b){var c=b?"folder":"file";DomUtil.fillVal("copy","folder-pick-action");DomUtil.fillVal("Copy "+c,"folder-pick-action-text");DomUtil.fillVal(c,"folder-pick-file-folder");FileOps.show_folder_pick("Copy "+c+" to...",a,FileOps.do_copy,for_folder=b)},show_move:function(a,b){var c=b?"folder":"file";DomUtil.fillVal("move","folder-pick-action");DomUtil.fillVal("Move "+c,"folder-pick-action-text");DomUtil.fillVal(c,"folder-pick-file-folder");FileOps.show_folder_pick("Move "+c+" to...",a,FileOps.do_move,for_folder=b)},show_move_confirm:function(d,c,b){var a=is_folder?"folder":"file";DomUtil.fillVal(a,"move-confirm-file-folder");DomUtil.fillVal(FileOps.filename(d),"move-confirm-filename");DomUtil.fillVal(FileOps.filename(decodeURIComponent(c)),"move-confirm-dest");DomUtil.fillVal("Move "+a,"move-confirm-action-text");Modal.show("Move "+a+"?",DomUtil.fromElm("move-confirm"),{from:d,to:c,for_folder:b})},show_rename:function(a){DomUtil.fillVal(FileOps.filename(a),"rename-filename");Modal.show("Rename file",DomUtil.fromElm("rename-file"),{where:a,action:FileOps.do_rename})},show_delete:function(a,b){var c=b?"folder":"file";DomUtil.fillVal(FileOps.filename(a),"delete-filename");DomUtil.fillVal(c,"delete-file-folder");Modal.show("Delete "+c+"?",DomUtil.fromElm("delete-file"),{where:a,action:FileOps.do_delete,folder:b})},show_purge:function(a,b){var c=b?"folder":"file";DomUtil.fillVal(FileOps.filename(a),"purge-filename");DomUtil.fillVal(c,"purge-file-folder");DomUtil.fillVal("Purge "+c,"purge-action-text");Modal.show("Purge "+c+"?",DomUtil.fromElm("purge-file"),{where:a,action:FileOps.do_purge,folder:b})},show_new_folder:function(a){Modal.show("Create folder",DomUtil.fromElm("new-folder"),{where:a,action:FileOps.do_new_folder})},show_upload:function(b){DomUtil.fillVal(FileOps.filename(b),"upload-dest");var a=DomUtil.fromElm("upload-file");Modal.show("Upload",a,{where:b,action:FileOps.do_upload},item_focus=false,modal_width=600);Modal.track_resizes();Upload.set_dest(Util.normPath(decodeURIComponent(b)));Upload.init(late_game=true)},do_copy:function(e,d){Util.setCursor("progress");e=e||Modal.vars.where;d=d?encodeURIComponent(d):Modal.vars.selected_path;file=FileOps.filename(e);var b=file;var c=Modal.vars.folder;if(!d){Notify.ServerError("You should select a destination for the file.");Util.clearCursor();return}
if(c&&Util.normDir(decodeURIComponent(d)).indexOf(Util.normDir(decodeURIComponent(e)))==0){Notify.ServerError("You cannot copy a folder into itself.");Util.clearCursor();return}
var a=(decodeURIComponent(e)==Util.normPath(decodeURIComponent(d))+"/"+file);new Ajax.DBRequest("/cmd/copy"+e+"?to_path="+d,{parameters:{folder:c?"yes":""},job:!!c,progress_text:"Copying folder...",onSuccess:function(r){var m=r.responseText.split(":");var o=m[0];var q=m[1];var g=FileOps.filename(o);if(a){var j=Browse.find_file(e);var n=j.where.replace_last(encodeURIComponent(b),encodeURIComponent(g));var h=j.href.replace_last(escape(b),escape(g));h=h.replace_last("w="+j.hash,"w="+q);var u=g.snippet();var p=new BrowseFile(j.icon,n,h,u,g,j.size,j.bytes,j.ago,j.ts,j.str_actions,q,j.dir,j.drop_target,need_new=true);Browse.resort()}
Notify.ServerSuccess("Copied '"+g.snippet()+"' successfully.")},cleanUp:function(g){Util.clearCursor()}})},do_move:function(e,d,c){Util.setCursor("progress");e=e||Modal.vars.where;d=d?encodeURIComponent(d):Modal.vars.selected_path;var a=FileOps.filename(e);var b=c!=null?c:Modal.vars.folder;if(!d){Notify.ServerError("You should select a destination for the file.");Util.clearCursor();return}
if(decodeURIComponent(e)==decodeURIComponent(d)+"/"+a){Util.clearCursor();return}
if(b&&Util.normDir(decodeURIComponent(d)).indexOf(Util.normDir(decodeURIComponent(e)))==0){Notify.ServerError("You cannot move a folder into itself.");Util.clearCursor();return}
new Ajax.DBRequest("/cmd/move"+e+"?to_path="+d,{parameters:{folder:b?"yes":""},job:!!b,progress_text:"Moving folder...",onSuccess:function(h){Notify.ServerSuccess("Moved '"+FileOps.filename(e).snippet()+"' successfully.");var g=Browse.pull_file(e);g.move(g.dir?Browse.refresh_drop_positions:false);if(g.dir){Browse.remove_drop_target(g)}},cleanUp:function(g){Util.clearCursor()}})},do_rename:function(a){Util.setCursor("progress");var c=Modal.vars.where;var b=encodeURIComponent(a);new Ajax.DBRequest("/cmd/rename"+c+"?to_path="+b,{onSuccess:function(h){var m=h.responseText.split(":");var d=m[0];var e=m[1];var j=FileOps.filename(d);Notify.ServerSuccess("Renamed '"+FileOps.filename(c).snippet()+"' to '"+j.snippet()+"' successfully.");var g=Browse.find_file(c);g.rename(d,e)},cleanUp:function(d){Util.clearCursor()}})},do_delete:function(){Util.setCursor("progress");var b=Modal.vars.where;var a=Modal.vars.folder;new Ajax.DBRequest("/cmd/delete"+b,{parameters:{folder:a?"yes":""},job:!!a,progress_text:"Deleting folder...",onSuccess:function(d){Notify.ServerSuccess("Deleted '"+FileOps.filename(b).snippet()+"' successfully.");var c=Browse.deleted_shown?Browse.find_file(b):Browse.pull_file(b);if(c){c.del(c.dir?Browse.refresh_drop_positions:false)}
if(c.dir){Browse.remove_drop_target(c)}
TreeView.reset()},cleanUp:function(c){Util.clearCursor()}})},do_purge:function(){Util.setCursor("progress");var a=Modal.vars.where;new Ajax.DBRequest("/revisions"+a+"?purge=file&ajax=true",{parameters:{folder:Modal.vars.folder?"yes":""},job:!!Modal.vars.folder,progress_text:"Purging folder...",onSuccess:function(c){Notify.ServerSuccess("Purged '"+FileOps.filename(a).snippet()+"' successfully.");var b=Browse.pull_file(a);if(b){b.purge()}},cleanUp:function(b){Util.clearCursor()}})},do_upload:function(){Util.setCursor("progress");$("dest-upload-folder").value=decodeURIComponent(Modal.vars.where);$("upload-form").submit();frames["upload-frame"].onload=function(a){var b=a.target.documentElement.textContent;if(b=="winner!"){Browse.reload();Notify.ServerSuccess("Uploaded file successfully")}else{Notify.ServerError()}};Util.clearCursor()},inplace_new_folder:function(b){if(Browse.in_placer&&Browse.in_placer.new_folder&&new_folder){return}
var a="New Folder";if(b.charAt(b.length-1)!="/"){b+="/"}
Browse.hide_message();var c=new BrowseFile("icons/folder.gif",b,"/browse2"+b+a,a,a,size=false,bytes=0,"",Util.ts(),"share zipped_dl upload||copy_folder move_folder rename_folder delete_folder","",is_dir=true,drop_target=true,need_new=true);Browse.resort();c.div.scrollTo();c.edit(new_folder=true)}};var Forms={submitOnlyOnce:function(){var a=Forms.submitted!==true;Forms.submitted=true;return a},disable:function(a){if(a){setTimeout(function(){a.disabled=true},0)}},clearInput:function(b,a){b=$(b);if(b.value==a){b.value="";b.style.color="#444444"}}};var Upgrade={card_toggle:function(a){return function(c){var b=$(c);if(c==a||!a){b.removeClassName("cc-icon-off")}else{b.addClassName("cc-icon-off")}}},highlightCardtype:function(){ccn=$("ccn");if(Upgrade.last_val==ccn.value){return}
Upgrade.last_val=ccn.value;var b=ccn.value;var d=b.substr(0,2);var c=$A(["visa","mastercard","amex"]);var a=null;if(b.charAt(0)=="4"){a="visa"}else{if(d=="34"||d=="37"){a="amex"}else{if(parseInt(d,10)>=51&&parseInt(d,10)<=55){a="mastercard"}}}
c.each(Upgrade.card_toggle(a))},runCardHighlighter:function(){setInterval(Upgrade.highlightCardtype,200)},highlightPlan:function(){var b=$A(["fifty-plan","100-plan","250-plan","free-plan"]);var a=b.map(Util.scry).find(function(c){if(c){return c.checked}});if(Upgrade.last_checked==a){return}
if(Upgrade.last_checked){Util.scry(Upgrade.last_checked.id+"-div").removeClassName("payment-option-selected")}
if(a){Util.scry(a.id+"-div").addClassName("payment-option-selected")}
Upgrade.last_checked=a},enableNext:function(){var a=$("next-button");a.enable();a.removeClassName("disabled-button")},disableNext:function(){var a=$("next-button");a.disable();a.addClassName("disabled-button")},runPlanHighlighter:function(){setInterval(Upgrade.highlightPlan,100)},showPlanInfo:function(b){var a={"50-plan":"It's 50 GB","100-plan":"It's 100 GB","250-plan":"It's 250 GB","free-plan":"It's free"};Util.scry("plan-specific").update(a[b.id])}};var Home={showScreencast:function(){if(!Home.screencast){var b=new Effect.Scale("spacer",0,{});var a=new Effect.SlideDown("screencast",{afterFinish:function(){$("screencast-placeholder").hide();$("actual-screencast").show()}});Home.screencast=true}else{$("spacer").style.height="135px";$("screencast").hide();$("actual-screencast").hide();Home.screencast=false}},showFeedback:function(a){if(a){Event.stop(a)}
Modal.show("Tell us what you think",DomUtil.fromElm("feedback-div"),{icon:"information"},$("feedback_textarea"));return false}};var Install={pingForLinkedHost:function(b){var a=new Ajax.Request("/host_linked",{method:"get",onSuccess:function(){location.href="/share"+b},onFailure:function(){setTimeout(Install.pingForLinkedHost.curry(b),3000)}})}};var Tour={load:function(e,d){var g=e;if(!this.tab_count){Tour.countTabs()}
e=Math.max(0,Math.min(parseInt(e,10),Tour.tab_count-1));if(e==Tour.c_page){return false}
var b=Util.childElement(Util.scry("tour-tabs-list"),Tour.curPage());var a=Util.childElement(Util.scry("tour-tabs-list"),e);var c=new Ajax.Updater(Util.scry("tour-page"),"/tour?p="+e.toString(),{method:"get",onComplete:function(){if(d){d.blur()}
Tour.showhideNext(e);Tour.c_page=e;window.scrollTo(0,0);location.href="#"+(e+1);b.removeClassName("tour-tab-selected");a.addClassName("tour-tab-selected")}});return false},c_page:null,curPage:function(){if(Tour.c_page===null){var a=/\?p=(\d)/.exec(location.href);Tour.c_page=(a)?a[1]:0}
return parseInt(Tour.c_page,10)},tab_count:null,showhideNext:function(a){if(Tour.tab_count===null){Tour.countTabs()}
if(a+1<Tour.tab_count){Util.scry("next-page-link").style.visibility="visible"}else{Util.scry("next-page-link").style.visibility="hidden"}},loadNext:function(a){Tour.load(Tour.curPage()+1,a);return false},countTabs:function(){Tour.tab_count=Util.scry("tour-tabs-list").childElements().length},checkUrl:function(){var b=Util.url_hash();if(b.length){b=parseInt(b,10)-1}else{var a=/\?p=(\d*)/.exec(location.href);if(a){b=parseInt(a[1],10)}else{b=0}}
Tour.load(b)}};var Dropdown={mouseOut:false,hidden:false,init:function(){var a=document.getElementsByClassName("selected");if(a[0]){Dropdown.original_selected=a[0]}},showDropdown:function(a,c,d){if(!d){Dropdown.hideDropdown(c);return}
a.addClassName("hover");Event.stop(c);var b=$(d);if(Dropdown.current!=b){if(Dropdown.current){Dropdown.hideDropdown(c)}}
Dropdown.current=b;Dropdown.current_link=a;Event.observe(b,"mouseover",Dropdown.mouseOverList);Event.observe(b,"mouseout",Dropdown.mouseOutList);Event.observe(c.target,"mouseout",Dropdown.mouseOutList);Event.observe(c.target,"mouseover",Dropdown.mouseOverList);Event.observe(document,"click",Dropdown.hideDropdown);Dropdown.hidden=false;clearTimeout(Dropdown.currentOpen);Dropdown.currentOpen=setTimeout(function(){var e=b.select("li").length;b.style.display="block"},1);return false},hideDropdown:function(b){if(!Dropdown.current_link){return}
clearTimeout(Dropdown.currentOpen);Dropdown.current_link.removeClassName("hover");var a=Dropdown.current;if(Dropdown.original_selected){if(a.up()!=Dropdown.original_selected){a.up().removeClassName("selected")}}
a.hide();Event.stopObserving(window,"click",Dropdown.hideDropdown);Event.stopObserving(a,"mouseover",Dropdown.mouseOverList);Event.stopObserving(a,"mouseout",Dropdown.mouseOutList);clearTimeout(Dropdown.mouseOut);Dropdown.mouseOut=false;Dropdown.hidden=true},mouseOverList:function(){clearTimeout(Dropdown.mouseOut);Dropdown.mouseOut=false},mouseOutList:function(b,a){clearTimeout(Dropdown.mouseOut);Dropdown.mouseOut=setTimeout(Dropdown.hideDropdown,500)}};var LiveSearch={search:function(d,c,b){d=d.strip();if(d.length<3){$(c).update("")}else{var a=new Ajax.DBRequest(b,{parameters:{search_string:d},onSuccess:function(e){$(c).update(e.responseText);LiveSearch.highlight(c,d)}})}},highlight:function(c,b){var a=new RegExp(RegExp.escape(b),"i");c=$(c);$$(".livesearch_result_a").each(function(d){d.innerHTML=d.innerHTML.gsub(a,function(e){return"<span class='highlight'>"+e[0]+"</span>"})});$$(".livesearch_result_p").each(function(d){d.innerHTML=d.innerHTML.stripTags().gsub(a,function(e){return"<span class='highlight'>"+e[0]+"</span>"})})},MAX_RESULTS:10};var Email={mailto:function(b,a,c){if(!c){c="getdropbox.com"}
b.href="mailto:"+a+"@"+c;b.onMouseover=null}};var SuggestionInput={register:function(c){c=$(c);var b=c.up("form");var a=c.getValue();if(a===""||a===c.title){c.setValue(c.title);c.defaulted=true}else{c.defaulted=false;c.addClassName("suggestion-input-unfaded")}
c.observe("blur",SuggestionInput.blur);c.observe("focus",SuggestionInput.focus);if(b){if(!c.id){c.id="r_elm_id_"+Math.random().toString()}
b.observe("submit",SuggestionInput.blank(c.id))}},register_all:function(){$$(".suggestion-input").each(SuggestionInput.register)},blank:function(a){return function(){var b=Util.scry(a);if(!b){return}
if(b&&b.defaulted){b.setValue("")}}},do_blank:function(a){SuggestionInput.blank(a)()},focus:function(a){var b=$(a.target);if(!b){return}
if(b.defaulted){b.addClassName("suggestion-input-unfaded");b.setValue("");b.defaulted=false}},blur:function(a){var b=$(a.target);if(!b){return}
if(b.getValue()===""){b.removeClassName("suggestion-input-unfaded");b.setValue(b.title);b.defaulted=true}}};Event.observe(window,"load",SuggestionInput.register_all);var HoverIconSwap={register_all:function(){$$(".background-icon").each(HoverIconSwap.register)},register:function(a){a=$(a);a.observe("mouseover",HoverIconSwap.mouseover);a.observe("mouseout",HoverIconSwap.mouseout)},mouseover:function(a){var b=$(a.target);b.addClassName("hover_swap")},mouseout:function(a){var b=$(a.target);b.removeClassName("hover_swap")},getFileName:function(b){var a=b.src.split("/");return a[a.length-1]}};document.observe("dom:loaded",HoverIconSwap.register_all);var SharingMembers={register_all:function(){$$(".dropdown-link-a").each(SharingMembers.register);Event.observe(document,"click",SharingMembers.kill_current)},register:function(a){a=$(a);a.observe("mouseover",SharingMembers.mouseover);a.observe("mouseout",SharingMembers.mouseout);a.observe("click",SharingMembers.click)},mouseover:function(a){var b=$(a.target);if(!b){return}
b.addClassName("hover")},mouseout:function(a){var b=$(a.target);if(!b){return}
b.removeClassName("hover")},click:function(a){Event.stop(a);var b=$(a.target);if(!b){return}
SharingMembers.kill_current(false);SharingMembers.current=b;b.addClassName("clicked");b.up().style.zIndex="50";b.next().style.display="block"},kill_current:function(a){if(!SharingMembers.current){return}
var b=$(SharingMembers.current);if(!b){return}
if(b.next()){b.removeClassName("clicked");b.up().style.zIndex="";b.next().style.display="none"}}};var Sprite={SPACER:"/static/images/icons/icon_spacer.gif",src:function(b,a){b=$(b);Sprite.clear(b);b.addClassName("s_"+a)},replace:function(c,b,a){c.className=c.className.replace(b,a)},clear:function(a){a=$(a);a.className=a.classNames().reject(function(b){return!b.indexOf("s_")}).join(" ")},make:function(b,a){a.src=Sprite.SPACER;a["class"]=" "+a["class"]||"";a["class"]="sprite s_"+b+a["class"];return new Element("img",a)},get:function(a){return a.className},set:function(b,a){b.className=a;b.src=Sprite.SPACER}};var ActAsBlock={elm_list:["margin-left","margin-right","padding-left","padding-right","border-left-width","border-right-width"],parent_list:["padding-left","padding-right","border-left-width","border-right-width"],register:function(c,d){d=d||document.body;var b=$(d).getElementsByClassName("act_as_block");for(var a=0;a<b.length;a=a+1){ActAsBlock.resize(b[a])}},resize:function(e){e=$(e);var c=e.up();var a=ActAsBlock.sumOffset(e,ActAsBlock.elm_list);var d=ActAsBlock.sumOffset(c,ActAsBlock.parent_list);e.style.width="1px";var b=(c.getWidth()-a-d);if(b>0){e.style.width=b+"px"}},sumOffset:function(b,c){var a=0;c.each(function(d){a+=parseInt(b.getStyle(d),10)||0});return a}};Event.observe(window,"load",ActAsBlock.register);Calendar=function(firstDayOfWeek,dateStr,onSelected,onClose){this.activeDiv=null;this.currentDateEl=null;this.getDateStatus=null;this.getDateToolTip=null;this.getDateText=null;this.timeout=null;this.onSelected=onSelected||null;this.onClose=onClose||null;this.dragging=false;this.hidden=false;this.minYear=1970;this.maxYear=2050;this.dateFormat=Calendar._TT["DEF_DATE_FORMAT"];this.ttDateFormat=Calendar._TT["TT_DATE_FORMAT"];this.isPopup=true;this.weekNumbers=true;this.firstDayOfWeek=typeof firstDayOfWeek=="number"?firstDayOfWeek:Calendar._FD;this.showsOtherMonths=false;this.dateStr=dateStr;this.ar_days=null;this.showsTime=false;this.time24=true;this.yearStep=2;this.hiliteToday=true;this.multiple=null;this.table=null;this.element=null;this.tbody=null;this.firstdayname=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;this.dateClicked=false;if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined")
Calendar._SDN_len=3;var ar=new Array();for(var i=8;i>0;){ar[--i]=Calendar._DN[i].substr(0,Calendar._SDN_len);}
Calendar._SDN=ar;if(typeof Calendar._SMN_len=="undefined")
Calendar._SMN_len=3;ar=new Array();for(var i=12;i>0;){ar[--i]=Calendar._MN[i].substr(0,Calendar._SMN_len);}
Calendar._SMN=ar;}};Calendar._C=null;Calendar.is_ie=(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent));Calendar.is_ie5=(Calendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent));Calendar.is_opera=/opera/i.test(navigator.userAgent);Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);Calendar.getAbsolutePos=function(el){var SL=0,ST=0;var is_div=/^div$/i.test(el.tagName);if(is_div&&el.scrollLeft)
SL=el.scrollLeft;if(is_div&&el.scrollTop)
ST=el.scrollTop;var r={x:el.offsetLeft-SL,y:el.offsetTop-ST};if(el.offsetParent){var tmp=this.getAbsolutePos(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y;}
return r;};Calendar.isRelated=function(el,evt){var related=evt.relatedTarget;if(!related){var type=evt.type;if(type=="mouseover"){related=evt.fromElement;}else if(type=="mouseout"){related=evt.toElement;}}
while(related){if(related==el){return true;}
related=related.parentNode;}
return false;};Calendar.removeClass=function(el,className){if(!(el&&el.className)){return;}
var cls=el.className.split(" ");var ar=new Array();for(var i=cls.length;i>0;){if(cls[--i]!=className){ar[ar.length]=cls[i];}}
el.className=ar.join(" ");};Calendar.addClass=function(el,className){Calendar.removeClass(el,className);el.className+=" "+className;};Calendar.getElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.currentTarget;while(f.nodeType!=1||/^div$/i.test(f.tagName))
f=f.parentNode;return f;};Calendar.getTargetElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.target;while(f.nodeType!=1)
f=f.parentNode;return f;};Calendar.stopEvent=function(ev){ev||(ev=window.event);if(Calendar.is_ie){ev.cancelBubble=true;ev.returnValue=false;}else{ev.preventDefault();ev.stopPropagation();}
return false;};Calendar.addEvent=function(el,evname,func){if(el.attachEvent){el.attachEvent("on"+evname,func);}else if(el.addEventListener){el.addEventListener(evname,func,true);}else{el["on"+evname]=func;}};Calendar.removeEvent=function(el,evname,func){if(el.detachEvent){el.detachEvent("on"+evname,func);}else if(el.removeEventListener){el.removeEventListener(evname,func,true);}else{el["on"+evname]=null;}};Calendar.createElement=function(type,parent){var el=null;if(document.createElementNS){el=document.createElementNS("http://www.w3.org/1999/xhtml",type);}else{el=document.createElement(type);}
if(typeof parent!="undefined"){parent.appendChild(el);}
return el;};Calendar._add_evs=function(el){with(Calendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true);}}};Calendar.findMonth=function(el){if(typeof el.month!="undefined"){return el;}else if(typeof el.parentNode.month!="undefined"){return el.parentNode;}
return null;};Calendar.findYear=function(el){if(typeof el.year!="undefined"){return el;}else if(typeof el.parentNode.year!="undefined"){return el.parentNode;}
return null;};Calendar.showMonthsCombo=function(){var cal=Calendar._C;if(!cal){return false;}
var cal=cal;var cd=cal.activeDiv;var mc=cal.monthsCombo;if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}
if(cal.activeMonth){Calendar.removeClass(cal.activeMonth,"active");}
var mon=cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];Calendar.addClass(mon,"active");cal.activeMonth=mon;var s=mc.style;s.display="block";if(cd.navtype<0)
s.left=cd.offsetLeft+"px";else{var mcw=mc.offsetWidth;if(typeof mcw=="undefined")
mcw=50;s.left=(cd.offsetLeft+cd.offsetWidth-mcw)+"px";}
s.top=(cd.offsetTop+cd.offsetHeight)+"px";};Calendar.showYearsCombo=function(fwd){var cal=Calendar._C;if(!cal){return false;}
var cal=cal;var cd=cal.activeDiv;var yc=cal.yearsCombo;if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}
if(cal.activeYear){Calendar.removeClass(cal.activeYear,"active");}
cal.activeYear=null;var Y=cal.date.getFullYear()+(fwd?1:-1);var yr=yc.firstChild;var show=false;for(var i=12;i>0;--i){if(Y>=cal.minYear&&Y<=cal.maxYear){yr.innerHTML=Y;yr.year=Y;yr.style.display="block";show=true;}else{yr.style.display="none";}
yr=yr.nextSibling;Y+=fwd?cal.yearStep:-cal.yearStep;}
if(show){var s=yc.style;s.display="block";if(cd.navtype<0)
s.left=cd.offsetLeft+"px";else{var ycw=yc.offsetWidth;if(typeof ycw=="undefined")
ycw=50;s.left=(cd.offsetLeft+cd.offsetWidth-ycw)+"px";}
s.top=(cd.offsetTop+cd.offsetHeight)+"px";}};Calendar.tableMouseUp=function(ev){var cal=Calendar._C;if(!cal){return false;}
if(cal.timeout){clearTimeout(cal.timeout);}
var el=cal.activeDiv;if(!el){return false;}
var target=Calendar.getTargetElement(ev);ev||(ev=window.event);Calendar.removeClass(el,"active");if(target==el||target.parentNode==el){Calendar.cellClick(el,ev);}
var mon=Calendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}else{var year=Calendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}}
with(Calendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();_C=null;return stopEvent(ev);}};Calendar.tableMouseOver=function(ev){var cal=Calendar._C;if(!cal){return;}
var el=cal.activeDiv;var target=Calendar.getTargetElement(ev);if(target==el||target.parentNode==el){Calendar.addClass(el,"hilite active");Calendar.addClass(el.parentNode,"rowhilite");}else{if(typeof el.navtype=="undefined"||(el.navtype!=50&&(el.navtype==0||Math.abs(el.navtype)>2)))
Calendar.removeClass(el,"active");Calendar.removeClass(el,"hilite");Calendar.removeClass(el.parentNode,"rowhilite");}
ev||(ev=window.event);if(el.navtype==50&&target!=el){var pos=Calendar.getAbsolutePos(el);var w=el.offsetWidth;var x=ev.clientX;var dx;var decrease=true;if(x>pos.x+w){dx=x-pos.x-w;decrease=false;}else
dx=pos.x-x;if(dx<0)dx=0;var range=el._range;var current=el._current;var count=Math.floor(dx/10)%range.length;for(var i=range.length;--i>=0;)
if(range[i]==current)
break;while(count-->0)
if(decrease){if(--i<0)
i=range.length-1;}else if(++i>=range.length)
i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();}
var mon=Calendar.findMonth(target);if(mon){if(mon.month!=cal.date.getMonth()){if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}
Calendar.addClass(mon,"hilite");cal.hilitedMonth=mon;}else if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}}else{if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}
var year=Calendar.findYear(target);if(year){if(year.year!=cal.date.getFullYear()){if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}
Calendar.addClass(year,"hilite");cal.hilitedYear=year;}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}
return Calendar.stopEvent(ev);};Calendar.tableMouseDown=function(ev){if(Calendar.getTargetElement(ev)==Calendar.getElement(ev)){return Calendar.stopEvent(ev);}};Calendar.calDragIt=function(ev){var cal=Calendar._C;if(!(cal&&cal.dragging)){return false;}
var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posX=ev.pageX;posY=ev.pageY;}
cal.hideShowCovered();var st=cal.element.style;st.left=(posX-cal.xOffs)+"px";st.top=(posY-cal.yOffs)+"px";return Calendar.stopEvent(ev);};Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal){return false;}
cal.dragging=false;with(Calendar){removeEvent(document,"mousemove",calDragIt);removeEvent(document,"mouseup",calDragEnd);tableMouseUp(ev);}
cal.hideShowCovered();};Calendar.dayMouseDown=function(ev){var el=Calendar.getElement(ev);if(el.disabled){return false;}
var cal=el.calendar;cal.activeDiv=el;Calendar._C=cal;if(el.navtype!=300)with(Calendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver);}else
addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver);addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp);}else if(cal.isPopup){cal._dragStart(ev);}
if(el.navtype==-1||el.navtype==1){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout("Calendar.showMonthsCombo()",250);}else if(el.navtype==-2||el.navtype==2){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250);}else{cal.timeout=null;}
return Calendar.stopEvent(ev);};Calendar.dayMouseDblClick=function(ev){Calendar.cellClick(Calendar.getElement(ev),ev||window.event);if(Calendar.is_ie){document.selection.empty();}};Calendar.dayMouseOver=function(ev){var el=Calendar.getElement(ev);if(Calendar.isRelated(el,ev)||Calendar._C||el.disabled){return false;}
if(el.ttip){if(el.ttip.substr(0,1)=="_"){el.ttip=el.caldate.print(el.calendar.ttDateFormat)+el.ttip.substr(1);}
el.calendar.tooltips.innerHTML=el.ttip;}
if(el.navtype!=300){Calendar.addClass(el,"hilite");if(el.caldate){Calendar.addClass(el.parentNode,"rowhilite");}}
return Calendar.stopEvent(ev);};Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled)
return false;removeClass(el,"hilite");if(el.caldate)
removeClass(el.parentNode,"rowhilite");if(el.calendar)
el.calendar.tooltips.innerHTML=_TT["SEL_DATE"];return stopEvent(ev);}};Calendar.cellClick=function(el,ev){var cal=el.calendar;var closing=false;var newdate=false;var date=null;if(typeof el.navtype=="undefined"){if(cal.currentDateEl){Calendar.removeClass(cal.currentDateEl,"selected");Calendar.addClass(el,"selected");closing=(cal.currentDateEl==el);if(!closing){cal.currentDateEl=el;}}
cal.date.setDateOnly(el.caldate);date=cal.date;var other_month=!(cal.dateClicked=!el.otherMonth);if(!other_month&&!cal.currentDateEl)
cal._toggleMultipleDate(new Date(date));else
newdate=!el.disabled;if(other_month)
cal._init(cal.firstDayOfWeek,date);}else{if(el.navtype==200){Calendar.removeClass(el,"hilite");cal.callCloseHandler();return;}
date=new Date(cal.date);if(el.navtype==0)
date.setDateOnly(new Date());cal.dateClicked=false;var year=date.getFullYear();var mon=date.getMonth();function setMonth(m){var day=date.getDate();var max=date.getMonthDays(m);if(day>max){date.setDate(max);}
date.setMonth(m);};switch(el.navtype){case 400:Calendar.removeClass(el,"hilite");var text=Calendar._TT["ABOUT"];if(typeof text!="undefined"){text+=cal.showsTime?Calendar._TT["ABOUT_TIME"]:"";}else{text="Help and about box text is not translated into this language.\n"+"If you know this language and you feel generous please update\n"+"the corresponding file in \"lang\" subdir to match calendar-en.js\n"+"and send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\n"+"Thank you!\n"+"http://dynarch.com/mishoo/calendar.epl\n";}
alert(text);return;case-2:if(year>cal.minYear){date.setFullYear(year-1);}
break;case-1:if(mon>0){setMonth(mon-1);}else if(year-->cal.minYear){date.setFullYear(year);setMonth(11);}
break;case 1:if(mon<11){setMonth(mon+1);}else if(year<cal.maxYear){date.setFullYear(year+1);setMonth(0);}
break;case 2:if(year<cal.maxYear){date.setFullYear(year+1);}
break;case 100:cal.setFirstDayOfWeek(el.fdow);return;case 50:var range=el._range;var current=el.innerHTML;for(var i=range.length;--i>=0;)
if(range[i]==current)
break;if(ev&&ev.shiftKey){if(--i<0)
i=range.length-1;}else if(++i>=range.length)
i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();return;case 0:if((typeof cal.getDateStatus=="function")&&cal.getDateStatus(date,date.getFullYear(),date.getMonth(),date.getDate())){return false;}
break;}
if(!date.equalsTo(cal.date)){cal.setDate(date);newdate=true;}else if(el.navtype==0)
newdate=closing=true;}
if(newdate){ev&&cal.callHandler();}
if(closing){Calendar.removeClass(el,"hilite");ev&&cal.callCloseHandler();}};Calendar.prototype.create=function(_par){var parent=null;if(!_par){parent=document.getElementsByTagName("body")[0];this.isPopup=true;}else{parent=_par;this.isPopup=false;}
this.date=this.dateStr?new Date(this.dateStr):new Date();var table=Calendar.createElement("table");this.table=table;table.cellSpacing=0;table.cellPadding=0;table.calendar=this;Calendar.addEvent(table,"mousedown",Calendar.tableMouseDown);var div=Calendar.createElement("div");this.element=div;div.className="calendar";if(this.isPopup){div.style.position="absolute";div.style.display="none";}
div.appendChild(table);var thead=Calendar.createElement("thead",table);var cell=null;var row=null;var cal=this;var hh=function(text,cs,navtype){cell=Calendar.createElement("td",row);cell.colSpan=cs;cell.className="button";if(navtype!=0&&Math.abs(navtype)<=2)
cell.className+=" nav";Calendar._add_evs(cell);cell.calendar=cal;cell.navtype=navtype;cell.innerHTML="<div unselectable='on'>"+text+"</div>";return cell;};row=Calendar.createElement("tr",thead);var title_length=6;(this.isPopup)&&--title_length;(this.weekNumbers)&&++title_length;hh(" ",1,400).ttip=Calendar._TT["INFO"];this.title=hh("",title_length,300);this.title.className="title";if(this.isPopup){this.title.ttip=Calendar._TT["DRAG_TO_MOVE"];this.title.style.cursor="move";hh("&#x00d7;",1,200).ttip=Calendar._TT["CLOSE"];}
row=Calendar.createElement("tr",thead);row.className="headrow";this._nav_py=hh("&#x00ab;",1,-2);this._nav_py.ttip=Calendar._TT["PREV_YEAR"];this._nav_pm=hh("&#x2039;",1,-1);this._nav_pm.ttip=Calendar._TT["PREV_MONTH"];this._nav_now=hh(Calendar._TT["TODAY"],this.weekNumbers?4:3,0);this._nav_now.ttip=Calendar._TT["GO_TODAY"];this._nav_nm=hh("&#x203a;",1,1);this._nav_nm.ttip=Calendar._TT["NEXT_MONTH"];this._nav_ny=hh("&#x00bb;",1,2);this._nav_ny.ttip=Calendar._TT["NEXT_YEAR"];row=Calendar.createElement("tr",thead);row.className="daynames";if(this.weekNumbers){cell=Calendar.createElement("td",row);cell.className="name wn";cell.innerHTML=Calendar._TT["WK"];}
for(var i=7;i>0;--i){cell=Calendar.createElement("td",row);if(!i){cell.navtype=100;cell.calendar=this;Calendar._add_evs(cell);}}
this.firstdayname=(this.weekNumbers)?row.firstChild.nextSibling:row.firstChild;this._displayWeekdays();var tbody=Calendar.createElement("tbody",table);this.tbody=tbody;for(i=6;i>0;--i){row=Calendar.createElement("tr",tbody);if(this.weekNumbers){cell=Calendar.createElement("td",row);}
for(var j=7;j>0;--j){cell=Calendar.createElement("td",row);cell.calendar=this;Calendar._add_evs(cell);}}
if(this.showsTime){row=Calendar.createElement("tr",tbody);row.className="time";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;cell.innerHTML=Calendar._TT["TIME"]||"&nbsp;";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=this.weekNumbers?4:3;(function(){function makeTimePart(className,init,range_start,range_end){var part=Calendar.createElement("span",cell);part.className=className;part.innerHTML=init;part.calendar=cal;part.ttip=Calendar._TT["TIME_PART"];part.navtype=50;part._range=[];if(typeof range_start!="number")
part._range=range_start;else{for(var i=range_start;i<=range_end;++i){var txt;if(i<10&&range_end>=10)txt='0'+i;else txt=''+i;part._range[part._range.length]=txt;}}
Calendar._add_evs(part);return part;};var hrs=cal.date.getHours();var mins=cal.date.getMinutes();var t12=!cal.time24;var pm=(hrs>12);if(t12&&pm)hrs-=12;var H=makeTimePart("hour",hrs,t12?1:0,t12?12:23);var span=Calendar.createElement("span",cell);span.innerHTML=":";span.className="colon";var M=makeTimePart("minute",mins,0,59);var AP=null;cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;if(t12)
AP=makeTimePart("ampm",pm?"pm":"am",["am","pm"]);else
cell.innerHTML="&nbsp;";cal.onSetTime=function(){var pm,hrs=this.date.getHours(),mins=this.date.getMinutes();if(t12){pm=(hrs>=12);if(pm)hrs-=12;if(hrs==0)hrs=12;AP.innerHTML=pm?"pm":"am";}
H.innerHTML=(hrs<10)?("0"+hrs):hrs;M.innerHTML=(mins<10)?("0"+mins):mins;};cal.onUpdateTime=function(){var date=this.date;var h=parseInt(H.innerHTML,10);if(t12){if(/pm/i.test(AP.innerHTML)&&h<12)
h+=12;else if(/am/i.test(AP.innerHTML)&&h==12)
h=0;}
var d=date.getDate();var m=date.getMonth();var y=date.getFullYear();date.setHours(h);date.setMinutes(parseInt(M.innerHTML,10));date.setFullYear(y);date.setMonth(m);date.setDate(d);this.dateClicked=false;this.callHandler();};})();}else{this.onSetTime=this.onUpdateTime=function(){};}
var tfoot=Calendar.createElement("tfoot",table);row=Calendar.createElement("tr",tfoot);row.className="footrow";cell=hh(Calendar._TT["SEL_DATE"],this.weekNumbers?8:7,300);cell.className="ttip";if(this.isPopup){cell.ttip=Calendar._TT["DRAG_TO_MOVE"];cell.style.cursor="move";}
this.tooltips=cell;div=Calendar.createElement("div",this.element);this.monthsCombo=div;div.className="combo";for(i=0;i<Calendar._MN.length;++i){var mn=Calendar.createElement("div");mn.className=Calendar.is_ie?"label-IEfix":"label";mn.month=i;mn.innerHTML=Calendar._SMN[i];div.appendChild(mn);}
div=Calendar.createElement("div",this.element);this.yearsCombo=div;div.className="combo";for(i=12;i>0;--i){var yr=Calendar.createElement("div");yr.className=Calendar.is_ie?"label-IEfix":"label";div.appendChild(yr);}
this._init(this.firstDayOfWeek,this.date);parent.appendChild(this.element);};Calendar._keyEvent=function(ev){var cal=window._dynarch_popupCalendar;if(!cal||cal.multiple)
return false;(Calendar.is_ie)&&(ev=window.event);var act=(Calendar.is_ie||ev.type=="keypress"),K=ev.keyCode;if(ev.ctrlKey){switch(K){case 37:act&&Calendar.cellClick(cal._nav_pm);break;case 38:act&&Calendar.cellClick(cal._nav_py);break;case 39:act&&Calendar.cellClick(cal._nav_nm);break;case 40:act&&Calendar.cellClick(cal._nav_ny);break;default:return false;}}else switch(K){case 32:Calendar.cellClick(cal._nav_now);break;case 27:act&&cal.callCloseHandler();break;case 37:case 38:case 39:case 40:if(act){var prev,x,y,ne,el,step;prev=K==37||K==38;step=(K==37||K==39)?1:7;function setVars(){el=cal.currentDateEl;var p=el.pos;x=p&15;y=p>>4;ne=cal.ar_days[y][x];};setVars();function prevMonth(){var date=new Date(cal.date);date.setDate(date.getDate()-step);cal.setDate(date);};function nextMonth(){var date=new Date(cal.date);date.setDate(date.getDate()+step);cal.setDate(date);};while(1){switch(K){case 37:if(--x>=0)
ne=cal.ar_days[y][x];else{x=6;K=38;continue;}
break;case 38:if(--y>=0)
ne=cal.ar_days[y][x];else{prevMonth();setVars();}
break;case 39:if(++x<7)
ne=cal.ar_days[y][x];else{x=0;K=40;continue;}
break;case 40:if(++y<cal.ar_days.length)
ne=cal.ar_days[y][x];else{nextMonth();setVars();}
break;}
break;}
if(ne){if(!ne.disabled)
Calendar.cellClick(ne);else if(prev)
prevMonth();else
nextMonth();}}
break;case 13:if(act)
Calendar.cellClick(cal.currentDateEl,ev);break;default:return false;}
return Calendar.stopEvent(ev);};Calendar.prototype._init=function(firstDayOfWeek,date){var today=new Date(),TY=today.getFullYear(),TM=today.getMonth(),TD=today.getDate();this.table.style.visibility="hidden";var year=date.getFullYear();if(year<this.minYear){year=this.minYear;date.setFullYear(year);}else if(year>this.maxYear){year=this.maxYear;date.setFullYear(year);}
this.firstDayOfWeek=firstDayOfWeek;this.date=new Date(date);var month=date.getMonth();var mday=date.getDate();var no_days=date.getMonthDays();date.setDate(1);var day1=(date.getDay()-this.firstDayOfWeek)%7;if(day1<0)
day1+=7;date.setDate(-day1);date.setDate(date.getDate()+1);var row=this.tbody.firstChild;var MN=Calendar._SMN[month];var ar_days=this.ar_days=new Array();var weekend=Calendar._TT["WEEKEND"];var dates=this.multiple?(this.datesCells={}):null;for(var i=0;i<6;++i,row=row.nextSibling){var cell=row.firstChild;if(this.weekNumbers){cell.className="day wn";cell.innerHTML=date.getWeekNumber();cell=cell.nextSibling;}
row.className="daysrow";var hasdays=false,iday,dpos=ar_days[i]=[];for(var j=0;j<7;++j,cell=cell.nextSibling,date.setDate(iday+1)){iday=date.getDate();var wday=date.getDay();cell.className="day";cell.pos=i<<4|j;dpos[j]=cell;var current_month=(date.getMonth()==month);if(!current_month){if(this.showsOtherMonths){cell.className+=" othermonth";cell.otherMonth=true;}else{cell.className="emptycell";cell.innerHTML="&nbsp;";cell.disabled=true;continue;}}else{cell.otherMonth=false;hasdays=true;}
cell.disabled=false;cell.innerHTML=this.getDateText?this.getDateText(date,iday):iday;if(dates)
dates[date.print("%Y%m%d")]=cell;if(this.getDateStatus){var status=this.getDateStatus(date,year,month,iday);if(this.getDateToolTip){var toolTip=this.getDateToolTip(date,year,month,iday);if(toolTip)
cell.title=toolTip;}
if(status===true){cell.className+=" disabled";cell.disabled=true;}else{if(/disabled/i.test(status))
cell.disabled=true;cell.className+=" "+status;}}
if(!cell.disabled){cell.caldate=new Date(date);cell.ttip="_";if(!this.multiple&&current_month&&iday==mday&&this.hiliteToday){cell.className+=" selected";this.currentDateEl=cell;}
if(date.getFullYear()==TY&&date.getMonth()==TM&&iday==TD){cell.className+=" today";cell.ttip+=Calendar._TT["PART_TODAY"];}
if(weekend.indexOf(wday.toString())!=-1)
cell.className+=cell.otherMonth?" oweekend":" weekend";}}
if(!(hasdays||this.showsOtherMonths))
row.className="emptyrow";}
this.title.innerHTML=Calendar._MN[month]+", "+year;this.onSetTime();this.table.style.visibility="visible";this._initMultipleDates();};Calendar.prototype._initMultipleDates=function(){if(this.multiple){for(var i in this.multiple){var cell=this.datesCells[i];var d=this.multiple[i];if(!d)
continue;if(cell)
cell.className+=" selected";}}};Calendar.prototype._toggleMultipleDate=function(date){if(this.multiple){var ds=date.print("%Y%m%d");var cell=this.datesCells[ds];if(cell){var d=this.multiple[ds];if(!d){Calendar.addClass(cell,"selected");this.multiple[ds]=date;}else{Calendar.removeClass(cell,"selected");delete this.multiple[ds];}}}};Calendar.prototype.setDateToolTipHandler=function(unaryFunction){this.getDateToolTip=unaryFunction;};Calendar.prototype.setDate=function(date){if(!date.equalsTo(this.date)){this._init(this.firstDayOfWeek,date);}};Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date);};Calendar.prototype.setFirstDayOfWeek=function(firstDayOfWeek){this._init(firstDayOfWeek,this.date);this._displayWeekdays();};Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(unaryFunction){this.getDateStatus=unaryFunction;};Calendar.prototype.setRange=function(a,z){this.minYear=a;this.maxYear=z;};Calendar.prototype.callHandler=function(){if(this.onSelected){this.onSelected(this,this.date.print(this.dateFormat));}};Calendar.prototype.callCloseHandler=function(){if(this.onClose){this.onClose(this);}
this.hideShowCovered();};Calendar.prototype.destroy=function(){var el=this.element.parentNode;el.removeChild(this.element);Calendar._C=null;window._dynarch_popupCalendar=null;};Calendar.prototype.reparent=function(new_parent){var el=this.element;el.parentNode.removeChild(el);new_parent.appendChild(el);};Calendar._checkCalendar=function(ev){var calendar=window._dynarch_popupCalendar;if(!calendar){return false;}
var el=Calendar.is_ie?Calendar.getElement(ev):Calendar.getTargetElement(ev);for(;el!=null&&el!=calendar.element;el=el.parentNode);if(el==null){window._dynarch_popupCalendar.callCloseHandler();return Calendar.stopEvent(ev);}};Calendar.prototype.show=function(){var rows=this.table.getElementsByTagName("tr");for(var i=rows.length;i>0;){var row=rows[--i];Calendar.removeClass(row,"rowhilite");var cells=row.getElementsByTagName("td");for(var j=cells.length;j>0;){var cell=cells[--j];Calendar.removeClass(cell,"hilite");Calendar.removeClass(cell,"active");}}
this.element.style.display="block";this.hidden=false;if(this.isPopup){window._dynarch_popupCalendar=this;Calendar.addEvent(document,"keydown",Calendar._keyEvent);Calendar.addEvent(document,"keypress",Calendar._keyEvent);Calendar.addEvent(document,"mousedown",Calendar._checkCalendar);}
this.hideShowCovered();};Calendar.prototype.hide=function(){if(this.isPopup){Calendar.removeEvent(document,"keydown",Calendar._keyEvent);Calendar.removeEvent(document,"keypress",Calendar._keyEvent);Calendar.removeEvent(document,"mousedown",Calendar._checkCalendar);}
this.element.style.display="none";this.hidden=true;this.hideShowCovered();};Calendar.prototype.showAt=function(x,y){var s=this.element.style;s.left=x+"px";s.top=y+"px";this.show();};Calendar.prototype.showAtElement=function(el,opts){var self=this;var p=Calendar.getAbsolutePos(el);if(!opts||typeof opts!="string"){this.showAt(p.x,p.y+el.offsetHeight);return true;}
function fixPosition(box){if(box.x<0)
box.x=0;if(box.y<0)
box.y=0;var cp=document.createElement("div");var s=cp.style;s.position="absolute";s.right=s.bottom=s.width=s.height="0px";document.body.appendChild(cp);var br=Calendar.getAbsolutePos(cp);document.body.removeChild(cp);if(Calendar.is_ie){br.y+=document.body.scrollTop;br.x+=document.body.scrollLeft;}else{br.y+=window.scrollY;br.x+=window.scrollX;}
var tmp=box.x+box.width-br.x;if(tmp>0)box.x-=tmp;tmp=box.y+box.height-br.y;if(tmp>0)box.y-=tmp;};this.element.style.display="block";Calendar.continuation_for_the_fucking_khtml_browser=function(){var w=self.element.offsetWidth;var h=self.element.offsetHeight;self.element.style.display="none";var valign=opts.substr(0,1);var halign="l";if(opts.length>1){halign=opts.substr(1,1);}
switch(valign){case"T":p.y-=h;break;case"B":p.y+=el.offsetHeight;break;case"C":p.y+=(el.offsetHeight-h)/2;break;case"t":p.y+=el.offsetHeight-h;break;case"b":break;}
switch(halign){case"L":p.x-=w;break;case"R":p.x+=el.offsetWidth;break;case"C":p.x+=(el.offsetWidth-w)/2;break;case"l":p.x+=el.offsetWidth-w;break;case"r":break;}
p.width=w;p.height=h+40;self.monthsCombo.style.display="none";fixPosition(p);self.showAt(p.x,p.y);};if(Calendar.is_khtml)
setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()",10);else
Calendar.continuation_for_the_fucking_khtml_browser();};Calendar.prototype.setDateFormat=function(str){this.dateFormat=str;};Calendar.prototype.setTtDateFormat=function(str){this.ttDateFormat=str;};Calendar.prototype.parseDate=function(str,fmt){if(!fmt)
fmt=this.dateFormat;this.setDate(Date.parseDate(str,fmt));};Calendar.prototype.hideShowCovered=function(){if(!Calendar.is_ie&&!Calendar.is_opera)
return;function getVisib(obj){var value=obj.style.visibility;if(!value){if(document.defaultView&&typeof(document.defaultView.getComputedStyle)=="function"){if(!Calendar.is_khtml)
value=document.defaultView.getComputedStyle(obj,"").getPropertyValue("visibility");else
value='';}else if(obj.currentStyle){value=obj.currentStyle.visibility;}else
value='';}
return value;};var tags=new Array("applet","iframe","select");var el=this.element;var p=Calendar.getAbsolutePos(el);var EX1=p.x;var EX2=el.offsetWidth+EX1;var EY1=p.y;var EY2=el.offsetHeight+EY1;for(var k=tags.length;k>0;){var ar=document.getElementsByTagName(tags[--k]);var cc=null;for(var i=ar.length;i>0;){cc=ar[--i];p=Calendar.getAbsolutePos(cc);var CX1=p.x;var CX2=cc.offsetWidth+CX1;var CY1=p.y;var CY2=cc.offsetHeight+CY1;if(this.hidden||(CX1>EX2)||(CX2<EX1)||(CY1>EY2)||(CY2<EY1)){if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}
cc.style.visibility=cc.__msh_save_visibility;}else{if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}
cc.style.visibility="hidden";}}}};Calendar.prototype._displayWeekdays=function(){var fdow=this.firstDayOfWeek;var cell=this.firstdayname;var weekend=Calendar._TT["WEEKEND"];for(var i=0;i<7;++i){cell.className="day name";var realday=(i+fdow)%7;if(i){cell.ttip=Calendar._TT["DAY_FIRST"].replace("%s",Calendar._DN[realday]);cell.navtype=100;cell.calendar=this;cell.fdow=realday;Calendar._add_evs(cell);}
if(weekend.indexOf(realday.toString())!=-1){Calendar.addClass(cell,"weekend");}
cell.innerHTML=Calendar._SDN[(i+fdow)%7];cell=cell.nextSibling;}};Calendar.prototype._hideCombos=function(){this.monthsCombo.style.display="none";this.yearsCombo.style.display="none";};Calendar.prototype._dragStart=function(ev){if(this.dragging){return;}
this.dragging=true;var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posY=ev.clientY+window.scrollY;posX=ev.clientX+window.scrollX;}
var st=this.element.style;this.xOffs=posX-parseInt(st.left);this.yOffs=posY-parseInt(st.top);with(Calendar){addEvent(document,"mousemove",calDragIt);addEvent(document,"mouseup",calDragEnd);}};Date._MD=new Array(31,28,31,30,31,30,31,31,30,31,30,31);Date.SECOND=1000;Date.MINUTE=60*Date.SECOND;Date.HOUR=60*Date.MINUTE;Date.DAY=24*Date.HOUR;Date.WEEK=7*Date.DAY;Date.parseDate=function(str,fmt){var today=new Date();var y=0;var m=-1;var d=0;var a=str.split(/\W+/);var b=fmt.match(/%./g);var i=0,j=0;var hr=0;var min=0;for(i=0;i<a.length;++i){if(!a[i])
continue;switch(b[i]){case"%d":case"%e":d=parseInt(a[i],10);break;case"%m":m=parseInt(a[i],10)-1;break;case"%Y":case"%y":y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);break;case"%b":case"%B":for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break;}}
break;case"%H":case"%I":case"%k":case"%l":hr=parseInt(a[i],10);break;case"%P":case"%p":if(/pm/i.test(a[i])&&hr<12)
hr+=12;else if(/am/i.test(a[i])&&hr>=12)
hr-=12;break;case"%M":min=parseInt(a[i],10);break;}}
if(isNaN(y))y=today.getFullYear();if(isNaN(m))m=today.getMonth();if(isNaN(d))d=today.getDate();if(isNaN(hr))hr=today.getHours();if(isNaN(min))min=today.getMinutes();if(y!=0&&m!=-1&&d!=0)
return new Date(y,m,d,hr,min,0);y=0;m=-1;d=0;for(i=0;i<a.length;++i){if(a[i].search(/[a-zA-Z]+/)!=-1){var t=-1;for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){t=j;break;}}
if(t!=-1){if(m!=-1){d=m+1;}
m=t;}}else if(parseInt(a[i],10)<=12&&m==-1){m=a[i]-1;}else if(parseInt(a[i],10)>31&&y==0){y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);}else if(d==0){d=a[i];}}
if(y==0)
y=today.getFullYear();if(m!=-1&&d!=0)
return new Date(y,m,d,hr,min,0);return today;};Date.prototype.getMonthDays=function(month){var year=this.getFullYear();if(typeof month=="undefined"){month=this.getMonth();}
if(((0==(year%4))&&((0!=(year%100))||(0==(year%400))))&&month==1){return 29;}else{return Date._MD[month];}};Date.prototype.getDayOfYear=function(){var now=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var then=new Date(this.getFullYear(),0,0,0,0,0);var time=now-then;return Math.floor(time/Date.DAY);};Date.prototype.getWeekNumber=function(){var d=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var DoW=d.getDay();d.setDate(d.getDate()-(DoW+6)%7+3);var ms=d.valueOf();d.setMonth(0);d.setDate(4);return Math.round((ms-d.valueOf())/(7*864e5))+1;};Date.prototype.equalsTo=function(date){return((this.getFullYear()==date.getFullYear())&&(this.getMonth()==date.getMonth())&&(this.getDate()==date.getDate())&&(this.getHours()==date.getHours())&&(this.getMinutes()==date.getMinutes()));};Date.prototype.setDateOnly=function(date){var tmp=new Date(date);this.setDate(1);this.setFullYear(tmp.getFullYear());this.setMonth(tmp.getMonth());this.setDate(tmp.getDate());};Date.prototype.print=function(str){var m=this.getMonth();var d=this.getDate();var y=this.getFullYear();var wn=this.getWeekNumber();var w=this.getDay();var s={};var hr=this.getHours();var pm=(hr>=12);var ir=(pm)?(hr-12):hr;var dy=this.getDayOfYear();if(ir==0)
ir=12;var min=this.getMinutes();var sec=this.getSeconds();s["%a"]=Calendar._SDN[w];s["%A"]=Calendar._DN[w];s["%b"]=Calendar._SMN[m];s["%B"]=Calendar._MN[m];s["%C"]=1+Math.floor(y/100);s["%d"]=(d<10)?("0"+d):d;s["%e"]=d;s["%H"]=(hr<10)?("0"+hr):hr;s["%I"]=(ir<10)?("0"+ir):ir;s["%j"]=(dy<100)?((dy<10)?("00"+dy):("0"+dy)):dy;s["%k"]=hr;s["%l"]=ir;s["%m"]=(m<9)?("0"+(1+m)):(1+m);s["%M"]=(min<10)?("0"+min):min;s["%n"]="\n";s["%p"]=pm?"PM":"AM";s["%P"]=pm?"pm":"am";s["%s"]=Math.floor(this.getTime()/1000);s["%S"]=(sec<10)?("0"+sec):sec;s["%t"]="\t";s["%U"]=s["%W"]=s["%V"]=(wn<10)?("0"+wn):wn;s["%u"]=w+1;s["%w"]=w;s["%y"]=(''+y).substr(2,2);s["%Y"]=y;s["%%"]="%";var re=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml)
return str.replace(re,function(par){return s[par]||par;});var a=str.match(re);for(var i=0;i<a.length;i++){var tmp=s[a[i]];if(tmp){re=new RegExp(a[i],'g');str=str.replace(re,tmp);}}
return str;};if(!Date.prototype.__msh_oldSetFullYear){Date.prototype.__msh_oldSetFullYear=Date.prototype.setFullYear;Date.prototype.setFullYear=function(y){var d=new Date(this);d.__msh_oldSetFullYear(y);if(d.getMonth()!=this.getMonth())
this.setDate(28);this.__msh_oldSetFullYear(y);}}
window._dynarch_popupCalendar=null;Calendar._DN=new Array
("Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag","Söndag");Calendar._SDN=new Array
("Sön","Mån","Tis","Ons","Tor","Fre","Lör","Sön");Calendar._FD=1;Calendar._MN=new Array
("Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December");Calendar._SMN=new Array
("Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec");Calendar._TT={};Calendar._TT["INFO"]="Om kalendern";Calendar._TT["ABOUT"]="DHTML Date/Time Selector\n"+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n"+"For latest version visit: http://www.dynarch.com/projects/calendar/\n"+"Distributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details."+"\n\n"+"Date selection:\n"+"- Use the \xab, \xbb buttons to select year\n"+"- Use the "+String.fromCharCode(0x2039)+", "+String.fromCharCode(0x203a)+" buttons to select month\n"+"- Hold mouse button on any of the above buttons for faster selection.";Calendar._TT["ABOUT_TIME"]="\n\n"+"Time selection:\n"+"- Click on any of the time parts to increase it\n"+"- or Shift-click to decrease it\n"+"- or click and drag for faster selection.";Calendar._TT["PREV_YEAR"]="Föreg. år";Calendar._TT["PREV_MONTH"]="Föreg. månad (håll för lista)";Calendar._TT["GO_TODAY"]="G� till idag";Calendar._TT["NEXT_MONTH"]="Nästa månad (håll för lista)";Calendar._TT["NEXT_YEAR"]="Nästa år (hold for menu)";Calendar._TT["SEL_DATE"]="Välj datum";Calendar._TT["DRAG_TO_MOVE"]="Drag för att flytta";Calendar._TT["PART_TODAY"]=" (idag)";Calendar._TT["DAY_FIRST"]="Visa %s först";Calendar._TT["WEEKEND"]="6,0";Calendar._TT["CLOSE"]="Stäng";Calendar._TT["TODAY"]="Idag";Calendar._TT["TIME_PART"]="(Shift-)klicka eller dra med musen för att ändra värde";Calendar._TT["DEF_DATE_FORMAT"]="%Y-%m-%d";Calendar._TT["TT_DATE_FORMAT"]="%a, %b %e";Calendar._TT["WK"]="v";Calendar._TT["TIME"]="kl:";Calendar.setup=function(params){function param_default(pname,def){if(typeof params[pname]=="undefined"){params[pname]=def;}};param_default("inputField",null);param_default("displayArea",null);param_default("button",null);param_default("eventName","click");param_default("ifFormat","%Y/%m/%d");param_default("daFormat","%Y/%m/%d");param_default("singleClick",true);param_default("disableFunc",null);param_default("dateStatusFunc",params["disableFunc"]);param_default("dateText",null);param_default("firstDay",null);param_default("align","Br");param_default("range",[1900,2999]);param_default("weekNumbers",true);param_default("flat",null);param_default("flatCallback",null);param_default("onSelect",null);param_default("onClose",null);param_default("onUpdate",null);param_default("date",null);param_default("showsTime",false);param_default("timeFormat","24");param_default("electric",true);param_default("step",2);param_default("position",null);param_default("cache",false);param_default("showOthers",false);param_default("multiple",null);var tmp=["inputField","displayArea","button"];for(var i in tmp){if(typeof params[tmp[i]]=="string"){params[tmp[i]]=document.getElementById(params[tmp[i]]);}}
if(!(params.flat||params.multiple||params.inputField||params.displayArea||params.button)){alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");return false;}
function onSelect(cal){var p=cal.params;var update=(cal.dateClicked||p.electric);if(update&&p.inputField){p.inputField.value=cal.date.print(p.ifFormat);if(typeof p.inputField.onchange=="function")
p.inputField.onchange();}
if(update&&p.displayArea)
p.displayArea.innerHTML=cal.date.print(p.daFormat);if(update&&typeof p.onUpdate=="function")
p.onUpdate(cal);if(update&&p.flat){if(typeof p.flatCallback=="function")
p.flatCallback(cal);}
if(update&&p.singleClick&&cal.dateClicked)
cal.callCloseHandler();};if(params.flat!=null){if(typeof params.flat=="string")
params.flat=document.getElementById(params.flat);if(!params.flat){alert("Calendar.setup:\n  Flat specified but can't find parent.");return false;}
var cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect);cal.showsOtherMonths=params.showOthers;cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.params=params;cal.weekNumbers=params.weekNumbers;cal.setRange(params.range[0],params.range[1]);cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;if(params.ifFormat){cal.setDateFormat(params.ifFormat);}
if(params.inputField&&typeof params.inputField.value=="string"){cal.parseDate(params.inputField.value);}
cal.create(params.flat);cal.show();return false;}
var triggerEl=params.button||params.displayArea||params.inputField;triggerEl["on"+params.eventName]=function(){var dateEl=params.inputField||params.displayArea;var dateFmt=params.inputField?params.ifFormat:params.daFormat;var mustCreate=false;var cal=window.calendar;if(dateEl)
params.date=Date.parseDate(dateEl.value||dateEl.innerHTML,dateFmt);if(!(cal&&params.cache)){window.calendar=cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect,params.onClose||function(cal){cal.hide();});cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.weekNumbers=params.weekNumbers;mustCreate=true;}else{if(params.date)
cal.setDate(params.date);cal.hide();}
if(params.multiple){cal.multiple={};for(var i=params.multiple.length;--i>=0;){var d=params.multiple[i];var ds=d.print("%Y%m%d");cal.multiple[ds]=d;}}
cal.showsOtherMonths=params.showOthers;cal.yearStep=params.step;cal.setRange(params.range[0],params.range[1]);cal.params=params;cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;cal.setDateFormat(dateFmt);if(mustCreate)
cal.create();cal.refresh();if(!params.position)
cal.showAtElement(params.button||params.displayArea||params.inputField,params.align);else
cal.showAt(params.position[0],params.position[1]);return false;};return cal;};