//file minified via http://jscompress.com/
if(!AjaxBaseUrl){
	 var AjaxBaseUrl = AjaxBaseUrl+'';
}
if(!liveSite)
{
  var liveSite = "";
}
var fPos = 0;
var lbh = 0;

function LoadMeetingHeader(xDatum, xClub){
	xDatum = new String(xDatum).replace(/\//gi,"");//Sanitise the date
	if( xDatum.length == 7){
		xDatum = '0'+xDatum;
	}
	var DT = $P.mktime(0,0,0,xDatum.substr(2,2), xDatum.substr(0,2),xDatum.substr(4));

	$P.date("dS M Y", DT);
	//var HeaderTPL = new Template("<tr><td valign='top'><h2>#{ClubName}</h2><h4>#{RaceDate}</h4></td><td rowspan='5' valign='top' align='right'><a href='#{ImageName}' rel='lightbox' title='Track Diagram. Click to Enlarge'><img src='#{ImageNameTrimmed}' alt='#{ClubName}'  width='280' id='clubimage' border='0'/></a></td></tr><tr><td>#{ClubAddress}</td></tr><tr><td class='tdsmall'><b>Racetrack:</b> #{CourseDescription}</td></tr><tr><td valign='top' class='tdsmall'><b>Best Draws:</b> #{DrawDescription}</td></tr><tr><td valign='top' class='tdsmall'><b>Top 5 Trainers:</b> #{Top5Trainers}</td></tr><tr><td valign='top' class='tdsmall'><b>Top 5 Jockeys:</b> #{Top5Jocks}</td></tr>");
	var HeaderTPL = new Template("<tr><td valign='top'><h2>#{ClubName}</h2><h4>#{RaceDate}</h4></td><td rowspan='5' valign='top' align='right'><a href='#{ImageName}' rel='lightbox' title='Track Diagram. Click to Enlarge'><img src='#{ImageNameTrimmed}' alt='#{ClubName}'  width='280' id='clubimage' border='0'/></a></td></tr><tr><td>#{ClubAddress}</td></tr><tr><td class='tdsmall'><b>Racetrack:</b> #{CourseDescription}</td></tr><tr><td valign='top' class='tdsmall'><b>Best Draws:</b> #{DrawDescription}</td></tr>");

	new Ajax.Request(AjaxBaseUrl+'GETMEETINGVENUE:'+xDatum+":"+xClub,{
		onSuccess: function(transport){
			response = eval(transport.responseText);
			response[0].RaceDate = $P.date("d M Y", DT);
			response[0].ImageName = GetTrackImage(response[0].ClubName);
			response[0].ImageNameTrimmed = $P.str_replace(".png", "_trimmed.png", response[0].ImageName);
			response[0].Turn = $P.ucwords($P.strtolower(response[0].Turn));
			var Body = HeaderTPL.evaluate(response[0]);
			$('faketabarea').innerHTML = '<table>'+Body+'<tr><td colspan="3">';
			BuildTabScaffolds(xDatum, xClub);
			$('faketabarea').innerHTML += "</td></tr></table>";
			window.open('#' + btoa("LoadMeetingHeader('"+xDatum+"', "+xClub+");"), '_self');
			$('page_hash').value = btoa("LoadMeetingHeader('"+xDatum+"', "+xClub+");");
		},
		onFailure: function(){
			if($('debug')){
				$('debug').innerHTML += 'LoadMeetingHeader Failed\n';
			}
		}
	});
}

//Once header has loaded, build the tab scaffolds
function BuildTabScaffolds(xDatum, xClub){
	
	var counter = 0;
	var TabTemplate = new Template("<a href='javascript:return false;' class='tab' onmousedown='return event.returnValue = showPanel(\""+xDatum+"\","+xClub+",#{Counter}, \"panel#{Counter}\",\"tab#{Counter}\");' id='tab#{Counter}' onclick='return false;'>#{Title}</a>");

	new Ajax.Request(AjaxBaseUrl+'GETEVENTTIMES:'+xDatum+":"+xClub,{
		onSuccess: function(transport){
			try{
				response = eval(transport.responseText);
				var Output = "<div id='tabs'>";
				var Data = TabTemplate.evaluate({Title:"<br/>Events",Counter:"0"});
				for(counter = 0; counter < response.length; counter++){
					response[counter].Title = "Race " + response[counter].RaceNumber + "<br/>" + response[counter].RaceTime.substr(0,2) + "h" +  response[counter].RaceTime.substr(2);
					response[counter].Counter = counter + 1;
					Data += TabTemplate.evaluate(response[counter]);
				}
				Output += Data;

				/*Changes Panel*/
				counter++;
				Output += TabTemplate.evaluate({Title:"Card<br/>Changes",Counter:counter});

				Output += "</div>";
				Output += "<div class='panel' id='panel0'></div>";
				for(counter = 1; counter <= response.length; counter++){
					Output += "<div class='panel' id='panel" + counter+"'></div>";
				}
				/*Changes Panel*/
				Output += "<div class='panel' id='panel" + counter+"'></div>";

				$('faketabarea').innerHTML += Output;

				loadmeetingfixtures(xDatum, xClub);
				var offset = $('tab0').cumulativeOffset();
				var height = $('tab0').offsetHeight;
				var cTop = offset.top+height;
				$('panel0').setStyle({top: cTop+'px'});
				$('panel0').setStyle({left:offset.left+'px'});

				for(counter = 1; counter <= response.length; counter++){
					$('panel'+counter).hide();
				}
				/*Changes Panel*/
				$('panel'+counter).hide();
				$('panel0').show();
			}
			catch(ex){
				if($('debug')){
					$('debug').innerHTML += ex.toString()+'\n';
				}
			}
		}
	});
}

//Populate tab0 with the events for the meetings
function loadmeetingfixtures(xDatum, xClub){
	var URI =AjaxBaseUrl+'GETMEETINGFIXTURES:' + xDatum + ':' + xClub;
	var Output = "";
	var DT = new Date(xDatum.substr(4), xDatum.substr(2,2)-1, xDatum.substr(0,2));
	var Counter = 0;
	new Ajax.Request(URI,
  {
		onSuccess: function(transport){
			try{
				var response = eval(transport.responseText)|| "no response text";
				Output += "<tr><th style='text-align:left;'>Race</th><th style='text-align:left;'>Time</th><th style='text-align:left;'>Distance</th><th style='text-align:left;'>Stake</th><th>Type</th><th style='text-align:left;'>Description</th><th></th></tr>";
				PageTemplate = new Template('<tr><td >#{RaceNumber}</td><td>#{Time}</td><td>#{Distance}m</td><td>#{Stake}</td><td>#{Class}</td><td>#{Name}</td><td><a onclick="return false;" onmousedown="return event.returnValue = showPanel(\''+xDatum+'\', '+xClub+', #{loopCounter}, \'panel#{loopCounter}\', \'tab#{loopCounter}\')" href="" style=\"font-weight:bold;\">View</a></td></tr><tr><td colspan=\"7\" class=\"paddingTD\"></td></tr>');
				for(var i =0; i< response.length; i++){
					response[i].Time = response[i].Time.substr(0,2)+'h'+response[i].Time.substr(2);
					//response[i].Stake = new Number(response[i].Stake).toFixed(0);
					response[i].loopCounter = i+1;
					Output += PageTemplate.evaluate(response[i]);
					if($('debug')){
						$('debug').innerHTML += PageTemplate.evaluate(response[i]);
					}
				}

				$('panel0').innerHTML = "<table align='center'	>"+Output+"</table>";
				$('tab0').style.backgroundColor = 'white';
				$('tab0').style.paddingTop = '6px';
				$('tab0').style.marginTop = '0px';
			}
			catch(ex){
				if($('debug')){
					$('debug').innerHTML += ex.toString()+'\n';
				}
			}
		},
		onFailure: function(){
			alert("Could not retrieve race records");
		}
	});
}

//Load the tab data
function showPanel(Datum, Club, RaceNumber, Target, Tab){
			fPos = 0;
			lbh = 0;
			var maxTab = 0;
      var selectedTab = Tab;
			$(selectedTab).style.backgroundColor = 'white';
			$(selectedTab).style.paddingTop = '6px';
      $(selectedTab).style.marginTop = '0px';
			//$(selectedTab).setStyle({backgroundImage:"url(../images/tab-active.jpg)", backgroundRepeat:"no-repeat", backgroundPosition:"center bottom"});

			for(i = 0; i < 20; i++){
				var tname = "tab"+i;
				if($(tname)){
					maxTab = i;
					if(tname != selectedTab){
						$(tname).style.backgroundColor = '';
						$(tname).style.paddingTop = '';
						$(tname).style.marginTop = '4px';
					}
				}
			}
			if(Tab == "tab"+maxTab){
				cardChanges(Datum, Club, Target);
			}
			else if(Tab != "tab0"){
				LoadRace(Datum, Club, RaceNumber, Target);
			}

			for(i = 0; i < 20; i++){
				tname = "panel"+i;
				if($(tname)){
					if(tname == Target){
						var offset = $('tab0').cumulativeOffset();
						var height = $('tab0').offsetHeight;
						var cTop = offset.top+height;
						$(tname).setStyle({top: cTop+'px'});
						$(tname).setStyle({left:offset.left+'px'});
						$(tname).appear({duration: 3.0});
					}
					else{
						$(tname).hide();
					}
				}
			}
			window.open('#' + btoa("showPanel('"+Datum+"', "+Club+", "+RaceNumber+", '"+Target+"', '"+Tab+"');"), '_self');
			$('page_hash').value = btoa("showPanel('"+Datum+"', "+Club+", "+RaceNumber+", '"+Target+"', '"+Tab+"');");
			return false;
}

function LoadRace(xDatum, xClub, xRaceNumber, Target){
	clearElement(Target);
	xDatum = new String(xDatum).replace(/\//gi,"");
	var URI = AjaxBaseUrl+'GETMEETINGRACE:' + xDatum + ':' + xClub + ':' + xRaceNumber;
	var Output = "";
	var DT = new Date(xDatum.substr(4), xDatum.substr(2,2)-1, xDatum.substr(0,2));
	if(xClub < 1000){
		Output +="<tr><th rowspan='2' class='thHuge'>#{RaceNumber}</th><th colspan='14' align='left' class='thLarger'>#{RaceTime} #{RaceName}</th><th align='right'>#{RaceDistance}m</th></tr>";
		Output +="<tr><th colspan='13' align='left' class='thLarge'>(#{RaceDescription}) <em>#{TrackDir}</em> Class #{CGrade}<th align='right' colspan='2'>#{Stake}</th></tr>";
		Output +="<tr><th colspan='16' align='left' class='thLarge'><em>#{Couplings}</em></th></tr>";
		Output +="<tr><th colspan='16' align='left' class='thLarge'>Prize Money: #{PrizeMoney}</th></tr>";
		Output +="<tr><th colspan='16' align='left' class='thLarge'><u><font color = 'red'>Draw</font></u> Wins/Runs: <span>#{DrawStats}</span></th></tr>";
	}
	else{
		Output +="<tr><th colspan='16' align='left' class='thLarge'>#{ClubName}</th></tr>";
	}
	Output += "<tbody id='"+Target+"_Header'></tbody>";
	Output +="<tr><th colspan='16'>&nbsp;</th></tr>";
	Output += "<tbody id='"+Target+"_RunnerBody'></tbody>";
	Output +="<tr><th colspan='16'>&nbsp;</th></tr>";
	Output += "<tbody id='"+Target+"_ScratchingsBody'></tbody>";
	Output +="<tr><th colspan='16'>&nbsp;</th></tr>";
	Output += "<tbody id='"+Target+"_ReserveBody'></tbody>";
  Output +="<tr><th colspan='16'>&nbsp;</th></tr>";
	Output += "<tbody id='"+Target+"_CFLBody'></tbody>";
	Output +="<tr><th colspan='16'>&nbsp;</th></tr>";
	Output += "<tbody id='"+Target+"_DIVSBody'></tbody>";

	$(Target).innerHTML = "<table align='center' border='0' >"+Output+"</table>";

	if(xClub < 1000){
		new Ajax.Request(URI,
		{
			onSuccess: function(transport){
				response = eval(transport.responseText);
				Output = new Template($(Target).innerHTML);
				response[0].RaceTime = response[0].RaceTime.substr(0,2)+':'+response[0].RaceTime.substr(2);
				response[0].Couplings = $P.str_replace(',',' &amp; ',response[0].Couplings);
				$(Target).innerHTML = Output.evaluate(response[0]);
			}
		});
	}
	else{
		new Ajax.Request(AjaxBaseUrl+'VENUENAME:' + xClub,
		{
			onSuccess: function(transport){
				response = eval(transport.responseText);
				Output = new Template($(Target).innerHTML);
				OutputData = Output.evaluate(response[0]);
				$(Target).innerHTML = OutputData;
			}
		});
	}

	new Ajax.Request(AjaxBaseUrl+'GETMEETINGRUNNERS:' + xDatum + ':' + xClub + ':' + xRaceNumber+':F',
  {
		onSuccess: function(transport){
      displayResponse(eval(transport.responseText),Target,'_RunnerBody', xDatum, xClub, xRaceNumber, 'F');
		}
	});

	new Ajax.Request(AjaxBaseUrl+'GETMEETINGRUNNERS:' + xDatum + ':' + xClub + ':' + xRaceNumber+':L', {
		onSuccess: function(transport){
			displayResponse(eval(transport.responseText),Target,'_ScratchingsBody', xDatum, xClub, xRaceNumber, 'L');
		}
	});

	new Ajax.Request(AjaxBaseUrl+'GETMEETINGRUNNERS:' + xDatum + ':' + xClub + ':' + xRaceNumber+':R',
  {
		onSuccess: function(transport){
			displayResponse(eval(transport.responseText),Target,'_ReserveBody', xDatum, xClub, xRaceNumber, 'R');
		}
	});
	
	new Ajax.Request(AjaxBaseUrl+'GETCFL:' + xDatum +':'+ xClub+':'+xRaceNumber, {
		onSuccess: function(transport){
			var data = eval(transport.responseText);
			var row = $(Target+'_CFLBody').insertRow(0);
			var rowdata = row.insertCell(0);
			$(Target+'_CFLBody').rows[0].cells[0].colSpan = '16';

			var tmp = "";
			for(i=0; i< data.length-1; i++)
      {
				tmp += data[i].Data;
			}

			rowdata.innerHTML = "<table class='cfltable' cellpadding='0' cellspacing='0' border='1'>" + tmp + "</table>";
			row = $(Target+'_CFLBody').insertRow(0);
			row.setAttribute('class','internalheader');
			row.setAttribute('className','internalheader');
			var Header = row.insertCell(0);
			$(Target+'_CFLBody').rows[0].cells[0].colSpan = '16';
			Header.innerHTML        = "Collateral Form Lines";
		}
	});
	
	new Ajax.Request(AjaxBaseUrl+'GETDIVS:' + xDatum +':'+ xClub+':'+xRaceNumber, {
		onSuccess: function(transport){
			var data = eval(transport.responseText);
			if(data.length){
				$(Target+'_CFLBody').hide();
				for(i = data.length-1; i>=0;i--){
					var row = $(Target+'_DIVSBody').insertRow(0);
					var desc 	= row.insertCell(0);
					var divs 	= row.insertCell(1);
					var sel 	= row.insertCell(2);
					desc.colSpan = '3';
					divs.colSpan = '2';
					sel.colSpan = '11';
					
					desc.innerHTML = data[i].LongDesc;
					divs.innerHTML = data[i].Dividends;
					sel.innerHTML = data[i].Selections;
				}
				row = $(Target+'_DIVSBody').insertRow(0);
				row.setAttribute('class','internalInfo');
				row.setAttribute('className','internalInfo');
				desc = row.insertCell(0);
				desc.colSpan = '3';
				divs = row.insertCell(1);
				divs.colSpan = '2';
				sel = row.insertCell(2);
				var buffer = row.insertCell(3);
				buffer.colSpan = '10';
				desc.innerHTML = "Bet-Type";
				divs.innerHTML = "Dividends";
				sel.innerHTML = "Selections";
				row = $(Target+'_DIVSBody').insertRow(0);
				row.setAttribute('class','internalheader');
				row.setAttribute('className','internalheader');
				var Header = row.insertCell(0);
				$(Target+'_DIVSBody').rows[0].cells[0].colSpan = '16';
				Header.innerHTML        = "Tote Dividends";
			}
		}
	});
}

function ShowLineageAndFormTooltip(xData, xHorseName, xType, xSeq, xDatum, xTrainer, xClub)//,  xName)
{
      var returnString = "";
      var headerString = "";
      $("popupdatabody").innerHTML ="";
      switch(xType)
      {
        case 1: headerString = 'Jockey'; break;
        case 2: headerString = 'Trainer';break;
        case 3: headerString = $P.ucwords($P.strtolower(xHorseName));break;
        default: headerString = '';break;
      }
      if(xTrainer && xTrainer !== null)
      {
        xDatum = xDatum+':'+xTrainer+':'+xClub;
      }
      new Ajax.Request(AjaxBaseUrl+'GETFORM:'+ xType +':' + xSeq +':' + xDatum,
      {
        onSuccess: function(transport)
        {
          var data = eval(transport.responseText);
          for(i=0; i< data.length;i++)
          {
            returnString += data[i].Data + '<br/>';
          }
          $("popupdatabody").innerHTML += xData + "<hr />";
          $("popupdatabody").innerHTML += "<pre>" + returnString + "</pre>";
          
          //--------------------------------------------------------------------------------------------------------------------------------------------
          if(xHorseName == null)
          {
              $("popupdataheader").innerHTML = "Breeding";
          }
          else
          {
              $("popupdataheader").innerHTML = xHorseName;
          }
          
          /*if(xType == 1 || xType == 2)
          {
            $("popupdata").style.width = "720px";
          }
          else
          {*/
            $("popupdata").style.width = "920px";
          //}
          showPopup();
          //--------------------------------------------------------------------------------------------------------------------------------------------
        }
      });
}

function ShowLineageToolTip(xData, xHorseName){
	if(xHorseName == null){
		$("popupdataheader").innerHTML = "Breeding";
	}
	else{
		$("popupdataheader").innerHTML = xHorseName;
	}
	$("popupdatabody").innerHTML = "<pre>" + xData + "</pre>";
	$("popupdata").style.width = "400px";
	showPopup();
}

function ShowFormTooltip(xType, xSeq, XDatum, xTrainer, xClub, xName){
	var returnString = "";
	var headerString = "";
	switch(xType){
		case 1: headerString = 'Jockey'; break;
		case 2: headerString = 'Trainer';break;
		case 3: headerString = $P.ucwords($P.strtolower(xName));break;
		default: headerString = '';break;
	}
	if(xTrainer && xTrainer !== null){
		XDatum = XDatum+':'+xTrainer+':'+xClub;
	}
	new Ajax.Request(AjaxBaseUrl+'GETFORM:'+ xType +':' + xSeq +':' + XDatum, {
		onSuccess: function(transport){
			var data = eval(transport.responseText);
			for(i=0; i< data.length;i++){
				returnString += data[i].Data + '<br/>';
			}
			$("popupdataheader").innerHTML = headerString + " Past Form";
			$("popupdatabody").innerHTML = "<pre>" + returnString + "</pre>";
			if(xType == 1 || xType == 2){
				$("popupdata").style.width = "720px";
			}
			else{
				$("popupdata").style.width = "920px";
			}
			showPopup();
			window.open('#' + btoa("ShowFormTooltip("+xType+", "+xSeq+", '"+XDatum+"', "+xTrainer+", "+xClub+", '"+xName+"');"), '_self');
			$('page_hash').value = btoa("ShowFormTooltip("+xType+", "+xSeq+", '"+XDatum+"', "+xTrainer+", "+xClub+", '"+xName+"');");
		}
	});
}

function getDocHeight()
{
    var D = document;
    return Math.max
    (
        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
    );
}

function getDocWidth()
{
    var D = document;
    return Math.max
    (
        Math.max(D.body.scrollWidth, D.documentElement.scrollWidth),
        Math.max(D.body.offsetWidth, D.documentElement.offsetWidth),
        Math.max(D.body.clientWidth, D.documentElement.clientWidth)
    );
}

function showPopup()
{
      var dim  = $("popupdata").getDimensions();
      var offsets = document.viewport.getScrollOffsets();
      
			$("popupdata").style.top = ( (document.viewport.getHeight()/2)  + offsets.top) - (dim.height/2) +'px';
			$("popupdata").style.left = ( (document.viewport.getWidth()/2) + offsets.left) - (dim.width/2) +'px';
			$("popupdata").appear();
			$("modaldiv").style.height = getDocHeight() + 'px';//document.viewport.getHeight()+'px';
			$("modaldiv").style.width =  getDocWidth() + 'px';//document.viewport.getWidth()+'px';
			$("modaldiv").appear({from:0.0, to: 0.5});
			$("popupclose").style.top = ( (document.viewport.getHeight()/2) + offsets.top) - (dim.height/2) - 16 + 'px';
			$("popupclose").style.left = ( (document.viewport.getWidth()/2) + offsets.left) - (dim.width/2) +  dim.width - 16 + 'px';
			$("popupclose").appear();
}

function ShowLast3RunsTip(xSeq){
	var returnString = "";
	new Ajax.Request(AjaxBaseUrl+'GETLAST3RWP:' + xSeq, {
		method : 'get',
		onSuccess: function(transport){
			var data = eval(transport.responseText);
			for(i=0; i< data.length;i++){
				returnString += data[i].Data + '<br/>';
			}
			$("popupdataheader").innerHTML =  "Last 3 Runs";
			$("popupdatabody").innerHTML = "<pre>" + returnString + "</pre>";
			$("popupdata").style.width = "800px";
			showPopup();
			window.open('#' + btoa("ShowLast3RunsTip("+xSeq+");"), '_self');
			$('page_hash').value = btoa("ShowLast3RunsTip("+xSeq+");");
		}
	});
}

function CollateralFormLines(xDatum, xClub, xRaceNumber){
	var returnString = "";
	new Ajax.Request(AjaxBaseUrl+'GETCFL:' + xDatum +':'+ xClub+':'+xRaceNumber, {
		onSuccess: function(transport){
			var data = eval(transport.responseText);
			for(i=0; i< data.length;i++){
				returnString += data[i].Data + '<br/>';
			}
			$("popupdataheader").innerHTML =  "Collateral Form Lines";
			$("popupdatabody").innerHTML = "<pre>" + returnString + "</pre>";
			$("popupdata").style.width = "1000px";
			$("popupdata").style.overflow = "scroll";
			showPopup();
		}
	});
}

function displayResponse(response, Target, bodyTarget, xDatum, xClub, xRaceNumber, Type){
  for(i = response.length-1; i>=0;i--){
				response[i].HorseLineage = response[i].HorseLineage.replace(/\'/g,"`");
				response[i].OwnerName = $P.str_replace("'","`",response[i].OwnerName);
				response[i].HorseName = $P.str_replace("'","`",response[i].HorseName);
				var TongueTies = "&nbsp;";
				if(response[i].Blinkers.length && (response[i].Blinkers.indexOf('T') >= 0 || response[i].Blinkers.indexOf('t') >= 0)){
					TongueTies = 't';
					response[i].Blinkers = response[i].Blinkers.replace(/\T/gi,"");
				}
				response[i].Blinkers = trim(response[i].Blinkers);
				if(!response[i].Blinkers.length){
					response[i].Blinkers = '&nbsp;';
				}
				var row = $(Target+bodyTarget).insertRow(0);
				var Silks = row.insertCell(0);
				var Saddle_Num = row.insertCell(1);
				var Horse = row.insertCell(2);
				var Age = row.insertCell(3);
				Age.setAttribute('align','center');
				var Colour = row.insertCell(4);
				Colour.setAttribute('align','center');
				var Sex = row.insertCell(5);
				Sex.setAttribute('align','center');
				var S = row.insertCell(6);
				var Ht = row.insertCell(7);
				var t = row.insertCell(8);
				var Kg = row.insertCell(9);
				var MR = row.insertCell(10);
				var RR = row.insertCell(11);
				var Jockey = row.insertCell(12);
				var Draw = row.insertCell(13);
				Draw.setAttribute('align','center');
				var Trainer = row.insertCell(14);
				var Last_3_Runs = row.insertCell(15);
				
				if(!response[i].FinishedPosition && fPos == 1){
					response[i].FinishedPosition = 0;
				}
				
				if(response[i].FinishedPosition){
					Silks.innerHTML = response[i].FinishedPosition;		
					fPos = 1;
				}
				else
        {
					Silks.innerHTML = "<a href='"+ liveSite +"/images/Silks/"+response[i].Silks+".jpg' rel='lightbox' title='"+response[i].HorseName+" Owner: "+response[i].OwnerName+"'><img src='" + liveSite + "/images/Silks/"+response[i].Silks+".jpg' border='0' height='32'/></a>";
				}
				Saddle_Num.innerHTML   = '<b>'+response[i].SaddleNumber+'</b>';

				Age.innerHTML          = response[i].Age;
				Colour.innerHTML       = response[i].Colour;
				Sex.innerHTML          = response[i].Gender;
				Kg.innerHTML           = '<b>'+response[i].Weight+'</b>';
				MR.innerHTML           = response[i].MR;
				RR.innerHTML           = '<b>'+response[i].RMR+'</b>';
        
        Kg.setAttribute('align','center');
        MR.setAttribute('align','center');
        RR.setAttribute('align','center');
        Jockey.setAttribute('align','center');
        //Trainer.setAttribute('align','center');
        
				var jsq = response[i].JSEQ;
				var tsq = response[i].TSEQ;
				var hsq = response[i].HorseSeq;
				var HName = response[i].HorseName;
        
        
        var clickargs = "ShowLineageAndFormTooltip(\"" + response[i].HorseLineage +"\", \"" + response[i].HorseName + "\", "+ 3+ ", " + hsq+", &quot;" + xDatum +"&quot;, " + tsq + ", " + xClub + ")";
				Horse.innerHTML = "<span id='"+Target+"_horse_"+response[i].SaddleNumber+"' onclick='"+clickargs+"'>"+response[i].HorseName+"</span>";
 			  $(Target+"_horse_"+response[i].SaddleNumber).style.cursor = 'pointer';
        
        Jockey.innerHTML			 = "<span id='"+Target+"_jockey_"+response[i].SaddleNumber+"' onclick='ShowFormTooltip(1,"+jsq+",\""+xDatum+"\","+tsq+","+xClub+");'title='View Past Form'>" + response[i].JockeyName + "</span>";
				$(Target+"_jockey_"+response[i].SaddleNumber).style.cursor = 'pointer';

				S.innerHTML						 = response[i].Shoes;
				Ht.innerHTML					 = response[i].Blinkers;
				t.innerHTML						 = TongueTies;
				Draw.innerHTML				 = response[i].Draw;

				Trainer.innerHTML			 = "<span id='"+Target+"_trainer_"+response[i].SaddleNumber+"' onclick='ShowFormTooltip(2,"+tsq+",\""+xDatum+"\","+jsq+","+xClub+");'title='View Past Form'>" + response[i].TrainerName + "</span>";
				$(Target+"_trainer_"+response[i].SaddleNumber).style.cursor = 'pointer';

				if(response[i].LengthsBehind){
					Last_3_Runs.innerHTML = response[i].LengthsBehind;
					lbh = 1;
				}
				else{
					if(!response[i].PastForm || trim(response[i].PastForm) === 'Unraced' || trim(response[i].PastForm) === ''){
						Last_3_Runs.innerHTML	 = "<span id='"+Target+"_runs_"+response[i].SaddleNumber+"'>Unraced</span>";
						Last_3_Runs.setAttribute('align','center');
						Last_3_Runs.setAttribute('class','greyed');
						Last_3_Runs.setAttribute('className','greyed');
					}
					else
          {
              Last_3_Runs.innerHTML = "<span id='"+Target+"_runs_"+response[i].SaddleNumber+"' >" + response[i].PastForm;
              Last_3_Runs.innerHTML += " <a href='javascript:ShowFormTooltip(3,"+hsq+",\""+xDatum+"\",0,0,\""+response[i].HorseName+"\");' title='Lifetime'>" + ">>" +"</a>";
              Last_3_Runs.innerHTML += "</span>";
              $(Target+"_runs_"+response[i].SaddleNumber).title = 'Last Runs for ' + $P.ucwords($P.strtolower(HName));
              Last_3_Runs.setAttribute('class','formSmall');
              Last_3_Runs.setAttribute('className','formSmall');
					}
				}
			}

			row = $(Target+bodyTarget).insertRow(0);
			row.setAttribute('class','internalInfo');
			row.setAttribute('className','internalInfo');
			Silks = row.insertCell(0);
			Saddle_Num = row.insertCell(1);
			Horse = row.insertCell(2);
			Age = row.insertCell(3);
			Colour = row.insertCell(4);
			Sex = row.insertCell(5);
			S = row.insertCell(6);
			Ht = row.insertCell(7);
			t = row.insertCell(8);
			Kg = row.insertCell(9);
			MR = row.insertCell(10);
			RR = row.insertCell(11);
			Jockey = row.insertCell(12);
			Draw = row.insertCell(13);
			Trainer = row.insertCell(14);
			Last_3_Runs = row.insertCell(15);
			
			if(fPos == 0){
				Silks.innerHTML        = "Silks";
			}
			else{
				Silks.innerHTML        = "F/P";
			}
			Saddle_Num.innerHTML   = "No.";
			Draw.innerHTML         = "Draw";
			Horse.innerHTML        = "Horse";
			Age.innerHTML          = "Age";
			Colour.innerHTML       = "Col";
			Sex.innerHTML          = "Sex";
			S.innerHTML            = "S";
			Ht.innerHTML           = "H";
			t.innerHTML            = "t";
			Kg.innerHTML           = "Weight";
			MR.innerHTML           = "MR";
			RR.innerHTML           = "RR";
			Jockey.innerHTML       = "Jockey(*App)";
			Trainer.innerHTML      = "Trainer";
			if(lbh == 0){
				Last_3_Runs.innerHTML  = "Last 3 Runs<br />";//<span align='left'>1st&nbsp;&nbsp;&nbsp;&nbsp;2nd&nbsp;&nbsp;&nbsp;&nbsp;3rd</span>";//"Last Runs";
        Last_3_Runs.setAttribute('align','left');
			}
			else{
				Last_3_Runs.innerHTML  = "Lengths";
			}

			row = $(Target+bodyTarget).insertRow(0);
			row.setAttribute('class','internalheader');
			row.setAttribute('className','internalheader');
			Header = row.insertCell(0);
			$(Target+bodyTarget).rows[0].cells[0].colSpan = '16';
			switch(Type){
				case 'F': Header.innerHTML        = "Final Acceptors"; break;
				case 'L': Header.innerHTML        = "Late Scratchings"; break;
				case 'R': Header.innerHTML        = "Reserve Runners"; break;
				default: Header.innerHTML 				= "";break;
			}
}

openPastEvent = function(xDatum, xClub, xRaceNumber){
	var PageData;
	var EventTemplate = new Template("<thead><td colspan='2'>Race #{RaceNumber}</td><td>Vref: #{VRef}</td><td>#{hh}:#{mm}</td><td>#{Distance}m</td><td colspan='3'>#{Surface} (#{Turn})</td><td colspan='3'>#{Stake}</td></thead><thead><td colspan='11'>#{Name}</td></thead><thead><td colspan='11'>#{Description}</td></thead><thead><td colspan='11'>Win Time: #{WinTime}</td></thead>");
	var Header = new String("<thead><th><B>Fp</B></th><th><B>Lbh</B></th><th><B>No</B></th><th><B>Horse</B></th><th><B>Kg</B></th><th><B>MR</B></th><th><B>Dr</B></th><th><B>Ht</B></th><th><B>S</B></th><th><B>Jockey(*App)</B></th><th><B>Trainer</B></th></thead>");
	var HorseInfo = new Template("<tr><td style='text-align:center;'>#{Finished}</td><td style='text-align:right;'>#{Lengths}</td><td style='text-align:center;'>#{SaddleCloth}</td><td><a href='javascript:ShowFormTooltip(4, #{Horse}, \"#{RaceDate}\", 0, 0, \"#{HorseName}\");'>#{HorseName}</a></td><td style='text-align:right;'>#{Weight}</td><td style='text-align:right;'>#{RMR}</td><td style='text-align:center;'>#{Draw}</td><td style='text-align:center;' width='20px'>#{Blinkers}#{TongueTies}</td><td style='text-align:center;' width='20'>#{Shoes}</td><td>#{JockeyName}</td><td>#{TrainerName}</td></tr>");
	new Ajax.Request(AjaxBaseUrl+'GETPASTEVENT:'+xDatum+":"+xClub+":"+xRaceNumber,{
		onSuccess: function(transport){
			var data = eval("("+transport.responseText+")");
			if(data && data !== null){
				var tmpDatum = xDatum.toString().substr(6)+xDatum.toString().substr(4,2)+xDatum.toString().substr(0,4);
				$("popupdataheader").innerHTML =  "Meeting for the " + data.Event[0].DateStamp + " at " + data.Event[0].ClubName;
				data.Event[0].WinTime = data.Runners[0].WinTime;
				data.Event[0].hh = data.Event[0].Time.toString().substr(0,2);
				data.Event[0].mm = data.Event[0].Time.toString().substr(2);
				PageData =  EventTemplate.evaluate(data.Event[0]);

				PageData += "<thead><td colspan='11'><strong>Final Acceptors</strong></td></thead>";
				PageData += Header;

				for(var i =0; i< data.Runners.length; i++){
					data.Runners[i].RaceDate = tmpDatum;
					data.Runners[i].HorseName = $P.str_replace("'","`",data.Runners[i].HorseName);
					PageData += HorseInfo.evaluate(data.Runners[i]);
				}

				if(data.LateScratchings.length){
					PageData += "<thead><td colspan='11'><strong>Late Scratchings</strong></td></thead>";
					PageData += Header;
					for(i =0; i< data.LateScratchings.length; i++){
						data.LateScratchings[i].RaceDate = tmpDatum;
						data.LateScratchings[i].HorseName = $P.str_replace("'","`",data.LateScratchings[i].HorseName);
						PageData += HorseInfo.evaluate(data.LateScratchings[i]);
					}
				}
				PageData+= "<tr><td colspan='2'><strong>Favourite</strong></td><td colspan='9'>" + data.Favourite + "</td></tr>";
				if(data.Couplings[0].indexOf(':') != 0){
					PageData+= "<tr><td colspan='11'>" + data.Couplings + "</td></tr>";
				}
				$("popupdatabody").innerHTML = "<pre><table class='pastEventTable'>" + PageData + "</table></pre>";

				showPopup();
        
				window.open('#' + btoa("openPastEvent('"+xDatum+"',"+xClub+","+xRaceNumber+");"), '_self');
				$('page_hash').value = btoa("openPastEvent('"+xDatum+"',"+xClub+","+xRaceNumber+");");
			}
		}
	});
};

cardChanges = function(xDatum, xClub, xTarget){
	new Ajax.Request(AjaxBaseUrl+'GETCHANGESREPORT:'+xDatum+":"+xClub,{
		onSuccess: function(transport){
				data = eval(transport.responseText);
				var BaseTemplate = new Template("<tr><td style='text-align:center;'>#{RaceNumber}</td><td style='text-align:center;'>#{SaddleCloth}</td><td>#{HorseName}</td><td>#{Reason}</td><td style='text-align:center;'>#{TimeOff}</td><td style='text-align:center;'>#{TimeStamp}</td><td>#{AdvisedBy}</td></tr>");
				var ChangesTemplate = new Template("<tr><td colspan='6'>#{Details}</td><td>#{AdvisedBy}</td></tr>");
				var OtherTemplate = new Template("<tr><td style='text-align:center;'>#{RaceNumber}</td><td style='text-align:center;'>#{SaddleCloth}</td><td>#{HorseName}</td><td colspan='4'>#{Data}</td></tr>");
				var PageData = "";

				if(data[0].LateScratchings){
					PageData+="<thead><th colspan='7' class='internalHeader'>Late Scratchings</th></thead>";
					PageData+="<thead class='internalInfo'><th>Race #</th><th>Horse #</th><th>Horse</th><th>Reason</th><th>Time</th><th>Date Adv</th><th>Advised By</th></thead>";
					for(var i=0; i< data[0].LateScratchings.length; i++){
						PageData+=BaseTemplate.evaluate(data[0].LateScratchings[i]);
					}
					PageData+="<thead><th colspan='7' class='internalHeader'>&nbsp;</th></thead>";
				}

				if(data[1].ReserveRunners){
					PageData+="<thead><th colspan='7'>Reserve Runners</th></thead>";
					PageData+="<thead class='internalInfo'><th>Race #</th><th>Horse #</th><th>Horse</th><th>Reason</th><th>Time</th><th>Date Adv</th><th>Advised By</th></thead>";
					for(var i=0; i< data[1].ReserveRunners.length; i++){
						PageData+=BaseTemplate.evaluate(data[1].ReserveRunners[i]);
					}
					PageData+="<thead><th colspan='7' class='internalHeader'>&nbsp;</th></thead>";
				}

				if(data[2].JockeyChanges){
					PageData+="<thead><th colspan='7'>Jockey Changes</th></thead>";
					PageData+="<thead class='internalInfo'><th>Race #</th><th>Horse #</th><th>Horse</th><th>New Jockey</th><th>Time</th><th>Date Adv</th><th>Advised By</th></thead>";
					for(var i=0; i< data[2].JockeyChanges.length; i++){
						data[2].JockeyChanges[i].Reason = $P.str_replace("To Be Ridden By: ","",data[2].JockeyChanges[i].Reason);
						PageData+=BaseTemplate.evaluate(data[2].JockeyChanges[i]);
					}
					PageData+="<thead><th colspan='7' class='internalHeader'>&nbsp;</th></thead>";
				}

				if(data[3].EquipmentChanges){
					PageData+="<thead><th colspan='7'>Equipment Changes</th></thead>";
					PageData+="<thead class='internalInfo'><th>Race #</th><th>Horse #</th><th>Horse</th><th>Equipment Changed</th><th>Time</th><th>Date Adv</th><th>Advised By</th></thead>";
					for(var i=0; i< data[3].EquipmentChanges.length; i++){
						PageData+=BaseTemplate.evaluate(data[3].EquipmentChanges[i]);
					}
					PageData+="<thead><th colspan='7' class='internalHeader'>&nbsp;</th></thead>";
				}


				if(data[4].WeightAdjust){
					PageData+="<thead><th colspan='7'>Weight/MR Adjustments</th></thead>";
					PageData+="<thead class='internalInfo'><th colspan='6'>Adjustment</th><th>Advised By</th></thead>";
					for(var i=0; i< data[4].WeightAdjust.length; i++){
						if(data[4].WeightAdjust[i].Details.length > 0){
							PageData+=ChangesTemplate.evaluate(data[4].WeightAdjust[i]);
						}
					}
					PageData+="<thead><th colspan='7' class='internalHeader'>&nbsp;</th></thead>";
				}

				PageData+="<thead><th colspan='7'>Owner/Colour Changes</th></thead>";
				if(data[5].OwnerChanges){
					PageData+="<thead class='internalInfo'><th colspan='6'>Changes</th><th>Advised By</th></thead>";
					for(var i=0; i< data[5].OwnerChanges.length; i++){
						if(data[5].OwnerChanges[i].Details.length > 0){
							PageData+=ChangesTemplate.evaluate(data[5].OwnerChanges[i]);
						}
					}
				}
				PageData+="<thead><th colspan='7' class='internalHeader'>&nbsp;</th></thead>";

				if(data[6].OtherChanges){
					PageData+="<thead><th colspan='7'>Other Changes</th></thead>";
					PageData+="<thead class='internalInfo'><th colspan='6'>Changes</th><th>Advised By</th></thead>";
					for(var i=0; i< data[6].OtherChanges.length; i++){
						if(data[6].OtherChanges[i].Details.length > 0){
							PageData+=ChangesTemplate.evaluate(data[6].OtherChanges[i]);
						}
					}
					PageData+="<thead><th colspan='7' class='internalHeader'>&nbsp;</th></thead>";
				}

				if(data[7].AdditionalForm){
					PageData+="<thead><th colspan='7'>Additional Form and Changes</th></thead>";
					PageData+="<thead class='internalInfo'><th>Race #</th><th>Horse #</th><th>Horse</th><th colspan='4'>Information</th></thead>";
					for(var i=0; i< data[7].AdditionalForm.length; i++){
						if(data[7].AdditionalForm[i].Data.length > 0){
							PageData+=OtherTemplate.evaluate(data[7].AdditionalForm[i]);
						}
					}
					PageData+="<thead><th colspan='7' class='internalHeader'>&nbsp;</th></thead>";
				}

				if(data[8].UnracedP6){
					PageData+="<thead><th colspan='7'>Unraced in Pick 6 and Jackpot</th></thead>";
					for(var i=0; i< data[8].UnracedP6.length; i++){
						PageData+="<tr><td colspan='7'>" + data[8].UnracedP6[i].Data +"</td></tr>";
					}
					PageData+="<thead><th colspan='7' class='internalHeader'>&nbsp;</th></thead>";
				}


				PageData+="<thead><th colspan='7'>General Information</th></thead>";
				if(data[9].GeneralInfo){
					PageData+="<tr><td colspan='3'>Weather</td><td colspan='4'>" + data[9].GeneralInfo[0].Weather +"</td></tr>";
					PageData+="<tr><td colspan='3'>Rainfall Last 24 Hours</td><td colspan='4'>" + data[9].GeneralInfo[1].Rain24Hours +"</td></tr>";
					PageData+="<tr><td colspan='3'>Rainfall Last 7 Days</td><td colspan='4'>" + data[9].GeneralInfo[2].Rain7Days +"</td></tr>";
					PageData+="<tr><td colspan='3'>Penetrometer Reading</td><td colspan='4'>" + data[9].GeneralInfo[3].PenReading +"</td></tr>";
					PageData+="<tr><td colspan='3'>Track Condition</td><td colspan='4'>" + data[9].GeneralInfo[4].TrackCondition +"</td></tr>";
					PageData+="<tr><td colspan='3'>False Rail</td><td colspan='4'>" + data[9].GeneralInfo[5].FalseRail +"</td></tr>";
				}
				$(xTarget).innerHTML = "<table border='0'>" + PageData + "</table>";

		}
	});
};
