<!--

// shared javascript library for evans easyspace
// validation utility libary

function properCase(strInput, strSplitChar)
{
    // converts a string to Proper Case
    if (strSplitChar == undefined)
    {
          // use space by default
          var strSplitChar = " ";
    }

    strArray = strInput.split(strSplitChar);

    for (var i = 0; i < strArray.length; i++)
    {
        if (strArray[i].length > 1)
        {
            strArray[i] = strArray[i].charAt(0).toUpperCase() + strArray[i].substr(1).toLowerCase();
        }
        else if (strArray[i].length == 1)
        {
            strArray[i] = strArray[i].toUpperCase();
        }
    }
    return strArray.join(" ");
}

function validFileType(fullpath, validtypes)
{
    var valid = false; // assume not a valid type
    var ext_start = fullpath.lastIndexOf(".");

    if (ext_start != -1)
    {
        var ext = fullpath.substring(ext_start + 1);
        ext = ext.replace(/(^\s)|(\s$)/g,"");

        if (validtypes != "")
        {
            var arr = validtypes.split(",");

            for (var i = 0; i < arr.length; i++)
            {
                var type = arr[i];
                type = type.replace(/(^\s)|(\s$)/g,"");

                if (type == ext)
                {
                    valid = true;
                    break;
                }
            }

        }

    }

    return valid;
}

function isCsvFile(filename)
{
    // returns true if filename looks like a csv file
    // filename must have at least one character
    // case insensitive test
    var valid = false;
    csvre = /\w+\.csv$/i;
    if (csvre.test(filename))
    {
        valid = true;
    }
    return valid;
}

function samePassword(pass1, pass2)
{
    // returns true if both passwords match
    var valid = false;
    if (pass1 == pass2)
    {
        valid = true;
    }
    return valid;
}

function closeWin()
{
    // closes window
    window.close();
}

function isPosInteger(inputVal)
{
    // returns true if a +ve integer
    var inputVal = inputVal.toString();
    var valid = true;
    for (var i = 0; i < inputVal.length; i++)
    {
        var character = inputVal.charAt(i);
        if (character < "0" || character > "9")
        {
            valid = false;
            break;
        }
    }
    return valid;
}

function isValidTime(hour, minute)
{
    // returns true if a valid hour and minute in hh:mm format
    var valid = false;
    if ( hour.length = 2 || minute.length != 2 )
    {
        if ( hour.indexOf(".") == -1)
        {
            if ( hour > 0 || hour < 24 )
            {
                if ( minute > 0 || minute < 60 )
                {
                    valid = true;
                }
            }
        }
    }
    return valid;
}

function isValidURL(url)
{
    // returns true if a valid URL
    var valid = false;
    urlre = /[a-z]{3}\.[A-Za-z0-9-.]+\.[a-z]{2,5}/i;
    if (urlre.test(url))
    {
        valid = true;
    }
    return valid;
}

function hasSpaces(text)
{
    // returns true if selection contains a space character
    valid = false;
    if (text.indexOf(" ") != -1)
    {
        valid = true;
    }
    return valid;
}

function filenameHasSpaces(fullpath)
{
    var hasSpaces = false;
    var filename  = "";
    var lastslash = fullpath.lastIndexOf("\\");

    if (lastslash > 0)
    {
        filename = fullpath.substr(lastslash + 1, fullpath.length - (lastslash));
    }
    else
    {
        filename = fullpath;
    }

    if (filename.indexOf(" ") > 0)
    {
        hasSpaces = true;
    }

    return hasSpaces;
}

function isCompleted(inputstring)
{
    // returns true if inputstring is not empty
    var valid = false;
    if (inputstring.length > 0 && inputstring != null)
    {
        valid = true;
    }
    return valid;
}

function isValidEmail(email)
{
    // returns true if a valid e-mail
    var valid = false;
    if ( (email.indexOf("@") != -1) && (checkLength(email,3)) )
    {
        valid = true;
    }
    return valid;
}

