Case Study: DRA Advisors

Our information is vital to the running and maintenance of our organization and Storage Guardian provided the most comprehensive data backup package at the most reasonable cost.

Susan Muller, Office Manager

Canadian Special Olympics

About the Client

The Canadian Special Olympics is a non-profit sport organization with programs providing sport training and competition for people with a mental disability. In 1969, Canada hosted its first Canadian Special Olympics (CSO) event in Toronto. Today, over 23,000 athletes are registered in Special Olympics programs across Canada.

CSO maintains proprietary information based on its facilitation of its administrative processes. Whether it is participant records, fundraising/donor records, or their accounting management databases, CSO requires safe, dependable, and fast data storage and data backup.

The Client's Need for Data Backup and Recovery

The Canadian Special Olympics has a Novell network environment.

"Running a non-profit organization requires us to make smart and economical decisions. Our information is vital to the running and maintenance of our organization and Storage Guardian provided the most comprehensive data backup package at the most reasonable cost" says Susan Muller, Office Manager of CSO.

About the Reseller

For over 65 years, Ainsworth Inc. has provided comprehensive "One Source, One Solution" services. Their business integration consulting services provides the means to successfully transform, improve, and manage your organization, rethinking the way technology is planned and implemented.

A Technology Project Coordinator at Ainsworth recommended Storage Guardian to CSO because of their needs for seamless and secure data backup.

"We recommended Storage Guardian to CSO over cassette backup because its technology is faster, more reliable, secure and less temperamental than tape storage backup."

The Storage Guardian Solution

Storage Guardian is a secure data backup and restore service for your network data. To protect against information loss and ensure fast recovery of information, Storage Guardian allows you to include on-line, off-site data recovery as part of your Business Continuity Plan.

Omry Farajun, President of Storage Guardian said, "Storage Guardian is the culmination of a decade of intense research and software development. It is in response to a growing awareness among senior management of business continuity concerns, especially after recent events in the United States has heightened our sense of the vulnerabilities generated in today's economy. In addition, Storage Guardian is an innovative and cost-effective solution to the shortcomings associated with tape-based data recoveries and the increasing data volumes."

More case studies:

// Ensure the DOM is fully loaded before running the script document.addEventListener('DOMContentLoaded', function() { console.log('Script: DOMContentLoaded event fired. Attempting to initialize form validator.'); // Get the form element by its ID. // IMPORTANT: You MUST replace 'webflow-form' with the actual ID of your Webflow form. // To find the ID: // 1. Publish your Webflow site. // 2. Open it in your browser. // 3. Right-click on your form and select "Inspect" (or "Inspect Element"). // 4. Look for the
tag and its 'id' attribute. // It might look something like or similar. const form = document.getElementById('webflow-form'); // If the form doesn't exist on the page, log an error and exit. if (!form) { console.error('Script Error: Webflow form with ID "webflow-form" not found.'); console.error('Please verify the form ID in your Webflow designer and update the script accordingly.'); return; // Exit the script if the form is not found } console.log('Script: Form found with ID:', form.id); // Get the message display elements. // You should have div elements in your Webflow design with these IDs to display messages. const errorMessageDiv = document.getElementById('error-message'); const successMessageDiv = document.getElementById('success-message'); if (!errorMessageDiv) { console.warn('Script Warning: Error message div with ID "error-message" not found. Messages will not be displayed.'); } if (!successMessageDiv) { console.warn('Script Warning: Success message div with ID "success-message" not found. Messages will not be displayed.'); } /** * Displays a message in the designated message div. * It also ensures the other message type is hidden. * @param {HTMLElement} element - The div element to display the message in. * @param {string} message - The message text to display. * @param {boolean} isError - True if it's an error message, false for success. */ function showMessage(element, message, isError) { if (element) { // Check if the element exists before trying to manipulate it element.textContent = message; element.style.display = 'block'; // Make the message div visible console.log(`Script Message: ${isError ? 'Error' : 'Success'} - ${message}`); } else { console.warn(`Script Warning: Attempted to show message "${message}" but target element was not found.`); } // Ensure the opposite message type is hidden if (isError && successMessageDiv) { successMessageDiv.style.display = 'none'; } else if (!isError && errorMessageDiv) { errorMessageDiv.style.display = 'none'; } } /** * Hides all message divs and clears their content. */ function hideMessages() { if (errorMessageDiv) { errorMessageDiv.style.display = 'none'; errorMessageDiv.textContent = ''; } if (successMessageDiv) { successMessageDiv.style.display = 'none'; successMessageDiv.textContent = ''; } } // Add an event listener for the form's submit event form.addEventListener('submit', function(event) { console.log('Script: Form submission attempted.'); // Hide any previous messages before re-validating hideMessages(); // Get the values from the input fields by their IDs. // IMPORTANT: Ensure these IDs ('form-validator-1', 'form-validator-2', 'form-validator-3') // exactly match the IDs of your input fields in Webflow. const validator1Input = document.getElementById('form-validator-1'); const validator2Input = document.getElementById('form-validator-2'); const validator3Input = document.getElementById('form-validator-3'); // Check if all required input elements exist if (!validator1Input || !validator2Input || !validator3Input) { console.error('Script Error: One or more form validator fields not found.'); console.error('Please check IDs: "form-validator-1", "form-validator-2", "form-validator-3" in your Webflow designer.'); // Prevent submission if critical fields are missing event.preventDefault(); showMessage(errorMessageDiv, 'Form validation setup error: Missing one or more required fields.', true); return; } const validator1 = validator1Input.value; const validator2 = validator2Input.value; const validator3 = validator3Input.value; console.log('Script: Field 1 value:', validator1); console.log('Script: Field 2 value:', validator2); console.log('Script: Field 3 value:', validator3); let isBlocked = false; let blockReason = ''; // Condition 1: field ID "form-validator-1" contains "RobertUnord" if (validator1.includes('RobertUnord')) { isBlocked = true; blockReason = 'Field 1 contains "RobertUnord".'; } // Condition 2: field ID "form-validator-2" contains "RobertUnord" else if (validator2.includes('RobertUnord')) { isBlocked = true; blockReason = 'Field 2 contains "RobertUnord".'; } // Condition 3: field ID "form-validator-3" equals "google" else if (validator3 === 'google') { isBlocked = true; blockReason = 'Field 3 equals "google".'; } // If any blocking condition is met if (isBlocked) { event.preventDefault(); // Stop the form from submitting console.log('Script: Form blocked. Reason:', blockReason); showMessage(errorMessageDiv, `Form submission blocked: ${blockReason} Please correct the entry.`, true); } else { console.log('Script: Form validation passed. Allowing submission.'); // If the form is NOT blocked, allow it to submit normally. // In a Webflow context, this means the form's native submission // (e.g., to a Webflow form backend, or a custom integration) will proceed. // DO NOT add event.preventDefault() here if you want Webflow's default submission to occur. // If you want to show a success message *before* the form submits (and potentially redirects), // you would need to prevent default here and handle the submission via AJAX. // For now, we assume a successful validation allows Webflow's default submission. // showMessage(successMessageDiv, 'Form validated successfully! Submitting...', false); } }); });