var patina = new Object();
patina.cookie = new Object();
function patina_setcookie(value){
 var internal_date = new Date();
 var expires = new Date(internal_date.getTime() + 5184000000); // today + 60 days
 patina.cookie[patina.id] = patina.state.join('');
 var string='';
 for(i in patina.cookie)if(patina.cookie[i])string+=i+":"+patina.cookie[i]+",";
 document.cookie = "BBCpatina="+string+'; expires=' + expires.toGMTString() +';path=/;domain=.bbc.co.uk';
}

function patina_getcookie(){
 var name="BBCpatina";
 var cc="; "+document.cookie+";";
 var start=cc.lastIndexOf('; '+name+'=');
 if (start<0) return "";
 start += name.length+3;
 end = cc.indexOf(';', start);
 var cookiestring=unescape(cc.substring(start,end));
 cookiestring=','+cookiestring;
 var cookiearray = cookiestring.split(',');
 for (var i=0;i<cookiearray.length;i++) {
  var pair = cookiearray[i].split(":");
  patina.cookie[pair[0]] = pair[1];
 }
 return(patina.cookie[patina.id]);
}

function patina_load(){
if(patina.good)for (i=document.links.length;i-- >0;)if(!document.links[i].onclick)document.links[i].onclick=patina_onclick;
}

function patina_do(id){
 if(patina.good) {
  var n=patina.lookup2[id];
  if(n||n==0){
    if(patina.state[n]==9) return false;
    var r=parseInt(patina.lookup.length*Math.random());
    var p=0;
    while(patina.state[r]==0||r==n) r=parseInt(patina.lookup.length*Math.random());
    patina.state[r]--;
    patina.state[n]++;
    patina_setcookie();
 }}
 return false;
}

function patina_onclick(e){
 if(patina.good){
  e=(e)?e:event;
  var d=e.srcElement;
  d=(d)?d:e.target;
  var td;
  while(d&&d.parentNode){
   if((d.tagName=='TD')&&(d.id)){
    td=d;
    d=null;
   }else{
    d=d.parentNode;
  }}
  if(td&&td.tagName=='TD') patina_do(td.id);
  return true;
}}

function patina_display(){
 if(patina.good)for(i=patina.state.length;i-- >0;)patina.rules[10+i].style.background=patina.colors[patina.state[i]];
}

function patina_init(id,start){
 patina.good=(document.styleSheets)?1:0;
 var agent=navigator.userAgent.toLowerCase();
 if((parseInt(navigator.appVersion)==4)&&(agent.indexOf("msie 4")!=-1)&&(agent.indexOf("mac")!=-1)){patina.good=0};
 if(patina.good){
  patina.id=id;
  patina.css=document.styleSheets[document.styleSheets.length-1];
  if(patina.css.cssRules) patina.rules=patina.css.cssRules;
  else if (patina.css.rules) patina.rules=patina.css.rules;
  patina.startstate=start.split('');
  patina.colors=new Array();
  patina.lookup=new Array();
  patina.lookup2=new Object();

  for(i=arguments.length;i-- >2;)patina.lookup[i-2]=arguments[i];

  var statestring=patina_getcookie();
  if(!statestring) patina.state=patina.startstate;
  else patina.state=statestring.split('');

  for(i=10;i-- >0;)patina.colors[i]=patina.rules[i].style.backgroundColor;
  for(i=patina.lookup.length;i-- >0;){
   patina.lookup2[patina.lookup[i]]=i;
   if(!patina.state[i]) patina.state[i]=patina.startstate[i];
  }
  patina_setcookie();
  patina_display();
}}