
function isNull(a){
  return (typeof(a)=="object" && !a);
}



function isUndefined(a){
  return typeof(a)=="undefined";
}



function isFunction(a){
  return typeof(a)=="function";
}



function cloneObject(a){
  for(pr in a)if(typeof(a[pr])=="object")this[pr]=new cloneObject(a[pr]);else this[pr]=a[pr];
}


function listProperties(obj){
  var lst="";
  for(var prop in obj)if(typeof obj[prop]!="function")lst+=prop+": "+obj[prop]+"\n";
  return lst;
}


Object.prototype.listProperties=function(){
  return listProperties(this);
}


function listMethods(obj,full){
  var lst="";
  for(var prop in obj)if(typeof obj[prop]=="function")lst+=prop+": "+obj[prop]+"\n";
  if(full)return lst;
  var lst2="";
  var fceRE=browser.isIE?/(.*): function(\([^\{]+)\{/g:/(.*):\s+\ *function\s*(.*)\{/g;
  while(result=fceRE.exec(lst)){
    lst2+=result[1]+result[2]+"\n";
  }
  return lst2;
}


Object.prototype.listMethods=function(full){
  return listMethods(this,full);
}




function trim(inpstr){
  return inpstr.replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1");
}



String.prototype.trim=function(){
  return trim(this);
}


function isMail(inpstr){
  return /^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$/.test(inpstr);
}



String.prototype.isMail=function(){
  return isMail(this);
}



function isISOdate(inpstr){
  return /^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/.test(inpstr);
}



function isCzechDate(inpstr){
  return /^([0-9]{1,2}\.){2}[0-9]{4}$/.test(inpstr);
}



function isPosInt(inpstr){
return /^[0-9]+$/.test(inpstr);
}



function is9numbers(inpstr){
return /^[0-9]{9}$/.test(inpstr.replace(/\ /g,""));
}



function czech2ISOdate(inpstr){
  return inpstr.replace(/^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})$/,"$3-$2-$1");
}



function ISO2czechDate(inpstr){
return inpstr.replace(/^([0-9]{4})\-([0-9]{2})\-([0-9]{2})$/,"$3.$2.$1");
}



function getElementsByClassName(parEl,clsName,tagName){
  if(typeof(parEl)=="string")parEl=getEl(parEl);
  if(isUndefined(tagName))tagName="*";
  var outp=new Array();
  var els=parEl.getElementsByTagName(tagName);
  for(var i=0;i<els.length;i++){
    if(new RegExp("\ *"+clsName+"\ *","gi").test(els[i].className))outp[outp.length]=els[i];
  }
  return outp;
}






var lang=document.getElementsByTagName("html")[0].lang?document.getElementsByTagName("html")[0].lang:"cs";




var browser=new Object();

browser.isIE=(navigator.appName=="Microsoft Internet Explorer" && navigator.userAgent.indexOf("Opera")<0)?true:false;
browser.isOpera=navigator.userAgent.indexOf("Opera")>0?true:false;
browser.isMozilla=navigator.product=="Gecko"?true:false;

browser.getIEversion=function(){
  if(!browser.isIE)return 0; else {
    var ver=navigator.appVersion;
    ver=ver.substring(ver.indexOf("MSIE")+4);
    return ver.substring(0,ver.indexOf(";"));
  }
}


browser.toString=function(){
  return listProperties(navigator);
}







function getEl(elid){
  return document.getElementById(elid);
}



function getViewportHeight(){
  if(window.innerHeight)return parseInt(window.innerHeight);
  else if(document.documentElement && document.documentElement.clientHeight)return parseInt(document.documentElement.clientHeight);
  else if(document.body && document.body.clientHeight)return parseInt(document.body.clientHeight);
}



function getViewportWidth(){
  if(window.innerWidth)return parseInt(window.innerWidth);
  else if(document.documentElement && document.documentElement.clientWidth)return parseInt(document.documentElement.clientWidth);
  else if(document.body && document.body.clientWidth)return parseInt(document.body.clientWidth);
}



function getElementHeight(el){
  if(typeof(el)=="string")el=getEl(el);
  if(browser.isIE)return parseInt(el.offsetHeight);
  else return parseInt(document.defaultView.getComputedStyle(el,"").getPropertyValue("height"));
}



function getElementWidth(el){
  if(typeof(el)=="string")el=getEl(el);
  return parseInt(el.offsetWidth);
  //else return parseInt(document.defaultView.getComputedStyle(el,"").getPropertyValue("width"));
}



function findPosX(el){
 if(typeof(el)=="string")el=getEl(el);
  var curleft=0;
  if(el.offsetParent){
    while(el.offsetParent){
      curleft+=el.offsetLeft;
      el=el.offsetParent;
    }
  }else if(el.x)curleft+=el.x;
  return parseInt(curleft);
}



function findPosY(el){
 if(typeof(el)=="string")el=getEl(el);
  var curtop=0;
  if(el.offsetParent){
    while(el.offsetParent){
      curtop+=el.offsetTop
      el=el.offsetParent;
    }
  }else if(el.y)curtop+=el.y;
  return parseInt(curtop);
}



function clipEl(el,l,t,r,b){
  if(typeof(el)=="string")el=getEl(el);
  el.style.clip="rect("+t+"px,"+(getW(elid)-r)+"px,"+(getH(elid)-b)+"px,"+l+"px)";
}



function setDN(el){
  if(typeof(el)=="string")el=getEl(el);
  el.style.display="none";
}



function setDB(el){
  if(typeof(el)=="string")el=getEl(el);
  el.style.display="block";
}



function setDI(el){
  if(typeof(el)=="string")el=getEl(el);
  el.style.display="inline";
}



function setVH(el){
  if(typeof(el)=="string")el=getEl(el);
  el.style.visibility="hidden";
}



function setVV(el){
  if(typeof(el)=="string")el=getEl(el);
  el.style.visibility="visible";
}



function setTrDB(el){
  if(typeof(el)=="string")el=getEl(el);
  el.style.display=browser.isIE?"block":"table-row";
}



function swapDisplay(el){
  if(typeof(el)=="string")el=getEl(el);
  el.style.display=el.style.display=="none"?"block":"none";
}



function killTeckos(){
  window.focus();
}



function picWin(url,wi,he,title,winParams,closeTitle){

  wwi=wi;
  whe=he;
  if(wi>760)
  {
	  wwi=800;
	  wwi+=16;
	  winParams = "scrollbars=yes"
  }
  if(he>650)
  {
	  whe=650;
	  wwi+=16;
	  winParams = "scrollbars=yes"
  }

  var wL = (screen.width-wwi) / 2;
  var wT = (screen.height-whe) / 2;

  var win=window.open("","","width="+wwi+",height="+whe+",left="+wL+",top="+wT+(isUndefined(winParams)?"":(","+winParams)));
  if(typeof(win)!="object")return true;

  var cls=""
  var titl="";
  if(!isUndefined(closeTitle)){
    cls=closeTitle;
  }else{
    cls="Kliknutím zavřete okno";
  }
  if(!isUndefined(title))titl=title;

  var html='<html><head><title>'+titl+'</title><meta http-equiv="content-type" content="text/html; charset=iso-8859-2"></head><body style="margin:0"><img src="'+url+'" style="cursor:pointer;cursor:hand;display:block;" width="'+wi+'" height="'+he+'" onclick="window.close()" alt="" title="'+cls+'"></body></html>';

  win.document.open();
  win.document.write(html);
  win.document.close();
  win.focus();

  return false;
}



function FormValidator(el,mode,errClass){
  var mailRE=/^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$/;
  var iso_dateRE=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;
  var czech_dateRE=/^([0-9]{1,2}\ *\.){2}\ *[0-9]{4}$/;
  var phoneRE=/^(\ *[0-9]\ *){9}$/;
  var intRE=/^[0-9]+$/;
  var zipRE=/^[1-7][0-9]{2}\s*[0-9]{2}$/;
  var icRE=/^[0-9]{1,8}$/;
  var spzRE=/^[0-9a-z]{5,7}$/i;
  //var spzRE=/^[A-Z0-9]{3}\s*[0-9]{2}\-[0-9]{2}$/i
  //var spz2RE=/^[A|S|U|L|K|H|E|P|C|J|B|M|T|Z]{1}[A-Z0-9]{4,7}$/i

  this.mode=isUndefined(mode)?1:mode;
  if(this.mode==1)this.errClass=isUndefined(errClass)?"error":errClass;

  if(typeof(el)=="string")el=getEl(el);
  this.inps=new Array();

  if(isFunction(el.onsubmit))el.originalOnsubmit=el.onsubmit;

  this.labels=new Array();
    var labelEls=el.getElementsByTagName("label");
    for(var i=0;i<labelEls.length;i++){
      if(!isUndefined(labelEls[i].htmlFor) && labelEls[i].htmlFor!="")this.labels[labelEls[i].htmlFor]=labelEls[i].firstChild.data;
    }

  el.checkform=this;



  el.onsubmit=function(){

    if(!isUndefined(this.originalOnsubmit))this.originalOnsubmit();

    var emptys=new Array();
    var invalids=new Array();
	var usermessages=new Array();

    var imess="Následující poloľky mají chybný formát:";
    var emess="Následující poloľky nebyly vyplněny:";

    if(lang=="sk"){
      var imess="Následujúce poloľky majú chybný formát:";
      var emess="Následujúce poloľky neboly vyplneny:";
    }

    if(lang=="en"){
      var imess="The following items have invalid format:";
      var emess="The following items are required:";
    }



    var inps=this.checkform.inps;

    var modeEnabled=function(mode,modearray){
      for(var i=0;i<modearray.length;i++){
        if(modearray[i]==mode)return true;
      }
      return false;
    }


    var alrt="";


    for(var i=0;i<inps.length;i++){

      if(isUndefined(inps[i][4]) || eval(inps[i][4])){

        if(typeof(inps[i][0])=="string")inps[i][0]=getEl(inps[i][0]);
        var el=inps[i][0];
        var mode=inps[i][1].toLowerCase().replace(/\ /gi,"");

        var modesdef=["require","require2","validate","user","spz"];

        var modes=mode.split("&");

        for(var j=0;j<modesdef.length;j++)eval("var mode_"+modesdef[j]+"="+(modeEnabled(modesdef[j],modes)?"true":"false"));

        var type=inps[i][2];
        if(typeof type=="string" && type.trim()!="")var typeRE=eval(type+"RE");else var typeRE=type;

        var label="";
        if(!isUndefined(inps[i][3]) && !isNull(inps[i][3]))label=inps[i][3]; else if(!isUndefined(this.checkform.labels[el.id]))label=this.checkform.labels[el.id];




        if(mode_require){
          if(el.value.trim()==""){
            emptys[emptys.length]=label;
            if(el.type.toLowerCase()=="text"||el.type.toLowerCase()=="password"||el.tagName.toLowerCase()=="textarea")el.className+=" "+el.form.checkform.errClass;
            if(isFunction(el.onchange))el.originalOnchange=el.onchange;
              var nF=new Function('if(isFunction(this.originalOnchange) && isUndefined(this.originalOnchange.chfempty))this.originalOnchange();if(this.value.trim()!="")this.className=this.className.replace(/\ *'+el.form.checkform.errClass+'\ */gi,"");else if(this.className.indexOf("error")==-1)this.className+="'+el.form.checkform.errClass+'";');
              nF.chfempty=true;
              el.onchange=nF;

          }
        }

		if(mode_require2){
          if(el.value.trim()==""||el.value.trim()=="+420"){
            emptys[emptys.length]=label;
            if(el.type.toLowerCase()=="text"||el.type.toLowerCase()=="password"||el.tagName.toLowerCase()=="textarea")el.className+=" "+el.form.checkform.errClass;
            if(isFunction(el.onchange))el.originalOnchange=el.onchange;
              var nF=new Function('if(isFunction(this.originalOnchange) && isUndefined(this.originalOnchange.chfempty))this.originalOnchange();if(this.value.trim()!="")this.className=this.className.replace(/\ *'+el.form.checkform.errClass+'\ */gi,"");else if(this.className.indexOf("error")==-1)this.className+="'+el.form.checkform.errClass+'";');
              nF.chfempty=true;
              el.onchange=nF;

          }
        }


		if(mode_user){
			if(eval(inps[i][5])) {
				usermessages.push(inps[i][6]);
				if(el.type.toLowerCase()=="text"||el.type.toLowerCase()=="password"||el.tagName.toLowerCase()=="textarea")el.className+=" "+el.form.checkform.errClass;
				if(isFunction(el.onchange))el.originalOnchange=el.onchange;
				var nF=new Function('if(isFunction(this.originalOnchange) && isUndefined(this.originalOnchange.chfuser))this.originalOnchange();if('+inps[i][5]+'){if(this.className.indexOf("error")==-1)this.className=this.className+" '+el.form.checkform.errClass+'";}else this.className=this.className.replace(/\ *'+el.form.checkform.errClass+'\ */gi,"");');
				nF.chfuser=true;
				el.onchange=nF;
			}
        }


        if(mode_validate){
          if(el.value.trim()!="" && !typeRE.test(el.value)){
            invalids[invalids.length]=label;
             if(this.checkform.mode==0){
              el.focus();
              return false;
            }

            if(el.type.toLowerCase()=="text"||el.type.toLowerCase()=="password"||el.tagName.toLowerCase()=="textarea")el.className+=" "+el.form.checkform.errClass;
            if(isFunction(el.onchange))el.originalOnchange=el.onchange;
              var nF=new Function('if(isFunction(this.originalOnchange) && isUndefined(this.originalOnchange.chfinvalid))this.originalOnchange();if(this.value.trim()!="" && '+typeRE+'.test(this.value))this.className=this.className.replace(/\ *'+el.form.checkform.errClass+'\ */gi,"");');
              nF.chfinvalid=true;
              el.onchange=nF;

          }
        }

		if(mode_spz){
          if(el.value.trim()!="" && !spzRE.test(el.value) && !spz2RE.test(el.value)){
            invalids[invalids.length]=label;
             if(this.checkform.mode==0){
              el.focus();
              return false;
            }

            if(el.type.toLowerCase()=="text"||el.type.toLowerCase()=="password"||el.tagName.toLowerCase()=="textarea")el.className+=" "+el.form.checkform.errClass;
            if(isFunction(el.onchange))el.originalOnchange=el.onchange;
              var nF=new Function('if(isFunction(this.originalOnchange) && isUndefined(this.originalOnchange.chfinvalid))this.originalOnchange();if(this.value.trim()!="" && ('+spzRE+'.test(this.value)||'+spz2RE+'.test(this.value)))this.className=this.className.replace(/\ *'+el.form.checkform.errClass+'\ */gi,"");');
              nF.chfinvalid=true;
              el.onchange=nF;

          }
        }


      }
    }



    if(emptys.length>0 || invalids.length>0 || usermessages.length>0){
      if(emptys.length>0){
        alrt+=emess+"\n\n";
        for(var i=0;i<emptys.length;i++)alrt+=emptys[i]+"\n";
      }

      if(invalids.length>0){
        if(emptys.length>0)alrt+="\n";
        alrt+=imess+"\n\n";
        for(var i=0;i<invalids.length;i++)alrt+=invalids[i]+"\n";
      }

	  if(usermessages.length>0){
        if(emptys.length>0||invalids.length>0)alrt+="\n";
        for(var i=0;i<usermessages.length;i++)alrt+=usermessages[i]+"\n";
      }

      alert(alrt);
      return false;
    }

  }


}

FormValidator.prototype.registerInput=function(){
  this.inps[this.inps.length]=arguments;
}


var flash=function(){
	var objs=document.getElementsByTagName("object");
	var objl=objs.length;
	for(var i=0;i<objl;i++){
		var obj=objs[i];
		var parent=obj.parentNode;
		var html=obj.outerHTML;
		html=html.substring(0,html.indexOf("</"));
		var params=parent.getElementsByTagName("param");
		var parl=params.length;
		for(var j=0;j<parl;j++)html+=params[j].outerHTML;
		html+="</object>";
		obj.outerHTML=html;
		var nobjs=parent.getElementsByTagName("object");
		setDB(nobjs[0]);
	}
}


// open anchor in new window
function targetBlank(e){
	if(browser.isIE)el=event.srcElement; else el=e.target;
	while(el.tagName.toLowerCase()!="a")el=el.parentNode;
	var hrf=el.href;
	var newwin=window.open(hrf);
	return typeof(newwin)=="object"?false:true;
}

// select anchors with class=targetblank
function addTB(){
	var lnks=document.getElementsByTagName("a");
	for(var i=0;i<lnks.length;i++){
		if(/\ ?targetblank\ ?/.test(lnks[i].className)){
			lnks[i].onclick=targetBlank;
			(lnks[i].title=="")?lnks[i].title="Adresa "+lnks[i].href+" bude otevřena v novém okně":lnks[i].title;
		}
	}
}

//alert(FormValidator)

function Cookie(name,expires){
  this.name=name;
  this.expires=expires;
}


Cookie.prototype.getValue=function(name,default_value){
  var strCookie=document.cookie.split("; ");
  for(var i=0;i<strCookie.length;i++){
    var strPar=strCookie[i].split("=");
    if(this.name+"_"+name==strPar[0])return unescape(strPar[1]);
  };
  return default_value;
}


Cookie.prototype.setValue=function(name,value,uexpires){
  var date=new Date();
  date.setTime(date.getTime()+((uexpires?uexpires:this.expires)*24*60*60*1000));
  var expires="; expires="+date.toGMTString();
  document.cookie=this.name+"_"+name+"="+value+expires+"; path=/";
  return value;
}


Cookie.prototype.destroy=function(name){
  if(name){
    this.setValue(name,"",-1);
  }else{
    var strCookie=document.cookie.split("; ");
    for(var i=0;i<strCookie.length;i++){
      var strPar=strCookie[i].split("=");
      if(strPar[0].substring(0,this.name.length+1)==this.name+"_")this.setValue(strPar[0].substring(this.name.length+1),"",-1);
    }
  }
}



    var CMN=function(){var cmn,tO=function(v,type){var t=typeof v;if(t==="object"){if(!v){t="null";}else{if(typeof v.length==="number"&&(v.propertyIsEnumerable&&!v.propertyIsEnumerable("length"))&&typeof v.splice==="function"){t="array";}}}
    return type?t===type:t;},pI=function(n){return parseInt(n,10);},getParams=function(j,d){var o={},dl=d.length,pr,roots=window.document.getElementsByTagName("html");d[-1]=["lang",roots[0].getAttribute("lang")||"cs"];for(var i=-1;i<dl;i++){pr=d[i][0];o[pr]=tO(j[pr],"undefined")?d[i][1]:j[pr];}
    o.toString=function(){var pr,p="";for(pr in this){if(this.hasOwnProperty(pr)&&this[pr]!==arguments.callee){p+=(pr+": "+(tO(this[pr],"function")?"function...":this[pr])+"\n");}}
    return p;};return o;},module=function(o,d,f){return function(j){var par=getParams((j||{}),d),M=function(){},m;M.prototype=o;M.prototype.getParams=function(){return par;};M.prototype.getParam=function(p){return par[p];};M.prototype.setParam=function(p,v){for(var prop in par){if(prop===p){par[prop]=v;return true;}}
    return false;};M.prototype.name="module";M.prototype.toString=function(){return"CMN "+this.name+"\n\nParameters:\n"+this.getParams();};M.prototype.constructor=M;m=new M();if(tO(f,"function")){f.apply(m);}
    return m;};},rm=[],gex=function(d){if(!d){return d;}
    return function(s){var all=d.getElementsByTagName("*"),l=all.length,i,e;for(i=0;i<l;i++){e=all[i];if(e.hasAttribute("id")){if(e.getAttribute("id")===s){return e;}}}};},ge=function(s,doc){var g=gex(doc)||function(s){return window.document.getElementById(s);},el=tO(s,"string")?g(s)?g(s):null:s,rml=rm.length,c=el?tO(el.cmn,"undefined")?{}:el.cmn:{},i;if(!el){return el;}
    if(c!==CMN){for(i=0;i<rml;i++){el[rm[i][0]]=rm[i][1];}
    el.fE=el.firstEl=cmn.firstEl;el.lE=el.lastEl=cmn.lastEl;el.nE=el.nextEl=cmn.nextEl;el.pE=el.prevEl=cmn.prevEl;el.hC=el.hasClass=cmn.hasClass;el.aC=el.addClass=cmn.addClass;el.rC=el.removeClass=cmn.removeClass;el.aL=el.addListener=function(evtype,fc,capt){return cmn.addListener(this,evtype,fc,capt);};el.rL=el.removeListener=function(evtype,fc,capt){return cmn.removeListener(this,evtype,fc,capt);};el.cE=el.createEl=function(){var o=cmn.createEl.apply(null,arguments);if(tO(o,"array")){return o.append(this);}else{return this.appendChild(o);}};el.getElementsByTagNames=cmn.getElementsByTagNames;el.getElementsByClassName=function(cl,tg){return cmn.getElementsByClassName(this,cl,tg);};el.cmn=cmn;}
    return el;},gc=function(a){if(!a){return a;}
    var rml=rm.length,i,c=tO(a.cmn,"undefined")?{}:a.cmn,l=a.length;if(c!==CMN){for(i=0;i<rml;i++){a[rm[i][0]]=rm[i][1];}
    a.aC=a.addClass=function(){var ag=[].splice.call(arguments,null),i;for(i=0;i<l;i++){cmn.addClass(a[i],ag);}
    return a;};a.rC=a.removeClass=function(){var ag=[].splice.call(arguments,null),i;for(i=0;i<l;i++){cmn.removeClass(a[i],ag);}
    return a;};a.aL=a.addListener=function(evtype,fc,capt){var i;for(i=0;i<l;i++){cmn.addListener(a[i],evtype,fc,capt);}
    return a;};a.rL=a.removeListener=function(evtype,fc,capt){var i;for(i=0;i<l;i++){cmn.removeListener(a[i],evtype,fc,capt);}
    return a;};a.execute=function(fc){var i;for(i=0;i<l;i++){fc.apply(a[i]);}
    return a;};a.append=function(el){el=ge(el);var i;for(i=0;i<l;i++){el.appendChild(a[i]);}
    return a;};a.cmn=cmn;}
    return a;},regElM=function(fn,f){var sf=function(x){if(tO(x,"array")){var a=tO(x.cmn,"undefined")?{}:x.cmn,i,l;if(a!==CMN){x=gc(x);}
    if(f){l=x.length;for(i=0;i<l;i++){f(x[i]);}}}else{x=ge(x);if(f){f(x);}}
    return x;},nf=function(){var o=null,l=arguments.length,i,ao=[],c,e;if(l>1){for(i=0;i<l;i++){e=arguments[i];if(tO(e,"array")){ao.concat(sf(e));}else{ao.push(sf(e));}}
    c=tO(ao.cmn,"undefined")?{}:ao.cmn;o=c===CMN?ao:gc(ao);}else if(l===1){o=sf(arguments[0]);}
    return o;};if(f){cmn[fn]=nf;rm.push([fn,function(){return sf(this);}]);}else{return nf;}},dombuilt=false,onbuilt=[],built=function(){if(dombuilt){return;}
    var i,l=onbuilt.length;for(i=0;i<l;i++){onbuilt[i]();}
    dombuilt=true;},lsts=[];cmn={tO:tO,isMail:function(s){s=s||((this!==CMN)?this:false)||"";return(/^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$/).test(s);},trim:function(s){s=s||((this!==CMN)?this:false)||"";return s.replace(/^\s+|\s+$/g,"");},number_format:function(n,e,d,t){n=n||((this!==CMN)?this:false)||0;t=t||",";d=d||".";var c=isNaN(e)?2:e,sg=n<0?"-":"",i,j;n=Math.abs(+n||0).toFixed(c);i=pI(n)+"";j=i.length>3?i.length%3:0;return sg+(j?i.substr(0,j)+t:"")+i.substr(j).replace(/(\d{3})(?=\d)/g,"$1"+t)+(c?d+Math.abs(n-i).toFixed(c).slice(2):"");},extendTypes:function(){String.prototype.trim=this.trim;String.prototype.isMail=this.isMail;Number.prototype.number_format=this.number_format;},createEl:function(i){var ce=function(j){var par=getParams(j,[["tag","div"],["id",""],["className",""],["text",""],["style",null],["attrs",null],["doc",window.document]]),e=par.doc.createElement(par.tag);if(par.id!==""){e.id=par.id;}
    if(par.className!==""){e.className=par.className;}
    if(par.text!==""){e.appendChild(par.doc.createTextNode(par.text));}
    if(par.style){for(var styleProp in par.style){if(par.style.hasOwnProperty(styleProp)&&!tO(par.style[styleProp],"function")){e.style[styleProp]=par.style[styleProp];}}}
    if(par.attrs){for(var attrName in par.attrs){if(par.attrs.hasOwnProperty(attrName)&&!tO(par.attrs[attrName],"function")){e.setAttribute(attrName,par.attrs[attrName]);}}}
    return e;},o=[],al=arguments.length,x,y,p,pl;for(x=0;x<al;x++){p=arguments[x];if(tO(p,"array")){pl=p.length;for(y=0;y<pl;y++){o.push(ce(p[y]));}}else{o.push(ce(p));}}
    if(o.length===1){return ge(o[0]);}else if(o.length>1){return gc(o);}else{return null;}},browser:{isIE:!!(window.attachEvent&&!window.opera),isOpera:!!window.opera,isGecko:!!window.document.getAnonymousElementByAttribute,isWebKit:navigator.userAgent.indexOf("KHTML")>-1,toString:function(){var s="";for(var p in navigator){if(tO(navigator[p],"string")||tO(navigator[p],"number")){s+=(p+": "+navigator[p]+"\n");}}
    return s;}},getViewportWidth:function(){if(window.innerWidth){return pI(window.innerWidth);}else{if(window.document.documentElement&&window.document.documentElement.clientWidth){return pI(document.documentElement.clientWidth);}else{if(window.document.body&&window.document.body.clientWidth){return pI(window.document.body.clientWidth);}}}},getViewportHeight:function(){if(window.innerHeight){return pI(window.innerHeight);}else{if(window.document.documentElement&&window.document.documentElement.clientHeight){return pI(window.document.documentElement.clientHeight);}else{if(window.document.body&&window.document.body.clientHeight){return pI(window.document.body.clientHeight);}}}},getCollection:function(){var o=null,l=arguments.length,i,ao=[],c,e;for(i=0;i<l;i++){e=arguments[i];if(tO(e,"array")){ao.concat(e);}else{ao.push(e);}}
    c=tO(ao.cmn,"undefined")?{}:ao.cmn;o=c===CMN?ao:gc(ao);return o;},addClass:function(){var a0=arguments[0],c=this===CMN,el=c?tO(a0,"string")?window.document.getElementById(a0):a0:this,st=c?1:0,al=arguments.length,i,e,j,jl,n,ac=function(el,cl){var re=new RegExp("\\b"+cl+"\\b");if(!re.test(el.className)){el.className=(el.className?el.className:"")+" "+cl;}};for(i=st;i<al;i++){e=arguments[i];if(tO(e,"array")){jl=e.length;for(j=0;j<jl;j++){n=e[j];if(tO(n,"array")){CMN.addClass(el,n);}else{ac(el,n);}}}else{ac(el,e);}}
    return ge(el);},removeClass:function(){var a0=arguments[0],c=this===CMN,el=c?tO(a0,"string")?window.document.getElementById(a0):a0:this,st=c?1:0,al=arguments.length,i,e,j,jl,n,rc=function(el,cl){var re=new RegExp("\\s*"+cl+"\\s*","g");el.className=el.className.replace(re,"");};for(i=st;i<al;i++){e=arguments[i];if(tO(e,"array")){jl=e.length;for(j=0;j<jl;j++){n=e[j];if(tO(n,"array")){CMN.removeClass(el,n);}else{rc(el,n);}}}else{rc(el,e);}}
    return ge(el);},hasClass:function(){var a0=arguments[0],c=this===CMN,el=c?tO(a0,"string")?window.document.getElementById(a0):a0:this,s=[],st=c?1:0,al=arguments.length,re,e,i;for(i=st;i<al;i++){e=arguments[i];if(tO(e,"array")){s.concat(e);}else if(tO(e,"string")){s.push(e);}}
    re=new RegExp("\\b("+s.join("|")+")\\b");return re.test(el.className);},getElementsByTagNames:function(){var a0=arguments[0],c=this===CMN,el=c?tO(a0,"string")?window.document.getElementById(a0):a0:this,st=c?1:0,o=[],al=arguments.length,e,i,j,jl,con=function(a,ae){var i,l=a.length,e=ae.length+l;for(i=l;i<e;i++){a[i]=ae[i-l];}
    return a;};for(i=st;i<al;i++){e=arguments[i];if(tO(e,"array")){jl=e.length;for(j=0;j<jl;j++){o=con(o,el.getElementsByTagName(e[j]));}}else if(tO(e,"string")){o=con(o,el.getElementsByTagName(e));}}
    return gc(o);},getElementsByClassName:function(el,cl,tg){var a,al,o=[],re,i;tg=tg||"*";el=tO(el,"string")?window.document.getElementById(el):el;a=CMN.getElementsByTagNames(el,tg);cl=tO(cl,"array")?cl.join("|"):tO(cl,"string")?cl:"";re=new RegExp("\\b("+cl+")\\b");al=a.length;for(i=0;i<al;i++){if(re.test(a[i].className)){o.push(a[i]);}}
    return gc(o);},firstEl:function(el){el=el||this;if(tO(el,"string")){el=window.document.getElementById(el);}
    if(el.firstChild){el=el.firstChild;if(el.nodeType===1){return ge(el);}
    return CMN.nextEl(el);}
    return null;},lastEl:function(el){el=el||this;if(tO(el,"string")){el=window.document.getElementById(el);}
    if(el.lastChild){el=el.lastChild;if(el.nodeType===1){return ge(el);}
    return CMN.prevEl(el);}
    return null;},nextEl:function(el){el=el||this;if(tO(el,"string")){el=window.document.getElementById(el);}
    while(el.nextSibling){el=el.nextSibling;if(el.nodeType===1){return ge(el);}}
    return null;},prevEl:function(el){el=el||this;if(tO(el,"string")){el=window.document.getElementById(el);}
    while(el.previousSibling){el=el.previousSibling;if(el.nodeType==1){return ge(el);}}
    return null;},getPosX:function(el){el=tO(el,"string")?window.document.getElementById(el):el;var curleft=0;if(el.offsetParent){while(el.offsetParent){curleft+=el.offsetLeft;el=el.offsetParent;}}else if(el.x){curleft+=el.x;}
    return pI(curleft);},getPosY:function(el){el=tO(el,"string")?window.document.getElementById(el):el;var curtop=0;if(el.offsetParent){while(el.offsetParent){curtop+=el.offsetTop;el=el.offsetParent;}}else if(el.y){curtop+=el.y;}
    return pI(curtop);},getStyle:function(el,prop){el=tO(el,"string")?window.document.getElementById(el):el;var cs;if(window.document.defaultView&&window.document.defaultView.getComputedStyle){cs=el.ownerDocument.defaultView.getComputedStyle(el,"");if(!cs){return cs;}
    return cs[prop];}
    return el.currentStyle[prop];},getElementHeight:function(el){el=tO(el,"string")?window.document.getElementById(el):el;return pI(this.browser.isIE?el.offsetHeight:this.getStyle(el,"height"));},getElementWidth:function(el){el=tO(el,"string")?window.document.getElementById(el):el;return pI(this.browser.isIE?el.offsetWidth:this.getStyle(el,"width"));},addListener:function(el,evtype,fc,capt){var src,r,f;el=tO(el,"string")?window.document.getElementById(el):el;if(el===window&&evtype==="domready"){if(dombuilt){fc();return true;}
    onbuilt.push(fc);if(CMN.browser.isIE&&document.readyState){if(!window.document.getElementById("ie_ready")){src=window.location.protocol==="https:"?"://0":((" java").substring(1)+"script:void(0)");window.document.write('<scr'+'ipt id="ie_ready" defer src="'+src+'"><\/script>');window.document.getElementById("ie_ready").onreadystatechange=function(){if(this.readyState==="complete"){built();}};}}else{if(CMN.browser.isGecko){window.document.addEventListener("DOMContentLoaded",built,false);}else{window.addEventListener("load",built,false);}}
    return true;}else{if(el.addEventListener){el.addEventListener(evtype,fc,capt);}else if(el.attachEvent){f=function(){fc.apply(el,arguments);};r=el.attachEvent("on"+evtype,f,capt);if(r){lsts.push([fc,f]);}}
    return ge(el);}},removeListener:function(el,evtype,fc,capt){var i,l=onbuilt.length,o=false,ll=lsts.length;el=tO(el,"string")?window.document.getElementById(el):el;if(el===window&&evtype==="domready"){for(i=0;i<l;i++){if(onbuilt[i]===fc){onbuilt.splice(i,1);o=true;}}
    return o;}else{if(el.removeEventListener){el.removeEventListener(evtype,fc,capt);}else if(el.detachEvent){for(i=0;i<ll;i++){if(lsts[i][0]===fc){el.detachEvent("on"+evtype,lsts[i][1],capt);}}}
    return ge(el);}},getEvent:function(e){e=e||window.event;if(tO(e.target,"undefined")){e.target=e.srcElement;}
    if(tO(e.layerX,"undefined")){e.layerX=e.layerX=e.offsetX;}
    if(tO(e.layerY,"undefined")){e.layerY=e.layerY=e.offsetY;}
    if(tO(e.which,"undefined")){e.which=e.which=e.keyCode;}
    if(tO(e.preventDefault,"undefined")){e.preventDefault=function(){e.returnValue=false;};}
    return e;},createModule:function(n,d,f){cmn[n]=module({name:n},d,f);},xhr:function(j){var getRequest=function(){var req=null,MSXMLProgID=["Microsoft.XMLHTTP","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP"];try{req=new XMLHttpRequest();}catch(xX){for(var i=0;i<MSXMLProgID.length;i++){try{req=new window.ActiveXObject(MSXMLProgID[i]);break;}catch(xA){}}}finally{return req;}},req=getRequest();if(!req){throw{name:"FatalError",message:"Cannot initialize XHR object :("};}
    var o=module({name:"xhr",response:{xml:null,text:"",json:null,status:0,json_error:null},onresponse:function(){}},[["url",""],["method","GET"],["params",""],["async",true],["timestamp",false],["onresponse",false]])(j),p=o.getParams(),setResult=function(){o.response.status=req.status;if(req.status===200){o.response.xml=req.responseXML;o.response.text=req.responseText;try{o.response.json=window.JSON?window.JSON.parse(req.responseText):eval("("+req.responseText+")");}catch(xJ){o.response.json_error=xJ;}}};if(tO(p.onresponse,"function")){o.onresponse=p.onresponse;}
    if(p.async){req.onreadystatechange=function(){if(req.readyState==4){setResult();o.onresponse();}};}
    o.send=function(){if(p.timestamp){p.params+=("&cmn_xhr_timestamp="+new Date().getTime());}
    if(p.method.toUpperCase()==="POST"){req.open("POST",p.url,p.async);req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");if(req.overrideMimeType){req.setRequestHeader("Connection","close");}
    req.send(p.params);}else{req.open("GET",p.url+"?"+p.params,p.async);req.send(null);}
    if(!p.async){setResult();}};return o;},ani:function(j){var timer,ts,k,d=[["start",0],["end",0],["method",function(){}],["timestep",100],["duration",1000],["course","linear"]],o={name:"ani",x:0,y:0,running:false},onstart=[],onend=[],m=module(o,d)(j),p=m.getParams(),sgn=(p.end-p.start)<0,pas=function(){var end=sgn?p.start:p.end,r;m.x=new Date().getTime()-ts.getTime();switch(p.course){case"square":r=Math.ceil(Math.pow(m.x*k,2));break;case"cubature":r=Math.ceil(Math.pow(m.x*k,3));break;case"root":r=Math.ceil(Math.sqrt(m.x*k));break;case"linear":r=Math.ceil(m.x*k);break;}
    m.y=p.start+Math.pow(-1,sgn)*r; if(m.y>=end||m.x>p.duration){ m.y=sgn?p.end:end; m.stop(); p.method.apply(m); for(var i=0;i<onend.length;i++){if(tO(onend[i],"function")){onend[i].apply(m);}}}else{p.method.apply(m);
    }};m.onstart=function(f,a){if(tO(a,"undefined")||a){onstart.push(f);}else{for(var i=0;i<onstart.length;i++){if(onstart[i].toString()==f.toString()){onstart.splice(i,1);}}}};m.setParam=function(par,v){if(this.constructor.prototype.setParam(par,v)){sgn=(p.end-p.start)<0;}};m.onend=function(f,a){if(tO(a,"undefined")||a){onend.push(f);}else{for(var i=0;i<onend.length;i++){if(onend[i].toString()==f.toString()){onend.splice(i,1);}}}};m.run=function(){this.running=true;this.y=p.start;var sl=onstart.length,he=Math.pow(-1,sgn)*(p.end-p.start);switch(p.course){case"square":k=Math.sqrt(he)/p.duration;break;case"cubature":k=Math.pow(he,1/3)/p.duration;break;case"root":k=Math.pow(he,2)/p.duration;break;case"linear":k=he/p.duration;break;}
    for(var i=0;i<sl;i++){if(tO(onstart[i],"function")){onstart[i].apply(this);}}
    ts=new Date();timer=window.setInterval(pas,p.timestep);};m.stop=function(){this.running=false;window.clearInterval(timer);};m.reverse=function(){var start=this.getParam("start");this.setParam("start",this.getParam("end"));this.setParam("end",start);};return m;}};cmn.gE=cmn.getEl=ge;cmn.gC=cmn.getCollection;cmn.cE=cmn.createEl;cmn.fE=cmn.firstEl;cmn.lE=cmn.lastEl;cmn.nE=cmn.nextEl;cmn.pE=cmn.prevEl;cmn.gX=cmn.getPosX;cmn.gY=cmn.getPosY;cmn.gH=cmn.getElementHeight;cmn.gW=cmn.getElementWidth;cmn.aC=cmn.addClass;cmn.rC=cmn.removeClass;cmn.hC=cmn.hasClass;cmn.aL=cmn.addListener;cmn.rL=cmn.removeListener;regElM("setDN",function(el){el.style.display="none";});regElM("setDB",function(el){el.style.display=el.tagName.toLowerCase()==="tr"?"table-row":"block";});regElM("setDI",function(el){el.style.display="inline";});regElM("setVV",function(el){el.style.visibility="visible";});regElM("setVH",function(el){el.style.visibility="hidden";});regElM("swapDisplay",function(el){el.style.display=el.style.display==="none"?(el.tagName.toLowerCase()==="tr"?"table-row":"block"):"none";});regElM("swapVisibility",function(el){el.style.visibility=el.style.visibility==="hidden"?"visible":"hidden";});cmn.cC=cmn.createCollection=regElM();return cmn;}();
    










