var labels = new Array( 
    '---Pick a Site---',
    'WiscMail',
    'WiscMail Plus',
    'WiscCal',
    '---Instruction Tools---',
    'Learn@UW',
    'Moodle',
    'Library Course Pages',
    '---Campus Tools---',
    'MyUW',
    'MyWebSpace',
    'RefWorks',
    'My Madcat',
    'E-Portfolio'
);

var addresses = new Array(
    '',
    'http://wiscmail.wisc.edu/',
    'https://www.wiscmail.wisc.edu/mailplus/',
    'http://www.wisccal.wisc.edu/',
    '',
    'https://learnuw.wisc.edu/',
    'http://moodle.education.wisc.edu/',
    'http://www.library.wisc.edu/lcp/lcpinstructorinfo.htm',
    '',
    'http://my.wisc.edu/',
    'http://mywebspace.wisc.edu/',
    'http://digital.library.wisc.edu/1711.web/refworks',
    'http://madcat.library.wisc.edu/cgi-bin/Pwebrecon.cgi?DB=local&amp;PAGE=pbLogon',
    'http://careers.education.wisc.edu/epcsonline/'
);

// Jump to selected page.
function jump_page( form ) {
    i = form.menu.selectedIndex;
    if ( i != 0 ) {
        window.location.href = addresses[ i ];
    }
}

// This function expects a folder holding JPEG files named '1.jpg'...'N.jpg'.
function get_pix( pix_path, quantity, width, height ) {

    var list = new Array();
    for ( var i = 1; i <= quantity; i++ ) {
        // Make string like...src="/images/1.jpg" align="top" width="200" height="180"
        list[list.length] = 'src="' + pix_path + i + '.jpg" align="top" width="' + width + '" height="' + height + '"';
    }

    /*
     Make an integer from the product of a pseudo-random number between 
     0.0 and 1.0 (Math.random) and the number of items in the array.
    */
    var random_number = parseInt(Math.random()*list.length);

    // Test if 'random_number' is not-a-number (NaN).
    random_number = ( isNaN(random_number) ) ? 0 : random_number;
    
    // Write one image to web document.
    document.write( "<img " + list[ random_number ] + " />" );

}


// Functions to validate form data
// ...from CGI Programming with Perl, (2000), Guelich, Gundavaram, & Birznieks
//

// Use as a hash to record any problems with each element.
validate = new Object();

// Purpose     : Decides if value is an integer.
// Arguments   : value
// Returns     : true or false
function is_integer( value ) {
    return( value == parseInt( value ) );
}

// Purpose     : Decides if value is in the range.
// Arguments   : value, lowest_range_value, highest_range_value
// Returns     : true or false
function in_range( value, low, high ) {
    return( !( value < low ) && value <= high );
}

// Purpose     : Decides if value looks like format (999-9999 looks like ###-####)
// Arguments   : value, lowest_range_value, highest_range_value
// Returns     : true or false
function check_format( value, format ) {
    var format_okay = true;
    if ( value.length != format.length ) {
        return false;
    }
    for ( var i = 0; i < format.length; i++ ) {
        if ( format.charAt(i) == '#' && ! isInteger( value.charAt(i) ) ) {
            return false;
        } else if ( format.charAt(i) != '#' && format.charAt(i) != value.charAt(i) ) {
            return false;
        }
    }
    return true;
}

// Purpose     : Decides if each REQUIRED text element has a value
// Arguments   : form, elements_array
// Returns     : true or false
function require_values( form, required_elements ) {
    for ( var i = 0; i < required_elements.length; i++ ) {
        element = required_elements[i];
        if ( form[element].value == "" ) {
            alert( "Please enter a value for " + element + "." );
            return false;
        }
    }
    return true;
}

// Purpose     : Decides if each REQUIRED menu element has a select option
// Notes       : Assumes the 0 element is instructions or directions
// Arguments   : form, elements_array
// Returns     : true or false
function require_selects( form, required_elements ) {
    for ( var i = 0; i < required_elements.length; i++ ) {
        element = required_elements[i];
	//        if ( form[element].selectedIndex <= 0 || form[element].value == "-" ) {
        if ( form[element].value == "-" ) {
	    alert( "Please select a menu item from " + element + "." );
            return false;
        }
    }
    return true;
}

// Purpose     : Decides if each REQUIRED radio element has a select option
// Arguments   : form, elements_array
// Returns     : true or false
function require_radios( form, required_elements ) {
    for ( var i = 0; i < required_elements.length; i++ ) {
        element = required_elements[i];
        is_checked = false;
        for ( j = 0; j < form[element].length; j++ ) {
            if ( form[element][j].checked ) {
                is_checked = true;
            }
        }
        if ( ! is_checked ) {
            alert( "Please select a radio button from " + element + "." );
            return false;
        }
    }
    return true;
}

// Purpose     : Decides if there are any uncorrected formats
// Arguments   : n/a
// Returns     : true or false
function check_problems() {
    for ( element in validate ) {
        if ( ! validate[element] ) {
            alert( "Please correct the format of " + element + "." );
            return false;
        }
    }
    return true;
}

// Purpose     : Check zip codes
// Arguments   : element
// Returns     : adds to 'validate' object
function check_zip( element ) {
    if ( ! check_format( element.value, "#####" ) ) {
        alert( "Please enter a five-digit zip code." );
        element.focus();
        validate[element.name] = false;
    } else {
        validate[element.name] = true;
    }
    return validate[element.name];
}


// Purpose     : Check telephone number
// Arguments   : element
// Returns     : adds to 'validate' object
function check_phone( element ) {
    if ( ! check_format( element.value, "###-###-####" ) ) {
        alert( "Please enter " + element.name + " in 333-333-4444 format." );
        element.focus();
        validate[element.name] = false;
    } else {
        validate[element.name] = true;
    }
    return validate[element.name];
}


// Purpose     : Check social security number
// Arguments   : element
// Returns     : adds to 'validate' object
function check_ssn( element ) {
    if ( ! check_format( element.value, "###-##-####" ) ) {
        alert( "Please enter your Social Security Number in 333-22-4444 format." );
        element.focus();
        validate[element.name] = false;
    } else {
        validate[element.name] = true;
    }
    return validate[element.name];
}



// Purpose     : Check age, i.e., an integer between 5 and 105.
// Arguments   : element
// Returns     : adds to 'validate' object
function check_age( element ) {
    if ( ! is_integer( element.value ) ||
         ! in_range( element.value, 5, 105 ) )  {
        alert( "Please enter a number between 5 and 105 for age." );
        element.focus();
        validate[element.name] = false;
    } else {
        validate[element.name] = true;
    }
    return validate[element.name];
}


// Validate e-mail address.
function is_email( form, field ) {
	alert( form.field.value );
    if ( form.field.value.indexOf("@") != "-1" && form.field.value.indexOf(".") != "-1" && form.field.value != "" ) {
        return true;
    } else {
        alert( "Valid email address required." );
        form.field.focus();
        return false;
    }
}


