﻿/******************************************************************************************************************************************************************
@说明:{
    1.统一分隔符，本文件只用以下几种符号做为分隔符："|"、" "、","、";"；url将首先以"?"、"&"做分隔,分隔符数组为_c
    2.凡是不合要求，或者没有此对象的返回null
    2.@el:简单html元素处理对象{
        @getAttr:type:@eg:"input type"、"input name"[tagname,id,name "tag","id","name"];attr:属性;return:第一个元素的attr属性
    }
}
******************************************************************************************************************************************************************/

/************************************************************js重写 start*****************************************************************************************/
//window.alert=yxtAlert;
//window.confirm=yxtConfirm;

function yxtAlert(par)
{
    yxt.tool.clarityDiv("","","1");
    yxt.tool.minDiv("","f_message_div");
    
    var html = par;
    html+="<input type='button' value='close' onclick='yxtCloseAlert();'>"
    document.getElementById("f_message_div").innerHTML = html
}
function yxtCloseAlert()
{
    document.body.removeChild(document.getElementById("f_message_div"));
    document.body.removeChild(document.getElementById("f_screen_message_div"));
}
/************************************************************js重写 end********************************************************************************************/

var yxt = {
    _c:new Array('|',' ',',',';'),
    el:{
        getAttr: function(type,attr)
        {
            if(attr != "" && attr != null)
            {
                if(type != "" && type != null)
                {
                    var arr = this.tool.split(type);
                    if(arr.length = 2)
                    {
                        var obj;
                        if(arr[1] == "tag")
                        {
                            obj = document.getElementsByTagName(arr[0]);
                        }
                        else if(arr[1] == "id")
                        {
                            obj = document.getElementById(arr[0]);
                        }
                        else if(arr[1] == "name")
                        {
                            obj = document.getElementsByName(arr[0]);
                        }
                        
                        if(obj != null && obj != "")
                        {
                            if(document.getElementsByTagName("input"))
                            {
                                return document.getElementsByTagName("input").item(0).type;
                            }
                            else
                            {
                                return null;
                            }
                        }
                        else
                        {
                            return null;
                        }
                    }
                    else
                    {
                        return null;
                    }
                }
                else
                {
                    return null;
                }
            }
            else
            {
                return null;
            }
        }
    },
    ajax: {
        storeVal: {
            "fun" : ""
        },
        simple: function(url,method,data,fun)
        {
            if(url == null || url == "")
            {
                url = String(location);
            }
            method = (method == null || method == "") ? "post" : method;
            var html = "";
            
            if(!document.getElementById("ajaxform"))
            {
                html += "<form action='"+url+"' target='ajaxFrame' method='"+method+"' id='ajaxform'>";
                html += "</form>";
                html += "<iframe name='ajaxFrame' src='javascript:void 0;' height='0' width='0' frameborder='0' scrolling=auto></iframe>";
            }
            else
            {
                document.getElementById("ajaxform").action = url;
                document.getElementById("ajaxform").method = method;
                document.getElementById("ajaxform").innerHTML = data;
            }
            
            var obj = document.createElement("div");
	        if(!document.getElementById("ajax_Div"))
	        {
	            obj.setAttribute("id","ajax_Div");
	            obj.style.display = "none";
	            obj.innerHTML = html;
	            document.body.appendChild(obj);
	        }
	        
	        if(data != null && data != "")
	        {
	            document.getElementById("ajaxform").innerHTML = data;
	        }
	        
	        if(typeof(fun) == "function")
	        {
	            this.storeVal.fun = fun;
	        }
	        else
	        {
	            this.storeVal.fun = "";
	        }
	        
	        document.forms["ajaxform"].submit();
        },
        callBack: function(data)
        {
            //ajax回调处理            
            var fun = this.storeVal.fun;
            
            if(fun != null && fun != "")
            {
                fun(data);
            }
        }
    },
    common: {
        filter: function(data)
        {
        },
        split: function(data,par)
        {
            if(par == null || par == "")
            {
                var arr = data;
                for(var el in yxt._c)
                {
                    if(arr != null && arr != "")
                    {
                        if(typeof(arr) == "string")
                        {
                            arr = arr.split(el);
                        }
                        else
                        {
                            var temp;
                            var arr1 = new Array();
                            for(var l = 0; l < arr.length; l ++)
                            {
                                temp = arr[l].split(yxt._c[el]);
                                if(temp && typeof(temp) != "string" && temp.length> 0)
                                {
                                    for(var loop = 0; loop < temp.length; loop ++)
                                    {
                                        arr1.push(temp[loop]);
                                    }
                                }
                                else
                                {
                                    arr1.push(arr[l]);
                                }
                            }
                            arr = arr1;
                        }
                    }
                }
                return arr;
            }
        },
        clarityDiv: function(opacity,bgColor,flag)
        {
            if(!document.getElementById("f_screen_div") || flag == 1)
            {
                opacity = (opacity == null || opacity == "") ? 0.2 : (typeof(opacity) != "number") ? (Number(opacity) > 1) ? Number(opacity)/100 : opacity : (opacity > 1) ? opacity/100 : opacity;
                bgColor = (bgColor == "" || bgColor == null) ? "#777" : bgColor
                
                var id = (flag == 1) ? "f_screen_message_div" : "f_screen_div";
                var ele = document.createElement("div");
	            ele.setAttribute("id",id);
	            document.body.appendChild(ele);
	            ele.style.position = "absolute";
	            ele.style.zIndex = "1000";
	            ele.style.background = bgColor;
	            ele.style.filter = "alpha(opacity="+opacity*100+")";
	            ele.style.opacity = opacity;
	            ele.style.top = "0px";
	            ele.style.left = "0px";
	            ele.style.width = "100%";
	            ele.style.height = "100%";
   	            if(document.documentElement.scrollHeight>window.screen.height)
	            {
	                ele.style.height = document.documentElement.scrollHeight + "px";
	            }
	        }
        },
        minDiv: function (attr,id){
            var arr = this.absoluteCenter();
            var temp;
            id = (id == null || id == "")?"f_min_div":id;
            
            var bgObj = document.createElement("div");
	        bgObj.setAttribute("id",id);
	        document.body.appendChild(bgObj);
	        bgObj.style.position = "absolute";
	        
	        var flagtop = 0;
	        var flagleft = 0;
            var opacity = 1;
            var zIndex = "10001";
            var width = "300";
            var height = "150";
            var background = "";
            var top = "";
            var left = "";
	        if(attr != "" && attr != null)
	        {
	            for(temp in attr)
	            {
	                if(temp != null && temp != "")
	                {
	                    switch(temp.toLowerCase())
	                    {
	                        case "opacity":
	                            opacity = attr[temp];
	                            break;
	                        case "zindex":
	                            zIndex = attr[temp];
	                            break;
	                        case "background":
	                            background = attr[temp];
	                            break;
	                        case "top":
	                            top = attr[temp];
	                            flagtop = 1;
	                            break;
	                        case "left":
	                            left = attr[temp];
	                            flagleft = 1;
	                            break;
	                        case "width":
	                            width = attr[temp];
	                            break;
	                        case "height":
	                            height = attr[temp];
	                            break;
	                        default:
	                            bgObj.sytle[temp] = attr[temp];
	                            break;
	                    }
	                }
	            }
	        }
	        if(flagtop != 1)
	        {
	            top = arr[1]-Number(height)/2;
	        }
	        if(flagleft != 1)
	        {
	            left = arr[0]-Number(width)/2;
	        }
	        
	        bgObj.style.zIndex = zIndex;
	        bgObj.style.background = background;
	        bgObj.style.filter = "alpha(opacity="+opacity*100+")";
	        bgObj.style.opacity = opacity;
	        bgObj.style.top = top+"px";
	        bgObj.style.left = left+"px";
	        bgObj.style.width = width+"px";
	        bgObj.style.height = height + "px";
        },
        /**
        * 动态加载css,js文件
        * @param {oldStr} 要判断的对象
        * @param {id} 要设置的对象的ID
        * @param {object} 
        **/
        loadFile: function (filename, filetype)
        {
            /**var head = window.frames[iframeId].document.getElementsByTagName('head').item(0);**/
            var head = document.getElementsByTagName('head').item(0);
            if(filetype == "css")
            {
                for(var el in allModel)
                {
                    if(el == filename)
                    {
                        filename = allModel[el];
                        break;
                    }
                } 
                var fileref=document.createElement("link");
                fileref.setAttribute("id","model1")
                fileref.setAttribute("name","model1")
                fileref.setAttribute("rel", "stylesheet") ;
                fileref.setAttribute("type", "text/css");
                fileref.setAttribute("href", filename);
            }
            else if (filetype=="js"){ //判断文件类型 
                var fileref=document.createElement('script'); 
                fileref.setAttribute("type","text/javascript");
                fileref.setAttribute("language","JavaScript");    
                fileref.setAttribute("src", filename);
            } 
            if (typeof fileref!="undefined") 
            {
                head.insertBefore(fileref,head.childNodes[1]);
            }
        },
        absoluteCenter: function(obj)
        {
            var myWidth = 0, myHeight = 0;
            if (typeof (window.innerWidth) == "number") {
                myWidth = window.innerWidth;
                myHeight = window.innerHeight;
            } else {
                if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
                    myWidth = document.documentElement.scrollWidth;
                    myHeight = document.documentElement.clientHeight;
                } else {
                    if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
                        myWidth = document.body.clientWidth;
                        myHeight = document.body.clientHeight;
                    }
                }
            }
            
            if(obj != null && obj != "")
            {
                myWidth = (myWidth - obj.clientWidth) / 2;
                myHeight = (myHeight - obj.clientHeight) / 2 + document.documentElement.scrollTop;
            }
            else
            {
                myWidth = myWidth / 2;
                myHeight = myHeight / 2 + document.documentElement.scrollTop;
            }
            
            return new Array(myWidth,myHeight);
        },
        edit: function(obj,type)
        {
            if(obj != "" && obj != null)
            {
                if(typeof(obj) == "string" || typeof(obj) == "object")
                {
                    if(type==""||type==null)
                    {
                        if(typeof(obj) == "string")
                        {
                            type = "id";
                        }
                        else if(typeof(obj) == "object")
                        {
                            type = "obj";
                        }
                    }
                    
                    if(type == "id")
                    {
                        obj = document.getElementById(obj);
                    }
                    else if(type == "name")
                    {
                        obj = document.getElementsByName(obj);
                    }
                    else if(type == "tag")
                    {
                        obj = document.getElementsByTagName(obj);
                    }
                    
                    if(typeof(obj) != "array")
                    {
                        var val;
                        if(obj.tagName)
                        {
                            switch(obj.tagName)
                            {
                                case "input":
                                    return null;
                                    break;
                                default:
                                    val = obj.innerHTML;
                                    if(type == "pwd")
                                    {
                                        val = "<input type='password' id='txt_edit_"+obj.id+"' name='txt_edit_"+obj.id+"' value='"+val+"' />";
                                        obj.innerHTML = val;
                                    }
                                    else
                                    {
                                        val = "<input type='text' id='txt_edit_"+obj.id+"' name='txt_edit_"+obj.id+"' value='"+val+"' />";
                                        obj.innerHTML = val;
                                    }
                                    break;
                            }
                        }
                    }
                    else
                    {
                        var val;
                        for(var i = 0; i < obj.length; i ++)
                        {
                            if(obj[i].tagName)
                            {
                                switch(obj[i].tagName)
                                {
                                    case "input":
                                        return null;
                                        break;
                                    default:
                                        val = obj[i].innerHTML;
                                        if(type == "pwd")
                                        {
                                            val = "<input type='password' id='txt_edit_"+obj.id+"' name='txt_edit_"+obj.id+"' value='"+val+"' />";
                                            obj[i].innerHTML = val;
                                        }
                                        else
                                        {
                                            val = "<input type='text' id='txt_edit_"+obj.id+"' name='txt_edit_"+obj.id+"' value='"+val+"' />";
                                            obj[i].innerHTML = val;
                                        }
                                        /*val = "<input type='text' id='txt_edit_"+obj.id+"' name='txt_eidt"+obj.id+"' value='"+val+"' />"
                                        obj[i].innerHTML = val;*/
                                        break;
                                }
                            }
                        }
                    }
                }
                else
                {
                    return null;
                }
            }
            else
            {
                return null;
            }
        },
        cancelEdit: function(obj,type)
        {
            if(obj != "" && obj != null)
            {
                if(typeof(obj) == "string" || typeof(obj) == "object")
                {
                    if(type==""||type==null)
                    {
                        if(typeof(obj) == "string")
                        {
                            type = "id";
                        }
                        else if(typeof(obj) == "object")
                        {
                            type = "obj";
                        }
                    }
                    
                    if(type == "id")
                    {
                        obj = document.getElementById(obj);
                    }
                    else if(type == "name")
                    {
                        obj = document.getElementsByName(obj);
                    }
                    else if(type == "tag")
                    {
                        obj = document.getElementsByTagName(obj);
                    }
                    
                    var val;
                    if(typeof(obj) != "array")
                    {
                        if(obj.tagName)
                        {
                            switch(obj.tagName)
                            {
                                case "input":
                                    return null;
                                    break;
                                default:
                                    val = obj.childNodes.item(0);
                                    val = val.value
                                    obj.innerHTML = val;
                                    break;
                            }
                        }
                        else
                        {
                            return null;
                        }
                    }
                    else
                    {
                        for(var i = 0; i < obj.length; i ++)
                        {
                            if(obj[i].tagName)
                            {
                                switch(obj[i].tagName)
                                {
                                    case "input":
                                        return null;
                                        break;
                                    default:
                                        val = obj[i].childNodes.item(0);
                                        val = val.value
                                        obj[i].innerHTML = val;
                                        break;
                                }
                            }
                        }
                    }
                }
                else
                {
                    return null;
                }
            }
            else
            {
                return null;
            }
        },
        /**
        * 得到所有的元素
        * @type:元素的tagName,建议不传，
        * @reArr:建议不要传参，如果有传，抽象地在此基础上加上所有的元素对象
        **/
        getAllEle:function (type,reArr)
        {
            var doc = _win.compat();
            var arr = new Array();
            var temp;
            reArr = (reArr == null || reArr == "") ? new Array() : reArr;
            if(type == "all" || type == "" || type == null)
            {
                arr = doc.childNodes;
                for(var l = 0; l < arr.length; l ++)
                {
                    temp = arr[l];
                    if(temp != null)
                    {
                        reArr.push(temp);
                        reArr = this.getAllEle(temp,reArr);
                    }
                }
                return reArr;
            }
            else
            {
                arr = type.childNodes;
                if(arr.length == 0)
                {
                    return reArr;
                }
                else
                {
                    for(var l = 0; l < arr.length; l ++)
                    {
                        temp = arr[l];
                        if(temp != null)
                        {
                            reArr.push(temp);
                            reArr = this.getAllEle(temp,reArr);
                        }
                    }
                    return reArr;
                }
            }
        },
        /**
        * 获取所有包含指定属性的元素
        * [html:<div id='div1' class="abc"><span id='span1' class='abc'>span1</span><span id='span2'>class2</span></div><p class='abc'>p</p><input type='button' />;transfer:getAttrEle("attr:class=abc");result:length=3,["<div* id='div1' class="abc"><span id='span1' class='abc'>span1</span><span id='span2'>class2</span></div>","<span id='span1' class='abc'>span1</span>","<p class='abc'>p</p>"];]
        * @type:"attr:属性=[值1 值2 …… 值3,值4]"("attr:class=abc",可用' '、','、'|'、';'、)
        **/
        getAttrEle: function (type)
        {
            if(type != "" && type != null)
            {
                var flag = type.split(":")[0];
                var attr = type.split(":")[1].split("=")[0];
                var val = type.split(":")[1].split("=")[1];
                var doc = _win.compat();
                var arr;
                var temp;
                var reArr = new Array();
                if(flag == "attr")
                {
                    arr = this.getAllEle();
                    for(var i = 0; i < arr.length; i ++)
                    {
                        temp = arr[i];
                        if(temp && temp[attr])
                        {
                            if(val == "" || val == null)
                            {
                                reArr.push(temp);
                            }
                            else
                            {
                                temp = this.split(temp[attr]);
                                if(typeof(temp)!="string")
                                {
                                    for(var l = 0; l < temp.length; l++)
                                    {
                                        if(temp[l] == val)
                                        {
                                            reArr.push(arr[i]);
                                        }
                                    }
                                }
                                else
                                {
                                    if(temp == val)
                                    {
                                        reArr.push(arr[i]);
                                    }
                                }
                            }
                        }
                    }
                    return reArr;
                }
                return null;
            }
        }
    },
    vali: {
        datetime: function(data)
        {
            var expr = /^([1-9][0-9][0-9][0-9] [0-9]?[0-9]:[0-6]?[0-9]:[0-6]?[0-9])$|^[1-9][0-9][0-9][0-9]$/;
            expr = /^[1-9][0-9][0-9][0-9]-[0-1]?[1-9]-[0-3]?[0-9]$|^[1-9][0-9][0-9][0-9]-[0-1]?[1-9]-[0-3]?[0-9] [0-2]?[0-9]:[0-6]?[0-9]:[0-6]?[0-9]$/;
            expr = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/
            var reg = new RegExp(expr);
            
            if(reg.test(data))
            {
                return true;
            }
            return false;
        },
        positiveInt: function(data)
        {
            var expr = /^\+?[0-9]$|^\+?[1-9]+[0-9]*$/;
            
            if(expr.test(data))
            {
                return true;
            }
            return false;
        }
    }
};

