(function(){var m=window.DL||{};m.Component={version:'$Revision: 1.18 $',validation:[],registerValidation:function(a){m.Component.validation.push(a)},validateComponents:function(a){a=a||window.event;if(!m.Component.validation.length)return;var b=true;for(var i=0;io.maxLength-1)if(f>46&&f<112)m.Event.stop(c);var h=String.fromCharCode(f)[c.shiftKey?'toUpperCase':'toLowerCase']();var b=e.input.value;var d=e.input.value;var a;if(document.selection){var g=document.selection.createRange();if(i){g.moveStart('character',-1);g.text=''}else g.text=h;b=e.input.value;m.Event.stop(c)}else{b=e.input.value;if(i){b=b.substr(0,this.selectionStart-1)}else{b=b.substr(0,this.selectionStart)+h+b.substr(this.selectionStart)}}if(!k.isValid(b)){switch(k.error){default:if(o.allowUnmatchedChars){a=k.errorMessage}else{a=m.String.fill(o.errorMessages.invalidKey,h);(document.selection)?(e.input.value=d):m.Event.stop(c)}break;case'minLength':case'minValue':case'empty':a=k.errorMessage;break;case'maxLength':case'maxValue':a=k.errorMessage;(document.selection)?e.input.value=d:m.Event.stop(c);break}if(k.options.showErrors)e.error.innerHTML=a;m.Element.switchClass(e.label,'valid','invalid')}else{m.Element.switchClass(e.label,'invalid','valid');if(k.options.showErrors)e.error.innerHTML=''}k.changed=true}});this.execGetter();if(o.validate)m.Component.registerValidation(this)},getValue:function(){return this.elements.input.value},setValue:function(a){var o=this.options,input=this.elements.input,label=this.elements.label;a=a||'';if(this.validate(a)){if(a!=input.value){input.value=a}this.onvalid(a,this);return true}else{input.value=a;this.oninvalid(a,this);return false}return false},execSetter:function(){var o=this.options,v=this.getValue();if(o.setter){o.setter(v);this.onsetter(v,this)}},execGetter:function(){var o=this.options;if(o.getter){var a=o.getter();this.setValue(a);this.ongetter(a,this)}},validate:function(a){var b;this.toggleValid(b=this.isValid(a));return(this.valid=b)},toggleValid:function(a){var e=this.elements;if(a){this.error=false;if(this.options.showErrors)e.error.innerHTML='';m.Element.switchClass(e.label,'invalid','valid');this.onvalid(this.getValue())}else{this.error=true;if(this.options.showErrors)e.error.innerHTML=this.errorMessage;m.Element.switchClass(e.label,'valid','invalid');this.oninvalid(this.getValue())}},isValid:function(a){var o=this.options,e=this.elements,value=a||'',result=true;if(!o.validate||(!o.required&&!value))return true;value=this.replacePreAndSuffix(0,value);if(o.required&&(/^\s*$/.test(value))){this.error='empty';this.errorMessage=o.errorMessages['empty'];return false}if(result&&o.minLength!=-1&&value.lengtho.maxLength){this.error='maxLength';this.errorMessage=m.String.fill(o.errorMessages['maxLength'],o.maxLength);return false}if(result&&o.minValue&&valueo.maxValue){this.error='maxValue';this.errorMessage=m.String.fill(o.errorMessages['maxValue'],o.maxValue);return false}if(result&&o.match&&m.type(o.match)=='regexp'&&!o.match.test(value)){this.error='invalidFormat';this.errorMessage=o.errorMessages['invalidFormat'];return false}return result},togglePreAndSuffix:function(a){a=!!a;var o=this.options;if(o.prefix||o.suffix||!this.valid)return false;this.elements.input.value=this.replacePreAndSuffix(a);return true},replacePreAndSuffix:function(a,b){var o=this.options,rp=new RegExp('^'+o.prefix),rs=new RegExp(o.suffix+'$');b=b||this.getValue();if(!(o.prefix||o.suffix))return b;if(o.prefix)b=(a)?(!rp.test(b))?o.prefix+b:value:b.replace(rp,'');if(o.suffix)b=(a)?(!rs.test(b))?b+o.suffix:b:b.replace(rs,'');return b},focus:function(){this.elements.input.focus()},blur:function(){this.elements.input.blur()},blink:function(){var e=this.elements;m.Element.switchClass(e.label,'valid','invalid');m.Function.delay(function(){m.Element.switchClass(e.label,'invalid','valid')},1000)},destroy:function(){m.Element.removeNode(this.elements.body)},onfocus:function(a){},onblur:function(a){},onvalid:function(a,b){},oninvalid:function(a,b){},onchange:function(a,b){},ongetter:function(a,b){},onsetter:function(a,b){},onenterkey:function(a,b){}});m.Component.TextInput.implement(new m.Class.Options);m.Component.MaskInput=new m.Class({initialize:function(a){this.options={name:false,value:false,label:false,element:false,appendTo:false,className:false,emptyCharacter:'_',mask:'',alpha:/[a-z]+/i,numeric:/[0-9]+/,alphaNumeric:/[0-9a-z]/i,transform:true,disablemask:false};this.changed=false;this.position=[0,0];this.elements={};this.setOptions(a);this.create()},create:function(){var o=this.options,e=this.elements,self=this,cn='',classes=['Component','MaskInput'];if(o.className)classes.push(o.className);if((o.transform&&o.element)||!o.element){if(!o.appendTo&&o.element)o.appendTo=o.element.parentNode||null;e.body=m.$C('div',{className:classes.join(' ')},e.label=m.$C('label',{className:'Label'},m.$C('span',{},(o.label?m.Element.newText(o.label):null)),e.input=o.element||m.$C('input',{name:o.name||'',type:'text',className:'Input'})));if(o.appendTo&&m.type(o.appendTo)=='element')m.Element.addNode(o.appendTo,e.body)}else{e.input=o.element;m.Element.addClass(e.input,classes.join(' '))}self.setValue(o.value||(m.defined(e.input.value)?e.input.value:''));m.Event.addHandlers(e.input,{focus:function(a){a=a||window.event;if(self.options.disablemask){self.elements.input.select();return}var p=self.position;(p[0]==0)?m.Function.delay(self.selectFirst,10,self):m.Function.delay(m.bind(self.select,self,p[0],1),10);if(self.isEmpty()){self.setValue(self.maskValue())}self.onfocus(self)},blur:function(a){if(self.isEmpty()){self.setValue('')}else self.toggleValid(self.isValidValue(this.value));if(self.changed){self.onchange(this.value,self.changed);self.changed=false}self.onblur(self)},keydown:function(a){a=a||window.event;if(self.options.disablemask)return;var b=a.which||a.keyCode,p=self.position;if(b==86&&(a.ctrlKey||a.metaKey)){self.pasted=this.value||true;self.setValue('');return}switch(b){case 9:case 16:case 13:return;case 8:self.updateSelection(p[0],self.options.emptyCharacter,-1);break;case 37:case 38:self.selectPrev();break;case 39:case 40:self.selectNext();break;case 46:self.updateSelection(p[0],self.options.emptyCharacter);break;default:var c=self.code2char(a);if(self.isValidInput(p[0],c)){self.toggleValid(1,p[0],c);self.updateSelection(p[0],c)}else self.toggleValid(0,p[0],c);break}m.Event.stop(a)},keypress:function(a){a=a||window.event;if(self.options.disablemask)return;var b=a.which||a.keyCode;var c=a.metaKey||a.ctrlKey;switch(true){case(b==9):case(a.shiftKey&&b==9):case(c&&b==97):case(c&&a.keyCode==67):case(c&&a.keyCode==88):return;case(b==13):self.onenterkey(self.getValue(),self);this.blur();return;case(!self.pasted):return;default:m.Event.stop(a);return}},keyup:function(){if(self.options.disablemask)return;if(self.pasted){self.pasted='';self.setValue(self.getValue());self.selectFirst()}},click:function(a){self.onclick(a)}})},select:function(b,c){var a=(c==-1)?0:this.options.mask.length;for(var i=b;(c==-1)?a=0){return true}return false},isValidInput:function(b,a){var o=this.options,e=this.elements,chrMask=o.mask.charAt(b),result=false;switch(chrMask){case'#':if(o.numeric.test(a))result=true;break;case'?':if(o.alpha.test(a))result=true;break;case'*':if(o.alphaNumeric.test(a))result=true;break}return result},isValidValue:function(a){var b=this.options.mask;if(a&&a.length==b.length){for(var i=0;i0)this.selectNext();else this.selectPrev();this.changed=value;this.onupdate(output,c,a,this)},code2char:function(a){var b='';switch(a.keyCode){case 48:case 96:b='0';break;case 49:case 97:b='1';break;case 50:case 98:b='2';break;case 51:case 99:b='3';break;case 52:case 100:b='4';break;case 53:case 101:b='5';break;case 54:case 102:b='6';break;case 55:case 103:b='7';break;case 56:case 104:b='8';break;case 57:case 105:b='9';break;default:b=String.fromCharCode(a.which||a.keyCode)[(a.shiftKey)?'toUpperCase':'toLowerCase']();break}return b},onclick:function(a,b){},oninvalid:function(a,b){},onvalid:function(a,b){},onupdate:function(b,c,a){},onchange:function(a,b){},onfocus:function(a){},onblur:function(a){},ongetter:function(a,b){},onsetter:function(a,b){},onenterkey:function(a,b){}});m.Component.MaskInput.implement(new m.Class.Options);m.Component.SelectInput=new m.Class({initialize:function(d){this.options={name:false,element:false,appendTo:false,defaultValue:false,options:{},label:false,getter:null,setter:null};var c=this,e=this.elements={},o=this.setOptions(d);e.body=m.$C('div',{className:'Component SelectInput'},e.label=m.$C('label',{className:'Label'},m.$C('span',{},(o.label?m.Element.newText(o.label):null)),e.input=o.element||m.$C('select',{name:o.name||'',className:'Input'})));if(o.options&&m.type(o.options)=='object')this.addOptions(o.options);if(o.element){var d=m.$TN('option',o.element);m.Array.each(d,function(v,i,a){o.options[v.value]=v.nodeValue})}if(o.appendTo&&m.type(o.appendTo)=='element')m.Element.addNode(o.appendTo,e.body);if(o.value)this.setValue(o.value);m.Event.addHandlers(e.input,{focus:function(){c.execGetter();c.onfocus(c)},change:function(){c.execSetter();c.onblur(c)},click:function(a){a=a||window.event;var b=a.srcElement||a.target;c.onselect(c)},keydown:function(a){a=a||window.event;var b=a.keyCode;if(b==m.Event.kRETURN){this.blur();return false}}});this.execGetter()},setValue:function(b){var a=this.elements.input;if(!m.defined(b)){this.value=a.value;return a.selectedIndex}for(var i=0;iself.dElement.width-self.dDragger.width){value=self.dElement.width-self.dDragger.width}self.setValue({left:value});self.setPosition();self.onclick(self.percent)}});m.Element.setStyle(e.indicator,'position','absolute');this.min={};this.max={};this.min.x=0;this.max.x=(this.dElement.width-this.dDragger.width);this.setPosition()},setValue:function(a){var x=a.left||0,y=a.top||0;switch(this.options.type){case'left':this.percent=(Math.round(((x)/(this.max.x))*100));break;case'right':this.percent=(100-Math.round(((x)/(this.max.x))*100));break;case'center':this.percent=((50-Math.round((x)/this.max.x*100))*-1);break}this.elements.input.value=this.percent;this.elements.indicator.innerHTML=this.percent;this.onupdate(this.percent)},setPosition:function(b){b=m.check(b)?b:this.percent;if(b<0||b>100)return;var a=(this.max.x*b/100);if(this.type=='center')b-=50;this.setValue({left:a});m.Element.setStyle(this.elements.dragger,{left:a+'px'})},onstart:function(a){},onchange:function(a){},onupdate:function(a){},onclick:function(a){}});m.Component.Slider.implement(new m.Class.Options);m.Component.RecordSet=new m.Class({initialize:function(a){this.options={primary:'id',data:[]};var o=this.setOptions(a);this.data={UPDATE:[],DELETE:[]};this.removed=[];return this},include:function(a){for(var i=0;i0)this.data.DELETE.push(c.id);return true}}return false},refreshIDs:function(b){for(var n in b){var a;if((a=this.select(b[n])))a.id=n}},toJSON:function(){return m.JSON.toString(this.data)},onselect:function(a){},onupdate:function(a,b){},onremove:function(a){}});m.Component.RecordSet.implement(new m.Class.Options);m.Component.DataAdapter=new m.Class({initialize:function(a,b){this.data=b||{};this.definition=a;this.functions={};this.dataKeys=[];this.values={};this.setDefinition(a)},addDefinition:function(c,f){if(!f&&m.type(f)=='object'){return}var g=this;for(var e in f){if(!(e=='getter'||e=='setter')){continue}if(!(f.params&&m.type(f.params)=='array')){f.params=[]}this.functions[c]=this.functions[c]||{};(function(d,b){d.params.unshift(d.source[d.fn],d.source);g.functions[c][b]=m.bind(function(){var a=m.bind.apply(null,d.params||[]),result=a.apply(null,arguments);g.data[c]=result;if(b=='getter'){g.ongetter(c,result)}else if(b=='setter'){g.onsetter(c,result)}return result},null,c)})(f[e],e);m.Array.include(this.dataKeys,c)}},setDefinition:function(a){if(!a&&m.type(a)=='object'){console.error("Can't set Definition wihout parameter `definition` {Object}! [layouter2|1823]");return false}for(var b in a){if(a[b]||a[b].fn){this.addDefinition(b,a[b])}}},getById:function(a){for(var i=0;i=o.frames){if(o.endless){this.i=0;this.x=0}else if(o.yoyo){this.direction=-1}else return this.stop()}else if(this.i<=0){if(o.yoyo){this.direction=1}}this.i+=this.direction;this.x=this.x+o.size*this.direction;this.element.style.backgroundPosition=-this.x+'px 0';this.onframe(this.i,this.x)},stop:function(){if(this.isPlaying){clearInterval(this.interval);this.isPlaying=false;this.onstop(this)}},onstop:function(e){},onstart:function(e){},onframe:function(i,x){}});m.Component.Sprite.implement(new m.Class.Options);m.Component.ActionList=new m.Class({initialize:function(){this.actions=[];this.length=0;this.index=null;this.add.apply(this,arguments)},add:function(){var b=this.length;for(var i=0,options;options=arguments[i];i++){if(!(this.get(options.name))){var a=new m.Component.Action(options),self=this;m.Event.addHandler(a,'execute',function(){self.onexecute(this)});m.Event.addHandler(a,'enable',function(){self.onenable(this)});m.Event.addHandler(a,'disable',function(){self.ondisable(this)});this.actions.push(a);this.length++}}return(this.length-b)},get:function(a){for(var i=0,action;action=this.actions[i];i++){if(action.options.name==a){return action}}return null},remove:function(a){for(var i=0,action;action=actions[i];i++){if(action.options.name==a){m.Array.remove(this.actions,i);return true}}return false},execute:function(b){var a;if((a=this.get(b))){return a.execute(Array.prototype.slice.call(arguments,1))}return null},iterate:function(a){if(this.index==null){this.index=a?this.length-1:0}var b,index=a?this.index--:this.index++;if((b=this.actions[index])){return b}return this.index=null},onexecute:function(){},onenable:function(){},ondisable:function(){}});m.Component.Action=new m.Class({initialize:function(a){if(typeof a=='object'&&typeof a.func=='function'&&a.name){this.options={func:null,name:null,label:null,image:null,description:null,enabled:true};this.setOptions(a)}},setOptions:function(a){return this.options=m.Object.extend(this.options,a)},execute:function(){if(this.options.enabled){this.onexecute();return this.options.func.apply(this,arguments)}return null},enable:function(){this.onenable();this.options.enabled=true},disable:function(){this.ondisable();this.options.enabled=false},getName:function(){return this.options.name},onexecute:function(){},onenable:function(){},ondisable:function(){}});m.Component.Toolbar=new m.Class({initialize:function(b){var o=this.setOptions(b);if(o.element){this.create()}else{var a=Error('Toolbar.constructor() [layouter.js|213]: Element not found or option-error');throw a;return a}m.Component.Toolbar.instances.push(this);return this},setOptions:function(a){this.options=m.Object.extend({id:null,element:null,actionList:null,showLabels:false,showImages:false,imagePath:'/se_data/global/gfx/gui/components/toolbar/simple/buttons/',imageSize:16,imageExtension:'png',label:false,reverse:false,disabled:false},a);return this.options},create:function(){this.elements=this.elements||{};var a=null,o=this.options,e=this.elements,label=null;if(!e.body){m.Element.addNode(o.element,e.body=m.$C('div',{className:'Component Toolbar'}))}else{if(e.label)label=m.Element.removeNode(e.label);m.Element.removeChildNodes(e.body)}m.Element.addNodes(e.body,e.buttons=m.$C('ul',{className:'Buttons'},e.label=(o.label)?label||m.$C('li',{className:'Label '+o.label},o.label):null));if(!o.actionList){return}while((a=o.actionList.iterate(o.reverse)))this.createButton(a.options);m.Element.addNode(e.buttons,m.$C('div',{style:{clear:'both',visibility:'hidden'}}));this.oncreate(this)},createButton:function(c){var e=this.elements,o=this.options,self=this,el;m.Element.addNode(e.buttons,m.$C('li',{className:'Button '+c.name},el=m.$C('a',{title:c.description,href:m.Browser.isIE?'#'+(o.element.id||''):'JavaScript:void(0);',style:m.Object.suffix({width:o.imageSize,height:o.imageSize},'px')})));m.Event.addHandlers(el,{mouseover:function(){if(self.disabled)return},mouseout:function(){if(self.disabled)return},mousedown:function(a){m.Event.stop(a);if(self.disabled)return;self.onaction(a);o.actionList.get(c.name).execute(e)}});var b=(o.imagePath+o.imageSize+'_'+c.name.toLowerCase()+'.'+o.imageExtension);m.Element.setStyle(el,{backgroundImage:m.String.fill('url(%url%)',{url:b})});if(o.showLabels){m.Element.addNode(el,m.Element.newText(c.label))}return(e[c.name]=el)},update:function(a,b){var o=this.options,e=this.elements;if(b instanceof m.Component.ActionList){o.actionList=b;o.label=a;this.create()}},disable:function(){m.Element.addClass(this.elements.body,'disabled');this.disabled=true},enable:function(){m.Element.removeClass(this.elements.body,'disabled');this.disabled=false},oncreate:function(){},onaction:function(){}});m.Component.Toolbar.instances=[];m.Component.Toolbar.get=function(a){for(var i=0;i1){this.onpaste(this.newValue,this.oldValue,o.input)}else if(b<-1&&!this.keyValue){this.oncut(this.newValue,this.oldValue,o.input)}}this.oldValue=this.newValue;this.keyValue=false},setKeyValue:function(e){e=e||window.event;var a=e.which||e.keyCode,ctrl=(e.ctrlKey||e.metaKey);switch(true){case(a==17||a==0):return;case(ctrl&&a==67):case(ctrl&&a==88):case(ctrl&&a==86):case(ctrl&&a==224):this.keyValue=false;m.Function.delay(this.detect,10,this);return;default:break}this.keyValue=a},oncut:function(b,a,c,d){},onpaste:function(b,a,c,d){}});m.Component.ClipboardObserver.implement(new m.Class.Options)})();DL.Component.Selection=new DL.Class({initialize:function(a){this.options={win:window,doc:document};this.current=null;this.setOptions(a)},getElementByTagName:function(b){var a=this.getParent(),result=null;if(!a||!(a||a.tagName)||a.tagName=='BODY')return;b=b.toLowerCase();while(b!=a.tagName.toLowerCase()&&a.tagName.toLowerCase()!='body'){a=a.parentNode}if(a.tagName&&a.tagName.toLowerCase()!='body')result=a;return result},getNodes:function(){var a=this.options.doc,win=this.options.win,result=null,selection;if(DL.Browser.isIE){win.focus();selection=this.current=a.selection.createRange();if(selection.htmlText){result=a.createElement('span');result.innerHTML=selection.htmlText}}else{selection=this.current=win.getSelection();if(selection&&selection.rangeCount>0){var c=selection.getRangeAt(0),nodes=c.cloneContents();if(nodes.childNodes.length){if(DL.Browser.isSafari&&nodes.childNodes.length==1&&nodes.childNodes[0].nodeType==3){var b=this.getParent();if(b.textContent.length==nodes.childNodes[0].nodeValue.length)return DL.$C('span',{},DL.Element.cloneNode(b))}result=a.createElement('span');result.appendChild(nodes)}}}return result},getNodes2:function(){var c=this.options.win,doc=this.options.doc,d;if(DL.Browser.isIE){c.focus();d=this.current=doc.selection.createRange();d.collapse();d.moveToElementText(f=d.parentElement());if(d.parentElement().outerHTML==d.htmlText){d.select()}else return;var f=d.parentElement(),a=[f];for(var i=0,l=f.all.length;i0){var a=[],i=0;while(i0){var a=b.getRangeAt(0),container=a.commonAncestorContainer,result=container;if(container.nodeType==3){result=a.startContainer.parentNode}else if(a.startContainer.nextSibling===a.endContainer.previousSibling){result=a.startContainer.nextSibling}else if(a.startContainer.nodeType==1&&a.startContainer===a.endContainer&&(a.endOffset-a.startOffset)<=1){result=a.startContainer.childNodes[a.startOffset]}return result}else return doc.body},insertNode:function(c){var d,doc=this.options.doc,win=this.options.win;if(DL.Browser.isIE){win.focus();d=doc.selection.createRange();var b=(c.nodeType==11)?c.innerHTML:(c.outerHTML||c.nodeValue);if(doc.selection.type=="Control")d(0).outerHTML=b;else d.pasteHTML(b);return}d=this.options.win.getSelection();var f=d.getRangeAt(0),offset=f.startOffset,container=f.startContainer;if(DL.Browser.isOpera&&container&&container.nodeType==1&&container.tagName.toLowerCase()=='html'){container=doc.body;offset=container.childNodes.length}else f.deleteContents();f=doc.createRange();if(container.nodeType==3){var a=container.nodeValue,textAfter=a.substring(offset);container.nodeValue=a.substring(0,offset);if(container.nextSibling==null){container.parentNode.appendChild(c);container.parentNode.appendChild(doc.createTextNode(textAfter))}else{var e=doc.createTextNode(textAfter);container.parentNode.insertBefore(e,container.nextSibling);container.parentNode.insertBefore(c,e)}f.setStart(container.parentNode.childNodes[1],0);f.setEnd(container.parentNode.childNodes[2],0)}else{container.insertBefore(c,container.childNodes[offset]);f.setEnd(container.childNodes[offset],0);f.setStart(container.childNodes[offset],0)}d.removeAllRanges()}});DL.Component.Selection.implement(new DL.Class.Options);