/* $Id : utils.js 5052 2007-02-03 10:30:13Z weberliu $ */



var Browser = new Object();



Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument != 'undefined');

Browser.isIE = window.ActiveXObject ? true : false;

Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox") != - 1);

Browser.isSafari = (navigator.userAgent.toLowerCase().indexOf("safari") != - 1);

Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf("opera") != - 1);



var Utils = new Object();



Utils.htmlEncode = function(text)

{

    return text.replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');

}



Utils.trim = function( text )

{

    if (typeof(text) == "string")

    {

        return text.replace(/^\s*|\s*$/g, "");

    }

    else

    {

        return text;

    }

}



Utils.isEmpty = function( val )

{

    switch (typeof(val))

    {

        case 'string':

            return Utils.trim(val).length == 0 ? true : false;

            break;

        case 'number':

            return val == 0;

            break;

        case 'object':

            return val == null;

            break;

        case 'array':

            return val.length == 0;

            break;

        default:

            return true;

    }

}



Utils.isNumber = function(val)

{

    var reg = /^[\d|\.|,]+$/;

    return reg.test(val);

}



Utils.isInt = function(val)

{

    if (val == "")

    {

        return false;

    }

    var reg = /\D+/;

    return !reg.test(val);

}



Utils.isEmail = function( email )

{

    var reg1 = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/;



    return reg1.test( email );

}

Utils.isUsername = function( username )

{

    var reg1 = /(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;



    return reg1.test( username );

}
Utils.isMobile = function( mobile )

{

    var reg1 = /(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;



    return reg1.test( mobile );

}


Utils.isTel = function ( tel )

{

    var reg = /^[0][1-9]{2,3}-[0-9]{5,10}$/;  //鍙厑璁镐娇鐢ㄦ暟瀛�-绌烘牸绛�

    return reg.test( tel );

}


Utils.isMobile = function ( mobile)

{

    //鍙厑璁镐娇鐢ㄦ暟瀛楃瓑
    var reg =/(^0{0,1}1[3|4|5|6|7|8|9][0-9]{9}$)/;

    return reg.test( mobile );

}

Utils.isNam = function ( consignee )

{

    //var reg = /^\s*[\u4e00-\u9fa5]{1,}[\u4e00-\u9fa5.路]{0,15}[\u4e00-\u9fa5]{1,}\s*$/;  //鍙厑璁�2-15瀛楃殑姹夊瓧



    return (jQuery.trim(consignee).length>=2);

}

Utils.fixEvent = function(e)

{

    var evt = (typeof e == "undefined") ? window.event : e;

    return evt;

}



Utils.srcElement = function(e)

{

    if (typeof e == "undefined") e = window.event;

    var src = document.all ? e.srcElement : e.target;



    return src;

}



Utils.isTime = function(val)

{

    var reg = /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}$/;



    return reg.test(val);

}



Utils.x = function(e)

{ //褰撳墠榧犳爣X鍧愭爣

    return Browser.isIE?event.x + document.documentElement.scrollLeft - 2:e.pageX;

}



Utils.y = function(e)

{ //褰撳墠榧犳爣Y鍧愭爣

    return Browser.isIE?event.y + document.documentElement.scrollTop - 2:e.pageY;

}



Utils.request = function(url, item)

{

    var sValue=url.match(new RegExp("[\?\&]"+item+"=([^\&]*)(\&?)","i"));

    return sValue?sValue[1]:sValue;

}



Utils.$ = function(name)

{

    return document.getElementById(name);

}



function rowindex(tr)

{

    if (Browser.isIE)

    {

        return tr.rowIndex;

    }

    else

    {

        table = tr.parentNode.parentNode;

        return table.rows.length-1;

        for (i = 0; i < table.rows.length; i ++ )

        {

            if (table.rows[i] == tr)

            {

                return i;

            }

        }

    }

}



document.getCookie = function(sName)

{

    // cookies are separated by semicolons

    var aCookie = document.cookie.split("; ");

    for (var i=0; i < aCookie.length; i++)

    {

        // a name/value pair (a crumb) is separated by an equal sign

        var aCrumb = aCookie[i].split("=");

        if (sName == aCrumb[0])

            return decodeURIComponent(aCrumb[1]);

    }



    // a cookie with the requested name does not exist

    return null;

}



document.setCookie = function(sName, sValue, sExpires)

{

    var sCookie = sName + "=" + encodeURIComponent(sValue);

    if (sExpires != null)

    {

        sCookie += "; expires=" + sExpires;

    }



    document.cookie = sCookie;

}



document.removeCookie = function(sName,sValue)

{

    document.cookie = sName + "=; expires=Fri, 31 Dec 1999 23:59:59 GMT;";

}



function getPosition(o)

{

    var t = o.offsetTop;

    var l = o.offsetLeft;

    while(o = o.offsetParent)

    {

        t += o.offsetTop;

        l += o.offsetLeft;

    }

    var pos = {top:t,left:l};

    return pos;

}



function cleanWhitespace(element)

{

    var element = element;

    for (var i = 0; i < element.childNodes.length; i++) {

        var node = element.childNodes[i];

        if (node.nodeType == 3 && !/\S/.test(node.nodeValue))

            element.removeChild(node);

    }

}