﻿/*全站公用JS*/
//获取触发事件控件left绝对位置
function getABSLeft(obj) {
    var x = obj.offsetLeft;
    while (obj = obj.offsetParent) {
        x += obj.offsetLeft;
    }
    return x;
}

//获取触发事件控件top绝对位置
function getABSTop(obj) {
    var y = obj.offsetTop;
    while (obj = obj.offsetParent) {
        y += obj.offsetTop;
    }
    return y;
}

//获取触发事件控件left绝对位置(针对相对)
function getRelativeLeft(obj) {
    var x = obj.offsetLeft;
    while (obj = obj.offsetParent) {
        if ($(obj).css('position') == 'relative')
            return x;
        else
            x += obj.offsetLeft;
    }
    return x;
}

//获取触发事件控件top绝对位置(针对相对)
function getRelativeTop(obj) {
    var y = obj.offsetTop;
    while (obj = obj.offsetParent) {
        if (obj.style.position == 'relative')
            return y;
        else
            y += obj.offsetTop;
    }
    return y;
}

//重写setTimeout事件,使可以传参数
var _st = window.setTimeout;
window.setTimeout = function(fRef, mDelay) {
    if (typeof fRef == 'function') {
        var argu = Array.prototype.slice.call(arguments, 2);
        var f = (function() { fRef.apply(null, argu); });
        return _st(f, mDelay);
    }
    return _st(fRef, mDelay);
}

//正则限制输入框只能输入整数
function IntKeyEvent() {
    if (this.value.match(/\D/)) {
        this.value = this.value.replace(/\D/g, '');
    }
}

/*******正则限制输入框只能输入浮点数 Begin**************/
function FloatKeyEvent() {
    if (!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))
        this.value = this.t_value;
    else
        this.t_value = this.value;
    if (this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))
        this.o_value = this.value;
}

function FloatBlur() {
    if (!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))
        this.value = this.o_value;
    else {
        if (this.value.match(/^\.\d+$/))
            this.value = 0 + this.value;
        if (this.value.match(/^\.$/))
            this.value = 0;
        this.o_value = this.value;
    }
}
/*******正则限制输入框只能输入浮点数 End**************/

//检查字符串是否为数字
function checkIsInteger(str) {
    if (str == '')
        return false;

    if (str.match(/^[0-9]+$/))
        return true;
    return false;
}

//获取Falsh对象
function GetFlashObj(falshName) {
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[falshName] : document[falshName];
}

//获得Cookie的原始值
function GetCookie(name)
{
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg)
            return GetCookieVal(j);
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break;
    }
    return null;
}

//设定Cookie值
function SetCookie(name, value)
{
    var expdate = new Date();
    var argv = SetCookie.arguments;
    var argc = SetCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;

    if (expires == null) {
        var Days = 365; //此 cookie 将被保存 365 天
        expdate = new Date(); //new Date("December 31, 9998");
        expdate.setTime(expdate.getTime() + Days * 24 * 60 * 60 * 1000);
    } else {
        expdate.setTime(expdate.getTime() + (expires * 1000));
    }
    document.cookie = name + "=" + escape(value) + ("; expires=" + expdate.toGMTString()) + "; path=/; domain=.wohuia.com";
}

//删除Cookie
function DelCookie(name)
{
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval = GetCookie(name);
    if (cval != null) document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}

//获得Cookie解码后的值
function GetCookieVal(offset)
{
    var endstr = document.cookie.indexOf(";", offset);
    if (endstr == -1)
        endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
}

//替换文本框换行符及空格
function ReplaceRntoHtmlBR(str) {
    var reg1 = new RegExp("\n", "gi");
    var reg2 = new RegExp(" ", "gi");
    str = str.replace(reg1, "<br>");
    str = str.replace(reg2, "&nbsp;");
    return str;
}

//替换为文本框的换行符和空格
function ReplaceHtmlBRtoRn(str) {
    var reg1 = new RegExp("<br>", "gi");
    var reg2 = new RegExp("&nbsp;", "gi");
    str = str.replace(reg1, "\n");
    str = str.replace(reg2, " ");
    return str;
}

//兼容ie和firefox获取textarea选中文字
function GetSelectedText(obj){ 
    var selectedText; 
    if(window.getSelection) selectedText=GetTextFieldSelection(obj);
    else selectedText = document.selection.createRange().text;
    return selectedText;
} 

function GetTextFieldSelection(e){ 
    if(e.selectionStart != undefined && e.selectionEnd != undefined) 
    return e.value.substring(e.selectionStart,e.selectionEnd); 
    else return ""; 
}

var uavi = navigator.userAgent.toLowerCase(), checkbrowser = function(r) {
    return r.test(uavi);
},
    isOpera = checkbrowser(/opera/),
    isIE = !isOpera && checkbrowser(/msie/),
    isIE6 = !!window.ActiveXObject && !window.XMLHttpRequest,
    isIE7 = isIE && checkbrowser(/msie 7/),
    isIE8 = isIE && checkbrowser(/msie 8/);
