<?php

/**
 * 
 * Copyright (C) Die Randgruppe GmbH
 * 
 * http://www.randshop.com
 * http://www.dierandgruppe.com
 * 
 * Unter der Lizenz von Die Randgruppe GmbH:
 * http://www.randshop.com/Lizenz
 *  
 * $Author$
 * $Date$
 * $Revision$
 * 
 */

include_once(DATEIPFAD . 'includes/functions.language.inc.php');
include_once(DATEIPFAD . 'includes/functions.kategorie.inc.php');
include_once(DATEIPFAD . 'includes/functions.boxen.inc.php');

// SourceArray
$SourceArray[1] = 'index.php';
$SourceArray[2] = 'themes/kategorie/index.php';
$SourceArray[3] = 'themes/kategorie/detail.php';
$SourceArray[4] = 'themes/wunschzettel/index.php';
$SourceArray[5] = 'themes/kategorie/aktion.php';
$SourceArray[6] = 'themes/kategorie/hersteller.php';
$SourceArray[7] = 'themes/bestellen/index.php?formaction=s2';
$SourceArray[8] = 'themes/bestellen/index.php?formaction=s0';
$SourceArray[9] = 'themes/user/index.php?action=grunddaten';
$SourceArray[10] = 'themes/suche/index.php';
    
if (!isset($_REQUEST['dataoffset'])) {
	unset($_SESSION['artikelliste_shop']['dataoffset']);
}

// Parameter übernehmen
if (isset($_REQUEST['formaction'])) { $FormAction = $_REQUEST['formaction']; }
if (isset($_REQUEST['source'])) { $Source = (int)$_REQUEST['source']; }
if (isset($_REQUEST['artikelid'])) { $ArtikelID = (int)$_REQUEST['artikelid']; }
if (isset($_REQUEST['artid'])) { $ArtikelID = (int)$_REQUEST['artid']; }
if (isset($_REQUEST['dataoffset'])) { $DataOffset = (int)$_REQUEST['dataoffset']; };
if (isset($_REQUEST['datacount'])) { $DataCount = (int)$_REQUEST['datacount']; };
if (isset($_REQUEST['sortfield'])) { $SortField = (int)$_REQUEST['sortfield']; };
if (isset($_REQUEST['sortorder'])) { $SortOrder = (int)$_REQUEST['sortorder']; };

// Standardwerte für dier Parameter
if (!isset($Source)) { $Source = 1; }

// Parameter in der Session ablegen
if(isset($Source)) { $_SESSION['artikelliste_shop']['source'] = $Source; }
if(isset($ArtikelID)) { $_SESSION['artikelliste_shop']['artikelid'] = $ArtikelID; }
if(isset($DataOffset)) { $_SESSION['artikelliste_shop']['dataoffset'] = $DataOffset; }
if(isset($DataCount)) { $_SESSION['artikelliste_shop']['datacount'] = $DataCount; }
if(isset($SortField)) { $_SESSION['artikelliste_shop']['sortfield'] = $SortField; }
if(isset($SortOrder)) { $_SESSION['artikelliste_shop']['sortorder'] = $SortOrder; }

// Leere Variablen definieren, die z.B. auf der Startseite und anderen Seiten noch nicht vordefiniert sind
if(!isset($tpl_facettensucheAktiv)) { $tpl_facettensucheAktiv = null; }
if(!isset($tpl_startText)) { $tpl_startText = null; }
if(!isset($datenblatt)) { $datenblatt = null; }
if(!isset($tpl_newsAusgabe)) { $tpl_newsAusgabe = null; }
if(!isset($_SESSION['facettensuche_filter'])) { $_SESSION['facettensuche_filter'] = null; }
if(!isset($HerstellerID)) { $HerstellerID = null; }

// Kategorie
if (isset($_REQUEST['kategorieid']) && !isset($_REQUEST['dataoffset'])) {
	
    $CheckCloseKategorie = CheckCloseKategorie((int)$_REQUEST['kategorieid']);
	
	if ((($_REQUEST['kategorieid'] == $_SESSION['artikelliste_shop']['kategorieid']) && !$_SESSION['artikelliste_shop']['close_kategorie']) || $CheckCloseKategorie)  {
		$_SESSION['artikelliste_shop']['close_kategorie'] = true;
    } else {
        $_SESSION['artikelliste_shop']['close_kategorie'] = false;
    }
    
    $_SESSION['artikelliste_shop']['kategorieid'] = (int)$_REQUEST['kategorieid']; 
    
}

// AJAX Suche
if (isset($_REQUEST['refertype']) && $_REQUEST['refertype'] == 16) {
    unset($_SESSION['artikelliste_shop']);
}

