/*------------------------------------------------------------

global.js

author: Sing Chan
last modified: April 3, 2006

notes:
MUST BE FIRST JS INCLUSION

April 3, 2006 - added comments and refactored cookie functions

------------------------------------------------------------*/





/*------------------------------------------------------------

event handling

------------------------------------------------------------*/

function AddEvent(obj, evType, fn, useCapture){
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be attached");
  }
}

function RemoveEvent(obj, evType, fn, useCapture){
  if (obj.removeEventListener){
    obj.removeEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.detachEvent){
    var r = obj.detachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be removed");
  }
}





/*------------------------------------------------------------

Query String

------------------------------------------------------------*/

function GetQueryStringVar(key){
    var q = DecodeUrl(location.search.substr(1)).split("&");
    var i = 0;

    for(i = 0; i < q.length; i++){
        var t = q[i].split("=");
        if (t[0] == key) return t[1];
    }

    return "";
}





/*------------------------------------------------------------

cookies

------------------------------------------------------------*/

function SetCookie(name, value, days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    var expires = "; expires=" + date.toGMTString();
  } else {
		expires = "";
	}
  document.cookie = name + "=" + value + expires + "; path=/";
}

function GetCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for (var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') c = c.substring(1, c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
  }
  return null;
}





/*------------------------------------------------------------

URL decoding

------------------------------------------------------------*/

function DecodeUrl(s) {
	var tmp = "";
	var i = 0;

	for (var i = 0; i < s.length; i++) {
		var ch = s.charAt(i);
		if (ch == "+") {
			tmp += " ";
		} else {
			tmp += ch;
		}
	}
	
	tmp = decodeURIComponent(tmp);
	return (tmp);
}





/*------------------------------------------------------------

this gets rid of the flashing background on rollover in IE6

------------------------------------------------------------*/

try {
	document.execCommand('BackgroundImageCache', false, true);
} catch(e) {}