var _win = {
    /**
    * 获取浏览器的类型和版本
    * @type:={"all",1},return 浏览器的类型和版本,用':'分隔[ie:8.0];={"version",2},return 浏览器的版本[8.0];=other,return 浏览器的类型[ie];
    **/
    info: function(type)
    {
        var ua = navigator.userAgent.toLowerCase();
	    var s = "";
	    (s = ua.match(/msie ([\d.]+)/)) ? s = "ie:"+s[1] : (s = ua.match(/firefox\/([\d.]+)/)) ? s = "firefox:"+s[1] : (s = ua.match(/chrome\/([\d.]+)/)) ? s = "chrome:"+s[1] : (s = ua.match(/opera.([\d.]+)/)) ? s = "opera:"+s[1] : (s = ua.match(/version\/([\d.]+).*safari/)) ? s = "safari:"+s[1] : s = "";
    		        
	    if(type == "all" || type == 1)
	    {
	        return s;
	    }
	    else if(type == "version" || type == 2)
	    {
	        return s.split(":")[1];
	    }
	    else
	    {
	        return s.split(":")[0];
	    }
    },
    compat: function()
    {
        return (document.compatMode && document.compatMode!="BackCompat") ? document.documentElement : document.body;
    },
    scrollTop: function ()
    {
        return (this.info() == "ie") ? this.compat().scrollTop : window.pageYOffset;
    }
};

