///////////////////////////////////////////////////////////////////////////////////////
// 
// flash-jscript.js
//
// Gets Query String params / Gets & Sets Cookie params.
// Flash action script call example getURL("javascript:GetCookie(\"" + name + "\")")
// Parameters are returned to the Flash Movie in the <OBJECT/> def written to HTML
// 
///////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////
// Secondary Website functions
///////////////////////////////////////////////////////////////////////////////////////

// Primary 
function fnPrimary()
{
} 

// Analytics ID different for each website
function fnAnalyticsID()
{
  var id = "UA-2369635-1";
  return id;
}

///////////////////////////////////////////////////////////////////////////////////////
// URL Query String handling functions
///////////////////////////////////////////////////////////////////////////////////////

// Get the a parameter value from the URL Query String 
function fnGetURLParam(paramName)
{
  var value = "";
  var urlString = window.location.href;

  if (urlString.indexOf("?") > -1 )
  {
    var query = urlString.substring(urlString.indexOf("?"));
    var queryParams = query.split("&");
    for (var param = 0; param < queryParams.length; param++ )
    {
      if (queryParams[param].indexOf(paramName + "=") > -1 )
      {
        var keyval = queryParam[param].split("=");
        value = keyval[1];
        break;
      }
    }
  }

  return value;
} 

// Get URL part from URL string 
function fnGetURLString()
{
  var value = "";
  var urlString = window.location.href;
  var startsAt = strHref.indexOf("?");
  
  if (startsAt >= 0)
  {
    value = urlString.substring(0, startsAt);
  }

  return value;
} 

// Get Query String from URL string 
function fnGetQueryString()
{
  var value = "";
  var urlString = window.location.href;
  var startsAt = urlString.indexOf("?");
  
  if (startsAt >= 0)
  {
    value = urlString.substring(startsAt+1);
  }

  return value;
} 

// Get Query String from URL string 
function fnGetQueryParam(count)
{
  var value = "";
  var query = fnGetQueryString()
  
  if (query.length > 0)
  {
    var params = query.split("&");
    if (params.length > count) value = params[count]
  }

  return value;
} 

///////////////////////////////////////////////////////////////////////////////////////
// Cookie handling functions
///////////////////////////////////////////////////////////////////////////////////////

// Return GMT string of the current time + exHours
function fnExpireString(expiresHours)
{
  var expires = new Date();
  var exiresSeconds;

  if (expiresHours < 1) expiresHours = 1;
  if (expiresHours > 1000) expiresHours = 1000;
  expiresSeconds = (expiresHours * 3600);
  expires.setSeconds(expires.getSeconds() + expiresSeconds); 

  return expires.toGMTString();
}

// Returns the value for a given (name) 
function fnGetCookie(cookieName)
{
  var cookieValue = document.cookie;
  var cookieStartsAt = cookieValue.indexOf(" " + cookieName + "=");

  if (cookieStartsAt == -1)
  {
    cookieStartsAt = cookieValue.indexOf(cookieName + "=");
  }

  if (cookieStartsAt == -1)
  {
    cookieValue = "";
  }
  else
  {
    cookieStartsAt = cookieValue.indexOf("=", cookieStartsAt) + 1;
    var cookieEndsAt = cookieValue.indexOf(";", cookieStartsAt);
    if (cookieEndsAt == -1)
    {
      cookieEndsAt = cookieValue.length;
    }
    cookieValue = cookieValue.substring(cookieStartsAt, cookieEndsAt);
  }

  return cookieValue;
}

// Combines the Page Number and Type with the Cookies to produce flashVars array 
function fnFlashVars(name1, value1, name2, value2)
{
  var cookieValue = document.cookie;
  var startsAt = 0;
  var endsAt = cookieValue.indexOf(";", startsAt);
  var valueAt = 0;
  var name = "";
  var value = "";
  
  // Initialise FlashVars
  var flashVars = { };
  flashVars[name1] = value1;
  flashVars[name2] = value2;
  // Add Cookie Values
  if (endsAt == -1) endsAt = cookieValue.length;
  while (startsAt < endsAt)
  {
    while (cookieValue.charAt(startsAt) == " ") startsAt++;
    valueAt = cookieValue.indexOf("=", startsAt);
    if (cookieValue.charAt(startsAt) != "_")
    {
      name = cookieValue.substring(startsAt, valueAt);
      value = cookieValue.substring(valueAt + 1, endsAt);
      flashVars[name] = value;
    }
    startsAt = endsAt + 1;
    endsAt = cookieValue.indexOf(";", startsAt);
    if (endsAt == -1) endsAt = cookieValue.length;
  }
  // Add URL query params
  var query = fnGetQueryString()
  if (query.length > 0)
  {
    var params = query.split("&");
    var count = 0;
    while (count < params.length)
    {
      startsAt = params[count].indexOf("=");
      name = params[count].substring(0,startsAt);
      value = params[count].substring(startsAt+1);
      count++;
      flashVars[name] = value;
    }
  }

  return flashVars;
}

// Set values in cookie - domain = automatic , path = automatic , expires = number of hours
function fnSetCookie(cookieName, cookieValue, expiresHours)
{
  var cookieExpires;

  cookieValue = cookieValue;
  cookieExpires = fnExpireString(expiresHours);

  document.cookie = cookieName + "=" + cookieValue + ";expires=" + cookieExpires;
}
