﻿// 用于后台用户统计时的快捷搜索
// start   开始时间文本框对应的ID
// end     结束时间文本框对应的ID
// select  快捷下拉框的控件


// 是否是IE浏览器
function isIEBrowser() {
    var browser = navigator.appName;
    var b_version = navigator.appVersion;
    var version = parseFloat(b_version);

    if (browser == "Netscape")
        return false;

    if (browser == "Microsoft Internet Explorer")
        return true;
}

// 获取鼠标坐标
function mouseCoords(e) {
    var curX = (!isIEBrowser()) ? e.pageX : event.clientX + document.body.scrollLeft;
    var curY = (!isIEBrowser()) ? e.pageY : event.clientY + document.body.scrollTop;
    return { x: curX, y: curY };
}

//
if (!isIEBrowser()) {
    var element = HTMLElement.prototype;
    var capture = ["click", "mousedown", "mouseup", "mousemove", "mouseover", "mouseout"];
    element.setCapture = function() {
        var self = this;
        var flag = false;
        this._capture = function(e) {
            if (flag) { return; }
            flag = true;
            var event = document.createEvent("MouseEvents");
            event.initMouseEvent(e.type,
                e.bubbles, e.cancelable, e.view, e.detail,
                e.screenX, e.screenY, e.clientX, e.clientY,
                e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
                e.button, e.relatedTarget);
            self.dispatchEvent(event);
            flag = false;
        };
        for (var i = 0; i < capture.length; i++) {
            window.addEventListener(capture[i], this._capture, true);
        }
    };

    element.releaseCapture = function() {
        for (var i = 0; i < capture.length; i++) {
            window.removeEventListener(capture[i], this._capture, true);
        }
        this._capture = null;
    };
}



// created by chenp, 2005.03.16
function getCheckedRecords(form) {
    var checked = new Array();
    if (form == undefined || form == null)
        return checked;

    for (var i = 0; i < form.elements.length; ++i) {
        var input = form.elements[i];
        if (input.tagName.toLowerCase() != "input")
            continue;
        if (input.type == "checkbox" && input.name.match(/^__IsEntityChecked_/)) {
            if (input.checked)
                checked.push(input.parentNode.parentNode);
        }
    }

    return checked;
}

//hanf070917
function getAnyCheckedRecords(form, nameToken) {
    var checked = new Array();
    if (form == undefined || form == null)
        return checked;

    for (var i = 0; i < form.elements.length; ++i) {
        var input = form.elements[i];
        if (input.tagName.toLowerCase() != "input")
            continue;
        if (input.type == "checkbox" && input.name.indexOf(nameToken) != -1) {
            if (input.checked)
                checked.push(input.parentNode.parentNode);
        }
    }

    return checked;
}

//点击列表框表头上的CheckBox选择所有列表的CheckBox
//element : 表格的ID
//value 表头CheckBox的值

function checkedAllCheckbox(element, value) {
    for (i = 0; i < element.elements.length; i++) {
        var obj = element.elements[i];
        if (obj.type == 'checkbox' && (typeof (obj.isDisabled) == 'undefined' || obj.isDisabled == false)) {
            obj.checked = value;
        }
    }
}

// 列表中的checkbox状态改变的时候，设置全部选中的checkbox的状态
function setSelectAllState(element, selectAll) {
    var result = true;
    for (i = 0; i < element.elements.length; i++) {
        var obj = element.elements[i];
        if (obj.type == 'checkbox' && (typeof (obj.isDisabled) == 'undefined' || obj.isDisabled == false)) {
            result &= obj.checked;
            if (result == false)
                break;
        }
    }
    selectAll.checked = result;
}

//根据ID获取一个对象
function $id(ctrlID) {
    return document.getElementById(ctrlID);
}

//根据名称获取一个对象集合
function $N(ctrlName) {
    return document.getElementsByName(ctrlName);
}

//根据标签名称获取一个对象集合
function $T(ctrlTagName) {
    return document.getElementsByTagName(ctrlTagName);
}

//textarea 保存换行符和空格
function formatTextArea(eleArea) {
    var tmpStr = eleArea.innerHTML;
    var reg1 = /<\/?BR[^>]*>/g;
    var reg2 = /\n/g;
    tmpStr = tmpStr.replace(reg1, "<br/>");
    tmpStr = tmpStr.replace(reg2, "<br/>");
    eleArea.value = tmpStr;
}

