function SetCookie(sName, sValue, vExpire, sPath)
{
  var vCookie = sName + "=" + escape(sValue);
  if ( vExpire != null ) {
    vCookie += ";  expires=" + vExpire.toGMTString();
  }
  if ( sPath != null ) {
    vCookie += "; path="+sPath;
  }
  document.cookie = vCookie;
}

function GetCookie(sName)
{
  // cookies are separated by semicolons
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++)
  {
    // a name/value pair (a crumb) is separated by an equal sign
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0]) 
      return unescape(aCrumb[1]);
  }

  // a cookie with the requested name does not exist
  return null;
}

var gid = 0;
function getUniqueID()
{
  var uid = new Date().getTime() + "_" + (gid++);
  return uid;
}

function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}

function addEvent(obj, name, func)
{
  if ( obj.attachEvent ) {
    obj.attachEvent("on"+name, func);
  } else if ( obj.addEventListener ) {
    obj.addEventListener(name, func, true);
  } else {
    obj["on"+name] = func;
  }
}

function removeEvent(obj, name, func)
{
  if ( obj.detachEvent ) {
    obj.detachEvent("on"+name, func);
  } else if ( obj.removeEventListener ) {
    obj.removeEventListener(name, func, true);
  } else {
    obj["on"+name] = null;
  }
}

function dispatchEvent(obj, name)
{
    if ( obj.fireEvent ) {
      obj.fireEvent("on"+name);
    } else if ( obj.dispatchEvent ) {
      var evt = document.createEvent("Events");
      evt.initEvent(name, true, true);
      obj.dispatchEvent(evt);
    }
}

function stopEvent(evt){
	if ( !evt ) evt = window.event;
	if (evt.stopPropagation){
		evt.stopPropagation();
		evt.preventDefault();
	}else if(typeof evt.cancelBubble != "undefined"){
		evt.cancelBubble = true;
		evt.returnValue = false;
	}
	return false;
}


