﻿/*********************
 * 基本的一些东西
 *********************/
var isIE = (document.all) ? true : false;

var $ = function(id) {
	return "string" == typeof id ? document.getElementById(id) : id;
}

var CreateEle = function(tag, css, parent){
	var ele = document.createElement(tag);
	if(!!css && css != "") ele.className = css;
	if(!!parent) parent.appendChild(ele);
	return ele;
}

var Class = {
	create: function() {
		return function() {
			this.initialize.apply(this, arguments);}
	}
}

var Extend = function(destination, source) {
	for (var property in source) {
		destination[property] = source[property];
	}
}

var Bind = function(object, fun) {
	return function() {
		return fun.apply(object, arguments);
	}
}

var BindAsEventListener = function (object, fun) {

	return function(event) {
		return fun.call(object, (event || window.event));
	}
}

var CurrentStyle = function(element) {
	return element.currentStyle || document.defaultView.getComputedStyle(element, null);
}

var GetChildrenByClassName = function(parent, className){
	var aryChildren = [];
	for(var i in parent.childNodes)	{
		if(parent.childNodes[i].className == className){
			aryChildren.push(parent.childNodes[i]);
		}
	}
	return aryChildren;
}

function addEventHandler(oTarget, sEventType, fnHandler) {
	if (oTarget.addEventListener) {
		oTarget.addEventListener(sEventType, fnHandler, false);
	} else if (oTarget.attachEvent) {
		oTarget.attachEvent("on" + sEventType, fnHandler);
	} else {
		oTarget["on" + sEventType] = fnHandler;
	}
}

function removeEventHandler(oTarget, sEventType, fnHandler) {
	if (oTarget.removeEventListener) {
		oTarget.removeEventListener(sEventType, fnHandler, false);
	} else if (oTarget.detachEvent) {
		oTarget.detachEvent("on" + sEventType, fnHandler);
	} else {
		oTarget["on" + sEventType] = null;
	}
}

//获取div相对body的坐标
function getAbsPos(pTarget){
	pTarget = $(pTarget);
	if(!pTarget.getBoundingClientRect){
		var x_ = y_ = 0;

		while(pTarget.offsetParent){
			x_ += pTarget.offsetLeft;
			y_ += pTarget.offsetTop;
			pTarget = pTarget.offsetParent;
		}
		x_ += pTarget.offsetLeft;
		y_ += pTarget.offsetTop;
		return {x:x_, y:y_};
	}else{
		var body = document.compatMode == 'CSS1Compat' ? document.documentElement : document.body;
		var rect = pTarget.getBoundingClientRect();
		if(isIE)
		{
			rect.left -= 2;
			rect.top -= 2;
		}
		return {x:rect.left + body.scrollLeft,y:rect.top + body.scrollTop};
	}
}

