<?php
set_time_limit ( 0 );
include_once('../cristalzik_backoffice/config.inc.php');

$link=mysql_connect($global_SQLHost,$global_SQLUser,$global_SQLPassword,true) or die();
mysql_select_db($global_SQLDatabase,$link) or die();
$query="SELECT * FROM table_audio_piste WHERE token = '".mysql_real_escape_string($_GET['t'])."' limit 1";
$res=mysql_query($query,$link) or die(mysql_error());
if (mysql_num_rows($res)>0) {
	$record = mysql_fetch_array ( $res );
	$cible = $record['url_son'];
	$time  = $record['duree_seconde'];
} 
@mysql_close($link);

if ($time==0) {
	$time=210;
}

function remote_filesize($url) {
    static $regex = '/^Content-Length: *+\K\d++$/im';
    if (!$fp = @fopen($url, 'rb')) {
        return false;
    }
    if (
        isset($http_response_header) &&
        preg_match($regex, implode("\n", $http_response_header), $matches)
    ) {
        return (int)$matches[0];
    }
    return strlen(stream_get_contents($fp));
}

$poids = remote_filesize($cible);



//ne limiter que si mode v5 et utilisateur non loggé ou ip inconnu ou utilisateur 
//ateint max credit ecoute ou max credit ecoute globale mediatheque
global $global_mode_table_ecoute;
if ($global_mode_table_ecoute=="V5") {
	if ($_SERVER{HTTP_AUTH_USER}=="") {
		
		//on verifie si c'est une ip autorisé pour une table d'ecoute de la mediatheque ou une ecoute a l'interieur de la mediatheque
		//il faudra rajouter autant de poste qu'il y a d'ecoute possible max dans la mediatheque
		$link=mysql_connect($global_SQLHost,$global_SQLUser,$global_SQLPassword,true) or die(alerter_erreur_systeme('connexion serveur impossible'));
		mysql_select_db($global_SQLDatabase,$link) or die(alerter_erreur_systeme('connexion base de donnï¿½es impossible'));
		$query="SELECT * FROM table_generale_licence_poste WHERE ip='".$_SERVER['REMOTE_ADDR']."' limit 1";
		$res=mysql_query($query,$link) or die(mysql_error());
		$laisser_passer=false;
		if (mysql_num_rows($res)>0) {
				//on laisse passer
				$laisser_passer=true;
		}	
		@mysql_close($link);
		if (!$laisser_passer) {
			//on limite, il n'a même pas 30s du son
			exit(0);
		} else {
			//table d'ecoute on ne limite pas
		}
	} else {
		//on verifie les credits d'ecoute du comtpe et ensuite de la mediatheque
		$link=mysql_connect(UTILISATEUR_DB_HOST,UTILISATEUR_DB_USER,UTILISATEUR_DB_PASSWORD,true);
		mysql_select_db(UTILISATEUR_DB_NAME,$link);
		$query="SELECT cz_nombre_ecoute_mois,cz_nombre_ecoute_max_mois,id_mediatheque FROM table_compte WHERE id='".mysql_real_escape_string($_SERVER{HTTP_AUTH_USER})."' LIMIT 1;";
		$res = mysql_query($query,$link);
		$nb_ecoute=0;
		$nb_max_ecoute=0;
		$id_mediatheque=0;
		if (mysql_num_rows($res)>0) {
			$record=mysql_fetch_array($res);
			$nb_ecoute=$record['cz_nombre_ecoute_mois'];
			$nb_max_ecoute=$record['cz_nombre_ecoute_max_mois'];
			$id_mediatheque=$record['id_mediatheque'];
		}
		
		
		$query="SELECT nb_ecoute_en_cours FROM cz_stat_mediatheque_ecoute WHERE id_mediatheque='".mysql_real_escape_string($id_mediatheque)."' AND mois=MONTH(CURRENT_DATE()) AND annee=YEAR(NOW()) LIMIT 1;";
		$res = mysql_query($query,$link);
		$nb_mediatheque_ecoute=0;
		
		if (mysql_num_rows($res)>0) {
			$record=mysql_fetch_array($res);
			$nb_mediatheque_ecoute=$record['nb_ecoute_en_cours'];
		} else {
			$nb_mediatheque_ecoute=0;
			$query="INSERT INTO cz_stat_mediatheque_ecoute (mois,annee,id_mediatheque) VALUES (MONTH(CURRENT_DATE()),YEAR(NOW()),'".mysql_real_escape_string($id_mediatheque)."')";
			mysql_query($query,$link);
		}
		
		$query="SELECT nb_total_max_ecoute_par_mois FROM cz_mediatheque WHERE id='".mysql_real_escape_string($id_mediatheque)."' LIMIT 1;";
		$res = mysql_query($query,$link);
		$nb_mediatheque_max_ecoute=0;
		if (mysql_num_rows($res)>0) {
			$record=mysql_fetch_array($res);
			$nb_mediatheque_max_ecoute=$record['nb_total_max_ecoute_par_mois'];
		} else {
			//a voir si on exit dans ce cas 
			//je pense qu'il vaut mieux laisser les utilisateur avoir acces aux sons
		}
		
		@mysql_close($link);
		if (($nb_mediatheque_ecoute >= $nb_mediatheque_max_ecoute) || ($nb_ecoute>=$nb_max_ecoute)) {
			$preview = $time / 30; // Preview time of 30 seconds  
			$poids = round($poids / $preview); 
		}
	}
	
	
}


header('Content-type: audio/mpeg');
header('Content-length: ' . $poids);
header('Content-Disposition: inline; filename="'.$_GET['t'].'.'.end(explode('.', basename($cible))).'"');
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
readfile($cible);



?>