// Javasript Utilities for Good Karma order form
//
// RCS $Id: orderForm-oldstyle.js,v 1.1 2010/05/03 02:30:12 goodkar6 Exp $
//

// Enable or disable mode of entry text fields depending on radio button selection
function toggle()
{
    document.getElementById("lockboxCode").disabled = !document.getElementById("lockbox").checked;
    document.getElementById("homeownerPhone").disabled = !document.getElementById("homeowner").checked;

    return true;
}

function toggleOptions()
{
    if ( document.getElementById("noOptions").checked )
    {
        document.getElementById("webStats").checked = false;
        document.getElementById("photoShop").checked = false;
        document.getElementById("dvd").checked = false;
    }
}

function toggleNone()
{
    if ( document.getElementById("webStats").checked ||
         document.getElementById("photoShop").checked ||
         document.getElementById("dvd").checked )
    {
        document.getElementById("noOptions").checked = false;
    }
}

function resetForm()
{
    // Clear out search fields
    document.getElementById("day1").selectedIndex = 0; 
    document.getElementById("day2").selectedIndex = 0;
    document.getElementById("time1").selectedIndex = 0;
    document.getElementById("time2").selectedIndex = 0;
    document.getElementById("std-tour").checked = false;
    document.getElementById("lg-tour").checked = false;
    document.getElementById("other-tour").checked = false;
    document.getElementById("photo-tour").checked = false;
    document.getElementById("isMember").checked = false;
    document.getElementById("notMember").checked = false;
    document.getElementById("isVacant").checked = false;
    document.getElementById("notVacant").checked = false;
    document.getElementById("lockbox").checked = false;
    document.getElementById("realtor").checked = false;
    document.getElementById("homeowner").checked = false;
    document.getElementById("requiredMsg").innerHTML="*Required Fields";
                '<span class="white">*Required Fields</span>';
    toggle();
    checkAllBoxes(0);
    clearTextFields();
    resetLabels('white');

    return true;
}

function resetLabels(color)
{
    var inputs = document.getElementsByTagName('label');
    for (var i=0; i < inputs.length; i++)
        inputs[i].style.color = color;
    document.getElementById('lastnameLbl').style.color = 'black';
    document.getElementById('emailLbl').style.color = 'black';
    document.getElementById('memberLbl').style.color = 'black';
    document.getElementById('yesMember').style.color = 'black';
    document.getElementById('noMember').style.color = 'black';
    document.getElementById('sqftLbl').style.color = 'black';
    document.getElementById('vacantLbl').style.color = 'black';
    document.getElementById('yesVacant').style.color = 'black';
    document.getElementById('noVacant').style.color = 'black';
    document.getElementById('modeOfEntry').style.color = 'black';
    document.getElementById('lockboxLbl').style.color = 'black';
    document.getElementById('codeLbl').style.color = 'black';
    document.getElementById('realtorLbl').style.color = 'black';
    document.getElementById('ownerLbl').style.color = 'black';
    document.getElementById('ownerPhoneLbl').style.color = 'black';
    document.getElementById('optionsLbl').style.color = 'black';
    document.getElementById('tour-label').style.color = color;

    return true;
}

function validate_email(field)
{
    var apos = field.value.indexOf("@");
    var dotpos = field.value.lastIndexOf(".");
    if ( (apos < 1) || (dotpos - apos < 2) )
        return false;
    else
        return true;
}

