/**
 * Checks whether an object is valid or not (not null, not undefined, etc)
 *
 * @param obj the object to be checked
 * @return true if is valid, false otherwise
 */
function objIsValid(obj) {
    return !(!obj || obj == null || typeof(obj) == "undefined" || obj == "null");
}

function stringIsValid(obj) {
    return !(typeof(obj) == "undefined" || !obj || obj == null || obj == '');
}

function createOption(selectElem, id, name) {
    var optionNode = document.createElement("option");
    optionNode.appendChild(document.createTextNode(name));
    optionNode.value = id;
    selectElem.appendChild(optionNode);
}

function clearSelectOptions(selectElem) {
    var len = selectElem.options.length;
    for (var i = 0; i < len; i++) {
        selectElem.remove(0);
    }
}

function parseIntWithPx(str) {
    var strArray = str.split("p");
    return parseInt(strArray[0]);
}

function getSelectedRadioButton(radioButtonsArray) {
    if (radioButtonsArray == null) {
        return null;
    }
    for (var i=0; i<radioButtonsArray.length; i++) {
        if (radioButtonsArray[i].checked) {
            return radioButtonsArray[i].value;
        }
    }
    return null;
}

function setSelectedRadioButton(radioButtonsArray, radioButtonValue) {
    if (radioButtonsArray == null) {
        return null;
    }
    var oldSelectedValue = null;
    for (var i=0; i<radioButtonsArray.length; i++) {
        if (radioButtonsArray[i].checked) {
            oldSelectedValue = radioButtonsArray[i].value;
        } else if (radioButtonsArray[i].value == radioButtonValue) {
            radioButtonsArray[i].checked = true;
        }
    }
    return oldSelectedValue;
}

function splitHtmlIntoParagraphs(html) {
    var finished = false;
    var globalPos = 0;
    var posToInsertTo = [];
    var tmp = html;
    while(!finished) {
        if(tmp.length <= globals.numCharsToBreakAfter) {
            finished = true;
            break;
        }
        tmp = tmp.substring(globals.numCharsToBreakAfter);
        globalPos += globals.numCharsToBreakAfter;
        var dotFound = false;
        var idx = 0;
        while(!dotFound) {
            if(tmp.length <= idx) {
                finished = true;
                break;
            }
            var c = tmp.charAt(idx ++);
            if(("" + c) == ".") {
                dotFound = true;
            }
        }
        var brStart = tmp.substring(idx - 1).toLowerCase().indexOf("<br");
        if(brStart < 2 && brStart > 0) {
            var brClose = tmp.substring(idx - 1).indexOf(">", brStart);
            tmp = tmp.substring(idx - 1);
            if(brClose != -1) {
                tmp = tmp.substring(brClose);
            }
        } else {
            posToInsertTo[posToInsertTo.length] = globalPos + idx;
            globalPos += idx - 1;
            tmp = tmp.substring(idx - 1);
        }
    }
    for(var i = posToInsertTo.length - 1; i >= 0; i--) {
        html = html.substring(0, posToInsertTo[i]) + "<br/><br/>" + html.substring(posToInsertTo[i]);
    }
    return html;
}

