
	function resizepwindow(){
		return;
	}

	function getfieldfromform(name){
        var dml=document.F;
        var len = dml.elements.length;
        var i=0;	
		var check_len = 0;
		for(var i=0;i<len;i++) {
	                if (dml.elements[i].name==name) 
	                        return dml.elements[i].value;
		} 
		return "";
	}

	function getfieldfromnamedform(formname, name){
        var dml;
		if (formname == "F")
			dml = document.F;
		else if (formname == "C") 
			dml = document.C;
		else 
			return;
        var len = dml.elements.length;
        var i=0;	
		var check_len = 0;
		for(var i=0;i<len;i++) {
	                if (dml.elements[i].name==name) 
	                        return dml.elements[i].value;
		} 
		return "";
	}

	function getparamvalue(parameters){
		var newname = parameters.substring(1, parameters.length);
		newname = getfieldfromform(newname);
		return newname;
	};	

	function getparamvaluefromnamedform(formname, parameters){
		var newname = parameters;
		newname = getfieldfromnamedform(formname, newname);
		return newname;
	};	


	function replacechar(str, oldch, newch) {
		var j = 0;
		var znak = "";
		var new_str = "";

		if (str == null)
			return null;

		for (j = 0; j < str.length; j++) {
			znak = str.charAt(j);
			if (znak == oldch)
				new_str = new_str + newch;
			else
				new_str = new_str + znak;
		} // for
		return new_str;
	}


	function delparameter(a_params, a_paramname) {
		var paramname = "";
		var paramvalue = "";
		var l1 = 0;
		var l2 = 0;
		var ile_naw = 0;
		var poczatekdel = -1;
		var koniecdel = -1;

		//obcinamy nawiasy na poczatku i na koncu
		a_params = trimDelims(a_params);

		//obcinamy spacje i inne dziwne rzeczy
		a_params = stripWhiteSpaces (a_params);

		var j = 0;
		var znak = "";
		for (j = 0; j < a_params.length; j++) {
		  if (koniecdel < 0) {
			znak = a_params.charAt(j);
			if (znak == "(")
				ile_naw += 1;
			if (znak == ")")
				ile_naw -= 1;

			if (ile_naw == 0) {
				if (znak == "=") {
					l2 = j;
					poczatekdel = l1;
					paramname = a_params.substring(l1, l2);
					l1 = l2 + 1;
				}
				if (znak == ";"	|| (j == a_params.length - 1)) {
					l2 = j;
					if ((j == a_params.length - 1) && (znak !=";"))
						l2 = l2 + 1;
					paramvalue = a_params.substring(l1, l2);
					paramvalue = trimDelims (paramvalue);
					l1 = l2 + 1;

					if (paramname == a_paramname) 
						koniecdel = l2;
				} // znak
			} // ile_naw
		  } // koniecdel
		} // for
		if (koniecdel > 0) 
			return a_params.substring(0, poczatekdel) + a_params.substring(koniecdel+1, a_params.length);
		return a_params;
	}


	function getparameter(a_params, a_paramname) {
		var paramname = "";
		var paramvalue = "";
		var l1 = 0;
		var l2 = 0;
		var ile_naw = 0;

		//obcinamy nawiasy na poczatku i na koncu
		a_params = trimDelims(a_params);

		//obcinamy spacje i inne dziwne rzeczy
		a_params = stripWhiteSpaces (a_params);

		var j = 0;
		var znak = "";
		for (j = 0; j < a_params.length; j++) {
			znak = a_params.charAt(j);
			if (znak == "(")
				ile_naw += 1;
			if (znak == ")")
				ile_naw -= 1;

			if (ile_naw == 0) {
				if (znak == "=") {
					l2 = j;
					paramname = a_params.substring(l1, l2);
					l1 = l2 + 1;
				}
				if (znak == ";"	|| (j == a_params.length - 1)) {
					l2 = j;
					if ((j == a_params.length - 1) && (znak !=";"))
						l2 = l2 + 1;
					paramvalue = a_params.substring(l1, l2);
					paramvalue = trimDelims (paramvalue);
					l1 = l2 + 1;

					if (paramname == a_paramname) 
						return paramvalue;
				} // znak
			} // ile_naw
		} // for
		return "";
	}

	function setparameter(param, paramname, paramvalue){
		if (paramvalue == "")
			return param;
		return paramname + "=(" + paramvalue + ");" + param;
	}

	function trimDelims(param){
		if (param.charAt(0) == "(")
		{
			// wyciecie nawiasu otwierajacego
			param = param.substring(1, param.length)
			if (param.charAt(param.length-1) == ")")
				param = param.substring(0, param.length - 1)
		}
		return param;
	}


	function getappname(){
		var apps = ""
	//	if(document.F)
 	 //	  apps = getparameter(document.F.sysparameters.value, "webappname");
//		if (apps == "")
			return "/portalzaiks";
//		return apps;
	}

	function zaznacz(val) {
        var dml=document.F;
        var len = dml.elements.length;
        var i=0;	
		var check_len = 0;
		for(var i=0;i<len;i++) {
	                if (dml.elements[i].name=='MULTISELECT') {
	                        dml.elements[i].checked=val;
							check_len ++;
	                }
		}
		if(check_len>1) {
			for(var i=0;i<check_len ;i++) {
				if (val ==1)
					SpanCheck[i].bgColor= "#B5C6CD";
				else	
					SpanCheck[i].bgColor= "";
			}
		}else{
			if (val ==1)
				SpanCheck.bgColor= "#B5C6CD";
			else	
				SpanCheck.bgColor= "";
		}
	}

	function allow(parameters) {
		if (parameters.indexOf("getsysparams=(n);") > 0) return parameters;

		var dml=document.F;
        var len = dml.elements.length;
        var i=0;
		var multi = "";
		var el = "";
		// Odczytanie parametr\u00f3w do wielowyboru
		for(var i=0;i<len;i++) {
                if (dml.elements[i].name=='MULTISELECT' && dml.elements[i].checked == 1) {
						el = dml.elements[i].value;
                        multi = multi + el + ",";
                }
	    }
		// Kasowanie starego wielowyboru
		parameters = delparameter (parameters, "multivalue");
		parameters = setparameter (parameters, "multivalue", multi);
		return parameters;
	}

	function doOkoScan(f)
	{
	 return false; 
	}


	// otworz/wywolaj page w ramce/oknie target z parametrami parameters    
	function isSpecialPage(page)
	{
     if (page == "zax_Login.jsp") return true;
     if (page == "idea/logowanie/login.jsp") return true;
     if (page == "zax_index.jsp") return true;
	 if (page == "AddObjFormShow.jsp")  return true;
	 if (page == "AddObject.jsp")  return true;
 	 if (page == "DictShow.jsp")  return true;
 	 if (page == "SaveFileBrowser.jsp")  return true;
 	 if (page == "zax_WitrynaAdd.jsp")  return true;
  	 if (page == "zax_AktualnosciAdd.jsp")  return true;
	 if (page == "zax_OsobaAdd.jsp")  return true;
  	 if (page == "zax_PytaniaAdd.jsp")  return true;
	 if (page == "zax_Dok_wewAdd.jsp")  return true;
	 if (page == "zax_Akty_prawneAdd.jsp")  return true;
	 if (page == "zax_SlownikAdd.jsp")  return true;
	 if (page == "zax_OsobyAdd.jsp")  return true;
  	 if (page == "zax_LaczeAdd.jsp")  return true;
 	 if (page == "zax_ModifyOIShow.jsp")  return true;
	 if (page == "ModifyOIShow.jsp")  return true;
	 if (page == "zax_PytaniaAdminAdd.jsp") return true;
 	 if (page == "dok_OIAdd.jsp")  return true;
 	 if (page == "dok_AssAdd.jsp")  return true;
	 if (page.length > 12){
      if (page.substring(0, 12) == "DictShow.jsp")
       return true;
	 }
	 if (page.length > 12){
      if (page.substring(0, 12) == "TreeShow.jsp")
       return true;
	 }

	 return false;
	}

	function stop_oko()
	{
	 if (top.faq_menu != null)
   	    top.faq_menu.location.href = 'zax_MenuOgolneDolne.jsp?sysparameters=packed=(true);';
	 if (top.aktual_menu != null)
 	    top.aktual_menu.location.href = 'zax_MenuOgolneDolne.jsp?sysparameters=packed=(true);';
	 if (top.witr_menu != null)
 	    top.witr_menu.location.href = 'zax_MenuOgolneDolne.jsp?sysparameters=packed=(true);';
	 if (top.slow_menu != null)
 	    top.slow_menu.location.href = 'zax_MenuOgolneDolne.jsp?sysparameters=packed=(true);';
	 if (top.osoby_menu != null)
   	    top.osoby_menu.location.href = 'zax_MenuOgolneDolne.jsp?sysparameters=packed=(true);';

	}
	 

	function doaction(page, target, parameters)
    {  
//		alert(page);
		if (target == '_back'){
			window.history.go(-1);
			return;
		}
		if ('null' == parameters)  parameters = '';

        if (page.indexOf('&') > 0 && target.indexOf('&') > 0 && parameters.indexOf('division') > 0){
         k = page.indexOf('&');
         subpage = page.substring(0, k);
		 page = page.substring(k+1);

         k = target.indexOf('&');
         subtarget = target.substring(0, k);
		 target = target.substring(k+1);

         division = getparameter(parameters, "division");
 	     parameters = delparameter(parameters, "division");

		 doaction(subpage, subtarget, parameters);

		 doaction(page, target, division);
		 return;
        }

        if (page == null || page == "") 
			return;
		if (target == null || target == "" || target == "SELF") 
		  target = "_self";
		if (target == "NEW") 
		  target = "_blank";

        if (parameters.indexOf("powiazania") < 0){
			if (page == "zax_LaczeDisplay.jsp" && (top.document.title.indexOf(':') < 0))
  				return;
		}

		if (target.length > 13){
		 val = target.substring(0, 13);
		 if (val == '_noBackWindow')
            target = target.toLowerCase(); 
		}

        vtarget = '_noback'; 
        if (target.length >= 7)
		 vtarget = target.substring(0, 6);

		if (page != "zax_OLaczeDisplay.jsp" ){
 		 k = top.document.title.indexOf(':');
//		 		  alert("tu 2 " + vtarget.indexOf('_noback') + " " + vtarget);
		 if (k > 0 && (vtarget.indexOf('_nobac') < 0)){
          top.document.title =  top.document.title.substring(0, k-1);
//		  alert("tu " + vtarget.indexOf('_noback') + " " + vtarget);
		  stop_oko();
		 }
		}

		if (parameters.length > 0 && parameters.charAt(0) == '$' && parameters.charAt(1) == '$'){
			var commonparameters = getparamvaluefromnamedform("C", "common");
			var newname = parameters.substring(1, parameters.length);
			parameters = getparamvalue(newname);
			parameters = commonparameters + ';' + parameters;
		} else if (parameters.length > 0 && parameters.charAt(0) == '$')
			parameters = getparamvalue(parameters);

		// walidacja calego dokumentu
		var vp = getparameter(parameters, "validateaction");

		if (vp != "n") vp = "y";
		if (parameters.indexOf("getsysparams=(n);") > 0)  vp = "n";

		if (vp == "y") {
			if (allValidate()== false)
				return;
		}
		allCheck()

		parameters = allow(parameters);
		
		if (getparameter(parameters, "confirm") == "y"){
			parameters = delparameter (parameters, "confirm");
			if (confirm("Czy kontynuowac?") == false)
				return;
		}

		// trzeba zapewni\u00e6 mo\u00bfliwo\u009c\u00e6 modyfikacji parameter\u00f3w
		if (page == null || page == "") 
			return;
		if (target == null || target == "" || target == "SELF") 
		  target = "_self";
		if (target == "NEW") 
		  target = "_blank";

		if (parameters.indexOf("getsysparams=(n);") < 0)
 	 	 Validate();

		var info = getparameter(parameters, "window");

		if (info == "INFO"){
			parameters = delparameter (parameters, "window");
			// dla identyfikator\u00f3w multivalue zamienia # na $, bo inaczej nie przejdzie
			var mv = "";
			mv = getparameter(parameters, "multivalue");
			if (mv != null && mv != ""){
				mv = replacechar(mv, '#', '$');
				parameters = delparameter(parameters, "multivalue");
				parameters = setparameter(parameters, "multivalue", mv);
			}
			var actionopen = getappname() + "/" + page+"?parameters="+parameters + "&sysparameters=" + document.F.sysparameters.value;
			OpenCenterWithFlags (actionopen, 450, 250, 'resizable=no');
		}
	    windowtitle = '';
     	winparams = 'location=yes,menubar=yes,status=yes,top=0,left=0,resizable=yes';  

 		if (target == '_noback'){
		  height = top.screen.availHeight - 90;
		  width = top.screen.availWidth - 10;
 		  winparams = 'scrollbars=auto,location=yes,menubar=yes,status=yes,top=0,left=0,resizable=yes,height='+height+',width='+width;
		}


		if (target == '_mapa'){
//		  height = top.screen.availHeight - 90;
//		  width = top.screen.availWidth - 10;
 		  winparams = 'scrollbars=yes,location=no,menubar=no,status=yes,top=50,left=50,resizable=yes,height=600,width=600';
		}

		if (target == "$cigdoc" || target == "#cigdoc"){				
			winparams = 'location=no,menubar=no,status=no,top=0,left=0,resizable=yes';
			target="_noback";		
		}
		wincolor = '#f2f6f7';
		leftmargin = 0;
		if (target.length > 7){
 		  val2 = target.substring(0, 13);
          if (val2 == '_nobackwindow'){
  	       val2 = target.substring(14);
		   while(val2.indexOf('$') != -1)
 		     val2 = val2.replace('$',',');

		   if (val2.indexOf('{') > 0  && val2.indexOf('}') > 0){
              i = val2.indexOf('{');
              k = val2.indexOf('}');
              windowtitle = val2.substring(i+1, k);  
		   }
		   if (val2.indexOf('[') > 0  && val2.indexOf(']') > 0){
              i = val2.indexOf('[');
              k = val2.indexOf(']');
              wincolor = val2.substring(i+1, k);    
		   }
  
           if (val2.indexOf('leftmargin') >= 0){
              i = val2.indexOf('leftmargin');             
			  leftmargin = val2.substring(i + 11); 
			  rest = '';
			  if (leftmargin.indexOf(',') > 0){
               j = leftmargin.indexOf(',');                              
   			   rest = leftmargin.substring(j+1);
			   leftmargin = leftmargin.substring(0, j);
			  }
			  if (i > 0)
               val2 = val2.substring(0, i-1) + ',' + rest;
			  else
               val2 = rest;
           }
		   if (val2.indexOf('{') > 0  && val2.indexOf('}') > 0){
              i = val2.indexOf('{');
              k = val2.indexOf('}');
              windowtitle = val2.substring(i+1, k);  
		   }
		   if (val2.indexOf('[') > 0  && val2.indexOf(']') > 0){
              i = val2.indexOf('[');
              k = val2.indexOf(']');
              wincolor = val2.substring(i+1, k);    
		   }

           winparams =  val2 + 'status=yes,top=' + (top.screen.availHeight-556) + ',left=' + (top.screen.availWidth-655);  
		   target = '_nobackwindow';
          }             		 
          else{
  		   val1 = target.substring(0, 7);
           if (val1 == '_noback'){
		    val2 = target.substring(8);
		    while(val1.indexOf('$') != -1)
 		      val2 = val1.replace('$',',');
			if (val2.indexOf('{') > 0  && val2.indexOf('}') > 0){
              i = val2.indexOf('{');
              k = val2.indexOf('}');
              windowtitle = val2.substring(i+1, k);    
			}
 		    if (val2.indexOf('[') > 0  && val2.indexOf(']') > 0){
              i = val2.indexOf('[');
              k = val2.indexOf(']');
              wincolor = val2.substring(i+1, k);    
		    }
	  	    height = top.screen.availHeight - 118;
		    width = top.screen.availWidth - 10;
  		    winparams = 'scrollbars=auto,location=yes,menubar=yes,status=yes,top=0,left=0,resizable=yes,height='+height+',width='+width;
 		    target = '_noback';
           }
		  } 
		}

//        alert(target);
		if (target == '_noback' || target == '_nobackwindow' || target=='_mapa'){    
         var win =  window.open('', '', winparams);
		 if(win == null) { alert('Blokada okienek popup, oblokuj to dla portalu Zaiks, w celu poprawnej nawigacji !!!'); return; }
		 win.document.open();
         var activeWindow = win; 
		 var left = null;
		 if (target == '_nobackwindow'){      
             win.document.writeln('<HTML>');
	  	  	 win.document.writeln('<HEAD>');
			 win.document.writeln(' <TITLE>' + windowtitle + '</TITLE>');     
			 win.document.writeln('</HEAD>');
			 win.document.writeln('</HTML>');

	  	  	 win.document.writeln('<FRAMESET cols="' + leftmargin + ',*,0" framespacing=0 border=0 frameborder=no>');
			 win.document.writeln('    <FRAME name="noback_left"  marginWidth=0 marginHeight=0 frameBorder=no noResize scrolling=no>');     
			 win.document.writeln('    <FRAME name="noback_center" marginWidth=0 marginHeight=0 frameBorder=no noResize scrolling=no>');     
			 win.document.writeln('    <FRAME name="noback_right" marginWidth=0 marginHeight=0 frameBorder=no noResize scrolling=no>');        
			 win.document.writeln('</FRAMESET>');
 		     win.document.close();

			 win.noback_left.document.open();
			 win.noback_left.document.writeln('<HTML>');
			 win.noback_left.document.writeln(' <BODY bgcolor="' + wincolor + '">');
			 win.noback_left.document.writeln(' </BODY>');
			 win.noback_left.document.writeln('</HTML>');
	         win.noback_left.document.close();

 			 win.noback_right.document.open();
			 win.noback_right.document.writeln('<HTML>');
			 win.noback_right.document.writeln(' <BODY bgcolor="' + wincolor + '">');
			 win.noback_right.document.writeln(' </BODY>');
			 win.noback_right.document.writeln('</HTML>');
	         win.noback_right.document.close();

			 win.noback_center.document.open();
 		     win.noback_center.document.writeln('<HTML>');
			 win.noback_center.document.writeln(' <BODY bgcolor="' + wincolor + '">');
			 win.noback_center.document.writeln(' <FORM NAME="F" METHOD="post">');
			 win.noback_center.document.writeln('  <INPUT TYPE="hidden" NAME="sysparameters" VALUE="">');
			 win.noback_center.document.writeln('  <INPUT TYPE="hidden" NAME="parameters" VALUE="">');
			 win.noback_center.document.writeln('  </INPUT>');
			 win.noback_center.document.writeln(' </FORM>');
			 win.noback_center.document.writeln(' </BODY>');
			 win.noback_center.document.writeln('</HTML>');
		     win.noback_center.close();

             activeWindow = win.noback_center; 
		 }
		 else{
		  win.document.writeln('<HTML>');
		  win.document.writeln(' <BODY bgcolor="' + wincolor + '">');
		  win.document.writeln(' <FORM NAME="F" METHOD="post">');
		  win.document.writeln('  <INPUT TYPE="hidden" NAME="sysparameters" VALUE="">');
		  win.document.writeln('  <INPUT TYPE="hidden" NAME="parameters" VALUE="">');
		  win.document.writeln('  </INPUT>');
		  win.document.writeln(' </FORM>');
		  win.document.writeln(' </BODY>');
		  win.document.writeln('</HTML>');
	      win.document.close();
		 }
		 void('');
 		 if (info == ""){
            parameters = setparameter(parameters, "windowtitle", windowtitle);
            parameters = setparameter(parameters, "marginWidth", "0");
            parameters = setparameter(parameters, "wincolor", wincolor);
		 
			if(parameters.indexOf("getsysparams=(n);") > 0)
 			   activeWindow.document.F.sysparameters.value = "packed=(true);"
			else
 			  activeWindow.document.F.sysparameters.value = document.F.sysparameters.value;

 	        sysparameters = activeWindow.document.F.sysparameters.value;
            sysparameters = setparameter(sysparameters, "isback", "y");
            activeWindow.document.F.sysparameters.value = sysparameters; 			
			activeWindow.document.F.parameters.value = parameters;
//			alert(sysparameters);
//			alert(parameters);

 		    if (page.indexOf('http') >= 0)
             activeWindow.document.F.action = page; 
			else
 			 activeWindow.document.F.action = getappname() + "/" + page;
			activeWindow.document.F.target = '_self';
			activeWindow.document.F.submit();		
  		    void('');

			return;
		 } 
		}
		else{
 		 if (info == ""){  		   
 		    document.F.parameters.value = parameters;
            calcLength  = "sysparameters=packed=(true);&parameters=".length + document.F.parameters.value.length;

		    isZaiks = false;
			if (getappname() == '/zaiks' || getappname() == '/portalzaiks'){
             if (!isSpecialPage(page))
                isZaiks = true;             
			}

			if ((getparameter(parameters, "post") != "true") && isZaiks && (calcLength < 512) && (target != '_blank')){             
			 while (parameters.indexOf('#') > 0)
			    parameters = parameters.replace('#', '$');
             if (page.indexOf('http') < 0)
 			  page = getappname() + "/" + page;

             adress = page + "?sysparameters=packed=(true);&parameters=" + parameters;
			 if (target == "_self")
              location.href = adress;
			 else
		 	  if (target == "_parent")
               parent.location.href = adress;
              else
			   if (target == "_top")
                top.location.href = adress;
               else{
                if (top.frames[target] != null)
                 top.frames[target].location.href = adress;
				else{
                 if (parent.frames[target] != null)
                  parent.frames[target].location.href = adress;
		 		 else
                  alert('Nie mozliwe wykonanie polecenia !!!');
				}
			   }
			}
			else{
 			 document.F.parameters.value = parameters;
 		     if (page.indexOf('http') >= 0)
              document.F.action = page; 
			 else
 			  document.F.action = getappname() + "/" + page;

			 document.F.target = target;
			 document.F.submit();		
			}
			return;
		 } 
		}
	}

    function dopostaction(page, target, sysparameters, parameters, wincolor){
		   newDoc = top.frames[target].document.open();
	  	   top.frames[target].document.writeln('<HTML>');
		   top.frames[target].document.writeln(' <BODY bgcolor="' + wincolor + '">');
 		   top.frames[target].document.writeln(' <FORM NAME="F" METHOD="post">');
		   top.frames[target].document.writeln('  <INPUT TYPE="hidden" NAME="sysparameters" VALUE="">');
		   top.frames[target].document.writeln('  <INPUT TYPE="hidden" NAME="parameters" VALUE="">');
		   top.frames[target].document.writeln('  </INPUT>');
		   top.frames[target].document.writeln(' </FORM>');
		   top.frames[target].document.writeln(' </BODY>');
		   top.frames[target].document.writeln('</HTML>');
           top.frames[target].document.close();
		   void('');
 		   
 		   newDoc.F.parameters.value = parameters;
           newDoc.F.sysparameters.value = sysparameters;
     	   apps = getparameter(sysparameters, "webappname");
  	       if (apps == "")
			 apps = "/portal";
		   if (page.indexOf('http') >= 0)
             newDoc.F.action = page; 
		   else
 		     newDoc.F.action = apps + "/" + page;
		   newDoc.F.target = '_self';
		   newDoc.F.submit();		
		   
   	       void('');		   
	}


	// otworz/wywolaj page w ramce/oknie target z parametrami parameters
	function doactionWindow(page, target, parameters){
		// walidacja calego dokumentu
		if (allValidate()== false)
			return;

		// trzeba zapewni\u00e6 mo\u00bfliwo\u009c\u00e6 modyfikacji parameter\u00f3w
		parameters = allow(parameters);
		// trzeba zapewni\u00e6 mo\u00bfliwo\u009c\u00e6 modyfikacji parameter\u00f3w		
		if (page == null || page == "") 
			return;
		if (target == null || target == "" || target == "SELF") 
		  target = "_self";
		if (target == "NEW") 
		  target = "_blank";
		document.F.submit();		
     	window.open(getappname() + "/" + page+"?parameters="+parameters,'myname','resizable=no,width=215,height=240,left=100,top=100');
	}


	function validate(element, datatype)
	{
	}

        //do realizacji pustych skokow
        function nothing() {
            return;
        }    

	function guc_open(page, target, parameters)
	{
		var param = parameters;

		if (param.toUpperCase().indexOf("OR/OR")==-1 && param.toUpperCase().indexOf("OR\\OR")==-1) {
			var l = param.indexOf("=");
			var atr = param.substring(0, l);
			param = param.substring(l+1, param.length);
			var oi = "";
			var file = "";
			var anch = "";

			var l1 = param.indexOf(".");
			var l2 = param.indexOf(".", l1+1);
			var l3 = param.indexOf(".", l2+1);
			var l5 = param.indexOf("#", l2+1);
			var l6 = param.indexOf(";", l2+1);
			if (l6==-1) l6 = param.length;
			if (l5==-1) l5 = l6;
			if (l3==-1) l3 = l5;
			var l4 = param.indexOf("_", l2+1);
			if ((l4==-1) || (l4>l5)) l4 = param.indexOf("-", l2+1);
			if ((l4==-1) || (l4>l5)) l4 = -1;
			if (l4==-1) {  //trzeba dodac koncowke '_000'
			  oi = param.substring(0, l3);
			  file = param.substring(l2+1, l3) + "_000" + param.substring(l3, l5);
			} else {
			  oi = param.substring(0, l4);
			  file = param.substring(l2+1, l5);
			}

			// oi musi byc bez poprzedzajacych zer, np. zaimast DU.1999.0002 ma byc DU.1999.2
			var ll = oi.indexOf(".0");
			var oi_tmp = "";
			while (ll!=-1) {
			   oi_tmp = oi;
			   oi = oi_tmp.substring(0,ll+1) + oi_tmp.substring(ll+2);
			   ll = oi.indexOf(".0");
			}

			anch = param.substring(l5+1, l6);

			param = atr + '=' + oi;
			if (file != "") param = param + '#' + file;
			if (anch != "") param = param + '#' + anch;

			param = param + ';' + "OIType=AKT;AttrName=ID_LOG;AttrType=S";

			if (page.toLowerCase()=="jump.jsp") page="guc_AktShow.jsp";
            doaction(page, "_blank", param);
		} else {
			//TO JEST ORZECZENIE, np. path=HTTP://ABC/SCRIPTS/A1?../../OR/OR/1997/11XX/NSA-1125-ISALU112597_000.HTM..
			// musimy wyciac tylko NSA-1125-ISALU112597

			var l = param.toUpperCase().indexOf(".HTM");
			if (l!=-1) {
			  param = param.substring(0, l);
			  l = param.lastIndexOf("/");
			  if (l==-1) l = param.lastIndexOf("\\");
			  if (l!=-1) {
                 param = "path=" + param.substring(l+1);
			  }
			}
			//usuwamy na koncu nr wersji (czasami jest, ale po co?)
            l = param.indexOf("_000");
			if (l==-1) l = param.indexOf("_001");
			if (l==-1) l = param.indexOf("_002");  //wiecej chyba nie bedzie
			if (l+4 == param.length)
			  param = param.substring(0, l);


 			if (page.toLowerCase()=="jump.jsp") page="guc_OrzShow.jsp";
            doaction(page, "_blank", param);
		}
	}

