/**
 * SMG Administration misc javascript
 */

/**
 * Adds a function to be executed after page loads
 */
function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            oldonload();
            func();
        };
    }
}

/**
 * Returns a dollar value as a float value
 */
function dollar_to_float(value)
{
    var bld = '';
    var valid = '1234567890.';
    for (var i = 0; i < value.length; i++) {
        var ch = value.charAt(i);
        if (valid.indexOf(ch) != -1)
            bld += ch;
    }
    return bld * 1;
}

// Is the string an integer?
function is_integer(s)
{
    var test = s + '';
    for (var i = 0; i < test.length; i++) {
        var c = test.charAt(i);
        if (c < '0' || c > '9')
            return false;
    }
    return true;
}

// Formats a number with commas and decimal point
function number_format(value, decimals)
{
    var i, j;
    
    if (isNaN(decimals = Math.abs(decimals)))
        decimals = 2;
    i = parseInt(value = (+value || 0).toFixed(decimals)) + '';
    if ((j = i.length) > 3)
        j = j % 3;
    else
        j = 0;
    return (j? i.substr(0, j) + ',': '') +
            i.substr(j).replace(/(\d{3})(?=\d)/g, "$1,") +
            (decimals ? '.' + Math.abs(value - i).toFixed(decimals).slice(2) : "");
}

// Strip chars from a string
function strip_chars_in_bag(s, bag)
{
    var retval = '';
    s = s + '';
    for (var i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1)
            retval += c;
    }
    return retval;
}

// Trims a string
function trim(s)
{
    return s.replace(/^\s*/, "").replace(/\s*$/, "");
}

// Is the email valid
function valid_email(s)
{
    if (s.indexOf('.') > 2 && s.indexOf('@') > 0)
        return true;
    else
        return false;
}

// Is the phone number valid?
function valid_phone(s)
{
    s = strip_chars_in_bag(s, '()- +');
    if ((s.length == 10 || s.length == 11) && is_integer(s))
        return true;
    else
        return false;
}

// Is the zip code valid
function valid_zip(s)
{
    s = strip_chars_in_bag(s, '- ');
    if (is_integer(s) && (s.length == 5 || s.length == 9))
        return true;
    else
        return false;
}

