// - $Author: Christian Stone
// - $Revision: 1.1
// -
// - ====================================================================
// -
// - Copyright (C) 2002-2009 by Christian Stone
// -
// - All copyright notices regarding this software MUST remain
// - intact in the scripts and in the outputted HTML.
// -
// - You are not allowed to copy or redistribute this software without explicit permission from Christian Stone
// -

var new_fieldname = ""

/*
 * Util method added by xtian
 */
function pw2md5(unencpass, md5password) {
  md5password.value = b64_md5(unencpass.value);
  unencpass.value = "";
}

function SubmitLoginForm() {
  pw2md5(document.submitform.unencpass, document.submitform.password);
  document.submitform.submitbutton.disabled=true;
  document.submitform.submit();
}

function SubmitRegistrationForm() {
 // check if passwords match
  if (document.registration.unencpass.value != document.registration.password2.value){
   	alert('Passwords do not match!');
	document.registration.unencpass.focus();
	return false;
  }
  //encrypt password
  pw2md5(document.registration.unencpass, document.registration.password);
  // check required fields.  why can't this happen first?
  if (!check(document.registration,document.registration.elements.length)){
  	return false;
  }
  return true;
}

function ChangePasswordForm() {
 if (document.registration.unencpass.value==null||document.registration.unencpass.value==""){
   	alert('Please enter Password!');
	document.registration.unencpass.focus();
	return false;
  }
 // check if passwords match
  if (document.registration.unencpass.value != document.registration.password2.value){
   	alert('Passwords do not match!');
	document.registration.unencpass.focus();
	return false;
  }
  //encrypt password
  pw2md5(document.registration.unencpass, document.registration.password);
  return true;
}

function checkAndSubmit(form,x) {
    if (check(form,x)) {
        form.submit();
        return true;
    }
    return false;
}

function check(form, x)
{
    var message = ""
    var more_message = ""
    var showmsg = "no"
        x = x - 1
        for (var i = 0; i < x; i++)
        {
            var messenger = form.elements[i].name
            messenger = messenger.substring(0, 2)
            var fieldname = form.elements[i].name
            fieldname = fieldname.substring(2)

        {
            if (messenger == "r_")
            {
                more_message = r_check(form, x, fieldname, i)
            }
            else if (messenger == "i_")
            {
                more_message = i_check(form, x, fieldname, i)
            }
            else if (messenger == "d_")
            {
                more_message = d_check(form, x, fieldname, i)
            }
            else if (messenger == "g_")
            {
                more_message = g_check(form, x, fieldname, i)
            }
            else if (messenger == "e_")
            {
                more_message = e_check(form, x, fieldname, i)
            }
            if (more_message != "")
            {
                if (message == "")
                {
                    message = more_message
                    more_message = ""
                }
                else
                {
                    message = message + "\n" + more_message
                    more_message = ""
                }
            }

            if (message > "")
            {
                showmsg = "yes"
            }
        }
        }


        //This code will prevent a submit if data is incoorect
        if (showmsg == "yes")
        {
            alert("The following form field(s) were incomplete or incorrect:\n\n" + message + "\n\n Please complete or correct the form and submit again.")
			return false;
        }
        else
        {
			return true;
        }
}

function r_check(form, x, fieldname, i)
{
    var msg_addition = ""
    new_fieldname = fieldname
    for (var y = 0; y < x; y++)
    {

        if ((form.elements[y].type == "radio" || form.elements[y].type == "checkbox") && form.elements[y].name == new_fieldname && form.elements[y].checked == true)
        {
            msg_addition = ""
            break
        }
        else if ((form.elements[y].type == "radio" || form.elements[y].type == "checkbox") && form.elements[y].name == new_fieldname && form.elements[y].checked == false)
        {
            msg_addition = form.elements[i].value
        }

        else if (form.elements[y].type == "select-one")
        {
            var l = form.elements[y].selectedIndex
            if (form.elements[y].name == fieldname && form.elements[y].options[l].value != "")
            {
                msg_addition = ""
                break
            }
            else if (form.elements[y].name == fieldname && form.elements[y].options[l].value == "")
            {

                msg_addition = form.elements[i].value

            }
        }
        else if (form.elements[y].name == fieldname && form.elements[y].value == "" && form.elements[y].type != "radio" && form.elements[y].type != "checkbox" && form.elements[y].type != "select-one")
        {

            msg_addition = form.elements[i].value
            break
        }
        else if (form.elements[y].name == fieldname && form.elements[y].value != "" && form.elements[y].type != "radio" && form.elements[y].type != "checkbox" && form.elements[y].type != "select-one")
        {
            msg_addition = ""

        }
    }
    return(msg_addition)
}


