var Nav4 = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 4));
var lastSelection = null;
var elHead = null;
var elData = null;
var rowid = null;

function select(element) {

	var el, r, c, theEvent, browser;
    
	try {
        if(!Nav4) {
		    theEvent = window.event;
		    e = theEvent.srcElement || theEvent.currentTarget || theEvent.target;
	    } else {
		    e = element.target;
	    }
    } catch(e) {
        return;
    }
    
	if(e.tagName == "TR") {
		r = e;
	} else {
		r = findRow(e);
	}

	if((r != null) && (r.id != "")) {
		if(lastSelection != null) {
			deselectRowOrCell(lastSelection);
		}
		selectRowOrCell(r);
		lastSelection = r;
		rowid = r.id;
	}

}

function cancelSelect() {

    try {
        if(!Nav4) {
            theEvent = window.event;
            e = theEvent.srcElement || theEvent.currentTarget || theEvent.target;
        } else {
            e = element.target;
        }
    } catch(e) {
        return;
    }

	if (e.tagName != "BODY") return;
	if (lastSelection != null) {
   		deselectRowOrCell(lastSelection);
    	lastSelection = null;
  	}
}

document.onclick = cancelSelect;

function findRow(e) {

	var p;

	if(e.tagNAme == "TR") {
		return e;
	} else {
		p = e.parentNode;
		while((p.tagName != "TABLE") && (p.tagName != "BODY") && (p.tagName != "TR")) {
			p = p.parentNode;
		}
		if(p.tagName == "TR") {
			return p;
		} else {
			return null;
		}
	}
}

function findCell(e) {
	if (e.tagName == "TD") {
    	return e;
  	} else if (e.tagName == "BODY") {
    	return null;
  	} else {
    	return findCell(e.parentNode);
  	}
}

function deselectRowOrCell(r) {
  	var browser;

  	if(navigator.appName.indexOf("Microsoft Internet Explorer") >= 0) { browser = "IE"; }
	else { browser = "NS"; }

  	if(browser == "IE") {
  		r.runtimeStyle.backgroundColor = "";
  		r.runtimeStyle.color = "";
  	} else {
  		r.style.backgroundColor = "";
  		r.style.color = "";
  	}
}

function selectRowOrCell(r) {

  	var foreColour = "#000000";
	var backColour = "#FFFFC0";
	var e, r, browser;

 	if(navigator.appName.indexOf("Microsoft Internet Explorer") >= 0) { browser = "IE"; }
	else { browser = "NS"; }

  	if(browser == "IE") {
  		r.runtimeStyle.backgroundColor = backColour;
  		r.runtimeStyle.color = foreColour;
  		r.runtimeStyle.cursor = "hand";
  	} else {
  		r.style.backgroundColor = backColour;
  		r.style.color = foreColour;
  		r.style.cursor = "pointer";
  	}

}

function nothingSelected() {
  	return (lastSelection == null);
}

function rowSelected() {
  	var c;
  	if(lastSelection == null) return false;
  	c = lastSelection;
  	return (c.tagName == "TR");
}

function cellSelected() {
  	var c;
  	if (lastSelection == null) return false;
	c = lastSelection;
	return (c.tagName == "TD");
}

function whatIsSelected() {
  	if(lastSelection == null)
    	return "Table";
  	if(lastSelection.tagName == "TD")
    	return "Cell";
  	if(lastSelection.tagName == "TR")
    	return "Row";
}

