// $Rev: 43757 $ $URL: svn://subversion.gepro/kokes/_verze_branch/10.50/Kokes/web/files/kokes.js $ 
var PrintBuf="";
var treeview_timer=null;
// zbyle definice a nahozeni timeru - vola se v onLoadu uvodniho framesetu
function AutoExec(flg)
{
// opener = this;
 SysInfo['CloseTM'] = 250;
 if ( null != CloseTM) 
  SysInfo['CloseTM'] = CloseTM;
 if( null==SysInfo['lversion'])
  SysInfo['lversion']="00.00";
 if( null==SysInfo['nversion'])
  SysInfo['nversion']=RunURL("/MACRO/INFO?3","");
 if(flg==0 || flg==2)
  SetZoomStat();	   // nastaveni navigacni prehledky
 if(null!=App && ("object"==typeof(App)||"function"==typeof(App)) && App.FLoaded() == 1) {
  PrintHandler(App.GetServerVersion(),"");
  if(null!=KON && ("object"==typeof(KON)||"function"==typeof(KON)) && KON.FLoaded() >= 1) 
   App.TestJVM();
 }
 return;
}

function SaveSystem() {
 if ( null!=OW) {
  for ( var i in OW ) {
   if ( ( null!=OW[i])&&( !OW[i].closed)) {
	OW[i].close();
   }
  }
 }
 SaveCookie();
 return;
}

// ---------------------------------------------------------
// ulozi aktualni stav aplikace do cookie
function SaveCookie() {
 if (null==SysInfo) return;
 var cookie="";
 var exp=new Date(); 
 cookie= (SysInfo.LastSave+":");
 cookie+= (RefDate+":");
 if(SysInfo.ActURL!="")
  SysInfo.LastURL=SysInfo.ActURL;
 cookie+=SysInfo.LastURL;
 exp.setFullYear(exp.getFullYear()+20);
 document.cookie="LSAVE="+cookie+"; path=/; expires="+exp.toGMTString();

 cookie= (SysInfo.AppSize+":"); cookie+=(SysInfo.Session+":"); cookie+=(SysInfo.View+":"); cookie+=(SysInfo.grfinput+":");
 cookie+=(SysInfo.SetDetail+":"); cookie+=(SysInfo.clckscale+":"); cookie+=(SysInfo.GrfFormat+":"); cookie+=(SysInfo.Lng+":");
 cookie+=(SysInfo.Mdt);
 document.cookie="MISYS="+cookie+"; path=/; expires="+exp.toGMTString();
 
 SysInfo['nversion']=RunURL("/MACRO/INFO?3","");
 cookie= (SysInfo.znak+":"); cookie+=(SysInfo.bod_b+":"); cookie+=(SysInfo.sysdr+":"); cookie+=(SysInfo.showArea+":"); cookie+=(SysInfo.killpnt+":");
 cookie+=(SysInfo.zoom+":"); cookie+=(SysInfo.nversion+":"); cookie+=(SysInfo.sysln);
 document.cookie="GRAFIKA="+cookie+"; path=/; expires="+exp.toGMTString();
 
 cookie= (SysInfo.prnid+":"); cookie+=(SysInfo.prndpi+":"); cookie+=(SysInfo.prnA+":"); cookie+=(SysInfo.A4w+":"); cookie+=(SysInfo.A4h+":");
 cookie+=(SysInfo.prnflags+":"); cookie+=(SysInfo.Browser+":"); cookie+=(SysInfo.print_margin_left+":"); cookie+=(SysInfo.print_margin_right+":");
 cookie+=(SysInfo.print_margin_top+":"); cookie+=(SysInfo.print_margin_bottom+":"); cookie+=(SysInfo.Alfa+":"); cookie+=(SysInfo.typ3_scale+":");
 cookie+=(SysInfo.print_coef_ver+":"); cookie+=SysInfo.print_coef_hor;
 document.cookie="TISK="+cookie+"; path=/; expires="+exp.toGMTString();

 cookie= (SysInfo.SpiFlags);
 document.cookie="KATASTR="+cookie+"; path=/; expires="+exp.toGMTString();

 cookie= (SysInfo.li_d+":");cookie+= (SysInfo.li_u+":"); cookie+= (SysInfo.li_f+":"); cookie+= (SysInfo.li_a+":");
 cookie+= (SysInfo.ar_fa+":");cookie+= (SysInfo.ar_pn+":"); cookie+= (SysInfo.ar_ch+":"); cookie+= (SysInfo.ar_ki+":"); cookie+= (SysInfo.ar_cl+":");
 cookie+= (SysInfo.ar_co+":");cookie+= (SysInfo.ar_un+":"); cookie+= (SysInfo.ar_fo+":"); cookie+= (SysInfo.ar_af+";");
 document.cookie="OPER="+cookie+"; path=/; expires="+exp.toGMTString();
 return;
}

