  var locale, vn, cStr;
  var new_site, new_url, new_path;
  var LC_NAME = "lc";
  var VN_NAME = "vn";
  var VN_DEFAULT = 1.0;
  var days = 30;
  var expDate = new Date();
  var url = /(\w+):\/\/([\w.|-]+)\/(\S*)/;
  var path_patrn = /global\/..\//;

  expDate.setTime (expDate.getTime() + (days * 24 * 60 * 60 * 1000));

  cur_site = "";
  new_site = "";
  parms = "";
  parms = getCookie ("GTAC_parms");
 
  var cur_url = window.location.href;
  var result = cur_url.match(url);

  /* Get current URL path */
  if (result != null)
  {
     var fullurl = result[0];
     var protocol = result[1];
     var host = result[2];
     var cur_path = result[3];

     result = path_patrn.exec(cur_path);

     /* Eliminate the global subdir for non-us site */
     if (result != null)
     {
       cur_site = result[0];
       new_path = cur_path.split(cur_site);
       cur_path = new_path[1];
     }
  }

  if (parms != null)
  {
    /* Get cookie value for locale and version */
    locale = "";
    locale = getCookiePair( parms, LC_NAME );
    vn = getCookiePair( parms, VN_NAME );

    /* Set global subdir for the locale */
    switch (locale)
    {
      case "br" : new_site = "global/br/";
                     break;
      case "cn" : new_site = "global/cn/";
                     break;
      case "de" : new_site = "global/de/";
                     break;
      case "es" : new_site = "global/es/";
                     break;
      case "fr" : new_site = "global/fr/";
                     break;
      case "hk" : new_site = "global/hk/";
                     break;
      case "hu" : new_site = "global/hu/";
                     break;
      case "it" : new_site = "global/it/";
                     break;
      case "ja" : new_site = "global/ja/";
                     break;
      case "ko" : new_site = "global/ko/";
                     break;
      case "po" : new_site = "global/po/";
                     break;
      case "ru" : new_site = "global/ru/";
                     break;
      case "sv" : new_site = "global/sv/";
                     break;
      case "us" : new_site = "";
                     break;
    }

    cStr = "";
    cStr = LC_NAME + "=" + locale + "&" + VN_NAME + "=" + VN_DEFAULT;

    /* Update cookie with new expiration date */
    setCookie ("GTAC_parms", cStr, expDate, "/", ".ugs.com");

    /* Redirect if target site is different than current one */
    if (new_site != cur_site)
    {
      new_url = protocol + "://" + host + "/" + new_site + cur_path;
      window.location = new_url;
    }
  }


function setURL()
{
  var  idx, locale, new_url;

  var cStr = "";
  var new_site = "";

  /* Set cookie with the locale selected */
  idx = document.fLocale.LC.selectedIndex;
  locale = document.fLocale.LC.options[idx].value;
  cStr = LC_NAME + "=" + locale + "&" + VN_NAME + "=" + VN_DEFAULT;

  setCookie ("GTAC_parms", cStr, expDate, "/", ".ugs.com");

  /* Determine the correct path for the selected site and redirect */ 
  if (locale != "us" )
  {
    new_site = "global/" + locale + "/";
  }

  new_url = protocol + "://" + host + "/" + new_site + cur_path;
  window.location = new_url;
}


function getCookiePair (ckStr, parm_name)
{            
  var ck_pair;
  var ck_name;
  var ck_val;
  var icnt;
 
  var ck_array = ckStr.split("&");

  /* Extract the value for the desired pair */
  for (icnt=0; icnt < ck_array.length; icnt++)
  {
    ck_pair = ck_array[icnt].split("=");
    ck_name = ck_pair[0];
    ck_val = ck_pair[1]; 
    
    if (ck_name == parm_name) 
    {
      return ck_val;
    }
  }
  
  return null;
}

   
function setCookie (name, value, expires, ckpath, domain, secure) 
{            
  document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((ckpath) ? "; path=" + ckpath : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}                                                                            


function getCookieVal (offset) 
{
  var endstr = document.cookie.indexOf (";", offset);

  if (endstr == -1) 
  {
    endstr = document.cookie.length;
  }

  return unescape(document.cookie.substring(offset, endstr));
}

function getCookie (cname) 
{
  var arg = cname + "=";
  var argLen = arg.length;
  var cLen = document.cookie.length;
  var i = 0;

  while (i < cLen) 
  {
    var j = i + argLen;

    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);

    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break;
  }

  return null;
}
