<?

if (version_compare(phpversion(), "7.0.0", ">=")) 
{
	if (defined('RelativePath'))
	{
	include_once(RelativePath.'/../function_php73.php');
}
	else
	{
		include_once('function_php73.php');
	}
}

//////////////////////////////

if (
	//(isset($_SERVER['HTTP_X_FORWARDED_FOR']) 	&& $_SERVER['HTTP_X_FORWARDED_FOR'] 	== '83.3.208.121') or
	//(isset($_SERVER['REMOTE_ADDR']) 			&& $_SERVER['REMOTE_ADDR'] 				== '83.3.208.121') or
	strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0 or
	strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'F:/workspace') > 0
)
{
	$x = 0xffff;
	
	if (defined('E_DEPRECATED'))
	{
		$x = $x ^ E_DEPRECATED;
	}
	
	if (defined('E_STRICT'))
	{
		$x = $x ^ E_STRICT;
	}
	
	// w wersji dev będę potrzebował NOTICE
	// w produkcji nie
	if (strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0)
	{
		$x = $x ^ E_NOTICE;
		$x = $x ^ E_WARNING;
	}
	else
	{
		$x = $x ^ E_NOTICE;
		$x = $x ^ E_WARNING;
	}
	
	error_reporting($x);
	ini_set('display_errors', '1');
	ini_set('html_errors', TRUE);
	
	ini_set('error_prepend_string', '<div style="border: 1px solid red; background-color: #FFE8E8; padding: 5px; font-family: Verdana; margin: 5px; border-radius: 2px;">IP:');
	ini_set('error_append_string', '</div>');
}

//////////////////////////////

//////////////////////////////
//
//////////////////////////////

$hostname = strtoupper(php_uname('n'));

if (strpos(' '.$hostname, 'WORKER') > 0)
{
	$hostname = 'WORKER';
}
else if (strpos(' '.$hostname, 'WWW3LN') > 0)
{
	$hostname = 'WORKER';
}

if (!defined('HOSTNAME_php_uname'))
{
	DEFINE('HOSTNAME_php_uname', $hostname);
}

//////////////////////////////

if (!isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
	$_SERVER['HTTP_X_FORWARDED_FOR'] = $_SERVER['REMOTE_ADDR'];
}

function db($dbpar="")
{
	if (
		$_SERVER['DOCUMENT_ROOT'] == 'C:/bartek/workspace' ||
		(isset($_SERVER['SCRIPT_FILENAME']) && strpos(' '.strtolower($_SERVER['SCRIPT_FILENAME']), 'c:/bartek') > 0)
	)
	{
		$_SERVER['DOCUMENT_ROOT'] = 'C:/bartek/workspace_html5';
	}
	
	///////////////////////////////////////////////
	
	global $dbserver;
	global $dbuser;
	global $dbpass;
	global $dbname;

	global $flagaMymusic;

	///////////////////////////////////////////////

	// localXXXhost => localXXXhost
	// localXXXhost => cluster
	if (strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0)
	{
		if (1)
		{
			// localXXXhost => localXXXhost

			$dbserver       = 'localhost';
			$dbuser         = 'root';
			$dbpass         = 'root';
			$dbname         = 'generowanie_strony';
			//$dbname         = 'generowanie_strony_tmp';
			
		 	// wersja pod 5.3
			$dbserver       = '127.0.0.1';
		 	$dbuser         = 'root2';
		 	$dbpass         = 'paranienormalni123';
		 	
		 	if (isset($flagaMymusic) && $flagaMymusic != '')
		 	{
		 		if (
		 			(isset($_SERVER['HTTP_X_FORWARDED_FOR']) 	&& $_SERVER['HTTP_X_FORWARDED_FOR'] 	== '83.3.208.121') or 
		 			(isset($_SERVER['REMOTE_ADDR']) 			&& $_SERVER['REMOTE_ADDR'] 				== '83.3.208.121') or 
		 			strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0 or 
		 			strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'F:/workspace') > 0
		 		)
		 		{
		 		echo '(IP) flagaMymusic: '.$flagaMymusic.'<br>';
		 	}
		 	}
		 	
		 	if (isset($flagaMymusic) && $flagaMymusic == 1)
		 	{}
		 	
		 	if (isset($_SERVER['MIBDIRS']) && $_SERVER['MIBDIRS'] == 'C:/xampp175/php/extras/mibs')
		 	{
		 		// localXXXhost => grey:tunel
		 		$dbserver       = 'bartek.local';
		 		
		 		if (isset($port) && $port != '' && $port != '3306')
		 		{
		 			$dbserver .= ':'.$port;
		 		} 
		 	}
		}
		else
		{
			// localXXXhost => cluster
			if (strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0)
			{
				$dbserver 	= 'grey.turystyka.com.pl';
			}
			else
			{
				$dbserver 	= 'mysql.cluster.turystyka.com.pl';
			}
		
			$dbuser         = 'mysql';
			$dbpass         = 'rybafijYbo';
			$dbname         = 'generowanie_strony';
		}

		// ustawianie ConnectionString powinno być w jednym miejscu
		// a wybór serwera powinien być ze stałej
		if (defined('MYSQL_HOST'))
		{
			if (MYSQL_HOST == 'L')
			{
				$dbserver 		= '127.0.0.1';
				$dbuser 		= 'root2';
				$dbpass 		= 'paranienormalni123';
			}
			else if (MYSQL_HOST == 'M')
			{
				$dbserver 		= 'mysql.cluster.turystyka.com.pl';
				$dbuser 		= 'mysql';
				$dbpass 		= 'rybafijYbo';
				$dbname 		= 'generowanie_strony';
			}
		}
	}
	else
	{
		// cluster => cluster
		
		$dbserver 		= 'mysql.cluster.turystyka.com.pl';
		$dbuser         = 'mysql';
		$dbpass         = 'rybafijYbo';
		$dbname         = 'generowanie_strony';
		
		if (isset($flagaMymusic) && $flagaMymusic != '')
		{
			if (
				(isset($_SERVER['HTTP_X_FORWARDED_FOR']) 	&& $_SERVER['HTTP_X_FORWARDED_FOR'] 	== '83.3.208.121') or 
				(isset($_SERVER['REMOTE_ADDR']) 			&& $_SERVER['REMOTE_ADDR'] 				== '83.3.208.121') or 
				strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0 or 
				strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'F:/workspace') > 0
			)
			{
			echo '(IP) flagaMymusic: '.$flagaMymusic.'<br>';
		}
		}
		
		if (isset($flagaMymusic) && $flagaMymusic == 1)
		{
			$dbserver = 'mysql4.srv.turystyka.com.pl';
		}
	}

	///////////////////////////////////////////////

	$db = mysql_connect($dbserver, $dbuser, $dbpass) or die ("UNABLE TO CONNECT TO DATABASE ".$dbname);
	mysql_select_db($dbname) or die ("UNABLE TO SELECT DATABASE ".$dbname);
	
	mysql_query('SET NAMES utf8');
	mysql_query('SET CHARACTER_SET utf8');

	return $db;
}

function dbTry($dbpar="")
{
    return true;

	if ($_SERVER['DOCUMENT_ROOT'] == 'C:/bartek/workspace')
	{
		$_SERVER['DOCUMENT_ROOT'] = 'C:/bartek/workspace_html5';
	}

	///////////////////////////////////////////////

 	global $dbserver;
 	global $dbuser;
 	global $dbpass;
 	global $dbname;

 	///////////////////////////////////////////////

 	// localXXXhost => localXXXhost
 	// localXXXhost => cluster
 	if (strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0)
 	{
 		if (1)
 		{
 			// localXXXhost => localXXXhost

 			$dbserver       = 'localhost';
		 	$dbuser         = 'root';
		 	$dbpass         = 'root';
		 	$dbname         = 'generowanie_strony';
		 	//$dbname         = 'generowanie_strony_tmp';

		 	// wersja pod 5.3
		 	$dbserver       = '127.0.0.1';
		 	$dbuser         = 'root2';
		 	$dbpass         = 'paranienormalni123';
		 	
		 	if (isset($_SERVER['MIBDIRS']) && $_SERVER['MIBDIRS'] == 'C:/xampp175/php/extras/mibs')
		 	{
		 		// localXXXhost => grey:tunel
		 		$dbserver       = 'bartek.local';
		 		
		 		if (isset($port) && $port != '' && $port != '3306')
		 		{
		 			$dbserver .= ':'.$port;
		 		} 
		 	}
 		}
 		else
 		{
 			// localXXXhost => cluster
 			if (strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0)
 			{
				$dbserver 	= 'grey.turystyka.com.pl';
 			}
			else
			{
				$dbserver 	= 'mysql.cluster.turystyka.com.pl';
			}

			$dbuser         = 'mysql';
			$dbpass         = 'rybafijYbo';
			$dbname         = 'generowanie_strony';
		}
 	}
 	else
 	{
 		// cluster => cluster

 		$dbserver 		= 'mysql.cluster.turystyka.com.pl';
		$dbuser         = 'mysql';
		$dbpass         = 'rybafijYbo';
		$dbname         = 'generowanie_strony';
	}

	///////////////////////////////////////////////
	
	// echo $dbserver.', '.$dbuser.', '.$dbpass.', '.$dbname.'<br>';	
	// echo 'F: '.basename(__FILE__).', L: '.__LINE__."<br>\n";

	$a = @mysql_connect($dbserver, $dbuser, $dbpass);
	
	// var_dump($a);
	// print mysql_error();
	
	if (!$a)
	{
		return false;
	}
	
	//echo 'F: '.basename(__FILE__).', L: '.__LINE__."<br>\n";
	
	$a = @mysql_select_db($dbname);
	
	if (!$a)
	{
		return false;
	}
	
	return true;
}

?><?

/**
 * @param string $klucz
 * @param array $konfiguracja
 * @param int tryb
 * @param bool $doDouble
 * @param bool $debug
 * @return false|array
 */
