/**
 *	Include a Javascript or CSS file, only once.
 */
jQuery.include_once = function(fileName) {
	jQuery.include(fileName, false);
};
jQuery.include = function(fileName, allowDupes) {
	var $ = jQuery,
		$node,
		allowDupes = (allowDupes === undefined) ? true : allowDupes;

    var extension = fileName.replace(/^.*\./, '').toLowerCase();
    var char_pos = extension.indexOf('?');

    // remove anything past the ?
    if (char_pos > 0) {
        extension = extension.substr(0, char_pos);
    }

    switch (extension) {
        case 'js' :
            if (allowDupes || $("script[src='" + fileName + "']").length === 0) {
				$node = $("<script></script>")
					.attr({
						type : "text/javascript",
						src : fileName
					})
				;
			}
			break;
		case "css" :
			if (allowDupes || $("link[href='" + fileName + "']").length === 0) {
				$node = $("<link />")
					.attr({
						href : fileName,
						type : "text/css",
						rel : "stylesheet"
					})
				;
			}
			break;
	}
	if ($node) {
		document.body.appendChild($node[0]); // do NOT use jQuery().append!
	}
};