/* Find the referral code sent from via the link-address and write a cookie */
function folionav_trackAffiliateCode()
{
	var strQSOriginLink;
	var strQSOriginOffer;
	var strQSOriginURL = location.href;

	//Check if value is defined in query string
	strQSOriginLink = qs_getQueryStringValue('ref');
	strQSOriginOffer = qs_getQueryStringValue('offer');
	if ((strQSOriginLink !=null)&&(strQSOriginOffer !=null))
	{
		//Store status in a cookie so that this can be passed to Folio website
		WM_setCookie('wbsReferrerCode', strQSOriginLink, 0.1, '/'); //hours duration
		WM_setCookie('wbsOffersLink', strQSOriginURL, 0.1, '/'); //hours duration
		WM_setCookie('wbsCurrentOffer', strQSOriginOffer, 0.1, '/'); //hours duration
	}
	return strQSOriginLink;
}

/* Find the referral code sent from via the link-address */
function folionav_getAffiliateCode()  //read from cookie
{
	var strQSOriginLink;

	//Put the cookie into a variable to pass to Folio
	strCookieOriginLink = WM_readCookie('wbsReferrerCode');
	
	//Pass the cookie back to the booking form function so that the referrer code can be used in Folio
	return strCookieOriginLink;
}

/* Find the URL code sent from via the link-address */
function folionav_getAffiliateURL()  //read from cookie
{
	var strQSOriginURL;

	//Put the cookie into a variable to pass to Folio
	strCookieOriginURL = WM_readCookie('wbsOffersLink'); 
	
	//Pass the cookie back to the booking form function so that the referrer code can be used in Folio
	return strCookieOriginURL;
}

/* Find the offer code sent from via the link-address */
function folionav_getAffiliateOffer()  //read from cookie
{
	var strQSOriginOffer;

	//Put the cookie into a variable to pass to Folio
	strCookieOriginOffer = WM_readCookie('wbsCurrentOffer'); 
	
	//Pass the cookie back to the booking form function so that the referrer code can be used in Folio
	return strCookieOriginOffer;
}

/* Find the referral code sent from via the link-address */
function applyAffiliateImage1()
{
	variableCode = folionav_getAffiliateCode();
	variableURL = folionav_getAffiliateURL();
	variableOffer = folionav_getAffiliateOffer();	
	if ((variableCode == "thetimesbazaar")&&(variableOffer!=""))
	{
		//document.write("<div id=\"c_referrer_image\"><div><img class=\"c_referrer_img\" width=\"182\" src=\"images/"+variableCode+".jpg\"></div></div>");
		document.write("<img alt=\"The Times Bazaar Special Offers\" src=\"../"+variableCode+"/banner.gif\">");	
	}
	else
	{
		document.write("<div id=\"submenu_24\"></div>");	
	}
}

/* Find the referral code sent from via the link-address */
function applyAffiliateImage2()
{
	//variableCode = folionav_getAffiliateCode();
	//variableURL = folionav_getAffiliateURL();
	if ((variableCode == "thetimesbazaar")&&(variableOffer!=""))
	{
		document.write("<div class=\"c_referrer_image\"><div><img class=\"c_referrer_img\" alt=\"The Times Bazaar Special Offers\" src=\"../"+variableCode+"/square.gif\" /></div></div><div class=\"c_referrer_image\"><div><a href=\"../"+variableCode+"/"+variableOffer+".htm\"><img class=\"c_referrer_img\" alt=\"The Times Bazaar Special Offers - "+variableOffer+"\" src=\"../"+variableCode+"/"+variableOffer+".gif\" /></a></div></div>");
	}
}

