var $=function(){var elements=new Array();for(var i=0;i<arguments.length;i++){var element=arguments[i];if(typeof element=='string')element=document.getElementById(element);if(arguments.length==1)return element;elements.push(element);}return elements;};var $def=function(data){return typeof data!='undefined';};function is_function(object){return($def(object)&&typeof object=='function');}function is_array(object){return Boolean(object instanceof Array)};function is_string(object){return Boolean(typeof object=='string');}var System={baseURL:'',loadScript:function(url){$$('script').apply({type:'text/javascript',language:'javascript',src:url}).appendTo(document.body);},addScript:function(code){var node=$T(code);var s=$$('script').apply({type:'text/javascript',language:'javascript'});s.appendChild(node);s.appendTo(document.body);},loadCSS:function(url){var header=document.getElementsByTagName('head')[0];$$('link').apply({rel:'stylesheet',href:url}).appendTo(header);},addCSS:function(code){if(System.navigator.isIE()){setTimeout(function(){document.body.innerHTML+='<style type="text/css">'+code+'</style>';},1500);}else{var header=document.getElementsByTagName('head')[0];var node=$T(code);$$('style').apply({type:'text/css'}).append(node).appendTo(header);}}};System.navigator={name:function(){return navigator.userAgent.toLowerCase();},ieVersion:function(){return parseFloat(navigator.userAgent.toLowerCase().substring(ua.indexOf('msie ')+5));},isIE:function(){return(document.all!=null);},isGecko:function(){var ua=this.name();return(ua.indexOf("gecko")!=-1||ua.indexOf("firefox")!=-1);},isSafari:function(){return(this.name().indexOf("safari")!=-1);}};System.Pointers={pointers:{},Pointer:function(id){return System.Pointers.pointers['ptr'+id];},DoPointer:function(data){var key='';for(var i in System.Pointers.pointers)if(System.Pointers.pointers[i]==data)key=i;if(key==''){do{key='ptr'+Number.random();}while(System.Pointers.pointers[key]!=null);System.Pointers.pointers[key]=data;}return key.replace('ptr','');},Free:function(id){if(id&&this.pointers[id]!='undefined')delete this.pointers[id];}};var $P=function(pointer,make){return System.Pointers[(make==true?'Do':'')+'Pointer'](pointer);};var $extend=function(destination,source){for(var key in source)destination[key]=source[key];return destination;};var Debug={'_log':[],fatal:false,log:function(message){Debug._log.push(message);if(Debug._log.length>10)Debug._log.shift();if($def(window.console))window.console.log(message);},assert:function(procedure,fallback){try{Debug.log(String(procedure));procedure();}catch(e){fallback(e);}},show:function(){alert('Last lines:\n'+this._log.join("\n"));}};Object.extend=$extend;var TObject={'extend':$extend,apply:function(data){$extend(this,data);}};var Class=function(){var bases=[];if(arguments.length>0){for(var i=0;i<arguments.length;i++)bases.push(arguments[i]);bases.push(TObject);}else zbases.push(TObject);var result={};for(var i=0;i<bases.length;i++){$extend(result,bases[i]);}delete result.extend;return result;};var Classes=[];var RegisterClass=function(){for(var i=0;i<arguments.length;i++)if(!Classes.exists(arguments[i]))Classes.push(arguments[i]);};var UID=function(base){var id=null;do{id=base+Number.random();}while($(id)!=null);return id;};var ENUM=function(){if(arguments.length>0){for(var i=0;i<arguments.length;i++)window[arguments[i]]=i+1;}var f=function(){return this.value;};$extend(f,{value:0,add:function(){for(var i=0;i<arguments.length;i++)if(!this.exists(arguments[i]))this.value+=arguments[i];},sub:function(){for(var i=0;i<arguments.length;i++)if(this.exists(arguments[i]))this.value-=arguments[i];},exists:function(item){return(~this.value&item==item);}});return f;};String.prototype.trim=function(){var str=this;if(str==null||str=='undefined'||typeof str=='undefined')return'';return str.replace(/(^\s*)|(\s*$)/g,'');};String.prototype.cut=function(size){var str=this;if(str.length>size)return str.substr(0,size-3)+'...';else return str;};Number.random=function(){return Math.ceil(Math.random()*999999);};Function.prototype.apply=function(data){return $extend(this,data);};Function.prototype.extend=function(data){$extend(this.prototype,data);return this;};Object.extend(Array.prototype,{popValue:function(value){if(this.length==0)return[];var newList=[];for(var i=0;i<this.length;i++){if(this[i]!=value){newList.push(this[i]);}}this.length=0;for(var i=0;i<newList.length;i++){this.push(newList[i]);}return newList;},popIndex:function(index){if(this.length==0)return[];var newList=new Array();for(var i=0;i<this.length;i++){if(i!=index)newList.push(this[i]);}this.length=0;for(var i=0;i<newList.length;i++){this.push(newList[i]);}return newList;},clean:function(){if(this.length==0)return[];var newList=[];for(var i=0;i<this.length;i++)if(this[i]!=null)newList.push(this[i]);this.length=0;for(var i=0;i<newList.length;i++){this.push(newList[i]);}return this;},exists:function(value){if(this.length==0)return false;var exists=false;for(var i=0;i<this.length;i++){if(this[i]==value){exists=true;break;}}return exists;},first:function(){return this.length>0?this[0]:null;},last:function(){return this.length>0?this[this.length-1]:null;},'index_of':function(item,offset){if(offset>this.length-1||offset==null)offset=0;for(var i=offset;i<this.length;i++){if(this[i]==item){return i;}}return null;},foreach:function(processor){for(var i=0;i<this.length;i++)processor(this[i]);return this;},process:function(iterator){var results=[];for(var i=0;i<this.length;i++){results.push(iterator(this[i],i));}return results;},map:function(processor){var results=[];for(var i=0;i<this.length;i++)results.push(processor(this[i]));return results;}});var protoElement={getHeight:function(){return this.offsetHeight||0;},getWidth:function(){return this.offsetWidth||0;},getSize:function(){with(this){return{h:offsetHeight||0,w:offsetWidth||0};}},getRect:function(){var pos=this.getPosition(this);var size=this.getSize(this);return{x:pos.x,y:pos.y,w:size.w,h:size.h};},getPosition:function(){var element=this;var left=0,top=0;while(element.offsetParent){left+=element.offsetLeft;top+=element.offsetTop;element=element.offsetParent;}left+=element.offsetLeft;top+=element.offsetTop;return{x:left,y:top};},setPosition:function(x,y){if(!$def(x)||!$def(y))return;this.Style({left:x+'px',top:y+'px'});},Show:function(){if(this.style)this.style.display='';return this;},Hide:function(){if(this.style)this.style.display='none';return this;},Style:function(source){if(source)for(var property in source)this.style[property]=source[property];return this;},StyleCSS:function(text){if(text!=''){var list=text.split(';');var obj={};for(var i=0;i<list.length;i++){var item=list[i].split(':');var key=String(item[0]).trim();var value=String(item[1]).trim();if(key&&value)obj[key]=value;}if(this.style){for(var k in obj)this.style[k]=obj[k];}}return this;},addClass:function(){var list=this.className.split(' ');if(arguments.length>0)for(var i=0;i<arguments.length;i++){var name=arguments[i];if(!list.exists(name))list.push(name);}this.className=list.join(' ');return this;},removeClass:function(){var list=this.className;if(arguments.length>0)for(var i=0;i<arguments.length;i++){var name=arguments[i];if(list.trim()!=name){list=list.split(' ');var newclass=[];for(i=0;i<list.length;i++)if(list[i]!=name)newclass.push(list[i]);this.className=newclass.length==1?newclass[0]:newclass.join(' ');}else{this.className='';}}return this;},haveClass:function(name){var list=this.className||'';list=list.split(' ');return list.exists(name);},setSize:function(width,height){var suffixW='',suffixH='';var reg=/(%|em)/;if(reg.test(width)==false)suffixW='px';if(reg.test(height)==false)suffixH='px';if(width)this.style.width=width+suffixW;if(height)this.style.height=height+suffixH;},getCenter:function(){var size=this.getSize();var pos=this.getPosition();var scr=Screen.PageViewSize();var px=Math.ceil((scr.pageWidth-size.w)/2)||pos.x;var py=Math.ceil((scr.pageHeight-size.h)/2)+Screen.PageScroll().yScroll||pos.y;return{x:px,y:py};},center:function(moveX,moveY){moveX=(moveX==null?true:moveX);moveY=(moveY==null?true:moveY);var pos=this.getCenter();return Effects.Move().applyTo(this,'auto',{x:pos.x,y:pos.y}).init();},centerX:function(){this.center(true,false);},centerY:function(){this.center(false,true);},moveTo:function(x,y,start){if(start)this.setPosition(start.x,start.y);var pos=this.getPosition();x=x||pos.x;y=y||pos.y;return Effects.Move().applyTo(this,'auto',{x:x,y:y}).init();},resizeTo:function(width,height){if(width==null)width=this.getWidth();if(height==null)width=this.getheight();return Effects.Size().applyTo(this,'auto',{w:width,h:height}).init();},apply:function(source){if(source)for(var property in source)this[property]=source[property];return this;},append:function(element){element=$(element);if(!element)return false;this.appendChild(element);return this;},appendTo:function(element){element=$(element);if(!element)return false;element.appendChild(this);return this;},appendAsFirst:function(element){element=$(element);if(!element)return false;element.insertBefore(this,element.firstChild);return this;},destroy:function(){if(this.parentNode)this.parentNode.removeChild(this);},clearNodes:function(){while(this.hasChildNodes())this.removeChild(this.firstChild);},addHTML:function(htmltext){var html=$$('div').set('innerHTML',htmltext);while(html.hasChildNodes()){this.appendChild(html.firstChild);html.removeChild(html.firstChild);}},getHTML:function(){var html='',tmpnode=$$('div').append(this.cloneNode(true));html=tmpnode.innerHTML;delete tmpnode;return html;},set:function(p,v){this[p]=v;return this;},Attribute:function(name){var attr=this.attributes.getNamedItem(name);if(attr)return attr.value;return null;},byTag:function(tag){var list=null;if(tag){list=this.getElementsByTagName(tag);}return list;},byClass:function(tag,className){var list=this.byTag(tag),ret=[];for(var i=0;i<list.length;i++){if($E(list[i]).haveClass(className))ret.push(list[i]);}return ret;}};var Element=function(tagname){var valid_tags=('a|abbr|acronym|address|applet|area|b|base|basefont|bdo|big|blockquote|'+'body|br|button|caption|center|cite|code|col|colgroup|dd|del|dfn|dir|'+'div|dl|dt|em|fieldset|font|form|frame|frameset|head|h1|h2|h3|h4|h5|h6|'+'hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|menu|meta|'+'noframes|noscript|object|ol|optgroup|option|p|param|pre|q|s|samp|script|'+'select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|'+'tfoot|th|thead|title|tr|tt|u|ul|var').split('|');if(!valid_tags.exists(tagname)){throw'Error: invalid tag name '+tagname;return false;}var element=document.createElement(tagname);Object.extend(element,protoElement);return element;};var $$=function(tag){return new Element(tag);};var $T=function(value){return document.createTextNode(value);};var $E=function(element){element=$(element);if(!element)return null;if(!element.getHeight)Object.extend(element,protoElement);return element;};var Screen={PageViewSize:function(){var width,height;if(self.innerHeight){width=self.innerWidth;height=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){width=document.documentElement.clientWidth;height=document.documentElement.clientHeight;}else if(document.body){width=document.body.clientWidth;height=document.body.clientHeight;}arrayPageSize={pageWidth:width,pageHeight:height};return arrayPageSize;},PageSize:function(){var scroll=this.PageScroll(),xScroll=scroll.xScroll||0,yScroll=scroll.yScroll||0;var windowWidth=0,windowHeight=0;if(self.innerHeight){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=windowWidth;else pageWidth=xScroll;return{pageWidth:pageWidth,pageHeight:pageHeight,windowWidth:windowWidth,windowHeight:windowHeight};},PageScroll:function(){var xScroll,yScroll;if(self.pageYOffset){xScroll=self.pageXOffset;yScroll=self.pageYOffset;}else if(document.documentElement&&document.documentElement.scrollTop){xScroll=document.documentElement.scrollLeft;yScroll=document.documentElement.scrollTop;}else if(document.body){xScroll=document.body.scrollLeft;yScroll=document.body.scrollTop;}return{xScroll:xScroll,yScroll:yScroll};}};var Events={list:{},dropListener:function(pointer){for(var evnt in this.list){var item=this.list[evnt];for(var i=0;i<item.length;i++)if(pointer==item[i].pointer){item[i]=null;item.clean();console.log('removed '+pointer);console.log(item);}}},addListener:function(toObject,theEvent,callback){if(!toObject)toObject=window;if(!this.list['on'+theEvent])this.list['on'+theEvent]=[];var vPointer=Number.random();this.list['on'+theEvent].push({refer:toObject,event:theEvent,callback:callback,pointer:vPointer});toObject['on'+theEvent]=function(ev){Events.dispatch(toObject,theEvent,ev);};return vPointer;},dispatch:function(element,theEvent,object){object=object||window.event;var list=this.list['on'+theEvent];for(var i=0;i<list.length;i++){if(typeof element=='string')element=$(element);if(list[i]&&list[i].refer==element&&list[i].callback!=null)list[i].callback(object);}},getEventSource:function(ev){ev=ev||window.event;var res=((ev)?((ev.target)?ev.target:ev.srcElement):window.event.srcElement);return res;}};Loader={list:[],run:function(){this.list.foreach(function(f){f();});},init:function(){if(document.all){setTimeout("Loader.run();",1200);}else{Loader.run();}},add:function(f){if(typeof f=='function')Loader.list.push(f);}};Events.addListener(window,'load',Loader.init);var Cookies={setCookie:function(pA,pB,days){var dt=new Date();var cookie='';if(days>0){dt.setTime(dt.getTime()+days*24*360000);cookie="; expires="+dt.toGMTString();}document.cookie=pA+"="+pB+cookie;},getCookie:function(cookie){if(document.cookie){var st=document.cookie.indexOf(cookie);if(st>-1){st=st+cookie.length+1;var end=document.cookie.indexOf(';',st);if(end==-1)end=document.cookie.length;return unescape(document.cookie.substring(st,end));}}return null;}};var Assigned=function(property){return(typeof property!='undefined'&&property!=null);};System.addEvent=function(func,evnt,object){if(!object)object=window;var oldfunction=object[evnt];var call;if(typeof oldfunction=='function')call=function(){oldfunction();func();};else call=func;if(object.attachEvent)object.attachEvent(evnt,call);else if(object.addEventListener)object.addEventListener(evnt,call,false);else object[evnt]=call;};var Mouse={x:0,y:0,lastEvent:null,source:null,getMouseXY:function(event){event=event||window.event;Mouse.lastEvent=event;Mouse.source=Events.getEventSource(event);if(System.navigator.isIE()){Mouse.x=(event.clientX+document.body.scrollLeft)||0;Mouse.y=(event.clientY+document.body.scrollTop)||0;}else{Mouse.x=event.pageX;Mouse.y=event.pageY;}if(Mouse.x<0)Mouse.x=0;if(Mouse.y<0)Mouse.y=0;return true;}};var Drag={objectEvent:null,element:null,mouseOffset:null,capabilities:{x:false,y:false},callback:null,startDragY:function(obj,ev,callback){Drag.callback=callback;Drag.capabilities={x:false,y:true};Drag.drag(obj,ev);return false;},startDragX:function(obj,ev,callback){Drag.callback=callback;Drag.capabilities={x:true,y:false};Drag.drag(obj,ev);return false;},startDrag:function(obj,ev,callback){Drag.callback=callback;Drag.capabilities={x:true,y:true};Drag.drag(obj,ev);return false;},drag:function(el,ev){Drag.objectEvent=ev||window.ev;Drag.element=$E(el);Drag.getMouseOffset(Drag.element,Drag.objectEvent);},stopDrag:function(){Drag.element=null;Drag.objectEvent=null;Drag.capabilities={x:false,y:false};if(is_function(Drag.callback))Drag.callback();Drag.callback=null;},moveObject:function(ev){if(Drag.element==null)return;var MO=Drag.mouseOffset;var MP=Drag.mouseCoords(ev);if(Drag.capabilities.x==true){var pleft=MP.x-MO.x;Drag.element.style.left=pleft+'px';}if(Drag.capabilities.y==true){var ptop=MP.y-MO.y;Drag.element.style.top=ptop+'px';}},mouseCoords:function(ev){ev=ev||window.event;if(!ev||ev==null){return{x:0,y:0};}if(ev.pageX||ev.pageY)return{x:ev.pageX,y:ev.pageY};else return{x:ev.clientX,y:ev.clientY};},getMouseOffset:function(target,ev){if(!target){Drag.mouseOffset={x:0,y:0};return;}var docPos=target.getPosition();var mousePos=Drag.mouseCoords(ev);Drag.mouseOffset={x:mousePos.x-docPos.x,y:mousePos.y-docPos.y};}};Events.addListener(document,'mousemove',Drag.moveObject);Events.addListener(document,'mouseup',Drag.stopDrag);var Ajax=function(){return Class(Ajax);}.apply({pointer:null,getTransport:function(){var requestElements=["MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","MICROSOFT.XMLHTTP.1.0","MICROSOFT.XMLHTTP.1","MICROSOFT.XMLHTTP"];var requestElement;if(typeof XMLHttpRequest=='undefined'&&typeof ActiveXObject!='undefined'){for(var a=0;a<requestElements.length;a++){var b=requestElements[a];try{new ActiveXObject(b);requestElement=b;break;}catch(c){}}if(typeof requestElement=='undefined'){throw"Este navegador não dá suporte ao site. Atualize-o!";}}if(typeof requestElement!='undefined')return new ActiveXObject(requestElement);else return new XMLHttpRequest;},target:null,method:null,onSuccess:null,onError:null,loader:false,async:true,url:'',query:null,request:null,Get:function(url,variables,params){params=params||{};this.target=params.target||null;this.method=String(params.method||'GET').toUpperCase();this.onSuccess=params.onSuccess||null;this.onError=params.onError||null;this.loader=(params.loader===false?false:true);this.async=Boolean(params.async||true);this.url=url;this.query=variables;this.request=this.getTransport();if(this.request){this.pointer=$P(this,true);var isGet=RegExp('(get)','i').test(this.method);var isPost=RegExp('(post)','i').test(this.method);if(isGet)this.query+='&rand='+Number.random();var reqURL=this.url+(isGet?'?'+this.query:'');this.request.open(this.method,reqURL,this.async);if(isPost)this.request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");this.request.setRequestHeader("X-Ajax","RDA Ajax Lib rev. 3");this.request.onreadystatechange=Function('$P('+this.pointer+').callback();');try{this.request.send(isGet?null:this.query);}catch(err){throw"Ajax: exception on XHR.Send: "+err;}return this;}else{throw"Ajax: unable to find transport object!";return null;}},callback:function(){if(this.loader&&this.loader==true)AjaxLoader.Message(this.request);else AjaxLoader.Hide();if(this.request.readyState==4){this.content=this.request.responseText;if(this.request.status==200){if(typeof this.target=='string')this.target=$E(this.target);if(this.target!=null){this.target.innerHTML='';if(RegExp('\.(gif|jpe?g|png|bmp)','i').test(this.url)&&typeof this.onSuccess!='function')this.target.innerHTML='<img src="'+this.url+'?'+this.query+'" />';else this.target.innerHTML=this.content;}this.JSRun();if(typeof this.onSuccess=='function')this.onSuccess(this.content);}else if(typeof onError=='function')this.onError(this.content);}},JSRun:function(text){text=text||this.content;var start=0;var end=0;var code="";var script=document.createElement('script');while(start!=-1){start=text.indexOf('<scr'+'ipt',start);if(start>=0){start=text.indexOf('>',start)+1;end=text.indexOf('</scr'+'ipt>',start);code=text.substring(start,end);script.type='text/javascript';script.language='javascript';script.text=code;document.body.appendChild(script);}}return this;}});var AjaxLoader={loader:null,messages:['','Aguardando resposta...','Aguardando resposta...','Processando...','Pronto!']};AjaxLoader.Message=function(request){if(!this.loader)AjaxLoader.Create();var state=request.readyState||0;if(state<=3){this.loader.innerHTML=AjaxLoader.messages[state];this.loader.Style({display:'block',backgroundColor:'#ffc',color:'#999'});}else{if(request.status!=200)this.loader.innerHTML='Erro!';else this.loader.innerHTML=AjaxLoader.messages[state];this.loader.Style({display:'block',color:'#fff',backgroundColor:(request.status==200?'#0af':'#d00')});setTimeout(function(){$('div-ajax-loader').style.display='none';},1000);}};AjaxLoader.Create=function(){if(!this.loader)this.loader=$$('div').apply({id:'div-ajax-loader'}).Style({display:'none',position:'absolute',right:'0px',top:(Screen.PageScroll().yScroll>0?Screen.PageScroll().yScroll+'px':'0px'),zIndex:'10000',color:'#ffffff',fontSize:'8pt',height:'15px',fontWeight:'bold',width:'auto',textAlign:'center',backgroundColor:'#DD0000',padding:'4px',fontFamily:'Tahoma,Verdana,Arial,Helvetica,sans-serif'}).appendTo(document.body);};AjaxLoader.Hide=function(){if(this.loader)this.loader.Style({display:'none'});};var Form={serialize:function(form){var elements=Form.getElements($(form));var queryComponents=new Array();for(var i=0;i<elements.length;i++){var queryComponent=Form.Element.serialize(elements[i]);if(queryComponent)queryComponents.push(queryComponent);}return queryComponents.join('&');},getElements:function(form){form=$(form);var elements=new Array();for(tagName in Form.Element.Serializers){var tagElements=form.getElementsByTagName(tagName);for(var j=0;j<tagElements.length;j++)elements.push(tagElements[j]);}return elements;},getInputs:function(form,typeName,name){form=$(form);var inputs=form.getElementsByTagName('input');if(!typeName&&!name)return inputs;var matchingInputs=new Array();for(var i=0;i<inputs.length;i++){var input=inputs[i];if((typeName&&input.type!=typeName)||(name&&input.name!=name))continue;matchingInputs.push(input);}return matchingInputs;},disable:function(form){var elements=Form.getElements(form);for(var i=0;i<elements.length;i++){var element=elements[i];element.blur();element.disabled='true';}},enable:function(form){var elements=Form.getElements(form);for(var i=0;i<elements.length;i++){var element=elements[i];element.disabled='';}},reset:function(form){$(form).reset();},focusFirst:function(element){var list=Form.getInputs(element,'text');if(list.length>0)list[0].focus();},send:function(element,target,callback){var form=$(element);if(!form)return false;var method=form.method||'post';target=target||form.target;Ajax().Get(form.action,Form.serialize(form),{target:target,method:form.method,onSuccess:callback});return true;},sendAsFrame:function(element){element=$(element);var id=UID('frame');var sendComplete=function(){var e=this;var doc=(e.contentDocument?e.contentDocument:(e.contentWindow?e.contentWindow.document:window.frames[id].document));if(doc.location.href=="about:blank")return;var result=doc.body.innerHTML;this.parentNode.removeChild(this);};var frame=$$('iframe').apply({src:"about:blank",id:id,name:id,onload:sendComplete,width:1,height:1,frameborder:0});document.body.appendChild(frame);element.target=id;return true;}};Form.Element={serialize:function(element){element=$(element);var method=element.tagName.toLowerCase();var parameter=Form.Element.Serializers[method](element);if(parameter){var key=encodeURIComponent(parameter[0]);if(key.length==0)return;if(parameter[1].constructor!=Array)parameter[1]=[parameter[1]];var res=parameter[1].map(function(x){return key+'='+encodeURIComponent(x);});return res.join('|');}},getValue:function(element){element=$(element);var method=element.tagName.toLowerCase();var parameter=Form.Element.Serializers[method](element);if(parameter)return parameter[1];}};Form.Element.Serializers={input:function(element){switch(element.type.toLowerCase()){case'submit':case'hidden':case'password':case'text':return Form.Element.Serializers.textarea(element);case'checkbox':case'radio':return Form.Element.Serializers.inputSelector(element);}return false;},inputSelector:function(element){if(element.checked)return[element.name,element.value];},textarea:function(element){return[element.name,element.value];},select:function(element){return Form.Element.Serializers[element.type=='select-one'?'selectOne':'selectMany'](element);},selectOne:function(element){var value='',opt,index=element.selectedIndex;if(index>=0){opt=element.options[index];value=opt.value;if(!value&&!('value'in opt))value=opt.text;}return[element.name,value];},selectMany:function(element){var value=new Array();for(var i=0;i<element.length;i++){var opt=element.options[i];if(opt.selected){var optValue=opt.value;if(!optValue&&!('value'in opt))optValue=opt.text;value.push(optValue);}}return[element.name,value];}};Form.Validator={rules:{},addRule:function(form,theField,rule,extra){form=$(form);if(!form.id)form.setAttribute('id',UID('form-'));field=$(theField);if(!field){throw'Validator: invalid field "'+theField+'"!';return false;}if(!Form.Validator.rules[form.id])Form.Validator.rules[form.id]=[];Form.Validator.rules[form.id].push({field:field,rule:rule,re:null,extra:extra});},removeRule:function(form,field){form=$(form);field=$(field);var list=Form.Validator.rules[form.id];for(var i=0;i<list.lenght;i++){if(list[i].field==field)list[i]=null;}list.clean();},check:function(form){form=$(form);var list=Form.Validator.rules[form.id];var formValid=true;for(var i=0;i<list.length;i++){if(list[i].field){list[i].re=new RegExp(list[i].rule);var valid=(list[i].re.exec(list[i].field.value)!=null);if(typeof list[i].extra=='function'){valid=list[i].extra(list[i].field);}list[i].field.setAttribute('valid',valid);if(!valid){$E(list[i].field.parentNode).addClass('invalid').removeClass('valid');}else{$E(list[i].field.parentNode).removeClass('invalid').addClass('valid');}formValid=formValid&&valid;}}form.setAttribute('valid',formValid);}};var EffectsList=function(){return Class(EffectsList);}.apply({list:[],pointer:null,add:function(effect){if(effect)this.list.push(effect);else throw"EffectsList: invalid effect !";},init:function(){this.pointer=$P(this,true);this.apply();if(this.list[0])this.list[0].init();},next:function(){if(this.list[0].fxback)this.list[0].fxback();this.list.shift();if(this.list[0])this.list[0].init();},apply:function(){for(var i=0;i<this.list.length;i++){var element=this.list[i];if(element.callback)element.fxback=element.callback;element.callback=Function('$P('+this.pointer+').next()');}}});var Effects={};Effects.Size=function(){return Class(Effects.Size);}.apply({pointer:null,factor:5,time:50,start:null,end:null,object:null,clock:null,callback:null,applyTo:function(object,start,end,callback){this.object=$E(object);if(!this.object){throw"Effects.Move: object not found!";return null;}this.start=start;this.end=end;if(this.end==null||this.end.w==null||this.end.h==null){throw"Effects.Move: invalid end size!";return null;}this.pointer=$P(this,true);this.object.style.overflow='hidden';this.object.style.display='block';this.callback=callback;if(this.start!='auto'){this.object.style.width=this.start.w+'px';this.object.style.height=this.start.h+'px';}return this;},init:function(){if(!this.pointer)return null;if(this.start=='auto')this.start=this.object.getSize();this.clock=setInterval(Function('$P('+this.pointer+').fx()'),this.time);return this;},fx:function(){var diffX=this.start.w-this.end.w,diffY=this.start.h-this.end.h;var valueX=Math.ceil(Math.abs(diffX/this.factor));var valueY=Math.ceil(Math.abs(diffY/this.factor));if(valueX<0)valueX*=-1;if(valueY<0)valueY*=-1;if(this.start.w>this.end.w){this.start.w-=valueX;}else if(this.start.w<this.end.w){this.start.w+=valueX;}else this.start.w=this.end.w;if(this.start.h>this.end.h){this.start.h-=valueY;}else if(this.start.h<this.end.h){this.start.h+=valueY;}else this.start.h=this.end.h;if(valueX==0&&valueY==0){clearInterval(this.clock);if(typeof this.callback=='function')this.callback();System.Pointers.Free(this.pointer);}this.object.style.width=this.start.w+'px';this.object.style.height=this.start.h+'px';}});Effects.Move=function(){return Class(Effects.Move);}.apply({pointer:null,factor:5,time:50,start:null,end:null,object:null,clock:null,callback:null,applyTo:function(object,start,end,callback){this.object=$E(object);if(!this.object){throw'Effects.Move: invalid object!';return null;}this.start=start;this.end=end;if(this.end==null||this.end.x==null||this.end.y==null){throw"Effects.Move: invalid end position!";return null;}this.callback=callback;this.pointer=$P(this,true);if(this.start!='auto'){this.object.style.top=this.start.y+'px';this.object.style.left=this.start.x+'px';}return this;},init:function(){if(!this.pointer)return null;if(this.start=='auto')this.start=this.object.getPosition();this.clock=setInterval(Function('$P('+this.pointer+').fx()'),this.time);return this;},fx:function(){var diffX=this.start.x-this.end.x,diffY=this.start.y-this.end.y;var valueX=Math.ceil(Math.abs(diffX/this.factor));var valueY=Math.ceil(Math.abs(diffY/this.factor));if(valueX<0)valueX*=-1;if(valueY<0)valueY*=-1;if(this.start.x>this.end.x){this.start.x-=valueX;}else if(this.start.x<this.end.x){this.start.x+=valueX;}else this.start.x=this.end.x;if(this.start.y>this.end.y){this.start.y-=valueY;}else if(this.start.y<this.end.y){this.start.y+=valueY;}else this.start.y=this.end.y;if(valueX==0&&valueY==0){clearInterval(this.clock);if(typeof this.callback=='function')this.callback();System.Pointers.Free(this.pointer);}this.object.style.left=this.start.x+'px';this.object.style.top=this.start.y+'px';}});var Style=function(element){var tmp={tag:element,apply:function(data){if(data&&this.tag&&this.tag.style){for(var k in data)this.tag.style[k]=data[k];return true;}else return false;},addCSS:function(text){var style=document.createElement('style');style.type='text/css';style.appendChild(document.createTextNode(text));document.body.appendChild(style);},applyCSS:function(text){if(text=='')return false;var list=text.split(';');var obj={};for(var i=0;i<list.length;i++){var item=list[i].split(':');var key=String(item[0]).trim();var value=String(item[1]).trim();if(key&&value)obj[key]=value;}if(this.tag&&this.tag.style){for(var k in obj)this.tag.style[k]=obj[k];}return true;},addClass:function(name){if(!this.tag)return false;var list=this.tag.className;list=list.split(' ');if(!list.exists(name))list.push(name);this.tag.className=list.join(' ');return true;},removeClass:function(name){if(!this.tag)return false;var list=this.tag.className;if(list.trim()!=name){if(list.indexOf(' ',0)>0)list=list.split(' ');elselist=[list];var newclass=[];for(i=0;i<list.length;i++)if(list[i]!=name)newclass.push(list[i]);this.tag.className=newclass.length==1?newclass[0]:newclass.join(' ');}else{this.tag.className='';}return true;},haveClass:function(name){if(!this.tag)return false;var list=this.tag.className||'';list=list.split(' ');return list.exists(name);}};return tmp;};var array2str=function(objArray){var str=[];for(var key in objArray){var nkey=base64_encode(key);var value=objArray[key];var nvalue=is_array(value)?'$'+base64_encode(array2str(value)):String(base64_encode(value));str.push(nkey+'&'+nvalue);}return str.join('|');};var str2array=function(str){var rest=[];if(str.indexOf('|')>0)var array=str.split('|');else var array=[str];for(var i=0;i<array.length;i++){var token=array[i].split('&');var key=token[0],value=token[1];var nkey=base64_decode(key);var nvalue=(value.charAt(0)!='$'?base64_decode(value):str2array(base64_decode(value(1,value.length-1))));rest[nkey]=nvalue;}return rest;};var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var base64_encode=function(input){var output='';input=String(input);var chr1,chr2,chr3,enc1,enc2,enc3,enc4;var i=0;while(i<input.length){chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);enc1=chr1>>2;enc2=((chr1&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6);enc4=chr3&63;if(isNaN(chr2))enc3=enc4=64;else if(isNaN(chr3))enc4=64;output+=(keyStr.charAt(enc1)+keyStr.charAt(enc2)+keyStr.charAt(enc3)+keyStr.charAt(enc4));}return output;};var base64_decode=function(input){var output='';input=String(input);var chr1,chr2,chr3,enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,'');while(i<input.length){enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=(enc1<<2)|(enc2>>4);chr2=((enc2&15)<<4)|(enc3>>2);chr3=((enc3&3)<<6)|enc4;output+=(String.fromCharCode(chr1));if(enc3!=64){output+=(String.fromCharCode(chr2));}if(enc4!=64){output+=(String.fromCharCode(chr3));}}return output.toString();};