{if(typeof window.JAK!="object"){window.JAK={"NAME":"JAK"};};JAK.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(){}};}JAK.ClassMaker={};JAK.ClassMaker.VERSION="5.0";JAK.ClassMaker.NAME="JAK.ClassMaker";JAK.ClassMaker._objLib=null;JAK.ClassMaker.makeClass=function(params){var p=this._makeDefaultParams(params);var constructor=function(){var inicializator=false;if("$constructor" in arguments.callee.prototype){inicializator=arguments.callee.prototype.$constructor;}if(inicializator){inicializator.apply(this,arguments);}};return this._addConstructorProperties(constructor,p);};JAK.ClassMaker.makeSingleton=function(params){var p=this._makeDefaultParams(params);var constructor=function(){throw new Error("Cannot instantiate singleton class");};constructor._instance=null;constructor.getInstance=this._getInstance;return this._addConstructorProperties(constructor,p);};JAK.ClassMaker.makeInterface=function(params){var p=this._makeDefaultParams(params);var constructor=function(){throw new Error("Cannot instantiate interface");};return this._addConstructorProperties(constructor,p);};JAK.ClassMaker.makeStatic=function(params){var p=this._makeDefaultParams(params);var obj={};obj.VERSION=p.VERSION;obj.NAME=p.NAME;return obj;};JAK.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||[];if(!(params.IMPLEMENT instanceof Array)){params.IMPLEMENT=[params.IMPLEMENT];}this._preMakeTests(params);return params;};JAK.ClassMaker._preMakeTests=function(params){if(!params.NAME){throw new Error("No NAME passed to JAK.ClassMaker.makeClass()");}if(!this._objLib&&JAK.ObjLib){this._objLib=new JAK.ObjLib();}var result=false;if(result=this._testDepend(params.DEPEND)){throw new Error("Dependency error in class "+params.NAME+" ("+result+")");}};JAK.ClassMaker._addConstructorProperties=function(constructor,params){for(var p in params){constructor[p]=params[p];}this._setInheritance(constructor);constructor.prototype.constructor=constructor;constructor.prototype.$super=this._$super;return constructor;};JAK.ClassMaker._getInstance=function(){if(!this._instance){var tmp=function(){};tmp.prototype=this.prototype;this._instance=new tmp();if("$constructor" in this.prototype){this._instance.$constructor();}}return this._instance;};JAK.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);}};JAK.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._objLib){for(var i in parent.prototype){if(typeof parent.prototype[i]=="object"){constructor.prototype[i]=this._objLib.copy(parent.prototype[i]);}}}return;}for(var p in parent.prototype){if(typeof parent.prototype[p]=="object"){if(this._objLib){constructor.prototype[p]=this._objLib.copy(parent.prototype[p]);}}else{if(noSuper&&((p=="$constructor")||(p=="$destructor"))){continue;}constructor.prototype[p]=parent.prototype[p];}}};JAK.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;};JAK.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);};JAK.Events=JAK.ClassMaker.makeStatic({"NAME":"JAK.Events","VERSION":"3.0"});JAK.Events._eventFolder={};JAK.Events._domReadyTimer=null;JAK.Events._domReadyCallback=[];JAK.Events._domReadyAlreadyRun=false;JAK.Events._windowLoadListenerId=false;JAK.Events.onDomReady=function(obj,func){JAK.Events._domReadyCallback[JAK.Events._domReadyCallback.length]={"obj":obj,"func":func};JAK.Events._onDomReady();};JAK.Events._onDomReady=function(){if((/Safari/i.test(navigator.userAgent))||(/WebKit|Khtml/i.test(navigator.userAgent))){JAK.Events._domReadyTimer=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(JAK.Events._domReadyTimer);JAK.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;}JAK.Events._domReady();}else{JAK.Events._windowLoadListenerId=JAK.Events.addListener(window,"load",window,function(){JAK.Events._domReady();});}}else{if(document.addEventListener){document.addEventListener("DOMContentLoaded",JAK.Events._domReady,false);}else{JAK.Events._windowLoadListenerId=JAK.Events.addListener(window,"load",window,function(){JAK.Events._domReady();});}}}};JAK.Events._domReady=function(){if(!JAK.Events._domReadyAlreadyRun){JAK.Events._domReadyAlreadyRun=true;if(document.addEventListener){document.removeEventListener("DOMContentLoaded",JAK.Events._domReady,true);}if(JAK.Events._windowLoadListenerId){JAK.Events.removeListener(JAK.Events._windowLoadListenerId);JAK.Events._windowLoadListenerId=false;}for(var i=0;i<JAK.Events._domReadyCallback.length;i++){var callback=JAK.Events._domReadyCallback[i];if(typeof callback.func=="string"){callback.obj[callback.func]();}else{callback.func.apply(callback.obj,[]);}}JAK.Events._domReadyCallback=[];}};JAK.Events.addListener=function(elm,type,obj,func,capture){var capture=capture||false;var action=null;var id=JAK.idGenerator();if(arguments.length>3){if(typeof (func)=="string"&&typeof (obj[func])!="function"){throw new Error("Events.addListener: arguments[3] must be method of arguments[2]");}action=this._getMethod(obj,func,elm,id);}else{action=this._getMethod(window,obj,elm,id);}this._addListener(elm,type,action,capture);this._eventFolder[id]={"elm":elm,"type":type,"action":action,"capture":capture,"obj":obj,"func":func};return id;};JAK.Events._addListener=function(elm,type,action,capture){if(document.addEventListener){elm.addEventListener(type,action,capture);}else{if(document.attachEvent){elm.attachEvent("on"+type,action);}else{throw new Error("This browser can not handle events");}}};JAK.Events._getMethod=function(obj,func,elm,id){var f=(typeof (func)=="string"?obj[func]:func);return function(e){return f.call(obj,e,elm,id);};};JAK.Events.removeListener=function(id){if(!(id in this._eventFolder)){throw new Error("Cannot remove non-existent event ID '"+id+"'");}var obj=this._eventFolder[id];this._removeListener(obj.elm,obj.type,obj.action,obj.capture);delete this._eventFolder[id];};JAK.Events._removeListener=function(elm,type,action,capture){if(document.removeEventListener){elm.removeEventListener(type,action,capture);}else{if(document.detachEvent){elm.detachEvent("on"+type,action);}}};JAK.Events.removeAllListeners=function(){for(var id in this._eventFolder){this.removeListener(id);}};JAK.Events.stopEvent=function(e){var e=e||window.event;if(e.stopPropagation){e.stopPropagation();}else{e.cancelBubble=true;}};JAK.Events.cancelDef=function(e){var e=e||window.event;if(e.preventDefault){e.preventDefault();}else{e.returnValue=false;}};JAK.Events.getTarget=function(e){var e=e||window.event;return e.target||e.srcElement;};JAK.Events.getInfo=function(){var output=[];var nodes=[];var events=[];for(var id in JAK.Events._eventFolder){var o=JAK.Events._eventFolder[id];var elm=o.elm;var index=nodes.indexOf(elm);if(index==-1){index=nodes.push(elm)-1;events[index]=[];}events[index].push(o);}for(var i=0;i<nodes.length;i++){var listeners=[];for(var j=0;i<events[i].length;j++){var o=events[i][j];var obj=o.obj||window;var func=o.func||o.obj;listeners.push({"sType":o.type,"bRemoved":false,"sFunction":(obj!=window&&obj.constructor?"["+obj.constructor.NAME+"]":"")+(typeof (func)=="string"?"."+func+" = "+obj[func].toString():" "+func.toString())});}output.push({"sSource":"JAK","nNode":nodes[i],"aListeners":listeners});}return output;};JAK.Browser=JAK.ClassMaker.makeStatic({"NAME":"JAK.Browser","VERSION":"3.0"});JAK.Browser.platform="";JAK.Browser.client="";JAK.Browser.version=0;JAK.Browser.agent="";JAK.Browser.mouse={};JAK.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";}}}};JAK.Browser._getClient=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";}}}}}};JAK.Browser._getMouse=function(){var left;var right;var middle;if((JAK.Browser.client=="ie")||(JAK.Browser.client=="konqueror")){left=1;middle=4;right=2;}else{if((JAK.Browser.client=="opera")&&(JAK.Browser.version>7)&&(JAK.Browser.version<9)){left=1;middle=4;right=2;}else{if(JAK.Browser.client=="safari"){if(parseInt(JAK.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};};JAK.Browser._getVersion=function(){var out=0;var fncName="_get_"+this.client+"_ver";if(typeof this[fncName]=="function"){return this[fncName]();}else{return 0;}};JAK.Browser._get_ie_ver=function(){if(typeof Function.prototype.call!="undefined"){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";}};JAK.Browser._get_opera_ver=function(){if(window.opera.version){return window.opera.version();}else{if(document.createComment){return "7";}else{return "6";}}};JAK.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";}}}}};JAK.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;};JAK.Browser._get_safari_ver=function(){var ver=this._agent.match(/version\/([0-9]+)/i);return (ver?ver[1]:"1");};JAK.Browser._get_chrome_ver=function(){var ver=this._agent.match(/Chrome\/([0-9]+)/i);return (ver?ver[1]:null);};JAK.Browser.getBrowser=function(){this._agent=this.agent=navigator.userAgent;this._platform=navigator.platform;this._vendor=navigator.vendor;this.platform=this._getPlatform();this.client=this._getClient();this.version=this._getVersion();this.mouse=this._getMouse();};JAK.Browser.getBrowser();JAK.DOM=JAK.ClassMaker.makeStatic({"NAME":"JAK.DOM","VERSION":"5.0"});JAK.cel=function(tagName,className,id,doc){var d=doc||document;var node=d.createElement(tagName);if(className){node.className=className;}if(id){node.id=id;}return node;};JAK.mel=function(tagName,properties,styles,doc){var d=doc||document;var node=d.createElement(tagName);if(properties){for(var p in properties){node[p]=properties[p];}}if(styles){JAK.DOM.setStyle(node,styles);}return node;};JAK.ctext=function(str,doc){var d=doc||document;return d.createTextNode(str);};JAK.gel=function(id){if(typeof (id)=="string"){return document.getElementById(id);}else{return id;}};JAK.query=function(query){var filterNodes=function(nodes,attributes){var arr=[];for(var i=0;i<nodes.length;i++){var node=nodes[i];var ok=true;for(var j=0;j<attributes.length;j++){var attrib=attributes[j];var ch=attrib.charAt(0);var value=attrib.substr(1).toLowerCase();if(ch=="#"&&value!=node.id.toLowerCase()){ok=false;}if(ch=="."&&!JAK.DOM.hasClass(node,value)){ok=false;}}if(ok){arr.push(node);}}return arr;};var result=[];var selectors=query.split(",");while(selectors.length){var selector=selectors.shift().trim();var parts=selector.split(/ +/);var candidates=[document];for(var i=0;i<parts.length;i++){var newCandidates=[];var part=parts[i];var tagName=part.match(/^[a-z]*/i)[0]||"*";var attributes=part.match(/[\.#][^\.#]+/g)||[];while(candidates.length){var candidate=candidates.shift();var nodes=candidate.getElementsByTagName(tagName);newCandidates=newCandidates.concat(filterNodes(nodes,attributes));}candidates=newCandidates;}for(var i=0;i<candidates.length;i++){var c=candidates[i];if(result.indexOf(c)==-1){result.push(c);}}}return result;};JAK.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]);}}};JAK.DOM.hasClass=function(element,className){var arr=element.className.split(" ");for(var i=0;i<arr.length;i++){if(arr[i].toLowerCase()==className.toLowerCase()){return true;}}return false;};JAK.DOM.addClass=function(element,className){if(JAK.DOM.hasClass(element,className)){return;}element.className+=" "+className;};JAK.DOM.removeClass=function(element,className){var names=element.className.split(" ");var newClassArr=[];for(var i=0;i<names.length;i++){if(names[i].toLowerCase()!=className.toLowerCase()){newClassArr.push(names[i]);}}element.className=newClassArr.join(" ");};JAK.DOM.clear=function(element){while(element.firstChild){element.removeChild(element.firstChild);}};JAK.DOM.getDocSize=function(){var x=0;var y=0;if(document.compatMode!="BackCompat"){if(document.documentElement.clientWidth&&JAK.Browser.client!="opera"){x=document.documentElement.clientWidth;y=document.documentElement.clientHeight;}else{if(JAK.Browser.client=="opera"){if(parseFloat(JAK.Browser.version)<9.5){x=document.body.clientWidth;y=document.body.clientHeight;}else{x=document.documentElement.clientWidth;y=document.documentElement.clientHeight;}}}if((JAK.Browser.client=="safari")||(JAK.Browser.client=="konqueror")){y=window.innerHeight;}}else{x=document.body.clientWidth;y=document.body.clientHeight;}return {"width":x,"height":y};};JAK.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=JAK.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((JAK.Browser.client=="gecko"&&JAK.Browser.version<3)||JAK.Browser.client=="safari"){if(JAK.DOM.getStyle(obj,"position")=="fixed"){var scroll=JAK.DOM.getScrollPos();top+=scroll.y;left+=scroll.x;break;}}obj=obj.offsetParent;}return {"top":top,"left":left};};JAK.DOM.getPortBoxPosition=function(obj,parent,fixed){var pos=JAK.DOM.getBoxPosition(obj,parent,fixed);var scroll=JAK.DOM.getBoxScroll(obj,parent,fixed);pos.left-=scroll.x;pos.top-=scroll.y;return {"left":pos.left,"top":pos.top};};JAK.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(JAK.Browser.client=="opera"&&JAK.DOM.getStyle(cur,"display")!="block"){cur=cur.parentNode;continue;}if(JAK.Browser.client=="opera"&&JAK.Browser.version<9.5&&cur==document.body){cur=cur.parentNode;continue;}if(fixed&&JAK.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};};JAK.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};};JAK.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];}};JAK.DOM.setStyle=function(elm,style){for(var name in style){elm.style[name]=style[name];}};JAK.DOM.writeStyle=function(css){var node=JAK.mel("style",{"type":"text/css"});if(node.styleSheet){node.styleSheet.cssText=css;}else{node.appendChild(JAK.ctext(css));}var head=document.getElementsByTagName("head");if(head.length){head=head[0];}else{head=JAK.cel("head");document.documentElement.appendChild(head,document.body);}head.appendChild(node);return node;};JAK.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=JAK.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;}};JAK.DOM.getElementsByClass=function(searchClass,node,tag){if(document.getElementsByClassName&&!tag){var elm=node||document;return JAK.DOM.arrayFromCollection(elm.getElementsByClassName(searchClass));}if(document.querySelectorAll&&!tag){var elm=node||document;return JAK.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;};JAK.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;}};JAK.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")];};JAK.DOM.shiftBox=function(box){var dx=0;var dy=0;var pos=JAK.DOM.getBoxPosition(box);var scroll=JAK.DOM.getScrollPos();pos.left-=scroll.x;pos.top-=scroll.y;var port=JAK.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];};JAK.DOM.scrollbarWidth=function(){var div=JAK.mel("div",false,{"width":"50px","height":"50px","overflow":"hidden","position":"absolute","left":"-200px"});var innerDiv=JAK.mel("div",false,{"height":"100px"});div.appendChild(innerDiv);document.body.insertBefore(div,document.body.firstChild);var w1=div.clientWidth+parseInt(JAK.DOM.getStyle(div,"paddingLeft"))+parseInt(JAK.DOM.getStyle(div,"paddingRight"));JAK.DOM.setStyle(div,{"overflowY":"scroll"});var w2=div.clientWidth+parseInt(JAK.DOM.getStyle(div,"paddingLeft"))+parseInt(JAK.DOM.getStyle(div,"paddingRight"));document.body.removeChild(div);return (w1-w2);};JAK.ObjLib=JAK.ClassMaker.makeClass({"NAME":"ObjLib","VERSION":"3.0"});JAK.ObjLib.prototype.$constructor=function(){this._options={"functionResistant":false,"recursionResistant":false,"depthResistant":false,"sortedSerialization":false,"showFlag":false,"depth":200};};JAK.ObjLib.prototype.$destructor=function(){};JAK.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;};JAK.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("");};JAK.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;}};JAK.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;};JAK.ObjLib.prototype.unserialize=function(serializedString){eval("var newVar="+serializedString);return newVar;};JAK.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;}};JAK.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};};JAK.ObjLib.prototype._isIE=function(){if(document.all&&document.attachEvent&&!window.opera){return true;}return false;};JAK.ObjLib.prototype.copy=function(objToCopy,options){var mOptions=this.reSetOptions(options);var str=this.serialize(objToCopy,mOptions);return this.unserialize(str);};JAK.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];});},JAK.ObjLib.prototype._addSlashes=function(ch){return "\\"+ch;};JAK.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("ObjLib.arrayCopy: Attribute is not Array");}};JAK.Request=JAK.ClassMaker.makeClass({"NAME":"JAK.Request","VERSION":"2.0"});JAK.Request.XML=0;JAK.Request.TEXT=1;JAK.Request.JSONP=2;JAK.Request.BINARY=3;JAK.Request.prototype.$constructor=function(type,options){this._NEW=0;this._SENT=1;this._DONE=2;this._ABORTED=3;this._TIMEOUT=4;this._xhr=null;this._callback="";this._script=null;this._type=type;this._headers={};this._callbacks={};this._state=this._NEW;this._options={"async":true,"timeout":0,"method":"get"};for(var p in options){this._options[p]=options[p];}if(this._type==JAK.Request.JSONP){if(this._options.method.toLowerCase()=="post"){throw new Error("POST not supported in JSONP mode");}if(!this._options.async){throw new Error("Async not supported in JSONP mode");}}else{if(window.XMLHttpRequest){this._xhr=new XMLHttpRequest();}else{if(window.ActiveXObject){this._xhr=new ActiveXObject("Microsoft.XMLHTTP");}else{throw new Error("No XHR available");}}this._xhr.onreadystatechange=this._onReadyStateChange.bind(this);}};JAK.Request.prototype.$destructor=function(){if(this._state==this._SENT){this.abort();}this._xhr=null;};JAK.Request.prototype.setHeaders=function(headers){if(this._type==JAK.Request.JSONP){throw new Error("Request headers not supported in JSONP mode");}for(var p in headers){this._headers[p]=headers[p];}};JAK.Request.prototype.getHeaders=function(){if(this._state!=this._DONE){throw new Error("Response headers not available");}if(this._type==JAK.Request.JSONP){throw new Error("Response headers not supported in JSONP mode");}var headers={};var h=this._xhr.getAllResponseHeaders();if(h){h=h.split(/[\r\n]/);for(var i=0;i<h.length;i++)if(h[i]){var v=h[i].match(/^([^:]+): *(.*)$/);headers[v[1]]=v[2];}}return headers;};JAK.Request.prototype.send=function(url,data){if(this._state!=this._NEW){throw new Error("Request already sent");}this._state=this._SENT;this._userCallback();switch(this._type){case JAK.Request.XML:case JAK.Request.TEXT:case JAK.Request.BINARY:this._sendXHR(url,data);break;case JAK.Request.JSONP:this._sendScript(url,data);break;default:throw new Error("Unknown request type");break;}};JAK.Request.prototype.abort=function(){if(this._state!=this._SENT){return false;}this._state=this._ABORTED;if(this._xhr){this._xhr.abort();}this._userCallback();return true;};JAK.Request.prototype.setCallback=function(obj,method){this._setCallback(obj,method,this._DONE);return this;};JAK.Request.prototype.setSendCallback=function(obj,method){this._setCallback(obj,method,this._SENT);return this;};JAK.Request.prototype.setAbortCallback=function(obj,method){this._setCallback(obj,method,this._ABORTED);return this;};JAK.Request.prototype.setTimeoutCallback=function(obj,method){this._setCallback(obj,method,this._TIMEOUT);return this;};JAK.Request.prototype._setCallback=function(obj,method,state){this._callbacks[state]=[obj,method];};JAK.Request.prototype._sendXHR=function(url,data){var u,d;if(this._options.method.toLowerCase()=="get"){u=this._buildURL(url,data);d=null;}else{u=url;d=this._serializeData(data);var ctSet=false;for(var p in this._headers){if(p.toLowerCase()=="content-type"){ctSet=true;break;}}if(!ctSet){this.setHeaders({"Content-Type":"application/x-www-form-urlencoded"});}}if(this._type==JAK.Request.BINARY){if(this._xhr.overrideMimeType){this._xhr.overrideMimeType("text/plain; charset=x-user-defined");}else{if(JAK.Browser.client=="ie"){this._buildVBS();}else{throw new Error("This browser does not support binary transfer");}}}this._xhr.open(this._options.method,u,this._options.async);for(var p in this._headers){this._xhr.setRequestHeader(p,this._headers[p]);}this._xhr.send(d);if(this._options.timeout){setTimeout(this._timeout.bind(this),this._options.timeout);}if(!this._options.async){this._onReadyStateChange();}};JAK.Request.prototype._sendScript=function(url,data){var o=data||{};this._callback="callback"+JAK.idGenerator();o.callback=this._callback;var url=this._buildURL(url,o);window[this._callback]=this._scriptCallback.bind(this);this._script=JAK.mel("script",{"type":"text/javascript","src":url});document.body.insertBefore(this._script,document.body.firstChild);};JAK.Request.prototype._buildURL=function(url,data){var s=this._serializeData(data);if(!s.length){return url;}if(url.indexOf("?")==-1){return url+"?"+s;}else{return url+"&"+s;}};JAK.Request.prototype._serializeData=function(data){if(typeof (data)=="string"){return data;}if(!data){return "";}var arr=[];for(var p in data){arr.push(encodeURIComponent(p)+"="+encodeURIComponent(data[p]));}return arr.join("&");};JAK.Request.prototype._onReadyStateChange=function(){if(this._state==this._ABORTED){return;}if(this._xhr.readyState!=4){return;}var status=this._xhr.status;var data;if(this._type==JAK.Request.BINARY){data=[];if(JAK.Browser.client=="ie"){var length=VBS_getLength(this._xhr.responseBody);for(var i=0;i<length;i++){data.push(VBS_getByte(this._xhr.responseBody,i));}}else{var text=this._xhr.responseText;var length=text.length;for(var i=0;i<length;i++){data.push(text.charCodeAt(i)&255);}}}else{data=(this._type==JAK.Request.XML?this._xhr.responseXML:this._xhr.responseText);}this._done(data,status);};JAK.Request.prototype._scriptCallback=function(data){this._script.parentNode.removeChild(this._script);this._script=null;delete window[this._callback];if(this._state!=this._ABORTED){this._done(data,200);}};JAK.Request.prototype._done=function(data,status){this._state=this._DONE;this._userCallback(data,status);};JAK.Request.prototype._timeout=function(){if(this._state!=this._SENT){return;}this.abort();this._state=this._TIMEOUT;this._userCallback();};JAK.Request.prototype._userCallback=function(){var data=this._callbacks[this._state];if(!data){return;}var obj=data[0]||window;var method=data[1];if(obj&&typeof (method)=="string"){method=obj[method];}if(!method){method=obj;obj=window;}method.apply(obj,arguments);};JAK.Request.prototype._buildVBS=function(){var s=JAK.mel("script",{"type":"text/vbscript"});s.text="Function VBS_getByte(data, pos)\n"+"VBS_getByte = AscB(MidB(data, pos+1,1))\n"+"End Function\n"+"Function VBS_getLength(data)\n"+"VBS_getLength = LenB(data)\n"+"End Function";document.getElementsByTagName("head")[0].appendChild(s);};JAK.Signals=JAK.ClassMaker.makeClass({"NAME":"Signals","VERSION":"2.0","CLASS":"class"});JAK.Signals.prototype.$constructor=function(owner,name){this._owner=owner;this._name=name;this.messageFolder={};this._myHandleFolder={};this._myIdFolder={};};JAK.Signals.prototype.$destructor=function(){};JAK.Signals.prototype.setMessage=function(msgName,msgValue){this.messageFolder[msgName]=msgValue;};JAK.Signals.prototype.getMessage=function(msgName){return this.messageFolder[msgName];};JAK.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=JAK.idGenerator();typeFolder[id]={"eOwner":owner,"eFunction":funcOrString,"eSender":sender};this._myIdFolder[id]=typeFolder;return id;};JAK.Signals.prototype.removeListener=function(id){var typeFolder=this._myIdFolder[id];if(!typeFolder){return 1;}delete typeFolder[id];delete this._myIdFolder[id];return 0;};JAK.Signals.prototype.makeEvent=function(type,trg,data){var event=new JAK.Signals.NewEvent(type,trg,data);this.myEventHandler(event);};JAK.Signals.NewEvent=function(type,trg,data){this.type=type;this.target=trg;this.timeStamp=new Date().getTime();this.data=(data&&typeof data=="object")?data:null;};JAK.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);}}}};JAK.signals=new JAK.Signals();JAK.ISignals=JAK.ClassMaker.makeInterface({"NAME":"JAK.ISignals","VERSION":"2.0","CLASS":"class"});JAK.ISignals.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];}};JAK.ISignals.prototype.addListener=function(type,handleFunction,sender){return this.getInterface().addListener(this,type,handleFunction,sender);};JAK.ISignals.prototype.removeListener=function(id){return this.getInterface().removeListener(id);};JAK.ISignals.prototype.makeEvent=function(type,data){this.getInterface().makeEvent(type,this,data);};JAK.ISignals.prototype.setSysMessage=function(msgName,msgValue){this.getInterface().setMessage(msgName,msgValue);};JAK.ISignals.prototype.getSysMessage=function(msgName){return this.getInterface().getMessage(msgName);};JAK.ISignals.prototype.getInterface=function(){return (typeof (this.signals)=="object"?this.signals:JAK.signals);};JAK.AbstractDecorator=JAK.ClassMaker.makeSingleton({"NAME":"JAK.AbstractDecorator","VERSION":"2.0"});JAK.AbstractDecorator.prototype.decorate=function(instance){instance.$super=this._$super;if(!instance.__decorators){instance.__decorators=[];}instance.__decorators.push(this);return instance;};JAK.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);};JAK.AutoDecorator=JAK.ClassMaker.makeSingleton({"NAME":"JAK.AutoDecorator","VERSION":"1.0","EXTEND":JAK.AbstractDecorator});JAK.AutoDecorator.prototype.decorate=function(instance){this.$super(instance);var exclude=["constructor","$super","_$super","decorate"];for(var p in this){if(exclude.indexOf(p)!=-1){continue;}instance[p]=this[p];}};JAK.IDecorable=JAK.ClassMaker.makeClass({"NAME":"JAK.IDecorable","VERSION":"2.0","CLASS":"class"});JAK.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);};JAK.Logger=JAK.ClassMaker.makeSingleton({"NAME":"JAK.Logger","VERSION":"1.0"});JAK.Logger.ERROR=1;JAK.Logger.WARN=2;JAK.Logger.INFO=3;JAK.Logger.CONSOLE=1<<0;JAK.Logger.ALERT=1<<1;JAK.Logger.URL=1<<2;JAK.Logger.prototype.$constructor=function(){this._mode=JAK.Logger.CONSOLE;this._level=JAK.Logger.INFO;this._url=null;this._levelNames={};this._levelNames[JAK.Logger.ERROR]="Error";this._levelNames[JAK.Logger.WARN]="Warning";this._levelNames[JAK.Logger.INFO]="Info";};JAK.Logger.prototype.setLevel=function(level){this._level=level;return this;};JAK.Logger.prototype.setMode=function(mode){this._mode=mode;return this;};JAK.Logger.prototype.setURL=function(url){this._url=url;};JAK.Logger.prototype.log=function(message,sender,type){var t=type||JAK.Logger.INFO;if(t>this._level){return;}var method=arguments.callee.caller;if(JAK.ILogger&&method==JAK.ILogger.prototype.log){method=method.caller;}var methodName=null;if(sender){for(var p in sender){if(sender[p]==method){methodName=p;break;}}}var from="";from+=(sender?sender.constructor.NAME:"[unknown class]");from+="::";from+=methodName||"[unknown method]";var msg=message||"[no message]";if(this._mode&JAK.Logger.CONSOLE){this._logConsole(msg,from,t);}if(this._mode&JAK.Logger.ALERT){this._logAlert(msg,from,t);}if(this._mode&JAK.Logger.URL){this._logURL(msg,from,t);}};JAK.Logger.prototype._logConsole=function(message,sender,type){if(!window.console){return;}var str=new Date().toString()+" "+sender+" "+message;switch(type){case JAK.Logger.ERROR:console.error(str);break;case JAK.Logger.WARN:console.warn(str);break;case JAK.Logger.INFO:console.info(str);break;default:console.log(str);break;}};JAK.Logger.prototype._logAlert=function(message,sender,type){var str=this._levelNames[type]+" "+new Date().toString()+" "+sender+" "+message;alert(str);};JAK.Logger.prototype._logURL=function(message,sender,type){if(!this._url){return;}var level=this._levelNames[type];var replace={"message":message,"sender":sender,"level":level};var url=this._url.replace(/{([a-z]+)}/ig,function(match,what){if(what in replace){return encodeURIComponent(replace[what]);}return "";});var img=JAK.mel("img",{"src":url});};JAK.ILogger=JAK.ClassMaker.makeInterface({"NAME":"JAK.ILogger","VERSION":"1.0"});JAK.ILogger.prototype.log=function(message,type){return JAK.Logger.getInstance().log(message,this,type);};JAK.VecNd=JAK.ClassMaker.makeClass({"NAME":"JAK.VecNd","VERSION":"2.0"});JAK.VecNd.prototype.$constructor=function(n){this.n=n;this.data=[];for(var i=0;i<n;i++){var val=(arguments.length>i+1?arguments[i+1]:0);this.data.push(val);}};JAK.VecNd.prototype.setN=function(n,val){this.data[n]=val;};JAK.VecNd.prototype.getN=function(n){return this.data[n];};JAK.VecNd.prototype.norm=function(degree){var d=degree||2;var sum=0;for(var i=0;i<this.n;i++){sum+=Math.pow(this.getN(i),d);}return Math.pow(sum,1/d);};JAK.VecNd.prototype._plus=function(t){for(var i=0;i<this.n;i++){this.setN(i,this.getN(i)+t.getN(i));}return this;};JAK.VecNd.prototype.plus=function(t){var result=this.clone();return result._plus(t);};JAK.VecNd.prototype._minus=function(t){for(var i=0;i<this.n;i++){this.setN(i,this.getN(i)-t.getN(i));}return this;};JAK.VecNd.prototype.minus=function(t){var result=this.clone();return result._minus(t);};JAK.VecNd.prototype._multiply=function(num){for(var i=0;i<this.n;i++){this.setN(i,this.getN(i)*num);}return this;};JAK.VecNd.prototype.multiply=function(num){var result=this.clone();return result._multiply(num);};JAK.VecNd.prototype.dot=function(t){var result=0;for(var i=0;i<this.n;i++){result+=this.getN(i)*t.getN(i);}return result;};JAK.VecNd.prototype._unit=function(degree){var n=this.norm(degree);for(var i=0;i<this.n;i++){this.setN(i,this.getN(i)/n);}return this;};JAK.VecNd.prototype.unit=function(degree){var result=this.clone();return result._unit(degree);};JAK.VecNd.prototype.clone=function(){var result=new this.constructor(this.n);for(var i=0;i<this.n;i++){result.setN(i,this.getN(i));}return result;};JAK.VecNd.prototype.join=function(separator,round){var s=separator||",";var arr=[];for(var i=0;i<this.n;i++){var val=this.getN(i);if(round){val=Math.round(val);}arr.push(val);}return arr.join(s);};JAK.VecNd.prototype.toString=function(){return "["+this.join(", ")+"]";};JAK.Vec2d=JAK.ClassMaker.makeClass({"NAME":"Vec2d","VERSION":"2.0","EXTEND":JAK.VecNd});JAK.Vec2d.prototype.$constructor=function(x,y){JAK.VecNd.prototype.$constructor.call(this,2,x,y);};JAK.Vec2d.prototype.setX=function(x){this.data[0]=x;};JAK.Vec2d.prototype.setY=function(y){this.data[1]=y;};JAK.Vec2d.prototype.getX=function(){return this.data[0];};JAK.Vec2d.prototype.getY=function(){return this.data[1];};JAK.Vec2d.prototype.normal=function(){return new this.constructor(this.getY(),-this.getX());};JAK.Vec2d.prototype._symmetry=function(axis){var norm=axis.normal()._unit();var coef=this.dot(norm);return this._minus(norm._multiply(2*coef));};JAK.Vec2d.prototype.symmetry=function(axis){var result=this.clone();return result._symmetry(axis);};JAK.Vec2d.prototype.distance=function(p1,p2){var vec=p2.minus(p1);var n=vec.normal().unit();var a1=p1.getX();var a2=p1.getY();var c1=this.getX();var c2=this.getY();var v1=vec.getX();var v2=vec.getY();var w1=n.getX();var w2=n.getY();var dist=(v1*c2-v2*c1+a1*v2-a2*v1)/(w1*v2-v1*w2);return -dist;};JAK.Vector=JAK.ClassMaker.makeStatic({"NAME":"JAK.Vector","VERSION":"2.0","DEPEND":[{"sClass":JAK.Vec2d,"ver":"2.0"}]});JAK.Vector.getCanvas=function(w,h){if(JAK.Browser.client=="ie"){return new JAK.VML(w,h);}else{return new JAK.SVG(w,h);}};JAK.Vector.Canvas=JAK.ClassMaker.makeClass({"NAME":"JAK.Vector.Canvas","VERSION":"1.0","CLASS":"class"});JAK.Vector.Canvas.prototype.$constructor=function(width,height){};JAK.Vector.Canvas.prototype.clear=function(){};JAK.Vector.Canvas.prototype.resize=function(width,height){};JAK.Vector.Canvas.prototype.setScale=function(scale){};JAK.Vector.Canvas.prototype.getContainer=function(){};JAK.Vector.Canvas.prototype.getContent=function(){};JAK.Vector.Canvas.prototype.circle=function(){};JAK.Vector.Canvas.prototype.polyline=function(){};JAK.Vector.Canvas.prototype.polygon=function(){};JAK.Vector.Canvas.prototype.path=function(){};JAK.Vector.Canvas.prototype.setStroke=function(element,options){};JAK.Vector.Canvas.prototype.setFill=function(element,options){};JAK.Vector.Canvas.prototype.setCenterRadius=function(element,center,radius){};JAK.Vector.Canvas.prototype.setPoints=function(element,points,closed){};JAK.Vector.Canvas.prototype.setFormat=function(element,format){};JAK.Vector.Canvas.prototype.setTitle=function(element,title){element.setAttribute("title",title);};JAK.Vector.Canvas.prototype.computeControlPointsSymmetric=function(points,options){var o={"flat":true,"curvature":20,"join":false};for(var p in options){o[p]=options[p];}if(points.length<2||(points.length==2&&!o.join)){return false;}var result=[];var X=false;var Y=false;var limit=(o.join?points.length:points.length-1);for(var i=0;i<limit;i++){var A=points[i];if(o.join){var B=(i+1==points.length?points[0]:points[i+1]);var C=(i+2>=points.length?points[i+2-points.length]:points[i+2]);}else{var B=points[i+1];var C=(i+2==points.length?false:points[i+2]);}if(!C){var AB=B.minus(A);if(o.flat){Y=A.plus(AB.multiply(0.5));}else{var vAX=X.minus(A);var vYB=vAX.symmetry(AB);Y=B.minus(vYB);}}else{var vAC=C.minus(A);var l=vAC.norm();var frac=l/o.curvature;if(!frac){frac=Infinity;}var vYB=vAC.multiply(1/frac);Y=B.minus(vYB);}if(!X){var AB=B.minus(A);if(o.join){var D=points[points.length-1];var vBD=D.minus(B);var l=vBD.norm();var frac=l/o.curvature;if(!frac){frac=Infinity;}var vXA=vBD.multiply(1/frac);X=A.minus(vXA);}else{if(o.flat){X=A.plus(AB.multiply(0.5));}else{var vAX=vYB.symmetry(AB);X=A.plus(vAX);}}}result.push([X,Y]);X=B.plus(vYB);}return result;};JAK.Vector.Canvas.prototype.computeControlPoints=function(points,options){var o={"flat":true,"curvature":20,"join":false};for(var p in options){o[p]=options[p];}o.curvature=o.curvature/100;if(points.length<2||(points.length==2&&!o.join)){return false;}var result=[];var X=false;var Y=false;var limit=(o.join?points.length:points.length-1);for(var i=0;i<limit;i++){var A=points[i];if(o.join){var B=(i+1==points.length?points[0]:points[i+1]);var C=(i+2>=points.length?points[i+2-points.length]:points[i+2]);var D=(i?points[i-1]:points[points.length-1]);}else{var B=points[i+1];var C=(i+2==points.length?false:points[i+2]);var D=(i?points[i-1]:false);}var AB=B.minus(A);if(!C){if(o.flat){Y=A.plus(AB.multiply(0.5));}else{var vAX=X.minus(A);var vYB=vAX.symmetry(AB);Y=B.minus(vYB);}}else{var vAC=C.minus(A);var dist=AB.norm()*o.curvature;var norm=vAC.norm();var vYB=vAC.multiply(dist/norm||0);Y=B.minus(vYB);}if(D){var vBD=D.minus(B);var vBA=B.minus(A);var dist=vBA.norm()*o.curvature;var norm=vBD.norm();var vXA=vBD.multiply(dist/norm||0);X=A.minus(vXA);}else{if(o.flat){X=A.plus(AB.multiply(0.5));}else{var vAX=vYB.symmetry(AB);X=A.plus(vAX);}}result.push([X,Y]);}return result;};JAK.Vector.Primitive=JAK.ClassMaker.makeClass({"NAME":"Primitive","VERSION":"1.0","CLASS":"class"});JAK.Vector.Primitive.prototype.$constructor=function(canvas){this.canvas=canvas;this.elm=false;};JAK.Vector.Primitive.prototype.$destructor=function(){if(this.elm&&this.elm.parentNode&&this.elm.parentNode.nodeType==1){this.elm.parentNode.removeChild(this.elm);}};JAK.Vector.Line=JAK.ClassMaker.makeClass({"NAME":"Line","VERSION":"1.0","CLASS":"class","EXTEND":JAK.Vector.Primitive});JAK.Vector.Line.prototype.$constructor=function(canvas,points,options){this.canvas=canvas;this.elm2=false;this.options={"color":"#000","width":1,"curvature":0,"opacity":1,"outlineColor":"#fff","outlineOpacity":1,"outlineWidth":0,"title":"","symmetricCP":true};for(var p in options){this.options[p]=options[p];}this._build(points);};JAK.Vector.Line.prototype._build=function(points){var o1={"color":this.options.color,"width":this.options.width,"opacity":this.options.opacity};if(this.options.outlineWidth){var o2={"color":this.options.outlineColor,"width":2*this.options.outlineWidth+this.options.width,"opacity":this.options.outlineOpacity};}if(this.elm){this.elm.parentNode.removeChild(this.elm);}if(this.elm2){this.elm2.parentNode.removeChild(this.elm2);}if(this.options.curvature){this.elm=this.canvas.path();if(this.options.outlineWidth){this.elm2=this.canvas.path();}}else{this.elm=this.canvas.polyline();if(this.options.outlineWidth){this.elm2=this.canvas.polyline();}}this.canvas.setTitle(this.elm,this.options.title);this.canvas.setStroke(this.elm,o1);if(this.options.outlineWidth){this.canvas.setStroke(this.elm2,o2);this.canvas.setTitle(this.elm2,this.options.title);this.canvas.getContent().appendChild(this.elm2);}this.canvas.getContent().appendChild(this.elm);this.setPoints(points);};JAK.Vector.Line.prototype.setCurvature=function(c){if(!!this.options.curvature!=!!c){this.options.curvature=c;this._build(this.points);}else{this.options.curvature=c;this.setPoints(this.points);}};JAK.Vector.Line.prototype.$destructor=function(){if(this.elm.parentNode&&this.elm.parentNode.nodeType==1){this.elm.parentNode.removeChild(this.elm);}if(this.elm2&&this.elm2.parentNode&&this.elm2.parentNode.nodeType==1){this.elm2.parentNode.removeChild(this.elm2);}};JAK.Vector.Line.prototype.setPoints=function(points){this.points=points;if(this.options.curvature){var d="M "+this.points[0].join(" ");var len=this.points.length;if(len>2){if(this.options.symmetricCP){var control=this.canvas.computeControlPointsSymmetric(this.points,{"join":false,"curvature":this.options.curvature});}else{var control=this.canvas.computeControlPoints(this.points,{"join":false,"curvature":this.options.curvature});}for(var i=1;i<len;i++){var c=control[i-1];var x=c[0];var y=c[1];var point=this.points[i];d+="C "+x.join(" ")+", "+y.join(" ")+", "+point.join(" ")+" ";}}else{for(var i=1;i<len;i++){var point=this.points[i];d+="L  "+point.join(" ")+" ";}}this.canvas.setFormat(this.elm,d);if(this.elm2){this.canvas.setFormat(this.elm2,d);}}else{this.canvas.setPoints(this.elm,points);if(this.elm2){this.canvas.setPoints(this.elm2,points);}}};JAK.Vector.Line.prototype.setOptions=function(options){var o={};if("width" in options){o.width=options.width;this.options.width=options.width;}if("opacity" in options){o.opacity=options.opacity;}if("color" in options){o.color=options.color;}this.canvas.setStroke(this.elm,o);if(this.elm2){o={};if("outlineWidth" in options){o.width=2*options.outlineWidth+this.options.width;}if("outlineOpacity" in options){o.opacity=options.outlineOpacity;}if("outlineColor" in options){o.color=options.outlineColor;}this.canvas.setStroke(this.elm2,o);}};JAK.Vector.Polygon=JAK.ClassMaker.makeClass({"NAME":"Polygon","VERSION":"1.0","CLASS":"class","EXTEND":JAK.Vector.Primitive});JAK.Vector.Polygon.prototype.$constructor=function(canvas,points,options){this.canvas=canvas;this.options={"color":"#000","curvature":0,"opacity":1,"outlineColor":"#fff","outlineOpacity":1,"outlineWidth":0,"title":"","symmetricCP":true};for(var p in options){this.options[p]=options[p];}this._build(points);};JAK.Vector.Polygon.prototype._build=function(points){var stroke={"color":this.options.outlineColor,"width":this.options.outlineWidth,"opacity":this.options.outlineOpacity};var fill={"color":this.options.color,"opacity":this.options.opacity};if(this.elm){this.elm.parentNode.removeChild(this.elm);}if(this.options.curvature){this.elm=this.canvas.path();}else{this.elm=this.canvas.polygon();}this.canvas.setStroke(this.elm,stroke);this.canvas.setFill(this.elm,fill);this.canvas.setTitle(this.elm,this.options.title);this.canvas.getContent().appendChild(this.elm);this.setPoints(points);};JAK.Vector.Polygon.prototype.setPoints=function(points){this.points=points;if(this.options.curvature){if(this.options.symmetricCP){var control=this.canvas.computeControlPointsSymmetric(this.points,{"join":true,"curvature":this.options.curvature});}else{var control=this.canvas.computeControlPoints(this.points,{"join":true,"curvature":this.options.curvature});}var d="M "+this.points[0].join(" ");var len=this.points.length;for(var i=1;i<len+1;i++){var c=control[i-1];var x=c[0];var y=c[1];var point=(i>=len?this.points[0]:this.points[i]);d+="C "+x.join(" ")+", "+y.join(" ")+", "+point.join(" ")+" ";}d+="Z";this.canvas.setFormat(this.elm,d);}else{this.canvas.setPoints(this.elm,points,true);}};JAK.Vector.Polygon.prototype.setCurvature=function(c){if(!!this.options.curvature!=!!c){this.options.curvature=c;this._build(this.points);}else{this.options.curvature=c;this.setPoints(this.points);}};JAK.Vector.Circle=JAK.ClassMaker.makeClass({"NAME":"Circle","VERSION":"1.0","CLASS":"class","EXTEND":JAK.Vector.Primitive});JAK.Vector.Circle.prototype.$constructor=function(canvas,center,radius,options){this.canvas=canvas;this.center=new JAK.Vec2d(0,0);this.radius=0;this.options={"color":"","opacity":1,"outlineColor":"#000","outlineOpacity":1,"outlineWidth":1,"title":""};for(var p in options){this.options[p]=options[p];}var stroke={"color":this.options.outlineColor,"width":this.options.outlineWidth,"opacity":this.options.outlineOpacity};var fill={"color":this.options.color,"opacity":this.options.opacity};this.elm=this.canvas.circle(this.center,this.radius);this.setCenter(center);this.setRadius(radius);this.canvas.setStroke(this.elm,stroke);this.canvas.setFill(this.elm,fill);this.canvas.setTitle(this.elm,this.options.title);this.canvas.getContent().appendChild(this.elm);};JAK.Vector.Circle.prototype.setCenter=function(center){this.center=center;this.canvas.setCenterRadius(this.elm,this.center,this.radius);};JAK.Vector.Circle.prototype.setRadius=function(radius){this.radius=radius;this.canvas.setCenterRadius(this.elm,this.center,this.radius);};JAK.Vector.Path=JAK.ClassMaker.makeClass({"NAME":"Path","VERSION":"1.0","CLASS":"class","EXTEND":JAK.Vector.Primitive});JAK.Vector.Path.prototype.$constructor=function(canvas,format,options){this.canvas=canvas;this.elm2=false;this.options={"color":"none","opacity":1,"width":0,"outlineColor":"#fff","outlineOpacity":1,"outlineWidth":1,"title":""};for(var p in options){this.options[p]=options[p];}var stroke={"color":this.options.outlineColor,"width":this.options.outlineWidth,"opacity":this.options.outlineOpacity};var fill={"width":this.options.width,"color":this.options.color,"opacity":this.options.opacity};var two=this.options.width&&!format.match(/z/i);this.elm=this.canvas.path();this.setFormat(format);if(two){this.elm2=this.canvas.path();this.setFormat(format);if(stroke.width){stroke.width=fill.width+2*stroke.width;}this.canvas.setStroke(this.elm,fill);this.canvas.setStroke(this.elm2,stroke);this.canvas.setTitle(this.elm2,this.options.title);}else{this.canvas.setStroke(this.elm,stroke);this.canvas.setFill(this.elm,fill);}this.canvas.setTitle(this.elm,this.options.title);if(this.elm2){this.canvas.getContent().appendChild(this.elm2);}this.canvas.getContent().appendChild(this.elm);};JAK.Vector.Path.prototype.$destructor=function(){if(this.elm.parentNode&&this.elm.parentNode.nodeType==1){this.elm.parentNode.removeChild(this.elm);}if(this.elm2&&this.elm2.parentNode&&this.elm2.parentNode.nodeType==1){this.elm2.parentNode.removeChild(this.elm2);}};JAK.Vector.Path.prototype.setFormat=function(format){this.canvas.setFormat(this.elm,format);if(this.elm2){this.canvas.setFormat(this.elm2,format);}};JAK.SVG=JAK.ClassMaker.makeClass({"NAME":"SVG","VERSION":"3.0","IMPLEMENT":JAK.Vector.Canvas});JAK.SVG.prototype.ns="http://www.w3.org/2000/svg";JAK.SVG.prototype.xlinkns="http://www.w3.org/1999/xlink";JAK.SVG.prototype.$constructor=function(width,height){var svg=document.createElementNS(this.ns,"svg");svg.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",this.xlinkns);var g=document.createElementNS(this.ns,"g");svg.appendChild(g);this.ec=[];this.ec.push(JAK.Events.addListener(svg,"mousemove",JAK.Events.cancelDef));this.ec.push(JAK.Events.addListener(svg,"mousedown",JAK.Events.cancelDef));this.ec.push(JAK.Events.addListener(svg,"mouseup",JAK.Events.cancelDef));this.canvas=svg;this.g=g;this.resize(width,height);};JAK.SVG.prototype.$destructor=function(){for(var i=0;i<this.ec.length;i++){JAK.Events.removeListener(this.ec[i]);}this.ec=[];if(this.canvas.parentNode&&this.canvas.parentNode.nodeType==1){this.canvas.parentNode.removeChild(this.canvas);}this.canvas=null;};JAK.SVG.prototype.getContainer=function(){return this.canvas;};JAK.SVG.prototype.getContent=function(){return this.g;};JAK.SVG.prototype.clear=function(){JAK.DOM.clear(this.g);};JAK.SVG.prototype.resize=function(width,height){this.canvas.setAttribute("width",width);this.canvas.setAttribute("height",height);};JAK.SVG.prototype.setScale=function(scale){this.g.setAttribute("transform","scale("+scale+")");};JAK.SVG.prototype.polyline=function(){var el=document.createElementNS(this.ns,"polyline");el.setAttribute("fill","none");el.setAttribute("stroke","none");el.setAttribute("stroke-linejoin","round");el.setAttribute("stroke-linecap","round");return el;};JAK.SVG.prototype.circle=function(){var el=document.createElementNS(this.ns,"circle");el.setAttribute("fill","none");el.setAttribute("stroke","none");return el;};JAK.SVG.prototype.polygon=function(){var el=document.createElementNS(this.ns,"polygon");el.setAttribute("fill","none");el.setAttribute("stroke","none");el.setAttribute("stroke-linejoin","round");el.setAttribute("stroke-linecap","round");return el;};JAK.SVG.prototype.path=function(){var el=document.createElementNS(this.ns,"path");el.setAttribute("fill","none");el.setAttribute("stroke","none");el.setAttribute("stroke-linejoin","round");el.setAttribute("stroke-linecap","round");return el;};JAK.SVG.prototype.setStroke=function(element,options){if("color" in options){element.setAttribute("stroke",options.color);}if("opacity" in options){element.setAttribute("stroke-opacity",options.opacity);}if("width" in options){element.setAttribute("stroke-width",options.width);}};JAK.SVG.prototype.setFill=function(element,options){if("color" in options){element.setAttribute("fill",options.color);}if("opacity" in options){element.setAttribute("fill-opacity",options.opacity);}};JAK.SVG.prototype.setCenterRadius=function(element,center,radius){element.setAttribute("cx",center.getX());element.setAttribute("cy",center.getY());element.setAttribute("r",radius);};JAK.SVG.prototype.setPoints=function(element,points,closed){var arr=points.map(function(item){return item.join(" ");});element.setAttribute("points",arr.join(", "));};JAK.SVG.prototype.setFormat=function(element,format){element.setAttribute("d",format);};JAK.VML=JAK.ClassMaker.makeClass({"NAME":"VML","VERSION":"4.0","IMPLEMENT":JAK.Vector.Canvas});JAK.VML.prototype.$constructor=function(width,height){if(JAK.Browser.client=="ie"&&!document.namespaces["vml"]){if(document.documentMode&&document.documentMode>=8){document.namespaces.add("vml","urn:schemas-microsoft-com:vml","#default#VML");}else{document.namespaces.add("vml","urn:schemas-microsoft-com:vml");}var s=document.createStyleSheet();s.cssText="vml\\:*{behavior:url(#default#VML);";}var storage=JAK.mel("div",null,{"display":"none"});var tmp=JAK.mel("div",null,{"display":"none"});document.body.insertBefore(storage,document.body.firstChild);document.body.insertBefore(tmp,document.body.firstChild);this.constructor.storage=storage;this.constructor.tmp=tmp;var el=JAK.mel("div",null,{"position":"absolute","overflow":"hidden"});this.canvas=el;this.resize(width,height);};JAK.VML.prototype.$destructor=function(){if(this.canvas.parentNode&&this.canvas.parentNode.nodeType==1){this.canvas.parentNode.removeChild(this.canvas);}this.canvas=null;};JAK.VML.prototype.setScale=function(scale){this.canvas.style.zoom=scale;};JAK.VML.prototype.clear=function(){JAK.DOM.clear(this.canvas);};JAK.VML.prototype.resize=function(width,height){this.canvas.style.width=width+"px";this.canvas.style.height=height+"px";};JAK.VML.prototype.getContainer=function(){return this.canvas;};JAK.VML.prototype.getContent=function(){return this.canvas;};JAK.VML.prototype.polyline=function(){var el=this._build("<vml:polyline><vml:fill></vml:fill><vml:stroke endcap='round' joinstyle='round'></vml:stroke></vml:polyline>");el.style.position="absolute";el.filled=false;return el;};JAK.VML.prototype.circle=function(){var el=this._build("<vml:oval><vml:fill></vml:fill><vml:stroke></vml:stroke></vml:oval>");el.style.position="absolute";el.filled=false;el.stroked=false;return el;};JAK.VML.prototype.polygon=function(){var el=this._build("<vml:polyline><vml:fill></vml:fill><vml:stroke endcap='round' joinstyle='round'></vml:stroke></vml:polyline>");el.filled=false;el.stroked=false;return el;};JAK.VML.prototype.path=function(){var el=this._build("<vml:shape><vml:fill></vml:fill><vml:stroke endcap='round' joinstyle='round'></vml:stroke></vml:shape>");el.filled=false;el.stroked=false;el.style.position="absolute";el.style.width="1px";el.style.height="1px";el.coordsize="1,1";return el;};JAK.VML.prototype.setStroke=function(element,options){if("color" in options){element.strokecolor=options.color;}if("width" in options&&options.width){element.stroked=true;element.strokeweight=options.width+"px";}if("opacity" in options){element.getElementsByTagName("stroke")[0].opacity=options.opacity;}};JAK.VML.prototype.setFill=function(element,options){if("color" in options){element.filled=true;element.fillcolor=options.color;}if("opacity" in options){element.getElementsByTagName("fill")[0].opacity=options.opacity;}};JAK.VML.prototype.setCenterRadius=function(element,center,radius){element.style.left=(center.getX()-radius)+"px";element.style.top=(center.getY()-radius)+"px";element.style.width=(radius*2)+"px";element.style.height=(radius*2)+"px";};JAK.VML.prototype.setPoints=function(element,points,closed){var arr=points.map(function(item){return item.join(" ");});if(closed){arr.push(points[0].join(" "));}element.points.value=arr.join(", ");};JAK.VML.prototype._analyzeFormat=function(format){var data=[];var ptr=0;var current="";var obj=false;while(ptr<format.length){if(!current){}var ch=format.charAt(ptr);if(ch.match(/[a-z]/i)){if(current){obj.parameters.push(parseFloat(current));}if(obj){data.push(obj);}obj={"command":ch,"parameters":[]};current="";}else{if(ch.match(/[ ,]/)){if(current){obj.parameters.push(parseFloat(current));}current="";}else{current+=ch;}}ptr++;}if(current){obj.parameters.push(parseFloat(current));}if(obj){data.push(obj);}return data;};JAK.VML.prototype._serializeFormat=function(data){var s="";for(var i=0;i<data.length;i++){var cmd=data[i];var numbers=cmd.parameters.map(function(item){return Math.round(item);});s+=cmd.command+" "+numbers.join(" ")+" ";}return s;};JAK.VML.prototype._generateArc=function(parameters,coords){function calcAngle(ux,uy,vx,vy){var ta=Math.atan2(uy,ux);var tb=Math.atan2(vy,vx);if(tb>=ta){return tb-ta;}return 2*Math.PI-(ta-tb);}function fixAngle(angle){var a=angle;a=360*a/(2*Math.PI);return a*(2<<15);}var r1=parameters[0];var r2=parameters[1];var x=parameters[5];var y=parameters[6];var cx=coords.getX();var cy=coords.getY();var largeArcFlag=parameters[3];var sweepFlag=parameters[4];var xp,yp,cxp,cyp;var angle=parameters[2];angle=angle*Math.PI/180;xp=Math.cos(angle)*(cx-x)/2+Math.sin(angle)*(cy-y)/2;yp=-Math.sin(angle)*(cx-x)/2+Math.cos(angle)*(cy-y)/2;var root=0;var numerator=r1*r1*r2*r2-r1*r1*yp*yp-r2*r2*xp*xp;if(numerator<0){var s=Math.sqrt(1-numerator/(r1*r1*r2*r2));r1*=s;r2*=s;root=0;}else{root=Math.sqrt(numerator/(r1*r1*yp*yp+r2*r2*xp*xp));if(largeArcFlag==sweepFlag){root=-root;}}cxp=root*r1*yp/r2;cyp=-root*r2*xp/r1;var centerX=Math.cos(angle)*cxp-Math.sin(angle)*cyp+(cx+x)/2;var centerY=Math.sin(angle)*cxp+Math.cos(angle)*cyp+(cy+y)/2;var theta=calcAngle(1,0,(xp-cxp)/r1,(yp-cyp)/r2);var delta=calcAngle((xp-cxp)/r1,(yp-cyp)/r2,(-xp-cxp)/r1,(-yp-cyp)/r2);if(!sweepFlag&&delta>0){delta-=2*Math.PI;}else{if(sweepFlag&&delta<0){delta+=2*Math.PI;}}coords.setX(x);coords.setY(y);return [centerX,centerY,r1,r2,-fixAngle(theta),-fixAngle(delta)];};JAK.VML.prototype._fixFormat=function(format){var coords=new JAK.Vec2d(0,0);var data=this._analyzeFormat(format);for(var i=0;i<data.length;i++){var cmd=data[i];switch(cmd.command){case "M":case "L":coords.setX(cmd.parameters[0]);coords.setY(cmd.parameters[1]);break;case "C":coords.setX(cmd.parameters[4]);coords.setY(cmd.parameters[5]);break;case "z":case "Z":cmd.command="X";break;case "A":cmd.command="AE";cmd.parameters=this._generateArc(cmd.parameters,coords);break;}}data.push({"command":"E","parameters":[]});return this._serializeFormat(data);};JAK.VML.prototype._build=function(str){this.constructor.tmp.innerHTML=str;var elm=this.constructor.tmp.firstChild;this.constructor.storage.appendChild(elm);return elm;};JAK.VML.prototype.setFormat=function(element,format){var f=this._fixFormat(format);element.path=f;};JAK.History=JAK.ClassMaker.makeClass({"NAME":"JAK.History","VERSION":"2.0"});JAK.History.prototype.$destructor=function(){window.clearTimeout(this.checkInterval);};JAK.History.prototype.$constructor=function(obj,fce){this.obj=obj;this.listener=fce;if(!this.listener.call){this.capable=false;return;}else{this.capable=true;}this.lastHash=this.getHashFromUrl();if(JAK.History.isIE()){this.updating=true;if(document.readyState=="loading"){document.write("<iframe id=\"history-frame\" src=\"/historyScreen"+"\" style=\"display:none;\"></iframe>");this.IEframe=document.getElementById("history-frame");}else{var x=document.getElementsByTagName("body");if(x){var iframe=document.createElement("iframe");iframe.setAttribute("src","/historyScreen");iframe.style.display="none";if(x[0]){x[0].appendChild(iframe);this.IEframe=iframe;}}}this.ieFrameSet(this.lastHash);}this._checkHash=this._checkHash.bind(this);this.checkInterval=window.setInterval(this._checkHash,200);this.listener.call(this.obj,this.lastHash);};JAK.History.prototype.add=function(params){if(this.capable){this.updating=true;this.lastHash=params;if(JAK.History.isIE()){this.ieFrameSet(params);}window.location.hash=params;}};JAK.History.getHashFromUrl=function(){try{return decodeURI(window.location.hash.substring(1,window.location.hash.length));}catch(e){return window.location.hash.substring(1,window.location.hash.length);}};JAK.History.prototype.getHashFromUrl=function(){return JAK.History.getHashFromUrl();};JAK.History.prototype._checkHash=function(){if(this.IEframe)var hash=this.ieFrameCheck();else{var hash=this.getHashFromUrl();}if(this.updating){if(hash==decodeURI(this.lastHash)){this.updating=false;}else{}return;}this.callListener(hash);};JAK.History.prototype.getIeFrameHash=function(){var hash=this.IEframe.contentWindow.location.hash;return hash.substring(1,hash.length);};JAK.History.prototype.ieFrameCheck=function(){var hash=this.getIeFrameHash();if(this.lastHash!=hash&&!this.updatingIE){window.location.hash=hash;return decodeURI(hash);}if(this.lastHash==hash&&this.updatingIE){this.updatingIE=false;}return decodeURI(this.lastHash);};JAK.History.prototype.ieFrameSet=function(hash){if(decodeURI(this.getIeFrameHash())!=hash){this.updatingIE=true;this.IEframe.setAttribute("src","/historyScreen/?:"+hash+"#"+hash);}};JAK.History.prototype.callListener=function(hash){if(hash!=decodeURI(this.lastHash)){this.lastHash=hash;this.listener.call(this.obj,hash);}};JAK.History.isIE=function(){var userAgent=navigator.userAgent.toLowerCase();if(userAgent.indexOf("msie")!=-1&&!window.opera){return true;}else{return false;}};JAK.History.ieHashFix=function(){if(!JAK.History.isIE())return;var hash=window.location.hash;if(hash.length>2&&hash.substring(hash.length-2)=="@@"){window.location.replace(window.location.href.substring(0,window.location.href.length-2));}};JAK.State=JAK.ClassMaker.makeClass({"NAME":"JAK.State","VERSION":"3.0","IMPLEMENT":JAK.ISignals});JAK.State.prototype.$constructor=function(){this.state={"string":"","obj":{}};this._check=this._check.bind(this);this.init=this.init.bind(this);this.addListener("state-save","_save");};JAK.State.prototype.init=function(){this.history=new JAK.History(this,this._load);window.h=this.history;this.addListener("state-store","_store");};JAK.State.prototype._store=function(e){var old=this.state.string;this._serialize();if(this.state.string!=old){this.history.add(this.state.string);}};JAK.State.prototype._check=function(){var h=this._readHash();if(h!=decodeURIComponent(this.state.string)){this._load(h);}};JAK.State.prototype._serialize=function(){var arr=[];for(var name in this.state.obj){var val=this.state.obj[name];arr.push(encodeURIComponent(name)+"="+encodeURIComponent(val));}this.state.string=arr.join("&");};JAK.State.prototype._unserialize=function(str){var arr=this.state.string.split("&");for(var i=0;i<arr.length;i++){var item=arr[i];if(!item){continue;}var r=item.match(/([^=]+)=(.*)/);if(!r){continue;}this.state.obj[r[1]]=r[2];}};JAK.State.prototype._save=function(e){var data=e.data;for(var name in data){this.state.obj[name]=data[name];}};JAK.State.prototype._load=function(str){this.state.string=str;this._unserialize();this.makeEvent("state-load",this.state.obj);};(function(){var s=new JAK.State();JAK.State.init=s.init;})();JAK.ImageBrowser=JAK.ClassMaker.makeClass({"NAME":"JAK.ImageBrowser","VERSION":"3.0"});JAK.ImageBrowser.prototype.$constructor=function(container,data,optObj){this.options={"fixed":true,"width":640,"height":480,"thumbWidth":100,"thumbHeight":75,"thumbBorder":0,"zoomLinkId":"","mainLinkId":"","imagePath":"img/","imageFormat":"png","showNavigation":true,"useShadow":false,"parent":false,"zIndex":false,"shadowSizes":[22,22,22,22]};this.visible=false;this.ec=[];this.dom={};this.objCache=[];this.window=false;this.defaultIndex=0;this.index=-1;this.container=JAK.gel(container);for(var p in optObj){this.options[p]=optObj[p];}this.data=[];for(var i=0;i<data.length;i++){var item=data[i];var o={};o.alt=item.alt;o.big=item.big.url;o.small=item.small.url;o.flash=item.flash;if(item.main){this.defaultIndex=i;}this.data.push(o);}if(this.container){var imgLinks=this.container.getElementsByTagName("a");for(var i=0;i<imgLinks.length;i++){var link=imgLinks[i];this.objCache.push(new JAK.ImageBrowser.ImageLink(this,i,link));}}var link=JAK.gel(this.options.mainLinkId);if(link){this.objCache.push(new JAK.ImageBrowser.ImageLink(this,this.defaultIndex,link));}var link=JAK.gel(this.options.zoomLinkId);if(link){this.objCache.push(new JAK.ImageBrowser.ImageLink(this,this.defaultIndex,link));}this._buildDom();};JAK.ImageBrowser.prototype.$destructor=function(){for(var i=0;i<this.data.length;i++){this.data[i].obj.$destructor();}for(var i=0;i<this.objCache.length;i++){this.objCache[i].$destructor();}for(var i=0;i<this.ec.length;i++){JAK.Events.removeListener(this.ec[i]);}for(var p in this){this[p]=null;}};JAK.ImageBrowser.prototype._buildDom=function(){if(this.options.useShadow){var winopts={"imagePath":this.options.imagePath,"imageFormat":this.options.imageFormat,"sizes":this.options.shadowSizes};this.window=new JAK.Window(winopts);this.dom.container=this.window.container;this.dom.content=this.window.content;}else{this.dom.container=JAK.mel("div",null,{"position":"relative"});this.dom.content=this.dom.container;}var tw=this.data.length*this.options.thumbWidth;var th=this.options.thumbHeight+2*this.options.thumbBorder;if(tw>this.options.width){th+=17;}JAK.DOM.addClass(this.dom.content,"image-browser-content");var table=JAK.mel("table",null,{"borderCollapse":"collapse"});var tb=JAK.mel("tbody");var tr=JAK.mel("tr");var mainPart=JAK.mel("td",{"className":"image-browser-image"},{"width":this.options.width+"px","height":this.options.height+"px","padding":"0px","overflow":"hidden"});JAK.DOM.append([this.dom.content,table],[table,tb],[tb,tr],[tr,mainPart]);var captionBox=JAK.mel("div",{"className":"image-browser-caption"},{"width":this.options.width+"px","overflow":"hidden","height":(this.options.captionBoxHeight||0)+"px"});var captionContentBox=JAK.cel("div","image-browser-caption-content");JAK.DOM.append([captionBox,captionContentBox]);var thumbsPort=JAK.mel("div",{"className":"image-browser-port"},{"position":"relative","overflow":"auto","width":this.options.width+"px","height":th+"px"});var thumbs=JAK.mel("table",{"className":"image-browser-thumbs"},{"borderCollapse":"collapse"});var tb=JAK.mel("tbody");var tr=JAK.mel("tr");var dummy=JAK.ctext("...");mainPart.appendChild(dummy);var prev=JAK.cel("div","image-browser-prev");var next=JAK.cel("div","image-browser-next");var close=JAK.cel("div","image-browser-close");this.dom.prev=prev;this.dom.next=next;prev.title="Předchozí";next.title="Následující";close.title="Zavřít";if(this.options.showNavigation){this.ec.push(JAK.Events.addListener(prev,"click",this,"_prev",false,true));this.ec.push(JAK.Events.addListener(next,"click",this,"_next",false,true));this.ec.push(JAK.Events.addListener(prev,"mousedown",this,"_cancel",false,true));this.ec.push(JAK.Events.addListener(next,"mousedown",this,"_cancel",false,true));}if(!this.options.parent){this.ec.push(JAK.Events.addListener(close,"click",this,"_hide",false,true));this.ec.push(JAK.Events.addListener(mainPart,"click",this,"_hide",false,true));}for(var i=0;i<this.data.length;i++){var data=this.data[i];var td=JAK.mel("td",null,{"padding":"0px"});var div=JAK.mel("div",null,{"overflow":"hidden","width":this.options.thumbWidth+"px"});var tmp=JAK.ctext("...");JAK.DOM.append([td,div],[div,tmp]);var img=new JAK.ImageBrowser.ScaledImage(data.small,this.options.thumbWidth,this.options.thumbHeight,tmp);this.objCache.push(img);img.title=data.alt;data.div=div;data.obj=new JAK.ImageBrowser.ImageLink(this,i,td);JAK.DOM.append([tr,td]);}var active=JAK.mel("div",{"className":"image-browser-active"},{"position":"absolute"});thumbsPort.appendChild(active);this.dom.mainPart=mainPart;this.dom.thumbs=thumbs;this.dom.port=thumbsPort;this.dom.active=active;this.dom.caption=captionContentBox;JAK.DOM.append([thumbs,tb],[tb,tr]);JAK.DOM.append([this.dom.content,captionBox]);JAK.DOM.append([this.dom.content,thumbsPort],[thumbsPort,thumbs]);if(this.options.showNavigation&&this.data.length>1){JAK.DOM.append([this.dom.content,prev,next]);}if(this.options.parent){this.options.parent.appendChild(this.dom.container);this._showImage(this.defaultIndex);}else{this.dom.root=JAK.mel("div",{"className":"image-browser-root"},{"position":"absolute","left":"0px","top":"0px"});this.dom.container.style.position="absolute";this.dom.container.style.left="0px";this.dom.container.style.top="0px";if(this.options.zIndex){this.dom.root.style.zIndex=this.options.zIndex;this.dom.container.style.zIndex=this.options.zIndex;}this.dom.content.appendChild(close);this._hide();if(this.options.fixed){this.ec.push(JAK.Events.addListener(window,"resize",this,"_reposition",false,true));this.ec.push(JAK.Events.addListener(window,"scroll",this,"_reposition",false,true));}}};JAK.ImageBrowser.prototype._showImage=function(index){this._show();if(this.index!=-1){var old=this.data[this.index];JAK.DOM.removeClass(old.div,"active");}this.index=index;var data=this.data[this.index];JAK.DOM.addClass(data.div,"active");if(data.flash){JAK.DOM.clear(this.dom.mainPart);var em=JAK.cel("embed");em.setAttribute("quality","high");em.setAttribute("pluginspage","http://www.macromedia.com/go/getflashplayer");em.setAttribute("type","application/x-shockwave-flash");em.setAttribute("width",this.options.width);em.setAttribute("height",this.options.height);em.setAttribute("allowfullscreen","true");em.setAttribute("src",data.big);em.setAttribute("flashvars",data.flash);this.dom.mainPart.appendChild(em);this.dom.mainPart.innerHTML=this.dom.mainPart.innerHTML;}else{var img=new JAK.ImageBrowser.ScaledImage(data.big,this.options.width,this.options.height,this.dom.mainPart.firstChild);this.objCache.push(img);if(!this.options.parent){img.title="Klikni pro zavření";}}this.dom.caption.innerHTML=data.alt;var leftOffset=data.obj.offset;var sl=Math.round(leftOffset-(this.options.width/2-this.options.thumbWidth/2));this.dom.port.scrollLeft=sl;var pos=JAK.DOM.getBoxPosition(data.div.parentNode,this.dom.port);var act=this.dom.active;act.style.left=pos.left+"px";act.style.top=pos.top+"px";var w1=parseInt(JAK.DOM.getStyle(data.div,"borderLeftWidth"))||0;w1-=parseInt(JAK.DOM.getStyle(act,"borderLeftWidth"))||0;var w2=parseInt(JAK.DOM.getStyle(data.div,"borderRightWidth"))||0;w2-=parseInt(JAK.DOM.getStyle(act,"borderRightWidth"))||0;var h1=parseInt(JAK.DOM.getStyle(data.div,"borderTopWidth"))||0;h1-=parseInt(JAK.DOM.getStyle(act,"borderTopWidth"))||0;var h2=parseInt(JAK.DOM.getStyle(data.div,"borderBottomWidth"))||0;h2-=parseInt(JAK.DOM.getStyle(act,"borderBottomWidth"))||0;if(document.compatMode=="BackCompat"){w1=w2=h1=h2=0;}act.style.width=(this.options.thumbWidth+w1+w2)+"px";this.dom.active.style.height=(this.options.thumbHeight+h1+h2)+"px";this.dom.prev.style.visibility=(this.index==0?"hidden":"visible");this.dom.next.style.visibility=(this.index==this.data.length-1?"hidden":"visible");};JAK.ImageBrowser.prototype._prev=function(){if(this.index==0){return;}this._showImage(this.index-1);};JAK.ImageBrowser.prototype._next=function(){if(this.index==this.data.length-1){return;}this._showImage(this.index+1);};JAK.ImageBrowser.prototype._hide=function(){if(!this.visible){return;}this.visible=false;JAK.DOM.elementsHider(this.dom.root,false,"show");if(!this.options.parent){this.dom.root.style.display="none";}if(this.window){this.window.hide();}else{this.dom.container.style.display="none";}};JAK.ImageBrowser.prototype._show=function(){if(this.visible){return;}this.visible=true;if(!this.options.parent){document.body.appendChild(this.dom.root);document.body.appendChild(this.dom.container);this.dom.root.style.left="0px";this.dom.root.style.top="0px";this.dom.container.style.left="0px";this.dom.container.style.top="0px";this.dom.root.style.display="";this._reposition();}if(this.window){this.window.show();}else{this.dom.container.style.display="";}JAK.DOM.elementsHider(this.dom.root,false,"hide");};JAK.ImageBrowser.prototype._reposition=function(){var docSize=JAK.DOM.getDocSize();var scrollPos=JAK.DOM.getScrollPos();var docH=document.compatMode=="BackCompat"?document.body.scrollHeight:document.body.offsetHeight;var docW=document.compatMode=="BackCompat"?document.body.scrollWidth:document.body.offsetWidth;this.dom.root.style.width=(docSize.width>docW?docSize.width:docW)+"px";this.dom.root.style.height=(docSize.height>docH?docSize.height:docH)+"px";var tableLeft=(docSize.width-this.options.width)/2+scrollPos.x;this.dom.container.style.left=Math.round(tableLeft)+"px";var tableTop=(docSize.height-this.options.height-this.options.thumbHeight-(this.options.captionBoxHeight||0))/2+scrollPos.y;this.dom.container.style.top=Math.round(tableTop)+"px";};JAK.ImageBrowser.prototype._cancel=function(e,elm){JAK.Events.cancelDef(e);};JAK.ImageBrowser.ImageLink=JAK.ClassMaker.makeClass({"NAME":"ImageLink","VERSION":"1.0","CLASS":"class"});JAK.ImageBrowser.ImageLink.prototype.$constructor=function(owner,index,elm){this.ec=[];this.owner=owner;this.index=index;this.elm=elm;this.offset=index*owner.options.thumbWidth;this.ec.push(JAK.Events.addListener(this.elm,"click",this,"_show",false,true));};JAK.ImageBrowser.ImageLink.prototype.$destructor=function(){for(var i=0;i<this.ec.length;i++){JAK.Events.removeListener(this.ec[i]);}for(var p in this){this[p]=null;}};JAK.ImageBrowser.ImageLink.prototype._show=function(e,elm){JAK.Events.cancelDef(e);this.owner._showImage(this.index);};JAK.ImageBrowser.ScaledImage=JAK.ClassMaker.makeClass({"NAME":"ScaledImage","VERSION":"1.0","CLASS":"class"});JAK.ImageBrowser.ScaledImage.prototype.$constructor=function(src,w,h,ancestor){this.w=w;this.h=h;this.src=src;this.ancestor=ancestor;this.ec=[];this.elm=JAK.cel("img");this.container=JAK.mel("div",null,{"position":"absolute","left":"-1000px","top":"-1000px","width":"1px","height":"1px","overflow":"hidden"});this.ec.push(JAK.Events.addListener(this.elm,"load",this,"_loaded",false,true));document.body.insertBefore(this.container,document.body.firstChild);this.container.appendChild(this.elm);this.elm.src=this.src;};JAK.ImageBrowser.ScaledImage.prototype.$destructor=function(){for(var i=0;i<this.ec.length;i++){JAK.Events.removeListener(this.ec[i]);}for(var p in this){this[p]=null;}};JAK.ImageBrowser.ScaledImage.prototype._loaded=function(e,elm){var w=this.elm.width;var h=this.elm.height;var ratio_w=w/this.w;var ratio_h=h/this.h;var max=Math.max(ratio_w,ratio_h);if(max>1){w=w/max;h=h/max;if(w&&h){this.elm.width=Math.ceil(w);this.elm.height=Math.ceil(h);}}if(this.ancestor&&this.ancestor.parentNode){this.ancestor.parentNode.replaceChild(this.elm,this.ancestor);}if(this.container){this.container.parentNode.removeChild(this.container);this.container=false;}};JAK.Interpolator=JAK.ClassMaker.makeClass({"NAME":"JAK.Interpolator","VERSION":"2.0"});JAK.Interpolator.LINEAR=1;JAK.Interpolator.QUADRATIC=2;JAK.Interpolator.SQRT=3;JAK.Interpolator.SIN=4;JAK.Interpolator.ASIN=5;JAK.Interpolator.prototype.$constructor=function(startVal,endVal,interval,callback,options){this.startVal=startVal;this.endVal=endVal;this.interval=interval;this.callback=callback;this.options={"interpolation":JAK.Interpolator.LINEAR,"frequency":20,"endCallback":false};this.running=false;this._tick=this._tick.bind(this);for(var p in options){this.options[p]=options[p];}};JAK.Interpolator.prototype._call=function(frac){var result=this._interpolate(frac);var delta=this.endVal-this.startVal;this.callback(this.startVal+delta*result);};JAK.Interpolator.prototype._interpolate=function(val){if(typeof (this.options.interpolation)=="function"){return this.options.interpolation(val);}switch(this.options.interpolation){case JAK.Interpolator.QUADRATIC:return val*val;case JAK.Interpolator.SQRT:return Math.sqrt(val);case JAK.Interpolator.SIN:return (Math.sin(Math.PI*(val-0.5))+1)/2;case JAK.Interpolator.ASIN:return (Math.asin(2*(val-0.5))+Math.PI/2)/Math.PI;default:return val;}};JAK.Interpolator.prototype.start=function(){if(this.running){return;}this.running=true;this.startTime=(new Date()).getTime();this._call(0);this.handle=setInterval(this._tick,this.options.frequency);};JAK.Interpolator.prototype.stop=function(){if(!this.running){return;}this.running=false;clearInterval(this.handle);};JAK.Interpolator.prototype._tick=function(){var now=(new Date()).getTime();var elapsed=now-this.startTime;if(elapsed>=this.interval){this.stop();this._call(1);if(this.options.endCallback){this.options.endCallback();}}else{this._call(elapsed/this.interval);}};JAK.CSSInterpolator=JAK.ClassMaker.makeClass({"NAME":"CSSInterpolator","VERSION":"1.0","CLASS":"class"});JAK.CSSInterpolator.prototype.$constructor=function(elm,interval,options){this.elm=elm;this.properties=[];this.colors=[];this._tick=this._tick.bind(this);this.interpolator=new JAK.Interpolator(0,1,interval,this._tick,options);};JAK.CSSInterpolator.prototype.addProperty=function(property,startVal,endVal,suffix){var o={"property":property,"startVal":startVal,"endVal":endVal,"suffix":suffix||""};this.properties.push(o);};JAK.CSSInterpolator.prototype.addColorProperty=function(property,startVal,endVal){var o={"startVal":JAK.Parser.color(startVal),"endVal":JAK.Parser.color(endVal),"property":property};this.colors.push(o);};JAK.CSSInterpolator.prototype.start=function(){this.interpolator.start();};JAK.CSSInterpolator.prototype.stop=function(){this.interpolator.stop();};JAK.CSSInterpolator.prototype._setOpacity=function(prop,frac){var propNew={};if(JAK.Browser.client=="ie"&&JAK.Browser.version<8){propNew.property="filter";var val=Math.round(prop.startVal*100+frac*(prop.endVal*100-prop.startVal*100));propNew.val="progid:DXImageTransform.Microsoft.Alpha(opacity="+val+");";}else{propNew.property="opacity";var val=prop.startVal+frac*(prop.endVal-prop.startVal);propNew.val=val;}return propNew;};JAK.CSSInterpolator.prototype._tick=function(frac){for(var i=0;i<this.properties.length;i++){var prop=this.properties[i];switch(prop.property){case "opacity":var propNew=this._setOpacity(prop,frac);this.elm.style[propNew.property]=propNew.val;continue;break;default:var val=prop.startVal+frac*(prop.endVal-prop.startVal);val+=prop.suffix;this.elm.style[prop.property]=val;break;}}var names=["r","g","b"];for(var i=0;i<this.colors.length;i++){var c=this.colors[i];var out=[0,0,0];for(var j=0;j<names.length;j++){var name=names[j];out[j]=c.startVal[name]+Math.round(frac*(c.endVal[name]-c.startVal[name]));}var result="rgb("+out.join(",")+")";this.elm.style[c.property]=result;}};JAK.LBChart=JAK.ClassMaker.makeClass({"NAME":"JAK.LBChart","VERSION":"2.0","DEPEND":[{"sClass":JAK.Vector,"ver":"2.0"}]});JAK.LBChart.prototype.$constructor=function(id,data,labels,options){this.options={"padding":30,"rows":{"count":6,"color":"#888"},"legend":{"draw":"right","width":25},"markerSize":8,"barWidth":10,"barMinSize":0,"lineWidth":1,"outlineWidth":1,"min":null,"max":null,"zero":false,"merge":false,"pointer":false,"axes":{"draw":true,"color":"#ffd625"},"colors":["#004c8c","#ff4911","#ffd625","#5ea221","#840026","#89cdff","#374705","#b3d200","#522476","#ff9b11","#c9000e","#008ad4"]};this._mergeOptions(this.options,options);if(this.options.legend.draw===true){this.options.legend.draw="right";}this.container=JAK.gel(id);this.appended=[];this.widget={"width":this.container.offsetWidth,"height":this.container.offsetHeight};this.chart={"width":0,"height":0,"left":0,"top":0};this.legend={"width":0,"height":0,"left":0,"top":0};this.bar={"count":0,"length":0,"step":0};this.misc={"min":0,"max":0,"step":0};this.canvas=JAK.Vector.getCanvas(this.widget.width,this.widget.height);this.container.style.position="relative";this.container.appendChild(this.canvas.getContainer());this.labels=[];for(var i=0;i<labels.length;i++){var o=labels[i];if(typeof (o)=="string"){o={"label":o,"width":0,"color":""};}this.labels.push(o);}this.data=data;for(var i=0;i<this.data.length;i++){if(data[i].type=="bar"){this.bar.count++;this.bar.length=data[i].data.length;}}if(this.bar.count&&this.options.merge){this.bar.count=1;}if(!this.data.length){return;}this._draw();if(this.options.pointer){var c=this.canvas.getContainer();JAK.Events.addListener(c,"mousemove",this,"_mousemove");JAK.Events.addListener(c,"mouseout",this,"_mouseout");}};JAK.LBChart.prototype.$destructor=function(){this.canvas.$destructor();for(var i=0;i<this.appended.length;i++){var elm=this.appended[i];elm.parentNode.removeChild(elm);}};JAK.LBChart.prototype._mergeOptions=function(oldData,newData){for(var p in newData){if(!(p in oldData)){continue;}var newVal=newData[p];if(typeof (newVal)=="object"&&!(newVal instanceof Array)&&newVal!==null){arguments.callee(oldData[p],newData[p]);}else{oldData[p]=newVal;}}};JAK.LBChart.prototype._mousemove=function(e,elm){var s=JAK.DOM.getScrollPos();var pos=JAK.DOM.getBoxPosition(this.container);s.x+=e.clientX;s.y+=e.clientY;s.x-=pos.left;s.y-=pos.top;if(s.x>=this.chart.left&&s.x<=this.chart.left+this.chart.width&&s.y>=this.chart.top&&s.y<=this.chart.top+this.chart.height){var o=1;var a=new JAK.Vec2d(s.x,this.chart.top);var b=new JAK.Vec2d(s.x,this.chart.top+this.chart.height);this._vertical.setPoints([a,b]);}else{var o=0;}this._vertical.setOptions({"opacity":o});};JAK.LBChart.prototype._mouseout=function(e,elm){this._vertical.setOptions({"opacity":0});};JAK.LBChart.prototype.scale=function(value){return Math.round((value-this.misc.min)/(this.misc.max-this.misc.min)*this.chart.height);};JAK.LBChart.prototype._lesser=function(a,b){return a-b<1e-8;};JAK.LBChart.prototype._draw=function(){var o=this.options;if(o.legend.draw){this._prepareLegend();}this._computeExtremes();if(o.rows.count){this._computeStepY();}this._prepareLabels();if(o.rows.count){this._drawLabelsY();}if(this.bar.count){this._computeStepX();}if(this.labels.length){this._drawLabelsX();}if(o.axes.draw){this._drawAxes();}var idx=0;for(var i=0;i<this.data.length;i++){if(this.data[i].type=="bar"){this._drawBars(i,idx);if(!this.options.merge){idx++;}}}for(var i=0;i<this.data.length;i++){if(this.data[i].type!="bar"){this._drawLine(i);}}if(o.legend.draw){this._drawLegend();}if(o.pointer){var a=new JAK.Vec2d(0,0);var b=new JAK.Vec2d(0,0);this._vertical=new JAK.Vector.Line(this.canvas,[a,b],{"color":"#000","width":1,"opacity":0});this._vertical.elm.setAttribute("shape-rendering","crispEdges");}};JAK.LBChart.prototype._drawAxes=function(){var style={"width":1,"color":this.options.axes.color};var bottom=this.chart.top+this.chart.height;new JAK.Vector.Line(this.canvas,[new JAK.Vec2d(this.chart.left,bottom),new JAK.Vec2d(this.chart.left+this.chart.width,bottom)],style);new JAK.Vector.Line(this.canvas,[new JAK.Vec2d(this.chart.left,bottom),new JAK.Vec2d(this.chart.left,this.chart.top)],style);};JAK.LBChart.prototype._drawBars=function(indexTotal,index){var o=this.options;var obj=this.data[indexTotal];var color=o.colors[indexTotal%o.colors.length];var points=[];var x1=this.chart.left+index*o.barWidth+this.bar.step/2;for(var i=0;i<obj.data.length;i++){var value=obj.data[i];var x2=x1+o.barWidth;var ref=0;if(this.misc.min>=0){ref=this.misc.min;}else{if(this.misc.max<=0){ref=this.misc.max;}}var y1=this.chart.top+this.chart.height-this.scale(ref);var y2=this.chart.top+this.chart.height-this.scale(value);if(this.options.barMinSize&&Math.abs(y2-y1)<this.options.barMinSize){y2=y1-this.options.barMinSize;}var style={"color":color,"outlineWidth":o.outlineWidth,"outlineColor":"black","title":value};if(style.outlineWidth==0){style.outlineOpacity=0;}new JAK.Vector.Polygon(this.canvas,[new JAK.Vec2d(x1,y1),new JAK.Vec2d(x2,y1),new JAK.Vec2d(x2,y2),new JAK.Vec2d(x1,y2)],style);x1+=this.bar.step+this.bar.count*o.barWidth;}};JAK.LBChart.prototype._drawLine=function(index){var o=this.options;var obj=this.data[index];var dataLength=obj.data.length;var interval=this.chart.width/(dataLength+(this.bar.count?0:-1));var color=o.colors[index%o.colors.length];var points=[];var x=this.chart.left;if(this.bar.count){x+=this.bar.step/2+this.bar.count*o.barWidth/2;}for(var i=0;i<dataLength;i++){var value=obj.data[i];if(value!==null){var y=this.chart.top+this.chart.height-this.scale(value);points.push(new JAK.Vec2d(x,y));}x+=interval;}new JAK.Vector.Line(this.canvas,points,{"color":color,"width":o.lineWidth});var m=obj.marker||JAK.Marker;for(var i=0;i<points.length;i++){new m(this.canvas,points[i],o.markerSize,color,obj.data[i]);}};JAK.LBChart.prototype._drawLabelsX=function(){var labels=[];var total=0;var x=this.chart.left;if(this.bar.count){x+=this.bar.step/2+this.bar.count*this.options.barWidth/2;}var y=this.chart.top+this.chart.height+5;var interval=this.chart.width/(this.labels.length+(this.bar.count?0:-1));for(var i=0;i<this.labels.length;i++){if(this.labels[i].width){var a=new JAK.Vec2d(Math.round(x),this.chart.top);var b=new JAK.Vec2d(Math.round(x),this.chart.top+this.chart.height);var l=new JAK.Vector.Line(this.canvas,[a,b],{"color":this.labels[i].color,"width":this.labels[i].width});l.elm.setAttribute("shape-rendering","crispEdges");}var label=JAK.mel("div",null,{"position":"absolute","top":y+"px","left":Math.round(x)+"px"});var l2=JAK.mel("div",{"className":"label-x"},{"position":"relative","left":"-50%"});label.appendChild(l2);l2.innerHTML=this.labels[i].label;this.container.appendChild(label);this.appended.push(label);x+=interval;total+=5+label.offsetWidth;labels.push(label);}if(total>this.chart.width){var frac=Math.ceil(total/this.chart.width);for(var i=0;i<labels.length;i++){if(i%frac){labels[i].style.display="none";}}}};JAK.LBChart.prototype._drawLabelsY=function(){var idx=0;var style={"color":this.options.rows.color,"width":1};for(var i=this.misc.min;this._lesser(i,this.misc.max);i+=this.misc.step){var top=this.chart.top+this.chart.height-this.scale(i);new JAK.Vector.Line(this.canvas,[new JAK.Vec2d(this.chart.left,top),new JAK.Vec2d(this.chart.left+this.chart.width,top)],style);var text=this._labels[idx];var w=text.offsetWidth;var h=text.offsetHeight;top-=Math.round(h/2);text.style.top=top+"px";text.style.left=(this.chart.left-10-w)+"px";idx++;}};JAK.LBChart.prototype._drawLegend=function(){var labels=this._legendLabels;var size=this.options.legend.width;for(var i=0;i<this.data.length;i++){var dataset=this.data[i];var color=this.options.colors[i%this.options.colors.length];var x1=this.legend.left;var x2=x1+this.options.legend.width;if(dataset.type=="bar"){var y1=this.legend.top+i*(size+10);var y2=y1+size;new JAK.Vector.Polygon(this.canvas,[new JAK.Vec2d(x1,y1),new JAK.Vec2d(x2,y1),new JAK.Vec2d(x2,y2),new JAK.Vec2d(x1,y2)],{"color":color,"outlineColor":"#000","outlineWidth":this.options.outlineWidth});}else{var y=this.legend.top+i*(size+10)+Math.round(size/2);new JAK.Vector.Line(this.canvas,[new JAK.Vec2d(x1,y),new JAK.Vec2d(x2,y)],{"color":color,"width":1+this.options.lineWidth});if(dataset.marker){new dataset.marker(this.canvas,new JAK.Vec2d(x1+size/2,y),this.options.markerSize,color);}}var l=this.legend.left+size+10;var t=this.legend.top+i*(size+10);var text=labels[i];t+=Math.round((size-text.offsetHeight)/2);text.style.left=l+"px";text.style.top=t+"px";}};JAK.LBChart.prototype._prepareLabels=function(){if(this.options.rows.count){var m=0;var labels=[];for(var i=this.misc.min;this._lesser(i,this.misc.max);i+=this.misc.step){var text=JAK.mel("div",{"className":"label-y"},{"position":"absolute"});text.innerHTML=Math.round(i*1000)/1000;this.container.appendChild(text);this.appended.push(text);var w=text.offsetWidth;m=Math.max(m,w);labels.push(text);}this.chart.left=m+10;this._labels=labels;}switch(this.options.legend.draw){case "left":this.chart.left+=this.legend.left+this.legend.width+2*this.options.padding;this.chart.top=this.options.padding;this.chart.width=this.widget.width-this.chart.left-this.options.padding;this.chart.height=this.widget.height-this.chart.top-this.options.padding;break;case "right":this.chart.left+=this.options.padding;this.chart.top=this.options.padding;this.chart.width=this.legend.left-2*this.options.padding-this.chart.left;this.chart.height=this.widget.height-this.chart.top-this.options.padding;break;case "top":this.chart.left+=this.options.padding;this.chart.top=this.legend.top+this.legend.height+2*this.options.padding;this.chart.width=this.widget.width-this.chart.left-this.options.padding;this.chart.height=this.widget.height-this.chart.top-this.options.padding;break;case "bottom":this.chart.left+=this.options.padding;this.chart.top=this.options.padding;this.chart.width=this.widget.width-this.chart.left-this.options.padding;this.chart.height=this.legend.top-2*this.options.padding;break;default:this.chart.left+=this.options.padding;this.chart.top=this.options.padding;this.chart.width=this.widget.width-this.chart.left-this.options.padding;this.chart.height=this.widget.height-this.chart.top-this.options.padding;break;}};JAK.LBChart.prototype._prepareLegend=function(){var labels=[];var max=0;for(var i=0;i<this.data.length;i++){var text=JAK.mel("div",{"className":"legend"},{"position":"absolute"});text.innerHTML=this.data[i].label;this.container.appendChild(text);this.appended.push(text);var w=text.offsetWidth;max=Math.max(max,w);labels.push(text);}this._legendLabels=labels;this.legend.width=max+10+this.options.legend.width;this.legend.height=this.data.length*this.options.legend.width+(this.data.length-1)*10;switch(this.options.legend.draw){case "left":this.legend.left=this.options.padding;this.legend.top=Math.round((this.widget.height-this.legend.height)/2);break;case "right":this.legend.top=Math.round((this.widget.height-this.legend.height)/2);this.legend.left=this.widget.width-this.legend.width-this.options.padding;break;case "top":this.legend.top=this.options.padding;this.legend.left=Math.round((this.widget.width-this.legend.width)/2);break;case "bottom":this.legend.top=this.widget.height-this.options.padding-this.legend.height;this.legend.left=Math.round((this.widget.width-this.legend.width)/2);break;}};JAK.LBChart.prototype._computeStepY=function(){var diff=this.misc.max-this.misc.min;var step=diff/(this.options.rows.count);var base=Math.floor(Math.log(step)/Math.log(10));var divisor=Math.pow(10,base);var optimal=Math.round(step/divisor)*divisor;if(this.options.min!==null&&this.options.max!==null){this.misc.step=step;}else{this.misc.step=optimal;var rounded=Math.ceil(diff/optimal)*optimal;if(this.options.min!==null){this.misc.max=this.misc.min+rounded;}else{if(this.options.max!==null){this.misc.min=this.misc.max-rounded;}else{this.misc.min=Math.floor(this.misc.min/optimal)*optimal;this.misc.max=Math.ceil(this.misc.max/optimal)*optimal;}}}};JAK.LBChart.prototype._computeStepX=function(){this.bar.step=(this.chart.width-this.bar.count*this.bar.length*this.options.barWidth)/this.bar.length;};JAK.LBChart.prototype._computeExtremes=function(){var all=[];for(var i=0;i<this.data.length;i++){var dataset=this.data[i];for(var j=0;j<dataset.data.length;j++){var value=dataset.data[j];if(value!==null){all.push(value);}}}all.sort(function(a,b){return a-b;});var min=all[0]||0;var max=all[all.length-1]||0;if(min==max){this.options.zero=true;}if(this.options.zero){if(min>0){min=0;}if(max<0){max=0;}}if(this.options.min!==null){min=this.options.min;}if(this.options.max!==null){max=this.options.max;}this.misc.min=min;this.misc.max=max;};JAK.Marker=JAK.ClassMaker.makeClass({"NAME":"Marker","VERSION":"1.0","CLASS":"class"});JAK.Marker.prototype.$constructor=function(canvas,point,size,color,title){this.canvas=canvas;this.point=point;this.size=size;this.color=color;this.title=title;this._draw();this._dummy();};JAK.Marker.prototype._draw=function(){};JAK.Marker.prototype._dummy=function(){new JAK.Vector.Circle(this.canvas,this.point,this.size*1.5,{"opacity":0,"outlineWidth":0,"outlineOpacity":0,"title":this.title});};JAK.Marker.Circle=JAK.ClassMaker.makeClass({"NAME":"Circle","VERSION":"1.0","CLASS":"class","EXTEND":JAK.Marker});JAK.Marker.Circle.prototype._draw=function(){new JAK.Vector.Circle(this.canvas,this.point,this.size/2,{"color":this.color,"outlineWidth":0,"outlineOpacity":0,"title":this.title});};JAK.Marker.Square=JAK.ClassMaker.makeClass({"NAME":"Square","VERSION":"1.0","CLASS":"class","EXTEND":JAK.Marker});JAK.Marker.Square.prototype._draw=function(){var x1=this.point.getX()-this.size/2;var y1=this.point.getY()-this.size/2;var x2=x1+this.size;var y2=y1+this.size;new JAK.Vector.Polygon(this.canvas,[new JAK.Vec2d(x1,y1),new JAK.Vec2d(x2,y1),new JAK.Vec2d(x2,y2),new JAK.Vec2d(x1,y2)],{"color":this.color,"outlineWidth":0,"outlineOpacity":0,"title":this.title});};JAK.Marker.Cross=JAK.ClassMaker.makeClass({"NAME":"Cross","VERSION":"1.0","CLASS":"class","EXTEND":JAK.Marker});JAK.Marker.Cross.prototype._draw=function(){var x1=this.point.getX()-this.size/2;var y1=this.point.getY()-this.size/2;var x2=x1+this.size;var y2=y1+this.size;new JAK.Vector.Line(this.canvas,[new JAK.Vec2d(x1,y1),new JAK.Vec2d(x2,y2)],{"color":this.color,"outlineWidth":0,"width":2,"title":this.title});new JAK.Vector.Line(this.canvas,[new JAK.Vec2d(x2,y1),new JAK.Vec2d(x1,y2)],{"color":this.color,"outlineWidth":0,"width":2,"title":this.title});};JAK.Marker.Plus=JAK.ClassMaker.makeClass({"NAME":"Plus","VERSION":"1.0","CLASS":"class","EXTEND":JAK.Marker});JAK.Marker.Plus.prototype._draw=function(){var x1=this.point.getX()-this.size/2;var y1=this.point.getY()-this.size/2;var x2=x1+this.size;var y2=y1+this.size;new JAK.Vector.Line(this.canvas,[new JAK.Vec2d(x1,this.point.getY()),new JAK.Vec2d(x2,this.point.getY())],{"color":this.color,"width":2,"outlineWidth":0,"outlineOpacity":0,"title":this.title});new JAK.Vector.Line(this.canvas,[new JAK.Vec2d(this.point.getX(),y1),new JAK.Vec2d(this.point.getX(),y2)],{"color":this.color,"width":2,"outlineWidth":0,"outlineOpacity":0,"title":this.title});};JAK.Marker.Triangle=JAK.ClassMaker.makeClass({"NAME":"Triangle","VERSION":"1.0","CLASS":"class","EXTEND":JAK.Marker});JAK.Marker.Triangle.prototype._draw=function(){var coef=Math.sqrt(3);var x=this.point.getX();var y=this.point.getY();new JAK.Vector.Polygon(this.canvas,[new JAK.Vec2d(x-this.size/2,y+this.size*coef/6),new JAK.Vec2d(x+this.size/2,y+this.size*coef/6),new JAK.Vec2d(x,y-this.size*coef/3)],{"color":this.color,"outlineWidth":0,"outlineOpacity":0,"title":this.title});};JAK.Suggest=JAK.ClassMaker.makeClass({"NAME":"JAK.Suggest","VERSION":"3.0","CLASS":"class","IMPLEMENT":JAK.ISignals});JAK.Suggest.MODE_AUTOMATIC=0;JAK.Suggest.MODE_MANUAL=1;JAK.Suggest.prototype.$constructor=function(id,url,options){this.ec=[];this.dom={};this.url=url;this.options={"dict":"","count":10,"prefix":false,"highlight":false,"mode":JAK.Suggest.MODE_AUTOMATIC};for(var p in options){this.options[p]=options[p];}this.items=[];this.remotes=[];this.timeout=false;this._activeItem=false;this.request=this.request.bind(this);this._build(id);this._hoverLock=false;this._used=0;};JAK.Suggest.prototype.$destructor=function(){this._clear();this.ec.forEach(JAK.Events.removeListener,JAK.Events);};JAK.Suggest.prototype.setOptions=function(options){for(var p in options){this.options[p]=options[p];}};JAK.Suggest.prototype.request=function(){this.timeout=false;var url=this._buildUrl(this.dom.input.value);var rq=new JAK.Request(JAK.Request.XML);rq.setCallback(this,"_response");rq.send(url);};JAK.Suggest.prototype.action=function(){if(this._activeItem){this.dom.input.value=this._activeItem.getValue();}this._hide();this.makeEvent("suggestSubmit",null,{"form":this.dom.input.form});this._used=0;this.dom.input.form.submit();};JAK.Suggest.prototype._build=function(id){var input=JAK.gel(id);var container=JAK.mel("div",{"className":"suggest"},{"width":input.offsetWidth+"px"});input.form.appendChild(container);var content=JAK.cel("div","content");container.appendChild(content);this.dom.input=input;this.dom.container=container;this.dom.content=content;this._hide();input.form.appendChild(container);var name=(JAK.Browser.client=="ie"||JAK.Browser.client=="safari"||JAK.Browser.client=="opera"?"keydown":"keypress");this.ec.push(JAK.Events.addListener(input,"keyup",this,"_keyUp"));this.ec.push(JAK.Events.addListener(input,name,this,"_keyNavigate"));this.ec.push(JAK.Events.addListener(container,"mousedown",JAK.Events.stopEvent));this.ec.push(JAK.Events.addListener(document,"mousedown",this,"_hide"));this.ec.push(JAK.Events.addListener(document,"mousemove",this,"_unlock"));};JAK.Suggest.prototype._show=function(){this._hoverLock=true;this.dom.container.style.display="block";};JAK.Suggest.prototype._hide=function(){this.dom.container.style.display="none";};JAK.Suggest.prototype.used=function(){return this._used;};JAK.Suggest.prototype._clear=function(){JAK.DOM.clear(this.dom.content);for(var i=0;i<this.items.length;i++){this.items[i].$destructor();}for(var i=0;i<this.remotes.length;i++){this.remotes[i].$destructor();}this.items=[];this.remotes=[];this._activeItem=false;};JAK.Suggest.prototype._response=function(xmlDoc){this._clear();var result=xmlDoc.documentElement;var items=result.getElementsByTagName("item");for(var i=0;i<items.length;i++){var item=items[i];if(item.parentNode.parentNode.nodeName.toLowerCase()=="remote"){this._buildItem(JAK.Suggest.Remote,item,this.remotes);}else{this._buildItem(JAK.Suggest.Item,item,this.items);}}for(var i=0;i<this.items.length;i++){this.dom.content.appendChild(this.items[i].getContainer());}for(var i=0;i<this.remotes.length;i++){this.dom.content.appendChild(this.remotes[i].getContainer());}if(this.items.length+this.remotes.length){this._show();}else{this._hide();}};JAK.Suggest.prototype._buildUrl=function(query){var url=this.url;url+=this.options.dict;var arr=[];arr.push("phrase="+encodeURIComponent(query));arr.push("result=xml");if(this.options.prefix){arr.push("prefix=1");}if(this.options.highlight){arr.push("highlight=1");}if(this.options.count){arr.push("count="+this.options.count);}url+="?"+arr.join("&");return url;};JAK.Suggest.prototype._buildItem=function(constructor,node,arr){var item=new constructor(this,node);arr.push(item);};JAK.Suggest.prototype._activate=function(item,activate){this._activeItem=item;for(var i=0;i<this.items.length;i++){var it=this.items[i];if(it==item){it.hoverOn();}else{it.hoverOff();}}if(activate&&this.options.mode==JAK.Suggest.MODE_AUTOMATIC){this.dom.input.value=this._activeItem.getValue();}};JAK.Suggest.prototype._keyNavigate=function(e,elm){var code=e.keyCode;if(code==13){if(this._used==1&&this._activeItem){this._used=2;}this.action();return;}if(code==39&&this._activeItem&&this.options.mode==JAK.Suggest.MODE_MANUAL){this._used=2;this.dom.input.value=this._activeItem.getValue();this.request();}if(this.items.length&&code==38){this._used=1;var index=this.items.indexOf(this._activeItem);index=(index==-1||index==0?0:index-1);this._activate(this.items[index],true);}if(this.items.length&&code==40){this._used=1;var index=this.items.indexOf(this._activeItem);var cnt=this.items.length;if(index==-1){index=0;}else{if(index+1==cnt){index=cnt-1;}else{index++;}}this._activate(this.items[index],true);}if(code==27||code==9){this._hide();}};JAK.Suggest.prototype._keyUp=function(e,elm){var code=e.keyCode;if(code==8||code==46){this._activate(false);this._startRequest();}else{if(((code<33)||(code>39))&&(code!=13)&&(code!=27)&&(code!=40)&&(code!=44)&&(code!=45)&&(code!=17)&&(code!=18)){this._startRequest();}}};JAK.Suggest.prototype._startRequest=function(){if(this.timeout){clearTimeout(this.timeout);}this.timeout=setTimeout(this.request,100);};JAK.Suggest.prototype._unlock=function(){this._hoverLock=false;};JAK.Suggest.Remote=JAK.ClassMaker.makeClass({"NAME":"JAK.Suggest.Remote","VERSION":"1.0","CLASS":"class"});JAK.Suggest.Remote.prototype.$constructor=function(owner,node){this.owner=owner;this.dom={};this.ec=[];this.node=node;this.value=node.getAttribute("value");this._build();};JAK.Suggest.Remote.prototype.$destructor=function(){this.ec.forEach(JAK.Events.removeListener,JAK.Events);};JAK.Suggest.Remote.prototype.getContainer=function(){return this.dom.container;};JAK.Suggest.Remote.prototype.getValue=function(){return this.value;};JAK.Suggest.Remote.prototype._build=function(){var p=JAK.cel("p","remote");p.innerHTML=this.value;var span=this._buildRelevance();p.insertBefore(span,p.firstChild);this.dom.container=p;};JAK.Suggest.Remote.prototype._buildRelevance=function(){var span=JAK.cel("span","relevance");span.innerHTML="rychlý tip";return span;};JAK.Suggest.Item=JAK.ClassMaker.makeClass({"NAME":"JAK.Suggest.Item","VERSION":"1.0","CLASS":"class","EXTEND":JAK.Suggest.Remote});JAK.Suggest.Item.prototype._build=function(){var p=JAK.cel("p","item");p.innerHTML=this.value;var span=this._buildRelevance();p.insertBefore(span,p.firstChild);this.dom.container=p;this.ec.push(JAK.Events.addListener(this.dom.container,"click",this,"_action"));this.ec.push(JAK.Events.addListener(this.dom.container,"mouseover",this,"_over"));};JAK.Suggest.Item.prototype._buildRelevance=function(){var span=JAK.cel("span","relevance");span.innerHTML=this.node.getAttribute("relevance");return span;};JAK.Suggest.Item.prototype._action=function(e,elm){this.owner._used=2;this.owner.action();};JAK.Suggest.Item.prototype._over=function(){if(this.owner._hoverLock){return;}this.owner._activate(this,false);};JAK.Suggest.Item.prototype.hoverOn=function(){JAK.DOM.addClass(this.dom.container,"active");};JAK.Suggest.Item.prototype.hoverOff=function(){JAK.DOM.removeClass(this.dom.container,"active");};JAK.Tabs=JAK.ClassMaker.makeClass({"NAME":"Tabs","VERSION":"2.0","IMPLEMENT":JAK.ISignals});JAK.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=JAK.gel(container);this.callbackObject=callbackObject;this.callbackMethod=callbackMethod;this.tabs=[];this.ec=[];};JAK.Tabs.prototype.$destructor=function(){for(var i=0;i<this.ec.length;i++){JAK.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;}};JAK.Tabs.prototype.clear=function(){this.selectedIndex=-1;for(var i=0;i<this.tabs.length;i++){this.tabs[i].$destructor();}this.tabs=[];};JAK.Tabs.prototype.getActiveTab=function(){if(this.tabs[this.selectedIndex]){return this.tabs[this.selectedIndex];}else{return null;}};JAK.Tabs.prototype.addTab=function(click,content){if(arguments.length==1){this._addTab(click);}else{this._crateNewTab(click,content);}};JAK.Tabs.prototype._crateNewTab=function(click,content){var tab=new JAK.Tab(click,content,this,this.options.hover,this.options.hoverClass);this._addTab(tab);};JAK.Tabs.prototype._addTab=function(tab){this.tabs.push(tab);tab._deactivate();};JAK.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);}};JAK.Tabs.prototype.addManyTabs=function(clickList,contentList,defaultIndex){var clicks=JAK.gel(clickList);var contents=JAK.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);}};JAK.Tab=JAK.ClassMaker.makeClass({"NAME":"Tab","VERSION":"1.0","CLASS":"class"});JAK.Tab.prototype.$constructor=function(click,content,owner,hover,hoverClass){this.content=JAK.gel(content);this.owner=owner;this.click=JAK.gel(click);this.hoverClass=hoverClass;this.ec=[];this.ec.push(JAK.Events.addListener(this.click,"click",this,"_go",false,true));if(hover){this.ec.push(JAK.Events.addListener(this.click,"mouseover",this,"_hover"));this.ec.push(JAK.Events.addListener(this.click,"mouseout",this,"_hoverOut"));}if(this.owner.options.defaultClass){JAK.DOM.addClass(this.click,this.owner.options.defaultClass);}};JAK.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++){JAK.Events.removeListener(this.ec[i]);}for(var p in this){this[p]=null;}};JAK.Tab.prototype._go=function(e,elm){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);};JAK.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){JAK.DOM.addClass(this.click,this.owner.options.selectedClass);}};JAK.Tab.prototype._deactivate=function(){var c=this.content.style.display="none";if(this.owner.options.selectedClass){JAK.DOM.removeClass(this.click,this.owner.options.selectedClass);}};JAK.Tab.prototype._hover=function(e,elm){JAK.DOM.addClass(elm,this.hoverClass);};JAK.Tab.prototype._hoverOut=function(e,elm){JAK.DOM.removeClass(elm,this.hoverClass);};JAK.Window=JAK.ClassMaker.makeClass({"NAME":"Window","VERSION":"2.0"});JAK.Window.prototype.$constructor=function(optObj){this.options={"imagePath":"/img/shadow-","imageFormat":"png","sizes":[6,6,6,6]};for(var p in optObj){this.options[p]=optObj[p];}this.content=JAK.mel("div",{"className":"window-content"},{"position":"relative"});;this.container=false;this._buildDom();};JAK.Window.prototype._buildDom=function(){var imageNames=[["lt","t","rt"],["l","","r"],["lb","b","rb"]];this.container=JAK.mel("div",{"className":"window-container"},{"position":"relative","zIndex":10});var table=JAK.mel("table",null,{"borderCollapse":"collapse","position":"relative"});var tbody=JAK.mel("tbody");JAK.DOM.append([table,tbody],[this.container,table]);for(var i=0;i<3;i++){var tr=JAK.cel("tr");tbody.appendChild(tr);for(var j=0;j<3;j++){var td=JAK.cel("td");td.style.padding="0px";td.style.margin="0px";var div=(i==1&&j==1?this.content:JAK.mel("div",null,{"overflow":"hidden"}));td.appendChild(div);var im=imageNames[i][j];if(im){var path=this.options.imagePath+im+"."+this.options.imageFormat;if(JAK.Browser.client=="ie"&&JAK.Browser.version<7&&this.options.imageFormat.match(/png/i)){td.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+path+"',sizingMethod='scale')";}else{td.style.backgroundImage="url("+path+")";}}if(i==0){div.style.height=this.options.sizes[0]+"px";}if(i==2){div.style.height=this.options.sizes[2]+"px";}if(j==0){div.style.width=this.options.sizes[3]+"px";}if(j==2){div.style.width=this.options.sizes[1]+"px";}if(j==1&&i!=1){td.style.width="auto";}tr.appendChild(td);}}};JAK.Window.prototype.$destructor=function(){for(var p in this){this[p]=null;}};JAK.Window.prototype.show=function(){this.container.style.display="";};JAK.Window.prototype.hide=function(){this.container.style.display="none";};JAK.Calendar=JAK.ClassMaker.makeClass({"NAME":"JAK.Calendar","VERSION":"3.0","IMPLEMENT":JAK.ISignals});JAK.Calendar.prototype.$constructor=function(optObj){this.options={"defaultFormat":["j.n.Y"],"today":"Dnes","monthNames":Date.prototype._monthNames,"monthNamesShort":Date.prototype._monthNamesShort,"dayNames":Date.prototype._dayNamesShort,"rollerDelay":200,"pickTime":false,"lockWindow":false};for(var p in optObj){if(p=="defaultFormat"){if(!optObj[p] instanceof Array){optObj[p]=[optObj[p]];}}this.options[p]=optObj[p];}this._dom={};this._days=[];this._rollers=[];this.ec=[];this._visible=false;this.ec.push(JAK.Events.addListener(document,"keydown",this,"_handleKey"));this.ec.push(JAK.Events.addListener(document,"mousedown",this,"_handleDown"));this.ec.push(JAK.Events.addListener(window,"unload",this,"$destructor"));this.ec.push(JAK.Events.addListener(document,"mouseup",this,"_handleUp"));};JAK.Calendar.prototype.$destructor=function(){for(var i=0;i<this.ec.length;i++){JAK.Events.removeListener(this.ec[i]);}for(var p in this){this[p]=null;}};JAK.Calendar.manage=function(calendar,clickElm,targetElm){var callback=function(){clickElm.focus();for(var i=0;i<targetElm.length;i++){JAK.gel(targetElm[i]).value=arguments[i]?arguments[i]:"";}};var click=function(e,elm){var pos=JAK.DOM.getBoxPosition(clickElm);var x=pos.left;var y=pos.top+clickElm.offsetHeight+1;clickElm.blur();calendar.pick(x,y,JAK.gel(targetElm[0]).value,callback);};calendar.ec.push(JAK.Events.addListener(clickElm,"click",window,click));};JAK.Calendar.setup=function(imageUrl,label,optObj){var c=new JAK.Calendar(optObj);for(var i=3;i<arguments.length;i++){var click=false;var input=arguments[i];if(!(input instanceof Array)){input=[JAK.gel(input)];}click=JAK.Calendar._createButton(imageUrl,label);var lastInput=JAK.gel(input[input.length-1]);lastInput.parentNode.insertBefore(click,lastInput.nextSibling);JAK.Calendar.manage(c,click,input);}return c;};JAK.Calendar._createButton=function(imageUrl,label){if(imageUrl){click=JAK.mel("img",{"className":"cal-launcher"},{"cursor":"pointer"});click.src=imageUrl;click.alt=label;click.title=label;}else{click=JAK.cel("input","cal-launcher");click.type="button";click.value=label;}return click;};JAK.Calendar.prototype.useDate=function(date){if(this.options.pickTime){date.setHours(this._dom.hour.value);date.setMinutes(this._dom.minute.value);}var results=[];for(var i=0;i<this.options.defaultFormat.length;i++){var str=date.format(this.options.defaultFormat[i]);results.push(str);}this.callback.apply(null,results);};JAK.Calendar.prototype.equalDates=function(d1,d2){return d1.getFullYear()==d2.getFullYear()&&d1.getMonth()==d2.getMonth()&&d1.getDate()==d2.getDate();};JAK.Calendar.prototype._handleDown=function(e,elm){if(!this._visible){return;}this._hide();};JAK.Calendar.prototype._cancelDown=function(e,elm){JAK.Events.stopEvent(e);};JAK.Calendar.prototype._handleUp=function(e,elm){if(this.eventMove){JAK.Events.removeListener(this.eventMove);this.eventMove=false;}if(JAK.Calendar.Button._activeElement){JAK.DOM.removeClass(JAK.Calendar.Button._activeElement,"mousedown");JAK.Calendar.Button._activeElement=false;}this._timer=false;for(var i=0;i<this._rollers.length;i++){this._rollers[i]._hide();}};JAK.Calendar.prototype._handleMove=function(e,elm){if(!this._visible){return;}this._removeRanges();JAK.Events.cancelDef(e);var dx=e.clientX-this._clientX;var dy=e.clientY-this._clientY;var pos=JAK.DOM.getBoxPosition(this._dom.container);var newx=pos.left+dx;var newy=pos.top+dy;if(this.options.lockWindow&&(newx<0||newy<0)){return;}this._dom.container.style.left=newx+"px";this._dom.container.style.top=newy+"px";var pos=JAK.DOM.getBoxPosition(this._dom.container);this._clientX=e.clientX;this._clientY=e.clientY;};JAK.Calendar.prototype._removeRanges=function(){var selObj=false;if(document.getSelection&&!JAK.Browser.client!="gecko"){selObj=document.getSelection();}if(window.getSelection){selObj=window.getSelection();}if(document.selection){selObj=document.selection;}if(selObj){if(selObj.empty){selObj.empty();}if(selObj.removeAllRanges){selObj.removeAllRanges();}}};JAK.Calendar.prototype._dragDown=function(e,elm){JAK.Events.cancelDef(e);this.eventMove=JAK.Events.addListener(document,"mousemove",this,"_handleMove");this._clientX=e.clientX;this._clientY=e.clientY;};JAK.Calendar.prototype.pick=function(x,y,date,callback){this._draw();this._dom.container.style.left=x+"px";this._dom.container.style.top=y+"px";this.selectedDate=new Date();if(date){this.selectedDate=JAK.Calendar.parseDate(date instanceof Array?date[0]:date);}this.currentDate=new Date(this.selectedDate);this.currentDate.setDate(1);this.callback=callback;this._switchTo();};JAK.Calendar.prototype._draw=function(){if(!("container" in this._dom)){this._buildDom();document.body.appendChild(this._dom.container);}this._show();};JAK.Calendar.prototype._help=function(){alert("Výběr data:\n - Použijte «, » tlačítka pro vybrání roku\n - Použijte ‹, › tlačítka pro vybrání měsíce\n - Menu pro rychlejší výběr se zobrazí po delším stisku výše uvedených tlačítek\n - Stisknutím mezerníku zvolíte dnešní datum");};JAK.Calendar.prototype._buildDom=function(){this._dom.container=JAK.mel("div",null,{"position":"absolute"});this._dom.content=JAK.cel("div","cal-content");this._dom.table=JAK.cel("table");this._dom.thead=JAK.cel("thead");this._dom.tbody=JAK.cel("tbody");this._dom.tfoot=JAK.cel("tfoot");this._dom.table.cellSpacing=0;this._dom.table.cellPadding=0;if(JAK.Browser.client=="ie"){this._dom.iframe=JAK.mel("iframe",null,{"position":"absolute","left":"0px","top":"0px","zIndex":1});this._dom.content.style.zIndex=2;JAK.DOM.append([this._dom.container,this._dom.iframe,this._dom.content],[this._dom.content,this._dom.table]);}else{JAK.DOM.append([this._dom.container,this._dom.content],[this._dom.content,this._dom.table]);}JAK.DOM.append([this._dom.table,this._dom.thead,this._dom.tbody,this._dom.tfoot]);var r1=JAK.cel("tr");var r2=JAK.cel("tr");var r3=JAK.cel("tr");JAK.DOM.append([this._dom.thead,r1,r2,r3]);var help=new JAK.Calendar.Nav(this,"?","Nápověda",this._help);this._dom.move=JAK.cel("td","cal-title");var close=new JAK.Calendar.Nav(this,"&times;","Zavřít kalendář",this._hide);this._dom.move.colSpan=6;JAK.DOM.append([r1,help.td,this._dom.move,close.td]);var x=" (podrž pro menu)";var buttonLabels=["&laquo;","&lsaquo;",this.options.today,"&rsaquo;","&raquo;"];var buttonStatuses=["Předchozí rok"+x,"Předchozí měsíc"+x,this.options.today,"Následující měsíc"+x,"Následující rok"+x];var buttonMethods=[this._yearB,this._monthB,this._monthC,this._monthF,this._yearF];this._dom.buttons=[];for(var i=0;i<buttonLabels.length;i++){var button=new JAK.Calendar.Nav(this,buttonLabels[i],buttonStatuses[i],buttonMethods[i]);JAK.DOM.addClass(button.td,"cal-button cal-nav");this._dom.buttons.push(button.td);r2.appendChild(button.td);}this._dom.buttons[2].colSpan=4;var wk=JAK.cel("td","cal-dayname cal-wn");wk.innerHTML="wk";r3.appendChild(wk);for(var i=0;i<this.options.dayNames.length;i++){var day=JAK.cel("td","cal-dayname");day.innerHTML=this.options.dayNames[i];r3.appendChild(day);if(i>4){JAK.DOM.addClass(day,"cal-weekend");}}this._dom.rows=[];for(var i=0;i<42;i++){var day=new JAK.Calendar.Day(this);this._days.push(day);if(!(i%7)){var tr=JAK.cel("tr");this._dom.rows.push(tr);this._dom.tbody.appendChild(tr);this.ec.push(JAK.Events.addListener(tr,"mouseover",this,"_overRef"));this.ec.push(JAK.Events.addListener(tr,"mouseout",this,"_outRef"));var wk=JAK.cel("td","cal-wn cal-day");tr.appendChild(wk);}JAK.DOM.addClass(day.td,"cal-day");tr.appendChild(day.td);if(i%7>4){JAK.DOM.addClass(day.td,"cal-weekend");}}var tr=JAK.cel("tr");this._dom.status=JAK.cel("td","cal-status");this._dom.status.colSpan=this.options.pickTime?6:8;JAK.DOM.append([this._dom.tfoot,tr],[tr,this._dom.status]);this._dom.status.innerHTML="Vyberte datum";if(this.options.pickTime){var td=JAK.cel("td","cal-time");td.colSpan=2;var inputHour=JAK.cel("input");inputHour.type="text";this._dom.hour=inputHour;var sep=JAK.ctext(":");var inputMinute=JAK.cel("input");inputMinute.type="text";this._dom.minute=inputMinute;JAK.DOM.append([td,inputHour],[td,sep],[td,inputMinute],[tr,td]);this.ec.push(JAK.Events.addListener(this._dom.hour,"keydown",this,"_keyDown"));this.ec.push(JAK.Events.addListener(this._dom.minute,"keydown",this,"_keyDown"));}for(var i=0;i<this._dom.buttons.length;i++){if(i==2){continue;}var type=(i==1||i==3?0:(i<2?-1:1));var roller=new JAK.Calendar.Roller(this,this._dom.buttons[i],type,i>2);this._rollers.push(roller);}this.ec.push(JAK.Events.addListener(this._dom.move,"mousedown",this,"_dragDown"));this.ec.push(JAK.Events.addListener(this._dom.status,"mousedown",this,"_dragDown"));this.ec.push(JAK.Events.addListener(this._dom.container,"mousedown",this,"_cancelDown"));};JAK.Calendar.prototype._keyDown=function(e,elm){if(e.keyCode==13){if(this.callback){this.useDate(this.selectedDate);}this.makeEvent("datepick");this._hide();}};JAK.Calendar.prototype._handleKey=function(e,elm){if(!this._visible){return;}if(e.keyCode==32){this._monthC();}if(e.keyCode==27){this._hide();}};JAK.Calendar.prototype._overRef=function(e,elm){JAK.DOM.addClass(elm,"mouseover");};JAK.Calendar.prototype._outRef=function(e,elm){JAK.DOM.removeClass(elm,"mouseover");};JAK.Calendar.prototype._hide=function(){this._dom.container.style.display="none";this._visible=false;this.makeEvent("calendarHide");};JAK.Calendar.prototype._show=function(){this.makeEvent("calendarShow");this._dom.container.style.display="block";this._visible=true;};JAK.Calendar.prototype._getWeekNumber=function(date){var d=new Date(date.getFullYear(),date.getMonth(),date.getDate(),0,0,0);var DoW=d.getDay();d.setDate(d.getDate()-(DoW+6)%7+3);var ms=d.valueOf();d.setMonth(0);d.setDate(4);return Math.round((ms-d.valueOf())/(7*86400000))+1;};JAK.Calendar.prototype._switchTo=function(){for(var i=0;i<this._dom.rows.length;i++){this._dom.rows[i].style.display="";}var tmpDate=new Date(this.currentDate);tmpDate.setDate(1);var oneDay=1000*60*60*24;var weekIndex=(tmpDate.getDay()+6)%7;if(weekIndex){tmpDate.setTime(tmpDate.getTime()-weekIndex*oneDay);}var index=0;var today=new Date();var lastVisible=-1;for(var row=0;row<6;row++){var wn=this._dom.rows[row].firstChild;wn.innerHTML=this._getWeekNumber(tmpDate);for(var col=0;col<7;col++){var day=this._days[index];day.date=new Date(tmpDate);day.redraw(today);tmpDate.setTime(tmpDate.getTime()+oneDay);if(tmpDate.getMonth()==this.currentDate.getMonth()&&lastVisible==-1){lastVisible=0;}if(tmpDate.getMonth()!=this.currentDate.getMonth()&&lastVisible==0){lastVisible=row+1;}index++;}}for(var i=lastVisible;i<6;i++){this._dom.rows[i].style.display="none";}if(this.options.pickTime){this._dom.hour.value=this.selectedDate.getHours().toString().lpad();this._dom.minute.value=this.selectedDate.getMinutes().toString().lpad();}this._dom.move.innerHTML=this.options.monthNames[this.currentDate.getMonth()]+" "+this.currentDate.getFullYear();if(JAK.Browser.client=="ie"){this._dom.iframe.style.width=this._dom.content.offsetWidth+"px";this._dom.iframe.style.height=this._dom.content.offsetHeight+"px";}};JAK.Calendar.prototype._yearF=function(e,elm){this.currentDate.setFullYear(this.currentDate.getFullYear()+1);this._switchTo();};JAK.Calendar.prototype._yearB=function(e,elm){this.currentDate.setFullYear(this.currentDate.getFullYear()-1);this._switchTo();};JAK.Calendar.prototype._monthB=function(e,elm){this.currentDate.setMonth((this.currentDate.getMonth()+11)%12);if(this.currentDate.getMonth()==11){this.currentDate.setFullYear(this.currentDate.getFullYear()-1);}this._switchTo();};JAK.Calendar.prototype._monthF=function(e,elm){this.currentDate.setMonth((this.currentDate.getMonth()+1)%12);if(this.currentDate.getMonth()==0){this.currentDate.setFullYear(this.currentDate.getFullYear()+1);}this._switchTo();};JAK.Calendar.prototype._monthC=function(e){this.currentDate=new Date();this.currentDate.setDate(1);this._switchTo();};JAK.Calendar.parseDate=function(date){var selectedDate=new Date();var separators="[-/\\\\:.]";var chars="[0-9]";var patterns=["^ *("+chars+"{1,2}) *"+separators+" *("+chars+"{1,2}) *"+separators+" *("+chars+"{1,2})","^ *("+chars+"{4}) *"+separators+" *("+chars+"{1,2}) *"+separators+" *("+chars+"{1,2})","^ *("+chars+"{1,2}) *"+separators+" *("+chars+"{1,2}) *"+separators+" *("+chars+"{4})"];var datePattern="( +"+chars+"{1,2})?("+separators+chars+"{1,2})?("+separators+chars+"{1,2})? *$";var r=false;var index=0;while(!result&&index<patterns.length){var re=new RegExp(patterns[index]+datePattern);var result=re.exec(date);index++;}if(result){selectedDate=new Date(0);var a=Math.round(parseFloat(result[1]));var b=Math.round(parseFloat(result[2]));var c=Math.round(parseFloat(result[3]));var yearIndex=-1;if(result[1].length==4){yearIndex=0;}else{if(result[3].length==4){yearIndex=2;}else{if(a>31){a=a+(a>selectedDate.getFullYear()-2000?1900:2000);yearIndex=0;}else{c=c+(c>selectedDate.getFullYear()-2000?1900:2000);yearIndex=2;}}}if(yearIndex==0){selectedDate.setFullYear(a);selectedDate.setDate(1);var max=Math.max(b,c);var min=Math.min(b,c);if(max>13){selectedDate.setMonth(min-1);selectedDate.setDate(max);}else{selectedDate.setMonth(b-1);selectedDate.setDate(c);}}else{if(yearIndex==2){selectedDate.setFullYear(c);var max=Math.max(a,b);var min=Math.min(a,b);if(max>13){selectedDate.setMonth(min-1);selectedDate.setDate(max);}else{selectedDate.setMonth(b-1);selectedDate.setDate(a);}}}if(result[4]){var h=parseInt(result[4].match(/[0-9]+/)[0],10);var m=(result[5]?parseInt(result[5].match(/[0-9]+/)[0],10):0);var s=(result[6]?parseInt(result[6].match(/[0-9]+/)[0],10):0);selectedDate.setHours(h);selectedDate.setMinutes(m);selectedDate.setSeconds(s);}}return selectedDate;};JAK.Calendar.Button=JAK.ClassMaker.makeInterface({"NAME":"JAK.Calendar.Button","VERSION":"2.0"});JAK.Calendar.Button._activeElement=false;JAK.Calendar.Button.prototype._over=function(e,elm){if(!JAK.Calendar.Button._activeElement){JAK.DOM.addClass(elm,"mouseover");}};JAK.Calendar.Button.prototype._out=function(e,elm){JAK.DOM.removeClass(elm,"mouseover");};JAK.Calendar.Button.prototype._down=function(e,elm){JAK.Events.cancelDef(e);JAK.Calendar.Button._activeElement=elm;JAK.DOM.addClass(elm,"mousedown");};JAK.Calendar.Button.prototype._up=function(e,elm){};JAK.Calendar.Button.prototype.addOverEvents=function(elm){this.calendar.ec.push(JAK.Events.addListener(elm,"mouseover",this,"_over"));this.calendar.ec.push(JAK.Events.addListener(elm,"mouseout",this,"_out"));};JAK.Calendar.Button.prototype.addDownEvents=function(elm){this.calendar.ec.push(JAK.Events.addListener(elm,"mousedown",this,"_down"));};JAK.Calendar.Nav=JAK.ClassMaker.makeClass({"NAME":"JAK.Calendar.Nav","VERSION":"2.0","IMPLEMENT":JAK.Calendar.Button});JAK.Calendar.Nav.prototype.$constructor=function(calendar,label,status,method){this.td=JAK.cel("td","cal-button");this.td.innerHTML=label;this.status=status;this.calendar=calendar;this.method=method;this.calendar.ec.push(JAK.Events.addListener(this.td,"mouseover",this,"_changeStatus"));this.calendar.ec.push(JAK.Events.addListener(this.td,"mouseout",this,"_changeStatus"));this.calendar.ec.push(JAK.Events.addListener(this.td,"mouseup",this,"_up"));this.addOverEvents(this.td);this.addDownEvents(this.td);};JAK.Calendar.Nav.prototype._changeStatus=function(){if(this.oldStatus){this.calendar._dom.status.innerHTML=this.oldStatus;this.oldStatus=false;}else{this.oldStatus=this.calendar._dom.status.innerHTML;this.calendar._dom.status.innerHTML=this.status;}};JAK.Calendar.Nav.prototype._up=function(e,elm){if(JAK.Calendar.Button._activeElement){JAK.DOM.removeClass(JAK.Calendar.Button._activeElement,"mousedown");if(JAK.Calendar.Button._activeElement==this.td){this.method.call(this.calendar,e,elm);}JAK.Calendar.Button._activeElement=false;}};JAK.Calendar.Day=JAK.ClassMaker.makeClass({"NAME":"JAK.Calendar.Day","VERSION":"2.0","IMPLEMENT":JAK.Calendar.Button});JAK.Calendar.Day.prototype.$constructor=function(calendar){this.td=JAK.cel("td","cal-day");this.calendar=calendar;this.date=false;this.calendar.ec.push(JAK.Events.addListener(this.td,"mouseup",this,"_up"));this.calendar.ec.push(JAK.Events.addListener(this.td,"mouseover",this,"_changeStatus"));this.calendar.ec.push(JAK.Events.addListener(this.td,"mouseout",this,"_changeStatus"));this.addOverEvents(this.td);this.addDownEvents(this.td);};JAK.Calendar.Day.prototype.redraw=function(today){this.td.innerHTML=this.date.getDate();JAK.DOM.removeClass(this.td,"cal-today");JAK.DOM.removeClass(this.td,"cal-selected");JAK.DOM.removeClass(this.td,"cal-obsolete");if(this.calendar.equalDates(this.date,today)){JAK.DOM.addClass(this.td,"cal-today");}if(this.calendar.equalDates(this.date,this.calendar.selectedDate)){JAK.DOM.addClass(this.td,"cal-selected");}if(this.date.getMonth()!=this.calendar.currentDate.getMonth()){JAK.DOM.addClass(this.td,"cal-obsolete");}};JAK.Calendar.Day.prototype._up=function(){if(JAK.Calendar.Button._activeElement){JAK.DOM.removeClass(JAK.Calendar.Button._activeElement,"mousedown");if(JAK.Calendar.Button._activeElement==this.td){if(this.calendar.callback){this.calendar.useDate(this.date);}this.calendar.makeEvent("datepick");this.calendar._hide();}JAK.Calendar.Button._activeElement=false;}};JAK.Calendar.Day.prototype._changeStatus=function(){if(this.oldStatus){this.calendar._dom.status.innerHTML=this.oldStatus;this.oldStatus=false;}else{this.oldStatus=this.calendar._dom.status.innerHTML;var str=this.calendar.options.dayNames[(this.date.getDay()+6)%7]+", ";str+=this.date.getDate()+". ";str+=this.calendar.options.monthNames[this.date.getMonth()]+" ";str+=this.date.getFullYear();this.calendar._dom.status.innerHTML=str;}};JAK.Calendar.Roller=JAK.ClassMaker.makeClass({"NAME":"JAK.Calendar.Roller","VERSION":"2.0"});JAK.Calendar.Roller.prototype.$constructor=function(calendar,parent,type,rightAlign){this.calendar=calendar;this.parent=parent;this.type=type;this.rightAlign=rightAlign;this.buttons=[];this.div=JAK.cel("div","cal-roller");this._hide();this.calendar._dom.content.appendChild(this.div);for(var i=0;i<12;i++){var btn=new JAK.Calendar.RollerButton(this,this.calendar);this.buttons.push(btn);this.div.appendChild(btn.div);}this._show();this._show=this._show.bind(this);this.calendar.ec.push(JAK.Events.addListener(this.parent,"mousedown",this,"_handleDown"));};JAK.Calendar.Roller.prototype._handleDown=function(){this.calendar._timer=true;setTimeout(this._show,this.calendar.options.rollerDelay);};JAK.Calendar.Roller.prototype._show=function(){if(!this.calendar._timer){return;}var pos1=JAK.DOM.getBoxPosition(this.parent);var pos2=JAK.DOM.getBoxPosition(this.calendar._dom.content);this.div.style.display="block";var w=this.div.offsetWidth;for(var i=0;i<12;i++){var btn=this.buttons[i].div;if(JAK.Browser.client=="ie"){btn.style.width=w+"px";}switch(this.type){case -1:case 1:var y=this.calendar.currentDate.getFullYear();btn.innerHTML=y+this.type*(i*2+1);break;case 0:this.buttons[i].value=i;JAK.DOM.removeClass(btn,"selected");btn.innerHTML=this.calendar.options.monthNamesShort[i];if(i==this.calendar.currentDate.getMonth()){JAK.DOM.addClass(btn,"selected");}break;}}var l=pos1.left-pos2.left;if(this.rightAlign){l+=this.parent.offsetWidth-this.div.offsetWidth;};this.div.style.left=l+"px";this.div.style.top=(pos1.top-pos2.top+this.parent.offsetHeight)+"px";};JAK.Calendar.Roller.prototype._hide=function(){this.div.style.display="none";};JAK.Calendar.RollerButton=JAK.ClassMaker.makeClass({"NAME":"JAK.Calendar.RollerButton","VERSION":"2.0","IMPLEMENT":JAK.Calendar.Button});JAK.Calendar.RollerButton.prototype.$constructor=function(roller,calendar){this.roller=roller;this.calendar=calendar;this.div=JAK.cel("div","label");this.addOverEvents(this.div);this.calendar.ec.push(JAK.Events.addListener(this.div,"mouseup",this,"_up",false,true));};JAK.Calendar.RollerButton.prototype._over=function(e,elm){this.calendar._removeRanges();if(!JAK.DOM.hasClass(elm,"selected")){JAK.DOM.addClass(elm,"mouseover");}};JAK.Calendar.RollerButton.prototype._out=function(e,elm){JAK.DOM.removeClass(elm,"mouseover");};JAK.Calendar.RollerButton.prototype._up=function(e,elm){var cal=this.calendar;switch(this.roller.type){case -1:case 1:cal.currentDate.setFullYear(this.div.innerHTML);cal._switchTo();break;case 0:cal.currentDate.setMonth(this.value);cal._switchTo();break;}};}
