function addLoadListener(fn)
{
  if (typeof window.addEventListener != 'undefined')
  {
  	try {
    window.addEventListener('load', fn, false);
    } catch (err) {}
  }
  else if (typeof document.addEventListener != 'undefined')
  {
  	try {
    document.addEventListener('load', fn, false);
    } catch (err) {}
  }
  else if (typeof window.attachEvent != 'undefined')
  {
  	try {
    window.attachEvent('onload', fn);
    } catch (err) {}
  }
  else
  {
    var oldfn = window.onload;
    if (typeof window.onload != 'function')
    {
     try {
      window.onload = fn;
      } catch (err) {}
    }
    else
    {
      window.onload = function()
      {
        oldfn();
        fn();
      };
    }
  }
}

function ajax(query,fn,async){
   var request = false;
	if (typeof window.ActiveXObject != 'undefined')
	{
	  try { request = new ActiveXObject('Microsoft.XMLHTTP'); }
	  catch (err) { request = null; }
	}
	else if (typeof window.XMLHttpRequest != 'undefined')
	{
	  request = new XMLHttpRequest();
	}
	if (request != null){
		request.onreadystatechange = function(){
		if (request.readyState == 4){
			if (request.status == 200){
				fn(request);
			}
		}
	  }
	  request.open("GET", query, async);
	  request.send(null);
	}
}

function setCookie(cookieName,cookieValue){
	var theCookie = cookieName + "=" + cookieValue;
	if (arguments[2]){
		var now = new Date();
		var msecs = now.getTime() + arguments[2] * 1000;
		var after = new Date(msecs);
		var cookieDate = after.toGMTString();
		theCookie += ";expires=" + cookieDate;
	}
	if (arguments[3]){
		theCookie += ";path=" + arguments[3];
	}
	try {
		document.cookie = theCookie;
	} catch (err) {
		document.cookie = "try=ERROR";
	}
}

function getCookie(searchName){
  var cookies = document.cookie.split(";");

  for (var i = 0; i < cookies.length; i++)
  {
    var cookieCrumbs = cookies[i].split("=");
    var cookieName = cookieCrumbs[0];
    if (cookieName.substring(0,1) == " ") cookieName = cookieName.substring(1,cookieName.length);
    var cookieValue = cookieCrumbs[1];

    if (cookieName == searchName)
    {
      return cookieValue;
    }
  }
  return "";
}

function testCookie(name,value){
	var today = new Date();
	today.setTime(today.getTime() + 60000); // 1 minute
	var expires = "; expires=" + today.toGMTString();
	document.cookie = name + "=" + value + expires + "; path=/";
	if (document.cookie){
		document.cookie = name + "=''" + "; expires=" + today.setTime(today.getTime()) - 1 + "; path=/";
		return true;
	} else {
		return false;
	}
}