/************************************************************扩展方法 start****************************************************************************************/
/**
* 去除两端空格
**/
String.prototype.trim = function(){
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
/**
* 是否有特殊字符
**/
String.prototype.checkSpec = function(){
    return !(this.search(/[~'"@#$?&<>\/]/g)!=-1)
}
/**
* 过滤特殊字符
**/
String.prototype.filter = function()
{
    //return this.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/?/g,"&copy;").replace(/?/g,"&reg;").replace(/&amp;amp;/g,"&amp;");
};
/************************************************************扩展方法 end******************************************************************************************/

/********************************************************************js 资料 start******************************************************************************************************
网页可见区域宽： document.body.clientWidth
网页可见区域高： document.body.clientHeight

网页可见区域宽： document.body.offsetWidth (包括边线的宽)
网页可见区域高： document.body.offsetHeight (包括边线的高)

网页正文全文宽： document.body.scrollWidth
网页正文全文高： document.body.scrollHeight

网页被卷去的高： document.body.scrollTop
网页被卷去的左： document.body.scrollLeft

网页正文部分上： window.screenTop
网页正文部分左： window.screenLeft

屏幕分辨率的高： window.screen.height
屏幕分辨率的宽： window.screen.width

屏幕可用工作区高度： window.screen.availHeight
屏幕可用工作区宽度： window.screen.availWidth
*********************************************************************js 资料 end*********************************************************************************************************/
