// javascript code for validating individual forms

/* Template code
function checkForm(f)
{
    var formok = true;
    var errmsg = "The following fields are required:\n\n";

    if (f.fieldname.value == "")
    {
        formok = false;
        errmsg += "- ";
    }

    if (!formok)
    {
        errmsg += "\nPlease try again.";
        alert(errmsg);
    }
    return formok;
}
*/

function checkCheckout(f)
{
    var formok = true;
    var errmsg = "The following fields are required:\n\n";

    if (f.contact_name.value == "")
    {
        formok = false;
        errmsg += "- Your name\n";
    }

    if (f.email.value == "")
    {
        formok = false;
        errmsg += "- Contact E-mail address\n";
    }
    else if (!validateEmail(f.email.value))
    {
        formok = false;
        errmsg += "- A valid contact E-mail address required\n";
    }

    if (f.tel.value == "")
    {
        formok = false;
        errmsg += "- Telephone number\n";
    }

    if (f.shipping_line1.value == "")
    {
        formok = false;
        errmsg += "- Shipping address\n";
    }

    if (f.shipping_postcode.value == "")
    {
        formok = false;
        errmsg += "- Shipping postcode\n";
    }

    if (f.billing_line1.value == "")
    {
        formok = false;
        errmsg += "- Billing address\n";
    }

    if (f.billing_postcode.value == "")
    {
        formok = false;
        errmsg += "- Billing postcode\n";
    }

    if (f.card_number.value == "")
    {
        formok = false;
        errmsg += "- Credit card number\n";
    }

    if (f.payment_method.value == "")
    {
        formok = false;
        errmsg += "- Payment method\n";
    }
    else if ( (f.payment_method.value == "Switch / UK Maestro" || f.payment_method.value == "Solo" ) && f.issue.value == "")
    {
        // issue number required for switch/solo payments only
        formok = false;
        errmsg += "- Issue number is required for Switch/Maestro payments\n";
    }

    if (f.cardholder_name.value == "")
    {
        formok = false;
        errmsg += "- Cardholder name\n";
    }

    if (f.security_code.value == "")
    {
        formok = false;
        errmsg += "- Card security code (last three digits on reverse of card)\n";
    }

    if (f.to_month.value == "" || f.to_year.value == "")
    {
        formok = false;
        errmsg += "- Valid to date\n";
    }

    if (!formok)
    {
        errmsg += "\nPlease try again.";
        alert(errmsg);
    }
    return formok;
}

function checkAddProduct(f)
{
    var type_selected = false;
    var type_selected_value = "";
    var material_selected = false;
    var errmsg = "";

    for (var i = 0; i < f.length; i++)
    {
        e = f.elements[i];
        if (e.type == "radio")
        {
            if (e.name == "size_id" && e.checked == true)
            {
                type_selected = true;
                type_selected_value = e.value;
                break;
            }
        }
    }

    if (!type_selected)
    {
        alert("Please select either a framed print size or a print only size.");
        return false;
    }

    // validation for framed print
    if (type_selected_value.indexOf("framed") != -1)
    {
        var formok = true;

        for (var i = 0; i < f.length; i++)
        {
            e = f.elements[i];
            if (e.type == "radio")
            {
                if (e.name == "material_id" && e.checked == true)
                {
                    material_selected = true;
                    break;
                }
            }
        }

        if (!material_selected)
        {
            errmsg += "- Please select a frame material type\n";
            formok = false;
        }

        if (f.frame_qty.value == "" || !isPosInteger(f.frame_qty.value) || !isNumber(f.frame_qty.value))
        {
            errmsg += "- Enter framed print quantity required\n";
            formok = false;
        }

        if (!formok)
        {
            alert(errmsg);
            return false;
        }

    }
    else
    {
        var formok = true;

        if (f.print_qty.value == "" || !isPosInteger(f.print_qty.value) || !isNumber(f.print_qty.value))
        {
            errmsg += "- Enter print quantity required\n";
            formok = false;
        }

        if (!formok)
        {
            alert(errmsg);
            return false;
        }
    }

}