function zapytaniaParametryDoOpenSearch($klucz='', $konfiguracja=array(), $tryb=0, $doDouble=false, $debug=false) {

    // tryb 
    //  0 - zwróć paramertry dla wskazanego klucza
    //  1 - zwróć zapytanie do OS dla wskazanego klucza
    //  2 - zwróć "wpis dynamiczny" dla wskazanego klucza
    // 12 - zwróć wszystkie "wpis dynamiczny" (121 to jest 12 tylko że zamieniony klucz z wartością)

    $wpisDynamiczny             = array();
    $paramsGetOpenSearchUnique  = array();

    $zwrocWszystkie = false;
    
    if (in_array($tryb, array(12, 121))) {
        $zwrocWszystkie = true;
    }

    //////////////////////////////
    // opis:                                wpis dynamiczny:                                klucz:                                          parametry:
    // kraje                                #wpis_dynamiczny_kraje.html                     getAgentDestinations
    // kraje ::: wycieczki                  #wpis_dynamiczny_kraje_wycieczki.html           getAgentDestinations_wycieczki                  'offertype3' => 'IWYC'
    // kraje ::: wycieczki autokar          #wpis_dynamiczny_kraje_wycieczki_autokar.html   getAgentDestinations_wycieczki_autokar          'offertype3' => 'IWYC', 'offertype1' => 'AUTOKAR',
    // kraje ::: Wycieczki samolot          #wpis_dynamiczny_kraje_wycieczki_samolot.html   getAgentDestinations_wycieczki_samolot          'offertype3' => 'IWYC', 'offertype1' => 'SAMOLOT',
    // kraje ::: city break                 #wpis_dynamiczny_kraje_city_break.html          getAgentDestinations_city_break                 'offertype2' => 'CB'
    // kraje ::: kolonie                    #wpis_dynamiczny_kraje_kolonie.html             getAgentDestinations_kolonie                    'offertype2' => 'OK'
    // kraje ::: wypoczynek                 #wpis_dynamiczny_kraje_wczasy.html              getAgentDestinations_wczasy                     'offertype3' => 'IWZA'
    // kraje ::: wylot z                    #wpis_dynamiczny_wylot_z.html                   getAgentsDeparturePlace                         'offertype1' => 'SAMOLOT'
    //                                      #wpis_dynamiczny_kraje_zagraniczne.html
    //                                      #wpis_dynamiczny_kraje_krajowe.html
    //                                      #wpis_dynamiczny_kraje_samolot.html
    //////////////////////////////

    if (
        0 
        || $zwrocWszystkie === true 
        || $klucz == 'getAgentDestinations'
    ) {
        $klucz                              = 'getAgentDestinations';
        $wpisDynamiczny[$klucz]             = '#wpis_dynamiczny_kraje.html';
        $paramsGetOpenSearchUnique[$klucz]  = array(
            'openSearchParams'  => $konfiguracja, 
        );
    } 
    
    if (
        0 
        || $zwrocWszystkie === true 
        || $klucz == 'getAgentDestinations_wycieczki'
    ) {
        $klucz                              = 'getAgentDestinations_wycieczki';
        $wpisDynamiczny[$klucz]             = '#wpis_dynamiczny_kraje_wycieczki.html';
        $paramsGetOpenSearchUnique[$klucz]  = array(
            'openSearchParams'  => $konfiguracja, 
            'offertype3'        => 'IWYC'
        );
    } 
    
    if (
        0 
        || $zwrocWszystkie === true 
        || $klucz == 'getAgentDestinations_wycieczki_autokar'
    ) {
        $klucz                              = 'getAgentDestinations_wycieczki_autokar';
        $wpisDynamiczny[$klucz]             = '#wpis_dynamiczny_kraje_wycieczki_autokar.html';
        $paramsGetOpenSearchUnique[$klucz]  = array(
            'openSearchParams'  => $konfiguracja, 
            'offertype3'        => 'IWYC', 
            'offertype1'        => 'Autokar'
        );
    } 
    
    if (
        0 
        || $zwrocWszystkie === true 
        || $klucz == 'getAgentDestinations_wycieczki_samolot'
    ) {
        $klucz                              = 'getAgentDestinations_wycieczki_samolot';
        $wpisDynamiczny[$klucz]             = '#wpis_dynamiczny_kraje_wycieczki_samolot.html';
        $paramsGetOpenSearchUnique[$klucz]  = array(
            'openSearchParams'  => $konfiguracja, 
            'offertype3'        => 'IWYC', 
            'offertype1'        => 'Samolot'
        );
    } 
    
    if (
        0 
        || $zwrocWszystkie === true 
        || $klucz == 'getAgentDestinations_city_break'
    ) {
        $klucz                              = 'getAgentDestinations_city_break';
        $wpisDynamiczny[$klucz]             = '#wpis_dynamiczny_kraje_city_break.html';
        $paramsGetOpenSearchUnique[$klucz]  = array(
            'openSearchParams'  => $konfiguracja, 
            'offertype2'        => 'CB'
        );
    } 
    
    if (
        0 
        || $zwrocWszystkie === true 
        || $klucz == 'getAgentDestinations_kolonie'
    ) {
        $klucz                              = 'getAgentDestinations_kolonie';
        $wpisDynamiczny[$klucz]             = '#wpis_dynamiczny_kraje_kolonie.html';
        $paramsGetOpenSearchUnique[$klucz]  = array(
            'openSearchParams'  => $konfiguracja, 
            'offertype2'        => 'OK'
        );
    } 
    
    if (
        0 
        || $zwrocWszystkie === true 
        || $klucz == 'getAgentDestinations_wczasy'
    ) {
        $klucz                              = 'getAgentDestinations_wczasy';
        $wpisDynamiczny[$klucz]             = '#wpis_dynamiczny_kraje_wczasy.html';
        $paramsGetOpenSearchUnique[$klucz]  = array(
            'openSearchParams'  => $konfiguracja, 
            'offertype3'        => 'IWZA'
        );
    } 
    
    if (
        0 
        || $zwrocWszystkie === true 
        || $klucz == 'getAgentsDeparturePlace'
    ) {
        $klucz                              = 'getAgentsDeparturePlace';
        $wpisDynamiczny[$klucz]             = '#wpis_dynamiczny_wylot_z.html';
        $paramsGetOpenSearchUnique[$klucz]  = array(
            'openSearchParams'  => $konfiguracja, 
            'offertype1'        => 'Samolot'
        );
    }

    if (is_array($paramsGetOpenSearchUnique) && count($paramsGetOpenSearchUnique) > 0) {

        if ($tryb == 0) {
            return isset($paramsGetOpenSearchUnique[$klucz]) && $paramsGetOpenSearchUnique[$klucz] != '' ? $paramsGetOpenSearchUnique[$klucz] : '';
        } elseif ($tryb == 1) {
            $getOpenSearchUnique = getOpenSearchUnique($paramsGetOpenSearchUnique[$klucz], $doDouble, $debug);
            return is_array($getOpenSearchUnique) && count($getOpenSearchUnique) > 0 ? $getOpenSearchUnique : array();
        } elseif ($tryb == 2) {
            return isset($wpisDynamiczny[$klucz]) && $wpisDynamiczny[$klucz] != '' ? $wpisDynamiczny[$klucz] : '';
        } elseif (
            0 
            || $tryb == 12
            || $tryb == 121
        ) {

            $ret = array();

            if (is_array($wpisDynamiczny) && count($wpisDynamiczny)) {
                $ret = $wpisDynamiczny;

                if ($tryb == 121) {
                    $ret = array();
                    foreach ($wpisDynamiczny as $key => $val) {
                        $ret[$val] = $key;
                    }
                }
            }

            return $ret;
        } else {
            return false;
        }

    } else {
        return false;
    }
}

/**
 * @param array $row `desktop_artykul`
 * @return false|string
 */
function PageBuilder_ButtonHtml($row)
{
    $jakiToTypDlaPageBuilder = PageBuilder_jakiToTyp($row);

    if ($jakiToTypDlaPageBuilder == false) {
        return false;
    }

    $md5Token = PageBuilder_generujMd5Token($jakiToTypDlaPageBuilder.$row['id']);

    //////

    $a_qs = array(
        't'     => $jakiToTypDlaPageBuilder, 
        'id'    => $row['id'],
        'csrf'  => $md5Token, 
    );
    $qs = http_build_query($a_qs);

    $buttonSrc  = 'https://107.sykon.pl/pagebuilder?'.$qs;

    //////

    $str  = '';
    $str .= '<br>';
    $str .= '<br>';
    $str .= '<div class="bjs-editbtn-container">'.PHP_EOL;
    $str .= '    <a '.PHP_EOL;
    $str .= '        href="'.$buttonSrc.'" '.PHP_EOL;
    $str .= '        id="edytorhtml_btn_edit" '.PHP_EOL;
    $str .= '        class="buttonX btn-simple btn" '.PHP_EOL;
    $str .= '        target="_blank" '.PHP_EOL;
    $str .= '    >'.PHP_EOL;
    $str .= '        <i class="far fa-edit"></i> Edycja'.PHP_EOL;
    $str .= '    </a>'.PHP_EOL;
    $str .= '</div>'.PHP_EOL;
    $str .= '';

    return $str;
}

/**
 * @param array $row `desktop_artykul`
 * @param bool $getContent
 * @return false|string
 */
function PageBuilder_FrameHtml($row, $getContent=false)
{
    $jakiToTypDlaPageBuilder = PageBuilder_jakiToTyp($row);

    if ($jakiToTypDlaPageBuilder == false) {
        return false;
    }

    $md5Token = PageBuilder_generujMd5Token($jakiToTypDlaPageBuilder.$row['id']);

    //////

    $a_qs = array(
        't'     => $jakiToTypDlaPageBuilder, 
        'id'    => $row['id'],
        'csrf'  => $md5Token, 
    );

    $qs = http_build_query($a_qs);

    $frameSrc = 'https://107.sykon.pl/pokaz?'.$qs;

    if ($getContent === true) {
        $frameSrc .= '&cms_update';
        $content = file_get_contents($frameSrc);
        
        if ($content !== false) {
            return $content;
        }
        return false;
    }

    //////

    $str  = '';
    $str .= '<div class="bjs-iframe-container">'.PHP_EOL;
    $str .= '    <iframe '.PHP_EOL;
    $str .= '        id="edytorhtml_iframe" '.PHP_EOL;
    $str .= '        src="'.$frameSrc.'" '.PHP_EOL;
    $str .= '        title="Podgląd przygotowanego szablonu maila" '.PHP_EOL;
    // $str .= '        onload="iframeLoaded()" '.PHP_EOL;
    $str .= '        height="939px" '.PHP_EOL;
    $str .= '        style="width: 100%" '.PHP_EOL;
    $str .= '    >'.PHP_EOL;
    $str .= '    </iframe>'.PHP_EOL;
    $str .= '</div>'.PHP_EOL;
    $str .= ''.PHP_EOL;
    $str .= '<script>'.PHP_EOL;
    $str .= '    $(document).ready(function() {'.PHP_EOL;
    $str .= '        document.addEventListener("visibilitychange", function() {'.PHP_EOL;
    $str .= '            $("#edytorhtml_iframe").attr("src", $("#edytorhtml_iframe").attr("src"));'.PHP_EOL;
    $str .= '        });'.PHP_EOL;
    $str .= '    });'.PHP_EOL;
    $str .= '</script>'.PHP_EOL;
    $str .= ''.PHP_EOL;

    return $str;
}

/**
 * @param array $paramsArr
 * @param false|string {'p' podstrona, 'a' artykuł, 'm' menu}
 */
function PageBuilder_jakiToTyp($paramsArr=array())
{
    global $konfiguracjaCMS;

    $ret = false;

    if (
        1
        && is_array($konfiguracjaCMS) && count($konfiguracjaCMS) > 0
        && isset($konfiguracjaCMS['PageBuilder']) && $konfiguracjaCMS['PageBuilder'] == 1
    ) {
        // ok
    } else {
        return false;
    }

    if (is_array($paramsArr) && count($paramsArr) > 0) {
        $typ        = isset($paramsArr['typ'])          ? $paramsArr['typ'] : '';
        $grupa      = isset($paramsArr['grupa'])        ? $paramsArr['grupa'] : '';
        $rewriteUrl = isset($paramsArr['rewriteUrl'])   ? $paramsArr['rewriteUrl'] : '';
    } else {
        return false;
    }

    //////

    if (
        1
        && substr($typ, 0, 4) == 'page'
        && in_array($rewriteUrl, array(
            'start.html', 'mojerezerwacje.html', 'mojerezerwacje2.html', 'brak.html', 'error.html', 'email.html', 
            'kontakt.html', 'contact.html', 
            'wyniki_wyszukiwania.html'
        ))
    ) {
        $ret = 'p';
    } elseif (
        1
        && substr($typ, 0, 4) == 'page'
        && $grupa == ''
    ) {
        $ret = 'a';
    } elseif (
        1
        && strpos($typ, '_html') !== false
        && $grupa == ''
        && $rewriteUrl == ''
    ) {
        $ret = 'm';
    }

    return $ret;
}

/**
 * @param string $string
 * @param string $pass
 * @return string
 */
function PageBuilder_generujMd5Token($string, $pass='')
{
    if ($pass == '') {
        $pass = 'uBHILfrUPei0QIuBQV0H1LXw4B6D0WhytXloe5MgOlEz3MZbsQkZFmsRhrYcGHmY';
    }
    
    return md5($string.$pass);
}

//////////////////////////////
//////////////////////////////
//////////////////////////////