function checkLength(inputstring, minlength, maxlength)
{
    // returns true if string is >= to minlength
    var valid = true;
    if (inputstring.length < minlength || inputstring.length > maxlength)
    {
        valid = false;
    }
    return valid;
}

function isValidPassword(password, minlength)
{
    // returns true if password is >= minlength and alphanumeric
    var valid = false;
    var alpha_flag = false;
    var numeric_flag = false;
    password = password.toString().toLowerCase();
    if (password.length >= minlength)
    {
        for (i = 0; i < password.length; i++)
        {
            if ( (password.charCodeAt(i) >= 48) && (password.charCodeAt(i) <= 57) )
            {
                numeric_flag = true;
            }
            if ( (password.charCodeAt(i) >= 97 ) && (password.charCodeAt(i) <= 122) )
            {
                alpha_flag = true;
            }
            if (numeric_flag && alpha_flag)
            {
                valid = true;
                break;
            }
        }
    }

    return valid;
}

function isValidDate(day, month, year)
{
    // returns true if a valid date
    var valid = false;
    var daysinmonths = new Array(12);
    daysinmonths["01"] = 31;
    daysinmonths["02"] = 28;
    daysinmonths["03"] = 31;
    daysinmonths["04"] = 30;
    daysinmonths["05"] = 31;
    daysinmonths["06"] = 30;
    daysinmonths["07"] = 31;
    daysinmonths["08"] = 31;
    daysinmonths["09"] = 30;
    daysinmonths["10"] = 31;
    daysinmonths["11"] = 30;
    daysinmonths["12"] = 31;

    if (isNaN(day))
    {
        if (day.substr(0,1) == "0")
        {
            day = parseInt(day.substr(1,1));
        }
        else
        {
            day = parseInt(day);
        }
    }

    if (isNaN(month))
    {
        if ( (month.substr(0,1) != "0") && (month.length < 2) )
        {
            month = "0" + month;
        }
    }
    else
    {
        if (month.toString().length < 2)
        {
            month = "0" + month.toString();
        }
        else
        {
            month = month.toString();
        }
    }

    if (isNaN(year))
    {
        year = parseInt(year);
    }

    if ( (year % 4 == 0) && (month == "02") )
    {
        if (day >= 1 && day <= daysinmonths[month] + 1)
        {
            valid = true;
        }
    }
    else
    {
        if (day >= 1 && day <= daysinmonths[month])
        {
            valid = true;
        }
    }

    return valid;
}

function toUcase(text)
{
    // converts text to upper case
    return text.toUpperCase();
}

function toLcase(text)
{
    // converts text to upper case
    return text.toLowerCase();
}

function ucFirst(text)
{
    // converts first character to upper case, others to lower case
    return text.substr(0,1).toUpperCase() + text.substr(1).toLowerCase();
}

function goBack(n)
{
    // goes back n pages in history
    history.go(-n);
}

function generatePassword(maxlength)
{
    // generates a random password
    var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    var password = "";
    for (var i = 0; i < maxlength; i++)
    {
        password += chars.charAt(chars.length * Math.random());
    }
    return password;
}

function openWin(strFile, intWidth, intHeight)
{
    // opens a new window of specified height and width

    var myDate = new Date();
    var windowName = myDate.getTime();
    var strProperties = 'toolbar=no,width=' + Math.round(intWidth) +
                        ',height=' + Math.round(intHeight) +
                        ',status=no,scrollbars=yes,resize=no';
    window.open(strFile, windowName, strProperties);
    return;
}

function hasMadeSelection(selection)
{
    // returns false if selection contains "Select"
    valid = true;
    if (selection.indexOf("Select") != -1)
    {
        valid = false;
    }
    return valid;
}

function centerWindow(popupwidth, popupheight)
{
    // centres window in center of the screen
    var winHeight = screen.height;
    var winWidth = screen.width;
    window.moveTo( (winWidth/2) - (popupwidth/2)  , (winHeight/2) - (popupheight/2) );
    return;
}

//-->
