var DriverIdx = -1;
var PageName = '';

CONSTANTS.ROOT = '../../';
CONSTANTS.DRIVERS = [
	{
		name:'Will Power',
		short:'WP',
		twitter:'12WillPower',
		news:'http://www.penskeracing.com/feed/vcr_drivernews_indycar.xml',
		navItems: ['bio', 'stats', 'hilites', 'news', 'fotos']
	},

	{
		name:'Helio Castroneves',
		short:'HC',
		twitter:'h3lio',
		news:'http://www.penskeracing.com/feed/vcr_drivernews_indycar.xml',
		navItems: ['bio', 'stats', 'hilites', 'news', 'fotos']
	},

	{
		name:'Ryan Briscoe',
		short:'RB',
		twitter:'ryanbriscoe6',
		news:'http://www.penskeracing.com/feed/vcr_drivernews_indycar.xml',
		navItems: ['bio', 'stats', 'hilites', 'news', 'fotos']
	}
];
CONSTANTS.DRIVERSTATS = {};
CONSTANTS.DRIVERNEWS = {};
CONSTANTS.IMAGEFILTERS = {driver:undefined,series:'INDY',race:undefined};
CONSTANTS.IMAGES = new Array();
CONSTANTS.IMAGES_PER_PAGE = 6;
CONSTANTS.VIDEOS = new Array();

if (window.attachEvent) {
	window.attachEvent('onload',driverSetup);
} else {
	window.addEventListener('load', driverSetup, false);
}

function driverSetup() {
	if (DriverIdx==-1) {
		doTwitterFeed();
	} else {
		buildDriverNav();
		if (PageName == 'stats' ) {
			loadSeasonStats()
		}
		if (PageName == 'news' ) {
			loadNews(CONSTANTS.DRIVERS[DriverIdx].news);
		}
		if (PageName == 'fotos') {
			loadImages({driver:CONSTANTS.DRIVERS[DriverIdx].name});
			loadVideos();
		}
	}
}

/* Drivers Home */
function doTwitterFeed(){
	var baseurl = 'http://api.twitter.com/1/statuses/user_timeline.json&screen_name={{ACCTNAME}}&count=10&callback=parseTweets{{SHORT}}';
	for (var d=0;d<CONSTANTS.DRIVERS.length;d++) {
		var driver = CONSTANTS.DRIVERS[d];
		var twitterurl = baseurl.replace('{{ACCTNAME}}', driver.twitter);
		twitterurl = twitterurl.replace('{{SHORT}}', driver.short);

		var srcriptElm = 'tweets_'+driver.short;
		if ($(srcriptElm)) {
			$$('head')[0].removeChild($(srcriptElm));
		}
		var elm = document.createElement('script');
		elm.id = srcriptElm;
		elm.type = 'text/javascript';
		elm.src = '/proxy.aspx?p_url='+twitterurl;

		$$('head')[0].appendChild(elm);
	}
}

function parseTweetsWP(tweets) {
	parseTweets('WP',tweets);
}

function parseTweetsHC(tweets) {
	parseTweets('HC',tweets);
}

function parseTweetsRB(tweets) {
	parseTweets('RB',tweets);
}

function parseTweets(cont,twitterResp) {
	var tmpTweets = new Template('<li><p class="tweetuser">#{user.screen_name}&nbsp;#{user.name}</p><p class="tweet">#{text}</p><p class="date">#{posttime}</p></li>');
	var tc_cont = '';
	for (var t=0;t<twitterResp.length;t++) {
		var tweet = twitterResp[t];
		tweet.posttime = relative_time(tweet.created_at);

		tc_cont += tmpTweets.evaluate(tweet);
	}
	$('tl_'+cont).hide();
	$('th_'+cont).insert('<ul id="tc_'+cont+'" class="tweetcontent">'+tc_cont+'</ul>');
}

