function removeMozBogus(html) {
    return html.replace(/\stype="_moz"/gi, '').replace(/\s_moz_dirty=""/gi, '');
}

function removeSafariBogus(html) {
    return html.replace(/\sclass="webkit-block-placeholder"/gi, '');
}

function removeBogus(html) {
    var s = removeMozBogus(html);
    s = removeSafariBogus(s);
    s = dojo.trim(s).replace(/^<br.*>$/, '');
    return s;
}

function isEmpty(field) {
    return field && field.value == "";
}

function oneChecked(elements) {
    if (elements) {
        if (elements.length) {
            for (var i = 0; i < elements.length; i++) {
                if (elements[i].checked) {
                    return true;
                }
            }
            return false;
        } else {
            return elements.checked;
        }
    } else {
        return false;
    }
}

function isCheckedOrPresent(elements){
    var result = oneChecked(elements);

    if(result == 'undefined' && elements.value) {
        return true;
    }

    return result;
}

function isInt(value, lowerLimit, upperLimit) {
    if (value && value != "") {
        var intValue = parseInt(value);
        return (!isNaN(intValue) && intValue >= lowerLimit
            && intValue <= upperLimit);
    } else {
        return false;
    }
}

function isInt2(value) {
    if (value && value != "") {
        var intValue = parseInt(value);
        return (!isNaN(intValue));
    } else {
        return false;
    }
}

function isIntOrEmpty(value) {
    if (value) {
        if (value == "") return true;
        return value == parseInt(value);
    }
    return true;
}


function isPositiveInt(value) {
    if (value && value != "") {
        var intValue = parseInt(value);
        return (!isNaN(intValue) && intValue > 0);
    } else {
        return false;
    }
}

function isPositiveFloat(value) {
    if (value && value != "") {
        var intValue = parseFloat(value);
        return (!isNaN(intValue) && intValue > 0);
    } else {
        return false;
    }
}

function isNonNegativeInt(value) {
    if (value && value != "") {
        var intValue = parseInt(value);
        return (!isNaN(intValue) && intValue >= 0);
    } else {
        return false;
    }
}

function checkForm(form, passwordRequired) {
    if (form.email && isEmpty(form.email)) {
        alert(emailEmpty);
    } else if (form.email && !isEmailValid(form.email.value)) {
        alert(incorrectEmail);
    } else if (passwordRequired && isEmpty(form.password)) {
        alert(passwordEmpty);
    } else if (form.password.value != form.password2.value) {
        alert(passwordWrong);
    } else {
        form.submit();
    }
}

function isEmailValid(email) {
    var atIndex = email.indexOf("@");
    if (atIndex == -1) {
        return false;
    }
    var afterAt = email.substring(atIndex + 1, email.length);

    var dotIndex = afterAt.lastIndexOf(".");
    if (dotIndex ==  -1) {
        return false;
    }

    var afterDot = afterAt.substring(dotIndex + 1, afterAt.length);
    if (afterDot.length < 2) {
        return false;
    }

    var spaceIndex = email.indexOf(" ");
    if (spaceIndex != -1) {
        return false;
    }

    return true;
}

function isValidFlashApp(flashApp) {
    var match = flashApp.match(/.swf/gi);
    return (match != null) && (match.length > 0);
}

function testFileType(fileInput, fileTypes, message) {
    if (!fileInput.value) {
        return;
    }

    var dots = fileInput.value.split(".");
    var fileType = "." + dots[dots.length - 1];

    if (fileTypes.join(".").indexOf(fileType.toLowerCase()) == -1) {
        alert(message + fileTypes.join(" ."));
    }
}


