
// DEFAULT_CLEAR +++++++++++++++++++++++++++++++++++++++++++//
function defClear(_obj) {
	if(_obj.defaultValue==_obj.value)_obj.value='';
}

// SUBWINDOW +++++++++++++++++++++++++++++++++++++//
function Openwin(html,name,width,height,menubar,scroll,resize) {
SubWindow=window.open(html,name,"width="+width+",height="+height+",toolbar=0,location=0,status=0,menubar="+menubar+",scrollbars="+scroll+",resizable="+resize+"");
	SubWindow.focus();
}

// SUBWINDOW position center +++++++++++++++++++++++++++++++++++++//
function OpenwinCenter(html,name,width,height){
	var str="height="+height+",width="+width+",scrollbars=0,status=0";
	if(parseInt(navigator.appVersion)>3){
		str+=",left="+(screen.width-width)/2+",top="+parseInt((screen.height -height)/2);
	}
	win=window.open(html,name,str);
	win.focus();
}
function openLink(url, method) {
	if (method == "_blank") {
        window.open(url);
	} else {
		window.location = url;
	}
}


/********************************
 * 获取视窗偏移量
*********************************/
function getWindowOffset() {
    var offset = {
        x:0,
        y:0
    };
    
    if(typeof window.pageXOffset != 'undefined' || typeof window.pageYOffset != 'undefined') {
        offset.x = window.pageXOffset;
        offset.y = window.pageYOffset;
    } else if(typeof document.compatMode != 'undefined' && document.compatMode == 'CSS1Compat') {
        offset.x = document.documentElement.scrollLeft;
        offset.y = document.documentElement.scrollTop;
    } else if(typeof document.body != 'undefined' && (document.body.scrollLeft || document.body.scrollTop)) {
        offset.x = document.body.scrollLeft;
        offset.y = document.body.scrollTop;
    }
 
    return offset;
}

/********************************
 * 获取对象偏移量
*********************************/
function getObjOffset(element) {
    var objOffset = {
        x:0,
        y:0
    };
 
    if (arguments.length != 1 || element == null) {
        return null;
    }
    objOffset.x = element.offsetLeft;
    objOffset.y = element.offsetTop;
    while (element = element.offsetParent) {
        objOffset.x += element.offsetLeft;
        objOffset.y += element.offsetTop;
    }
 
    return objOffset;
}


/********************************
 * 获取视窗大小
*********************************/
function getWindowSize() {
    var client = {
        x:0,
        y:0
    };
    if (typeof document.body != 'undefined') {
        client.x = document.body.clientWidth;
        client.y = document.body.clientHeight;
    } else if(typeof document.compatMode != 'undefined' && document.compatMode == 'CSS1Compat') {
        client.x = document.documentElement.clientWidth;
        client.y = document.documentElement.clientHeight;
    }
    /* else if(typeof document.body != 'undefined' && (document.body.scrollLeft || document.body.scrollTop)) {
        client.x = document.body.clientWidth;
        client.y = document.body.clientHeight;
    }*/
    
    return client;
}


/********************************
 * 获取对象大小
*********************************/
function getObjSize(element) {
    var objSize = {
        x:0,
        y:0
    };
 
    if (arguments.length != 1 || element == null) {
        return null;
    }
    objSize.x = element.offsetWidth;
    objSize.y = element.offsetHeight;
 
    return objSize;
}


/********************************
 * 获取对象大小
*********************************/
function mousePosX(ev) {
    ev= ev || window.event;
    var mousePos = mouseCoords(ev);
    return mousePos.x;
}


/********************************
 * 获取鼠标坐标
*********************************/
function mouseCoords(ev) {
    if(ev.pageX || ev.pageY){
       return {x:ev.pageX, y:ev.pageY};
    }
    return {
         x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
         y:ev.clientY + document.body.scrollTop - document.body.clientTop
    };
}


/********************************
 * 设置CSS
*********************************/
function setStyle(element, key, value) {
    element.style[key] = value;
}


/********************************
 * 设置半透明
*********************************/
function setAlpha(_obj,value) {
    setStyle(_obj.firstChild, 'opacity', value);
    setStyle(_obj.firstChild, 'filter', 'alpha(opacity=' + value * 100 + ')');
}


/********************************
 * 类操作函数
*********************************/
var Class = {
    create: function() {
        return function() {
            this.initialize.apply(this, arguments);
        }
    }
}

/** Functions */
var Util = Class.create();
Util.prototype = {
    initialize: function() {
    },

    $: function(id) {
        return document.getElementById(id);
    },

    $A: function(iterable) {
        if(!iterable) {
            return [];
        }
        if(iterable.toArray) {
            return iterable.toArray();
        } else {
            var results = [];
            for(var i = 0; i < iterable.length; i++) {
                results.push(iterable[i]);
            }
            return results;
        }
    },

    bind: function() {
        var array = this.$A(arguments);
        var func = array[1];
        var _method = func, args = array, object = args.shift();
        var param = new Array();
        for (var i=1;i<array.length;i++) {
            param.push(array[i]);
        }
        return function() {
            return _method.apply(object, param);
        }
    },

    getHeight: function(element) {
        return element.offsetHeight;
    },

    setStyle: function(element, key, value) {
        element.style[key] = value;
    },

    getStyle: function(element, key) {
        return element.style[key];
    },

    cleanWhitespace: function(list) {
        var node = list.firstChild;
        while (node) {
            var nextNode = node.nextSibling;
            if(node.nodeType == 3 && !/\S/.test(node.nodeValue)) {
                list.removeChild(node);
            }
            node = nextNode;
        }
        return list;
    },

    cumulativeOffset: function(element) {
        var valueT = 0, valueL = 0;
        do {
            valueT += element.offsetTop  || 0;
            valueL += element.offsetLeft || 0;
            element = element.offsetParent;
        } while (element);
        return [valueL, valueT];
    },
    
    /**
     * 监听方法
     * element: 监听对象
     * name: 监听方法
     * observer: 执行的方法
     * useCapture: 浏览器调用事件的方式 (true 为 Capture 方式, false 为 Bubbling 方式)
     */
    addListener: function(element, name, observer, useCapture) {
        if(element.addEventListener) {
            element.addEventListener(name, observer, useCapture);
        } else if(element.attachEvent) {
            element.attachEvent('on' + name, observer);
        }
    },
    	
    getElementsByName: function (name, tag) { 
        var returns = document.getElementsByName(name);
        if(returns.length > 0) return returns; 
		
        returns = new Array();
        var e = document.getElementsByTagName(tag);
        for(i = 0; i < e.length; i++) { 
            if(e[i].getAttribute("name") == name) { 
                returns[returns.length] = e[i]; 
            }
        }
        return returns;
    }
}



