/*
====================================================================================
 SharedScripts.js
 
 Desc/Notes: Contains all javascript functions that are site-wide in scope 
 
 Developer		| Lvl |	Modification/Desc 			   | Date    
 -----------------------------------------------------------------------------------
 Nicholas Sawyers (me6) |  1  | New					   | 08/08/02 
 -----------------------------------------------------------------------------------
 Steve Robeson    (snh) |  2  | Added openFundRaisingForm() and 	   | 07/03/03 
				openFundRaisingPDF()
 -----------------------------------------------------------------------------------
 Matt Cardarella  (eh9) |  3  | Changed how banner images are referenced. | 06/02/05 
								Cleaned out some unnecessary FundRaising
								code that was used to open forms/apps.
 -----------------------------------------------------------------------------------
  -----------------------------------------------------------------------------------
 Dustin Frenton  (x1t) |  4  | Added function to show/hide div tags | 3/21/06 								
 -----------------------------------------------------------------------------------
   -----------------------------------------------------------------------------------
 Dustin Frenton  (x1t) |  5  | Removed mouseovermebuttons | 6/1/06 								
 -----------------------------------------------------------------------------------
 -----------------------------------------------------------------------------------
 Greg Hart       (k63) |  6  | Added functions to perform client side validation
                       |     | on SpeedyRewards cards.
====================================================================================

 -----------------------------------------------------------------------------------
 Name:
 Desc/Notes: Preloads eStore button on main Navigation and does image swaps

 Used By: All pages. Referenced in PageLayout.asp.
		
 Parms: None

 Returns: a cool mouse over effect
 -----------------------------------------------------------------------------------
*/
var slocation = document.location;
var pathname = slocation.pathname;
var startSecondSlash = pathname.indexOf( '/', 2 );
var vdir = pathname.substring( 0, startSecondSlash );

/*
 -----------------------------------------------------------------------------------
 Name: SubmitAtomzSearch(Value)
 Desc/Notes:
 -----------------------------------------------------------------------------------
*/
function SubmitAtomzSearch(Value) 
{
	if (Value==''){alert('Please enter a value to search by');return false;}
	else
	{
		var url = "http://search.atomz.com/search/?sp-q="+ Value +"&sp-a=sp10027da8&sp-p=all&sp-f=ISO-8859-1"
		window.open(url,"","","");		
	}
}

/*
 -----------------------------------------------------------------------------------
 Name: ShowHideRouteMaps(MapID, MapWidth, MapHeight)

 Desc/Notes: Adds Show/Hide functionality to MapPoint Maps on Speedy Trip.

 Used By: SpeedyTrip/Directions.aspx
		
 Parms: MapID - image ID of the map to show/hide
		MapWidth - width of map image when shown
		MapHeight - height of map image when shown

 Returns: 
 -----------------------------------------------------------------------------------
*/
function ShowHideRouteMaps(MapID, MessageID, MapSrc, MapWidth, MapHeight)
{
	//imgMap = document.all[MapID];
	imgMap = document.getElementById(MapID);
	divMessage = document.getElementById(MessageID);
	
	if( imgMap != null ) 
	{
		if( imgMap.src == null || imgMap.src.length == 0 )
			imgMap.src = MapSrc;

		if(imgMap.style.display == 'none' || imgMap.style.display == '')
		{
			imgMap.style.display = 'inline';
			divMessage.style.display = 'block';
			imgMap.width = MapWidth;
			imgMap.height = MapHeight;
			imgMap.border = 0;
		}
		else
		{
			imgMap.style.display = 'none';
			divMessage.style.display = 'none';
			//imgMap.width = 0; imgMap.height = 0; imgMap.border = 0;
		}
	}
	//Change the cursor to default incase hour glass cursor is displayed.
	document.body.style.cursor = 'default';	
}

/*
 -----------------------------------------------------------------------------------
 Name: getRandomIndex()

 Desc/Notes: Generates a random number between 0 and the number passed in

 Used By: renderSmallBanner(), renderStandardBanner()
		
 Parms: base -- the uppperbound value of the range of random integers to be returned

 Returns: int
 -----------------------------------------------------------------------------------
*/
function getRandomIndex(base)
{
	var x = Math.random();
	for(var i = 0; i <= base - 1; i++)
		if((x >= (i/base)) && (x < ((i + 1)/base))) return i;
	return base - 1;
}

/*
 -----------------------------------------------------------------------------------
 Name: renderSmallBanner()

 Desc/Notes: Randomly renders one of the banners in the created array

 Used By: stdNavBar.asp
		
 Parms: 

 Returns: 
 -----------------------------------------------------------------------------------
*/
function renderSmallBanner()
{
	var banner = new Array(2)
    banner[0] = "<a href=\"https://www.ChaseCreditCard.com/start.asp?target=speedway&creative=PI1SWT01&splash=1\" target=\"_blank\"><img src=\"images/Banners/ChaseSquare.jpg\" width=\"125px\" height=\"125px\" border=\"0\"></a>";
    banner[1] = "<a href=\"http://www.Speedway.com/CreditCards/EBPPSplash2.asp\" target=\"_blank\"><img src=\"images/Banners/EBPPNavBarAd.gif\" width=\"125px\" height=\"125px\" border=\"0\"></a>";

	document.writeln(banner[getRandomIndex(banner.length)]);
    return;
}

