// Copyright 2009, SunNet Information Technology Co., Ltd.  All rights reserved.
// Confidential and Proprietary, Not For Public Release.
String.prototype.Trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

String.prototype.LTrim = function()
{
    return this.replace(/(^\s*)/g, "");
}

String.prototype.RTrim = function()
{
    return this.replace(/(\s*$)/g, "");
}

String.prototype.IsEmail = function()
{
    var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
    return reg.test(this);
}
String.prototype.IsPhone = function() {
    var reg = /^\d{3}-\d{3}-\d{4}$/;
    return reg.test(this);
}

function getIFrameDocument(aID)
{
    var rv = null;
    if (document.getElementById(aID).contentWindow.document)
    {
        rv = document.getElementById(aID).contentWindow.document;
    } else
    {
        rv = document.frames[aID].document;
    }

    return rv;
}

function openWin(url, w, h)
{
    if (w == null || h == null)
    {
        w = 900;
        h = 600;
    }
    var top = (window.screen.availHeight - 30 - h) / 2;
    var left = (window.screen.availWidth - 10 - w) / 2;

    var t = new Date().getTime().toString();
    if (url.indexOf("?") > -1)
    {
        url = url + "&t=" + t;
    }
    else
    {
        url = url + "?t=" + t;
    }
    window.open(url, "", "height=" + h + ",width=" + w + ",top=" + top + ",left=" + left + ",toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,status=yes");
}

function openModelWin(url, args, w, h)
{
    if (w == null || h == null)
    {
        w = 900;
        h = 600;
    }
    if (args == null)
    {
        args = window;
    }

    var top = (window.screen.availHeight - 30 - h) / 2;
    var left = (window.screen.availWidth - 10 - w) / 2;
    var t = new Date().getTime().toString();
    if (url.indexOf("?") > -1)
    {
        url = url + "&t=" + t;
    }
    else
    {
        url = url + "?t=" + t;
    }
    var ret = window.showModalDialog(url, args, "dialogHeight:" + h + "px;dialogWidth:" + w + "px;dialogTop:" + top + "px;dialogLeft:" + left + "px;toolbar:no;menubar:no;scrollbars:no;resizable:yes;location:no;status:no;");
    return ret;
}

function SetMaxLength(obj, len)
{
    var source = obj.value;
    if (source.length > len)
    {
        obj.value = source.substring(0, len);
        return true;
    }
    return false;
}
function Replace(source, chr, rep)
{
    source = "" + source;
    var s = "";
    if (source.length == 0) return "";
    for (var i = 0; i < source.length; i++)
    {
        if (source.charAt(i) == chr)
        {
            s = s + rep;
            continue;
        }
        s = s + source.charAt(i);
    }

    return s;
}
function IsInteger(source)
{
    var reg = /^\d+$/;
    return reg.test(source);
}
function FormatNumber(sender)
{
    var v = sender.value;
    if (v.indexOf(".") > -1)
    {
        v = v.substr(0, v.indexOf("."));
    }
    var tt = v.charAt(0);
    if (tt != "-") tt = "";

    v = v.replace(/[^0-9]/ig, '');

    var output = "";
    var flag = 0;
    for (var i = v.length - 1; i >= 0; i--)
    {
        output = v.charAt(i) + output;
        flag = flag + 1;
        if (flag == 3 && i != 0)
        {
            output = "," + output;
            flag = 0;
        }
    }
    if (parseInt(output) == 0) output = "0";
    if (output == "")
        sender.value = "";
    else
        sender.value = tt + output;

}

