﻿//Returns an object based on the JSON-serialized input string
function GetJSONObject(serializedJSONString) {
    return eval('(' + serializedJSONString + ')')
}

//Adds a non visible submit button to all forms on page to enable the "[Enter] on form"-functionality and to increase accessability.
function appendHiddenSubmits() {
    var content;
    if ($.browser.msie && $.browser.version <= 7) content = '<input type="submit" style="height:0; width:0; overflow:hidden;" />';
    else content = '<input type="submit" style="display:none;" />';
    $("form").append(content);
}

//Adds a new input hidden field to given form with given name and value
function addHiddenInputField(formElement, fieldName, fieldValue) {
    var inputElement = document.createElement("input");
    inputElement.setAttributeNode(createHtmlAttribute("type", "hidden"));
    inputElement.setAttributeNode(createHtmlAttribute("name", fieldName));
    inputElement.setAttributeNode(createHtmlAttribute("value", fieldValue));
    formElement.appendChild(inputElement);
    return;
}

//Creates and returns a new html attribute with given name and value
function createHtmlAttribute(name, value) {
    var attribute = document.createAttribute(name);
    attribute.nodeValue = value;
    return attribute;
}

function ensureDecimalDot(value) {
    return value.toString().replace(",", ".")
}

function ensureDecimalComma(value) {
    return value.toString().replace(".", ",")
}

function isValidEmail(email) {
    var pattern = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    return pattern.test(email);
}

function isValidAlias(alias) {
    var pattern = /(?!^[0-9]*$)^([a-zA-Z0-9]{3,20})$/;
    return pattern.test(alias);
}

function isValidPassword(password) {
    var pattern = /^\S{3,50}$/;
    return pattern.test(password);
}
