// cross-browser add event listener
function listen(evnt, elem, func) {

	// W3C DOM
    if (elem.addEventListener) {
        elem.addEventListener(evnt,func,false);
	}
	// IE DOM
    else if (elem.attachEvent) {
        var r = elem.attachEvent("on"+evnt, func);
		return r;
    }
}

// cross-browser event definition
function target(e) {
	var target;
	
	if (!e) {
		var e = window.event;
	}
	
	if (e.target) {
		target = e.target;
	}
	else if (e.srcElement) {
		target = e.srcElement;
	}
	
	return target;
}

// cross-browser ajax objct
function GetXmlHttpObject() {
	
	if (window.XMLHttpRequest) {
	  // code for IE7+, Firefox, Chrome, Opera, Safari
	  return new XMLHttpRequest();
	}
	
	if (window.ActiveXObject) {
	  // code for IE6, IE5
	  return new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	return null;
}

// cross-browser option add
function addOption(select_box, option, before) {
	try {
		select_box.add(option, before); // standards compliant
	}
	catch(ex) {
		select_box.add(option); // IE only
	}
}
