//GLOBAL FUNCTIONS - START
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

function decode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);

   return output;
}

function getArgs(arg_name, str) {
 var value = "", tmpstr = "";
 if (!str) str = location.search.substring(1);
 if (!str) return value;
 else {
  var tmparray = str.split("&");
  for (var i=0; i<tmparray.length; i++) {
   tmpstr = tmparray[i];
   if (tmpstr.indexOf(arg_name + "=") != -1) {
    var tmp2array = tmparray[i].split("=");
    value = tmp2array[1];
   }
  }
 }
 return value;
}

//GLOBAL FUNCTIONS - END

function getOmniVars(country,extraArg) {
  /* reporting suite definitions */
  var s_customer = "noncustomer";
  var orgStatus  = "";
  var login      = "";
  var omni_path	 = "APPX:" + country + ":";
  // detect if visitor is a user
  if (dojo.io.cookie.get('oinfo')) {
    orgStatus = getArgs('status',decode64(dojo.io.cookie.get('oinfo')));
  }
  if ((orgStatus != "" && orgStatus.toUpperCase != "TRIAL") || 
      (getArgs('user')==1)) {
    s_customer = 'customer';
  }
  /*** COMMENT OUT FOR NOW
       if (dojo.io.cookie.get('login')) {
         login = dojo.io.cookie.get('login');
       }
  */
  var path = location.pathname;
  var page = path.substring(path.lastIndexOf("/")+1,path.indexOf(".jsp"));
  var searchFlag = false;
  switch(page) {
  case "/appexchange/" :
  case "/" :
    page = "index";
    break;
  case "category_list" : 
    page = "directory:" + extraArg;
    break;
  case "search" :
    var failedString = (extraArg == 0)? ":failed" : "";
    page += ":" + getArgs("category",location.search).toLowerCase();
    searchFlag = true;
    break;
  case "my_applications" :
    if(location.search != "") {
      page += ":" + getArgs("tab",location.search);
    }
    break;
  case "addedit_review" :
    page = "application:" + extraArg + ":addreview";	
    break;
  case "partner_contact" :
  case "learnmore" :
  case "demoit" :
    page += ":" + getArgs("id",location.search);
    break;
  }
  
  if (page.indexOf("detail_") > -1) {
    page = "application:" + extraArg + ":";
    page += path.substring(path.lastIndexOf("_")+1,path.indexOf(".jsp"));
  }
  omni_path += page;
  
  var eVar2 = (searchFlag)? getArgs("search",location.search).toLowerCase() : "";
  var omniVars = {
    pageName : omni_path,
    server   : "",
    channel  : "",
    pageType : "",
    charSet  : "UTF-8",
    prop1    : (searchFlag)? "/" + country + "/appexchange/search:" + eVar2 + failedString : top.location.href,
    prop3    : s_customer, // customer
    prop8    : login, // login
    campaign : "",  // passing camp, campaignId, d, etc in via .js file
    events   : "",
    eVar1    : "",  // form abandonment
    eVar2    : eVar2,  // internal search
    eVar3    : "",  // for search center
    eVar4    : s_customer,  // customer
    eVar5    : "",
    eVar6    : ""  // demo type
  };

  return omniVars;
}