//funkcje do wyswietlania malego okienka na srodku 
   function GetXCenter(WindowXSize){
	 X = 0 + Math.round(screen.width/2);
	 X = X - Math.round(WindowXSize/2);
	 return(X);
   }

   function GetYCenter(WindowYSize){
	Y = 0 + Math.round(screen.height/2);
	Y = Y - Math.round(WindowYSize/2);
	return(Y);
   }

 function OpenCenter(params,WindowWidth,WindowHeight){
	X = GetXCenter(WindowWidth);
	Y = GetYCenter(WindowHeight);
	parameters = 'left='+X+',top='+Y+',width='+WindowWidth+',height='+WindowHeight;
	window.open(params,'test',parameters);
 }	

 function OpenCenterWithFlags(params,WindowWidth,WindowHeight,flags){

	X = GetXCenter(WindowWidth);
	Y = GetYCenter(WindowHeight);
	parameters = flags + ',' + 'left='+X+',top='+Y+',width='+WindowWidth+',height='+WindowHeight;
	window.open(params,'test',parameters);
}	

// funkcje walidacji - Ela
// funkcja sprawdza czy podana warosc nie jest pusta
	function isNull( val ) {

		var isValid = false;
	 	if (val+"" == "")
	 		isValid = true;
	 	if (val+"" == "null")
	 		isValid = true;
		return isValid;
	}  // end isNull
	