function pobierzCombinations($md, $touroperator='', $hotel3='', $flag=0)
{
    $retarr = array();
    
    $sqlst = '  SELECT  combinations
                FROM    '.getSykonsDatabaseName().'.offers
                WHERE
                        md = "'.mysql_real_escape_string($md).'" AND
                        departure_date > NOW() AND
                        1
                LIMIT   0,1
                ';
    
    
    // if ($debug)
    // echo 'L: '.__LINE__.', '.$sqlst.'<br>';
    
    $res = mysql_query($sqlst);
    
    if (mysql_num_rows($res) > 0)
    {
        $row = mysql_fetch_assoc($res);
        
        if ($flag == 1)
        {
            return $row['combinations'];
        }
        
        $retarr = explode(',', $row['combinations']);
        
        array_pop($retarr);
        array_shift($retarr);
    }
    else
    {
        
    }
    
    return $retarr;
}

function pobierzWiekMinMax($md, $touroperator='', $hotel3='')
{
    $retarr = array();

    $sqlst = '  SELECT  age_min, age_max
                FROM    '.getSykonsDatabaseName().'.offers
                WHERE
                        md = "'.mysql_real_escape_string($md).'" AND
                        departure_date > NOW() AND 
                        1
                LIMIT   0,1
                ';


    // if ($debug)
    // echo 'L: '.__LINE__.', '.$sqlst.'<br>';

    $res = mysql_query($sqlst);

    if (mysql_num_rows($res) > 0)
    {
        $row = mysql_fetch_assoc($res);
        $retarr['age_min'] = $row['age_min'];
        $retarr['age_max'] = $row['age_max'];
    }
    else
    {
        // w przypadku OKTO, zmienia się kod imprezy... np z BDA01/M1.M3 na BDA01/M1.M4
        // to rowniez zmiania sie md i powyzsze zapytanie nic nie znajdzie
        
        if ($touroperator == 'OKTOURS')
        {
            $sqlst = '  SELECT  age_min, age_max
                        FROM    '.getSykonsDatabaseName().'.offers
                        WHERE
                                touroperator = "'.mysql_real_escape_string($touroperator).'" AND
                                hotel3 = "'.mysql_real_escape_string($hotel3).'" AND 
                                departure_date > NOW() AND 
                                1
                        LIMIT   0,1
                        ';
            
            $res = mysql_query($sqlst);
            
            if (mysql_num_rows($res) > 0)
            {
                $row = mysql_fetch_assoc($res);
                $retarr['age_min'] = $row['age_min'];
                $retarr['age_max'] = $row['age_max'];
                
                // okto ma wprowadzone przedzialy, w ktorych uczestnik powinien sie urodzic zeby byc na imprezie
                // dlatego age_min jest wyliczane podczas zapisywania do offers, wiec jesli mozna to warto
                // tutaj zwiekszyc ta wartosc
                if ($retarr['age_min'] != $retarr['age_max'] and ($retarr['age_max'] - $retarr['age_min']) > 1)
                $retarr['age_min']++;
            }
        }
    }

    return $retarr;
}

/**
 * typ:
 * 0  - pobierzDaneDoCssDefault
 * 1  - pobierzDaneDoCssPostAjax
 * 2  - pobierzDaneDoCssPostCSS
 * 10 - pobierzDaneDoCssDefault Afiliacja
 * 
 * 0, 10 - zazwyczaj pierwsze wywolanie, testowe, do tworzenia szablonu (schematu) css, dodatkowo wykorzystywane w projekcie w metodzie Page_BeforeInitialize() !!!
 * 1, 11 - wywolanie z input.onchange() - przeladowanie iframe z nowymi kolorami
 */
function generujPlikCss($klientId, $typ=0, $test=0)
{
    $konfiguracja = wezKonfiguracje($klientId);
    
    //print_v($konfiguracja);
    
    switch ($typ)
    {
        case 0:
        case 1:
        case 2:
            $tryb = 'jqm';
            break;
            
        case 10:
        case 11:
        case 12:
            $tryb = 'afiliacja';
            break;
            
        default:
            $tryb = 'jqm';
            break;
    }
    
    if (is_array($konfiguracja) and count($konfiguracja) > 0)
    {
        //print_v($konfiguracja);
        
        if ($tryb == 'jqm')
        {
            // sciezka do pliku ze schematem css
            $file1Path = $konfiguracja['_systemDir'].'lib/jQueryM/jquery.mobile-custom-swatch.css';
            
            // sciezka do pliku docelowego
            if ($test == 0)
            {
                $file2Path = $konfiguracja['_systemDir'].'mobi2/agentx/'.$konfiguracja['mobi_wyszukiwarka_agentx'].'/jquery.mobile-custom-swatch.css';
            }
            else
            {
                $file2Path = $konfiguracja['_systemDir'].'mobi2/agentx/'.$konfiguracja['mobi_wyszukiwarka_agentx'].'/jquery.mobile-custom-swatchTmp.css';
            }
            
            // sprawdzam, czy istnieje katalog do pliku: jquery.mobile-custom-XXX.css w zmiennej: $file2Path
            // jesli nie, to musze go utworzyc
            if (!file_exists($konfiguracja['_systemDir'].'mobi2/agentx/'.$konfiguracja['mobi_wyszukiwarka_agentx']))
            {
                if (strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0)
                {
                    mkdir($konfiguracja['_systemDir'].'mobi2/agentx/'.$konfiguracja['mobi_wyszukiwarka_agentx']);
                }
                else
                {
                    mkdir($konfiguracja['_systemDir'].'mobi2/agentx/'.$konfiguracja['mobi_wyszukiwarka_agentx'], 0777);
                }
            }
        }
        else if ($tryb == 'afiliacja')
        {
            //konfiguracja
            //wyszukiwarka_preferowany_to
            $file1Path = $konfiguracja['_systemDir'].'afiliacjaariadna/css/styleAll.css';
            
            // wersja agencyjna
            // dorobic wersje dla TO
            if (1)
            {
                $file2Path = $konfiguracja['_systemDir'].'afiliacjaariadna/konfiguracja/agx/'.strtolower($konfiguracja['wyszukiwarka_agentx']);
                
                // sprawdzam, czy istnieje katalog do pliku: jquery.mobile-custom-XXX.css w zmiennej: $file2Path
                // jesli nie, to musze go utworzyc
                if (!file_exists($file2Path))
                {
                    if (strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0)
                    {
                        mkdir($file2Path);
                    }
                    else
                    {
                        mkdir($file2Path, 0777);
                    }
                }
                
                if ($test == 0)
                {
                    $file2Path .= '/styleAll.css';
                }
                else
                {
                    $file2Path .= '/styleAllTmp.css';
                }
                
                
            }
            
            /*
            // wszystkie pliki ze stylami, dla agentow wwwgen, ktorzy nie maja przypisanych 
            // preferowanych touroperatorow bede trzymal w jednym katalogu:
            // agx/agentwwwgen
            if ($konfiguracja['wyszukiwarka_preferowany_to'] == '')
            $konfiguracja['wyszukiwarka_preferowany_to'] = '_agx';
            
            if (czyJestemTo($konfiguracja['login']) == 1)
            {
                $konfiguracja['wyszukiwarka_preferowany_to'] = $konfiguracja['login'];
                
                if ($test == 0)
                $file2Path = $konfiguracja['_systemDir'].'afiliacjaariadna/konfiguracja/'.strtolower($konfiguracja['wyszukiwarka_preferowany_to']).'/styleAll.css';
                else
                $file2Path = $konfiguracja['_systemDir'].'afiliacjaariadna/konfiguracja/'.strtolower($konfiguracja['wyszukiwarka_preferowany_to']).'/styleAllTmp.css';
            }
            else 
            {
                if ($test == 0)
                $file2Path = $konfiguracja['_systemDir'].'afiliacjaariadna/konfiguracja/'.strtolower($konfiguracja['wyszukiwarka_preferowany_to']).'/'.strtolower($konfiguracja['wyszukiwarka_agentx']).'/styleAll.css';
                else
                $file2Path = $konfiguracja['_systemDir'].'afiliacjaariadna/konfiguracja/'.strtolower($konfiguracja['wyszukiwarka_preferowany_to']).'/'.strtolower($konfiguracja['wyszukiwarka_agentx']).'/styleAllTmp.css';
            }
            
            // sprawdzam, czy istnieje katalog do pliku: jquery.mobile-custom-XXX.css w zmiennej: $file2Path
            // jesli nie, to musze go utworzyc
            if (!file_exists($konfiguracja['_systemDir'].'afiliacjaariadna/konfiguracja/'.strtolower($konfiguracja['wyszukiwarka_preferowany_to'])))
            {
                if (strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0)
                mkdir($konfiguracja['_systemDir'].'afiliacjaariadna/konfiguracja/'.strtolower($konfiguracja['wyszukiwarka_preferowany_to']));
                else
                mkdir($konfiguracja['_systemDir'].'afiliacjaariadna/konfiguracja/'.strtolower($konfiguracja['wyszukiwarka_preferowany_to']), 0777);
            }
            
            if (!czyJestemTo($konfiguracja['login']) == 1)
            {
                // sprawdzam, czy istnieje katalog do pliku: jquery.mobile-custom-XXX.css w zmiennej: $file2Path
                // jesli nie, to musze go utworzyc
                if (!file_exists($konfiguracja['_systemDir'].'afiliacjaariadna/konfiguracja/'.strtolower($konfiguracja['wyszukiwarka_preferowany_to']).'/'.strtolower($konfiguracja['wyszukiwarka_agentx'])))
                {
                    if (strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0)
                    mkdir($konfiguracja['_systemDir'].'afiliacjaariadna/konfiguracja/'.strtolower($konfiguracja['wyszukiwarka_preferowany_to']).'/'.strtolower($konfiguracja['wyszukiwarka_agentx']));
                    else
                    mkdir($konfiguracja['_systemDir'].'afiliacjaariadna/konfiguracja/'.strtolower($konfiguracja['wyszukiwarka_preferowany_to']).'/'.strtolower($konfiguracja['wyszukiwarka_agentx']), 0777);
                }
            }
            */
        }
        
        
        if (!file_exists($file1Path))
        {
            return -1;
        }
        
        
        // if ($tryb == 'afiliacja')
        {
            // echo 'file1Path: '.$file1Path.'<br>'."\n";
            // echo 'file2Path: '.$file2Path.'<br>'."\n";
        }
        
        // exit('__EXIT__ :: '.__LINE__);
        
        //////////////////////////////
        
        switch($typ)
        {
            case 0:
                // pobranie defaultowych wartosci z pliku
                $trans = pobierzDaneDoCssDefault();
                break;
                
            case 1:
            case 11:
                // pobiera dane z posta
                $trans = pobierzDaneDoCssPostAjax();
                break;
                
            case 2:
                // pobranie danych z bazy danych
                $trans = pobierzDaneDoCssPostCSS('2.0');
                break;
                
            case 10:
                // pobranie defaultowych wartosci z pliku
                $trans = pobierzDaneDoCssDefaultAfiliacja();
                break;
                
            //case 11:
            //  // pobiera dane z posta
            //  $trans = pobierzDaneDoCssPostAjax();
            //  break;
                
            case 12:
                // pobranie danych z bazy danych
                $trans = pobierzDaneDoCssPostCSS('3.0');
                break;
            
            default:
                return -1;
                break;
        }
        
        //print_v($trans);
        
        $trans['/* DYNAMIC_VALUE */'] = '';
        
        //arsort($trans, SORT_NUMERIC);
        //$trans = array_keys($trans);
        
        uksort($trans, create_function('$a,$b', 'return strlen($a) < strlen($b);'));
        
        
        // if ($tryb == 'afiliacja')
        {
            // print_v($trans, 'trans ('.$typ.'):');
            // exit('__EXIT__ :: '.__LINE__);
        }
        
        $a = file_get_contents($file1Path);
        
        $a = strtr($a, $trans);
        
        $a .= "\n".'/* ts: '.date('Y-m-d H:i:s').' */'; 
        
        //////////////////////////////
        
        // echo nl2br($a);
        
        //////////////////////////////
        
        file_put_contents($file2Path, $a);
        
        //////////////////////////////
        
        return 1;
    }
    else
    {
        return -1;
    }
}

