// JavaScript Document

// tag used to demark cookies
var DemarcationTag = "xxxx";

/*
  name - name of the desired cookie
  return string containing value of specified cookie or null
  if cookie does not exist
  Returns whole cookie string
*/
function GetCookie( name ) {
	
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) &&
	( name != document.cookie.substring( 0, name.length ) ) )
	{
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ";", len );
	if ( end == -1 ) end = document.cookie.length;
	var CookieData = unescape( document.cookie.substring( len, end ) );
	
	return CookieData;
}
		
 

/*
   name - name of the cookie
   value - value of the cookie
   [expires] - expiration date of the cookie - input in days from now, then changed by script to msecs.
     (defaults to end of current session)
   [path] - path for which the cookie is valid. Try '/' as input.
     (defaults to path of calling document)
   [domain] - domain for which the cookie is valid
     (defaults to domain of calling document)
   [secure] - Boolean value indicating if the cookie transmission requires
     a secure transmission
   * an argument defaults when it is assigned null as a placeholder
   * a null placeholder is not required for trailing omitted arguments
*/
 
function SetCookie( name, value, expires, path, domain, secure ) 
{
// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );

/*
if the expires variable is set, make the correct 
expires time, the current script below will set 
it for x number of days, to make it for hours, 
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );

document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
( ( path ) ? ";path=" + path : "" ) + 
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}
 


/*
Function GetCookieStructure takes a (unique) parameter name as an input and returns the 
cookie that the parameter resides in as well as the position of that parameter within the
cookie.
*/

function GetCookieStructure(paramname)
{	
	switch (paramname)
	{
		//alert("inside GetCookieStructure function. paramname = " + paramname);
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: AffData (Affiliate Data)
		//////////////////////////////////////////////////////////////////////////////////////////
   		case "affgadid": 						cookiename = "AffData"; 				parampos = 0; 	break;  // Google AdSense Client ID
		case "affgchid": 						cookiename = "AffData"; 				parampos = 1; 	break;  // Google AdSense Channel ID
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: Settings 
		//////////////////////////////////////////////////////////////////////////////////////////
   		case "NumberOfVisits": 					cookiename = "Settings"; 				parampos = 0; 	break;
		case "LastVisit": 						cookiename = "Settings"; 				parampos = 1; 	break;
		case "SearchEngine": 					cookiename = "Settings"; 				parampos = 2; 	break;
		case "Theme1": 							cookiename = "Settings"; 				parampos = 3; 	break;
		case "Theme2": 							cookiename = "Settings"; 				parampos = 4; 	break;
		case "TextColour1": 					cookiename = "Settings"; 				parampos = 5; 	break;
		case "TextColour2": 					cookiename = "Settings"; 				parampos = 6; 	break;
		case "PageFormat": 						cookiename = "Settings"; 				parampos = 7; 	break;
		case "Country": 						cookiename = "Settings"; 				parampos = 8; 	break;
		case "State": 							cookiename = "Settings"; 				parampos = 9; 	break;
		case "StoreSearch": 					cookiename = "Settings"; 				parampos = 10; 	break;
		case "bg": 								cookiename = "Settings"; 				parampos = 11; 	break;
		case "bgalign":							cookiename = "Settings"; 				parampos = 12; 	break;
		case "fhpalign": 						cookiename = "Settings"; 				parampos = 13; 	break;
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: StartPageSelections 
		//////////////////////////////////////////////////////////////////////////////////////////
		case "StartPageNews": 					cookiename = "StartPageSelections"; 	parampos = 0; 	break;
		case "StartPageFeed1": 					cookiename = "StartPageSelections"; 	parampos = 1; 	break;
		case "StartPageFeed2": 					cookiename = "StartPageSelections"; 	parampos = 2; 	break;
		case "StartPageFeed3": 					cookiename = "StartPageSelections"; 	parampos = 3; 	break;
		case "ComicFeedStartPage": 				cookiename = "StartPageSelections"; 	parampos = 4; 	break;
		case "FrontPageNews_TopStories": 		cookiename = "StartPageSelections"; 	parampos = 5; 	break;
		case "FrontPageNews_InternationalNews": cookiename = "StartPageSelections"; 	parampos = 6; 	break;
		case "FrontPageNews_EntertainmentNews": cookiename = "StartPageSelections"; 	parampos = 7; 	break;
		case "HoroscopeStartPagePane1": 		cookiename = "StartPageSelections"; 	parampos = 8; 	break;
		case "HoroscopeStartPagePane2": 		cookiename = "StartPageSelections"; 	parampos = 9; 	break;
		case "HoroscopeStartPagePane3": 		cookiename = "StartPageSelections"; 	parampos = 10; 	break;
		case "CustomRssStartPagePane1": 		cookiename = "StartPageSelections"; 	parampos = 11; 	break;
		case "CustomRssStartPagePane2": 		cookiename = "StartPageSelections"; 	parampos = 12; 	break;
		case "CustomRssStartPagePane3": 		cookiename = "StartPageSelections"; 	parampos = 13; 	break;
		case "CustomGadgetStartPagePane1": 		cookiename = "StartPageSelections"; 	parampos = 14; 	break;
		case "CustomGadgetStartPagePane2": 		cookiename = "StartPageSelections"; 	parampos = 15; 	break;
		case "CustomGadgetStartPagePane3": 		cookiename = "StartPageSelections"; 	parampos = 16; 	break;
		case "GoogleCalendarStartPagePane1": 	cookiename = "StartPageSelections"; 	parampos = 17; 	break;
		case "GoogleCalendarStartPagePane2": 	cookiename = "StartPageSelections"; 	parampos = 18; 	break;
		case "GoogleCalendarStartPagePane3": 	cookiename = "StartPageSelections"; 	parampos = 19; 	break;
		case "WeatherOutlookStartPagePane1": 	cookiename = "StartPageSelections"; 	parampos = 20; 	break;
		case "Weather3DayStartPagePane2": 		cookiename = "StartPageSelections"; 	parampos = 21; 	break;
		case "Weather3DayStartPagePane3": 		cookiename = "StartPageSelections"; 	parampos = 22; 	break;
		case "FrontPageNews_SportsNews": 		cookiename = "StartPageSelections"; 	parampos = 23; 	break;
		
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: WideStartPageSelections (additional start page selections for users who use the wide format start page only)
		//////////////////////////////////////////////////////////////////////////////////////////
		case "StartPageFeed4": 					cookiename = "StartWidePageSelections"; 	parampos = 0; 	break;
		case "StartPageFeed5": 					cookiename = "StartWidePageSelections"; 	parampos = 1; 	break;
		case "StartPageFeed6": 					cookiename = "StartWidePageSelections"; 	parampos = 2; 	break;
		case "StartPageFeed7": 					cookiename = "StartWidePageSelections"; 	parampos = 3; 	break;
		case "HoroscopeStartPagePane4": 		cookiename = "StartWidePageSelections"; 	parampos = 4; 	break;
		case "HoroscopeStartPagePane5": 		cookiename = "StartWidePageSelections"; 	parampos = 5; 	break;
		case "HoroscopeStartPagePane6": 		cookiename = "StartWidePageSelections"; 	parampos = 6; 	break;
		case "HoroscopeStartPagePane7": 		cookiename = "StartWidePageSelections"; 	parampos = 7; 	break;
		case "CustomRssStartPagePane4": 		cookiename = "StartWidePageSelections"; 	parampos = 8; 	break;
		case "CustomRssStartPagePane5": 		cookiename = "StartWidePageSelections"; 	parampos = 9; 	break;
		case "CustomRssStartPagePane6": 		cookiename = "StartWidePageSelections"; 	parampos = 10; 	break;
		case "CustomRssStartPagePane7": 		cookiename = "StartWidePageSelections"; 	parampos = 11; 	break;
		case "CustomGadgetStartPagePane4": 		cookiename = "StartWidePageSelections"; 	parampos = 12; 	break;
		case "CustomGadgetStartPagePane5": 		cookiename = "StartWidePageSelections"; 	parampos = 13; 	break;
		case "CustomGadgetStartPagePane6": 		cookiename = "StartWidePageSelections"; 	parampos = 14; 	break;
		case "CustomGadgetStartPagePane7": 		cookiename = "StartWidePageSelections"; 	parampos = 15; 	break;
		case "GoogleCalendarStartPagePane4": 	cookiename = "StartWidePageSelections"; 	parampos = 16; 	break;
		case "GoogleCalendarStartPagePane5": 	cookiename = "StartWidePageSelections"; 	parampos = 17; 	break;
		case "GoogleCalendarStartPagePane6": 	cookiename = "StartWidePageSelections"; 	parampos = 18; 	break;
		case "GoogleCalendarStartPagePane7": 	cookiename = "StartWidePageSelections"; 	parampos = 19; 	break;
		case "Weather3DayStartPagePane4": 		cookiename = "StartWidePageSelections"; 	parampos = 20; 	break;
		case "Weather3DayStartPagePane5": 		cookiename = "StartWidePageSelections"; 	parampos = 21; 	break;
		case "Weather3DayStartPagePane6": 		cookiename = "StartWidePageSelections"; 	parampos = 22; 	break;
		case "Weather3DayStartPagePane7": 		cookiename = "StartWidePageSelections"; 	parampos = 23; 	break;
		
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: Bookmarks
		//////////////////////////////////////////////////////////////////////////////////////////
		case "BookmarkURL1": 					cookiename = "Bookmarks"; 				parampos = 0; 	break;
		case "BookmarkName1": 					cookiename = "Bookmarks"; 				parampos = 1; 	break;
		case "BookmarkURL2": 					cookiename = "Bookmarks"; 				parampos = 2; 	break;
		case "BookmarkName2": 					cookiename = "Bookmarks"; 				parampos = 3; 	break;
		case "BookmarkURL3": 					cookiename = "Bookmarks"; 				parampos = 4; 	break;
		case "BookmarkName3": 					cookiename = "Bookmarks"; 				parampos = 5; 	break;
		case "BookmarkURL4": 					cookiename = "Bookmarks"; 				parampos = 6; 	break;
		case "BookmarkName4": 					cookiename = "Bookmarks"; 				parampos = 7; 	break;
		case "BookmarkURL5": 					cookiename = "Bookmarks"; 				parampos = 8; 	break;
		case "BookmarkName5": 					cookiename = "Bookmarks"; 				parampos = 10; 	break;
		case "BookmarkURL6": 					cookiename = "Bookmarks"; 				parampos = 11; 	break;
		case "BookmarkName6": 					cookiename = "Bookmarks"; 				parampos = 12; 	break;
		case "BookmarkURL7": 					cookiename = "Bookmarks"; 				parampos = 13; 	break;
		case "BookmarkName7": 					cookiename = "Bookmarks"; 				parampos = 14; 	break;
		case "BookmarkURL8": 					cookiename = "Bookmarks"; 				parampos = 15; 	break;
		case "BookmarkName8": 					cookiename = "Bookmarks"; 				parampos = 16; 	break;
		case "BookmarkURL9": 					cookiename = "Bookmarks"; 				parampos = 17; 	break;
		case "BookmarkName9": 					cookiename = "Bookmarks"; 				parampos = 18; 	break;
		case "BookmarkURL10": 					cookiename = "Bookmarks"; 				parampos = 19; 	break;
		case "BookmarkName10": 					cookiename = "Bookmarks"; 				parampos = 20; 	break;
		case "BookmarkURL11": 					cookiename = "Bookmarks"; 				parampos = 21; 	break;
		case "BookmarkName11": 					cookiename = "Bookmarks"; 				parampos = 22; 	break;
		case "BookmarkURL12": 					cookiename = "Bookmarks"; 				parampos = 23; 	break;
		case "BookmarkName12": 					cookiename = "Bookmarks"; 				parampos = 24; 	break;
		case "BookmarkURL13": 					cookiename = "Bookmarks"; 				parampos = 25; 	break;
		case "BookmarkName13": 					cookiename = "Bookmarks"; 				parampos = 26; 	break;
		case "BookmarkURL14": 					cookiename = "Bookmarks"; 				parampos = 27; 	break;
		case "BookmarkName14": 					cookiename = "Bookmarks"; 				parampos = 28; 	break;
		case "BookmarkURL15": 					cookiename = "Bookmarks"; 				parampos = 29; 	break;
		case "BookmarkName15": 					cookiename = "Bookmarks"; 				parampos = 30; 	break;
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: Weather 
		//////////////////////////////////////////////////////////////////////////////////////////
		case "WeatherUnits": 					cookiename = "Weather"; 				parampos = 0; 	break;
		case "LocationID1": 					cookiename = "Weather"; 				parampos = 1; 	break;
		case "LocationName1": 					cookiename = "Weather"; 				parampos = 2; 	break;
		case "LocationID2": 					cookiename = "Weather"; 				parampos = 3; 	break;
		case "LocationName2": 					cookiename = "Weather"; 				parampos = 4; 	break;
		case "LocationID3": 					cookiename = "Weather"; 				parampos = 5; 	break;
		case "LocationName3": 					cookiename = "Weather"; 				parampos = 6; 	break;
		case "LocationID4": 					cookiename = "Weather"; 				parampos = 7; 	break;
		case "LocationName4": 					cookiename = "Weather"; 				parampos = 8; 	break;
		case "LocationID5": 					cookiename = "Weather"; 				parampos = 9; 	break;
		case "LocationName5": 					cookiename = "Weather"; 				parampos = 10; 	break;
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: MySpaceComments 
		//////////////////////////////////////////////////////////////////////////////////////////
		case "MySpaceCommentsUserName": 		cookiename = "MySpaceComments"; 		parampos = 0; 	break;
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: MySpaceBlogs 
		//////////////////////////////////////////////////////////////////////////////////////////
		case "MySpaceBlogUserName": 			cookiename = "MySpaceBlogs"; 			parampos = 0; 	break;
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: GoogleCalendar 
		//////////////////////////////////////////////////////////////////////////////////////////
		case "GoogleCalendarEmail1": 			cookiename = "GoogleCalendar"; 			parampos = 0; 	break;
		case "GoogleCalendarName1": 			cookiename = "GoogleCalendar"; 			parampos = 1; 	break;
		case "GoogleCalendarStartDay1": 		cookiename = "GoogleCalendar"; 			parampos = 2; 	break;
		case "GoogleCalendarShowCalendar1": 	cookiename = "GoogleCalendar"; 			parampos = 3; 	break;
		case "GoogleCalendarShowAgenda1": 		cookiename = "GoogleCalendar"; 			parampos = 4; 	break;
		
		case "GoogleCalendarEmail2": 			cookiename = "GoogleCalendar"; 			parampos = 5; 	break;
		case "GoogleCalendarName2": 			cookiename = "GoogleCalendar"; 			parampos = 6; 	break;
		case "GoogleCalendarStartDay2": 		cookiename = "GoogleCalendar"; 			parampos = 7; 	break;
		case "GoogleCalendarShowCalendar2": 	cookiename = "GoogleCalendar"; 			parampos = 8; 	break;
		case "GoogleCalendarShowAgenda2": 		cookiename = "GoogleCalendar"; 			parampos = 9; 	break;
		
		case "GoogleCalendarEmail3": 			cookiename = "GoogleCalendar"; 			parampos = 10; 	break;
		case "GoogleCalendarName3": 			cookiename = "GoogleCalendar"; 			parampos = 11; 	break;
		case "GoogleCalendarStartDay3": 		cookiename = "GoogleCalendar"; 			parampos = 12; 	break;
		case "GoogleCalendarShowCalendar3": 	cookiename = "GoogleCalendar"; 			parampos = 13; 	break;
		case "GoogleCalendarShowAgenda3": 		cookiename = "GoogleCalendar"; 			parampos = 14; 	break;
		
		case "GoogleCalendarEmail4": 			cookiename = "GoogleCalendar"; 			parampos = 15; 	break;
		case "GoogleCalendarName4": 			cookiename = "GoogleCalendar"; 			parampos = 16; 	break;
		case "GoogleCalendarStartDay4": 		cookiename = "GoogleCalendar"; 			parampos = 17; 	break;
		case "GoogleCalendarShowCalendar4": 	cookiename = "GoogleCalendar"; 			parampos = 18; 	break;
		case "GoogleCalendarShowAgenda4": 		cookiename = "GoogleCalendar"; 			parampos = 19; 	break;
		
		case "GoogleCalendarEmail5": 			cookiename = "GoogleCalendar"; 			parampos = 20; 	break;
		case "GoogleCalendarName5": 			cookiename = "GoogleCalendar"; 			parampos = 21; 	break;
		case "GoogleCalendarStartDay5": 		cookiename = "GoogleCalendar"; 			parampos = 22; 	break;
		case "GoogleCalendarShowCalendar5": 	cookiename = "GoogleCalendar"; 			parampos = 23; 	break;
		case "GoogleCalendarShowAgenda5": 		cookiename = "GoogleCalendar"; 			parampos = 24; 	break;
		
		case "GoogleCalendarEmail6": 			cookiename = "GoogleCalendar"; 			parampos = 25; 	break;
		case "GoogleCalendarName6": 			cookiename = "GoogleCalendar"; 			parampos = 26; 	break;
		case "GoogleCalendarStartDay6": 		cookiename = "GoogleCalendar"; 			parampos = 27; 	break;
		case "GoogleCalendarShowCalendar6": 	cookiename = "GoogleCalendar"; 			parampos = 28; 	break;
		case "GoogleCalendarShowAgenda6": 		cookiename = "GoogleCalendar"; 			parampos = 29; 	break;
		
		case "GoogleCalendarEmail7": 			cookiename = "GoogleCalendar"; 			parampos = 30; 	break;
		case "GoogleCalendarName7": 			cookiename = "GoogleCalendar"; 			parampos = 31; 	break;
		case "GoogleCalendarStartDay7": 		cookiename = "GoogleCalendar"; 			parampos = 32; 	break;
		case "GoogleCalendarShowCalendar7": 	cookiename = "GoogleCalendar"; 			parampos = 33; 	break;
		case "GoogleCalendarShowAgenda7": 		cookiename = "GoogleCalendar"; 			parampos = 34; 	break;
		
		case "GoogleCalendarEmail8": 			cookiename = "GoogleCalendar"; 			parampos = 35; 	break;
		case "GoogleCalendarName8": 			cookiename = "GoogleCalendar"; 			parampos = 36; 	break;
		case "GoogleCalendarStartDay8": 		cookiename = "GoogleCalendar"; 			parampos = 37; 	break;
		case "GoogleCalendarShowCalendar8": 	cookiename = "GoogleCalendar"; 			parampos = 38; 	break;
		case "GoogleCalendarShowAgenda8": 		cookiename = "GoogleCalendar"; 			parampos = 39; 	break;
		
		case "GoogleCalendarEmail9": 			cookiename = "GoogleCalendar"; 			parampos = 40; 	break;
		case "GoogleCalendarName9": 			cookiename = "GoogleCalendar"; 			parampos = 41; 	break;
		case "GoogleCalendarStartDay9": 		cookiename = "GoogleCalendar"; 			parampos = 42; 	break;
		case "GoogleCalendarShowCalendar9": 	cookiename = "GoogleCalendar"; 			parampos = 43; 	break;
		case "GoogleCalendarShowAgenda9": 		cookiename = "GoogleCalendar"; 			parampos = 44; 	break;
		
		case "GoogleCalendarEmail10": 			cookiename = "GoogleCalendar"; 			parampos = 45; 	break;
		case "GoogleCalendarName10": 			cookiename = "GoogleCalendar"; 			parampos = 46; 	break;
		case "GoogleCalendarStartDay10": 		cookiename = "GoogleCalendar"; 			parampos = 47; 	break;
		case "GoogleCalendarShowCalendar10": 	cookiename = "GoogleCalendar"; 			parampos = 48; 	break;
		case "GoogleCalendarShowAgenda10": 		cookiename = "GoogleCalendar"; 			parampos = 49; 	break;
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: CustomRssFeeds 
		//////////////////////////////////////////////////////////////////////////////////////////
		case "RssFeedUrl1": 					cookiename = "CustomRssFeeds"; 			parampos = 0; 	break;
		case "RssFeedName1": 					cookiename = "CustomRssFeeds"; 			parampos = 1; 	break;
		case "RssNoOfItems1": 					cookiename = "CustomRssFeeds"; 			parampos = 2; 	break;
		case "RssShowDate1": 					cookiename = "CustomRssFeeds"; 			parampos = 3; 	break;
		case "RssLinkAction1": 					cookiename = "CustomRssFeeds"; 			parampos = 4; 	break;
		
		case "RssFeedUrl2": 					cookiename = "CustomRssFeeds"; 			parampos = 5; 	break;
		case "RssFeedName2": 					cookiename = "CustomRssFeeds"; 			parampos = 6; 	break;
		case "RssNoOfItems2": 					cookiename = "CustomRssFeeds"; 			parampos = 7; 	break;
		case "RssShowDate2": 					cookiename = "CustomRssFeeds"; 			parampos = 8; 	break;
		case "RssLinkAction2": 					cookiename = "CustomRssFeeds"; 			parampos = 9; 	break;
		
		case "RssFeedUrl3": 					cookiename = "CustomRssFeeds"; 			parampos = 10; 	break;
		case "RssFeedName3": 					cookiename = "CustomRssFeeds"; 			parampos = 11; 	break;
		case "RssNoOfItems3": 					cookiename = "CustomRssFeeds"; 			parampos = 12; 	break;
		case "RssShowDate3": 					cookiename = "CustomRssFeeds"; 			parampos = 13; 	break;
		case "RssLinkAction3": 					cookiename = "CustomRssFeeds"; 			parampos = 14; 	break;
		
		case "RssFeedUrl4": 					cookiename = "CustomRssFeeds"; 			parampos = 15; 	break;
		case "RssFeedName4": 					cookiename = "CustomRssFeeds"; 			parampos = 16; 	break;
		case "RssNoOfItems4": 					cookiename = "CustomRssFeeds"; 			parampos = 17; 	break;
		case "RssShowDate4": 					cookiename = "CustomRssFeeds"; 			parampos = 18; 	break;
		case "RssLinkAction4": 					cookiename = "CustomRssFeeds"; 			parampos = 19; 	break;
		
		case "RssFeedUrl5": 					cookiename = "CustomRssFeeds"; 			parampos = 20; 	break;
		case "RssFeedName5": 					cookiename = "CustomRssFeeds"; 			parampos = 21; 	break;
		case "RssNoOfItems5": 					cookiename = "CustomRssFeeds"; 			parampos = 22; 	break;
		case "RssShowDate5": 					cookiename = "CustomRssFeeds"; 			parampos = 23; 	break;
		case "RssLinkAction5": 					cookiename = "CustomRssFeeds"; 			parampos = 24; 	break;
		
		case "RssFeedUrl6": 					cookiename = "CustomRssFeeds"; 			parampos = 25; 	break;
		case "RssFeedName6": 					cookiename = "CustomRssFeeds"; 			parampos = 26; 	break;
		case "RssNoOfItems6": 					cookiename = "CustomRssFeeds"; 			parampos = 27; 	break;
		case "RssShowDate6": 					cookiename = "CustomRssFeeds"; 			parampos = 28; 	break;
		case "RssLinkAction6": 					cookiename = "CustomRssFeeds"; 			parampos = 29; 	break;
		
		case "RssFeedUrl7": 					cookiename = "CustomRssFeeds"; 			parampos = 30; 	break;
		case "RssFeedName7": 					cookiename = "CustomRssFeeds"; 			parampos = 31; 	break;
		case "RssNoOfItems7": 					cookiename = "CustomRssFeeds"; 			parampos = 32; 	break;
		case "RssShowDate7": 					cookiename = "CustomRssFeeds"; 			parampos = 33; 	break;
		case "RssLinkAction7": 					cookiename = "CustomRssFeeds"; 			parampos = 34; 	break;
		
		case "RssFeedUrl8": 					cookiename = "CustomRssFeeds"; 			parampos = 35; 	break;
		case "RssFeedName8": 					cookiename = "CustomRssFeeds"; 			parampos = 36; 	break;
		case "RssNoOfItems8": 					cookiename = "CustomRssFeeds"; 			parampos = 37; 	break;
		case "RssShowDate8": 					cookiename = "CustomRssFeeds"; 			parampos = 38; 	break;
		case "RssLinkAction8": 					cookiename = "CustomRssFeeds"; 			parampos = 39; 	break;
		
		case "RssFeedUrl9": 					cookiename = "CustomRssFeeds"; 			parampos = 40; 	break;
		case "RssFeedName9": 					cookiename = "CustomRssFeeds"; 			parampos = 41; 	break;
		case "RssNoOfItems9": 					cookiename = "CustomRssFeeds"; 			parampos = 42; 	break;
		case "RssShowDate9": 					cookiename = "CustomRssFeeds"; 			parampos = 43; 	break;
		case "RssLinkAction9": 					cookiename = "CustomRssFeeds"; 			parampos = 44; 	break;
		
		case "RssFeedUrl10": 					cookiename = "CustomRssFeeds"; 			parampos = 45; 	break;
		case "RssFeedName10": 					cookiename = "CustomRssFeeds"; 			parampos = 46; 	break;
		case "RssNoOfItems10": 					cookiename = "CustomRssFeeds"; 			parampos = 47; 	break;
		case "RssShowDate10": 					cookiename = "CustomRssFeeds"; 			parampos = 48; 	break;
		case "RssLinkAction10": 				cookiename = "CustomRssFeeds"; 			parampos = 49; 	break;
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: CustomGadgets1
		//////////////////////////////////////////////////////////////////////////////////////////
		case "GadgetFeedCode1": 				cookiename = "CustomGadget1"; 			parampos = 0; 	break;
		case "GadgetFeedName1": 				cookiename = "CustomGadget1"; 			parampos = 1; 	break;
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: CustomGadgets1
		//////////////////////////////////////////////////////////////////////////////////////////
		case "GadgetFeedCode2": 				cookiename = "CustomGadget2"; 			parampos = 0; 	break;
		case "GadgetFeedName2": 				cookiename = "CustomGadget2"; 			parampos = 1; 	break;
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: NewsTabNewsProviders 
		//////////////////////////////////////////////////////////////////////////////////////////
		case "TopStories": 						cookiename = "NewsTabNewsProviders"; 	parampos = 0; 	break;
		case "InternationalNews": 				cookiename = "NewsTabNewsProviders"; 	parampos = 1; 	break;
		case "EntertainmentNews": 				cookiename = "NewsTabNewsProviders"; 	parampos = 2; 	break;
		case "BusinessNews": 					cookiename = "NewsTabNewsProviders"; 	parampos = 3; 	break;
		case "SciTechNews": 					cookiename = "NewsTabNewsProviders"; 	parampos = 4; 	break;
		case "SportsNews": 						cookiename = "NewsTabNewsProviders"; 	parampos = 5; 	break;
		case "NationalNews": 					cookiename = "NewsTabNewsProviders"; 	parampos = 6; 	break;
		case "StrangeNews": 					cookiename = "NewsTabNewsProviders"; 	parampos = 7; 	break;
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: FunStuffTabSelections 
		//////////////////////////////////////////////////////////////////////////////////////////
		case "GameFeed": 						cookiename = "FunStuffTabSelections"; 	parampos = 0; 	break;
		case "VideosFeed": 						cookiename = "FunStuffTabSelections"; 	parampos = 1; 	break;
		case "ComicArchiveFeed":				cookiename = "FunStuffTabSelections"; 	parampos = 2; 	break;
		case "PuzzlesFeed": 					cookiename = "FunStuffTabSelections"; 	parampos = 3; 	break;
		case "PicsFeed": 						cookiename = "FunStuffTabSelections"; 	parampos = 4; 	break;
		case "JokeFeed": 						cookiename = "FunStuffTabSelections"; 	parampos = 5; 	break;
		case "QuoteFeed": 						cookiename = "FunStuffTabSelections"; 	parampos = 6; 	break;
		case "MessengerFeed": 					cookiename = "FunStuffTabSelections"; 	parampos = 7; 	break;
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: ToolsTabSelections 
		//////////////////////////////////////////////////////////////////////////////////////////
		case "CalendarChoice": 					cookiename = "ToolsTabSelections"; 		parampos = 0; 	break;
		case "EmailFeed": 						cookiename = "ToolsTabSelections"; 		parampos = 1; 	break;
		case "SMSFeed": 						cookiename = "ToolsTabSelections"; 		parampos = 2; 	break;
		
		//////////////////////////////////////////////////////////////////////////////////////////
		// Cookie Name: GoogleMap 
		//////////////////////////////////////////////////////////////////////////////////////////
		case "MapLocationCookie": 				cookiename = "GoogleMap"; 				parampos = 0; 	break;
		case "MapZoomLevelCookie": 				cookiename = "GoogleMap"; 				parampos = 1; 	break;
   		
   		default :								cookiename = null; // If this happens there's been a fuck-up!
	} 
	
	
	// return the cookie name and the parameter's position within the cookie as an array
	return [cookiename, parampos];
	
	
	//return [null, null];
	
	/*
	var CookieArray[2];
	CookieArray[0] = cookiename;
	CookieArray[1] = parampos;
	return CookieArray;
	*/
	
}

 
/*
   name - name of the parameter
   value - value of the parameter
   [expires] - expiration date of the cookie - input in days from now, then changed by script to msecs.
     (defaults to end of current session)
   [path] - path for which the cookie is valid. Try '/' as input.
     (defaults to path of calling document)
   [domain] - domain for which the cookie is valid
     (defaults to domain of calling document)
   [secure] - Boolean value indicating if the cookie transmission requires
     a secure transmission
   * an argument defaults when it is assigned null as a placeholder
   * a null placeholder is not required for trailing omitted arguments
*/
 

function SetCookieParameter(paramname, value, expires, path, domain, secure) 
{		
	// Check that the value parameter doesn't contain the demarcation tag. If it does, the cookie cannot be set, as to do so
	// would really fuck up the cookie structure. First check the string you want to check is longer than the DemarcationTag.
	// Executing this line - value.indexOf(DemarcationTag) - when the DemarcationTag is smaller in length than the value parameter
	// causes this javascript function to bomb-out! Very strange bug!
	if (value.length >= DemarcationTag.length)
	{
		if (value.indexOf(DemarcationTag) != -1)
		{
			alert("The data you entered cannot be processed by FunkyHomepage.com!\n\n You entered data containing the character string " + DemarcationTag + " and this is\n an invalid character string. The reason this caharcter string is invalid is\n because Funky Homepage uses this character string as a demarcation tag for all its\n cookies. If we were allow you to enter this character string then all your cookies\n would go out of alignment, Funky Homepage would cease to function properly on your\n computer, and your head might fall off. This would be bad. Very bad.\n\n Please choose another RSS Feed or gadget for your homepage.\n We would also really appreciate it if you could notify us of this problem by contacting\n us using the 'Feedback/Contact Us' link at the bottom of the page. Please include the\n character string you tried to enter in your correspondance.\n\n We're really sorry about this, funky though we are, we are only human. Really funky humans,\n but humans nonetheless. We will say a thousand hail mary's for this oversight on our part.");
			return false;
		}
	}
	
	// Determine which cookie the parameter belongs in, and its position within that cookie
	// GetCookieStructure function returns these two data items in a 2-element array
	var CookieNameAndParamPos = new Array();
	var CookieNameAndParamPos = GetCookieStructure(paramname);
	var CookieName = CookieNameAndParamPos[0];
	var ParamPos = CookieNameAndParamPos[1];
	
	// return null if cookie name not listed in GetCookieStructure
	if (CookieName == null)
		return null;
	
	
	// Get the cookie data string and split it up using DemarcationTag as a demarker
	// Store all the cookie parameters in an array called Crumbs
	var CookieData = GetCookie(CookieName);
	//alert("SetCookieParameter function: paramname = " + paramname + ". CookieName = " + CookieName + ". ParamPos = " + ParamPos + ". CookieData = " + CookieData);

	
	if (CookieData != null) // if cookie already exists and is not empty
	{
		var Crumbs = new Array();
		var Crumbs = CookieData.split(DemarcationTag);
					
		// Next check to see if existing cookie is filled up with data beyond or up to the ParamPos position 
		// (i.e. beyond or up to the position of the value we wish to insert). Remember that
		// Crumbs.length starts at 1 and ParamPos starts at zero, so we add one to it for the comparison
		if (Crumbs.length >= ParamPos+1) 
		{
			//alert("function SetCookieParameter - branch 1");
			// Set the correct parameter in the cookie array, Crumbs, overwriting the old value
			Crumbs[ParamPos] = value;
	
			//alert("SetCookieParameter function: paramname = " + paramname + ". CookieName = " + CookieName + ". ParamPos = " + ParamPos + ". CookieData = " + CookieData + ". Crumbs[ParamPos] = " + Crumbs[ParamPos]);
	
			// Put all the cookie data from the Crumbs array back into the cookie string (CookieData) using the demarcation tag
			var CookieData = Crumbs[0];
			for (x = 1; x < Crumbs.length; x++)
			{
				CookieData = CookieData + DemarcationTag + Crumbs[x];
			}
		}
		else // cookie exists and is not empty, but is not filled up as far as ParamPos with data
		{
			// Just keep adding null values and the demarcation tag onto the end of CookieData until we reach the position ParamPos - then insert our value 
			for (x = Crumbs.length-1; x < ParamPos; x++) // This logic makes sense!
			{
				CookieData = CookieData + DemarcationTag;
			}
			CookieData = CookieData + value;
			
		}
	}
	else // either cookie does not exist (or is totally empty, which is unlikely!)
	{	
		// create the cookie data string for the first time, split up nulls (nothings) with demarkation tags
		// all the way up to ParamPos, then insert the parameter value at the ParamPos location in the string
		CookieData = "";
		for (x = 1; x <= ParamPos; x++)
		{
			CookieData = CookieData + DemarcationTag;
		}
		CookieData = CookieData + value;
		
		//alert("SetCookieParameter function: paramname = " + paramname + ". CookieName = " + CookieName + ". ParamPos = " + ParamPos + ". value = " + value + ". CookieData = " + CookieData);
	}
	
	// Call function to set the cookie, overwriting the original cookie if necessary
	SetCookie(CookieName, CookieData, expires, path, domain, secure ); 
}

 

/*
  name - name of the desired parameter (stored inside a cookie)
  return string containing value of specified parameter or null
  if cookie or parameter does not exist
  Returns whole parameter
*/
 

function GetCookieParameter(paramname) {
		
	// Determine which cookie the parameter belongs in, and its position within that cookie
	// GetCookieStructure function returns these two data items in a 2-element array
	var CookieNameAndParamPos = new Array();
	var CookieNameAndParamPos = GetCookieStructure(paramname);
	
	//CookieNameAndParamPos[0] = null;
	//CookieNameAndParamPos[1] = null;
	
	var CookieName = CookieNameAndParamPos[0];
	var ParamPos = CookieNameAndParamPos[1];
	
	//return null if cookie not listed in function GetCookieStructure
	if (CookieName == null)
	{	
		return null;
	}
	
	// Get the cookie data string (i.e. the 'value' part of the cookie) as normal using standard GetCookie function
	var CookieData = GetCookie(CookieName);
	
	// return null if cookie is empty or doesn't exist
	if (CookieData == null)
	{	
		return null;
	}
	
	var Crumbs = CookieData.split(DemarcationTag);
	
	//alert("Inside function GetCookieParameter: paramname = " + paramname + ". CookieName = " + CookieName + ". ParamPos = " + ParamPos + ". CookieData = " + CookieData + ". Crumbs[ParamPos] = " + Crumbs[ParamPos]);
	
	// return the correct parameter, or null if parameter doesn't exist
	if (Crumbs[ParamPos] == null || Crumbs[ParamPos] == "")
		return null;
	else
		return Crumbs[ParamPos];
		
}

 

/*
   name - name of the cookie
   [path] - path of the cookie (must be same as path used to create cookie)
   [domain] - domain of the cookie (must be same as domain used to
     create cookie)
   path and domain default if assigned null or omitted if no explicit
     argument proceeds
*/
 
function DeleteCookie( name, path, domain ) {
if ( GetCookie( name ) ) document.cookie = name + "=" +
( ( path ) ? ";path=" + path : "") +
( ( domain ) ? ";domain=" + domain : "" ) +
";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

function DeleteAllCookies() 
{
	var indCookie;
	var cookies = document.cookie.split(";");
	for (i=0;i<cookies.length;i++) {
		indCookie = cookies[i].indexOf("=");
		cName=cookies[i].substring(0,indCookie);
		//SetCookie(cName,'',-1, '', '', ''); //function to set cookies
		DeleteCookie(cName, '', '');
	}
	
	return true;
}

/*
function DeleteAllCookies() 
{
	var Cookies = document.cookie.split(";");

	for ( var Cnt=0; Cnt < Cookies.length; Cnt++ ) {
		var CurCookie = Cookies[Cnt].split("=");
		if ( CurCookie[0] ) {
			this.set(CurCookie[0].replace(/^\s*|\s*$/g,""), "", -1);
		};
	};

	// Return "true"
	return true;

};
*/
 
// date - any instance of the Date object
// * hand all instances of the Date object to this function for "repairs"
 
function fixDate(date) {
  var base = new Date(0);
  var skew = base.getTime();
  if (skew > 0)
    date.setTime(date.getTime() - skew);
}