/* ======================================================================
	FUNCTION:  	isData	
	INPUT:		str (string) - the string to be tested
	RETURN:  	komunikat o bledzie "OK" gdy data poprawna
	DESC: 	Funkcja sprawdza, czy data jest poprawna i we wlasciwym formacie ( YY-MM-DD lub YYYY-MM-DD )
	====================================================================== */
    function isData( strData ) {

		// moze byc pusty - od sprawdzania tego czy lancuch pusty mamy inna funkcje
		if (strData+"" == "undefined" || strData+"" == "null" || strData+"" == "")	
			return true;
	
		var len;
		var str = stripWhiteSpaces( strData );
		len = str.length;
		if ( ( len < 6 ) || ( len > 10 ) )
			return false;		

		var i1, i2, i3;
		
		i1 = str.indexOf( "-", 0);
		if ( ( i1 < 1) || ( i1 > 4) || ( (i1 + 1) == (len-1) )) 
			return false;

		var year = str.substr( 0, i1);
		if ( ( year.length != 2  ) && ( year.length != 4  ) )
			return false; // "Zly rok";
		if ( isNaN( year ) ) 
			return false; //"Zly rok";

		i2 = str.indexOf( "-", i1 + 1);
		if ( ( i2 < 3) || ( i2 > 7) || ( i2 == (len - 1) ) ) 
			return false;

		var mm = str.substring( i1+1, i2);
		if ( isNaN(mm) || ( mm < 0 ) || ( mm > 12) )
			return false; // "Zly miesiac=" + mm;

		var dd = str.substring( i2 +1);
		if ( isNaN(dd) || ( dd < 0 ) || ( dd > 31) ) 
			return false; //"Zly dzien=" + dd;
	
		var d = new Date ( year,  mm, dd );

		if ( d == null ) 
			return false; // "Date null";

		return true;   
}


	/* ======================================================================
	FUNCTION:  	isInt	 
	INPUT:  		numstr (string/number) 	 - the string that will be tested to ensure 
	      										   that each character is a digit
					allowNegatives (boolean) - (optional) when true, allows numstr to be
														negative (contain a '-').  When false,
												      any negative number or a string starting
														with a '-' will be considered invalid.
	====================================================================== */
	function isInt( numstr, allowNegatives ) {
		// moze byc pusty - od sprawdzania tego czy lancuch pusty mamy inna funkcje
		if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "")	
			return true;
	
		// Default allowNegatives to true when undefined or null
		if (allowNegatives+"" == "undefined" || allowNegatives+"" == "null")	
			allowNegatives = true;
	
		var isValid = true;
	
		// convert to a string for performing string comparisons.
		numstr += "";	
	
		// Loop through string and test each character. If any
		// character is not a number, return a false result.
	 	// Include special case for negative numbers (first char == '-').   
		for (i = 0; i < numstr.length; i++) {
	    	if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9") || (numstr.charAt(i) == "-"))) {
	       	isValid = false;
	       	break;
			} else if ((numstr.charAt(i) == "-" && i != 0) || 
					(numstr.charAt(i) == "-" && !allowNegatives)) {
	       	isValid = false;
	       	break;
	      }	         	         	       
	   } // END for   
	   
	   	return isValid;
	}  // end isInt


