function mandatorySign(name, alwaysMandatory) {
    var sign = "<font color='red'><b>*</b></font>";
    for (var i = 0; i < mandatoryFields.length; i++) {
        if (mandatoryFields[i] == name || alwaysMandatory) {
            document.write(sign);
            return;
        }
    }
}

function validateURL(url) {
    var v = new RegExp();
    v.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");
    return v.test(url);
}

function isLinkedInLink(input) {
    if(!input) {
        return false;
    }

    var val = input.value.toLowerCase();

    if(val.indexOf("linkedin") == -1) {
        return false;
    }

    return validateURL(val);
}

function isFacebookLink(input) {
    if(!input) {
        return false;
    }

    var val = input.value.toLowerCase();

    if(val.indexOf("facebook") == -1) {
        return false;
    }

    return validateURL(val);
}

function isTwitterLink(input) {
    if(!input) {
        return false;
    }

    var val = input.value.toLowerCase();

    if(val.indexOf("twitter") == -1) {
        return false;
    }

    return validate(val);
}

function check(form, fieldsGroup, noSubmit) {
    if (!fieldsGroup) fieldsGroup = mandatoryFields;
    for (var i = 0; i < fieldsGroup.length; i++) {
        var field = fieldsGroup[i];
        var element = form[field == "xFunction" ? "function" : field];
        if (element) {
            if (element.length && !oneChecked(element)) {
                var fieldName = eval(field);
                alert(mandatory + " " + fieldName);
                element[0].focus();
                return;
            } else if (isEmpty(element)) {
                var fieldName = eval(field);
                alert(mandatory + " " + fieldName);
                element.focus();
                return;
            }
        }
        if (form["email"] && !isEmpty(form["email"])
               && !isEmailValid(form["email"].value) && field == "email") {
            alert(invalidEmail);
            return;
        }

        if (form["login"] && !isEmpty(form["login"])
               && !isEmailValid(form["login"].value) && (field == "login") && loginByEmail) {
            alert(invalidEmail);
            return;
        }

        if (form["login"] && !isEmpty(form["login"]) && form["login2"]
                && loginByEmail && form["login"].value != form["login2"].value){
            alert(emailsDoNotMatch);
            return;
        }
    }

    if (form["dateOfBirthYear"] && !isEmpty(form["dateOfBirthYear"])
            && !isInt2(form["dateOfBirthYear"].value)) {
        alert(invalidYear);
        return;
    }

    if (form["password"] && !isEmpty(form["password"])
            && form["password"].value != form["password2"].value) {
        alert(passwordsDoNotMatch);
        return;
    }

    if (form["linkedInURL"] && !isEmpty(form["linkedInURL"]) && !isLinkedInLink(form["linkedInURL"])) {
        alert(invalidLinkedInURL);
        return;
    }

    if (form["facebookURL"] && !isEmpty(form["facebookURL"]) && !isFacebookLink(form["facebookURL"])) {
        alert(invalidFacebookURL);
        return;
    }

    if (form["twitterURL"] && !isEmpty(form["twitterURL"]) && !isTwitterLink(form["twitterURL"])) {
        alert(invalidTwitterURL);
        return;
    }

    if (!noSubmit) {
      form.submit();
    } else {
      return true;
    }
}

