/* HELPERS FOR SCRIPTS THAT SET EVENT LISTENERS */

/* cross-browser event handling */
function addEvent(elm,evType,fn,useCapture){
	if(elm.addEventListener){
		elm.addEventListener(evType,fn,useCapture);
		return true;}
	else if(elm.attachEvent){
		var r=elm.attachEvent('on'+evType, fn);
		return r;}
	else {
		elm['on'+evType]=fn;}
}


/* Cross-browser function for getting the element that event occurred on */
function getElmnt(e){
	if(window.event && window.event.srcElement){//IE - event object is passed to the window object
		elm=window.event.srcElement;} 
	if(e && e.target){//DOM-compliant - event object is passed in as 'e'
		elm=e.target;}
	if(!elm){
		return elm='none';}
	return elm;
}


/* cancel click action */
function cancelClick(e){
	if (window.event){
		window.event.cancelBubble = true;
		window.event.returnValue = false;
		return;}
	if (e){
		e.stopPropagation();
		e.preventDefault();}
}

/* parse url query string and return an object containing arrays of the argument names and values pairs */
function parseURLquery(){
    var obj_arg_pairs = new Object();
    obj_arg_pairs.names = new Array();
    obj_arg_pairs.values = new Array();
    var query = location.search.substring(1);
    if(query == "") { return null; }
    var pairs = query.split("\&");
    for(var i = 0; i < pairs.length; i++){
        var pos = pairs[i].indexOf('=');
        if(pos == -1){ continue; }
        var arg_name = pairs[i].substring(0,pos);
        var arg_value = pairs[i].substring(pos+1);
        obj_arg_pairs.names[i] = arg_name;
        obj_arg_pairs.values[i] = arg_value;
    }
    return obj_arg_pairs;
}
/* loop url query pairs object, and return value for the argument name passed in */
function getURLqueryValue(arg_name){
	var arg_value=new String;
	var obj_arg_pairs = parseURLquery();
	if(obj_arg_pairs != null){ 	
		for(var i = 0; i < obj_arg_pairs.names.length; i++){
			if(obj_arg_pairs.names[i] == arg_name){ 
				return obj_arg_pairs.values[i]; }
		}
	}
  	return null;
}

