(function(){if(window.gloader){return;}window.gloader={_requests:[],_modules:{},_extras:{},util:{},map:{js:{},css:{},parse:function(args){var lib={name:args[0],versions:[]};var scope={};var props=["$name","$version","$server","$base"];for(var p=0;p<props.length;p++){scope[props[p]]=undefined;}scope.$name=lib.name;for(var i=1;i<args.length;i++){var version=args[i];for(var v in version){if(version[v]===null){delete version[v];delete scope[v];}else{if(typeof version[v].shift!="undefined"){var css=version[v][1];version[v]=new String(version[v][0]);version[v].css=css;scope[v]=version[v];}else{if(typeof version[v]=="string"){version[v]=new String(version[v]);version[v].css=null;scope[v]=version[v];}else{throw"version[v] is "+version[v];}}}}for(var s in scope){if(typeof version[s]=="undefined"){version[s]=scope[s];}}for(var p=0;p<props.length;p++){var prop=props[p];if(typeof version[prop]=="undefined"){continue;}var patt=new RegExp("\\{\\"+prop+"\\}","g");for(var v in version){var css=(version[v].css)?version[v].css:"";version[v]=new String(version[v].replace(patt,version[prop]));version[v].css=css;if(version[v].css){version[v].css=version[v].css.replace(patt,version[prop]);}}}lib.versions.push(version);}return lib;},add:function(){var lib=gloader.map.parse(arguments);for(var i=0;i<lib.versions.length;i++){var version=lib.versions[i];for(var p in version){if(p.charAt(0)=="$"){continue;}var modId=version.$name+"/"+version.$version+"/"+p;gloader.map.js[modId]=version[p];gloader.map.css[modId]=version[p].css;}}},include:function(src){if(gloader.map.$include[src]){return false;}else{document.write('<script type="text/javascript" src="'+src+'"><\/script>\n');gloader.map.$include[src]=true;return true;}},$include:{},latest:function(libName,v){if(gloader.map.$latest[libName+"/"+v]){return gloader.map.$latest[libName+"/"+v];}var result=v;var parts=v.split(".");if(parts.length<3){if(parts[0]==parseInt(parts[0])&&(typeof parts[1]=="undefined"||parts[1]==parseInt(parts[1]))){var invalid=new RegExp("[a-zA-Z-]"),latest=[parts[0],null,null],mod;for(mod in gloader.map.js){var modParts=mod.split("/");if(modParts[0]==libName&&modParts[2]==libName&&!invalid.test(modParts[1])){var modVParts=modParts[1].split(".");if(modVParts[0]==parts[0]){if((typeof parts[1]=="undefined"&&(latest[1]<=modVParts[1]||(latest[1]==modVParts[1]&&latest[2]<=modVParts[2])))||(typeof parts[1]!="undefined"&&parts[1]==modVParts[1]&&latest[2]<=modVParts[2])){latest[1]=modVParts[1];latest[2]=modVParts[2];}}}}if(latest[2]!=null){result=latest.join(".");}}}gloader.map.$latest[libName+"/"+v]=result;return result;},$latest:{}},settings:{ns:"bbc.glow.gloader",get:function(name){var n=" "+gloader.settings.ns+"."+name+"=";var cookies=document.cookie.split(";");for(var i=0;i<cookies.length;i++){if((" "+cookies[i]).indexOf(n)>-1){return unescape(cookies[i].split("=")[1]);}}},set:function(name,value){var n=gloader.settings.ns+"."+name;document.cookie=n+"="+escape(value)+"; path=/;";},clear:function(name){var d=new Date();d.setTime(d.getTime()-1);var n=gloader.settings.ns+"."+name;document.cookie=n+"=; path=/; expires=Thu, 01-Jan-70 00:00:01 GMT;";}},loadOverride:function(){var current=gloader.settings.get("override"),version=prompt("Enter version",current?current:"");if(version===""){gloader.settings.clear("override");}else{if(version!==null){gloader.settings.set("override",version);}}location.reload();},loadDebug:function(){gloader.settings.set("debug","1");location.reload();},unloadDebug:function(){gloader.settings.clear("debug");location.reload();},load:function(){var r={};if(typeof arguments[arguments.length-1].length=="undefined"){r=arguments[arguments.length-1];arguments.length--;}var newRequest=new gloader.Request(r);gloader._requests.push(newRequest);var mods=[];var override=gloader.settings.get("override");for(var i=0;i<arguments.length;i++){if(override&&arguments[i][0]=="glow"){arguments[i][1]=override;}mods.push(arguments[i]);}var ids=gloader.toIds(mods);newRequest.args=[];for(var i=0;i<ids.length;i++){newRequest.include(ids[i]);if(ids[i].match(/\/[^.]+$/)){newRequest.args.push(ids[i]);}}var waitCount=newRequest.waits.length;for(var i=0;i<newRequest.waits.length;i++){if(gloader._modules[newRequest.waits[i]]&&gloader._modules[newRequest.waits[i]].status==gloader.Module.IMPLEMENTED){waitCount--;}}if(waitCount>0){newRequest.status=gloader.Request.WAITING;gloader.request(ids,newRequest.async);gloader.resolve();}else{newRequest.complete();}},request:function(mIds,async){for(var i=0;i<mIds.length;i++){if(gloader._extras[mIds[i]]){gloader._modules[mIds[i]]=new gloader.Module(mIds[i]);var extra=gloader._extras[mIds[i]];delete gloader._extras[mIds[i]];gloader.provide(extra);}else{if(!gloader._modules[mIds[i]]){gloader._modules[mIds[i]]=new gloader.Module(mIds[i]);gloader._modules[mIds[i]].status=gloader.Module.REQUESTED;}}}for(var m in gloader._modules){if(gloader._modules[m].status<gloader.Module.FETCHED||gloader._modules[m].css){gloader._modules[m].css=null;gloader.fetch(gloader._modules[m],async);}}},fetch:function(m,async){var cssSrc=gloader.map.css[m.id];if(cssSrc&&!gloader._fetched[cssSrc]){gloader._fetched[cssSrc]=1;if(document){var headElement;if(headElement=document.getElementsByTagName("head")[0]){var link;if(link=document.createElement("link")){link.href=cssSrc;link.rel="stylesheet";link.type="text/css";link.className="gloaded";headElement.appendChild(link);}}else{document.write('<link rel="stylesheet" type="text/css" href="'+cssSrc+'">');}}}if(gloader._modules[m.id].status>=gloader.Module.FETCHED){return false;}gloader._modules[m.id].status=gloader.Module.FETCHED;var jsSrc=gloader.map.js[m.id];if(jsSrc&&!gloader._fetched[jsSrc]){gloader._fetched[jsSrc]=1;if(async){var headElement=document.getElementsByTagName("head")[0];var scriptElement=document.createElement("script");scriptElement.type="text/javascript";scriptElement.src=jsSrc;headElement.appendChild(scriptElement);}else{document.write('<script type="text/javascript" class="gloaded" src="'+jsSrc+'"><\/script>\n');}}},_fetched:{},provide:function(m){m.id=m.library[0]+"/"+m.library[1]+"/"+m.name;if(!gloader._modules[m.id]){gloader._extras[m.id]=m;return;}gloader._modules[m.id].status=gloader.Module.PROVIDED;gloader._modules[m.id].builder=m.builder;gloader._modules[m.id].builder.args=[];var d=gloader._modules[m.id].depends=(m.depends)?gloader.toIds(m.depends):[];if(d.length>0){var includes=[];for(var i=0;i<d.length;i++){var requests=gloader.getRequests(m);var include={async:true,ids:[]};for(var j=0;j<requests.length;j++){requests[j].include(d[i]);include.ids.push(d[i]);if(requests[j].async===false){include.async=false;}}includes.push(include);if(d[i].match(/\/[^.]+$/)){gloader._modules[m.id].builder.args.push(d[i]);}}for(var i=0;i<includes.length;i++){gloader.request(includes[i].ids,includes[i].async);}}else{gloader.implement(m);}gloader.resolve();},module:function(modDef){if(!modDef.depends){modDef.depends=[];}modDef.depends.unshift(modDef.library);gloader.provide(modDef);},library:function(modDef){if(!modDef.depends){modDef.depends=[];}modDef.library=[modDef.name,modDef.version];gloader.provide(modDef);},implement:function(module){if(gloader._modules[module.id].status!=gloader.Module.PROVIDED){return;}gloader._modules[module.id].status=gloader.Module.IMPLEMENTED;for(var i=0;i<gloader._modules[module.id].builder.args.length;i++){var argName=gloader._modules[module.id].builder.args[i];gloader._modules[module.id].builder.args[i]=gloader._modules[module.builder.args[i]].implementation;gloader._modules[module.id].builder.args[i].name=argName;}gloader._modules[module.id].implementation=gloader._modules[module.id].builder.apply(null,gloader._modules[module.id].builder.args);for(var i=0;i<gloader._requests.length;i++){gloader._requests[i].release(module.id);}},resolve:function(){MODULES:for(var m in gloader._modules){var module=gloader._modules[m];if(module.status==gloader.Module.PROVIDED){for(var j=0;j<module.depends.length;j++){var dModule=gloader._modules[module.depends[j]];if(!dModule||dModule.status!=gloader.Module.IMPLEMENTED){continue MODULES;}}gloader.implement(module);gloader.resolve();}}},getRequests:function(m){var requests=[];REQUESTS:for(var i=0;i<gloader._requests.length;i++){var request=gloader._requests[i];for(var j=0;j<request.waits.length;j++){if(request.waits[j]==m.id){requests.push(request);break REQUESTS;}}}return requests;},toIds:function(lib){var result=[];for(var i=0;i<lib.length;i++){var mods=lib[i];var libName=mods.shift();var libVersion=mods.shift();var libId=libName+"/"+gloader.map.latest(libName,libVersion);result.push(libId+"/"+libName);for(var j=0;j<mods.length;j++){result.push(libId+"/"+mods[j]);}}return result;}};gloader.Request=function(r){this.waits=[];this.status=gloader.Request.INITIAL;if(r.onLoad){r.onload=r.onLoad;}if(r.onTimeout){r.ontimeout=r.onTimeout;}if(!r.async&&!r.onload){this.setGlobal=true;}this.async=(typeof r.async!="undefined")?r.async:false;this.onload=r.onload||function(){};if(r.ontimeout){if(typeof r.timeout=="undefined"){r.timeout=20000;}this.timeoutRef=setTimeout(r.ontimeout,r.timeout);}};gloader.Request.INITIAL=-1;gloader.Request.WAITING=0;gloader.Request.COMPLETED=1;gloader.Request.prototype.include=function(mId){for(var i=0;i<this.waits.length;i++){if(this.waits[i]==mId){return;}}this.waits.push(mId);};gloader.Request.prototype.release=function(mId){var implementCount=0;for(var i=0;i<this.waits.length;i++){var wModule=gloader._modules[this.waits[i]];if(wModule&&wModule.status==gloader.Module.IMPLEMENTED){implementCount++;}}if(implementCount==this.waits.length){if(this.setGlobal){for(var i=0;i<this.waits.length;i++){var gModule=gloader._modules[this.waits[i]];window[gModule.name]=gloader._modules[this.waits[i]].implementation;}}this.complete();}};gloader.Request.prototype.complete=function(){if(this.status==gloader.Request.COMPLETED){return;}this.status=gloader.Request.COMPLETED;if(this.timeoutRef){clearTimeout(this.timeoutRef);}for(var i=0;i<this.args.length;i++){this.args[i]=gloader._modules[this.args[i]].implementation;}this.onload.apply(null,this.args);};gloader.Module=function(mId){this.id=mId;this.name=mId.split("/").pop();this.status=gloader.Module.INITIAL;this.css=gloader.map.css[mId];};gloader.Module.INITIAL=-1;gloader.Module.REQUESTED=0;gloader.Module.FETCHED=1;gloader.Module.PROVIDED=2;gloader.Module.IMPLEMENTED=3;gloader.isReady=false;(function(){var d=document;if(
/*@cc_on!@*/
false){if(typeof window.frameElement!="undefined"){d.attachEvent("onreadystatechange",function(){if(d.readyState=="complete"){d.detachEvent("onreadystatechange",arguments.callee);gloader.isReady=true;}});}else{(function(){try{d.documentElement.doScroll("left");}catch(e){setTimeout(arguments.callee,50);return;}gloader.isReady=true;})();}}else{if(typeof d.readyState!="undefined"){var f=function(){/loaded|complete/.test(d.readyState)?gloader.isReady=true:setTimeout(f,10);};f();}else{var callback=function(){if(arguments.callee.fired){return;}arguments.callee.fired=true;gloader.isReady=true;};d.addEventListener("DOMContentLoaded",callback,false);var oldOnload=window.onload;window.onload=function(){if(oldOnload){oldOnload();}callback();};}}})();gloader.mapGlow=function(){var debug=gloader.settings.get("debug");var glow_js=(debug)?"{$base}/glow/glow.debug.js":"js/slideshow2/glow.js";var effects_js=(debug)?"{$base}/fx/fx.debug.js":"{$base}/fx/fx.js";var widgets_js=(debug)?"{$base}/widgets/widgets.debug.js":"{$base}/widgets/widgets.js";gloader.map.add("glow",{$version:"1.0.0",$server:(window.location.protocol=="https:")?"https://www.bbc.co.uk":"http://wwwimg.bbc.co.uk",$base:"{$server}/glow/{$version}/gloader",glow:glow_js,"glow.anim":effects_js,"glow.data":glow_js,"glow.debug":glow_js,"glow.dom":glow_js,"glow.dragdrop":effects_js,"glow.events":glow_js,"glow.net":glow_js,"glow.tweens":effects_js,"glow.widgets":[widgets_js,"{$base}/widgets/widgets.css"],"glow.widgets.InfoPanel":widgets_js,"glow.widgets.Mask":widgets_js,"glow.widgets.Overlay":widgets_js,"glow.widgets.Panel":widgets_js,"glow.widgets.Sortable":widgets_js},{$version:"1.0.1"},{$version:"1.0.2"},{$version:"1.1.0","glow.anim":glow_js,"glow.dragdrop":glow_js,"glow.tweens":glow_js,"glow.embed":glow_js,"glow.forms":glow_js},{$version:"1.1.1"},{$version:"1.2.0","glow.widgets.AutoComplete":widgets_js,"glow.widgets.AutoSuggest":widgets_js,"glow.widgets.Carousel":widgets_js,"glow.widgets.Slider":widgets_js},{$version:"1.2.1"},{$version:"1.2.2"},{$version:"1.3.0"},{$version:"1.3.1"},{$version:"1.3.2"},{$version:"1.3.3"},{$version:"1.3.4"},{$version:"1.3.5"},{$version:"1.4.0-rc1","glow.widgets.Editor":widgets_js,"glow.widgets.Timetable":widgets_js},{$version:"1.4.0"},{$version:"1.4.1"},{$version:"1.4.2"});};gloader.mapGlow();})();