function relative_time(time_value) {
	var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
	var values = time_value.split(" "),
		parsed_date = Date.parse(values[1] + " " + values[2] + ", " + values[5] + " " + values[3]),
		date = new Date(parsed_date),
		relative_to = new Date(),
		diff = parseInt((relative_to.getTime() - parsed_date) / 1000),
		r = '';

   function formatTime(date) {
       var hour = date.getHours(),
           min = date.getMinutes() + "",
           ampm = 'AM';

       if (hour == 0) {
           hour = 12;
       } else if (hour == 12) {
           ampm = 'PM';
       } else if (hour > 12) {
           hour -= 12;
           ampm = 'PM';
       }

       if (min.length == 1) {
           min = '0' + min;
       }

       return hour + ':' + min + ' ' + ampm;
   }

   function formatDate(date) {
       var ds = date.toDateString().split(/ /),
           mon = months[date.getMonth()],
           day = date.getDate()+'',
           dayi = parseInt(day),
           year = date.getFullYear(),
           thisyear = (new Date()).getFullYear(),
           th = 'th';

       // anti-'th' - but don't do the 11th, 12th or 13th
       if ((dayi % 10) == 1 && day.substr(0, 1) != '1') {
           th = 'st';
       } else if ((dayi % 10) == 2 && day.substr(0, 1) != '1') {
           th = 'nd';
       } else if ((dayi % 10) == 3 && day.substr(0, 1) != '1') {
           th = 'rd';
       }

       if (day.substr(0, 1) == '0') {
           day = day.substr(1);
       }

       return mon + ' ' + day + th + (thisyear != year ? ', ' + year : '');
   }

   diff = diff + (relative_to.getTimezoneOffset() * 60);

   if (diff < 5) {
       r = 'less than 5 seconds ago';
   } else if (diff < 30) {
       r = 'half a minute ago';
   } else if (diff < 60) {
       r = 'less than a minute ago';
   } else if (diff < 120) {
       r = '1 minute ago';
   } else if (diff < (45*60)) {
       r = (parseInt(diff / 60)).toString() + ' minutes ago';
   } else if (diff < (2*90*60)) { // 2* because sometimes read 1 hours ago
       r = 'about 1 hour ago';
   } else if (diff < (24*60*60)) {
       r = 'about ' + (parseInt(diff / 3600)).toString() + ' hours ago';
   } else {
       if (diff < (48*60*60)) {
           r = formatTime(date) + ' yesterday';
       } else {
           r = formatTime(date) + ' ' + formatDate(date);
       }
   }

   return r;
}

/* Driver pages */
function buildDriverNav() {
	var navBlock = {};

	var linkbio = new Element('a',{'href':'default.htm','class':'navbtn','name':'&lid='+CONSTANTS.DRIVERS[DriverIdx].name.toLowerCase().replace(' ','+')+'+bio+button'}).update('BIOGRAPHY');
	navBlock.bio = new Element('div',{'id':'driverbio','class':'navbtn'}).update(linkbio);
		if (PageName != 'bio') {addObserve(linkbio);}
		else {navBlock.bio.setStyle({'background':'#770000'});}

	var linkstats = new Element('a',{'href':'seasonstats.htm','class':'navbtn','name':'&lid='+CONSTANTS.DRIVERS[DriverIdx].name.toLowerCase().replace(' ','+')+'+season+stats+button'}).update('SEASON STATS');
	navBlock.stats = new Element('div',{'id':'driverstats','class':'navbtn'}).update(linkstats);
		if (PageName != 'stats') {addObserve(linkstats);}
		else {navBlock.stats.setStyle({'background':'#770000'});}

	var linkhilites = new Element('a',{'href':'careerhighlights.htm','class':'navbtn','name':'&lid='+CONSTANTS.DRIVERS[DriverIdx].name.toLowerCase().replace(' ','+')+'+career+highlights+button'}).update('CAREER HIGHLIGHTS');
	navBlock.hilites = new Element('div',{'id':'driverhighlights','class':'navbtn'}).update(linkhilites);
		if (PageName != 'hilites') {addObserve(linkhilites);}
		else {navBlock.hilites.setStyle({'background':'#770000'});}

	var linknews = new Element('a',{'href':'news.htm','class':'navbtn','name':'&lid='+CONSTANTS.DRIVERS[DriverIdx].name.toLowerCase().replace(' ','+')+'+news+button'}).update('NEWS');
	navBlock.news = new Element('div',{'id':'drivernews','class':'navbtn'}).update(linknews);
		if (PageName != 'news') {addObserve(linknews);}
		else {navBlock.news.setStyle({'background':'#770000'});}

	var linkfotos = new Element('a',{'href':'photos_videos.htm','class':'navbtn','name':'&lid='+CONSTANTS.DRIVERS[DriverIdx].name.toLowerCase().replace(' ','+')+'+photos+and+videos+button'}).update('PHOTOS &amp; VIDEO');
	navBlock.fotos = new Element('div',{'id':'driverphotos','class':'navbtn'}).update(linkfotos);
		if (PageName != 'fotos') {addObserve(linkfotos);}
		else {navBlock.fotos.setStyle({'background':'#770000'});}

	$('drivernav').update();
	for (var n=0;n<CONSTANTS.DRIVERS[DriverIdx].navItems.length;n++) {
		navLink = CONSTANTS.DRIVERS[DriverIdx].navItems[n];
		$('drivernav').insert(navBlock[navLink]);
	}
}

