function MM_swapImage() {
  var i,theObj,j=0,swapArray=new Array,oldArray=document.MM_swapImgData;
  for (i=0; i < (MM_swapImage.arguments.length-2); i+=3) {
    theObj = eval(MM_swapImage.arguments[(navigator.appName == 'Netscape')?i:i+1])
    if (theObj != null) {
      swapArray[j++] = theObj;
      swapArray[j++] = (oldArray==null || oldArray[j-1]!=theObj)?theObj.src:oldArray[j];
      theObj.src = MM_swapImage.arguments[i+2];
  } }
  document.MM_swapImgData = swapArray; //used for restore
}

function MM_swapImgRestore() {
  if (document.MM_swapImgData != null)
    for (var i=0; i<(document.MM_swapImgData.length-1); i+=2)
      document.MM_swapImgData[i].src = document.MM_swapImgData[i+1];
}

function getURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (
aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return strReturn;
}

//COOKIE MANIPULATION FUNCTIONS
/*
   name - name of the cookie
   value - value of the cookie
   [expires] - expiration date of the cookie
     (defaults to end of current session)
   [path] - path for which the cookie is valid
     (defaults to path of calling document)
   [domain] - domain for which the cookie is valid
     (defaults to domain of calling document)
   [secure] - Boolean value indicating if the cookie transmission requires
     a secure transmission
   * an argument defaults when it is assigned null as a placeholder
   * a null placeholder is not required for trailing omitted arguments
*/

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

function setGroupCookie(grp) {
  var sf = document.signup;
  var lsf = document.quicksignup;

  if( grp == null || grp.length < 1 || grp == "none" ) {
    deleteCookie("group", "/", null);
    grp = null;
    if( sf ) sf.primaryGroup.value = "none";
    if( lsf ) lsf.primaryGroup.value = "none";
  } else {
    grporig = ""+grp;
    grp = grp.replace(/[^a-zA-Z0-9]+/g, "-");
    grp = grp.replace(/^\-+/, "");
    grp = grp.replace(/\-+$/, "");
    grp = grp.toLowerCase();

    if( grp.length < 1 ) {
      alert("Your group name " + grporig + " was not accepted.  Group names must have letters or numbers, and all other characters will be converted to dashes."); 
      return null;
    } else {
      if( grp == "none" ) {
        deleteCookie("group", "/", null);
        grp = null;
        if( sf ) sf.primaryGroup.value = "none";
        if( lsf ) lsf.primaryGroup.value = "none";
      } else {
        setCookie("group", grp, null, "/", null, null);
        if( sf ) sf.primaryGroup.value = grp;
        if( lsf ) lsf.primaryGroup.value = grp;
      }
    }
  }

  return grp;
}

/*
  name - name of the desired cookie
  return string containing value of specified cookie or null
  if cookie does not exist
*/

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}


/*
   name - name of the cookie
   [path] - path of the cookie (must be same as path used to create cookie)
   [domain] - domain of the cookie (must be same as domain used to
     create cookie)
   path and domain default if assigned null or omitted if no explicit
     argument proceeds
*/

function deleteCookie(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

// date - any instance of the Date object
// * hand all instances of the Date object to this function for "repairs"

function fixDate(date) {
  var base = new Date(0);
  var skew = base.getTime();
  if (skew > 0)
    date.setTime(date.getTime() - skew);
}

function printGroupParam() {
  var grp = getCookie('group');
  if( grp ) return "?group="+grp;
  else return "";
}

//get the group from the URL request parameter (if any) and put it in the cookie
var grp = getURLParam("group");
if( grp && grp.length > 0 ) setGroupCookie(grp);