function i_check(form, x, fieldname, i)
{
    for (var y = 0; y < x; y++)
    {
        if (form.elements[y].name == fieldname)
            break
    }

    var msg_addition = ""
    var decimal = ""
    inputStr = form.elements[y].value.toString()

    if (inputStr == "")
    {
        //msg_addition = form.elements[i].value
    }
    else
    {
        for (var c = 0; c < inputStr.length; c++)
        {
            var oneChar = inputStr.charAt(c)
            if (c == 0 && oneChar == "-" || oneChar == "." && decimal == "")
            if (oneChar == "." && decimal == "")
            {
                if (oneChar == ".")
                {
                    decimal = "yes"
                }
                continue

            }
            if (oneChar < "0" || oneChar > "9")
            {
                msg_addition = form.elements[i].value
            }
        }
    }
    return(msg_addition)
}


//Email validation
function e_check(form, x, fieldname, i)
{
    for (var y = 0; y < x; y++)
    {
        if (form.elements[y].name == fieldname)
            break
    }

    var msg_addition = ""
    period = ".";



    if (form.elements[y].value == "" || form.elements[y].value.indexOf('@', 0) < 2)
        error = 1;

    else
    {
        test = form.elements[y].value.indexOf('.', form.elements[y].value.indexOf('@', 0))
        if (test != -1)
        {
            error = 0;
        }
        else
        {
            error = 1;
        }
    }

    if (error == 0 && form.elements[y].value.indexOf(' ', 0) > 0)
        error = 1;

    if (error == 1)
    {
        msg_addition = form.elements[i].value
    }
    else
    {
        new_length = form.elements[y].value.length - test
        if (new_length == 4 || new_length == 3 || (new_length >= 5 && form.elements[y].value.indexOf('.', (test + 1)) != -1))
        {
            msg_addition = ""
        }
        else
            msg_addition = form.elements[i].value;
    }
    return(msg_addition)
}

