Initial revision with the original source code taken from SourceForge Net.