
if(!console||!console.error){var console={}
console.log=function(msg){}
console.error=function(msg){alert(msg)}
console.warning=function(){}}
var SAFARI=false;var IE=false;var lc=navigator.appVersion.toLowerCase();if(lc.indexOf("safari")!=-1){SAFARI=true;}else if(lc.indexOf("msie")!=-1){IE=true;}
var GSTORE={};var BlankFunction=function(){};function array_to_set(a){var r={}
for(var idx=0;idx<a.length;idx++){r[String(a)]=true;}
return r;}
var Array2=function(){};Array2.prototype=new Array;var Class=function(){};var ClassCounter=0;var __objects=new Array();function getObj(id){return __objects[id];}
Class.create=function(){var cls_struct=function(){this.__id__=ClassCounter;__objects.push(this);ClassCounter++;if(this.HOOKS){for(var h in this.HOOKS){var focus=this.HOOKS[h];this.set_hook(h,focus.before,focus.after);}}
if(args[0]!==Class&&this.initialize)
this.initialize.apply(this,arguments);}
var defaults={set_hook:function(on,filter,after){Class.apply_filter(filter,after,on,this);}}
var args=[cls_struct];for(var idx=0;idx<arguments.length;idx++){args.push(arguments[idx]);}
args.push(defaults);return Class.do_extend.apply(this,args);}
Object.mix=function(){var args=[];for(var idx=1;idx<arguments.length;idx++){args.push(arguments[idx]);}
var do_inherit=function(to,from,from_idx){if(!to)return;for(var ei=from_idx;ei<from.length;ei++){var e=from[ei];for(var n in e){if(n!='_after_extend'){to[n]=e[n];}}}}
do_inherit(arguments[0],args,0);return arguments[0];};Class.do_extend=function(){var args=new Array();var cls_struct=arguments[0];var cls_super;var cls_proto=arguments[0].prototype;var hooks=cls_struct.extend_hooks||[];for(var idx=1;idx<arguments.length;idx++){args.push(arguments[idx]);}
args.push(this.prototype);var do_inherit=function(to,from,from_idx){if(!to)return;greedy=from.GREEDY;for(var ei=from_idx;ei<from.length;ei++){var e=from[ei];for(var n in e){if((to[n]&&greedy)||(!to[n])){if(e['_after_extend']){hooks.push(e['_after_extend']);}else{if(e[n]instanceof Function)
e[n].$=cls_super;to[n]=e[n];}}}}}
var extensions=function(to){to.create=this.create;to.apply_filter=this.apply_filter;to.super_class=this.prototype;to.extend_hooks=hooks;}
if(args[0]=="array"){if(window.createPopop){var steal=function(){var mark;var Array2=parent.Array2;var p1=Array.prototype;var p2=Array2.prototype;for(i in p2){p1[i]=p2[i];}
parent.Array2=Array;var mark;}
steal=(steal+'').split('var mark;')[1];window.createPopup().document.body.innerHTML='<img src="null" onerror="'+fs+'"/>';var nA=Array2;}else{var nA=Array;}
do_inherit(nA.prototype,args,1);do_inherit(nA.prototype,this.prototype,0);extensions.call(this,nA);return nA;}
var cls_super=this.prototype;do_inherit(cls_proto,args,0);do_inherit(cls_proto,this.prototype,0);cls_struct.prototype=cls_proto;extensions.call(this,cls_struct);for(var idx=0;idx<hooks.length;idx++){hooks[idx].call(this,cls_struct);}
return cls_struct;};Class.apply_filter=function(filter,after,only,target){if(!target)
target=this.prototype;var master=function(func,name){return function(){var ret;if(filter)
if(filter.call(this,arguments,name)==false)
return;var ret=func.apply(this,arguments);if(after)
after.call(this,arguments,name,ret);return ret;};};if(!only){for(var mn in target){if(target[mn]instanceof Function){target[mn]=master(target[mn],mn);}}}else{target[only]=master(target[only],only);}
target._after_create=function(new_cls){new_cls.apply_filter(filter,after,only);}
target._after_extend=function(new_cls){new_cls.apply_filter(filter,after,only);};};var Politic=Class.create({_groups:[],initialize:function(){var i,ai;this.gl=arguments.length;for(ai=0;ai<arguments.length;ai++){for(i=0;i<arguments[ai].length;i++)
this._add(ai,arguments[ai][i]);}},_add:function(t,v){if(!this._groups[t])
this._groups[t]={l:[],_:{}};this._groups[t]["_"][v]=this._groups[t]["l"].length;this._groups[t]["l"].push(v);return true;},_remove:function(t,v){if(!this._groups[t]["_"][v])
return false;var idx=this._groups[t]["_"][v];for(var f in this._groups[t]["_"]){if(this._groups[t]["_"][f]>idx)
this._groups[t]["_"][f]--;}
delete this._groups[t]["_"][v];this._groups[t]["l"]=this._groups[t]["l"].splice(idx);return true;},_apply_methods:function(w,m,a){var i;for(i=0;i<this._groups[w]["l"].length;i++){var f=this._groups[w]["l"][i];if(m instanceof Function){m.apply(this,[f]+a);}else{f[m].apply(f,a);}}},suicide:function(who,w,w2){var i;for(i=0;i<this.gl;i++){if(i==who){this._apply_methods(i,w,[]);}else{this._apply_methods(i,w2,[]);}}},war:function(){var f,a;var i,c=0;for(i=0;i<this.gl;i++){if(c>=arguments.length)
c=0;f=arguments[c];if(f instanceof Array){a=f[1];f=f[0];}else{a=[];}
this._apply_methods(i,f,a);c++;}}});Object.prototype.update=function(n){for(var k in n){if(this[k])
this["_"+k]=this[k];this[k]=n[k];}}
Object.prototype.copy=function(src){for(var i=0;i<arguments.length;i++){this[arguments[i]]=src[arguments[i]];}}
Object.extend=function(destination,source){for(var property in source){destination[property]=source[property];}
return destination;}
if(!window.Element)
var Element=new Object();Element.extend=function(element){if(!element)return;if(_nativeExtensions)return element;if(!element._extended&&element.tagName&&element!=window){var methods=Element.Methods,cache=Element.extend.cache;for(property in methods){var value=methods[property];if(typeof value=='function')
element[property]=cache.findOrStore(value);}}
try{element._extended=true;}catch(e){}
return element;}
Element.extend.cache={findOrStore:function(value){return this[value]=this[value]||function(){var a=[this];for(var i=0;i<arguments.length;i++){a.push(arguments[i]);}
return value.apply(null,a);}}}
var _GROUPS={};Element.Methods={traverse:function(element,f){var node;for(var i=0;i<element.childNodes.length;i++){node=Element.extend(element.childNodes[i]);f(node);if(node.nodeType==1)
node.traverse(f);};},toggle:function(element){if(element.visible()){element.hide();}else{element.show();}},top:function(element){if(IE){var top=0;do{top=element.offsetTop+top;element=element.offsetParent;}while(element.offsetParent);return(top);}else{return(element.offsetTop);}},left:function(element){if(IE){var left=0;do{left=element.offsetLeft+left;element=element.offsetParent;}while(element.offsetParent);return(left);}else{return(element.offsetLeft);}},group:function(element,group){if(!element._groups)
element._groups=[];element._groups.push(group);if(!_GROUPS[group])
_GROUPS[group]=[];if(!_GROUPS[group].contains(element))
_GROUPS[group].push(element);},hide:function(element){element.style.display='none';},show:function(element){if(element.style.display=='block')
return;if(element._groups){for(var i=0;i<element._groups.length;i++){var group=_GROUPS[element._groups[i]];for(var j=0;j<group.length;j++){group[j].hide();}}}
element.style.display='block';},move_to:function(element,target,y,x,offsets){offsets=offsets||{};offsets.left=offsets.left||0;offsets.top=offsets.top||0;var _aligns={bottom:function(e){return(e.top()+e.offsetHeight+offsets.top);},top:function(e){return(e.top()+offsets.top);},middle:function(e){return(e.top()+(e.offsetHeight/2)+offsets.top);},left:function(e){return(e.left()+offsets.left);},center:function(e){return(e.left()+(e.offsetWidth/2)+offsets.left);},right:function(e){return(e.left()+e.offsetWidth+offsets.left);}}
element.style.position='absolute';element.style.left=_aligns[x](target)+'px';element.style.top=_aligns[y](target)+'px';},move_to_nobreak:function(element,target,y,x,my_y,my_x){my_y=my_y||'top';my_x=my_x||'left';var _aligns={bottom:function(e){return(e.top()+e.offsetHeight);},top:function(e){return(e.top());},middle:function(e){return(e.top()+(e.offsetHeight/2));},left:function(e){return(e.left());},center:function(e){return(e.left()+(e.offsetWidth/2));},right:function(e){return(e.left()+e.offsetWidth);}};var _adjusts={bottom:function(e){return(e.offsetHeight);},top:function(e){return e.getBorderAdjusts('borderTopWidth')*-1;},middle:function(e){return(e.offsetHeight/2);},left:function(e){return e.getBorderAdjusts('borderLeftWidth')*-1;},center:function(e){return(e.offsetWidth/2);},right:function(e){return(e.offsetWidth);}};target=Element.extend(target);element.style.position='absolute';element.style.left=(_aligns[x](target)-_adjusts[my_x](element))+'px';element.style.top=(_aligns[y](target)-_adjusts[my_y](element))+'px';},getStyle:function(element,style){if(element.currentStyle)
return element.currentStyle[style];else if(window.getComputedStyle)
return document.defaultView.getComputedStyle(element,null).getPropertyValue(style);},getBorderAdjusts:function(element,style){if(!IE){return(0);}else{var b=0;var s='';do{s=element.getStyle(style);s=parseInt(s.replace(/\D/g,''));if(s)b+=s;element=Element.extend(element.parentNode);}while(element.parentNode.nodeType==1);return b;}},visible:function(element){var d=element.style.display;if(element.style.display=='none'){return false;}else{return true;}}};Element.extend(Element.Methods);var _nativeExtensions=false;if(!HTMLElement&&/Konqueror|Safari|KHTML/.test(navigator.userAgent)){var HTMLElement={}
HTMLElement.prototype=document.createElement('div').__proto__;}
Element.addMethods=function(methods){Object.extend(Element.Methods,methods||{});if(typeof HTMLElement!='undefined'){var methods=Element.Methods,cache=Element.extend.cache;for(property in methods){var value=methods[property];if(typeof value=='function')
HTMLElement.prototype[property]=cache.findOrStore(value);}
_nativeExtensions=true;}}
Element.addMethods();function $(id){return Element.extend((typeof(id)=='string')?document.getElementById(id):id);}
function $T(id,gid,gid_on,gid_off){var f=$(id);if(f.style.display=='none'){f.style.display='block';$(gid).innerHTML=gid_on;}else{f.style.display='none';$(gid).innerHTML=gid_off;}}
var Draggable=Class.create({initialize:function(element,target,wait_to_start){this.element=element;this.element._draggable=this;if(target)
this.target=target;else
this.target=element;this.mvd=[];this.target.style.position="absolute";if(!wait_to_start)
this.start.apply(this);this._active=true;},start:function(){listen(this.element,"mousedown",this.clicked,this);},init_listen:function(element,ev,observer){this.mvd.push([element,ev,listen(element,ev,observer,this)]);},clicked:function(e){this._clicked=true;var left=e.x?e.x:e.clientX;var top=e.y?e.y:e.clientY;this.left_offset=left-this.element.offsetLeft;this.top_offset=top-this.element.offsetTop;this.init_listen(document,"mousemove",this.moved);this.init_listen(document,"mouseup",this.done);this.init_listen(document,"click",this.done);},moved:function(e){if(this._active){var estyle=this.target.style;if(this.override_left){if(this.override_left>-1)
estyle.left=this.override_left+'px';this.override_left=false;}else{var left=e.x?e.x:e.clientX;estyle.left=(left-this.left_offset)+"px";}
if(this.override_top){if(this.override_top>-1)
estyle.top=this.override_top+'px';this.override_top=false;}else{console.log("moving top %s",(new Date()).getTime());var top=e.y?e.y:e.clientY;estyle.top=(top-this.top_offset)+"px";}}},done:function(){for(var idx=0;idx<this.mvd.length;idx++){var fs=this.mvd[idx];ignore(fs[0],fs[1],fs[2],this);}},stop:function(){console.log("done stop");ignore(this.element,"mousedown",this.clicked,this);}});function update_set(dest,n){for(var k in n){try{if(k.indexOf('$')==0){ky=k.substr(1);if(dest[ky]==undefined)
dest[ky]=new Hash();update_set(ky,n[k]);}else{dest[k]=n[k];}}catch(e){}}}
document.complex=function(base){var root=document.createElement(base);for(var i=0;i<arguments.length;i++){root.appendChild(arguments[i]);}
return root;}
document.qtag=function(name,params){var t=document.createElement(name);update_set(t,params)
for(var i=2;i<arguments.length;i++){t.appendChild(arguments[i]);}
return t;}
var __events=[];function listen(element,event_name,observer,scope){if(scope){var ob=function(e){observer.call(scope,e);}}else{var ob=observer;}
if(element.addEventListener){element.addEventListener(event_name,ob,false);}else if(element.attachEvent){var b=event_name+ob;var c='e'+b;element[c]=ob;element[b]=function(){element[c](window.event);}
element.attachEvent('on'+event_name,element[b]);}
__events.push([element,event_name,observer]);return ob;}
function ignore(element,event_name,observer){if(element.removeEventListener){element.removeEventListener(event_name,observer,false);}else if(element.detachEvent){var b=event_name+observer;element.detachEvent('on'+event_name,element[b]);element[b]=null;}
for(var i=0;i<__events.length;i++){var focus=__events[i];if(focus[0]==element&&focus[1]==event_name&&focus[2]==observer){__events.splice(i,1);}}}
function cleanup(){while(__events.length>0){var focus=__events[0];ignore(focus[0],focus[1],focus[2],focus[3]);}}
var _Templates={};var Template=Class.create({initialize:function(element_id){if(_Templates[element_id]){this._data=_Templates[element_id]}else{try{this._data=$(element_id).innerHTML;_Templates[element_id]=this._data;$(element_id).innerHTML="USED";}catch(e){console.error(element_id+" not found, cannot use template!");}}
this._data=this._data.replace(/&amp;/g,"&");this._data=this._data.replace(/&lt;/g,"<");this._data=this._data.replace(/&gt;/g,">");this._data=this._data.replace(/%7B/g,"{");this._data=this._data.replace(/%7D/g,"}");},render:function(self,vars){var rdiv=document.createElement('div');var r=this._data;var bevals=r.match(/<@!\s*\([\s\S]*?\)\s*@>/g);if(bevals){for(var _idx=0;_idx<bevals.length;_idx++){var e=bevals[_idx].replace("&amp;","&");var p=e.indexOf("(")+1;try{eval(e.substring(p,e.length-p)+";");r=r.replace(/<@!\s*\([\s\S]*?\)\s*@>/,"");}catch(er){console.error("Error\n\n ("+er+") \n\nwhile evaluating:\n\n"+(e.substring(p,e.length-p)+";"));}}}
var evals=r.match(/#\{[\s\S]*?\}/g);if(evals){for(_idx=0;_idx<evals.length;_idx++){var e=evals[_idx];try{e=eval(decodeURI(e.substring(2,e.length-1)));r=r.replace(/#\{[\s\S]*?\}/,decodeURI(e));}catch(er){console.error("Error\n\n ("+er+") \n\nwhile evaluating:\n\n"+(e.substring(p,e.length-p)+";"));}}}
rdiv.innerHTML=r;return rdiv;}});function Attempt(){for(var i=0;i<arguments.length;i++){try{return arguments[i]();}catch(e){}}}
function DoAll(){var focus;for(var i=0;i<arguments.length;i++){if(arguments[i]instanceof String){focus=eval(arguments[i]);}else{focus=arguments[i];}
try{focus();}catch(e){}}}
Function.prototype.bind=function(){var __method=this,object=arguments[0];var args=new Array();for(var i=1;i<arguments.length;i++)
args.push(arguments[i]);return function(){return __method.apply(object,args);}}
Function.prototype.bindAsEventListener=function(object){var __method=this;return function(event){return __method.call(object,event||window.event);}}
var Ajaxer=Class.create({_transport:function(){return Attempt(function(){return new XMLHttpRequest()},function(){return new ActiveXObject('Msxml2.XMLHTTP')},function(){return new ActiveXObject('Microsoft.XMLHTTP')});},initialize:function(url,options){this.patience=$('patience');if(this.patience){this.patience.style.display='block';var refs=this.patience.getAttribute("refs")*1;this.patience.setAttribute("refs",refs+1);}
options=options||{};this.options=options;options.headers=['X-Requested-With','XMLHttpRequest','Accept','text/javascript, text/html, application/xml, text/xml, */*'];options.method=options.method||'get';if(!url&&!options.url)throw"Need url!";this.transport=this._transport();if(options.parameters){if(typeof(options.parameters)!='string'){ret=[];for(var k in options.parameters){if(!(options.parameters[k]instanceof Function))
ret.push(k+"="+escape(options.parameters[k]));}
options.parameters=ret.join("&");}}else{options.parameters="";}
options.url=url;if(options.method=='get'){options.url+=(options.url.match(/\?/)?'&':'?')+options.parameters;}else{options.headers.push('Content-type',this.options.contentType);if(this.transport.overrideMimeType)
headers.push('Connection','close');}
this.transport.open(this.options.method,this.options.url,true);this.transport.onreadystatechange=this.handler.bind(this);var body=this.options.postBody?this.options.postBody:options.parameters;this.transport.send(this.options.method=='post'?body:null);},handler:function(ro){var readyState=this.transport.readyState;if(readyState!=1){var stype=(readyState==4&&this.transport.status>=200&&this.transport.status<300)?"Success":"Failure";if(stype=="Success"){if(this.options.replace){var c=document.createElement("div");c.innerHTML=this.transport.responseText;var r,i=0;do{r=c.childNodes[i];i++;}while(r.nodeType!=1);var m=$(this.options.replace);m.parentNode.replaceChild(r,m);}
if(this.patience){if(this.patience.getAttribute("refs")=="1")
setTimeout("$('patience').style.display = 'none'",1000);this.patience.setAttribute("refs",((this.patience.getAttribute("refs")*1)-1));}
if(this.options.callback)
this.options.callback(this.transport.responseText,eval('('+this.transport.responseText+')'));}
try{(this.options['on'+this.transport.status]||this.options['on'+stype]||BlankFunction)(this.transport);}catch(e){};}}});var StatusClass=Class.create();var Tabs=Class.create({initialize:function(tabs,content,start,hide){var idx;var focus;var me=this;this.tabs=[];this.hide=hide;for(idx=0;idx<tabs.childNodes.length;idx++){focus=tabs.childNodes[idx];if(focus.nodeType==1){this.tabs.push(focus);focus._tab_index=this.tabs.length-1;if(!focus.ignore_events){listen(focus,"click",function(){me.show(this._tab_index);return false;});if(window.location.hash&&focus.getElementsByTagName("a").length>0){if(window.location.hash==focus.getElementsByTagName("a")[0].getAttribute("href"))
start=focus._tab_index;}}}}
var content_count=0;for(idx=0;idx<content.childNodes.length;idx++){focus=content.childNodes[idx];if(focus.nodeType==1){focus.style.display='none';this.tabs[content_count]=[this.tabs[content_count],focus];content_count++;}}
if(start==undefined)
start=0;if(start!==false)
this.show(start);},setClassName:function(classname){currentClasses=this.current[0].className.split(' ');function included(a,v){for(var i=0;i<a.length;i++)
if(a[i]==v)return true;return false;}
function replace(a,v,n){for(var i=0;i<a.length;i++)
if(a[i]==v)a[i]=n;return a;}
var opposing_class=(classname=='off'?'on':'off');if(included(currentClasses,opposing_class)){this.current[0].className=replace(currentClasses,opposing_class,classname).join(" ");}else{currentClasses.push(classname);this.current[0].className=currentClasses.join(" ");}},show:function(idx){if(this.current){this.setClassName('off');this.current[1].style.display='none';}
if(this.hide&&this.tabs[idx]==this.current){this.current=false;return;}
this.current=this.tabs[idx];this.setClassName('on');this.current[1].style.display='block';}});listen(window,"load",function(){var links=document.getElementsByTagName("A");for(var i=0;i<links.length;i++){if(links[i].getAttribute("href")=="#"&&!links[i].getAttribute("onclick"))
links[i].setAttribute("onclick","return false;");}});function png_fix(image_element){var arVersion=navigator.appVersion.split("MSIE");var version=parseFloat(arVersion[1]);if(version>=5.5){var width=image_element.width;var height=image_element.height;var source=image_element.src;var container=document.createElement("div");container.innerHTML='<span style="width:'+width+'px;height:'+height+'px;z-index:300;position:absolute;display:inline-block;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+source+'\');"><img style="filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" src="'+source+'" width="'+width+'" height="'+height+'" border="0" alt=""></span>';return container.firstChild;}
return image_element;}
Array.prototype.contains=function(value,match){match=match||function(v1,v2){v1==v2?true:false;}
for(var i=0;i<this.length;i++){if(match(this[i],value))
return true;}
return false;}
Array.prototype.collect=function(f){var _a=[];for(var i=0;i<this.length;i++)
_a.push(f(this[i],i));return _a;}
Array.prototype.clone=function(){var _a=[];for(var i=0;i<this.length;i++)
_a.push(this[i]);return _a;}
Array.prototype.is_array=true;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(var 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='';}},findFirstElement:function(form){return Form.getElements(form).find(function(element){return element.type!='hidden'&&!element.disabled&&['input','select','textarea'].include(element.tagName.toLowerCase());});},focusFirstElement:function(form){Field.activate(Form.findFirstElement(form));},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){var key=encodeURIComponent(parameter[0]);if(key.length==0)return;if(parameter[1].constructor!=Array)
parameter[1]=[parameter[1]];return parameter[1].map(function(value){return key+'='+encodeURIComponent(value);}).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||opt.text;}
return[element.name,value];},selectMany:function(element){var value=[];for(var i=0;i<element.length;i++){var opt=element.options[i];if(opt.selected)
value.push(opt.value||opt.text);}
return[element.name,value];}}
var $F=Form.Element.getValue;