Home Page
Projects > Other Web Scripts
Projects > Other Web Scripts

Warning: you do not have javascript enabled. This WILL cause layout glitches.
Other Web Scripts Thumbnail
Other Web Scripts
Any simple web scripts (PHP or JavaScript) that can be plugged in elsewhere
Rating: 8 (Website stuff is kind of the low end rung of the programming spectrum IMO, but eh.)
Project Time: 2003-Ongoing: 25
Languages: JavaScript, PHP
Requirements: Web browser and/or PHP server
Downloads: Downloads information available in contents section (See any updates below for prior versions)
Sections: Information, Content, Concepts, Updates, Comments
A menagerie of web base scripts. Besides the pluggable ones, there are also informational based ones like the date and character converters.
See content section for downloads.
AJAX Library v1.0.1: An AJAX (Asynchronous JavaScript and XML) library for communication between JavaScript and HTTP Servers.
This class is outdated, instead use DWCF
Click here for documentation
  • function GetURL
    • Definition: This function calls a web address through AJAX and sends it data.
    • Returns: If the call is made synchronously (see CallBack option), the URL’s output is returned, otherwise, the AJAX object is returned.
    • Parameters:
      1. URL: The URL of the address to request. If the document is not found, an error is thrown.
      2. Data
        • Description: The data to send in the query section of the URL.
        • Value types:
          • String: Uses the string as the URL’s query if using URL Encoding (“application/x-www-form-urlencoded”). Otherwise (“multipart/form-data” encoding), this is set to the parameter “NoName”.
          • Object: Uses the object’s members as parameters. The members’ values must be scalars.
        • Other Information:
          • This parameter is not optional.
          • Set to a blank string to send nothing.
      3. ExtraOptions: An optional object specifying additional options defined as members.
        • CallBack
          • Default: undefined
          • Description: Function to call when the document has completed.
            • It receives 3 parameters: The responseText, the ExtraData additional option, and the AJAX object used to make the call.
            • If this is not set, the AJAX call is made synchronously.
            • Pass false to call asynchronously without a callback function.
        • ExtraData
          • Default: undefined
          • Description: User defined data passed directly to the CallBack function
        • UseCache
          • Default: true
          • Description:
            • If this is true, the request is made via GET with URL encoding (“application/x-www-form-urlencoded”), so timestamps are sent meaning the browser cache can be used.
            • If this is not true, POST is used with “multipart/form-data encoding” (unless it takes less bytes to send as “application/x-www-form-urlencoded” in the POST).
        • ForceUrlEncode
          • Default: undefined
          • Description: If set and POSTing, “application/x-www-form-urlencoded” encoding is used when true, and “multipart/form-data” when false, otherwise the type is used that yields the smallest size. (It can be expensive to determine “multipart/form-data” encoding if it is not needed)
        • AdditionalHeaders
          • Default: undefined
          • Description: A list of additional HTTP headers to pass to the request in an object (members as variable names with scalars values only)
  • function GetURL_Error: This function is called if the server returns an error from the URL request. All it does is throw an error with 3 parameters:
    1. An error string with the status code
    2. The response text
    3. The AJAX object
PHP MySQL Library: A MySQL library for PHP with functionality to help facilitate cleaner and quicker SQL access.
Renamed and moved to DSQL
Draw Image v1.0: Draw JavaScript dynamically generated images to a web page.
Click here for some notes and a working copy of the script
[Go directly to example page]
  • There are 2 user-called functions and 1 user-callback function for this script:
    • CreateRenderObject(CodeBase, Width, Height)
      • This creates an object where the pictures are drawn to; which needs to be added to the HTML document. In IE, this is a Java Applet, and in all other browsers, its an IMG DOM object.
      • The parameters are only used when in IE
      • CodeBase is the base path where the Java applet resides
    • DrawImage(ImageObject, Width, Height, PixelData)
      • This draws the image to a render object
      • ImageObject is the object created through CreateRenderObject
      • PixelData is a 1D array of color values (0xRRGGBB format) for each pixel (rows then columns)
    • ImageClicked(X, Y, Flag)
      • This is a callback function that occurs when an object created through CreateRenderObject is clicked.
      • Flag specifies if the Ctrl key is held down during the click in IE, or if the right mouse button was used in all other browser.
  • How this works:
    • In IE, this sends all the data to a Java Applet that created a picture through the createImage and MemoryImageSource Java interfaces.
    • In all other browsers, this sends the data to an IMG object by using the Data_URI_scheme. IE8 supports this scheme, but only if the data set is smaller than 32KB, so I still consider it unsupported for IE.
  • This is an example of the technology which produces a Mandelbrot fractal using the same code base as my Julia Fractals project.
  • It might be preferable to go directly to the example page to remove size restrictions from the below IFRAME.
  • The fractal dimensions, detail level, and area can be controlled by manually changing the values in the top table, or by clicking on the fractal per the below instructions.