/*_____________________________________________________*/
// Class: PageQueryString
// Purpose: Allows simple access to key-value pairs stored in querystring
// Input: Value of querystring
function qs_PageQuery(qs)
{
	if(qs.length > 1) this.strQS = qs.substring(1, qs.length);
	else this.strQS = null;
	this.keyValuePairs = new Array();
	if(this.strQS)
	{
		for (var i=0; i < this.strQS.split("&").length; i++)
		{
			this.keyValuePairs[i] = this.strQS.split("&")[i];
		}
	}
	
	// Purpose: Getter
	this.getKeyValuePairs = function()
	{
		return this.keyValuePairs;
	}
	
	// Purpose: Returns value from querystring
	// Input: key (string)
	this.getValue = function(key) 
	{
		for(var j=0; j < this.keyValuePairs.length; j++) {
		if(this.keyValuePairs[j].split("=")[0] == key)
			return unescape(this.keyValuePairs[j].split("=")[1]);
		}
		return null;
	}
	
	this.getParameters = function() {
		var a = new Array(this.getLength());
		for(var j=0; j < this.keyValuePairs.length; j++)
		{
			a[j] = this.keyValuePairs[j].split("=")[0];
		}
		return a;
	}

	this.getLength = function() 
	{
		return this.keyValuePairs.length; 
	} 
}

// Purpose: Shortcut function to returns value stored in querystring
// Remarks: qs_PageQuery object more efficient if checking multiple values
function qs_getQueryStringValue(key)
{
	var page = new qs_PageQuery(window.location.search); 
	return page.getValue(key); 
}
/*_____________________________________________________________*/

/*
WM_setCookie(), WM_readCookie(), WM_killCookie()
A set of functions that eases the pain of using cookies.

Source: Webmonkey Code Library
(http://www.hotwired.com/webmonkey/javascript/code_library/)

Author: Nadav Savio
Author Email: nadav@wired.com
*/

// This next little bit of code tests whether the user accepts cookies.
var WM_acceptsCookies = false;
if(document.cookie == '') {
    document.cookie = 'WM_acceptsCookies=yes'; // Try to set a cookie.
    if(document.cookie.indexOf('WM_acceptsCookies=yes') != -1) {
	WM_acceptsCookies = true; 
    }// If it succeeds, set variable
} else { // there was already a cookie
  WM_acceptsCookies = true;
}


function WM_setCookie (name, value, hours, path, domain, secure) {
    if (WM_acceptsCookies) { // Don't waste your time if the browser doesn't accept cookies.
	var not_NN2 = (navigator && navigator.appName 
		       && (navigator.appName == 'Netscape') 
		       && navigator.appVersion 
		       && (parseInt(navigator.appVersion) == 2))?false:true;

	if(hours && not_NN2) { // NN2 cannot handle Dates, so skip this part
	    if ( (typeof(hours) == 'string') && Date.parse(hours) ) { // already a Date string
		var numHours = hours;
	    } else if (typeof(hours) == 'number') { // calculate Date from number of hours
		var numHours = (new Date((new Date()).getTime() + hours*3600000)).toGMTString();
	    }
	}
	document.cookie = name + '=' + escape(value) + ((numHours)?(';expires=' + numHours):'') + ((path)?';path=' + path:'') + ((domain)?';domain=' + domain:'') + ((secure && (secure == true))?'; secure':''); // Set the cookie, adding any parameters that were specified.
    }
} // WM_setCookie


function WM_readCookie(name) {
    if(document.cookie == '') { // there's no cookie, so go no further
	return false; 
    } else { // there is a cookie
	var firstChar, lastChar;
	var theBigCookie = document.cookie;
	firstChar = theBigCookie.indexOf(name);	// find the start of 'name'
	var NN2Hack = firstChar + name.length;
	if((firstChar != -1) && (theBigCookie.charAt(NN2Hack) == '=')) { // if you found the cookie
	    firstChar += name.length + 1; // skip 'name' and '='
	    lastChar = theBigCookie.indexOf(';', firstChar); // Find the end of the value string (i.e. the next ';').
	    if(lastChar == -1) lastChar = theBigCookie.length;
	    return unescape(theBigCookie.substring(firstChar, lastChar));
	} else { // If there was no cookie of that name, return false.
	    return false;
	}
    }	
} // WM_readCookie

function WM_killCookie(name, path, domain) {
  var theValue = WM_readCookie(name); // We need the value to kill the cookie
  if(theValue) {
      document.cookie = name + '=' + theValue + '; expires=Fri, 13-Apr-1970 00:00:00 GMT' + ((path)?';path=' + path:'') + ((domain)?';domain=' + domain:''); // set an already-expired cookie
  }
} // WM_killCookie