// Propriedades do container

flexbox() {
    value = arguments[0] || flex;
    ms-value = value;

    if value == flex {
        ms-value = -ms-flexbox;
    }
    if value == inline-flex {
        ms-value = -ms-inline-flexbox;
    }
    
    display: ms-value arguments[1];
    display: '-ms-%s' % value arguments[1];
    display: '-webkit-%s' % value arguments[1];
    display: value arguments[1];
}

justify-content() {
    ms-value = arguments;

    if arguments == space-between {
        ms-value = justify;
    }
    if arguments == space-around {
        ms-value = distribute;
    }
    if arguments == flex-start {
        ms-value = start;
    }
    if arguments == flex-end {
        ms-value = end;
    }

    -ms-flex-pack: ms-value;
    -webkit-justify-content: arguments;
    justify-content: arguments;
}

align-items() {
    ms-value = arguments;

    if arguments == flex-start {
        ms-value = start;
    }
    if arguments == flex-end {
        ms-value = end;
    }

    -ms-flex-align: ms-value;
    -webkit-align-items: arguments;
    align-items: arguments;
}

flex-wrap() {
    ms-value = arguments;

    if arguments == nowrap {
        ms-value = none;
    }

    -ms-flex-wrap: ms-value;
    -webkit-flex-wrap: arguments;
    flex-wrap: arguments;
}

flex-direction() {
    -ms-flex-direction: arguments;
    -webkit-flex-direction: arguments;
    flex-direction: arguments;
}

// Propriedades do elemento

flex-grow() {
    -ms-flex-positive: arguments;
    -ms-flex-grow: arguments;
    -webkit-flex-grow: arguments;
    flex-grow: arguments;
}

flex-shrink() {
    -ms-flex-negative: arguments;
    -ms-flex-shrink: arguments;
    -webkit-flex-shrink: arguments;
    flex-shrink: arguments;
}

flex-basis() {
    -ms-flex-preferred-size: arguments;
    -ms-flex-basis: arguments;
    -webkit-flex-basis: arguments;
    flex-basis: arguments;
}

flex() {
    -ms-flex: arguments;
    -webkit-flex: arguments;
    flex: arguments;
}

order() {
    -ms-flex-order: arguments;
    -webkit-order: arguments;
    order: arguments;
}

align-self() {
    ms-value = arguments;

    if arguments == flex-start {
        ms-value = start;
    }
    if arguments == flex-end {
        ms-value = end;
    }

    -ms-flex-item-align: ms-value;
    -ms-flex-align-self: arguments;
    -webkit-align-self: arguments;
    align-self: arguments;
}