/*
 * (array) $typ:
 * - 'files'
 * - 'templates'
 */
function ustawPlikDoMobi(&$pathFiles, $typ, $fileDir, $mobiversion='')
{
    // echo 'aaa: '.$pathFiles.', '.$typ.', '.$fileDir.'<br>';
    // exit;
    
    // 20121128
    // UWAGA:
    // na razie w wersji lokalnej trzeba pozostawić pliki:
    // mobi_function.js                 - jesli mail.tpl idzie z wesji defaultowej to na razie zawsze pobiera mobi_function.js z wersji lokalnej
    //                                      dlatego trzeba ten plik na razie zostawic
    // templates/email.tpl              - do sprawdzenia wysylanie maili
    // templates/main.tpl               - moga byc male roznice w css - do sprawdzenia
    // templates/mobi_template.tpl      - ZAWSZE MUSI BYC WERSJA LOKALNA
    
    global $agentx;
    
    $arr = explode('/', $fileDir);
    $fileName = $arr[count($arr)-1];
    
    if ($fileName == '')
    {
        return;
    }
    
    $fileName = str_replace('.', '_', $fileName);
    
    if ($mobiversion != '')
    {
        $fileDirTmp = getSystemDir().$mobiversion.'/agentx/'.$agentx.'/'.$fileDir;
    }
    else
    {
        $fileDirTmp = getSystemDir().'mobi/agentx/'.$agentx.'/'.$fileDir;
    }
    
    //////////////////////////////
    
    if ($typ == 'files')
    {
        $klucz = $fileName;
    }
    else if ($typ == 'templates')
    {
        if (
            $fileDir == 'templates/main.tpl' or 
            $fileDir == 'templates/main_1.tpl'
        )
        {
            $klucz = 'templateBig';
        }
        else
        {
            $klucz = 'templateSmall';
        }
    }
        
    //////////////////////////////
    
    if (file_exists($fileDirTmp))
    {
        // pobranie lokalnej wersji pliku
        
        if ($typ == 'files')
        {
            if ($mobiversion != '')
            {
                $val = getSystemUrl().'wwwgen/'.$mobiversion.'/agentx/'.$agentx.'/'.$fileDir;
            }
            else
            {
                $val = getSystemUrl().'wwwgen/mobi/agentx/'.$agentx.'/'.$fileDir;
            }
        }
        else if ($typ == 'templates')
        {
            $val = str_replace('templates/', '', $fileDir);
        }
        
        $pathFiles[$typ][$klucz] = $val;
    }
    else
    {
        // pobranie defaultowej wersji pliku
        
        // echo 'aaa';
        
        if ($typ == 'files')
        {
            if ($mobiversion != '')
            {
                $val = getSystemUrl().'wwwgen/'.$mobiversion.'/agentx/_zero/'.$fileDir;
            }
            else
            {
                $val = getSystemUrl().'wwwgen/mobi/agentx/_zero/'.$fileDir;
            }
        }
        else if ($typ == 'templates')
        {
            $val = '../../_zero/templates/'.str_replace('templates/', '', $fileDir);
        }
        
        $pathFiles[$typ][$klucz] = $val; 
    }
}

function sprawdzPromoGodzinyDlaToWMiesiacu($czyje, $data)
{
    $retarr = array(
                        'max_promo_godzin_w_miesiacu' => 0,
                        'ile_zarezerwowano' => 0,
                        'ile_pozostalo' => 0
                    );
                    
    //////////////////////////////
    
    $date = new DateTime($data);
    // echo $date->format('Y-m').'<br>';
    
    //////////////////////////////
    
    $sqlst = '  SELECT  max_promo_godzin_w_miesiacu
                FROM    konfiguracja
                WHERE
                        czyje = "'.mysql_real_escape_string($czyje).'" AND
                        1
                LIMIT   0,1
                ';
    
    $res = mysql_query($sqlst);
    
    $row = mysql_fetch_assoc($res);
    
    $retarr['max_promo_godzin_w_miesiacu'] = $row['max_promo_godzin_w_miesiacu'];
    
    //////////////////////////////
    
    $sqlst = '  SELECT promo_p.id_paczki 
                        , ( SELECT  COUNT(*) 
                            FROM    paczka_pozycje paczka_p
                            WHERE   
                                    paczka_p.id_paczka = promo_p.id_paczki AND 
                                    paczka_p.md IS NOT NULL AND
                                    paczka_p.md <> "" AND
                                    1
                        ) AS ile_paczka_pozycje
                FROM    promo_pozycje promo_p
                WHERE
                        promo_p.data_promo  LIKE "'.$date->format('Y-m').'%" AND 
                        promo_p.czyje       = "'.mysql_real_escape_string($czyje).'" AND 
                        1
                ';
    
    // echo $sqlst.'<br>';
    
    $res = mysql_query($sqlst);
    
    while ($row = mysql_fetch_assoc($res))
    {
        $retarr['ile_zarezerwowano'] += intval($row['ile_paczka_pozycje']);
    }
    
    //////////////////////////////
    
    $retarr['ile_pozostalo'] = $retarr['max_promo_godzin_w_miesiacu'] - $retarr['ile_zarezerwowano'];
    
    //////////////////////////////
    
    return $retarr;
}

function sprawdzIlePozycjiWPromo($id, $typ, $czyje='')
{
    $debug = 0;
    
    // if ($czyje == -1)
    // return;
    
    // if ($debug)
    // echo "$id, $typ, $czyje<br>";
    
    $retarr = array(    'nazwa'                             => '',
                        'nazwa_paczki'                      => '',
                        'ile_mozna_maksymalnie'             => 0,
                        'ile_zarezerwowano'                 => 0,
                        'ile_zarezerwowano_moje'            => 0,
                        'ile_zarezerwowano_moje_w_paczce'   => 0,
                        'ile_pozostalo'                     => 0,
                        );
                        
    //////////////////////////////
    
    $sqlst = '  SELECT  nazwa, ile_rekordow
                FROM    translate_paczka_typ
                WHERE
                        typ_promo = "'.mysql_real_escape_string($typ).'" AND 
                        1
                LIMIT 0,1
                ';
    
    if ($debug)
    {
        echo 'L: '.__LINE__.', '.$sqlst.'<br>'."\n";
    }
    
    $res = mysql_query($sqlst);
    
    // poprawic
    if (mysql_num_rows($res) > 0)
    {
        $row = mysql_fetch_assoc($res);
        
        $retarr['ile_mozna_maksymalnie'] = $row['ile_rekordow'];
        $retarr['nazwa'] = $row['nazwa'];
    }
    else
    {
        $retarr['ile_mozna_maksymalnie'] = 0;
    }
    
    //////////////////////////////
    
    $sqlst = '  SELECT  data_promo, godzina_promo, typ
                FROM    promo_pozycje
                WHERE
                        id  = "'.mysql_real_escape_string($id).'" AND
                        typ = "'.mysql_real_escape_string($typ).'" AND 
                        1
                LIMIT   0,1
                ';
    
    if ($debug)
    {
        echo 'L: '.__LINE__.', '.$sqlst.'<br>'."\n";
    }
    
    $res = mysql_query($sqlst);
    
    // poprawic
    if (mysql_num_rows($res) > 0)
    {
        $row = mysql_fetch_assoc($res);
        
        $data_promo     = $row['data_promo'];
        $godzina_promo  = $row['godzina_promo'];
    }
    
    $sqlst = '  SELECT  promo_p.data_promo, promo_p.godzina_promo, promo_p.typ, promo_p.id_paczki
                        , ( SELECT  COUNT(*) 
                            FROM    paczka_pozycje paczka_p
                            WHERE   
                                    paczka_p.id_paczka = promo_p.id_paczki AND 
                                    paczka_p.md IS NOT NULL AND
                                    paczka_p.md <> "" AND
                                1
                        ) AS ile_paczka_pozycje
                FROM    promo_pozycje promo_p
                WHERE
                        #promo_p.id     = "'.mysql_real_escape_string($id).'" AND
                        promo_p.typ     = "'.mysql_real_escape_string($typ).'" AND 
                        data_promo      = "'.mysql_real_escape_string($data_promo).'" AND 
                        godzina_promo   = "'.mysql_real_escape_string($godzina_promo).'" AND 
                        1
                LIMIT   0,200
                ';
    
    if ($debug)
    {
        echo 'L: '.__LINE__.', '.$sqlst.'<br>'."\n";
    }
    // exit;
    
    $res = mysql_query($sqlst);
    
    // poprawic
    if (mysql_num_rows($res) > 0)
    {
        while ($row = mysql_fetch_assoc($res))
        {
            $retarr['ile_zarezerwowano'] += intval($row['ile_paczka_pozycje']);
        }
    }
    else
    {
        $retarr['ile_zarezerwowano'] = 0;
    }
    
    //////////////////////////////
    
    if ($czyje != '')
    {
        $sqlst = '  SELECT  promo_p.data_promo, promo_p.godzina_promo, promo_p.typ, promo_p.id_paczki
                            , ( SELECT  COUNT(*) 
                                FROM    paczka_pozycje paczka_p
                                WHERE   
                                        paczka_p.id_paczka  = promo_p.id_paczki AND 
                                        paczka_p.md IS NOT NULL AND
                                        paczka_p.md         <> "" AND
                                        paczka_p.czyje      = promo_p.czyje AND 
                                    1
                            ) AS ile_paczka_pozycje
                    FROM    promo_pozycje promo_p
                    WHERE
                            #promo_p.id     = "'.mysql_real_escape_string($id).'" AND
                            promo_p.typ     = "'.mysql_real_escape_string($typ).'" AND
                            data_promo      = "'.mysql_real_escape_string($data_promo).'" AND 
                            godzina_promo   = "'.mysql_real_escape_string($godzina_promo).'" AND  
                            promo_p.czyje   = "'.mysql_real_escape_string($czyje).'" AND 
                            1
                    LIMIT   0,200
                    ';
        
        if ($debug)
        {
            echo 'L: '.__LINE__.', '.$sqlst.'<br>'."\n";
        }
        
        $res = mysql_query($sqlst);
        
        // poprawic
        if (mysql_num_rows($res) > 0)
        {
            //$row = mysql_fetch_assoc($res);
            //$retarr['ile_zarezerwowano_moje'] = $row['ile_paczka_pozycje'];
            
            //nazwa_paczki
            
            while ($row = mysql_fetch_assoc($res))
            {
                $retarr['ile_zarezerwowano_moje'] += intval($row['ile_paczka_pozycje']);
            }
        }
        else
        {
            $retarr['ile_zarezerwowano_moje'] = 0;
        }
        
        //////////////////////////////
        
        $sqlst = '  SELECT  promo_p.data_promo, promo_p.godzina_promo, promo_p.typ, promo_p.id_paczki
                            , ( SELECT  COUNT(*) 
                                FROM    paczka_pozycje paczka_p
                                WHERE   
                                        paczka_p.id_paczka  = promo_p.id_paczki AND 
                                        paczka_p.md IS NOT NULL AND
                                        paczka_p.md         <> "" AND
                                        paczka_p.czyje      = promo_p.czyje AND 
                                    1
                            ) AS ile_paczka_pozycje
                    FROM    promo_pozycje promo_p
                    WHERE
                            promo_p.id      = "'.mysql_real_escape_string($id).'" AND
                            promo_p.typ     = "'.mysql_real_escape_string($typ).'" AND
                            #data_promo     = "'.mysql_real_escape_string($data_promo).'" AND 
                            #godzina_promo  = "'.mysql_real_escape_string($godzina_promo).'" AND  
                            promo_p.czyje   = "'.mysql_real_escape_string($czyje).'" AND 
                            1
                    LIMIT   0,200
                    ';
        
        if ($debug)
        {
            echo 'L: '.__LINE__.', '.$sqlst.'<br>'."\n";
        }
        
        $res = mysql_query($sqlst);
        
        // poprawic
        if (mysql_num_rows($res) > 0)
        {
            //$row = mysql_fetch_assoc($res);
            //$retarr['ile_zarezerwowano_moje'] = $row['ile_paczka_pozycje'];
            
            //nazwa_paczki
            
            while ($row = mysql_fetch_assoc($res))
            {
                $retarr['ile_zarezerwowano_moje_w_paczce'] += intval($row['ile_paczka_pozycje']);
            }
        }
        else
        {
            $retarr['ile_zarezerwowano_moje_w_paczce'] = 0;
        }
        
        //////////////////////////////
        
        $sqlst = '  SELECT  promo_p.id_paczki, p.nazwa
                    FROM    promo_pozycje promo_p
                            LEFT JOIN paczka p ON p.id = promo_p.id_paczki
                    WHERE
                            promo_p.id = "'.mysql_real_escape_string($id).'" AND    
                            1
                    LIMIT   0,1
                    ';
        
        if ($debug)
        {
            echo 'L: '.__LINE__.', '.$sqlst.'<br>'."\n";
        }
        
        $res = mysql_query($sqlst);
        
        // poprawic
        if (mysql_num_rows($res) > 0)
        {
            $row = mysql_fetch_assoc($res);
            $retarr['nazwa_paczki'] = $row['nazwa'];
        }
        else
        {}
    }
    else
    {
        // zrobic unset() na niepotrzebne klucze
        
        unset($retarr['nazwa_paczki']);
        unset($retarr['ile_zarezerwowano_moje']);
        unset($retarr['ile_zarezerwowano_moje_w_paczce']);
    }
    
    //////////////////////////////
    
    $retarr['ile_pozostalo'] = $retarr['ile_mozna_maksymalnie'] - $retarr['ile_zarezerwowano'];
    
    //////////////////////////////
    
    if ($debug)
    {
        echo '<br>'."\n";
    }
    
    //if ($debug)
    //print_v($retarr);
    
    //if ($godzina_promo == '09')
    //print_v($retarr);
    
    return $retarr;
}

