/* System parameter */
DEBUG=true

var aiviki=	{
	version:"0.2.1",
	author:"RolandShiue and Jeff",
	power:"aiviki",
	bind:function(__method,object)
		{
		return function()
			{
			__method.apply(object, arguments);
			}
		}
	}

aiviki.Class =
	{
	create: function(_name)
		{
		return function()
			{
			this.extend =function(source)
				{
				if(this==source&&DEBUG)
					{
					_D("無法繼承自己");
					return;
					}
				this.parentObject=source;
				for (property in source)
					{
					if(this[property]==null)
						this[property] = source[property];
					}
				}
			this.parentObject=null;

			this.toNameSpace=function()
				{
				if(this.parentObject!=null)
					{
					var ny = [];
					var obj = this;
					while(obj.parentObject!=null)
						{
						ny.push(obj.ClassId);
						obj=obj.parentObject;
						}
					ny.push(obj.ClassId);
					}
				return ny;
				}
			this.isSubClass=function(subObj)
				{
				if(this.ClassId == subObj.ClassId)return true;
				if(subObj.parentObject!=null)
					{
					var obj = subObj;
					while(obj.parentObject!=null)
						{
						if(this.ClassId == obj.ClassId)return true;
						obj=obj.parentObject;
						}
						if(this.ClassId == obj.ClassId)return true;
					}
				return false;
				}
			this.ClassId = _name;
			this.equal=function(obj)
				{
				if(this.ClassId == obj.ClassId)return true;
				return false;
				}
			this.init.apply(this, arguments);
			}
		}
	}


//debug模式
function _D(msg)
	{
	alert(msg);
	}

var $ce = document.createElement;
var $ct = document.createTextNode;
function $byc(className)
	{
	var nArray =[];
	
	var tags=document.all? document.all : document.getElementsByTagName("*");
	for(i=0; i<tags.length; i++){
		if(tags[i].className==className)
			{
			nArray.push(tags[i]);
			}
		}
	return nArray;
	}

function $byi(idName) 
	{
	return document.getElementById(idName);
	}

function $byOn(oo,ne)
	{
	var lg = oo.childNodes.length;
	var nArray =[];

	for(i=0;i<lg;i++)
		{
		if(oo.childNodes[i].tagName == ne)
			{
			nArray.push(oo.childNodes[i]);
			}else{
			if(oo.childNodes[i].length>=1)
				{
				alert(oo.childNodes[i].childNodes[0].tagName);
				}
			}
		}
	return nArray;
	}

//修正
var isIE = (window.navigator.userAgent.indexOf("MSIE")> 0);  
if(! isIE)
	{   
  HTMLElement.prototype.__defineGetter__("innerText",function () { return(this.textContent); });   
  HTMLElement.prototype.__defineSetter__("innerText",function (txt) { this.textContent = txt; });
	Event.prototype.__defineGetter__("srcElement",function()
			{
			var node=null;
			node = this.target;
			while (node && node.nodeType != 1)
			node = node.parentNode;
			return node;
			}
		);
	}

