/**
 * Javascript to validate the search form
 * checks to see whether at least one
 * checkbox has been checked
 *
 */

function searchFormValidate() {

    elm = document.getElementsByTagName('input');

    for (i=0;i<elm.length;i++) {
    	if (elm[i].getAttribute('type')=='checkbox' && elm[i].checked) {
    	    return true;
    	}
    }

    alert('Please select at least one Work Type option.');
    return false;
}

function toggleVisibility(id)
{
    div = document.getElementById(id);
    div.className = (div.className == 'hidden') ? '':'hidden';
}

function toggleRegistrationOptions() {
    div = document.getElementById("registrationOptions");
    div.className = (div.className == 'hidden') ? '':'hidden';
}


/**
 *  Function to disable salary form fields for the options
 *  that are currently not selected
 *
 */
function toggleSalaryOption(option) {
    switch(option) {
        case 1:
            document.getElementById('fixedAmount').disabled = false;
            document.getElementById('fixedExtra').disabled = false;
            document.getElementById('fixedUnit').disabled = false;
            document.getElementById('rangeMin').disabled = true;
            document.getElementById('rangeMax').disabled = true;
            document.getElementById('rangeUnit').disabled = true;
            document.getElementById('rangeExtra').disabled = true;
            document.getElementById('fixedAmount').focus();
            break;
        case 2:
            document.getElementById('rangeMin').disabled = false;
            document.getElementById('rangeMax').disabled = false;
            document.getElementById('rangeUnit').disabled = false;
            document.getElementById('rangeExtra').disabled = false;
            document.getElementById('fixedAmount').disabled = true;
            document.getElementById('fixedExtra').disabled = true;
            document.getElementById('fixedUnit').disabled = true;
            document.getElementById('rangeMin').focus();
            break;
        case 3:
            document.getElementById('rangeMin').disabled = true;
            document.getElementById('rangeMax').disabled = true;
            document.getElementById('rangeUnit').disabled = true;
            document.getElementById('rangeExtra').disabled = true;
            document.getElementById('fixedAmount').disabled = true;
            document.getElementById('fixedExtra').disabled = true;
            document.getElementById('fixedUnit').disabled = true;
            break;
    }
}

/**
 * @param string countId
 * @param int length
 * @return void
 */
function updateSummaryCount(countId,summary)
{
    len = summary.value.length;
    if (len > 150) {
        // truncate to 150 characters
        summary.value = summary.value.substring(0,150);
        document.getElementById(countId).innerHTML = 0;
    } else {
        document.getElementById(countId).innerHTML = 150 - summary.value.length;
    }
}

/**
 * Ignores hidden input fields
 * @return void
 */
function setFocusOnFirstFormElement()
{
    var forms = document.getElementsByTagName('form');
    if (forms.length > 0) {
        // use the first form
        var form = forms[0];
        // does this form have any elements?
        if (form.elements.length > 0) {
            var index = 0;
            var element;
            do {
                element = form.elements[index++];
            } while (element.type == 'hidden')
            element.focus();
        }
    }
}