<?php
//@2012-11-01 fukcja interpreter procesow - zapisujaca stan procesow do tabeli CRM_PROCES_LOG
//potrafi wyzwolic proces oraz zapisac jego biezacy stan do tabeli CRM_PROCES_LOG w komorce log ( serialize) 
//ogolne zasady dzialania systemu procesy:
//wyzwolenie nowego procesu nosi nazwe SELF::CALL(ID_PROCESU) - uruchamia to zapis do tabeli CRM_PROCES_LOG ->>
// ID=(new) , TYPE=PROCES_INIT , ID_PROCES_INIT=ID_PROCESU , ID_EXIT=0 , WAIT_FOR_SIGNAL=SIGTRM (. . . ) 
//jezeli proces ma w sobie zawarta instrukcje dotyczaca uzycia funkcji, powinna byc ona wyzwolona w sposob:
// SELF::CHILD(ID_PROCESU) - spowoduje to dodanie do tabeli CRM_PROCES_LOG wiersza nastepujacego:
// ID(new), TYPE(CHILD), ID_PROCES_INIT=ID_PROCESU(nowego) , PARENT_ID=ID_PROCESU , w wierszu txt nie ma nic
// Uzupelnia sie miejsce BREAKPOINT w procesie macierzystym nazwa funkcji , do ktorej system powinien powrocic po zakonczeniu sie procesu CHILD
//  - proces 
// SIGCHLD -- po zakonczeniu procesu potomnego proces potomny wyzwala ten sygnal . To powinno zabic proces potomny i wrocic do 
// procesu macierzystego - wyrazonego w PARENT_ID tego procesu do miejsca opisanego w polu BREAKPOINT . 
//
error_reporting(E_ALL & ~E_NOTICE);

define('DS', DIRECTORY_SEPARATOR);
define('APP_PATH_ROOT', dirname(__FILE__));
define('APP_PATH_WWW', dirname(__FILE__));
define('APP_PATH_CONFIG', APP_PATH_ROOT . DS . 'config');

//session_save_path("../session") ;
session_start();

date_default_timezone_set('Europe/Warsaw');// PHP 5 >= 5.1.0 required by date functions

if (file_exists(".config.php")) include(".config.php");

SEF('DEBUG_S');
SEF('ZAP_SQL');
SEF('ZAP_SQL_UPDATE');
SEF('USERS_COLUMN_INIT');
SEF('AUTHORIZE_USER');
SEF('AUTHORIZE_USER_LOGIN');
//SEF("AUTHORIZE_USER_BY_AUTH_MODULE");
//SEF("AUTHORIZE_USER_LOGIN_BY_AUTH_MODULE");
SEF('GETFORMITEM');
SEF('T_WORKPOINTS_USER_SELECT');
require_once dirname(__FILE__) . '/' . 'se-lib' . '/' . 'Lib.php';
Lib::loadClass('V');
Lib::loadClass('User');
Lib::loadClass('Config');
Lib::loadClass('App');
Lib::loadClass('DB');
Lib::loadClass('S');