/* ======================================================================
	FUNCTION:  	isNum	 
	INPUT:  		numstr (string/number) - the string that will be tested to ensure 
	      										 that the value is a number (int or float)
	RETURN:  	true, if all characters represent a valid integer or float
	     			false, otherwise.	
	====================================================================== */
	function isNum( numstr ) {
		return isNumeric( numstr, ".");
	}

/* ======================================================================
	FUNCTION:  	isNumeric
	 
	INPUT:  		numstr (string/number) - the string that will be tested to ensure 
	      										 that the value is a number (int or float)
	
	RETURN:  	true, if all characters represent a valid integer or float
	     			false, otherwise.
	====================================================================== */
	function isNumeric( numstr, separator ) {
	
		// Return immediately if an invalid value was passed in
		if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "")	
			return true;
	
		var isValid = true;
		var sep = separator;		
		var decCount = 0;		// number of decimal points in the string
	
		// convert to a string for performing string comparisons.
		numstr += "";	
	
		// Loop through string and test each character. If any
		// character is not a number, return a false result.
	 	// Include special cases for negative numbers (first char == '-')
		// and a single decimal point (any one char in string == '.').   
		for (i = 0; i < numstr.length; i++) {
			// track number of decimal points
			if (numstr.charAt(i) == sep)
				decCount++;
	
	    	if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9") || 
					(numstr.charAt(i) == "-") || (numstr.charAt(i) == sep))) {
	       	isValid = false;
	       	break;
			} else if ((numstr.charAt(i) == "-" && i != 0) ||
					(numstr.charAt(i) == sep && numstr.length == 1) ||
				  (numstr.charAt(i) == sep && decCount > 1)) {
	       	isValid = false;
	       	break;
	      }         	         	       
	   } // END for   
	   
	   	return isValid;
	}  // end isNum
	