Image Zoom Effect v0.95: An animated image zoom (growing/shrinking) effect for web pages that transitions from a displayed thumbnail into a larger version of the image. Animation occurs when mouse is moved over the thumbnail and shrinks when mouse leaves zoomed image. Zooming images attempt to stay within the window’s boundaries.
Example: Example Zoom Effect Image
Click here for how to use and technical information
To use, the thumbnail must be an “img” object containing the class-name “GrowImage”, and its parent must be an anchor link (“a”) to the full size image. For example:
<a href="LINK_TO_FULL_SIZE_IMAGE.jpg"><img src="LINK_TO_THUMBNAIL.jpg" width=THE_THUMBNAIL_WIDTH height=THE_THUMBNAIL_HEIGHT class=GrowImage></a>
<script type="text/javascript" src="ImageZoomEffect.js"></script>
The ImageZoomEffect.js script must be included after all GrowImages have been added.

  • RefreshTime: Time (in milliseconds) between animation frame updates.
  • TimeToAnimate: The time (in milliseconds) to grow the animation to full size. For example, if this value is 100 (1/10th of a second) and RefreshTime is 10 (1/100th of a second), then there will be 10 frames of the image growing or shrinking at each 1/100th of a second interval.
  • LoadingImageInfo: The image to temporarily show while the full size image is being downloaded. An array of 3 values is used for this variable. “['IMAGE_LINK', IMAGE_WIDTH, IMAGE_HEIGHT]”

Technical details:
  • After JS script is included, it searches through all images for ones that contain “GrowImage” in the className and adds appropriate events to the object.
  • Zoomed images are placed inside an absolutely positioned container so it doesn’t affect the rest of the layout. The zoomed images themselves are relatively positioned inside the parent.
  • Full size images are not loaded until the first time they are needed/requested by a mouse over action, and are unloaded when finished shrinking.
  • A zoomed image currently stays centered over its thumbnail until it hits a window border, in which case it will not overlap the border if possible. If the image grows too large to fit within the window’s width or height, the image will overlap on the bottom and right sides.
  • A zoomed image will start growing again if moused over while shrinking.
  • There are still a few bugs I need to work out in this one... see the updates below.
AutoSuggestBox v1.0.1: A dropdown box for HTML text boxes that gives case insensitive suggestions from a predefined list for what the user is typing. The search phrase is highlighted in the search results. Search results can be selected through keyboard or mouse.
Click here for documentation and a working example of the script


  • The quick brown fox jumps over the lazy dog
  • lazy example
  • quick test
  • the alphabet

  • Global variables:
    • SuggestBoxes: This holds a list of all created auto suggest boxes.
  • Functions:
  • CSS Classes: (Default styles)
    • .SuggestionBoxParent :: See AutoSuggestBox.ParentBox
      position:relative; display:none; /*required styles set in JavaScript*/
    • .SuggestionBox :: See AutoSuggestBox.Box
      position:absolute; /*required style set in JavaScript*/
      top:20px; z-index:100; background-color:lightgrey; width:200px;
    • .SuggestionBox div :: An individual suggestion in the auto suggest box
      color:black; overflow-x:hidden; white-space:nowrap;
    • .SuggestionBox div:hover :: When a suggestion is moused over in the auto suggest box. This may not work in Internet Explorer without a compatible doctype.
    • .SuggestionBoxHighlight :: Matched search text in a suggestion
    • .SuggestBoxSelected :: The currently selected item in a suggest box
  • Other Information:
    • Only some browsers support turning off real autocomplete on a per-textbox basis. You may need to add “autocomplete=off” to your form to turn off browser autocomplete.
Action Counter v1.0: This script creates a looping countdown timer that performs an action when it reaches 0.
It interacts with 3 given HTML DOM objects to: Receive the countdown time in seconds; Tell the user how many seconds are left on the countdown; Tell the user the last time the countdown action was performed (after the timer reached 0 or from a manual action execute)
Click here for documentation and a working example of the script


Box To Copy From:
Box To Copy To On Action:
Interval to perform action: (Set to zero to turn off)
Last time action performed: Never

  • How to use:
    • Create a new “ActionCounter” to start the script. It requires the following parameters:
      • IntervalValueID: The ID of an input text box containing the number of seconds to count down. Whenever this input box is updated by the user, the countdown is reset to this interval value. A value of 0 stops the countdown.
      • LastActionID: The ID of a DOM element that receives the last action time as its innerHTML. The object receives an additional class name of “LastActionUpdated” for up to 2 seconds after an action occurs.
      • TimeLeftID: The ID of a DOM element that receives the seconds left (every second) as its innerHTML. The object receives an additional class name of “TimeLeftUpdated” when it reaches 0 but before the action has finished.
      • UserAction: A user defined callback function which is called (as a member of the ActionCounter) when an action is ready. The “ActionFinished” member must be called once the entire action has completed, which can be after a timeout, like when an asynchronous AJAX call has returned.
    • Call ActionCounter.ExecuteAction to force the action to execute
  • CSS Classes:
    • .TimeLeftUpdated :: See the “TimeLeftID” parameter
    • .LastActionUpdated :: See the “LastActionID” parameter