function checkLogin(f)
{
    var formok = true;
    var errmsg = "The following fields are required:\n\n";

    if (f.gallery_id.value == "")
    {
        formok = false;
        errmsg += "- Your Gallery ID number\n";
    }
    else if ( !isPosInteger(f.gallery_id.value) || !isNumber(f.gallery_id.value) )
    {
        formok = false;
        errmsg += "- Gallery ID should be a numeric entry\n";
    }

    if (f.password.value == "")
    {
        formok = false;
        errmsg += "- Your gallery password\n";
    }

    if (!formok)
    {
        errmsg += "\nPlease try again.";
        alert(errmsg);
    }
    return formok;
}

function checkContactForm(f)
{
    var formok = true;
    var errmsg = "The following fields are required:\n\n";

    if (f.name.value == "")
    {
        formok = false;
        errmsg += "- Name\n";
    }

    if (f.email.value == "")
    {
        formok = false;
        errmsg += "- Email address\n";
    }
    else if (!validateEmail(f.email.value))
    {
        formok = false;
        errmsg += "- Email address supplied in invalid\n";
    }

    if (f.enquiry.value == "")
    {
        formok = false;
        errmsg += "- Your enquiry\n";
    }

    if (!formok)
    {
        errmsg += "\nPlease try again.";
        alert(errmsg);
    }
    return formok;
}

function checkAccount(f)
{
    var formok = true;
    var errmsg = "The following fields are required:\n\n";

    // start gallery type dependent
    if (f.gallery_type.value == "WEDDING")
    {
        if (f.contact_name1.value == "")
        {
            formok = false;
            errmsg += "- Bride's name\n";
        }
        if (f.contact_name2.value == "")
        {
            formok = false;
            errmsg += "- Groom's name\n";
        }
        if (f.wedding_location.value == "")
        {
            formok = false;
            errmsg += "- Wedding location\n";
        }
    }
    else if (f.gallery_type.value == "EVENT")
    {
        if (f.contact_name1.value == "")
        {
            formok = false;
            errmsg += "- Display name of the event\n";
        }
        if (f.wedding_location.value == "")
        {
            formok = false;
            errmsg += "- Location of event\n";
        }
    }
    else if (f.gallery_type.value == "PORTRAIT")
    {
        if (f.contact_name1.value == "")
        {
            formok = false;
            errmsg += "- Display name for the gallery\n";
        }
    }

    if (f.password.value == "")
    {
        formok = false;
        errmsg += "- Password for Gallery Access\n";
    }

    if (f.account_description.value == "")
    {
        formok = false;
        errmsg += "- Description/Notes for the account\n";
    }

    if (f.tel.value == "")
    {
        formok = false;
        errmsg += "- Contact telephone number\n";
    }

    if (!formok)
    {
        errmsg += "\nPlease try again.";
        alert(errmsg);
    }
    return formok;
}

function checkNewImage(f)
{
    var formok = true;
    var errmsg = "The following fields are required:\n\n";
    var allowed_formats = "jpg,jpeg";

    if (f.image_thumbnail.value == "")
    {
        formok = false;
        errmsg += "- Thumbnail image\n";
    }
    else if (!validFileType(f.image_thumbnail.value, allowed_formats))
    {
        formok = false;
        errmsg += "- Thumbnail must a JPEG file format\n";
    }

    if (f.image.value == "")
    {
        formok = false;
        errmsg += "- Large image\n";
    }
    else if (!validFileType(f.image.value, allowed_formats))
    {
        formok = false;
        errmsg += "- Large image must a JPEG file format\n";
    }

    if (!formok)
    {
        errmsg += "\nPlease try again.";
        alert(errmsg);
    }

    return formok;
}

