function extend(destination, source, overwrite) { if(typeof overwrite === 'undefined') { overwrite = true; } for(var property in source) { if(source.hasOwnProperty(property)) { if(!destination[property] || overwrite) { destination[property] = source[property]; } } } return destination; }