/* -----------------------------------------------------------------------------------
 Name: setDate()
 Desc/Notes: Returns the current date.

 Used By: CompanyNews.asp
		
 Parms: None

 Returns: The current month and year.
 -----------------------------------------------------------------------------------
*/
function setDate()
{	var sMonth;
	var iYear;

	var today = new Date();
	var monthname = new Array("January","February","March","April","May","June","July","August","September","October","November","December");

	iYear = (today.getFullYear());
	sMonth = (monthname[today.getMonth()]);

	return(sMonth + ", " + iYear);
}

/*
 -----------------------------------------------------------------------------------
 Name: OpenCleanWindow()
 Desc/Notes: Opens a pop-up window with no scrollbars etc..

 Used By: Consumer.asp
		
 Parms: None

 Returns: Opens a pop-up window
 -----------------------------------------------------------------------------------
*/

function OpenCleanWindow(Location)
{
window.open(Location, '', 'width=680,height=500,resizable=1,menubar=0,scrollbars=1,status=0,toolbar=0,location=0', '');	
}

/*
-----------------------------------------------------------------------------------
 Name: ValidateSRCard(sender, args)
 Desc/Notes: validates the entered speedyrewards card number. 

 Used By: EmailUs.aspx
		
 Parms: sender is the object to be validated.  args contains two properties.  Value
 which is the value of the object to be validated and IsValid.

 Returns: IsValid.
		
 -----------------------------------------------------------------------------------
*/

function ValidateSRCard(sender, args)
{
	var cardNo = args.Value;
	
	if (( cardNo.length == 12 ) && ( cardNo.substring(0,1) == "4" ))
	{
		args.IsValid = ValidateCheckSum( cardNo );
	}
	else
	{
		args.IsValid = false;
	}
	return;
}

/*
-----------------------------------------------------------------------------------
 Name: ValidateCheckSum( cardNo )
 Desc/Notes: compares the entered checkSum against the calculated checkSum. 

 Used By: EmailUs.aspx
		
 Parms: cardNo - SpeedyRewards Card Number

 Returns: isValid - boolean value for whether or not the calculated checksum matched
 the entered checksum.		
 -----------------------------------------------------------------------------------
*/
	
function ValidateCheckSum( cardNo )
{
	var isValid = false;
	var suggested = cardNo.substr( cardNo.length - 1, 1 );
	var actual    = CalcCheckSum( cardNo );
	
	if ( suggested == actual )
	{
		isValid = true;
	}
	else
	{
		isValid = false;
	}
	return isValid;
}

/*
-----------------------------------------------------------------------------------
 Name: CalcCheckSum( cardNo )
 Desc/Notes: Calculates the checkSum digit based on the first 11 digits of the card
 number.

 Used By: EmailUs.aspx
		
 Parms: cardNo - SpeedyRewards Card Number

 Returns: checkSum 
 -----------------------------------------------------------------------------------
*/	
function CalcCheckSum ( cardNo )
{
	var working = 0;
	var checkSum = 0;
	var oddNums  = new Array();
	var evenNums = new Array();
	
	oddNums[0] = cardNo.substr(0,1);
	oddNums[1] = cardNo.substr(2,1);
	oddNums[2] = cardNo.substr(4,1);
	oddNums[3] = cardNo.substr(6,1);
	oddNums[4] = cardNo.substr(8,1);
	oddNums[5] = cardNo.substr(10,1);
	
	evenNums[0] = cardNo.substr(1,1);
	evenNums[1] = cardNo.substr(3,1);
	evenNums[2] = cardNo.substr(5,1);
	evenNums[3] = cardNo.substr(7,1);
	evenNums[4] = cardNo.substr(9,1);
	
	for ( i = 0; i < oddNums.length; i++ )
	{
		working = Math.abs(working) + Math.abs(oddNums[i]) ;
	}
	
	working = working * 3;
	
	for ( j = 0; j < evenNums.length; j++ )
	{
		working = Math.abs(working) + Math.abs(evenNums[j]);
	}
	
	checkSum = working % 10;
	if ( checkSum != 0 ) 
	{
		var num = 1 - (checkSum/10);
		num = num.toFixed(8);
		num = parseFloat(num);	
		checkSum = num * 10;
	}
	return checkSum;		
}

