<?php     

function getUserIP() {
    if( array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ) {
        if (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',')>0) {
            $addr = explode(",",$_SERVER['HTTP_X_FORWARDED_FOR']);
            return trim($addr[0]);
        } else {
            return $_SERVER['HTTP_X_FORWARDED_FOR'];
        }
    }
    else {
        return $_SERVER['REMOTE_ADDR'];
    }
}

$queryString = $_SERVER['QUERY_STRING'];

if($queryString == 'app'){
    $url = $_SERVER["HTTP_REFERER"];
    $parse = parse_url($url);
    $queryString = 'utm_source='.$parse['host'].'&utm_medium=app&utm_campaign=multifry';
}
    

$user_ip = getUserIP();

/* DB connection */

    $server   = 'webserverdb'; // MySQL hostname
	$username = 'redirectDB'; // MySQL username
	$password = 'G5sWJZPHxWJNCARn'; // MySQL password
	$dbname   = 'redirect.delonghi.com'; // MySQL db name

/*
	$username = 'root'; // MySQL username
	$password = ''; // MySQL password
	$dbname   = 'ip2nation'; // MySQL db name
	
	*/
	$db = mysql_connect($server, $username, $password) or die(mysql_error());
	      mysql_select_db($dbname) or die(mysql_error());
			
	$sql = 'SELECT 
	            country
	        FROM 
	            ip2nation
	        WHERE 
	            ip < INET_ATON("'.$user_ip.'") 
	        ORDER BY 
	            ip DESC 
	        LIMIT 0,1';
	
	list($ip2country) = mysql_fetch_row(mysql_query($sql));
	

define('DOMAIN','http://www.delonghi.com/');

/*$allLang = ("fr-BE","nl-BE","bg-BG","cs-CZ","de-DE","el-GR","es-ES","fr-FR","hr-HR","it-IT","hu-HU","nb-NO","de-AT","nl-NL","pl-PL","pt-PT","sr-RS","ru-RU","sl-SI","sk-SK","fr-CH","de-CH","uk-UA","en-GB","tr-TR","en-MEIA","en-ZA","en-AU","en-BD","en-KH","zh-CN","en-HK","ko-KR","en-MY","en-NZ","en-SG","en-VN","es-AR","pt-BR","en-CA","es-CL","es-CO","es-CR","es-MX","en-US","en-INT");*/

$country = array(
                'fr-BE' => array(
                        'naz' => 'BE', 
                        'url' => '/produits/cuisine/appareils-de-cuisine/multicuiseur-et-friteuse-sans-huile'),
                'nl-BE' => array(
                        'naz' => 'BE', 
                        'url' => '/producten/keuken/keukentoestellen/friteuse-zonder-olie-en-multicooker'),
                'bg-BG' => array(
                        'naz' => 'BG', 
                        'url' => ''),
                'cs-CZ' => array(
                        'naz' => 'CZ', 
                        'url' => '/produkty/kuchyne/kuchynske-spotrebice/low-oil-fryer-and-multicooker'),
                'de-DE' => array(
                        'naz' => 'DE', 
                        'url' => '/produkte/kueche/kuchen-kleingerate/heissluftfritteusen-und-multicooker'),
                'el-GR' => array(
                        'naz' => 'GR', 
                        'url' => '/proionta/mikrosiskeves-kouzinas/mikrosiskeves-kouzinas/low-oil-fryer-and-multicooker'),
                'es-ES' => array(
                        'naz' => 'ES', 
                        'url' => ''),
                'fr-FR' => array(
                        'naz' => 'FR', 
                        'url' => '/produits/cuisine/appareils-de-cuisine/friteuse-peu-d-huile-et-multicuiseur'),
                'hr-HR' => array(
                        'naz' => 'HR', 
                        'url' => ''),
                'it-IT' => array(
                        'naz' => 'IT', 
                        'url' => '/prodotti/cucina/piccoli-elettrodomestici/friggitrice-low-oil-e-multicooker'),
                'hu-HU' => array(
                        'naz' => 'HU', 
                        'url' => ''),
                'nb-NO' => array(
                        'naz' => 'NO', 
                        'url' => '/products/kjokken/kjokkenprodukter/multifryer'),
                'de-AT' => array(
                        'naz' => 'AT', 
                        'url' => '/produkte/kueche/kuchen-kleingerate/low-oil-fryer-and-multicooker'),
                'nl-NL' => array(
                        'naz' => 'NL', 
                        'url' => '/producten/keuken/keukenapparatuur/friteuse-zonder-olie-en-multicooker'),
                'pl-PL' => array(
                        'naz' => 'PL', 
                        'url' => ''),
                'pt-PT' => array(
                        'naz' => 'PT', 
                        'url' => ''),
                'sr-RS' => array(
                        'naz' => 'RS', 
                        'url' => ''),
                'ru-RU' => array(
                        'naz' => 'RU', 
                        'url' => '/products/kitchen/kitchen-appliances/multicuisine'),
                'sl-SI' => array(
                        'naz' => 'SI', 
                        'url' => ''),
                'sk-SK' => array(
                        'naz' => 'SK', 
                        'url' => ''),
                'fr-CH' => array(
                        'naz' => 'CH', 
                        'url' => '/produits/cuisine/appareils-de-cuisine/low-oil-fryer-and-multicooker'),
                'de-CH' => array(
                        'naz' => 'CH', 
                        'url' => '/produkte/kuche/kuchen-kleingerate/heissluftfritteusen-und-multicooker'),
                'uk-UA' => array(
                        'naz' => 'UA', 
                        'url' => ''),
                'en-GB' => array(
                        'naz' => 'UK', 
                        'url' => '/products/kitchen/kitchen-appliances/low-oil-fryer-and-multicooker'),
                'tr-TR' => array(
                        'naz' => 'TR', 
                        'url' => ''),
                'en-MEIA' => array(
                        'naz' => 'MEIA', 
                        'url' => ''),
                'en-ZA' => array(
                        'naz' => 'ZA', 
                        'url' => '/products/kitchen/kitchen-appliances/low-oil-fryer-and-multicooker'),
                'en-AU' => array(
                        'naz' => 'AU', 
                        'url' => '/products/kitchen/kitchen-appliances/low-oil-fryer-and-multicooker'),
                'en-BD' => array(
                        'naz' => 'BD', 
                        'url' => ''),
                'en-KH' => array(
                        'naz' => 'KH', 
                        'url' => ''),
                'zh-CN' => array(
                        'naz' => 'CN', 
                        'url' => ''),
                'en-HK' => array(
                        'naz' => 'HK', 
                        'url' => ''),
                'ko-KR' => array(
                        'naz' => 'KR', 
                        'url' => ''),
                'en-MY' => array(
                        'naz' => 'MY', 
                        'url' => ''),
                'en-NZ' => array(
                        'naz' => 'NZ', 
                        'url' => '/products/kitchen/kitchen-appliances/low-oil-fryer-and-multicooker'),
                'en-SG' => array(
                        'naz' => 'SG', 
                        'url' => ''),
                'en-VN' => array(
                        'naz' => 'VN', 
                        'url' => ''),
                'es-AR' => array(
                        'naz' => 'AR', 
                        'url' => ''),
                'pt-BR' => array(
                        'naz' => 'BR', 
                        'url' => '/produtos/cozinha/cozinha/panelas-eletricas'),
                'en-CA' => array(
                        'naz' => 'CA', 
                        'url' => ''),
                'es-CL' => array(
                        'naz' => 'CL', 
                        'url' => ''),
                'es-CO' => array(
                        'naz' => 'CO', 
                        'url' => ''),
                'es-CR' => array(
                        'naz' => 'CR', 
                        'url' => ''),
                'es-MX' => array(
                        'naz' => 'MX', 
                        'url' => ''),
                'en-US' => array(
                        'naz' => 'US', 
                        'url' => ''),
                'en-INT'=> array(
                        'naz' => 'INT', 
                        'url' => '/products/kitchen/kitchen-appliances/low-oil-fryer-and-multicooker/')               
);
      