function FormatFloatNumber(sender)
{
    var vv = "";
    var v = sender.value;
    if (v.indexOf(".") > -1)
    {
        vv = v.substring(v.indexOf("."), v.length);
        v = v.substr(0, v.indexOf("."));
    }

    var tt = v.charAt(0);
    if (tt != "-") tt = "";
    
    v = v.replace(/[^0-9]/ig, '');

    var output = "";
    var flag = 0;
    for (var i = v.length - 1; i >= 0; i--)
    {
        output = v.charAt(i) + output;
        flag = flag + 1;
        if (flag == 3 && i != 0)
        {
            output = "," + output;
            flag = 0;
        }
    }
    if (parseInt(output) == 0) output = "0";
    if (output == "")
        sender.value = tt+"";
    else
        sender.value = tt + output + vv;

}

function FormatFloatNumber2(arg)
{
    var vv = "";
    var v = arg;
    if (v.indexOf(".") > -1)
    {
        vv = v.substring(v.indexOf("."), v.length);
        v = v.substr(0, v.indexOf("."));
    }

    var tt = v.charAt(0);
    if (tt != "-") tt = "";

    v = v.replace(/[^0-9]/ig, '');

    var output = "";
    var flag = 0;
    for (var i = v.length - 1; i >= 0; i--)
    {
        output = v.charAt(i) + output;
        flag = flag + 1;
        if (flag == 3 && i != 0)
        {
            output = "," + output;
            flag = 0;
        }
    }
    if (parseInt(output) == 0) output = "0";
    if (output == "")
        arg = "";
    else
        arg = tt + output + vv;

    return arg;
}

function FloatFormat(f, scale)
{
    return parseFloat(f).toFixed(scale);
}
function parseFloat2(value)
{
    var tmp = Replace(value, ',', '');
    return parseFloat(tmp);
}
function FormatPhone(sender)
{
    var phone = sender;
    var digits = phone.value.replace(/[^0-9]/ig, '');

    if (digits.length > 10)
        digits = digits.substring(0, 10);

    if (digits.length > 6)
    {
        phone.value = digits.substring(0, 3) + '-' + digits.substring(3, 6) + '-' + digits.substring(6, digits.length);
    }
    else if (digits.length > 3)
    {
        phone.value = digits.substring(0, 3) + '-' + digits.substring(3, digits.length);
    }
    else
    {
        phone.value = digits;
    }
}
function IsNumber(source)
{
    var reg = /^[\+-]?\d+(\.\d+)?$/;
    return reg.test(source);
}

function TextBoxEnter(txtID, buttonID, func)
{
    var sender;
    if (txtID != null)
        sender = document.getElementById(txtID)
    else
        sender = document.body;

    sender.onkeypress = function(e)
    {
        if (event.keyCode == 13)
        {
            event.keyCode = 9;
            event.returnValue = false;
            if (func != null)
            {
                if (func() == false) return;
            }

            if (buttonID != null)
            {
                if ($.browser.mozilla)
                {
                    var tmpEvent = document.createEvent("MouseEvents");
                    tmpEvent.initEvent("click", true, true);
                    document.getElementById(buttonID).dispatchEvent(tmpEvent);
                }
                else
                {
                    document.getElementById(buttonID).click();
                }
            }
        }
    }
}

function FormatPhone2(sender, formatstring)
{
    if (formatstring == undefined || formatstring == null || formatstring.length == 0)
    {
        formatstring = "111-111-1111";
    }
    var newValue = sender.value.replace(/[^0-9]/ig, '');
    sender.value = "";

    var list = formatstring.split("-");
    var value = sender.value;
    for (var j = 0; j < list.length; j++)
    {
        var len = list[j].length;
        value = value + (newValue.length >= len ? newValue.substr(0, len) + (j == list.length - 1 ? "" : "-") : newValue);
        newValue = newValue.substr(len, newValue.length - len);
    }

    if (value.lastIndexOf("-") == value.length - 1)
    {
        value = value.substr(0, value.length - 1);
    }
    sender.value = value;
}
function ValidateZipcode(sender) {
    var newValue = sender.value.replace(/[^0-9]/ig, '');
    newValue = newValue.length > 5 ? newValue.substr(0, 5) : newValue;
    sender.value = newValue;
}
