ensurePackage("guardian.r2");ensurePackage("guardian.r2");guardian.r2.GoogleMapsGeoRssFeedController=function(googleMapsGeoRssView,googleMapsGeoRssFeedService,feedUrl){var instance=this;var numberOfEntries;this.initialize=function(){googleMapsGeoRssView.addLoadEvent(instance.onLoad);googleMapsGeoRssView.addUnloadEvent(instance.onUnload)};this.onLoad=function(){googleMapsGeoRssView.initializeMap();googleMapsGeoRssView.initContainerFontSize();googleMapsGeoRssFeedService.getEntries(feedUrl,instance.displayFeedEntries)};this.displayFeedEntries=function(entries){if(entries.length>0){googleMapsGeoRssView.showMap();for(var index=0;index<entries.length;index++){googleMapsGeoRssView.displayEntryOnMap(entries[index])}googleMapsGeoRssView.zoomToLatest();if(entries.length>1){googleMapsGeoRssView.createNav(entries.length)}}};this.onUnload=function(){googleMapsGeoRssView.unloadMaps()}};ensurePackage("guardian.r2");guardian.r2.GoogleMapsGeoRssFeedService=function(){var instance=this;this.initialize=function(){};
this.getEntries=function(feedsUrl,entriesReadyCallback){var ajaxRequest=new guardian.r2.ajax.Request(feedsUrl,{method:"get",onSuccess:function(transport){instance.populateEntries(transport,entriesReadyCallback)}})};this.populateEntries=function(transport,entriesReadyCallback){var responseXML=transport.responseXML;var entries=new Array();var items;try{items=responseXML.getElementsByTagName("item")}catch(e){parser=new DOMParser();responseXML=parser.parseFromString(transport.responseText,"text/xml");items=responseXML.getElementsByTagName("item")}for(var index=0;index<items.length;index++){var item=items[index];var title=item.getElementsByTagName("title")[0].childNodes[0].data;var description;try{description=item.getElementsByTagName("description")[0].childNodes[0].nodeValue}catch(e){}var link;try{link=item.getElementsByTagName("link")[0].childNodes[0].nodeValue}catch(e){}var lat="";var lng="";var latlng;try{if(navigator.userAgent.toLowerCase().indexOf("msie")<0){latlng=item.getElementsByTagNameNS("http://www.georss.org/georss","point")[0].childNodes[0].nodeValue
}else{latlng=item.getElementsByTagName("georss:point")[0].childNodes[0].nodeValue}if(latlng.length>0){lat=latlng.split(" ")[0];lng=latlng.split(" ")[1]}}catch(e){}if(lat.length>0&&lng.length>0){entries.push({linkText:title,description:description,latitude:Number(lat),longitude:Number(lng),pageURL:link})}}entriesReadyCallback(entries)};this.getDescription=function(item){}};ensurePackage("guardian.r2");guardian.r2.GoogleMapsGeoRssFeedView=function(){var instance=this;var mapItems=new Array();var current=0;var navroot=commonStaticRoot+"images/maps/";var root=commonStaticRoot+"styles/images/";var guardianMapIcon=new GIcon(G_DEFAULT_ICON);guardianMapIcon.image=root+"mapmarkers/1_marker.png";guardianMapIcon.iconSize=new GSize(23,32);guardianMapIcon.shadow=root+"mapmarkers/2_shadow_75.png";guardianMapIcon.shadowSize=new GSize(35,32);guardianMapIcon.iconAnchor=new GPoint(12,29);guardianMapIcon.infoWindowAnchor=new GPoint(18,5);guardianMapIcon.printImage=root+"mapmarkers/3_print.gif";guardianMapIcon.mozPrintImage=root+"mapmarkers/4_ffPrint.gif";
guardianMapIcon.printShadow=root+"mapmarkers/5_print-shadow.gif";guardianMapIcon.imageMap=[12,28,2,16,2,8,11,2,20,8,20,16];var markerOptions={icon:guardianMapIcon};this.initializeMap=function(){instance.map=new GMap2(document.getElementById("map-canvas"));instance.map.setCenter(new GLatLng(0,0),13);instance.map.addControl(new GSmallMapControl())};this.initContainerFontSize=function(){instance.map.getContainer().childNodes[1].style.fontSize="7px"};this.displayEntryOnMap=function(entry){var latlng=new GLatLng(entry.latitude,entry.longitude);var marker=new GMarker(latlng,markerOptions);var html=instance.htmlForEntry(entry);GEvent.addListener(marker,"click",function(){marker.openInfoWindowHtml(html,{maxWidth:200})});if(!instance.mostRecentMarker){instance.mostRecentMarker=marker}instance.map.addOverlay(marker);mapItems.push(latlng)};this.createNav=function(all){var list=document.getElementById("map-nav");if(list){var ul=document.createElement("ul");guardian.r2.dom.element.addClassName(ul,"promo-nav");
prev=document.createElement("li");guardian.r2.dom.element.addClassName(prev,"previous");prevLink=document.createElement("a");prevImg=document.createElement("img");prevImg.setAttribute("src",navroot+"left_arrow.gif");prevTxt=document.createTextNode("Previous");prevLink.setAttribute("href","#");prevLink.appendChild(prevImg);prevLink.appendChild(prevTxt);instance.addEvent(prevLink,"click",instance.show);prev.appendChild(prevLink);ul.appendChild(prev);count=document.createElement("li");guardian.r2.dom.element.addClassName(count,"index");templabel=document.createTextNode(all+" / "+all);count.appendChild(templabel);ul.appendChild(count);next=document.createElement("li");guardian.r2.dom.element.addClassName(next,"next");guardian.r2.dom.element.addClassName(next,"next-post");nextLink=document.createElement("a");nextLink.style.display="none";nextImg=document.createElement("img");nextImg.setAttribute("src",navroot+"right_arrow.gif");nextTxt=document.createTextNode("Next");nextLink.setAttribute("href","#");
nextLink.appendChild(nextTxt);nextLink.appendChild(nextImg);instance.addEvent(nextLink,"click",instance.show);next.appendChild(nextLink);ul.appendChild(next);list.appendChild(ul)}};this.addEvent=function(obj,type,fn){if(obj.attachEvent){obj["e"+type+fn]=fn;obj[type+fn]=function(){obj["e"+type+fn](window.event)};obj.attachEvent("on"+type,obj[type+fn])}else{obj.addEventListener(type,fn,false)}};this.show=function(e){if(this===nextLink||this===prevLink){var addto=this===nextLink?-1:1;current=current+addto;if(current==mapItems.length-1){prevLink.style.display="none"}else{prevLink.style.display="block"}if(current==0){nextLink.style.display="none"}else{nextLink.style.display="block"}panMap(mapItems[current])}var templabel=document.createTextNode((mapItems.length-current)+" / "+mapItems.length);count.replaceChild(templabel,count.firstChild);cancelClick(e)};function panMap(toMarker){instance.map.panTo(toMarker)}function cancelClick(e){if(window.event){window.event.cancelBubble=true;window.event.returnValue=false
}if(e&&e.stopPropagation&&e.preventDefault){e.stopPropagation();e.preventDefault()}}this.showMap=function(){var mapCanvas=document.getElementById("map-canvas");mapCanvas.style.display="block"};this.zoomToLatest=function(){instance.map.checkResize();instance.map.setCenter(this.mostRecentMarker.getLatLng(),6)};this.htmlForEntry=function(entry){var html="";if(entry.pageURL){html=html+'<a href="'+entry.pageURL+'">'}if(entry.linkText){html=html+entry.linkText}if(entry.pageURL){html=html+"</a>"}return html};this.unloadMap=function(){GUnload()};this.addLoadEvent=function(callback){addEvent(document,"load",callback)};this.addUnloadEvent=function(callback){addEvent(document,"unload",callback)}};ensurePackage("guardian.r2");guardian.r2.JobsBoxController=function(view,service,locationIsUSA){var instance=this;var flag=false;this.getJobsDataFromService=function(){if(!flag){var jsUrl=service.buildUrl(instance.createRandomlyNamedFunction());service.attachScriptTag(jsUrl);flag=true}};this.createRandomlyNamedFunction=function(){var randomNumber=parseInt((Math.random()*100000),10);
window["doSomething"+randomNumber]=instance.renderTemplate;return"doSomething"+randomNumber};this.renderTemplate=function(json){view.addJobDataToPage(json)};if(!locationIsUSA){view.addEventHandler(instance.getJobsDataFromService)}else{instance.getJobsDataFromService();view.showUSATab()}};ensurePackage("guardian.r2");guardian.r2.JobsBoxService=function(category,userip){var baseUrl="http://api.indeed.com/ads/apisearch?";var publisher="2029524262105434";var format="json";var useragent;if(navigator&&navigator.userAgent){useragent=navigator.userAgent}else{useragent="unknown"}this.attachScriptTag=function(jsUrl){writeScript("http://www.indeed.com/ads/apiresults.js",true,function(){writeScript(jsUrl,true,function(){})})};this.buildUrl=function(callback){var jsonUrl=baseUrl+"publisher="+publisher+"&q="+category+"&userip="+userip+"&useragent="+useragent+"&format="+format+"&callback="+callback+"&start=0&limit=3";return jsonUrl}};ensurePackage("guardian.r2");guardian.r2.JobsBoxView=function(targetElement,templateElementName){var instance=this;
this.addEventHandler=function(jobsCallback){var usaJobsAnchor=document.getElementById("global-jobs-2-link");var usaJobsTab=usaJobsAnchor.getElementsByTagName("a")[0];addEvent(usaJobsTab,"click",jobsCallback)};this.addJobDataToPage=function(json){var jobsList=document.getElementById(targetElement);jobsList.innerHTML=TrimPath.processDOMTemplate(templateElementName,json);var linksToAddTrackingTo=jobsList.getElementsByTagName("a");for(var i=0;i<linksToAddTrackingTo.length;i++){addEvent(linksToAddTrackingTo[i],"mousedown",json.results[0].onmousedown)}};this.showUSATab=function(){var usaJobsTab=jQ("#global-jobs-2-link a");var ukJobsTab=jQ("#global-jobs-1-link a");usaJobsTab.attr("class","active");ukJobsTab.attr("class","inactive");jQ(ukJobsTab.attr("href")).hide();jQ(usaJobsTab.attr("href")).show()}};ensurePackage("guardian.r2");guardian.r2.PieChartController=function(view,pieData,chartType,sectionColour){var instance=this;this.majorityColour="news";var onLoad=function(){setUpVariablesOnView();
setupColours();buildPie()};var setUpVariablesOnView=function(){var canvasSize=view.getCanvasDimensions();var radius=Math.min(canvasSize[0],canvasSize[1])/2;var centrePoint=[canvasSize[0]/2,canvasSize[1]/2];view.setRadius(radius);view.setCentre(centrePoint)};var buildPie=function(){var totalPieValue=getTotalPieValue();if(totalPieValue===0){view.drawPieSlice(0,2*Math.PI)}else{var soFar=0;var midPoint=(Math.PI*2*(pieData[0].sliceValue/totalPieValue))/2;midPoint=isNaN(midPoint)?0:midPoint;for(var i=0;i<pieData.length;++i){var currentSliceValue=pieData[i].sliceValue/totalPieValue;if(currentSliceValue===1){view.drawPieSlice(0,2*Math.PI,instance.majorityColour);break}var startPoint=Math.PI*(2*soFar);var offsetStartPoint=startPoint-midPoint+Math.PI;var endPoint=Math.PI*(2*(soFar+currentSliceValue));var offsetEndPoint=endPoint-midPoint+Math.PI;if(chartType==="binary"||chartType==="grey-binary"){var colourName=getMajoritySlice(currentSliceValue)}else{var colourName=pieData[i].colourName}if(!(offsetStartPoint===offsetEndPoint)){view.drawPieSlice(offsetStartPoint,offsetEndPoint,colourName)
}soFar+=currentSliceValue}}view.completePieChartRendering(pieData,chartType)};var majoritySliceSet=false;var getMajoritySlice=function(sliceValue){if((sliceValue===0.5&&!majoritySliceSet)||sliceValue>0.5){majoritySliceSet=true;return instance.majorityColour}return"binaryPollDefaultColour"};var getTotalPieValue=function(){var totalPieValue=0;for(var i=0;i<pieData.length;++i){totalPieValue+=pieData[i].sliceValue}return totalPieValue};this.getHighlightColour=function(){if(sectionColour){return sectionColour}else{return"binaryPollmajorityColour"}};function setupColours(){if(sectionColour){view.colours=guardian.r2.sectionColours}instance.majorityColour=instance.getHighlightColour()}if(view.canBrowserUseCanvasTags()){view.addLoadEvent(onLoad)}};ensurePackage("guardian.r2");guardian.r2.PieChartView=function(pieChartId,percentImageSrc,showValues){var canvas=document.getElementById(pieChartId);if(typeof window.G_vmlCanvasManager!="undefined"){canvas=window.G_vmlCanvasManager.initElement(canvas)}var radius,centre,radianDifference;
var innerCircleRadius=30;this.colours={"Democratic Unionist Party":"#990000",Independent:"#ffffff","Green Party in Northern Ireland":"#a1bc2f","Progressive Unionist Party":"#000066","Alliance Party of Northern Ireland":"#ffff33","Sinn Fein":"#1eb13b","Social Democratic Labour Party":"#007051","Ulster Unionist Party":"#9999ff","Scottish Green Party":"#85CE1D","Plaid Cymru":"#fad62f","UK Independence Party":"#92328E","British National Party":"#333399","Green Party":"#669933","Respect Coalition":"#ff0000",Labour:"#cc0000",Conservative:"#0485be","Liberal Democrat":"#ffb316","Scottish National Party":"#ffff99",Other:"#d8d8d8",binaryPollDefaultColour:"#666666",binaryPollmajorityColour:"#FF3A00"};var doesCanvasHaveGetContext=function(){return canvas.getContext};if(doesCanvasHaveGetContext()){var context=canvas.getContext("2d")}this.addLoadEvent=function(callback){addEvent(document,"load",callback)};this.canBrowserUseCanvasTags=doesCanvasHaveGetContext;this.getCanvasDimensions=function(){return[canvas.width,canvas.height]
};this.setRadius=function(newRadius){radius=newRadius};this.setCentre=function(newCentre){centre=newCentre};this.drawPieSlice=function(startPoint,endPoint,colourName){context.beginPath();context.moveTo(centre[0],centre[1]);context.arc(centre[0],centre[1],radius,startPoint,endPoint,false);context.lineTo(centre[0],centre[1]);context.closePath();context.fillStyle=(this.colours[colourName]!=null&&this.colours[colourName]!="")?this.colours[colourName]:"#999";context.fill()};this.completePieChartRendering=function(pieData,chartType){placeInnerCircle(chartType);addPercentageImage();if(showValues){placePercentageValueLabels(pieData)}};var placeInnerCircle=function(chartType){context.beginPath();context.moveTo(centre[0],centre[1]);context.arc(centre[0],centre[1],innerCircleRadius,0,2*Math.PI,false);context.lineTo(centre[0],centre[1]);context.closePath();if(chartType==="binary"){context.fillStyle="#ffffff"}else{if(chartType==="grey-binary"){context.fillStyle="#ededed"}else{context.fillStyle="#d8d8d8"
}}context.fill()};var addPercentageImage=function(){var img=new Image();img.onload=function(){if(guardian.r2.browser.isIE6||guardian.r2.browser.isIE7){context.drawImage(img,centre[0]-21,centre[1]-19)}else{context.drawImage(img,centre[0]-17,centre[1]-15)}};img.src=percentImageSrc};var placePercentageValueLabels=function(pieData){var containerDiv=getAncestorOfType(canvas,"div");var divTop=radius-8;var divWidth=(radius-innerCircleRadius);var divs=["left","right"];for(var i=0;i<divs.length;++i){var myDiv=document.createElement("div");myDiv.innerHTML=pieData[i].sliceValue;myDiv.className="pie-values";myDiv.style.top=divTop+"px";myDiv.style.width=divWidth+"px";myDiv.style.left=(i===0)?"0":(canvas.width-divWidth)+"px";containerDiv.appendChild(myDiv)}}};ensurePackage("guardian.r2");guardian.r2.PoliticsTwitterController=function(view,service){var instance=this;var renderTemplate=function(data){for(var i=0;i<data.results.length;i++){var relativeTime=instance.getRelativeTime(data.results[i].created_at);
data.results[i].created_at=relativeTime;var unescapedFrom=instance.unescapeFrom(data.results[i].source);data.results[i].source=unescapedFrom;var linkifiedLinks=instance.linkifyLinks(data.results[i].text);var linkifiedAtSignsAndLinks=instance.linkifyAtSigns(linkifiedLinks);data.results[i].text=linkifiedAtSignsAndLinks}view.addTweetsToPage(data)};this.getTweetsFromService=function(){service.getTweetsForUsers(renderTemplate)};this.getRelativeTime=function(time_value){var parsed_date=Date.parse(time_value);var relative_to=(arguments.length>1)?arguments[1]:new Date();var delta=parseInt((relative_to.getTime()-parsed_date)/1000);if(delta<60){return"less than a minute ago"}else{if(delta<120){return"about a minute ago"}else{if(delta<(45*60)){return(parseInt(delta/60)).toString()+" minutes ago"}else{if(delta<(120*60)){return"about an hour ago"}else{if(delta<(24*60*60)){return"about "+(parseInt(delta/3600)).toString()+" hours ago"}else{if(delta<(48*60*60)){return"1 day ago"}else{return(parseInt(delta/86400)).toString()+" days ago"
}}}}}}};this.unescapeFrom=function(fromText){var finalText=fromText.replace(/&quot;/g,'"');finalText=finalText.replace(/&lt;/g,"<");finalText=finalText.replace(/&gt;/g,">");return finalText};this.linkifyAtSigns=function(stringToLinkify){var pattern=/@[a-zA-Z0-9]+/g;var matches=stringToLinkify.match(pattern);if(matches!=null){for(var i=0;i<matches.length;i++){var matchedText=matches[i];var matchedTextWithoutAtSign=matchedText.substring(1);var linkifiedString='<a href="http://twitter.com/'+matchedTextWithoutAtSign+'">'+matchedText+"</a>";stringToLinkify=stringToLinkify.replace(matchedText,linkifiedString)}}return stringToLinkify};this.linkifyLinks=function(stringToLinkify){var pattern=/http:\/\/\S*/g;var matches=stringToLinkify.match(pattern);if(matches!=null){for(var i=0;i<matches.length;i++){var matchedText=matches[i];var linkifiedString='<a href="'+matchedText+'">'+matchedText+"</a>";stringToLinkify=stringToLinkify.replace(matchedText,linkifiedString)}}return stringToLinkify};instance.getTweetsFromService()
};ensurePackage("guardian.r2");guardian.r2.PoliticsTwitterService=function(limit,users,topic){this.getTweetsForUsers=function(callback){var goodList=false;users=jQ.trim(users);users=users.replace(/\s+/g," ");var userList=users.split(" ");var userString="";for(var i=0;i<userList.length;i++){userString=userString+"from%3A"+userList[i];userString=userString+"+OR+"}userString=userString.substring(0,userString.lastIndexOf("+OR+"));var topicString="";if(topic!=null&&topic!=""){topicString="++%23"+topic}jQ.getJSON("http://search.twitter.com/search.json?q="+userString+topicString+"&rpp="+limit+"&callback=?",callback)}};ensurePackage("guardian.r2");guardian.r2.PoliticsTwitterView=function(targetElement,templateElementName){var instance=this;this.addTweetsToPage=function(resultList){if(jQ("ul#"+targetElement).length){jQ("#"+targetElement).append(TrimPath.processDOMTemplate(templateElementName,resultList))}else{jQ("#"+targetElement).after(TrimPath.processDOMTemplate(templateElementName,resultList))
}}};ensurePackage("guardian.r2.pluck");guardian.r2.PollSubmissionController=function(view){function onLoad(){view.addRadioClickListener(validate);view.addDropDownChangeListener(validate);validate()}function validate(){if(view.getIgnoredRadioGroups().length===0&&view.getIgnoredDropDowns().length===0){view.enableVoting()}else{view.disableVoting()}}view.addLoadEvent(onLoad)};ensurePackage("guardian.r2.pluck");guardian.r2.pluck.PollSubmissionView=function(){this.addLoadEvent=function(callback){addSafeLoadEvent(callback)};this.addRadioClickListener=function(callback){var buttons=getRadioButtons();for(var i=0;i<buttons.length;i++){addEvent(buttons[i],"click",callback)}};this.addDropDownChangeListener=function(callback){var dropDowns=getDropDowns();for(var i=0;i<dropDowns.length;i++){addEvent(dropDowns[i],"change",callback)}};this.getIgnoredRadioGroups=function(){var ignoredRadioGroups=[];var buttons=getRadioButtons();var checkedRadioGroups=getCheckedRadioGroups(buttons);for(var i=0;i<buttons.length;
i++){if(!checkedRadioGroups[buttons[i].name]){ignoredRadioGroups[buttons[i].name]=true}}return convertKeysToList(ignoredRadioGroups)};this.getIgnoredDropDowns=function(){var ignoredDropDowns=[];var dropDowns=getDropDowns();for(var i=0;i<dropDowns.length;i++){var dropDown=dropDowns[i];if(dropDown.options[dropDown.selectedIndex].text==="Please select"){ignoredDropDowns.push(dropDown.name)}}return ignoredDropDowns};this.enableVoting=function(){document.getElementById("submit").disabled=false};this.disableVoting=function(){document.getElementById("submit").disabled=true};function getRadioButtons(){var form=document.getElementById("poll-submission-form");var inputElements=guardian.r2.dom.element.getElementsByCssSelector("input",form);var radioButtons=[];for(var i=0;i<inputElements.length;i++){if(inputElements[i].type==="radio"){radioButtons.push(inputElements[i])}}return radioButtons}function getCheckedRadioGroups(buttons){var checkedRadioGroups=[];for(var i=0;i<buttons.length;i++){if(buttons[i].checked){checkedRadioGroups[buttons[i].name]=true
}}return checkedRadioGroups}function getDropDowns(){var form=document.getElementById("poll-submission-form");return guardian.r2.dom.element.getElementsByCssSelector("select",form)}function convertKeysToList(map){var list=[];for(var key in map){if(map.hasOwnProperty(key)){list.push(key)}}return list}};ensurePackage("guardian.r2");guardian.r2.TwitterController=function(view){var init=function(){view.init()};var onLoad=function(){init()};if(view.canBrowserUseCanvasTags){view.addLoadEvent(onLoad)}};ensurePackage("guardian.r2");guardian.r2.TwitterView=function(twitterBalloonColour,twitterTextColour,imgPathLeft,imgPathRight){var instance=this;var currentTweet=0;var canvas=document.getElementById("twitter-balloon");if(typeof window.G_vmlCanvasManager!="undefined"){canvas=window.G_vmlCanvasManager.initElement(canvas)}document.getElementById("nojs-balloon").style.display="none";this.init=function(){if(document.getElementById&&document.createTextNode){var list=document.getElementById("tweets");if(list){items=list.getElementsByTagName("li");
all=items.length;if(all>1){guardian.r2.dom.element.addClassName(list,"js");instance.createNav(list)}}}twitterShow()};var doesCanvasHaveGetContext=function(){return canvas.getContext};if(doesCanvasHaveGetContext()){var context=canvas.getContext("2d")}this.canBrowserUseCanvasTags=doesCanvasHaveGetContext;drawTwitterBalloon();this.addEvent=function(obj,type,fn){if(obj.attachEvent){obj["e"+type+fn]=fn;obj[type+fn]=function(){obj["e"+type+fn](window.event)};obj.attachEvent("on"+type,obj[type+fn])}else{obj.addEventListener(type,fn,false)}};this.createNav=function(o){var ul=document.createElement("ul");guardian.r2.dom.element.addClassName(ul,"promo-nav");twitterPrev=document.createElement("li");twitterPrevLink=document.createElement("a");twitterPrevImg=document.createElement("img");twitterPrevImg.setAttribute("src",imgPathLeft);twitterPrevLink.setAttribute("href","#");twitterPrevLink.appendChild(twitterPrevImg);instance.addEvent(twitterPrevLink,"click",twitterShow);twitterPrev.appendChild(twitterPrevLink);
ul.appendChild(twitterPrev);twitterCount=document.createElement("span");twitterTempLabel=document.createTextNode((currentTweet+1)+" / "+all);twitterCount.appendChild(twitterTempLabel);ul.appendChild(twitterCount);twitterNext=document.createElement("li");guardian.r2.dom.element.addClassName(twitterNext,"next-tweet");twitterNextLink=document.createElement("a");twitterNextImg=document.createElement("img");twitterNextImg.setAttribute("src",imgPathRight);twitterNextLink.setAttribute("href","#");twitterNextLink.appendChild(twitterNextImg);instance.addEvent(twitterNextLink,"click",twitterShow);twitterNext.appendChild(twitterNextLink);ul.appendChild(twitterNext);o.parentNode.parentNode.appendChild(ul)};function twitterShow(e){if(this===twitterNextLink||this===twitterPrevLink){removeClassName(items[currentTweet],"current");var addto=this===twitterNextLink?-1:1;currentTweet=currentTweet+addto;if(currentTweet<0){currentTweet=(all-1)}if(currentTweet>all-1){currentTweet=0}}var templabel=document.createTextNode((currentTweet+1)+" / "+all);
twitterCount.replaceChild(templabel,twitterCount.firstChild);guardian.r2.dom.element.addClassName(items[currentTweet],"current");items[currentTweet].getElementsByTagName("p")[0].style.color=twitterTextColour;items[currentTweet].getElementsByTagName("a")[0].style.color=twitterTextColour;cancelClick(e)}function cancelClick(e){if(window.event){window.event.cancelBubble=true;window.event.returnValue=false}if(e&&e.stopPropagation&&e.preventDefault){e.stopPropagation();e.preventDefault()}}this.addLoadEvent=function(callback){callback()};function roundedRect(context,x,y,width,height,radius){context.beginPath();context.moveTo(x,y+radius);context.lineTo(x,y+height-radius);context.quadraticCurveTo(x,y+height,x+radius,y+height);context.lineTo(x+width-radius,y+height);context.quadraticCurveTo(x+width,y+height,x+width,y+height-radius);context.lineTo(x+width,y+radius);context.quadraticCurveTo(x+width,y,x+width-radius,y);context.lineTo(x+radius,y);context.quadraticCurveTo(x,y,x,y+radius);context.moveTo(145,202);
context.lineTo(135,230);context.lineTo(165,202);context.lineTo(145,202);context.fillStyle=twitterBalloonColour;context.fill()}function drawTwitterBalloon(twitterBalloonColour){roundedRect(context,12,12,175,190,15)}}
/*@cc_on

if(guardian.r2.browser.isIE6) {

addEvent(window, "load", doPng);

function doPng()  {

	var pngsList=document.getElementsByTagName('img');

	var pngs = []
	forEachElementOf(pngsList, function(element) {
		pngs.push(element);
		});


	if(pngs.length==0) return;
	for(var i=0; i<pngs.length; i++){
	var parent=pngs[i].parentNode;
		if(pngs[i].src.match(/\.png$/) && !pngs[i].src.match("/reuters/")){
			var newImage=document.createElement("div");
			if(pngs[i].src.match(/\/[1-5]\.png$/) && typeof(forceWidth)!="undefined") {
				newImage.style.width=forceWidth+'px';
				newImage.style.height=forceHeight+'px';
			} else {
				newImage.style.width=pngs[i].width+'px';
				newImage.style.height=pngs[i].height+'px';
			}
			newImage.id=pngs[i].id;
			newImage.className=pngs[i].className;
			var mask=pngs[i].src;
			newImage.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mask+"',sizingMethod='scale')";
			parent.replaceChild(newImage, pngs[i]);
		}

	}

}
}
@*/
;
jQ(function(){viewStatus="expanded";cookieName="cricket_popup_type";date=new Date();date.setTime(date.getTime()+(30*24*60*60*1000));options={path:"/",expires:date};var collapse=function(){jQ("div#maximised").addClass("hide").removeClass("show");jQ("div#minimised").addClass("show").removeClass("hide")};var expand=function(){jQ("div#maximised").addClass("show").removeClass("hide");jQ("div#minimised").addClass("hide").removeClass("show")};jQ("#collapse").click(function(){collapse();if(guardian.r2.browser.isIE6){window.resizeTo(497,125)}else{if(guardian.r2.browser.isIE7){window.resizeTo(497,145)}else{if(guardian.r2.browser.isIE8){window.resizeTo(482,145)}else{window.resizeTo(467,130)}}}jQ.cookie(cookieName,"collapsed",options);return false});jQ("#expand").click(function(){expand();if(guardian.r2.browser.isIE6){window.resizeTo(777,463)}else{if(guardian.r2.browser.isIE7){window.resizeTo(777,493)}else{if(guardian.r2.browser.isIE8){window.resizeTo(760,483)}else{window.resizeTo(747,463)}}}jQ.cookie(cookieName,"expanded",{path:"/",expires:date});
return false});if(jQ.cookie(cookieName)){viewStatus=jQ.cookie(cookieName)}if(viewStatus=="expanded"){expand()}else{collapse()}});function _formChecker(elem,limit,warning){var charsLeft=limit-elem.value.length;warning.innerHTML=charsLeft+" characters left";warning.className="";if(elem.value.length>limit){elem.value=elem.value.substring(0,limit);warning.innerHTML="Max 250 characters";warning.className="warning";elem.scrollTop=elem.scrollHeight-elem.clientHeight}}function formChecker(elem,limit){_formChecker(elem,limit,document.getElementById("warning"))}function formCheckerSide(elem,limit){_formChecker(elem,limit,document.getElementById("warning-side"))}function attachValidationToFormsOnPage(){for(var i=0;i<document.forms.length;++i){addEvent(document.forms[i],"submit",validateForm)}}function highlightAndFadeInput(inputElement){var colourLevel=1;var step=function(){var hex=colourLevel.toString(16);inputElement.style.backgroundColor="#FFFF"+hex+hex;if(colourLevel<15){colourLevel+=1;setTimeout(step,100)
}};setTimeout(step,100)}function validateForm(e){theForm=e.target||window.event.srcElement;for(var i=0;i<theForm.elements.length;++i){var formName=theForm.elements[i].name;if((formName=="search"||formName=="location")&&!theForm.elements[i].value){highlightAndFadeInput(theForm.elements[i]);guardian.r2.event.stop(e)}}}addEvent(document,"load",attachValidationToFormsOnPage);Date.prototype.formatDate=function(input,time){var daysLong=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var daysShort=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];var monthsShort=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var monthsLong=["January","February","March","April","May","June","July","August","September","October","November","December"];var switches={a:function(){return date.getHours()>11?"pm":"am"},A:function(){return(this.a().toUpperCase())},B:function(){var off=(date.getTimezoneOffset()+60)*60;var theSeconds=(date.getHours()*3600)+(date.getMinutes()*60)+date.getSeconds()+off;
var beat=Math.floor(theSeconds/86.4);if(beat>1000){beat-=1000}if(beat<0){beat+=1000}if((String(beat)).length==1){beat="00"+beat}if((String(beat)).length==2){beat="0"+beat}return beat},c:function(){return(this.Y()+"-"+this.m()+"-"+this.d()+"T"+this.h()+":"+this.i()+":"+this.s()+this.P())},d:function(){var j=String(this.j());return(j.length==1?"0"+j:j)},D:function(){return daysShort[date.getDay()]},F:function(){return monthsLong[date.getMonth()]},g:function(){if(date.getHours()>12){return date.getHours()-12}else{if(date.getHours()===0){return 12}else{return date.getHours()}}},G:function(){return date.getHours()},h:function(){var g=String(this.g());return(g.length==1?"0"+g:g)},H:function(){var G=String(this.G());return(G.length==1?"0"+G:G)},i:function(){var min=String(date.getMinutes());return(min.length==1?"0"+min:min)},I:function(){var noDST=new Date("January 1 "+this.Y()+" 00:00:00");return(noDST.getTimezoneOffset()==date.getTimezoneOffset()?0:1)},j:function(){return date.getDate()},l:function(){return daysLong[date.getDay()]
},L:function(){var Y=this.Y();if((Y%4==0&&Y%100!=0)||(Y%4==0&&Y%100==0&&Y%400==0)){return 1}else{return 0}},m:function(){var n=String(this.n());return(n.length==1?"0"+n:n)},M:function(){return monthsShort[date.getMonth()]},n:function(){return date.getMonth()+1},N:function(){var w=this.w();return(w==0?7:w)},O:function(){var os=Math.abs(date.getTimezoneOffset());var h=String(Math.floor(os/60));var m=String(os%60);h.length==1?h="0"+h:1;m.length==1?m="0"+m:1;return date.getTimezoneOffset()<0?"+"+h+m:"-"+h+m},P:function(){var O=this.O();return(O.substr(0,3)+":"+O.substr(3,2))},r:function(){var r;r=this.D()+", "+this.d()+" "+this.M()+" "+this.Y()+" "+this.H()+":"+this.i()+":"+this.s()+" "+this.O();return r},s:function(){var sec=String(date.getSeconds());return(sec.length==1?"0"+sec:sec)},S:function(){switch(date.getDate()){case 1:return("st");case 2:return("nd");case 3:return("rd");case 21:return("st");case 22:return("nd");case 23:return("rd");case 31:return("st");default:return("th")}},t:function(){var daysinmonths=[null,31,28,31,30,31,30,31,31,30,31,30,31];
if(this.L()==1&&this.n()==2){return 29}return daysinmonths[this.n()]},U:function(){return Math.round(date.getTime()/1000)},w:function(){return date.getDay()},W:function(){var DoW=this.N();var DoY=this.z();var daysToNY=364+this.L()-DoY;if(daysToNY<=2&&DoW<=(3-daysToNY)){return 1}if(DoY<=2&&DoW>=5){return new Date(this.Y()-1,11,31).formatDate("W")}var nyDoW=new Date(this.Y(),0,1).getDay();nyDoW=nyDoW!=0?nyDoW-1:6;if(nyDoW<=3){return(1+Math.floor((DoY+nyDoW)/7))}else{return(1+Math.floor((DoY-(7-nyDoW))/7))}},y:function(){var y=String(this.Y());return y.substring(y.length-2,y.length)},Y:function(){if(date.getFullYear){var newDate=new Date("January 1 2001 00:00:00 +0000");var x=newDate.getFullYear();if(x==2001){return date.getFullYear()}}var x=date.getYear();var y=x%100;y+=(y<38)?2000:1900;return y},z:function(){var t=new Date("January 1 "+this.Y()+" 00:00:00");var diff=date.getTime()-t.getTime();return Math.floor(diff/1000/60/60/24)},Z:function(){return(date.getTimezoneOffset()*-60)}};function getSwitch(str){if(switches[str]!=undefined){return switches[str]()
}else{return str}}var date;if(time){var date=new Date(time)}else{var date=this}var formatString=input.split("");var i=0;while(i<formatString.length){if(formatString[i]=="\\"){formatString.splice(i,1)}else{formatString[i]=getSwitch(formatString[i])}i++}return formatString.join("")};Date.DATE_ATOM="Y-m-d\\TH:i:sP";Date.DATE_ISO8601="Y-m-d\\TH:i:sO";Date.DATE_RFC2822="D, d M Y H:i:s O";Date.DATE_W3C="Y-m-d\\TH:i:sP";ensurePackage("guardian.r2");guardian.r2.GeoLocatedContent=function(latitude,longitude,linkText,webPublicationDateTime,pageURL){this.latitude=latitude;this.longitude=longitude;this.linkText=linkText;this.webPublicationDateTime=webPublicationDateTime;this.pageURL=pageURL};guardian.r2.GeoLocatedContentController=function(geoLocatedContentView,geoLocatedContentList){var instance=this;var numberOfEntries;this.initialize=function(){geoLocatedContentView.addLoadEvent(instance.onLoad);geoLocatedContentView.addUnloadEvent(instance.onUnload)};this.onLoad=function(){geoLocatedContentView.initializeMap();
instance.displayFeedEntries(geoLocatedContentList)};this.displayFeedEntries=function(entries){if(entries.length>0){geoLocatedContentView.showMap();for(var index=0;index<entries.length;index++){geoLocatedContentView.displayEntryOnMap(entries[index])}geoLocatedContentView.zoomToLatest();if(entries.length>1){geoLocatedContentView.createNav(entries.length)}}};this.onUnload=function(){geoLocatedContentView.unloadMaps()}};ensurePackage("guardian.r2");addEvent(window,"load",glossaryPopupView);function glossaryPopupView(){function attachLinksToGlossary(identifier,header,footer){var allGlossaryLinks=guardian.r2.dom.element.getElementsByClassName(identifier);if(!allGlossaryLinks){return }for(var i=0;i<allGlossaryLinks.length;++i){var href=allGlossaryLinks[i].getAttribute("href");href=allGlossaryLinks[i].getAttribute("href",2);href=href.substring(1);addEvent(allGlossaryLinks[i],"click",toggleGlossaryPopup(href,allGlossaryLinks[i],i,header,footer))}}function toggleGlossaryPopup(href,ele,num,header,footer){return function(e){guardian.r2.event.stop(e);
var popUp=document.getElementById(href+"-popup-"+num);if(popUp===null||popUp==="null"){var glossaryItem=document.getElementById(href);var linkPositionLeft=ele.offsetLeft;popUp=document.createElement("div");popUpBox=glossaryItem.cloneNode(true);popUpHeading=document.createElement("h3");if(header!==null){popUpHeadingText=document.createTextNode(header);popUpHeading.appendChild(popUpHeadingText)}popUpClose=document.createElement("a");addEvent(popUpClose,"click",toggleGlossaryPopup(href,ele,num));popUpClose.setAttribute("class","close");popUpClose.setAttribute("className","close");popUpCloseText=document.createTextNode("Close");popUpClose.appendChild(popUpCloseText);popUpFooter=document.createElement("p");if(footer!==null){popUpFooterText=document.createTextNode(footer);popUpFooter.appendChild(popUpFooterText)}if(header!==null){popUp.appendChild(popUpHeading)}popUp.appendChild(popUpClose);popUp.appendChild(popUpBox);popUp.appendChild(popUpFooter);popUp.setAttribute("id",href+"-popup-"+num);
popUp.setAttribute("class","glossary-popup");popUp.setAttribute("className","glossary-popup");ele.parentNode.insertBefore(popUp,ele);var popupId=popUp.getAttribute("id");jQ("#"+popupId).css("position","absolute");jQ("#"+popupId).css("left",linkPositionLeft+ele.offsetWidth+"px")}toggleDisplay(popUp)}}function toggleDisplay(popUp){popUp.style.display=popUp.style.display==("block")?popUp.style.display="none":popUp.style.display=("block")}attachLinksToGlossary("gloss-link","Glossary","\u00A9 BMJ Publishing Group Ltd 2010");attachLinksToGlossary("gu-gloss-link",null,null)}jQ(document).ready(function(){jQ("a.shower").click(function(){if(jQ("body.clippings").length){theParent=".show-more"}else{theParent="ul"}jQ(this).toggleClass("open").parents(theParent).filter(":first").next().toggle();return false})});ensurePackage("guardian.r2");guardian.r2.moreTrailsTabbed=function(){var instance=this;this.addPaginationClickHandlers=function(){jQuery("#more-trails-tabbed ul.pagination a").live("click",function(e){instance.sendRequest(this);
return false})};this.sendRequest=function(elem){var sectionId=jQ(elem).parents("[id^=more-trails-tabbed-]").attr("id");var section=sectionId.split("-")[3];var url=instance.buildUrl(elem,section);jQuery("#"+sectionId).load(url+" #"+sectionId+" > *",function(data){jQuery("#"+sectionId+" div img").each(function(a){applyImageMaskImmediate(this,"video")})})};this.buildUrl=function(elem,section){var url=elem.href;url+=(url.indexOf("?")==-1)?"?":"&";url+="_guAjaxPanel=moreVideoTabsAjaxPanel";url+=("&moreVideoData="+section);return url};this.addMouseOverHandlers=function(){jQuery("#more-trails-tabbed div li div.trail-caption").css("opacity",0).show();jQuery("#more-trails-tabbed div li").live("mouseenter",function(){jQuery(this).find("div.trail-caption").fadeTo(300,0.8);if(guardian.r2.browser.isIE7){jQuery(this).find("img.mask").hide()}else{jQuery(this).find("img.mask").fadeTo(300,0)}});jQuery("#more-trails-tabbed div li").live("mouseleave",function(){if(guardian.r2.browser.isIE7){jQuery(this).find("img.mask").show()
}else{jQuery(this).find("img.mask").fadeTo(300,1)}jQuery(this).find("div.trail-caption").fadeTo(300,0)})};this.addMouseOverHandlers();this.addPaginationClickHandlers()};guardian.r2.overlayLinks=function(){var classes=["embed-link","send-share","send-email","history-link","contact-link","settings-link"],panes=jQ("div.toolbox-popup"),isGalleryPage=(jQ("body.gallery").length>0?true:false);var toggleOverlay=function(linkClass,srcElem){var positionOnPage=jQ(srcElem);var targetPanel=jQ("#"+linkClass+"-box");if(targetPanel.is(":visible")){toggleHideOnPopupElements("visible");targetPanel.hide()}else{panes.hide();var pos=positionOnPage.offset();var newTop,newLeft,relative;if(positionOnPage.is(":#history-link-byline")){newLeft=10,newTop=pos.top+25}else{if(positionOnPage.is(":.relative-position")){targetPanel.addClass("position-relative-popup");relative=true}else{newLeft="12em",newTop=pos.top+25}}if(!relative){targetPanel.css({position:"absolute",top:newTop,left:newLeft})}if(isGalleryPage){toggleHideOnPopupElements("hidden")
}targetPanel.show()}};var articleHistoryByline=function(){if(jQ("#history-link-box").length){var historyLink=jQ('<li class="history"><a class="rollover history-link" id="history-link-byline" href="#history-link-box">Article history</a></li>');if(jQ("#contrib-shift").length){jQ(".article-attributes ul").append(historyLink)}else{jQ("ul.article-attributes").append(historyLink)}}};var initialize=function(){articleHistoryByline();jQ.each(classes,function(i,val){var elements=jQ("a."+val);var closeElements=jQ("a.close-toolbox-"+val);elements.click(function(){toggleOverlay(val,this);return false});closeElements.click(function(){panes.hide();toggleHideOnPopupElements("visible");return false})})};if(panes.length>0){initialize()}};jQ(document).ready(guardian.r2.overlayLinks);if(document.getElementById&&document.getElementsByTagName){addEvent(window,"load",toggleQuizAnswers)}function toggleQuizAnswers(){if(document.getElementById("show-answers-link")){var theLink=document.getElementById("show-answers-link");
theLink.onclick=function(){var className=document.getElementById("quiz-answers").className;if(className.indexOf("js-hider")>-1){document.getElementById("quiz-answers").className=className.replace("js-hider","shower");theLink.innerHTML="Hide answers"}else{document.getElementById("quiz-answers").className=className.replace("shower","js-hider");theLink.innerHTML="Show answers"}}}}var stIsIE=
/*@cc_on!@*/
false;sorttable={init:function(){if(arguments.callee.done){return }arguments.callee.done=true;if(_timer){clearInterval(_timer)}if(!document.createElement||!document.getElementsByTagName){return }sorttable.DATE_RE=/^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/;forEach(document.getElementsByTagName("table"),function(table){if(table.className.search(/\bsortable\b/)!=-1){sorttable.makeSortable(table)}})},isOdd:function(number){return !(number%2===0)},makeSortable:function(table){if(table.tHead.rows.length!=1){return }headrow=table.tHead.rows[0].cells;for(var i=0;i<headrow.length;i++){if(!headrow[i].className.match(/\bsorttable_nosort\b/)){mtch=headrow[i].className.match(/\bsorttable_([a-z0-9]+)\b/);
if(mtch){override=mtch[1]}if(mtch&&typeof sorttable["sort_"+override]=="function"){headrow[i].sorttable_sortfunction=sorttable["sort_"+override]}else{headrow[i].sorttable_sortfunction=sorttable.guessType(table,i)}headrow[i].sorttable_columnindex=i;headrow[i].sorttable_tbody=table.tBodies[0];dean_addEvent(headrow[i],"click",function(e){var reversingThisColumn=this.className.search(/\bsorttable_sorted\b/)!=-1;theadrow=this.parentNode;forEach(theadrow.childNodes,function(cell){if(cell.nodeType==1){cell.className=cell.className.replace("sorttable_sorted_reverse","");cell.className=cell.className.replace("sorttable_sorted","")}});sortfwdind=document.getElementById("sorttable_sortfwdind");if(sortfwdind){sortfwdind.parentNode.removeChild(sortfwdind)}sortrevind=document.getElementById("sorttable_sortrevind");if(sortrevind){sortrevind.parentNode.removeChild(sortrevind)}this.className+=reversingThisColumn?" sorttable_sorted_reverse":" sorttable_sorted";sortfwdind=document.createElement("span");sortfwdind.id="sorttable_sortfwdind";
if(reversingThisColumn){sortfwdind.innerHTML=stIsIE?'<font face="webdings">6</font>':"&#x25BE;"}else{sortfwdind.innerHTML=stIsIE?'<font face="webdings">5</font>':"&#x25B4;"}this.appendChild(sortfwdind);row_array=[];col=this.sorttable_columnindex;rows=this.sorttable_tbody.rows;for(var j=0;j<rows.length;j++){row_array[row_array.length]=[sorttable.getInnerText(rows[j].cells[col]),rows[j]]}var unreversedSortFunction=this.sorttable_sortfunction;if(reversingThisColumn){var reversedSortFunction=function(a,b){return -unreversedSortFunction(a,b)};row_array.sort(reversedSortFunction)}else{row_array.sort(unreversedSortFunction)}tb=this.sorttable_tbody;for(var j=0;j<row_array.length;j++){var thisRow=row_array[j][1];thisRow.className="";if(sorttable.isOdd(j)){thisRow.className="odd"}tb.appendChild(thisRow)}delete row_array})}}},guessType:function(table,column){sortfn=sorttable.sort_alpha;for(var i=0;i<table.tBodies[0].rows.length;i++){text=sorttable.getInnerText(table.tBodies[0].rows[i].cells[column]);
if(text!=""){if(text.match(/^-?[�$�]?[\d,.]+%?$/)){return sorttable.sort_numeric}possdate=text.match(sorttable.DATE_RE);if(possdate){first=parseInt(possdate[1]);second=parseInt(possdate[2]);if(first>12){return sorttable.sort_ddmm}else{if(second>12){return sorttable.sort_mmdd}else{sortfn=sorttable.sort_ddmm}}}}}return sortfn},getInnerText:function(node){hasInputs=(typeof node.getElementsByTagName=="function")&&node.getElementsByTagName("input").length;if(node.getAttribute("sorttable_customkey")!=null){return node.getAttribute("sorttable_customkey")}else{if(typeof node.textContent!="undefined"&&!hasInputs){return node.textContent.replace(/^\s+|\s+$/g,"")}else{if(typeof node.innerText!="undefined"&&!hasInputs){return node.innerText.replace(/^\s+|\s+$/g,"")}else{if(typeof node.text!="undefined"&&!hasInputs){return node.text.replace(/^\s+|\s+$/g,"")}else{switch(node.nodeType){case 3:if(node.nodeName.toLowerCase()=="input"){return node.value.replace(/^\s+|\s+$/g,"")}case 4:return node.nodeValue.replace(/^\s+|\s+$/g,"");
break;case 1:case 11:var innerText="";for(var i=0;i<node.childNodes.length;i++){innerText+=sorttable.getInnerText(node.childNodes[i])}return innerText.replace(/^\s+|\s+$/g,"");break;default:return""}}}}}},reverse:function(tbody){newrows=[];for(var i=0;i<tbody.rows.length;i++){newrows[newrows.length]=tbody.rows[i]}for(var i=newrows.length-1;i>=0;i--){tbody.appendChild(newrows[i])}delete newrows},sort_numeric:function(a,b){aa=parseFloat(a[0].replace(/[^0-9.-]/g,""));if(isNaN(aa)){aa=0}bb=parseFloat(b[0].replace(/[^0-9.-]/g,""));if(isNaN(bb)){bb=0}return aa-bb},sort_alpha:function(a,b){if(a[0]==b[0]){return 0}if(a[0]<b[0]){return -1}return 1},sort_ddmm:function(a,b){mtch=a[0].match(sorttable.DATE_RE);y=mtch[3];m=mtch[2];d=mtch[1];if(m.length==1){m="0"+m}if(d.length==1){d="0"+d}dt1=y+m+d;mtch=b[0].match(sorttable.DATE_RE);y=mtch[3];m=mtch[2];d=mtch[1];if(m.length==1){m="0"+m}if(d.length==1){d="0"+d}dt2=y+m+d;if(dt1==dt2){return 0}if(dt1<dt2){return -1}return 1},sort_mmdd:function(a,b){mtch=a[0].match(sorttable.DATE_RE);
y=mtch[3];d=mtch[2];m=mtch[1];if(m.length==1){m="0"+m}if(d.length==1){d="0"+d}dt1=y+m+d;mtch=b[0].match(sorttable.DATE_RE);y=mtch[3];d=mtch[2];m=mtch[1];if(m.length==1){m="0"+m}if(d.length==1){d="0"+d}dt2=y+m+d;if(dt1==dt2){return 0}if(dt1<dt2){return -1}return 1},shaker_sort:function(list,comp_func){var b=0;var t=list.length-1;var swap=true;while(swap){swap=false;for(var i=b;i<t;++i){if(comp_func(list[i],list[i+1])>0){var q=list[i];list[i]=list[i+1];list[i+1]=q;swap=true}}t--;if(!swap){break}for(var i=t;i>b;--i){if(comp_func(list[i],list[i-1])<0){var q=list[i];list[i]=list[i-1];list[i-1]=q;swap=true}}b++}}};addEvent(null,"load",sorttable.init);function dean_addEvent(element,type,handler){if(element.addEventListener){element.addEventListener(type,handler,false)}else{if(!handler.$$guid){handler.$$guid=dean_addEvent.guid++}if(!element.events){element.events={}}var handlers=element.events[type];if(!handlers){handlers=element.events[type]={};if(element["on"+type]){handlers[0]=element["on"+type]
}}handlers[handler.$$guid]=handler;element["on"+type]=handleEvent}}dean_addEvent.guid=1;function removeEvent(element,type,handler){if(element.removeEventListener){element.removeEventListener(type,handler,false)}else{if(element.events&&element.events[type]){delete element.events[type][handler.$$guid]}}}function handleEvent(event){var returnValue=true;event=event||fixEvent(((this.ownerDocument||this.document||this).parentWindow||window).event);var handlers=this.events[event.type];for(var i in handlers){this.$$handleEvent=handlers[i];if(this.$$handleEvent(event)===false){returnValue=false}}return returnValue}function fixEvent(event){event.preventDefault=fixEvent.preventDefault;event.stopPropagation=fixEvent.stopPropagation;return event}fixEvent.preventDefault=function(){this.returnValue=false};fixEvent.stopPropagation=function(){this.cancelBubble=true};if(!Array.forEach){Array.forEach=function(array,block,context){for(var i=0;i<array.length;i++){block.call(context,array[i],i,array)}}}Function.prototype.forEach=function(object,block,context){for(var key in object){if(typeof this.prototype[key]=="undefined"){block.call(context,object[key],key,object)
}}};String.forEach=function(string,block,context){Array.forEach(string.split(""),function(chr,index){block.call(context,chr,index,string)})};var forEach=function(object,block,context){if(object){var resolve=Object;if(object instanceof Function){resolve=Function}else{if(object.forEach instanceof Function){object.forEach(block,context);return }else{if(typeof object=="string"){resolve=String}else{if(typeof object.length=="number"){resolve=Array}}}}resolve.forEach(object,block,context)}};function sportsTabs(){function init(){var uls=document.getElementsByTagName("ul");for(i=0;i<uls.length;i++){if(uls[i].className==="tab-toggle"){uls[i].onclick=handleClick;var anchors=uls[i].getElementsByTagName("a");var cookie=readCookie("sportsPopupTab");if(cookie){for(var j=0;j<anchors.length;j++){if(anchors[j].href.split("#")[1]===cookie){renderTabs(anchors[j])}}}else{renderTabs(anchors[0])}}}}if(document.body.id==="sports-popup"){init()}function handleClick(e){var target;if(!e){e=window.event}if(e.target){target=e.target
}else{if(e.srcElement){target=e.srcElement}}if(target.nodeType&&target.nodeType===3){target=target.parentNode}if(target.href){createCookie("sportsPopupTab",target.href.split("#")[1],7);renderTabs(target)}return false}function renderTabs(target){showTabPane(target);var allLinks=target.parentNode.parentNode.getElementsByTagName("a");for(var j=0;j<allLinks.length;j++){allLinks[j].className="inactive"}var body=document.getElementsByTagName("body")[0];if(target.id==="cricket-live-score"){target.className="active";body.className="cricket cricket-score"}else{target.className="";if(body.className.match(/cricket/)){body.className="cricket"}}}function showTabPane(e){hideTabPane(e);var id=e.href.match(/#(\w.+)/)[1];var element=document.getElementById(id);if(element){element.style.display="block"}}function hideTabPane(e){var togglenode=e.parentNode.parentNode.parentNode;var toggleid=togglenode.id+"-pane";var toggleable=togglenode.getElementsByTagName("div");for(var i=0;i<toggleable.length;i++){var divClass=toggleable[i].className;
if(divClass.match(toggleid)){toggleable[i].style.display="none"}}}}if(document.getElementById&&document.getElementsByTagName){addEvent(window,"load",sportsTabs)}ensurePackage("guardian.r2.pluck");guardian.r2.PollSubmissionController=function(view){function onLoad(){view.addRadioClickListener(validate);view.addDropDownChangeListener(validate);validate()}function validate(){if(view.getIgnoredRadioGroups().length===0&&view.getIgnoredDropDowns().length===0){view.enableVoting()}else{view.disableVoting()}}view.addLoadEvent(onLoad)};ensurePackage("guardian.r2.pluck");guardian.r2.pluck.PollSubmissionView=function(){this.addLoadEvent=function(callback){addSafeLoadEvent(callback)};this.addRadioClickListener=function(callback){var buttons=getRadioButtons();for(var i=0;i<buttons.length;i++){addEvent(buttons[i],"click",callback)}};this.addDropDownChangeListener=function(callback){var dropDowns=getDropDowns();for(var i=0;i<dropDowns.length;i++){addEvent(dropDowns[i],"change",callback)}};this.getIgnoredRadioGroups=function(){var ignoredRadioGroups=[];
var buttons=getRadioButtons();var checkedRadioGroups=getCheckedRadioGroups(buttons);for(var i=0;i<buttons.length;i++){if(!checkedRadioGroups[buttons[i].name]){ignoredRadioGroups[buttons[i].name]=true}}return convertKeysToList(ignoredRadioGroups)};this.getIgnoredDropDowns=function(){var ignoredDropDowns=[];var dropDowns=getDropDowns();for(var i=0;i<dropDowns.length;i++){var dropDown=dropDowns[i];if(dropDown.options[dropDown.selectedIndex].text==="Please select"){ignoredDropDowns.push(dropDown.name)}}return ignoredDropDowns};this.enableVoting=function(){document.getElementById("submit").disabled=false};this.disableVoting=function(){document.getElementById("submit").disabled=true};function getRadioButtons(){var form=document.getElementById("poll-submission-form");var inputElements=guardian.r2.dom.element.getElementsByCssSelector("input",form);var radioButtons=[];for(var i=0;i<inputElements.length;i++){if(inputElements[i].type==="radio"){radioButtons.push(inputElements[i])}}return radioButtons
}function getCheckedRadioGroups(buttons){var checkedRadioGroups=[];for(var i=0;i<buttons.length;i++){if(buttons[i].checked){checkedRadioGroups[buttons[i].name]=true}}return checkedRadioGroups}function getDropDowns(){var form=document.getElementById("poll-submission-form");return guardian.r2.dom.element.getElementsByCssSelector("select",form)}function convertKeysToList(map){var list=[];for(var key in map){if(map.hasOwnProperty(key)){list.push(key)}}return list}};var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");
AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);
/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/
return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");
J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){if(J.parentNode){J.parentNode.removeChild(J)}E()}}function E(){if(e){return }if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return }}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;
if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"
}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u
}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){if(AE[AA]!=Object.prototype[AA]){AD+='<param name="'+AA+'" value="'+AE[AA]+'" />'}}v.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>";i[i.length]=AG.id;q=C(AG.id)}else{if(h.webkit&&h.webkit<312){var AC=a("embed");AC.setAttribute("type",P);for(var z in AG){if(AG[z]!=Object.prototype[z]){if(z.toLowerCase()=="data"){AC.setAttribute("src",AG[z])}else{if(z.toLowerCase()=="styleclass"){AC.setAttribute("class",AG[z])}else{if(z.toLowerCase()!="classid"){AC.setAttribute(z,AG[z])}}}}}for(var y in AE){if(AE[y]!=Object.prototype[y]){if(y.toLowerCase()!="movie"){AC.setAttribute(y,AE[y])}}}v.parentNode.replaceChild(AC,v);
q=AC}else{var u=a(Q);u.setAttribute("type",P);for(var x in AG){if(AG[x]!=Object.prototype[x]){if(x.toLowerCase()=="styleclass"){u.setAttribute("class",AG[x])}else{if(x.toLowerCase()!="classid"){u.setAttribute(x,AG[x])}}}}for(var w in AE){if(AE[w]!=Object.prototype[w]&&w.toLowerCase()!="movie"){F(u,w,AE[w])}}v.parentNode.replaceChild(u,v);q=u}}}return q}function F(t,q,r){var u=a("param");u.setAttribute("name",q);u.setAttribute("value",r);t.appendChild(u)}function X(r){var q=C(r);if(q&&(q.nodeName=="OBJECT"||q.nodeName=="EMBED")){if(h.ie&&h.win){if(q.readyState==4){B(r)}else{j.attachEvent("onload",function(){B(r)})}}else{q.parentNode.removeChild(q)}}}function B(t){var r=C(t);if(r){for(var q in r){if(typeof r[q]=="function"){r[q]=null}}r.parentNode.removeChild(r)}}function C(t){var q=null;try{q=K.getElementById(t)}catch(r){}return q}function a(q){return K.createElement(q)}function I(t,q,r){t.attachEvent(q,r);d[d.length]=[t,q,r]}function c(t){var r=h.pv,q=t.split(".");q[0]=parseInt(q[0],10);
q[1]=parseInt(q[1],10)||0;q[2]=parseInt(q[2],10)||0;return(r[0]>q[0]||(r[0]==q[0]&&r[1]>q[1])||(r[0]==q[0]&&r[1]==q[1]&&r[2]>=q[2]))?true:false}function V(v,r){if(h.ie&&h.mac){return }var u=K.getElementsByTagName("head")[0],t=a("style");t.setAttribute("type","text/css");t.setAttribute("media","screen");if(!(h.ie&&h.win)&&typeof K.createTextNode!=b){t.appendChild(K.createTextNode(v+" {"+r+"}"))}u.appendChild(t);if(h.ie&&h.win&&typeof K.styleSheets!=b&&K.styleSheets.length>0){var q=K.styleSheets[K.styleSheets.length-1];if(typeof q.addRule==Q){q.addRule(v,r)}}}function W(t,q){var r=q?"visible":"hidden";if(e&&C(t)){C(t).style.visibility=r}else{V("#"+t,"visibility:"+r)}}function g(s){var r=/[\\\"<>\.;]/;var q=r.exec(s)!=null;return q?encodeURIComponent(s):s}var D=function(){if(h.ie&&h.win){window.attachEvent("onunload",function(){var w=d.length;for(var v=0;v<w;v++){d[v][0].detachEvent(d[v][1],d[v][2])}var t=i.length;for(var u=0;u<t;u++){X(i[u])}for(var r in h){h[r]=null}h=null;for(var q in swfobject){swfobject[q]=null
}swfobject=null})}}();return{registerObject:function(u,q,t){if(!h.w3cdom||!u||!q){return }var r={};r.id=u;r.swfVersion=q;r.expressInstall=t?t:false;N[N.length]=r;W(u,false)},getObjectById:function(v){var q=null;if(h.w3cdom){var t=C(v);if(t){var u=t.getElementsByTagName(Q)[0];if(!u||(u&&typeof t.SetVariable!=b)){q=t}else{if(typeof u.SetVariable!=b){q=u}}}}return q},embedSWF:function(x,AE,AB,AD,q,w,r,z,AC){if(!h.w3cdom||!x||!AE||!AB||!AD||!q){return }AB+="";AD+="";if(c(q)){W(AE,false);var AA={};if(AC&&typeof AC===Q){for(var v in AC){if(AC[v]!=Object.prototype[v]){AA[v]=AC[v]}}}AA.data=x;AA.width=AB;AA.height=AD;var y={};if(z&&typeof z===Q){for(var u in z){if(z[u]!=Object.prototype[u]){y[u]=z[u]}}}if(r&&typeof r===Q){for(var t in r){if(r[t]!=Object.prototype[t]){if(typeof y.flashvars!=b){y.flashvars+="&"+t+"="+r[t]}else{y.flashvars=t+"="+r[t]}}}}f(function(){U(AA,y,AE);if(AA.id==AE){W(AE,true)}})}else{if(w&&!A&&c("6.0.65")&&(h.win||h.mac)){A=true;W(AE,false);f(function(){var AF={};AF.id=AF.altContentId=AE;
AF.width=AB;AF.height=AD;AF.expressInstall=w;k(AF)})}}},getFlashPlayerVersion:function(){return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}},hasFlashPlayerVersion:c,createSWF:function(t,r,q){if(h.w3cdom){return U(t,r,q)}else{return undefined}},removeSWF:function(q){if(h.w3cdom){X(q)}},createCSS:function(r,q){if(h.w3cdom){V(r,q)}},addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v){var u=K.location.search||K.location.hash;if(v==null){return g(u)}if(u){var t=u.substring(1).split("&");for(var r=0;r<t.length;r++){if(t[r].substring(0,t[r].indexOf("="))==v){return g(t[r].substring((t[r].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(A&&M){var q=C(m);if(q){q.parentNode.replaceChild(M,q);if(l){W(l,true);if(h.ie&&h.win){M.style.display="block"}}M=null;l=null;A=false}}}}}();var TrimPath;(function(){if(TrimPath==null){TrimPath=new Object()}if(TrimPath.evalEx==null){TrimPath.evalEx=function(src){return eval(src)}}var UNDEFINED;if(Array.prototype.pop==null){Array.prototype.pop=function(){if(this.length===0){return UNDEFINED
}return this[--this.length]}}if(Array.prototype.push==null){Array.prototype.push=function(){for(var i=0;i<arguments.length;++i){this[this.length]=arguments[i]}return this.length}}TrimPath.parseTemplate=function(tmplContent,optTmplName,optEtc){if(optEtc==null){optEtc=TrimPath.parseTemplate_etc}var funcSrc=parse(tmplContent,optTmplName,optEtc);var func=TrimPath.evalEx(funcSrc,optTmplName,1);if(func!=null){return new optEtc.Template(optTmplName,tmplContent,funcSrc,func,optEtc)}return null};try{String.prototype.process=function(context,optFlags){var template=TrimPath.parseTemplate(this,null);if(template!=null){return template.process(context,optFlags)}return this}}catch(e){}TrimPath.parseTemplate_etc={};TrimPath.parseTemplate_etc.statementTag="forelse|for|if|elseif|else|var|macro";TrimPath.parseTemplate_etc.statementDef={"if":{delta:1,prefix:"if (",suffix:") {",paramMin:1},"else":{delta:0,prefix:"} else {"},elseif:{delta:0,prefix:"} else if (",suffix:") {",paramDefault:"true"},"/if":{delta:-1,prefix:"}"},"for":{delta:1,paramMin:3,prefixFunc:function(stmtParts,state,tmplName,etc){if(stmtParts[2]!="in"){throw new etc.ParseError(tmplName,state.line,"bad for loop statement: "+stmtParts.join(" "))
}var iterVar=stmtParts[1];var listVar="__LIST__"+iterVar;return["var ",listVar," = ",stmtParts[3],";","var __LENGTH_STACK__;","if (typeof(__LENGTH_STACK__) == 'undefined' || !__LENGTH_STACK__.length) __LENGTH_STACK__ = new Array();","__LENGTH_STACK__[__LENGTH_STACK__.length] = 0;","if ((",listVar,") != null) { ","var ",iterVar,"_ct = 0;","for (var ",iterVar,"_index in ",listVar,") { ",iterVar,"_ct++;","if (typeof(",listVar,"[",iterVar,"_index]) == 'function') {continue;}","__LENGTH_STACK__[__LENGTH_STACK__.length - 1]++;","var ",iterVar," = ",listVar,"[",iterVar,"_index];"].join("")}},forelse:{delta:0,prefix:"} } if (__LENGTH_STACK__[__LENGTH_STACK__.length - 1] == 0) { if (",suffix:") {",paramDefault:"true"},"/for":{delta:-1,prefix:"} }; delete __LENGTH_STACK__[__LENGTH_STACK__.length - 1];"},"var":{delta:0,prefix:"var ",suffix:";"},macro:{delta:1,prefixFunc:function(stmtParts,state,tmplName,etc){var macroName=stmtParts[1].split("(")[0];return["var ",macroName," = function",stmtParts.slice(1).join(" ").substring(macroName.length),"{ var _OUT_arr = []; var _OUT = { write: function(m) { if (m) _OUT_arr.push(m); } }; "].join("")
}},"/macro":{delta:-1,prefix:" return _OUT_arr.join(''); };"}};TrimPath.parseTemplate_etc.modifierDef={eat:function(v){return""},escape:function(s){return String(s).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},capitalize:function(s){return String(s).toUpperCase()},"default":function(s,d){return s!=null?s:d}};TrimPath.parseTemplate_etc.modifierDef.h=TrimPath.parseTemplate_etc.modifierDef.escape;TrimPath.parseTemplate_etc.Template=function(tmplName,tmplContent,funcSrc,func,etc){this.process=function(context,flags){if(context==null){context={}}if(context._MODIFIERS==null){context._MODIFIERS={}}if(context.defined==null){context.defined=function(str){return(context[str]!=undefined)}}for(var k in etc.modifierDef){if(context._MODIFIERS[k]==null){context._MODIFIERS[k]=etc.modifierDef[k]}}if(flags==null){flags={}}var resultArr=[];var resultOut={write:function(m){resultArr.push(m)}};try{func(resultOut,context,flags)}catch(e){if(flags.throwExceptions==true){throw e}var result=new String(resultArr.join("")+"[ERROR: "+e.toString()+(e.message?"; "+e.message:"")+"]");
result.exception=e;return result}return resultArr.join("")};this.name=tmplName;this.source=tmplContent;this.sourceFunc=funcSrc;this.toString=function(){return"TrimPath.Template ["+tmplName+"]"}};TrimPath.parseTemplate_etc.ParseError=function(name,line,message){this.name=name;this.line=line;this.message=message};TrimPath.parseTemplate_etc.ParseError.prototype.toString=function(){return("TrimPath template ParseError in "+this.name+": line "+this.line+", "+this.message)};var parse=function(body,tmplName,etc){body=cleanWhiteSpace(body);var funcText=["var TrimPath_Template_TEMP = function(_OUT, _CONTEXT, _FLAGS) { with (_CONTEXT) {"];var state={stack:[],line:1};var endStmtPrev=-1;while(endStmtPrev+1<body.length){var begStmt=endStmtPrev;begStmt=body.indexOf("{",begStmt+1);while(begStmt>=0){var endStmt=body.indexOf("}",begStmt+1);var stmt=body.substring(begStmt,endStmt);var blockrx=stmt.match(/^\{(cdata|minify|eval)/);if(blockrx){var blockType=blockrx[1];var blockMarkerBeg=begStmt+blockType.length+1;
var blockMarkerEnd=body.indexOf("}",blockMarkerBeg);if(blockMarkerEnd>=0){var blockMarker;if(blockMarkerEnd-blockMarkerBeg<=0){blockMarker="{/"+blockType+"}"}else{blockMarker=body.substring(blockMarkerBeg+1,blockMarkerEnd)}var blockEnd=body.indexOf(blockMarker,blockMarkerEnd+1);if(blockEnd>=0){emitSectionText(body.substring(endStmtPrev+1,begStmt),funcText);var blockText=body.substring(blockMarkerEnd+1,blockEnd);if(blockType=="cdata"){emitText(blockText,funcText)}else{if(blockType=="minify"){emitText(scrubWhiteSpace(blockText),funcText)}else{if(blockType=="eval"){if(blockText!=null&&blockText.length>0){funcText.push("_OUT.write( (function() { "+blockText+" })() );")}}}}begStmt=endStmtPrev=blockEnd+blockMarker.length-1}}}else{if(body.charAt(begStmt-1)!="$"&&body.charAt(begStmt-1)!="\\"){var offset=(body.charAt(begStmt+1)=="/"?2:1);if(body.substring(begStmt+offset,begStmt+10+offset).search(TrimPath.parseTemplate_etc.statementTag)==0){break}}}begStmt=body.indexOf("{",begStmt+1)}if(begStmt<0){break
}var endStmt=body.indexOf("}",begStmt+1);if(endStmt<0){break}emitSectionText(body.substring(endStmtPrev+1,begStmt),funcText);emitStatement(body.substring(begStmt,endStmt+1),state,funcText,tmplName,etc);endStmtPrev=endStmt}emitSectionText(body.substring(endStmtPrev+1),funcText);if(state.stack.length!=0){throw new etc.ParseError(tmplName,state.line,"unclosed, unmatched statement(s): "+state.stack.join(","))}funcText.push("}}; TrimPath_Template_TEMP");return funcText.join("")};var emitStatement=function(stmtStr,state,funcText,tmplName,etc){var parts=stmtStr.slice(1,-1).split(" ");var stmt=etc.statementDef[parts[0]];if(stmt==null){emitSectionText(stmtStr,funcText);return }if(stmt.delta<0){if(state.stack.length<=0){throw new etc.ParseError(tmplName,state.line,"close tag does not match any previous statement: "+stmtStr)}state.stack.pop()}if(stmt.delta>0){state.stack.push(stmtStr)}if(stmt.paramMin!=null&&stmt.paramMin>=parts.length){throw new etc.ParseError(tmplName,state.line,"statement needs more parameters: "+stmtStr)
}if(stmt.prefixFunc!=null){funcText.push(stmt.prefixFunc(parts,state,tmplName,etc))}else{funcText.push(stmt.prefix)}if(stmt.suffix!=null){if(parts.length<=1){if(stmt.paramDefault!=null){funcText.push(stmt.paramDefault)}}else{for(var i=1;i<parts.length;i++){if(i>1){funcText.push(" ")}funcText.push(parts[i])}}funcText.push(stmt.suffix)}};var emitSectionText=function(text,funcText){if(text.length<=0){return }var nlPrefix=0;var nlSuffix=text.length-1;while(nlPrefix<text.length&&(text.charAt(nlPrefix)=="\n")){nlPrefix++}while(nlSuffix>=0&&(text.charAt(nlSuffix)==" "||text.charAt(nlSuffix)=="\t")){nlSuffix--}if(nlSuffix<nlPrefix){nlSuffix=nlPrefix}if(nlPrefix>0){funcText.push('if (_FLAGS.keepWhitespace == true) _OUT.write("');var s=text.substring(0,nlPrefix).replace("\n","\\n");if(s.charAt(s.length-1)=="\n"){s=s.substring(0,s.length-1)}funcText.push(s);funcText.push('");')}var lines=text.substring(nlPrefix,nlSuffix+1).split("\n");for(var i=0;i<lines.length;i++){emitSectionTextLine(lines[i],funcText);
if(i<lines.length-1){funcText.push('_OUT.write("\\n");\n')}}if(nlSuffix+1<text.length){funcText.push('if (_FLAGS.keepWhitespace == true) _OUT.write("');var s=text.substring(nlSuffix+1).replace("\n","\\n");if(s.charAt(s.length-1)=="\n"){s=s.substring(0,s.length-1)}funcText.push(s);funcText.push('");')}};var emitSectionTextLine=function(line,funcText){var endMarkPrev="}";var endExprPrev=-1;while(endExprPrev+endMarkPrev.length<line.length){var begMark="${",endMark="}";var begExpr=line.indexOf(begMark,endExprPrev+endMarkPrev.length);if(begExpr<0){break}if(line.charAt(begExpr+2)=="%"){begMark="${%";endMark="%}"}var endExpr=line.indexOf(endMark,begExpr+begMark.length);if(endExpr<0){break}emitText(line.substring(endExprPrev+endMarkPrev.length,begExpr),funcText);var exprArr=line.substring(begExpr+begMark.length,endExpr).replace(/\|\|/g,"#@@#").split("|");for(var k in exprArr){if(exprArr[k].replace){exprArr[k]=exprArr[k].replace(/#@@#/g,"||")}}funcText.push("_OUT.write(");emitExpression(exprArr,exprArr.length-1,funcText);
funcText.push(");");endExprPrev=endExpr;endMarkPrev=endMark}emitText(line.substring(endExprPrev+endMarkPrev.length),funcText)};var emitText=function(text,funcText){if(text==null||text.length<=0){return }text=text.replace(/\\/g,"\\\\");text=text.replace(/\n/g,"\\n");text=text.replace(/"/g,'\\"');funcText.push('_OUT.write("');funcText.push(text);funcText.push('");')};var emitExpression=function(exprArr,index,funcText){var expr=exprArr[index];if(index<=0){funcText.push(expr);return }var parts=expr.split(":");funcText.push('_MODIFIERS["');funcText.push(parts[0]);funcText.push('"](');emitExpression(exprArr,index-1,funcText);if(parts.length>1){funcText.push(",");funcText.push(parts[1])}funcText.push(")")};var cleanWhiteSpace=function(result){result=result.replace(/\t/g,"    ");result=result.replace(/\r\n/g,"\n");result=result.replace(/\r/g,"\n");result=result.replace(/^(\s*\S*(\s+\S+)*)\s*$/,"$1");return result};var scrubWhiteSpace=function(result){result=result.replace(/^\s+/g,"");result=result.replace(/\s+$/g,"");
result=result.replace(/\s+/g," ");result=result.replace(/^(\s*\S*(\s+\S+)*)\s*$/,"$1");return result};TrimPath.parseDOMTemplate=function(elementId,optDocument,optEtc){if(optDocument==null){optDocument=document}var element=optDocument.getElementById(elementId);var content=element.value;if(content==null){content=element.innerHTML}content=content.replace(/&lt;/g,"<").replace(/&gt;/g,">");return TrimPath.parseTemplate(content,elementId,optEtc)};TrimPath.processDOMTemplate=function(elementId,context,optFlags,optDocument,optEtc){return TrimPath.parseDOMTemplate(elementId,optDocument,optEtc).process(context,optFlags)}})();ensurePackage("guardian.r2");guardian.r2.sectionColours={news:"#ab1700",sport:"#3a7d00",comment:"#ff3a00",culture:"#a7006f",business:"#3246ab",money:"#8f1ab6",lifeandstyle:"#c93900",travel:"#066ec9",environment:"#4a7801","guardian-careers":"#0061A6"};
