{if(typeof SZN!="object"){var SZN={"NAME":"SZN"};};SZN.bind=function(obj,fnc){return fnc.bind(obj);};SZN.idGenerator=function(){this.idCnt=this.idCnt<10000000?this.idCnt:0;var ids="m"+new Date().getTime().toString(16)+"m"+this.idCnt.toString(16);this.idCnt++;return ids;};if(!Function.prototype.bind){Function.prototype.bind=function(thisObj){var fn=this;var args=Array.prototype.slice.call(arguments,1);return function(){return fn.apply(thisObj,args.concat(Array.prototype.slice.call(arguments)));};};};if(!Array.prototype.indexOf){Array.prototype.indexOf=function(item,from){var len=this.length;var i=from||0;if(i<0){i+=len;}for(;i<len;i++){if(i in this&&this[i]===item){return i;}}return -1;};}if(!Array.indexOf){Array.indexOf=function(obj,item,from){return Array.prototype.indexOf.call(obj,item,from);};}if(!Array.prototype.lastIndexOf){Array.prototype.lastIndexOf=function(item,from){var len=this.length;var i=from||len-1;if(i<0){i+=len;}for(;i>-1;i--){if(i in this&&this[i]===item){return i;}}return -1;};}if(!Array.lastIndexOf){Array.lastIndexOf=function(obj,item,from){return Array.prototype.lastIndexOf.call(obj,item,from);};}if(!Array.prototype.forEach){Array.prototype.forEach=function(cb,_this){var len=this.length;for(var i=0;i<len;i++){if(i in this){cb.call(_this,this[i],i,this);}}};}if(!Array.forEach){Array.forEach=function(obj,cb,_this){Array.prototype.forEach.call(obj,cb,_this);};}if(!Array.prototype.every){Array.prototype.every=function(cb,_this){var len=this.length;for(var i=0;i<len;i++){if(i in this&&!cb.call(_this,this[i],i,this)){return false;}}return true;};}if(!Array.every){Array.every=function(obj,cb,_this){return Array.prototype.every.call(obj,cb,_this);};}if(!Array.prototype.some){Array.prototype.some=function(cb,_this){var len=this.length;for(var i=0;i<len;i++){if(i in this&&cb.call(_this,this[i],i,this)){return true;}}return false;};}if(!Array.some){Array.some=function(obj,cb,_this){return Array.prototype.some.call(obj,cb,_this);};}if(!Array.prototype.map){Array.prototype.map=function(cb,_this){var len=this.length;var res=new Array(len);for(var i=0;i<len;i++){if(i in this){res[i]=cb.call(_this,this[i],i,this);}}return res;};}if(!Array.map){Array.map=function(obj,cb,_this){return Array.prototype.map.call(obj,cb,_this);};}if(!Array.prototype.filter){Array.prototype.filter=function(cb,_this){var len=this.length;var res=[];for(var i=0;i<len;i++){if(i in this){var val=this[i];if(cb.call(_this,val,i,this)){res.push(val);}}}return res;};}if(!Array.filter){Array.filter=function(obj,cb,_this){return Array.prototype.filter.call(obj,cb,_this);};}String.prototype.lpad=function(character,count){var ch=character||"0";var cnt=count||2;var s="";while(s.length<(cnt-this.length)){s+=ch;}s=s.substring(0,cnt-this.length);return s+this;};String.prototype.rpad=function(character,count){var ch=character||"0";var cnt=count||2;var s="";while(s.length<(cnt-this.length)){s+=ch;}s=s.substring(0,cnt-this.length);return this+s;};String.prototype.trim=function(){return this.match(/^\s*([\s\S]*?)\s*$/)[1];};Date.prototype._dayNames=["Pondělí","Úterý","Středa","Čtvrtek","Pátek","Sobota","Neděle"];Date.prototype._dayNamesShort=["Po","Út","St","Čt","Pá","So","Ne"];Date.prototype._monthNames=["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"];Date.prototype._monthNamesShort=["Led","Úno","Bře","Dub","Kvě","Čer","Črc","Srp","Zář","Říj","Lis","Pro"];Date.prototype.format=function(str){var suffixes={"1":"st","2":"nd","3":"rd","21":"st","22":"nd","23":"rd","31":"st"};var result="";var escape=false;for(var i=0;i<str.length;i++){var ch=str.charAt(i);if(escape){escape=false;result+=ch;continue;}switch(ch){case "\\":if(escape){escape=false;result+=ch;}else{escape=true;}break;case "d":result+=this.getDate().toString().lpad();break;case "j":result+=this.getDate();break;case "w":result+=this.getDay();break;case "N":result+=this.getDay()||7;break;case "S":var d=this.getDate();result+=suffixes[d]||"th";break;case "D":result+=this._dayNamesShort[(this.getDay()||7)-1];break;case "l":result+=this._dayNames[(this.getDay()||7)-1];break;case "z":var t=this.getTime();var d=new Date(t);d.setDate(1);d.setMonth(0);var diff=t-d.getTime();result+=diff/(1000*60*60*24);break;case "W":var d=new Date(this.getFullYear(),this.getMonth(),this.getDate());var day=d.getDay()||7;d.setDate(d.getDate()+(4-day));var year=d.getFullYear();var day=Math.floor((d.getTime()-new Date(year,0,1,-6))/(1000*60*60*24));result+=(1+Math.floor(day/7)).toString().lpad();break;case "m":result+=(this.getMonth()+1).toString().lpad();break;case "n":result+=(this.getMonth()+1);break;case "M":result+=this._monthNamesShort[this.getMonth()];break;case "F":result+=this._monthNames[this.getMonth()];break;case "t":var t=this.getTime();var m=this.getMonth();var d=new Date(t);var day=0;do{day=d.getDate();t+=1000*60*60*24;d=new Date(t);}while(m==d.getMonth());;result+=day;break;case "L":var d=new Date(this.getTime());d.setDate(1);d.setMonth(1);d.setDate(29);result+=(d.getMonth()==1?"1":"0");break;case "Y":result+=this.getFullYear().toString().lpad();break;case "y":result+=this.getFullYear().toString().lpad().substring(2);break;case "a":result+=(this.getHours()<12?"am":"pm");break;case "A":result+=(this.getHours()<12?"AM":"PM");break;case "G":result+=this.getHours();break;case "H":result+=this.getHours().toString().lpad();break;case "g":result+=this.getHours()%12;break;case "h":result+=(this.getHours()%12).toString().lpad();break;case "i":result+=this.getMinutes().toString().lpad();break;case "s":result+=this.getSeconds().toString().lpad();break;case "Z":result+=-60*this.getTimezoneOffset();break;case "O":case "P":var base=this.getTimezoneOffset()/-60;var o=Math.abs(base).toString().lpad();if(ch=="P"){o+=":";}o+="00";result+=(base>=0?"+":"-")+o;break;case "U":result+=this.getTime()/1000;break;case "u":result+="0";break;case "c":result+=arguments.callee.call(this,"Y-m-d")+"T"+arguments.callee.call(this,"H:i:sP");break;case "r":result+=arguments.callee.call(this,"D, j M Y H:i:s O");break;default:result+=ch;break;}}return result;};if(!window.console){window.console={"log":function(){}};}SZN.ClassMaker={};SZN.ClassMaker.VERSION="4.2";SZN.ClassMaker.NAME="ClassMaker";SZN.ClassMaker.CLASS="static";SZN.ClassMaker.copyObj=null;SZN.ClassMaker.makeClass=function(params){var p=this._makeDefaultParams(params);if(p.CLASS=="static"){return this.makeStatic(p);}var constructor=function(){var inicializator=false;if("$constructor" in arguments.callee.prototype){inicializator=arguments.callee.prototype.$constructor;}else{if(p.NAME in arguments.callee.prototype){inicializator=arguments.callee.prototype[p.NAME];}}if(inicializator){inicializator.apply(this,arguments);}};constructor.destroy=this._destroy;return this._addConstructorProperties(constructor,p);};SZN.ClassMaker.makeSingleton=function(params){var p=this._makeDefaultParams(params);var constructor=function(){if(constructor._instance){throw new Error("Cannot instantiate singleton class");}var inicializator=false;if("$constructor" in arguments.callee.prototype){inicializator=arguments.callee.prototype.$constructor;}if(inicializator){inicializator.apply(this,arguments);}};constructor._instance=null;constructor.getInstance=this._getInstance;return this._addConstructorProperties(constructor,p);};SZN.ClassMaker.makeInterface=function(params){var p=this._makeDefaultParams(params);var constructor=function(){throw new Error("Cannot instantiate interface");};return this._addConstructorProperties(constructor,p);};SZN.ClassMaker.makeStatic=function(params){var p=this._makeDefaultParams(params);var obj={};obj.VERSION=p.VERSION;obj.NAME=p.NAME;return obj;};SZN.ClassMaker._makeDefaultParams=function(params){params.NAME=params.NAME||false;params.VERSION=params.VERSION||"1.0";params.EXTEND=params.EXTEND||false;params.IMPLEMENT=params.IMPLEMENT||[];params.DEPEND=params.DEPEND||[];params.CLASS=params.CLASS;if(!(params.IMPLEMENT instanceof Array)){params.IMPLEMENT=[params.IMPLEMENT];}this._preMakeTests(params);return params;};SZN.ClassMaker._preMakeTests=function(params){if(!params.NAME){throw new Error("No NAME passed to SZN.ClassMaker.makeClass()");}if(!this.copyObj&&SZN.ObjCopy){this.copyObj=new SZN.ObjCopy();}var result=false;if(result=this._testDepend(params.DEPEND)){throw new Error("Dependency error in class "+params.NAME+" ("+result+")");}};SZN.ClassMaker._addConstructorProperties=function(constructor,params){for(var p in params){constructor[p]=params[p];}this._setInheritance(constructor);constructor.prototype.sConstructor=constructor;constructor.prototype.constructor=constructor;constructor.prototype.callSuper=this._callSuper;constructor.prototype.$super=this._$super;return constructor;};SZN.ClassMaker._getInstance=function(){if(!this._instance){this._instance=new this();}return this._instance;};SZN.ClassMaker._destroy=function(obj){for(var p in obj){obj[p]=null;};};SZN.ClassMaker._setInheritance=function(constructor){if(constructor.EXTEND){this._makeInheritance(constructor,constructor.EXTEND);}for(var i=0;i<constructor.IMPLEMENT.length;i++){this._makeInheritance(constructor,constructor.IMPLEMENT[i],true);}};SZN.ClassMaker._makeInheritance=function(constructor,parent,noSuper){for(var p in parent.prototype){var item=parent.prototype[p];if(typeof (item)!="function"){continue;}if(!item.owner){item.owner=parent;}}if(!noSuper){var tmp=function(){};tmp.prototype=parent.prototype;constructor.prototype=new tmp();if(this.copyObj!=null){for(var i in parent.prototype){if(typeof parent.prototype[i]=="object"){constructor.prototype[i]=this.copyObj.copy(parent.prototype[i]);}}}return;}for(var p in parent.prototype){if(typeof parent.prototype[p]=="object"){if(this.copyObj!=null){constructor.prototype[p]=this.copyObj.copy(parent.prototype[p]);}}else{if(noSuper&&((p=="$constructor")||(p=="$destructor"))){continue;}constructor.prototype[p]=parent.prototype[p];}}};SZN.ClassMaker._testDepend=function(depend){var out=true;for(var i=0;i<depend.length;i++){var item=depend[i];if(!item.sClass){return "Unsatisfied dependency";}if(!item.ver){return "Version not specified in dependency";}var depMajor=item.sClass.VERSION.split(".")[0];var claMajor=item.ver.split(".")[0];if(depMajor!=claMajor){return "Version conflict in "+item.sClass.NAME;}}return false;};SZN.ClassMaker._callSuper=function(methodName,callingFunction){var owner=callingFunction.owner||this.constructor;var sup=owner.EXTEND;if(!sup){throw new Error("\"No super-class available\"");}var method=sup.prototype[methodName];if(!method||(typeof method!="function")){throw new Error("Super-class doesn't have method '"+methodName+"'");}var mySelf=this;return function(){return method.apply(mySelf,arguments);};};SZN.ClassMaker._$super=function(){var caller=arguments.callee.caller;if(!caller){throw new Error("Function.prototype.caller not supported");}var owner=caller.owner||this.constructor;var callerName=false;for(var name in owner.prototype){if(owner.prototype[name]==caller){callerName=name;}}if(!callerName){throw new Error("Cannot find supplied method in constructor");}var parent=owner.EXTEND;if(!parent){throw new Error("No super-class available");}if(!parent.prototype[callerName]){throw new Error("Super-class doesn't have method '"+callerName+"'");}var func=parent.prototype[callerName];return func.apply(this,arguments);};SZN.Events=SZN.ClassMaker.makeClass({"NAME":"Events","VERSION":"2.4","CLASS":"static"});SZN.Events.eventFolder={};SZN.Events._domReadyTimer=null;SZN.Events._domReadyCallback=[];SZN.Events._domReadyAlreadyRun=false;SZN.Events._windowLoadListenerId=false;SZN.Events.onDomReady=function(obj,func){SZN.Events._domReadyCallback[SZN.Events._domReadyCallback.length]={"obj":obj,"func":func};SZN.Events._onDomReady();};SZN.Events._onDomReady=function(){if((/Safari/i.test(navigator.userAgent))||(/WebKit|Khtml/i.test(navigator.userAgent))){SZN.Events._domReadyTimer=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(SZN.Events._domReadyTimer);SZN.Events._domReady();}},10);}else{if(document.all&&!window.opera){if(window.parent==window){try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,1);return;}SZN.Events._domReady();}else{SZN.Events._windowLoadListenerId=SZN.Events.addListener(window,"load",window,function(){SZN.Events._domReady();});}}else{if(document.addEventListener){document.addEventListener("DOMContentLoaded",SZN.Events._domReady,false);}else{SZN.Events._windowLoadListenerId=SZN.Events.addListener(window,"load",window,function(){SZN.Events._domReady();});}}}};SZN.Events._domReady=function(){if(!SZN.Events._domReadyAlreadyRun){SZN.Events._domReadyAlreadyRun=true;if(document.addEventListener){document.removeEventListener("DOMContentLoaded",SZN.Events._domReady,true);}if(SZN.Events._windowLoadListenerId){SZN.Events.removeListener(SZN.Events._windowLoadListenerId);SZN.Events._windowLoadListenerId=false;}for(var i=0;i<SZN.Events._domReadyCallback.length;i++){var callback=SZN.Events._domReadyCallback[i];if(typeof callback.func=="string"){callback.obj[callback.func]();}else{callback.func.apply(callback.obj,[]);}}SZN.Events._domReadyCallback=[];}};SZN.Events.destructor=function(){this.removeAllListeners();this.sConstructor.destroy(this);};SZN.Events.getEvent=function(e){return e||window.event;};SZN.Events.getTarget=function(e){var e=e||window.event;return e.target||e.srcElement;};SZN.Events.addListener=function(elm,eType,obj,func,capture){var capture=capture||false;var method=null;var toFold=null;if(func){if(typeof (func)=="string"){if(typeof (obj[func])=="function"){method=this._getMethod(obj,func,elm);toFold=this._addListener(elm,eType,method,capture);}else{throw new Error("Events.addListener: arguments[3] must be method of arguments[2]");}}else{method=this._getMethod(obj,func,elm);toFold=this._addListener(elm,eType,method,capture);}}else{toFold=this._addListener(elm,eType,obj,capture);}toFold.push(obj);toFold.push(func);return this._storeToFolder(toFold);};SZN.Events._addListener=function(elm,eType,func,capture){if(document.addEventListener){elm.addEventListener(eType,func,capture);}else{if(document.attachEvent){elm.attachEvent("on"+eType,func);}}return [elm,eType,func,capture];};SZN.Events._getMethod=function(obj,func,elm){if(typeof (func)=="string"){return function(e){return obj[func].apply(obj,[e,elm]);};}else{return function(e){return func.apply(obj,[e,elm]);};}};SZN.Events._storeToFolder=function(data){var id=SZN.idGenerator();this.eventFolder[id]={};this.eventFolder[id].trg=data[0];this.eventFolder[id].typ=data[1];this.eventFolder[id].action=data[2];this.eventFolder[id].capture=data[3];this.eventFolder[id].obj=data[4];this.eventFolder[id].func=data[5];return id;};SZN.Events.removeListener=function(elm,eType,obj,func,capture,cached){var capture=arguments[4]||false;var cached=arguments[5]||false;if(arguments.length==1||typeof (arguments[0])=="string"){cached=arguments[0];}if(typeof cached=="string"){return this._removeById(cached);}else{if(typeof obj=="function"){return this._removeListener(elm,eType,obj,capture);}else{throw new Error("Events.removeListener: wrong arguments");}}};SZN.Events._removeListener=function(elm,eType,func,capture){if(document.removeEventListener){if(window.opera&&(elm==window)){elm=document;}elm.removeEventListener(eType,func,capture);}else{if(document.detachEvent){elm.detachEvent("on"+eType,func);}}return 0;};SZN.Events._removeById=function(cached){try{var obj=this.eventFolder[cached];this._removeListener(obj.trg,obj.typ,obj.action,obj.capture);this.eventFolder[cached]=null;delete (this.eventFolder[cached]);}catch(e){return 1;}return 0;};SZN.Events.removeAllListeners=function(){for(var p in this.eventFolder){this._removeById(p);}};SZN.Events.stopEvent=function(e){var e=e||window.event;if(e.stopPropagation){e.stopPropagation();}else{e.cancelBubble=true;}};SZN.Events.cancelDef=function(e){var e=e||window.event;if(e.preventDefault){e.preventDefault();}else{e.returnValue=false;}};SZN.Events.addTimeFunction=function(owner,handleFuncName,exeFunc,exeObj){if(!!exeObj){owner[handleFuncName]=function(){return exeFunc.apply(exeObj,[]);};}else{owner[handleFuncName]=function(){return exeFunc.apply(owner,[]);};}};SZN.Events.getInfo=function(){var output=[];var tmpObjectFolder=[];var tmpEventFolder=[];for(var i in SZN.Events.eventFolder){var o=SZN.Events.eventFolder[i];var index=tmpObjectFolder.indexOf(o.trg);if(index==-1){index=tmpObjectFolder.push(o.trg)-1;tmpEventFolder[index]=[];}tmpEventFolder[index].push(o);}for(var i in tmpObjectFolder){var listeners=[];for(var j in tmpEventFolder[i]){var o=tmpEventFolder[i][j];var obj=window;var func=null;if(o.func){obj=o.obj;func=o.func;}else{func=o.action;}listeners.push({"sType":o.typ,"sFunction":(obj!=window&&obj.constructor?"["+obj.constructor.NAME+"]":"")+(typeof (func)=="string"?"."+func+" = "+obj[func].toString():" "+func.toString()),"bRemoved":false});}output.push({"nNode":tmpObjectFolder[i],"sSource":"JAK","aListeners":listeners});}tmpObjectFolder=null;tmpEventFolder=null;return output;};SZN.Browser=SZN.ClassMaker.makeClass({"NAME":"Browser","VERSION":"2.4","CLASS":"static"});SZN.Browser.platform="";SZN.Browser.client="";SZN.Browser.klient="";SZN.Browser.version=0;SZN.Browser.agent="";SZN.Browser.mouse={};SZN.Browser._getPlatform=function(){if((this._agent.indexOf("X11")!=-1)||(this._agent.indexOf("Linux")!=-1)){return "nix";}else{if(this._agent.indexOf("Mac")!=-1){return "mac";}else{if(this._agent.indexOf("Win")!=-1){return "win";}else{return "oth";}}}};SZN.Browser._getKlient=function(){if(window.opera){return "opera";}else{if(window.chrome){return "chrome";}else{if(document.attachEvent&&(typeof navigator.systemLanguage!="undefined")){return "ie";}else{if(document.getAnonymousElementByAttribute){return "gecko";}else{if(this._agent.indexOf("KHTML")){if(this._vendor=="KDE"){return "konqueror";}else{return "safari";}}else{return "oth";}}}}}};SZN.Browser._getMouse=function(){var left;var right;var middle;if((SZN.Browser.client=="ie"&&parseFloat(SZN.Browser.version)<9)||(SZN.Browser.client=="konqueror")){left=1;middle=4;right=2;}else{if((SZN.Browser.client=="opera")&&(SZN.Browser.version>7)&&(SZN.Browser.version<9)){left=1;middle=4;right=2;}else{if(SZN.Browser.client=="safari"){if(parseInt(SZN.Browser.version)>2){left=0;middle=0;right=2;}else{left=1;middle=1;right=2;}}else{left=0;middle=1;right=2;}}}return {"left":left,"right":right,"middle":middle};};SZN.Browser._getVersion=function(){var out=0;var fncName="_get_"+this.client+"_ver";if(typeof this[fncName]=="function"){return this[fncName]();}else{return 0;}};SZN.Browser._get_ie_ver=function(){if(typeof Function.prototype.call!="undefined"){if(document.addEventListener){return "9";}else{if(window.XDomainRequest){return "8";}else{if(window.XMLHttpRequest){return "7";}else{if(typeof document.doctype=="object"){return "6";}else{return "5.5";}}}}}else{return "5.0";}};SZN.Browser._get_opera_ver=function(){if(window.opera.version){return window.opera.version();}else{if(document.createComment){return "7";}else{return "6";}}};SZN.Browser._get_gecko_ver=function(){if(document.getBoxObjectFor===undefined&&navigator.geolocation){return "3.6";}else{if(navigator.geolocation){return "3.5";}else{if(document.getElementsByClassName){return "3";}else{if(window.external){return "2";}else{return "1.5";}}}}};SZN.Browser._get_konqueror_ver=function(){var num=this._agent.indexOf("KHTML")+6;var part=this._agent.substring(num);var end=part.indexOf(" ");var x=part.substring(0,end-2);return x;};SZN.Browser._get_safari_ver=function(){var ver=this._agent.match(/version\/([0-9]+)/i);return (ver?ver[1]:"1");};SZN.Browser._get_chrome_ver=function(){var ver=this._agent.match(/Chrome\/([0-9]+)/i);return (ver?ver[1]:null);};SZN.Browser.getBrowser=function(){this._agent=this.agent=navigator.userAgent;this._platform=navigator.platform;this._vendor=navigator.vendor;this.platform=this._getPlatform();this.client=this._getKlient();this.klient=this.client;this.version=this._getVersion();this.mouse=this._getMouse();};SZN.Browser.getBrowser();SZN.Components=SZN.ClassMaker.makeClass({"NAME":"Components","VERSION":"1.2","CLASS":"class"});SZN.Components.prototype.hasComponents=function(){if((this.components instanceof Array)&&this.components.length){return true;}else{return false;}};SZN.Components.prototype.addAllComponents=function(){if(!this.hasComponents()){return false;}for(var i=0;i<this.components.length;i++){this._addComponent(this.components[i]);}return true;};SZN.Components.prototype.addNewComponent=function(component){if(!this.hasComponents()){this.components=new Array();}this.components.push(component);this._addComponent(component);};SZN.Components.prototype._addComponent=function(component){if(typeof component.part!="undefined"){if(typeof component.name=="undefined"){component.name=component.part.NAME.substring(0,1).toLowerCase();component.name+=component.part.NAME.substring(1);}if(typeof component.setting!="undefined"){this[component.name]=new component.part(this,component.name,component.setting);}else{this[component.name]=new component.part(this,component.name);}}};SZN.Components.prototype.registredMethod=function(owner){var field=[this,this.sConstructor];for(var i=0;i<field.length;i++){var obj=field[i];for(var j in obj){if(obj[j]===null)continue;if(typeof obj[j]=="undefined")continue;if((typeof obj[j].access!="undefined")&&(obj[j].access.indexOf("public")==0)){var name=this._createMethodName(obj,j);if(typeof owner[name]=="undefined"){owner[name]=(obj==this.sConstructor)?this.sConstructor[j]:SZN.bind(this,this[j]);}else{throw new Error("registredMethod: method \""+name+"\" already exist!");}}}}};SZN.Components.prototype.unregistredMethod=function(owner){var field=[this,this.sConstructor];for(var i=0;i<field.length;i++){var obj=field[i];for(var j in obj){if(obj[j]===null)continue;if(typeof obj[j]=="undefined")continue;if((typeof obj[j].access!="undefined")&&(obj[j].access.indexOf("public")==0)){var name=this._createMethodName(obj,j);if(typeof owner[name]!="undefined"){delete (owner[name]);}}}}};SZN.Components.prototype._createMethodName=function(obj,methodName){var nameFirstChar=methodName.substring(0,1).toUpperCase();var nameNext=methodName.substring(1);var mods=obj[methodName].access.replace(/[ ]{2,}/gi," ").split(" ");if(mods.length>1){var name=mods[1];}else{var namePrefix=(obj==this.sConstructor)?obj.NAME:this._name;var name=namePrefix+nameFirstChar+nameNext;}return name;};SZN.Components.prototype.getMain=function(){var obj=this;while(typeof obj.TOP_LEVEL=="undefined"){if(typeof obj._owner=="undefined"){throw new Error("can't find TOP LEVEL Class");}else{obj=obj._owner;}}return obj;};SZN.Components.prototype.callChildDestructor=function(){this.inDestruction=true;if(!this.hasComponents()){return false;}for(var i=0;i<this.components.length;i++){var cName=this.components[i].name;if(this[cName]==null){continue;}if((typeof this[cName].CLASS!="undefined")&&(typeof this[cName].inDestruction!="boolean")){var name="$destructor";if((typeof this[cName][name]!="undefined")&&(typeof this[cName][name]=="function")){this[cName][name]();}this[cName]=null;}}};SZN.Components.prototype.removeComponent=function(component,withDestruction){for(var i=0;i<this.components.length;i++){var c=this.components[i];if(component==c.name||component==this[c.name]){if(withDestruction&&(typeof this[c.name].$destructor=="function")){this[c.name].$destructor();}this[c.name]=null;c=null;this.components.splice(i,1);break;}}};SZN.Dom=SZN.ClassMaker.makeClass({"NAME":"Dom","VERSION":"3.6","CLASS":"static"});SZN.cEl=function(tagName,id,className,styleObj,doc){var d=doc||document;var node=d.createElement(tagName);if(arguments.length==1){return node;}if(id){node.id=id;}if(className){node.className=className;}if(styleObj){SZN.Dom.setStyle(node,styleObj);}return node;};SZN.cTxt=function(str,doc){var d=doc||document;return d.createTextNode(str);};SZN.gEl=function(ids){if(typeof (ids)=="string"){return document.getElementById(ids);}else{return ids;}};SZN.Dom.append=function(){for(var i=0;i<arguments.length;i++){var arr=arguments[i];var head=arr[0];for(var j=1;j<arr.length;j++){head.appendChild(arr[j]);}}};SZN.Dom.hasClass=function(element,className){var arr=element.className.split(" ");for(var i=0;i<arr.length;i++){if(arr[i]==className){return true;}}return false;};SZN.Dom.addClass=function(element,className){if(SZN.Dom.hasClass(element,className)){return;}element.className+=" "+className;};SZN.Dom.removeClass=function(element,className){var names=element.className.split(" ");var newClassArr=[];for(var i=0;i<names.length;i++){if(names[i]!=className){newClassArr.push(names[i]);}}element.className=newClassArr.join(" ");};SZN.Dom.clear=function(element){while(element.firstChild){element.removeChild(element.firstChild);}};SZN.Dom.getDocSize=function(){var x=0;var y=0;if(document.compatMode!="BackCompat"){if(document.documentElement.clientWidth&&SZN.Browser.klient!="opera"){x=document.documentElement.clientWidth;y=document.documentElement.clientHeight;}else{if(SZN.Browser.klient=="opera"){if(parseFloat(SZN.Browser.version)<9.5){x=document.body.clientWidth;y=document.body.clientHeight;}else{x=document.documentElement.clientWidth;y=document.documentElement.clientHeight;}}}if((SZN.Browser.klient=="safari")||(SZN.Browser.klient=="konqueror")){y=window.innerHeight;}}else{x=document.body.clientWidth;y=document.body.clientHeight;}return {"width":x,"height":y};};SZN.Dom.getBoxPosition=function(obj,ref){var top=0;var left=0;var refBox=ref||obj.ownerDocument.body;if(obj.getBoundingClientRect&&!ref){var de=document.documentElement;var box=obj.getBoundingClientRect();var scroll=SZN.Dom.getBoxScroll(obj);return {"left":box.left+scroll.x-de.clientLeft,"top":box.top+scroll.y-de.clientTop};}while(obj&&obj!=refBox){top+=obj.offsetTop;left+=obj.offsetLeft;if((SZN.Browser.client=="gecko"&&SZN.Browser.version<3)||SZN.Browser.client=="safari"){if(SZN.Dom.getStyle(obj,"position")=="fixed"){var scroll=SZN.Dom.getScrollPos();top+=scroll.y;left+=scroll.x;break;}}obj=obj.offsetParent;}return {"top":top,"left":left};};SZN.Dom.getFullBoxPosition=function(obj,parent,fixed){var pos=SZN.Dom.getBoxPosition(obj,parent,fixed);var scroll=SZN.Dom.getBoxScroll(obj,parent,fixed);pos.left-=scroll.x;pos.top-=scroll.y;return {"left":pos.left,"top":pos.top};};SZN.Dom.getBoxScroll=function(obj,ref,fixed){var x=0;var y=0;var cur=obj.parentNode;var limit=ref||obj.ownerDocument.documentElement;var fix=false;while(1){if(SZN.Browser.client=="opera"&&SZN.Dom.getStyle(cur,"display")!="block"){cur=cur.parentNode;continue;}if(SZN.Browser.client=="opera"&&SZN.Browser.version<9.5&&cur==document.body){cur=cur.parentNode;continue;}if(fixed&&SZN.Dom.getStyle(cur,"position")=="fixed"){fix=true;}if(!fix){x+=cur.scrollLeft;y+=cur.scrollTop;}if(cur==limit){break;}cur=cur.parentNode;if(!cur){break;}}return {"x":x,"y":y};};SZN.Dom.getScrollPos=function(){if(document.documentElement.scrollTop||document.documentElement.scrollLeft){var ox=document.documentElement.scrollLeft;var oy=document.documentElement.scrollTop;}else{if(document.body.scrollTop||document.body.scrollLeft){var ox=document.body.scrollLeft;var oy=document.body.scrollTop;}else{var ox=0;var oy=0;}}return {"x":ox,"y":oy};};SZN.Dom.getStyle=function(elm,property){if(document.defaultView&&document.defaultView.getComputedStyle){var cs=elm.ownerDocument.defaultView.getComputedStyle(elm,"");if(!cs){return false;}return cs[property];}else{return elm.currentStyle[property];}};SZN.Dom.setStyle=function(elm,style){for(var name in style){elm.style[name]=style[name];}};SZN.Dom.writeStyle=function(css){var node=SZN.cEl("style");node.type="text/css";if(node.styleSheet){node.styleSheet.cssText=css;}else{node.appendChild(SZN.cTxt(css));}var head=document.getElementsByTagName("head");if(head.length){head=head[0];}else{head=SZN.cEl("head");document.documentElement.appendChild(head,document.body);}head.appendChild(node);return node;};SZN.Dom.elementsHider=function(obj,elements,action){var elems=elements;if(!elems){elems=["select","object","embed","iframe"];}var hidden=arguments.callee.hidden;if(hidden){hidden.forEach(function(node){node.style.visibility="visible";});arguments.callee.hidden=[];}function verifyParent(node){var ok=false;var cur=node;while(cur.parentNode&&cur!=document){if(cur==obj){ok=true;}cur=cur.parentNode;}return ok;}if(action=="hide"){if(typeof obj=="string"){obj=SZN.gEl(obj);}var hidden=[];var box=this.getBoxPosition(obj);box.width=obj.offsetWidth+box.left;box.height=obj.offsetHeight+box.top;for(var e=0;e<elems.length;++e){var elm=document.getElementsByTagName(elems[e]);for(var f=0;f<elm.length;++f){var node=this.getBoxPosition(elm[f]);if(verifyParent(elm[f])){continue;}node.width=elm[f].offsetWidth+node.left;node.height=elm[f].offsetHeight+node.top;if(!((box.left>node.width)||(box.width<node.left)||(box.top>node.height)||(box.height<node.top))){elm[f].style.visibility="hidden";hidden.push(elm[f]);}}}arguments.callee.hidden=hidden;}};SZN.Dom.getElementsByClass=function(searchClass,node,tag){if(document.getElementsByClassName&&!tag){var elm=node||document;return SZN.Dom.arrayFromCollection(elm.getElementsByClassName(searchClass));}if(document.querySelectorAll&&!tag){var elm=node||document;return SZN.Dom.arrayFromCollection(elm.querySelectorAll("."+searchClass));}var classElements=[];var node=node||document;var tag=tag||"*";var els=node.getElementsByTagName(tag);var elsLen=els.length;var pattern=new RegExp("(^|\\s)"+searchClass+"(\\s|$)");for(var i=0,j=0;i<elsLen;i++){if(pattern.test(els[i].className)){classElements[j]=els[i];j++;}}return classElements;};SZN.Dom.arrayFromCollection=function(col){var result=[];try{result=Array.prototype.slice.call(col);}catch(e){for(var i=0;i<col.length;i++){result.push(col[i]);}}finally{return result;}};SZN.Dom.separateCode=function(str){var js=[];var out={};var s=str.replace(/<script.*?>([\s\S]*?)<\/script>/g,function(tag,code){js.push(code);return "";});return [s,js.join("\n")];};SZN.Dom.shiftBox=function(box){var dx=0;var dy=0;var pos=SZN.Dom.getBoxPosition(box);var scroll=SZN.Dom.getScrollPos();pos.left-=scroll.x;pos.top-=scroll.y;var port=SZN.Dom.getDocSize();var w=box.offsetWidth;var h=box.offsetHeight;var diff=pos.top+h-port.height;if(diff>0){pos.top-=diff;dy-=diff;}var diff=pos.left+w-port.width;if(diff>0){pos.left-=diff;dx-=diff;}var diff=pos.top;if(diff<0){pos.top-=diff;dy-=diff;}var diff=pos.left;if(diff<0){pos.left-=diff;dx-=diff;}return [dx,dy];};SZN.ObjLib=SZN.ClassMaker.makeClass({"NAME":"ObjLib","VERSION":"2.0","CLASS":"class"});SZN.ObjLib.prototype.$constructor=function(){this._options={"functionResistant":false,"recursionResistant":false,"depthResistant":false,"sortedSerialization":false,"showFlag":false,"depth":200};};SZN.ObjLib.prototype.$destructor=function(){};SZN.ObjLib.prototype.reSetOptions=function(newOptions,set){if(!newOptions){return this._options;}var out={};for(var i in this._options){if(set&&newOptions[i]){this._options[i]=newOptions[i];}out[i]=newOptions[i]?newOptions[i]:this._options[i];}return out;};SZN.ObjLib.prototype.pretty=function(str,sep){var arr=str.toString().split("");var newline=this._isIE()?"\n\r":"\n";var tab=sep?sep:"\t";var ptr=0;var depth=0;var inSpecial="";function countBackslashes(){var cnt=0;var ptr2=ptr-1;while(ptr2>=0&&arr[ptr2]=="\\"){cnt++;ptr2--;}return cnt;}while(ptr<arr.length){var ch=arr[ptr];switch(ch){case "\"":if(inSpecial=="re"){break;}var num=countBackslashes();if(!(num&1)){inSpecial=(inSpecial?"":"str");}break;case "/":if(inSpecial=="str"){break;}var num=countBackslashes();if(!(num&1)){inSpecial=(inSpecial?"":"re");}break;case ",":if(!inSpecial){arr.splice(++ptr,0,newline);for(var i=0;i<depth;i++){arr.splice(++ptr,0,tab);}}break;case "{":case "[":if(!inSpecial){depth++;arr.splice(++ptr,0,newline);for(var i=0;i<depth;i++){arr.splice(++ptr,0,tab);}}break;case "}":case "]":if(!inSpecial){arr.splice(ptr++,0,newline);depth--;for(var i=0;i<depth;i++){arr.splice(ptr++,0,tab);}}break;}ptr++;}return arr.join("");};SZN.ObjLib.prototype.serialize=function(objToSource,options){var deepFlag=0;var startString="{";var endString="}";var propertySep=":";var propertyEnd=",";var mySelf=this;var output="";var firstStep=true;var cache=[];var mOptions=this.reSetOptions(options);var mySource=function(obj){if(mOptions.depth&&(mOptions.depth<deepFlag)){if(!mOptions.depthResistant){throw new Error("Serialize: structure is too depth.");}else{return "\"[max depth overrun]\"";}}if(cache.indexOf(obj)!=-1){if(!mOptions.recursionResistant){throw new Error("serialize: Circular reference encountered");return null;}else{return "\"[circular reference found]\"";}}if(typeof arguments[1]!="undefined"){var propName=arguments[1];}else{var propName=false;}if(!(obj instanceof Object)){switch(typeof obj){case "string":return "\""+mySelf._formatString(obj)+"\"";break;case "undefined":return obj;break;default:return obj;break;}}else{cache.push(obj);var builtIn=mySelf._builtInObjectSerialize(obj,mOptions);if(builtIn.isSet){return builtIn.output;}else{if(typeof obj=="function"){if(!mOptions.functionResistant){throw new Error("Serialize: can't serialize object with some method - ** "+(propName?"obj":propName)+" **");}else{return "\"["+"function: "+propName+"]\"";}}var output=startString;deepFlag++;var klice=[];for(var p in obj){klice.push(p);}if(mOptions.sortedSerialization){klice.sort();}for(var i=0;i<klice.length;i++){var klic=klice[i];var propName=mySelf._formatString(klic);try{var value=obj[klic];}catch(e){var value="[value inaccessible]";}output+="\""+propName+"\""+propertySep+mySource(value,klic)+propertyEnd;}var charNum=(output.lastIndexOf(propertyEnd)>=0)?output.lastIndexOf(propertyEnd):output.length;output=output.substring(0,charNum);deepFlag--;return output+endString;}}};var source=mySource(objToSource);if(mOptions.showFlag){return this.pretty(source,mOptions.showFlag);}else{return source;}};SZN.ObjLib.prototype._arraySerialize=function(fieldToSerialize,options){var fieldStr="";var mySelf=this;var mOptions=options;var mySource=function(field){if(field instanceof Array){for(var i=0;i<field.length;i++){if(typeof field[i]=="function"&&!(field[i] instanceof RegExp)){if(!mOptions.functionResistant){throw new Error("Serialize: can't serialize Function");}else{fieldStr+="\"["+"function: "+i+"]\",";continue;}}if((typeof field[i]!="object")&&((typeof field[i]!="function"))){if(typeof field[i]=="string"){var str=mySelf._formatString(field[i]);fieldStr+="\""+str+"\",";}else{fieldStr+=field[i]+",";}}else{fieldStr+=mySelf.serialize(field[i],mOptions)+",";}}return "["+fieldStr.substring(0,fieldStr.length-1)+"]";}else{throw new Error("arraySerialize: Attribute is not Array");}};var myString=mySource(fieldToSerialize);return myString;};SZN.ObjLib.prototype.unserialize=function(serializedString){eval("var newVar="+serializedString);return newVar;};SZN.ObjLib.prototype.match=function(refObj,matchObj,options){var mOptions={"functionResistant":false,"recursionResistant":false,"depthResistant":false,"sortedSerialization":true,"showFlag":false,"depth":200};if(options){for(var i in mOptions){mOptions[i]=(typeof options[i]!="undefined"?options[i]:mOptions[i]);}}if(this.serialize(refObj,mOptions)==this.serialize(matchObj,mOptions)){return true;}else{return false;}};SZN.ObjLib.prototype._builtInObjectSerialize=function(testedObj,options){var output=null;var isSet=false;if(testedObj instanceof String){output="new String(\""+this._formatString(testedObj)+"\")";isSet=true;}else{if(testedObj instanceof Number){output="new Number("+testedObj+")";isSet=true;}else{if(testedObj instanceof RegExp){output="new RegExp("+testedObj+")";isSet=true;}else{if(testedObj instanceof Array){output=this._arraySerialize(testedObj,options);isSet=true;}else{if(testedObj instanceof Date){var tm=testedObj.getTime();output="new Date("+tm+")";isSet=true;}else{if(testedObj instanceof Boolean){output="new Boolean("+testedObj+")";isSet=true;}else{if(testedObj==null){isSet=true;}}}}}}}return {"isSet":isSet,"output":output};};SZN.ObjLib.prototype._isIE=function(){if(document.all&&document.attachEvent&&!window.opera){return true;}return false;};SZN.ObjLib.prototype.copy=function(objToCopy,options){var mOptions=this.reSetOptions(options);var str=this.serialize(objToCopy,mOptions);return this.unserialize(str);};SZN.ObjLib.prototype._formatString=function(s){var re=/["\\']/g;var re2=/[\n\r\t]/g;var replace={"\n":"\\n","\t":"\\t","\r":"\\r"};return s.replace(re,this._addSlashes).replace(re2,function(ch){return replace[ch];});},SZN.ObjLib.prototype._addSlashes=function(ch){return "\\"+ch;};SZN.ObjLib.prototype.arrayCopy=function(arrayToCopy,options){if(arrayToCopy instanceof Array){var mOptions=this.reSetOptions(options);var out=this.arraySerialize(arrayToCopy,mOptions);return this.unserialize(out);}else{throw new Error("ObjCopy.arrayCopy: Attribute is not Array");}};SZN.ObjCopy=SZN.ClassMaker.makeClass({"NAME":"ObjCopy","VERSION":"2.0","CLASS":"class","EXTEND":SZN.ObjLib});SZN.ObjCopy.prototype.$constructor=function(options){this.callSuper("$constructor",arguments.callee)(options);};SZN.HTTPRequest=SZN.ClassMaker.makeClass({"NAME":"HTTPRequest","VERSION":"1.1","CLASS":"class"});SZN.HTTPRequest.prototype.$constructor=function(url,callBackObj,callBackFunc){this.data=new Object();this.url=url?url:"";this.callBackObj=callBackObj;this.callBackFunc=callBackFunc;this.setFormat();this.setMode();this.setMethod();this.setPostData();this.setHeaders();};SZN.HTTPRequest.Setting=function(url,method,postData,headers,mode,format){this.url=url?url:"";this.method=method?method:"";this.mode=mode?mode:"";this.format=format?format:"";this.headers=headers?headers:"";this.postData=postData?postData:"";};SZN.HTTPRequest.prototype.METHOD={"post":"post","get":"get","def":"get"};SZN.HTTPRequest.prototype.FORMAT={"xml":"xml","txt":"txt","def":"txt"};SZN.HTTPRequest.prototype.MODE={"async":true,"sync":false,"def":true};SZN.HTTPRequest.prototype.HEADER=[{"typ":"Content-Type","content":"application/x-www-form-urlencoded"}];SZN.HTTPRequest.prototype.destructor=function(){for(var i in this){this[i]=null;}};SZN.HTTPRequest.prototype.init=function(){};SZN.HTTPRequest.prototype.setMethod=function(method){this.data.method=this._getMethod(method);};SZN.HTTPRequest.prototype.setMode=function(mode){this.data.mode=this._getMode(mode);};SZN.HTTPRequest.prototype.setFormat=function(format){this.data.format=this._getFormat(format);};SZN.HTTPRequest.prototype.setHeaders=function(headers){this.data.headers=this._setHeaders(headers);};SZN.HTTPRequest.prototype.setPostData=function(data){this.data.postData=data?data:"";};SZN.HTTPRequest.prototype.send=function(url,obj,method,requestData,returnOnly){var mySelf=this;var param=requestData?requestData:{};var data=this._setFromData(url,obj,method,param);var XHR=this._getRequest();try{XHR.open(data.method,data.url,data.mode);}catch(e){return 0;}for(var i=0;i<data.headers.length;i++){XHR.setRequestHeader(data.headers[i].typ,data.headers[i].content);}if(data.mode){function stateChangeFunction(){if(XHR.readyState==4){if(data.format=="xml"){var out=XHR.responseXML;}else{if(data.format=="txt"){var out=XHR.responseText;}}var status=0;try{status=XHR.status;}catch(e){}finally{data.callBackObj[data.callBackFunc](out,status);XHR=null;}}}XHR.onreadystatechange=stateChangeFunction;}if(data.method==this.METHOD["post"]){if(typeof data.postData!="undefined"){XHR.send(data.postData);}else{return 0;}}else{XHR.send(null);}if(!data.mode){if(data.format=="xml"){var out=XHR.responseXML;}else{var out=XHR.responseText;}if(returnOnly){return {"status":XHR.status,"data":out};}else{data.callBackObj[data.callBackFunc](out,XHR.status);}}else{return XHR;}};SZN.HTTPRequest.prototype.abort=function(XHR){if(typeof XHR=="object"&&XHR.readyState!=4){XHR.abort();}else{return 0;}};SZN.HTTPRequest.prototype._getMethod=function(method){return (typeof this.METHOD[method]!="undefined")?this.METHOD[method]:this.METHOD["def"];};SZN.HTTPRequest.prototype._getMode=function(mode){return (typeof this.MODE[mode]!="undefined")?this.MODE[mode]:this.MODE["def"];};SZN.HTTPRequest.prototype._getFormat=function(format){return (typeof this.FORMAT[format]!="undefined")?this.FORMAT[format]:this.FORMAT["def"];};SZN.HTTPRequest.prototype._setHeaders=function(headers){var headers=(headers instanceof Array)?headers:new Array();var out=new Array();var setContent=false;for(var i=0;i<headers.length;i++){if(headers[i].typ=="Content-Type"){setContent=true;}out[i]={"typ":headers[i].typ,"content":headers[i].content};}if(!setContent){out.push({"typ":this.HEADER[0].typ,"content":this.HEADER[0].content});}return out;};SZN.HTTPRequest.prototype._setFromData=function(url,obj,func,setting){var data=new Object();for(var i in this.data){switch(i){case "method":if(setting[i]){data[i]=this._getMethod(setting[i]);}else{data[i]=this.data[i];}break;case "format":if(setting[i]){data[i]=this._getFormat(setting[i]);}else{data[i]=this.data[i];}break;case "mode":if(setting[i]){data[i]=this._getMode(setting[i]);}else{data[i]=this.data[i];}break;case "headers":if(setting[i]){data.headers=this._setHeaders(setting[i]);}else{data.headers=this._setHeaders(this.data[i]);}break;default:if(setting[i]){data[i]=setting[i];}else{data[i]=this.data[i];}break;}}data.url=url?url:this.url;data.callBackObj=obj?obj:this.callBackObj;data.callBackFunc=func?func:this.callBackFunc;return data;};SZN.HTTPRequest.prototype._getRequest=function(){if(typeof (XMLHttpRequest)!="undefined"){return new XMLHttpRequest();}else{try{return new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{return new ActiveXObject("Microsoft.XMLHTTP");}catch(e){return 0;}}}};SZN.SigInterface=SZN.ClassMaker.makeClass({"NAME":"SigInterface","VERSION":"1.3","CLASS":"class"});SZN.SigInterface.prototype.setInterface=function(interfaceName){if(typeof (this[interfaceName])!="object"){var owner=this._owner;while(typeof (owner[interfaceName])=="undefined"){if(typeof owner.TOP_LEVEL!="undefined"){throw new Error("SetInterface:Interface not found");}else{owner=owner._owner;}}return owner[interfaceName];}};SZN.SigInterface.prototype.addListener=function(type,handleFunction,sender){return this.getInterface().addListener(this,type,handleFunction,sender);};SZN.SigInterface.prototype.removeListener=function(type,handleFunction,sender){if(arguments.length==1){return this.getInterface().removeListener(arguments[0]);}else{return this.getInterface().removeListener(this,type,handleFunction,sender);}};SZN.SigInterface.prototype.makeEvent=function(type,accessType,data){var time=new Date().getTime();this.getInterface().makeEvent(type,this,accessType,time,data);};SZN.SigInterface.prototype.setSysMessage=function(msgName,msgValue){this.getInterface().setMessage(msgName,msgValue);};SZN.SigInterface.prototype.getSysMessage=function(msgName){return this.getInterface().getMessage(msgName);};SZN.SigInterface.prototype.getInterface=function(){return (typeof (this.signals)=="object"?this.signals:SZN.signals);};SZN.Signals=SZN.ClassMaker.makeClass({"NAME":"Signals","VERSION":"1.5","CLASS":"class"});SZN.Signals.prototype.$constructor=function(owner,name){this._owner=owner;this._name=name;this.messageFolder={};this.myEventFolder={};this._myHandleFolder={};this._myIdFolder={};this.apiHandler=null;};SZN.Signals.prototype.$destructor=function(){};SZN.Signals.prototype.setApiHandler=function(handler){this.apiHandler=handler;};SZN.Signals.prototype.setMessage=function(msgName,msgValue){this.messageFolder[msgName]=msgValue;};SZN.Signals.prototype.getMessage=function(msgName){return this.messageFolder[msgName];};SZN.Signals.prototype.addListener=function(owner,type,funcOrString,sender){if(!(type in this._myHandleFolder)){this._myHandleFolder[type]={};}var typeFolder=this._myHandleFolder[type];for(var id in typeFolder){var item=typeFolder[id];if((item.eFunction==funcOrString)&&(item.eOwner==owner)&&(item.eSender==sender)){return null;}}var id=SZN.idGenerator();typeFolder[id]={"eOwner":owner,"eFunction":funcOrString,"eSender":sender};this._myIdFolder[id]=typeFolder;return id;};SZN.Signals.prototype.removeListener=function(owner,type,funcOrString,sender){var id=null;if(arguments.length==1){id=arguments[0];}else{var typeFolder=this._myHandleFolder[type];for(var p in typeFolder){var item=typeFolder[p];if((item.eFunction==funcOrString)&&(item.eOwner==owner)&&(item.eSender==sender)){id=p;}}}if(!id){return 1;}var typeFolder=this._myIdFolder[id];delete typeFolder[id];delete this._myIdFolder[id];return 0;};SZN.Signals.prototype.makeEvent=function(type,trg,accessType,timestamp,data){var ids=SZN.idGenerator();this.myEventFolder["e-"+ids]=new SZN.Signals.NewEvent(type,trg,accessType,timestamp,ids,data);this.myEventHandler(this.myEventFolder["e-"+ids]);};SZN.Signals.NewEvent=function(type,trg,access,time,ids,data){this.type=type;this.target=trg;this.accessType=access;this.timeStamp=time;this._id=ids;this.data=(data&&typeof data=="object")?data:null;};SZN.Signals.prototype.myEventHandler=function(myEvent){var functionCache=[];for(var type in this._myHandleFolder){if(type==myEvent.type||type=="*"){for(var p in this._myHandleFolder[type]){var item=this._myHandleFolder[type][p];if(!item.eSender||item.eSender==myEvent.target){functionCache.push(item);}}}}for(var i=0;i<functionCache.length;i++){var item=functionCache[i];var owner=item.eOwner;var fnc=item.eFunction;if(typeof fnc=="string"){owner[fnc](myEvent);}else{if(typeof fnc=="function"){fnc(myEvent);}}}if((myEvent.accessType=="public")&&(this.apiHandler!=null)&&(myEvent._owner!="api")){this.apiHandler._apiEventHandler(myEvent);}this.destroyEvent(myEvent._id);};SZN.Signals.prototype.destroyEvent=function(ids){this.myEventFolder["e-"+ids]=null;delete (this.myEventFolder["e-"+ids]);};SZN.signals=new SZN.Signals();SZN.AbstractDecorator=SZN.ClassMaker.makeSingleton({"NAME":"SZN.AbstractDecorator","VERSION":"1.0"});SZN.AbstractDecorator.prototype.decorate=function(instance){instance.$super=this._$super;if(!instance.__decorators){instance.__decorators=[];}instance.__decorators.push(this);return instance;};SZN.AbstractDecorator.prototype._$super=function(){var caller=arguments.callee.caller;if(!caller){throw new Error("Function.prototype.caller not supported");}var decorators=this.__decorators||[];var obj=null;var name=null;var i=decorators.length;while(i--){var d=decorators[i];if(!obj&&name&&(name in d)){obj=d;break;}for(var p in d){if(!name&&caller==d[p]){name=p;break;}}}if(!name){var owner=caller.owner||this.constructor;var callerName=false;for(var name in owner.prototype){if(owner.prototype[name]==caller){callerName=name;}}if(!callerName){throw new Error("Cannot find supplied method in constructor");}var parent=owner.EXTEND;if(!parent){throw new Error("No super-class available");}if(!parent.prototype[callerName]){throw new Error("Super-class doesn't have method '"+callerName+"'");}var func=parent.prototype[callerName];return func.apply(this,arguments);}else{if(!obj){obj=this.constructor.prototype;if(!(name in obj)){throw new Error("Function '"+name+"' has no undecorated parent");}}}return obj[name].apply(this,arguments);};SZN.AutoDecorator=SZN.ClassMaker.makeSingleton({"NAME":"SZN.AutoDecorator","VERSION":"1.0","EXTEND":SZN.AbstractDecorator});SZN.AutoDecorator.prototype.decorate=function(instance){this.$super(instance);var exclude=["constructor","sConstructor","$super","_$super","callSuper","decorate"];for(var p in this){if(exclude.indexOf(p)!=-1){continue;}instance[p]=this[p];}};SZN.IDecorable=SZN.ClassMaker.makeClass({"NAME":"SZN.IDecorable","VERSION":"1.0","CLASS":"class"});SZN.IDecorable.prototype.decorate=function(decorator){var args=[this];for(var i=1;i<arguments.length;i++){args.push(arguments[i]);}var dec=decorator.getInstance();return dec.decorate.apply(dec,args);};SZN.Shader=SZN.ClassMaker.makeClass({"NAME":"SZN.Shader","VERSION":"2.0","CLASS":"class"});SZN.Shader.prototype.$constructor=function(options){this.options={"zIndex":1,"opacity":0.5};for(var p in options){this.options[p]=options[p];}this._visible=null;this.elm=SZN.cEl("div","shader","shader",{"position":"absolute","zIndex":this.options.zIndex});this.elm.style.background="#000";if(SZN.Browser.client=="ie"){var o=Math.round(this.options.opacity*100);this.elm.style.filter="alpha(opacity="+o+")";}else{this.elm.style.opacity=this.options.opacity;}this.hide();document.body.insertBefore(this.elm,document.body.firstChild);SZN.Events.addListener(window,"resize",this,"_sync");SZN.Events.addListener(window,"scroll",this,"_sync");};SZN.Shader.prototype.show=function(){this._visible=true;this.elm.style.display="block";this._sync();};SZN.Shader.prototype.hide=function(){this._visible=false;this.elm.style.display="none";};SZN.Shader.prototype._sync=function(){if(!this._visible){return;}var size=SZN.Dom.getDocSize();var pos=SZN.Dom.getScrollPos();this.elm.style.left=pos.x+"px";this.elm.style.top=pos.y+"px";this.elm.style.width=size.width+"px";this.elm.style.height=size.height+"px";};SZN.Tabs=SZN.ClassMaker.makeClass({"NAME":"Tabs","VERSION":"1.1","IMPLEMENT":[SZN.SigInterface],"CLASS":"class"});SZN.Tabs.prototype.$constructor=function(container,optObj,callbackObject,callbackMethod){this.options={"defaultClass":"tab","selectedClass":"tab-selected","hoverClass":"tab-hover","hover":false};for(var p in optObj){this.options[p]=optObj[p];}this.selectedIndex=-1;this.container=SZN.gEl(container);this.callbackObject=callbackObject;this.callbackMethod=callbackMethod;this.tabs=[];this.ec=[];};SZN.Tabs.Name="Tabs";SZN.Tabs.version=1.1;SZN.Tabs.prototype.$destructor=function(){for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}for(var i=0;i<this.tabs.length;i++){this.tabs[i].$destructor();}for(var p in this){this[p]=null;}};SZN.Tabs.prototype.clear=function(){this.selectedIndex=-1;for(var i=0;i<this.tabs.length;i++){this.tabs[i].$destructor();}this.tabs=[];};SZN.Tabs.prototype.addTab=function(click,content){if(arguments.length==1){this._addTab(click);}else{this._crateNewTab(click,content);}};SZN.Tabs.prototype._crateNewTab=function(click,content){var tab=new SZN.Tab(click,content,this,this.options.hover,this.options.hoverClass);this._addTab(tab);};SZN.Tabs.prototype._addTab=function(tab){this.tabs.push(tab);tab._deactivate();};SZN.Tabs.prototype.go=function(index){if(index==this.selectedIndex){return;}var oldI=this.selectedIndex;if(this.selectedIndex!=-1){this.tabs[this.selectedIndex]._deactivate();}this.selectedIndex=index;this.tabs[this.selectedIndex]._activate();this.makeEvent("tabchange");if(this.callbackObject){this.callbackObject[this.callbackMethod](oldI,this.selectedIndex);}};SZN.Tabs.prototype.addManyTabs=function(clickList,contentList,defaultIndex){var clicks=SZN.gEl(clickList);var contents=SZN.gEl(contentList);var clicks_=[];var contents_=[];for(var i=0;i<clicks.childNodes.length;i++){var item=clicks.childNodes[i];if(item.nodeType==1){clicks_.push(item);}}for(var i=0;i<contents.childNodes.length;i++){var item=contents.childNodes[i];if(item.nodeType==1){contents_.push(item);}}var cnt=Math.min(clicks_.length,contents_.length);for(var i=0;i<cnt;i++){this.addTab(clicks_[i],contents_[i]);}if(defaultIndex!=-1){this.go(defaultIndex);}};SZN.Tab=SZN.ClassMaker.makeClass({"NAME":"Tab","VERSION":"1.0","CLASS":"class"});SZN.Tab.prototype.$constructor=function(click,content,owner,hover,hoverClass){this.content=SZN.gEl(content);this.owner=owner;this.click=SZN.gEl(click);this.hoverClass=hoverClass;this.ec=[];this.ec.push(SZN.Events.addListener(this.click,"click",this,"_go",false,true));if(hover){this.ec.push(SZN.Events.addListener(this.click,"mouseover",this,"_hover"));this.ec.push(SZN.Events.addListener(this.click,"mouseout",this,"_hoverOut"));}if(this.owner.options.defaultClass){SZN.Dom.addClass(this.click,this.owner.options.defaultClass);}};SZN.Tab.prototype.$destructor=function(){if(this.content.parentNode){this.content.parentNode.removeChild(this.content);}if(this.click.parentNode){this.click.parentNode.removeChild(this.click);}for(var i=0;i<this.ec.length;i++){SZN.Events.removeListener(this.ec[i]);}for(var p in this){this[p]=null;}};SZN.Tab.prototype._go=function(e,elm){if(!SZN.Dom.hasClass(this.click,"tab-selected")){var index=-1;for(var i=0;i<this.owner.tabs.length;i++){if(this.owner.tabs[i]==this){index=i;}}if(index==-1){return;}this.owner.go(index);SZN.Events.stopEvent(e);SZN.Events.cancelDef(e);}};SZN.Tab.prototype._activate=function(){if(!this.content.parentNode||this.content.parentNode!=this.owner.container){this.owner.container.appendChild(this.content);}this.content.style.display="";if(this.owner.options.selectedClass){SZN.Dom.addClass(this.click,this.owner.options.selectedClass);}};SZN.Tab.prototype._deactivate=function(){var c=this.content.style.display="none";if(this.owner.options.selectedClass){SZN.Dom.removeClass(this.click,this.owner.options.selectedClass);}};SZN.Tab.prototype._hover=function(e,elm){SZN.Dom.addClass(elm,this.hoverClass);};SZN.Tab.prototype._hoverOut=function(e,elm){SZN.Dom.removeClass(elm,this.hoverClass);};}

