function htmlspecialchars(string) {
    	string = string.toString();
    
    	// Always encode
    	string = string.replace(/&/gi, '&amp;');
    	string = string.replace(/</gi, '&lt;');
    	string = string.replace(/>/gi, '&gt;');
    	string = string.replace(/ä/gi, '&auml;');
    	string = string.replace(/ö/gi, '&ouml;');
    	string = string.replace(/ü/gi, '&uuml;');
    	string = string.replace(/ß/gi, '&szlig;');
    	string = string.replace(/é/gi, '&eacute;');
    	
		return string;
};

function escape(string) {
	
	string = string.replace(/\"/gi,'\"');
	string = string.replace(/\'/gi,"\'");
	string = string.replace(/\n/gi,'\\n');
	return string;
}
//http://www.overset.com/2007/07/11/javascript-recursive-object-copy-deep-object-copy-pass-by-value/
function dCopy (dupeObj) {
    var retObj = new Object();
    if (typeof(dupeObj) == 'object') {
        if (typeof(dupeObj.length) != 'undefined')
            var retObj = new Array();
        for (var objInd in dupeObj) {   
            if (typeof(dupeObj[objInd]) == 'object') {
                retObj[objInd] = dCopy(dupeObj[objInd]);
            } else if (typeof(dupeObj[objInd]) == 'string') {
                retObj[objInd] = dupeObj[objInd];
            } else if (typeof(dupeObj[objInd]) == 'number') {
                retObj[objInd] = dupeObj[objInd];
            } else if (typeof(dupeObj[objInd]) == 'boolean') {
                ((dupeObj[objInd] == true) ? retObj[objInd] = true : retObj[objInd] = false);
            }
        }
    }
    return retObj;
}
/**
        Returns the names of all the obj’s
         variables and functions in a sorted
         array
*/
function getMembers(obj) {
        var members = new Array();
        var i = 0;
       
        for (var member in obj) {
                members[i] = member;
                i++;
        }
       
        return members.sort();
}

/**
        Print the names of all the obj’s variables
         and functions in an HTML element with id
*/
function printMembers(obj, id) {
        var members = getMembers(obj);
        var display = document.getElementById(id);
       
        for (var i = 0; i < members.length; i++) {
                var member = members[i];
                var value = obj[member];
                display.innerHTML += member + ' = ';
                display.innerHTML += value + '<br>';
        }
}
 
