cal=Class.create();cal.prototype = {initialize: function(elem){this.c=$(elem);this.setBtts();this.setDrops();},setDrops:function(){$$('#'+this.c.id+' li.event').each(function(d){Event.observe(d,'mouseover',this.show.bindAsEventListener(d),false);Event.observe(d,'mouseout',this.hide.bindAsEventListener(d),false);},this);},setBtts:function(){this.month=this.c.down('div').id.split('_')[0];this.year=this.c.down('div').id.split('_')[1];Event.observe(this.c.down('a.prev'),"click",this.prev.bindAsEventListener(this),false);Event.observe(this.c.down('a.next'),"click",this.next.bindAsEventListener(this),false);},prev:function(){this.month--;if (this.month <= 0){this.year--;this.month=12;}this.update();},next:function(){this.month++;if(this.month>=13){this.year++;this.month=1;}this.update();},show:function(){e=this.down('ul');off=document.viewport.getWidth()-(this.viewportOffset()[0]+e.getWidth());if(off>=0){e.addClassName('left');}else{e.addClassName('right');}this.down('a').addClassName('hover');},hide:function(){e=this.down('ul');if(e.hasClassName('left')){e.removeClassName('left');}if(e.hasClassName('right')){e.removeClassName('right');}this.down('a').removeClassName('hover');},update:function(){obj=this;this.c.down('a.prev').stopObserving('click',this.prev);this.c.down('a.next').stopObserving('click', this.next);new Ajax.Updater(this.c,'ajax/calUpd.php',{parameters:{month: this.month,year:this.year},onComplete:function(){obj.setBtts();obj.setDrops();}});}}