lg.siteSwitch = new Class({ Implements: Options, options: { sites:[], lang:'de', targetgroup:'pub'
}, initialize: function(el,options){ this.setOptions(options); this.el = $(el); this.el.addEvent('change',this.loadSite.bind(this))
}, loadSite: function(){ aSel = lg.o.fut.getSelectedValues(this.el); if($defined(this.options.sites[aSel[0].toInt()])){ sSiteLink = this.options.sites[aSel[0].toInt()]; sSiteLink += 'index.cfm'; sSiteLink += '?lang=' + this.options.lang; sSiteLink += '&tg=' + this.options.targetgroup; window.location = sSiteLink; return true;}else{ return false;}
}
}); lg.Formutils = new Class({ getSelectedValues:function(elOpt){ var aReturn = new Array(); if(elOpt.tagName == "SELECT"){ for(var iOpt = 0; iOpt< elOpt.options.length; iOpt++){ if(elOpt.options[iOpt].selected){ aReturn.push(elOpt.options[iOpt].value);}
}
}
if(elOpt.tagName == "INPUT"){ aReturn.push(elOpt.value);}
return aReturn;}
}); lg.TabManager = new Class({ Implements: [Events, Options, Chain], options: { iStartTab : 1, changeEvent: 'click', setAfterInit: true, css:{ activeSwitch: 'tab_active', firstSwitch: 'first', lastSwitch: 'last', activeContent: 'tab_active', firstContent: 'first', lastContent: 'last'
}
}, initialize: function(oDCtabs,oDCtabcontens,options){ this.setOptions(options); if($type(oDCtabs) == 'string'){ this.tabSw = $$(oDCtabs);}else if($type(oDCtabs) == 'collection' || $type(oDCtabs) == 'element' || $type(oDCtabs) == 'array'){ this.tabSw = oDCtabs;}else{ if($defined('console')){console.log('Argument oDCtabs is not a string, element or elementcollection');}
return false;}
if($type(oDCtabcontens) == 'string'){ this.tabCont = $$(oDCtabcontens);}else if($type(oDCtabcontens) == 'collection' || $type(oDCtabcontens) == 'element' || $type(oDCtabcontens) == 'array'){ this.tabCont = oDCtabcontens;}else{ if($defined('console')){console.log('Argument oDCtabcontens is not a string, element or elementcollection');}
return false;}
this.iCount = this.tabSw.length; if(this.tabCont.length < this.iCount){ this.iCount = this.tabCont.length;}
this.iCurr = this.options.iStartTab; if(this.iCurr > this.iCount){ this.iCurr = 1; if($defined('console')){console.log('Option iStartTab is invalid. Not enough tabs availible');}
}
this.iCurr --; this.tabSw.each(function(e,i,a){ if(this.options.css.firstSwitch.length && i == 0){ e.addClass(this.options.css.firstSwitch);}
if(this.options.css.lastSwitch.length && i+1 == a.length){ e.addClass(this.options.css.lastSwitch);}
e.addEvent(this.options.changeEvent, this.set.bindWithEvent(this, i+1));},this); this.tabCont.each(function(e,i,a){ if(this.options.css.firstContent.length && i == 0){ e.addClass(this.options.css.firstContent);}
if(this.options.css.lastContent.length && i+1 == a.length){ e.addClass(this.options.css.lastContent);}
},this); if(this.options.setAfterInit)
this.set(this.iCurr.toInt()+1);}, _onBeforSet: function(iNr){ if(this.tabCont[iNr])
this.fireEvent('beforeSet',[iNr, this.tabCont[iNr]])
}, _onAfterSet: function(iNr){ if(this.tabCont[iNr])
this.fireEvent('afterSet', [iNr, this.tabCont[iNr]])
}, set: function(evnt,nr){ var iNr = arguments[arguments.length-1]-1; if(iNr < this.iCount){ this.chain( this._onBeforSet(iNr), this.setRunner(evnt,iNr), this._onAfterSet(iNr) ); this.callChain();}
}, setRunner: function(evnt,iNr){ if(iNr < this.iCount){ this.tabSw.each(function(e,i,a){ if(this.options.css.activeSwitch.length){ if(i == iNr){ e.addClass(this.options.css.activeSwitch);}else{ e.removeClass(this.options.css.activeSwitch);}
}
},this); this.tabCont.each(function(e,i,a){ if(i != iNr){ e.setStyle('display','none');}else{ e.setStyle('display','block');}
if(this.options.css.activeSwitch.length){ if(i == iNr){ e.addClass(this.options.css.activeContent);}else{ e.removeClass(this.options.css.activeContent);}
}
},this); this.iCurr = iNr;}
}
}); lg.ImageReplacer = new Class({ Implements: [Events, Options, Chain], options: { searchAnchor:true
}, initialize: function(oSet,options){ this.setOptions(options); this.initOK = true; if($type(oSet) == 'string'){ this.tabCont = $$(oSet);}else if($type(oSet) == 'element'){ this.oSet = oSet;}else{ this.initOK = false;}
this.aImgs = new Array(); if(this.initOK)
this.aImgs[0] = this.oSet.getFirst().clone();}, _onAfterSet: function(){ if(this.initOK)
this.fireEvent('afterSet', this);}, _setObjRunner: function(iNr,obj){ if(this.initOK){ var bfound = false; this.aImgs.each(function(el,i,a){ if(i == iNr){ bfound = true;}
},this); if(bfound){ if(this.aImgs[iNr]){ this.oSet.empty(); this.oSet.adopt(this.aImgs[iNr].clone());}
}else{ if(obj){ if(this.options.searchAnchor){ if(obj.parentNode.tagName == "DIV" && obj.parentNode.className == "img"){ var obj = obj.parentNode;}
if(obj.parentNode.tagName == "A"){ var obj = obj.parentNode;}
}
this.oSet.empty(); this.oSet.adopt($(obj).clone()); this.aImgs[iNr] = $(obj).clone(); obj.destroy();}
}
}
}, setObj: function(iNr,obj){ if(this.initOK){ this.chain( this._setObjRunner(iNr,obj), this._onAfterSet() ); this.callChain();}
}
}); lg.extSel = new Class({ Implements: [Options], options: { classTitle:'optiontitle', eventTrigger:'click', fxDuration:500, closeDelay:1000, css:{ main:'extc', button:'extc-button', treeRoot:'extc-tree', title:'extc-title', entry:'extc-entry'
}
}, initialize: function(el,options){ this.setOptions(options); this.oTree = new Element('UL',{'class':this.options.css.treeRoot}); this.oCurr = null; this.el = new Element('DIV',{'class':this.options.css.main + ' ' + el.getProperty('class')}); this.closeDelay = null; this.isOpen = false; this.fixedTitle = ''; if(el.getProperty('rel')){ this.fixedTitle = el.getProperty('rel');}
var currUL = this.oTree; var oNode; el.getElements('option').each(function(el,i){ oNode = new Element('LI'); oNode.adopt(new Element('A',{href:el.get('value'),text:el.get('text'),target:'_top'})); oNode.addClass(this.options.css.entry); if(el.getProperty('id'))
oNode.addClass(this.options.css.entry + el.getProperty('id')); if(el.hasClass(this.options.classTitle)){ oNode.addClass(this.options.css.title); currUL = new Element('UL'); currUL.setStyles({'opacity':0,'height':0}); oNode.addEvent('mouseenter',this.openSub.bind(this,currUL)); oNode.addEvent('mouseleave',this.closeSub.bind(this,currUL)); oNode.adopt(currUL); currUL.set('morph', {duration:this.options.fxDuration,transition: 'quad:in'}); this.oTree.adopt(oNode);}else{ currUL.adopt(oNode);}
if(el.getProperty('selected')){ this.oCurr = oNode;}
},this); this.oTree.adopt(new Element('DIV',{'class':'clear'})); if(!this.oCurr){ this.oCurr = this.oTree.getFistChild();}
this.oTree.setStyles({'opacity':0,'display':'none'}); this.oTreeFX = new Fx.Morph(this.oTree, { duration: this.options.fxDuration, onStart: (function(el){ if(!el.getStyle('opacity')){ el.setStyle('display','block'); this.elHeight = this.oCurr.getSize().y;}
}).bind(this), onComplete:(function(el){ if(!el.getStyle('opacity')){ el.setStyle('display','none'); this.isOpen=false;}else{ this.isOpen=true;}
}).bind(this)
}); this.el.addEvent('mouseleave',this.close.bind(this,false)); this.el.addEvent('mouseenter',this.open.bind(this,true)); this.oButton = new Element('DIV',{'class':this.options.css.button}); this.oButton.addEvent(this.options.eventTrigger,this.open.bind(this)); this.el.adopt(this.oButton,this.oTree); this.setButton(); this.el.replaces(el); this.oTree.position({ relativeTo: this.el, position: 'bottomLeft'
});}, open: function(bEnter){ if(!$defined(bEnter) || $type(bEnter) != 'boolean')bEnter=false; $clear(this.closeDelay); this.oTreeFX.pause(); if(!bEnter){ this.oTreeFX.start({'opacity':1});}else if(bEnter && this.isOpen){ this.oTreeFX.start({'opacity':1});}
}, close: function(bDo){ $clear(this.closeDelay); if(bDo){ this.oTreeFX.start({'opacity':0});}else{ this.closeDelay = this.close.delay(this.options.closeDelay,this,true);}
}, openSub: function(oSub){ var iSub = oSub.getElements('LI').length; var oMorph = oSub.get('morph'); oMorph.pause(); oMorph.start({'height': this.elHeight*iSub,'opacity':1});}, closeSub: function(oSub){ var oMorph = oSub.get('morph'); oMorph.pause(); oMorph.start({'height': 0,'opacity':0});}, setButton: function(){ if(this.fixedTitle.length){ var sText = this.fixedTitle;}else{ var sText = this.oCurr.getElement('a').get('text');}
this.oButton.set('text',sText);}
}); window.addEvent('domready', function(){ lg.o.fut = new lg.Formutils(); lg.o.extSel = new Array(); $$('.extselect').each(function(el){ lg.o.extSel.push( new lg.extSel(el) );});}); 