// ------------------------------------
// centrovani appletu s nastavenim meritka
function SetCentr() {
 if ( SysInfo.clckscale != 0 ) 
  App.Click(0,0);
 else 
  App.Click(0,2);
 return;
}
  
function TooltipHandler(ret) {
     eval(''+ret);
}

function orez(n,l) { 
 var pos,ret=n; 
 if( (pos=n.indexOf("."))>0 && (pos+l)<=n.length)  
  ret=n.substring(0,n.indexOf('.')+l);
 return ret;
}
// ------------------------------------------
// spusti akci predpripravenou v promenne RUNXY, pokud tento predpis obsahuje
// znak '@' bude tento nahrazen retezcem x,y
// znak '#' bude tento nahrazen retezcem, ktery vrati identifikace
// timerova funkce pro ziskani x,y identifikovaneho bodu
function IdentHandler(ret,pasport) {
 var ss, wgs, pole;
 if( eval(''+pasport)==0 && (null!=RUNXY) && (RUNXY.length > 0)) {
//	 ss = new String( RUNXY);
  ss = RUNXY;
  if ( ss.indexOf( "@")>-1) {
   if( null!=KON && App.EnableCoor()==1) {
    pole=ret.split(",");
	wgs=RunURL("/MACRO/WGS?1|"+pole[0]+"|"+pole[1],"");
	wgs=wgs.split("|");
	KON.Println("JTSK: X="+pole[0]+", Y="+pole[1]+" WGS: N="+orez(wgs[0],7)+", E="+orez(wgs[1],7), "");
   }
   ss = ss.substring( 0, ss.indexOf( "@")) + ret + ss.substring( ss.indexOf( "@")+1,ss.length+1);
  }
  if( ss.indexOf( "#")>-1) {
   /* Nahrada uvozovek za apostrof */
   while( (idx = ret.indexOf("\"")) != -1)
    ret = ret.substring(0,idx) + "'" + ret.substring(idx+1,ret.length+1);
   ss = ss.substring( 0, ss.indexOf( "#")) + "\"" + ret + "\"" + ss.substring( ss.indexOf( "#")+1,ss.length+1);
  }
  for(var i=0; i < ss.length-1; i++)
  {
   /* Nahrada CRLF za lomitko n */
   if( escape(ss.charAt(i)) == "%0D" && escape(ss.charAt(i+1)) == "%0A") 
    ss = ss.substring(0,i) + "\\n" + ss.substring(i+2,ss.length+1);
  }
  var ss = eval( ss);
 }
 if(eval(pasport)==1 && (null != RUNIDENT) && ( RUNIDENT.length > 0)) {
  eval(RUNIDENT);
  App.ClearIdentPar();
 }
 return ;
}
// Tisk do konzoly
function PrintHandler(ret,barva) {
  if( ret!="") {
   if(null!=KON && ("object"==typeof(KON)||"function"==typeof(KON)) && KON.FLoaded() >= 1) {
    KON.Println( ret, barva);
   }
   else {
	if( ret.substring(0,5)!="MISYS") // blokace úvodní hlášky bez konzole
	 alert(ret);
   }
   PrintBuf=ret;
  }
 ret = null;
 return ;
}

// Zobrazení legendy
function LegendHandler(num) {
 if( num!="") {
   OW.Legend = window.open("/OUT/TXT/ENUM?misystiphtml,"+num,"Legend","width=500,height=300,menubar,status,resizable=yes,scrollbars=yes");
   OW.Legend.focus();
 }
 return ;
}

// Změny v TreeView kontrole 
function TreeViewHandler(ret) {
/* Zatim zruseno pro nepochopitelnost ovladani
 if( ret == 2)  // Vybrány oblasti, spustit výběr katastru z mapy
  GRF.SelectKU();
*/
 if( ret == -1) { // Změna v treeview
  if(null!=MTOOL.document.getElementById('refr')) 
   ShowObnovTema(); // animovat ikonu
  else { // honorování výběru v timeoutu
   if(null!=treeview_timer) {
    clearTimeout(treeview_timer);
    treeview_timer=null;
    }
   treeview_timer=setTimeout("ObnovTema(1)", 1200); 
   } 
  }
 return ;
}
// Hledání v TreeView kontrole 
function TreeViewSearch(par) {
 var x = prompt(par,"");
 if( null!=x) 
  Mnu.SearchText(1,x);
 return ;
}