function multiFormatTextArea(jqueryObj) {
    var tmpStr = jqueryObj.html();
    var reg1 = /<\/?BR[^>]*>/g;
    var reg2 = /\n/g;
    tmpStr = tmpStr.replace(reg1, "<br/>");
    tmpStr = tmpStr.replace(reg2, "<br/>");
    jqueryObj.val(tmpStr);
}

function assignFormatTextArea(jqSrc, jqDest) {
    var tmpStr = jqSrc.html();
    var reg1 = /<\/?BR[^>]*>/g;
    var reg2 = /\n/g;
    tmpStr = tmpStr.replace(reg1, "<br/>");
    tmpStr = tmpStr.replace(reg2, "<br/>");
    jqDest.val(tmpStr);
}

function submit(formID) {
    document.forms(formID).submit();
}


function AppendVerifyKey2Url(url) {
    //return url + (url.indexOf("?") < 0 ? "?" : "&") + "p=" + g_P + "&m=" + g_M;
    return url + (url.indexOf("?") < 0 ? "?" : "&") + "1=1";
}

function AppendSpecificMenuTrace(menuTrace) {
    //return url + (url.indexOf("?") < 0 ? "?" : "&") + "m=" + menuTrace;
    return url + (url.indexOf("?") < 0 ? "?" : "&") + "2=2";
}

// ******************************************************* start
// 打开更新页的模态对话框
// sUrl : 目标url
// sKeyList : 参数key列表
// sValueList : 参数value列表
// sFeatures  : 模态对话框的外观

// 如果返回OK，则重新刷新本页
//-----------------------------------------------------------------------------
function doShowModalDialog(sUrl, sKeyList, sValueList, sFeatures) {
    var openUrl = AppendVerifyKey2Url(sUrl);
    if (sKeyList.length != 0) {
        var keys = sKeyList.split(";");
        var values = sValueList.split(";");
        for (i = 0; i < keys.length; i++) {
            openUrl = openUrl + "&__" + keys[i] + "=" + values[i];
        }
    }

    var result = window.showModalDialog(openUrl, '', sFeatures);
    if (result == "OK") {
        window.location.reload(true);
    }
}
// ******************************************************* end

// ******************************************************* start
// 打开选择页的模式对话框

// sUrl : 目标url
// sKeyList : 参数key列表
// sValueList : 参数value列表
// sInputList : 需要从返回值中填充到本页控件的ID列表
// sFeatures  : 模态对话框的外观

// ----------------------------------------------------------------------------
function doShowSelectModalDialog(sUrl, sKeyList, sValueList, sInputList, sFeatures) {
    var openUrl = AppendVerifyKey2Url(sUrl);

    // 拼接url字符串

    if (sKeyList.length != 0) {
        var keys = sKeyList.split(";");
        var values = sValueList.split(";");
        for (i = 0; i < keys.length; i++) {
            openUrl = openUrl + "&__" + keys[i] + "=" + values[i];
        }
    }

    // 打开模式对话框,并接受返回值

    var result = window.showModalDialog(openUrl, '', sFeatures);
    // 如果有返回值

    if (result != undefined) {
        // 拆分
        var items = result.split("|");
        var inputs = sInputList.split(";");
        for (i = 0; i < inputs.length; i++) {
            // 为form表单里面进行赋值	
            document.all("__" + inputs[i]).value = items[0];
        }
    }
}

// ******************************************************* end

// ******************************************************* start
// 文件输入框重置后提交出现拒绝访问脚本错误，用此方法来重置其他页面控件
function ResetFormData(eForm) {
    // 枚举表单的元素

    for (elemIndex = 0; elemIndex < eForm.elements.length; elemIndex++) {
        var eElem = eForm.elements[elemIndex];

        // 处理文本控件
        if ("text" == eElem.type || "TEXTAREA" == eElem.tagName) {
            eElem.value = eElem.defaultValue;
        }
        // 处理单选按钮和多选按钮

        if ("radio" == eElem.type || "checkbox" == eElem.type) {
            eElem.checked = eElem.defaultChecked;
        }
        // 处理下拉框

        if ("SELECT" == eElem.tagName) {
            var defaultSelected = false;
            for (i = 0; i < eElem.length; i++) {
                defaultSelected = defaultSelected || eElem.options[i].defaultSelected;
                eElem.options[i].selected = eElem.options[i].defaultSelected;
            }
            if (defaultSelected == false && eElem.length > 0)
                eElem.selectedIndex = 0;
            eElem.fireEvent("onchange");

        }
    }
}


