﻿function createElement(tag) {
    var el = document.createElement(tag);
    return el;
}
function loading() {
    var div = createElement("div");
    div.innerHTML = "请稍候，系统正在处理...";
    div.setAttribute("class", "loading");
    document.body.appendChild(div);
    return div;
}

//remove array repeat value
Array.prototype.distinct = function() {
    var newarray = [];

    for (var i = 0; i < this.length; i++) {
        var f = true;        
        for (var j = 0; j < newarray.length; j++) {
            if (this[i] == newarray[j]) {
                f = false; break;
            }
        }
        if (f) {
            newarray.push(this[i]);
        }
    }
    return newarray;
}
Array.prototype.distinct2 = function() {     //error
    var old = this;
    var obj1 = {};
    var obj2 = {};
    var newarray = [];

    var o;
    for (var i = 0; o = old[i]; i++) {
        if (o in obj1) {
            if (!(o in obj2)) {
                obj2[o] = o;
            }
            delete old[i];
        } else {
            obj1[o] = o;
        }
    }

    for (o in obj1) {
        old.push(o);
    }

    for (o in obj2) {
        newarray.push(o);
    }

    return newarray;
}

//all utility tools depends on Jquery 1.3
//2010-5-6
//QiuLiang

/* Pop Window for bind DOM Element */
$.fn.ql_popwin = function() {
    var jthis = this;   //this is jquery object
    this.click(function() {
        su.create();
    });
    var su = {
        create: function() {
            if (jthis.sudiv) {
                $(jthis.sudiv).show();
                $(jthis.sudiv).css({
                    left: su.getPosition().Left + "px",
                    top: su.getPosition().Top + "px"
                });   //重新设置位置
            } else {
                var div = document.createElement("div");    //外层容器
                var tdiv = document.createElement("div");   //标题栏
                var bdiv = document.createElement("div");   //选择列表窗体
                var btdiv = document.createElement("div");   //选择列表底部
                var spanClose = document.createElement("span");     //顶部关闭按钮
                var ao = document.createElement("a");    //底部确定按钮
                var ac = document.createElement("a");    //底部取消按钮
                ao.innerHTML = "[确定]";
                ac.innerHTML = "[取消]";
                ao.onclick = function() { su.close() };
                ac.onclick = function() { su.close() };
                btdiv.appendChild(ao);
                btdiv.appendChild(ac);
                $(spanClose).html("[×]").css({
                    float: "right",
                    cursor: "pointer"
                }).click(function() { su.close() });
                tdiv.appendChild(spanClose);
                $(tdiv).append("用户选择");
                $(bdiv).html("Loading......");

                div.appendChild(tdiv);
                div.appendChild(bdiv);
                div.appendChild(btdiv);
                //style
                su.setStyle(tdiv, bdiv, btdiv, ao, ac, div);

                document.body.appendChild(div);

                jthis.sudiv = div;
                jthis.sudiv.body = bdiv;
                jthis.sudiv.ok = ao;
                //ajax data
                su.getData();
            }
        },
        getData: function() {
            $.post("../AjaxServer/ajax_common.aspx", {
                opflag: "GetUserList"
            }, function(data) {
                jthis.sudiv.body.innerHTML = data;
                $(jthis.sudiv.ok).click(function() {     //增加click事件
                    var v = $(jthis.sudiv.body).find("input:checked").val();
                    var cname = $(jthis.sudiv.body).find("input:checked").next("label").text();
                    jthis.val(cname);
                    jthis.attr("vid", v);
                });
            });
        },
        close: function() {
            $(jthis.sudiv).hide();
        },
        getPosition: function() {
            var p = new Object();
            p.Left = jthis.offset().left;
            p.Top = jthis.offset().top + jthis.height() + 5;
            return p;
        },
        setStyle: function(tdiv, bdiv, btdiv, ao, ac, div) {
            $(tdiv).css({
                lineHeight: "20px",
                paddingLeft: "5px",
                color: "#2E83FF",
                borderBottom: "dashed 1px #FAD42E"
            });
            $(bdiv).css({
                padding: "5px",
                height: "150px",
                overflowY: "auto",
                backgroundColor: "#FBEC88" //"#FFFFCC"
            });
            $(btdiv).css({
                lineHeight: "20px",
                paddingLeft: "5px",
                color: "#2E83FF",
                borderTop: "dashed 1px #FAD42E",
                textAlign: "center"
            });
            $(btdiv).find("a").css({
                cursor: "pointer"
            });
            $(ac).css({
                marginLeft: "40px"
            });
            $(div).css({
                width: "230px",

                border: "solid 1px #FAD42E",
                backgroundColor: "#FBEC88",
                position: "absolute",
                left: su.getPosition().Left + "px",
                top: su.getPosition().Top + "px"
            });
        },
        ok: function() {
            $(jthis.sudiv).hide();
        }
    };
}

