(function(b,c){var d=Browser.ie6;var a=new Class({Implements:Options,options:{top:"auto",left:"auto",width:"auto",height:"auto",opacity:true,src:"javascript:false;"},initialize:function(f,e){if(!d){return}this.setOptions(e);this.element=c(f);var g=this.element.getFirst();if(!(g&&g.hasClass("bgiframe"))){this.element.grab(document.createElement(this.render()),"top")}},toPx:function(e){return isFinite(e)?e+"px":e},render:function(){var e=this.options;return'<iframe class="bgiframe" frameborder="0" tabindex="-1" src="'+e.src+'" style="display:block;position:absolute;z-index:-1;'+(e.opacity!==false?"filter:alpha(opacity='0');":"")+"top:"+(e.top=="auto"?"expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+'px')":this.toPx(e.top))+";left:"+(e.left=="auto"?"expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+'px')":this.toPx(e.left))+";width:"+(e.width=="auto"?"expression(this.parentNode.offsetWidth+'px')":this.toPx(e.width))+";height:"+(e.height=="auto"?"expression(this.parentNode.offsetHeight+'px')":this.toPx(e.height))+';"/>'}});Element.implement("bgiframe",function(e){if(d){new a(this,e)}return this})})(this,document.id||$);(function(e,f){var c=Browser;Object.append(Element.NativeEvents,{paste:2,input:2});Element.Events.paste={base:(c.opera||(c.firefox&&c.version<3))?"input":"paste",condition:function(h){this.fireEvent("paste",h,1);return false}};Element.Events.keyrepeat={base:(c.firefox||c.opera)?"keypress":"keydown",condition:Function.from(true)};var a=e.Meio||{};var g;var b={9:1,16:1,17:1,18:1,224:1,91:1,37:1,38:1,39:1,40:1};var d=function(h){return h.replace(/"/g,"&quot;").replace(/'/g,"&#39;")};a.Widget=new Class({initialize:function(){this.elements={}},addElement:function(h,i){this.elements[h]=i},addEventToElement:function(i,h,j){this.elements[i].addEvent(h,j.bind(this))},addEventsToElement:function(i,j){for(var h in j){this.addEventToElement(i,h,j[h])}},attach:function(){for(var h in this.elements){this.elements[h].attach()}},detach:function(){for(var h in this.elements){this.elements[h].detach()}},destroy:function(){for(var h in this.elements){this.elements[h]&&this.elements[h].destroy()}}});a.Autocomplete=new Class({Extends:a.Widget,Implements:[Options,Events],options:{delay:200,minChars:0,cacheLength:20,selectOnTab:true,maxVisibleItems:10,cacheType:"shared",filter:{},fieldOptions:{},listOptions:{},requestOptions:{},urlOptions:{}},initialize:function(h,k,i,j){this.parent();this.setOptions(i);this.active=0;this.filters=a.Autocomplete.Filter.get(this.options.filter);this.addElement("list",j||new a.Element.List(this.options.listOptions));this.addListEvents();this.addElement("field",new a.Element.Field(h,this.options.fieldOptions));this.addFieldEvents();this.addSelectEvents();this.attach();this.initCache();this.initData(k)},addFieldEvents:function(){this.addEventsToElement("field",{beforeKeyrepeat:function(j){this.active=1;var h=j.key,i=this.elements.list;if(h=="up"||h=="down"||(h=="enter"&&i.showing)){j.preventDefault()}},delayedKeyrepeat:function(j){var h=j.key,i=this.elements.field;i.keyPressControl[h]=true;switch(h){case"up":case"down":this.focusItem(h);break;case"enter":this.setInputValue();break;case"tab":if(this.options.selectOnTab){this.setInputValue()}i.keyPressControl[h]=false;break;case"esc":this.elements.list.hide();break;default:this.setupList()}this.oldInputedText=i.node.get("value")},keyup:function(i){var h=this.elements.field;if(!b[i.code]){if(!h.keyPressControl[i.key]){this.setupList()}h.keyPressControl[i.key]=false}},focus:function(){this.active=1;var h=this.elements.list;h.focusedItem=null;h.positionNextTo(this.elements.field.node)},click:function(){if(++this.active>2&&!this.elements.list.showing){this.forceSetupList()}},blur:function(i){this.active=0;var h=this.elements.list;if(h.shouldNotBlur){this.elements.field.node.setCaretPosition("end");h.shouldNotBlur=false;if(h.focusedItem){h.hide()}}else{h.hide()}},paste:function(){return this.setupList()}})},addListEvents:function(){this.addEventsToElement("list",{mousedown:function(h){if(this.active&&!h.dontHide){this.setInputValue()}}})},update:function(){var p=this.data,r=this.elements.list;var t=p.getKey(),l=this.cache.get(t),q;if(l){q=l.html;this.itemsData=l.data}else{p=p.get();var v=[],u=[],m=r.options.classes,w=this.inputedText;var j=this.filters.filter,h=this.filters.formatMatch,s=this.filters.formatItem;for(var x,o=0,k=0;x=p[o++];){if(j.call(this,w,x)){v.push('<li title="',d(h.call(this,w,x)),'" data-index="',k,'" class="',(k%2?m.even:m.odd),'">',s.call(this,w,x,k),"</li>");u.push(x);k++}}q=v.join("");this.cache.set(t,{html:q,data:u});this.itemsData=u}r.focusedItem=null;this.fireEvent("deselect",[this.elements]);r.list.set("html",q);if(this.options.maxVisibleItems){r.applyMaxHeight(this.options.maxVisibleItems)}},setupList:function(){this.inputedText=this.elements.field.node.get("value");if(this.inputedText!==this.oldInputedText){this.forceSetupList(this.inputedText)}else{this.elements.list.hide()}return true},forceSetupList:function(h){h=h||this.elements.field.node.get("value");if(h.length>=this.options.minChars){clearInterval(this.prepareTimer);this.prepareTimer=this.data.prepare.delay(this.options.delay,this.data,this.inputedText)}},dataReady:function(){this.update();if(this.onUpdate){this.onUpdate();this.onUpdate=null}var h=this.elements.list;if(h.list.get("html")){if(this.active){h.show()}}else{this.fireEvent("noItemToList",[this.elements]);h.hide()}},setInputValue:function(){var i=this.elements.list;if(i.focusedItem){var j=i.focusedItem.get("title");this.elements.field.node.set("value",j);var h=i.focusedItem.get("data-index");this.fireEvent("select",[this.elements,this.itemsData[h],j,h])}i.hide()},focusItem:function(i){var h=this.elements.list;if(h.showing){h.focusItem(i)}else{this.forceSetupList();this.onUpdate=function(){h.focusItem(i)}}},addSelectEvents:function(){this.addEvents({select:function(h){h.field.addClass("selected")},deselect:function(h){h.field.removeClass("selected")}})},initData:function(h){this.data=(typeOf(h)=="string")?new a.Autocomplete.Data.Request(h,this.cache,this.elements.field,this.options.requestOptions,this.options.urlOptions):new a.Autocomplete.Data(h,this.cache);this.data.addEvent("ready",this.dataReady.bind(this))},initCache:function(){var h=this.options.cacheLength;if(this.options.cacheType=="shared"){this.cache=g;this.cache.setMaxLength(h)}else{this.cache=new a.Autocomplete.Cache(h)}},refreshCache:function(h){this.cache.refresh();this.cache.setMaxLength(h||this.options.cacheLength)},refreshAll:function(i,h){this.refreshCache(i);this.data.refreshKey(h)}});a.Autocomplete.Select=new Class({Extends:a.Autocomplete,options:{syncName:"id",valueField:null,valueFilter:function(h){return h.id}},initialize:function(h,k,i,j){this.parent(h,k,i,j);this.valueField=f(this.options.valueField);if(!this.valueField){return}this.syncWithValueField(k)},syncWithValueField:function(i){var h=this.getValueFromValueField();if(h&&this.options.syncName){this.addParameter(i);this.addDataReadyEvent(h);this.data.prepare(this.elements.field.node.get("value"))}else{this.addValueFieldEvents()}},addValueFieldEvents:function(){this.addEvents({select:function(i,h){this.valueField.set("value",this.options.valueFilter.call(this,h))},deselect:function(h){this.valueField.set("value","")}})},addParameter:function(h){this.parameter={name:this.options.syncName,value:function(){return this.valueField.value}.bind(this)};if(this.data.url){this.data.url.addParameter(this.parameter)}},addDataReadyEvent:function(j){var i=this;var h=function(){i.addValueFieldEvents();var k=this.get();for(var l=k.length;l--;){if(i.options.valueFilter.call(i,k[l])==j){var m=i.filters.formatMatch.call(i,"",k[l],0);i.elements.field.node.set("value",m);i.fireEvent("select",[i.elements,k[l],m,l]);break}}if(this.url){this.url.removeParameter(i.parameter)}this.removeEvent("ready",h)};this.data.addEvent("ready",h)},getValueFromValueField:function(){return this.valueField.get("value")}});a.Autocomplete.Select.One=new Class({Extends:a.Autocomplete.Select,options:{filter:{path:"text"}},initialize:function(h,i,j){this.select=f(h);this.replaceSelect();this.parent(this.field,this.createDataArray(),Object.merge(i||{},{valueField:this.select,valueFilter:function(k){return k.value}}),j)},replaceSelect:function(){var h=this.select.getSelected()[0];this.field=new Element("input",{type:"text"});var i=h.get("value");if(i||i===0){this.field.set("value",h.get("html"))}this.select.setStyle("display","none");this.field.inject(this.select,"after")},createDataArray:function(){var j=this.select.options,l=[];for(var k=0,h,m;h=j[k++];){m=h.value;if(m||m===0){l.push({value:m,text:h.innerHTML})}}return l},addValueFieldEvents:function(){this.addEvents({select:function(k,j,l,h){var i=this.valueField.getElement('option[value="'+this.options.valueFilter.call(this,j)+'"]');if(i){i.selected=true}},deselect:function(i){var h=this.valueField.getSelected()[0];if(h){h.selected=false}}})},getValueFromValueField:function(){return this.valueField.getSelected()[0].get("value")}});a.Element=new Class({Implements:[Events],initialize:function(h){this.setNode(h);this.createBoundEvents();this.attach()},setNode:function(h){this.node=h?f(h)||$$(h)[0]:this.render()},createBoundEvents:function(){this.bound={};this.boundEvents.each(function(h){this.bound[h]=function(i){this.fireEvent("before"+h.capitalize(),i);this[h]&&this[h](i);this.fireEvent(h,i);return true}.bind(this)},this)},attach:function(){for(var h in this.bound){this.node.addEvent(h,this.bound[h])}},detach:function(){for(var h in this.bound){this.node.removeEvent(h,this.bound[h])}},addClass:function(h){this.node.addClass(this.options.classes[h])},removeClass:function(h){this.node.removeClass(this.options.classes[h])},toElement:function(){this.node},render:function(){}});a.Element.Field=new Class({Extends:a.Element,Implements:[Options],options:{classes:{loading:"ma-loading",selected:"ma-selected"}},initialize:function(i,h){this.keyPressControl={};this.boundEvents=["paste","focus","blur","click","keyup","keyrepeat"];if(c.ie6){this.boundEvents.push("keypress")}this.setOptions(h);this.parent(i);f(e).addEvent("unload",function(){if(this.node){this.node.set("autocomplete","on")}}.bind(this))},setNode:function(h){this.parent(h);this.node.set("autocomplete","off")},keyrepeat:function(h){clearInterval(this.keyrepeatTimer);this.keyrepeatTimer=this._keyrepeat.delay(1,this,h)},_keyrepeat:function(h){this.fireEvent("delayedKeyrepeat",h)},destroy:function(){this.detach();this.node.removeAttribute("autocomplete")},keypress:function(h){if(h.key=="enter"){this.bound.keyrepeat(h)}}});a.Element.List=new Class({Extends:a.Element,Implements:[Options],options:{width:"field",classes:{container:"ma-container",hover:"ma-hover",odd:"ma-odd",even:"ma-even"}},initialize:function(h){this.boundEvents=["mousedown","mouseover"];this.setOptions(h);this.parent();this.focusedItem=null},applyMaxHeight:function(l){var h=this.list.childNodes;var k=h[l-1]||(h.length?h[h.length-1]:null);if(!k){return}k=f(k);for(var j=2;j--;){this.node.setStyle("height",k.getCoordinates(this.list).bottom)}},mouseover:function(i){var h=this.getItemFromEvent(i),j=this.options.classes.hover;if(!h){return true}if(this.focusedItem){this.focusedItem.removeClass(j)}h.addClass(j);this.focusedItem=h;this.fireEvent("focusItem",[this.focusedItem])},mousedown:function(h){h.preventDefault();this.shouldNotBlur=true;if(!(this.focusedItem=this.getItemFromEvent(h))){h.dontHide=true;return true}this.focusedItem.removeClass(this.options.classes.hover)},focusItem:function(i){var j=this.options.classes.hover,h;if(this.focusedItem){if((h=this.focusedItem[i=="up"?"getPrevious":"getNext"]())){this.focusedItem.removeClass(j);h.addClass(j);this.focusedItem=h;this.scrollFocusedItem(i)}}else{if((h=this.list.getFirst())){h.addClass(j);this.focusedItem=h}}},scrollFocusedItem:function(k){var h=this.focusedItem.getCoordinates(this.list),j=this.node.scrollTop;if(k=="down"){var l=h.bottom-this.node.getStyle("height").toInt();if((l-j)>0){this.node.scrollTop=l}}else{var i=h.top;if(j&&j>i){this.node.scrollTop=i}}},getItemFromEvent:function(i){var h=i.target;while(h&&h.tagName.toLowerCase()!="li"){if(h===this.node){return null}h=h.parentNode}return f(h)},render:function(){var h=new Element("div",{"class":this.options.classes.container});if(h.bgiframe){h.bgiframe({top:0,left:0})}this.list=new Element("ul").inject(h);f(document.body).grab(h);return h},positionNextTo:function(h){var i=this.options.width,j=this.node;var k=h.getCoordinates();j.setStyle("width",i=="field"?h.getWidth().toInt()-j.getStyle("border-left-width").toInt()-j.getStyle("border-right-width").toInt():i);j.setPosition({x:k.left,y:k.bottom})},show:function(){this.node.scrollTop=0;this.node.setStyle("visibility","visible");this.showing=true},hide:function(){this.showing=false;this.node.setStyle("visibility","hidden")}});a.Autocomplete.Filter={filters:{},get:function(h){var i=h.type,k=(h.path||"").split(".");var j=(i&&this.filters[i])?this.filters[i](this,k):h;return Object.merge(this.defaults(k),j)},define:function(i,h){this.filters[i]=h},defaults:function(i){var h=this;return{filter:function(k,j){return k?h._getValueFromKeys(j,i).test(new RegExp(k.escapeRegExp(),"i")):true},formatMatch:function(k,j){return h._getValueFromKeys(j,i)},formatItem:function(l,k,j){return l?h._getValueFromKeys(k,i).replace(new RegExp("("+l.escapeRegExp()+")","gi"),"<strong>$1</strong>"):h._getValueFromKeys(k,i)}}},_getValueFromKeys:function(m,k){var j,l=m;for(var h=0;j=k[h++];){l=l[j]}return l}};a.Autocomplete.Filter.define("contains",function(h,i){return{}});a.Autocomplete.Filter.define("startswith",function(h,i){return{filter:function(k,j){return k?h._getValueFromKeys(j,i).test(new RegExp("^"+k.escapeRegExp(),"i")):true}}});a.Autocomplete.Data=new Class({Implements:[Options,Events],initialize:function(i,h){this._cache=h;this.data=i;this.dataString=JSON.encode(this.data)},get:function(){return this.data},getKey:function(){return this.cachedKey},prepare:function(h){this.cachedKey=this.dataString+(h||"");this.fireEvent("ready")},cache:function(h,i){this._cache.set(h,i)},refreshKey:function(){}});a.Autocomplete.Data.Request=new Class({Extends:a.Autocomplete.Data,options:{noCache:true,formatResponse:function(h){return h}},initialize:function(k,i,l,j,h){this.setOptions(j);this.rawUrl=k;this._cache=i;this.element=l;this.urlOptions=h;this.refreshKey();this.createRequest()},prepare:function(h){this.cachedKey=this.url.evaluate(h);if(this._cache.has(this.cachedKey)){this.fireEvent("ready")}else{this.request.send({url:this.cachedKey})}},createRequest:function(){var h=this;this.request=new Request.JSON(this.options);this.request.addEvents({request:function(){h.element.addClass("loading")},complete:function(){h.element.removeClass("loading")},success:function(i){h.data=h.options.formatResponse(i);h.fireEvent("ready")}})},refreshKey:function(h){h=Object.merge(this.urlOptions,{url:this.rawUrl},h||{});this.url=new a.Autocomplete.Data.Request.URL(h.url,h)}});a.Autocomplete.Data.Request.URL=new Class({Implements:[Options],options:{queryVarName:"q",extraParams:null,max:20},initialize:function(j,h){this.setOptions(h);this.rawUrl=j;this.url=j;this.url+=this.url.contains("?")?"&":"?";this.dynamicExtraParams=[];var l=Array.from(this.options.extraParams);for(var k=l.length;k--;){this.addParameter(l[k])}if(this.options.max){this.addParameter("limit="+this.options.max)}},evaluate:function(l){l=l||"";var k=this.dynamicExtraParams,h=[];h.push(this.options.queryVarName+"="+encodeURIComponent(l));for(var j=k.length;j--;){h.push(encodeURIComponent(k[j].name)+"="+encodeURIComponent(Function.from(k[j].value)()))}return this.url+h.join("&")},addParameter:function(h){if(h.nodeType==1||typeOf(h.value)=="function"){this.dynamicExtraParams.push(h)}else{this.url+=((typeOf(h)=="string")?h:encodeURIComponent(h.name)+"="+encodeURIComponent(h.value))+"&"}},removeParameter:function(h){this.dynamicExtraParams.erase(h)}});a.Autocomplete.Cache=new Class({initialize:function(h){this.refresh();this.setMaxLength(h)},set:function(h,i){if(!this.cache[h]){if(this.getLength()>=this.maxLength){var j=this.pos.shift();this.cache[j]=null;delete this.cache[j]}this.cache[h]=i;this.pos.push(h)}return this},get:function(h){return this.cache[h||""]||null},has:function(h){return !!this.get(h)},getLength:function(){return this.pos.length},refresh:function(){this.cache={};this.pos=[]},setMaxLength:function(h){this.maxLength=Math.max(h,1)}});g=new a.Autocomplete.Cache();e.Meio=a})(this,document.id||$);