function PurviewContent(obj) {
    var PurvieCode = obj.value + "<div><center><a href=vbscript:window.close()>[关闭]</a></center></div>";
    if (PurvieCode != "") {
        var PurvieWindow = window.open('', '', '');
        PurvieWindow.opener = null;
        PurvieWindow.document.write(PurvieCode);
        PurvieWindow.document.close();
    }
}
// ******************************************************* end


/*
添加一个函数到onload事件中
参数methodName表示函数名称，字符串类型的。
*/
function $addLoadEventHandler(methodName) {
    $addElementEventHandler(window, "onload", methodName);
}

/*
添加一个方法到到一个对象的一个的一个事件中
element 要设置的对象  
eventName 事件名称， 字符串类型的。
methodName表示函数名称，字符串类型的。
*/
function $addElementEventHandler(element, eventName, methodName) {
    if (document.all) {
        element.attachEvent(eventName, new Function(methodName));
    }
    else {
        if (eventName.substring(0, 2) == "on") eventName = eventName.substring(2);
        element.addEventListener(eventName, new Function(methodName), false);
    }
}

/******************下面的方法是为了防止表单重复提交****************************/

//修改当前页面所有表单的提交事件
function $setFormCheckSubmited() {
    var frms = document.forms;
    for (var i = 0; i < document.forms.length; i++) {
        if (typeof (frms[i].submited) == 'undefined')//防止重复加载自定义的提交事件
        {
            frms[i].baseSubmit = frms[i].submit;
            frms[i].submited = false;
            frms[i].submit = new Function("$submitForm(this)");
            $addElementEventHandler(frms[i], "onsubmit", "return $submitForm(document.forms[" + i + "])");
        }
    }
}

//提交一个表单，如果当前表单已经提交，那么就不会继续提交该表单
function $submitForm(frm) {
    if (frm.submited) return false;
    frm.submited = true;
    frm.baseSubmit();
    return false; //防止onsubmit事件继续提交表单
}
/*****************************end*************************************************/


// ************************************************************************************************************************ end
// chenp+, 2005.5.9
// 平台标题
var g_PlatformTitle = "广联达招标管理系统";
$addLoadEventHandler("$setFormCheckSubmited()");


function GetRootUrl() {
    /// <summary>获取用户根路径</sumary>
    var tmp = document.location.pathname.split("/"),
        url = document.location.protocol + "//" + document.location.host + "/";
    for (var i = 1; i < 3; i++) {
        url += tmp[i] + "/"
    }
    return url;
}


function GetDomObject(ID, top) {
    /// <summary>根据ID获取DOM对象</summary>
    /// <param name="ID" type="String">DOM对象ID</param>
    /// <returns type="Object">返回元素对象</returns>
    top = top ? top : "";
    if (typeof (ID) == "object") return ID
    if (document.getElementById) {
        return eval(top + 'document.getElementById("' + ID + '")');
    } else if (document.layers) {
        return eval(top + "document.layers['" + ID + "']");
    } else {
        return eval(top + 'document.all.' + ID);
    }
}

function marqueeH(oDiv, obj1, obj2, speed) {
    /// <summary>滚动图文内容 -> 横向滚动</summary>
    /// <param name="oDiv" type="Object">滚动层</param>
    /// <param name="obj1" type="Object">滚动内容</param>
    /// <param name="obj2" type="Object">滚动内容副本（实现不间断滚动)</param>
    /// <param name="speed" type="Integer">滚动速度,(单位：毫秒，推荐值40)</param>
    oDiv = GetDomObject(oDiv),
            obj1 = GetDomObject(obj1),
            obj2 = GetDomObject(obj2);
    if (!oDiv || !obj1 || !obj2) return;

    
    if (obj1.offsetWidth < oDiv.offsetWidth) {
        //宽度，以适应内容不满一屏的能正常滚动
        var n = Math.ceil(oDiv.offsetWidth / obj1.offsetWidth);
        var temp = "<td>"+obj1.innerHTML+"</td>", html = "<table cellspace=\"0\" cellpadding=\"0\" border=\"0\"><tr>";
        for (var i = 0; i <= n; i++) {
            html += temp;
        }
        html += "</tr></table>";
        obj1.innerHTML = html;
    }
    
    obj2.innerHTML = obj1.innerHTML
    function marquee() {
        if (obj2.offsetWidth - oDiv.scrollLeft <= 0) {
            oDiv.scrollLeft -= obj1.offsetWidth
        }
        else {            
            oDiv.scrollLeft++
        }
    }
    var MyMarquee = setInterval(marquee, speed)
    oDiv.onmouseover = function() { clearInterval(MyMarquee) }
    oDiv.onmouseout = function() { MyMarquee = setInterval(marquee, speed) }
}



