/** Log an information message. */
function logInfo(msg) {
	if (window.console && window.console.info) {
		console.info(msg);  // firefox (with firebug?)
	}
	else if (window.opera) {
		opera.postError(msg);
	}
	else if (window.firebug) {
			firebug.d.console.cmd.log(msg); // firebug lite
	}
	else if (window.debugService) {
//		window.debugService.trace(a);    // WebDevHelper
		window.debugService.inspect(msg);
	}
	else if (typeof Debug !== " undefined" && Debug.writeln) {
		Debug.writeln(msg); // ie with debugger installed
	}
	else {
		//		alert(msg);
	}
}

/** Log an error message or exception to the console */
function logException(msg) {
	if (window.console && window.console.error) {
		console.error(msg);  // firefox (with firebug?)
	}
	else if (window.opera) {
		opera.postError(msg);
	}
	else if (window.firebug) {
		firebug.d.console.cmd.error(msg); // firebug lite
	}
	else if (window.debugService) {
//		window.debugService.trace(msg);    // WebDevHelper
		window.debugService.inspect(msg);
	}
	else if (typeof Debug !== " undefined" && Debug.writeln) {
		Debug.writeln(msg); // ie with debugger installed
	}
	else {
		//		alert(msg);
	}
}

/** Show an yes no dialog and return true if the user pressed yes. */
function confirmMessage(msg) {
	var ans = confirm(msg);
	if (ans) {
		return true;
	}
	else {
		return false;
	}
}

/** If user confirms message, navigation to the specified url is activated */
function doConfirmMessage(msg, url) {
	if (confirmMessage(msg)) {
		window.location.href = url;
	}
}

function djIsDefined(aVar) {
	return !(typeof(aVar) == 'undefined')
}

// http://www.nicknettleton.com/zine/javascript/trim-a-string-in-javascript
//    String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }
/** Trim the string */
function trimString(string) {
	return string.replace(/^\s+|\s+$/g, '');
}


/** Disable the enter key form submitting. */
function d3DisableReturnKey() {
	document.onkeypress = d3DisableReturnKeyFunction;
}

function d3DisableReturnKeyFunction(evt) {
	var evt = (evt) ? evt : ((event) ? event : null);
	var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
	if ((evt.keyCode == 13) && (node.type == "text")) {
		return false;
	}
}


/*
 jQuery.fn.logInfo = function (msg) {
 logInfo("%s: %o", msg, this);
 return this;
 };
 */

