/* Formbuilder JS */
function checkResponseMaxLength(responseFieldName, remainingRespCharsFieldName, responseMaxLength){
    if(responseMaxLength <= 0){//do nothing
        return true;
    }

    var formIndex = getFormIndexByElementName(responseFieldName);
    var responseFieldIndex = getElementIndex(formIndex, responseFieldName);
    var remainingRespCharsFieldIndex = getElementIndex(formIndex, remainingRespCharsFieldName);

    var form = document.forms[formIndex];
    if (form.elements[responseFieldIndex].value.length > responseMaxLength){
        form.elements[responseFieldIndex].value = form.elements[responseFieldIndex].value.substr(0,responseMaxLength);
        alert("The response to this question is limited to " + responseMaxLength + " characters.");
    } else{
        form.elements[remainingRespCharsFieldIndex].value = responseMaxLength - form.elements[responseFieldIndex].value.length;
    }

    return true;
}

function getFormIndexByElementName(elementName){
    var index = -1;
    var num_forms =  document.forms.length;
    var gotIndex = false;
    var i = 0;
    while (!gotIndex && (i < num_forms)){
        var num_elements =  document.forms[i].elements.length;
        for (var j = 0; j < num_elements; j++){
            if(document.forms[i].elements[j].name == elementName){
                index = i;
                gotIndex = true;
                break;
            }
        }
        i++;
    }

    return index;
}

function getElementIndex(formIndex, elementName){
    var index = -1;

    var num_elements =  document.forms[formIndex].elements.length;
    for (var i = 0; i < num_elements; i++){
        if(document.forms[formIndex].elements[i].name == elementName){
            index = i;
            break;
        }
    }
    return index;
}