function marqueeV(oDiv, obj1, obj2, speed) {
    /// <summary>滚动图文内容 -> 横向滚动</summary>
    /// <param name="oDiv" type="Object">滚动层</param>
    /// <param name="obj1" type="Object">滚动内容</param>
    /// <param name="obj2" type="Object">滚动内容副本（实现不间断滚动)</param>
    /// <param name="speed" type="Integer">滚动速度,(单位：毫秒，推荐值40)</param>
    oDiv = GetDomObject(oDiv),
            obj1 = GetDomObject(obj1),
            obj2 = GetDomObject(obj2);
    if (!oDiv || !obj1 || !obj2) return;
    obj2.innerHTML = obj1.innerHTML
    function marquee() {
        if (obj2.offsetTop - oDiv.scrollTop <= 0) {
            oDiv.scrollTop -= obj1.offsetHeight

        }
        else {
            oDiv.scrollTop++
        }
    }
    var MyMarquee = setInterval(marquee, speed)
    oDiv.onmouseover = function() { clearInterval(MyMarquee) }
    oDiv.onmouseout = function() { MyMarquee = setInterval(marquee, speed) }
}


/*修正Flash显示 ,在浏览器中不会显示"激活虚线框"*/
function flash(arg) {
    var parm = []
    var _default_version = "8,0,24,0";
    var _default_quality = "high";
    var _default_align = "middle";
    var _default_menu = "false";

    for (i = 0; i < arguments.length; i++) {
        parm[i] = arguments[i].split(' ').join('').split('=')
        for (var j = parm[i].length - 1; j > 1; j--) {
            parm[i][j - 1] += "=" + parm[i].pop();
        }
        switch (parm[i][0]) {
            case '_version': var _version = parm[i][1]; break;
            case '_swf': var _swf = parm[i][1]; break;
            case '_base': var _base = parm[i][1]; break;
            case '_quality': var _quality = parm[i][1]; break;
            case '_loop': var _loop = parm[i][1]; break;
            case '_bgcolor': var _bgcolor = parm[i][1]; break;
            case '_wmode': var _wmode = parm[i][1]; break;
            case '_play': var _play = parm[i][1]; break;
            case '_menu': var _menu = parm[i][1]; break;
            case '_scale': var _scale = parm[i][1]; break;
            case '_salign': var _salign = parm[i][1]; break;
            case '_height': var _height = parm[i][1]; break;
            case '_width': var _width = parm[i][1]; break;
            case '_hspace': var _hspace = parm[i][1]; break;
            case '_vspace': var _vspace = parm[i][1]; break;
            case '_align': var _align = parm[i][1]; break;
            case '_class': var _class = parm[i][1]; break;
            case '_id': var _id = parm[i][1]; break;
            case '_name': var _name = parm[i][1]; break;
            case '_style': var _style = parm[i][1]; break;
            case '_declare': var _declare = parm[i][1]; break;
            case '_flashvars': var _flashvars = parm[i][1].replace(/::/g, "="); break;
            default: ;
        }
    }
    var thtml = ""
    thtml += "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=" + ((_version) ? _version : _default_version) + "'"
    if (_width) thtml += " width='" + _width + "'"
    if (_height) thtml += " height='" + _height + "'"
    if (_hspace) thtml += " hspace='" + _hspace + "'"
    if (_vspace) thtml += " vspace='" + _vspace + "'"
    if (_align) thtml += " align='" + _align + "'"
    else thtml += " align='" + _default_align + "'"
    if (_class) thtml += " class='" + _class + "'"
    if (_id) thtml += " id='" + _id + "'"
    if (_name) thtml += " name='" + _name + "'"
    if (_style) thtml += " style='" + _style + "'"
    if (_declare) thtml += " " + _declare
    thtml += ">"
    if (_swf) thtml += "<param name='movie' value='" + _swf + "'>"
    if (_quality) thtml += "<param name='quality' value='" + _quality + "'>"
    else thtml += "<param name='quality' value ='" + _default_quality + "'>"
    if (_loop) thtml += "<param name='loop' value='" + _loop + "'>"
    if (_bgcolor) thtml += "<param name='bgcolor' value='" + _bgcolor + "'>"
    if (_play) thtml += "<param name='play' value='" + _play + "'>"
    if (_menu) thtml += "<param name='menu' value='" + _menu + "'>"
    else thtml += "<param name='menu' value='" + _default_menu + "'>"
    if (_scale) thtml += "<param name='scale' value='" + _scale + "'>"
    if (_salign) thtml += "<param name='salign' value='" + _salign + "'>"
    if (_wmode) thtml += "<param name='wmode' value='" + _wmode + "'>"
    if (_base) thtml += "<param name='base' value='" + _base + "'>"
    if (_flashvars) thtml += "<param name='flashvars' value='" + _flashvars + "'>"
    thtml += "<embed pluginspage='http://www.macromedia.com/go/getflashplayer'"
    if (_width) thtml += " width='" + _width + "'"
    if (_height) thtml += " height='" + _height + "'"
    if (_hspace) thtml += " hspace='" + _hspace + "'"
    if (_vspace) thtml += " vspace='" + _vspace + "'"
    if (_align) thtml += " align='" + _align + "'"
    else thtml += " align='" + _default_align + "'"
    if (_class) thtml += " class='" + _class + "'"
    if (_id) thtml += " id='" + _id + "'"
    if (_name) thtml += " name='" + _name + "'"
    if (_style) thtml += " style='" + _style + "'"
    thtml += " type='application/x-shockwave-flash'"
    if (_declare) thtml += " " + _declare
    if (_swf) thtml += " src='" + _swf + "'"
    if (_quality) thtml += " quality='" + _quality + "'"
    else thtml += " quality='" + _default_quality + "'"
    if (_loop) thtml += " loop='" + _loop + "'"
    if (_bgcolor) thtml += " bgcolor='" + _bgcolor + "'"
    if (_play) thtml += " play='" + _play + "'"
    if (_menu) thtml += " menu='" + _menu + "'"
    else thtml += " menu='" + _default_menu + "'"
    if (_scale) thtml += " scale='" + _scale + "'"
    if (_salign) thtml += " salign='" + _salign + "'"
    if (_wmode) thtml += " wmode='" + _wmode + "'"
    if (_base) thtml += " base='" + _base + "'"
    if (_flashvars) thtml += " flashvars='" + _flashvars + "'"
    thtml += "></embed>"
    thtml += "</object>"
    document.write(thtml)
    return thtml;
}

function SetCookie(sName, sValue) {
    document.cookie = sName + "=" + escape(sValue) + '; path=/';
}

function gotoHelp(helpID, helpUrl) {
    SetCookie('__ArticleClassCode', helpID);
    var win = window.open(helpUrl, 'help', 'resizable=yes,toolbar=no,status=no,scrollbars=yes,menubar=no,directories=no,location=no,dependant=no,width=900,left=10', false);
    if (win) {
        win.focus();
    }
}

function feedback() {
    var rootUrl = GetRootUrl();
    var win = window.open(rootUrl + 'common/Feedback.exml', '问题反馈', 'resizable=yes,toolbar=no,status=no,scrollbars=yes,menubar=no,directories=no,location=no,dependant=no,width=900,left=10', false);
    if (win) {
        win.focus();
    }
}


function showTabSheet(o) {
    /// <summary></summary>
    var index = o.tag;
    if (index == 1) {
        $(".t-head").get(0).style.backgroundPositionY = "-0px";
        $("#tabSheet_Content1").show();
        $("#tabSheet_Content2").hide();
    }
    else {
        $(".t-head").get(0).style.backgroundPositionY = "-33px";
        $("#tabSheet_Content1").hide();
        $("#tabSheet_Content2").show();

    }
}