Common JavaScript Library v1.0: Common JavaScript needs including: Browser-specific functions; String, Object, Array, and “Function” manipulation functions; and DOM Object creation and manipulation.
Click here for documentation
  • Confirmed compatible with IE8, FF3, and Google Chrome. Should be compatible with all graphical JavaScript browsers.
  • Common functions may often be copied into other JavaScript files to keep them independent.
  • See the CommonTestSuite.html for examples.
Format:<Type>(Optional)DescriptiveName (Optional)=Default<BS>=Browser Specific
Name Long Name Returns Parameters Description
$ GetElementByID DOMElement <String> ID Gets DOM element By ID
$GE GetElement DOMElement <DOMElement/String (DOMOrStr)> Element GetElement by ID or Self
$C Clone Object <Object> O Clones (duplicates) object
$CA CloneAll Object <Object> O Complete clone of object, including children
$CP CopyProperties Object(Object1)<Object> Object1, <Object> Object2 Copies all properties from Object2 to Object1 (mainly for DOM Objects). Copied properties can include submembers like “style.color”
$CM CopyMembers Object(Object1)<Object> Object1, <Object> Object2 Copies all members from Object2 to Object1. This is quicker than $CP but is not DOM compatible, and copies member names directly (no submembers)
$CE CreateElement DomElement <DOMTagName> TagName, <Object> Properties={}, <DOMOrStr> AppendTo=NULL <BS> Creates DOMElement TagName, Sets Properties through $CP, Appends to $GE(AppendTo)
$CO CreateOption DOMOption <String> Value, <String> Key, <DOMOrStr> AppendTo=NULL, <BOOL> Sel=FALSE <BS> Creates an option for a select list
$P GetParent DOMElement <DOMOrStr> Child Gets DOM parent of $GE(Child)
$A GetAncestor DOMElement <DOMOrStr> Child, <int> X Gets Xth DOM parent of $GE(Child)
$EV GetEvent DOMEvent <DOMEvent> E <BS> Returns the current event node, which is usually passed to the function, but is held by the window in IE
$EVS GetEventSource DOMElement <DOMEvent> E <BS> Determines event through $EV and passes back the source of the event
$AA ArgsToArray Array <ArgumentsObject> A Converts a function’s “arguments” object to an array
$ILA IterateWithArr OL <Any,...> OL, <Function> F, <Any,...> P Runs F iteratively over OL with first parameter as OL[i], then each P as a parameter, setting OL[i]=return
$IL IterateWithPrmsOL <Any,...> OL, <Function> F, <Any> Parameter1, <Any> ParameterX, ... Runs $ILA(OL,F,P) with P being all parameters following F.
$DF DeferFunction Any <String> VariableToLookFor, <Function> FunctionToCall Waits until VariableToLookFor is defined, and then calls FunctionToCall
$I Integer Number <String> Num Turns any base 10 string into an integer
$T Trim String <String> Value Trim pre and post whitespace characters
Scale HTML Element v1.0: Resizes HTML elements and children by a scaled percentage. Can also resize an entire page from a cookie that is set via a hashtag.
Click here for technical information and demonstration
Requires: A Cookie Script (if using RemScale function), jQuery core
  • void ScaleElement(jQuerySelector Elements, float Percent): Scales the Elements down by the requested percent. For example, if you pass in a 200px width element with a percent of 0.5, it will become 100px for width.
  • void RemScale(string ScaleName):
    • Checks for a hashtag of #ScaleName=VALUE or #TempScaleName=VALUE.
    • If either is found, the VALUE is calculated as an expression and made into a percentage. For example, “768/1080” would change a page with 1080px width to have 768px width instead.
    • If #ScaleName is found, the value is stored as a cookie named ScaleName for 20 years.
    • If neither hashtag is found and the cookie exists, the cookie is used for the percentage.
    • ScaleElement is called on the document’s body from the percentage given by the hashtag or cookie.