$result = array();

foreach ($country as $path => $value){

    if(strtolower($value['naz']) == $ip2country){
        array_push($result,$path);
    }
}
/*print_r($result);*/

if(count($result) == 0){ // ip non trovato
   // echo DOMAIN.'en-INT'.$country['en-INT']['url'];
    header("Status: 301 Moved Permanently");
    header('Location: '.DOMAIN.'en-INT'.$country['en-INT']['url'].'?'.$queryString);
    exit;
}
if(count($result) == 1){ //trovata corrispondenza ip paese
    if($country[$result[0]]['url'] != ''){ // trovata corrispondenza e pagina esistente
       // echo DOMAIN.$result[0].$country[$result[0]]['url'].$queryString;
        header("Status: 301 Moved Permanently");
        header('Location: '.DOMAIN.$result[0].$country[$result[0]]['url'].'?'.$queryString);
    }else{
        //echo DOMAIN.'en-INT'.$country['en-INT']['url'].$queryString; 
        header("Status: 301 Moved Permanently");
        header('Location: '.DOMAIN.'en-INT'.$country['en-INT']['url'].'?'.$queryString);
    }    
    exit;
}else{
    $langBrowser = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
    $langBrowser = strtolower(substr($langBrowser[0],0,2));
    
   $redirect = false;
  
    foreach($result as $value){
      if(substr($value,0,2) == $langBrowser){
           $redirect = true;
          if($country[$value]['url'] != ''){ // trovata corrispondenza e pagina esistente
                //echo DOMAIN.$value.$country[$value]['url'].$queryString; 
                header("Status: 301 Moved Permanently");
                header('Location: '.DOMAIN.$value.$country[$value]['url'].'?'.$queryString);
          }else{
               // echo DOMAIN.'en-INT'.$country['en-INT']['url'].$queryString;
                header("Status: 301 Moved Permanently");
                header('Location: '.DOMAIN.'en-INT'.$country['en-INT']['url'].'?'.$queryString);
          }      
      exit;
      }
    }
    
    if(!$redirect){ // trovate più lingue ma non trovata corrispondeza con lingua browser -> redirect INT
        //echo DOMAIN.'en-INT'.$country['en-INT']['url'].$queryString;
        header("Status: 301 Moved Permanently");
        header('Location: '.DOMAIN.'en-INT'.$country['en-INT']['url'].'?'.$queryString);
    }    
}

?>