if(isset($_SESSION['artikelliste_shop']['kategorieid'])) {
	$KategorieID = $_SESSION['artikelliste_shop']['kategorieid'];
}



	if (isset($_GET["pn"]) && $_GET["pn"] != 1) {
		
		$SQLString = "SELECT ";
		$SQLString .= TABLE_ALLGEMEIN . ".status_zahlung_unbestaetigt ";
		$SQLString .= "FROM " . TABLE_ALLGEMEIN;
		
		$ZahlungsartEinstellungenObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));
				
		$SQLString = "SELECT ";
		$SQLString .= TABLE_BESTELLEN . ".id ";
		$SQLString .= "FROM " . TABLE_BESTELLEN . " ";
		$SQLString .= "WHERE " . TABLE_BESTELLEN . ".status != '" . $ZahlungsartEinstellungenObject->status_zahlung_unbestaetigt . "' ";
		$SQLString .= "AND " . TABLE_BESTELLEN . ".session = '" . $_SESSION['sessionId'] . "' ";
		
		$DummyBestellObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));
			
		if($DummyBestellObject) {
			$_SESSION['sessionId'] = rand() . rand();
		}
		
	}
	
	if (!isset($_GET["languageid"]) && !(isset($_SESSION['languageid']) && $_SESSION["languageid"])) {
		
		if (!$_SERVER['HTTP_ACCEPT_LANGUAGE']) {
			
			$LanguageObject = CheckLanguageID();
			$_SESSION["languageid"] = $LanguageObject->language_id; 
			$_SESSION["languageisocode"] = $LanguageObject->language_isocode;
            $_SESSION['locale'] = $LanguageObject->locale;

		} else {
			
			$AcceptedLanguageArray = preg_split('/,\s*/', $_SERVER['HTTP_ACCEPT_LANGUAGE']);

			foreach ($AcceptedLanguageArray as $AcceptedLanguage) {

                 $Result = preg_match('/^([a-z]{1,8}(?:-[a-z]{1,8})*)' . '(?:;\s*q=(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3})?))?$/i', $AcceptedLanguage, $LanguageCodeMatches);
                 
                 if ($Result) {
                 	
                 	$LanguageCodeArray = explode('-', $LanguageCodeMatches[1]);
                 	
                 	if (isset($LanguageCodeMatches[2])) {
                 		$LanguageQuality = (integer)($LanguageCodeMatches[2] * 10);	
                 	} else {
                 		$LanguageQuality = 10;	
                 	}
                 	
                 	foreach ($LanguageCodeArray as $LanguageCode) {
						if ($LanguageQuality > $BrowserLanguageArray[$LanguageCode]) {
                 			$BrowserLanguageArray[$LanguageCode] = $LanguageQuality;
						}
                 	}
                 	 
                 }
               
			}
			
			arsort($BrowserLanguageArray);
			
			$LanguageCodeCounter = count($BrowserLanguageArray);
			
			$LanguageSet = false;
			
			foreach ($BrowserLanguageArray as $BrowserLanguage => $BrowserLanguageQuality) {
				
				if (!$LanguageSet) {
					$LanguageObject = CheckLanguageID("", $BrowserLanguage);
					
					if ($LanguageObject) {
						$_SESSION["languageid"] = $LanguageObject->language_id; 
						$_SESSION["languageisocode"] = $LanguageObject->language_isocode;
                        $_SESSION['locale'] = $LanguageObject->locale;
						$LanguageSet = true; 
					}
					
				}
				
			}
			
			if (!$LanguageSet) {
				
				$LanguageObject = CheckLanguageID();
				$_SESSION["languageid"] = $LanguageObject->language_id; 
				$_SESSION["languageisocode"] = $LanguageObject->language_isocode; 
                $_SESSION['locale'] = $LanguageObject->locale;
			}
			
		}
		
	}

	// Sprachauswahl
	if (isset($_GET["languageid"]) || !isset($_SESSION["languageid"])) {
		
		$LanguageObject = CheckLanguageID($_GET["languageid"]);
		$_SESSION["languageid"] = $LanguageObject->language_id; 
		$_SESSION["languageisocode"] = $LanguageObject->language_isocode;
        $_SESSION['locale'] = $LanguageObject->locale;

		// Kunde setzen
		if ($_SESSION['mail']) {
			
			$SQLString = "UPDATE " . TABLE_KUNDEN . " SET ";
			$SQLString .= TABLE_KUNDEN . ".language_id = '" . $LanguageObject->language_id . "' ";
			$SQLString .= "WHERE ";
			$SQLString .= TABLE_KUNDEN . ".email = '" . $_SESSION['mail'] . "' ";
			
			$MySQLQueryReference = errorlogged_mysql_query($SQLString);
			
		}

	}
	
	$LanguageDataArray = GetLanguageDataArray(TABLE_LANGUAGE . ".language_name", "ASC", $_SESSION["languageid"], "", false, true);
	$StandardLanguageID = GetDefaultLanguageID();
