| Related sites for http://www.researchsystems.com/noesys/ |
| Scientific_Image_Processing Pixlock develops and distributes 'Exbem', a software for scientific image processing and analysis, for Apple Macintosh. | | Scientific_Imaging_Software,_Systems_and_Solutions Noesis offers a family of 2D and 3D imaging software and systems to extract quantitative information from a wide range of scientific images. Windows 95, NT 4.0, 2000. | | Scientific_Software Choose from thousands of scientific, academic and laboratory software programs. | | Scientific_Volume_Imaging Deconvolution and visualization software for microscopy, available on Windows, Mac, Irix and Linux. | | SciMetrics Provides the SciFit program for scientific data analysis, as well as consulting services. | | Sciproof Software for the preparation and editing of scientific manuscripts. | | SigmaPlot Graphing software for scientists. Product details, demonstration for download, and online purchasing. | | Soft_Analytics_Home_Page Low-cost simulation software for engineering and science. Analysis and design consulting for communication systems. | | Software_for_Science_Initiative Information, links and interactive on-line processing services for scientists, developers and users of scientific (particularly, imaging) software. | | Startek_Technology Custom software solutions for mechanical, electrical and chemical engineering applications, including instrument interface and communications. Boronia, Victoria, Australia. | | Summit_Research_Services Pharmacokinetics and metabolism software and services for research and education. | | SYTEK_Canada SYTEK Canada specialises in developing custom scientific applications. | | United_Devices,_Inc_ Headquartered in Austin, Texas, is a technology company that develops the infrastructure required to aggregate unused computing resources on the Internet. | | Academia_Exchange Listing of science of philosophy conferences, workshops, and other meetings. Emphasis on European meetings. | | All_Conferences_Directory Searchable database of science and technology conferences. Organized by category. Also offers information regarding paper submission deadlines. | | Atlas_Conferences Database of academic meeting announcements, with abstracts, browsable by subject, by date or by country. | | European_Research_Conferences_(EURESCO) A programme of the European Science Foundation in Strasbourg. Conducts conference series in all scientific areas: discussion meetings exploring research frontiers. | | EuroSciCon_-_European_Scientific_Conferences Organisers of scientific symposiums, meetings, and conferences based in Europe: schedule of future meetings. | | EuroScience_Open_Forum_2006 The second pan-European scientific meeting providing an interdisciplinary forum for open dialogue, debate and discussion on science and technology in society. Munich, Germany; 15--19 July 2006. | | First_World_Conference_on_the_Future_of_Science A documented reflection about the dynamics and the impact of scientific progress on our society. Venice, Italy; 21--23 September 2005. | | Gordon_Research_Conferences To promote discussions and the exchange of ideas of studies in the biological, chemical and physical sciences. | | Interdisciplines Allows for the organization of virtual meetings, especially with topics combining science and humanities. Includes list of conferences and bibliography from these meetings. | | IPSI_Belgrade_Conferences_and_Workshops Scientific conferences emphasising synergy and interaction. By invitation with a special emphasis on young researchers. | | JOBIM_2005 An annual meeting at the frontiers of biology, mathematics, computer science and physics. Lyons, France; 6--8 July 2005. English/French. | | Nature_Events Contains meetings, symposia, conferences, courses, seminars, workshops, awards and programs. From the Nature journal. | | Wessex_Institute_of_Technology A postgraduate research engineering centre offering a series of conferences in science and technology. Site includes schedule of events. | | WIPCE_2005_-_Indigenous_Peoples_of_All_Nations Dedicated to promoting inspirational ideas and practices from indigenous communities that can be applied on an international scale. Invited are educators, researchers and students. From Friday Novemb | | Wonderfest_Festival_of_Science Biannual event in which pairs of researchers discuss and debate current scientific questions. Much of the event is available for review over the internet in audio and video formats. | | WSEAS_Conferences Promotes the development of new mathematical methods and computational techniques as well as their applications in science and engineering. | | Alberta_Teacher\'s_Association_Science_Conference Topics will include dinosaur history, pharmagenomics, Galapagos Island and Darwin, ants, and the Herschel Space Telescope. Takes place in Edmonton, Alberta during 11th - 13th, November 2005. ( | | All_You_Wanted_to_Know_About_Magic_Squares Introduction to magic squares. Basic/C computer programs to generate odd squares. Calculates 8x8 squares with any given date on the first line. | | Allmath_com__Magic_Squares_Game Interactive game to construct Magic Squares. Different degrees of difficulty and size of square. Hints and solutions provided. | | Amof__Info_on_Magic_Squares The Amazing Mathematical Object Factory generator makes up to 10 squares of order 1 to 10. Brief history and introduction included. | | The_Anti-Magic_Square_Project Starting from the definition of an Anti-Magic Square (AMS), the article presents the structure and construction methods of the AMS. Programs written in the c-language are available for download. | | Constructing_all_Magic_Squares_of_Order_Three Mathematical approach to the generation of order three squares by applying MacMahon's partition analysis. [PDF] | | Finding_Magic_Squares_Using_CCM The Chemical Casting Model (CCM) generation method is demonstrated with a Java Applet. Source code and description of algorithm included. (English/Japanese) [JRE required for Applet only]. | | Generalized_Magic_Objects Aale de Winkel's site on generalized objects, with generating function f() and conditions g(), sequences and pseudo-rings. | | Grog\'s_Magic_Squares Presents the "Magic Carpet" approach by "Grog". Downloads available for analyzers and creators in Excel format. | | Java_applet A documented Java applet that generates Magic Squares using a given starting number, increment, and starting location. Row, column and diagonal sums are displayed on request. Odd orders up to 7 are | | MAA__Ivars_Peterson\'s_MathLand__More_than_Magic_Squares Introduction with reference to Victor Hill and Bach. |
|
ITT VIS
function parseErrorMessage(sErrorMessage){
//This function was created to parse through a string supplied
//by the language dictionary and correctly add /n characters
//First split the sting into an array delimited by the \n character
var sErrorMessageArray = sErrorMessage.split("\\n");
sErrorMessage = "";
//Next, loop through the array, rebuilding the string with the proper \n characters
for(var i = 0; i < sErrorMessageArray.length; i++){
//Trim leading spaces
if (sErrorMessageArray[i].charAt(0) == " "){
sErrorMessage = sErrorMessage+sErrorMessageArray[i].substr(1)+"\n";
}
else{
sErrorMessage = sErrorMessage+sErrorMessageArray[i]+"\n";
}
}
//Once finished building the string, trim the last \n character
if(sErrorMessage.length > 1){
return sErrorMessage.substring(0, sErrorMessage.length-1);
}
else{
return sErrorMessage;
}
}
function verifyRequiredFields(form)
{
//*************************************************************************
//Name: verifyRequiredFields
//Desc: This function is used to loop through the Forms collection of
// objects and gives an error if any required field is left off.
// If you want a field to be optional, you specify this in the
// tag.
//
// This procedure can also be called from the javascript routine
// submitForm which is shown directly below this routine.
//Example:
//
// In the above example form fields named specifically (case sensitive) addr2 and phone
// are defined as optional and are therefore ignored by the validation routine.
//
//Author: Roch
//Date: 11.18.2000
//*************************************************************************
var sErrIE = "";
var sErrNS = "";
var bError = false;
var sErrorMessage = ""
for (var i = 0; i < form.length; i++) {
var e = form.elements[i];
if (e.name == 'formerrormessage'){
var sErrorMessage = e.value;
}
if (navigator.appName == "Netscape" || navigator.appName == "Mozilla") {
//since our onBlur events handled most of the local data validation
//we can just check for emptiness
//6.28.01 JH Added the replace statements to make the error msg look nicer
//10.23.01 I split this into two sets of code depending on browser to fix Netscape issue
//It looks like IE and NS handle the 0 position in a select box. NS treats the value
//as a NULL
if ( ((e.type == "text") || (e.type == "textarea")) && !e.optional) {
if ((e.value == null) || (e.value == "")){
if((e.alt == null) || (e.alt == "")){
sErrNS += "\n" + e.name.replace(/^s/,"").replace(/_/," ");
}
else{
sErrNS += "\n" + e.alt;
}
bError = true;
}
}
if (e.name == "NewPassword" && e.value != "") {
var Password = e.value;
}
if (e.name == "ConfirmPassword" && e.value != "") {
var ConfirmPassword = e.value;
}
if (e.name == "HostID") {
str = e.value.toUpperCase();
cleanstr = str.replace(/DISK_SERIAL_NUM=/,"");
cleanstr = cleanstr.replace(/FLEXID=/,"");
cleanstr = cleanstr.replace(/=/,"");
lencleanstr = cleanstr.length
if (lencleanstr != 5 && lencleanstr != 6 && lencleanstr != 7 && lencleanstr != 8 && lencleanstr != 12) {
sErrNS += "\n" + "The Host ID value you entered is not valid.";
}
}
if (e.name == "ServerID") {
str = e.value.toUpperCase();
cleanstr = str.replace(/DISK_SERIAL_NUM=/,"");
cleanstr = cleanstr.replace(/FLEXID=/,"");
cleanstr = cleanstr.replace(/=/,"");
lencleanstr = cleanstr.length
if (lencleanstr != 5 && lencleanstr != 6 && lencleanstr != 7 && lencleanstr != 8 && lencleanstr != 12) {
sErrNS += "\n" + "The Server ID value you entered is not valid.";
}
}
if ((e.type == "select-one") && (!e.optional)) {
//Netscape does not support the .value property of a drop down without referencing the selectedIndex
//It does support the
if ((e.options[e.selectedIndex].value == null) || (e.options[e.selectedIndex].value == "")){
sErrNS += "\n" + e.name.replace(/^s/,"").replace(/_/," ");
bError = true;
}
}
if ((e.type == "select-multiple") && (!e.optional)) {
//Netscape does not support the .value property of a drop down without referencing the selectedIndex
//It does support the
if ((e.selectedIndex == -1)||(e.options[e.selectedIndex].value == null) || (e.options[e.selectedIndex].value == "")){
sErrNS += "\n" + e.name.replace(/^s/,"").replace(/_/," ");
bError = true;
}
}
if ((e.type == "radio") && (!e.optional)) {
//Since each radio button is it's own element, we need to set up another loop
//Set the intial values of the first radio button to be used in the loop
var elementChecked = false;
var elementName = e.name;
var elementALT = e.alt;
//While the element is still a radio button and of the same
while(e.type == "radio" && e.name == elementName){
if (e.checked == true){
elementChecked = true;
}
i++;
var e = form.elements[i];
}
if(!elementChecked){
if((elementALT == null) || (elementALT == "")){
sErrIE += "" + elementName.replace(/^s/,"").replace(/_/," ") + "";
sErrNS += "\n" + elementName.replace(/^s/,"").replace(/_/," ");
}
else{
sErrIE += "" + elementALT + "";
sErrNS += "\n" + elementALT;
}
bError = true;
}
i--;
}
if ( (e.type == "password") && !e.optional) {
if ((e.value == null) || (e.value == "")){
if((e.alt == null) || (e.alt == "")){
sErrNS += "\n" + e.name.replace(/^s/,"").replace(/_/," ");
}
else{
sErrNS += "\n" + e.alt;
}
bError = true;
}
}
}
else {
if ( ((e.type == "text") || (e.type == "textarea")) && !e.optional) {
if ((e.value == null) || (e.value == "")){
if((e.alt == null) || (e.alt == "")){
sErrIE += "" + e.name.replace(/^s/,"").replace(/_/," ") + "";
sErrNS += "\n" + e.name.replace(/^s/,"").replace(/_/," ");
}
else{
sErrIE += "" + e.alt + "";
sErrNS += "\n" + e.alt;
}
bError = true;
}
}
if (e.name == "NewPassword" && e.value != "") {
var Password = e.value;
}
if (e.name == "ConfirmPassword" && e.value != "") {
var ConfirmPassword = e.value;
}
if (e.name == "HostID") {
str = e.value.toUpperCase();
cleanstr = str.replace(/DISK_SERIAL_NUM=/,"");
cleanstr = cleanstr.replace(/FLEXID=/,"");
cleanstr = cleanstr.replace(/=/,"");
lencleanstr = cleanstr.length
if (lencleanstr != 5 && lencleanstr != 6 && lencleanstr != 7 && lencleanstr != 8 && lencleanstr != 12) {
sErrIE += "The Host ID you entered is not valid.";
sErrNS += "\n" + "The Host ID value you entered is not valid.";
}
}
if (e.name == "ServerID") {
str = e.value.toUpperCase();
cleanstr = str.replace(/DISK_SERIAL_NUM=/,"");
cleanstr = cleanstr.replace(/FLEXID=/,"");
cleanstr = cleanstr.replace(/=/,"");
lencleanstr = cleanstr.length
if (lencleanstr != 5 && lencleanstr != 6 && lencleanstr != 7 && lencleanstr != 8 && lencleanstr != 12) {
sErrIE += "The Server ID you entered is not valid.";
sErrNS += "\n" + "The Server ID value you entered is not valid.";
}
}
if ((e.type == "select-one") && (!e.optional)) {
if ((e.value == null) || (e.value == "")){
if((e.alt == null) || (e.alt == "")){
sErrIE += "" + e.name.replace(/^s/,"").replace(/_/," ") + "";
sErrNS += "\n" + e.name.replace(/^s/,"").replace(/_/," ");
}
else{
sErrIE += "" + e.alt + "";
sErrNS += "\n" + e.alt;
}
bError = true;
}
}
if ((e.type == "select-multiple") && (!e.optional)) {
if ((e.value == null) || (e.value == "")){
if((e.alt == null) || (e.alt == "")){
sErrIE += "" + e.name.replace(/^s/,"").replace(/_/," ") + "";
sErrNS += "\n" + e.name.replace(/^s/,"").replace(/_/," ");
}
else{
sErrIE += "" + e.alt + "";
sErrNS += "\n" + e.alt;
}
bError = true;
}
}
if ((e.type == "radio") && (!e.optional)) {
//Since each radio button is it's own element, we need to set up another loop
//Set the intial values of the first radio button to be used in the loop
var elementChecked = false;
var elementName = e.name;
var elementALT = e.alt
//While the element is still a radio button and of the same
while(e.type == "radio" && e.name == elementName){
if (e.checked == true){
elementChecked = true;
}
i++;
var e = form.elements[i];
}
if(!elementChecked){
if((elementALT == null) || (elementALT == "")){
sErrIE += "" + elementName.replace(/^s/,"").replace(/_/," ") + "";
sErrNS += "\n" + elementName.replace(/^s/,"").replace(/_/," ");
}
else{
sErrIE += "" + elementALT + "";
sErrNS += "\n" + elementALT;
}
bError = true;
}
i--;
}
if ( (e.type == "password") && !e.optional) {
if ((e.value == null) || (e.value == "")){
if((e.alt == null) || (e.alt == "")){
sErrIE += "" + e.name.replace(/^s/,"").replace(/_/," ") + "";
sErrNS += "\n" + e.name.replace(/^s/,"").replace(/_/," ");
}
else{
sErrIE += "" + e.alt + "";
sErrNS += "\n" + e.alt;
}
bError = true;
}
}
}
}
//now check and confirm the password
if ((Password != "") && (Password != ConfirmPassword)) {
sErrIE += "The password and confirmation do not match.";
sErrNS += "\nThe password and confirmation do not match.";
bError = true;
}
//Now display the errors
if (!bError) return true;
if(sErrorMessage == null || sErrorMessage == ""){
sErrorMessage = 'The form was not submitted because the \n following required fields were left blank'
}
else{
sErrorMessage = parseErrorMessage(sErrorMessage);
}
var sMsg = "--------------------------------------\n";
sMsg += sErrorMessage+ "\n";
sMsg += "--------------------------------------\n\n";
sMsg += sErrNS + "\n";
sMsg += "\n--------------------------------------\n\n";
if (navigator.appName == "Netscape" || navigator.appName == "Mozilla") {
//haven't figured out the proper DHTML for Netscape so
//just create an ALERT box
alert (sMsg);
}
else {
//Display the list of fields that were left empty.
//remember the calling page must have a somewhere on the
//page else the .innerHTML will have no place to write the string.
alert (sMsg);
sErrIE = " " + sErrorMessage + "" + sErrIE + "";
if(document.all.errSection){
document.all.errSection.innerHTML = sErrIE;
}
}
return false;
}
function ProperCase(theForm, sObjName)
{
var theName = new String(theForm.elements[sObjName].value)
var newstring
var lastchar = ' '
for (var i = 0; i < theName.length; i++) {
theChar = theName.charAt(i)
if ((i == 0) && (theChar != '')) {
newstring = theChar.toUpperCase();
lastchar = theName + theChar;
}
else if ((lastchar == ' ') && (theChar != '')) {
newstring = newstring + theChar.toUpperCase();
lastchar = theChar;
}
else {
newstring = newstring + theChar.toLowerCase();
lastchar = theChar;
}
}
theForm.elements[sObjName].value = newstring;
return true
}
function submitData(form)
{
bErrors = verifyRequiredFields(form);
if (!bErrors) return false;
//put code here such as Alerts or modify document.status or whatever
//things you want to happen BEFORE the Forms Action page is called.
return true
}
//test for an integer
function isInteger(theData)
{
if (isNaN(parseInt(theData)))
return false
else
return true
}
//theChar includes letters only
function isLetter(theChar)
{
//Blank space is considered a character
var charArray = new Array(
' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',
'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r',
's', 't', 'u', 'v', 'w', 'x', 'y', 'z')
for (j = 0; j < charArray.length; j++)
if (theChar == charArray[j])
return true
return false
}
//theChar includes letters only
function isLetter(theChar)
{
//Blank space is considered a character
var charArray = new Array(
' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',
'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r',
's', 't', 'u', 'v', 'w', 'x', 'y', 'z')
for (j = 0; j < charArray.length; j++)
if (theChar == charArray[j])
return true
return false
}
//Digit is one of the characters 0, 1, ..., 9
function isDigit(theDigit)
{
digitArray = new Array('0','1','2','3','4',
'5','6','7','8','9')
for (j = 0; j < digitArray.length; j++)
if (theDigit == digitArray[j])
return true
return false
}
//Characters and digits
function isAlphaNumeric(theChar)
{
if ( !isDigit(theChar) )
if ( !isLetter(theChar) )
return false
return true
}
//Name is characters and , . ' ` -
function isValidName(theForm, sObjName)
{
var theName =
new String(theForm.elements[sObjName].value)
var theChar
for (var i = 0; i < theName.length; i++)
{
theChar = theName.charAt(i)
//is it not a character?
if ( !isLetter(theChar) )
{
//is it not one of the allowed punctuation?
if ( !( (theChar == '-') ||
(theChar == '.') ||
(theChar == '@') ||
(theChar == ',') ||
(theChar == '\'') ||
(theChar == '`') ) )
{
alert("Use only letters and these characters: - . @ , \' `; try again")
theForm.elements[sObjName].focus()
theForm.elements[sObjName].select()
return false
}
}
}
return true
}
//---Test that aString is no longer than maxLength
function isMaxLength(aString, maxLength)
{
if (aString.length = minLength)
return true
else
return false
}
//---Test that aString is exactly aLength
function isLength(aString, aLength)
{
if (isMaxLength(aString, aLength) &&
isMinLength(aString, aLength))
return true
else
return false
}
//---Test that aString is no longer than maxLength
function isValidStringLength(theForm, sObjName, maxLength)
{
var aString = new String(theForm.elements[sObjName].value)
if (aString.length = 1) //a space was found
{
alert("Invalid Email Address \n Please try again.");
theForm.elements[sObjName].focus();
theForm.elements[sObjName].select();
return false;
}
var iEndBraceFound = sEmail.indexOf('}');
if (iEndBraceFound >= 1) //a space was found
{
alert("Invalid Email Address \n Please try again.");
theForm.elements[sObjName].focus();
theForm.elements[sObjName].select();
return false;
}
var iQuestionMarkFound = sEmail.indexOf('?');
if (iQuestionMarkFound >= 1) //a space was found
{
alert("Invalid Email Address \n Please try again.");
theForm.elements[sObjName].focus();
theForm.elements[sObjName].select();
return false;
}
var iCommaFound = sEmail.indexOf(',');
if (iCommaFound >= 1) //a comma was found
{
alert("Invalid Email Address \n Please try again.");
theForm.elements[sObjName].focus();
theForm.elements[sObjName].select();
return false;
}
var iSemiColonFound = sEmail.indexOf(';');
if (iSemiColonFound >= 1) //a semicolon was found
{
alert("Invalid Email Address \n Please try again.");
theForm.elements[sObjName].focus();
theForm.elements[sObjName].select();
return false;
}
var iLength = sEmail.length;
if (iLength < 5) { //Emails must be at least five cahracters long
alert("Invalid Email Address \n Please try again.");
theForm.elements[sObjName].focus();
theForm.elements[sObjName].select();
return false;
}
//check for an .edu or .ca email address if the educational flag was set
var UCaseEmail = sEmail.toUpperCase()
var iDotEDU = UCaseEmail.indexOf('.EDU');
var iDotCA = UCaseEmail.indexOf('.CA');
if (bEDU == 1 && (iDotEDU < 0 && iDotCA < 0)) {
alert("Invalid Email Address \n Please provide a valid email address for your educational institution.");
theForm.elements[sObjName].focus();
theForm.elements[sObjName].select();
return false;
}
return true;
}
function open_window(url) {
window.scrollbar
window.toolbar
window.open(url,"test","width=600,height=250,toolbar=yes,location=yes,scrollbars=yes, resizable=yes")
}
function setBGColor(formElement){
formElement.style.backgroundColor = '#fffacd';
}
function unsetBGColor(formElement){
formElement.style.backgroundColor = 'white';
}
dqm__codebase = "/Templates/javamenu/"
_uacct = "UA-592486-1";urchinTracker();
Register,
Sign In
EnglishEnglish UKFrenchItalianSpanish
Thank you for visiting ITT Visual Information Solutions website.
We’ve recently updated our site to provide users with enhanced web technologies. Please be sure update your bookmarks and favorites to reflect any changes.
Visit the new www.ittvis.com >
Quick Links
Contact a Representative
Request Literature
Events
User Community
Subscribe
Product Information
IDL
IDL Analyst
ENVI
IAS
NITF for ArcGIS
Professional Services
Events & Training
Home
| Company
| Products & Services
| Academic
| Events & Training
| Downloads
| User Community
| Support
| Site Map
Privacy Statement ©2008 ITT Visual Information Solutions
|
|