/*
-----------------------------------------------------------------------------------
Name: openRestrictionsWindow()

Desc/Notes: Renders the Restricted Items pop-up window

Used By: Default.asp, EarnPoints.asp, CardValidation.aspx
        
Parms: 

Returns: 
-----------------------------------------------------------------------------------
*/
function openRestrictionsWindow()
{
	var w = window.open("","Restrictions", "width=580, height=280");
	var d = w.document;
	d.writeln('<html>');
	d.writeln('<head>');
	d.writeln('    <title>Restricted Items</title>');
	d.writeln('    <link rel="stylesheet" type="text/css" href="../Styles/frameworkstyles/typo.css" />');
	d.writeln('</head>');
	d.writeln('<body>');
	d.writeln('<div align="center">');
	d.writeln('<div align="left" class="BorderedTable" style="width:400px; background-color:#e1e1e1;">');
	d.writeln('     <div class="TableHeader" style="padding:5px; text-indent:6px;">Restricted Items</div>');
	d.writeln('     <div class="PageText" style="padding-top:15px;">');
	d.writeln('         <ul type="disc">');
	d.writeln('             <li>Tobacco</li>');
	d.writeln('	            <li>Alcohol</li>');
	d.writeln('	            <li>Lottery</li>');
	d.writeln('	            <li>Money Orders</li>');
	d.writeln('	            <li>In-store Restaurant</li>');
	d.writeln('		    <li>Speedy Cash Prepaid cards</li>');
	d.writeln('		    <li>NetSpend Reloadable products</li>');
	d.writeln('         </ul>');
	d.writeln('     </div>');
	d.writeln('</div>');	
	d.writeln('	<span style="font-size:10px">Restricted Items may vary by location.</span>');
	d.writeln('<br />');
	d.writeln('<a href="javascript:window.close();">Close Window</a>');
	d.writeln('</div>');
	d.writeln('</body>');
	d.writeln('</html>');
	d.close();
	
	document.body.style.cursor = 'default';
}

/*
-----------------------------------------------------------------------------------
Name: openPINDescriptionWindow()

Desc/Notes: Renders the PIN Decription  pop-up window

Used By: MemberProfile CardProfile
        
Parms: 

Returns: 
-----------------------------------------------------------------------------------
*/
function openPINDescriptionWindow()
{
	var w = window.open("","PIN", "width=600, height=310");
	var d = w.document;
	d.writeln('<html>');
	d.writeln('<head>');
	d.writeln('    <title>PIN Information</title>');
	d.writeln('    <link rel="stylesheet" type="text/css" href="../Styles/frameworkstyles/typo.css" />');
	d.writeln('</head>');
	d.writeln('<body>');
	d.writeln('<div align="center">');
	d.writeln('<table border="0" cellpadding="0" class="BorderedTable" cellspacing="0" width="400px">');
	d.writeln('     <tr><td class="TableHeader">PIN Information</td></tr>');
	d.writeln('     <tr><td>');
	d.writeln('     <table cellpadding="0" cellspacing="0" class="SimpleTable" width="100%" style="padding-left:0px; padding-top:0px;">');
	d.writeln('         <tr><td>');	
	d.writeln('         <p class="PageText">');
	d.writeln('			<br />');
	d.writeln('         Your points are important to you and to us.  To ensure your privacy and to protect your points from theft, please establish a Personal Identification Number (PIN) that only you will know.');
	d.writeln('         </p>');
	d.writeln('         <p class="PageText">');
	d.writeln('         		What is the PIN for?  When redeeming your points at the terminal, viewing and modifying your account online, or speaking with our Customer Service department, your Speedy Rewards card number together with your PIN will be used to verify you are the rightful owner of your points.');
	d.writeln('         </p>');
	d.writeln('         </td></tr>');
	d.writeln('     </table>');
	d.writeln('     </td></tr>');
	d.writeln('</table>');
	d.writeln('<br />');
	
	d.writeln('<a href="javascript:window.close();">Close Window</a>');
	d.writeln('</div>');
	d.writeln('</body>');
	d.writeln('</html>');
	document.body.style.cursor = 'default';
	d.close();
}
/*
-----------------------------------------------------------------------------------
Name: showHourglass()

Desc/Notes: Changes the cursor to an hourglass

Used By: Template.
        
Parms: 

Returns: 
-----------------------------------------------------------------------------------
*/
function showHourglass()
{
  document.body.style.cursor = 'wait';
}
/*
-----------------------------------------------------------------------------------
Name: ShowCardSample()

Desc/Notes: Popup window with a image of a Card Sample.

Used By: CardRegistration.aspx and SetupAccountOnline.aspx.
        
Parms: 

Returns: 
-----------------------------------------------------------------------------------
*/
function ShowCardSample()
{
	var w = window.open("","CardSample", "width=500, height=280");
	var d = w.document;
	d.writeln('<html>');
	d.writeln('<head>');
	d.writeln('    <title>Card Number</title>');
	d.writeln('    <link rel="stylesheet" type="text/css" href="../Styles/General.css" />');
	d.writeln('</head>');
	d.writeln('<body>');
    d.writeln('<div align="center">');
    d.writeln(' <img src=../images/SpeedyRewards/SpeedyRewardsCardBack.gif>');
    d.writeln(' <br />');
	d.writeln(' <a href="javascript:window.close();">Close Window</a>');
    d.writeln('</div>');
	d.writeln('</body>');
	d.writeln('</html>');
	d.close();
	document.body.style.cursor = 'default';
}