// -- MALOVÁNÍ DETAILU V PŘEHLEDCE ----------------------------------------------
function DetailHandler(ret) {
 if( ret!="") { 
  ur=new _misysURL(ret); // Uložení posledního výřezu (ne v SaveCookie) 
  var urs=ur.Center.X+","+ur.Center.Y+","+ur.Meritko+","+ur.Uhel; 
  SysInfo.ActURL=urs+","+ur.View+","+unescape(ur.Vrstvy)+","+unescape(ur.Vykresy);
  if(null!=Zum && ("object"==typeof(Zum)||"function"==typeof(Zum)) && Zum.FLoaded() == 1) {
   urs+=(","+ur.Size.X+","+ur.Size.Y+","+ur.DPI);
   Zum.SetPaintDetail( urs, SysInfo.bod_b);
  }
  // Aktualizace hodnot v dialogu pro měřítko
  if(null!=TEMA && null!=TEMA.document && null!=TEMA.document.VSTUP && null!=TEMA.document.VSTUP.INPX && null!=TEMA.document.VSTUP.INPY && null!=TEMA.document.VSTUP.INPVAL) {
   TEMA.document.VSTUP.INPVAL.value=parseInt(ur.Meritko);
  }
 }
 return ;
}

// Nahození akcí v orientační přehledce
function SetZoomStat() {
 if(("object"==typeof(Zum)||"function"==typeof(Zum)) && Zum.FLoaded()==1 && ("object"==typeof(App)||"function"==typeof(App)) && App.FLoaded() == 1) {
  switch ( eval(SysInfo.zoom)) {
   case 1 :		// nahozeni virtualniho detailu
	Zum.Detail(1); 
	break;		
   default:		// nahozeni virtualniho kliku
	Zum.Click(1,0); 
	break;		
 } // switch
}
else
 setTimeout('SetZoomStat();', CloseTM);
return;
}

// Změny v grafice podle činnosti v orientační přehledce
function ZoomHandler( ret) {
 if( eval(SysInfo.zoom)==3) {
  if( null==NAVIGACE && App.NavArea != "#") 
   LoadNavArea();
  if(App.NavArea=="#") SysInfo.zoom=0;
 }
 switch ( eval( SysInfo.zoom)) {
  case 0:
  default: App.SetClick( ret);
           Zum.Click(1,0); 
           break;
  case 1 : App.SetDetail( ret);
           Zum.Detail(1); 
           break;
  case 3 : if(null!=NAVIGACE) {
            var u = ret.split(",");
            var pnt = new cnstr_point( eval( u[0]), eval( u[1]));
            for ( var i=0; i<NAVIGACE.length; i++) {
	           if(( pnt.X>=NAVIGACE[i].MinXY.X) && 
                ( pnt.X<=NAVIGACE[i].MaxXY.X) && 
                ( pnt.Y<=NAVIGACE[i].MaxXY.Y) &&
                ( pnt.Y>=NAVIGACE[i].MinXY.Y)) {
              App.SetScale( 1*(NAVIGACE[i].Scale));
	            App.SetCenter( 1*(0.5*((1*NAVIGACE[i].MinXY.X)+(1*NAVIGACE[i].MaxXY.X))), 1*(0.5*((1*NAVIGACE[i].MinXY.Y)+(1*NAVIGACE[i].MaxXY.Y))));
	            App.Maluj();
 	            break;
              }
             }
            }
           break;
 } // switch
 return; 
}

// Podpůrné dialogy pro různé činnosti
function DialogHandler(typ,min_x,min_y,max_x,max_y,scale) {
 if(null!=typ) {
//  parent.StartPasport(3,'/MACRO/PRINT?3'+typ+'|'+(SysInfo.AppSize&0x07)+'|'+SysInfo.Lng+'|'+min_x+"|"+min_y+"|"+max_x+"|"+max_y+"|"+scale);
  top.OW.Dialog=window.open('/MACRO/PRINT?3'+typ+'|'+(SysInfo.AppSize&0x07)+'|'+SysInfo.Lng+'|'+min_x+"|"+min_y+"|"+max_x+"|"+max_y+"|"+scale,"Dialog","top=100,left=100,width=190,height=440,scrollbars=no");
 }
 return ;
}

