<?php

$files = array(
	'prototype.js',
	'lowpro.js',
	'library.js',
	'rules.js',
	'ufo.js'
);

if (!empty($_GET['w']))
{
	$mods = explode(',', $_GET['w']);
	foreach ($mods as $mod)
	{
		if ($mod == 'cms')
		{
			$files[] = 'rulesCms.js';
			$files[] = '../xstandard/xstandard.js';
		}
		else if ($mod == 'lightbox')
		{
			$files[] = 'lightbox.js';
			$files[] = 'scriptaculous/effects.js';
		}
		else if ($mod == 'fx')
		{
			$files[] = 'scriptaculous/builder.js';
			$files[] = 'scriptaculous/effects.js';
			$files[] = 'scriptaculous/dragdrop.js';
			$files[] = 'scriptaculous/controls.js';
			$files[] = 'scriptaculous/slider.js';
		}
	}	
}

// Get latest modified date out of all the files
// If ANY file changes we want to refresh
$lastModified = 0;
foreach ($files as $file)
{
	$time = filemtime(dirname(__FILE__).'/'.$file);
	$lastModified = ($time > $lastModified)	? $time : $lastModified;
}

// Conditional GET
$modifiedHeader = (!empty($_SERVER['HTTP_IF_MODIFIED_SINCE'])) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false;
$eTagHeader = (!empty($_SERVER['HTTP_IF_NONE_MATCH'])) ? $_SERVER['HTTP_IF_NONE_MATCH'] : false;

$lastModified = gmdate('D, j M Y H:i:s', $lastModified).' GMT';
$eTag = '"'.md5($lastModified).'"';

$notModified = false;
if ($modifiedHeader && $modifiedHeader == $lastModified) { $notModified = true;}
if ($eTagHeader && $eTagHeader == $eTag) { $notModified = true;}

if ($notModified)
{
	header('HTTP/1.x 304 Not Modified');
	header('ETag: '.$eTag);
	exit;
}

header('Last-Modified: '.$lastModified);
header('ETag: '.$eTag);
header('Content-Type: text/javascript; charset: iso-8859-1');

$loaded = array();
foreach ($files as $file)
{
	if (in_array($file, $loaded)) { continue;}

	@include(dirname(__FILE__).'/'.$file);
	echo "\n\n";

	$loaded[] = $file;
}

?>