Stand alone scripts
Video Thumbnailer v1.0: A PHP script to dynamically create and pick thumbnails for videos. This includes support for VBB’s DownloadsII plugin, which can easily be adapted to other systems.
Live example
Click here for technical information
  • How it works:
    • Pass the “VideoID” parameter to the script to choose the video to create thumbnails for.
      • If integrating with VBB, it expects the “id” of the video in the database.
      • If NOT integrating with VBB, it expects the full name of the file in the “BaseDir”.
    • The script creates temporary thumbnails in the “ThumbsTempDir” with the same name as the original video (minus the extension) followed by a dash and the seconds-based time index.
    • Upon successful submission, the chosen thumbnails will be moved to the “ThumbsDir” and the rest will be deleted.
    • Pass “QuickCreate” as a parameter to have it automatically create “NumThumbsRequired” thumbnails (at equal intervals from start to end) across the video.
    • If integrating with VBB:
      • Thumbnail indexes will be saved in a database. The “cover photos” seconds-index is negated.
      • The video can only be accessed if its category is listed in “VBBVideoCategories” and the logged-in-user is either the uploader or of a user group that is listed in “VBBUserGroupIDs”.
  • Configuration variables (at the top of the PHP file):
    • Base Variables:
      BaseDir Base directory where videos are stored
      ThumbsDir Where final thumbnails are stored
      ThumbsTempDir Where temporary thumbnails are stored. While unused thumbnails are deleted after submission, if no submission occurs, thumbs will persist in this directory, and may need to be periodically purged
      DefaultFramesToExtract Number of frames to extract by default. More or less may be extracted depending on the MinInterval and MaxInterval
      MinInterval The smallest seconds interval allowed between frames
      MaxInterval The largest seconds interval allowed between frames
      MaxWidth Maximum pixel width
      MaxHeight Maximum pixel height
      NumThumbsRequired Number of thumbs required for submission
      SuccessURL The location to forward to on successful submission. This can be a JavaScript script as is demonstrated by the default
    • VBulletin variables (only used if UsingVBB is TRUE):
      UsingVBB If this page is being rendered in VBulletin
      VBBTemplateName A template of this name must be created in VBB which outputs the “$Output” variable
      VBBDLFilesTable The name of the download files table
      VBBDLThumbsTable The name of the thumbnails table (created by this script)
      VBBVideoCategories Category IDs that the file can belong to
      VBBUserGroupIDs Group IDs that a user can belong to whom can process all videos
  • Other Information:
    • I didn’t really take the time to engineer the styles/classes so to change them you may have to change stuff within the code base.
    • This script assumes only 1 person is thumbnailing a video at a time. If one person submits while another person is working on the same video, the latter most likely won’t be able to submit afterwards without starting over.
    • This also uses “Dakusan’s MySQL Library” and “Dakusan’s AJAX Library” (included).
  • Required: FFMPEG available via the command line (via PHP)
Directory Manager v1.1: A secure, lightweight, and robust PHP script for managing a directory’s files and user access.
Click here for features, technical information, and important notes
This script is a single file which should be used as the index file (usually index.php) for a desired directory. It works on just the directory it resides it, so the file can be uploaded to any directory you want it to work on with no extra hassle.

  • Sorted file listing within the directory
    • Files (no folders) are listed with the following data:
      • File name
      • File size (listed in human readable/friendly format)
      • Last modified date
    • Set the default sort column and order.
    • Sort column ordering can be changed by clicking the column header. If a column header is clicked when already selected, its sort order (ascending or descending) is swapped.
  • Uploading, renaming, and deleting files
    • Files can only be uploaded to the current directory.
    • Files can be protected so they are not shown and cannot be modified/removed. The index file, directory access (“.htaccess”), and user information (“.htpasswd” by default) files are automatically on this list.
    • File extensions can be restricted. If a restricted extension is encountered, an extra extension (“.txt” by default) is appended to the end.
  • Create, modify, and delete user logins
    • Logged in users can change their password.
    • (If permission is granted) Modify other user logins.
    • There are 3 user tiers which (by default) all have different allowed permissions (see “Permission state modifiers” variables section):
      • No user file found (Directory access is currently unrestricted)
      • Normal user
      • Admin user
    • User authentication can be required by either the whole directory or just the script.
  • Easy basic configuration through a short variable list at the top of the file. Once it is configured the first time for a website, it is unlikely the configuration would need to be changed when copying (or symbolic linking) the file to other directories.
  • All features are easily toggleable and grantable by user tier, so this script could be used for only one of its many purposes, for example, just listing files, or just user management.
  • Easy addition of a layout to wrap around the script
    • There are 2 functions, HeaderSection and FooterSection, where HTML for a header and footer can be added.
    • This is located directly below the variable section so everything that might need to be edited is at the top of the file.
    • A very basic header and footer have been provided in these functions by default. A header and footer file will usually just need to be included inside of these functions.
  • This script is written in as much of a serial manner as possible to make it easy to follow what is going on.
  • This script is W3C compliant for CSS and HTML.

Important notes:
  • User credentials only work with Apache mod_auth authentication.
  • For the script to detect the username (for admin login or for users to change their own passwords), this script only works on Apache with PHP ran as a module, not as a CGI. I may add a feature later on so that script authentication can be done through a form on the script’s page after the initial directory login if PHP is ran through a CGI interface.
  • As of v1.1 the script is download as a plaintext file with the extension “phpcode” that just need to be renamed to “php” (instead of zipping).
  • The script file can be named whatever you want and does not have to be a directory index file (default.php, index.php, etc).
  • You should not need to edit anything past the “//---DO NOT EDIT PAST HERE---” line.

Features that may be added later on:
  • “File by file protection” in which each file can be set as requiring user authentication or not (when the whole directory is not protected).
  • Manage a complete directory tree: Doable by making the .htaccess link all directory index requests back to the root directory’s index file.
  • When uploading files, ask if user wants to rename or overwrite if file already exists.
  • Login to script through FORM authentication and cookies (See second bullet of “Important Notes”).
  • Redo all requests as POST requests instead of GET.
  • Only restrict access to the index.php file for user logins, as opposed to the whole directory. (Added in v1.1)