Lib::loadClass('ProcesHelper');
Lib::loadClass('Tree');
Lib::loadClass('TreeHelper');
Lib::loadClass('Table_View');
		
		
require('superedit-CRM_PROCESS_CALL_class.php');

			
		echo "<a href=?ODSWIEZ=1>Odswiez</a>\n";
		
		function CRM_PROCES_CALL($ID_PROCES,$SIGNAL,$ID_LOG,$PIPE_FORMAT,$PIPE) {
			
			if($SIGNAL=='INIT') {
				$CRM_PROCES_CALL_init=new CRM_PROCES_CALL_cls('','');
				$CRM_PROCES_CALL_init->CRM_PROCES_CALL_init_new_proces($ID_PROCES);
				$ID_LOG_new=$CRM_PROCES_CALL_init->ID_LOG_new;
				DEBUG_S(-3,'ID_LOG_new',$ID_LOG_new, __FILE__, __FUNCTION__, __LINE__);	
				CRM_PROCES_CALL($ID_PROCES,'CALL',$ID_LOG_new); 
				
			} else if($SIGNAL=='CALL') {
			


			    $CRM_PROCES_CALL_cls=new CRM_PROCES_CALL_cls($ID_LOG,'SIGTERM');
			    $CRM_PROCES_CALL_cls->CRM_PROCES_CALL_get_data_from_log();
			    $log_unserialized=$CRM_PROCES_CALL_cls->log_unserialized;
			    $ID_STEP=$CRM_PROCES_CALL_cls->ID_STEP;
			    
			    
			 	//1.zakladamy, ze mozemy robic ten proces
			    //2.wylistuj wskazniki
			    //3.podziel na kroki
			    //4.zaladuj zmienne ( z bazy danych ) 
			    //5.wykonaj operacje logiczne na (X) 
			    //6.sprawdz warunki na X
			    //6c. Zapis do bazy danych jak sa gotowe
			    //7. jak jest blad to CALL(SIGTERM) z opisem
				//8a. robie zapytanie do bazy danych dla zmiennych
			    //8b. jak nie ma bledu to ekran dla usera CALL(BREAK?) dla zmiennych R
			    //9. odbior zmiennych od usera R
			    //10. or zapis do bazy danych W
			    //11. or wprowadzenie nowego rekordu C
			    //12. CALL(NEXT) 
			    
			    $CRM_PROCES_CALL_process_log=new CRM_PROCES_CALL_process_log($log_unserialized,$ID_STEP);

			    $CRM_PROCES_CALL_process_log->CRM_PROCESS_CALL_list_proc_w();
				$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_group_kroki_p();
		
				
				DEBUG_S(-3,'ID_LOG 1',$CRM_PROCES_CALL_cls->ID_LOG, __FILE__, __FUNCTION__, __LINE__);	
				DEBUG_S(-3,'KROKI_Z_PROCESU 1 CRM_PROCES_CALL_group_kroki_p',$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_group_kroki_p, __FILE__, __FUNCTION__, __LINE__);
				DEBUG_S(-3,'WSKAZNIKI 0 CRM_PROCESS_CALL_list_proc_w',$CRM_PROCES_CALL_process_log->CRM_PROCESS_CALL_list_proc_w, __FILE__, __FUNCTION__, __LINE__);

				//4.ladujemy zmienne
				$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_evaluate_possible_variables();
				DEBUG_S(-3,'WSKAZNIKI 1 CRM_PROCESS_CALL_list_proc_w',$CRM_PROCES_CALL_process_log->CRM_PROCESS_CALL_list_proc_w, __FILE__, __FUNCTION__, __LINE__);

				DEBUG_S(-3,'log_unserialized',$CRM_PROCES_CALL_process_log->log_unserialized, __FILE__, __FUNCTION__, __LINE__);
					//$LISTA_WSK_R_MA_WSZYSTKIE_ZMIENNE=true; //jezeli sa wszystkie zmienne nie trzeba nic robic dla usera
				$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_check_if_all_variables_exists_to_call_next_process();
				DEBUG_S(-3,'LISTA_WSK_R_MA_WSZYSTKIE_ZMIENNE?',$CRM_PROCES_CALL_process_log->LISTA_WSK_R_MA_WSZYSTKIE_ZMIENNE, __FILE__, __FUNCTION__, __LINE__);						
					//5. wykonaj operacje logiczne na (X) 
					//6. sprawdzam warunki na X
				$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_if_parent_id_X_types_are_true_else_to_call_COND_process();
					if(!$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_if_parent_id_X_types_are_true_else_to_call_COND_process) CRM_PROCES_CALL('','COND',$ID_LOG);
					//6c ewentualny zapis do bazy danych UPDATE jezeli sa warunki
					if($CRM_PROCES_CALL_process_log->LISTA_WSK_R_MA_WSZYSTKIE_ZMIENNE) {
						$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_check_if_have_variables_to_update_to_db();
						if($CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_check_if_have_variables_to_update_to_db) {
							$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_prepare_sql_update_query();
								DEBUG_S(-3,'Przygotowane zapytanie sql do update ',$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_prepare_sql_update_query, __FILE__, __FUNCTION__, __LINE__);
								$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_commit_sql_update_query();
						}
						$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_check_if_have_variables_to_insert_to_db();
						if($CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_check_if_have_variables_to_insert_to_db) {
						
						}
					}
					//8a. robimy zapytanie do bazy danych dla zmiennych
			    //	if(!$LISTA_WSK_R_MA_WSZYSTKIE_ZMIENNE) //jezeli nie ma wszystkich zmiennych

				//8xxx zapisuje dane z kazdego zapytania do $log i przekazuje do usera instrukcje do wyboru danych - SIGCONT


				if(!$CRM_PROCES_CALL_process_log->LISTA_WSK_R_MA_WSZYSTKIE_ZMIENNE) { //jezeli nie ma wszystkich zmiennych
				DEBUG_S(-3,'WSKAZNIKI 127 CRM_PROCESS_CALL_list_proc_w',$CRM_PROCES_CALL_process_log->CRM_PROCESS_CALL_list_proc_w, __FILE__, __FUNCTION__, __LINE__);
			//x2 po co je zapisywac	DEBUG_S(-3,'zapisujemy dane do log dla usera aby je odczytal, wybral dane i kontynuowal proces  ',$CRM_PROCES_CALL_process_log->log_unserialized, __FILE__, __FUNCTION__, __LINE__);						
			//x2 po co je zapisywac	$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_prepare_data_for_user_for_terminate_it_and_recieve_with_SIGCONT();

			//x1	$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_from_prepared_data_load_sql_to_log_unserialized();

				//zapisujemy dane do log
				//$CRM_PROCES_CALL_cls=new CRM_PROCES_CALL_cls($ID_LOG,'SIGTERM');
				$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_log($CRM_PROCES_CALL_process_log->log_unserialized);
				$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_NEW_WAIT_FOR_SIGNAL('SIGCONT');
				$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_params();

			
				DEBUG_S(-3,'ID_LOG 2',$CRM_PROCES_CALL_cls->ID_LOG, __FILE__, __FUNCTION__, __LINE__);	
				DEBUG_S(-3,'WSKAZNIKI 2',$CRM_PROCES_CALL_cls->CRM_PROCESS_CALL_list_proc_w, __FILE__, __FUNCTION__, __LINE__);
				DEBUG_S(-3,'KROKI_Z_PROCESU 2',$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_group_kroki_p, __FILE__, __FUNCTION__, __LINE__);
				return ; //i wychodizmy z funkcji
				} else { //skoro wszystko jest mozemy robic NEXT . Powinnismy zapisac poprawione zmienne?
				//10. teraz bedziemy zapisywac do bazy danych W . . TODO 
				//DEBUG_S(-3,'ID_LOG 2',$ID_LOG, __FILE__, __FUNCTION__, __LINE__);	




				$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_prepare_data_for_user_for_terminate_it_and_recieve_with_SIGCONT();
				$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_cleanup_last_step_data_from_log();
				DEBUG_S(-3,'LOG_3 Zapisujemy loga i robimy next',$CRM_PROCES_CALL_process_log->log_unserialized, __FILE__, __FUNCTION__, __LINE__);
				DEBUG_S(-3,'KROKI_Z_PROCESU 3',$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_group_kroki_p, __FILE__, __FUNCTION__, __LINE__);
				DEBUG_S(-3,'WSKAZNIKI 3',$CRM_PROCES_CALL_process_log->CRM_PROCESS_CALL_list_proc_w, __FILE__, __FUNCTION__, __LINE__);

				$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_log($CRM_PROCES_CALL_process_log->log_unserialized);
				$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_params();

				
				//11. wprowadzeni nowego rekordu C TODO
				
				} //tylko kiedy sa wszystkie wskazniki oraz nie trzeba robic update do bazy danych mozna isc dalej...
					if(	
						(!$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_check_if_have_variables_to_insert_to_db)&&
						($CRM_PROCES_CALL_process_log->LISTA_WSK_R_MA_WSZYSTKIE_ZMIENNE)&&
						(!$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_check_if_have_variables_to_update_to_db)
					) {
						CRM_PROCES_CALL('','NEXT',$ID_LOG);
					} else DEBUG_S(-3,'Nie wyzwolilem NEXT z powodu warunkow','', __FILE__, __FUNCTION__, __LINE__);
			}else if($SIGNAL=='SIGCONT')  { //tutaj wyswietlamy zawartosc danych do uzytkownika i je przetwarzamy do skutku az nie bedzie zadnego arraya 
				
				$CRM_PROCES_CALL_cls=new CRM_PROCES_CALL_cls($ID_LOG,'SIGCONT');
				$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_get_data_from_log();
				$log_unserialized=$CRM_PROCES_CALL_cls->log_unserialized;

				//$CRM_PROCES_CALL_process_log=new CRM_PROCES_CALL_process_log($log_unserialized,$ID_STEP);
				$CRM_PROCES_CALL_process_log=new CRM_PROCES_CALL_process_log($CRM_PROCES_CALL_cls->log_unserialized,$CRM_PROCES_CALL_cls->ID_STEP,$ID_LOG);
		
			//begin x1	
			  $CRM_PROCES_CALL_process_log->CRM_PROCESS_CALL_list_proc_w();
			  $CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_group_kroki_p();
			  	DEBUG_S(-3,'ID_LOG 1',$CRM_PROCES_CALL_cls->ID_LOG, __FILE__, __FUNCTION__, __LINE__);	
				DEBUG_S(-3,'KROKI_Z_PROCESU 1 CRM_PROCES_CALL_group_kroki_p',$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_group_kroki_p, __FILE__, __FUNCTION__, __LINE__);
				DEBUG_S(-3,'WSKAZNIKI 0 CRM_PROCESS_CALL_list_proc_w',$CRM_PROCES_CALL_process_log->CRM_PROCESS_CALL_list_proc_w, __FILE__, __FUNCTION__, __LINE__);
				DEBUG_S(-3,'CRM_PROCES_CALL_cls->log_unserialized 0',$CRM_PROCES_CALL_cls->log_unserialized, __FILE__, __FUNCTION__, __LINE__);


			  $CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_evaluate_possible_variables();
			  $CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_check_if_all_variables_exists_to_call_next_process();
			if(!$CRM_PROCES_CALL_process_log->LISTA_WSK_R_MA_WSZYSTKIE_ZMIENNE) {
			  $CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_user_window_control();
			  $CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_prepare_data_for_user_for_terminate_it_and_recieve_with_SIGCONT();
			  $CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_from_prepared_data_load_sql_to_log_unserialized();
				DEBUG_S(-3,'KROKI_Z_PROCESU 2 CRM_PROCES_CALL_group_kroki_p',$CRM_PROCES_CALL_process_log->CRM_PROCES_CALL_group_kroki_p, __FILE__, __FUNCTION__, __LINE__);
				DEBUG_S(-3,'WSKAZNIKI 2 CRM_PROCESS_CALL_list_proc_w',$CRM_PROCES_CALL_process_log->CRM_PROCESS_CALL_list_proc_w, __FILE__, __FUNCTION__, __LINE__);

			}
			//eof x1
			
				$CRM_PROCES_CALL_process_log->CRM_PROCES_SIGCONT_check_if_column_isnot_rwx(); //ta funkcja od razu wyswietla tabele z danymi w HTMLu
				
				
				
				DEBUG_S(-3,'log_unserialized',array($CRM_PROCES_CALL_process_log->log_unserialized,$CRM_PROCES_CALL_process_log->ID_LOG), __FILE__, __FUNCTION__, __LINE__);

					//$JEST_POTRZEBA_AKCJI_USERA=false; 
					//$FLAGA_POKAZAC_CRM_PROCES_CALL_show_SIGCONT_menu=false;

					if(!$CRM_PROCES_CALL_process_log->JEST_POTRZEBA_AKCJI_USERA) {
						//proces moze przejsc do nastepnego kroku 
						//przygotowujemy zmienne
					//x1	foreach($CRM_PROCES_CALL_process_log->log_unserialized['DANE_DLA_USERA_DO_WYBORU'] as $TAB_ID => $ROW_VAL ) {
					//x1		foreach($ROW_VAL as $ROW_NUMBER=>$ROW_VAL_SELECTED) {
					//x1			foreach($ROW_VAL_SELECTED as $ROW_NAME_WSK=>$ROW_NAME_WSK_SELECTED ) {
					//x1				echo "jestem w tabl id ".$TAB_ID."  rowname wsk ".$ROW_NAME_WSK;
					//x1				$ID_WSKAZNIKA=$log_unserialized['DANE_DLA_USERA_DO_WYBORU_KOLUMNY'][$TAB_ID]['KOLUMNY_WSK'][$ROW_NAME_WSK];
					//x1				$log_unserialized['WSKAZNIKI']['LISTA'][$ID_WSKAZNIKA]->ID=$ID_WSKAZNIKA;
					//x1				$log_unserialized['WSKAZNIKI']['LISTA'][$ID_WSKAZNIKA]->PARENT_ID="'".$ROW_NAME_WSK_SELECTED."'";
					//x1			}
					//x1		}
					//x1	}
					//x1unset($log_unserialized['DANE_DLA_USERA_DO_WYBORU_KOLUMNY']);
					//x1unset($log_unserialized['DANE_DLA_USERA_DO_WYBORU']);
					DEBUG_S(-3,'log_unserialized po dopisaniu wartosci wybranych przez uzytkownika, ustawiamy sygnal oczekiwany na SIGTERM',$log_unserialized, __FILE__, __FUNCTION__, __LINE__);
					$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_log($log_unserialized);
					$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_NEW_WAIT_FOR_SIGNAL('SIGTERM');
					$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_params();
					//$sql="update  CRM_PROCES_LOG set log='".mysql_real_escape_string(serialize($log_unserialized))."', WAIT_FOR_SIGNAL='SIGTERM' where ID='".$ID_LOG."' and WAIT_FOR_SIGNAL='SIGCONT'";// SIGCONT SIGTERM
					//$res = DB::query($sql) or die('problem ze sql');
					//DEBUG_S(-3,'zapisujemy dane do log po odjeciu niepotrzebnych linii ',$sql, __FILE__, __FUNCTION__, __LINE__);					
					//CRM_PROCES_CALL('','CALL',$ID_LOG);

					} else { //jest potrzebna akcja usera - zapiszmy indeksy w logu dla SIGIO
						DEBUG_S(-3,'Sa wartosci dla uzytkownika do wyboru, zapisujemy dostepne elementy ',$CRM_PROCES_CALL_process_log->log_unserialized, __FILE__, __FUNCTION__, __LINE__);
						$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_log($CRM_PROCES_CALL_process_log->log_unserialized);
						$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_params();
					
					}	
			} else if($SIGNAL=='NEXT') { //procedura do wyzwalania nastepnego procesu wg listy
					$CRM_PROCES_CALL_cls=new CRM_PROCES_CALL_cls($ID_LOG,'SIGTERM');
					$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_get_data_from_log();
					$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_get_next_process_step();
					$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_NEXT_PROCES_STEP($CRM_PROCES_CALL_cls->NEXT_PROCES_STEP);
					DEBUG_S(-3,'Wyzwolono SIGNAL==NEXT',array($CRM_PROCES_CALL_cls), __FILE__, __FUNCTION__, __LINE__);
					$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_params();
			
			} else if($SIGNAL=='EXIT_0') { //procedura do wyzwalania nastepnego procesu wg listy
					DEBUG_S(-3,'Wyzwolono SIGNAL==TERMINATE',array($CRM_PROCES_CALL_cls), __FILE__, __FUNCTION__, __LINE__);
					$CRM_PROCES_CALL_cls=new CRM_PROCES_CALL_cls($ID_LOG,'SIGTERM');
					$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_NEXT_PROCES_STEP($CRM_PROCES_CALL_cls->NEXT_PROCES_STEP);
					$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_NEW_WAIT_FOR_SIGNAL('EXIT_0');
					$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_log(''); //czyszcze loga
					$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_params();
			
			} else if($SIGNAL=='SIGIO') { //procedura do wyzwalania w przypadku otrzymania danych od uzytkownika
					DEBUG_S(-3,'Otrzymalismy sygnal SIGIO',array($PIPE_FORMAT,$PIPE), __FILE__, __FUNCTION__, __LINE__);

						if(($PIPE_FORMAT!='HTTP')|| (!$PIPE)) { 
							DEBUG_S(-3,'Brak danych do przekazania lub nieznany format',array($PIPE_FORMAT,$PIPE), __FILE__, __FUNCTION__, __LINE__);
							die('');
						}
				$CRM_PROCES_CALL_cls=new CRM_PROCES_CALL_cls($ID_LOG,'SIGCONT');
				$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_get_data_from_log();
				if($PIPE_FORMAT=='HTTP') {
				 	DEBUG_S(-3,'CRM_PROCES_CALL_show_SIGCONT_menu_call before call ',array($ID_LOG,$PIPE['TABLE'],$PIPE), __FILE__, __FUNCTION__, __LINE__);	

					$log_unserialized=CRM_PROCES_CALL_show_SIGCONT_menu_call($ID_LOG,$PIPE['TABLE'],$PIPE,$CRM_PROCES_CALL_cls->log_unserialized,$CRM_PROCES_CALL_cls->ID_STEP);
					$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_log($log_unserialized);
					$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_NEW_WAIT_FOR_SIGNAL('SIGTERM');
					$CRM_PROCES_CALL_cls->CRM_PROCES_CALL_set_process_params();
				} else {
					DEBUG_S(-3,'Nieznany format przekazania danych: ',array($PIPE_FORMAT), __FILE__, __FUNCTION__, __LINE__);
					die('');
				}

			} else {
				DEBUG_S(-3,'Nieznana procedura',array($ID_PROCES,$SIGNAL,$ID_LOG), __FILE__, __FUNCTION__, __LINE__);						
				die();
			}
		
		
		}

//CRM_PROCES_CALL(2207,'INIT','');

//CRM_PROCES_CALL('','CALL',76);

//CRM_PROCES_CALL('','SIGCONT',76);

				//if($_REQUEST['CRM_PROCES_CALL_show_SIGCONT_menu_call']) CRM_PROCES_CALL_show_SIGCONT_menu_call($_REQUEST['ID_LOG'],$_REQUEST['TABLE'],$_REQUEST['ROW_ID']);
if($_REQUEST['CRM_PROCES_NAVIGATOR_INIT']) CRM_PROCES_CALL($_REQUEST['CRM_PROCES_NAVIGATOR_INIT_NEW_PROCES'],'INIT','','','');
if($_REQUEST['CRM_PROCES_NAVIGATOR_MENU']) CRM_PROCES_CALL('',$_REQUEST['WAIT_FOR_SIGNAL'],$_REQUEST['ID_LOG'],'','');

if($_REQUEST['CRM_PROCES_CALL_show_SIGCONT_menu_call']) CRM_PROCES_CALL('','SIGIO',$_REQUEST['ID_LOG'],'HTTP',$_REQUEST);

CRM_PROCES_NAVIGATOR();

?>