function d_check(form, x, fieldname, i)
//date must be in MM/DD/YY format OR M/D/YY or a MIX of the two
{
    for (var y = 0; y < x; y++)
    {
        if (form.elements[y].name == fieldname)
            break
    }

    var msg_addition = ""
    var sDate = form.elements[y].value
    var int_or_not = isInteger(form.elements[y].value)

    //to allow NO validation unless r_ specified
    if (form.elements[y].value != "") {

        if (int_or_not == "true")
        {
            if ((!(form.elements[y].value.length >= 6)) || (!(form.elements[y].value.length <= 8)))
            {
                msg_addition = form.elements[i].value
            }
            else
            {
                var SlashlPos = form.elements[y].value.indexOf("/", 0)
                if (SlashlPos > 0 && SlashlPos <= 2)
                {
                    if (SlashlPos == 1)
                    {
                        if (form.elements[y].value.charAt(0) < 1 || form.elements[y].value.charAt(0) > 9)
                        {
                            msg_addition = form.elements[i].value
                        }
                        else
                        {
                            if ((form.elements[y].value.charAt(0) == 1 || form.elements[y].value.charAt(0) == 3 || form.elements[y].value.charAt(0) == 5 || form.elements[y].value.charAt(0) == 7 || form.elements[y].value.charAt(0) == 8) && ((form.elements[y].value.charAt(2) == 0 && form.elements[y].value.charAt(3) == "/") || (form.elements[y].value.charAt(3) == "/" && form.elements[y].value.length >= 7) || (form.elements[y].value.charAt(1) == "/" && form.elements[y].value.charAt(2) == "/")))
                            {
                                msg_addition = form.elements[i].value
                            }
                            else if ((form.elements[y].value.charAt(0) == 1 || form.elements[y].value.charAt(0) == 3 || form.elements[y].value.charAt(0) == 5 || form.elements[y].value.charAt(0) == 7 || form.elements[y].value.charAt(0) == 8) && ((form.elements[y].value.charAt(2) >= 3 && form.elements[y].value.charAt(3) > 1) || (form.elements[y].value.charAt(2) == 0 && form.elements[y].value.charAt(3) == 0) || (form.elements[y].value.charAt(1) == "/" && (form.elements[y].value.charAt(3) != "/" && form.elements[y].value.charAt(4) != "/" && form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/"))))
                            {
                                msg_addition = form.elements[i].value + "hi"
                            }
                            else if ((form.elements[y].value.charAt(0) == 1 || form.elements[y].value.charAt(0) == 3 || form.elements[y].value.charAt(0) == 5 || form.elements[y].value.charAt(0) == 7 || form.elements[y].value.charAt(0) == 8) && (((form.elements[y].value.charAt(2) > 3 && form.elements[y].value.charAt(3) != "/") || (((form.elements[y].value.charAt(1) == "/" && form.elements[y].value.charAt(4) == "/")) && ((form.elements[y].value.length == 6 || form.elements[y].value.length == 8)))) || form.elements[y].value.charAt(5) == "/"))
                            {
                                msg_addition = form.elements[i].value
                            }
                            else
                            {
                                if ((form.elements[y].value.charAt(0) == 2 && ((form.elements[y].value.charAt(2) == 0 && form.elements[y].value.charAt(3) == "/") || (form.elements[y].value.charAt(3) == "/" && form.elements[y].value.length >= 7) || (form.elements[y].value.charAt(1) == "/" && form.elements[y].value.charAt(2) == "/") || (form.elements[y].value.charAt(2) == 0 && form.elements[y].value.charAt(3) == 0) || (form.elements[y].value.charAt(1) == "/" && (form.elements[y].value.charAt(3) != "/" && form.elements[y].value.charAt(4) != "/" && form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/")))))
                                {
                                    msg_addition = form.elements[i].value
                                }
                                else if (form.elements[y].value.charAt(0) == 2 && ((form.elements[y].value.charAt(2) > 2 && form.elements[y].value.charAt(3) != "/") || (((form.elements[y].value.charAt(1) == "/" && form.elements[y].value.charAt(4) == "/") && ((form.elements[y].value.length == 6 || form.elements[y].value.length == 8)))) || form.elements[y].value.charAt(5) == "/"))
                                {
                                    msg_addition = form.elements[i].value
                                }
                                else
                                {
                                    if ((form.elements[y].value.charAt(0) == 4 || form.elements[y].value.charAt(0) == 6 || form.elements[y].value.charAt(0) == 9) && ((form.elements[y].value.charAt(2) == 0 && form.elements[y].value.charAt(3) == "/") || (form.elements[y].value.charAt(3) == "/" && form.elements[y].value.length >= 7) || (form.elements[y].value.charAt(1) == "/" && form.elements[y].value.charAt(2) == "/")))
                                    {
                                        msg_addition = form.elements[i].value
                                    }
                                    else if ((form.elements[y].value.charAt(0) == 4 || form.elements[y].value.charAt(0) == 6 || form.elements[y].value.charAt(0) == 9) && ((form.elements[y].value.charAt(2) >= 3 && form.elements[y].value.charAt(3) > 0) || (form.elements[y].value.charAt(2) == 0 && form.elements[y].value.charAt(3) == 0) || (form.elements[y].value.charAt(1) == "/" && (form.elements[y].value.charAt(3) != "/" && form.elements[y].value.charAt(4) != "/" && form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/"))))
                                    {
                                        msg_addition = form.elements[i].value
                                    }
                                    else if ((form.elements[y].value.charAt(0) == 4 || form.elements[y].value.charAt(0) == 6 || form.elements[y].value.charAt(0) == 9) && (((form.elements[y].value.charAt(2) > 3 && form.elements[y].value.charAt(3) != "/") || ((form.elements[y].value.charAt(1) == "/" && form.elements[y].value.charAt(4) == "/") && ((form.elements[y].value.length == 6 || form.elements[y].value.length == 8)))) || form.elements[y].value.charAt(5) == "/"))
                                    {
                                        msg_addition = form.elements[i].value
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        if (form.elements[y].value.charAt(0) > 1 || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) > 2) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 0))
                        {
                            msg_addition = form.elements[i].value
                        }
                        else
                        {
                            if (((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 1) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 3) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 5) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 7) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 8) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 0) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 2)) && ((form.elements[y].value.charAt(3) == 0 && form.elements[y].value.charAt(4) == "/") || (form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(3) == "/") || (form.elements[y].value.charAt(2) == "/" && (form.elements[y].value.charAt(4) != "/" && form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/" && form.elements[y].value.charAt(7) != "/"))))
                            {
                                msg_addition = form.elements[i].value
                            }
                            else if (((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 1) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 3) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 5) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 7) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 8) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 0) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 2)) && ((form.elements[y].value.charAt(3) >= 3 && form.elements[y].value.charAt(4) > 1) || (form.elements[y].value.charAt(3) == 0 && form.elements[y].value.charAt(4) == 0) || form.elements[y].value.length < 7))
                            {
                                msg_addition = form.elements[i].value
                            }
                            else if (((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 1) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 3) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 5) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 7) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 8) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 0) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 2)) && ((form.elements[y].value.charAt(3) > 3 && form.elements[y].value.charAt(4) != "/") || ((form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(5) == "/" && form.elements[y].value.length == 7 || form.elements[y].value.charAt(6) == "/") || (form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(4) == "/" && (form.elements[y].value.length == 6 || form.elements[y].value.length == 8)))))
                            {
                                msg_addition = form.elements[i].value
                            }
                            else
                            {
                                if (((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 2) && ((form.elements[y].value.charAt(3) == 0 && form.elements[y].value.charAt(4) == "/") || (form.elements[y].value.charAt(3) == 0 && form.elements[y].value.charAt(4) == 0)) || form.elements[y].value.length < 7) || (form.elements[y].value.charAt(2) == "/" && (form.elements[y].value.charAt(4) != "/" && form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/" && form.elements[y].value.charAt(7) != "/")))
                                {
                                    msg_addition = form.elements[i].value
                                }
                                else if ((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 2) && ((form.elements[y].value.charAt(3) > 2 && form.elements[y].value.charAt(4) != "/") || ((form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(5) == "/" && form.elements[y].value.length == 7 || form.elements[y].value.charAt(6) == "/") || (form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(4) == "/" && (form.elements[y].value.length == 6 || form.elements[y].value.length == 8)))))
                                {
                                    msg_addition = form.elements[i].value
                                }
                                else
                                {
                                    if (((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 4) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 6) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 9) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 1)) && ((form.elements[y].value.charAt(3) == 0 && form.elements[y].value.charAt(4) == "/") || (form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(3) == "/") || (form.elements[y].value.charAt(2) == "/" && (form.elements[y].value.charAt(4) != "/" && form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/" && form.elements[y].value.charAt(7) != "/"))))
                                    {
                                        msg_addition = form.elements[i].value
                                    }
                                    else if (((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 4) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 6) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 9) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 1)) && ((form.elements[y].value.charAt(3) >= 3 && form.elements[y].value.charAt(4) > 0) || (form.elements[y].value.charAt(3) == 0 && form.elements[y].value.charAt(4) == 0) || form.elements[y].value.length < 7))
                                    {
                                        msg_addition = form.elements[i].value
                                    }
                                    else if (((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 4) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 6) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 9) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 1)) && ((form.elements[y].value.charAt(3) > 3 && form.elements[y].value.charAt(4) != "/") || ((form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(5) == "/" && form.elements[y].value.length == 7 || form.elements[y].value.charAt(6) == "/") || (form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(4) == "/" && (form.elements[y].value.length == 6 || form.elements[y].value.length == 8)))))
                                    {
                                        msg_addition = form.elements[i].value
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    msg_addition = form.elements[i].value
                }
            }
        }
        else
        {
            msg_addition = form.elements[i].value
        }
        return(msg_addition)
    }

    //to allow NO validation unless r_ specified CLOSING
    return(msg_addition)
}


// helper functions for vd_check

function w_isIntegerOffset(sDate)
{
    var new_msg = "true"
    inputStr = sDate.toString()
    if (inputStr.length >= 2 && inputStr.charAt(0)=="+" ) {
        for (var i = 1; i < inputStr.length; i++)
        {
            var oneChar = inputStr.charAt(i)
            if (oneChar < "0" || oneChar > "9")
            {
                return("false")
            }
        }
    } else {
        new_msg = "false"
    }
    return (new_msg)
}

function g_check(form, x, fieldname, i)
// checks a guid as alphanumeric range only
{
    for (var y = 0; y < x; y++)
    {
        if (form.elements[y].name == fieldname)
            break
    }
    var userPat=new RegExp("\[A-Za-z0-9\]*$");
    if (user.match(userPat)==null) {
        return(form.elements[i].value)
    }
    return ""
}

function isInteger(sDate)
{
    var new_msg = "true"
    inputStr = sDate.toString()
    for (var i = 0; i < inputStr.length; i++)
    {
        var oneChar = inputStr.charAt(i)
        if ((oneChar < "0" || oneChar > "9") && oneChar != "/")
        {
            new_msg = "false"
        }
    }
    return (new_msg)
}


function asc(each_char)
{
    var n = 0
    var char_str = charSetStr()
    for (i = 0; i < char_str.length; i++)
    {
        if (each_char == char_str.substring(i, i + 1))
        {
            break
        }
    }
    return i + 32
}

function charSetStr()
{
    var str
    str = ' !"#$%&' + "'" + '()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'
    return str
}
