jsSendErrorEmail = false;
jsSendErrorDb = false;
jsSendErrorLog = false;

onerror=handleErr
function handleErr(msg,url,l)
{
	//Handle the error here
	eTxt = "\n<font color='red'>Start error:\t==================></font>";
	eTxt += "\n\tURL: " + url;
	eTxt += "\n\tLine: " + l;
	eTxt += "\n\n" + msg + "\n";
	eTxt += "<font color='red'>End error:\t==================></font>\n";
	
	trace(eTxt);
	
	pTxt = "\n\n\n";
	pTxt += "\nURL: " + url;
	pTxt += "\nLine: " + l;
	pTxt += "\n\n" + msg + "\n";
	pTxt += "\n";

	
	if(jsSendErrorEmail) {
	
		new Ajax.Request('http://sklad.cumc.columbia.edu/lib/js/debug/jsemail.php', 
		{ 
			method: 'post', 
			parameters: 'error='+pTxt,
			onSuccess: function(transport){
				var response = transport.responseText || "no response text"; 
				trace("<xmp>Success! \n\n" + response + "</xmp>");
			},
			onFailure: function(){ 
				trace('Something went wrong...'); 
			}
		});
		
	}
	
	if(jsSendErrorDb) {
	
		new Ajax.Request('http://sklad.cumc.columbia.edu/lib/js/debug/jsdb.php', 
		{ 
			method: 'post', 
			parameters: 'error='+pTxt,
			onSuccess: function(transport){
				var response = transport.responseText || "no response text"; 
				trace("<xmp>Success! \n\n" + response + "</xmp>");
			},
			onFailure: function(){ 
				trace('Something went wrong...'); 
			}
		});
		
	}
	
	if(jsSendErrorLog) {
	
		new Ajax.Request('http://sklad.cumc.columbia.edu/lib/js/debug/jslog.php', 
		{ 
			method: 'post', 
			parameters: 'error='+pTxt,
			onSuccess: function(transport){
				var response = transport.responseText || "no response text"; 
				trace("<xmp>Success! \n\n" + response + "</xmp>");
			},
			onFailure: function(){ 
				trace('Something went wrong...'); 
			}
		});
		
	}
	
}

function trace( msg ){
	if( typeof( jsTrace ) != 'undefined' ){
		jsTrace.send( msg );
	}
}

function traceXmp( msg ){
	if( typeof( jsTrace ) != 'undefined' ){
		jsTrace.send( '<xmp>' + msg + '</xmp>' );
	}
}


function getHTML(id) {
	var elemHtml;
	if (document.getElementById) {
        elemHtml = document.getElementById(id).innerHTML;
     } return elemHtml;
}

function setHTML(id, html) {
	if (document.getElementById) {
        document.getElementById(id).innerHTML = html; trace(html);
     }
}

function toggle_bgcolor(id, color) {	
	if (document.getElementById) {
        target = document.getElementById(id); if (target.style.backgroundColor == "") { target.style.backgroundColor = color; } else { target.style.backgroundColor = ""; }
     }
}

function toggle_id(id) {
	if (document.getElementById) { 
		target = document.getElementById(id); if (target.style.display == "none") { target.style.display = ""; } else { target.style.display = "none"; }
	 } 
}

function toggleByCookie(id) {
	if (document.getElementById) {
		target = document.getElementById(id); if (target.style.display == "none") { target.style.display = ""; createCookie(id, 'true', 0); } else { target.style.display = "none"; createCookie(id, 'false', 0); }
	 } 
}

function createCookie(name, value, days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toUTCString();
	} else var expires = ""; document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var cookieList = document.cookie.split(';');
	for(i=0; i<cookieList.length; i++) {
		cookie = cookieList[i].split('=');
		if( name == trim(cookie[0]) ) { return cookie[1]; }
	} return false;
}

function trim( value ) { return LTrim(RTrim(value)); }
function LTrim( value ) { var re = /\s*((\S+\s*)*)/; return value.replace(re, "$1"); }
function RTrim( value ) { var re = /((\s*\S+)*)\s*/; return value.replace(re, "$1"); }