Variable List:
  • Password protection information
    • PassFileName
      • The user credentials file name
      • For security reasons, this file can be put in another directory, but it doesn’t need to be as access is restricted to it by default.
      • If the path to this file is not relative, it must start with a “/”.
      • Default: '.htpasswd'
    • OnlyProtectIndexFile
      • With this, user authentication can be required by either the whole directory or just the script.
      • When set to true, the script’s file and the directory without a filename (e.x., “http://www.domainname.com/DIRECTORYNAME/”) are all that require user authentication (if users are already added). Otherwise, the whole directory requires user authentication.
      • Default: false
    • PasswordHashFunction
      • The function used to hash the password for the user credentials file
      • This should usually be “crypt”, but Windows’ IIS might need “md5”.
      • Default: 'crypt'
  • Allowable files and types
    • DoNotShowList
      • List of files that are not shown in the directory index and cannot be modified
      • Default: Array($MyFileName, $PassFileName, '.htaccess')
        • MyFileName is now retrieved automatically by the script
    • DisallowedExtensions
      • Files that are of these extensions cannot be modified or created
      • This option can be ignored through the IgnoreDisallowedExtensions variable.
      • Default: Array('php', 'php3', 'cgi', 'pl')
    • DissalowedExtensionsAppend
      • When disallowed extensions (above variable) are encountered, they have this variable appended to them
      • Default: '.txt'
  • Basic permissions: Set options to either true or false
    • AllowFileList
      • Default: true
    • AllowDeleting
      • Default: true
    • AllowRenaming
      • Default: true
    • AllowUploading
      • Default: true
    • AllowUserEdit
      • Edit other users credentials
      • Default: false
    • AllowPasswordEdit
      • User can edit their own password
      • Default: true
    • IgnoreDisallowedExtensions
      • See variable DisallowedExtensions
      • Default: false
  • [Admin] Permission state modifiers - Comment out line or set to FALSE to ignore option
    • AdminUsers
      • When logged in, these user(s) have all AdminPermissions (see below variable) set to true
      • Default: Array('admin')
    • PermissionsIfNoPassFileFound
      • Permissions set to true when no password file is found - The default is all permissions but IgnoreDisallowedExtensions
      • Default: Array('FileList', 'Deleting', 'Renaming', 'Uploading', 'UserEdit', 'PasswordEdit')
    • AdminPermissions
      • Permissions set to true when in admin mode (see AdminUsers) - The default is all permissions
      • Default: Array('FileList', 'Deleting', 'Renaming', 'Uploading', 'UserEdit', 'PasswordEdit', 'IgnoreDisallowedExtensions')
  • Default sorting options
    • SortBy
      • Default sorted column, options include “Name”, “Size”, and “ModTime” (Last Modified Time)
      • Default: 'Name'
    • SortDesc
      • Sort Ascending (false) or descending (true)
      • Default: false
Removed Variable List:
  • RootDirectory
    • The file system path to the root directory of the domain
    • Default: '/home/USERDIRECTORY/public_html'
    • Removed: v1.1
  • MyFileName
    • The file name of this script
    • Default: 'index.php'
    • Removed: v1.1
Pulling HTML from Github markdown for external use: Converts and modifies Github markdown to HTML for use on other websites
MySQL replication ring status reporting script: Reports status on a MySQL replication ring
Format Text [to HTML] Script: Options to escape and listize HTML. Listizing turns tabbed lists of data into nested lists, like in markup languages.
Math Facts Generator v1.0: I created this simple little math facts worksheet generator for my kid to help her with learning her addition/subtraction/multiplication/division facts.
Date Converter v1.0: A JavaScript script that converts and synchronizes different date types. The date types are: Numeric (Day, Month, Year, Day of Year), Word Form (Day of Week, Month), and two common date formats (“mm/dd/yy ”, “MMM d, yyyy”).
Click here for some notes and a working copy of the script
Working copy
  • The working copy here may not show in IE because IE has a bug in it related to IFRAMES; if this is the case, go here).
  • If the year is only 2 digits, the script assume >20=1920-1999 and <20=2000-2019. Unfortunately, due to how the JavaScript “new Date()” works, 0000-0099 are not easily available. I could make them available... but eh.
  • Values that are higher than allowed will just wrap appropriately, so “13” for a month would be January of the next year.
  • The weekday and format fields are not changeable.