//Season Stats
function loadSeasonStats() {
	var driverNodeName = CONSTANTS.DRIVERS[DriverIdx].name.replace(' ','_');
	var request = new Ajax.Request(CONSTANTS.ROOT+'xml/seasonstats.xml',{
		method: 'get',
		asynchronous: true,
		onFailure: function() {
			//alert('fail');
		},
		onComplete: function() {
			//do something regardless of success/failure
		},
		onSuccess: function(response) {
			//do something on success
			var XMLresponse = response.responseXML;

			var driverNode = XMLresponse.getElementsByTagName(driverNodeName)[0];

			CONSTANTS.DRIVERSTATS = makeStatObj(driverNode.getElementsByTagName('race'));

			buildStats();
		}
	});
}

function makeStatObj(XMLnodes) {
	var statObj = new Object();
	var statList = new Array();

	statObj.avgstart = 0;
	statObj.avgfinish = 0;
	statObj.poles = 0;
	statObj.victories = 0;
	statObj.top5s = 0;
	statObj.top10s = 0;

	function getDelta(prevObj,raceObj) {
		var deltaval = '';
		var dif = prevObj.rank - raceObj.rank;
		if (dif == 0) {
			deltaval = '--';
		} else if (dif > 0) {
			deltaval = '+'+dif;
		} else { //dif < 0
			deltaval = dif;
		}

		return deltaval;
	};

	for (var r=0;r<XMLnodes.length;r++) {
		var raceObj = new Object();
		var race = XMLnodes[r];
		raceObj.racedate = race.getAttribute('racedate');
		raceObj.racename = race.getAttribute('racename');
		raceObj.startpos = parseInt(race.getAttribute('startpos'));
			statObj.avgstart += raceObj.startpos;
			if (raceObj.startpos == 1) {++statObj.poles;}
		raceObj.finishpos = parseInt(race.getAttribute('finishpos'));
			statObj.avgfinish += raceObj.finishpos;
			if (raceObj.finishpos == 1) {++statObj.victories;}
			if (raceObj.finishpos <= 5) {++statObj.top5s;}
			if (raceObj.finishpos <= 10) {++statObj.top10s;}
		raceObj.points = parseInt(race.getAttribute('points'));
		raceObj.behind = parseInt(race.getAttribute('behind'));
			raceObj.behind = (raceObj.behind==0) ? '--' : '-'+raceObj.behind;
		raceObj.rank = parseInt(race.getAttribute('rank'));
		raceObj.delta = (r==0) ? '--' : getDelta(statList[r-1],raceObj);

		statList.push(raceObj);

		statObj.standing = raceObj.rank;
		statObj.starts = r+1;
	}

	statObj.avgstart = Math.round(10*statObj.avgstart/statObj.starts)/10;
		if (statObj.avgstart.toString().indexOf('.') == -1) {statObj.avgstart = statObj.avgstart+'.0';}
	statObj.avgfinish = Math.round(10*statObj.avgfinish/statObj.starts)/10;
		if (statObj.avgfinish.toString().indexOf('.') == -1) {statObj.avgfinish = statObj.avgfinish+'.0';}
	statObj.racestats = statList;
	return statObj;
}