/* ======================================================================
	FUNCTION:  	stripWhiteSpaces	
	INPUT:		str (string) - the string to be tested	
	RETURN:  	string bez spacji					
	DESC: 	Funkcja wycina spacje ze stringa
	====================================================================== */
function stripWhiteSpaces( str )
{
	var 	resultStr = "";

	if (str.length==2){
     	if ((str.charAt(0) == "\r") && (str.charAt(1) == "\n"))
  		  return "";
    }

	// Return immediately if an invalid value was passed in
	if (str+"" == "" || str == null)	
		return "";

	// Make sure the argument is a string
	str += "";
	// Loop through entire string, adding each character from the original
	// string if it is a number
	for (var i=0; i < str.length; i++){
      if ( (str.charAt(i) != " ") && (str.charAt(i) != "\r") && (str.charAt(i) != "\n") )
       	resultStr = resultStr + str.charAt(i);
	  else if( i+1 < str.length ){  // czy nastepny znak nie jest spacja
	                                // spacja moze wystapic w zdaniu
        if ( (str.charAt(i+1) != " ") && (str.charAt(i+1) != "\r") && (str.charAt(i+1) != "\n") )
          resultStr = resultStr + str.charAt(i);
      }
   } // end for loop      

   return resultStr;
}

/* ======================================================================
	FUNCTION:  	checkLength	
	INPUT:		pole, ktore ma byc testowane, jego maksymalna dlugosc	
	RETURN:  	false zawartosc pola zawiera wiecej znakow niz podano jako parametr					
	DESC: Funkcja sprawdza, czy isosc znakow w danym polu formatki jest mniejsza od zadanej
	====================================================================== */
function checkLength( fld, n) {

	len = fld.length;

	if( len > n)
		return false;
	return true;
}

/* ======================================================================*/
// funkcje zwracajace komunikat o bledzie 
/* ======================================================================*/
    function getNullErrorStr( fldName ) {
	  return "Pole '"+fldName + "' musi byc wypelnione \n";  
    }


    function getDataErrorStr( fldName, value ) {
	   return "W polu '" + fldName + "' warto\u009c\u00e6 - '"+ value +"' - nieprawid\u00b3owy  format daty  dopuszczalne formaty 'YY-MM-DD' oraz 'YYYY-MM-DD' \n";  
    }

    function getIntErrorStr( fldName, value ) {
	   return "W polu '" + fldName + "' warto\u009c\u00e6 - '"+ value +"' - nie jest to liczba ca\u00b3kowita \n";  
    }

    function getNumErrorStr( fldName, value ) {
	   return "W polu '" + fldName + "' warto\u009c\u00e6 - '"+ value +"' - nie jest liczb\u00b9 \n";  
    }

    function getMaxLengthErrorStr( fldName, nChars ) {
	   return "W polu '"+ fldName + "' wpisano ponad " + nChars + " znak\u00f3w \n";  
    }

    function getMaxValueErrorStr( fldName, nvalue, max ) {
	   //return "W polu '"+ fldName + "' warto\u009c\u00e6 - '"+nvalue+"' przekracza zakres warto\u009cci maksymalnej - "+max+"\n";  
	   return "W polu '"+ fldName + "' wartosc - '"+nvalue+"' przekracza zakres wartosci maksymalnej - "+max+"\n"; 
    }

    function getMinValueErrorStr( fldName, nvalue, min ) {
	   //return "W polu '"+ fldName + "' warto\u009c\u00e6 - '"+nvalue+"' przekracza zakres warto\u009cci minimalnej - "+min+"\n";  
	   return "W polu '"+ fldName + "' wartosc - '"+nvalue+"' przekracza zakres wartosci minimalnej - "+min+"\n";
    }

function getMaskErrorStr( fldName, value ) {
//bo polskie litey	   return "W polu '" + fldName + "' warto\u009c\u00e6 - '"+ value +"' - niezgodna z wymaganym formatem. \n";  
	   return "W polu '" + fldName + "' wartosc - '"+ value +"' - niezgodna z wymaganym formatem. \n";  
    }