function wezWszystkieTypyPromo()
{
    $retarr = array();
    
    $sqlst = '  SELECT  typ_promo
                FROM    translate_paczka_typ
                WHERE
                        typ_promo IS NOT NULL AND 
                        typ_promo <> "" AND 
                        1 
                ';
    
    // echo $sqlst.'<br>';
    
    $res = mysql_query($sqlst);
    
    if (mysql_num_rows($res) > 0)
    {
        // musze tutaj dodac recznie "1"
        // nie powinno byc tego w bazie danych
        //$retarr[] = "1";
        while ($row = mysql_fetch_assoc($res))
        {
            $retarr[] = $row['typ_promo'];
        }
    }
    
    return $retarr;
}

function wezPaczkiByTyp($typ, $czyje)
{
    $retarr = array();
    
    if (!is_numeric($czyje))
    {
        return $retarr;
    }
    
    $sqlst = '  SELECT  id
                FROM    paczka
                WHERE
                        typ = "'.mysql_real_escape_string($typ).'" AND 
                        czyje = "'.mysql_real_escape_string($czyje).'" AND
                        #sposob_wyswietlania IS NOT NULL AND 
                        1
                ORDER BY kolejnosc
                LIMIT   0,100
                ';
    
    $res = mysql_query($sqlst);
    
    // echo $sqlst.'<br>';
    
    if (mysql_num_rows($res) > 0)
    {
        while ($row = mysql_fetch_assoc($res))
        {
            $retarr[] = $row['id'];
        }
    }
    
    return $retarr;
}

/*
function wezSubDomeneDoMobi($czyje)
{
    $retval = '';
    $arr = wezKonfiguracje($czyje);
    
    if (isset($arr['wyszukiwarka_agentx']) and $arr['wyszukiwarka_agentx'] != '')
    {
        // zasada dla $agentxmobi ma byc taka, 
        // ze z normalnego agentx zabieramy 'www' i dodajemy 'mobi'
        // czyli np. 'trampwww' na 'trampmobi'
        // p. mariusz
        
        // a domenta 'mobitramp' ?
        $retval = 'mobi'.str_replace('www', '', $arr['wyszukiwarka_agentx']);
    }
    
    return $retval;
}

function wezAgentxDoMobi($czyje)
{
    $retval = '';
    $arr = wezKonfiguracje($czyje);
    
    if (isset($arr['wyszukiwarka_agentx']) and $arr['wyszukiwarka_agentx'] != '')
    {
        // zasada dla $agentxmobi ma byc taka, 
        // ze z normalnego agentx zabieramy 'www' i dodajemy 'mobi'
        // czyli np. 'trampwww' na 'trampmobi'
        // p. mariusz
        
        // a domenta 'mobitramp' ?
        $retval = str_replace('www', '', $arr['wyszukiwarka_agentx']).'mobi';
    }
    
    return $retval;
}
*/

/**
 * @param int $czyje
 * @return array
 */
function wezKonfiguracjeCMS($czyje)
{
    //////////////////////////////
    
    $retarr = array();
    
    if (!is_numeric($czyje)) {
        return $retarr;
    }
    
    $sqlst  = '';
    $sqlst .= 'SELECT * '.PHP_EOL;
    $sqlst .= 'FROM desktop_konfiguracja '.PHP_EOL;
    $sqlst .= 'WHERE '.PHP_EOL;
    $sqlst .= '    1 '.PHP_EOL;
    $sqlst .= '    AND czyje = "'.mysql_real_escape_string($czyje).'" '.PHP_EOL;
    $sqlst .= 'LIMIT 0, 1 '.PHP_EOL;
    $sqlst .= '# F:'.basename(__FILE__).' L:'.__LINE__.PHP_EOL;
    $sqlst .= '; ';

    $res = mysql_query($sqlst, db());
    
    if (mysql_num_rows($res) > 0) {
        $retarr = mysql_fetch_assoc($res);
    }
    
    // wycieczki.pl
    if (
        1
        && is_array($retarr) and count($retarr) > 0
        && $czyje == 35
    ) {
        // $retarr['www_telefon_call_center'] = '914 852 398';
        
        $retarr['nazwa']        = 'PIRO';
        $retarr['ulica']        = 'ul. Małopolska';
        $retarr['numer_budynku']= '4/7';
        $retarr['kod']          = '70-513';
        $retarr['miasto']       = 'Szczecin';
        
        $retarr['nip']          = '852-000-90-23';
        $retarr['regon']        = '810427378';
    }
    
    if (is_array($retarr) and count($retarr) > 0) {
        global $agentx;
        
        if (strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0) {
            // localhost i tak jest zdefiniowany jako domenta testowa (przynajmniej tak powinno byc)
            // ale czasem będzie mi potrzebne sterowanie w szablonach
            
            if (
                1 
                && in_array($agentx, array(
                    'sykon_wycieczki.pl', 
                    'vogue_obozy2', 
                ))
            ) {
                $retarr['pobierzSzablonyZwwwgen'] = 1;
            } else {
                $retarr['pobierzSzablonyZwwwgen'] = 0;
            }
        } elseif (
            1
            && function_exists('sprawdzCzyDomenaJestTestowa')
            && sprawdzCzyDomenaJestTestowa() === true
        ) {
            $retarr['pobierzSzablonyZwwwgen'] = 0;
        } elseif (
            1 
            && in_array($agentx, array(
                'kompasincoming2www', 
                'regentgrupy2www', 
                'travelservice2www', 
                'travelserviceen2www', 
                'lulubeds2www', 
            ))
        ) {
            // FIXMES:
            // docelowo, wszyscy nowi, powinni iśc z katalogu sykon_bartek
            $retarr['pobierzSzablonyZwwwgen'] = 0;
        } else {
            $retarr['pobierzSzablonyZwwwgen'] = 1;
        }

        // wszyscy nowi, będą mieli szablony w wwwgen
        // 78. demo2www
        if (is_array($retarr) and count($retarr) > 0) {
            if (
                0
                || $retarr['czyje'] == 78
                || $retarr['czyje'] > 210
            ) {
                $retarr['pobierzSzablonyZwwwgen'] = 1;
            }
        }
    }
    ksort($retarr);
    
    return $retarr;
}

/**
 * Funkcja sprawdza, czy jest skonfigurowany CMS, czy to jest "nowy agentx" oraz czy szablony są w katalogu wwwgen
 * @param array $konfiguracjaCMS `wezKonfiguracjeCMS()`
 * @return int {0,1}
 */
function wezFlagWersjaNSykon($konfiguracjaCMS=array()) {
    $retval = 0;

    if (
        1
        && is_array($konfiguracjaCMS) && count($konfiguracjaCMS) > 0
        && (
            0 
            || $konfiguracjaCMS['czyje'] == 78
            || $konfiguracjaCMS['czyje'] > 210
        ) 
        && $konfiguracjaCMS['pobierzSzablonyZwwwgen'] == 1
        && isset($konfiguracjaCMS['nazwaSzablonu']) 
    ) {
        $retval = 1;
    }

    return $retval;
}

function getAgentCzyjeByAgentx($agentx)
{
    $retval = 0;
    
    $sqlst = '  SELECT  czyje
                FROM    konfiguracja
                WHERE
                        wyszukiwarka_agentx = "'.mysql_real_escape_string($agentx).'" AND
                        1
                LIMIT   0,1
                ';
    
    
    $res = mysql_query($sqlst);
    
    // echo 'F: '.basename(__FILE__).', L: '.__LINE__."<br>\n";
    // print_v($sqlst);
    
    if (mysql_num_rows($res) > 0)
    {
        $row = mysql_fetch_assoc($res);
        
        $retval = $row['czyje'];
    }
    
    return $retval;
}

/**
 * @param int|string $czyje (lub $agent)
 * @param int $tylkoPoprawnaKonfiguracja
 * @return false|array
 */