Character Converter v1.0: Convert text between hex, decimal, and ASCII. Kind of like a very simplified hex editor.
Click here for a working copy of the script
[Close working copy]
Unicode Character Reference Chart v1.0: Two kinds of charts used to view all the Unicode characters.
Click here for script information
  • Static (Top) Frame:
    • The top frame shows a limited number of characters (in 50,000 increments). This is because they are all loaded at once and having too many is too much for browsers.
    • When you mouse over a character in the top frame, the symbols information is displayed at the top of the page in red.
    • Right-To-Left characters (for example, Hebrew) sometime mess up the proper ordering on a line.
    • Warning: When mousing over a character in IE the browser may seem to freeze for a while due to IE bugs.
  • Dynamic (Bottom) Frame:
    • The bottom frame shows all the Unicode characters dynamically loaded as you scroll through them. It is designed to show 6 by 29 characters at a time.
    • The bottom frame fits within a 1024x768 resolution.
    • Each time you go up or down, it goes about 19 characters at a time in Firefox. I may fix this one day so it goes one column at a time and ends at the last Unicode character (0x10FFF).
Unicode Converts Reference Chart v1.0: This is a reference chart I made of Unicode characters and character ranges that can be converted to normal English characters. This includes removing character accents.
Click here for script notes
I needed to research and make this when I was adding on Unicode support to my “String” Personal Library. This was a daunting and annoying task that I was forced into since I couldn’t find this information anywhere else on the Internet :-\ ; though I did find something like it in a Windows’ file used for string ordering and such. This probably wouldn’t be very useful to anyone unless they were making a Unicode library. I didn’t try cleaning this script up like most of my releases, as there really is no need. All the numbers can be found in the script itself.
Wake On LAN v1.0: A script to remotely wake a computer (Wake On LAN).
Click here for some notes and a working copy of the script
  • To wake up a computer over the Internet, the given port must be able to reach the computer you wish to wake. If the computer is behind a NAT, the port must be forwarded.
  • The computer must support “Wake On LAN” for the script to work. This sometimes takes a specialized NIC (network card).
  • If a domain is given for the IP address field, it is resolved and filled in on submission.
  • If a valid MAC address is given, its format is updated on submission to fit that of the example.
  • Error and success messages are shown after submission at the top of the page.
Whois v1.0: Query a domain’s registration information. (Whois)
Click here for a working copy of the script
[Close working copy]
Default PHP Variables v1.0: Outputs all default (already defined) PHP variables when a PHP script starts.
Web Browser Information v1.0: Outputs all the information the browser can gather from the user via JavaScript and the HTTP Headers.
GetIP v1.0: When someone goes to this script, it records and informs them of their IP Address. If this script is loaded with ?GetIP appended to the end of its URL, it reports the last IP Address recorded. This is an incredibly simple script I very often use when I need a person to get me their public IP address. I have thought of updating it to record and retrieve IP Addresses against a pass string so many people can use it here, but meh.
Getting HTML from Simple Machines Forum (SMF) Posts (Source): A script to convert SMF bbcode to HTML.
Cross Platform Scripting
Contact page and removed projects @ 2015-11-20 21:33:18
  1. Email contact has been removed from the Contact page, in lieu of using the forum. Explanation is on the contact page.
  2. I have removed all the projects from my projects page and site map that I will never finish and aren’t far enough along to be of any use to anyone. Most of these were written before I was 13 (in 1997). I had originally intended this site to be a collection of everything I have ever started and done, but I now see a lot of this as useless fluff. Projects removed are:
    • Personal Libraries: Old C++ libraries that are very outdated
    • Picture Encrypt: This was just an image steganography encrypter using the picture as a one time pad. I made this as a kid before I knew image steganography and one-time-pads were things that were already known.
    • WebRoute: This was a Windows file system driver that allowed grabbing files from different directories in tiers. Its functionality is easily matched with symbolic links and apache redirects.
    • FileSync: A visually interactive rsync type program. Rsync is a better solution anyways, and I’m sure frontends for it are out there.
    • File Functions: Old C++ CLI libraries that are very outdated and all have better alternatives out there
    • Web Rich Text Editor: While I was way ahead of the curve on making this, I never polished and released it. There are so many out there nowadays anyways...
    • Midi: This was the very first “large” project I built as a kid (Probably ~11). Essentially, I wanted to create a competitor to what was then the only solution (I think) for creating midis/sheet-music, Cakewalk Studio.
    • Web List Creator: Old and outdated JS library
    • eBay Content Creation: An old project I never finished, which was used to quickly create eBay pages with widgets and precompiled graphical designs.
    • RubixSolver: A program I never even really started to implement due to technological constraints of the time.
    • Icon Run: A novel gimmick from when I was very young that I never got working very well
    • MP3 Tagger: Pretty useless old program that uses a file format trick I should not have utilized in the first place
    • Logic Puzzles: Silly knock-offs of puzzles from the game Journeyman 2 (you have to be pretty old to remember these)
    • File Sender, QuickChat, Collage Maker: Outdated with much better solutions out there
    • College Crap, QBasic Crap, Highschool C++ Class: Like they say, old useless crap
    • Process Saver, All-In-One Networking Kit: Programs I never even got started
  3. I added MySQL replication ring status reporting script to the Other Web Scripts page
