<?php
session_start();

// ini_set('display_errors', 1);
// ini_set('display_startup_errors', 1);
// error_reporting(E_ALL);


require 'src/class/Autoloader.php';
Autoloader::register();
//require_once('src/class/AltoRouter.php');
if(empty($_SESSION['utmSource'])){
    if(!empty($_GET['utm_source'])){
        $_SESSION['utmSource']=$_GET['utm_source'];
    }
}
if(empty($_SESSION['utmMedium'])){
    if(!empty($_GET['utm_medium'])){
        $_SESSION['utmMedium']=$_GET['utm_medium'];
    }
}
if(empty($_SESSION['utmCampaign'])){
    if(!empty($_GET['utm_campaign'])){
        $_SESSION['utmCampaign']=$_GET['utm_campaign'];
    }
}


require_once('src/functions.php');

$router = new AltoRouter();
define('BASEPATH','/');
// $router->setBasePath(BASEPATH);


// $agence=array(
//     'id'=>68,
//     'name'=>'l\'agence tout risque',
//     'params'=>array(
//         'crm'=>'whise',
//         'authclient'=>array(
//             'ClientId'=>1690,
//             'OfficeId'=>3042
//         )
//     )

//         );

//     print_r(json_encode($agence));



$router->map( 'GET', '/[a:lang]?/thanks/', 'merci','thanks');
$router->map( 'GET|POST', '/[a:lang]?/quests/', 'quests','quests');

// map index
// $router->map( 'GET', '/[a:lang]?(\/)?', 'home','home');
$router->map( 'GET', '/[a:lang]?/', 'home','home');




// match current request url
$match = $router->match();

// call closure or throw 404 status
if( is_array($match) ) {

    /* if(!empty($match['params']['lang'])){
        if(in_array($match['params']['lang'],array('fr','nl'))){
            define('ICL_LANGUAGE_CODE',$match['params']['lang']);
            define('LANG',$match['params']['lang']);
        }else{
            header('Location: '.$router->generate('home',array('lang'=>'fr')));
            exit;
        }
    }else{
        define('ICL_LANGUAGE_CODE','fr');
        define('LANG','fr');
    } */
    if(empty($match['params']['lang'])||!in_array($match['params']['lang'],array('fr','nl'))){
        header('Location: '.$router->generate($match['name'],array('lang'=>'fr')));
        exit;
    }
    define('ICL_LANGUAGE_CODE',get_param('lang'));
    define('LANG',get_param('lang'));
    require_once('config.php');

    if(is_callable( $match['target'])){
        call_user_func_array( $match['target'], $match['params'] );
    }elseif(file_exists(__DIR__.'/src/templates/'.$match['target'].'.php')){
        require_once('src/templates/'.$match['target'].'.php');
    }else{
        echo 'nothing';
    }



} else {
	// no route was matched
    header( $_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
    echo 'no route found';
}