function wezKonfiguracje($czyje, $tylkoPoprawnaKonfiguracja=0)
{
    //////////////////////////////
    
    global $agentx;
    
    //////////////////////////////
    // 2016-01-28 09:39:41
    // patent dla almaturu
    // wszyscy agenci almatur2www_* pobierają konfigurację z almatur2www_ag2int12
    //////////////////////////////
    
    if (strpos(' '.strtolower($agentx), 'almatur2www') > 0) {
        if (!is_numeric($czyje)) {
            $czyje = 'almatur2www_ag2int12';
        } else {
            $czyje = 74;
        }
    }
    
    //////////////////////////////
    
    $retarr = array();
    
    if ($czyje == -1) {
        // poniższe zmienne mogę zwrócić nawet jeśli nie zostało przekazane $czyje
        $retarr['_systemUrl']   = getSystemUrl();
        $retarr['_systemDir']   = getSystemDir();
        
        // 20140829
        $retarr['_cmsUrl']      = getSystemUrl().'wwwgen/cms/';
        $retarr['_cmsDir']      = 'cms';
        
        return $retarr;
    }
    
    $sqlst = '  SELECT  *
                FROM    konfiguracja
                WHERE
                        czyje = "'.mysql_real_escape_string($czyje).'" AND
                        1
                LIMIT   0,1
                ';
    
    if (!is_numeric($czyje)) {
        $sqlst  = '';
        $sqlst .= 'SELECT k.* '.PHP_EOL;
        $sqlst .= '    , h.login '.PHP_EOL;
        $sqlst .= 'FROM konfiguracja k '.PHP_EOL;
        $sqlst .= '    LEFT JOIN haslo h ON h.id = k.czyje '.PHP_EOL;
        $sqlst .= 'WHERE '.PHP_EOL;
        $sqlst .= '    1 '.PHP_EOL;
        $sqlst .= '    AND k.wyszukiwarka_agentx = "'.mysql_real_escape_string($czyje).'" '.PHP_EOL;
        $sqlst .= '    AND k.wyszukiwarka_agentx <> "" '.PHP_EOL;
        $sqlst .= 'LIMIT 0, 1 '.PHP_EOL;
        $sqlst .= '# F:'.basename(__FILE__).' L:'.__LINE__.PHP_EOL;
        $sqlst .= '; ';
    } else {
        $sqlst  = '';
        $sqlst .= 'SELECT k.* '.PHP_EOL;
        $sqlst .= '    , h.login '.PHP_EOL;
        $sqlst .= 'FROM '.getCMSDatabaseName().'.konfiguracja k '.PHP_EOL;
        $sqlst .= '    LEFT JOIN '.getCMSDatabaseName().'.haslo h ON h.id = k.czyje '.PHP_EOL;
        $sqlst .= 'WHERE '.PHP_EOL;
        $sqlst .= '    1 '.PHP_EOL;
        $sqlst .= '    AND k.czyje = "'.mysql_real_escape_string($czyje).'" '.PHP_EOL;
        $sqlst .= 'LIMIT 0, 1 '.PHP_EOL;
        $sqlst .= '# F:'.basename(__FILE__).' L:'.__LINE__.PHP_EOL;
        $sqlst .= '; ';
    }
    // print_v($sqlst);

    $res = mysql_query($sqlst);
    
    if ($res === false) {
        return $retarr;
    }

    if ($tylkoPoprawnaKonfiguracja == 1) {
        if (mysql_num_rows($res) == 0) {
            error_log('error w funkcji wezKonfiguracje() z trybem tylkoPoprawnaKonfiguracja, "'.$czyje.'"');
            exit;
        }
    }

    if (mysql_num_rows($res) > 0) {
        $retarr = mysql_fetch_assoc($res);
    } 

    if (is_array($retarr) and count($retarr) > 0) {
        if (strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0) {
            if (isset($retarr['dane_adres_www']) && $retarr['dane_adres_www'] != '') {
                $retarr['dane_adres_www'] = 'localhost/wwwgen/cms/';
                $retarr['dane_adres_www'] = getSystemUrl();
            }
        }
        
        if (isset($retarr['dane_adres_www']) && $retarr['dane_adres_www'] != '') {
            $retarr['dane_adres_www']   = strtr(strtolower(trim($retarr['dane_adres_www'])), array('https://' => '', 'http://' => '', 'www.' => ''));
            
            if ($retarr['dane_adres_www']{strlen($retarr['dane_adres_www'])-1} != '/') {
                $retarr['dane_adres_www'] .= '/';
            }
            
            $retarr['_wwwUrl']          = 'http://'.$retarr['dane_adres_www'].'index.php';
            $retarr['_wwwUrl_https']    = 'https://'.$retarr['dane_adres_www'].'index.php';
            
            if (strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0) {
                $retarr['_wwwUrl_https'] = str_replace('https://', 'http://', $retarr['_wwwUrl_https']);
            }
        }
        
        // zasada dla $agentxmobi ma byc taka, 
        // ze z normalnego agentx zabieramy 'www' i dodajemy 'mobi'
        // czyli np. 'trampwww' na 'trampmobi'
        // p. mariusz
        
        if (trim($retarr['wyszukiwarka_agentx']) != '') {
            $retarr['mobi_wyszukiwarka_agentx'] = str_replace('www', '', $retarr['wyszukiwarka_agentx']).'mobi';
        } else {
            $retarr['mobi_wyszukiwarka_agentx'] = '';
        }
        
        if (trim($retarr['wyszukiwarka_agentx']) != '') {
            $retarr['mobi_wyszukiwarka_subdomena'] = str_replace('www', '', $retarr['wyszukiwarka_agentx']).'mobi';
            
            if ($retarr['wyszukiwarka_agentx'] == 'indexpolwww') {
                $retarr['mobi_wyszukiwarka_subdomena'] = 'indexpolska';
            }
        } else {
            $retarr['mobi_wyszukiwarka_subdomena'] = '';
        }
        
        $retarr['_systemUrl']   = getSystemUrl();
        $retarr['_systemDir']   = getSystemDir();
        
        // 20140829
        $retarr['_cmsUrl']      = getSystemUrl().'wwwgen/cms/';
        
        $retarr['_cmsDir']      = 'cms';
        $retarr['_genDir']      = 'gen';
        
        $retarr['wyszukiwarka_url2'] = $retarr['wyszukiwarka_url'].'?agx='.$retarr['wyszukiwarka_agentx'].'&onepage=39';
        $retarr['mobi_wyszukiwarka_url2'] = '?agx='.$retarr['wyszukiwarka_agentx'].'&onepage=39';
        
        if (
            1
            && in_array($retarr['id'], array(
                2, 3, 4, 5, 6, 8, 9, 
                10, 11, 12, 13, 14, 
            ))
        ) {
            $retarr['_showDir'] = 'show';
        } else {
            $retarr['_showDir'] = 'show2';
        }
        
        if ($retarr['mobi'] == 1 and $retarr['mobi2'] == 1) {
            $retarr['_mobiDir'] = 'mobi2';
        } else if ($retarr['mobi'] == 1) {
            $retarr['_mobiDir'] = 'mobi';
        }
    }

    ksort($retarr);
    
    return $retarr;
}

function wezNazweTypuPaczki($id, $typ_promo='')
{
    $retval = -1;
    
    if ($typ_promo != '')
    {
        $sqlst = '  SELECT  nazwa
                    FROM    translate_paczka_typ
                    WHERE
                            typ_promo = "'.mysql_real_escape_string($typ_promo).'" AND
                            typ_promo IS NOT NULL AND  
                            1
                    LIMIT   0,1
                    ';
    }
    else
    {
        $sqlst = '  SELECT  nazwa
                    FROM    translate_paczka_typ
                    WHERE
                            id = "'.mysql_real_escape_string($id).'" AND 
                            1
                    LIMIT   0,1
                    ';
    }
    
    $res = mysql_query($sqlst);
    
    // echo $sqlst.'<br>';
    
    $retarr = array();
    if (mysql_num_rows($res) > 0)
    {
        $row = mysql_fetch_assoc($res);
        
        $retval = $row['nazwa'];
    }
    
    return $retval;
}

function wezNazweSposobuWyswietlania($id)
{
    $retval = -1;
    
    $sqlst = '  SELECT  nazwa
                FROM    paczka_sposob_wyswietlania
                WHERE
                        id = "'.mysql_real_escape_string($id).'" AND 
                        1
                LIMIT   0,1
                ';
    
    $res = mysql_query($sqlst);
    
    // echo $sqlst.'<br>';
    
    $retarr = array();
    if (mysql_num_rows($res) > 0)
    {
        $row = mysql_fetch_assoc($res);
        
        $retval = $row['nazwa'];
    }
    
    return $retval;
}

function pokazPomoc($arr, $headerLegenda=1, $headerUwagi=1)
{
    // jeśli $headerUwagi=0 to znaczy, że komunikat jest wyświetlany blisko inputów i nie trzeba robić padding-left
    
    $paddingLeft = 20;
    
    if ($headerUwagi == 0)
    {
        $paddingLeft = 0;
    }
    
    $str = '';
    
    if (is_array($arr) and count($arr) > 0)
    {
        if (
            (is_array($arr['Legenda']) and count($arr['Legenda']) > 0) or 
            (is_array($arr['Uwagi']) and count($arr['Uwagi']) > 0)
        )
        {
            if ($headerLegenda == 1)
            {
                $str .= '<br>'."\n";
            }
            
            $str .= '<table border="0" width="100%" cellpadding="2" cellspacing="2" class="pokazPomoc" style="color: #999999;">'."\n";
        }
        
        if (is_array($arr['Legenda']) and count($arr['Legenda']) > 0)
        {
            if ($headerLegenda == 1) 
            {
                $str .= '<tr>'."\n";
                $str .= '   <td width="160" style="padding-left: '.$paddingLeft.'px;">Legenda:</td>'."\n";
                $str .= '   <td>&nbsp;</td>'."\n";
                $str .= '</tr>'."\n";
            }
            
            foreach ($arr['Legenda'] as $key => $val)
            {
                $kolor = $val['kolorTla'];
                
                $str .= '<tr>'."\n";
                
                if ($val['kolorTla'] != '')
                {
                    $str .= '   <td style="padding-left: '.$paddingLeft.'px; background-color: #'.$val['kolorTla'].' ">'.$val['kolorTresc'].': '.$val['kolorTla'].'</td>'."\n";
                }
                else if ($val['kolorPodkreslenia'] != '')
                {
                    $str .= '   <td style="padding-left: '.$paddingLeft.'px;"><span style="text-decoration: none; border-bottom: 1px solid #'.$val['kolorPodkreslenia'].'">'.$val['kolorTresc'].': '.$val['kolorPodkreslenia'].'</span></td>'."\n";
                }
                
                $str .= '   <td style="">'.$val['tresc'].'</td>'."\n";
                $str .= '</tr>'."\n";
            }
            
            if (is_array($arr['Uwagi']) and count($arr['Uwagi']) > 0)
            {
                $str .= '<tr>'."\n";
                $str .= '   <td style="padding-left: '.$paddingLeft.'px;" colspan="2"><br></td>'."\n";
                $str .= '</tr>'."\n";
            }
        }
        
        if (is_array($arr['Uwagi']) and count($arr['Uwagi']) > 0)
        {
            if ($headerUwagi == 1)
            {
                $str .= '<tr>'."\n";
                $str .= '   <td width="120" style="padding-left: '.$paddingLeft.'px;" colspan="2">'.((count($arr['Uwagi']) == 1) ? 'Uwaga' : 'Uwagi').':</td>'."\n";
                $str .= '</tr>'."\n";
            }
            
            foreach ($arr['Uwagi'] as $key => $val)
            {
                $str .= '<tr>'."\n";
                
                if ($val['kolorTla'] != '')
                {
                    $str .= '   <td style="padding-left: '.$paddingLeft.'px; background-color: #'.$val['kolorTla'].'" colspan="2">'.$val['tresc'].'</td>'."\n";
                }
                else
                {
                    $str .= '   <td style="padding-left: '.$paddingLeft.'px;" colspan="2">'.$val['tresc'].'</td>'."\n";
                }
                
                $str .= '</tr>'."\n";
            }
        }
        
        if (
            (is_array($arr['Legenda']) and count($arr['Legenda']) > 0) or 
            (is_array($arr['Uwagi']) and count($arr['Uwagi']) > 0)
        )
        {
            $str .= '</table>'."\n";
        }
    }
    
    return $str;
}

function kodujAdresPliku($typ, $typPliku, $czyje, $dodatkowyKlucz='')
{
    if (0)
    {
        echo 'dir: '.kodujString($czyje, 'koduj').'<br>';
        echo 'typ: '.$typ.'<br>';
        echo 'typPliku: '.$typPliku.'<br>';
        echo 'czyje: '.$czyje.'<br>';
        echo 'dodatkowyKlucz: '.$dodatkowyKlucz.'<br>';
        echo '<br>';
    }
    
    $retval = '';
    
    // typ:
    // 1: url do pliku
    // 2: sciezka do pliku na dysku
    // 3: 
    
    // _a: bez pliku
    
    if ($typ == 1)
    {
        $str = getSystemUrl().'wwwgen/gen/css/';
    }
    else if (
        $typ == 2 or
        $typ == '2a'
    )
    {
        $str = getSystemDir().'gen/css/';
    }
    else
    {
        $str = '';
    }
    
    if ($typ == '2a')
    {
        $retval = $str.kodujString($czyje, 'koduj').'/';
    }
    else
    {
        $retval = $str.kodujString($czyje, 'koduj').'/'.$typPliku.'_'.$dodatkowyKlucz.'.css';
    }
    
    return $retval;
}

