/**
 * ABC Partner Tagging v1.0, 7/10/2006
 * Copyright 2006 Association of Bridal Consultants
 *
**/

// ABC-specific
function ABCtracker() {
	var referral = ABCgetURLParam('referral');
	if (referral != '112531') {
		return false;
	}
	var member = ABCgetURLParam('ABC');
	if ( !member ) {
		member = 'general';
	} 
	ABCsetCookie( 'ABC', member, 90, "/", ".sandals.com", true );
}

/** ABC pixel tag containing needed partner info
 * v1 = booking number
 * v2 = brand (Sandals)
 * v3 = first name
 * v4 = last name
 * v5 = amount (number)
 * v6 = checkout date
 * v7 = length of stay (number of nights)
**/
function ABCtag( args ) {
	var member = ABCgetCookie('ABC');
	if (!member) {
		return false;
	}
	var imgtag = 'https://www.bridalassn.com/partner/img'
		+ '?member=' + escape(member)
		+ '&v1=' + escape(args.v1)
		+ '&v2=' + escape(args.v2)
		+ '&v3=' + escape(args.v3)
		+ '&v4=' + escape(args.v4)
		+ '&v5=' + escape(args.v5)
		+ '&v6=' + escape(args.v6)
		+ '&v7=' + escape(args.v7)
		+ '&v8=' + escape(args.v8)
		+ '&v9=' + escape(args.v9)
		+ '&v10=' + escape(args.v10);
	document.write('<img src="'+imgtag+'" width="1" height="1" border="0">');
}

// Cookie functions
// These are public domain, just renamed with the ABC prefix to avoid name
// collisions

/**
 * Sets a Cookie with the given name and value.
 *
 * name       Name of the cookie
 * value      Value of the cookie
 * [expires]  Number of days before cookie expires (default: end of current session)
 * [path]     Path where the cookie is valid (default: path of calling document)
 * [domain]   Domain where the cookie is valid
 *              (default: domain of calling document)
 * [secure]   Boolean value indicating if the cookie transmission requires a
 *              secure transmission
 */
function ABCsetCookie(name, value, expires, path, domain, secure) {

/*
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
*/
	var expires_date;
	if ( expires )
	{
		// set time, it's in milliseconds
		var today = new Date();
		today.setTime( today.getTime() );
		expires = expires * 1000 * 60 * 60 * 24;
		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" : "");
}

/**
 * Gets the value of the specified cookie.
 *
 * name  Name of the desired cookie.
 *
 * Returns a string containing value of specified cookie,
 *   or null if cookie does not exist.
 */
function ABCgetCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

/**
 * Deletes the specified cookie.
 *
 * 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)
 */
function ABCdeleteCookie(name, path, domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

// Parse URL params
function ABCgetURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?"));
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (
aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return strReturn;
}

