// Begin Aptimus
// Cookie code
// To get a cookie value by name use function:
// returnPopulatedValue(cookieName,attributeName);
// @returns query string and if none the value from the specified cookie (if avialable)
// Note cookie functions other than set and get are expecting name = value pairs and are "&" delimited

var theCookieName = "phoenix_prepop";
function setCookie(cookieName,cookieValue,expires,path,domain,secure)
{
  var curCookie = cookieName + "=" + escape(cookieValue) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}
function getCookie(cookieName)
{
  var dc = document.cookie;
  var prefix = cookieName + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1)
  {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  }
  else begin += 2;

  var end = dc.indexOf(";", begin);
  if (end == -1) end = dc.length;

  var returnVal = unescape( dc.substring( begin + prefix.length, end ) );
  return returnVal;
}
function deleteCookie(cookieName, path, domain)
{
  var now = new Date();
  fixDate( now ); // fix the bug in Navigator 2.0, Macintosh
  var expired = new Date(now.getTime() - 28 * 24 * 60 * 60 * 1000); // 28 days ago

  if ( getCookie( cookieName ) )
  {
    document.cookie = cookieName + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=" + expired.toGMTString();
  }
}
function fixDate(date)
{
  var base = new Date(0);
  var skew = base.getTime();
  if (skew > 0) date.setTime(date.getTime() - skew);
}

function returnUrlAttributeValue(attributeName) {
  var pageURL = document.location.href;
  if (pageURL.indexOf('?') != -1) {
    var queryString = pageURL.substring(pageURL.indexOf('?') + 1,pageURL.length);
    var queryStringArray = queryString.split("&");
    for ( var i=0, v=queryStringArray.length; i<v; i++) {
      curItem = queryStringArray[i];
      if (curItem.substring(0,curItem.indexOf("=")).toLowerCase() == attributeName.toLowerCase()) {
        return curItem.substring(curItem.indexOf("=") + 1,curItem.length);
        break;
      }
    }
    return "";
  } else {
    return "";
  }
}
function returnCookieAttributeValue(cookieName,attributeName) {
  var cookieValue = getCookie(cookieName);
  var cookieValueArray = ( cookieValue ) ? cookieValue.split("&") : "";
  for (var i=0, v=cookieValueArray.length; i<v; i++) {
    curItem = cookieValueArray[i];
    if (curItem.substring(0,curItem.indexOf("=")).toLowerCase() == attributeName.toLowerCase()) {
      return curItem.substring(curItem.indexOf("=") + 1,curItem.length);
      break;
    }
  }
  return "";
}
function setCookieValue(cookieName,nameValuePair) {
  var thisCookie = getCookie(cookieName);
  var thisDelimiter = (thisCookie) ? "&" : "";
  if ( thisCookie != null ) {
    var thisName = nameValuePair.substring(0,nameValuePair.indexOf("="));
    if (thisCookie.indexOf(thisName) == -1) {
      setCookie(cookieName,thisCookie + thisDelimiter + nameValuePair,'','/');
    } else {
	  var arrCookiePairs = thisCookie.split("&");
	  if ( arrCookiePairs.length > 0 ) {
		  var strNameToMatch = nameValuePair.split("=")[0];
		  var strNewValue = nameValuePair.split("=")[1];
		  var strNewCookie = "";
		  for (var i=0, j=arrCookiePairs.length; i<j; i++) {
			if ( arrCookiePairs[i].split("=").length > 1 ) {
				var strCurName = arrCookiePairs[i].split("=")[0];
				if ( strCurName == strNameToMatch ) {
					strNewCookie = strNewCookie + strCurName + "=" + strNewValue;
				} else {
					strNewCookie = strNewCookie + arrCookiePairs[i];
				}
				if (i+1 != j) strNewCookie = strNewCookie + "&";
			}
		  }
	  }
	  if ( strNewCookie != "" ) {
      	setCookie(cookieName,strNewCookie,'','/');
      }
    }
  }
  else {
    setCookie(cookieName,nameValuePair,'','/');
  }
}
function returnPopulatedValue(cookieName,attributeName,defaultValue) {
  var urlAttributeValue = returnUrlAttributeValue(attributeName);
  if (urlAttributeValue != "") {
    // Get Value From URL
    // Phone Check
    if (attributeName == "CLPhone" && !returnSimplePhoneCheck(urlAttributeValue)) {
      return defaultValue;
    }
    return urlAttributeValue;
  } else {
    // Get Value From Cookie
    strCookieVal = returnCookieAttributeValue(cookieName,attributeName);
    if (strCookieVal == "" && defaultValue) {
      return defaultValue;
    } else {
      return strCookieVal;
    }
  }
}
function addQueryParamsToCookie(cookieName) 
{
  var pageURL = document.location.href;
  if (pageURL.indexOf('?') != -1) {
    var queryString = pageURL.substring(pageURL.indexOf('?') + 1,pageURL.length);
    var queryStringArray = queryString.split("&");
    for ( var i=0, v=queryStringArray.length; i<v; i++) {
      curItem = queryStringArray[i];
      setCookieValue(cookieName,curItem);
    }
  }
}
function cookieArgSpooler(cookieName,args)
{
  var arrArgs = args.split(",");
  for (var i=0, n=arrArgs.length; i<n; i++) {
    thisValue = returnUrlAttributeValue(arrArgs[i]);
    if (thisValue == "" && arrArgs[i].indexOf("=") != -1) {
      thisValue = arrArgs[i].substring(arrArgs[i].indexOf("=") + 1, arrArgs[i].length);
    }
    if (returnUrlAttributeValue(arrArgs[i]) != "") {
      setCookieValue(cookieName,arrArgs[i] + "=" + thisValue);
    }
  }
}