
console='';lang={};var Prototype={Version:'1.4.0_rc2',emptyFunction:function(){},K:function(x){return x}}
var Class={create:function(){return function(){this.initialize.apply(this,arguments);}}}
var Abstract=new Object();Object.extend=function(destination,source){for(property in source){destination[property]=source[property];}
return destination;}
Object.inspect=function(object){try{if(object==undefined)return'undefined';if(object==null)return'null';return object.inspect?object.inspect():object.toString();}catch(e){if(e instanceof RangeError)return'...';throw e;}}
Function.prototype.bind=function(object){var __method=this;return function(){return __method.apply(object,arguments);}}
Function.prototype.bindAsEventListener=function(object,args){var __method=this;var __args=args;return function(event){return __method.call(object,event||window.event,args);}}
Object.extend(Number.prototype,{toColorPart:function(){var digits=this.toString(16);if(this<16)return'0'+digits;return digits;},succ:function(){return this+1;},times:function(iterator){$R(0,this,true).each(iterator);return this;}});var Try={these:function(){var returnValue;for(var i=0;i<arguments.length;i++){var lambda=arguments[i];try{returnValue=lambda();break;}catch(e){}}
return returnValue;}}
var PeriodicalExecuter=Class.create();PeriodicalExecuter.prototype={initialize:function(callback,frequency){this.callback=callback;this.frequency=frequency;this.currentlyExecuting=false;this.registerCallback();},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.callback();}finally{this.currentlyExecuting=false;}}}}
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;}
Object.extend(String.prototype,{stripTags:function(){return this.replace(/<\/?[^>]+>/gi,'');},escapeHTML:function(){var div=document.createElement('div');var text=document.createTextNode(this);div.appendChild(text);return div.innerHTML;},unescapeHTML:function(){var div=document.createElement('div');div.innerHTML=this.stripTags();return div.childNodes[0]?div.childNodes[0].nodeValue:'';},toQueryParams:function(){var pairs=this.match(/^\??(.*)$/)[1].split('&');return pairs.inject({},function(params,pairString){var pair=pairString.split('=');params[pair[0]]=pair[1];return params;});},toArray:function(){return this.split('');},camelize:function(){var oStringList=this.split('-');if(oStringList.length==1)return oStringList[0];var camelizedString=this.indexOf('-')==0?oStringList[0].charAt(0).toUpperCase()+oStringList[0].substring(1):oStringList[0];for(var i=1,len=oStringList.length;i<len;i++){var s=oStringList[i];camelizedString+=s.charAt(0).toUpperCase()+s.substring(1);}
return camelizedString;},inspect:function(){return"'"+this.replace('\\','\\\\').replace("'",'\\\'')+"'";}});String.prototype.parseQuery=String.prototype.toQueryParams;var $break=new Object();var $continue=new Object();var Enumerable={each:function(iterator){var index=0;try{this._each(function(value){try{iterator(value,index++);}catch(e){if(e!=$continue)throw e;}});}catch(e){if(e!=$break)throw e;}},all:function(iterator){var result=true;this.each(function(value,index){if(!(result&=(iterator||Prototype.K)(value,index)))
throw $break;});return result;},any:function(iterator){var result=true;this.each(function(value,index){if(result&=(iterator||Prototype.K)(value,index))
throw $break;});return result;},collect:function(iterator){var results=[];this.each(function(value,index){results.push(iterator(value,index));});return results;},detect:function(iterator){var result;this.each(function(value,index){if(iterator(value,index)){result=value;throw $break;}});return result;},findAll:function(iterator){var results=[];this.each(function(value,index){if(iterator(value,index))
results.push(value);});return results;},grep:function(pattern,iterator){var results=[];this.each(function(value,index){var stringValue=value.toString();if(stringValue.match(pattern))
results.push((iterator||Prototype.K)(value,index));})
return results;},include:function(object){var found=false;this.each(function(value){if(value==object){found=true;throw $break;}});return found;},inject:function(memo,iterator){this.each(function(value,index){memo=iterator(memo,value,index);});return memo;},invoke:function(method){var args=$A(arguments).slice(1);return this.collect(function(value){return value[method].apply(value,args);});},max:function(iterator){var result;this.each(function(value,index){value=(iterator||Prototype.K)(value,index);if(value>=(result||value))
result=value;});return result;},min:function(iterator){var result;this.each(function(value,index){value=(iterator||Prototype.K)(value,index);if(value<=(result||value))
result=value;});return result;},partition:function(iterator){var trues=[],falses=[];this.each(function(value,index){((iterator||Prototype.K)(value,index)?trues:falses).push(value);});return[trues,falses];},pluck:function(property){var results=[];this.each(function(value,index){results.push(value[property]);});return results;},reject:function(iterator){var results=[];this.each(function(value,index){if(!iterator(value,index))
results.push(value);});return results;},sortBy:function(iterator){return this.collect(function(value,index){return{value:value,criteria:iterator(value,index)};}).sort(function(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0;}).pluck('value');},toArray:function(){return this.collect(Prototype.K);},zip:function(){var iterator=Prototype.K,args=$A(arguments);if(typeof args.last()=='function')
iterator=args.pop();var collections=[this].concat(args).map($A);return this.map(function(value,index){iterator(value=collections.pluck(index));return value;});},inspect:function(){return'#<Enumerable:'+this.toArray().inspect()+'>';}}
Object.extend(Enumerable,{map:Enumerable.collect,find:Enumerable.detect,select:Enumerable.findAll,member:Enumerable.include,entries:Enumerable.toArray});var $A=Array.from=function(iterable){if(iterable.toArray){return iterable.toArray();}else{var results=[];for(var i=0;i<iterable.length;i++)
results.push(iterable[i]);return results;}}
Object.extend(Array.prototype,Enumerable);Object.extend(Array.prototype,{_each:function(iterator){for(var i=0;i<this.length;i++)
iterator(this[i]);},first:function(){return this[0];},last:function(){return this[this.length-1];},compact:function(){return this.select(function(value){return value!=undefined||value!=null;});},flatten:function(){return this.inject([],function(array,value){return array.concat(value.constructor==Array?value.flatten():[value]);});},without:function(){var values=$A(arguments);return this.select(function(value){return!values.include(value);});},indexOf:function(object){for(var i=0;i<this.length;i++)
if(this[i]==object)return i;return false;},reverse:function(){var result=[];for(var i=this.length;i>0;i--)
result.push(this[i-1]);return result;},inspect:function(){return'['+this.map(Object.inspect).join(', ')+']';}});var Hash={_each:function(iterator){for(key in this){var value=this[key];if(typeof value=='function')continue;var pair=[key,value];pair.key=key;pair.value=value;iterator(pair);}},keys:function(){return this.pluck('key');},values:function(){return this.pluck('value');},merge:function(hash){return $H(hash).inject($H(this),function(mergedHash,pair){mergedHash[pair.key]=pair.value;return mergedHash;});},toQueryString:function(){return this.map(function(pair){return pair.map(encodeURIComponent).join('=');}).join('&');},inspect:function(){return'#<Hash:{'+this.map(function(pair){return pair.map(Object.inspect).join(': ');}).join(', ')+'}>';}}
function $H(object){var hash=Object.extend({},object||{});Object.extend(hash,Enumerable);Object.extend(hash,Hash);return hash;}
var Range=Class.create();Object.extend(Range.prototype,Enumerable);Object.extend(Range.prototype,{initialize:function(start,end,exclusive){this.start=start;this.end=end;this.exclusive=exclusive;},_each:function(iterator){var value=this.start;do{iterator(value);value=value.succ();}while(this.include(value));},include:function(value){if(value<this.start)
return false;if(this.exclusive)
return value<this.end;return value<=this.end;}});var $R=function(start,end,exclusive){return new Range(start,end,exclusive);}
var Ajax={getTransport:function(){return Try.these(function(){return new ActiveXObject('Msxml2.XMLHTTP')},function(){return new ActiveXObject('Microsoft.XMLHTTP')},function(){return new XMLHttpRequest()})||false;},activeRequestCount:0}
Ajax.Responders={responders:[],_each:function(iterator){this.responders._each(iterator);},register:function(responderToAdd){if(!this.include(responderToAdd))
this.responders.push(responderToAdd);},unregister:function(responderToRemove){this.responders=this.responders.without(responderToRemove);},dispatch:function(callback,request,transport,json){this.each(function(responder){if(responder[callback]&&typeof responder[callback]=='function'){try{responder[callback].apply(responder,[request,transport,json]);}catch(e){}}});}};Object.extend(Ajax.Responders,Enumerable);Ajax.Responders.register({onCreate:function(){Ajax.activeRequestCount++;},onComplete:function(){Ajax.activeRequestCount--;}});Ajax.Base=function(){};Ajax.Base.prototype={setOptions:function(options){this.options={method:'post',asynchronous:true,parameters:''}
Object.extend(this.options,options||{});},responseIsSuccess:function(){return this.transport.status==undefined||this.transport.status==0||(this.transport.status>=200&&this.transport.status<300);},responseIsFailure:function(){return!this.responseIsSuccess();}}
Ajax.Request=Class.create();Ajax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];Ajax.Request.prototype=Object.extend(new Ajax.Base(),{initialize:function(url,options){this.transport=Ajax.getTransport();this.setOptions(options);this.request(url);},request:function(url){var parameters=this.options.parameters||'';if(parameters.length>0)parameters+='&_=';try{this.url=url;if(this.options.method=='get'&&parameters.length>0)
this.url+=(this.url.match(/\?/)?'&':'?')+parameters;if(console)console.log('URL: '+this.url);Ajax.Responders.dispatch('onCreate',this,this.transport);this.transport.open(this.options.method,this.url,this.options.asynchronous);if(this.options.asynchronous){this.transport.onreadystatechange=this.onStateChange.bind(this);setTimeout((function(){this.respondToReadyState(1)}).bind(this),10);}
this.setRequestHeaders();var body=this.options.postBody?this.options.postBody:parameters;this.transport.send(this.options.method=='post'?body:null);}catch(e){(this.options.onException||Prototype.emptyFunction)(this,e);Ajax.Responders.dispatch('onException',this,e);}},setRequestHeaders:function(){var requestHeaders=['X-Requested-With','XMLHttpRequest','X-Prototype-Version',Prototype.Version];if(this.options.method=='post'){requestHeaders.push('Content-type','application/x-www-form-urlencoded');if(this.transport.overrideMimeType)
requestHeaders.push('Connection','close');}
if(this.options.requestHeaders)
requestHeaders.push.apply(requestHeaders,this.options.requestHeaders);for(var i=0;i<requestHeaders.length;i+=2)
this.transport.setRequestHeader(requestHeaders[i],requestHeaders[i+1]);if(console)console.log("REQUEST HEADERS: "+requestHeaders);},onStateChange:function(){var readyState=this.transport.readyState;if(readyState!=1)
this.respondToReadyState(this.transport.readyState);},evalJSON:function(){try{var json=this.transport.getResponseHeader('X-JSON'),object;object=eval(json);return object;}catch(e){}},respondToReadyState:function(readyState){var event=Ajax.Request.Events[readyState];var transport=this.transport,json=this.evalJSON();if(event=='Complete')
(this.options['on'+this.transport.status]||this.options['on'+(this.responseIsSuccess()?'Success':'Failure')]||Prototype.emptyFunction)(transport,json);(this.options['on'+event]||Prototype.emptyFunction)(transport,json);Ajax.Responders.dispatch('on'+event,this,transport,json);if(event=='Complete')
this.transport.onreadystatechange=Prototype.emptyFunction;}});Ajax.Updater=Class.create();Ajax.Updater.ScriptFragment='(?:<script.*?>)((\n|.)*?)(?:<\/script>)';Object.extend(Object.extend(Ajax.Updater.prototype,Ajax.Request.prototype),{initialize:function(container,url,options){this.containers={success:container.success?$(container.success):$(container),failure:container.failure?$(container.failure):(container.success?null:$(container))}
this.transport=Ajax.getTransport();this.setOptions(options);var onComplete=this.options.onComplete||Prototype.emptyFunction;this.options.onComplete=(function(transport,object){this.updateContent();onComplete(transport,object);}).bind(this);this.request(url);},updateContent:function(){var receiver=this.responseIsSuccess()?this.containers.success:this.containers.failure;var match=new RegExp(Ajax.Updater.ScriptFragment,'img');var response=this.transport.responseText.replace(match,'');var scripts=this.transport.responseText.match(match);if(receiver){if(this.options.insertion){new this.options.insertion(receiver,response);}else{receiver.innerHTML=response;}}
if(this.responseIsSuccess()){if(this.onComplete)
setTimeout(this.onComplete.bind(this),10);}
if(this.options.evalScripts&&scripts){match=new RegExp(Ajax.Updater.ScriptFragment,'im');setTimeout((function(){for(var i=0;i<scripts.length;i++)
eval(scripts[i].match(match)[1]);}).bind(this),10);}}});Ajax.PeriodicalUpdater=Class.create();Ajax.PeriodicalUpdater.prototype=Object.extend(new Ajax.Base(),{initialize:function(container,url,options){this.setOptions(options);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start();},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent();},stop:function(){this.updater.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(request){if(this.options.decay){this.decay=(request.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=request.responseText;}
this.timer=setTimeout(this.onTimerEvent.bind(this),this.decay*this.frequency*1000);},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options);}});document.getElementsByClassName=function(className,parentElement){var children=($(parentElement)||document.body).getElementsByTagName('*');return $A(children).inject([],function(elements,child){if(child.className.match(new RegExp("(^|\\s)"+className+"(\\s|$)")))
elements.push(child);return elements;});}
if(!window.Element){var Element=new Object();}
Object.extend(Element,{visible:function(element){return $(element).style.display!='none';},toggle:function(){for(var i=0;i<arguments.length;i++){var element=$(arguments[i]);Element[Element.visible(element)?'hide':'show'](element);}},hide:function(){for(var i=0;i<arguments.length;i++){var element=$(arguments[i]);element.style.display='none';}},show:function(){for(var i=0;i<arguments.length;i++){var element=$(arguments[i]);element.style.display='';}},remove:function(element){element=$(element);element.parentNode.removeChild(element);},getHeight:function(element){element=$(element);return element.offsetHeight;},classNames:function(element){return new Element.ClassNames(element);},hasClassName:function(element,className){if(!(element=$(element)))return;return Element.classNames(element).include(className);},addClassName:function(element,className){if(!(element=$(element)))return;return Element.classNames(element).add(className);},removeClassName:function(element,className){if(!(element=$(element)))return;return Element.classNames(element).remove(className);},cleanWhitespace:function(element){element=$(element);for(var i=0;i<element.childNodes.length;i++){var node=element.childNodes[i];if(node.nodeType==3&&!/\S/.test(node.nodeValue))
Element.remove(node);}},empty:function(element){return $(element).innerHTML.match(/^\s*$/);},scrollTo:function(element){element=$(element);var x=element.x?element.x:element.offsetLeft,y=element.y?element.y:element.offsetTop;window.scrollTo(x,y);},getStyle:function(element,style){element=$(element);var value=element.style[style.camelize()];if(!value){if(document.defaultView&&document.defaultView.getComputedStyle){var css=document.defaultView.getComputedStyle(element,null);value=css?css.getPropertyValue(style):null;}else if(element.currentStyle){value=element.currentStyle[style.camelize()];}}
if(window.opera&&['left','top','right','bottom'].include(style))
if(Element.getStyle(element,'position')=='static')value='auto';return value=='auto'?null:value;},getDimensions:function(element){element=$(element);if(Element.getStyle(element,'display')!='none')
return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;els.visibility='hidden';els.position='absolute';els.display='';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display='none';els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},makePositioned:function(element){element=$(element);var pos=Element.getStyle(element,'position');if(pos=='static'||!pos){element._madePositioned=true;element.style.position='relative';if(window.opera){element.style.top=0;element.style.left=0;}}},undoPositioned:function(element){element=$(element);if(element._madePositioned){element._madePositioned=undefined;element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right='';}},makeClipping:function(element){element=$(element);if(element._overflow)return;element._overflow=element.style.overflow;if((Element.getStyle(element,'overflow')||'visible')!='hidden')
element.style.overflow='hidden';},undoClipping:function(element){element=$(element);if(element._overflow)return;element.style.overflow=element._overflow;element._overflow=undefined;}});var Toggle=new Object();Toggle.display=Element.toggle;Abstract.Insertion=function(adjacency){this.adjacency=adjacency;}
Abstract.Insertion.prototype={initialize:function(element,content){this.element=$(element);this.content=content;if(this.adjacency&&this.element.insertAdjacentHTML){try{this.element.insertAdjacentHTML(this.adjacency,this.content);}catch(e){if(this.element.tagName.toLowerCase()=='tbody'){this.insertContent(this.contentFromAnonymousTable());}else{throw e;}}}else{this.range=this.element.ownerDocument.createRange();if(this.initializeRange)this.initializeRange();this.insertContent([this.range.createContextualFragment(this.content)]);}},contentFromAnonymousTable:function(){var div=document.createElement('div');div.innerHTML='<table><tbody>'+this.content+'</tbody></table>';return $A(div.childNodes[0].childNodes[0].childNodes);}}
var Insertion=new Object();Insertion.Before=Class.create();Insertion.Before.prototype=Object.extend(new Abstract.Insertion('beforeBegin'),{initializeRange:function(){this.range.setStartBefore(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element);}).bind(this));}});Insertion.Top=Class.create();Insertion.Top.prototype=Object.extend(new Abstract.Insertion('afterBegin'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(true);},insertContent:function(fragments){fragments.reverse().each((function(fragment){this.element.insertBefore(fragment,this.element.firstChild);}).bind(this));}});Insertion.Bottom=Class.create();Insertion.Bottom.prototype=Object.extend(new Abstract.Insertion('beforeEnd'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.appendChild(fragment);}).bind(this));}});Insertion.After=Class.create();Insertion.After.prototype=Object.extend(new Abstract.Insertion('afterEnd'),{initializeRange:function(){this.range.setStartAfter(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element.nextSibling);}).bind(this));}});Element.ClassNames=Class.create();Element.ClassNames.prototype={initialize:function(element){this.element=$(element);},_each:function(iterator){this.element.className.split(/\s+/).select(function(name){return name.length>0;})._each(iterator);},set:function(className){this.element.className=className;},add:function(classNameToAdd){if(this.include(classNameToAdd))return;this.set(this.toArray().concat(classNameToAdd).join(' '));},remove:function(classNameToRemove){if(!this.include(classNameToRemove))return;var res=this.select(function(className){return className!=classNameToRemove;});this.set(res.join(' '));},toString:function(){return this.toArray().join(' ');}}
Object.extend(Element.ClassNames.prototype,Enumerable);var Field={clear:function(){for(var i=0;i<arguments.length;i++)
$(arguments[i]).value='';},focus:function(element){$(element).focus();},present:function(){for(var i=0;i<arguments.length;i++)
if($(arguments[i]).value=='')return false;return true;},select:function(element){$(element).select();},activate:function(element){$(element).focus();$(element).select();}}
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='';}},focusFirstElement:function(form){form=$(form);var elements=Form.getElements(form);for(var i=0;i<elements.length;i++){var element=elements[i];if(element.type!='hidden'&&!element.disabled){Field.activate(element);break;}}},reset:function(form){$(form).reset();}}
Form.Element={serialize:function(element){element=$(element);var method=element.tagName.toLowerCase();var parameter=Form.Element.Serializers[method](element);if(parameter)
return encodeURIComponent(parameter[0])+'='+
encodeURIComponent(parameter[1]);},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];}}
var $F=Form.Element.getValue;Abstract.TimedObserver=function(){}
Abstract.TimedObserver.prototype={initialize:function(element,frequency,callback){this.frequency=frequency;this.element=$(element);this.callback=callback;this.lastValue=this.getValue();this.registerCallback();},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},onTimerEvent:function(){var value=this.getValue();if(this.lastValue!=value){this.callback(this.element,value);this.lastValue=value;}}}
Form.Element.Observer=Class.create();Form.Element.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.Element.getValue(this.element);}});Form.Observer=Class.create();Form.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.serialize(this.element);}});Abstract.EventObserver=function(){}
Abstract.EventObserver.prototype={initialize:function(element,callback){this.element=$(element);this.callback=callback;this.lastValue=this.getValue();if(this.element.tagName.toLowerCase()=='form')
this.registerFormCallbacks();else
this.registerCallback(this.element);},onElementEvent:function(){var value=this.getValue();if(this.lastValue!=value){this.callback(this.element,value);this.lastValue=value;}},registerFormCallbacks:function(){var elements=Form.getElements(this.element);for(var i=0;i<elements.length;i++)
this.registerCallback(elements[i]);},registerCallback:function(element){if(element.type){switch(element.type.toLowerCase()){case'checkbox':case'radio':element.target=this;element.prev_onclick=element.onclick||Prototype.emptyFunction;element.onclick=function(){this.prev_onclick();this.target.onElementEvent();}
break;case'password':case'text':case'textarea':case'select-one':case'select-multiple':element.target=this;element.prev_onchange=element.onchange||Prototype.emptyFunction;element.onchange=function(){this.prev_onchange();this.target.onElementEvent();}
break;}}}}
Form.Element.EventObserver=Class.create();Form.Element.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.Element.getValue(this.element);}});Form.EventObserver=Class.create();Form.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.serialize(this.element);}});if(!window.Event){var Event=new Object();}
Object.extend(Event,{KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,element:function(event){return event.target||event.srcElement;},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));},pointerX:function(event){return event.pageX||(event.clientX+
(document.documentElement.scrollLeft||document.body.scrollLeft));},pointerY:function(event){return event.pageY||(event.clientY+
(document.documentElement.scrollTop||document.body.scrollTop));},stop:function(event){if(event.preventDefault){event.preventDefault();event.stopPropagation();}else{event.returnValue=false;event.cancelBubble=true;}},findElement:function(event,tagName){var element=Event.element(event);while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase())))
element=element.parentNode;return element;},observers:false,_observeAndCache:function(element,name,observer,useCapture){if(!this.observers)this.observers=[];if(element.addEventListener){this.observers.push([element,name,observer,useCapture]);element.addEventListener(name,observer,useCapture);}else if(element.attachEvent){this.observers.push([element,name,observer,useCapture]);element.attachEvent('on'+name,observer);}},unloadCache:function(){if(!Event.observers)return;for(var i=0;i<Event.observers.length;i++){Event.stopObserving.apply(this,Event.observers[i]);Event.observers[i][0]=null;}
Event.observers=false;},observe:function(element,name,observer,useCapture){var element=$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent))
name='keydown';this._observeAndCache(element,name,observer,useCapture);},stopObserving:function(element,name,observer,useCapture){var element=$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.detachEvent))
name='keydown';if(element.removeEventListener){element.removeEventListener(name,observer,useCapture);}else if(element.detachEvent){element.detachEvent('on'+name,observer);}}});Event.observe(window,'unload',Event.unloadCache,false);var Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;},realOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode;}while(element);return[valueL,valueT];},cumulativeOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);return[valueL,valueT];},positionedOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;if(element){p=Element.getStyle(element,'position');if(p=='relative'||p=='absolute')break;}}while(element);return[valueL,valueT];},offsetParent:function(element){if(element.offsetParent)return element.offsetParent;if(element==document.body)return element;while((element=element.parentNode)&&element!=document.body)
if(Element.getStyle(element,'position')!='static')
return element;return document.body;},within:function(element,x,y){if(this.includeScrollOffsets)
return this.withinIncludingScrolloffsets(element,x,y);this.xcomp=x;this.ycomp=y;this.offset=this.cumulativeOffset(element);return(y>=this.offset[1]&&y<this.offset[1]+element.offsetHeight&&x>=this.offset[0]&&x<this.offset[0]+element.offsetWidth);},withinIncludingScrolloffsets:function(element,x,y){var offsetcache=this.realOffset(element);this.xcomp=x+offsetcache[0]-this.deltaX;this.ycomp=y+offsetcache[1]-this.deltaY;this.offset=this.cumulativeOffset(element);return(this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+element.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+element.offsetWidth);},overlap:function(mode,element){if(!mode)return 0;if(mode=='vertical')
return((this.offset[1]+element.offsetHeight)-this.ycomp)/element.offsetHeight;if(mode=='horizontal')
return((this.offset[0]+element.offsetWidth)-this.xcomp)/element.offsetWidth;},clone:function(source,target){source=$(source);target=$(target);target.style.position='absolute';var offsets=this.cumulativeOffset(source);target.style.top=offsets[1]+'px';target.style.left=offsets[0]+'px';target.style.width=source.offsetWidth+'px';target.style.height=source.offsetHeight+'px';},page:function(forElement){var valueT=0,valueL=0;var element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
if(Element.getStyle(element,'position')=='absolute')break;}while(element=element.offsetParent);element=forElement;do{valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;}while(element=element.parentNode);return[valueL,valueT];},clone:function(source,target){var options=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{})
source=$(source);var p=Position.page(source);target=$(target);var delta=[0,0];var parent=null;if(Element.getStyle(target,'position')=='absolute'){parent=Position.offsetParent(target);delta=Position.page(parent);}
if(parent==document.body){delta[0]-=document.body.offsetLeft;delta[1]-=document.body.offsetTop;}
if(options.setLeft)target.style.left=(p[0]-delta[0]+options.offsetLeft)+'px';if(options.setTop)target.style.top=(p[1]-delta[1]+options.offsetTop)+'px';if(options.setWidth)target.style.width=source.offsetWidth+'px';if(options.setHeight)target.style.height=source.offsetHeight+'px';},absolutize:function(element){element=$(element);if(element.style.position=='absolute')return;Position.prepare();var offsets=Position.positionedOffset(element);var top=offsets[1];var left=offsets[0];var width=element.clientWidth;var height=element.clientHeight;element._originalLeft=left-parseFloat(element.style.left||0);element._originalTop=top-parseFloat(element.style.top||0);element._originalWidth=element.style.width;element._originalHeight=element.style.height;element.style.position='absolute';element.style.top=top+'px';;element.style.left=left+'px';;element.style.width=width+'px';;element.style.height=height+'px';;},relativize:function(element){element=$(element);if(element.style.position=='relative')return;Position.prepare();element.style.position='relative';var top=parseFloat(element.style.top||0)-(element._originalTop||0);var left=parseFloat(element.style.left||0)-(element._originalLeft||0);element.style.top=top+'px';element.style.left=left+'px';element.style.height=element._originalHeight;element.style.width=element._originalWidth;}}
if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)){Position.cumulativeOffset=function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
if(Element.getStyle(element,'position')=='absolute')break;element=element.offsetParent;}while(element);return[valueL,valueT];}}
page_init={scripts:{},run:function(){for(var prop in this.scripts){if(typeof(this.scripts[prop])=='function'){if(window.attachEvent)
window.attachEvent("onload",this.scripts[prop]);else
window.addEventListener("load",this.scripts[prop],false);}}}};browser={detect:function(){var sUserAgent=navigator.userAgent;var fAppVersion=parseFloat(navigator.appVersion);this.isOpera=sUserAgent.indexOf("Opera")>-1;this.isMinOpera4=this.isMinOpera5=this.isMinOpera6=this.isMinOpera7=this.isMinOpera7_5=false;if(this.isOpera){var fOperaVersion;if(navigator.appName=="Opera"){fOperaVersion=fAppVersion;}else{var reOperaVersion=new RegExp("Opera (\\d+\\.\\d+)");reOperaVersion.test(sUserAgent);fOperaVersion=parseFloat(RegExp["$1"]);}
this.isMinOpera4=fOperaVersion>=4;this.isMinOpera5=fOperaVersion>=5;this.isMinOpera6=fOperaVersion>=6;this.isMinOpera7=fOperaVersion>=7;this.isMinOpera7_5=fOperaVersion>=7.5;}
this.isKHTML=sUserAgent.indexOf("KHTML")>-1||sUserAgent.indexOf("Konqueror")>-1||sUserAgent.indexOf("AppleWebKit")>-1;this.isSafari=this.isMinSafari1=this.isMinSafari1_2=false;this.isKonq=this.isMinKonq2_2=this.isMinKonq3=this.isMinKonq3_1=this.isMinKonq3_2=false;if(this.isKHTML){this.isSafari=sUserAgent.indexOf("AppleWebKit")>-1||false;this.isKonq=sUserAgent.indexOf("Konqueror")>-1||false;if(this.isSafari){var reAppleWebKit=new RegExp("AppleWebKit\\/(\\d+(?:\\.\\d*)?)");reAppleWebKit.test(sUserAgent);var fAppleWebKitVersion=parseFloat(RegExp["$1"]);this.isMinSafari1=fAppleWebKitVersion>=85;this.isMinSafari1_2=fAppleWebKitVersion>=124;}else if(this.isKonq){var reKonq=new RegExp("Konqueror\\/(\\d+(?:\\.\\d+(?:\\.\\d)?)?)");reKonq.test(sUserAgent);this.isMinKonq2_2=this.compareVersions(RegExp["$1"],"2.2")>=0;this.isMinKonq3=this.compareVersions(RegExp["$1"],"3.0")>=0;this.isMinKonq3_1=this.compareVersions(RegExp["$1"],"3.1")>=0;this.isMinKonq3_2=this.compareVersions(RegExp["$1"],"3.2")>=0;}}
this.isIE=sUserAgent.indexOf("compatible")>-1&&sUserAgent.indexOf("MSIE")>-1&&!this.isOpera;this.isMinIE4=this.isMinIE5=this.isMinIE5_5=this.isMinIE6=false;if(this.isIE){var reIE=new RegExp("MSIE (\\d+\\.\\d+);");reIE.test(sUserAgent);var fIEVersion=parseFloat(RegExp["$1"]);this.isMinIE4=fIEVersion>=4;this.isMinIE5=fIEVersion>=5;this.isMinIE5_5=fIEVersion>=5.5;this.isMinIE6=fIEVersion>=6.0;}
this.isMoz=sUserAgent.indexOf("Gecko")>-1&&!this.isKHTML;this.isMinMoz1=this.isMinMoz1_4=this.isMinMoz1_5=false;if(this.isMoz){var reMoz=new RegExp("rv:(\\d+\\.\\d+(?:\\.\\d+)?)");reMoz.test(sUserAgent);this.isMinMoz1=this.compareVersions(RegExp["$1"],"1.0")>=0;this.isMinMoz1_4=this.compareVersions(RegExp["$1"],"1.4")>=0;this.isMinMoz1_5=this.compareVersions(RegExp["$1"],"1.5")>=0;}
this.isNS4=!this.isIE&&!this.isOpera&&!this.isMoz&&!this.isKHTML&&(sUserAgent.indexOf("Mozilla")==0)&&(navigator.appName=="Netscape")&&(fAppVersion>=4.0&&fAppVersion<5.0);this.isMinNS4=this.isMinNS4_5=this.isMinNS4_7=this.isMinNS4_8=false;if(this.isNS4){this.isMinNS4=true;this.isMinNS4_5=fAppVersion>=4.5;this.isMinNS4_7=fAppVersion>=4.7;this.isMinNS4_8=fAppVersion>=4.8;}
this.isWin=(navigator.platform=="Win32")||(navigator.platform=="Windows");this.isMac=(navigator.platform=="Mac68K")||(navigator.platform=="MacPPC")||(navigator.platform=="Macintosh");this.isUnix=(navigator.platform=="X11")&&!this.isWin&&!this.isMac;this.isWin95=this.isWinNT4=this.isWin2K=this.isWinME=this.isWinXP=false;this.isMac68K=this.isMacPPC=false;this.isSunOS=this.isMinSunOS4=this.isMinSunOS5=this.isMinSunOS5_5=false;if(this.isWin){this.isWin95=sUserAgent.indexOf('Win95')>-1||sUserAgent.indexOf("Windows 95")>-1;this.isWin98=sUserAgent.indexOf('Win98')>-1||sUserAgent.indexOf("Windows 98")>-1;this.isWinME=sUserAgent.indexOf('Win 9x 4.90')>-1||sUserAgent.indexOf("Windows ME")>-1;this.isWin2K=sUserAgent.indexOf('Windows NT 5.0')>-1||sUserAgent.indexOf("Windows 2000")>-1;this.isWinXP=sUserAgent.indexOf('Windows NT 5.1')>-1||sUserAgent.indexOf("Windows XP")>-1;this.isWinNT4=sUserAgent.indexOf('WinNT')>-1||sUserAgent.indexOf("Windows NT")>-1||sUserAgent.indexOf("WinNT4.0")>-1||sUserAgent.indexOf("Windows NT 4.0")>-1&&(!this.isWinME&&!this.isWin2K&&!this.isWinXP);}
if(this.isMac){this.isMac68K=sUserAgent.indexOf('Mac_68000')>-1||sUserAgent.indexOf("68K")>-1;this.isMacPPC=sUserAgent.indexOf('Mac_PowerPC')>-1||sUserAgent.indexOf("PPC")>-1;}
if(this.isUnix){this.isSunOS=sUserAgent.indexOf('SunOS')>-1;if(this.isSunOS){var reSunOS=new RegExp("SunOS (\\d+\\.\\d+(?:\\.\\d+)?)");reSunOS.test(sUserAgent);this.isMinSunOS4=this.compareVersions(RegExp["$1"],"4.0")>=0;this.isMinSunOS5=this.compareVersions(RegExp["$1"],"5.0")>=0;this.isMinSunOS5_5=this.compareVersions(RegExp["$1"],"5.5")>=0;}}
this.hasFlash=this.hasFlash6=this.hasFlash7=this.hasFlash8=this.hasFlash9;var versionArray=[];for(var i=0;i<navigator.plugins.length;i++){if(navigator.plugins[i].filename=="NPSWF32.dll"||navigator.plugins[i].filename=="flash.ocx"){this.hasFlash=true;}
var pluginIdent=navigator.plugins[i].description.split(" ");if(pluginIdent[0]=="Shockwave"&&pluginIdent[1]=="Flash"){var isSwfEnabled=true;versionArray=pluginIdent[2].split(".");}}
if(navigator.mimeTypes.length>0){this.hasFlash=(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin!=null);}else if(window.ActiveXObject){try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash");this.hasFlash=true;}catch(oError){}}
this.hasFlash6=versionArray[0]>=6;this.hasFlash7=versionArray[0]>=7;this.hasFlash8=versionArray[0]>=8;this.hasFlash9=versionArray[0]>=9;},compareVersions:function(sVersion1,sVersion2){var aVersion1=sVersion1.split(".");var aVersion2=sVersion2.split(".");if(aVersion1.length>aVersion2.length){for(var i=0;i<aVersion1.length-aVersion2.length;i++){aVersion2.push("0");}}else if(aVersion2.length<aVersion2.length){for(var i=0;i<aVersion1.length-aVersion1.length;i++){aVersion1.push("0");}}
for(var i=0;i<aVersion1.length;i++){if(aVersion1[i]<aVersion2[i]){return-1;}else if(aVersion1[i]>aVersion2[i]){return 1;}}
return 0;}}
browser.detect();ApexUtil={print:function(target){if(target){if(browser.isIE==true){document[target].focus();document[target].print();}else{window.frames[target].focus();window.frames[target].print();}}else{if(browser.isIE)document.print();else window.print();}},centerOnScreen:function(elmt,dims){if(dims){var w=dims.width;var h=dims.height;}else{var w=elmt.offsetWidth;var h=elmt.offsetHeight;}
var pageScroll=this.getPageScroll();var left=((screen_overlay.arrayPageSize[2]-w)/2);var top=((screen_overlay.arrayPageSize[3]-h)/2);elmt.style.top=(top<0)?"0px":(pageScroll[1]+top)+"px";elmt.style.left=(top<0)?"0px":left+"px";},checkScrollNecessary:function(target,link){if(document.layers){var coords=RicoUtil.toDocumentPosition($(link));window.scrollTo(coords.x,coords.y);return false;}else if(!document.all&&document.getElementById){var coords=RicoUtil.toDocumentPosition($(link));window.scrollTo(coords.x,coords.y);return false;}
else
return true;},registerEvent:function(target,func){if(window.attachEvent)
window.attachEvent("on"+target,func);else
window.addEventListener(target,func,false);},switchImage:function(id,src){$(id).src=src;},getPageScroll:function(){var yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;}else if(document.body){yScroll=document.body.scrollTop;}
arrayPageScroll=new Array('',yScroll)
return arrayPageScroll;},switchDiv:function(off,on){if(typeof(off)=='object'){for(var i=0;i<off.length;i++){$(off[i]).style.display='none';}}else{$(off).style.display='none';}
if(typeof(on)=='object'){for(var i=0;i<on.length;i++){var str=on[i];$(str).style.display='';}}else{$(on).style.display='';}},getPageSize:function(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=document.body.scrollWidth;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){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;}
arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight)
return arrayPageSize;},addClass:function(elmt,str){var classes=elmt.className.split(" ");if(classes.indexOf(str)==-1){classes.push(str);}
return classes.join(" ");},removeClass:function(elmt,str){var classes=elmt.className.split(" ");if(classes.indexOf(str)!=-1){var temp=[];for(var i=0;i<classes.length;++i){if(classes[i]!=str){temp.push(classes[i]);}}
classes=temp;}
return classes.join(" ");},replaceClass:function(elmt,target,str){var classes=elmt.className.split(" ");for(var i=0;i<classes.length;++i){if(classes[i]==target){classes[i]=str;}}
return classes.join(" ");},extractForm:function(form,params,encKey){var elmts=form.elements;for(var i=0;i<elmts.length;i++){var e=elmts[i];if(!e.getAttribute('noparse')){if((params instanceof Array)){switch(e.type){case'checkbox':if(e.getAttribute('usevalue')){if(e.checked){params.push(e.name+'='+e.value);}}else{if(e.checked){params.push(e.name+'=1');}else{params.push(e.name+'=0');}}
break;case'radio':if(e.checked){params.push(e.name+'='+e.value);}
break;case'select-one':if(e.value){params.push(e.name+'='+e.value);}
break;case'select-multiple':if(e.name){var selected=this.getSelectedIndexes($(e.id),true);for(var j=0;j<selected.length;++j){params.push(e.name+'[] ='+e.options[j].value);}}
break;case'hidden':if(e.value){params.push(e.name+'='+e.value);}
break;case'text':if(e.value){params.push(e.name+'='+e.value);}
break;case'password':if(e.getAttribute('encrypt')==1&&encKey){var res=encodeStr(encKey,e.value)
params.push(e.name+'='+res.join('|'));}else{params.push(e.name+'='+e.value);}
break;case'textarea':if(typeof(txtEditor)!='undefined'){if(typeof(txtEditor.save)!='undefined')txtEditor.save(e.id);}
if(e.value){params.push(e.name+'='+e.value);}
break;}}else{switch(e.type){case'checkbox':if(e.getAttribute('usevalue')){if(e.checked){params[e.name]=e.value;}}else{if(e.checked){params[e.name]=true}else{params[e.name]=0;}}
break;case'radio':if(e.checked){params[e.name]=e.value;}
break;case'select-one':if(e.value){params[e.name]=e.value;}
break;case'hidden':if(e.value){params[e.name]=e.value;}
break;case'text':if(e.value){params[e.name]=e.value;}
break;case'password':if(e.getAttribute('encrypt')==1&&encKey){var res=encodeStr(encKey,e.value)
params[e.name]=res.join('|');}else{params[e.name]=e.value;}
break;case'textarea':if(typeof(txtEditor)!='undefined'){if(typeof(txtEditor.save)!='undefined')txtEditor.save(e.id);}
if(e.value){params[e.name]=e.value;}
break;}}}}},toggleDiv:function(header,id){var target=$(id);var cur_state;var state;if(target.style.display){target.style.display='';cur_state="closed";state="open";}else{target.style.display='none';cur_state="open";state="closed";}
if(header){for(var i=0;i<header.childNodes.length;++i){var node=header.childNodes[i];var regEx=new RegExp(cur_state);if(regEx.test(node.className)){node.className=this.replaceClass(node,cur_state,state);}}}},formatLabel:function(label,chars){var tail_len=Math.floor(chars*0.50);var head_len=chars-tail_len-3;var len=label.length;if(len>chars){var diff=len-chars;var start=label.substr(0,head_len);var end=label.substr(len-tail_len,tail_len);label=start+"..."+end;}
return label;},trim:function(str){return str.replace(/^\s*|\s*$/g,"");},evalScripts:function(elmt,is_string){if(elmt){if(browser.isIE){var match=new RegExp(Ajax.Updater.ScriptFragment,'img');var str=(is_string)?elmt:elmt.innerHTML;var scripts=str.match(match);match=new RegExp(Ajax.Updater.ScriptFragment,'im');for(var i=0;i<scripts.length;i++){eval(scripts[i].match(match)[1]);}}else{var scripts=elmt.getElementsByTagName('script');var pattern=/&amp;/g;for(var i=0;i<scripts.length;i++){var code=(browser.isIE)?scripts[i].innerHTML:RicoUtil.getContentAsString(scripts[i]);code=code.replace(pattern,'&');eval(code);}}}},getSelectedIndexes:function(select_box,force){var arrIndexes=new Array();if(select_box.options){for(var i=0;i<select_box.options.length;i++){if(force){if(select_box.options[i].selected||select_box.getAttribute('active')){select_box.options[i].setAttribute('selected',1);arrIndexes.push(i);}}else{if(select_box.options[i].selected){select_box.options[i].setAttribute('selected',1);arrIndexes.push(i);}}}}
return arrIndexes;},selectBoxMove:function(from,to,mark){var src=$(from);var target=$(to);if(typeof(target)!=='undefined'){var to_move=this.getSelectedIndexes(src);for(var i=to_move.length-1;i>=0;i--){var opt=src.options[parseInt(to_move[i])];if(opt!=null){opt.selected=false;target.appendChild(opt);}}
if(mark){this.selectAll(mark);}}},selectAll:function(select_box){var target=$(select_box);if(typeof(target)!=='undefined'){for(var i=0;i<target.options.length;i++){target[i].selected=true;}}},removeAll:function(select_box){$(select_box).innerHTML='';},setChecks:function(target,state){var children=$(target).getElementsByTagName('input');for(var i=0;i<children.length;i++){children[i].checked=state;}},setInputs:function(targets,values){var val=values.split(':');for(var i=0;i<targets.length;i++){if(val[i]){$(targets[i]).value=val[i];}}},cloneNode:function(src,target,num){var src_node=$(src);var target_wrapper=$(target);if(num<1){Element.hide(target_wrapper);target_wrapper.innerHTML='';}else{if(src_node&&target_wrapper){var src=src_node.innerHTML;var res="";for(var i=0;i<num;++i){res+=src.replace(/%i/g,i+1);}
target_wrapper.innerHTML=res;Element.show(target_wrapper);}}},defaultText:function(type,id,insertText,class,color){if($(id)){var d=$(id);if(type=='focus'){if(d.value==insertText){if(!color)color='#333333';d.style.color=color;d.value='';if(class){Element.removeClassName(id,class);}}}else if(!d.value){if(!color){d.style.color='#aaaaaa';}
d.value=insertText;if(class){Element.addClassName(id,class);}}}}};String.prototype.trim=function(){return this.replace(/^\s*|\s*$/g,'');}
String.prototype.ltrim=function(){return this.replace(/^\s*/g,'');}
String.prototype.rtrim=function(){return this.replace(/\s*$/g,'');}
Array.prototype.indexOf=function(n){for(var i=0;i<this.length;i++){if(this[i]===n){return i;}}return-1;}
Array.prototype.lastIndexOf=function(n){var i=this.length;while(i--){if(this[i]===n){return i;}}return-1;}
Array.prototype.forEach=function(f){var i=this.length,j,l=this.length;for(i=0;i<l;i++){if((j=this[i])){f(j);}}};Array.prototype.insert=function(i,v){if(i>=0){var a=this.slice(),b=a.splice(i);a[i]=value;return a.concat(b);}}
Array.prototype.shuffle=function(){var i=this.length,j,t;while(i--){j=Math.floor((i+1)*Math.random());t=arr[i];arr[i]=arr[j];arr[j]=t;}}
Array.prototype.unique=function(){var a=[],i;this.sort();for(i=0;i<this.length;i++){if(this[i]!==this[i+1]){a[a.length]=this[i];}}return a;}
if(typeof Array.prototype.concat==='undefined'){Array.prototype.concat=function(a){for(var i=0,b=this.copy();i<a.length;i++){b[b.length]=a[i];}return b;};}
if(typeof Array.prototype.copy==='undefined'){Array.prototype.copy=function(a){var a=[],i=this.length;while(i--){a[i]=(typeof this[i].copy!=='undefined')?this[i].copy():this[i];}return a;};}
if(typeof Array.prototype.pop==='undefined'){Array.prototype.pop=function(){var b=this[this.length-1];this.length--;return b;};}
if(typeof Array.prototype.push==='undefined'){Array.prototype.push=function(){for(var i=0,b=this.length,a=arguments;i<a.length;i++){this[b+i]=a[i];}return this.length;};}
if(typeof Array.prototype.shift==='undefined'){Array.prototype.shift=function(){for(var i=0,b=this[0];i<this.length-1;i++){this[i]=this[i+1];}this.length--;return b;};}
if(typeof Array.prototype.slice==='undefined'){Array.prototype.slice=function(a,c){var i=0,b,d=[];if(!c){c=this.length;}if(c<0){c=this.length+c;}if(a<0){a=this.length-a;}if(c<a){b=a;a=c;c=b;}for(i;i<c-a;i++){d[i]=this[a+i];}return d;};}
if(typeof Array.prototype.splice==='undefined'){Array.prototype.splice=function(a,c){var i=0,e=arguments,d=this.copy(),f=a;if(!c){c=this.length-a;}for(i;i<e.length-2;i++){this[a+i]=e[i+2];}for(a;a<this.length-c;a++){this[a+e.length-2]=d[a-c];}this.length-=c-e.length+2;return d.slice(f,f+c);};}
if(typeof Array.prototype.unshift==='undefined'){Array.prototype.unshift=function(a){this.reverse();var b=this.push(a);this.reverse();return b;};}
if(typeof Array.prototype.inArray==='undefined'){Array.prototype.inArray=function(a){var i=0,c=this.length;for(i;i<c;i++){if(this[i]==a)return i;}return-1;}}
