document.write('<link rel="stylesheet" href="http://gist.github.com/stylesheets/gist/embed.css"/>')





document.write('<div id=\"gist-102511\" class=\"gist\">\n  \n  \n    \n            \n\n      <div class=\"gist-file\">\n        <div class=\"gist-data gist-syntax\">\n          \n          \n          \n            <div class=\"gist-highlight\"><pre><div class=\"line\" id=\"LC1\"><span class=\"cm\">/*<\/span><\/div><div class=\"line\" id=\"LC2\"><span class=\"cm\">    Copyright 2009 Andrew Noyes<\/span><\/div><div class=\"line\" id=\"LC3\">&nbsp;<\/div><div class=\"line\" id=\"LC4\"><span class=\"cm\">    This program is free software: you can redistribute it and/or modify<\/span><\/div><div class=\"line\" id=\"LC5\"><span class=\"cm\">    it under the terms of the GNU General Public License as published by<\/span><\/div><div class=\"line\" id=\"LC6\"><span class=\"cm\">    the Free Software Foundation, either version 3 of the License, or<\/span><\/div><div class=\"line\" id=\"LC7\"><span class=\"cm\">    (at your option) any later version.<\/span><\/div><div class=\"line\" id=\"LC8\">&nbsp;<\/div><div class=\"line\" id=\"LC9\"><span class=\"cm\">    This program is distributed in the hope that it will be useful,<\/span><\/div><div class=\"line\" id=\"LC10\"><span class=\"cm\">    but WITHOUT ANY WARRANTY; without even the implied warranty of<\/span><\/div><div class=\"line\" id=\"LC11\"><span class=\"cm\">    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<\/span><\/div><div class=\"line\" id=\"LC12\"><span class=\"cm\">    GNU General Public License for more details.<\/span><\/div><div class=\"line\" id=\"LC13\">&nbsp;<\/div><div class=\"line\" id=\"LC14\"><span class=\"cm\">    You should have received a copy of the GNU General Public License<\/span><\/div><div class=\"line\" id=\"LC15\"><span class=\"cm\">    along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.<\/span><\/div><div class=\"line\" id=\"LC16\"><span class=\"cm\">*/<\/span><\/div><div class=\"line\" id=\"LC17\">&nbsp;<\/div><div class=\"line\" id=\"LC18\"><span class=\"cm\">/**<\/span><\/div><div class=\"line\" id=\"LC19\"><span class=\"cm\"> * @fileoverview JavaScript Module Loader. This will<\/span><\/div><div class=\"line\" id=\"LC20\"><span class=\"cm\"> * download a JavaScript file via HTTP and process it.<\/span><\/div><div class=\"line\" id=\"LC21\"><span class=\"cm\"> * If your script requires another script, simply use<\/span><\/div><div class=\"line\" id=\"LC22\"><span class=\"cm\"> *     include(&quot;path/to/file.js&quot;);<\/span><\/div><div class=\"line\" id=\"LC23\"><span class=\"cm\"> * before calling any functions within the file, and<\/span><\/div><div class=\"line\" id=\"LC24\"><span class=\"cm\"> * the file will be downloaded and evaluated for use.<\/span><\/div><div class=\"line\" id=\"LC25\"><span class=\"cm\"> * Note that when evaluated, scripts are eval&#39;d in an<\/span><\/div><div class=\"line\" id=\"LC26\"><span class=\"cm\"> * anonymous scope. Therefore, somewhere in your script,<\/span><\/div><div class=\"line\" id=\"LC27\"><span class=\"cm\"> * you must use some kind of namespace mechanism to<\/span><\/div><div class=\"line\" id=\"LC28\"><span class=\"cm\"> * create a namespace in the global namespace, or simply<\/span><\/div><div class=\"line\" id=\"LC29\"><span class=\"cm\"> * assign any of your functions to the global namespace<\/span><\/div><div class=\"line\" id=\"LC30\"><span class=\"cm\"> * using window.yourFunction = function etc...<\/span><\/div><div class=\"line\" id=\"LC31\"><span class=\"cm\"> * <\/span><\/div><div class=\"line\" id=\"LC32\"><span class=\"cm\"> * For more details on usage, go to<\/span><\/div><div class=\"line\" id=\"LC33\"><span class=\"cm\"> * http://www-personal.umd.umich.edu/~aknoyes/articles/2009/04/include.php<\/span><\/div><div class=\"line\" id=\"LC34\"><span class=\"cm\"> * @author Andrew Noyes noyesa@gmail.com<\/span><\/div><div class=\"line\" id=\"LC35\"><span class=\"cm\"> */<\/span><\/div><div class=\"line\" id=\"LC36\">&nbsp;<\/div><div class=\"line\" id=\"LC37\"><span class=\"p\">(<\/span><span class=\"kd\">function<\/span> <span class=\"p\">()<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC38\">	<span class=\"cm\">/**<\/span><\/div><div class=\"line\" id=\"LC39\"><span class=\"cm\">	 * Array of loaded JavaScript files<\/span><\/div><div class=\"line\" id=\"LC40\"><span class=\"cm\">	 */<\/span><\/div><div class=\"line\" id=\"LC41\">	<span class=\"kd\">var<\/span> <span class=\"nx\">loaded<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span><\/div><div class=\"line\" id=\"LC42\">&nbsp;<\/div><div class=\"line\" id=\"LC43\">	<span class=\"cm\">/**<\/span><\/div><div class=\"line\" id=\"LC44\"><span class=\"cm\">	 * Cross-browser HTTP object instantiator.<\/span><\/div><div class=\"line\" id=\"LC45\"><span class=\"cm\">	 * @returns XMLHttpRequest Object<\/span><\/div><div class=\"line\" id=\"LC46\"><span class=\"cm\">	 * @type XMLHttpRequest<\/span><\/div><div class=\"line\" id=\"LC47\"><span class=\"cm\">	 */<\/span><\/div><div class=\"line\" id=\"LC48\">	<span class=\"kd\">function<\/span> <span class=\"nx\">getHttpObject<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC49\">		<span class=\"kd\">var<\/span> <span class=\"nx\">xhr<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">false<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC50\">		<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nb\">window<\/span><span class=\"p\">.<\/span><span class=\"nx\">XMLHttpRequest<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>	<span class=\"c1\">// Standard HTTP request<\/span><\/div><div class=\"line\" id=\"LC51\">			<span class=\"nx\">xhr<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">XMLHttpRequest<\/span><span class=\"p\">();<\/span><\/div><div class=\"line\" id=\"LC52\">		<span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nb\">window<\/span><span class=\"p\">.<\/span><span class=\"nx\">ActiveXObject<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>	<span class=\"c1\">// IE HTTP request<\/span><\/div><div class=\"line\" id=\"LC53\">			<span class=\"k\">try<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC54\">				<span class=\"nx\">xhr<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">ActiveXObject<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;Msxml2.XMLHTTP&quot;<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC55\">			<span class=\"p\">}<\/span> <span class=\"k\">catch<\/span> <span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC56\">				<span class=\"k\">try<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC57\">					<span class=\"nx\">xhr<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">ActiveXObject<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;Microsoft.XMLHTTP&quot;<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC58\">				<span class=\"p\">}<\/span> <span class=\"k\">catch<\/span> <span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC59\">					<span class=\"nx\">xhr<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">false<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC60\">				<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC61\">			<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC62\">		<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC63\">		<span class=\"k\">return<\/span> <span class=\"nx\">xhr<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC64\">	<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC65\">&nbsp;<\/div><div class=\"line\" id=\"LC66\">	<span class=\"cm\">/**<\/span><\/div><div class=\"line\" id=\"LC67\"><span class=\"cm\">	 * Returns file name string without<\/span><\/div><div class=\"line\" id=\"LC68\"><span class=\"cm\">	 * directories or domain names. Throws<\/span><\/div><div class=\"line\" id=\"LC69\"><span class=\"cm\">	 * an exception if file isn&#39;t on the<\/span><\/div><div class=\"line\" id=\"LC70\"><span class=\"cm\">	 * same domain as page.<\/span><\/div><div class=\"line\" id=\"LC71\"><span class=\"cm\">	 * @params file {String} location of script<\/span><\/div><div class=\"line\" id=\"LC72\"><span class=\"cm\">	 * @returns File name string without directories or domain<\/span><\/div><div class=\"line\" id=\"LC73\"><span class=\"cm\">	 * @type String<\/span><\/div><div class=\"line\" id=\"LC74\"><span class=\"cm\">	 */<\/span><\/div><div class=\"line\" id=\"LC75\">	<span class=\"kd\">function<\/span> <span class=\"nx\">getBaseName<\/span><span class=\"p\">(<\/span><span class=\"nx\">file<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC76\">		<span class=\"kd\">var<\/span> <span class=\"nx\">protocol<\/span><span class=\"p\">,<\/span> <span class=\"nx\">nameSplit<\/span><span class=\"p\">,<\/span> <span class=\"nx\">fileName<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC77\">&nbsp;<\/div><div class=\"line\" id=\"LC78\">		<span class=\"nx\">protocol<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">file<\/span><span class=\"p\">.<\/span><span class=\"nx\">substr<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"nx\">file<\/span><span class=\"p\">.<\/span><span class=\"nx\">indexOf<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;:&quot;<\/span><span class=\"p\">));<\/span><\/div><div class=\"line\" id=\"LC79\">		<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!!<\/span><span class=\"nx\">protocol<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC80\">			<span class=\"k\">throw<\/span> <span class=\"k\">new<\/span> <span class=\"nb\">Error<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;Scripts must be on same domain as document.&quot;<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC81\">		<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC82\">&nbsp;<\/div><div class=\"line\" id=\"LC83\">		<span class=\"nx\">nameSplit<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">file<\/span><span class=\"p\">.<\/span><span class=\"nx\">split<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;/&quot;<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC84\">		<span class=\"nx\">fileName<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">nameSplit<\/span><span class=\"p\">[<\/span><span class=\"nx\">nameSplit<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span> <span class=\"o\">-<\/span> <span class=\"mi\">1<\/span><span class=\"p\">];<\/span><\/div><div class=\"line\" id=\"LC85\">&nbsp;<\/div><div class=\"line\" id=\"LC86\">		<span class=\"k\">return<\/span> <span class=\"nx\">fileName<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC87\">	<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC88\">&nbsp;<\/div><div class=\"line\" id=\"LC89\">	<span class=\"cm\">/**<\/span><\/div><div class=\"line\" id=\"LC90\"><span class=\"cm\">	 * Creates a namespace and returns a reference to the<\/span><\/div><div class=\"line\" id=\"LC91\"><span class=\"cm\">	 * last namespace created. Seen in YUI source.<\/span><\/div><div class=\"line\" id=\"LC92\"><span class=\"cm\">	 * @param namespace {String} Namespace to be created<\/span><\/div><div class=\"line\" id=\"LC93\"><span class=\"cm\">	 * @type Object<\/span><\/div><div class=\"line\" id=\"LC94\"><span class=\"cm\">	 */<\/span><\/div><div class=\"line\" id=\"LC95\">	<span class=\"nb\">window<\/span><span class=\"p\">.<\/span><span class=\"nx\">namespace<\/span> <span class=\"o\">=<\/span> <span class=\"kd\">function<\/span> <span class=\"p\">()<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC96\">		<span class=\"kd\">var<\/span> <span class=\"nx\">i<\/span><span class=\"p\">,<\/span> <span class=\"nx\">il<\/span><span class=\"p\">,<\/span> <span class=\"nx\">objects<\/span><span class=\"p\">,<\/span> <span class=\"nx\">start<\/span><span class=\"p\">,<\/span> <span class=\"nx\">root<\/span><span class=\"p\">,<\/span> <span class=\"nx\">j<\/span><span class=\"p\">,<\/span> <span class=\"nx\">jl<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC97\">&nbsp;<\/div><div class=\"line\" id=\"LC98\">		<span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"nx\">i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"nx\">il<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">arguments<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span><span class=\"p\">;<\/span> <span class=\"nx\">i<\/span> <span class=\"o\">&lt;<\/span> <span class=\"nx\">il<\/span><span class=\"p\">;<\/span> <span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC99\">			<span class=\"nx\">objects<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">arguments<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">split<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;.&quot;<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC100\">			<span class=\"nx\">start<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">objects<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span> <span class=\"o\">===<\/span> <span class=\"s2\">&quot;window&quot;<\/span><span class=\"p\">)<\/span> <span class=\"o\">?<\/span> <span class=\"mi\">1<\/span> <span class=\"o\">:<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC101\">			<span class=\"nx\">root<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">window<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC102\">&nbsp;<\/div><div class=\"line\" id=\"LC103\">			<span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"nx\">j<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">start<\/span><span class=\"p\">,<\/span> <span class=\"nx\">jl<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">objects<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span><span class=\"p\">;<\/span> <span class=\"nx\">j<\/span> <span class=\"o\">&lt;<\/span> <span class=\"nx\">jl<\/span><span class=\"p\">;<\/span> <span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC104\">				<span class=\"nx\">root<\/span><span class=\"p\">[<\/span><span class=\"nx\">objects<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">root<\/span><span class=\"p\">[<\/span><span class=\"nx\">objects<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]]<\/span> <span class=\"o\">||<\/span> <span class=\"p\">{};<\/span><\/div><div class=\"line\" id=\"LC105\">				<span class=\"nx\">root<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">root<\/span><span class=\"p\">[<\/span><span class=\"nx\">objects<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]];<\/span><\/div><div class=\"line\" id=\"LC106\">			<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC107\">		<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC108\">&nbsp;<\/div><div class=\"line\" id=\"LC109\">		<span class=\"k\">return<\/span> <span class=\"nx\">root<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC110\">	<span class=\"p\">};<\/span><\/div><div class=\"line\" id=\"LC111\">&nbsp;<\/div><div class=\"line\" id=\"LC112\">	<span class=\"cm\">/**<\/span><\/div><div class=\"line\" id=\"LC113\"><span class=\"cm\">	 * Downloads and evaluates script files if<\/span><\/div><div class=\"line\" id=\"LC114\"><span class=\"cm\">	 * they are located on the same domain as<\/span><\/div><div class=\"line\" id=\"LC115\"><span class=\"cm\">	 * document.<\/span><\/div><div class=\"line\" id=\"LC116\"><span class=\"cm\">	 * @params file {String} URL location of script<\/span><\/div><div class=\"line\" id=\"LC117\"><span class=\"cm\">	 * @returns Boolean if download and eval is successful<\/span><\/div><div class=\"line\" id=\"LC118\"><span class=\"cm\">	 * @type Bool<\/span><\/div><div class=\"line\" id=\"LC119\"><span class=\"cm\">	 */<\/span><\/div><div class=\"line\" id=\"LC120\">	<span class=\"nb\">window<\/span><span class=\"p\">.<\/span><span class=\"nx\">include<\/span> <span class=\"o\">=<\/span> <span class=\"kd\">function<\/span> <span class=\"p\">(<\/span><span class=\"nx\">file<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC121\">		<span class=\"c1\">// Variable declarations<\/span><\/div><div class=\"line\" id=\"LC122\">		<span class=\"kd\">var<\/span> <span class=\"nx\">i<\/span><span class=\"p\">,<\/span> <span class=\"nx\">il<\/span><span class=\"p\">,<\/span> <span class=\"nx\">name<\/span><span class=\"p\">,<\/span> <span class=\"nx\">request<\/span><span class=\"p\">,<\/span> <span class=\"nx\">wrapper<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC123\">&nbsp;<\/div><div class=\"line\" id=\"LC124\">		<span class=\"c1\">// Get file name and check on same domain<\/span><\/div><div class=\"line\" id=\"LC125\">		<span class=\"nx\">name<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">getBaseName<\/span><span class=\"p\">(<\/span><span class=\"nx\">file<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC126\">&nbsp;<\/div><div class=\"line\" id=\"LC127\">		<span class=\"c1\">// If file has been loaded, don&#39;t load it again<\/span><\/div><div class=\"line\" id=\"LC128\">		<span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"nx\">i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"nx\">il<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">loaded<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span><span class=\"p\">;<\/span> <span class=\"nx\">i<\/span> <span class=\"o\">&lt;<\/span> <span class=\"nx\">il<\/span><span class=\"p\">;<\/span> <span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC129\">			<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nx\">name<\/span> <span class=\"o\">===<\/span> <span class=\"nx\">loaded<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">])<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC130\">				<span class=\"k\">return<\/span> <span class=\"kc\">true<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC131\">			<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC132\">		<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC133\">&nbsp;<\/div><div class=\"line\" id=\"LC134\">		<span class=\"c1\">// Download script<\/span><\/div><div class=\"line\" id=\"LC135\">		<span class=\"nx\">request<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">getHttpObject<\/span><span class=\"p\">();<\/span><\/div><div class=\"line\" id=\"LC136\">		<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nx\">request<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC137\">			<span class=\"nx\">request<\/span><span class=\"p\">.<\/span><span class=\"nx\">open<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;GET&quot;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">file<\/span><span class=\"p\">,<\/span> <span class=\"kc\">false<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC138\">			<span class=\"nx\">request<\/span><span class=\"p\">.<\/span><span class=\"nx\">send<\/span><span class=\"p\">(<\/span><span class=\"kc\">null<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC139\">		<span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC140\">			<span class=\"k\">throw<\/span> <span class=\"k\">new<\/span> <span class=\"nb\">Error<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;Couldn&#39;t create HTTP object.&quot;<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC141\">		<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC142\">&nbsp;<\/div><div class=\"line\" id=\"LC143\">		<span class=\"c1\">// Eval script in anonymous scope to protect global namespace<\/span><\/div><div class=\"line\" id=\"LC144\">		<span class=\"nx\">wrapper<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&quot;(function () {&quot;<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">request<\/span><span class=\"p\">.<\/span><span class=\"nx\">responseText<\/span> <span class=\"o\">+<\/span> <span class=\"s2\">&quot;})();&quot;<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC145\">		<span class=\"k\">try<\/span> <span class=\"p\">{<\/span>	<span class=\"c1\">// Check for exceptions in script<\/span><\/div><div class=\"line\" id=\"LC146\">			<span class=\"nb\">eval<\/span><span class=\"p\">(<\/span><span class=\"nx\">wrapper<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC147\">		<span class=\"p\">}<\/span> <span class=\"k\">catch<\/span> <span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span><\/div><div class=\"line\" id=\"LC148\">			<span class=\"k\">throw<\/span> <span class=\"k\">new<\/span> <span class=\"nb\">Error<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;Exceptions thrown in &quot;<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">name<\/span> <span class=\"o\">+<\/span> <span class=\"s2\">&quot;: &quot;<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">e<\/span><span class=\"p\">.<\/span><span class=\"nx\">message<\/span><span class=\"p\">);<\/span><\/div><div class=\"line\" id=\"LC149\">		<span class=\"p\">}<\/span><\/div><div class=\"line\" id=\"LC150\">		<span class=\"nx\">loaded<\/span><span class=\"p\">.<\/span><span class=\"nx\">push<\/span><span class=\"p\">(<\/span><span class=\"nx\">name<\/span><span class=\"p\">);<\/span>	<span class=\"c1\">// Record that file has been loaded<\/span><\/div><div class=\"line\" id=\"LC151\">&nbsp;<\/div><div class=\"line\" id=\"LC152\">		<span class=\"k\">return<\/span> <span class=\"kc\">true<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC153\">	<span class=\"p\">};<\/span><\/div><div class=\"line\" id=\"LC154\">&nbsp;<\/div><div class=\"line\" id=\"LC155\"><span class=\"p\">})();<\/span><\/div><\/pre><\/div>\n          \n        <\/div>\n\n        <div class=\"gist-meta\">\n          <a href=\"http://gist.github.com/raw/102511/b92e358094bb5c333b7b48979edd43430000546f/include.js\" style=\"float:right;\">view raw<\/a>\n          <a href=\"http://gist.github.com/102511#file_include.js\" style=\"float:right;margin-right:10px;color:#666\">include.js<\/a>\n          <a href=\"http://gist.github.com/102511\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n        <\/div>\n      <\/div>\n    \n  \n<\/div>\n')