function replaceSubstring(inputString, fromString, toString) {
   // Goes through the inputString and replaces every occurrence of fromString with toString
   var temp = inputString;
   if (fromString == "") 
      return inputString;
   if (toString.indexOf(fromString) == -1) { // If the string being replaced is not a part of the replacement string (normal situation)
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } else { // String being replaced is part of replacement string (like "+" being replaced with "++") - prevent an infinite loop
      var midStrings = new Array("~", "`", "_", "^", "#");
      var midStringLen = 1;
      var midString = "";
      // Find a string that doesn't exist in the inputString to be used
      // as an "inbetween" string
      while (midString == "") {
         for (var i=0; i < midStrings.length; i++) {
            var tempMidString = "";
            for (var j=0; j < midStringLen; j++) { tempMidString += midStrings[i]; }
            if (fromString.indexOf(tempMidString) == -1) {
               midString = tempMidString;
               i = midStrings.length + 1;
            }
         }
      } // Keep on going until we build an "inbetween" string that doesn't exist
      // Now go through and do two replaces - first, replace the "fromString" with the "inbetween" string
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + midString + toTheRight;
      }
      // Next, replace the "inbetween" string with the "toString"
      while (temp.indexOf(midString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(midString));
         var toTheRight = temp.substring(temp.indexOf(midString)+midString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } // Ends the check to see if the string being replaced is part of the replacement string or not
   return temp; // Send the updated string back to the user
} // Ends the "replaceSubstring" function


/* ======================================================================
	FUNCTION:  	validate	
	INPUT:		pole, ktore ma byc testowane, 
				typ pola
				czy wymagany
				opis pola
				maksymalny rozmiar
				minimalna wartosc
				maksymalna wartosc
	RETURN:  	false gdy wystapil blad					
	DESC: Funkcja sprawdza wprowadzone dane w danym polu
	  // !!!!! dodac test dla stringow dla zakresu min i max
 ======================================================================*/
	function validate(element, datatype, mandatory,  description, size, min, max){
	      var msg="";
		  var value="";	
		  var type = "";

		  // czy wartosc jest czytana z elementu
		  // czy podana w zmiennej element
		  if (element.value+"" == "undefined" )
			  value = element;
		  else {
			  value = element.value; 
			  type = element.type;
          }
		  value = stripWhiteSpaces(value);
		  element.value =  replaceSubstring(value, "\t", "        ");
          element.value =  replaceSubstring(value, "'", "\"");
		  // sprawdzenie czy pola jest wymagane	  
		  if (( mandatory.toUpperCase()=='Y') && (isNull( value ) == true ))
            msg += getNullErrorStr(description);

		  if ( (datatype.length>1 )&&(isNull( value ) == false ))
			  if (compare_with_mask(datatype,value)==false) 
		        msg += getMaskErrorStr(description,value);

		  // sprawdzenie formatu daty
		  if (( datatype.toUpperCase()=='D') &&  (isData( value ) == false  )) 
            msg += getDataErrorStr(description, value);

		  // testowanie liczb calkowitych
		  if (type+"" !="radio"){
  		    if (( datatype.toUpperCase()=='I') && (isInt( value ) == false )) 
              msg += getIntErrorStr(description, value);
          }

 		  if (( datatype.toUpperCase()=='F') && (isNum( value ) == false )) 
            msg += getNumErrorStr(description, value);

          // sparwdzenie dlugosci
		  if ( size >0 && checkLength( value, size) == false )
		     msg += getMaxLengthErrorStr( description, size );

          // testowanie zakresu
		  // testowany jest zakres dla daty i liczn
		  // !!!!! dodac test dla stringow

   	      if ((isNull(min)== false  || isNull(min)== false ) 
			    && isNull( value ) == false ) {
    		  if ((( datatype.toUpperCase()=='D') &&  (isData( value ) == true  )) 
  		         || (( datatype.toUpperCase()=='I') && (isInt( value ) == true ))){ 

			    if (isNull(min)== false && (value - min < 0))
  		           msg += getMinValueErrorStr( description, value, min );

			    if (isNull(max)== false && (value - max > 0))
  		           msg += getMaxValueErrorStr( description, value, max );
			  }
          }

  	      if ( msg.length > 0 ) {
		    alert( msg ); 

		    if (element.value+"" != "undefined" )
				element.focus();
			return false;
          }

		  return true;		  
	}


/* ======================================================================
	FUNCTION:  	allValidate
	INPUT:			
	RETURN:  	false gdy wystapil blad					
	DESC: Funkcja sprawdza wprowadzone dane dla calego dokumentu
		  Kazde dane do sprawdzenia powinny byc wlozone do osobnego pola 
		  typu hidden o nazwie VXXDATA$IGNORE a wartosci jako string
		  skladajacy sie z danych pola do sprawdzenia 
		  wartosci$typu$mandatory$description$size$min$max$name pola do sprawdzenia
		  ( 5 danych do sprawdzenia powinno byc w dokumencie 5 pol o nazie VXXDATA$IGNORE)
 ======================================================================*/
	function allValidate()	{
        var dml=document.F;
        var len = dml.elements.length;
        var i=0;
        var name_elem ="";
        var value_elem ="";
        var value ="";
        var datatype ="";
        var mandatory ="";
        var description ="";
        var name ="";
        var value_prev ="";
        var name_prev ="";
        var size="";
        var mask="";

		// pobranie wszystkich elementow
		for(var i=0;i<len;i++) {
			// werfikacja elementow typu hidden
			if (dml.elements[i].type.toLowerCase()=='hidden'){
				name_elem = dml.elements[i].name;
				// tylko pola o nazwie - VXXDATA$IGNORE
   	 	        var l1 = name_elem.indexOf("VXXDATA$IGNORE");
        		if (l1 == 0){
					value_elem = dml.elements[i].value;

					var e_1 = value_elem.indexOf("$");
					value = value_elem.substring(0, e_1);

					var e_2 = value_elem.indexOf( "$", e_1+1);
					datatype = value_elem.substring(e_1+1, e_2);

					var e_3 = value_elem.indexOf( "$", e_2 + 1);
					mandatory = value_elem.substring(e_2+1, e_3);
				
					var e_4 = value_elem.indexOf( "$", e_3 + 1);
					description = value_elem.substring(e_3+1, e_4);

					var e_5 = value_elem.indexOf( "$", e_4 + 1);
					size = value_elem.substring(e_4+1, e_5);
				
					var e_6 = value_elem.indexOf( "$", e_5 + 1);
					min = value_elem.substring(e_5+1, e_6);

					var e_7 = value_elem.indexOf( "$", e_6 + 1);
					max = value_elem.substring(e_6+1, e_7);

					name = value_elem.substring(e_7+1);

					// pomijane sa pola $IGNORE
		  	 	    var l2 = name.indexOf("$IGNORE");
        			if (l2 < 0){
		       		   // pobranie wprowadzonej wartosci przez uzytkownika 
					   // dla pola ktore bedie walidowane
						value = getValueElement(name);	

						// wywolanie walidacji dla danego pola 
						if (validate(value, datatype, mandatory,  description, size, min, max) == false){
							setFocusElement(name);
							return false; 
					    }
					}
				}	
			}
	    }

        return true;
    }

	function allCheck(){
	}

	function convertString(value){
      var k=0
	  while((k = value.indexOf('$')) > 0){
        val1 = value.substring(0, k);
	    val2 = value.substring(k+1);
		value = val1 + '&#036;' + val2;
	  }
	  while((k = value.indexOf('*')) > 0){
        val1 = value.substring(0, k);
	    val2 = value.substring(k+1);
		value = val1 + '§042§' + val2;
	  }
	  return value;
	}


    function setValueElement( l_name, l_value)	{
        var dml=document.F;
        var len = dml.elements.length;
        var k=0
		// pobranie wszystkich elementow
		for(var k=0;k<len;k++) {
			if (dml.elements[k].name == l_name){
				dml.elements[k].value = l_value;
				return l_value;
            }
        }
		return l_value;
    }

/* ======================================================================
	FUNCTION:  	getValueElement	
	INPUT:		nazwa pola, ktore ma byc testowane	
	RETURN:  	wartosc pola					
	DESC: Funkcja zwraca wartosc danego pola
 ======================================================================*/
	function getValueElement( l_name){
        var dml=document.F;
        var len = dml.elements.length;
        var k=0
        var l_value ="";
		// pobranie wszystkich elementow
		for(var k=0;k<len;k++) {
			if (dml.elements[k].name == l_name){
				l_value = dml.elements[k].value;
				return l_value;
            }
        }
		return l_value;
    }

/* ======================================================================
	FUNCTION:  	setFocusElement
	INPUT:		nazwa pola, ktore ma byc testowane	
	RETURN:  				
	DESC: Funkcja ustawia fokus danego pola
 ======================================================================*/
	function setFocusElement( l_name){

        var dml=document.F;
        var len = dml.elements.length;
        var k=0
        var l_value ="";

		// pobranie wszystkich elementow
		for(var k=0;k<len;k++) {
			if (dml.elements[k].name == l_name){
				dml.elements[k].focus();
				return;
            }
        }
		return;
    }

/* ======================================================================
	FUNCTION:  	findActive	
	INPUT:		a_value varto\u009c\u00e6 szukanego pola 	
	RETURN:  	pole kt\u00f3re aktualnie jest podswietlone 					
	DESC: Funkcja znajduje chekbox dla wybranej pozycji na podstawie jego warto\u009cci
 ======================================================================*/
	function findActive(a_value){
		// brak checkbox\u00f3w 

			if (F.MULTISELECT == null)
				return null;			
			if ( (a_value  == null) || (a_value ==""))
				return null;
			if (F.MULTISELECT.length == null){ // jest tylko 1 pozycja 
				if (F.MULTISELECT.value==a_value) {
					return F.MULTISELECT;					
				}
			}else{ // jest wi\u00eacej ni\u00bf jedna pozycja
				for(var i=0;i<F.MULTISELECT.length;i++) {					
						if (F.MULTISELECT[i].value==a_value) {
								return F.MULTISELECT[i];					
						}
				}
			}
			// nie znalziono 			
			return null; 		
	}


//Przekonwertowanie wszystkich pol MULTI 
function Validate(){
	if (document.F.elements.length != null){	
    	for ( var i=0; i <  document.F.elements.length ; i++ ) 
			listToString(document.F.elements[i]);
	}
}

//zamienia w polach typu multi wszystkie opcje na jedn\u00b9 z  wszystkimi warto\u009cciami
function listToString(a_name){
	var l_oper = "";
	if(a_name.name != null){
	  l_oper = getOper(a_name.name);
		if (  ((l_oper.indexOf("MULTI")>-1)/*(l_oper == "MULTI")*/ || (l_oper == "NOREPEATS")) && ((a_name.type == "select-multiple") || (a_name.type == "select-one")) && (a_name.length>0)  ){	
			// zamiana wszystkich opcji 
        	//alert("test" + a_name.name);
			for ( var i=1; i <  a_name.length ; i++ ) {
					a_name.options[0].value += "\u00a0" + a_name.options[ i ].value ;
					a_name.options[i].value = '';
					a_name.options[i].selected = false;
			}
			a_name.options[0].selected = true;		
		}
	}
}


// pobranie operatora 
function getOper(a_name){		
	var l_oper = "";
	var  l_ind = a_name.indexOf("$");		
	if ( l_ind >0  ) {
		var l_indLast = a_name.lastIndexOf("$");
		if ( (l_indLast >0) && (l_indLast != l_ind) )
			l_oper = a_name.substring(l_ind+1, l_indLast);
		else
			l_oper = a_name.substring(l_ind+1);
	}	
	return l_oper;
}


 function update_zobacz(menuFrame, id, objType, title, file){
   if (menuFrame != null){
	top.document.title += ' : ' + title;
    new_loc = menuFrame.location.href;
	new_loc.substring(0, new_loc.length-2);
	if (new_loc.indexOf('&parameters') > 0)
      new_loc = new_loc.substring(0, new_loc.indexOf('&parameters'));

	id = id.replace('#','$');
    new_loc += "&parameters=ID=(" + id + ");objType=(" + objType + ");windowtitle=(" + title + ")";

    menuFrame.location.replace('zax_Tlo.html');
	void('');

    menuFrame.location.replace(new_loc);
  }
 }

 function extractParam(paramname, params){
   alert(paramname);
   return '0';
 }

 function update_oko(menuFrame, params, title, file){
   if (menuFrame != null){
    powiazania = getparameter(params, 'powiazania');
	if (powiazania != 'true' && powiazania != 'y') return;
	id = getparameter(params, 'ID_XML');
	objType = getparameter(params, 'OIType');
    k = id.indexOf('!035!');
	id = id.substring(0, k) + '#' + id.substring(k+5, id.length);
	top.document.title += ' : ' + title;
    new_loc = menuFrame.location.href;
	new_loc.substring(0, new_loc.length-2);

	if (new_loc.indexOf('&parameters') > 0)
       new_loc = new_loc.substring(0, new_loc.indexOf('&parameters'));
	id = id.replace('#','$');
    new_loc += "&parameters=ID=(" + id + ");flash=(true);objType=(" + objType + ");windowtitle=(" + title + ")";

	void('');
//	alert(new_loc);
    menuFrame.location.href = new_loc;
   }
   else
    top.document.title = title;
 }

 function setFocus(){
  if (document.F.elements.length > 2){
   for (i=0; i<document.F.elements.length ; i++){
     if (document.F.elements[i].type){
   	  if (document.F.elements[i].type == "text"){
        document.F.elements[i].focus();
		return;
      }

 	  if (document.F.elements[i].type == "textarea"){
        document.F.elements[i].focus();
		return;
      }
	  
 	  if (document.F.elements[i].type == "select-one"){
        document.F.elements[i].focus();
		return;
      }

 	  if (document.F.elements[i].type == "select-multiple"){
        document.F.elements[i].focus();
		return;
      }

     } 
   }
  }
 }
 

/*******************************************************************************
*	Skrypty walidacji danej z podaną maska 
*	autor:	Z.Wroblewski
*	
*	funkcja walidująca:
*		compare_with_mask(maska, dana)
*	 zwraca 
*		true  - gdy format podanej danej opowiada masce,
*		false - w przeciwnym wypadku
*	
*	Poprawność maski nie jest sprawdzana !!!!
*	Maska składa się z wyrażeń regularnych i części stałych miądzy tymi wyrażeniami.
*	
*	Format wyrażenia :
*	!%<t><len_min>-<len_max>!^		
*	lub
*	!%<t><len_min>+!^
*	lub
*	!%<t><len>!^
*	
*	gdzie :
*	!%		- znacznik początku wyrażenia
*	!^		- znacznik konca wyrażenia
*	t		- typ zmiennej , zawsze jednoliterowy możliwe wartości to (obecnie):
*							i - liczba
*							c - dowolny napis
*	l_min	- minimalna długość zmiennej
*	l_max	- maksymalna długość zmiennej 
*	l_len   - długość zmiennej 
*	
*	Przyklad :
*	!%i3!^		- liczba integer o długości 3 znaków 
*	!%i3+!^		- liczba integer o długości co najmniej 3 znaków 
*	!%i3-10!^	- liczba integer o długości od 3 do 10 znaków 
*	
*	
*	Maska na polski kod pocztowy:
*	!%i2!^-!%i3!^
*	
*******************************************************/

var g_maska_token ;
var g_maska_fix ;
var g_maska_t_ind  ;
var g_maska_f_ind ;
var g_maska_maska="" ;
//var ar_token;

function validuj_z_wyrreg(ar_dana , ar_token){
//funkcja analizuje token wyrażenia regularnego i sprawdza czy dana odpowiada temu wyrazeniu
// ar_token - nie moze zawierać znaku początka i konca (!% i !^)
//g_maska_type  - typ zmiennej 
//g_maska_len_min - minimalna dlugosc
//g_maska_len_max - maksymalna dlugosc
var l_typ="";
var l_min=0;
var l_max=0;
var l_s="",l_s1="";
var i;
l_typ = ar_token.substring(0,1);
i=ar_token.indexOf("-");
if (i<0 ){
	i=ar_token.indexOf("+");
	l_max=-1;
}

if (i<0 ){
//brak wymaganego znaku + lub -
	l_s = ar_token.substring(1);
	if ( isNaN (l_s )){return false; }//błedna maska 
	l_min = parseInt(l_s);
	l_max = l_min;
}else{
	l_s = ar_token.substring(1,i);
	if ( isNaN (l_s )){return false; }//błedna maska 
	l_min = parseInt(l_s);
		if (l_max==0){
			l_s = ar_token.substring(i+1,ar_token.length);
			if ( isNaN (l_s )){return false; } //błedna maska 
			l_max =parseInt(l_s); 
	}
}

if ( ( ar_dana.length < l_min ) ||  ( (ar_dana.length > l_max ) && (l_max > 0 )) ) 
	return false;

//sprawdzenie typu tu rozszerzamy jezeli chcemy kole3jne typy
//alert ("typ"+ l_typ + "******"+ ar_dana );
if (l_typ == "i" && isNaN(ar_dana) ) { 	return false;}

return true;
}

//function get_from_mask(g_maska_maska , g_maska_token, g_maska_fix , g_maska_t_ind  , g_maska_f_ind){
function get_from_mask(){
//funkcja wycina z maski token z wyrażeniem regularnym, 
//token z częścia stałe ,
//indeks jednego i drufiego w masce
// usuwa wybrane elemety z maski
// !%i10-100!^ 
var c_tok_bg="!%";
var c_tok_end="!^";
var l_token=""; //wyr reg
var l_fix="" ;  //częśc stała 
var l_t_ind=0 ;
var l_f_ind =0 ;
var l_t_end_ind;
var l_ind_do=0 ;
l_t_ind = g_maska_maska.indexOf (c_tok_bg);
l_t_end_ind = g_maska_maska.indexOf ( c_tok_end ,l_t_ind);
//jaka czesc zosanie obcieta 
if (l_t_ind ==0 ){
	l_ind_do = g_maska_maska.indexOf ( c_tok_bg , l_t_ind +1 );
	if (l_ind_do <0  ){ l_ind_do =  g_maska_maska.length ;}
}
if (l_t_ind > 0 ){ l_ind_do =  l_t_end_ind+2 ;}
if (l_t_ind < 0 ){ l_ind_do =  g_maska_maska.length ;}

if ( l_t_ind ==0 && l_t_end_ind > 0  ){
	l_f_ind  = l_t_end_ind +2;
	if  (l_f_ind == g_maska_maska.length ) { l_f_ind = -1 ;}
}
if (l_t_end_ind > 0 && l_t_end_ind > l_t_ind ){
	l_token=g_maska_maska.substring(l_t_ind+2, l_t_end_ind);
}
if ( l_f_ind < l_t_ind )
	l_fix = g_maska_maska.substring(l_f_ind, l_t_ind);
else
	l_fix = g_maska_maska.substring( l_f_ind ,l_ind_do   );

//przypianie do globalnych
//jezeli pierwsza jest fix to zwracamy tylko fix
if ( l_f_ind < l_t_ind && l_f_ind >-1 )
	g_maska_maska = g_maska_maska.substring( l_t_ind  );
else 
	g_maska_maska = g_maska_maska.substring( l_ind_do  );

if (l_f_ind ==0){
	g_maska_token="" ;
	g_maska_t_ind = -1;
}
else {
	g_maska_token=l_token ;
	g_maska_t_ind  = l_t_ind ;
}
g_maska_fix =l_fix ;
g_maska_f_ind = l_f_ind;
}

function compare_with_mask(maska, dana){
g_maska_maska=maska ;
do {

	g_maska_token=""; g_maska_fix="";g_maska_t_ind =-1 ; g_maska_f_ind=-1 ;
	get_from_mask(); 
	
	if ( g_maska_f_ind==0) {
			//na poczatku jest fix
		if (! (dana.substring(0,g_maska_fix.length)==g_maska_fix )){
			l_ok=false;
			break;
		}
	}
	if ( g_maska_t_ind==0) {
		if ( g_maska_f_ind >0 ) 
			l_do = dana.indexOf(g_maska_fix) ;
		else
			l_do = dana.length ; 

		//odczyt czesci do wyr_reg
		l_s= dana.substring(0,l_do);
		l_ok=validuj_z_wyrreg  (l_s, g_maska_token);

		if (! l_ok ){
			l_ok=false;
			break;
		}
		//sprawdzenie fixa
		if (! (dana.substring(l_do,l_do+ g_maska_fix.length)==g_maska_fix )){
			l_ok=false;
			break;
		}
	}
	if (g_maska_fix.length >0 ) 
		dana=dana.substring( dana.indexOf(g_maska_fix) +g_maska_fix.length ); 
	else 
		dana="" 

//} while ((! g_maska_maska.length==0 )&& confirm("tak?" + g_maska_maska +"====="+dana))//
} while (! g_maska_maska.length==0 )

if (! dana =="") 
	l_ok=false ;

return l_ok;
}


function dobackaction(target, parameters){  
 var page = getparameter(parameters, "backPage");
 var params = getparameter(parameters, "backParams");
 doaction(page, target, params);
}

function checkBVer(){ 
 ver = navigator.userAgent.toLowerCase().substring(30,31) + navigator.userAgent.toLowerCase().substring(32,33); 
 return ver;
}


function show(type, where){
 doaction('zax_getOI.jsp','_nobackwindow width=644$height=500$leftmargin=52[#F2F6F7]','objType=' + type + ';whereClause=' + where + ';getsysparams=(n);');
}

function writeLicznik(doc, bgcolor, font, fsize, fcolor, width, height){
 doc.writeln("<iframe width=" + width + " height=" + height + " frameborder='0' scrolling='no' marginheight='0' marginwidth='0' src='licznik.jsp?bgcolor=" + bgcolor + "&font=" + font + "&fsize=" + fsize + "&fcolor=" + fcolor + "'></iframe>");
}


function writeSys(doc){
 doc.writeln("<iframe width=0 height=0 frameborder='0' scrolling='no' marginheight='0' marginwidth='0' name='sparams' src='sys.jsp'></iframe>");
 doc.writeln("  <FORM name='F' method='POST'>");
 doc.writeln("   <INPUT name='sysparameters' type ='HIDDEN' value=''>");
 doc.writeln("   <INPUT name='parameters' type ='HIDDEN' value=''>");
 doc.writeln("  </FORM>");
}


function gotoPage(page, target, params){
  document.F.sysparameters.value = frames['sparams'].document.F.sysparameters.value;
  if (target == "parent"){
//   alert(getappname() + " , " + page);
   p = opener.top;
   p.location.href = getappname() + "/" + page + '?sysparameters=packed=(true);&parameters=' + params;
   close();
  }
  else{
   doaction(page, target, params);
   close();
  }
}

function gotoShow(type, where){
  document.F.sysparameters.value = frames['sparams'].document.F.sysparameters.value;
  show(type, where);
}


function maphandler(e){
 if (window.event.keyCode == 77){
  winopts="top=50,left=50,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=yes,resizable=yes,height=600,width=580,copyhistory=0";
  smallwindow = window.open('../../zax/mapa/index.html', '', winopts);
 }
}


function showMapa(){

   winopts="top=50,left=50,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=yes,resizable=yes,height=600,width=550,copyhistory=0";
  
   smallwindow = window.open('zax/mapa/index.html', 'Mapa', winopts);
 }


 function keyMapa(e){
    if (document.layers)
        Key = e.which;
    else
        Key = window.event.keyCode;
     if (Key == 17)
//       alert("Key pressed! ASCII-value: " + Key);
		showMapa();
 }

function setKeyboard(){
    window.document.onkeydown = keyMapa;
	//alert("keyboard");
}
