<?php
ini_set("display_errors", 0);
error_reporting(0);
  session_start();
  ob_start();
  session_regenerate_id();
  require('config.php');
  require('sp-system/vendor/autoload.php');
  require('fblogin/vendor/autoload.php');
  require('sp-system/main.class.php');
  $app = new app;
  $app->init_low();
  header("Content-type: text/xml");
?>
<?php echo'<?xml version="1.0" encoding="UTF-8"?>
<urlset
      xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
            http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
    ';
  ?>
          	<?php
            ini_set("display_errors", 0);
            error_reporting(0);
              function myUrlEncode($string) {
                  $replacements = array(',', ':');
                  $entities = array('%2C', '%3A');
                  return str_replace($replacements, $entities, urlencode($string));
              }
          		$productlist = array();
          		$minimalprice = 0;
          		$maximalprice = 0;
          		$usedparams = array();
          		$variants = array();


          			$query = dibi::query('
		          		SELECT 
							sp_shop_products_variants.id,
							sp_shop_products_variants.product_id,
							sp_shop_products.id,
							sp_shop_products.status,
							sp_shop_products_variants.status,
							sp_shop_products_variants.id AS variantid
						FROM
							`sp_shop_products_variants`
						LEFT JOIN
							sp_shop_products ON sp_shop_products_variants.product_id = sp_shop_products.id
						WHERE
							sp_shop_products.status = 1
              AND sp_shop_products_variants.status = 1
              AND sp_shop_products.only_gift = 0
              AND sp_shop_products.import = 1
						ORDER BY sp_shop_products.id DESC
					')->fetchAll();

          		foreach($query AS $value){
          			$variants[] = $value->variantid;
          		}



          		$filters = array();
          		if(isset($_GET['filter']) AND strlen($_GET['filter']) > 0){
          			foreach(explode(":", $_GET['filter']) AS $filter){
          				$item = dibi::query('SELECT * FROM `sp_shop_params_items` WHERE id = %s', $filter)->fetch();
          				$param = dibi::query('SELECT * FROM `sp_shop_params` WHERE id = %s', $item->param_id)->fetch();
          				if(!isset($filters[$param->id][$item->id])){
          					$filters[$param->id][$item->id] = 1;
          				}
          			}
          		}

          		foreach($variants AS $variant){
          			$relation = dibi::query('SELECT * FROM `sp_shop_products_variants_relation` WHERE variant_id = %s', $variant)->fetchAll();
          			foreach($relation AS $related){
          				if(!isset($usedparams[$related->param_type])){
          					$usedparams[$related->param_type] = 1;
          				}
          			}
          			$show = 0;

          			if(is_array($filters) AND count($filters) == 0){
          				$show = 1;
          			}
          			else{
          				$hit = 0;
          				foreach($filters AS $filter){
          					$thishit = 0;
          					foreach($filter AS $items => $h){
          						$cquery = dibi::query('SELECT * FROM `sp_shop_products_variants_relation` WHERE variant_id = %s', $variant, ' AND param_value = %s', $items)->fetchAll();
          						if(count($cquery) == 1){
          							$thishit++;
          						}
          					}
          					if($thishit > 0){
          						$hit++;
          					}
          				}
          				if($hit >= count($filters)){
          					$show = 1;
          				}
          			} 
          			if($show == 1){
          			  $variantdetail = dibi::query('SELECT id,discount,product_id,discount_value,discount_type,vat_size FROM `sp_shop_products_variants` WHERE id = %s', $variant)->fetch();
      				  $product = dibi::query('SELECT id,status,discount,discount_value,discount_type FROM `sp_shop_products` WHERE id = %s', $variantdetail->product_id)->fetch();
                      $currency = dibi::query('SELECT * FROM `sp_shop_currencies` WHERE currency_identificator = %s', $app->get_currency())->fetch();
                      $price = dibi::query('SELECT * FROM `sp_shop_products_variants_prices` WHERE price_type = %s', $currency->id, ' AND variant_id = %s', $variant)->fetch();
                      if($product->discount == 1){
                        if($product->discount_type == 0){
                          $price->price_value = round($price->price_value - (($price->price_value / 100) * $product->discount_value));
                        }
                        else{
                          $price->price_value = $price->price_value - $product->discount_value;
                        }
                      }
                      else{
                        if($variantdetail->discount == 1){
                          if($variantdetail->discount_type == 0){
                            $price->price_value = round($price->price_value - (($price->price_value / 100) * $variantdetail->discount_value));
                          }
                          else{
                            $price->price_value = $price->price_value - $variantdetail->discount_value;
                          }
                        }
                      }
                      $pricevat = $price->price_value + round(($price->price_value / 100) * $variantdetail->vat_size);
                      $pricevat = round($pricevat);

                      if($minimalprice == 0){
                        $minimalprice = $pricevat;
                      }
                      else{
                        if($pricevat < $minimalprice){
                          $minimalprice = $pricevat;
                        }
                      }
                      if($pricevat > $maximalprice){
                        $maximalprice = $pricevat;
                      }

                      $nextshow = 0;
                      if(isset($_GET['from'])){
                      	if($pricevat >= $_GET['from'] AND $pricevat <= $_GET['to']){
                      		$nextshow = 1;
                      	}
                      }
                      else{
                      	$nextshow = 1;
                      }

                      if($nextshow == 1){
                      	$productlist[$variant] = $pricevat;
                      }
          			}
          		}



                  $onpage = 12;
                  $start = 1;
                  if(isset($_GET['page'])){
                    $page = $_GET['page'];
                  }
                  else{
                    $page = 1;
                  }

                  $to = ($start + ($onpage * $page)) - 1;

                  $from = (($to+1) - $onpage);

                  if($to > count($productlist)){ $to = count($productlist); }

                    	$dataprepare = array();


                  	foreach($productlist AS $key => $value){
                			$dataprepare[] = $key;
                  	}

                		$liveproduct = array();
                		$zadano = array();
                		foreach($dataprepare AS $data){
                			$zobrazit = 0;
                			
                			$variant = dibi::query('SELECT * FROM `sp_shop_products_variants` WHERE id = %s', $data)->fetch();
                			$product = dibi::query('SELECT * FROM `sp_shop_products` WHERE id = %s', $variant->product_id)->fetch();

                			$liveproduct[] = $variant->id;
                		}
                		unset($productlist);
                		foreach($liveproduct AS $product){

                      $variant = dibi::query('SELECT * FROM `sp_shop_products_variants` WHERE id = %s', $product)->fetch();
                      $productinfo = dibi::query('SELECT * FROM `sp_shop_products` WHERE id = %s', $variant->product_id)->fetch();
                      $productlist[] = $product;
                      
                		}
                		$x = 1;
                  		for($i = 1; $i <= count($productlist); $i++){
                        $globalparams = '';
                  			if(isset($productlist[($i-1)])){
                      			$selectvariant = $productlist[($i-1)];
                      			$variant = dibi::query('SELECT * FROM `sp_shop_products_variants` WHERE id = %s', $selectvariant)->fetch();
    		                    $productinfo = dibi::query('SELECT * FROM `sp_shop_products` WHERE id = %s', $variant->product_id)->fetch();
    		                    $productmainphoto = dibi::query('SELECT * FROM `sp_shop_products_photos` WHERE gallery = %s', $variant->product_id,' AND main = 1')->fetch();
    		                    $product = $variant->product_id;

                            $ovlivnuje = 0;
    		                    $qovlivnuje = dibi::query('SELECT * FROM `sp_shop_products_params` WHERE product_id = %s', $product,' AND ovlivnuje <> 0')->fetchAll();
    		                    if(count($qovlivnuje) == 1){
    		                        foreach($qovlivnuje AS $vovlivnuje){
    		                          $ovlivnuje = $vovlivnuje->param_id;
    		                        }
    		                    }

                          	$ovlivneno = 0;
	                          unset($ovlivneniarray);
	                          $arrayovlivneni = dibi::query('SELECT * FROM `sp_shop_products_variants_relation` WHERE variant_id = %s', $variant->id)->fetchAll();
	                          foreach($arrayovlivneni AS $xovlivnuje){
	                            $ovlivneniarray[] = $xovlivnuje->param_type.':'.$xovlivnuje->param_value;
	                          }
	                          $fffx = implode(",", $ovlivneniarray);
                            $globalparams = $fffx;


	                        $currency = dibi::query('SELECT * FROM `sp_shop_currencies` WHERE currency_identificator = %s', $app->get_currency())->fetch();
	                        $price = dibi::query('SELECT * FROM `sp_shop_products_variants_prices` WHERE price_type = %s', $currency->id, ' AND variant_id = %s', $variant->id)->fetch();
	                        $puvodnicena = $price->price_value;
	                        if($productinfo->discount == 1){
	                          if($productinfo->discount_type == 0){
	                            $price->price_value = round($price->price_value - (($price->price_value / 100) * $productinfo->discount_value));
	                          }
	                          else{
	                            $price->price_value = $price->price_value - $productinfo->discount_value;
	                          }
	                        }
	                        else{
	                          if($variant->discount == 1){
	                            if($variant->discount_type == 0){
	                              $price->price_value = round($price->price_value - (($price->price_value / 100) * $variant->discount_value));
	                            }
	                            else{
	                              $price->price_value = $price->price_value - $variant->discount_value;
	                            }
	                          }
	                        }
	                        $pricevat = $price->price_value + round(($price->price_value / 100) * $variant->vat_size);
	                        
	                        $sleva = 0;
	                        if($productinfo->discount == 1){
	                          if($productinfo->discount_type == 0){
	                            $sleva = 1;
	                            $slevavalue = $productinfo->discount_value;
	                          }
	                          else{
	                            $sleva = 2;
	                            $slevavalue = $productinfo->discount_value;
	                          }
	                        }
	                        else{
	                          if($variant->discount == 1){
	                            if($variant->discount_type == 0){
	                              $sleva = 1;
	                              $slevavalue = $variant->discount_value;
	                            }
	                            else{
	                              $sleva = 2;
	                              $slevavalue = $variant->discount_value;
	                            }
	                          }
	                        }



	                        echo'

<url>
  <loc>'.MAIN_DOMAIN.'/produkt/'.str_replace("&", "&amp;", $productinfo->url).''; if(strlen($globalparams) == 0){}else{echo'/?variant='.$variant->id; } echo'</loc>
  <lastmod>'.date('Y-m-d').'T'.date('H:i:s').'+00:00</lastmod>
  <priority>1.00</priority>
</url>

	                        ';

	                    	}
                  		}

$qpages = dibi::query('SELECT * FROM `sp_shop_categories` ORDER BY id ASC')->fetchAll();
foreach($qpages AS $vpages){
                          echo'

<url>
  <loc>'.MAIN_DOMAIN.'/kategorie/'.str_replace("&", "&amp;", $vpages->url).'</loc>
  <lastmod>'.date('Y-m-d').'T'.date('H:i:s').'+00:00</lastmod>
  <priority>1.00</priority>
</url>

                          ';
                          }

$qpages = dibi::query('SELECT * FROM `sp_pages` ORDER BY id ASC')->fetchAll();
foreach($qpages AS $vpages){
                          echo'

<url>
  <loc>'.MAIN_DOMAIN.''.str_replace("&", "&amp;", $vpages->url).'</loc>
  <lastmod>'.date('Y-m-d').'T'.date('H:i:s').'+00:00</lastmod>
  <priority>1.00</priority>
</url>

                          ';
                          }
          	?>

<?php
  echo'</urlset>';
?>