﻿function $(el){
	if (!el) return null;
	if (el.htmlElement) return Garbage.collect(el);
	if (typeof(document.getElementById(el))=="object") return document.getElementById(el);
	var type = $type(el);
	if (type == 'string'){
		el = document.getElementById(el);
		type = (el) ? 'element' : false;
	}
	if (type != 'element') return null;
	if (el.htmlElement) return Garbage.collect(el);
	if (['object', 'embed'].contains(el.tagName.toLowerCase())) return el;
	$extend(el, Element.prototype);
	el.htmlElement = function(){};
	return Garbage.collect(el);
};

var $extend = function(){
	var args = arguments;
	if (!args[1]) args = [this, args[0]];
	for (var property in args[1]) args[0][property] = args[1][property];
	return args[0];
};

function $defined(obj){
	return (obj != undefined);
};

function $type(obj){
	if (obj == undefined) return false;
	if (obj.$family) return (obj.$family.name == 'number' && !isFinite(obj)) ? false : obj.$family.name;
	if (obj.nodeName){
		switch (obj.nodeType){
			case 1: return 'element';
			case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : 'whitespace';
		}
	} else if (typeof obj.length == 'number'){
		if (obj.callee) return 'arguments';
		else if (obj.item) return 'collection';
	}
	return typeof obj;
};

/*设置与获取Cookie*/
var Cookie ={}
Cookie.write = function(key, value, duration){
	 var d = new Date();
    d.setTime(d.getTime()+1000*60*60*24*30);
    document.cookie = key + "=" + encodeURI(value) + "; expires=" + d.toGMTString();
};
Cookie.read = function(key){
	var arr = document.cookie.match(new RegExp("(^| )"+key+"=([^;]*)(;|$)"));
    if(arr != null) 
        return decodeURIComponent(arr[2]);
    return "";
};

var JSON = {
    decode: function(string, secure){
		if ($type(string) != 'string' || !string.length) return null;
		if (secure && !('/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/').test(string.replace(/\\./g, '@').replace(/'[^"\\\n\r]*'/g, ''))) return null;
		return eval('(' + string + ')');
	}
};

//将日期转换成"yyyy-mm-dd"格式 第二个参数为返回类型传入'ym':yyyy-mm,'md':mm-dd,默认为'yyyy-mm-dd'
function ConvertDateFormat(strDate,sye){   
    if (strDate ==null || strDate=="" || strDate=="0"){
         return (""); 
    }
    else{      
        try{
            var ExDate = new Date(strDate.replace(/-/g, "/")); 
            var yyyy = ExDate.getFullYear();
            var mm = ExDate.getMonth() +1;mm = mm<10?"0"+mm:mm;            
            var dd = ExDate.getDate();dd = dd<10?"0"+dd:dd;   
            switch(sye){  
                case "ym":
                    return yyyy + "-" + mm;
                    break;
                case "md":
                    return mm + "-" + dd;
                    break;
                default: 
                    return yyyy + "-" + mm + "-" + dd ;
                    break;
            }
        }
        catch(e){
            return("")
        }      
    }
}

//页面跳转到另一个页面
function JumpUrl(url){
    window.location.href=url;
}

//取路径参数
function getUrlParam(name){   
    var reg = new RegExp("(^|&)"+   name   +"=([^&]*)(&|$)"); 
    var r = window.location.search.substr(1).match(reg); 
    if (r!=null) 
    {return decodeURIComponent(r[2]);}
    else
    {return ""; }
}

function Trim(ss)
{
  // 用正则表达式将前后空格
  // 用空字符串替代。
  return ss.replace(/(^\s*)|(\s*$)/g, "");
}


Array.prototype.inArray = function (value) { 
    var i; 
    for (i=0; i < this.length; i++) { 
        if (this[i] === value) { 
            return true; 
        } 
    } 
    return false; 
}; 

function addEvent( obj, type, fn ) { 
    if (obj.addEventListener) { 
        obj.addEventListener( type, fn, false ); 
        EventCache.add(obj, type, fn); 
    } 
    else if (obj.attachEvent) { 
        obj["e"+type+fn] = fn; 
        obj[type+fn] = function() { obj["e"+type+fn]( window.event ); } 
        obj.attachEvent( "on"+type, obj[type+fn] ); 
        EventCache.add(obj, type, fn); 
    } 
    else { 
        obj["on"+type] = obj["e"+type+fn]; 
    } 
} 
var EventCache = function(){ 
    var listEvents = []; 
    return { 
        listEvents : listEvents, 
        add : function(node, sEventName, fHandler){ 
            listEvents.push(arguments); 
        }, 
        flush : function(){ 
            var i, item; 
            for(i = listEvents.length - 1; i >= 0; i = i - 1){ 
                item = listEvents[i]; 
                if(item[0].removeEventListener){ 
                    item[0].removeEventListener(item[1], item[2], item[3]); 
                }; 
                if(item[1].substring(0, 2) != "on"){ 
                    item[1] = "on" + item[1]; 
                }; 
                if(item[0].detachEvent){ 
                    item[0].detachEvent(item[1], item[2]); 
                }; 
                item[0][item[1]] = null; 
            }; 
        } 
    }; 
}(); 
addEvent(window,'unload',EventCache.flush);

function getTop(e){
    var offset=e.offsetTop;
    if(e.offsetParent!=null) offset+=getTop(e.offsetParent);
    return offset;
}

function getLeft(e){
    var offset=e.offsetLeft;
    if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);
    return offset;
}
function getParent(el){
            return el.parentNode ? el.parentNode : el.parentElement;
        }

//登录情况下从公共平台跳转到会员管理平台，参数tourl 例如：要修改会员信息就传hqenmanger(CompanyInfo/MemberModify.aspx)
//CompanyInfo代表栏目，MemberModify.aspx代表文件
function hqenmanger(tourl)
{
    window.open("/Web/Hqen/"+encodeURIComponent(tourl));
}


