self.client=new Object(),ua=navigator.userAgent;self.client.opera=/opera [56789]|opera\/[56789]/i.test(ua);self.client.ie=!self.client.opera&&/msie [56789]/i.test(ua);self.client.moz=!self.client.opera&&/mozilla\/[56789]/i.test(ua);Object.extend=function(tgt,src){for(property in src)tgt[property]=src[property];return tgt};var Class={create:function(){return function(){this.initialize.apply(this,arguments)}}};Class.Inherit=function(base,args){var o=Class.create();o.prototype=Object.extend(base,args);return o};var _System=Class.create();_System.prototype={initialize:function(){this.Event=new this._Event();this.Behavior=new this._Behavior();this.Behavior.Settings={}},using:function(url,waitFor,handler,timeout){var wf=null,loaded=false,maxtime=timeout?timeout:5000,time=0,interval=10;if(waitFor&&handler){var isLoaded=function(){return eval('typeof('+waitFor+')')!='undefined'};waiter=function(){if(isLoaded()){loaded=true;if(typeof(handler)=='function')handler();else eval(handler)}else{time+=interval;if(time>maxtime)throw new Error(23677,'Error loading include \''+url+'\': timeout expired');setTimeout(waiter,interval)}};loaded=isLoaded()};if(!loaded)this.addScript(url);if(waiter)waiter()},addScript:function(url){var h=document.getElementsByTagName('HEAD').item(0),s=document.createElement("script");s.type="text/javascript";s.src=url;h.appendChild(s)},addStyleSheet:function(url){if(document.createStyleSheet)document.createStyleSheet(url);else{var n=document.createElement('link');n.rel='stylesheet';n.type='text/css';n.href=url;document.getElementsByTagName("head")[0].appendChild(n)}}};_System.prototype._Event=Class.create();_System.prototype._Event.prototype={initialize:function(){},add:function(obj,evType,fn){if(obj.attachEvent){var r=obj.attachEvent("on"+evType,fn);return r}else if(obj.addEventListener){obj.addEventListener(evType,fn,false);return true}return false},raise:function(el,name){if(document.createEventObject){var ev=document.createEventObject();el.fireEvent("on"+name,ev)}else if(document.createEvent){var ev=document.createEvent("event");ev.initEvent(name,true,true);el.dispatchEvent(ev)}return},stop:function(event){event=event||window.event;if(event.stopPropagation){event.stopPropagation();event.preventDefault()}else if(typeof event.cancelBubble!="undefined"){event.cancelBubble=true;event.returnValue=false}return false},getSource:function(event){event=event||window.event;return event.srcElement||event.target},locateElement:function(e){if(!e)return{x:0,y:0};var left=0,top=0;while(e.offsetParent){left+=e.offsetLeft+(e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);top+=e.offsetTop+(e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);e=e.offsetParent}left+=e.offsetLeft+(e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);top+=e.offsetTop+(e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);return{x:left,y:top}},locateMouse:function(ev){if(ev.pageX||ev.pageY){return{x:ev.pageX,y:ev.pageY}};return{x:ev.clientX+document.body.scrollLeft-document.body.clientLeft,y:ev.clientY+document.body.scrollTop-document.body.clientTop}},getMouseOffset:function(el,ev){ev=ev||window.event;var docPos=this.locateElement(el);var mousePos=this.locateMouse(ev);return{x:mousePos.x-docPos.x,y:mousePos.y-docPos.y}}};_System.prototype.Ajax=Class.create();_System.prototype.Ajax.prototype={initialize:function(){},create:function(){var x;try{x=new XMLHttpRequest()}catch(e){x=new ActiveXObject("Microsoft.XMLHTTP")};return x},send:function(url,options){options=options||{};var x=this.create();if(typeof(options.onCreate)=='function')options.onCreate(x);var p=(options.postData)?options.postData:null;x.onreadystatechange=function(){if(x.readyState==4){if(typeof(options.onReady)=='function'){options.onReady(x);x.onreadystatechange=null}else if(options.element){if(typeof(options.element)=="string"){options.element=document.getElementById(options.element);if(!options.element)throw new Error(23681,'Invalid element passed in Ajax options');if(options.autoShow)System.Behavior.Current.replaceClass(options.element,'Hidden','Visible')}options.element.innerHTML=x.responseText}};if(x.readyState==1&&typeof(options.onRequest)=='function')options.onRequest(x)};if(options.force){if(url.indexOf('?')==-1)url+='?';else url+='&';url+="_ajs="+new Date().toString()};x.open(options.method?options.method:p?'POST':'GET',url,true);if(p)x.setRequestHeader('Content-Type','application/x-www-form-urlencoded');x.send(p)}};_System.prototype._Behavior=Class.create();_System.prototype._Behavior.prototype={initialize:function(){},start:function(options){options=options||{};new ClassBehavior(options.onStart);if(typeof(options.onReady)=='function')options.onReady()},create:function(interface){return Class.Inherit(new BehaviorBase(),interface)},add:function(cls,interface){if(!eval('System.Behavior.Settings.'+cls))eval('System.Behavior.Settings.'+cls+'={}');return eval('self.'+cls+'Behavior=this.create(interface)')}};var System=new _System(),__behavior=null;function BehaviorBase(){};BehaviorBase.prototype={initialize:function(el,cls){},attach:function(el,settings){},detach:function(el){el.behavior=null}};function ClassBehavior(onStart){__behavior=this;this.initialize();if(typeof(onStart)=='function')onStart();this.setup()};ClassBehavior.prototype={getAll:function(){return document.all?document.all:document.getElementsByTagName("*")},hasClass:function(el,cls){var re=new RegExp('(?:^|\\s+)'+cls+'(?:\\s+|$)');return re.test(el.className)},addClass:function(el,cls){if(this.hasClass(el,cls))return;el.className=[el.className,cls].join(' ');this.attach(el,cls)},removeClass:function(el,cls,a){if(a==null)a=true;if(a)this.detach(el,cls);if(!this.hasClass(el,cls))return;var re=new RegExp('(?:^|\\s+)'+cls+'(?:\\s+|$)','g');var c=el.className;el.className=c.replace(re,' ')},replaceClass:function(el,oc,nc,adapt){if(oc==nc)return false;if(this.hasClass(el,oc)){this.removeClass(el,oc,adapt);this.addClass(el,nc,adapt)}},attachAll:function(el){el.previousClass=el.className;var cs=el.className.split(" ");for(var i=0;i<cs.length;i++)this.attach(el,cs[i])},getBehavior:function(cls){var o;if(typeof(cls)=='string'){try{eval("o=new "+cls+"Behavior()")}catch(x){}}else o=cls;return o},getSettings:function(cls){var o=eval('System.Behavior.Settings.'+cls);return o?o:{}},isBehavior:function(cls){return eval("(typeof("+cls+"Behavior)=='function')")},attach:function(el,cls){var o=this.getBehavior(cls);if(o){if(typeof(o.attach)=="function")o.attach(el,this.getSettings(cls))}},detach:function(el,cls){var o=this.getBehavior(cls);if(o&&o.detach&&typeof(o.attach)=="function")o.detach(el)},initialize:function(){System.Behavior.Current=__behavior},setup:function(){var els=[],a=this.getAll(),l=a.length;for(var i=0;i<l;i++){var el=a[i],c=el.className;if(c&&c.length>0){var cs=c.split(" ");for(var j=0;j<cs.length;j++){if(this.isBehavior(cs[j])){els.push(el);break}}}};l=els.length;for(var i=0;i<l;i++){var el=els[i];if(el.className)this.attachAll(el)}}};
