	/**
		This defines a Driver object that has the details of a nascar driver for
		The Practice page.
	*/	
	
	PracticeDriver.prototype.mId			= null;																
	PracticeDriver.prototype.mCarNumber		= null;
	PracticeDriver.prototype.mPosition		= null;
	
	PracticeDriver.prototype.mFirstName		= null;
	PracticeDriver.prototype.mLastName		= null;
	
	PracticeDriver.prototype.mLapNumber		= null;
	PracticeDriver.prototype.mLapTime		= null;
	
	PracticeDriver.prototype.mSeasonPoints		= null;
	PracticeDriver.prototype.mManufacturer		= null;
	PracticeDriver.prototype.mSponsor			= null;
	
	PracticeDriver.prototype.mBestSpeed			= null;
	PracticeDriver.prototype.mBestTime			= null;
	PracticeDriver.prototype.mCurrentSpeed		= null;
	
	PracticeDriver.prototype.mDriverShortName	= null;
	
	PracticeDriver.prototype.mAverageSpeed		= null;	
	PracticeDriver.prototype.mAverageTime		= null;
			
	PracticeDriver.prototype.mIsChaseDriver		= null;	
			
	/**
	 * PracticeDriver - Constructor
	 * Create a new PracticeDriver object.
	 */
	function PracticeDriver(inputLine)
	{
		this.mId				= "";
		this.mCarNumber			= "";
		this.mPosition			= "";
		this.mLapNumber			= "";
		this.mLapTime			= "";
		
		this.mSeasonPoints		= "";
		this.mManufacturer		= "";
		this.mSponsor			= "";
		
		this.mFirstName			= "";
		this.mLastName			= "";
		
		this.mBestSpeed			= "";
		this.mBestTime			= "";
		this.mCurrentSpeed		= "";
		
		this.mDriverShortName	= "";
		
		this.mAverageSpeed		= "";		
		this.mAverageTime		= "";
						
		this.mIsChaseDriver		= false;
		
		this.initialize(inputLine);
	}
	
	/**
	 */
	PracticeDriver.prototype.initialize = function (inputLine)
	{
		if (!inputLine)
		{
			return;
		}
		
		//the inputLine format must of the following
		//R|Id|CarNumber|Position|LapsCompleted|DriverFirstName|DriverLastName|BestSpeed|LastSpeed|
		//AverageSpeed|BestTime|LastTime|AverageTime|TimeBehindLeader|DriverShortName|ChaseDriver
		
		var values = inputLine.split("|");
		
		//skip the 0's index, that is just an 'R' indicating that 
		//the input line is for a driver Registration.
		
		this.mId 				= values[1];
		this.mCarNumber			= values[2];
		this.mPosition			= values[3];
		
		this.mFirstName			= removeNull( values[4] );
		this.mLastName			= removeNull( values[5] );
		
		this.mLapNumber			= removeNull( values[6] );
		this.mLapTime			= removeNull( values[7] );
		
		this.mSeasonPoints		= removeNull( values[8] );
		this.mManufacturer		= removeNull( values[9] );
		this.mSponsor			= removeNull( values[10] );		
	
		this.mBestSpeed			= removeNull( values[11] );
		this.mBestTime			= removeNull( values[12] );
		this.mCurrentSpeed		= removeNull( values[13] );
		
		this.mDriverShortName	= values[14];
				
		this.mAverageSpeed		= removeNull( values[15] );								
		this.mAverageTime		= removeNull( values[16] );
								
		if (values[17] == '1')
		{
			this.mIsChaseDriver = true;
		}								
		else
		{
			this.mIsChaseDriver = false;
		}			
		
	};
	
	/**
	 */
	function removeNull(value)
	{
		if (value == null || value == 'null')
		{
			return '-';
		}
		return value;
		
	}
	
	/**
	 */
	PracticeDriver.prototype.getId = function ()
	{
		return this.mId;
	};
	
	/**
	 */
	PracticeDriver.prototype.getCarNumber = function ()
	{
		return this.mCarNumber;
	};
			
	/**
	 */
	PracticeDriver.prototype.getPosition = function ()
	{
		return this.mPosition;
	};
	
	/**
	 */
	PracticeDriver.prototype.isLeader = function ()
	{
		return this.mPosition == 1;
	};
	
	/**
	 */
	PracticeDriver.prototype.getLapNumber = function ()
	{
		return this.mLapNumber;
	};
	
	/**
	 */
	PracticeDriver.prototype.getLapTime = function ()
	{
		return this.mLapTime;
	};
	
	/**
	 */
	PracticeDriver.prototype.getSeasonPoints = function ()
	{
		return this.mSeasonPoints;
	};
	
	/**
	 */
	PracticeDriver.prototype.getManufacturer = function ()
	{
		return this.mManufacturer;
	};
	
	/**
	 */
	PracticeDriver.prototype.getSponsor = function ()
	{
		return this.mSponsor;
	};
	
	/**
	 */
	PracticeDriver.prototype.getFirstName = function ()
	{
		return this.mFirstName;
	};
	
	/**
	 */
	PracticeDriver.prototype.getLastName = function ()
	{
		return this.mLastName;
	};
	
	/**
	 */
	PracticeDriver.prototype.getBestSpeed = function ()
	{
		return this.mBestSpeed;
	};
	
	/**
	 */
	PracticeDriver.prototype.getAverageSpeed = function ()
	{
		return this.mAverageSpeed;
	};		
	
	/**
	 */
	PracticeDriver.prototype.getBestTime = function ()
	{
		return this.mBestTime;
	};
	
	/**
	 */
	PracticeDriver.prototype.getCurrentSpeed = function ()
	{
		return this.mCurrentSpeed;
	};
	
	/**
	 */
	PracticeDriver.prototype.getDriverShortName = function ()
	{
		return this.mDriverShortName;
	};		
	
	/**
	 */
	PracticeDriver.prototype.getAverageTime = function ()
	{
		return this.mAverageTime;
	};				
			
	/**
	 */
	PracticeDriver.prototype.isChaseDriver = function ()
	{
		return this.mIsChaseDriver;
	};
				
	
	/**
	 * toString
	 * Returns a string representation of this PracticeDriver 
	 */
	PracticeDriver.prototype.toString = function ()
	{	
		var buffer;
		
		buffer += "mId: [" + this.mId		+ "], ";
		buffer += "mCarNumber: [" + this.mCarNumber		+ "], ";
		buffer += "mPosition [" + this.mPosition 			+ "], ";
		buffer += "mLapNumber [" + this.mLapNumber 				+ "], ";
		buffer += "mLapTime [" + this.mLapTime 				+ "], ";
		
		buffer += "mSeasonPoints [" + this.mSeasonPoints 				+ "], ";		
		buffer += "mManufacturer [" + this.mManufacturer				+ "], ";
		buffer += "mSponsor [" + this.mSponsor	+ "], ";	
		
		buffer += "mFirstName [" + this.mFirstName				+ "], ";
		buffer += "mLastName [" + this.mLastName	+ "], ";		
		buffer += "mBestSpeed [" + this.mBestSpeed		+ "], ";						
		buffer += "mAverageSpeed [" + this.mAverageSpeed		+ "], ";								
		buffer += "mBestTime [" + this.mBestTime 				+ "], ";		
		buffer += "mCurrentSpeed [" + this.mCurrentSpeed		+ "], ";	
		
		buffer += "mDriverShortName [" + this.mDriverShortName		+ "], ";
		
		buffer += "mAverageTime [" + this.mAverageTime	+ "], ";		
															
		buffer += "mIsChaseDriver [" + this.mIsChaseDriver		+ "], ";						
						
		return buffer;
	};			
