var new_fieldname = ""

function checkForAddToOrder(nIDProduct)
{
    if (nIDProduct > 0)
    {
        var form = document.forms["additem"];
        var x = form.elements.length

        var sIDProduct = "PROD" + nIDProduct;
        var nMessages = 0;
        var more_message = "";
        x = x-1;
        for (var i = 0; i <= x-1; i++)
        {
            var frm_arr = form.elements[i].name.split("$");
            if (frm_arr.length == 2 )
            {
                if (sIDProduct == frm_arr[0])
                {
                    var frmName = frm_arr[1];
                    
                    if (document.getElementById(frm_arr[0] + "$quantity").value == "")
                    {
                        nMessages++;  
                    }
                          
                    var fieldname = frmName.substring(2);
                    frmName = frmName.substring(0, 2);
                    
                    if (frmName == "r_")
                    {
                        more_message = r_check(form,x,fieldname,i, sIDProduct);
                        if (more_message != "")
                        {
                            nMessages++;
                        }
                    }                              
                } 
            }
        }    
        
        if (nMessages == 0)
        {        
            document.getElementById("PROD" + nIDProduct + "$chkAddToOrder").disabled = false;
            document.getElementById("PROD" + nIDProduct + "$chkAddToOrder").title = '';
        }
        else
        {
            document.getElementById("PROD" + nIDProduct + "$chkAddToOrder").checked = false;
            document.getElementById("PROD" + nIDProduct + "$chkAddToOrder").disabled = true;                 
            document.getElementById("PROD" + nIDProduct + "$chkAddToOrder").title = 'Please configure item';
        }
        
        DisplayAccessoryCount();
    }   
}

function check(form,x)
{ return check_worker(form, x, 1); }

function check_worker(form, x, bDisplayMessage)
{
    var message = "";
    var more_message = "";
    var showmsg = "no";
    var nMessages = 0;
    
    var sIDProduct = "PROD" + document.getElementById("idProduct").value;
    
    x = x - 1
    for (var i = 0; i <= x; i++)
    {
        var messenger_arr = form.elements[i].name.split("$");
        
        if (messenger_arr.length == 2 )
        {
            if (sIDProduct == messenger_arr[0])
            {
                var messenger = messenger_arr[1];        
            
                var fieldname = messenger.substring(2);
                
                messenger = messenger.substring(0, 2);
               
                
                if (messenger == "r_")
                    more_message = r_check(form,x,fieldname,i, sIDProduct)
                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 == "e_")
                    more_message = e_check(form,x,fieldname,i)
                
                if (more_message != "")
                {
                    nMessages++;
                    if (message == "")
                    {
                        message = more_message
                        more_message =""
                    }
                    else
                    {
                        message = message + "\n" + more_message
                        more_message=""
                    }
                }
            }
        }
    }
        
    // This code will prevent a submit if data is incorrect
    if (nMessages >= 1 && bDisplayMessage)
    {
        alert("You must configure this product before adding it to the cart.\nPlease fill in this field:\n\n" + message)
        return false;
    }
    else
    {
        var dvBackorderdDate = document.getElementById("ProductBackordered");
        if (dvBackorderdDate != null)
            return confirm("This item is on backorder until " + dvBackorderdDate.innerHTML + "  Click OK if you wish to add this item to your cart; you may pre-order and reserve it now.\nIt will be shipped when it becomes available, or please call for more information.");
        else
            return true;
    }
    
    return false;
}    

function r_check(form,x,fieldname,i, sIDProduct)
{
    var msg_addition = ""
    new_fieldname = fieldname
    
   
     
    for (var y = 0; y <= x; y++)
    {
        var formname_arr = form.elements[y].name.split("$");
        var formname = form.elements[y].name;
        
        if (formname_arr.length == 2)
        {
           formname = formname_arr[1];
        }
        
        if (sIDProduct == formname_arr[0])
        {
        
            if ((form.elements[y].type == "radio" || form.elements[y].type == "checkbox") && formname == new_fieldname && form.elements[y].checked == true)
            {
                msg_addition = ""
                break
            }
            else if ((form.elements[y].type == "radio" || form.elements[y].type == "checkbox") && formname == 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 (formname== fieldname && form.elements[y].options[l].value != "")
                {
                    msg_addition = ""
                    break
                }
                else if (formname == fieldname && form.elements[y].options[l].value == "")
                    msg_addition = form.elements[i].value
            }
            else if (formname == fieldname && (form.elements[y].value == "" || form.elements[y].value == "(Type in value here)") && 
                     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 (formname == fieldname && (form.elements[y].value != "" && form.elements[y].value != "(Type in value here)") &&
                     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 = "yes"
                continue
            }
            if (oneChar < "0" || oneChar > "9")
                msg_addition = form.elements[i].value
        }
    }
    return msg_addition;
}    
    
    
//Email validation added 6/20/98
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) < 3)
        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 == 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;
}    

//date must be in MM/DD/YY format OR M/D/YY or a MIX of the two
function d_check(form, x, fieldname, i)
{
    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)
}
    
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 SubmitContactUS()
{
    document.additem.action = "/modules/ContactUs.aspx?op=ProductInquiry";
    document.additem.submit();    
}

function OnCheckChange(nIDProd)
{
    var sFrmName = "PROD" + nIDProd + "$BackOrdered";
    if (document.getElementById(sFrmName) != null)
    {
        if (document.getElementById("PROD" + nIDProd + "$chkAddToOrder").checked)
        {
            if (!confirm("This accessory is " + document.getElementById(sFrmName).innerHTML.toLowerCase() + ". Click OK if you wish to add this item to your cart; you may pre-order and reserve it now. It will be shipped when it becomes available. Please call if you need more information."))
            {
                document.getElementById("PROD" + nIDProd + "$chkAddToOrder").checked = false;            
                return;  
            }
        }               
    }
    DisplayAccessoryCount();    
}

function DisplayAccessoryCount()
{
    var form = document.forms["additem"];
    var frmLength = form.elements.length
        
    var nCount = 0;
    for (var i = 0; i <= frmLength-1; i++)
    {
        var frmName = form.elements[i].name;
        if (frmName.indexOf("chkAddToOrder") != -1)
        {
            if (document.getElementById(frmName).checked)
            {
                nCount ++;
            }
        }
    }

    var oAddedAccessoriesUp   = document.getElementById("AddedAccessoriesUp");
    var oAddedAccessoriesDown = document.getElementById("AddedAccessoriesDown");
    
    if (oAddedAccessoriesUp != null && oAddedAccessoriesDown != null)
    {
        //remove the actual product so that we get only the accessories.
        nCount--;    
        if (nCount == 1)
        {
            oAddedAccessoriesUp.innerHTML = '1 Accessory Added to Order';
            oAddedAccessoriesDown.style.display = "block";
        }
        else if (nCount > 1)
        {
            oAddedAccessoriesUp.innerHTML = nCount + ' Accessories Added to Order';
            oAddedAccessoriesDown.style.display = "block";
        }
        else
        {
            oAddedAccessoriesUp.innerHTML = '';
            oAddedAccessoriesDown.style.display = "none";
        }
    }
}
