var altEmailVisible = false;
var altTelNoVisible = false;
var altAddressVisible = false;

function getStyleClass(name) {
    name = '.' + name;
    var styleSheetsLength = document.styleSheets.length;
    for (var i = 0; i < styleSheetsLength; i++) {
        var styleSheet = document.styleSheets[i];
        var rulesArray = styleSheet.rules; //IE
        if (!rulesArray) {
            rulesArray = styleSheet.cssRules; //Mozilla 
        }
        
        var rulesLength = rulesArray.length;
        for (var j = 0; j < rulesLength; j++) {
            if (rulesArray[j].selectorText == name) {
                return rulesArray[j].style;
            }
        }
    }
}

function toggleEmailDiv()
{
    if (!altEmailVisible)
    {
        altEmailVisible = true;
        getStyleClass('emailStyleDefault').display = 'none';
        getStyleClass('emailStyleAlternative').display = '';
    }
    else
    {
        altEmailVisible = false;
        getStyleClass('emailStyleDefault').display = '';
        getStyleClass('emailStyleAlternative').display = 'none';

        // erase it
        var emailField = document.getElementsByName("altInetAddr.address")[0];
        emailField.value = "";
    }
}

function toggleTelNoDiv()
{
    if (!altTelNoVisible)
    {
        altTelNoVisible = true;
        getStyleClass('telephoneStyleDefault').display = 'none';
        getStyleClass('telephoneStyleAlternative').display = '';
    }
    else
    {
        altTelNoVisible = false;
        getStyleClass('telephoneStyleDefault').display = '';
        getStyleClass('telephoneStyleAlternative').display = 'none';

        // erase it
        var telNoField = document.getElementsByName("altTelNo.areaCode")[0];
        telNoField.value = "";
        var areaCodeField = document.getElementsByName("altTelNo.telephoneNumber")[0];
        areaCodeField.value = "";
        var extensionField = document.getElementsByName("altTelNo.extension")[0];
        extensionField.value = "";
    }
}

function toggleAddrDiv()
{
    if (!altAddressVisible)
    {
        altAddressVisible = true;
        getStyleClass('addressStyleDefault').display = 'none';
        getStyleClass('addressStyleAlternative').display = '';
    }
    else
    {
        altAddressVisible = false;
        getStyleClass('addressStyleDefault').display = '';
        getStyleClass('addressStyleAlternative').display = 'none';

        // erase it
        var streetField = document.getElementsByName("altAddr.street")[0];
        streetField.value = "";
        var houseNoField = document.getElementsByName("altAddr.houseNumber")[0];
        houseNoField.value = "";
        var zipField = document.getElementsByName("altAddr.zip")[0];
        zipField.value = "";
        var cityField = document.getElementsByName("altAddr.city")[0];
        cityField.value = "";
    }
}



function setAlternativesStatus()
{
    //alert("set alternative status");
    var showingAltInetAddr = document.getElementsByName('altInetAddrShow')[0];
    if (altEmailVisible)
        showingAltInetAddr.value = "true";
    else
        showingAltInetAddr.value = "false";

    var showingAltTelNo = document.getElementsByName('altTelNoShow')[0];
    if (altTelNoVisible)
        showingAltTelNo.value = "true";
    else
        showingAltTelNo.value = "false";

    var showingAltAddr = document.getElementsByName('altAddrShow')[0];
    if (showingAltAddr != null)
    {
	    if (altAddressVisible)
	    {
	        //alert("alternate address shown");
	        showingAltAddr.value = "true";
	    }
	    else
	    {
	        //alert("alternate address NOT shown");
	        showingAltAddr.value = "false";
	    }
    }
}



function checkEmail()
{
    var email = document.getElementsByName("inetAddr.address")[0];
    if (email == null)
    {
        // not rendered inetAddr.address -> existing person has email
        email = document.getElementsByName("altInetAddr.address")[0];

        if (altEmailVisible == true)
        {
            // alternative email is shown -> check it
            if ( (email.value == null) || (email.value == "") )
                return false;
            else
                return testEmail(email.value);
        }
        else
        {
            // alternative email is not shown
            return true;
        }
    }
    if ( (email.value == null) || (email.value == "") )
        return false;
    else
        return testEmail(email.value);
}

function checkTelephone()
{
    var telNo = document.getElementsByName("telNo.telephoneNumber")[0];
    if (telNo == null)
    {
        //alert("not rendered telNo.telephoneNumber -> existing person has telephone number");
        // not rendered telNo.telephoneNumber -> existing person has telephone number

        if (altTelNoVisible == true)
        {
            //alert("alternative telephone is shown -> check it");
            // alternative telephone is shown -> check it
            telNo = document.getElementsByName("altTelNo.telephoneNumber")[0];
            if ((telNo.value == null) || (telNo.value == ""))
                return false;
            else
                return true;
        }
        else
        {
            //alert("alternative telephone is not shown");
            // alternative telephone is not shown
            return true;
        }
    }
    else
    {
        //alert("rendered telNo.telephoneNumber -> check this field");
        // check this field
        if ((telNo.value == null) || (telNo.value == "")) {
            return false;
        } else {
            return true;
        }
    }
}

function checkAddress()
{
    var address = document.getElementsByName("addr.street")[0];
    if (address == null)
    {
        // not rendered address.street -> existing person has address

        if (altAddressVisible == true)
        {
            // alternative telephone is shown -> check it
            var street = document.getElementsByName("altAddr.street")[0];
            var houseNumber = document.getElementsByName("altAddr.houseNumber")[0];
            var zip = document.getElementsByName("altAddr.zip")[0];
            var city = document.getElementsByName("altAddr.city")[0];
            if ( (street.value == null) || (street.value == "") ||
                (houseNumber.value == null) || (houseNumber.value == "") ||
                (zip.value == null) || (zip.value == "") ||
                (city.value == null) || (city.value == "") )
                return false;
            else
                return true;
        }
        else
        {
            // alternative address is not shownt
            return true;
        }
    }
    else
    {
        // check this field
        var street = document.getElementsByName("addr.street")[0];
        var houseNumber = document.getElementsByName("addr.houseNumber")[0];
        var zip = document.getElementsByName("addr.zip")[0];
        var city = document.getElementsByName("addr.city")[0];
        if ( (street.value == null) || (street.value == "") ||
            (houseNumber.value == null) || (houseNumber.value == "") ||
            (zip.value == null) || (zip.value == "") ||
            (city.value == null) || (city.value == "") )
            return false;
        else
            return true;
    }
}









