var TSFRequestObj=new Class({initialize:function(){this.requests=[];window.addEvent('domready',function(){this.initAjaxLink();var isIe=Client.Engine.ie6;var tip=new Tips(null,{offsets:{x:isIe?0:10,y:0},fixed:false,onShow:function(tip){tip.setStyle('display','');},onHide:function(tip){tip.setStyle('display','none');}});tip.toolTip.setStyle('visibility','').setStyle('display','none');$(document).addEvent('mousemove',tip.locate.bind(tip,null,true));tip.wrapper.setHTML('');if(isIe){var pngHandler=new PNGHandler();pngHandler.init();}
this.progress=tip;}.bind(this));},load:function(url,callback){return this.create(url,'get',null,callback);},post:function(url,data,callback){return this.create(url,'post',data,callback);},update:function(elm,url,data,callback,method){this.requests.each(function(r){if(r&&r.updateElement==elm)r.cancel();},this);callback=callback||$empty;var self=this;var shadow=TSF.createShadow(elm);var req=this.create(url,method||'get',data,function(r,success){callback(r,success);try{shadow.remove();}catch(e){}
if(success){$(elm).setHTML(r);req.evalScripts();self.initAjaxLink(elm);}});req.updateElement=elm;this.fireEvent('UpdateElement',elm);return req;},start:function(){if(this.progress){this.progress.show();}},finish:function(id){delete this.requests[id];if(this.progress){this.progress.hide();}},create:function(url,method,data,callback){var func=callback||$empty;var id=this.requests.length,self=this;this.start();var r=new Ajax(url,{'method':method,'data':data,onSuccess:function(a){func(a,true);self.finish();},onFailure:function(){func(null,false);self.finish();}}).request();r.request_id=id;this.requests.push(r);return r;},script:function(src,callback){var req=TSF.get(src,function(r,success){req.evalScripts();if(success)(callback||$empty).delay(100);});return req;},initAjaxLink:function(root,klass){var self=this;$(root||document).getElements('a.'+(klass||'ajax')).each(function(el){el.target=el.target||'home';el.addEvent('click',function(ev){ev.stop();var cnf=el.getAttribute('confirm');if(cnf!=null&&!window.confirm(cnf)){return false;}
if(el.target=='home')TSF.page(el.href);else self.update(el.target,el.href+(el.href.indexOf('?')==-1?'?':'&')+'output=module');});});}});TSFRequestObj.implement(new Options,new Events);var TSFHomePageLoad=new Class({options:{element:'main_pan'},initialize:function(options){this.setOptions(options);this.status='idle';this.divContainer=new Element('div');this.lastRequests=null;},load:function(url,data,method){if(this.lastRequests){this.lastRequests.cancel();}
url=url+(url.indexOf('?')==-1?'?':'&')+'output=page';this.lastRequests=TSF.update($(this.options.element),url,data,function(r,success){this.lastRequests=null;if(!success)return false;if(this.status!='display'){this.moveChildsTo($(this.options.element),this.divContainer);}
this.status='display';window.scrollTo(0,0);}.bind(this),method);},back:function(){if(window.currentPage&&!/^\s*$/.test(String(window.currentPage))){location=baseUrl;return;}
if(this.divContainer.childNodes.length){this.moveChildsTo(this.divContainer,$(this.options.element).setHTML(''));}else{location=baseUrl+'index.php';}
this.status='idle';},moveChildsTo:function(fromElement,toElement){while(fromElement.childNodes.length>0){toElement.appendChild(fromElement.childNodes[0]);}
return toElement;}});TSFHomePageLoad.implement(new Options);var PageShadow=new Class({initialize:function(){this.shadow=new Element('div').setStyles({'position':'absolute','left':'0px','top':'0px','backgroundColor':'#000','opacity':.6,'text-align':'center','zIndex':10000}).setStyle('display','none');window.addEvent('domready',function(){this.shadow.inject(document.body,'bottom');}.bind(this));this.preview=new Element('div').setStyles({'position':'absolute','left':'0px','top':'0px','width':'auto','height':'auto','border':'4px solid #525252','backgroundColor':'#FFF','padding':'5px','zIndex':10001,'visibility':'hidden'});window.addEvent('domready',function(){this.preview.inject(document.body,'bottom');}.bind(this));this.timer=null;},getShadow:function(){return this.shadow;},getPreview:function(){return this.preview;},addClose:function(){new Element('div').setStyles({'position':'absolute','right':'-15px','top':'-15px','width':'35px','height':'35px','cursor':'pointer'})
.setHTML('<img src="'+themeUrl+'images/close.png" />')
.inject(this.preview,'bottom')
.addEvent('click',this.hideShadow.bind(this));},makeCenter:function(){var e=this.getPreview();var l=(Window.getWidth()/2)-(e.offsetWidth/2);var t=(Window.getHeight()/2)-(e.offsetHeight/2)+(document.documentElement.scrollTop||0);e.setStyles({'left':l+'px','top':t+'px','visibility':'visible'});},showShadow:function(){with(this.getShadow().style){if(!window.ie){position='fixed';width="100%";height="100%";}else{left=document.body.offsetLeft+'px';position='absolute';width=((document.compatMode=='BackCompat')?document.body:document.documentElement).scrollWidth+'px';height=document.documentElement.scrollHeight+'px';}
display='';}
this.getPreview().setHTML('<img src="'+themeUrl+'images/loadingAnimation.gif" />');this.timer=this.makeCenter.delay(200,this);},hideShadow:function(){clearTimeout(this.timer);this.getPreview().setStyle('visibility','hidden').setHTML('');this.getShadow().setStyle('display','none');},update:function(html){this.getPreview().setStyle('visibility','hidden').setHTML(html);this.timer=this.makeCenter.delay(200,this);this.addClose();}});var TSF=(function(){var TSFRequest=new TSFRequestObj();var TSFHomeLoad=new TSFHomePageLoad();Element.extend({toggleClass:function(klass){return this[this.hasClass(klass)?'removeClass':'addClass'](klass);},getTagParent:function(tag){var el=this;do{el=el.parentNode;}while(el.nodeName!=tag.toUpperCase());return $(el);}});return{basket:{},createShadow:function(el){var d1=new Element('div').inject(el,'top');var d2=new Element('div').inject(d1);d1.setStyles({'position':'relative','width':'100%','height':'0px','border-width':'0'});d2.setStyles({'position':'absolute','backgroundColor':'#000','opacity':'0.6','zIndex':2,'width':el.offsetWidth+'px','height':el.offsetHeight+'px'});return d1;},addRequestEvent:function(name,func){TSFRequest.addEvent(name,func);},get:TSFRequest.load.bind(TSFRequest),post:TSFRequest.post.bind(TSFRequest),update:TSFRequest.update.bind(TSFRequest),script:TSFRequest.script.bind(TSFRequest),page:TSFHomeLoad.load.bind(TSFHomeLoad),back:TSFHomeLoad.back.bind(TSFHomeLoad)};})();function cOption(id,pid,name){this.id=id;this.pid=pid;this.name=name;this.o=new Option(name,id);}
function newCOptions(id,pid,name){cOptions.push(new cOption(id,pid,name));}