function buildStats() {
	var statarea = $('driverdetails');

	statarea.insert('<div id="stat_table_header" class="row_even"><div class="row_holder"><div class="stat_1">Date</div><div class="stat_2">Event</div><div class="stat_3">Start</div><div class="stat_4">Finish</div><div class="stat_5">Points (Behind)</div><div class="stat_6">Rank (+ / -)</div></div></div>');
	var statsTemp = new Template('<div class="#{evenodd}"><div class="row_holder"><div class="stat_1">#{racedate}</div><div class="stat_2">#{racename}</div><div class="stat_3">#{startpos}</div><div class="stat_4">#{finishpos}</div><div class="stat_5">#{points} (#{behind})</div><div class="stat_6">#{rank} (#{delta})</div></div></div>');
	var statsTable = new Element('div');
		statsTable.id = 'stattable';
	for (var r=0;r<CONSTANTS.DRIVERSTATS.racestats.length;r++) {
		CONSTANTS.DRIVERSTATS.racestats[r].evenodd = (r%2) ? 'row_even' : 'row_odd';
		statsTable.insert(statsTemp.evaluate(CONSTANTS.DRIVERSTATS.racestats[r]));
	}
	statarea.insert(statsTable);

	$$('.row_even .rowinner').invoke('setOpacity','.08');

	var statTotals = new Element('div');
		statTotals.id = 'stattotals';

	statTotals.insert(new Element('p').update('<b>Season Totals</b>'));
	statTotals.insert(new Element('p').update('Current Point Standings: ' + CONSTANTS.DRIVERSTATS.standing));
	statTotals.insert(new Element('p').update('Starts: ' + CONSTANTS.DRIVERSTATS.starts));
	statTotals.insert(new Element('p').update('Poles: ' + CONSTANTS.DRIVERSTATS.poles));
	statTotals.insert(new Element('p').update('Victories: ' + CONSTANTS.DRIVERSTATS.victories));
	statTotals.insert(new Element('p').update('Top 5s: ' + CONSTANTS.DRIVERSTATS.top5s));
	statTotals.insert(new Element('p').update('Top 10s: ' + CONSTANTS.DRIVERSTATS.top10s));
	statTotals.insert(new Element('p').update('Avg. Start: ' + CONSTANTS.DRIVERSTATS.avgstart));
	statTotals.insert(new Element('p').update('Avg. Finish: ' + CONSTANTS.DRIVERSTATS.avgfinish));

	statarea.insert(statTotals);
}

//News
function loadNews(feed) {
	var request = new Ajax.Request('/proxy.aspx?p_url='+feed,{
		method: 'get',
		asynchronous: false,
		onFailure: function() {
			//alert('fail');
		},
		onComplete: function() {
			//do something regardless of success/failure
		},
		onSuccess: function(response) {
			//do something on success
			var XMLresponse = convertStringToXML(response.responseText);

			var newsNode = XMLresponse.getElementsByTagName('news')[0];

			CONSTANTS.DRIVERNEWS = makeNewsObj(newsNode.getElementsByTagName('story'));

			showNews();
		}
	});
}

function makeNewsObj(XMLnodes) {
	var newsList = new Array();
	for (var r=0;r<XMLnodes.length;r++) {
		var newsObj = new Object();
		var newsitem = XMLnodes[r];
		newsObj.headline = getText(newsitem.getElementsByTagName('title')[0]);
		newsObj.linkpath = getText(newsitem.getElementsByTagName('link')[0]).replace('/index.cfm?','/news/index.cfm?');
		newsObj.imagepath = getText(newsitem.getElementsByTagName('image')[0]).replace('/full/','/thumb/');
		newsObj.snippet = getText(newsitem.getElementsByTagName('teaser')[0]);

		newsList.push(newsObj);
	}

	return newsList;
}

function showNews() {
	var newsarea = $('driverdetails');

	var newsTemp = new Template('<div class="newsarticle"><img class="news_thm" src="#{imagepath}"/><div class="news_text"><a class="news_head" href="#{linkpath}" target="_blank">#{headline}</a><p class="news_snip">#{snippet}</p></div></div><img class="news_divider" src="../../images/graphics/driver_h_div.png"/>');
	var newsTable = new Element('div');
	newsTable.id = 'newstable';
	for (var a=0;a<CONSTANTS.DRIVERNEWS.length;a++) {
		newsTable.insert(newsTemp.evaluate(CONSTANTS.DRIVERNEWS[a]));
	}

	newsarea.insert(newsTable);
}

//Photos & Videos
function loadImages(filter) {
	var request = new Ajax.Request(CONSTANTS.ROOT+'xml/gallery.xml',{
		method: 'get',
		asynchronous: true,
		onFailure: function() {
			//alert('fail');
		},
		onComplete: function() {
			//do something regardless of success/failure
		},
		onSuccess: function(response) {
			//do something on success
			var XMLresponse = response.responseXML;

			var imagesNode = XMLresponse.getElementsByTagName('images')[0];

			CONSTANTS.IMAGES = makeImgObj(imagesNode.getElementsByTagName('image'));
			CONSTANTS.IMAGES.FILTERED = CONSTANTS.IMAGES.clone();

			filterImages(filter);
			buildPagination();
			showImgs($$('.pgbtn a')[0],0,CONSTANTS.IMAGES_PER_PAGE-1);
		}
	});
}