function validateForm()
{
    var hasError = 0;
    var emailError = 0;
    var errorColor = 'red';
    var normalColor = 'white';

    // First reset labels
    resetLabels(normalColor);

    // Check text fields
    if ( !document.getElementById('firstname').value )
    {
        document.getElementById('firstnameLbl').style.color = errorColor;
        hasError = 1;
    }
    if ( !document.getElementById('lastname').value )
    {
        document.getElementById('lastnameLbl').style.color = errorColor;
        hasError = 1;
    }
    if ( !document.getElementById('company').value )
    {
        document.getElementById('companyLbl').style.color = errorColor;
        hasError = 1;
    }
    if ( !document.getElementById('email').value )
    {
        document.getElementById('emailLbl').style.color = errorColor;
        hasError = 1;
    }
    if ( !document.getElementById('phone').value )
    {
        document.getElementById('phoneLbl').style.color = errorColor;
        hasError = 1;
    }
    if ( !document.getElementById('address').value )
    {
        document.getElementById('addrLbl').style.color = errorColor;
        hasError = 1;
    }
    if ( !document.getElementById('sqft').value )
    {
        document.getElementById('sqftLbl').style.color = errorColor;
        hasError = 1;
    }
    if ( !document.getElementById('city').value )
    {
        document.getElementById('cityLbl').style.color = errorColor;
        hasError = 1;
    }
    if ( !document.getElementById('zip').value )
    {
        document.getElementById('zipLbl').style.color = errorColor;
        hasError = 1;
    }

    // Check date/time selections
    if ( (document.getElementById('day1').selectedIndex == 0) ||
         (document.getElementById('time1').selectedIndex == 0) )
    {
        document.getElementById('choice1').style.color = errorColor;
        hasError = 1;
    }
    if ( (document.getElementById('day2').selectedIndex == 0) ||
         (document.getElementById('time2').selectedIndex == 0) )
    {
        document.getElementById('choice2').style.color = errorColor;
        hasError = 1;
    }

    // Check mode
    if ( (!document.getElementById('lockbox').checked) && 
         (!document.getElementById('realtor').checked) &&
         (!document.getElementById('homeowner').checked) )
    {
        document.getElementById('modeOfEntry').style.color = errorColor;
        hasError = 1;
    }

    if ( (document.getElementById('lockbox').checked == true) &&
         (!document.getElementById('lockboxCode').value) )
    {
        document.getElementById('codeLbl').style.color = errorColor;
        hasError = 1;
    }
    if ( (document.getElementById('homeowner').checked == true) &&
         (!document.getElementById('homeownerPhone').value) )
    {
        document.getElementById('ownerPhoneLbl').style.color = errorColor;
        hasError = 1;
    }

    // Check for tour type
    if ( (!document.getElementById('std-tour').checked) &&
         (!document.getElementById('lg-tour').checked) &&
         (!document.getElementById('other-tour').checked) &&
         (!document.getElementById('photo-tour').checked) )
    {
        document.getElementById('tour-label').style.color = errorColor;
        hasError = 1;
    }

    // Check showcase member
    if ( (!document.getElementById('isMember').checked) &&
         (!document.getElementById('notMember').checked) )
    {
        document.getElementById('memberLbl').style.color = errorColor;
        hasError = 1;
    }

    // Check property vacancy
    if ( (!document.getElementById('isVacant').checked) &&
         (!document.getElementById('notVacant').checked) )
    {
        document.getElementById('vacantLbl').style.color = errorColor;
        hasError = 1;
    }

    // Check extra options - make sure they at least say None
    if ( (!document.getElementById('webStats').checked) &&
         (!document.getElementById('photoShop').checked) &&
         (!document.getElementById('dvd').checked) && 
         (!document.getElementById('noOptions').checked) )
    {
        document.getElementById('optionsLbl').style.color = errorColor;
        hasError = 1;
    }

    // Check for valid email address
    if ( !validate_email(document.getElementById('email')) )
    {
        document.getElementById('emailLbl').style.color = errorColor;
        // We only want the email address error if there aren't any other errors
        if (!hasError)
            emailError = 1;

        hasError = 1;
    }

    if (hasError)
    {
        if (emailError)
            document.getElementById('requiredMsg').innerHTML =
                '<span class="errorMsg">*Please provide a valid email address.</span>';
        else
            document.getElementById('requiredMsg').innerHTML =
                '<span class="errorMsg">*Please provide values for the required fields.</span>';
        alert("Please provide values for the required fields (in red).");
        return false;
    }
    else
        return true;
}