Added New Web Script: Scale HTML Element @ 2013-08-03 18:40:35 - Download
Added a jQuery based JavaScript library that resizes HTML elements and children by a scaled percentage. It can also resize an entire page from a cookie that is set via a hashtag.
Video Thumbnailer v1.0 @ 2012-10-24 01:48:21 - Download
This is a PHP script to dynamically create and pick thumbnails for videos. This includes support for VBB’s DownloadsII plugin, which can easily be adapted to other systems.
Click here for a live example
Action Counter v1.0 @ 2010-12-06 16:35:54 - Download

Action Counter v1.0, which creates a looping countdown timer that performs an action when it reaches 0, has been added to the Other Web Scripts project.

Common JavaScript Library v1.0 @ 2010-11-13 11:32:34 - Download

Dakusan’s Common JavaScript Library v1.0 has been added to the Other Web Scripts project. It is a JavaScript library with commonly used functions for:

  • Browser-specific functions
  • String, Object, Array, and “Function” manipulation functions
  • DOM Object creation and manipulation

The AutoSuggestBox Library has also been updated to v1.0.1. The only change is one of its inlined Common functions has been updated to match this new library.

[Edit on 2010-11-14 @ 12:22pm] I felt the need to mention that this library and test code isn’t exactly the best laid out of my source code. The library was meant to be done in a minimal amount of space (could still compress more, but meh), and the test code was thrown together just to make sure everything worked.

AutoSuggestBox v1.0 @ 2010-11-11 13:17:50 - Download

AutoSuggestBox v1.0 has been added to the Other Web Scripts project. It is a dropdown box for HTML text boxes that gives case insensitive suggestions from a predefined list for what the user is typing. If the need or request ever arises, I may someday add to it the options for real time (non pre-defined) suggestion lists, and user-defined suggestion matching formulas.

PHP MySQL Library added to Other Web Scripts @ 2010-11-10 07:55:10 - Download

Version 1.0 of the PHP MySQL Library has been added to the Other Web Scripts page. It is my MySQLi library with functions for querying MySQL databases and handling queried data.

The purpose of this library was to be able to quickly execute queries and collect their data without a lot of extra code. While one of the original purposes of prepared statements for MySQL was so queries could be parsed only once and ran many times, I find in PHP I rarely use a query more than once per script, so this library is designed to easily execute a prepared statement with data already attached.

I moved this and the following libraries into their own “Library” section at the top of the project page’s contents: AJAX Library, Draw Image, and Image Zoom Effect.

Minor AJAX Library Error Function Update @ 2010-11-07 18:29:00 - Download

This is a very minor update for the AJAX library. The error function now receives ExtraData as an optional second parameter, which one of my recent projects required.

Web Browser Information @ 2010-01-04 23:56:02 - Download

I just found this Web Browser Information script I did well over a year ago on my harddrive. It was already completed and in the current state that it’s in... and I have no idea why I hadn’t already posted it >.<; . I did a quick look over of the code and it all looks OK... so.. yeah, no idea. Anywho, here it is (v1.0 source).

Description: Outputs all the information the browser can gather from the user via JavaScript and the HTTP Headers.

AJAX Library v1.0 @ 2009-11-30 20:26:14 - Download

My AJAX Library v1.0 has been added to the Other Web Scripts project.

It is an AJAX (Asynchronous JavaScript and XML) library for communication between JavaScript and HTTP Servers.

This library has actually been in development for years, and I just never saw the need to release it until now, so I gave it a quick clean up :-).

Dakusan License v2.0 @ 2009-11-04 16:06:57 - Download

I have updated the licensing information across the board for my website and all its projects to the Dakusan License v2.0, a slightly modified version of the Original BSD License.

The Copyright page and all project downloads have been updated accordingly.

Embedded Image Drawer v1.0 @ 2009-03-27 03:10:00 - Download

I recently made a JavaScript library (web script) for embedding images generated by JavaScript within web pages. I needed to test it, so I threw together a JavaScript version of the Mandelbrot Fractal from the Julia Fractals Project.

Unfortunately, IE7- doesn’t allow this (or any) kind of client side image embedding like all other browsers do, so it has to use a Java Applet to draw the image data produced by JavaScript. I tried every way I could possibly think of to get client side image embedding working in IE without an additional addon, but every time I got close, I ran into another “security feature”, and there was no way in the end to get it working... well, besides methods that make 1 HTML DOM object per pixel, which is way too complex for processing and usually freezes the browser. IE8 does support what I want, but the image has to be less than a certain size (<32KB when in base 64).

Also, of course, this works the fastest in Chrome. :-)

More Project Thumbnail Updates @ 2008-09-28 15:48:04

The following projects have had thumbnails added to them: College Crap, Freedrive URL cracker, Highschool C++ Class, HTTP Zip, Small, Other Web Scripts.

The Eyes project thumbnail has been updated to have a transparent background to better represent it.