function kodujString($str, $tryb='koduj')
{
    
    if ($tryb == 'koduj')
    {
        //return base64_encode($str);
        return strtr(base64_encode($str), '+/=', '-_,');
    }
    else
    {
        //return base64_decode($str);
        return base64_decode(strtr($str, '-_,', '+/='));
    }
}

function zamienPaczkaPozycjeIdNaOffersId($id)
{
    $retval = -1;
    
    $sqlst = '  SELECT  md
                FROM    paczka_pozycje
                WHERE
                        id = "'.mysql_real_escape_string($id).'" AND
                        1
                LIMIT   0,1
                ';
    
    
    if ($debug)
    {
        echo 'L: '.__LINE__.', '.$sqlst.'<br>';
    }
    
    $res = mysql_query($sqlst);
    
    if (mysql_num_rows($res) > 0)
    {
        $row = mysql_fetch_assoc($res);
        $retval = zamienMdNaOffersId($row['md']);
    }
    
    return $retval;
}

function zamienMdNaOffersId($md)
{
    $retval = -1;
    
    $sqlst = '  SELECT  id
                FROM    '.getSykonsDatabaseName().'.offers
                WHERE
                        md = "'.mysql_real_escape_string($md).'" AND
                        departure_date > NOW() AND 
                        1
                LIMIT   0,1
                ';
    
    
    if ($debug)
    {
        echo 'L: '.__LINE__.', '.$sqlst.'<br>';
    }
    
    $res = mysql_query($sqlst);
    
    if (mysql_num_rows($res) > 0)
    {
        $row = mysql_fetch_assoc($res);
        $retval = $row['id'];
    }
    
    return $retval;
}

function aktualizujPaczkaPozycje($UserID, $paczka_pozycje_id, $tryb='')
{
    $debug = 0;
    global $debug;
    
    if (sprawdzCzyMojaPaczkaPozycje($UserID, $paczka_pozycje_id))
    {
        if ($tryb == 'wyczysc')
        {
            $sqlst = '  UPDATE  paczka_pozycje
                        SET
                                touroperator        = "",
                                hotel               = "",
                                hotel_name          = "",
                                country_tourop      = "",
                                hotel_place         = "",
                                meal                = "",
                                departure_date      = "",
                                arrival_date        = "",
                                hotel_shortname     = "",
                                hotel_category      = "",
                                offertype1          = "",
                                offertype2          = "",
                                offertype3          = "",
                                price               = "",
                                g_images            = "",
                                img                 = "",
                                
                                md                  = "",
                                hotel_tmp           = "",
                                
                                departure_date_min  = "",
                                arrival_date_max    = ""
                        WHERE
                                id              = "'.mysql_real_escape_string($paczka_pozycje_id).'" AND
                                id              <> "" AND 
                                czyje           = "'.mysql_real_escape_string($UserID).'"
                        ';
            
            if ($debug)
            {
                echo 'L: '.__LINE__.', '.$sqlst.'<br>';
            }
            
            mysql_query($sqlst);
        }
        else if ($tryb == 'aktualizuj')
        {
            $offersId = zamienPaczkaPozycjeIdNaOffersId($paczka_pozycje_id);
            
            // echo 'paczka_pozycje_id: '.$paczka_pozycje_id.'<br>';
            // echo 'offersId: '.$offersId.'<br>';
            
            
            $sqlst_paczka_pozycje = '   SELECT  *
                                        FROM    paczka_pozycje
                                        WHERE
                                                id = "'.mysql_real_escape_string($paczka_pozycje_id).'" AND
                                                id > 0 
                                        LIMIT   0,1
                                        ';
            
            if ($debug)
            {
                echo 'L: '.__LINE__.', '.$sqlst_paczka_pozycje.'<br>';
            }
            
            $res_paczka_pozycje = mysql_query($sqlst_paczka_pozycje);
            
            if (mysql_num_rows($res_paczka_pozycje) > 0)
            {
                $row_paczka_pozycje = mysql_fetch_assoc($res_paczka_pozycje);
            }
            
            
            
            
            
            
            if ($offersId == -1)
            {
                // echo 'return, L: '.__LINE__.', offersId: '.$offersId.', paczka_pozycje_id: '.$paczka_pozycje_id.'<br>';
                // return;
                // continue;
            }
            
            // nie znaleziono Id, szukam jeszcze raz
            // md pobieram bezposrednio z offers
            if ($offersId == -1)
            {
                // $klucz Tomka
                // $klucz = $tourop.'|'.$v['hotel'];
                // $klucz .= '|'.$v['departure_place'].'|'.$v['departure_date'];
                // $klucz .= '|'.$v['arrival_place'].'|'.$v['arrival_date'];
                // $klucz .= '|'.$v['roomtype'];
                // $md = md5($klucz);
                
                //echo 'szukam offersId ponownie<br>';
                
                // if (mysql_num_rows($res) > 0)
                if (1)
                {
                    //$row = mysql_fetch_assoc($res);
                    
                    // poszukuje dowolnego md...
                    $sqlst = '  SELECT  md
                                FROM    '.getSykonsDatabaseName().'.offers
                                WHERE
                                        touroperator    = "'.mysql_real_escape_string($row_paczka_pozycje['touroperator']).'" AND 
                                        hotel           = "'.mysql_real_escape_string($row_paczka_pozycje['hotel']).'" AND 
                                        
                                        departure_date      > NOW() AND 
                                        1
                                LIMIT   0,1
                                ';
                    
                    if ($debug)
                    {
                        echo 'L: '.__LINE__.', '.$sqlst.'<br>';
                    }
                    
                    $res = mysql_query($sqlst);
                    
                    if (mysql_num_rows($res) > 0)
                    {
                        $row = mysql_fetch_assoc($res);
                        
                        $offersId = zamienMdNaOffersId($row['md']);
                    }
                }
                else
                {
                    
                }
                
                // echo 'offersId: '.$offersId.'<br>';
                
                if ($offersId == -1)
                {
                    // echo 'nie znaleziono offersId -> RETURN L: '.__LINE__.'<br>';
                    // echo 'return, L: '.__LINE__.', offersId: '.$offersId.', paczka_pozycje_id: '.$paczka_pozycje_id.'<br>';
                    return;
                }
            }
            
            $sqlst = '  SELECT  *
                        FROM    '.getSykonsDatabaseName().'.offers
                        WHERE
                                id = "'.mysql_real_escape_string($offersId).'" AND
                                1
                        LIMIT   0,1
                    ';
            
            if ($debug)
            {
                echo 'L: '.__LINE__.', '.$sqlst.'<br>';
            }
            
            $res = mysql_query($sqlst);
            
            if (mysql_num_rows($res) > 0)
            {
                $row = mysql_fetch_assoc($res);
                
                //print_v($row, 'row:');
                
                //////////////////////////////
                // minimalna cena dla hotelu
                //////////////////////////////
                
                $sqlstCena = '  SELECT  MIN(price) as price
                                FROM    '.getSykonsDatabaseName().'.offers
                                WHERE
                                        touroperator    = "'.mysql_real_escape_string($row['touroperator']).'" AND 
                                        hotel           = "'.mysql_real_escape_string($row['hotel']).'" AND 
                                        departure_date  > NOW() AND 
                                        price           > 0 AND 
                                        1
                                LIMIT   0,1
                                ';
                
                if ($debug)
                {
                    echo 'L: '.__LINE__.', '.$sqlstCena.'<br>';
                }
                
                $resCena = mysql_query($sqlstCena);
                $rowCena = mysql_fetch_assoc($resCena);
                
                $cenaMin = $rowCena['price'];
                
                // echo 'cenaMin: '.$cenaMin.'<br>';
                
                //////////////////////////////
                
                //////////////////////////////
                // poczatek i koniec w hotelu
                //////////////////////////////
                
                $sqlstDate = '  SELECT  MIN(departure_date) as departure_date
                                FROM    '.getSykonsDatabaseName().'.offers
                                WHERE
                                        touroperator    = "'.mysql_real_escape_string($row['touroperator']).'" AND 
                                        hotel           = "'.mysql_real_escape_string($row['hotel']).'" AND 
                                        departure_date  > NOW() AND 
                                        price           > 0 AND 
                                        1
                                LIMIT   0,1
                                ';
                
                if ($debug)
                {
                    echo 'L: '.__LINE__.', '.$sqlstDate.'<br>';
                }
                
                $resDate = mysql_query($sqlstDate);
                $rowDate = mysql_fetch_assoc($resDate);
                
                $departure_date_min = $rowDate['departure_date'];
                
                // echo 'departure_date_min: '.$departure_date_min.'<br>';
                
                //////////////////////////////
                
                $sqlstDate = '  SELECT  MAX(arrival_date) as arrival_date
                                FROM    '.getSykonsDatabaseName().'.offers
                                WHERE
                                        touroperator    = "'.mysql_real_escape_string($row['touroperator']).'" AND 
                                        hotel           = "'.mysql_real_escape_string($row['hotel']).'" AND 
                                        departure_date  > NOW() AND 
                                        price           > 0 AND 
                                        1
                                LIMIT   0,1
                                ';
                
                if ($debug)
                {
                    echo 'L: '.__LINE__.', '.$sqlstDate.'<br>';
                }
                
                $resDate = mysql_query($sqlstDate);
                $rowDate = mysql_fetch_assoc($resDate);
                
                $arrival_date_max = $rowDate['arrival_date'];
                
                // echo 'arrival_date_max: '.$arrival_date_max.'<br>';
                
                //////////////////////////////
                
                //print_v($row_paczka_pozycje, '$row_paczka_pozycje:');
                
                // na razie wszystko idzie do else
                //if ($pokaz_terminy == 1)
                if ($row_paczka_pozycje['termin'] == 1)
                {
                    $sqlst3 = ' UPDATE  paczka_pozycje
                                SET
                                        md                  = "'.$row['md'].'",
                                        touroperator        = "'.$row['touroperator'].'",
                                        hotel               = "'.$row['hotel'].'",
                                        hotel_name          = "'.$row['hotel_name'].'",
                                        country_tourop      = "'.$row['country_tourop'].'",
                                        hotel_place         = "'.$row['hotel_place'].'",
                                        meal                = "'.$row['meal'].'",
                                        #departure_date     = "'.$row['departure_date'].'",
                                        #arrival_date       = "'.$row['arrival_date'].'",
                                        hotel_shortname     = "'.$row['hotel_shortname'].'",
                                        offertype1          = "'.$row['offertype1'].'",
                                        offertype2          = "'.$row['offertype2'].'",
                                        offertype3          = "'.$row['offertype3'].'",
                                        hotel_category      = "'.$row['hotel_category'].'",
                                        price               = "'.$cenaMin.'",
                                        g_images            = "'.$row['g_images'].'",
                                        
                                        departure_date_min  = "'.$departure_date_min.'",
                                        arrival_date_max    = "'.$arrival_date_max.'"
                                WHERE
                                        id                  = "'.$paczka_pozycje_id.'" AND
                                        id                  <> "" AND 
                                        czyje               = "'.$UserID.'"
                                ';
                }
                else
                {
                    $sqlst3 = ' UPDATE  paczka_pozycje
                                SET
                                        md                  = "'.$row['md'].'",
                                        touroperator        = "'.$row['touroperator'].'",
                                        hotel               = "'.$row['hotel'].'",
                                        hotel_name          = "'.$row['hotel_name'].'",
                                        country_tourop      = "'.$row['country_tourop'].'",
                                        hotel_place         = "'.$row['hotel_place'].'",
                                        meal                = "'.$row['meal'].'",
                                        hotel_shortname     = "'.$row['hotel_shortname'].'",
                                        offertype1          = "'.$row['offertype1'].'",
                                        offertype2          = "'.$row['offertype2'].'",
                                        offertype3          = "'.$row['offertype3'].'",
                                        hotel_category      = "'.$row['hotel_category'].'",
                                        price               = "'.$cenaMin.'",
                                        g_images            = "'.$row['g_images'].'",
                                        
                                        departure_date_min  = "'.$departure_date_min.'",
                                        arrival_date_max    = "'.$arrival_date_max.'"
                                WHERE
                                        id                  = "'.$paczka_pozycje_id.'" AND
                                        id                  <> "" AND 
                                        czyje               = "'.$UserID.'"
                                ';
                }
                
                
                if ($debug)
                {
                    echo 'L: '.__LINE__.', '.$sqlst3.'<br><br>';
                }
                
                mysql_query($sqlst3);
            }
        }
    }
}

