LowPro={};LowPro.Version='0.2';if(!Element.addMethods)Element.addMethods=function(o){Object.extend(Element.Methods,o)};DOM={nextElement:function(a){a=$(a);while(a=a.nextSibling)if(a.nodeType==1)return $(a);return null},previousElement:function(a){a=$(a);while(a=a.previousSibling)if(a.nodeType==1)return $(a);return null},remove:function(a){return $(a).parentNode.removeChild(a)},insertAfter:function(a,b){return $(a).previousSibling.inserBefore(b)},replaceElement:function(a,b){$(a).parentNode.replaceChild(b,a);return b}};Element.addMethods(DOM);DOM.Builder={IE_TRANSLATIONS:{'class':'className','for':'htmlFor'},ieAttrSet:function(a,b,c){var d;if(d=this.IE_TRANSLATIONS[b])c[d]=a[b];else if(b=='style')c.style.cssText=a[b];else if(b.match(/^on/))c[b]=new Function(a[b]);else c.setAttribute(b,a[b])},tagFunc:function(b){return function(){var a,children;if(arguments.length>0){if(arguments[0].nodeName||typeof arguments[0]=="string")children=arguments;else{a=arguments[0];children=[].slice.call(arguments,1)}}return DOM.Builder.create(b,a,children)}},create:function(a,b,c){b=b||{};c=c||[];var d=navigator.userAgent.match(/MSIE/);var e=document.createElement((d&&b.name)?"<"+a+" name="+b.name+">":a);for(var f in b){if(typeof b[f]!='function'){if(d)this.ieAttrSet(b,b,e);else e.setAttribute(f,b[f])}}for(var i=0;i<c.length;i++){if(typeof c[i]=='string')c[i]=document.createTextNode(c[i]);e.appendChild(c[i])}return $(e)}};(function(){var a=("p|div|span|strong|em|img|table|tr|td|th|thead|tbody|tfoot|pre|code|"+"h1|h2|h3|h4|h5|h6|ul|ol|li|form|input|textarea|legend|fieldset|"+"select|option|blockquote|cite|br|hr|dd|dl|dt|address|a|button|abbr|acronym|"+"script|link|style|bdo|ins|del|object|param|col|colgroup|optgroup|caption|"+"label|dfn|kbd|samp|var").split("|");var b,i=0;while(b=a[i++])window['$'+b]=DOM.Builder.tagFunc(b)})();Object.extend(Event,{_domReady:function(){if(arguments.callee.done)return;arguments.callee.done=true;if(Event._timer)clearInterval(Event._timer);Event._readyCallbacks.each(function(f){f()});Event._readyCallbacks=null},onReady:function(f){if(!this._readyCallbacks){var a=this._domReady;if(a.done)return f();if(document.addEventListener)document.addEventListener("DOMContentLoaded",a,false);/*@cc_on@*//*@if(@_win32)document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");document.getElementById("__ie_onload").onreadystatechange=function(){if(this.readyState=="complete"){a()}};/*@end@*/if(/WebKit/i.test(navigator.userAgent)){this._timer=setInterval(function(){if(/loaded|complete/.test(document.readyState))a()},10)}Event.observe(window,'load',a);Event._readyCallbacks=[]}Event._readyCallbacks.push(f)}});Element.addMethods({observe:function(a,b,c){Event.observe(a,b,c)},stopObserving:function(a,b,c){Event.stopObserving(a,b,c)}});Object.extend(Event,{observe:function(a,b,c){a=$(a);if(!c.$$guid)c.$$guid=Event._guid++;if(!a.events)a.events={};var d=a.events[b];if(!d){d=a.events[b]={};if(a["on"+b]){d[0]=a["on"+b]}}d[c.$$guid]=c;a["on"+b]=Event._handleEvent;if(!Event.observers)Event.observers=[];Event.observers.push([a,name,c,false])},stopObserving:function(a,b,c){if(a.events&&a.events[b])delete a.events[b][c.$$guid]},_handleEvent:function(e){var a=true;e=e||Event._fixEvent(window.event);var b=this.events[e.type],el=$(this);for(var i in b){el.$$handleEvent=b[i];if(el.$$handleEvent(e)===false)a=false}return a},_fixEvent:function(e){e.preventDefault=Event._preventDefault;e.stopPropagation=Event._stopPropagation;return e},_preventDefault:function(){this.returnValue=false},_stopPropagation:function(){this.cancelBubble=true},_guid:1});Object.extend(Event,{trigger:function(b,c,d){b=$(b);d=d||{type:c};this.observers.each(function(a){if(a[0]==b&&a[1]==c)a[2].call(b,d)})}});Event.addBehavior=function(a){var b=this.addBehavior;Object.extend(b.rules,a);if(b.autoTrigger){this.onReady(b.load.bind(b))}Ajax.Responders.register({onComplete:function(){if(Event.addBehavior.reassignAfterAjax)setTimeout(function(){b.load()},10)}})};Object.extend(Event.addBehavior,{rules:{},cache:[],reassignAfterAjax:true,autoTrigger:true,load:function(){this.unload();for(var d in this.rules){var e=this.rules[d];var f=d.split(',');f.each(function(b){var c=b.split(/:(?=[a-z]+$)/),css=c[0],event=c[1];$$(css).each(function(a){if(event){$(a).observe(event,e);Event.addBehavior.cache.push([a,event,e])}else{if(!a.$$assigned||!a.$$assigned.include(e)){if(e.attach)e.attach(a);else e.call($(a));a.$$assigned=a.$$assigned||[];a.$$assigned.push(e)}}})})}},unload:function(){this.cache.each(function(c){Event.stopObserving.apply(Event,c)})}});Event.observe(window,'unload',Event.addBehavior.unload.bind(Event.addBehavior));Behavior={create:function(b){var c=function(a){this.element=$(a)};c.prototype.initialize=Prototype.K;Object.extend(c.prototype,b);Object.extend(c,Behavior.ClassMethods);return c},ClassMethods:{attach:function(a){var b=new this(a);b.initialize.apply(b);this._bindEvents(b);return b},_bindEvents:function(a){for(var b in a)if(b.match(/^on(.+)/)&&typeof a[b]=='function')a.element.observe(RegExp.$1,a[b].bindAsEventListener(a))}}};LowPro.SelectorLite=Class.create();LowPro.SelectorLite.prototype={initialize:function(a){this.results=[];this.selectors=[];this.index=0;for(var i=a.length-1;i>=0;i--){var b={tag:'*',id:null,classes:[]};var c=a[i];var d=c.length-1;do{var e=c.lastIndexOf("#");var f=c.lastIndexOf(".");var g=Math.max(e,f);if(g==-1)b.tag=c.toUpperCase();else if(e==-1||f==g)b.classes.push(c.substring(f+1));else if(!b.id)b.id=c.substring(e+1);c=c.substring(0,g)}while(g>0);this.selectors[i]=b}},get:function(a){this.findElements(a||document,this.index==(this.selectors.length-1));return this.results},findElements:function(d,e){var f=this.selectors[this.index],results=[],element;if(f.id){element=$(f.id);if(element&&(f.tag=='*'||element.tagName==f.tag)&&(element.childOf(d))){results=[element]}}else{results=$A(d.getElementsByTagName(f.tag))}if(f.classes.length==1){results=results.select(function(a){return $(a).hasClassName(f.classes[0])})}else if(f.classes.length>1){results=results.select(function(b){var c=$(b).classNames();return f.classes.all(function(a){return c.include(a)})})}if(e){this.results=this.results.concat(results)}else{++this.index;results.each(function(a){this.findElements(a,this.index==(this.selectors.length-1))}.bind(this))}}};LowPro.$$old=$$;LowPro.optimize$$=true;$$=function(a,b){if(LowPro.optimize$$==false||b||a.indexOf("[")>=0)return LowPro.$$old(a,b);return new LowPro.SelectorLite(a.split(/\s+/)).get()};