function makeImgObj(XMLnodes) {
	var imageList = new Array();
	for (var i=0;i<XMLnodes.length;i++) {
		var imgObj = new Object();
		var imgitem = XMLnodes[i];
		imgObj.filename = imgitem.getAttribute('filename');
		imgObj.driver = imgitem.getAttribute('driver');
		imgObj.series = imgitem.getAttribute('series');
		imgObj.race = imgitem.getAttribute('race');
		imgObj.shown = false;

		imageList.push(imgObj);
	}

	return imageList;
}

function filterImages(filter) {
	if (filter.driver!=undefined) {
		CONSTANTS.IMAGEFILTERS.driver=filter.driver;
	}
	if (filter.series!=undefined) {
		CONSTANTS.IMAGEFILTERS.series=filter.series;
	}
	if (filter.race!=undefined) {
		CONSTANTS.IMAGEFILTERS.race=filter.race;
	}

	for (filtertype in CONSTANTS.IMAGEFILTERS) {
		if (CONSTANTS.IMAGEFILTERS[filtertype] != undefined) {
			for (var i=0;i<CONSTANTS.IMAGES.FILTERED.length;i++) {
				if (CONSTANTS.IMAGES.FILTERED[i][filtertype] != CONSTANTS.IMAGEFILTERS[filtertype]) {
					CONSTANTS.IMAGES.FILTERED[i] = null;
				}
			}
			CONSTANTS.IMAGES.FILTERED = CONSTANTS.IMAGES.FILTERED.compact();
		}
	}
}

function buildPagination() {
	var numOfPgs = Math.ceil(CONSTANTS.IMAGES.FILTERED.length/CONSTANTS.IMAGES_PER_PAGE);

	var prevbtn = new Element('div');
		prevbtn.addClassName('pgbtn').addClassName('prev');
		prevbtn.id = 'prevbtn';
	$('pagination').insert(prevbtn.update('<span>&nbsp;</span>'));
	for (var p=0;p<numOfPgs;p++) {
		var pgbtn = new Element('div');
			pgbtn.addClassName('pgbtn');
		var pgnum = new Element('a');
			pgnum.id='pgnum_'+p;
			pgnum.href='javascript:showImgs(\'pgnum_'+p+'\','+(p*CONSTANTS.IMAGES_PER_PAGE)+','+(((p+1)*CONSTANTS.IMAGES_PER_PAGE)-1)+');';
			pgnum.update(p+1);
			pgnum.observe('mouseover', function(evt) {changeBgColor(this,'#770000');});
			pgnum.observe('mouseout', function(evt) {changeBgColor(this,'#333333');});

		pgbtn.update(pgnum);

		$('pagination').insert(pgbtn);
	}
	var nextbtn = new Element('div');
		nextbtn.addClassName('pgbtn').addClassName('next');
		nextbtn.id = 'nextbtn';
	$('pagination').insert(nextbtn.update('&nbsp;'));
}

function showImgs(elm,sIdx,eIdx) {
	var thumbarea = $('thumbarea');
	thumbarea.update();

	var imgTemp = new Template('<a href="javascript:showImg(\'#{filename}\');"><img src="'+CONSTANTS.ROOT+'images/gallery/thumbs/#{filename}" /></a>');
	if (eIdx>=CONSTANTS.IMAGES.FILTERED.length) {eIdx = CONSTANTS.IMAGES.FILTERED.length-1;}
	for (var i=sIdx;i<=eIdx;i++) {
		var imgLink = new Element('a', {href:'javascript:showImg('+i+');'});
		var imgImage = new Element('img', {src:CONSTANTS.ROOT+'images/gallery/thumbs/'+CONSTANTS.IMAGES.FILTERED[i].filename});
		imgLink.insert(imgImage);
		thumbarea.insert(imgLink);
	}
	$$('.pgbtn').invoke('setStyle',{'backgroundColor':'#333333'});
	$$('.pgbtn a').invoke('observe','mouseout', function(evt) {changeBgColor(this,'#333333');});
	changeBgColor($(elm),'#770000');
	$(elm).stopObserving('mouseout');

	updatePagination(parseInt($(elm).id.replace('pgnum_',''))+1);
}