function aktualizujRewritePozycje($UserID, $paczka_pozycje_id, $tryb='')
{
    $debug = 0;
    global $debug;
    
    if (sprawdzCzyMojaRewritePozycje($UserID, $paczka_pozycje_id))
    {
        if ($tryb == 'wyczysc')
        {
            $sqlst = '  UPDATE  desktop_rewrite_opferty_powiazane
                        SET
                                touroperator        = "",
                                hotel               = "",
                                hotel_name          = "",
                                country_tourop      = "",
                                hotel_place         = "",
                                meal                = "",
                                departure_date      = "",
                                arrival_date        = "",
                                hotel_shortname     = "",
                                hotel_category      = "",
                                offertype1          = "",
                                offertype2          = "",
                                offertype3          = "",
                                price               = "",
                                g_images            = "",
                                img                 = "",
                                
                                md                  = "",
                                hotel_tmp           = "",
                                
                                departure_date_min  = "",
                                arrival_date_max    = ""
                        WHERE
                                id              = "'.$paczka_pozycje_id.'" AND
                                id              <> "" AND
                                czyje           = "'.$UserID.'"
                        ';
            
            if ($debug)
            {
                echo 'L: '.__LINE__.', '.$sqlst.'<br>';
            }
            
            mysql_query($sqlst);
        }
        else if ($tryb == 'aktualizuj')
        {
            
            // ...
            
        }
    }
}

function wezTranslateHotelName($touroperator, $hotel, $UserID)
{

    if ($touroperator == '' or $hotel == '')
    {
        return;
    }
    
    $sqlst = '  SELECT  *
                FROM    translate_hotel_name
                WHERE
                        touroperator    = "'.mysql_real_escape_string($touroperator).'" AND
                        hotel           = "'.mysql_real_escape_string($hotel).'" AND
                        czyje           = "'.mysql_real_escape_string($UserID).'" AND
                        1
                LIMIT   0,1
                ';
    
    // echo $sqlst.'<br>';
    $res = mysql_query($sqlst);
    
    if (mysql_num_rows($res) > 0)
    {
        $row = mysql_fetch_assoc($res);
        
        return $row['hotel_name_new'];
    }
}

function wezTranslateHotelDesc($touroperator, $hotel, $UserID)
{

    if ($touroperator == '' or $hotel == '')
    {
        return;
    }
    
    $sqlst = '  SELECT  *
                FROM    translate_hotel_desc
                WHERE
                        touroperator    = "'.mysql_real_escape_string($touroperator).'" AND
                        hotel           = "'.mysql_real_escape_string($hotel).'" AND
                        czyje           = "'.mysql_real_escape_string($UserID).'" AND
                        1
                LIMIT   0,1
                ';
    
    // echo $sqlst.'<br>';
    $res = mysql_query($sqlst);
    
    if (mysql_num_rows($res) > 0)
    {
        $row = mysql_fetch_assoc($res);
        
        return $row['hotel_desc'];
    }
}

/**
 * @param int $UserID
 * @param int $paczka_pozycje_id 
 * @return int {-1, 1}
 */
function sprawdzCzyMojaPaczkaPozycje($UserID, $paczka_pozycje_id)
{
    // sprawdzam, czy `paczka_pozycje` jest "moje"
    $sqlst = '  SELECT  czyje
                FROM    paczka_pozycje
                WHERE
                        id = "'.mysql_real_escape_string($paczka_pozycje_id).'" AND
                        id <> "" AND 
                        1
                LIMIT   0,1
                ';
    
    $res = mysql_query($sqlst);
    
    // echo $sqlst.'<br>';
    
    if (mysql_num_rows($res) > 0) {
        while ($row = mysql_fetch_assoc($res)) {
            if ($row['czyje'] === $UserID) {
                return 1;
            }
        }
    }
    
    return -1;
}

function sprawdzCzyMojaRewritePozycje($UserID, $paczka_pozycje_id)
{
    // sprawdzam, czy `paczka_pozycje` jest "moje"
    $sqlst = '  SELECT  czyje
                FROM    desktop_rewrite_opferty_powiazane
                WHERE
                        id = "'.mysql_real_escape_string($paczka_pozycje_id).'" AND
                        id <> "" AND
                        1
                LIMIT   0,1
                ';
    
    $res = mysql_query($sqlst);
    
    // echo $sqlst.'<br>';
    
    if (mysql_num_rows($res) > 0)
    {
        while ($row = mysql_fetch_assoc($res))
        {
            if ($row['czyje'] === $UserID)
            {
                return 1;
            }
        }
    }
    
    return -1;
}

function getCMSDatabaseName()
{
    return 'generowanie_strony';
}

function getSykonsDatabaseName()
{
    if (strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0)
    {
        // dla testow na localXXXhost
        //return 'sykon_ss';
        
        return 'sykon_s';
    }
    else
    {
        return 'sykon_s';
    }
}

function getSystemDir()
{
    if (strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0)
    {
        // 20141104
        // poniewaaz wwwhen jest przeniesione na C:\workspace_html5
        // tutaj musze zrobic pozmiane poniewaz w apache jest to zrobione jako alias 
        // $retval = $_SERVER['DOCUMENT_ROOT'].'/wwwgen/';
        $retval = 'C:/bartek/workspace_html5'.'/wwwgen/';
    }
    else
    {
        $retval = '/home/users/wwwgen/public_html/';
    }
    
    return $retval;
}

function getImageUrl($klucz='')
{
    // tutaj powinny byc obslugiwane aliasy dla obrazkow, np.
    // img1.sykon.pl, img2.sykon.pl...

    $retval = '#';
    $numer = ($klucz % 5);
    $numer++;
    
    if (strpos(' '.$_SERVER['DOCUMENT_ROOT'], 'C:/bartek/workspace') > 0) {
        // $retval = 'http://'.$_SERVER['HTTP_HOST'].'/wwwgen/gen/imgHotel/';
        $retval = 'http://img'.$numer.'.sykon.pl/gen/imgHotel/';
    } else {
        $retval = 'http://img'.$numer.'.sykon.pl/gen/imgHotel/';
    }
    
    // mniej DNS loookup
    //$retval = 'http://193.238.16.147/~sykon_s/imgto/'.$touroperator.'/'.$img;
    
    return $retval;
}

function datefrommysql($data, $cox='.')
{
    if ($data == '0000-00-00')
    {
        return '';
    }
    
    if (FALSE
        || preg_match("/\d\d\d\d\-\d\d\-\d\d/" ,$data)
        || preg_match("/\d\d\d\d\.\d\d\.\d\d/" ,$data)
        || preg_match("/\d\d\.\d\d\.\d\d\d\d/" ,$data)
    )
    {
        return date("d.m.Y", strtotime($data));
    }
    else if (substr($data,4,1) == '.' or substr($data,4,1) == '-')
    {
        $d = substr($data, 8, 2);
        $m = substr($data, 5, 2);
        $y = substr($data, 0, 4);
        
        if (($d != '') && ($m != '') && ($y != ''))
        {
            return str_replace('-', $cox, "$d-$m-$y");
        } 
        else
        {
            return "";
        }
    }
    else
    {
        return $data;
    }
}

function datetomysql($data)
{
    if (substr($data, 4, 1) == '.' or substr($data, 4, 1) == '-')
    {
        return $data;
    }
    
    $d = substr($data, 0, 2);
    $m = substr($data, 3, 2);
    $y = substr($data, 6, 4);
    
    return "$y-$m-$d";
}

////////////////////////////////////////////

function _convertImage($path, $nsze, $nwys) 
{
    //$MAXOBWOD = 500;
    //$WHM = 500;
    
    $info = getimagesize($path);
    
    $sze = $info[0];
    $wys = $info[1];
    //$obwod = $wys + $sze;
    //$skala = $MAXOBWOD / $obwod;
    
    //$nsze = round($skala * $sze);
    //$nwys = round($skala * $wys);
    
    if (0 and $obwod <= $MAXOBWOD) 
    {
        //$nsze = $sze;
        //$nwys = $wys;
        //$image_c = imagecreatefromjpeg($path);
        //imageinterlace($image_c, 1);
        
    } 
    else 
    {
        
        $image_c = imagecreatetruecolor($nsze, $nwys);
        imageinterlace($image_c, 1);
        $new_image = imagecreatefromjpeg($path);
        
        //imagecopyresampled($image_c, $new_image, 0, 0, 0, 0, $nsze, $nwys, $sze, $wys);
        //imagecopyresampled($image_c, $new_image, 0, 0, 0, 0, $nsze, $nwys, $sze, $wys, 1);
        //fastimagecopyresampled(&$image_c, $new_image, 0, 0, 0, 0, $nsze, $nwys, $sze, $wys, 2); 
        
        // wersja pod 5.3, było
        // fastimagecopyresampled(&$image_c
        $image_c = fastimagecopyresampled($image_c,     $new_image, 0,      0,      0,      0,      $nsze,  $nwys,  $sze,   $wys, 2);
        
        //fastimagecopyresampled(&$image_c,     $new_image, 0,      0,      0,      0,      $nsze,  $nwys,  $sze,   $wys, 4);
    }
    
    //imagejpeg($image_c, $path, 60);
    imagejpeg($image_c, $path, 90);
}

function fastimagecopyresampled ($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h, $quality = 3) 
{
    
    // wersja pod 5.3, było
    // function fastimagecopyresampled (&$dst_image
    
    // Plug-and-Play fastimagecopyresampled function replaces much slower imagecopyresampled.
    // Just include this function and change all "imagecopyresampled" references to "fastimagecopyresampled".
    // Typically from 30 to 60 times faster when reducing high resolution images down to thumbnail size using the default quality setting.
    // Author: Tim Eckel - Date: 09/07/07 - Version: 1.1 - Project: FreeRingers.net - Freely distributable - These comments must remain.
    //
    // Optional "quality" parameter (defaults is 3). Fractional values are allowed, for example 1.5. Must be greater than zero.
    // Between 0 and 1 = Fast, but mosaic results, closer to 0 increases the mosaic effect.
    // 1 = Up to 350 times faster. Poor results, looks very similar to imagecopyresized.
    // 2 = Up to 95 times faster.  Images appear a little sharp, some prefer this over a quality of 3.
    // 3 = Up to 60 times faster.  Will give high quality smooth results very close to imagecopyresampled, just faster.
    // 4 = Up to 25 times faster.  Almost identical to imagecopyresampled for most images.
    // 5 = No speedup. Just uses imagecopyresampled, no advantage over imagecopyresampled.
    
    if (empty($src_image) || empty($dst_image) || $quality <= 0) 
    { 
        return false; 
    }
    
    if ($quality < 5 && (($dst_w * $quality) < $src_w || ($dst_h * $quality) < $src_h)) 
    {
        $temp = imagecreatetruecolor ($dst_w * $quality + 1, $dst_h * $quality + 1);
        imagecopyresized ($temp, $src_image, 0, 0, $src_x, $src_y, $dst_w * $quality + 1, $dst_h * $quality + 1, $src_w, $src_h);
        imagecopyresampled ($dst_image, $temp, $dst_x, $dst_y, 0, 0, $dst_w, $dst_h, $dst_w * $quality, $dst_h * $quality);
        imagedestroy ($temp);
    } 
    else
    {
        imagecopyresampled ($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);
    }
    
    // wersja pod 5.3, było
    // return true;
    
    return $dst_image; 
}

?>