/*
@author Jake Karg <jake.karg@staples.com>
@description 5/16 Daily Deals Event 
*/

var elapsedDays;

var offerLinksArray = new Array();
offerLinksArray[0] = 'http://www.staples.com/Seagate-BlackArmor-500-GB-Portable-Hard-Drive/product_798381';
offerLinksArray[1] = 'http://www.staples.com/Norton-Internet-Security-2010-1-PC/product_819214';
offerLinksArray[2] = 'http://www.staples.com/webapp/wcs/stores/servlet/StaplesProductDisplay?storeId=10001&catalogIdentifier=2&partNumber=805300';
offerLinksArray[3] = 'http://www.staples.com/HP-OfficeJet-Pro-8000-Printer/product_779671';
offerLinksArray[4] = 'http://www.staples.com/Staples-Montessa-Luxura-Managers-Chair-Black/product_814268';
offerLinksArray[5] = '';
offerLinksArray[6] = 'http://www.staples.com/Marcal-100-Recycled-Bath-Tissue-2-Ply/product_593805';

var offerAltsArray = new Array();
offerAltsArray[0] = 'TODAY ONLY MAY 16. Seagate&reg; Black Armor 500GB Portable Hard Drive. Only $79.99. Reg. $111.99. Save 25%. Online only.';
offerAltsArray[1] = 'TODAY ONLY MAY 17. Norton Internet Security&trade; 2010. Only $9.99. Reg. $49.99. Save 80%.';
offerAltsArray[2] = 'TODAY ONLY MAY 18. Acer 20&quot; Monitor. Only $109.99. Reg. $139.99. Save 20%. Online only.';
offerAltsArray[3] = 'TODAY ONLY MAY 19. HP Officejet Pro 8000. Only $74.99. Reg. $149.99. Save 50%. Online only.';
offerAltsArray[4] = 'TODAY ONLY MAY 20. Montessa Chair, Black. Only $49.99. Reg. $99.99. Save 50%.';
offerAltsArray[5] = 'TODAY ONLY MAY 21. Rollerball Uniball Pens, 2 Dozen. Sold out!';
offerAltsArray[6] = 'TODAY ONLY MAY 22. Marcal&reg; Bath Tissue, 24 rolls. Only $4.99. Reg. $16.99. Save 70%.';

//========== initialize() ========================================//
//Initializes variables and arrays when the page loads
function initialize()
{
	getDateIndex();
	setDisplayItems();
}

//========== getDateIndex() ========================================//
//Finds the number of days elapsed since the start date
function getDateIndex()
{
	/*
	Create Date objects for the startDate and the elapsedDate.
	Example: Date(year, month 0-11, day 1-31, hours 0-23, minutes 0-59, seconds 0-59, milliseconds 0-999);
	*/
	var elapsedDate = new Date();
	var startDate = new Date(2010, 4, 16, elapsedDate.getHours(), elapsedDate.getMinutes(), 0, 0);
	
	//Calculate the elapsed days between startDate and elapsedDate
	elapsedDays = Math.floor((((elapsedDate.getTime() / 1000) / 86400) - ((startDate.getTime() / 1000) / 86400)));
	
	//Bug fix for a negative number
	if (elapsedDays < 0) {elapsedDays = 0}
	
	delete elapsedDate;
	delete startDate;
		
	return elapsedDays;
}

//========== setDisplayItems() ========================================//
//Sets the display with the correct items based on the date
function setDisplayItems()
{
	var mainOffer = document.getElementById('ad_mainoffer');
	var offerQueue = document.getElementById('ad_dailydeals_queue').getElementsByTagName('IMG');
	var itemsToMove = elapsedDays;
	
	//Move the display items to the end of the queue and set them to "expired"
	while(itemsToMove)
	{
		offerQueue[0].setAttribute('src', offerQueue[0].getAttribute('src').replace('.gif', '_expired.gif'));
		insertAfter(offerQueue[6], offerQueue[0]);		
		itemsToMove--;
	}
	
	//Change the hero offer
	var day = offerQueue[0].getAttribute('src').match(/5885_([a-z]+)\./)[1];
	mainOffer.setAttribute('src', 'images/5885_hero_' + day + '.jpg');
	mainOffer.setAttribute('alt', offerAltsArray[elapsedDays]);
	mainOffer.parentNode.setAttribute('href', offerLinksArray[elapsedDays]);
		
	//Remove the 1st image as this will be the hero offer
	offerQueue[0].parentNode.removeChild(offerQueue[0]);
		
	delete mainOffer;
	delete offerQueue;
	delete itemsToMove;
	delete day;
}

//========== insertAfter() ========================================//
//This function inserts targetNode after insertPointNode
function insertAfter(insertPointNode, targetNode)
{
    insertPointNode.parentNode.insertBefore(targetNode, insertPointNode.nextSibling);
}