function showImg(idx) {
	var modalBG = new Element('div', {'id':'modal_bg'});
		modalBG.setStyle({'height':($('page').getDimensions().height+$('header').getDimensions().height)+'px'});
		modalBG.setOpacity(.55);
		modalBG.observe('click', function(evt) {
			closeModal('imgHolder');
		});

	var modal = new Element('div', {'id':'imgHolder'});
		modal.hide();

	var imgElm = new Element('img');
		imgElm.id = 'imgLarge';
		imgElm.src = CONSTANTS.ROOT+'images/gallery/'+CONSTANTS.IMAGES.FILTERED[idx].filename;
		modal.observe('mouseover', function(evt) {
			$('modal_previmgbtn').show();
			$('modal_nextimgbtn').show();
		});
		modal.observe('mouseout', function(evt) {
			$('modal_previmgbtn').hide();
			$('modal_nextimgbtn').hide();
		});
		if (!CONSTANTS.IMAGES.FILTERED[idx].shown) {
			imgElm.observe('load', function(evt) {
				var scrW = parseInt($('centerizer').getWidth()/2);
				var imgW = parseInt($('imgHolder').getWidth()/2);
				$('imgHolder').setStyle({'left':(scrW-imgW)+'px'});
				CONSTANTS.IMAGES.FILTERED[idx].shown=true;
				modal.show();
			});
		}

	var closebtn = new Element('a', {'id':'modal_closebtn'});
		closebtn.href = 'javascript:closeModal("imgHolder");';
		closebtn.insert('CLOSE X');

	var imgcnt = new Element('span', {'id':'modal_imgcount'});
		imgcnt.insert('Image '+(idx+1)+' of '+CONSTANTS.IMAGES.FILTERED.length);

	var prevbtn = new Element('a', {'id':'modal_previmgbtn'});
	var previmg = new Element('img', {src:'/images/buttons/modal_previmgbtn.png', alt:'PREV'});
		var prevIdx = (idx==0) ? CONSTANTS.IMAGES.FILTERED.length-1 : idx-1;
		prevbtn.href = 'javascript:closeModal("imgHolder");showImg('+prevIdx+');';
		prevbtn.setStyle({'display':'none'});
		prevbtn.insert(previmg);

	var nextbtn = new Element('a', {'id':'modal_nextimgbtn'});
	var nextimg = new Element('img', {src:'/images/buttons/modal_nextimgbtn.png', alt:'NEXT'});
		var nextIdx = (idx==CONSTANTS.IMAGES.FILTERED.length-1) ? 0 : idx+1;
		nextbtn.href = 'javascript:closeModal("imgHolder");showImg('+nextIdx+');';
		nextbtn.setStyle({'display':'none'});
		nextbtn.insert(nextimg);


	modal.insert(imgElm);
	modal.insert(closebtn);
	modal.insert(imgcnt);
	modal.insert(prevbtn);
	modal.insert(nextbtn);

	$('centerizer').insert(modalBG);
	$('centerizer').insert(modal);

	if (CONSTANTS.IMAGES.FILTERED[idx].shown) {
		var scrW = parseInt($('centerizer').getWidth()/2);
		var imgW = parseInt($('imgHolder').getWidth()/2);
		$('imgHolder').setStyle({'left':(scrW-imgW)+'px'});
		modal.show();
	}
}