// --- Starovací podminky pro aplikaci UIR-ADR ------
// TypVyberu - viz. uiradr.js
// Nasleduji filtry pro jednotlive entity zadane presnym nazvem prislusne entity
function StartUIR( TypVyberu, Scale, OkrFiltr, ObecFiltr, UliceFiltr, CisloFiltr)
{
 UIR_StartSelect=0;UIR_StartOkres=UIR_StartObec=UIR_StartUlice='';
 if( null != Scale && Scale != 0) UIR_Scale=Scale;
 if( null != TypVyberu && TypVyberu != 0) {
  if( null != OkrFiltr && trim(OkrFiltr)!='') UIR_StartOkres = trim(OkrFiltr);
  if( null != ObecFiltr && trim(ObecFiltr)!='') UIR_StartObec = trim(ObecFiltr);
  if( null != UliceFiltr && trim(UliceFiltr)!='') UIR_StartUlice = trim(UliceFiltr);
  if( null != CisloFiltr && trim(CisloFiltr)!='') UIR_StartCislo = trim(CisloFiltr);
 } // TypVyberu != 0
}
// --------------------------------------------------

/* Vykonani javascriptove akce z TOOLBARU */
function ExecuteMenu( JscriptBuf)
{
 if(waitforapplet<0) {
  try {
   eval(""+JscriptBuf+"");
  }
  catch(e) {alert(e);}
 }
 return false;
} // ExecuteMenu

/* Spustení pasportu. 
   place:   0=tema podle sdk, 1=nove okno dle sdk, 2=neviditelne okno dle sdk, 3=tema s plnou cestou k html, 
            4=tema dle sdk (default misto temat), 5=nove okno s externim javascriptem, 6=tema s plnou cestou a defaultem
   name:    nazev pasportu
   parwin:  parametry okna, je-li place=1. Napr. 'top=0,left=0,width=600,height=440' 
   jsname:  název souboru s javascriptem. Neni-li zadano, odvodi se z nazvu pasportu: pasport/name.js
   htmname: nazev souboru s formularem. Neni-li zadano, odvodi se z nazvu pasportu: pasport/name.htm
*/
function StartPasport( place, name, parwin, jsname, htmname)
{
 var hash;
 if( place != 3 && place != 5) {
  hash = name;
  if( null!=jsname && jsname != "") hash+=("#"+jsname);
  if( null!=htmname && htmname != "") hash+=("#"+htmname); 
 }
 switch (place) {
 default:
 case 0:  SwitchFrame(1);
		  if( DefStart!="" && hash==DefStart) {
           if( hash.indexOf(".")==-1) {
			TEMA.location.href=('/OUT/HTML/files/OpenFrameset.htm#'+hash);
			TEMA.location.reload(true);
		   }
		   else {
			TEMA.location.href=DefStart;
			TEMA.location.reload(true);
		   }
		  }
		  else {
		   TEMA.document.open();
           TEMA.document.close();
		   TEMA.location.href='/OUT/HTML/files/OpenFrameset.htm#'+hash;
		  }
 		  break;
 case 1:  OW[name]=window.open('/OUT/HTML/files/OpenFrameset.htm#'+hash+'','',parwin);
		  break;
 case 2:  HIDE.document.open();
          HIDE.document.close();
          HIDE.location.href='/OUT/HTML/files/OpenFrameset.htm#'+hash;
		  break;
 case 3:  TEMA.document.open();
          TEMA.document.close();
          TEMA.location.href=name;
		  SwitchFrame(1);
		  break;
 case 4:  TEMA.document.open();
          TEMA.document.close();
		  TEMA.location.href='/OUT/HTML/files/OpenFrameset.htm#'+hash;
          SwitchFrame(1);
		  DefStart=hash;
 		  break;
 case 5:  OW[name]=window.open(htmname,(null!=jsname && jsname != "")?jsname:"",parwin);
          OW[name].focus();
		  break;
 case 6:  TEMA.document.open();
          TEMA.document.close();
          TEMA.location=name;
		  SwitchFrame(1);
		  DefStart=hash;
 		  break;
 } // switch
} // StartPasport

function ShowPspWin(psp,url) {
var script='if (null==OW.'+psp+'||OW.'+psp+'.closed) OW.'+psp+'=window.open(\''+url+'\',UniName+\''+psp+'\',\'\');'+
'else OW.'+psp+'.document.location=\''+url+'\';OW.'+psp+'.focus();';
eval(script);
}

