// constant value, needs to be the parameter name from image map HREF value
var productParam = "id";

// uncomment cmSetProduction() when site goes live
//cmSetProduction();

// utility for parsing event data
function getTagParam(paramName, url) {
  var urlParts = url.split('?', 2);
  var query;
  if (urlParts.length < 2) {
    query = url;
  } else {
    query = urlParts[1];
  }
  var params = query.split('&');
  for (idx = 0; idx < params.length; ++idx) {
    var keyValue = params[idx].split('=');
    if (keyValue[0] == paramName) {
      // parameter found
      return keyValue[1];
    }
  }
  // not found
  return "";
}

function localDecode(encodedString) {
    return decodeURIComponent(decodeURI(encodedString));
}

// event log handler
var currentPageTitle = "";           
var currentCategory = "";               // Save this value between eventLog calls, 
                                        // primarily used for eCatalogs.                 
function s7Tag(message) {
  // parse parameters
  var eventParams = message.split(",", 3);
  if (eventParams.length < 1) {
    return;  // should not happen
  }
  var eventType = eventParams[0].toString();

  var eventData = "";
  if (eventParams.length > 1) {
    eventData = localDecode(eventParams[1].toString());
  }

  // handle events
  if (eventType == "PAGE") {
    // PAGE LOAD EVENT, set currentCategory and currentPageTitle for future use
    currentCategory = company + sku + "_PAGE" + eventData;
    if (eventParams.length > 2) {
        currentPageTitle = localDecode(eventParams[2].toString());
    } else {
        currentPageTitle = "Page " + eventData;
    }
    cmCreatePageviewTag(currentPageTitle, currentCategory, null, null);
  } else if (eventType == "ITEM") {
    // ROLLOVER EVENT 
    //var p = getTagParam(productParam, eventData);
    //cmCreateProductviewTag(p, p, currentCategory + "_PRODUCTS_ROLLOVER", null, null, null);
  } else if (eventType == "HREF") {
    // CLICK EVENT
    var p = getTagParam(productParam, eventData);
    if (p == "") {
      // no product id, don't track event
    } else {
      cmCreateProductviewTag(p, p, currentCategory + "_PRODUCTS_CLICK", null, null, null);
    }
  } else if (eventType == "PAN") {
    // PAN EVENT
    cmCreatePageviewTag(currentPageTitle, currentCategory + "_PAN", null, null);
  } else if (eventType == "ZOOM") {
    // ZOOM EVENT
    cmCreatePageviewTag(currentPageTitle, currentCategory + "_ZOOM", null, null);
  } else if (eventType == "SEARCH") {
    // SEARCH EVENT
    // for 3.7.1 viewer release - eventData contains search text only
  }
}