function updatePagination(pgNum) {
	var totalPages = $$('.pgbtn').length-2;	//exclude prev & next

	var pageBlock = Math.ceil(pgNum/5);
	var nextBlock = pageBlock+1;
	var prevBlock = pageBlock-1;

	$$('.pgbtn').invoke('hide');
	for (var p=((pageBlock-1)*5);p<(pageBlock*5);p++) {
		if($('pgnum_'+p)) {$('pgnum_'+p).ancestors()[0].show();}
	}
	if (pageBlock==1) {
		$('prevbtn').update('<span>&nbsp;</span>').show();
	} else {
		var nB_start = (prevBlock-1)*5+1;
		var nB_end = (prevBlock-1)*5+5;
		var prevLink = $(document.createElement('a'));
		prevLink.href='javascript:showImgs(\'pgnum_'+(nB_end-1)+'\','+((nB_end-1)*CONSTANTS.IMAGES_PER_PAGE)+','+((nB_end*CONSTANTS.IMAGES_PER_PAGE)-1)+');';
		prevLink.update(nB_start+' - '+nB_end);
		prevLink.observe('mouseover', function(evt) {changeBgColor(this,'#770000');});
		prevLink.observe('mouseout', function(evt) {changeBgColor(this,'#333333');});
		$('prevbtn').update(prevLink).show();

	}
	if (pageBlock==(Math.ceil(totalPages/5))) {
		$('nextbtn').update('<span>&nbsp;</span>').show();
	} else {
		var nB_start = pageBlock*5+1;
		var nB_end = (pageBlock*5+5 > totalPages) ? totalPages : pageBlock*5+5;
		var nextLink = $(document.createElement('a'));
		nextLink.href='javascript:showImgs(\'pgnum_'+(nB_start-1)+'\','+((nB_start-1)*CONSTANTS.IMAGES_PER_PAGE)+','+((nB_start*CONSTANTS.IMAGES_PER_PAGE)-1)+');';
		nextLink.update(nB_start+' - '+nB_end);
		nextLink.observe('mouseover', function(evt) {changeBgColor(this,'#770000');});
		nextLink.observe('mouseout', function(evt) {changeBgColor(this,'#333333');});
		$('nextbtn').update(nextLink).show();
	}
}

function loadVideos() {
	var driverNodeName = CONSTANTS.DRIVERS[DriverIdx].name.replace(' ','_');
	var request = new Ajax.Request(CONSTANTS.ROOT+'xml/videos.xml',{
		method: 'get',
		asynchronous: true,
		onFailure: function() {
			//alert('fail');
		},
		onComplete: function() {
			//do something regardless of success/failure
		},
		onSuccess: function(response) {
			//do something on success
			var XMLresponse = response.responseXML;

			var driverNode = XMLresponse.getElementsByTagName(driverNodeName)[0];

			CONSTANTS.VIDEOS = makeVideoObj(driverNode.getElementsByTagName('video'));

			buildVideo(0);
		}
	});
}

function makeVideoObj(XMLnodes) {
	var videoList = new Array();
	for (var v=0;v<XMLnodes.length;v++) {
		var videoObj = new Object();
		var videoitem = XMLnodes[v];
		videoObj.videodate = videoitem.getAttribute('videodate');
		videoObj.videotitle = videoitem.getAttribute('videotitle');
		videoObj.videodesc = videoitem.getAttribute('videodesc');
		videoObj.youtubeid = videoitem.getAttribute('youtubeid');

		videoList.push(videoObj);
	}

	return videoList;
}

function buildVideo(idx) {
	var curVid = CONSTANTS.VIDEOS[idx];

	var videotitle = curVid.videotitle;
	var videodescription = curVid.videodesc;
	var videodate = curVid.videodate;
	var youtubeID = curVid.youtubeid;

	$('videoplayer').update('<object width="453" height="276" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="http://www.youtube.com/v/'+curVid.youtubeid+'&hl=en_US&fs=1&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/'+curVid.youtubeid+'&hl=en_US&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="453" height="276" wmode="transparent"></embed></object>');

	function buildOtherVidDDL() {
		var ddlDefault = new Element('div').addClassName('ddldefault');

		var ddlDefaulttext = new Element('span').addClassName('ddldefaulttext');
		ddlDefaulttext.insert('CHOOSE ANOTHER VIDEO');

		ddlDefault.insert(ddlDefaulttext);

		var videoddl = new Element('ul').addClassName('customddl');
		videoddl.id = 'videoddl';
		videoddl.setStyle({'display':'none'});

		for (var v=0;v<CONSTANTS.VIDEOS.length;v++) {
			var videoLI = new Element('li');
			videoLI.insert('<a href="javascript:buildVideo('+v+')" onmouseover="changeBgColor(this,\'#770000\');" onmouseout="changeBgColor(this,\'transparent\');">'+CONSTANTS.VIDEOS[v].videotitle.toUpperCase()+'</a>');
			videoddl.insert(videoLI);
		}

		$('morevideos').update(ddlDefault).insert(videoddl);
	}


	$('videodescription').update();
	$('videodescription').insert(new Element('p').addClassName('title').update(videotitle));
	$('videodescription').insert(new Element('p').update(videodescription));
	buildOtherVidDDL();
}