Multiple "Other Web Scripts" added @ 2008-09-25 13:15:46
The following scripts have been added to the “Other Web Scripts” project:
NameThis was done sometime in/between...
2002 and 2004
late 2006
2003 and 2004
2003 and 2004
2002 and 2004
2002 and 2003
Directory Manager v1.1 @ 2008-09-24 16:44:10 - Download
The following fixes have been applied to Directory Manager v1.1:
  • Base URLs “<base href="...">” are now supported (they no longer break links)
    • Type: Feature (Base URLs are common for complex layouts)
    • How: All links in the script are now absolute from the base domain instead of relative to the current directory.
  • Confirmation is now requested through JavaScript before a file is deleted
    • Type: Feature
    • Why: Because there should always be confirmation before deleting data.
  • User authentication can now be applied only to the script instead of the whole directory
    • Type: Feature
    • Variable Name: OnlyProtectIndexFile
    • Why: Sometimes the user might want to only protect the ability to manipulate the directory, but not the files in it.
    • How: This adds a “<files>” directive to the “.htaccess” file around the user authentication section.
  • Header and Footer sections have been added to the top of the file right below the user variables section for easier manipulation of the page layout
    • Type: Feature
    • How: The user can now add layout header and footer information to the “HeaderSection” and “FooterSection” functions.
  • Script now only shows normal files (not directories) in its file list
    • Type: Bug Fix
    • How: The “is_file” function is now used on entries returned from the “read_dir” function before they are added to the list.
    • Side Effects: “.” and “..” were removed from the DoNotShowList variable.
  • Fixed all improper static strings of “index.php” to properly point to the current file (MyFileName variable)
    • Type: Bug Fix
  • The following user variables have been removed: MyFileName, RootDirectory
    • Type: Simplification & Bug Fix
    • Why: There was no need for the user to define these variables when the script can extract them. This also fixes a bug that occurs when a parent directory is symbolic linked.
    • How: Instead of using the “getcwd” function and subtracting that from the provided RootDirectory variable, directory and script name variables can be extract from the $_SERVER['SCRIPT_NAME'] variable.
  • Additional comments have been added in the file for code clarification
    • Type: Other

Other Information:
  • The Directory Manager information has been updated to reflect the above updates.
  • The “file by file protection” [possible] future update was also added to the information.
  • PHP scripts that now only have 1 file to them are available for download as plaintext files with the extension “phpcode” that just need to be renamed to “php”; instead of zipping them.
Image Zoom Effect Details @ 2008-09-17 12:14:03

The description, “how to use”, technical info, and an example have been added to the Image Zoom Effect in Other Web Scripts.

New Web Script - Directory Mananger v1.0 @ 2008-09-15 08:26:17 - Download

One of the most common requests I get from customers is the ability for their clients to upload files through a web page (HTTP) to the server; so I threw together from scratch[All of the script was written from scratch execept the HumanReadableSize function] a secure and robust script for this in about 6 hours which clocks in at about 360 lines. The single file works on just the directory it resides it, so the file can be uploaded to any directory you want it to work on with no extra hassle.

I know there are a lot of large applications out there for managed file uploading through a web interface, but I decided to make this anyway as it is kind of specific in its goals, being relatively lightweight and working on just a single directory at a time. Also since I made it myself, it’s easier to modify and update for specific clients needs, like direct integration into their website design.

Its main features are:
  • Sorted file listing within the directory
  • Upload files of allowed type (invalid extensions are renamed)
  • Delete and rename files
  • Create and delete user logins
  • Logged in users can change their password
  • All features are toggleable in three tiers:
    • No user file found (Directory access is currently unrestricted)
    • Normal user
    • Admin user
  • Easy basic configuration through a short variable list at the top of the file. Once it is configured the first time for a website, it is unlikely the configuration would need to be changed when copying (or symbolic linking) the file to other directories.
Image Zoom Effect Update @ 2008-08-09 21:24:08 - Download

Updated the script so that it now tries to stay within the browser window, and I think I made a minor speed improvement by changing the growing image to an absolute positioning instead of relative.

Found another bug in which the image zoom object might never start growing and stays active if mouseover event is never caught.

New Image Gallery Layout Effect @ 2008-08-09 05:18:28 - Download

I decided the rather clumsy image effects on my posts with thumbnail galleries needed to be redone badly. They originally just displayed the full size pictures centered horizontally in the browser and then slightly above or below the current mouse position vertically, but this really did not work very well.

I just redid the HTML code in each of the thumbnail gallery posts so they are compatible with a new script I just now wrote [v0.9] in about two and a half hours. It kind of zooms in on the images when you mouse over them.

I still see a few bugs in the script and things I need to fix, but this is fine for now as I am exhausted and really need sleep. I thought this up as I was trying to sleep earlier, so I ended up giving up on sleeping in lieu of writing this to get it out of my system.

Things that need fixing still:
  • Do not allow picture to overlap browser window (if it can fit)
  • The animation seems a little choppy... need to see if it can be speed up
  • Possible optional addition later: Position pictures in different directions of the thumbnail (above, below, or centered around each corner)
  • IE bug when picture first loads and improper dimensions are read
To add comments, please go to the forum page for this project (guest comments are allowed for the Projects, Posts, and Updates Forums).
Comments are owned by the user who posted them. We accept no responsibility for the contents of these comments.

No comments for this Project